fix: bug#10706-1

This commit is contained in:
JiangQiming 2023-03-22 19:45:54 +08:00
parent bccff19042
commit 4e123ac64c
2 changed files with 71 additions and 18 deletions

View File

@ -18,6 +18,8 @@ export const getDeviceOrProductList_api = (data: object) => server.post(`/device
export const getDeviceList_api = (data: object) => server.post(`/device/instance/_query`, data);
// 根据产品的id获取产品的权限
export const getPermission_api = (type: 'device' | 'product', ids: object, id: string) => server.post(`/assets/bindings/${type}/org/${id}/_query`, ids);
// 获取绑定的权限
export const getBindingsPermission = (type: 'device' | 'product', ids: string[]) => server.post(`/assets/bindings/${type}`, ids);
// 获取产品的权限字典
export const getPermissionDict_api = () => server.get(`/assets/bindings/product/permissions`);

View File

@ -139,6 +139,7 @@ import {
getDeviceList_api,
getPermission_api,
bindDeviceOrProductList_api,
getBindingsPermission,
} from '@/api/system/department';
import { message } from 'jetlinks-ui-components';
import { dictType } from '../typing';
@ -295,22 +296,17 @@ const table: any = {
const { pageIndex, pageSize, total, data } =
resp.result as resultType;
const ids = data.map((item) => item.id);
getPermission_api(props.assetType, ids, parentId).then(
// fix: bug#10706
getBindingsPermission(props.assetType, ids).then(
(perResp: any) => {
const permissionObj = {};
perResp.result.forEach((item: any) => {
permissionObj[item.assetId] = props.allPermission
.filter((permission) =>
item.allPermissions.includes(permission.id),
)
.map((item) => ({
label: item.name,
value: item.id,
data.forEach((item) => {
item.permissionList = perResp.result
.find((f: any) => f.assetId === item.id)
.permissionInfoList?.map((m: any) => ({
label: m.name,
value: m.id,
disabled: true,
}));
});
data.forEach((item) => {
item.permissionList = permissionObj[item.id];
item.selectPermissions = ['read'];
//
@ -331,11 +327,10 @@ const table: any = {
};
}
});
resolve({
code: 200,
result: {
data: data,
data: data.sort((a, b) => a.createTime - b.createTime),
pageIndex,
pageSize,
total,
@ -344,6 +339,57 @@ const table: any = {
});
},
);
// getPermission_api(props.assetType, ids, parentId).then(
// (perResp: any) => {
// console.log('perResp: ', perResp);
// console.log('props.allPermission: ', props.allPermission);
// const permissionObj = {};
// perResp.result.forEach((item: any) => {
// permissionObj[item.assetId] = props.allPermission
// .filter((permission) =>
// item.allPermissions.includes(permission.id),
// )
// .map((item) => ({
// label: item.name,
// value: item.id,
// disabled: true,
// }));
// });
// data.forEach((item) => {
// item.permissionList = permissionObj[item.id];
// item.selectPermissions = ['read'];
// //
// if (props.assetType === 'product') {
// item.state = {
// value:
// item.state === 1
// ? 'online'
// : item.state === 0
// ? 'offline'
// : '',
// text:
// item.state === 1
// ? ''
// : item.state === 0
// ? ''
// : '',
// };
// }
// });
// resolve({
// code: 200,
// result: {
// data: data,
// pageIndex,
// pageSize,
// total,
// },
// status: 200,
// });
// },
// );
});
}),
//
@ -398,10 +444,15 @@ const table: any = {
},
};
table.init();
const selectRow = (keys:string[], rows:any[]) => {
const okRows = rows.filter(item=>!!item.permissionList.find((permiss:any)=>permiss.value === 'share'));
const selectRow = (keys: string[], rows: any[]) => {
const okRows = rows.filter(
(item) =>
!!item.permissionList.find(
(permiss: any) => permiss.value === 'share',
),
);
table.selectedRows = okRows;
table._selectedRowKeys.value = okRows.map(item=>item.id)
table._selectedRowKeys.value = okRows.map((item) => item.id);
};
</script>