From bef5cc55e9b2ec78ab23e25e0e4b7f185561ce53 Mon Sep 17 00:00:00 2001 From: 15683799673 Date: Tue, 1 Jul 2025 08:44:21 +0800 Subject: [PATCH] =?UTF-8?q?=E9=97=A8=E7=A6=81=E6=8E=88=E6=9D=83=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/src/api/common.d.ts | 1 + apps/web-antd/src/api/sis/authRecord/index.ts | 2 +- .../src/api/sis/authRecord/model.d.ts | 14 ++++---- .../views/sis/personLibImg/imgAuth-modal.vue | 36 +++++++++++++------ .../src/views/sis/personLibImg/index.vue | 4 ++- 5 files changed, 37 insertions(+), 20 deletions(-) diff --git a/apps/web-antd/src/api/common.d.ts b/apps/web-antd/src/api/common.d.ts index 2b10b322..a2b1cdfb 100644 --- a/apps/web-antd/src/api/common.d.ts +++ b/apps/web-antd/src/api/common.d.ts @@ -51,5 +51,6 @@ export interface TreeNode { title?: string; key?:any + disabled: boolean } diff --git a/apps/web-antd/src/api/sis/authRecord/index.ts b/apps/web-antd/src/api/sis/authRecord/index.ts index 0c53942f..9a1a4845 100644 --- a/apps/web-antd/src/api/sis/authRecord/index.ts +++ b/apps/web-antd/src/api/sis/authRecord/index.ts @@ -39,7 +39,7 @@ export function authRecordInfo(id: ID) { * @returns void */ export function authRecordAdd(data: AuthRecordForm) { - return requestClient.postWithMsg('/sis/authRecord', data); + return requestClient.postWithMsg('/sis/authRecord/add', data); } /** diff --git a/apps/web-antd/src/api/sis/authRecord/model.d.ts b/apps/web-antd/src/api/sis/authRecord/model.d.ts index 92bd8d19..fdbd9caa 100644 --- a/apps/web-antd/src/api/sis/authRecord/model.d.ts +++ b/apps/web-antd/src/api/sis/authRecord/model.d.ts @@ -1,4 +1,4 @@ -import type { PageQuery, BaseEntity } from '#/api/common'; +import type { BaseEntity, PageQuery } from '#/api/common'; export interface AuthRecordVO { /** @@ -15,25 +15,25 @@ export interface AuthRecordVO { * 门禁id */ acdId: string | number; - } export interface AuthRecordForm extends BaseEntity { /** * 主键id */ - id?: string | number; + libId?: string | number; /** * 人像id */ - imgId?: string | number; + imgIds?: string[] | number[]; /** * 门禁id */ - acdId?: string | number; + acIds?: string[] | number[]; + issue: boolean; } export interface AuthRecordQuery extends PageQuery { @@ -48,7 +48,7 @@ export interface AuthRecordQuery extends PageQuery { acdId?: string | number; /** - * 日期范围参数 - */ + * 日期范围参数 + */ params?: any; } diff --git a/apps/web-antd/src/views/sis/personLibImg/imgAuth-modal.vue b/apps/web-antd/src/views/sis/personLibImg/imgAuth-modal.vue index 420dc956..badb683c 100644 --- a/apps/web-antd/src/views/sis/personLibImg/imgAuth-modal.vue +++ b/apps/web-antd/src/views/sis/personLibImg/imgAuth-modal.vue @@ -5,11 +5,12 @@ import { useVbenModal } from '@vben/common-ui'; import { useBeforeCloseDiff } from '#/utils/popup'; import { Switch, Transfer, Tree } from 'ant-design-vue'; import { queryTree } from '#/api/sis/accessControl'; +import { authRecordAdd } from '#/api/sis/authRecord'; import type { TreeNode } from '#/api/common'; +import type { AuthRecordForm } from '#/api/sis/authRecord/model'; const emit = defineEmits<{ reload: [] }>(); const title = ref('门禁授权'); - const { onBeforeClose } = useBeforeCloseDiff({}); const [BasicModal, modalApi] = useVbenModal({ @@ -19,20 +20,29 @@ const [BasicModal, modalApi] = useVbenModal({ onBeforeClose, onClosed: handleClosed, onConfirm: handleConfirm, + onOpenChange: async (isOpen) => { + if (!isOpen) { + checked.value = false; + targetKeys.value = [] + } + } }); async function handleConfirm() { try { modalApi.lock(true); - - /*const { valid } = await formApi.validate(); - if (!valid) { - return; - } - const data = cloneDeep(await formApi.getValues()); - await (isUpdate.value ? personLibImgUpdate(data) : personLibImgAdd(data));*/ - - // resetInitialized(); + const { ids, libId } = modalApi.getData() as { + ids?: number[] | string[]; + libId: number | string; + }; + const params: AuthRecordForm = { + libId, + imgIds: ids, + acIds: targetKeys.value, + issue: checked.value + }; + const res = await authRecordAdd(params); + console.log(res); emit('reload'); modalApi.close(); } catch (error) { @@ -60,6 +70,10 @@ function handleTreeData(treeData: TreeNode[] | any[], datasource: TreeNode[]) { treeData.forEach((item) => { item.title = item.label; item.key = item.code; + // 如果不是门禁,则 + if (item.level != 5) { + item.disabled = true; + } datasource.push(item); if (item.children) { handleTreeData(item.children, datasource); @@ -102,7 +116,7 @@ function isChecked(
diff --git a/apps/web-antd/src/views/sis/personLibImg/index.vue b/apps/web-antd/src/views/sis/personLibImg/index.vue index e5eb53c9..3b5cfb7e 100644 --- a/apps/web-antd/src/views/sis/personLibImg/index.vue +++ b/apps/web-antd/src/views/sis/personLibImg/index.vue @@ -129,7 +129,9 @@ function handleDownloadExcel() { * 对图像进行门禁授权 */ function accessControlAuth() { - authModalApi.setData({}); + const rows = tableApi.grid.getCheckboxRecords(); + const ids = rows.map((row: Required) => row.id); + authModalApi.setData({ ids, libId: rows[0].libId }); authModalApi.open(); }