refactor(sis): 重构人员库授权功能

This commit is contained in:
zcxlsm 2025-07-15 18:47:18 +08:00
parent 3fe2ff30f8
commit aad204ae85
3 changed files with 21 additions and 26 deletions

View File

@ -1,6 +1,6 @@
import type { AuthRecordForm, AuthRecordQuery, AuthRecordVO } from './model'; import type { AuthRecordForm, AuthRecordQuery, AuthRecordVO } from './model';
import type { ID, IDS, PageResult } from '#/api/common'; import type { ID, IDS, PageResult, TreeNode } from '#/api/common';
import { commonExport } from '#/api/helper'; import { commonExport } from '#/api/helper';
import { requestClient } from '#/api/request'; import { requestClient } from '#/api/request';
@ -35,12 +35,12 @@ export function authRecordInfo(id: ID) {
} }
/** /**
* * ()
* @param data * @param data
* @returns void * @returns void
*/ */
export function authRecordAdd(data: AuthRecordForm) { export function authRecordAdd(data: AuthRecordForm) {
return requestClient.postWithMsg<void>('/sis/authRecord/add', data); return requestClient.postWithMsg<void>('/sis/authRecord', data);
} }
/** /**
@ -61,14 +61,15 @@ export function authRecordRemove(id: ID | IDS) {
return requestClient.deleteWithMsg<void>(`/sis/authRecord/${id}`); return requestClient.deleteWithMsg<void>(`/sis/authRecord/${id}`);
} }
/**
*
* @param params id
*/
export function authPersonLib(params: any) {
return requestClient.postWithMsg<void>(`/sis/authRecord/authLib`, params);
}
export function queryAuthDevice(id: ID) { export function queryAuthDevice(id: ID) {
return requestClient.get<AuthRecordVO[]>(`/sis/authRecord/authDevice/${id}`); return requestClient.get<AuthRecordVO[]>(`/sis/authRecord/authDevice/${id}`);
} }
/**
*
* @returns void
*/
export function queryTree() {
return requestClient.get<TreeNode<Number>[]>(`/sis/authRecord/authDevice/tree`);
}

View File

@ -26,16 +26,9 @@ export interface AuthRecordForm extends BaseEntity {
libId?: string | number; libId?: string | number;
/** /**
* id * ids
*/ */
imgIds?: string[] | number[]; deviceIds?: string[] | number[];
/**
* id
*/
acIds?: string[] | number[];
issue: boolean;
} }
export interface AuthRecordQuery extends PageQuery { export interface AuthRecordQuery extends PageQuery {

View File

@ -4,8 +4,7 @@ import { onMounted, ref } from 'vue';
import { useVbenModal } from '@vben/common-ui'; import { useVbenModal } from '@vben/common-ui';
import { useBeforeCloseDiff } from '#/utils/popup'; import { useBeforeCloseDiff } from '#/utils/popup';
import { message, Tree } from 'ant-design-vue'; import { message, Tree } from 'ant-design-vue';
import { queryTree } from '#/api/sis/deviceManage'; import { authRecordAdd, queryAuthDevice, queryTree } from '#/api/sis/authRecord';
import { authPersonLib, queryAuthDevice } from '#/api/sis/authRecord';
const emit = defineEmits<{ reload: [] }>(); const emit = defineEmits<{ reload: [] }>();
const title = ref('门禁授权'); const title = ref('门禁授权');
@ -18,7 +17,7 @@ const [BasicModal, modalApi] = useVbenModal({
onClosed: handleClosed, onClosed: handleClosed,
onConfirm: handleConfirm, onConfirm: handleConfirm,
onOpenChange: async (isOpen) => { onOpenChange: async (isOpen) => {
if (!isOpen) { if (isOpen) {
const { id } = modalApi.getData(); const { id } = modalApi.getData();
queryAuthDevice(id).then((res = []) => { queryAuthDevice(id).then((res = []) => {
const arr: any[] = []; const arr: any[] = [];
@ -27,6 +26,9 @@ const [BasicModal, modalApi] = useVbenModal({
checkedKeys.value = arr; checkedKeys.value = arr;
}); });
}); });
}else {
//
checkedKeys.value = [];
} }
}, },
}); });
@ -44,7 +46,7 @@ async function handleConfirm() {
libId: id, libId: id,
deviceIds: arr, deviceIds: arr,
}; };
authPersonLib(params); authRecordAdd(params);
emit('reload'); emit('reload');
modalApi.close(); modalApi.close();
} catch (error) { } catch (error) {
@ -83,11 +85,10 @@ function loadDeviceTree() {
<BasicModal :title="title"> <BasicModal :title="title">
<div class="p-4"> <div class="p-4">
<Tree <Tree
defaultExpandAll
:fieldNames="fieldNames"
v-model:checkedKeys="checkedKeys"
checkable checkable
:fieldNames="fieldNames"
:tree-data="treeData" :tree-data="treeData"
v-model:checkedKeys="checkedKeys"
> >
</Tree> </Tree>
</div> </div>