From ca43557416299ab2fe1aaaabea453143bb8fbe77 Mon Sep 17 00:00:00 2001 From: FLL <2162874245@qq.com> Date: Mon, 28 Jul 2025 14:43:31 +0800 Subject: [PATCH 1/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/electricEnergy/elctricityCost/index.vue | 1 - .../property/electricEnergy/electricTrend/index.vue | 8 ++++---- .../property/electricEnergy/electricityQOQ/index.vue | 1 - .../property/electricEnergy/electricityYOY/index.vue | 8 ++++---- .../views/property/waterPower/waterCost/index.vue | 1 - .../src/views/property/waterPower/waterQOQ/index.vue | 1 - .../views/property/waterPower/waterTrend/index.vue | 12 ++++++------ .../src/views/property/waterPower/waterYOY/index.vue | 8 ++++---- 8 files changed, 18 insertions(+), 22 deletions(-) diff --git a/apps/web-antd/src/views/property/electricEnergy/elctricityCost/index.vue b/apps/web-antd/src/views/property/electricEnergy/elctricityCost/index.vue index 74a3477d..3bd9ad1d 100644 --- a/apps/web-antd/src/views/property/electricEnergy/elctricityCost/index.vue +++ b/apps/web-antd/src/views/property/electricEnergy/elctricityCost/index.vue @@ -68,7 +68,6 @@ const [BasicTable, tableApi] = useVbenVxeGrid({ .box{ display: grid; grid-template-columns: 1fr 3fr; - gap: 30px; .right { width: 100%; diff --git a/apps/web-antd/src/views/property/electricEnergy/electricTrend/index.vue b/apps/web-antd/src/views/property/electricEnergy/electricTrend/index.vue index e798f2bc..442e679b 100644 --- a/apps/web-antd/src/views/property/electricEnergy/electricTrend/index.vue +++ b/apps/web-antd/src/views/property/electricEnergy/electricTrend/index.vue @@ -300,7 +300,7 @@ onMounted(()=>{
-
+
{
-
+
{ .box{ display: grid; grid-template-columns: 1fr 3fr; - gap: 30px; - padding: 10px; + gap: 16px; + padding: 16px; } diff --git a/apps/web-antd/src/views/property/electricEnergy/electricityQOQ/index.vue b/apps/web-antd/src/views/property/electricEnergy/electricityQOQ/index.vue index 4cdd757b..468b4807 100644 --- a/apps/web-antd/src/views/property/electricEnergy/electricityQOQ/index.vue +++ b/apps/web-antd/src/views/property/electricEnergy/electricityQOQ/index.vue @@ -68,6 +68,5 @@ const [BasicTable, tableApi] = useVbenVxeGrid({ .box{ display: grid; grid-template-columns: 1fr 3fr; - gap: 30px; } diff --git a/apps/web-antd/src/views/property/electricEnergy/electricityYOY/index.vue b/apps/web-antd/src/views/property/electricEnergy/electricityYOY/index.vue index 297b695b..ee721ac5 100644 --- a/apps/web-antd/src/views/property/electricEnergy/electricityYOY/index.vue +++ b/apps/web-antd/src/views/property/electricEnergy/electricityYOY/index.vue @@ -134,7 +134,7 @@ const data = [...Array(32)].map((_, i) => ({
-
+
年份 ({ :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; } diff --git a/apps/web-antd/src/views/property/waterPower/waterCost/index.vue b/apps/web-antd/src/views/property/waterPower/waterCost/index.vue index da0c992c..1b023259 100644 --- a/apps/web-antd/src/views/property/waterPower/waterCost/index.vue +++ b/apps/web-antd/src/views/property/waterPower/waterCost/index.vue @@ -68,7 +68,6 @@ const [BasicTable, tableApi] = useVbenVxeGrid({ .box{ display: grid; grid-template-columns: 1fr 3fr; - gap: 30px; .right { width: 100%; diff --git a/apps/web-antd/src/views/property/waterPower/waterQOQ/index.vue b/apps/web-antd/src/views/property/waterPower/waterQOQ/index.vue index d02c591a..93651c7d 100644 --- a/apps/web-antd/src/views/property/waterPower/waterQOQ/index.vue +++ b/apps/web-antd/src/views/property/waterPower/waterQOQ/index.vue @@ -68,6 +68,5 @@ const [BasicTable, tableApi] = useVbenVxeGrid({ .box{ display: grid; grid-template-columns: 1fr 3fr; - gap: 30px; } diff --git a/apps/web-antd/src/views/property/waterPower/waterTrend/index.vue b/apps/web-antd/src/views/property/waterPower/waterTrend/index.vue index bcd55b4c..fd878c2c 100644 --- a/apps/web-antd/src/views/property/waterPower/waterTrend/index.vue +++ b/apps/web-antd/src/views/property/waterPower/waterTrend/index.vue @@ -198,7 +198,7 @@ onMounted(()=>{
-
+
{ picker="month" />当月能耗总值:30.00t
-
+
-
+
{ picker="year" />当年能耗总值:59.00t
-
+
@@ -228,7 +228,7 @@ onMounted(()=>{ .box{ display: grid; grid-template-columns: 1fr 3fr; - gap: 30px; - padding: 10px; + gap: 16px; + padding: 16px; } diff --git a/apps/web-antd/src/views/property/waterPower/waterYOY/index.vue b/apps/web-antd/src/views/property/waterPower/waterYOY/index.vue index 82bce455..b0ccb084 100644 --- a/apps/web-antd/src/views/property/waterPower/waterYOY/index.vue +++ b/apps/web-antd/src/views/property/waterPower/waterYOY/index.vue @@ -134,7 +134,7 @@ const data = [...Array(32)].map((_, i) => ({
-
+
年份 ({ :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" > + - 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"> @@ -383,8 +417,13 @@ function getUnCheckInData(val: any) { - + 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: {