fix:巡检计划编辑、保养计划编辑
Some checks are pending
Gitea Actions Demo / Explore-Gitea-Actions (push) Waiting to run

This commit is contained in:
dev_ljl 2025-07-29 15:26:41 +08:00
parent 9cb6d99e90
commit 84cade81df
9 changed files with 35 additions and 23 deletions

View File

@ -19,9 +19,15 @@ export interface GroupVO {
/** /**
* (0:固定班制,1:排班制) * (0:固定班制,1:排班制)
*/ */
attendanceType: number; attendanceType: number| string;
isAutomatic: number; isAutomatic: boolean;
clockDateList: any[];
weekList: any[];
attendanceList:any[];
} }

View File

@ -61,6 +61,8 @@ export interface MaintainPlanVO {
userId: string[]; userId: string[];
machineMaintainPlanStaffBoList:any[]; machineMaintainPlanStaffBoList:any[];
machineMaintainPlanStaffVos:any[];
} }
export interface MaintainPlanForm extends BaseEntity { export interface MaintainPlanForm extends BaseEntity {

View File

@ -19,7 +19,7 @@ export interface InspectionPlanVO {
/** /**
* *
*/ */
inspectionPlanPeriod: number; inspectionPlanPeriod: string;
/** /**
* *

View File

@ -45,7 +45,7 @@ async function handleOpenChange(open: boolean) {
} }
modalApi.modalLoading(true); modalApi.modalLoading(true);
const {id,attendanceType} = modalApi.getData() as { id?: number | string,attendanceType?:string }; const {id,attendanceType} = modalApi.getData() as { id?: number | string,attendanceType?:string };
const res = await groupInfo(id,attendanceType); const res = await groupInfo(id as string,attendanceType as string);
groupDetail.value=res; groupDetail.value=res;
if(res.attendanceType==0){ if(res.attendanceType==0){
unCheckInData.value=res.clockDateList.filter(item=>item.mustNoCheck==0) unCheckInData.value=res.clockDateList.filter(item=>item.mustNoCheck==0)
@ -65,7 +65,7 @@ async function handleOpenChange(open: boolean) {
}) })
groupDetail.value.isAutomatic=true groupDetail.value.isAutomatic=true
}else { }else {
cycleData.value=res; cycleData.value=[];
} }
modalApi.modalLoading(false); modalApi.modalLoading(false);
} }
@ -115,7 +115,7 @@ async function showHoliday() {
size="small" size="small"
:pagination="false" :pagination="false"
> >
<template #bodyCell="{ column, record, index }"> <template #bodyCell="{ column, record }">
<template v-if="column.dataIndex === 'dayOfWeek'"> <template v-if="column.dataIndex === 'dayOfWeek'">
<component :is="renderDict(record.dayOfWeek,'wy_kqgzr')"></component> <component :is="renderDict(record.dayOfWeek,'wy_kqgzr')"></component>
</template> </template>

View File

@ -89,7 +89,7 @@ const [BasicModal, modalApi] = useVbenModal({
}; };
isUpdate.value = !!id; isUpdate.value = !!id;
if (isUpdate.value && id) { if (isUpdate.value && id) {
const record = await groupInfo(id, attendanceType); const record = await groupInfo(id, attendanceType as string);
record.attendanceType = record.attendanceType.toString() record.attendanceType = record.attendanceType.toString()
if (record.attendanceType == '0') { if (record.attendanceType == '0') {
settingData.unCheckInData = record.clockDateList.filter(item => item.mustNoCheck == 0) settingData.unCheckInData = record.clockDateList.filter(item => item.mustNoCheck == 0)

View File

@ -177,7 +177,7 @@ export const modalSchema: FormSchemaGetter = () => [
rules:'required' rules:'required'
}, },
{ {
label: '巡检人员', label: '保养人员',
fieldName: 'userId', fieldName: 'userId',
component: 'ApiSelect', component: 'ApiSelect',
componentProps:{ componentProps:{

View File

@ -15,8 +15,8 @@ import {defaultFormValueGetter, useBeforeCloseDiff} from '#/utils/popup';
import {modalSchema} from './data'; import {modalSchema} from './data';
import {getMachineTypeTree} from "#/api/property/machineType"; import {getMachineTypeTree} from "#/api/property/machineType";
import {personList} from "#/api/property/resident/person";
import {renderDictValue} from "#/utils/render"; import {renderDictValue} from "#/utils/render";
import {userList} from "#/api/system/user";
const emit = defineEmits<{ reload: [] }>(); const emit = defineEmits<{ reload: [] }>();
@ -72,8 +72,8 @@ const [BasicModal, modalApi] = useVbenModal({
record.maintainMonth = record.maintainMonth?.split(',') record.maintainMonth = record.maintainMonth?.split(',')
record.maintainDay = record.maintainDay?.split(',') record.maintainDay = record.maintainDay?.split(',')
} }
if (record.machineMaintainPlanStaffBoList) { if (record.machineMaintainPlanStaffVos) {
record.userId = record.machineMaintainPlanStaffBoList.map(item=>item.userId) record.userId = record.machineMaintainPlanStaffVos.map(item=>item.userId.toString())
} }
await formApi.setValues(record); await formApi.setValues(record);
} }
@ -161,11 +161,11 @@ async function queryPersonData() {
pageSize: 1000, pageSize: 1000,
pageNum: 1, pageNum: 1,
} }
const res = await personList(params); const res = await userList(params);
const options = res.rows.map((user) => ({ const options = res.rows.map((user) => ({
label: user.userName + '-' + renderDictValue(user.gender, 'sys_user_sex') label: user.nickName + '-' + renderDictValue(user.sex, 'sys_user_sex')
+ '-' + user.phone + '-' + user.unitName, + '-' + user.phonenumber,
value: user.id, value: user.userId.toString(),
})); }));
formApi.updateSchema([{ formApi.updateSchema([{
componentProps: () => ({ componentProps: () => ({

View File

@ -10,7 +10,6 @@ import {renderDict} from "#/utils/render";
dayjs.extend(duration); dayjs.extend(duration);
dayjs.extend(relativeTime); dayjs.extend(relativeTime);
import {CheckboxGroup} from 'ant-design-vue' import {CheckboxGroup} from 'ant-design-vue'
import {getDictOptions} from "#/utils/dict";
import {maintainPlanInfo} from "#/api/property/equipmentManagement/maintainPlan"; import {maintainPlanInfo} from "#/api/property/equipmentManagement/maintainPlan";
import type {MaintainPlanVO} from "#/api/property/equipmentManagement/maintainPlan/model"; import type {MaintainPlanVO} from "#/api/property/equipmentManagement/maintainPlan/model";
@ -78,11 +77,16 @@ const monthArr=Array.from({ length: 12 }, (_, i) => ({
<DescriptionsItem label="计划日期" :span="2"> <DescriptionsItem label="计划日期" :span="2">
{{ maintainPlanDetail.startDate + '\xa0至\xa0' + maintainPlanDetail.endDate }} {{ maintainPlanDetail.startDate + '\xa0至\xa0' + maintainPlanDetail.endDate }}
</DescriptionsItem> </DescriptionsItem>
<DescriptionsItem label="状态" v-if="maintainPlanDetail.state!=null"> <DescriptionsItem label="状态" v-if="maintainPlanDetail.state!=null" :span="2">
<component <component
:is="renderDict(maintainPlanDetail.state,'wy_state')" :is="renderDict(maintainPlanDetail.state,'wy_state')"
/> />
</DescriptionsItem> </DescriptionsItem>
<DescriptionsItem label="保养人员" :span="2">
<span style="margin-right: 10px;" v-for="item in maintainPlanDetail.machineMaintainPlanStaffVos">
{{item.userName}}
</span>
</DescriptionsItem>
</Descriptions> </Descriptions>
</BasicModal> </BasicModal>
</template> </template>

View File

@ -14,10 +14,10 @@ import {
import {defaultFormValueGetter, useBeforeCloseDiff} from '#/utils/popup'; import {defaultFormValueGetter, useBeforeCloseDiff} from '#/utils/popup';
import {modalSchema} from './data'; import {modalSchema} from './data';
import {personList} from "#/api/property/resident/person";
import {renderDictValue} from "#/utils/render"; import {renderDictValue} from "#/utils/render";
import {inspectionRouteList} from "#/api/property/inspectionManagement/inspectionRoute"; import {inspectionRouteList} from "#/api/property/inspectionManagement/inspectionRoute";
import {InputNumber} from 'ant-design-vue' import {InputNumber} from 'ant-design-vue'
import {userList} from "#/api/system/user";
const emit = defineEmits<{ reload: [] }>(); const emit = defineEmits<{ reload: [] }>();
@ -75,7 +75,7 @@ const [BasicModal, modalApi] = useVbenModal({
record.inspectionWorkday = record.inspectionWorkday?.split(',') record.inspectionWorkday = record.inspectionWorkday?.split(',')
} }
if (record.inspectionPlanStaffVoList && record.inspectionPlanStaffVoList.length) { if (record.inspectionPlanStaffVoList && record.inspectionPlanStaffVoList.length) {
record.userId = record.inspectionPlanStaffVoList.map(item => item.userId) record.userId = record.inspectionPlanStaffVoList.map(item => item.userId.toString())
} }
await formApi.setValues(record); await formApi.setValues(record);
} }
@ -140,11 +140,11 @@ async function queryPersonData() {
pageSize: 1000, pageSize: 1000,
pageNum: 1, pageNum: 1,
} }
const res = await personList(params); const res = await userList(params);
const options = res.rows.map((user) => ({ const options = res.rows.map((user) => ({
label: user.userName + '-' + renderDictValue(user.gender, 'sys_user_sex') label: user.nickName + '-' + renderDictValue(user.sex, 'sys_user_sex')
+ '-' + user.phone + '-' + user.unitName, + '-' + user.phonenumber,
value: user.id, value: user.userId.toString(),
})); }));
formApi.updateSchema([{ formApi.updateSchema([{
componentProps: () => ({ componentProps: () => ({