Commit e9d99e240d116d2d1081e297cbed812ae3f18398
Merge branch 'ft' into 'main_dev'
perf(src/components): 优化部分功能体验 See merge request yunteng/thingskit-view!98
Showing
56 changed files
with
380 additions
and
66 deletions
src/assets/external/background/bg11.jpg
0 → 100644
97.1 KB
src/assets/external/background/bg12.jpg
0 → 100644
651 KB
65.1 KB
59.8 KB
41.6 KB
9.35 KB
src/assets/images/chart/decorates/title4.png
0 → 100644
12.3 KB
src/assets/images/chart/decorates/title5.png
0 → 100644
18.6 KB
src/assets/images/chart/decorates/title6.png
0 → 100644
24.8 KB
src/assets/images/chart/decorates/title7.png
0 → 100644
20.1 KB
src/assets/images/chart/decorates/title8.png
0 → 100644
11.6 KB
1 | -import { CameraConfig } from './Camera/index' | |
2 | -import { SingleCameraConfig } from './SingleCamera/index' | |
3 | -import { OverrideILoadConfigurationframeConfig } from './OverrideILoadConfigurationframe/index' | |
4 | - | |
5 | -export default [SingleCameraConfig, CameraConfig, OverrideILoadConfigurationframeConfig] | |
1 | +/** | |
2 | + * 此项目扩展侧边栏功能,保留待用 | |
3 | + */ | |
\ No newline at end of file | ... | ... |
1 | -export enum ChatCategoryEnum { | |
2 | - MORE = 'Mores' | |
3 | -} | |
1 | +// export enum ChatCategoryEnum { | |
2 | +// MORE = 'Mores' | |
3 | +// } | |
4 | 4 | |
5 | -export enum ChatCategoryEnumName { | |
6 | - MORE = '更多' | |
7 | -} | |
5 | +// export enum ChatCategoryEnumName { | |
6 | +// MORE = '更多' | |
7 | +// } | |
8 | 8 | |
9 | -export enum PackagesCategoryEnum { | |
10 | - WORD_CLOUD = 'WordCloud' | |
11 | -} | |
9 | +// export enum PackagesCategoryEnum { | |
10 | +// WORD_CLOUD = 'WordCloud' | |
11 | +// } | ... | ... |
... | ... | @@ -130,7 +130,7 @@ const props = defineProps({ |
130 | 130 | }) |
131 | 131 | const uploadFileListRef = ref() |
132 | 132 | |
133 | -const selectValue = ref('headerBg08.png') | |
133 | +const selectValue = ref<string| null>('headerBg08.png') | |
134 | 134 | |
135 | 135 | const getAllBackgroundImageList = computed(() => { |
136 | 136 | const pathList = import.meta.glob('../../../../../../assets/external/headbackground/*') |
... | ... | @@ -220,7 +220,7 @@ const handleChange = (value: boolean) => { |
220 | 220 | const clearImage = () => { |
221 | 221 | props.optionData.backgroundImage = '' |
222 | 222 | props.optionData.bgSrc = '' |
223 | - selectValue.value = '' | |
223 | + selectValue.value = null | |
224 | 224 | } |
225 | 225 | </script> |
226 | 226 | <style lang="scss" scoped> | ... | ... |
... | ... | @@ -4,12 +4,12 @@ |
4 | 4 | <n-select size="small" v-model:value="optionData.buttonType" :options="buttonTypeOptions" /> |
5 | 5 | </setting-item-box> |
6 | 6 | <setting-item-box name="虚线"> |
7 | - <setting-item name=""> | |
7 | + <setting-item name="是否开启"> | |
8 | 8 | <n-switch v-model:value="optionData.buttonDashed" /> |
9 | 9 | </setting-item> |
10 | 10 | </setting-item-box> |
11 | 11 | <setting-item-box name="透明"> |
12 | - <setting-item name=""> | |
12 | + <setting-item name="是否开启"> | |
13 | 13 | <n-switch v-model:value="optionData.buttonGhost" /> |
14 | 14 | </setting-item> |
15 | 15 | </setting-item-box> |
... | ... | @@ -17,16 +17,31 @@ |
17 | 17 | <setting-item name=""> |
18 | 18 | <n-color-picker size="small" :modes="['hex']" v-model:value="optionData.buttonColor"></n-color-picker> |
19 | 19 | </setting-item> |
20 | + <setting-item> | |
21 | + <n-button size="small" @click="optionData.buttonColor=''"> | |
22 | + 恢复默认 | |
23 | + </n-button> | |
24 | + </setting-item> | |
20 | 25 | </setting-item-box> |
21 | 26 | <setting-item-box name="文字颜色"> |
22 | 27 | <setting-item name=""> |
23 | 28 | <n-color-picker size="small" :modes="['hex']" v-model:value="optionData.buttonTextColor"></n-color-picker> |
24 | 29 | </setting-item> |
30 | + <setting-item> | |
31 | + <n-button size="small" @click="optionData.buttonTextColor='white'"> | |
32 | + 恢复默认 | |
33 | + </n-button> | |
34 | + </setting-item> | |
25 | 35 | </setting-item-box> |
26 | 36 | <setting-item-box name="文字大小"> |
27 | 37 | <setting-item name=""> |
28 | 38 | <n-input-number v-model:value="optionData.buttonTextSize" /> |
29 | 39 | </setting-item> |
40 | + <setting-item> | |
41 | + <n-button size="small" @click="optionData.buttonTextSize='16'"> | |
42 | + 恢复默认 | |
43 | + </n-button> | |
44 | + </setting-item> | |
30 | 45 | </setting-item-box> |
31 | 46 | <setting-item-box :alone="true"> |
32 | 47 | <setting-item name="按钮文字" :alone="true"> |
... | ... | @@ -59,7 +74,7 @@ |
59 | 74 | |
60 | 75 | <script lang="ts" setup> |
61 | 76 | import { PropType, ref, onMounted } from 'vue' |
62 | -import { CollapseItem, SettingItemBox } from '@/components/Pages/ChartItemSetting' | |
77 | +import { CollapseItem, SettingItemBox ,SettingItem} from '@/components/Pages/ChartItemSetting' | |
63 | 78 | import { option } from './config' |
64 | 79 | import { icon } from '@/plugins' |
65 | 80 | import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore' | ... | ... |
... | ... | @@ -25,7 +25,7 @@ export const option = { |
25 | 25 | |
26 | 26 | export default class Config extends PublicConfigClass implements CreateComponentType { |
27 | 27 | public key = OverrideInputsDateConfig.key |
28 | - public attr = { ...chartInitConfig, w: 260, h: 32, zIndex: -1 } | |
28 | + public attr = { ...chartInitConfig, w: 260, h: 32, zIndex: 99999 } | |
29 | 29 | public chartConfig = cloneDeep(OverrideInputsDateConfig) |
30 | 30 | public interactActions = interactActions |
31 | 31 | public option = cloneDeep(option) | ... | ... |
... | ... | @@ -7,7 +7,7 @@ |
7 | 7 | <collapse-item name="时间配置" :expanded="true"> |
8 | 8 | <setting-item-box name="快捷选择"> |
9 | 9 | <setting-item name="日期"> |
10 | - <n-select @change="shortCutSelect" v-model:value="optionData.shortcut" size="small" :options="intervalOption" /> | |
10 | + <n-select clearable @change="shortCutSelect" v-model:value="optionData.shortcut" size="small" :options="intervalOption" /> | |
11 | 11 | </setting-item> |
12 | 12 | </setting-item-box> |
13 | 13 | <setting-item-box name="基础"> |
... | ... | @@ -108,6 +108,10 @@ const datePickerTypeOptions = [ |
108 | 108 | value: ComponentInteractEventEnum.DATE_RANGE |
109 | 109 | }, |
110 | 110 | { |
111 | + label: '日期时间范围', | |
112 | + value: ComponentInteractEventEnum.DATE_TIME_RANGE | |
113 | + }, | |
114 | + { | |
111 | 115 | label: '月份', |
112 | 116 | value: ComponentInteractEventEnum.MONTH |
113 | 117 | }, | ... | ... |
... | ... | @@ -84,6 +84,7 @@ export const interactActions: InteractActionsType[] = [ |
84 | 84 | [ComponentInteractEventEnum.DATE]: time, |
85 | 85 | [ComponentInteractEventEnum.DATE_TIME]: time, |
86 | 86 | [ComponentInteractEventEnum.DATE_RANGE]: timeRange, |
87 | + [ComponentInteractEventEnum.DATE_TIME_RANGE]: timeRange, | |
87 | 88 | [ComponentInteractEventEnum.MONTH]: time, |
88 | 89 | [ComponentInteractEventEnum.MONTH_RANGE]: timeRange, |
89 | 90 | [ComponentInteractEventEnum.QUARTER]: time, | ... | ... |
... | ... | @@ -30,7 +30,7 @@ export const option = { |
30 | 30 | |
31 | 31 | export default class Config extends PublicConfigClass implements CreateComponentType { |
32 | 32 | public key = OverrideSelectConfig.key |
33 | - public attr = { ...chartInitConfig, w: 260, h: 32, zIndex: -1 } | |
33 | + public attr = { ...chartInitConfig, w: 260, h: 32, zIndex: 99999 } | |
34 | 34 | public chartConfig = cloneDeep(OverrideSelectConfig) |
35 | 35 | public interactActions = interactActions |
36 | 36 | public option = cloneDeep(option) | ... | ... |
src/packages/components/external/Informations/Mores/Camera/components/CameraItem.vue
renamed from
src/packages/components/external/Composes/Mores/Camera/components/CameraItem.vue
src/packages/components/external/Informations/Mores/Camera/components/index.ts
renamed from
src/packages/components/external/Composes/Mores/Camera/components/index.ts
src/packages/components/external/Informations/Mores/Camera/config.ts
renamed from
src/packages/components/external/Composes/Mores/Camera/config.ts
src/packages/components/external/Informations/Mores/Camera/config.vue
renamed from
src/packages/components/external/Composes/Mores/Camera/config.vue
src/packages/components/external/Informations/Mores/Camera/index.ts
renamed from
src/packages/components/external/Composes/Mores/Camera/index.ts
1 | -import { ChartFrameEnum, ConfigType } from '@/packages/index.d' | |
2 | -import { EPackagesCategoryEnum } from '@/packages/components/external/types' | |
3 | -import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d' | |
1 | +import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d' | |
2 | +import { ChatCategoryEnum, ChatCategoryEnumName } from '@/packages/components/Informations/index.d' | |
4 | 3 | import { useWidgetKey } from '@/packages/external/useWidgetKey' |
5 | 4 | |
6 | -const { key, chartKey, conKey } = useWidgetKey('Camera') | |
5 | +const { key, conKey, chartKey } = useWidgetKey('Camera', true) | |
6 | + | |
7 | 7 | export const CameraConfig: ConfigType = { |
8 | 8 | key, |
9 | 9 | chartKey, |
... | ... | @@ -11,7 +11,7 @@ export const CameraConfig: ConfigType = { |
11 | 11 | title: '多个摄像头', |
12 | 12 | category: ChatCategoryEnum.MORE, |
13 | 13 | categoryName: ChatCategoryEnumName.MORE, |
14 | - package: EPackagesCategoryEnum.COMPOSES, | |
15 | - chartFrame: ChartFrameEnum.NAIVE_UI, | |
14 | + package: PackagesCategoryEnum.INFORMATIONS, | |
15 | + chartFrame: ChartFrameEnum.NAIVE_UI, | |
16 | 16 | image: 'camera.png' |
17 | 17 | } | ... | ... |
src/packages/components/external/Informations/Mores/Camera/index.vue
renamed from
src/packages/components/external/Composes/Mores/Camera/index.vue
src/packages/components/external/Informations/Mores/Camera/static/left.svg
renamed from
src/packages/components/external/Composes/Mores/Camera/static/left.svg
src/packages/components/external/Informations/Mores/Camera/static/right.svg
renamed from
src/packages/components/external/Composes/Mores/Camera/static/right.svg
1 | +import { PublicConfigClass } from '@/packages/public' | |
2 | +import { CreateComponentType } from '@/packages/index.d' | |
3 | +import { chartInitConfig } from '@/settings/designSetting' | |
4 | +import { CustomEchartsConfig } from './index' | |
5 | +import cloneDeep from 'lodash/cloneDeep' | |
6 | + | |
7 | +export const option = { | |
8 | + //数据源设置 默认设置一个 | |
9 | + dataset: ` | |
10 | + { | |
11 | + backgroundColor: 'transparent', | |
12 | + tooltip: { | |
13 | + trigger: 'none' | |
14 | + }, | |
15 | + xAxis: { | |
16 | + data: ["百分比"], | |
17 | + axisTick: { | |
18 | + show: false | |
19 | + }, | |
20 | + axisLine: { | |
21 | + show: false | |
22 | + }, | |
23 | + axisLabel: { | |
24 | + show: false, | |
25 | + textStyle: { | |
26 | + color: '#e54035' | |
27 | + } | |
28 | + } | |
29 | + }, | |
30 | + yAxis: { | |
31 | + splitLine: { | |
32 | + show: false | |
33 | + }, | |
34 | + axisTick: { | |
35 | + show: false | |
36 | + }, | |
37 | + axisLine: { | |
38 | + show: false | |
39 | + }, | |
40 | + axisLabel: { | |
41 | + show: false | |
42 | + } | |
43 | + }, | |
44 | + series: [{ | |
45 | + name: '最上层立体圆', | |
46 | + type: 'pictorialBar', | |
47 | + symbolSize: [300, 45], | |
48 | + symbolOffset: [0, -20], | |
49 | + z: 12, | |
50 | + itemStyle: { | |
51 | + normal: { | |
52 | + color: '#363F5E' | |
53 | + } | |
54 | + }, | |
55 | + data: [{ | |
56 | + value: 100, | |
57 | + symbolPosition: 'end' | |
58 | + }] | |
59 | + }, { | |
60 | + name: '中间立体圆', | |
61 | + type: 'pictorialBar', | |
62 | + symbolSize: [300, 45], | |
63 | + symbolOffset: [0, -20], | |
64 | + z: 12, | |
65 | + itemStyle: { | |
66 | + normal: { | |
67 | + color: '#2B5B4D' | |
68 | + } | |
69 | + }, | |
70 | + data: [{ | |
71 | + value: 30, | |
72 | + symbolPosition: 'end' | |
73 | + }] | |
74 | + }, { | |
75 | + name: '最底部立体圆', | |
76 | + type: 'pictorialBar', | |
77 | + symbolSize: [300, 45], | |
78 | + symbolOffset: [0, 20], | |
79 | + z: 12, | |
80 | + itemStyle: { | |
81 | + normal: { | |
82 | + color: '#01CC04' | |
83 | + } | |
84 | + }, | |
85 | + data: [101 - 40] | |
86 | + }, { | |
87 | + //底部立体柱 | |
88 | + stack: '1', | |
89 | + type: 'bar', | |
90 | + itemStyle: { | |
91 | + normal: { | |
92 | + color: '#01CC04', | |
93 | + opacity: .7 | |
94 | + } | |
95 | + }, | |
96 | + label: { | |
97 | + show: true, | |
98 | + position: "top", | |
99 | + distance: 15, | |
100 | + color: "#FFFE00", | |
101 | + fontSize:50, | |
102 | + formatter:'{c}'+'%' | |
103 | + }, | |
104 | + | |
105 | + silent: true, | |
106 | + barWidth: 300, | |
107 | + barGap: '-100%', // Make series be overlap | |
108 | + data: [30] | |
109 | + }, { | |
110 | + //上部立体柱 | |
111 | + stack: '1', | |
112 | + type: 'bar', | |
113 | + itemStyle: { | |
114 | + normal: { | |
115 | + color: '#36405E', | |
116 | + opacity: .7 | |
117 | + } | |
118 | + }, | |
119 | + silent: true, | |
120 | + barWidth: 300, | |
121 | + barGap: '-100%', // Make series be overlap | |
122 | + data: [100 - 30] | |
123 | + }] | |
124 | +} | |
125 | + ` | |
126 | +} | |
127 | + | |
128 | +export default class Config extends PublicConfigClass implements CreateComponentType { | |
129 | + public key = CustomEchartsConfig.key | |
130 | + public attr = { ...chartInitConfig, w: 1200, h: 800, zIndex: -1 } | |
131 | + public chartConfig = cloneDeep(CustomEchartsConfig) | |
132 | + public option = cloneDeep(option) | |
133 | +} | ... | ... |
1 | +<template> | |
2 | + <collapse-item name="数据源(option配置里的内容)" :expanded="true"> | |
3 | + <monaco-editor v-model:modelValue="optionData.dataset" width="400px" height="480px" language="json" /> | |
4 | + </collapse-item> | |
5 | +</template> | |
6 | + | |
7 | +<script setup lang="ts"> | |
8 | +import { PropType } from 'vue' | |
9 | +import { option } from './config' | |
10 | +import { CollapseItem } from '@/components/Pages/ChartItemSetting' | |
11 | +import { MonacoEditor } from '@/components/Pages/MonacoEditor' | |
12 | + | |
13 | +defineProps({ | |
14 | + optionData: { | |
15 | + type: Object as PropType<typeof option>, | |
16 | + required: true | |
17 | + } | |
18 | +}) | |
19 | + | |
20 | + | |
21 | +</script> | ... | ... |
1 | +import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d' | |
2 | +import { ChatCategoryEnum, ChatCategoryEnumName } from '@/packages/components/Informations/index.d' | |
3 | +import { useWidgetKey } from '@/packages/external/useWidgetKey' | |
4 | + | |
5 | +const { key, conKey, chartKey } = useWidgetKey('CustomEcharts', true) | |
6 | + | |
7 | +export const CustomEchartsConfig: ConfigType = { | |
8 | + key, | |
9 | + chartKey, | |
10 | + conKey, | |
11 | + title: '自定义echarts组件', | |
12 | + category: ChatCategoryEnum.MORE, | |
13 | + categoryName: ChatCategoryEnumName.MORE, | |
14 | + package: PackagesCategoryEnum.INFORMATIONS, | |
15 | + chartFrame: ChartFrameEnum.COMMON, | |
16 | + image: 'iframe.png' | |
17 | +} | ... | ... |
1 | +<template> | |
2 | + <v-chart | |
3 | + ref="vChartRef" | |
4 | + :init-options="initOptions" | |
5 | + :theme="themeColor" | |
6 | + :option="option" | |
7 | + :manual-update="isPreview()" | |
8 | + :update-options="{ | |
9 | + replaceMerge: replaceMergeArr | |
10 | + }" | |
11 | + autoresize | |
12 | + ></v-chart> | |
13 | +</template> | |
14 | + | |
15 | +<script setup lang="ts"> | |
16 | +import { ref, computed, PropType, watch } from 'vue' | |
17 | +import VChart from 'vue-echarts' | |
18 | +import { useCanvasInitOptions } from '@/hooks/useCanvasInitOptions.hook' | |
19 | +import { use } from 'echarts/core' | |
20 | +import { CanvasRenderer } from 'echarts/renderers' | |
21 | +import { BarChart } from 'echarts/charts' | |
22 | +import config from './config' | |
23 | +import { mergeTheme } from '@/packages/public/chart' | |
24 | +import { useChartDataFetch } from '@/hooks' | |
25 | +import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore' | |
26 | +import { isPreview } from '@/utils' | |
27 | +import { DatasetComponent, GridComponent, TooltipComponent, LegendComponent } from 'echarts/components' | |
28 | + | |
29 | +const props = defineProps({ | |
30 | + themeSetting: { | |
31 | + type: Object, | |
32 | + required: true | |
33 | + }, | |
34 | + themeColor: { | |
35 | + type: Object, | |
36 | + required: true | |
37 | + }, | |
38 | + chartConfig: { | |
39 | + type: Object as PropType<config>, | |
40 | + required: true | |
41 | + } | |
42 | +}) | |
43 | + | |
44 | +const initOptions = useCanvasInitOptions(eval('(' + props.chartConfig.option.dataset + ')'), props.themeSetting) | |
45 | + | |
46 | +use([DatasetComponent, CanvasRenderer, BarChart, GridComponent, TooltipComponent, LegendComponent]) | |
47 | + | |
48 | +const replaceMergeArr = ref<string[]>() | |
49 | + | |
50 | +const option = computed(() => { | |
51 | + return mergeTheme(eval('(' + props.chartConfig.option.dataset + ')'), props.themeSetting, []) | |
52 | +}) | |
53 | + | |
54 | +const { vChartRef } = useChartDataFetch(props.chartConfig, useChartEditStore) | |
55 | + | |
56 | +const updateVChart = (dataset: object) => { | |
57 | + new Promise(resolve => { | |
58 | + setTimeout(() => { | |
59 | + resolve( | |
60 | + vChartRef.value?.setOption( | |
61 | + { | |
62 | + ...dataset | |
63 | + }, | |
64 | + { | |
65 | + notMerge: true | |
66 | + } | |
67 | + ) | |
68 | + ) | |
69 | + }, 100) | |
70 | + }) | |
71 | +} | |
72 | + | |
73 | +watch( | |
74 | + () => props.chartConfig.option.dataset, | |
75 | + newValue => { | |
76 | + try { | |
77 | + //嵌套字符串使用JSON.parse会报错,这里使用eval函数 | |
78 | + updateVChart(eval('(' + newValue + ')')) | |
79 | + } catch (e) { | |
80 | + console.error( | |
81 | + `文件位置:src\\packages\\components\\external\\InformationsMores\\CustomEcharts\\index.vue`, | |
82 | + '错误信息:您的json格式有误' | |
83 | + ) | |
84 | + } | |
85 | + }, | |
86 | + { | |
87 | + immediate: true, | |
88 | + deep: true | |
89 | + } | |
90 | +) | |
91 | +</script> | ... | ... |
src/packages/components/external/Informations/Mores/OverrideILoadConfigurationframe/config.ts
renamed from
src/packages/components/external/Composes/Mores/OverrideILoadConfigurationframe/config.ts
src/packages/components/external/Informations/Mores/OverrideILoadConfigurationframe/config.vue
renamed from
src/packages/components/external/Composes/Mores/OverrideILoadConfigurationframe/config.vue
src/packages/components/external/Informations/Mores/OverrideILoadConfigurationframe/index.ts
renamed from
src/packages/components/external/Composes/Mores/OverrideILoadConfigurationframe/index.ts
1 | -import { ChartFrameEnum, ConfigType } from '@/packages/index.d' | |
2 | -import { EPackagesCategoryEnum } from '@/packages/components/external/types' | |
3 | -import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d' | |
1 | +import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d' | |
2 | +import { ChatCategoryEnum, ChatCategoryEnumName } from '@/packages/components/Informations/index.d' | |
4 | 3 | import { useWidgetKey } from '@/packages/external/useWidgetKey' |
5 | 4 | |
6 | -const { key, conKey, chartKey } = useWidgetKey('OverrideILoadConfigurationframe') | |
5 | +const { key, conKey, chartKey } = useWidgetKey('OverrideILoadConfigurationframe', true) | |
7 | 6 | |
8 | 7 | export const OverrideILoadConfigurationframeConfig: ConfigType = { |
9 | 8 | key, |
... | ... | @@ -12,7 +11,7 @@ export const OverrideILoadConfigurationframeConfig: ConfigType = { |
12 | 11 | title: '加载组态', |
13 | 12 | category: ChatCategoryEnum.MORE, |
14 | 13 | categoryName: ChatCategoryEnumName.MORE, |
15 | - package: EPackagesCategoryEnum.COMPOSES, | |
14 | + package: PackagesCategoryEnum.INFORMATIONS, | |
16 | 15 | chartFrame: ChartFrameEnum.COMMON, |
17 | 16 | image: 'configuration.png' |
18 | 17 | } | ... | ... |
src/packages/components/external/Informations/Mores/OverrideILoadConfigurationframe/index.vue
renamed from
src/packages/components/external/Composes/Mores/OverrideILoadConfigurationframe/index.vue
src/packages/components/external/Informations/Mores/SingleCamera/components/VideoPlay.vue
renamed from
src/packages/components/external/Composes/Mores/SingleCamera/components/VideoPlay.vue
src/packages/components/external/Informations/Mores/SingleCamera/components/index.ts
renamed from
src/packages/components/external/Composes/Mores/SingleCamera/components/index.ts
src/packages/components/external/Informations/Mores/SingleCamera/config.ts
renamed from
src/packages/components/external/Composes/Mores/SingleCamera/config.ts
src/packages/components/external/Informations/Mores/SingleCamera/config.vue
renamed from
src/packages/components/external/Composes/Mores/SingleCamera/config.vue
src/packages/components/external/Informations/Mores/SingleCamera/index.ts
renamed from
src/packages/components/external/Composes/Mores/SingleCamera/index.ts
1 | -import { ChartFrameEnum, ConfigType } from '@/packages/index.d' | |
2 | -import { EPackagesCategoryEnum } from '@/packages/components/external/types' | |
3 | -import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d' | |
1 | +import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d' | |
2 | +import { ChatCategoryEnum, ChatCategoryEnumName } from '@/packages/components/Informations/index.d' | |
4 | 3 | import { useWidgetKey } from '@/packages/external/useWidgetKey' |
5 | 4 | |
6 | -const { key, chartKey, conKey } = useWidgetKey('SingleCamera') | |
5 | +const { key, conKey, chartKey } = useWidgetKey('SingleCamera', true) | |
6 | + | |
7 | 7 | export const SingleCameraConfig: ConfigType = { |
8 | 8 | key, |
9 | 9 | chartKey, |
... | ... | @@ -11,7 +11,7 @@ export const SingleCameraConfig: ConfigType = { |
11 | 11 | title: '单个摄像头', |
12 | 12 | category: ChatCategoryEnum.MORE, |
13 | 13 | categoryName: ChatCategoryEnumName.MORE, |
14 | - package: EPackagesCategoryEnum.COMPOSES, | |
15 | - chartFrame: ChartFrameEnum.NAIVE_UI, | |
14 | + package: PackagesCategoryEnum.INFORMATIONS, | |
15 | + chartFrame: ChartFrameEnum.NAIVE_UI, | |
16 | 16 | image: 'camera.png' |
17 | 17 | } | ... | ... |
src/packages/components/external/Informations/Mores/SingleCamera/index.vue
renamed from
src/packages/components/external/Composes/Mores/SingleCamera/index.vue
1 | -import { EPackagesCategoryEnum, EPackagesType } from '@/packages/components/external/types' | |
2 | -import { ComposesList } from '@/packages/components/external/Composes' | |
1 | +// import { EPackagesCategoryEnum, EPackagesType } from '@/packages/components/external/types' | |
2 | +import { EPackagesType } from '@/packages/components/external/types' | |
3 | +// import { ComposesList } from '@/packages/components/external/Composes'//此项目扩展侧边栏功能,保留待用 | |
3 | 4 | import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d' |
4 | 5 | import { PickIconConfig } from '@/packages/components/external/Decorates/Mores/PickIcon' |
5 | 6 | import { WeatherConfig } from '@/packages/components/external/Decorates/Mores/Weather' |
... | ... | @@ -37,12 +38,16 @@ import { Decorates07Config } from '@/packages/components/external/Decorates/Deco |
37 | 38 | import { Decorates08Config } from '@/packages/components/external/Decorates/Decorates/Decorates08' |
38 | 39 | import { Decorates09Config } from '@/packages/components/external/Decorates/Decorates/Decorates09' |
39 | 40 | import { Decorates10Config } from '@/packages/components/external/Decorates/Decorates/Decorates10' |
41 | +import { CameraConfig } from '@/packages/components/external/Informations/Mores/Camera' | |
42 | +import { SingleCameraConfig } from '@/packages/components/external/Informations/Mores/SingleCamera' | |
43 | +import { OverrideILoadConfigurationframeConfig } from '@/packages/components/external/Informations/Mores/OverrideILoadConfigurationframe' | |
44 | +import { CustomEchartsConfig } from '@/packages/components/external/Informations/Mores/CustomEcharts' | |
40 | 45 | |
41 | 46 | /** |
42 | 47 | * 重写动态注入 |
43 | 48 | */ |
44 | 49 | export function useInjectLib(packagesList: EPackagesType) { |
45 | - packagesList[EPackagesCategoryEnum.COMPOSES] = ComposesList | |
50 | + // packagesList[EPackagesCategoryEnum.COMPOSES] = ComposesList //此项目扩展侧边栏功能,保留待用 | |
46 | 51 | |
47 | 52 | //小组件 |
48 | 53 | addWidgetToCategoryByCategoryName(packagesList, PackagesCategoryEnum.DECORATES, PickIconConfig)//新增小组件图标 |
... | ... | @@ -76,6 +81,10 @@ export function useInjectLib(packagesList: EPackagesType) { |
76 | 81 | addWidgetToCategoryByCategoryName(packagesList, PackagesCategoryEnum.INFORMATIONS, OverrideTextBarrageConfig)//重写信息下的弹幕文字 |
77 | 82 | addWidgetToCategoryByCategoryName(packagesList, PackagesCategoryEnum.INFORMATIONS, OverrideTextGradientConfig)//重写信息下的渐变文字 |
78 | 83 | addWidgetToCategoryByCategoryName(packagesList, PackagesCategoryEnum.INFORMATIONS, OverrideVideoConfig)//重写信息下的视频 |
84 | + addWidgetToCategoryByCategoryName(packagesList, PackagesCategoryEnum.INFORMATIONS, CameraConfig)//新增信息下的多个摄像头 | |
85 | + addWidgetToCategoryByCategoryName(packagesList, PackagesCategoryEnum.INFORMATIONS, SingleCameraConfig)//新增信息下的单个摄像头 | |
86 | + addWidgetToCategoryByCategoryName(packagesList, PackagesCategoryEnum.INFORMATIONS, OverrideILoadConfigurationframeConfig)//新增信息下的加载组态 | |
87 | + addWidgetToCategoryByCategoryName(packagesList, PackagesCategoryEnum.INFORMATIONS, CustomEchartsConfig)//新增信息下的自定义ecahrts组件 | |
79 | 88 | // |
80 | 89 | |
81 | 90 | //图表 | ... | ... |
... | ... | @@ -2,9 +2,10 @@ |
2 | 2 | import { EditCanvasConfigEnum } from '@/store/modules/chartEditStore/chartEditStore.d'; |
3 | 3 | import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore'; |
4 | 4 | import { NEllipsis, NImage, NSelect, NSpace, NText, SelectOption } from 'naive-ui'; |
5 | -import { computed, h, unref } from 'vue'; | |
5 | +import { h } from 'vue'; | |
6 | 6 | import { useBackgroundSelect } from '@/utils/external/useBackgroundImageSelect'; |
7 | 7 | |
8 | +const emit = defineEmits(['bgChange']) | |
8 | 9 | const chartEditStore = useChartEditStore() |
9 | 10 | const canvasConfig = chartEditStore.getEditCanvasConfig |
10 | 11 | |
... | ... | @@ -17,10 +18,15 @@ const renderOption = (option: SelectOption) => { |
17 | 18 | ]) |
18 | 19 | } |
19 | 20 | |
20 | -const handleUpdateValue = (value: string, _option: SelectOption) => { | |
21 | +const handleUpdateValue = (value: string) => { | |
21 | 22 | chartEditStore.setEditCanvasConfig(EditCanvasConfigEnum.BACKGROUND_IMAGE, value) |
23 | + emit('bgChange',value) | |
22 | 24 | } |
23 | 25 | |
26 | +const removeBg = ()=> canvasConfig.backgroundImage = null | |
27 | +defineExpose({ | |
28 | + removeBg | |
29 | +}) | |
24 | 30 | </script> |
25 | 31 | |
26 | 32 | ... | ... |
... | ... | @@ -43,7 +43,7 @@ |
43 | 43 | <n-space vertical :size="12"> |
44 | 44 | <n-space> |
45 | 45 | <!-- THINGS_KIT 新增预置背景选择 --> |
46 | - <SelectBackgroundImage /> | |
46 | + <SelectBackgroundImage ref="selectBackgroundImageRef" @bgChange="handleBgChange" /> | |
47 | 47 | <n-text>背景颜色</n-text> |
48 | 48 | <div class="picker-height"> |
49 | 49 | <n-color-picker |
... | ... | @@ -179,21 +179,21 @@ const globalTabList = [ |
179 | 179 | render: ChartThemeColor |
180 | 180 | } |
181 | 181 | ] |
182 | - | |
182 | +// THINGS_KIT 优化适配方式默认选中X轴铺满,Y轴自适应滚动 | |
183 | 183 | const previewTypeList = [ |
184 | 184 | { |
185 | - key: PreviewScaleEnum.FIT, | |
186 | - title: '自适应', | |
187 | - icon: ScaleIcon, | |
188 | - desc: '自适应比例展示,页面会有留白' | |
189 | - }, | |
190 | - { | |
191 | 185 | key: PreviewScaleEnum.SCROLL_Y, |
192 | 186 | title: 'Y轴滚动', |
193 | 187 | icon: FitToWidthIcon, |
194 | 188 | desc: 'X轴铺满,Y轴自适应滚动' |
195 | 189 | }, |
196 | 190 | { |
191 | + key: PreviewScaleEnum.FIT, | |
192 | + title: '自适应', | |
193 | + icon: ScaleIcon, | |
194 | + desc: '自适应比例展示,页面会有留白' | |
195 | + }, | |
196 | + { | |
197 | 197 | key: PreviewScaleEnum.SCROLL_X, |
198 | 198 | title: 'X轴滚动', |
199 | 199 | icon: FitToHeightIcon, |
... | ... | @@ -248,10 +248,15 @@ const selectColorValueHandle = (value: number) => { |
248 | 248 | canvasConfig.selectColor = value == 0 |
249 | 249 | } |
250 | 250 | |
251 | +// THINGS_KIT 优化清除背景,背景选择下拉框值还存在 | |
252 | +const selectBackgroundImageRef=ref<typeof SelectBackgroundImage|null>() | |
253 | + | |
251 | 254 | // 清除背景 |
252 | 255 | const clearImage = () => { |
253 | 256 | chartEditStore.setEditCanvasConfig(EditCanvasConfigEnum.BACKGROUND_IMAGE, undefined) |
254 | 257 | chartEditStore.setEditCanvasConfig(EditCanvasConfigEnum.SELECT_COLOR, true) |
258 | + // THINGS_KIT 优化清除背景,背景选择下拉框值还存在 | |
259 | + selectBackgroundImageRef.value?.removeBg() | |
255 | 260 | } |
256 | 261 | |
257 | 262 | // 启用/关闭 颜色(强制更新) |
... | ... | @@ -291,6 +296,13 @@ const customRequest = (options: UploadCustomRequestOptions) => { |
291 | 296 | const selectPreviewType = (key: PreviewScaleEnum) => { |
292 | 297 | chartEditStore.setEditCanvasConfig(EditCanvasConfigEnum.PREVIEW_SCALE_TYPE, key) |
293 | 298 | } |
299 | + | |
300 | +// THINGS_KIT 优化背景图片选择,应用类型自动选择应用背景 | |
301 | +const handleBgChange=(value:string)=>{ | |
302 | + if(!value) return | |
303 | + selectColorValue.value = 1,selectColorValueHandle(1),chartEditStore.setEditCanvasConfig(EditCanvasConfigEnum.BACKGROUND_IMAGE, value) | |
304 | +} | |
305 | + | |
294 | 306 | </script> |
295 | 307 | |
296 | 308 | <style lang="scss" scoped> | ... | ... |
... | ... | @@ -183,9 +183,19 @@ const fnEventsOptions = (): Array<SelectOption | SelectGroupOption> => { |
183 | 183 | iter: Array<CreateComponentType | CreateComponentGroupType>, |
184 | 184 | val: CreateComponentType | CreateComponentGroupType |
185 | 185 | ) => { |
186 | - if (!val.groupList && val.request.requestDataType === RequestDataTypeEnum.AJAX && val.request.requestUrl) { | |
186 | + /** | |
187 | + * WARNING 这里升级版本有冲突 | |
188 | + * 不修改这里的话,会造成联动组件绑定不了动态请求或者静态相关的组件 | |
189 | + * 由于只修改一处,所以没必要进行重写,原因是原作者绑定组件(必须是带有动态请求,不支持静态组件),此项目有时需要绑定静态组件看效果,所以不判断必须是动态请求 | |
190 | + * 修改后的代码在注释之间,并标注好源代码和修改后代码,方便回溯 | |
191 | + * 源代码 && val.request.requestDataType === RequestDataTypeEnum.AJAX && val.request.requestUrl | |
192 | + * 修改后的代码 无修改 | |
193 | + * 修改后代码在//之间 | |
194 | + */ | |
195 | + if (!val.groupList ) { | |
187 | 196 | iter.push(val) |
188 | 197 | } |
198 | + // | |
189 | 199 | return val.groupList && val.groupList.length > 0 ? [...iter, ...fnFlattern(val.groupList)] : iter |
190 | 200 | }, |
191 | 201 | [] | ... | ... |