feat(sis): 添加门禁设备同步功能

This commit is contained in:
zcxlsm 2025-07-11 17:59:19 +08:00
parent 9279f2246a
commit bce19bf9f8
2 changed files with 26 additions and 11 deletions

View File

@ -2,12 +2,12 @@ import type {
AccessControlForm,
AccessControlQuery,
AccessControlVO,
} from './model';
} from './model'
import type { ID, IDS, PageResult, TreeNode } from '#/api/common';
import type { ID, IDS, PageResult, TreeNode } from '#/api/common'
import { commonExport } from '#/api/helper';
import { requestClient } from '#/api/request';
import { commonExport } from '#/api/helper'
import { requestClient } from '#/api/request'
/**
*
@ -18,7 +18,7 @@ export function accessControlList(params?: AccessControlQuery) {
return requestClient.get<PageResult<AccessControlVO>>(
'/sis/accessControl/list',
{ params },
);
)
}
/**
@ -27,7 +27,7 @@ export function accessControlList(params?: AccessControlQuery) {
* @returns
*/
export function accessControlExport(params?: AccessControlQuery) {
return commonExport('/sis/accessControl/export', params ?? {});
return commonExport('/sis/accessControl/export', params ?? {})
}
/**
@ -36,7 +36,7 @@ export function accessControlExport(params?: AccessControlQuery) {
* @returns
*/
export function accessControlInfo(id: ID) {
return requestClient.get<AccessControlVO>(`/sis/accessControl/${id}`);
return requestClient.get<AccessControlVO>(`/sis/accessControl/${id}`)
}
/**
@ -45,7 +45,7 @@ export function accessControlInfo(id: ID) {
* @returns void
*/
export function accessControlAdd(data: AccessControlForm) {
return requestClient.postWithMsg<void>('/sis/accessControl', data);
return requestClient.postWithMsg<void>('/sis/accessControl', data)
}
/**
@ -54,7 +54,7 @@ export function accessControlAdd(data: AccessControlForm) {
* @returns void
*/
export function accessControlUpdate(data: AccessControlForm) {
return requestClient.putWithMsg<void>('/sis/accessControl', data);
return requestClient.putWithMsg<void>('/sis/accessControl', data)
}
/**
@ -63,7 +63,7 @@ export function accessControlUpdate(data: AccessControlForm) {
* @returns void
*/
export function accessControlRemove(id: ID | IDS) {
return requestClient.deleteWithMsg<void>(`/sis/accessControl/${id}`);
return requestClient.deleteWithMsg<void>(`/sis/accessControl/${id}`)
}
/**
@ -71,5 +71,13 @@ export function accessControlRemove(id: ID | IDS) {
* @returns void
*/
export function queryTree() {
return requestClient.get<TreeNode<Number>[]>(`/sis/accessControl/tree`);
return requestClient.get<TreeNode<Number>[]>(`/sis/accessControl/tree`)
}
/**
* E8门禁
* @returns void
*/
export function accessControlSync() {
return requestClient.get<void>(`/sis/accessControl/sync`)
}

View File

@ -14,6 +14,7 @@ import {
accessControlExport,
accessControlList,
accessControlRemove,
accessControlSync
} from '#/api/sis/accessControl';
import type { AccessControlForm } from '#/api/sis/accessControl/model';
import { commonDownloadExcel } from '#/utils/file/download';
@ -98,6 +99,11 @@ async function handleDelete(row: Required<AccessControlForm>) {
await tableApi.query();
}
async function handleSyncE8() {
await accessControlSync();
await tableApi.query();
}
function handleMultiDelete() {
const rows = tableApi.grid.getCheckboxRecords();
const ids = rows.map((row: Required<AccessControlForm>) => row.id);
@ -129,6 +135,7 @@ function handleDownloadExcel() {
<BasicTable table-title="门禁设备列表">
<template #toolbar-tools>
<Space>
<a-button @click="handleSyncE8">同步</a-button>
<a-button
v-access:code="['property:accessControl:export']"
@click="handleDownloadExcel"