diff --git a/package.json b/package.json index 38b675ef..76306284 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,9 @@ { "name": "go-view", - "version": "1.1.6", + "version": "1.1.11", + "engines": { + "node": ">=16.14 <18.0.0" + }, "scripts": { "dev": "vite --host", "build": "vue-tsc --noEmit && vite build", @@ -21,6 +24,7 @@ "axios": "^0.27.2", "color": "^4.2.3", "crypto-js": "^4.1.1", + "dom-helpers": "^5.2.1", "echarts-liquidfill": "^3.1.0", "echarts-stat": "^1.2.0", "echarts-wordcloud": "^2.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3bf99b84..7a0f90e3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -25,6 +25,7 @@ specifiers: commitlint: ^17.0.2 crypto-js: ^4.1.1 default-passive-events: ^2.0.0 + dom-helpers: ^5.2.1 echarts: ^5.3.2 echarts-liquidfill: ^3.1.0 echarts-stat: ^1.2.0 @@ -77,6 +78,7 @@ dependencies: axios: 0.27.2 color: 4.2.3 crypto-js: 4.1.1 + dom-helpers: 5.2.1 echarts-liquidfill: 3.1.0_echarts@5.3.3 echarts-stat: 1.2.0 echarts-wordcloud: 2.0.0_echarts@5.3.3 @@ -402,6 +404,13 @@ packages: - supports-color dev: true + /@babel/runtime/7.20.6: + resolution: {integrity: sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.11 + dev: false + /@babel/template/7.16.7: resolution: {integrity: sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==} engines: {node: '>=6.9.0'} @@ -1912,7 +1921,7 @@ packages: dev: true /csstype/2.6.20: - resolution: {integrity: sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/csstype/-/csstype-2.6.20.tgz} + resolution: {integrity: sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==} dev: false /csstype/3.0.11: @@ -2065,6 +2074,13 @@ packages: resolution: {integrity: sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==} dev: true + /dom-helpers/5.2.1: + resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} + dependencies: + '@babel/runtime': 7.20.6 + csstype: 3.0.11 + dev: false + /dom-serializer/1.4.1: resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} dependencies: @@ -4462,6 +4478,10 @@ packages: strip-indent: 3.0.0 dev: true + /regenerator-runtime/0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + dev: false + /regexp.prototype.flags/1.4.3: resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} engines: {node: '>= 0.4'} diff --git a/src/enums/editPageEnum.ts b/src/enums/editPageEnum.ts index bfb51ef0..07d51e70 100644 --- a/src/enums/editPageEnum.ts +++ b/src/enums/editPageEnum.ts @@ -67,7 +67,8 @@ export enum WinKeyboard { ALT = ' alt', CTRL_SOURCE_KEY = 'control', SHIFT_SOURCE_KEY = 'shift', - ALT_SOURCE_KEY = 'alt' + ALT_SOURCE_KEY = 'alt', + SPACE = 'Space' } // Mac 键盘枚举 @@ -78,5 +79,6 @@ export enum MacKeyboard { ALT = '⌥', CTRL_SOURCE_KEY = '⌘', SHIFT_SOURCE_KEY = '⇧', - ALT_SOURCE_KEY = '⌥' + ALT_SOURCE_KEY = '⌥', + SPACE = 'Space' } diff --git a/src/packages/components/Charts/Bars/CapsuleChart/index.vue b/src/packages/components/Charts/Bars/CapsuleChart/index.vue index 87971d01..135ef1d0 100644 --- a/src/packages/components/Charts/Bars/CapsuleChart/index.vue +++ b/src/packages/components/Charts/Bars/CapsuleChart/index.vue @@ -111,9 +111,13 @@ watch( } ) -const calcData = (data: any) => { +const calcData = (data: any, type?: string) => { mergeConfig(props.chartConfig.option) - calcCapsuleLengthAndLabelData() + if (type == 'preview') { + calcCapsuleLengthAndLabelData(data) + } else { + calcCapsuleLengthAndLabelData(state.mergedConfig.dataset) + } } const mergeConfig = (data: any) => { @@ -121,8 +125,8 @@ const mergeConfig = (data: any) => { } // 数据解析 -const calcCapsuleLengthAndLabelData = () => { - const { source } = state.mergedConfig.dataset +const calcCapsuleLengthAndLabelData = (dataset: any) => { + const { source } = dataset if (!source.length) return state.capsuleItemHeight = numberSizeHandle(state.mergedConfig.itemHeight) @@ -151,7 +155,7 @@ onMounted(() => { // 预览 useChartDataFetch(props.chartConfig, useChartEditStore, (newData: any) => { - calcData(newData) + calcData(newData, 'preview') }) diff --git a/src/store/modules/chartLayoutStore/chartLayoutStore.d.ts b/src/store/modules/chartLayoutStore/chartLayoutStore.d.ts index b1155ea5..b485dd59 100644 --- a/src/store/modules/chartLayoutStore/chartLayoutStore.d.ts +++ b/src/store/modules/chartLayoutStore/chartLayoutStore.d.ts @@ -1,5 +1,5 @@ export enum ChartModeEnum { - SINGLE= 'single', + SINGLE = 'single', DOUBLE = 'double' } @@ -13,7 +13,9 @@ export enum ChartLayoutStoreEnum { CHARTS = 'charts', DETAILS = 'details', Chart_TYPE = 'chartType', - LAYER_TYPE = 'layerType' + LAYER_TYPE = 'layerType', + PERCENTAGE = 'percentage', + RE_POSITION_CANVAS = 'rePositionCanvas' } export interface ChartLayoutType { @@ -27,4 +29,8 @@ export interface ChartLayoutType { [ChartLayoutStoreEnum.Chart_TYPE]: ChartModeEnum // 层级展示方式 [ChartLayoutStoreEnum.LAYER_TYPE]: LayerModeEnum + // 当前正在加载的数量 + [ChartLayoutStoreEnum.PERCENTAGE]: number + // 是否重置当前画布位置 + [ChartLayoutStoreEnum.RE_POSITION_CANVAS]: boolean } diff --git a/src/store/modules/chartLayoutStore/chartLayoutStore.ts b/src/store/modules/chartLayoutStore/chartLayoutStore.ts index c50bd520..c2b63592 100644 --- a/src/store/modules/chartLayoutStore/chartLayoutStore.ts +++ b/src/store/modules/chartLayoutStore/chartLayoutStore.ts @@ -24,6 +24,10 @@ export const useChartLayoutStore = defineStore({ chartType: ChartModeEnum.SINGLE, // 图层类型(默认图片) layerType: LayerModeEnum.THUMBNAIL, + // 当前加载数量 + percentage: 0, + // 是否重置当前画布位置 + rePositionCanvas: false, // 防止值不存在 ...storageChartLayout }), @@ -42,6 +46,12 @@ export const useChartLayoutStore = defineStore({ }, getLayerType(): LayerModeEnum { return this.layerType + }, + getPercentage(): number { + return this.percentage + }, + getRePositionCanvas(): boolean { + return this.rePositionCanvas } }, actions: { @@ -49,11 +59,19 @@ export const useChartLayoutStore = defineStore({ this.$patch(state => { state[key] = value }) + // 存储本地 setLocalStorage(GO_CHART_LAYOUT_STORE, this.$state) + // 这里需要标记重置画布位置 + this.rePositionCanvas = true; // 重新计算拖拽区域缩放比例 setTimeout(() => { chartEditStore.computedScale() }, 500) + }, + setItemUnHandle(key: T, value: K): void { + this.$patch(state => { + state[key] = value + }) } } }) diff --git a/src/styles/common/mixins/mixins.scss b/src/styles/common/mixins/mixins.scss index 39374ff1..ec6f2ccd 100644 --- a/src/styles/common/mixins/mixins.scss +++ b/src/styles/common/mixins/mixins.scss @@ -17,7 +17,7 @@ } @mixin deep() { - :deep { + :deep() { @content; } } diff --git a/src/utils/utils.ts b/src/utils/utils.ts index 6d56e05c..51b296ae 100644 --- a/src/utils/utils.ts +++ b/src/utils/utils.ts @@ -273,15 +273,21 @@ export const objToCookie = (obj: RequestParamsObjType) => { * @returns */ export const setKeyboardDressShow = (keyCode?: number) => { - const code = new Map([[17, WinKeyboard.CTRL]]) + const code = new Map([ + [17, WinKeyboard.CTRL], + [32, WinKeyboard.SPACE] + ]) const dom = document.getElementById('keyboard-dress-show') if (!dom) return if (!keyCode) { + window.onKeySpacePressHold?.(false) dom.innerText = '' return } if (keyCode && code.has(keyCode)) { + if (keyCode == 32) window.onKeySpacePressHold?.(true) dom.innerText = `按下了「${code.get(keyCode)}」键` } } + diff --git a/src/views/chart/ContentBox/index.vue b/src/views/chart/ContentBox/index.vue index 826bbb85..8f7b5e5d 100644 --- a/src/views/chart/ContentBox/index.vue +++ b/src/views/chart/ContentBox/index.vue @@ -18,14 +18,14 @@ -
-