feat(WorkOrderEdit): 添加作业负责人选择器并更新相关逻辑

- 将作业负责人输入框改为只读并添加选择器功能
- 新增作业负责人ID字段存储
- 更新表单数据恢复和保存逻辑以适配新字段
- 修改验证逻辑检查负责人ID而非名称
This commit is contained in:
liangbin 2026-02-03 10:12:48 +08:00
parent e19ba8e145
commit d18f0f4c5e
2 changed files with 34 additions and 13 deletions

View File

@ -46,10 +46,15 @@
</view> </view>
</view> </view>
<view class="FormItem"> <view class="FormItem">
<view class="FormLableBox mustBox">作业负责人</view> <view class="FormLableBox FlexBox">
<view class="FormValueBox"> <view class="mustBox">作业负责人</view>
<u-input v-model="formData.ResponsiblePerson" placeholder="请输入作业负责人"></u-input> <view class="addBtn" @click="showMemberPicker1 = true">添加</view>
</view> </view>
<view class="FormValueBox">
<u-input v-model="formData.supervisorName" placeholder="请输入作业负责人" readonly></u-input>
</view>
<u-picker :show="showMemberPicker1" :columns="[MemberArr]" keyName="name" @confirm="HandleMemberConfirmA"
@cancel="showMemberPicker1 = false"></u-picker>
</view> </view>
<view class="FormItem"> <view class="FormItem">
<view class="FormLableBox FlexBox"> <view class="FormLableBox FlexBox">
@ -87,6 +92,7 @@ let mapEntity = null;
// //
let currentMarker = null; let currentMarker = null;
const showMemberPicker1 = ref(false); // 1
const showStartDatePicker = ref(false); // const showStartDatePicker = ref(false); //
const showEndDatePicker = ref(false); // const showEndDatePicker = ref(false); //
const startDate = ref(null); // const startDate = ref(null); //
@ -115,7 +121,8 @@ const formData = ref({
Location: "", // Location: "", //
SpecificAddress: "", // SpecificAddress: "", //
period: [], // [, ] period: [], // [, ]
ResponsiblePerson: "", // supervisorName: "", //
supervisorId: "", // ID
MemberList: [], // MemberList: [], //
}); });
@ -131,7 +138,7 @@ const restoreFormData = (data) => {
if (data.ProjectName) formData.value.ProjectName = data.ProjectName; if (data.ProjectName) formData.value.ProjectName = data.ProjectName;
if (data.Location) formData.value.Location = data.Location; if (data.Location) formData.value.Location = data.Location;
if (data.SpecificAddress) formData.value.SpecificAddress = data.SpecificAddress; if (data.SpecificAddress) formData.value.SpecificAddress = data.SpecificAddress;
if (data.ResponsiblePerson) formData.value.ResponsiblePerson = data.ResponsiblePerson; if (data.supervisorName) formData.value.supervisorName = data.supervisorName;
if (data.MemberList && Array.isArray(data.MemberList)) { if (data.MemberList && Array.isArray(data.MemberList)) {
formData.value.MemberList = [...data.MemberList]; formData.value.MemberList = [...data.MemberList];
} }
@ -270,7 +277,16 @@ const UpdatePeriod = () => {
console.log('作业周期:', formData.value.period); console.log('作业周期:', formData.value.period);
}; };
// //
const HandleMemberConfirmA = (e) =>{
console.log('选中的作业负责人完整信息:', e);
if (e.value) {
formData.value.supervisorName = e.value.name;
formData.value.supervisorId = e.value.id;
}
}
//
const HandleMemberConfirm = (e) => { const HandleMemberConfirm = (e) => {
console.log('选中的成员完整信息:', e); console.log('选中的成员完整信息:', e);
console.log('e.value:', e.value); console.log('e.value:', e.value);
@ -324,6 +340,8 @@ const HandleMemberConfirm = (e) => {
showMemberPicker.value = false; showMemberPicker.value = false;
}; };
// //
const RemoveMember = (index) => { const RemoveMember = (index) => {
formData.value.MemberList.splice(index, 1); formData.value.MemberList.splice(index, 1);

View File

@ -350,7 +350,8 @@ const mapWorkPlanDetailToBasicsInfo = (workPlanDetail) => {
formatDate(workPlanDetail.workStartTime), formatDate(workPlanDetail.workStartTime),
formatDate(workPlanDetail.workEndTime) formatDate(workPlanDetail.workEndTime)
], ],
ResponsiblePerson: workPlanDetail.supervisorName || '', supervisorName: workPlanDetail.supervisorName || '',
supervisorId: workPlanDetail.supervisorId || '',
MemberList: memberList, MemberList: memberList,
remark: workPlanDetail.remark || '' remark: workPlanDetail.remark || ''
}; };
@ -641,7 +642,8 @@ const saveDraft = () => {
latitude: latitude, latitude: latitude,
workStartTime: currentStepData.period && currentStepData.period[0] ? currentStepData.period[0] : '', workStartTime: currentStepData.period && currentStepData.period[0] ? currentStepData.period[0] : '',
workEndTime: currentStepData.period && currentStepData.period[1] ? currentStepData.period[1] : '', workEndTime: currentStepData.period && currentStepData.period[1] ? currentStepData.period[1] : '',
supervisorName: currentStepData.ResponsiblePerson || '', supervisorName: currentStepData.supervisorName || '',
supervisorId: currentStepData.supervisorId || '',
sysUserIds: sysUserIds, sysUserIds: sysUserIds,
remark: currentStepData.remark || '', remark: currentStepData.remark || '',
projectStatus: 0 // 稿 projectStatus: 0 // 稿
@ -729,8 +731,8 @@ const saveDraft = () => {
const workTicketData = { const workTicketData = {
projectId: allData.value.BasicsInfo.projectId, projectId: allData.value.BasicsInfo.projectId,
workLocation: currentStepData.workLocation || allData.value.BasicsInfo.SpecificAddress || '', workLocation: currentStepData.workLocation || allData.value.BasicsInfo.SpecificAddress || '',
supervisorId: null, supervisorId: allData.value.BasicsInfo.supervisorId || '',
supervisorName: currentStepData.workResponsible || allData.value.BasicsInfo.ResponsiblePerson || '', supervisorName: currentStepData.workResponsible || allData.value.BasicsInfo.supervisorName || '',
supervisorPosition: '', supervisorPosition: '',
workContent: currentStepData.workContent || '', workContent: currentStepData.workContent || '',
riskType: currentStepData.riskType || '', riskType: currentStepData.riskType || '',
@ -937,7 +939,7 @@ const nextStep = () => {
}); });
return; return;
} }
if (!basicsData.ResponsiblePerson) { if (!basicsData.supervisorId) {
uni.showToast({ uni.showToast({
title: '请填写作业负责人', title: '请填写作业负责人',
icon: 'none' icon: 'none'
@ -968,7 +970,8 @@ const nextStep = () => {
latitude: latitude, latitude: latitude,
workStartTime: basicsData.period[0], workStartTime: basicsData.period[0],
workEndTime: basicsData.period[1], workEndTime: basicsData.period[1],
supervisorName: basicsData.ResponsiblePerson, supervisorName: basicsData.supervisorName,
supervisorId: basicsData.supervisorId,
sysUserIds: sysUserIds, sysUserIds: sysUserIds,
remark: basicsData.remark || '', // remark: basicsData.remark || '', //
projectStatus: 0 projectStatus: 0
@ -1297,7 +1300,7 @@ const nextStep = () => {
projectId: allData.value.BasicsInfo.projectId, // projectId: allData.value.BasicsInfo.projectId, //
workLocation: workNoteData.workLocation || allData.value.BasicsInfo.SpecificAddress || '', workLocation: workNoteData.workLocation || allData.value.BasicsInfo.SpecificAddress || '',
supervisorId: null, // ID supervisorId: null, // ID
supervisorName: workNoteData.workResponsible || allData.value.BasicsInfo.ResponsiblePerson || '', supervisorName: workNoteData.workResponsible || allData.value.BasicsInfo.supervisorName || '',
supervisorPosition: '', // supervisorPosition: '', //
workContent: workNoteData.workContent || '', workContent: workNoteData.workContent || '',
riskType: workNoteData.riskType || '', riskType: workNoteData.riskType || '',