From 635fd513fc855f48e8eeabfe06a5dc01978aae0e Mon Sep 17 00:00:00 2001
From: XieYongHong <18010623010@163.com>
Date: Sat, 15 Jul 2023 18:06:33 +0800
Subject: [PATCH 1/8] fix: bug#16430
---
src/views/device/Instance/Import/file.vue | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/src/views/device/Instance/Import/file.vue b/src/views/device/Instance/Import/file.vue
index 2d9c77b7..85ba7a97 100644
--- a/src/views/device/Instance/Import/file.vue
+++ b/src/views/device/Instance/Import/file.vue
@@ -19,11 +19,7 @@
:maxCount="1"
:showUploadList="false"
@change="uploadChange"
- :accept="
- modelRef?.file?.fileType
- ? `.${modelRef?.file?.fileType}`
- : '.xlsx'
- "
+ :accept="'.xlsx,.csv'"
:before-upload="beforeUpload"
:disabled="disabled"
@drop="handleDrop"
@@ -117,18 +113,19 @@ const downFile = async (type: string) => {
};
const beforeUpload = (_file: any) => {
- const fileType = modelRef.file?.fileType === 'csv' ? 'csv' : 'xlsx';
+ // const fileType = modelRef.file?.fileType === 'csv' ? 'csv' : 'xlsx';
const isCsv = _file.type === 'text/csv';
const isXlsx =
_file.type ===
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
- if (!isCsv && fileType !== 'xlsx') {
+ if (!isCsv) {
onlyMessage('请上传.csv格式文件', 'warning');
}
- if (!isXlsx && fileType !== 'csv') {
+ if (!isXlsx) {
onlyMessage('请上传.xlsx格式文件', 'warning');
}
- return (isCsv && fileType !== 'xlsx') || (isXlsx && fileType !== 'csv');
+ // return (isCsv && fileType !== 'xlsx') || (isXlsx && fileType !== 'csv');
+ return isCsv || isXlsx;
};
const handleDrop = () => {};
From e9852498766dbefc65f3764dad1730b7d1d2f334 Mon Sep 17 00:00:00 2001
From: XieYongHong <18010623010@163.com>
Date: Sat, 15 Jul 2023 18:58:54 +0800
Subject: [PATCH 2/8] fix: bug#15968
---
src/views/device/Instance/Import/file.vue | 10 +++++-----
src/views/init-home/data/baseMenu.ts | 15 ++++++---------
yarn.lock | 4 ++--
3 files changed, 13 insertions(+), 16 deletions(-)
diff --git a/src/views/device/Instance/Import/file.vue b/src/views/device/Instance/Import/file.vue
index 85ba7a97..e198c76d 100644
--- a/src/views/device/Instance/Import/file.vue
+++ b/src/views/device/Instance/Import/file.vue
@@ -118,12 +118,12 @@ const beforeUpload = (_file: any) => {
const isXlsx =
_file.type ===
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
- if (!isCsv) {
- onlyMessage('请上传.csv格式文件', 'warning');
- }
- if (!isXlsx) {
- onlyMessage('请上传.xlsx格式文件', 'warning');
+ if (!isCsv && !isXlsx) {
+ onlyMessage('请上传.xlsx或.csv格式文件', 'warning');
}
+ // if (!isXlsx) {
+ // onlyMessage('请上传.xlsx格式文件', 'warning');
+ // }
// return (isCsv && fileType !== 'xlsx') || (isXlsx && fileType !== 'csv');
return isCsv || isXlsx;
};
diff --git a/src/views/init-home/data/baseMenu.ts b/src/views/init-home/data/baseMenu.ts
index 4d6faeae..a8211b1b 100644
--- a/src/views/init-home/data/baseMenu.ts
+++ b/src/views/init-home/data/baseMenu.ts
@@ -973,10 +973,6 @@ export default [
permission: 'gb28181-cascade',
actions: ['query'],
},
- {
- permission: 'plugin-driver',
- actions: ['query'],
- },
],
},
{
@@ -1019,10 +1015,6 @@ export default [
permission: 'gb28181-cascade',
actions: ['query'],
},
- {
- permission: 'plugin-driver',
- actions: ['query'],
- },
],
},
],
@@ -1437,7 +1429,12 @@ export default [
url: '/iot/link/plugin',
icon: 'BoxPlotOutlined',
showPage: ['plugin-driver'],
- permissions: [],
+ permissions: [
+ {
+ permission: 'plugin-driver',
+ actions: ['query'],
+ },
+ ],
buttons: [
{
id: 'view',
diff --git a/yarn.lock b/yarn.lock
index 4ef587f9..4226f28e 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3837,8 +3837,8 @@ jetlinks-ui-components@^1.0.23:
jetlinks-ui-components@^1.0.24:
version "1.0.24"
- resolved "http://registry.jetlinks.cn/jetlinks-ui-components/-/jetlinks-ui-components-1.0.24.tgz#a1262b3a735a01cd1fd9801406d16291b5070367"
- integrity sha512-P4aolPQb1/wq4edN0AZ6WSavVAvQ+KEOEFzAarL/0dy6Oz3tTVemZmtgu20TsGbrNnEe/LheMu0QpvmkOq+3dg==
+ resolved "http://registry.jetlinks.cn/jetlinks-ui-components/-/jetlinks-ui-components-1.0.24.tgz#e15551fb114e4cb8752db962423b3ca17d9389c1"
+ integrity sha512-TGyQ9SmdkoNkZScfYvfBF1/P1oBzXkxMuzR+DiNnof6CbSlYfPrkRsJIpOIZUjqg2o/6dyKLDK8gOxbxWm8wjA==
dependencies:
"@vueuse/core" "^9.12.0"
"@vueuse/router" "^9.13.0"
From 1b8168786e589162856f64149c9da17fe7b78c4a Mon Sep 17 00:00:00 2001
From: XieYongHong <18010623010@163.com>
Date: Sat, 15 Jul 2023 19:04:26 +0800
Subject: [PATCH 3/8] fix: bug#16325
---
src/views/edge/Resource/index.vue | 19 +++----------------
1 file changed, 3 insertions(+), 16 deletions(-)
diff --git a/src/views/edge/Resource/index.vue b/src/views/edge/Resource/index.vue
index 5953f4b6..09ef1737 100644
--- a/src/views/edge/Resource/index.vue
+++ b/src/views/edge/Resource/index.vue
@@ -44,10 +44,7 @@
通讯协议
{{
- options.find(
- (i) =>
- i.value === slotProps.category,
- )?.label || slotProps.category
+ slotProps.category
}}
@@ -97,8 +94,7 @@
{{
- options.find((i) => i.value === slotProps.category)
- ?.label || slotProps.category
+ slotProps.category
}}
@@ -173,14 +169,6 @@ const statusMap = new Map();
statusMap.set('enabled', 'processing');
statusMap.set('disabled', 'error');
-const options = [
- { label: 'UA接入', value: 'OPC_UA' },
- { label: 'Modbus TCP接入', value: 'MODBUS_TCP' },
- { label: 'S7-200接入', value: 'snap7' },
- { label: 'BACnet接入', value: 'BACNetIp' },
- { label: 'MODBUS_RTU接入', value: 'MODBUS_RTU' },
-];
-
const params = ref>({});
const edgeResourceRef = ref>({});
const settingVisible = ref(false);
@@ -218,9 +206,8 @@ const columns = [
}).then((resp: any) => {
const arrMap = new Map()
resp.result.data.forEach((item: any) => {
- const labelItem = options.find(a => a.value === item.category)
arrMap.set(item.category, {
- label: labelItem?.label || item.category,
+ label: item.category,
value: item.category,
})
})
From 6093e544b91ccbfc08ccce1d2d5664c3cbf02fbd Mon Sep 17 00:00:00 2001
From: XieYongHong <18010623010@163.com>
Date: Sat, 15 Jul 2023 19:46:41 +0800
Subject: [PATCH 4/8] fix: bug#16179
---
.../Role/Detail/components/PermissTree.vue | 18 ++++++++++-
.../system/Role/Detail/components/util.ts | 30 +++++++++++++++++++
2 files changed, 47 insertions(+), 1 deletion(-)
create mode 100644 src/views/system/Role/Detail/components/util.ts
diff --git a/src/views/system/Role/Detail/components/PermissTree.vue b/src/views/system/Role/Detail/components/PermissTree.vue
index 7417c0b1..9a386026 100644
--- a/src/views/system/Role/Detail/components/PermissTree.vue
+++ b/src/views/system/Role/Detail/components/PermissTree.vue
@@ -48,6 +48,7 @@
+
{
};
init();
+const { PermissionsMap } = useIndirectMenusMap(tableData)
+
function getAllPermiss() {
const id = route.params.id as string;
getPrimissTree_api(id).then((resp) => {
@@ -297,6 +301,16 @@ function getAllPermiss() {
}
});
}
+
+const hasIndirectMenus = (data: any) => {
+ if (data.children) {
+ const has = data.children.find(item => item.indirectMenus)
+ console.log(has)
+ } else if (data?.indirectMenus) {
+ console.log(data.indirectMenus)
+ }
+}
+
/**
* 菜单权限改变事件
* @param row 触发的项
@@ -306,7 +320,9 @@ function menuChange(
row: tableItemType,
setButtonBool: boolean = true,
): undefined {
+ console.log('menuChange', row)
// 判断是否需要对子菜单及操作权限进行选择
+ hasIndirectMenus(row)
if (setButtonBool) {
if (row.buttons && row.buttons.length > 0)
row.buttons.forEach((button) => {
@@ -358,7 +374,7 @@ function menuChange(
}
emits('update:selectItems', selectList); // 选中的项传回父组件
- treeRef.value.$forceUpdate();
+ proxy?.$forceUpdate?.();
}
/**
diff --git a/src/views/system/Role/Detail/components/util.ts b/src/views/system/Role/Detail/components/util.ts
new file mode 100644
index 00000000..864d0bf4
--- /dev/null
+++ b/src/views/system/Role/Detail/components/util.ts
@@ -0,0 +1,30 @@
+import type {Ref} from "vue";
+import {watch} from "vue";
+
+const handlePermissionsMap = (data: any, map: Map, parentId: string[] = []) => {
+ data.forEach((item: any) => {
+ if (item.children) {
+ handlePermissionsMap(item.children,map, parentId.concat(item.id) )
+ } else {
+ map.set(item.id, {
+ parentIds: parentId,
+ name: item.name
+ })
+ }
+ })
+}
+
+export const useIndirectMenusMap = (tableData: Ref) => {
+ const PermissionsMap = ref