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, AccessControlForm,
AccessControlQuery, AccessControlQuery,
AccessControlVO, 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 { commonExport } from '#/api/helper'
import { requestClient } from '#/api/request'; import { requestClient } from '#/api/request'
/** /**
* *
@ -18,7 +18,7 @@ export function accessControlList(params?: AccessControlQuery) {
return requestClient.get<PageResult<AccessControlVO>>( return requestClient.get<PageResult<AccessControlVO>>(
'/sis/accessControl/list', '/sis/accessControl/list',
{ params }, { params },
); )
} }
/** /**
@ -27,7 +27,7 @@ export function accessControlList(params?: AccessControlQuery) {
* @returns * @returns
*/ */
export function accessControlExport(params?: AccessControlQuery) { 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 * @returns
*/ */
export function accessControlInfo(id: ID) { 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 * @returns void
*/ */
export function accessControlAdd(data: AccessControlForm) { 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 * @returns void
*/ */
export function accessControlUpdate(data: AccessControlForm) { 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 * @returns void
*/ */
export function accessControlRemove(id: ID | IDS) { 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 * @returns void
*/ */
export function queryTree() { 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, accessControlExport,
accessControlList, accessControlList,
accessControlRemove, accessControlRemove,
accessControlSync
} from '#/api/sis/accessControl'; } from '#/api/sis/accessControl';
import type { AccessControlForm } from '#/api/sis/accessControl/model'; import type { AccessControlForm } from '#/api/sis/accessControl/model';
import { commonDownloadExcel } from '#/utils/file/download'; import { commonDownloadExcel } from '#/utils/file/download';
@ -98,6 +99,11 @@ async function handleDelete(row: Required<AccessControlForm>) {
await tableApi.query(); await tableApi.query();
} }
async function handleSyncE8() {
await accessControlSync();
await tableApi.query();
}
function handleMultiDelete() { function handleMultiDelete() {
const rows = tableApi.grid.getCheckboxRecords(); const rows = tableApi.grid.getCheckboxRecords();
const ids = rows.map((row: Required<AccessControlForm>) => row.id); const ids = rows.map((row: Required<AccessControlForm>) => row.id);
@ -129,6 +135,7 @@ function handleDownloadExcel() {
<BasicTable table-title="门禁设备列表"> <BasicTable table-title="门禁设备列表">
<template #toolbar-tools> <template #toolbar-tools>
<Space> <Space>
<a-button @click="handleSyncE8">同步</a-button>
<a-button <a-button
v-access:code="['property:accessControl:export']" v-access:code="['property:accessControl:export']"
@click="handleDownloadExcel" @click="handleDownloadExcel"