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