From 754f4ccb397866d31bcfa71c3c8099539647a18b Mon Sep 17 00:00:00 2001
From: 张诺 <zhang_12370@163.com>
Date: 星期五, 24 四月 2026 16:56:13 +0800
Subject: [PATCH] feat(设备保养/销售台账): 新增保养项目字段并统一数字格式显示

---
 src/pages/equipmentManagement/upkeep/index.vue |    4 ++++
 src/pages/equipmentManagement/upkeep/add.vue   |   17 +++++++++++++++--
 src/pages/sales/salesAccount/index.vue         |    7 ++++++-
 src/pages/sales/salesAccount/out.vue           |   15 ++++++++++-----
 4 files changed, 35 insertions(+), 8 deletions(-)

diff --git a/src/pages/equipmentManagement/upkeep/add.vue b/src/pages/equipmentManagement/upkeep/add.vue
index 8dedb1b..9b1b65d 100644
--- a/src/pages/equipmentManagement/upkeep/add.vue
+++ b/src/pages/equipmentManagement/upkeep/add.vue
@@ -27,6 +27,13 @@
 					clearable
 				/>
 			</u-form-item>
+			<u-form-item label="淇濆吇椤圭洰" prop="maintenanceItem" border-bottom required>
+				<u-input
+					v-model="form.maintenanceItem"
+					placeholder="璇疯緭鍏ヤ繚鍏婚」鐩�"
+					clearable
+				/>
+			</u-form-item>
 			
 			<u-form-item label="璁″垝淇濆吇鏃ユ湡" prop="maintenancePlanTime" required border-bottom>
 				<u-input
@@ -97,7 +104,6 @@
 
 // 璁惧閫夐」
 const deviceOptions = ref([]);
