From 2c2413760b6467bf62402dba7338bd3bbcbd7341 Mon Sep 17 00:00:00 2001 From: huang <1532065656@qq.com> Date: 星期二, 20 五月 2025 14:20:38 +0800 Subject: [PATCH] 添加产量报表功能页面 --- UI-Project/src/views/KanbanData/kanbanData.vue | 206 +++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 183 insertions(+), 23 deletions(-) diff --git a/UI-Project/src/views/KanbanData/kanbanData.vue b/UI-Project/src/views/KanbanData/kanbanData.vue index da17064..87a17e9 100644 --- a/UI-Project/src/views/KanbanData/kanbanData.vue +++ b/UI-Project/src/views/KanbanData/kanbanData.vue @@ -2,9 +2,25 @@ import { ref, onMounted, onBeforeUnmount } from 'vue' import { ElMessage, ElMessageBox } from 'element-plus' import request from '@/utils/request' +import { useRoute, useRouter } from 'vue-router' + +const router = useRouter() +const route = useRoute() // 鍔犺浇鍒濆鏁版嵁 onMounted(() => { + // 浠巐ocalStorage鑾峰彇瀛樺偍鐨勭洰鏍囧�� + yieldTargetValue1.value = localStorage.getItem('yieldTarget1') ? Number(localStorage.getItem('yieldTarget1')) : 0 + yieldTargetValue2.value = localStorage.getItem('yieldTarget2') ? Number(localStorage.getItem('yieldTarget2')) : 0 + + utilizationTargetValue1.value = localStorage.getItem('utilizationTarget1') ? Number(localStorage.getItem('utilizationTarget1')) : 0 + utilizationTargetValue2.value = localStorage.getItem('utilizationTarget2') ? Number(localStorage.getItem('utilizationTarget2')) : 0 + + quantityTargetValue1.value = localStorage.getItem('quantityTarget1') ? Number(localStorage.getItem('quantityTarget1')) : 0 + quantityTargetValue2.value = localStorage.getItem('quantityTarget2') ? Number(localStorage.getItem('quantityTarget2')) : 0 + quantityTargetValue3.value = localStorage.getItem('quantityTarget3') ? Number(localStorage.getItem('quantityTarget3')) : 0 + + // 鍔犺浇鍏朵粬鏁版嵁 loadYieldData() loadUtilizationData() loadQuantityData() @@ -54,6 +70,8 @@ lineNo: '', yieldvalue: null }) +const yieldTargetValue1 = ref() // 涓�绾跨洰鏍囧�� +const yieldTargetValue2 = ref() // 浜岀嚎鐩爣鍊� const yieldData = ref([]) const yieldLoading = ref(false) @@ -63,6 +81,8 @@ lineNo: '', utilizationRate: null }) +const utilizationTargetValue1 = ref() // 鏍囧噯绾跨洰鏍囧�� +const utilizationTargetValue2 = ref() // 瀹氬埗绾跨洰鏍囧�� const utilizationData = ref([]) const utilizationLoading = ref(false) @@ -79,6 +99,9 @@ locationCode: '', quantity: null }) +const quantityTargetValue1 = ref(4000) // 鍗婃垚鍝佺洰鏍囧�� +const quantityTargetValue2 = ref(4000) // 7014鐩爣鍊� +const quantityTargetValue3 = ref(4000) // 7016鐩爣鍊� const quantityData = ref([]) const quantityLoading = ref(false) @@ -235,9 +258,9 @@ } try { - const recordTimeStr = `${yieldFormData.value.recordDate} 00:00:00`; + const recordTimeStr = `${yieldFormData.value.recordDate} 00:00:00` - await request({ + const res = await request({ url: '/deviceInteraction/yield/addYield', method: 'post', data: { @@ -245,9 +268,14 @@ recordTime: recordTimeStr } }) - ElMessage.success('娣诲姞鎴愬姛') - resetYieldForm() - loadYieldData() // 鍒锋柊鏁版嵁 + + if (res.code === 200) { + ElMessage.success('娣诲姞鎴愬姛') + resetYieldForm() + loadYieldData() // 鍒锋柊鏁版嵁 + } else { + ElMessage.error(res.message || '娣诲姞澶辫触') + } } catch (error) { ElMessage.error('娣诲姞澶辫触') console.error(error) @@ -266,9 +294,9 @@ } try { - const recordTimeStr = `${utilizationFormData.value.recordDate} 00:00:00`; + const recordTimeStr = `${utilizationFormData.value.recordDate} 00:00:00` - await request({ + const res = await request({ url: '/deviceInteraction/utilization/addUtilization', method: 'post', data: { @@ -276,9 +304,14 @@ recordTime: recordTimeStr } }) - ElMessage.success('娣诲姞鎴愬姛') - resetUtilizationForm() - loadUtilizationData() // 鍒锋柊鏁版嵁 + + if (res.code === 200) { + ElMessage.success('娣诲姞鎴愬姛') + resetUtilizationForm() + loadUtilizationData() // 鍒锋柊鏁版嵁 + } else { + ElMessage.error(res.message || '娣诲姞澶辫触') + } } catch (error) { ElMessage.error('娣诲姞澶辫触') console.error(error) @@ -297,14 +330,9 @@ } try { - // 鎷兼帴鏃ユ湡鏃堕棿瀛楃涓诧紝纭繚鏄綋澶╃殑00:00:00 - const dateStr = quantityFormData.value.recordDate; - const recordTimeStr = `${dateStr} 00:00:00`; + const recordTimeStr = `${quantityFormData.value.recordDate} 00:00:00` - - const locationCode = quantityFormData.value.locationCode; - - await request({ + const res = await request({ url: '/deviceInteraction/quantity/addQuantity', method: 'post', data: { @@ -312,9 +340,14 @@ recordTime: recordTimeStr } }) - ElMessage.success('娣诲姞鎴愬姛') - resetQuantityForm() - loadQuantityData() // 鍒锋柊鏁版嵁 + + if (res.code === 200) { + ElMessage.success('娣诲姞鎴愬姛') + resetQuantityForm() + loadQuantityData() // 鍒锋柊鏁版嵁 + } else { + ElMessage.error(res.message || '娣诲姞澶辫触') + } } catch (error) { ElMessage.error('娣诲姞澶辫触') console.error(error) @@ -358,7 +391,7 @@ // 閲嶇疆琛ㄥ崟 const resetYieldForm = () => { yieldFormData.value = { - recordDate: yieldFormData.value.recordDate, // 淇濇寔褰撳墠閫夋嫨鐨勬棩鏈� + recordDate: yieldFormData.value.recordDate, lineNo: '', yieldvalue: null } @@ -366,7 +399,7 @@ const resetUtilizationForm = () => { utilizationFormData.value = { - recordDate: utilizationFormData.value.recordDate, // 淇濇寔褰撳墠閫夋嫨鐨勬棩鏈� + recordDate: utilizationFormData.value.recordDate, lineNo: '', utilizationRate: null } @@ -374,7 +407,7 @@ const resetQuantityForm = () => { quantityFormData.value = { - recordDate: quantityFormData.value.recordDate, // 淇濇寔褰撳墠閫夋嫨鐨勬棩鏈� + recordDate: quantityFormData.value.recordDate, locationCode: '', quantity: null } @@ -621,6 +654,30 @@ } } } + + +// 淇敼璁剧疆鐩爣鍊肩殑鏂规硶 +const setYieldTarget = () => { + // 鏇存柊浜ч噺鐩爣鍊煎苟淇濆瓨鍒發ocalStorage + localStorage.setItem('yieldTarget1', yieldTargetValue1.value.toString()) + localStorage.setItem('yieldTarget2', yieldTargetValue2.value.toString()) + ElMessage.success('鐩爣鍊艰缃垚鍔�') +} + +const setUtilizationTarget = () => { + // 鏇存柊鍒╃敤鐜囩洰鏍囧�煎苟淇濆瓨鍒發ocalStorage + localStorage.setItem('utilizationTarget1', utilizationTargetValue1.value.toString()) + localStorage.setItem('utilizationTarget2', utilizationTargetValue2.value.toString()) + ElMessage.success('鐩爣鍊艰缃垚鍔�') +} + +const setQuantityTarget = () => { + // 鏇存柊鍦ㄥ埗閲忕洰鏍囧�煎苟淇濆瓨鍒發ocalStorage + localStorage.setItem('quantityTarget1', quantityTargetValue1.value.toString()) + localStorage.setItem('quantityTarget2', quantityTargetValue2.value.toString()) + localStorage.setItem('quantityTarget3', quantityTargetValue3.value.toString()) + ElMessage.success('鐩爣鍊艰缃垚鍔�') +} </script> <template> @@ -629,6 +686,34 @@ <el-tabs v-model="activeTab"> <!-- 鍗曞皬鏃朵骇閲忔爣绛鹃〉 --> <el-tab-pane label="鍗曞皬鏃朵骇閲�" name="yield"> + <!-- 娣诲姞鐩爣鍊艰缃儴鍒� --> + <div class="target-setting"> + <el-form :inline="true" label-width="100px"> + <el-form-item label="涓�绾跨洰鏍囧��"> + <el-input-number + v-model="yieldTargetValue1" + :precision="0" + :step="100" + :min="0" + controls-position="right" + style="width: 180px" + /> + </el-form-item> + <el-form-item label="浜岀嚎鐩爣鍊�"> + <el-input-number + v-model="yieldTargetValue2" + :precision="0" + :step="100" + :min="0" + controls-position="right" + style="width: 180px" + /> + </el-form-item> + <el-form-item> + <el-button type="primary" @click="setYieldTarget">璁剧疆鐩爣鍊�</el-button> + </el-form-item> + </el-form> + </div> <el-form :inline="true" :model="yieldFormData" label-width="100px" class="form-container"> <el-form-item label="鏃ユ湡"> <el-date-picker @@ -732,6 +817,36 @@ <!-- 鍒╃敤鐜囨爣绛鹃〉 --> <el-tab-pane label="鍒╃敤鐜�" name="utilization"> + <!-- 娣诲姞鐩爣鍊艰缃儴鍒� --> + <div class="target-setting"> + <el-form :inline="true" label-width="100px"> + <el-form-item label="鏍囧噯绾跨洰鏍囧��"> + <el-input-number + v-model="utilizationTargetValue1" + :precision="2" + :step="0.1" + :min="0" + :max="100" + controls-position="right" + style="width: 180px" + /> + </el-form-item> + <el-form-item label="瀹氬埗绾跨洰鏍囧��"> + <el-input-number + v-model="utilizationTargetValue2" + :precision="2" + :step="0.1" + :min="0" + :max="100" + controls-position="right" + style="width: 180px" + /> + </el-form-item> + <el-form-item> + <el-button type="primary" @click="setUtilizationTarget">璁剧疆鐩爣鍊�</el-button> + </el-form-item> + </el-form> + </div> <el-form :inline="true" :model="utilizationFormData" label-width="100px" class="form-container"> <el-form-item label="鏃ユ湡"> <el-date-picker @@ -835,6 +950,44 @@ <!-- 鍦ㄥ埗閲忔爣绛鹃〉 --> <el-tab-pane label="鍦ㄥ埗閲�" name="quantity"> + <!-- 娣诲姞鐩爣鍊艰缃儴鍒� --> + <div class="target-setting"> + <el-form :inline="true" label-width="100px"> + <el-form-item label="鍗婃垚鍝佺洰鏍囧��"> + <el-input-number + v-model="quantityTargetValue1" + :precision="0" + :step="100" + :min="0" + controls-position="right" + style="width: 180px" + /> + </el-form-item> + <el-form-item label="7014鐩爣鍊�"> + <el-input-number + v-model="quantityTargetValue2" + :precision="0" + :step="100" + :min="0" + controls-position="right" + style="width: 180px" + /> + </el-form-item> + <el-form-item label="7016鐩爣鍊�"> + <el-input-number + v-model="quantityTargetValue3" + :precision="0" + :step="100" + :min="0" + controls-position="right" + style="width: 180px" + /> + </el-form-item> + <el-form-item> + <el-button type="primary" @click="setQuantityTarget">璁剧疆鐩爣鍊�</el-button> + </el-form-item> + </el-form> + </div> <el-form :inline="true" :model="quantityFormData" label-width="100px" class="form-container"> <el-form-item label="鏃ユ湡"> <el-date-picker @@ -1047,6 +1200,13 @@ </template> <style scoped> +.target-setting { + margin-bottom: 20px; + background-color: #f5f7fa; + padding: 20px; + border-radius: 4px; +} + .form-container { margin-bottom: 20px; background-color: #f5f7fa; -- Gitblit v1.8.0