From a42e6a8fb6619f7a40e4422daa8d6002284c1621 Mon Sep 17 00:00:00 2001 From: leiqiaochu Date: Mon, 3 Apr 2023 14:56:08 +0800 Subject: [PATCH] fix: bug#11373 --- src/views/init-home/Basic/index.vue | 14 --- src/views/init-home/Role/index.vue | 129 +++++++++++++++++++--------- src/views/init-home/index.vue | 7 +- vite.config.ts | 4 +- 4 files changed, 95 insertions(+), 59 deletions(-) diff --git a/src/views/init-home/Basic/index.vue b/src/views/init-home/Basic/index.vue index 7aa07bc6..cd491755 100644 --- a/src/views/init-home/Basic/index.vue +++ b/src/views/init-home/Basic/index.vue @@ -257,21 +257,7 @@ import { getImage } from '@/utils/comm.ts'; import { Form, message } from 'jetlinks-ui-components'; import { FILE_UPLOAD } from '@/api/comm'; import { - getSystemPermission, save, - addRole, - getRoleMenu, - updateRoleMenu, - getResourcesCurrent, - saveNetwork, - saveProtocol, - getProtocol, - saveAccessConfig, - saveProduct, - saveDevice, - changeDeploy, - deployDevice, - saveInit, } from '@/api/initHome'; import { LocalStore } from '@/utils/comm'; import { TOKEN_KEY } from '@/utils/variable'; diff --git a/src/views/init-home/Role/index.vue b/src/views/init-home/Role/index.vue index 299820c2..7f854ba4 100644 --- a/src/views/init-home/Role/index.vue +++ b/src/views/init-home/Role/index.vue @@ -104,48 +104,99 @@ const addRoleData = async () => { return resolve(true); } let Count = 0; - keys.value.forEach(async (item, index) => { - const _itemData = RoleData[item]; - // 添加该角色 - const res = await addRole(_itemData); - if (res.status === 200) { - const menuTree = await getRoleMenu(res.result.id); - if (menuTree.status === 200) { - const _roleData = (RoleMenuData[item] as []).filter( - (roleItem: any) => { - const _menu = findMenuByRole( - menuTree.result, - roleItem.code, - ); - if (_menu) { - roleItem.id = _menu.id; - roleItem.parentId = _menu.parentId; - roleItem.createTime = _menu.createTime; - return true; - } - return false; - }, - ); - //更新权限 - const roleRes = await updateRoleMenu(res.result.id, { - menus: _roleData, - }); - if (roleRes.status === 200) { - Count += 1; - } - if (index === keys.value.length - 1) { - resolve(Count === keys.value.length); - } - } else if (index === keys.value.length - 1) { - resolve(Count === keys.value.length); + let allPromise = []; + allPromise = keys.value.map(async (item, index) => { + return await saveRoleData(item); + // const _itemData = RoleData[item]; + // // 添加该角色 + // const res = await addRole(_itemData); + // if (res.status === 200) { + // const menuTree = await getRoleMenu(res.result.id); + // if (menuTree.status === 200) { + // const _roleData = (RoleMenuData[item] as []).filter( + // (roleItem: any) => { + // const _menu = findMenuByRole( + // menuTree.result, + // roleItem.code, + // ); + // if (_menu) { + // roleItem.id = _menu.id; + // roleItem.parentId = _menu.parentId; + // roleItem.createTime = _menu.createTime; + // return true; + // } + // return false; + // }, + // ); + // //更新权限 + // const roleRes = await updateRoleMenu(res.result.id, { + // menus: _roleData, + // }); + // if (roleRes.status === 200) { + // // Count += 1; + // resolve(true); + // } + // // if (index === keys.value.length - 1) { + // // resolve(Count === keys.value.length); + // // } + // } else if (index === keys.value.length - 1) { + // resolve(Count === keys.value.length); + // } + // } else if (index === keys.value.length - 1) { + // resolve(Count === keys.value.length); + // roleData.isSucessRole = 2; + // } else { + // resolve(false); + // } + }); + Promise.all(allPromise).then((item) => { + resolve( + item.every((i) => { + return i; + }), + ); + }); + }); +}; + +const saveRoleData = (item: any) => { + return new Promise(async (resolve) => { + const _itemData = RoleData[item]; + // 添加该角色 + const res = await addRole(_itemData); + if (res.status === 200) { + const menuTree = await getRoleMenu(res.result.id); + if (menuTree.status === 200) { + const _roleData = (RoleMenuData[item] as []).filter( + (roleItem: any) => { + const _menu = findMenuByRole( + menuTree.result, + roleItem.code, + ); + if (_menu) { + roleItem.id = _menu.id; + roleItem.parentId = _menu.parentId; + roleItem.createTime = _menu.createTime; + return true; + } + return false; + }, + ); + //更新权限 + const roleRes = await updateRoleMenu(res.result.id, { + menus: _roleData, + }); + if (roleRes.status === 200) { + resolve(true); + } else { + resolve(false); } - } else if (index === keys.value.length - 1) { - resolve(Count === keys.value.length); - roleData.isSucessRole = 2; - }else{ + } else { resolve(false); } - }); + } else { + resolve(false); + } }); }; defineExpose({ diff --git a/src/views/init-home/index.vue b/src/views/init-home/index.vue index e7696942..021029c0 100644 --- a/src/views/init-home/index.vue +++ b/src/views/init-home/index.vue @@ -60,12 +60,10 @@