From f55df1e8ca976c11c622fd9220b554e0771767bc Mon Sep 17 00:00:00 2001
From: qiaochuLei <124648559+qiaochuLei@users.noreply.github.com>
Date: Sun, 8 Oct 2023 09:50:10 +0800
Subject: [PATCH] =?UTF-8?q?fix:=20bug#16958=E3=80=8118772?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* fix: bug#18674
* feat: 系统菜单非选中状态不显示bug
* fix: bug#18772
* fix: bug#16958
---
src/views/device/Instance/index.vue | 35 ++++++++++-
.../components/Metadata/Import/index.vue | 10 ++-
src/views/link/Certificate/Detail/index.vue | 35 ++++++++++-
src/views/link/Certificate/type.d.ts | 3 +-
src/views/system/Menu/Setting/index.vue | 2 +-
src/views/system/NoticeRule/index.vue | 61 +++++++++++++------
6 files changed, 121 insertions(+), 25 deletions(-)
diff --git a/src/views/device/Instance/index.vue b/src/views/device/Instance/index.vue
index 7ee8e92c..efa93c5c 100644
--- a/src/views/device/Instance/index.vue
+++ b/src/views/device/Instance/index.vue
@@ -17,7 +17,9 @@
isCheck
? {
selectedRowKeys: _selectedRowKeys,
- onChange: onSelectChange,
+ onSelect: onSelectChange,
+ onSelectAll: selectAll,
+ onSelectNone: ()=>_selectedRowKeys = []
}
: false
"
@@ -708,10 +710,37 @@ const getActions = (
return actions;
};
-const onSelectChange = (keys: string[]) => {
- _selectedRowKeys.value = [...keys];
+const onSelectChange = (item: any,state: boolean) => {
+ const arr = new Set(_selectedRowKeys.value);
+ // console.log(item, state);
+ if (state) {
+ arr.add(item.id);
+ } else {
+ arr.delete(item.id);
+ }
+ _selectedRowKeys.value = [...arr.values()];
};
+const selectAll = (selected: Boolean, selectedRows: any,changeRows:any) => {
+ if (selected) {
+ changeRows.map((i: any) => {
+ if (!_selectedRowKeys.value.includes(i.id)) {
+ _selectedRowKeys.value.push(i.id)
+ }
+ })
+ } else {
+ const arr = changeRows.map((item: any) => item.id)
+ const _ids: string[] = [];
+ _selectedRowKeys.value.map((i: any) => {
+ if (!arr.includes(i)) {
+ _ids.push(i)
+ }
+ })
+ _selectedRowKeys.value = _ids
+
+ }
+}
+
const handleClick = (dt: any) => {
if (isCheck.value) {
if (_selectedRowKeys.value.includes(dt.id)) {
diff --git a/src/views/device/components/Metadata/Import/index.vue b/src/views/device/components/Metadata/Import/index.vue
index 2ad7fdd4..f269e46c 100644
--- a/src/views/device/components/Metadata/Import/index.vue
+++ b/src/views/device/components/Metadata/Import/index.vue
@@ -510,11 +510,17 @@ const beforeUpload: UploadProps['beforeUpload'] = (file) => {
reader.onload = (json) => {
if(json.target?.result){
const data = JSON.parse(json.target?.result);
-
+ Object.keys(data).forEach((i:any)=>{
+ const map = new Map()
+ data[i].forEach((item:any)=>(
+ map.set(item.id,item)
+ ))
+ data[i] = [...map.values()]
+ })
let check = formModel.metadata === 'jetlinks' ? requiredCheck(data) : aliCheck(data)
if(!check){
onlyMessage('操作成功!')
- formModel.import = json.target?.result;
+ formModel.import = JSON.stringify(data);
}
} else {
onlyMessage('文件内容不能为空', 'error')
diff --git a/src/views/link/Certificate/Detail/index.vue b/src/views/link/Certificate/Detail/index.vue
index f843b403..889a9985 100644
--- a/src/views/link/Certificate/Detail/index.vue
+++ b/src/views/link/Certificate/Detail/index.vue
@@ -47,6 +47,18 @@
placeholder="请输入证书文件"
/>
+
+
+ 客户端
+ 服务端
+
+
+
+
+ 单向认证
+ 双向认证
+
+
({
key: '',
},
description: '',
+ mode:'server',
+ authenticationMethod:'single'
});
const { resetFields, validate, validateInfos } = useForm(
@@ -148,13 +163,25 @@ const { resetFields, validate, validateInfos } = useForm(
{ required: true, message: '请输入或上传文件', trigger: 'blur' },
],
description: [{ max: 200, message: '最多可输入200个字符' }],
+ mode:[{ required: true, message: '请选择证书类型', trigger: 'blur' }],
+ authenticationMethod:[{ required: true, message: '请选择认证方式', trigger: 'blur' }]
}),
);
const onSubmit = () => {
validate()
.then(async (res) => {
- const params = toRaw(formData.value);
+ let params:any = toRaw(formData.value);
+ if(formData.value.mode === 'client'){
+ if(formData.value.authenticationMethod === 'binomial'){
+ params.configs.trust = params.configs.cert
+ }else{
+ params.configs = {
+ key:formData.value.configs.key,
+ trust:formData.value.configs.cert
+ }
+ }
+ }
loading.value = true;
const response =
id === ':id'
@@ -190,6 +217,12 @@ const detail = async (id: string) => {
const type = result.type.value as TypeObjType;
formData.value = {
...result,
+ configs:{
+ key:result.configs.key,
+ cert:result.configs?.cert ? result.configs?.cert : result.configs?.trust
+ },
+ mode: result.mode.value,
+ authenticationMethod: result.authenticationMethod.value,
type,
};
}
diff --git a/src/views/link/Certificate/type.d.ts b/src/views/link/Certificate/type.d.ts
index eb38e3e6..bf772358 100644
--- a/src/views/link/Certificate/type.d.ts
+++ b/src/views/link/Certificate/type.d.ts
@@ -13,7 +13,8 @@ export type FormDataType = {
};
id?: string;
format?: string;
- mode?: object;
+ mode?: object | string;
creatorId?: string;
createTime?: number;
+ authenticationMethod: string;
};
diff --git a/src/views/system/Menu/Setting/index.vue b/src/views/system/Menu/Setting/index.vue
index f2cf0b1b..19a5a8e4 100644
--- a/src/views/system/Menu/Setting/index.vue
+++ b/src/views/system/Menu/Setting/index.vue
@@ -229,7 +229,7 @@ onMounted(() => {
))
console.log(AllMenu);
// 处理排序
- treeData.value = handleSortsArr(systemMenu.value);
+ treeData.value = handleSortsArr(AllMenu);
}
});
});
diff --git a/src/views/system/NoticeRule/index.vue b/src/views/system/NoticeRule/index.vue
index 4d3b093e..cea4280c 100644
--- a/src/views/system/NoticeRule/index.vue
+++ b/src/views/system/NoticeRule/index.vue
@@ -21,7 +21,7 @@
/>
@@ -36,7 +36,7 @@
:key="child.provider"
>
- ([]);
+const tabs = ref([])
const handleSearch = () => {
queryChannelConfig().then((resp) => {
if (resp.status === 200) {
- (resp?.result || []).map((item: any) => {
- dataMap.set(item.provider, item);
- });
- data.value = Array.from(dataMap).map((item) => {
- return item?.[1];
- });
+ // (resp?.result || []).map((item: any) => {
+ // dataMap.set(item.provider, item);
+ // });
+ // data.value = Array.from(dataMap).map((item) => {
+ // return item?.[1];
+ // });
+ const arr = dataSource
+ .map((item: any) => {
+ const _child = item.children.map((i: any) => {
+ const _item = (resp.result || []).find(
+ (t: any) => t?.provider === i?.provider,
+ );
+ return {
+ ...i,
+ ..._item,
+ };
+ });
+ return {
+ ...item,
+ children: _child,
+ };
+ })
+ .filter((it: any) => {
+ return it.children.filter((lt: any) => lt?.id)?.length;
+ })
+ .map((item) => {
+ return {
+ ...item,
+ children: item.children.filter((lt: any) => lt?.id),
+ };
+ });
+ tabs.value = arr
}
});
};
@@ -123,15 +150,15 @@ const onRefresh = () => {
}
onMounted(() => {
- dataMap.clear();
- dataSource.forEach((item) => {
- item.children.map((i) => {
- dataMap.set(i.provider, i);
- });
- });
- data.value = Array.from(dataMap).map((item) => {
- return item?.[1];
- });
+ // dataMap.clear();
+ // dataSource.forEach((item) => {
+ // item.children.map((i) => {
+ // dataMap.set(i.provider, i);
+ // });
+ // });
+ // data.value = Array.from(dataMap).map((item) => {
+ // return item?.[1];
+ // });
handleSearch();
});