gaoluyang
16 小时以前 6c0b0dd81a98a3163e45f1b5b5417e02af165fd8
src/views/mes/pro/workorder-center/modules/quick-feedback.vue
@@ -9,6 +9,10 @@
import { message } from 'ant-design-vue';
import { quickCreateFeedback } from '#/api/mes/pro/feedback';
import {
  loadParamDetails,
  paramDetails,
} from '#/views/mes/pro/feedback/param-state';
import ProTaskSelect from '#/views/mes/pro/task/components/select.vue';
defineOptions({ name: 'QuickFeedbackForm' });
@@ -35,10 +39,14 @@
      selectedTask.value = undefined;
      formData.value = {
        feedbackQuantity: undefined,
        qualifiedQuantity: undefined,
        unqualifiedQuantity: undefined,
        remark: '',
      };
      // 预设任务时加载其工艺参数;否则等待选择任务后再加载
      if (props.taskId) {
        loadParamDetails(props.taskId);
      } else {
        paramDetails.value = [];
      }
    }
  },
});
@@ -48,8 +56,6 @@
const selectedTask = ref<MesProTaskApi.Task>();
const formData = ref({
  feedbackQuantity: undefined as number | undefined,
  qualifiedQuantity: undefined as number | undefined,
  unqualifiedQuantity: undefined as number | undefined,
  remark: '',
});
const submitting = ref(false);
@@ -70,6 +76,7 @@
function handleTaskChange(task: MesProTaskApi.Task | undefined) {
  selectedTask.value = task;
  selectedTaskId.value = task?.id;
  loadParamDetails(task?.id);
}
async function handleSubmit() {
@@ -87,8 +94,10 @@
    await quickCreateFeedback({
      taskId,
      feedbackQuantity: formData.value.feedbackQuantity,
      qualifiedQuantity: formData.value.qualifiedQuantity,
      unqualifiedQuantity: formData.value.unqualifiedQuantity,
      paramValues: paramDetails.value.map((detail) => ({
        detailId: detail.id,
        value: detail.paramValue,
      })),
      remark: formData.value.remark || undefined,
    });
    message.success('报工成功');
@@ -128,24 +137,27 @@
          class="!w-full"
        />
      </a-form-item>
      <a-form-item label="合格品数量">
        <a-input-number
          v-model:value="formData.qualifiedQuantity"
          :min="0"
          :precision="2"
          placeholder="请输入合格品数量"
          class="!w-full"
        />
      </a-form-item>
      <a-form-item label="不良品数量">
        <a-input-number
          v-model:value="formData.unqualifiedQuantity"
          :min="0"
          :precision="2"
          placeholder="请输入不良品数量"
          class="!w-full"
        />
      </a-form-item>
      <div v-if="paramDetails.length" class="mb-4">
        <div class="mb-1 font-medium">工艺参数</div>
        <div
          v-for="detail in paramDetails"
          :key="detail.id"
          class="mb-2 flex items-center gap-2"
        >
          <span class="w-40 flex-shrink-0 text-right text-sm text-gray-600">
            <span v-if="detail.required" class="text-red-500">*&nbsp;</span>
            {{ detail.paramName || detail.paramCode
            }}{{
              detail.unitMeasureName ? `(${detail.unitMeasureName})` : ''
            }}
          </span>
          <a-input
            v-model:value="detail.paramValue"
            placeholder="请输入参数值"
            class="!w-full"
          />
        </div>
      </div>
      <a-form-item label="备注">
        <a-textarea
          v-model:value="formData.remark"