yanghao преди 1 месец
родител
ревизия
cc3bb5e993
променени са 2 файла, в които са добавени 36 реда и са изтрити 3 реда
  1. 35 2
      pages/ruihen/components/form.vue
  2. 1 1
      pages/ruihen/edit.vue

+ 35 - 2
pages/ruihen/components/form.vue

@@ -34,6 +34,7 @@ const FORM_KEYS = [
   "deptName",
   "contractName",
   "taskName",
+  "relatedTasks",
   "dailyGasInjection",
   "dailyWaterInjection",
   "dailyInjectGasTime",
@@ -123,6 +124,30 @@ const dictStore = useDataDictStore();
 const nptReasonOptions = ref([]);
 const constructionStatusOptions = ref([]);
 
+const relatedTaskOptions = computed(() => {
+  const relatedTasks = form.value.relatedTasks;
+  if (!relatedTasks || Object.keys(relatedTasks).length === 0) {
+    const taskId = form.value.taskId;
+    if (taskId === null || taskId === undefined || taskId === "") return [];
+    return [
+      {
+        text: form.value.taskName || String(taskId),
+        value: taskId,
+      },
+    ];
+  }
+
+  return Object.entries(relatedTasks).map(([key, value]) => ({
+    text: value,
+    value: Number.isNaN(Number(key)) ? key : Number(key),
+  }));
+});
+
+const handleTaskChange = (value) => {
+  const current = relatedTaskOptions.value.find((item) => item.value === value);
+  if (current) form.value.taskName = current.text;
+};
+
 const loadOptions = () => {
   nptReasonOptions.value = dictStore
     .getStrDictOptions("nptReason")
@@ -290,8 +315,16 @@ defineExpose({ formRef, form, loadDetail });
       <uni-forms-item label="项目" name="contractName">
         <span class="readOnly">{{ form.contractName }}</span>
       </uni-forms-item>
-      <uni-forms-item label="任务" name="taskName">
-        <span class="readOnly">{{ form.taskName }}</span>
+      <uni-forms-item label="任务" name="taskId">
+        <uni-data-select
+          :clear="false"
+          align="right"
+          placeholder="请选择"
+          :localdata="relatedTaskOptions"
+          placement="top"
+          :disabled="disabled('edit')"
+          v-model="form.taskId"
+          @change="handleTaskChange" />
       </uni-forms-item>
       <uni-forms-item label="施工区域" name="location">
         <span class="readOnly">{{ form.location }}</span>

+ 1 - 1
pages/ruihen/edit.vue

@@ -24,7 +24,7 @@ const submitForm = async () => {
 
     formLoading.value = true;
 
-    const { createTime, ...other } = form;
+    const { createTime, relatedTasks, ...other } = form;
     const data = { ...other, fillOrderCreateTime: createTime };
 
     await createIotRhDailyReport(data);