From d0417ce6056781e3337ef0dac597c508cf36d27e Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期二, 21 四月 2026 15:52:56 +0800
Subject: [PATCH] 新增工序选择功能,优化设备管理页面,支持工序列表的动态加载和表单验证
---
src/pages/equipmentManagement/ledger/detail.vue | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 56 insertions(+), 0 deletions(-)
diff --git a/src/pages/equipmentManagement/ledger/detail.vue b/src/pages/equipmentManagement/ledger/detail.vue
index 1b4ca9f..5cbff67 100644
--- a/src/pages/equipmentManagement/ledger/detail.vue
+++ b/src/pages/equipmentManagement/ledger/detail.vue
@@ -7,6 +7,24 @@
<u-form @submit="sendForm" ref="formRef" :model="form" :rules="formRules" label-width="110">
<!-- 鍩烘湰淇℃伅 -->
<u-cell-group title="鍩烘湰淇℃伅">
+ <u-form-item label="宸ュ簭" prop="productProcessId" required border-bottom>
+ <u-input
+ v-model="form.productProcessName"
+ placeholder="璇烽�夋嫨宸ュ簭"
+ readonly
+ @click="showProcessPicker = true"
+ />
+ <template #right>
+ <u-icon name="arrow-right" @click="showProcessPicker = true"></u-icon>
+ </template>
+ <up-action-sheet
+ :show="showProcessPicker"
+ :actions="processActionList"
+ title="閫夋嫨宸ュ簭"
+ @select="onProcessSelect"
+ @close="showProcessPicker = false"
+ />
+ </u-form-item>
<u-form-item label="璁惧鍚嶇О" prop="deviceName" required border-bottom>
<u-input
v-model="form.deviceName"
@@ -149,6 +167,7 @@
import { onShow } from '@dcloudio/uni-app';
import PageHeader from '@/components/PageHeader.vue';
import { getLedgerById, addLedger, editLedger } from '@/api/equipmentManagement/ledger';
+import { list as getProductProcessList } from '@/api/qualityManagement/materialInspection.js';
import dayjs from "dayjs";
import {
calculateTaxIncludeTotalPrice,
@@ -172,11 +191,19 @@
const showDate = ref(false);
const pickerDateValue = ref(Date.now());
const showTaxRatePicker = ref(false);
+const showProcessPicker = ref(false);
const taxRateActionList = ref([
{ name: '1', value: 1 },
{ name: '6', value: 6 },
{ name: '13', value: 13 }
]);
+const processList = ref([]);
+const processActionList = computed(() =>
+ (processList.value || []).map((item) => ({
+ name: item.name,
+ value: item.id
+ }))
+);
// 琛ㄥ崟楠岃瘉瑙勫垯
const formRules = {
@@ -186,6 +213,7 @@
supplierName: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
storageLocation: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
unit: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
+ productProcessId: [{ required: true, trigger: "change", message: "璇烽�夋嫨宸ュ簭" }],
// 鏁板瓧绫诲瀷瀛楁闇�瑕佺壒娈婂鐞嗭紝纭繚鏈夋暟鍊兼椂涓嶄細瑙﹀彂蹇呭~鏍¢獙
number: [{
required: true,
@@ -238,6 +266,8 @@
storageLocation: undefined, // 瀛樻斁浣嶇疆
unit: undefined, // 鍗曚綅
enableDepreciation: false, // 鍚敤鎶樻棫
+ productProcessId: undefined, // 宸ュ簭ID
+ productProcessName: undefined, // 宸ュ簭鍚嶇О
number: undefined, // 鏁伴噺
taxIncludingPriceUnit: undefined, // 鍚◣鍗曚环
taxIncludingPriceTotal: undefined, // 鍚◣鎬讳环
@@ -265,6 +295,11 @@
form.value.storageLocation = data.storageLocation || '';
form.value.unit = data.unit;
form.value.enableDepreciation = !!data.enableDepreciation;
+ form.value.productProcessId = data.productProcessId;
+ form.value.productProcessName =
+ data.productProcessName ||
+ processList.value.find((item) => item.id == data.productProcessId)?.name ||
+ '';
form.value.number = data.number;
form.value.taxIncludingPriceUnit = data.taxIncludingPriceUnit;
form.value.taxIncludingPriceTotal = data.taxIncludingPriceTotal;
@@ -330,6 +365,9 @@
} else if (!form.value.unit) {
isValid = false;
errorMessage = '璇疯緭鍏ュ崟浣�';
+ } else if (!form.value.productProcessId) {
+ isValid = false;
+ errorMessage = '璇烽�夋嫨宸ュ簭';
}
// 妫�鏌ユ暟瀛楃被鍨嬪繀濉瓧娈�
@@ -428,6 +466,23 @@
mathNum(); // 閲嶆柊璁$畻
};
+// 鑾峰彇宸ュ簭鍒楄〃
+const getProcessList = async () => {
+ try {
+ const res = await getProductProcessList();
+ processList.value = res?.data || [];
+ } catch (e) {
+ processList.value = [];
+ }
+};
+
+// 閫夋嫨宸ュ簭
+const onProcessSelect = (e) => {
+ form.value.productProcessId = e.value;
+ form.value.productProcessName = e.name;
+ showProcessPicker.value = false;
+};
+
// 鏄剧ず鏃ユ湡閫夋嫨鍣�
const showDatePicker = () => {
showDate.value = true;
@@ -450,6 +505,7 @@
onMounted(() => {
// 椤甸潰鍔犺浇鏃惰幏鍙栧弬鏁�
+ getProcessList();
getPageParams();
});
</script>
--
Gitblit v1.9.3