| | |
| | | @change="handleProductChange" |
| | | style="width: 100%" /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="产品规格" |
| | | prop="productMaterialSkuId"> |
| | | <el-select v-model="form.productMaterialSkuId" |
| | |
| | | productionPlanCombine, |
| | | } from "@/api/productionPlan/productionPlan.js"; |
| | | import PIMTable from "./components/PIMTable.vue"; |
| | | import {modelListPage, productTreeList} from "@/api/basicData/newProduct.js"; |
| | | import { modelListPage, productTreeList } from "@/api/basicData/newProduct.js"; |
| | | |
| | | const { proxy } = getCurrentInstance(); |
| | | |
| | |
| | | clickFun: row => { |
| | | // 单独下发操作 |
| | | // 设置表单数据 |
| | | mergeForm.ids = [row.id]; |
| | | mergeForm.materialCode = row.materialCode; |
| | | mergeForm.productName = row.productName || ""; |
| | | mergeForm.specification = row.specification || ""; |
| | |
| | | mergeForm.width = row.width || 0; |
| | | mergeForm.height = row.height || 0; |
| | | mergeForm.totalAssignedQuantity = |
| | | Number(row.volume) - Number(row.assignedQuantity) || 0; |
| | | (Number(row.volume) - Number(row.assignedQuantity)).toFixed(4) || 0; |
| | | mergeForm.planCompleteTime = row.planCompleteTime || ""; |
| | | sumAssignedQuantity.value = mergeForm.totalAssignedQuantity; |
| | | // 打开弹窗 |
| | |
| | | // 新增/编辑相关 |
| | | const dialogVisible = ref(false); |
| | | const operationType = ref("add"); // add | edit |
| | | const productOptions = ref([]) |
| | | const specificationOptions = ref([]) |
| | | const productOptions = ref([]); |
| | | const specificationOptions = ref([]); |
| | | const formRef = ref(null); |
| | | const form = reactive({ |
| | | id: undefined, |
| | |
| | | productOptions.value = convertIdToValue(res.data); |
| | | return res; |
| | | }); |
| | | } |
| | | }; |
| | | |
| | | const convertIdToValue = (data) => { |
| | | return data.map((item) => { |
| | | const convertIdToValue = data => { |
| | | return data.map(item => { |
| | | const newItem = { |
| | | value: `config_${item.configId}`, // 使用config_前缀确保唯一性 |
| | | label: item.configName, |
| | |
| | | |
| | | return newItem; |
| | | }); |
| | | } |
| | | }; |
| | | |
| | | const handleProductChange = (value) => { |
| | | form.productMaterialSkuId = undefined |
| | | fetchSpecificationOptions(value) |
| | | } |
| | | const handleProductChange = value => { |
| | | form.productMaterialSkuId = undefined; |
| | | fetchSpecificationOptions(value); |
| | | }; |
| | | |
| | | const fetchSpecificationOptions = (materialId) => { |
| | | specificationOptions.value = [] |
| | | const fetchSpecificationOptions = materialId => { |
| | | specificationOptions.value = []; |
| | | if (materialId) { |
| | | modelListPage({ materialId: materialId}).then(res => { |
| | | modelListPage({ materialId: materialId }).then(res => { |
| | | specificationOptions.value = res.data; |
| | | }); |
| | | } |
| | | } |
| | | }; |
| | | |
| | | const handleChangeSpecification = (value) => { |
| | | form.materialCode = undefined |
| | | const selectedModel = specificationOptions.value.find((item) => item.id === value) |
| | | const handleChangeSpecification = value => { |
| | | form.materialCode = undefined; |
| | | const selectedModel = specificationOptions.value.find( |
| | | item => item.id === value |
| | | ); |
| | | if (selectedModel) { |
| | | form.materialCode = selectedModel.materialCode |
| | | form.materialCode = selectedModel.materialCode; |
| | | } |
| | | } |
| | | }; |
| | | |
| | | // 生成模拟进度详情数据 |
| | | const generateProgressDetails = status => { |
| | |
| | | totalAssignedQuantity: 0, |
| | | }; |
| | | } |
| | | summary[category].totalAssignedQuantity += |
| | | Number(row.volume) - Number(row.assignedQuantity); |
| | | summary[category].totalAssignedQuantity += ( |
| | | Number(row.volume) - Number(row.assignedQuantity) |
| | | ).toFixed(4); |
| | | }); |
| | | |
| | | // 转换为数组格式 |
| | |
| | | // 拉取数据按钮操作 |
| | | const getLoadProdData = () => { |
| | | loadProdData() |
| | | .then(res => {}) |
| | | .then(res => { |
| | | getList(); |
| | | }) |
| | | .catch(() => {}); |
| | | }; |
| | | const sumAssignedQuantity = ref(0); |
| | |
| | | sum + |
| | | (row.volume == null |
| | | ? 0 |
| | | : Number(row.volume) - Number(row.assignedQuantity)) |
| | | : (Number(row.volume) - Number(row.assignedQuantity)).toFixed(4)) |
| | | ); |
| | | }, 0); |
| | | sumAssignedQuantity.value = totalAssignedQuantity; |
| | |
| | | mergeForm.height = firstRow.height || 0; |
| | | mergeForm.totalAssignedQuantity = totalAssignedQuantity; |
| | | mergeForm.planCompleteTime = firstRow.planCompleteTime || ""; |
| | | mergeForm.ids = selectedRows.value.map(row => row.id); |
| | | |
| | | // 打开弹窗 |
| | | isShowNewModal.value = true; |
| | |
| | | |
| | | // 处理合并下发提交 |
| | | const handleMergeSubmit = () => { |
| | | if (mergeForm.totalAssignedQuantity === 0) { |
| | | ElMessage.warning("请输入生产方数"); |
| | | return; |
| | | } |
| | | console.log(sumAssignedQuantity.value, "sumAssignedQuantity"); |
| | | // 计算当前选中行的总方数 |
| | | const totalVolume = selectedRows.value.reduce((sum, row) => { |
| | |
| | | return; |
| | | } |
| | | |
| | | mergeForm.ids = selectedRows.value.map(row => row.id); |
| | | console.log(mergeForm, "mergeForm"); |
| | | productionPlanCombine(mergeForm) |
| | | .then(res => { |
| | | if (res.code === 200) { |
| | | ElMessage.success("合并下发成功"); |
| | | ElMessage.success("下发成功"); |
| | | getList(); |
| | | isShowNewModal.value = false; |
| | | // 可以选择刷新列表或其他操作 |
| | | getList(); |
| | | } else { |
| | | ElMessage.error(res.message || "合并下发失败"); |
| | | ElMessage.error(res.message || "下发失败"); |
| | | } |
| | | }) |
| | | .catch(err => { |