| | |
| | | <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef"> |
| | | <el-row :gutter="30"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="销售订单:" prop="salesLedgerId"> |
| | | <el-select |
| | | v-model="form.salesLedgerId" |
| | | placeholder="请选择销售订单" |
| | | clearable |
| | | filterable |
| | | :disabled="isViewMode" |
| | | style="width: 100%" |
| | | @change="handleSalesLedgerChange" |
| | | > |
| | | <el-option |
| | | v-for="item in salesLedgerOptions" |
| | | :key="item.id" |
| | | :label="item.salesContractNo" |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="30"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="产品名称:" prop="productId"> |
| | | <el-tree-select |
| | | v-model="form.productId" |
| | |
| | | import {userListNoPage} from "@/api/system/user.js"; |
| | | import {qualityInspectDetailByProductId, getQualityTestStandardParamByTestStandardId} from "@/api/qualityManagement/metricMaintenance.js"; |
| | | import {qualityInspectParamInfo} from "@/api/qualityManagement/qualityInspectParam.js"; |
| | | import {ledgerListNoPage, productList} from "@/api/salesManagement/salesLedger.js"; |
| | | const { proxy } = getCurrentInstance() |
| | | const emit = defineEmits(['close']) |
| | | |
| | |
| | | unqualifiedQuantity: "", |
| | | checkCompany: "", |
| | | checkResult: "", |
| | | salesLedgerId: "", |
| | | salesContractNo: "", |
| | | }, |
| | | rules: { |
| | | checkTime: [{ required: true, message: "请输入", trigger: "blur" }], |
| | | process: [{ required: true, message: "请输入", trigger: "blur" }], |
| | | checkTime: [{ required: false, message: "请输入", trigger: "blur" }], |
| | | process: [{ required: false, message: "请输入", trigger: "blur" }], |
| | | checkName: [{ required: false, message: "请输入", trigger: "blur" }], |
| | | productId: [{ required: true, message: "请输入", trigger: "blur" }], |
| | | productModelId: [{ required: true, message: "请选择", trigger: "change" }], |
| | | testStandardId: [{ required: false, message: "请选择指标", trigger: "change" }], |
| | | unit: [{ required: false, message: "请输入", trigger: "blur" }], |
| | | quantity: [{ required: true, message: "请输入", trigger: "blur" }], |
| | | qualifiedQuantity: [{ required: true, message: "请输入", trigger: "blur" }], |
| | | unqualifiedQuantity: [{ required: true, message: "请输入", trigger: "blur" }], |
| | | quantity: [{ required: false, message: "请输入", trigger: "blur" }], |
| | | qualifiedQuantity: [{ required: false, message: "请输入", trigger: "blur" }], |
| | | unqualifiedQuantity: [{ required: false, message: "请输入", trigger: "blur" }], |
| | | checkCompany: [{ required: false, message: "请输入", trigger: "blur" }], |
| | | checkResult: [{ required: true, message: "请输入", trigger: "change" }], |
| | | checkResult: [{ required: false, message: "请输入", trigger: "change" }], |
| | | }, |
| | | }); |
| | | const { form, rules } = toRefs(data); |
| | |
| | | const currentProductId = ref(0); |
| | | const testStandardOptions = ref([]); // 指标选择下拉框数据 |
| | | const modelOptions = ref([]); |
| | | const salesLedgerOptions = ref([]); // 销售订单下拉框数据 |
| | | |
| | | // 打开弹框 |
| | | const openDialog = async (type, row) => { |
| | |
| | | proxy.$refs.formRef?.clearValidate(); |
| | | |
| | | // 并行加载基础数据 |
| | | const [userListsRes] = await Promise.all([ |
| | | const [userListsRes, salesLedgerRes] = await Promise.all([ |
| | | userListNoPage(), |
| | | getProductOptions(), |
| | | getOptions().then((res) => { |
| | | supplierList.value = res.data; |
| | | }), |
| | | ledgerListNoPage({ current: -1, size: -1 }).then((res) => { |
| | | salesLedgerOptions.value = res.data || []; |
| | | }) |
| | | ]); |
| | | userList.value = userListsRes.data; |
| | |
| | | form.value = {} |
| | | testStandardOptions.value = []; |
| | | tableData.value = []; |
| | | |
| | | // 新增模式下,默认设置产品名称为"马铃薯雪花粉"(id=320) |
| | | if (operationType.value === 'add') { |
| | | const defaultProductId = 320; |
| | | form.value.productId = defaultProductId; |
| | | currentProductId.value = defaultProductId; |
| | | form.value.productName = '马铃薯雪花粉'; |
| | | // 加载规格型号列表 |
| | | try { |
| | | const modelRes = await modelList({ id: defaultProductId }); |
| | | modelOptions.value = modelRes || []; |
| | | // 默认选中第一个规格型号 |
| | | if (modelOptions.value.length > 0) { |
| | | const firstModel = modelOptions.value[0]; |
| | | form.value.productModelId = firstModel.id; |
| | | form.value.model = firstModel.model || ''; |
| | | form.value.unit = firstModel.unit || ''; |
| | | } |
| | | // 加载指标选项 |
| | | getList(); |
| | | } catch (e) { |
| | | console.error('加载默认产品规格型号失败', e); |
| | | } |
| | | } |
| | | |
| | | if (operationType.value === 'edit' || operationType.value === 'view') { |
| | | // 先保存 testStandardId,避免被清空 |
| | |
| | | form.value.unit = modelOptions.value.find(item => item.id == value)?.unit || ''; |
| | | } |
| | | |
| | | // 销售订单选择变化处理 |
| | | const handleSalesLedgerChange = async (value) => { |
| | | const selectedItem = salesLedgerOptions.value.find(item => item.id == value); |
| | | if (selectedItem) { |
| | | form.value.salesContractNo = selectedItem.salesContractNo || ''; |
| | | // 根据销售订单ID查询产品信息,只赋值数量 |
| | | try { |
| | | const res = await productList({ salesLedgerId: value, type: 1 }); |
| | | const productData = res.data && res.data.length > 0 ? res.data[0] : null; |
| | | if (productData) { |
| | | // 只自动带入数量 |
| | | form.value.quantity = productData.quantity || 0; |
| | | } |
| | | } catch (e) { |
| | | console.error('查询销售订单产品信息失败', e); |
| | | proxy.$modal.msgError('查询销售订单产品信息失败'); |
| | | } |
| | | } else { |
| | | form.value.salesContractNo = ''; |
| | | form.value.quantity = undefined; |
| | | } |
| | | } |
| | | |
| | | const handleQualifiedQuantityChange = (value) => { |
| | | if (value === null || value === undefined) { |
| | | form.value.qualifiedQuantity = 0; |