From 40b5273e2540cee05bf3b9f11af5706989b5f699 Mon Sep 17 00:00:00 2001 From: zhang_12370 <z2864490065@outlook.com> Date: 星期五, 27 六月 2025 16:42:11 +0800 Subject: [PATCH] 提交删除部分页面导出按钮 修改采购逻辑 取消供应商新增校验 完善vue打包以后找不到文件的问题 --- src/views/production/components/ProductionDetailsTable.vue | 184 ++++++++++++++++++++++++--------------------- 1 files changed, 99 insertions(+), 85 deletions(-) diff --git a/src/views/production/components/ProductionDetailsTable.vue b/src/views/production/components/ProductionDetailsTable.vue index 7a87b17..dd89b4b 100644 --- a/src/views/production/components/ProductionDetailsTable.vue +++ b/src/views/production/components/ProductionDetailsTable.vue @@ -1,20 +1,21 @@ <template> - <el-table :data="tableData" :border="border" style="width: 100%"> + <el-table :data="tableData" :border="border" style="width: 100%"> <el-table-column label="鐓ょ" min-width="120"> <template #default="{ row, $index }"> - <el-select - clearable - :model-value="getCoalNameById(row.coalId) || row.coalId" - placeholder="璇烽�夋嫨鐓ょ" - @change="(value) => handleCoalSelectChange(row, value)" - filterable - :key="`coalId-select-${$index}-${weekList.length}`" + <el-select + clearable + :model-value="getCoalNameById(row.coalId) || row.coalId" + placeholder="璇烽�夋嫨鐓ょ" + @change="(value) => handleCoalSelectChange(row, value)" + filterable + :key="`coalId-select-${$index}-${weekList.length}`" + :disabled="isViewMode" > <el-option - v-for="(item, index) of weekList" - :key="`option-${index}-${item.key}`" - :label="item.value" - :value="item.value" + v-for="(item, index) of weekList" + :key="`option-${index}-${item.key}`" + :label="item.value" + :value="item.value" /> </el-select> </template> @@ -22,10 +23,11 @@ <el-table-column label="鐢熶骇鏁伴噺" min-width="120"> <template #default="{ row, $index }"> <el-input - v-model="row.productionQuantity" - placeholder="璇疯緭鍏ョ敓浜ф暟閲�" - type="number" - @input="handleInput('productionQuantity', $index, $event)" + v-model="row.productionQuantity" + placeholder="璇疯緭鍏ョ敓浜ф暟閲�" + type="number" + @input="handleInput('productionQuantity', $index, $event)" + :disabled="isViewMode" /> </template> </el-table-column> @@ -33,10 +35,11 @@ <el-table-column label="浜哄伐鎴愭湰" min-width="120"> <template #default="{ row, $index }"> <el-input - v-model="row.laborCost" - placeholder="璇疯緭鍏ヤ汉宸ユ垚鏈�" - type="number" - @input="handleInput('laborCost', $index, $event)" + v-model="row.laborCost" + placeholder="璇疯緭鍏ヤ汉宸ユ垚鏈�" + type="number" + @input="handleInput('laborCost', $index, $event)" + :disabled="isViewMode" > <template #suffix> <i style="font-style: normal">鍏�</i> @@ -48,10 +51,11 @@ <el-table-column label="鑳借�楁垚鏈�" min-width="120"> <template #default="{ row, $index }"> <el-input - v-model="row.energyConsumptionCost" - placeholder="璇疯緭鍏ヨ兘鑰楁垚鏈�" - type="number" - @input="handleInput('energyConsumptionCost', $index, $event)" + v-model="row.energyConsumptionCost" + placeholder="璇疯緭鍏ヨ兘鑰楁垚鏈�" + type="number" + @input="handleInput('energyConsumptionCost', $index, $event)" + :disabled="isViewMode" > <template #suffix> <i style="font-style: normal">鍏�</i> @@ -63,10 +67,11 @@ <el-table-column label="璁惧鎶樻棫" min-width="120"> <template #default="{ row, $index }"> <el-input - v-model="row.equipmentDepreciation" - placeholder="璇疯緭鍏ヨ澶囨姌鏃�" - type="number" - @input="handleInput('equipmentDepreciation', $index, $event)" + v-model="row.equipmentDepreciation" + placeholder="璇疯緭鍏ヨ澶囨姌鏃�" + type="number" + @input="handleInput('equipmentDepreciation', $index, $event)" + :disabled="isViewMode" > <template #suffix> <i style="font-style: normal">鍏�</i> @@ -78,10 +83,11 @@ <el-table-column label="閲囪喘鍗曚环" min-width="120"> <template #default="{ row, $index }"> <el-input - v-model="row.purchasePrice" - placeholder="璇疯緭鍏ラ噰璐崟浠�" - type="number" - @input="handleInput('purchasePrice', $index, $event)" + v-model="row.purchasePrice" + placeholder="璇疯緭鍏ラ噰璐崟浠�" + type="number" + @input="handleInput('purchasePrice', $index, $event)" + :disabled="isViewMode" > <template #suffix> <i style="font-style: normal">鍏�</i> @@ -93,12 +99,13 @@ <el-table-column label="鎬绘垚鏈�" min-width="120"> <template #default="{ row, $index }"> <el-input - disabled - v-model="row.totalCost" - placeholder="鎬绘垚鏈�" - type="number" - :readonly="autoCalculate" - @input="handleInput('totalCost', $index, $event)" + disabled + v-model="row.totalCost" + placeholder="鎬绘垚鏈�" + type="number" + :readonly="autoCalculate" + @input="handleInput('totalCost', $index, $event)" + > <template #suffix> <i style="font-style: normal">鍏�</i> @@ -109,34 +116,35 @@ <el-table-column label="鐢熶骇浜�" min-width="120"> <template #default="{ row, $index }"> <el-select - clearable - :model-value="getUserNameById(row.producer) || row.producer" - placeholder="璇烽�夋嫨鐢熶骇浜�" - @change="(value) => handleUserSelectChange(row, value)" - filterable - :key="`producer-select-${$index}-${userList.length}`" + clearable + :model-value="getUserNameById(row.producerId) || row.producerId" + placeholder="璇烽�夋嫨鐢熶骇浜�" + @change="(value) => handleUserSelectChange(row, value)" + filterable + :key="`producer-select-${$index}-${userList.length}`" + :disabled="isViewMode" > <el-option - v-for="(item, index) of userList" - :key="`option-${index}-${item.key}`" - :label="item.value" - :value="item.value" + v-for="(item, index) of userList" + :key="`option-${index}-${item.key}`" + :label="item.value" + :value="item.value" /> </el-select> </template> </el-table-column> <el-table-column - v-if="showOperations" - label="鎿嶄綔" - width="120" - fixed="right" + label="鎿嶄綔" + width="120" + fixed="right" + v-if="dialogType !== 'viewRow'" > <template #default="{ $index }"> <el-button - type="danger" - size="small" - @click="handleDelete($index)" - :icon="Delete" + type="danger" + size="small" + @click="handleDelete($index)" + :icon="Delete" > 鍒犻櫎 </el-button> @@ -146,11 +154,12 @@ </template> <script setup name="ProductionDetailsTable"> -import { ref, computed, watch, onMounted, nextTick } from "vue"; -import { Delete } from "@element-plus/icons-vue"; -import { getCoalFieldList } from "@/api/basicInformation/coalQualityMaintenance"; -import { getCoalInfoList } from "@/api/production"; -import { userListAll } from "@/api/publicApi"; +import {ref, computed, watch, onMounted, nextTick} from "vue"; +import {Delete} from "@element-plus/icons-vue"; +import {getCoalFieldList} from "@/api/basicInformation/coalQualityMaintenance"; +import {getCoalInfoList} from "@/api/production"; +import {userListAll} from "@/api/publicApi"; + const props = defineProps({ modelValue: { type: Array, @@ -168,8 +177,12 @@ type: Boolean, default: true, }, + dialogType:{ + type: String, + default:'add' + } }); - +const isViewMode = computed(() => props.dialogType === "viewRow"); const emit = defineEmits(["update:modelValue", "input-change", "delete-row"]); // 浣跨敤 v-model 杩涜鍙屽悜缁戝畾 @@ -189,19 +202,19 @@ // 濡傛灉寮�鍚嚜鍔ㄨ绠楁�绘垚鏈� if ( - props.autoCalculate && - [ - "laborCost", - "energyCost", - "equipmentDepreciation", - "purchasePrice", - ].includes(field) + props.autoCalculate && + [ + "laborCost", + "energyCost", + "equipmentDepreciation", + "purchasePrice", + ].includes(field) ) { calculateTotalCost(newData[index]); } tableData.value = newData; - emit("input-change", { field, index, value, row: newData[index] }); + emit("input-change", {field, index, value, row: newData[index]}); }; // 璁$畻鎬绘垚鏈� @@ -212,10 +225,10 @@ const purchasePrice = parseFloat(row.purchasePrice) || 0; row.totalCost = ( - laborCost + - energyCost + - equipmentDepreciation + - purchasePrice + laborCost + + energyCost + + equipmentDepreciation + + purchasePrice ).toFixed(2); }; @@ -254,7 +267,7 @@ if (newValue && weekList.value.length > 0) { // 褰撴暟鎹姞杞藉畬鎴愪笖weekList宸茶幏鍙栨椂锛岀‘淇濇樉绀烘纭� } -}, { deep: true }); +}, {deep: true}); // 鐩戝惉weekList鍙樺寲锛屽綋涓嬫媺鏁版嵁鍔犺浇瀹屾垚鍚庡鐞嗘樉绀� watch(weekList, (newList) => { @@ -266,23 +279,23 @@ tableData.value = tempData; }); } -}, { deep: true }); +}, {deep: true}); -onMounted(async()=>{ +onMounted(async () => { let res = await getCoalInfoList() console.log(res); res.data.forEach(item => { let obj = {}; obj.value = item.coal; obj.key = item.id; - weekList.value.push(obj); + weekList.value.push(obj); }); let ress = await userListAll(); ress.data.forEach(item => { let obj = {}; obj.value = item.nickName; obj.key = item.userId; - userList.value.push(obj); + userList.value.push(obj); }); // 閫氱煡鐖剁粍浠秝eekList宸插姞杞藉畬鎴� nextTick(() => { @@ -302,7 +315,7 @@ } }; const userList = ref([]); -const getUserList = (async()=>{ +const getUserList = (async () => { let res = await userListAll(); if (res.code === 200) { userList.value = res.data.map((item) => ({ @@ -318,7 +331,7 @@ if (newValue && userList.value.length > 0) { // 褰撴暟鎹姞杞藉畬鎴愪笖weekList宸茶幏鍙栨椂锛岀‘淇濇樉绀烘纭� } -}, { deep: true }); +}, {deep: true}); // 鐩戝惉userList鍙樺寲锛屽綋涓嬫媺鏁版嵁鍔犺浇瀹屾垚鍚庡鐞嗘樉绀� watch(userList, (newList) => { @@ -330,7 +343,7 @@ tableData.value = tempData; }); } -}, { deep: true }); +}, {deep: true}); const getUserNameById = (id) => { const producer = userList.value.find(item => item.key == id); @@ -338,12 +351,13 @@ }; // 澶勭悊鐢ㄦ埛閫夋嫨鍙樺寲锛堟柊鏂规硶锛氬悕绉伴�夋嫨杞琁D锛� const handleUserSelectChange = (row, selectedName) => { + console.log("handleUserSelectChange", row, selectedName); // 鏍规嵁閫夋嫨鐨勫悕绉版壘鍒板搴旂殑ID const userItem = userList.value.find(item => item.value === selectedName); if (userItem) { - row.producer = userItem.key; // 璁剧疆涓篒D + row.producerId = userItem.key; // 璁剧疆涓篒D } else { - row.producer = ''; // 濡傛灉娌℃壘鍒帮紝娓呯┖ + row.producerId = ''; // 濡傛灉娌℃壘鍒帮紝娓呯┖ } }; // 鏆撮湶鏂规硶缁欑埗缁勪欢浣跨敤 @@ -363,7 +377,7 @@ equipmentDepreciation: "", purchasePrice: "", totalCost: "", - producer: "", + producerId: "", ...rowData, }; tableData.value = [...tableData.value, defaultRow]; -- Gitblit v1.9.3