From 2cdbad409e82d4354e4eca5cffa65c6bef7a4d20 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期一, 16 三月 2026 13:36:37 +0800
Subject: [PATCH] bom添加产品编码
---
src/views/productionPlan/productionPlan/index.vue | 128 +++++++++++++++++++++++++++---------------
1 files changed, 82 insertions(+), 46 deletions(-)
diff --git a/src/views/productionPlan/productionPlan/index.vue b/src/views/productionPlan/productionPlan/index.vue
index 88aedf3..d2a3efd 100644
--- a/src/views/productionPlan/productionPlan/index.vue
+++ b/src/views/productionPlan/productionPlan/index.vue
@@ -18,7 +18,7 @@
@keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="浜у搧瑙勬牸:">
- <el-input v-model="searchForm.specification"
+ <el-input v-model="searchForm.model"
placeholder="璇疯緭鍏�"
clearable
style="width: 160px;"
@@ -102,7 +102,7 @@
<el-row :gutter="20">
<el-col :span="10">
<el-form-item label="浜у搧瑙勬牸">
- <div class="info-display">{{ mergeForm.specification || '-' }}</div>
+ <div class="info-display">{{ mergeForm.model || '-' }}</div>
</el-form-item>
</el-col>
<el-col :span="10">
@@ -251,9 +251,9 @@
filterable
placeholder="璇烽�夋嫨">
<el-option v-for="item in specificationOptions"
- :key="item.skuId"
- :label="item.specification"
- :value="item.skuId" />
+ :key="item.id"
+ :label="item.model"
+ :value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="鍧楁暟"
@@ -359,10 +359,23 @@
const tableColumn = ref([
{
+ label: "鏁版嵁鏉ユ簮",
+ width: "100px",
+ prop: "dataSourceType",
+ dataType: "tag",
+ formatType: params => {
+ const typeMap = {
+ 2: "warning",
+ 1: "primary",
+ };
+ return typeMap[params] || "info";
+ },
+ formatData: cell => (cell == 1 ? "閽夐拤鍚屾" : "鎵嬪姩鏂板"),
+ },
+ {
label: "鐢宠鍗曠紪鍙�",
prop: "applyNo",
width: "150px",
- className: "code-cell",
},
{
label: "瀹㈡埛鍚嶇О",
@@ -372,19 +385,20 @@
{
label: "浜у搧鍚嶇О",
prop: "productName",
- width: "100px",
+ width: "200px",
dataType: "tag",
formatType: params => {
- const typeMap = {
- 鏉挎潗: "primary",
- 鐮屽潡: "info",
- };
- return typeMap[params] || "info";
+ // const typeMap = {
+ // 鏉挎潗: "primary",
+ // 鐮屽潡: "warning",
+ // };
+ // return typeMap[params] || "info";
+ return "primary";
},
},
{
label: "浜у搧瑙勬牸",
- prop: "specification",
+ prop: "model",
width: "150px",
className: "spec-cell",
},
@@ -392,12 +406,10 @@
label: "鐗╂枡缂栫爜",
prop: "materialCode",
width: "150px",
- className: "code-cell",
},
{
label: "鍧楁暟",
prop: "quantity",
- className: "quantity-cell",
formatData: cell => (cell ? `${cell}鍧梎 : ""),
},
{
@@ -408,11 +420,34 @@
formatData: cell => (cell ? `${cell}鏂筦 : ""),
},
{
+ label: "涓嬪彂鐘舵��",
+ prop: "status",
+ width: "150px",
+ className: "status-cell",
+ dataType: "tag",
+ formatType: params => {
+ const typeMap = {
+ 0: "warning",
+ 1: "primary",
+ 2: "info",
+ };
+ return typeMap[params] || "info";
+ },
+ formatData: cell => {
+ const statusMap = {
+ 0: "寰呬笅鍙�",
+ 1: "閮ㄥ垎涓嬪彂",
+ 2: "宸蹭笅鍙�",
+ };
+ return statusMap[cell] || "";
+ },
+ },
+ {
label: "宸蹭笅鍙戞柟鏁�",
prop: "assignedQuantity",
width: "150px",
className: "spec-cell",
- formatData: cell => (cell ? `${cell}鏂筦 : ""),
+ formatData: cell => (cell ? `${cell}鏂筦 : 0),
},
{
label: "闀�",
@@ -456,18 +491,15 @@
label: "寮哄害",
prop: "strength",
},
- {
- label: "鏁版嵁鏉ユ簮",
- width: "100px",
- prop: "dataSourceType",
- formatData: cell => (cell == 1 ? "鍚屾" : "鎵嬪姩"),
- },
+
{
label: "澶囨敞 1",
+ width: "150px",
prop: "remarkOne",
},
{
label: "澶囨敞 2",
+ width: "150px",
prop: "remarkTwo",
},
@@ -484,6 +516,7 @@
link: true,
showHide: row => {
return row.status == 0;
+ //status锛�0锛氬緟涓嬪彂锛�1锛氶儴鍒嗕笅鍙戯紝2锛氬凡涓嬪彂
},
clickFun: row => {
handleEdit(row);
@@ -516,7 +549,7 @@
mergeForm.ids = [row.id];
mergeForm.materialCode = row.materialCode;
mergeForm.productName = row.productName || "";
- mergeForm.specification = row.specification || "";
+ mergeForm.model = row.model || "";
mergeForm.length = row.length || 0;
mergeForm.width = row.width || 0;
mergeForm.height = row.height || 0;
@@ -558,7 +591,7 @@
const mergeForm = reactive({
materialCode: "",
productName: "",
- specification: "",
+ model: "",
length: 0,
width: 0,
height: 0,
@@ -599,7 +632,7 @@
productMaterialId: undefined,
productMaterialSkuId: undefined,
productName: "",
- specification: "",
+ model: "",
materialCode: "",
quantity: 0,
volume: 0,
@@ -620,6 +653,7 @@
productMaterialSkuId: [
{ required: true, message: "璇烽�夋嫨浜у搧瑙勬牸", trigger: "change" },
],
+ volume: [{ required: true, message: "璇疯緭鍏ユ柟鏁�", trigger: "blur" }],
productMaterialId: [
{ required: true, message: "璇烽�夋嫨浜у搧", trigger: "change" },
],
@@ -665,7 +699,7 @@
if (item.materialList && item.materialList.length > 0) {
newItem.children = item.materialList.map(material => ({
value: material.id, // 浣跨敤material鐨刬d浣滀负value
- label: material.materialName, // 浣跨敤materialName浣滀负label
+ label: material.productName, // 浣跨敤materialName浣滀负label
}));
}
@@ -678,28 +712,26 @@
fetchSpecificationOptions(value);
};
- const fetchSpecificationOptions = materialId => {
+ const fetchSpecificationOptions = productId => {
specificationOptions.value = [];
- if (materialId) {
- modelListPage({ materialId: materialId, size: -1, current: -1 }).then(
- res => {
- specificationOptions.value = res.data.records;
- }
- );
+ if (productId) {
+ modelListPage({ productId: productId, size: -1, current: -1 }).then(res => {
+ specificationOptions.value = res.data.records;
+ });
}
};
const handleChangeSpecification = value => {
form.materialCode = undefined;
const selectedModel = specificationOptions.value.find(
- item => item.skuId === value
+ item => item.id === value
);
if (selectedModel) {
form.materialCode = selectedModel.materialCode;
// 瑙f瀽瑙勬牸瀛楃涓茶幏鍙栭暱瀹介珮
- const specification = selectedModel.specification;
- if (specification) {
- const dimensions = specification.match(/^(\d+)\*(\d+)\*(\d+)$/);
+ const model = selectedModel.model;
+ if (model) {
+ const dimensions = model.match(/^(\d+)\*(\d+)\*(\d+)$/);
if (dimensions && dimensions.length === 4) {
form.length = parseInt(dimensions[1]);
form.width = parseInt(dimensions[2]);
@@ -784,7 +816,7 @@
searchForm: {
customerName: "",
productName: "",
- specification: "",
+ model: "",
materialCode: "",
applyNo: "",
dateRange: [],
@@ -804,7 +836,7 @@
Object.assign(searchForm.value, {
customerName: "",
productName: "",
- specification: "",
+ model: "",
materialCode: "",
applyNo: "",
dateRange: [],
@@ -921,7 +953,7 @@
const firstRow = selectedRows.value[0];
mergeForm.materialCode = selectedserialNo.value;
mergeForm.productName = firstRow.productName || "";
- mergeForm.specification = firstRow.specification || "";
+ mergeForm.model = firstRow.model || "";
mergeForm.length = firstRow.length || 0;
mergeForm.width = firstRow.width || 0;
mergeForm.height = firstRow.height || 0;
@@ -1057,7 +1089,7 @@
productName: "",
productMaterialId: undefined,
productMaterialSkuId: undefined,
- specification: "",
+ model: "",
materialCode: "",
quantity: 0,
volume: 0,
@@ -1084,7 +1116,7 @@
productName: row.productName || "",
productMaterialId: row.productMaterialId || undefined,
productMaterialSkuId: row.productMaterialSkuId || undefined,
- specification: row.specification || "",
+ model: row.model || "",
materialCode: row.materialCode || "",
quantity: row.quantity || 0,
volume: row.volume || 0,
@@ -1127,8 +1159,16 @@
const handleSubmit = () => {
formRef.value.validate(valid => {
if (valid) {
+ if (form.volume === 0) {
+ proxy.$modal.msgError("鏂规暟涓嶈兘涓�0");
+ return;
+ }
+ if (form.v === "add") {
+ payload.id = null;
+ }
const payload = { ...form };
if (operationType.value === "add") {
+ payload.id = null;
productionPlanAdd(payload)
.then(() => {
proxy.$modal.msgSuccess(
@@ -1214,7 +1254,6 @@
color: #ffffff;
border-bottom: none;
padding: 16px 0;
- font-size: 14px;
letter-spacing: 0.5px;
}
}
@@ -1237,7 +1276,6 @@
border-bottom: 1px solid #f0f0f0;
padding: 14px 0;
color: #303133;
- font-size: 13px;
}
}
@@ -1256,7 +1294,6 @@
font-weight: 600;
color: #409eff;
font-family: "Courier New", monospace;
- font-size: 14px;
text-shadow: 0 1px 2px rgba(64, 158, 255, 0.2);
}
@@ -1281,7 +1318,6 @@
// 鏃ユ湡瀛楁鏍峰紡
.date-cell {
color: #909399;
- font-size: 12px;
font-style: italic;
}
--
Gitblit v1.9.3