+
年份
({
:columns="columns"
:data-source="data"
:pagination="false"
- :scroll="{ y: 270 }"
+ :scroll="{ y: '50vh' }"
/>
@@ -167,7 +167,7 @@ const data = [...Array(32)].map((_, i) => ({
.box{
display: grid;
grid-template-columns: 1fr 3fr;
- gap: 30px;
- padding: 10px;
+ gap: 16px;
+ padding: 16px;
}
From fcbe3b2e781dd18f82be06a0b1e81778ab591d35 Mon Sep 17 00:00:00 2001
From: dev_ljl <2590379346@qq.com>
Date: Mon, 28 Jul 2025 14:45:14 +0800
Subject: [PATCH 2/7] =?UTF-8?q?1=E3=80=81=E5=85=A5=E9=A9=BB=E4=BA=BA?=
=?UTF-8?q?=E5=91=98=E6=B7=BB=E5=8A=A0=E4=BA=BA=E5=91=98=E7=B1=BB=E5=9E=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/views/property/resident/person/data.ts | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/apps/web-antd/src/views/property/resident/person/data.ts b/apps/web-antd/src/views/property/resident/person/data.ts
index 4508aa87..c712232c 100644
--- a/apps/web-antd/src/views/property/resident/person/data.ts
+++ b/apps/web-antd/src/views/property/resident/person/data.ts
@@ -176,6 +176,15 @@ export const modalSchema: FormSchemaGetter = () => [
},
rules: 'selectRequired',
},
+ {
+ label: '人员类型',
+ fieldName: 'type',
+ component: 'Select',
+ componentProps: {
+ options: getDictOptions('wy_rzrylx'),
+ },
+ rules: 'selectRequired',
+ },
// {
// label: '入住员工',
// fieldName: 'userId',
@@ -187,7 +196,6 @@ export const modalSchema: FormSchemaGetter = () => [
label: '所属单位',
fieldName: 'unitId',
component: 'Select',
- formItemClass: 'col-span-2',
rules: 'selectRequired',
},
// {
From 7f542de90bba8086842ecf84216b597b7e49b059 Mon Sep 17 00:00:00 2001
From: zcxlsm
Date: Mon, 28 Jul 2025 15:24:45 +0800
Subject: [PATCH 3/7] feat(property): 1
---
.../api/property/resident/person/model.d.ts | 4 +
.../views/property/resident/person/data.ts | 105 ++++++++++------
.../property/resident/person/person-modal.vue | 115 +++++++++---------
.../src/views/property/resident/unit/data.ts | 2 +-
.../property/resident/unit/unit-modal.vue | 86 ++++++-------
5 files changed, 174 insertions(+), 138 deletions(-)
diff --git a/apps/web-antd/src/api/property/resident/person/model.d.ts b/apps/web-antd/src/api/property/resident/person/model.d.ts
index d748edb1..83b2c7a5 100644
--- a/apps/web-antd/src/api/property/resident/person/model.d.ts
+++ b/apps/web-antd/src/api/property/resident/person/model.d.ts
@@ -71,6 +71,10 @@ export interface PersonVO {
*/
authGroupId?: string | number
+ authBegDate?: string
+
+ authEndDate?: string
+
}
export interface PersonForm extends BaseEntity {
diff --git a/apps/web-antd/src/views/property/resident/person/data.ts b/apps/web-antd/src/views/property/resident/person/data.ts
index 4508aa87..d868e6c7 100644
--- a/apps/web-antd/src/views/property/resident/person/data.ts
+++ b/apps/web-antd/src/views/property/resident/person/data.ts
@@ -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
}
diff --git a/apps/web-antd/src/views/property/resident/person/person-modal.vue b/apps/web-antd/src/views/property/resident/person/person-modal.vue
index 06d9678a..1a67c0a9 100644
--- a/apps/web-antd/src/views/property/resident/person/person-modal.vue
+++ b/apps/web-antd/src/views/property/resident/person/person-modal.vue
@@ -1,38 +1,38 @@
@@ -132,16 +133,10 @@ function getUnitInfo(unit: { name: string }) {
-
+
-
+
diff --git a/apps/web-antd/src/views/property/resident/unit/data.ts b/apps/web-antd/src/views/property/resident/unit/data.ts
index 07242e71..f78ea30f 100644
--- a/apps/web-antd/src/views/property/resident/unit/data.ts
+++ b/apps/web-antd/src/views/property/resident/unit/data.ts
@@ -176,7 +176,7 @@ export const modalSchema: FormSchemaGetter = () => [
},
{
label: '',
- fieldName: 'time',
+ fieldName: 'Placeholder',
component: ''
},
{
diff --git a/apps/web-antd/src/views/property/resident/unit/unit-modal.vue b/apps/web-antd/src/views/property/resident/unit/unit-modal.vue
index c4310ad3..d2eb4c91 100644
--- a/apps/web-antd/src/views/property/resident/unit/unit-modal.vue
+++ b/apps/web-antd/src/views/property/resident/unit/unit-modal.vue
@@ -1,23 +1,23 @@
From 63499beb8b3759b22505502ae765661f1e74760b Mon Sep 17 00:00:00 2001
From: fyy <2717885210@qq.com>
Date: Mon, 28 Jul 2025 15:29:35 +0800
Subject: [PATCH 4/7] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E5=BB=BA=E7=AD=91?=
=?UTF-8?q?=E7=AE=A1=E7=90=86bug?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/views/property/building/data.tsx | 18 ------------------
1 file changed, 18 deletions(-)
diff --git a/apps/web-antd/src/views/property/building/data.tsx b/apps/web-antd/src/views/property/building/data.tsx
index af23c43f..688c7cbb 100644
--- a/apps/web-antd/src/views/property/building/data.tsx
+++ b/apps/web-antd/src/views/property/building/data.tsx
@@ -73,14 +73,6 @@ export const columns: VxeGridProps['columns'] = [
title: '地址',
field: 'addr',
},
- {
- title: '经度',
- field: 'lon',
- },
- {
- title: '维度',
- field: 'lat',
- },
{
field: 'action',
fixed: 'right',
@@ -150,14 +142,4 @@ export const modalSchema: FormSchemaGetter = () => [
component: 'Input',
rules: 'required',
},
- {
- label: '经度',
- fieldName: 'lon',
- component: 'Input',
- },
- {
- label: '维度',
- fieldName: 'lat',
- component: 'Input',
- },
];
From 1b207e2a17ce3a1b1fecc3be559f29ae62c7604e Mon Sep 17 00:00:00 2001
From: FLL <2162874245@qq.com>
Date: Mon, 28 Jul 2025 15:29:58 +0800
Subject: [PATCH 5/7] =?UTF-8?q?=E8=83=BD=E8=80=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../property/inspectionManagement/inspectionItem/index.vue | 1 +
.../property/visitorManagement/visitorInvitation/data.ts | 6 ++++++
.../views/property/visitorManagement/visitorTodo/index.vue | 1 +
3 files changed, 8 insertions(+)
diff --git a/apps/web-antd/src/views/property/inspectionManagement/inspectionItem/index.vue b/apps/web-antd/src/views/property/inspectionManagement/inspectionItem/index.vue
index 503d6211..316a19a3 100644
--- a/apps/web-antd/src/views/property/inspectionManagement/inspectionItem/index.vue
+++ b/apps/web-antd/src/views/property/inspectionManagement/inspectionItem/index.vue
@@ -133,6 +133,7 @@ function handleDownloadExcel() {
type="primary"
v-access:code="['property:inspectionItem:export']"
@click="handleDownloadExcel"
+ disabled="disabled"
>
{{ '文档' }}
diff --git a/apps/web-antd/src/views/property/visitorManagement/visitorInvitation/data.ts b/apps/web-antd/src/views/property/visitorManagement/visitorInvitation/data.ts
index 51d68b36..9aee049e 100644
--- a/apps/web-antd/src/views/property/visitorManagement/visitorInvitation/data.ts
+++ b/apps/web-antd/src/views/property/visitorManagement/visitorInvitation/data.ts
@@ -185,6 +185,12 @@ export const modalSchema: FormSchemaGetter = () => [
label: '车牌号',
fieldName: 'licensePlate',
component: 'Input',
+ rules: 'required',
+ dependencies: {
+ // 类型不为按钮时显示
+ show: (values) => values.bookingParkingSpace === '0',
+ triggerFields: ['bookingParkingSpace'],
+ },
},
// {
// label: '人脸图片',
diff --git a/apps/web-antd/src/views/property/visitorManagement/visitorTodo/index.vue b/apps/web-antd/src/views/property/visitorManagement/visitorTodo/index.vue
index 9b54642b..d9130eef 100644
--- a/apps/web-antd/src/views/property/visitorManagement/visitorTodo/index.vue
+++ b/apps/web-antd/src/views/property/visitorManagement/visitorTodo/index.vue
@@ -91,6 +91,7 @@ async function handleDelete(row: Required) {
placement="left"
title="确认审核状态?"
@confirm="handleDelete(row)"
+ v-if="row.serveStatus === '0'"
>
Date: Mon, 28 Jul 2025 17:16:27 +0800
Subject: [PATCH 6/7] =?UTF-8?q?1=E3=80=81bug=E4=BF=AE=E5=A4=8D=202?=
=?UTF-8?q?=E3=80=81=E6=B7=BB=E5=8A=A0=E5=B7=A1=E6=A3=80=E6=98=8E=E7=BB=86?=
=?UTF-8?q?=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../inspectionDetail/index.ts | 61 ++++++
.../inspectionDetail/model.d.ts | 201 ++++++++++++++++++
.../attendance-group-detail.vue | 54 +++--
.../attendanceGroupSettings/data.ts | 20 +-
.../attendanceGroupSettings/group-modal.vue | 49 ++++-
.../src/views/property/community/data.ts | 21 +-
.../src/views/property/community/index.vue | 5 -
.../inspectionDetails/data.ts | 116 ++++++----
.../inspectionDetails/index.vue | 16 +-
9 files changed, 458 insertions(+), 85 deletions(-)
create mode 100644 apps/web-antd/src/api/property/inspectionManagement/inspectionDetail/index.ts
create mode 100644 apps/web-antd/src/api/property/inspectionManagement/inspectionDetail/model.d.ts
diff --git a/apps/web-antd/src/api/property/inspectionManagement/inspectionDetail/index.ts b/apps/web-antd/src/api/property/inspectionManagement/inspectionDetail/index.ts
new file mode 100644
index 00000000..a6962167
--- /dev/null
+++ b/apps/web-antd/src/api/property/inspectionManagement/inspectionDetail/index.ts
@@ -0,0 +1,61 @@
+import type { TaskDetailVO, TaskDetailForm, TaskDetailQuery } from './model';
+
+import type { ID, IDS } from '#/api/common';
+import type { PageResult } from '#/api/common';
+
+import { commonExport } from '#/api/helper';
+import { requestClient } from '#/api/request';
+
+/**
+* 查询巡检明细列表
+* @param params
+* @returns 巡检明细列表
+*/
+export function taskDetailList(params?: TaskDetailQuery) {
+ return requestClient.get>('/property/taskDetail/list', { params });
+}
+
+/**
+ * 导出巡检明细列表
+ * @param params
+ * @returns 巡检明细列表
+ */
+export function taskDetailExport(params?: TaskDetailQuery) {
+ return commonExport('/property/taskDetail/export', params ?? {});
+}
+
+/**
+ * 查询巡检明细详情
+ * @param id id
+ * @returns 巡检明细详情
+ */
+export function taskDetailInfo(id: ID) {
+ return requestClient.get(`/property/taskDetail/${id}`);
+}
+
+/**
+ * 新增巡检明细
+ * @param data
+ * @returns void
+ */
+export function taskDetailAdd(data: TaskDetailForm) {
+ return requestClient.postWithMsg('/property/taskDetail', data);
+}
+
+/**
+ * 更新巡检明细
+ * @param data
+ * @returns void
+ */
+export function taskDetailUpdate(data: TaskDetailForm) {
+ return requestClient.putWithMsg('/property/taskDetail', data);
+}
+
+/**
+ * 删除巡检明细
+ * @param id id
+ * @returns void
+ */
+export function taskDetailRemove(id: ID | IDS) {
+ return requestClient.deleteWithMsg(`/property/taskDetail/${id}`);
+}
diff --git a/apps/web-antd/src/api/property/inspectionManagement/inspectionDetail/model.d.ts b/apps/web-antd/src/api/property/inspectionManagement/inspectionDetail/model.d.ts
new file mode 100644
index 00000000..5750e1e1
--- /dev/null
+++ b/apps/web-antd/src/api/property/inspectionManagement/inspectionDetail/model.d.ts
@@ -0,0 +1,201 @@
+import type { PageQuery, BaseEntity } from '#/api/common';
+
+export interface TaskDetailVO {
+ /**
+ * 主键id
+ */
+ id: string | number;
+
+ /**
+ * 任务id
+ */
+ taskId: string | number;
+
+ /**
+ * 路线id
+ */
+ routeId: string | number;
+
+ /**
+ * 巡检计划id
+ */
+ planId: string | number;
+
+ /**
+ * 巡检点id
+ */
+ pointId: string | number;
+
+ /**
+ * 巡检方式
+ */
+ patrolType: string;
+
+ /**
+ * 签到类型
+ */
+ signType: string;
+
+ /**
+ * 巡检状态(0未完成,1已完成)
+ */
+ inspectionState: string;
+
+ /**
+ * 巡检照片
+ */
+ inspectionImag
+e: string;
+
+ /**
+ * 实际巡检时间
+ */
+ inspectionTime: string;
+
+ /**
+ * 备注
+ */
+ remark: string;
+
+ /**
+ * 点开始时间
+ */
+ pointStartTime: string;
+
+ /**
+ * 点结束时间
+ */
+ pointEndTime: string;
+
+}
+
+export interface TaskDetailForm extends BaseEntity {
+ /**
+ * 主键id
+ */
+ id?: string | number;
+
+ /**
+ * 任务id
+ */
+ taskId?: string | number;
+
+ /**
+ * 路线id
+ */
+ routeId?: string | number;
+
+ /**
+ * 巡检计划id
+ */
+ planId?: string | number;
+
+ /**
+ * 巡检点id
+ */
+ pointId?: string | number;
+
+ /**
+ * 巡检方式
+ */
+ patrolType?: string;
+
+ /**
+ * 签到类型
+ */
+ signType?: string;
+
+ /**
+ * 巡检状态(0未完成,1已完成)
+ */
+ inspectionState?: string;
+
+ /**
+ * 巡检照片
+ */
+ inspectionImage?: string;
+
+ /**
+ * 实际巡检时间
+ */
+ inspectionTime?: string;
+
+ /**
+ * 备注
+ */
+ remark?: string;
+
+ /**
+ * 点开始时间
+ */
+ pointStartTime?: string;
+
+ /**
+ * 点结束时间
+ */
+ pointEndTime?: string;
+
+}
+
+export interface TaskDetailQuery extends PageQuery {
+ /**
+ * 任务id
+ */
+ taskId?: string | number;
+
+ /**
+ * 路线id
+ */
+ routeId?: string | number;
+
+ /**
+ * 巡检计划id
+ */
+ planId?: string | number;
+
+ /**
+ * 巡检点id
+ */
+ pointId?: string | number;
+
+ /**
+ * 巡检方式
+ */
+ patrolType?: string;
+
+ /**
+ * 签到类型
+ */
+ signType?: string;
+
+ /**
+ * 巡检状态(0未完成,1已完成)
+ */
+ inspectionState?: string;
+
+ /**
+ * 巡检照片
+ */
+ inspectionImag
+e?: string;
+
+ /**
+ * 实际巡检时间
+ */
+ inspectionTime?: string;
+
+ /**
+ * 点开始时间
+ */
+ pointStartTime?: string;
+
+ /**
+ * 点结束时间
+ */
+ pointEndTime?: string;
+
+ /**
+ * 日期范围参数
+ */
+ params?: any;
+}
diff --git a/apps/web-antd/src/views/property/attendanceManagement/attendanceGroupSettings/attendance-group-detail.vue b/apps/web-antd/src/views/property/attendanceManagement/attendanceGroupSettings/attendance-group-detail.vue
index 0d454d4d..def438ed 100644
--- a/apps/web-antd/src/views/property/attendanceManagement/attendanceGroupSettings/attendance-group-detail.vue
+++ b/apps/web-antd/src/views/property/attendanceManagement/attendanceGroupSettings/attendance-group-detail.vue
@@ -45,7 +45,28 @@ async function handleOpenChange(open: boolean) {
}
modalApi.modalLoading(true);
const {id,attendanceType} = modalApi.getData() as { id?: number | string,attendanceType?:string };
- groupDetail.value = await groupInfo(id,attendanceType);
+ const res = await groupInfo(id,attendanceType);
+ groupDetail.value=res;
+ if(res.attendanceType==0){
+ unCheckInData.value=res.clockDateList.filter(item=>item.mustNoCheck==0)
+ checkInData.value=res.clockDateList.filter(item=>item.mustNoCheck==1)
+ weekdayData.value=res.weekList
+ weekdayData.value.forEach(item => {
+ if(item.shiftId){
+ const shift = res.attendanceList.find(i => item.shiftId == i.id);
+ let str = ''
+ if (shift.isRest) {
+ str = `${shift.name}:${shift.startTime}~${shift.restStartTime} ${shift.restEndTime}~${shift.endTime}`;
+ } else {
+ str = `${shift.name}:${shift.startTime}~${shift.endTime}`;
+ }
+ item.shiftValue=str
+ }
+ })
+ groupDetail.value.isAutomatic=true
+ }else {
+ cycleData.value=res;
+ }
modalApi.modalLoading(false);
}
@@ -94,6 +115,15 @@ async function showHoliday() {
size="small"
:pagination="false"
>
+
+
+
+
+
+ {{record.shiftValue }}
+ 休息
+
+
-
+
{{
- record.startDate
- }}
+ dayjs(record.startDate).format('YYYY-MM-DD')
+ }}
{{
- record.startDate + '~' + record.endDate
- }}
+ dayjs(record.startDate).format('YYYY-MM-DD')
+ + '~' + dayjs(record.endDate).format('YYYY-MM-DD')
+ }}
@@ -132,13 +163,14 @@ async function showHoliday() {
size="small"
:pagination="false"
>
-
+
{{
- record.startDate
+ dayjs(record.startDate).format('YYYY-MM-DD')
}}
{{
- record.startDate + '~' + record.endDate
+ dayjs(record.startDate).format('YYYY-MM-DD')
+ + '~' + dayjs(record.endDate).format('YYYY-MM-DD')
}}
@@ -169,9 +201,7 @@ async function showHoliday() {
{{ '第' + (index + 1) + '天' }}
-
-
-
+ {{record.shiftId}}
diff --git a/apps/web-antd/src/views/property/attendanceManagement/attendanceGroupSettings/data.ts b/apps/web-antd/src/views/property/attendanceManagement/attendanceGroupSettings/data.ts
index 83536447..df4b942e 100644
--- a/apps/web-antd/src/views/property/attendanceManagement/attendanceGroupSettings/data.ts
+++ b/apps/web-antd/src/views/property/attendanceManagement/attendanceGroupSettings/data.ts
@@ -82,6 +82,10 @@ export const modalSchema: FormSchemaGetter = () => [
buttonStyle: 'solid',
options: getDictOptions('wy_kqlx'),
},
+ dependencies:{
+ disabled: (formValue) => formValue.id,
+ triggerFields: ['id'],
+ },
rules: 'selectRequired',
defaultValue: '0',
},
@@ -168,17 +172,17 @@ export const modalSchema: FormSchemaGetter = () => [
export const weekdayColumns: TableColumnsType = [
{
title: '工作日',
- key: 'label',
+ key: 'dayOfWeek',
width: 120,
align: 'center',
- dataIndex: 'label'
+ dataIndex: 'dayOfWeek'
},
{
title: '班次',
- key: 'shiftValue',
+ key: 'shiftId',
minWidth: 180,
align: 'center',
- dataIndex: 'shiftValue'
+ dataIndex: 'shiftId'
},
{
title: '操作',
@@ -320,17 +324,17 @@ export const clockInModalSchema: FormSchemaGetter = () => [
export const infoWeekdayColumns: TableColumnsType = [
{
title: '工作日',
- key: 'label',
+ key: 'dayOfWeek',
width: 120,
align: 'center',
- dataIndex: 'label'
+ dataIndex: 'dayOfWeek'
},
{
title: '班次',
- key: 'shiftValue',
+ key: 'shiftId',
minWidth: 180,
align: 'center',
- dataIndex: 'shiftValue'
+ dataIndex: 'shiftId'
},
]
diff --git a/apps/web-antd/src/views/property/attendanceManagement/attendanceGroupSettings/group-modal.vue b/apps/web-antd/src/views/property/attendanceManagement/attendanceGroupSettings/group-modal.vue
index cc6690ac..bce2bccb 100644
--- a/apps/web-antd/src/views/property/attendanceManagement/attendanceGroupSettings/group-modal.vue
+++ b/apps/web-antd/src/views/property/attendanceManagement/attendanceGroupSettings/group-modal.vue
@@ -28,6 +28,8 @@ import checkInDate from './check-in-date.vue'
import {h} from 'vue';
import {PlusOutlined, MinusOutlined} from '@ant-design/icons-vue';
import type {ShiftVO} from "#/api/property/attendanceManagement/shiftSetting/model";
+import {renderDict} from "#/utils/render";
+import dayjs from "dayjs";
const emit = defineEmits<{ reload: [] }>();
const isUpdate = ref(false);
@@ -88,6 +90,26 @@ const [BasicModal, modalApi] = useVbenModal({
isUpdate.value = !!id;
if (isUpdate.value && id) {
const record = await groupInfo(id, attendanceType);
+ record.attendanceType = record.attendanceType.toString()
+ if (record.attendanceType == '0') {
+ settingData.unCheckInData = record.clockDateList.filter(item => item.mustNoCheck == 0)
+ settingData.checkInData = record.clockDateList.filter(item => item.mustNoCheck == 1)
+ settingData.weekdayData = record.weekList
+ settingData.weekdayData.forEach(item => {
+ if(item.shiftId){
+ const shift = record.attendanceList.find(i => item.shiftId == i.id);
+ let str = ''
+ if (shift.isRest) {
+ str = `${shift.name}:${shift.startTime}~${shift.restStartTime} ${shift.restEndTime}~${shift.endTime}`;
+ } else {
+ str = `${shift.name}:${shift.startTime}~${shift.endTime}`;
+ }
+ item.shiftValue=str
+ }
+ })
+ } else {
+
+ }
await formApi.setValues(record);
} else {
getDictOptions('wy_kqgzr').forEach(item => {
@@ -119,7 +141,7 @@ async function handleConfirm() {
let hasError = true;
settingData.cycleData.some((item, index) => {
if (!item.scheduleId) {
- hasError=false
+ hasError = false
message.warning('请选择周期天数对应班次。');
return;
}
@@ -331,6 +353,13 @@ function getUnCheckInData(val: any) {
:data-source="settingData.weekdayData"
size="small" :pagination="false">
+
+
+
+
+ {{ record.shiftValue }}
+ 休息
+
@@ -364,8 +393,13 @@ function getUnCheckInData(val: any) {
- {{ record.startDate }}
- {{ record.startDate + '~' + record.endDate }}
+ {{
+ dayjs(record.startDate).format('YYYY-MM-DD')
+ }}
+ {{
+ dayjs(record.startDate).format('YYYY-MM-DD')
+ + '~' + dayjs(record.endDate).format('YYYY-MM-DD')
+ }}
@@ -383,8 +417,13 @@ function getUnCheckInData(val: any) {
- {{ record.startDate }}
- {{ record.startDate + '~' + record.endDate }}
+ {{
+ dayjs(record.startDate).format('YYYY-MM-DD')
+ }}
+ {{
+ dayjs(record.startDate).format('YYYY-MM-DD')
+ + '~' + dayjs(record.endDate).format('YYYY-MM-DD')
+ }}
-
- 园区
- 小区
-
-
diff --git a/apps/web-antd/src/views/property/inspectionManagement/inspectionDetails/data.ts b/apps/web-antd/src/views/property/inspectionManagement/inspectionDetails/data.ts
index ac3cee68..7b141b66 100644
--- a/apps/web-antd/src/views/property/inspectionManagement/inspectionDetails/data.ts
+++ b/apps/web-antd/src/views/property/inspectionManagement/inspectionDetails/data.ts
@@ -7,10 +7,18 @@ import {getDictOptions} from "#/utils/dict";
export const querySchema: FormSchemaGetter = () => [
+ // {
+ // component: 'Input',
+ // fieldName: 'actUserId',
+ // label: '当前巡检人',
+ // },
{
- component: 'Input',
- fieldName: 'actUserId',
- label: '当前巡检人',
+ label: '签到类型',
+ fieldName: 'signType',
+ component: 'Select',
+ componentProps: {
+ options:getDictOptions('wy_xjqdfs')
+ },
},
{
component: 'Select',
@@ -24,64 +32,94 @@ export const querySchema: FormSchemaGetter = () => [
export const columns: VxeGridProps['columns'] = [
{ type: 'checkbox', width: 60 },
- {
- title: '任务编号',
- field: 'id',
- width:'auto'
- },
- {
- title: '巡检计划',
- field: 'planName',
- minWidth:200
- },
- {
- title: '巡检时间范围',
- field: 'planInsTime',
- width:'auto'
-
- },
+ // {
+ // title: '任务编号',
+ // field: 'id',
+ // width:'auto'
+ // },
// {
- // title: '实际巡检时间',
- // field: 'endDate',
- // width:180
+ // title: '巡检计划',
+ // field: 'planName',
+ // minWidth:200
+ // },
+ // {
+ // title: '巡检时间范围',
+ // field: 'planInsTime',
+ // width:'auto'
//
// },
+ // // {
+ // // title: '实际巡检时间',
+ // // field: 'endDate',
+ // // width:180
+ // //
+ // // },
+ // {
+ // title: '签到状态',
+ // field: 'actInsTime',
+ // width:150,
+ // },
+ // {
+ // title: '巡检人',
+ // field: 'planUserName',
+ // width:'auto'
+ //
+ // },
+ // {
+ // title: '巡检方式',
+ // field: 'taskType',
+ // width:'auto',
+ // slots: {
+ // default: ({ row }) => {
+ // return renderDict(row.taskType, 'wy_xjqdfs');
+ // },
+ // },
+ // },
{
- title: '签到状态',
- field: 'actInsTime',
+ title: '签到类型',
+ field: 'signType',
width:150,
- },
- {
- title: '巡检人',
- field: 'planUserName',
- width:'auto'
-
- },
- {
- title: '巡检方式',
- field: 'taskType',
- width:'auto',
slots: {
default: ({ row }) => {
- return renderDict(row.taskType, 'wy_xjqdfs');
+ return renderDict(row.signType, 'wy_xjqdfs');
},
},
},
{
title: '巡检状态',
field: 'status',
- width:100,
+ width:150,
slots: {
default: ({ row }) => {
- return renderDict(row.taskType, 'wy_xjzt');
+ return renderDict(row.inspectionState, 'wy_xjzt');
},
},
},
{
title: '巡检照片',
- field: 'remark',
+ field: 'inspectionImage',
width:120
},
+ {
+ title: '开始时间',
+ field: 'pointStartTime',
+ width:150
+ },
+ {
+ title: '结束时间',
+ field: 'pointEndTime',
+ width:150
+ },
+ {
+ title: '实际巡检时间',
+ field: 'inspectionTime',
+ width:150
+ },
+ {
+ title: '备注',
+ field: 'remark',
+ minWidth:120
+ },
// {
// field: 'action',
// fixed: 'right',
diff --git a/apps/web-antd/src/views/property/inspectionManagement/inspectionDetails/index.vue b/apps/web-antd/src/views/property/inspectionManagement/inspectionDetails/index.vue
index 28e6325c..61b78215 100644
--- a/apps/web-antd/src/views/property/inspectionManagement/inspectionDetails/index.vue
+++ b/apps/web-antd/src/views/property/inspectionManagement/inspectionDetails/index.vue
@@ -8,15 +8,15 @@ import {
type VxeGridProps
} from '#/adapter/vxe-table';
-import {
- inspectionTaskExport,
- inspectionTaskList,
-} from '#/api/property/inspectionManagement/inspectionTask';
import type {InspectionTaskForm} from '#/api/property/inspectionManagement/inspectionTask/model';
import {commonDownloadExcel} from '#/utils/file/download';
import inspectionDetailsModal from './inspectionDetails-modal.vue';
import {columns, querySchema} from './data';
+import {
+ taskDetailExport,
+ taskDetailList
+} from "#/api/property/inspectionManagement/inspectionDetail";
const formOptions: VbenFormProps = {
commonConfig: {
@@ -46,7 +46,7 @@ const gridOptions: VxeGridProps = {
proxyConfig: {
ajax: {
query: async ({page}, formValues = {}) => {
- return await inspectionTaskList({
+ return await taskDetailList({
pageNum: page.currentPage,
pageSize: page.pageSize,
...formValues,
@@ -77,7 +77,7 @@ async function handInfo(row: Required) {
}
function handleDownloadExcel() {
- commonDownloadExcel(inspectionTaskExport, '巡检任务数据', tableApi.formApi.form.values, {
+ commonDownloadExcel(taskDetailExport, '巡检明细数据', tableApi.formApi.form.values, {
fieldMappingTime: formOptions.fieldMappingTime,
});
}
@@ -97,7 +97,7 @@ function handleDownloadExcel() {
-
+
@@ -106,7 +106,7 @@ function handleDownloadExcel() {
-
+
From cc9ad36328ba6e5bd829d31eae48862cf08e8634 Mon Sep 17 00:00:00 2001
From: dev_ljl <2590379346@qq.com>
Date: Mon, 28 Jul 2025 17:30:46 +0800
Subject: [PATCH 7/7] =?UTF-8?q?1=E3=80=81=E5=85=A5=E9=A9=BB=E4=BA=BA?=
=?UTF-8?q?=E5=91=98=E5=88=A0=E9=99=A4=E4=BA=BA=E5=91=98=E7=B1=BB=E5=9E=8B?=
=?UTF-8?q?=E5=AD=97=E6=AE=B5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/views/property/resident/person/data.ts | 11 +----------
1 file changed, 1 insertion(+), 10 deletions(-)
diff --git a/apps/web-antd/src/views/property/resident/person/data.ts b/apps/web-antd/src/views/property/resident/person/data.ts
index 9110859c..171b1b1a 100644
--- a/apps/web-antd/src/views/property/resident/person/data.ts
+++ b/apps/web-antd/src/views/property/resident/person/data.ts
@@ -181,15 +181,6 @@ export const modalSchema: FormSchemaGetter = () => [
rules: 'selectRequired',
formItemClass: 'col-span-2',
},
- {
- label: '人员类型',
- fieldName: 'type',
- component: 'Select',
- componentProps: {
- options: getDictOptions('wy_rzrylx'),
- },
- rules: 'selectRequired',
- },
// {
// label: '入住员工',
// fieldName: 'userId',
@@ -236,7 +227,7 @@ export const modalSchema: FormSchemaGetter = () => [
formItemClass: 'col-span-1',
componentProps: {
class: 'w-auto',
-
+
},
defaultValue: false,
dependencies: {