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