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) { - +