feat(property): 1

This commit is contained in:
2025-07-28 15:24:45 +08:00
parent 68bb70ee72
commit 7f542de90b
5 changed files with 174 additions and 138 deletions

View File

@@ -1,11 +1,10 @@
import type { FormSchemaGetter } from '#/adapter/form';
import type { VxeGridProps } from '#/adapter/vxe-table';
import { getDictOptions } from '#/utils/dict';
import { renderDict } from '#/utils/render';
import { resident_unitList } from '#/api/property/resident/unit';
import { authGroupList } from '#/api/sis/authGroup';
import type { AuthGroupVO, AuthGroupQuery } from '#/api/sis/authGroup/model';
import { toRaw } from 'vue';
import type { FormSchemaGetter } from '#/adapter/form'
import type { VxeGridProps } from '#/adapter/vxe-table'
import { getDictOptions } from '#/utils/dict'
import { renderDict } from '#/utils/render'
import { resident_unitList } from '#/api/property/resident/unit'
import { authGroupList } from '#/api/sis/authGroup'
import type { AuthGroupVO, AuthGroupQuery } from '#/api/sis/authGroup/model'
export const querySchema: FormSchemaGetter = () => [
{
@@ -37,7 +36,7 @@ export const querySchema: FormSchemaGetter = () => [
fieldName: 'state',
label: '状态',
},
];
]
export const columns: VxeGridProps['columns'] = [
{ type: 'checkbox', width: 60 },
@@ -52,7 +51,7 @@ export const columns: VxeGridProps['columns'] = [
// },
{
title: '员工编号',
field: 'userId',
field: 'id',
width: 100,
},
{
@@ -70,7 +69,7 @@ export const columns: VxeGridProps['columns'] = [
field: 'gender',
slots: {
default: ({ row }) => {
return renderDict(row.gender, 'sys_user_sex');
return renderDict(row.gender, 'sys_user_sex')
},
},
width: 100,
@@ -105,7 +104,7 @@ export const columns: VxeGridProps['columns'] = [
field: 'state',
slots: {
default: ({ row }) => {
return renderDict(row.state, 'wy_rzryzt');
return renderDict(row.state, 'wy_rzryzt')
},
},
width: 100,
@@ -122,9 +121,9 @@ export const columns: VxeGridProps['columns'] = [
title: '操作',
minWidth: 180,
},
];
]
let authGroupArr: AuthGroupVO[] = [];
let authGroupArr: AuthGroupVO[] = []
export const modalSchema: FormSchemaGetter = () => [
{
label: '主键id',
@@ -140,17 +139,20 @@ export const modalSchema: FormSchemaGetter = () => [
fieldName: 'userName',
component: 'Input',
rules: 'required',
formItemClass: 'col-span-1',
},
{
label: '联系电话',
fieldName: 'phone',
component: 'Input',
rules: 'required',
formItemClass: 'col-span-1',
},
{
label: '性别',
fieldName: 'gender',
component: 'Select',
formItemClass: 'col-span-2',
componentProps: {
options: getDictOptions('sys_user_sex'),
},
@@ -161,20 +163,23 @@ export const modalSchema: FormSchemaGetter = () => [
fieldName: 'idCard',
component: 'Input',
rules: 'required',
formItemClass: 'col-span-1',
},
{
label: '邮箱',
fieldName: 'email',
component: 'Input',
formItemClass: 'col-span-1',
},
{
label: '人员状态',
fieldName: 'state',
component: 'Select',
componentProps: {
options: getDictOptions('wy_rzryzt'),
options: getDictOptions('wy_rzryzt')
},
rules: 'selectRequired',
formItemClass: 'col-span-2',
},
// {
// label: '入住员工',
@@ -187,7 +192,7 @@ export const modalSchema: FormSchemaGetter = () => [
label: '所属单位',
fieldName: 'unitId',
component: 'Select',
formItemClass: 'col-span-2',
formItemClass: 'col-span-4',
rules: 'selectRequired',
},
// {
@@ -207,37 +212,66 @@ export const modalSchema: FormSchemaGetter = () => [
valueFormat: 'YYYY-MM-DD HH:mm:ss',
},
rules: 'required',
formItemClass: 'col-span-1',
},
{
label: '车牌号码',
fieldName: 'carNumber',
component: 'Input',
formItemClass: 'col-span-3',
},
{
label: '修改权限',
fieldName: 'authSwitch',
component: 'Switch',
formItemClass: 'col-span-1',
componentProps: {
class: 'w-auto',
},
defaultValue: false,
dependencies: {
show: (values) => {
return typeof values.id !== 'undefined'
},
triggerFields: ['id'],
},
},
{
label: '授权期限',
fieldName: 'authTime',
component: 'RangePicker',
formItemClass: 'col-span-1',
componentProps: {
class: 'w-auto',
showTime: true,
format: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'YYYY-MM-DD HH:mm:ss',
},
dependencies: {
show: (values) => {
return typeof values.id !== 'undefined';
return typeof values.id !== 'undefined'
},
triggerFields: ['id'],
disabled:(values) => {
return !values.authSwitch
},
triggerFields: ['id', 'authSwitch'],
},
},
{
label: '通行权限组',
fieldName: 'authGroupId',
component: 'ApiSelect',
formItemClass: 'col-span-2',
dependencies: {
show: (values) => {
return typeof values.id !== 'undefined';
return typeof values.id !== 'undefined'
},
triggerFields: ['id'],
disabled:(values) => {
return !values.authSwitch
},
triggerFields: ['id', 'authSwitch'],
},
componentProps: {
allowClear: true,
@@ -248,14 +282,13 @@ export const modalSchema: FormSchemaGetter = () => [
api: async () => {
if (!authGroupArr || authGroupArr.length == 0) {
const params: AuthGroupQuery = {
groupType: 2,
pageNum: 1,
pageSize: 500,
};
const res = await authGroupList(params);
authGroupArr = res.rows;
}
const res = await authGroupList(params)
authGroupArr = res.rows
}
return authGroupArr;
return authGroupArr
},
},
},
@@ -267,15 +300,15 @@ export const modalSchema: FormSchemaGetter = () => [
// accept: 'image/*', // 可选拓展名或者mime类型 ,拼接
maxCount: 1, // 最大上传文件数 默认为1 为1会绑定为string而非string[]类型
},
formItemClass: 'col-span-2',
formItemClass: 'col-span-3',
},
{
label: '备注',
fieldName: 'remark',
component: 'Textarea',
formItemClass: 'col-span-2',
formItemClass: 'col-span-3',
},
];
]
//门禁记录
export const accessControlColumns: VxeGridProps['columns'] = [
@@ -311,7 +344,7 @@ export const accessControlColumns: VxeGridProps['columns'] = [
title: '状态',
field: 'locathon',
},
];
]
//车辆记录
export const carColumns: VxeGridProps['columns'] = [
@@ -355,22 +388,22 @@ export const carColumns: VxeGridProps['columns'] = [
title: '备注',
field: 'remark',
},
];
]
export async function getUnitList(): Promise<
{ value: number; label: string }[]
> {
const queryParam = {
pageNum: 1000,
pageSize: 1,
};
const res = await resident_unitList(queryParam);
const data: { value: number; label: string }[] = [];
}
const res = await resident_unitList(queryParam)
const data: { value: number; label: string }[] = []
res.rows.forEach((r: any) => {
data.push({
value: r.id,
label: r.name,
});
});
return data;
})
})
return data
}