From 4600fcb4d70e1fc7aa576824496a5589b0caf3a4 Mon Sep 17 00:00:00 2001
From: XieYongHong <18010623010@163.com>
Date: Tue, 12 Mar 2024 18:57:05 +0800
Subject: [PATCH] =?UTF-8?q?fix:=20=E5=9C=BA=E6=99=AF=E8=81=94=E5=8A=A8?=
=?UTF-8?q?=E6=B6=88=E6=81=AF=E9=80=9A=E7=9F=A5=E5=8A=A8=E4=BD=9C=E5=8F=AA?=
=?UTF-8?q?=E6=9C=89=E5=BE=AE=E4=BF=A1=E9=80=9A=E7=9F=A5=E9=9C=80=E8=A6=81?=
=?UTF-8?q?=E6=A0=A1=E9=AA=8C=E6=94=B6=E4=BF=A1=E4=BA=BA=E3=80=81=E6=94=B6?=
=?UTF-8?q?=E4=BF=A1=E4=BA=BA=E9=83=A8=E9=97=A8=E3=80=81=E6=94=B6=E4=BF=A1?=
=?UTF-8?q?=E4=BA=BA=E6=A0=87=E7=AD=BE=E5=BF=85=E5=A1=AB=E5=85=B6=E4=B8=AD?=
=?UTF-8?q?=E4=B8=80=E4=B8=AA=EF=BC=9B=E7=94=A8=E6=88=B7=E6=B2=A1=E6=9C=89?=
=?UTF-8?q?=E4=BB=BB=E4=BD=95=E8=8F=9C=E5=8D=95=E8=B7=B3=E8=BD=AC=E9=97=AE?=
=?UTF-8?q?=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* fix: 场景联动条件修改
* fix: 用户没有任何菜单跳转问题
* fix: 新增分组名为空问题
* fix: 场景联动消息通知动作只有微信通知需要校验收信人、收信人部门、收信人标签必填其中一个
* fix: 隐藏运行状态向前翻多页按钮
---
src/api/device/instance.ts | 2 +-
src/store/menu.ts | 5 +
.../Info/components/InklingModal/index.vue | 1 +
.../Detail/Running/Property/Detail/Table.vue | 7 +
src/views/device/Instance/Import/modal.vue | 2 +-
src/views/device/Instance/index.vue | 121 +--
.../device/components/InklingDevice/index.vue | 654 ++++++++-------
.../device/components/Metadata/Base/Base.vue | 2 +-
.../AccessConfig/components/Cloud/Ctwing.vue | 5 +-
.../action/Notify/VariableDefinitions.vue | 2 +-
.../Save/components/ParamsDropdown/Double.vue | 23 +-
.../Save/components/Terms/ParamsItem.vue | 788 ++++++++++--------
.../components/Right/Save/index.vue | 2 +-
.../NoticeRule/components/Detail/index.vue | 2 +-
src/views/system/Role/RoleLeft/index.vue | 12 +-
src/views/system/Role/RoleRight/index.vue | 4 +-
src/views/user/Login/index.vue | 2 +-
17 files changed, 919 insertions(+), 715 deletions(-)
diff --git a/src/api/device/instance.ts b/src/api/device/instance.ts
index a1b066d4..dbcc52df 100644
--- a/src/api/device/instance.ts
+++ b/src/api/device/instance.ts
@@ -607,7 +607,7 @@ export const metadataMapById = (type: 'device' | 'product', productId: string, d
export const getMetadataMapById = (type: 'device' | 'product', productId: string) => server.get(`/device/metadata/mapping/${type}/${productId}`)
-export const getInkingDevices = (data: string[]) => server.post('/plugin/mapping/device/_all', data)
+export const getInkingDevices = (data: string[],pluginId:any) => server.post(`/plugin/mapping/device/${pluginId}/_all`, data)
export const getProtocolMetadata = (id: string, transport: string) => server.get(`/protocol/${id}/${transport}/metadata`)
diff --git a/src/store/menu.ts b/src/store/menu.ts
index 74594519..2e573be3 100644
--- a/src/store/menu.ts
+++ b/src/store/menu.ts
@@ -123,6 +123,10 @@ export const useMenuStore = defineStore({
const silderMenus = handleSiderMenu(cloneDeep(resultData))
// const { menusData, silderMenus } = filterAsyncRouter(resultData)
handleMenusMap(cloneDeep(menusData), this.handleMenusMapById)
+ if(!menusData.length){
+ menusData.push(AccountMenu)
+ this.handleMenusMapById(AccountMenu)
+ }
menusData.push({
path: '/',
redirect: menusData[0]?.path,
@@ -130,6 +134,7 @@ export const useMenuStore = defineStore({
hideInMenu: true
}
})
+
// console.log(menusData)
// menusData.push(AccountMenu)
this.siderMenus = silderMenus
diff --git a/src/views/device/Instance/Detail/Info/components/InklingModal/index.vue b/src/views/device/Instance/Detail/Info/components/InklingModal/index.vue
index d8cebbc7..c81c0704 100644
--- a/src/views/device/Instance/Detail/Info/components/InklingModal/index.vue
+++ b/src/views/device/Instance/Detail/Info/components/InklingModal/index.vue
@@ -11,6 +11,7 @@
diff --git a/src/views/device/Instance/Detail/Running/Property/Detail/Table.vue b/src/views/device/Instance/Detail/Running/Property/Detail/Table.vue
index 5f990304..d9094f26 100644
--- a/src/views/device/Instance/Detail/Running/Property/Detail/Table.vue
+++ b/src/views/device/Instance/Detail/Running/Property/Detail/Table.vue
@@ -10,6 +10,7 @@
current: (dataSource?.pageIndex || 0) + 1,
pageSize: dataSource?.pageSize || 12,
showSizeChanger: true,
+ showLessItems:true,
total: dataSource?.total || 0,
pageSizeOptions: ['12', '24', '48', '96']
}"
@@ -196,4 +197,10 @@ const _download = (record: any) => {
:deep(.ant-pagination-item) {
display: none !important;
}
+:deep(.ant-pagination-jump-next){
+ display: none !important;
+}
+:deep(.ant-pagination-jump-prev){
+ display: none !important;
+}
\ No newline at end of file
diff --git a/src/views/device/Instance/Import/modal.vue b/src/views/device/Instance/Import/modal.vue
index 64e1a8bc..d40f9381 100644
--- a/src/views/device/Instance/Import/modal.vue
+++ b/src/views/device/Instance/Import/modal.vue
@@ -32,7 +32,7 @@
diff --git a/src/views/device/Instance/index.vue b/src/views/device/Instance/index.vue
index 1db81c2d..326b88bb 100644
--- a/src/views/device/Instance/index.vue
+++ b/src/views/device/Instance/index.vue
@@ -19,7 +19,7 @@
selectedRowKeys: _selectedRowKeys,
onSelect: onSelectChange,
onSelectAll: selectAll,
- onSelectNone: ()=>_selectedRowKeys = []
+ onSelectNone: () => (_selectedRowKeys = []),
}
: false
"
@@ -175,7 +175,12 @@
/>
-
+
{{ slotProps.name }}
@@ -526,13 +531,13 @@ const columns = [
_list.push({
...item,
id: JSON.stringify({
- assetType: 'device',
- targets: [
- {
- type: 'org',
- id: item.id,
- },
- ],
+ assetType: 'device',
+ targets: [
+ {
+ type: 'org',
+ id: item.id,
+ },
+ ],
}),
});
});
@@ -608,7 +613,7 @@ const handleParams = (config: Record) => {
if (Object.keys(_terms).length) {
const url = new URLSearchParams();
Object.keys(_terms).forEach((key) => {
- console.log(_terms[key])
+ console.log(_terms[key]);
url.append(key, _terms[key]);
});
return url.toString();
@@ -721,7 +726,7 @@ const getActions = (
return actions;
};
-const onSelectChange = (item: any,state: boolean) => {
+const onSelectChange = (item: any, state: boolean) => {
const arr = new Set(_selectedRowKeys.value);
// console.log(item, state);
if (state) {
@@ -732,25 +737,24 @@ const onSelectChange = (item: any,state: boolean) => {
_selectedRowKeys.value = [...arr.values()];
};
-const selectAll = (selected: Boolean, selectedRows: any,changeRows:any) => {
+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
-
- }
-}
+ 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) {
@@ -770,17 +774,17 @@ const onCheckChange = () => {
};
const handleGetParams = (p: any) => {
- p?.terms.map((a: any) => {
- return a.terms.map((b: any) => {
- if (b.column.includes('$product-info')) {
- b.column = 'productId'
- b.termType = 'product-info'
- }
- return b
- })
- })
- return p
-}
+ p?.terms.map((a: any) => {
+ return a.terms.map((b: any) => {
+ if (b.column.includes('$product-info')) {
+ b.column = 'productId';
+ b.termType = 'product-info';
+ }
+ return b;
+ });
+ });
+ return p;
+};
const activeAllDevice = () => {
type.value = 'active';
@@ -925,30 +929,47 @@ const saveBtn = () => {
instanceRef.value?.reload();
};
+const dealSearchValue = (item: any) => {
+ let value: any = '';
+ console.log(item);
+ item.value.forEach((i: any, index: number) => {
+ console.log(i);
+ if (index > 0) {
+ value += ',' + i.slice((item.column + ' is ').length);
+ } else {
+ value +=
+ item.column + ' in ' + i.slice((item.column + ' is ').length);
+ }
+ });
+ return value;
+};
const handleSearch = (_params: any) => {
// params.value = _params;
const newParams = (_params?.terms as any[])?.map((item1) => {
item1.terms = item1.terms.map((item2: any) => {
- if (item2.column === 'id$dim-assets') {
- if (item2.termType === 'not') {
- const oldValue = JSON.parse(item2.value)
- oldValue.not = true
- item2.value = JSON.stringify(oldValue)
+ if (item2.column === 'id$dim-assets') {
+ if (item2.termType === 'not') {
+ const oldValue = JSON.parse(item2.value);
+ oldValue.not = true;
+ item2.value = JSON.stringify(oldValue);
+ }
+ delete item2.termType;
}
- delete item2.termType
- }
- if (
+ if (
item2.column &&
['classifiedId', 'accessId', 'accessProvider'].includes(
item2.column,
)
) {
- const oldTermType = item2.termType
- delete item2.termType
+ const oldTermType = item2.termType;
+ delete item2.termType;
return {
...item2,
column: `productId$product-info$${oldTermType}`,
+ value: Array.isArray(item2.value)
+ ? dealSearchValue(item2)
+ : item2.value,
};
}
return item2;
diff --git a/src/views/device/components/InklingDevice/index.vue b/src/views/device/components/InklingDevice/index.vue
index e2259ae5..1534bc74 100644
--- a/src/views/device/components/InklingDevice/index.vue
+++ b/src/views/device/components/InklingDevice/index.vue
@@ -1,361 +1,395 @@
-
-
-
-
-
-
-
-
-
-
- deviceClick(item.id, item)'
- >
-
-
- {{item.name}}
-
-
- ({{ item.id }})
-
-
-
-
-
- deviceClick(item.id, item)'
- >
-
-
-
-
- {{item.name}}
-
-
-
-
- ({{ item.id }})
-
-
-
-
+
-
-
+
+
+
+
+
+
+
+ deviceClick(item.id, item)
+ "
+ >
+
+
+ {{ item.name }}
+
+
+ ({{ item.id }})
+
+
+
+
+
+ deviceClick(item.id, item)"
+ >
+
+
+
+ {{ item.name }}
+
+
+
+
+ ({{ item.id }})
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
\ No newline at end of file
+
diff --git a/src/views/device/components/Metadata/Base/Base.vue b/src/views/device/components/Metadata/Base/Base.vue
index 60f4775f..8ac4a951 100644
--- a/src/views/device/components/Metadata/Base/Base.vue
+++ b/src/views/device/components/Metadata/Base/Base.vue
@@ -423,7 +423,7 @@ const handleAddClick = async (_data?: any, index?: number) => {
const _addData = await tableRef.value.addItem(newObject, index)
nextTick(()=>{
- if(tableContainer.value.classList.value === 'tableContainer'){
+ if(tableContainer?.value?.classList?.value === 'tableContainer'){
tableContainer.value.classList.remove('tableContainer')
}
})
diff --git a/src/views/link/AccessConfig/components/Cloud/Ctwing.vue b/src/views/link/AccessConfig/components/Cloud/Ctwing.vue
index c05205d5..07d3eff7 100644
--- a/src/views/link/AccessConfig/components/Cloud/Ctwing.vue
+++ b/src/views/link/AccessConfig/components/Cloud/Ctwing.vue
@@ -165,7 +165,7 @@
真实设备的PSK,非必填
-
+
5、CTWing端配置产品/设备/分组级订阅,订阅方URL地址请填写: {{
`${origin}/api/ctwing/${randomString()}/notify`
}}(此处订阅地址可以在JetLinks平台中配置完成CTWing网关后再填写)。
@@ -565,4 +565,7 @@ watch(
margin: 15px 0;
justify-content: space-between;
}
+.overLength{
+ overflow-wrap: break-word;
+}
diff --git a/src/views/rule-engine/Scene/Save/action/Notify/VariableDefinitions.vue b/src/views/rule-engine/Scene/Save/action/Notify/VariableDefinitions.vue
index 66cd7a1a..07a485c3 100644
--- a/src/views/rule-engine/Scene/Save/action/Notify/VariableDefinitions.vue
+++ b/src/views/rule-engine/Scene/Save/action/Notify/VariableDefinitions.vue
@@ -213,7 +213,7 @@ const onSave = () =>
const pass = props.variableDefinitions.filter(item => ['user', 'org', 'tag'].includes(getType(item))).some(item => {
return modelRef[item.id]
})
- if(!pass) {
+ if(!pass && props.notify.notifyType === 'weixin') {
onlyMessage('收信人,收信人部门,收信人标签至少填写一个', 'warning')
return reject(false)
}
diff --git a/src/views/rule-engine/Scene/Save/components/ParamsDropdown/Double.vue b/src/views/rule-engine/Scene/Save/components/ParamsDropdown/Double.vue
index c5c6484b..3d65dd01 100644
--- a/src/views/rule-engine/Scene/Save/components/ParamsDropdown/Double.vue
+++ b/src/views/rule-engine/Scene/Save/components/ParamsDropdown/Double.vue
@@ -1,6 +1,7 @@
onSelect(v, l, 0)'
+ @select='(v, l) => onSelect(v, l, index)'
@tabChange='tabChange'
/>
- onSelect(v, l,1)'
@tabChange='tabChange'
- />
+ /> -->
+ +
+ -
-
\ No newline at end of file
+
diff --git a/src/views/system/Dictionary/components/Right/Save/index.vue b/src/views/system/Dictionary/components/Right/Save/index.vue
index 66cf6bb7..4607e486 100644
--- a/src/views/system/Dictionary/components/Right/Save/index.vue
+++ b/src/views/system/Dictionary/components/Right/Save/index.vue
@@ -88,7 +88,7 @@ const validateValue = async (_rule: Rule, value: string) => {
]
})
if (res.status === 200 && res.result) {
- return Promise.reject('value重复');
+ return Promise.reject('value已存在,请重新输入');
} else {
return Promise.resolve();
}
diff --git a/src/views/system/NoticeRule/components/Detail/index.vue b/src/views/system/NoticeRule/components/Detail/index.vue
index 2e228b06..ffa1f62d 100644
--- a/src/views/system/NoticeRule/components/Detail/index.vue
+++ b/src/views/system/NoticeRule/components/Detail/index.vue
@@ -31,7 +31,7 @@
{{ variables }}
-
+
用户权限
{{ obj.role }}
diff --git a/src/views/system/Role/RoleLeft/index.vue b/src/views/system/Role/RoleLeft/index.vue
index 82a8e0b2..9f916e61 100644
--- a/src/views/system/Role/RoleLeft/index.vue
+++ b/src/views/system/Role/RoleLeft/index.vue
@@ -70,12 +70,15 @@ const searchValue = ref()
const inputRef = ref()
const addName = ref()
const selectId = ref()
-const addStatus = ref(false) // 新增分组状态
const queryGroup = async (select?: Boolean, searchName?: string) => {
const params = searchName ? { sorts: [{ name: 'createTime', order: 'desc' }], terms: [{ terms: [{ value: '%' + searchName + '%', termType: 'like', column: 'name' }] }] } : { sorts: [{ name: 'createTime', order: 'desc' }] }
const req: any = await queryRoleGroup(params)
if (req.status === 200) {
listData.value[0].children = req.result
+ if(req.result[req.result.length - 1].id === 'default_group'){
+ req.result.unshift(req.result[req.result.length - 1])
+ req.result.pop()
+ }
// if(req.result.length && select){
// selectGroup(req.result[0].id)
// }
@@ -84,10 +87,10 @@ const queryGroup = async (select?: Boolean, searchName?: string) => {
const addGroup = () => {
addName.value = ''
const newId = randomString()
- listData.value[0].children.unshift({
+ listData.value[0].children.splice(1, 0, ({
name: '',
id: newId
- })
+ }))
selectId.value = newId
nextTick(() => {
inputRef.value.focus()
@@ -95,7 +98,7 @@ const addGroup = () => {
}
const saveGroup = async (data: any) => {
if (addName.value === '') {
- listData.value[0].children.shift()
+ listData.value[0].children.splice(1,1)
} else {
const saveData = {
name: addName.value,
@@ -124,7 +127,6 @@ const searchChange = () => {
const selectGroup = (id: string) => {
selectedKeys.value = [id]
id === 'global_role' ? emit('selectData', '') : emit('selectData', selectedKeys.value)
-
}
const deleteGroup = async (id: string) => {
const res: any = await deleteRoleGroup(id)
diff --git a/src/views/system/Role/RoleRight/index.vue b/src/views/system/Role/RoleRight/index.vue
index 857a0b18..cb0a7547 100644
--- a/src/views/system/Role/RoleRight/index.vue
+++ b/src/views/system/Role/RoleRight/index.vue
@@ -1,5 +1,5 @@
-
+
-
+