Commit 9160be1976b5fa1e4d548fa18a2d0fafb56583dc
1 parent
b1f9f93e
feat(src/packages/): 信息下更多下加载组态新增是否公开开关'
Showing
3 changed files
with
90 additions
and
44 deletions
@@ -7,7 +7,8 @@ enum Api { | @@ -7,7 +7,8 @@ enum Api { | ||
7 | DOWNLOAD = '/oss/download_file/', | 7 | DOWNLOAD = '/oss/download_file/', |
8 | AREALIST = '/area/list', | 8 | AREALIST = '/area/list', |
9 | PLATFORM = '/platform/get', | 9 | PLATFORM = '/platform/get', |
10 | - CONFIGURATION = '/configuration/center' | 10 | + CONFIGURATION = '/configuration/center', |
11 | + CONFIGURATION_SHARE = '/configuration/center/share/' | ||
11 | } | 12 | } |
12 | 13 | ||
13 | export const getDictItemByCode = (value: string) => { | 14 | export const getDictItemByCode = (value: string) => { |
@@ -45,3 +46,10 @@ export const getPlatformInfo = () => defHttp.get({ url: Api.PLATFORM }) | @@ -45,3 +46,10 @@ export const getPlatformInfo = () => defHttp.get({ url: Api.PLATFORM }) | ||
45 | export const getConfigurationList = (params: object) => { | 46 | export const getConfigurationList = (params: object) => { |
46 | return defHttp.get({ url: `${Api.CONFIGURATION}`, params }) | 47 | return defHttp.get({ url: `${Api.CONFIGURATION}`, params }) |
47 | } | 48 | } |
49 | +//组态设置是否公开或私有 | ||
50 | +export const setConfigurationIsShare = (params: string,isShare:boolean,data:object) => { | ||
51 | + return defHttp.post({ | ||
52 | + url: `${Api.CONFIGURATION_SHARE}${params}?isShare=${isShare}`, | ||
53 | + data | ||
54 | + }) | ||
55 | +} |
1 | -import { PublicConfigClass } from '@/packages/public' | ||
2 | -import { CreateComponentType } from '@/packages/index.d' | ||
3 | -import { chartInitConfig } from '@/settings/designSetting' | ||
4 | -import { OverrideILoadConfigurationframeConfig } from './index' | 1 | +import {PublicConfigClass} from '@/packages/public' |
2 | +import {CreateComponentType} from '@/packages/index.d' | ||
3 | +import {chartInitConfig} from '@/settings/designSetting' | ||
4 | +import {OverrideILoadConfigurationframeConfig} from './index' | ||
5 | import cloneDeep from 'lodash/cloneDeep' | 5 | import cloneDeep from 'lodash/cloneDeep' |
6 | 6 | ||
7 | +export const enum shareEnum { | ||
8 | + PRIVATE_VIEW = "PRIVATE_VIEW", | ||
9 | +} | ||
10 | + | ||
7 | export const option = { | 11 | export const option = { |
8 | - // 网站路径 | ||
9 | - dataset: '', | ||
10 | - // 圆角 | ||
11 | - borderRadius: 10, | ||
12 | - pages: { | ||
13 | - page: 1, | ||
14 | - pageSize: 10 | ||
15 | - }, | ||
16 | - color: 'black' | 12 | + // 网站路径 |
13 | + dataset: '', | ||
14 | + // 圆角 | ||
15 | + borderRadius: 10, | ||
16 | + pages: { | ||
17 | + page: 1, | ||
18 | + pageSize: 10 | ||
19 | + }, | ||
20 | + color: 'black', | ||
21 | + isShare: false, | ||
17 | } | 22 | } |
18 | 23 | ||
19 | export default class Config extends PublicConfigClass implements CreateComponentType { | 24 | export default class Config extends PublicConfigClass implements CreateComponentType { |
20 | - public key = OverrideILoadConfigurationframeConfig.key | ||
21 | - public attr = { ...chartInitConfig, w: 1200, h: 800, zIndex: -1 } | ||
22 | - public chartConfig = cloneDeep(OverrideILoadConfigurationframeConfig) | ||
23 | - public option = cloneDeep(option) | 25 | + public key = OverrideILoadConfigurationframeConfig.key |
26 | + public attr = {...chartInitConfig, w: 1200, h: 800, zIndex: -1} | ||
27 | + public chartConfig = cloneDeep(OverrideILoadConfigurationframeConfig) | ||
28 | + public option = cloneDeep(option) | ||
24 | } | 29 | } |
@@ -2,16 +2,22 @@ | @@ -2,16 +2,22 @@ | ||
2 | <collapse-item name="属性" :expanded="true"> | 2 | <collapse-item name="属性" :expanded="true"> |
3 | <setting-item-box name="路径" :alone="true"> | 3 | <setting-item-box name="路径" :alone="true"> |
4 | <setting-item name="请选择要加载的组态"> | 4 | <setting-item name="请选择要加载的组态"> |
5 | - <n-select filterable size="small" v-model:value="optionData.dataset" :options="configurationOptions" /> | 5 | + <n-select label-in-value @change="handleUpdateValue" filterable size="small" v-model:value="optionData.dataset" |
6 | + :options="configurationOptions"/> | ||
7 | + </setting-item> | ||
8 | + </setting-item-box> | ||
9 | + <setting-item-box name="是否公开" :alone="true"> | ||
10 | + <setting-item name=""> | ||
11 | + <n-switch @change="handleChange" v-model:value="optionData.isShare" size="small"/> | ||
6 | </setting-item> | 12 | </setting-item> |
7 | </setting-item-box> | 13 | </setting-item-box> |
8 | <setting-item-box name="样式"> | 14 | <setting-item-box name="样式"> |
9 | <setting-item name="圆角"> | 15 | <setting-item name="圆角"> |
10 | <n-input-number | 16 | <n-input-number |
11 | - v-model:value="optionData.borderRadius" | ||
12 | - size="small" | ||
13 | - :min="0" | ||
14 | - placeholder="圆角" | 17 | + v-model:value="optionData.borderRadius" |
18 | + size="small" | ||
19 | + :min="0" | ||
20 | + placeholder="圆角" | ||
15 | ></n-input-number> | 21 | ></n-input-number> |
16 | </setting-item> | 22 | </setting-item> |
17 | </setting-item-box> | 23 | </setting-item-box> |
@@ -21,11 +27,11 @@ | @@ -21,11 +27,11 @@ | ||
21 | </setting-item> | 27 | </setting-item> |
22 | <setting-item name="页数"> | 28 | <setting-item name="页数"> |
23 | <n-input-number | 29 | <n-input-number |
24 | - disabled | ||
25 | - v-model:value="optionData.pages.pageSize" | ||
26 | - size="small" | ||
27 | - :min="10" | ||
28 | - placeholder="页数" | 30 | + disabled |
31 | + v-model:value="optionData.pages.pageSize" | ||
32 | + size="small" | ||
33 | + :min="10" | ||
34 | + placeholder="页数" | ||
29 | ></n-input-number> | 35 | ></n-input-number> |
30 | </setting-item> | 36 | </setting-item> |
31 | </setting-item-box> | 37 | </setting-item-box> |
@@ -34,17 +40,18 @@ | @@ -34,17 +40,18 @@ | ||
34 | <n-color-picker size="small" :modes="['hex']" v-model:value="optionData.color"></n-color-picker> | 40 | <n-color-picker size="small" :modes="['hex']" v-model:value="optionData.color"></n-color-picker> |
35 | </SettingItem> | 41 | </SettingItem> |
36 | <SettingItem> | 42 | <SettingItem> |
37 | - <n-button size="small" @click="optionData.color = 'black'"> 恢复默认 </n-button> | 43 | + <n-button size="small" @click="optionData.color = 'black'"> 恢复默认</n-button> |
38 | </SettingItem> | 44 | </SettingItem> |
39 | </setting-item-box> | 45 | </setting-item-box> |
40 | </collapse-item> | 46 | </collapse-item> |
41 | </template> | 47 | </template> |
42 | 48 | ||
43 | <script setup lang="ts"> | 49 | <script setup lang="ts"> |
44 | -import { PropType, onMounted, ref, watch } from 'vue' | ||
45 | -import { option } from './config' | ||
46 | -import { CollapseItem, SettingItemBox, SettingItem } from '@/components/Pages/ChartItemSetting' | ||
47 | -import { getConfigurationList } from '@/api/external/common/index' | 50 | +import {PropType, onMounted, ref, watch} from 'vue' |
51 | +import {option, shareEnum} from './config' | ||
52 | +import {CollapseItem, SettingItemBox, SettingItem} from '@/components/Pages/ChartItemSetting' | ||
53 | +import {getConfigurationList, setConfigurationIsShare} from '@/api/external/common/index' | ||
54 | +import {SelectOption} from 'naive-ui' | ||
48 | 55 | ||
49 | const props = defineProps({ | 56 | const props = defineProps({ |
50 | optionData: { | 57 | optionData: { |
@@ -55,25 +62,51 @@ const props = defineProps({ | @@ -55,25 +62,51 @@ const props = defineProps({ | ||
55 | 62 | ||
56 | const configurationOptions = ref([]) | 63 | const configurationOptions = ref([]) |
57 | 64 | ||
65 | +const configurationId = ref('') | ||
66 | + | ||
58 | const getConfigurationOptions = async (params: object) => { | 67 | const getConfigurationOptions = async (params: object) => { |
59 | - const { items } = await getConfigurationList(params) | 68 | + const {items} = await getConfigurationList(params) |
60 | if (items) { | 69 | if (items) { |
61 | - configurationOptions.value = items.map((item: Record<string, string>) => ({ label: item.name, value: item.id })) | 70 | + configurationOptions.value = items.map((item: SelectOption) => ({ |
71 | + label: item.name, | ||
72 | + value: item.id, | ||
73 | + viewType: item.viewType | ||
74 | + })) | ||
62 | } | 75 | } |
63 | } | 76 | } |
64 | 77 | ||
65 | watch( | 78 | watch( |
66 | - () => props.optionData.pages, | ||
67 | - (newData: any) => { | ||
68 | - getConfigurationOptions({ page: newData.page, pageSize: newData.pageSize }) | ||
69 | - }, | ||
70 | - { | ||
71 | - deep: true, | ||
72 | - immediate: true | ||
73 | - } | 79 | + () => props.optionData.pages, |
80 | + (newData: any) => { | ||
81 | + getConfigurationOptions({page: newData.page, pageSize: newData.pageSize}) | ||
82 | + }, | ||
83 | + { | ||
84 | + deep: true, | ||
85 | + immediate: true | ||
86 | + } | ||
74 | ) | 87 | ) |
75 | 88 | ||
76 | onMounted(() => { | 89 | onMounted(() => { |
77 | - getConfigurationOptions({ page: props.optionData.pages.page, pageSize: props.optionData.pages.pageSize }) | 90 | + getConfigurationOptions({page: props.optionData.pages.page, pageSize: props.optionData.pages.pageSize}) |
78 | }) | 91 | }) |
92 | + | ||
93 | +const handleUpdateValue = (value: string, options: SelectOption) => { | ||
94 | + const {viewType} = options | ||
95 | + configurationId.value = value | ||
96 | + if (viewType === shareEnum.PRIVATE_VIEW) { | ||
97 | + props.optionData.isShare = false | ||
98 | + } else { | ||
99 | + props.optionData.isShare = true | ||
100 | + } | ||
101 | +} | ||
102 | + | ||
103 | +const handleChange = async (value: boolean) => { | ||
104 | + const res = await setConfigurationIsShare(!configurationId.value ? props.optionData.dataset : configurationId.value, value, { | ||
105 | + isShare: value | ||
106 | + }) | ||
107 | + if (res) { | ||
108 | + window.$message.success('操作成功!') | ||
109 | + await getConfigurationOptions({page: props.optionData.pages.page, pageSize: props.optionData.pages.pageSize}) | ||
110 | + } | ||
111 | +} | ||
79 | </script> | 112 | </script> |