From 90459eef4842501cbb2f14f715b737f071016997 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期四, 26 三月 2026 11:25:29 +0800
Subject: [PATCH] 产品维护页面计量单位变更,逻辑变更

---
 src/views/basicData/product/ProductSelectDialog.vue |   16 +++++++++++++---
 src/views/basicData/product/index.vue               |   30 ++++++++++++++++++++++--------
 2 files changed, 35 insertions(+), 11 deletions(-)

diff --git a/src/views/basicData/product/ProductSelectDialog.vue b/src/views/basicData/product/ProductSelectDialog.vue
index ded23cc..b9a55aa 100644
--- a/src/views/basicData/product/ProductSelectDialog.vue
+++ b/src/views/basicData/product/ProductSelectDialog.vue
@@ -22,7 +22,7 @@
       <el-table-column type="index" label="搴忓彿" width="60" />
       <el-table-column prop="productName" label="浜у搧澶х被" min-width="160" />
       <el-table-column prop="model" label="鍨嬪彿鍚嶇О" min-width="200" />
-      <el-table-column prop="unit" label="鍗曚綅" min-width="160" />
+      <el-table-column prop="thickness" label="鍘氬害" min-width="160" :formatter="formatThicknessTo15" />
     </el-table>
 
     <div class="mt-3 flex justify-end">
@@ -43,13 +43,13 @@
 <script setup lang="ts">
 import { computed, onMounted, reactive, ref, watch, nextTick } from "vue";
 import { ElMessage } from "element-plus";
-import { productModelList } from '@/api/basicData/productModel'
+import { productModelList } from '@/api/basicData/productModel.js'
 
 export type ProductRow = {
   id: number;
   productName: string;
   model: string;
-  unit?: string;
+  thickness?: string;
 };
 
 const props = defineProps<{
@@ -80,6 +80,16 @@
 const multipleSelection = ref<ProductRow[]>([]);
 const tableRef = ref();
 
+// 琛ㄦ牸灞曠ず鏃剁粺涓�淇濈暀 15 浣嶅皬鏁�
+const formatThicknessTo15 = (_row: any, _column: any, cellValue: any) => {
+  if (cellValue === null || cellValue === undefined) return "";
+  const s = String(cellValue).trim();
+  if (s === "") return "";
+  const n = Number(s);
+  if (Number.isNaN(n)) return s;
+  return n.toFixed(15);
+};
+
 function close() {
   visible.value = false;
 }
diff --git a/src/views/basicData/product/index.vue b/src/views/basicData/product/index.vue
index 7b2a819..26d3600 100644
--- a/src/views/basicData/product/index.vue
+++ b/src/views/basicData/product/index.vue
@@ -152,12 +152,13 @@
         </el-row>
         <el-row>
           <el-col :span="24">
-            <el-form-item label="鍗曚綅锛�" prop="unit">
+            <el-form-item label="鍘氬害锛�" prop="thickness">
               <el-input
-                v-model="modelForm.unit"
-                placeholder="璇疯緭鍏ュ崟浣�"
+                v-model="modelForm.thickness"
+                placeholder="璇疯緭鍏ュ帤搴�"
                 clearable
                 @keydown.enter.prevent
+                @blur="modelForm.thickness = formatThicknessTo15(modelForm.thickness)"
               />
             </el-form-item>
           </el-col>
@@ -206,8 +207,10 @@
     prop: "model",
   },
   {
-    label: "鍗曚綅",
-    prop: "unit",
+    label: "鍘氬害",
+    prop: "thickness",
+    // 鍒楄〃灞曠ず鏃剁粺涓�淇濈暀 15 浣嶅皬鏁�
+    formatData: (val) => formatThicknessTo15(val),
   },
   {
     dataType: "action",
@@ -245,14 +248,24 @@
   },
   modelForm: {
     model: "",
-    unit: "",
+    thickness: "",
   },
   modelRules: {
     model: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-    unit: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+    thickness: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
   },
 });
 const { form, rules, modelForm, modelRules } = toRefs(data);
+
+// 鎶婂帤搴︽牸寮忓寲鎴愬浐瀹� 15 浣嶅皬鏁帮紙鐢ㄤ簬灞曠ず/鎻愪氦锛�
+const formatThicknessTo15 = (val) => {
+  if (val === null || val === undefined) return "";
+  const s = String(val).trim();
+  if (s === "") return "";
+  const n = Number(s);
+  if (Number.isNaN(n)) return s;
+  return n.toFixed(15);
+};
 // 鏌ヨ浜у搧鏍�
 const getProductTreeList = () => {
   treeLoad.value = true;
@@ -286,8 +299,8 @@
   modelOperationType.value = type;
   modelDia.value = true;
   modelForm.value.model = "";
-  modelForm.value.model = "";
   modelForm.value.id = "";
+  modelForm.value.thickness = "";
   if (type === "edit") {
     modelForm.value = { ...data };
   }
@@ -359,6 +372,7 @@
   proxy.$refs.modelFormRef.validate((valid) => {
     if (valid) {
       modelForm.value.productId = currentId.value;
+      modelForm.value.thickness = formatThicknessTo15(modelForm.value.thickness);
       addOrEditProductModel(modelForm.value).then((res) => {
         proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
         closeModelDia();

--
Gitblit v1.9.3