From a28b85d077137652f290ea17b603bade8d84f668 Mon Sep 17 00:00:00 2001 From: XieYongHong <18010623010@163.com> Date: Fri, 28 Apr 2023 17:24:11 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=97=A0=E6=B3=95=E8=B0=83=E6=95=B4=E9=A1=BA?= =?UTF-8?q?=E5=BA=8F=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/request.ts | 6 ++- .../Product/Detail/DeviceAccess/index.vue | 17 ++++++- src/views/system/Menu/Setting/index.vue | 47 ++++++++++--------- src/views/system/Menu/Setting/utils.ts | 14 ++++++ vite.config.ts | 2 +- 5 files changed, 60 insertions(+), 26 deletions(-) diff --git a/src/utils/request.ts b/src/utils/request.ts index f6b2d6ed..54687a0d 100644 --- a/src/utils/request.ts +++ b/src/utils/request.ts @@ -167,7 +167,11 @@ const errorHandler = (error: any) => { showNotification(error?.code, error?.response?.data?.message, '404') } } else if (error.response === undefined) { - showNotification(error.message, (error.stack + '').substr(0, 90), undefined) + if (error.message.includes('timeout')) { + showNotification(error.message, '接口响应超时', undefined) + } else { + showNotification(error.message, (error.stack + '').substr(0, 90), undefined) + } } return Promise.reject(error) } diff --git a/src/views/device/Product/Detail/DeviceAccess/index.vue b/src/views/device/Product/Detail/DeviceAccess/index.vue index fd0e1672..6f4ebf47 100644 --- a/src/views/device/Product/Detail/DeviceAccess/index.vue +++ b/src/views/device/Product/Detail/DeviceAccess/index.vue @@ -686,7 +686,7 @@ const getData = async (accessId?: string) => { productTypes.value = resp.result.map(item => { if (pluginRes?.result?.externalId === item.id) { productData.id = pluginRes?.result?.externalId - productData.metadata = JSON.stringify(item.metadata || {}) + productData.metadata = item.metadata } return { ...item, label: item.name, value: item.id } }) @@ -724,7 +724,20 @@ const submitDevice = async () => { const id = productStore.current?.id; // 该产品是否有物模型,有则弹窗进行处理 const _metadata = JSON.parse(productStore.current?.metadata || '{}') - if (_metadata.properties?.length || _metadata.events?.length || _metadata.functions?.length || _metadata.tags?.length) { + console.log(_metadata.properties, productData.metadata) + if ( + (_metadata.properties?.length || + _metadata.events?.length || + _metadata.functions?.length || + _metadata.tags?.length + ) && + ( + productData.metadata?.properties?.length || + productData.metadata?.events?.length || + productData.metadata?.functions?.length || + productData.metadata?.tags?.length + ) + ) { metadataModalCacheData.value = { id, values, diff --git a/src/views/system/Menu/Setting/index.vue b/src/views/system/Menu/Setting/index.vue index cad1e29d..c26096f3 100644 --- a/src/views/system/Menu/Setting/index.vue +++ b/src/views/system/Menu/Setting/index.vue @@ -10,30 +10,31 @@
+ - +
@@ -70,6 +71,7 @@ import { getMaxDepth, mergeArr, findAllParentsAndChildren, + handleSorts } from './utils'; import BaseMenu from '@/views/init-home/data/baseMenu'; import type { AntTreeNodeDropEvent } from 'ant-design-vue/es/tree'; @@ -134,9 +136,9 @@ function filterTree(nodes: Array, selectedKeys: Array) { const handleOk = async () => { const _dataArr = filterTree(cloneDeep(treeData.value), selectedKeys.value); - + const _dataSorts = handleSorts(_dataArr) loading.value = true; - const res = await updateMenus(_dataArr).catch(() => {}); + const res = await updateMenus(_dataSorts).catch(() => {}); if (res?.status === 200) { onlyMessage('操作成功', 'success'); } @@ -260,6 +262,7 @@ onMounted(() => { border-radius: 4px; overflow: hidden; width: 100%; + height: 540px; &-content { display: flex; diff --git a/src/views/system/Menu/Setting/utils.ts b/src/views/system/Menu/Setting/utils.ts index 1b48299c..c49f6661 100644 --- a/src/views/system/Menu/Setting/utils.ts +++ b/src/views/system/Menu/Setting/utils.ts @@ -304,3 +304,17 @@ export const getNodeDepth = (node: any) => { } return depth; }; + + +export const handleSorts = (node: any[]) => { + if (!node) return [] + return node.map((item, index) => { + if (item.index !== index) { + item.sortIndex = index + if (item.children) { + item.children = handleSorts(item.children) + } + } + return item + }) +} \ No newline at end of file diff --git a/vite.config.ts b/vite.config.ts index 4f292d21..8aae6161 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -92,7 +92,7 @@ export default defineConfig(({ mode}) => { proxy: { [env.VITE_APP_BASE_API]: { - // target: 'http://192.168.32.226:8844', + // target: 'http://192.168.32.70:8844', // target: 'http://192.168.32.244:8881', target: 'http://120.77.179.54:8844', // 120测试 // target: 'http://192.168.33.46:8844', // 本地开发环境