|
|
@@ -1516,10 +1516,14 @@ const syncCurrentTaskToTable = () => {
|
|
|
|
|
|
// 处理每个平台井详情
|
|
|
currentTask.value.platformWellDetails.forEach((detail, index) => {
|
|
|
+ // 获取当前井号的工作量数据
|
|
|
+ const workloadData = workloadMap.value.get(detail.wellName) || [];
|
|
|
+
|
|
|
if (index === mainTaskDetailIndex) {
|
|
|
// 主任务:使用当前任务对象
|
|
|
currentTask.value.wellName = detail.wellName;
|
|
|
currentTask.value.workloadDesign = detail.workloadDesign;
|
|
|
+ currentTask.value.workloadUnit = detail.workloadUnit;
|
|
|
// platformWell 保持为 '1' - 主平台井任务
|
|
|
currentTask.value.platformWell = '1';
|
|
|
|
|
|
@@ -1531,6 +1535,7 @@ const syncCurrentTaskToTable = () => {
|
|
|
id: detail.taskId || undefined, // 已有任务使用taskId,新增任务为undefined
|
|
|
wellName: detail.wellName,
|
|
|
workloadDesign: detail.workloadDesign,
|
|
|
+ workloadUnit: detail.workloadUnit,
|
|
|
platformWell: detail.taskId ? '2' : '2' // 子任务platformWell设为2
|
|
|
};
|
|
|
|
|
|
@@ -1802,7 +1807,9 @@ const open = async () => {
|
|
|
currentTask.value.platformWellDetails = currentTask.value.platformWells.map((item: any) => ({
|
|
|
taskId: item.id,
|
|
|
wellName: item.wellName,
|
|
|
- workloadDesign: item.workloadDesign
|
|
|
+ workloadUnit: item.workloadUnit || '', // 确保有workloadUnit字段
|
|
|
+ workloadDesign: item.workloadDesign || '',
|
|
|
+ workloadDesignError: '' // 新增错误信息字段
|
|
|
}));
|
|
|
|
|
|
// 使用专门的排序方法
|
|
|
@@ -1810,10 +1817,17 @@ const open = async () => {
|
|
|
|
|
|
// 初始化备份数据
|
|
|
platformWellDetailsBackup.value = [...currentTask.value.platformWellDetails];
|
|
|
+ // 处理每个平台井的工作量数据
|
|
|
+ processPlatformWellWorkloadData(currentTask.value.platformWells);
|
|
|
} else {
|
|
|
// 非平台井模式,确保 platformWellDetails 是数组
|
|
|
currentTask.value.platformWellDetails = currentTask.value.platformWellDetails || [];
|
|
|
platformWellDetailsBackup.value = [];
|
|
|
+
|
|
|
+ // 处理非平台井的工作量数据
|
|
|
+ if (currentTask.value.extProperty?.[0]?.dropdownList) {
|
|
|
+ processWorkloadDataForWell(currentTask.value.wellName, currentTask.value.extProperty[0].dropdownList);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 检查任务数据中是否有extProperty
|
|
|
@@ -2069,6 +2083,57 @@ const getAllSubmitterNamesForForm = (submitterIds: number[]) => {
|
|
|
/** 提交表单 */
|
|
|
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
|
|
|
|
|
|
+// 处理平台井工作量数据
|
|
|
+const processPlatformWellWorkloadData = (platformWells: any[]) => {
|
|
|
+ if (!platformWells || !platformWells.length) return;
|
|
|
+
|
|
|
+ platformWells.forEach((well: any) => {
|
|
|
+ if (well.wellName && well.extProperty?.[0]?.dropdownList) {
|
|
|
+ processWorkloadDataForWell(well.wellName, well.extProperty[0].dropdownList);
|
|
|
+ }
|
|
|
+ });
|
|
|
+};
|
|
|
+
|
|
|
+// 处理单个井的工作量数据
|
|
|
+const processWorkloadDataForWell = (wellName: string, dropdownList: any[]) => {
|
|
|
+ if (!wellName || !dropdownList || !dropdownList.length) return;
|
|
|
+
|
|
|
+ // 转换dropdownList格式为workloadMap需要的格式
|
|
|
+ const workloadData = dropdownList.map(item => ({
|
|
|
+ workloadUnit: getWorkloadUnitValueByName(item.name), // 通过name获取对应的value
|
|
|
+ workloadDesign: item.value
|
|
|
+ }));
|
|
|
+
|
|
|
+ // 存储到workloadMap
|
|
|
+ workloadMap.value.set(wellName, workloadData);
|
|
|
+
|
|
|
+ // 如果这个井在platformWellDetails中,更新其工作量单位和工作量设计
|
|
|
+ if (currentTask.value.platformWellDetails) {
|
|
|
+ const detailIndex = currentTask.value.platformWellDetails.findIndex(
|
|
|
+ (detail: any) => detail.wellName === wellName
|
|
|
+ );
|
|
|
+
|
|
|
+ if (detailIndex !== -1 && workloadData.length > 0) {
|
|
|
+ // 使用第一个工作量项作为平台井表格中显示的值
|
|
|
+ currentTask.value.platformWellDetails[detailIndex].workloadUnit = workloadData[0].workloadUnit;
|
|
|
+ currentTask.value.platformWellDetails[detailIndex].workloadDesign = workloadData[0].workloadDesign;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 如果是主任务井,也更新当前任务的工作量数据
|
|
|
+ if (wellName === currentTask.value.wellName && workloadData.length > 0) {
|
|
|
+ currentTask.value.workloadUnit = workloadData[0].workloadUnit;
|
|
|
+ currentTask.value.workloadDesign = workloadData[0].workloadDesign;
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+// 通过工作量单位名称获取对应的值
|
|
|
+const getWorkloadUnitValueByName = (name: string): string => {
|
|
|
+ const options = getStrDictOptions(DICT_TYPE.PMS_PROJECT_WORKLOAD_UNIT);
|
|
|
+ const option = options.find(opt => opt.label === name);
|
|
|
+ return option ? option.value : '';
|
|
|
+};
|
|
|
+
|
|
|
const submitForm = async () => {
|
|
|
// 施工区域的数据字典类型
|
|
|
currentTask.value.dictType = currentDictLabel.value;
|
|
|
@@ -2289,8 +2354,6 @@ const addPlatformWellDetail = () => {
|
|
|
|
|
|
// 将新记录添加到数组末尾,而不是开头
|
|
|
currentTask.value.platformWellDetails.push(newDetail);
|
|
|
- // 添加后重新排序,确保当前任务对应的记录始终在第一行
|
|
|
- // sortPlatformWellDetails();
|
|
|
};
|
|
|
|
|
|
// 删除平台井详情行
|