-const deviceNameText = ref('');
 // 杞崲涓� action-sheet 闇�瑕佺殑鏍煎紡
 const deviceActions = computed(() => {
 	return deviceOptions.value.map(item => ({
@@ -115,12 +121,15 @@
 const formRules = {
 	deviceLedgerId: [{ required: true, trigger: "change", message: "璇烽�夋嫨璁惧鍚嶇О" }],
 	maintenancePlanTime: [{ required: true, trigger: "change", message: "璇烽�夋嫨璁″垝淇濆吇鏃ユ湡" }],
+	maintenanceItem: [{ required: true, trigger: "blur", message: "璇疯緭鍏ヤ繚鍏婚」鐩�" }],
 };
 
 // 浣跨敤 ref 澹版槑琛ㄥ崟鏁版嵁
 const form = ref({
 	deviceLedgerId: undefined, // 璁惧ID
+	deviceNameText: '', // 璁惧鍚嶇О鏄剧ず
 	deviceModel: undefined, // 瑙勬牸鍨嬪彿
+	maintenanceItem: '', // 淇濆吇椤圭洰
 	maintenancePlanTime: dayjs().format("YYYY-MM-DD"), // 璁″垝淇濆吇鏃ユ湡
 });
 
@@ -137,12 +146,16 @@
 // 鍔犺浇琛ㄥ崟鏁版嵁锛堢紪杈戞ā寮忥級
 const loadForm = async (id) => {
 	if (id) {
+		console.log('id:', id);
+
 		operationType.value = 'edit';
 		try {
 			const { code, data } = await getUpkeepById(id);
+			console.log('鑾峰彇璇︽儏:', data);
 			if (code == 200) {
 				form.value.deviceLedgerId = data.deviceLedgerId;
 				form.value.deviceModel = data.deviceModel;
+				form.value.maintenanceItem = data.maintenanceItem;
 				form.value.maintenancePlanTime = dayjs(data.maintenancePlanTime).format("YYYY-MM-DD");
 				// 璁剧疆璁惧鍚嶇О鏄剧ず
 				const device = deviceOptions.value.find(item => item.id === data.deviceLedgerId);
@@ -228,7 +241,7 @@
 const onDeviceConfirm = (selected) => {
 	// selected 杩斿洖鐨勬槸閫変腑椤�
 	form.value.deviceLedgerId = selected.value;
-		form.value.deviceNameText = selected.name;
+	form.value.deviceNameText = selected.text;
 	const selectedDevice = deviceOptions.value.find(item => item.id === selected.value);
 	if (selectedDevice) {
 		form.value.deviceModel = selectedDevice.deviceModel;
diff --git a/src/pages/equipmentManagement/upkeep/index.vue b/src/pages/equipmentManagement/upkeep/index.vue
index cca1b04..ae65c37 100644
--- a/src/pages/equipmentManagement/upkeep/index.vue
+++ b/src/pages/equipmentManagement/upkeep/index.vue
@@ -59,6 +59,10 @@
               <text class="detail-value">{{ item.createUserName || '-' }}</text>
             </view>
             <view class="detail-row">
+              <text class="detail-label">淇濆吇椤圭洰</text>
+              <text class="detail-value">{{ item.maintenanceItem || '-' }}</text>
+            </view>
+            <view class="detail-row">
               <text class="detail-label">褰曞叆鏃ユ湡</text>
               <text class="detail-value">{{ formatDateTime(item.createTime) || '-' }}</text>
             </view>
diff --git a/src/pages/sales/salesAccount/index.vue b/src/pages/sales/salesAccount/index.vue
index d6a3d8c..3d05ab7 100644
--- a/src/pages/sales/salesAccount/index.vue
+++ b/src/pages/sales/salesAccount/index.vue
@@ -60,7 +60,7 @@
             </view>
             <view class="detail-row">
               <text class="detail-label">鍚堝悓閲戦(鍏�)</text>
-              <text class="detail-value highlight">{{ item.contractAmount }}</text>
+              <text class="detail-value highlight">{{ formatNumber(item.contractAmount) }}</text>
             </view>
             <view class="detail-row">
               <text class="detail-label">绛捐鏃ユ湡</text>
@@ -152,6 +152,11 @@
   // 閿�鍞彴璐︽暟鎹�
   const ledgerList = ref([]);
 
+  // 鏍煎紡鍖栨暟瀛�
+  const formatNumber = value => {
+    return parseFloat(value || 0).toFixed(3);
+  };
+
   // 鍒ゆ柇鏄惁瀛樺湪宸插彂璐�/鍙戣揣瀹屾垚鐨勪骇鍝�
   const hasShippedProducts = products => {
     if (!products || products.length === 0) return false;
diff --git a/src/pages/sales/salesAccount/out.vue b/src/pages/sales/salesAccount/out.vue
index d4fc5be..cca77d4 100644
--- a/src/pages/sales/salesAccount/out.vue
+++ b/src/pages/sales/salesAccount/out.vue
@@ -11,7 +11,7 @@
       </view>
       <view class="summary-item">
         <text class="summary-label">鍚堝悓閲戦</text>
-        <text class="summary-value">{{ outData.contractAmount }}</text>
+        <text class="summary-value">{{ formatNumber(outData.contractAmount) }}</text>
       </view>
       <view class="summary-item">
         <text class="summary-label">绛捐鏃ユ湡</text>
@@ -83,7 +83,7 @@
           </view>
           <view class="detail-row">
             <text class="detail-label">鏁伴噺</text>
-            <text class="detail-value">{{ item.quantity }}</text>
+            <text class="detail-value">{{ formatNumber(item.quantity) }}</text>
           </view>
           <view class="detail-row">
             <text class="detail-label">绋庣巼锛�%锛�</text>
@@ -91,15 +91,15 @@
           </view>
           <view class="detail-row">
             <text class="detail-label">鍚◣鍗曚环锛堝厓锛�</text>
-            <text class="detail-value">{{ item.taxInclusiveUnitPrice }}</text>
+            <text class="detail-value">{{ formatNumber(item.taxInclusiveUnitPrice) }}</text>
           </view>
           <view class="detail-row">
             <text class="detail-label">鍚◣鎬讳环锛堝厓锛�</text>
-            <text class="detail-value">{{ item.taxInclusiveTotalPrice }}</text>
+            <text class="detail-value">{{ formatNumber(item.taxInclusiveTotalPrice) }}</text>
           </view>
           <view class="detail-row">
             <text class="detail-label">涓嶅惈绋庢�讳环锛堝厓锛�</text>
-            <text class="detail-value">{{ item.taxExclusiveTotalPrice }}</text>
+            <text class="detail-value">{{ formatNumber(item.taxExclusiveTotalPrice) }}</text>
           </view>
           <up-divider></up-divider>
           <u-button class="detail-button"
@@ -126,6 +126,11 @@
   // 瀹㈡埛淇℃伅
   const supplierId = ref("");
 
+  const formatNumber = value => {
+    if (value === null || value === undefined || value === "") return "-";
+    return parseFloat(value).toFixed(3);
+  };
+
   // 琛ㄦ牸鏁版嵁
   const tableData = ref([]);
 

--
Gitblit v1.9.3