更新工序选择逻辑,改用字典数据源 `product_process_type`,并调整相关字段以兼容后端接口
已修改2个文件
72 ■■■■ 文件已修改
src/views/qualityManagement/metricMaintenance/index.vue 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/qualityManagement/processInspection/components/formDia.vue 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/qualityManagement/metricMaintenance/index.vue
@@ -181,7 +181,6 @@
  qualityTestStandardParamUpdate,
  qualityTestStandardParamDel
} from '@/api/qualityManagement/metricMaintenance.js'
import { productProcessListPage } from '@/api/basicData/productProcess.js'
import StandardFormDialog from './StandardFormDialog.vue'
import ParamFormDialog from './ParamFormDialog.vue'
@@ -235,24 +234,14 @@
  total: 0
})
// 工序下拉
const processOptions = ref([])
// 获取工序列表
const getProcessList = async () => {
  try {
    const res = await productProcessListPage({ current: 1, size: 1000 })
    if (res?.code === 200) {
      const records = res?.data?.records || []
      processOptions.value = records.map(item => ({
        label: item.processName || item.name || item.label,
        value: item.id || item.processId || item.value
      }))
    }
  } catch (error) {
    console.error('获取工序列表失败:', error)
  }
}
// 工序下拉:来源于字典 product_process_type
const { product_process_type } = proxy.useDict('product_process_type')
const processOptions = computed(() => {
  return (product_process_type?.value || []).map(item => ({
    label: item.label,
    value: item.value
  }))
})
// 当前选中的标准 & 右侧详情
const currentStandard = ref(null)
@@ -398,6 +387,9 @@
    current: page.current,
    size: page.size
  }
  // processType:字典 product_process_type 的 value
  // 兼容:如果后端仍接受 processId,这里两者都会带上
  params.processType = params.processId
  qualityTestStandardListPage(params)
    .then((res) => {
      const records = res?.data?.records || []
@@ -627,6 +619,8 @@
const submitStandardForm = () => {
  const payload = { ...standardForm.value }
  // processType:字典 product_process_type 的 value
  payload.processType = payload.processId
  const isEdit = standardOperationType.value === 'edit'
  if (isEdit) {
    qualityTestStandardUpdate(payload).then(() => {
@@ -704,7 +698,6 @@
}
onMounted(() => {
  getProcessList()
  getStandardList()
})
</script>
src/views/qualityManagement/processInspection/components/formDia.vue
@@ -11,7 +11,7 @@
          <el-col :span="12">
            <el-form-item label="部件:" prop="process">
              <el-select v-model="form.process" placeholder="请选择部件" clearable :disabled="processQuantityDisabled" style="width: 100%">
                <el-option v-for="item in processList" :key="item.name" :label="item.name" :value="item.name"/>
                <el-option v-for="item in processList" :key="item.id" :label="item.name" :value="item.id"/>
              </el-select>
            </el-form-item>
          </el-col>
@@ -139,8 +139,8 @@
import {qualityInspectDetailByProductId, getQualityTestStandardParamByTestStandardId} from "@/api/qualityManagement/metricMaintenance.js";
import {userListNoPage} from "@/api/system/user.js";
import {qualityInspectParamInfo} from "@/api/qualityManagement/qualityInspectParam.js";
import { list } from "@/api/productionManagement/productionProcess";
const { proxy } = getCurrentInstance()
const { product_process_type } = proxy.useDict('product_process_type')
const emit = defineEmits(['close'])
@@ -182,7 +182,14 @@
  const v = form.value || {};
  return !!(v.productMainId != null || v.purchaseLedgerId != null);
});
const processList = ref([]); // 工序下拉列表(工序名称 name)
// 工序/部件下拉:来源于字典 `product_process_type`
// 字典返回结构:{ label, value },这里统一成 { id, name }
const processList = computed(() => {
  return (product_process_type?.value || []).map(item => ({
    id: item.value,
    name: item.label
  }))
})
const supplierList = ref([]);
const productOptions = ref([]);
const tableColumn = ref([
@@ -221,14 +228,7 @@
    getOptions().then((res) => {
        supplierList.value = res.data;
    });
    // 加载工序下拉列表
    try {
        const res = await list();
        processList.value = res.data || [];
    } catch (e) {
        console.error("加载工序列表失败", e);
        processList.value = [];
    }
    // 工序/部件下拉由字典 product_process_type 自动提供,无需再请求接口
    let userLists = await userListNoPage();
    userList.value = userLists.data;
    // 先重置表单数据(保持字段完整,避免弹窗首次渲染时触发必填红框“闪一下”)
@@ -276,6 +276,9 @@
            let params = {
                productId: currentProductId.value,
                inspectType: 1,
                // 字典 product_process_type 的 value 作为 processType 传入
                processType: form.value.process || '',
                // 兼容旧字段(如后端仍使用 process)
                process: form.value.process || ''
            }
            qualityInspectDetailByProductId(params).then(res => {
@@ -376,7 +379,7 @@
  proxy.$refs.formRef.validate(valid => {
    if (valid) {
      form.value.inspectType = 1
            const processName = form.value.process || '';
            const processType = form.value.process || '';
            if (operationType.value === "add") {
                tableData.value.forEach((item) => {
                    delete item.id
@@ -384,7 +387,10 @@
            }
            const data = {
                ...form.value, 
                process: processName, // 保留 process 字段以兼容后端
                // processType:字典 product_process_type 的 value
                processType: processType,
                // 兼容旧字段(如后端仍使用 process)
                process: processType,
                qualityInspectParams: tableData.value
            }
      if (operationType.value === "add") {
@@ -407,11 +413,14 @@
        tableData.value = [];
        return;
    }
    const processName = form.value.process || '';
    const processType = form.value.process || '';
    let params = {
        productId: currentProductId.value,
        inspectType: 1,
        process: processName
        // 字典 product_process_type 的 value 作为 processType 传入
        processType: processType,
        // 兼容旧字段(如后端仍使用 process)
        process: processType
    }
    qualityInspectDetailByProductId(params).then(res => {
        // 保存下拉框选项数据