From 928fa3682fcd0bcb59e3ca3da8770ecbb06cf315 Mon Sep 17 00:00:00 2001 From: wu <731351411@qq.com> Date: 星期五, 02 八月 2024 10:32:21 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- UI-Project/src/views/ReportWork/reportWork.vue | 237 ++++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 185 insertions(+), 52 deletions(-) diff --git a/UI-Project/src/views/ReportWork/reportWork.vue b/UI-Project/src/views/ReportWork/reportWork.vue index f28dac1..67b04ab 100644 --- a/UI-Project/src/views/ReportWork/reportWork.vue +++ b/UI-Project/src/views/ReportWork/reportWork.vue @@ -1,51 +1,137 @@ <template> <div style="height: 600px;"> - <span class="demonstration">鐢熶骇鏃堕棿</span> - <el-date-picker v-model="timeRange" type="daterange" format="YYYY/MM/DD" value-format="YYYY-MM-DD" - start-placeholder="寮�濮嬫椂闂�" end-placeholder="缁撴潫鏃堕棿" :default-time="defaultTime" /> - <el-select v-model="report.type" placeholder="娓呴�夋嫨绫诲瀷"> - <el-option label="鍏ㄩ儴" value="0"></el-option> - <el-option label="瀹屽伐" value="1"></el-option> - <el-option label="鐮存崯" value="2"></el-option> - <el-option label="鎷胯蛋" value="3"></el-option> + <div style="display: flex; flex-direction: row; align-items: center; margin-top: 20px;"> + <span style="margin-left: 10px;" class="demonstration">{{ $t('reportmanage.productiontime') }}</span> + <el-date-picker style="margin-left: 10px;" v-model="timeRange" type="daterange" format="YYYY/MM/DD" value-format="YYYY-MM-DD" + :start-placeholder="$t('reportmanage.starttime')" :end-placeholder="$t('reportmanage.endtime')" :default-time="defaultTime" /> + <el-select v-model="report.type" :placeholder="$t('reportmanage.ctype')" style="margin-left: 10px;" > + <el-option :label="$t('reportmanage.all')" value="0"></el-option> + <el-option :label="$t('reportmanage.completed')" value="1"></el-option> + <el-option :label="$t('reportmanage.broke')" value="2"></el-option> + <el-option :label="$t('reportmanage.takeout')" value="3"></el-option> </el-select> - <el-select v-model="report.status" placeholder="娓呴�夋嫨鐘舵��"> - <el-option label="鍏ㄩ儴" value="0"></el-option> - <el-option label="鏈姤宸�" value="1"></el-option> - <el-option label="寰呮姤宸�" value="2"></el-option> - <el-option label="宸叉姤宸�" value="3"></el-option> + <el-select v-model="report.status" :placeholder="$t('reportmanage.cstate')" style="margin-left: 10px;" > + <el-option :label="$t('reportmanage.all')" value="0"></el-option> + <el-option :label="$t('reportmanage.dreportwork')" value="1"></el-option> + <el-option :label="$t('reportmanage.pendingwork')" value="2"></el-option> + <el-option :label="$t('reportmanage.reportwork')" value="3"></el-option> </el-select> - <el-select v-model="report.workingProcedure" placeholder="娓呴�夋嫨宸ュ簭"> - <el-option label="鍏ㄩ儴" value="0"></el-option> - <el-option label="鍒囧壊" value="1"></el-option> - <el-option label="纾ㄨ竟" value="2"></el-option> - <el-option label="閽㈠寲" value="3"></el-option> + <el-select v-model="report.workingProcedure" :placeholder="$t('reportmanage.cprocess')" style="margin-left: 10px;" > + <el-option :label="$t('reportmanage.all')" value="0"></el-option> + <el-option :label="$t('reportmanage.incise')" value="1"></el-option> + <el-option :label="$t('reportmanage.edging')" value="2"></el-option> + <el-option :label="$t('reportmanage.steel')" value="3"></el-option> </el-select> - <el-button type="primary" @click="selectReportData()">鏌ヨ</el-button> - <el-button type="success">鎶ュ伐</el-button> - <el-table height="100%" ref="table" :data="reportData" + <el-button type="primary" style="margin-left: 10px;" @click="selectReportData()">{{ $t('reportmanage.inquire') }}</el-button> + <el-button type="success" style="margin-left: 10px;" @click="handleConfirm">{{ $t('reportmanage.signingwork') }}</el-button> + </div> + <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading"> + <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;"> + <el-table height="540" ref="table" :data="reportData" :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }"> - <el-table-column prop="teamsGroupsName" align="center" label="鎶ュ伐鐝粍" min-width="120" /> - <el-table-column prop="deviceName" align="center" label="鎶ュ伐璁惧" min-width="120" /> - <el-table-column prop="line" align="center" label="绾胯矾" min-width="120" /> - <el-table-column prop="workingProcedure" align="center" label="宸ュ簭" min-width="120" /> - <el-table-column prop="glassId" align="center" label="鐜荤拑id" min-width="120" /> - <el-table-column prop="engineerId" align="center" label="宸ョ▼鍙�" min-width="120" /> - <el-table-column prop="temperingLayoutId" align="center" label="閽㈠寲鐗堝浘id" min-width="120" /> - <el-table-column prop="damageTime" align="center" label="鐢熶骇鏃堕棿" min-width="120" /> - <el-table-column prop="type" align="center" label="绫诲瀷" min-width="120" /> - <el-table-column prop="status" align="center" label="鐘舵��" min-width="120" /> - <el-table-column prop="processId" align="center" label="娴佺▼鍗�" min-width="120" /> - <el-table-column prop="orderNumber" align="center" label="搴忓彿" min-width="120" /> - <el-table-column prop="technologyNumber" align="center" label="灞�" min-width="120" /> - <el-table-column prop="breakageType" align="center" label="鐮存崯绫诲瀷" min-width="120" /> - <el-table-column prop="breakageReason" align="center" label="鐮存崯鍘熷洜" min-width="120" /> - <el-table-column prop="responsibleProcess" align="center" label="璐d换宸ュ簭" min-width="120" /> - <el-table-column prop="responsiblePersonnel" align="center" label="璐d换浜哄憳" min-width="120" /> - <el-table-column prop="responsibleTeam" align="center" label="璐d换鐝粍" min-width="120" /> - <el-table-column prop="responsibleEquipment" align="center" label="璐d换璁惧" min-width="120" /> - <el-table-column prop="remark" align="center" label="澶囨敞" min-width="120" /> + <el-table-column prop="teamsGroupsName" align="center" :label="$t('reportmanage.reporteam')" min-width="120" /> + <el-table-column prop="deviceName" align="center" :label="$t('reportmanage.reportingequipment')" min-width="120" /> + <el-table-column prop="line" align="center" :label="$t('reportmanage.line')" min-width="120" /> + <el-table-column prop="workingProcedure" align="center" :label="$t('reportmanage.process')" min-width="120" /> + <el-table-column prop="glassId" align="center" :label="$t('reportmanage.glassID')" min-width="130" /> + <el-table-column prop="engineerId" align="center" :label="$t('reportmanage.projectnumber')" min-width="120" /> + <el-table-column prop="temperingLayoutId" align="center" :label="$t('reportmanage.layoutID')" min-width="120" /> + <el-table-column prop="damageTime" align="center" :label="$t('reportmanage.productiontime')" min-width="230" /> + <el-table-column prop="type" align="center" :label="$t('reportmanage.type')" min-width="120" /> + <el-table-column prop="status" align="center" :label="$t('reportmanage.state')" min-width="120" /> + <el-table-column prop="processId" align="center" :label="$t('reportmanage.processcards')" min-width="140" /> + <el-table-column prop="orderNumber" align="center" :label="$t('reportmanage.number')" min-width="120" /> + <el-table-column prop="technologyNumber" align="center" :label="$t('reportmanage.layer')" min-width="120" /> + <el-table-column prop="breakageType" align="center" :label="$t('reportmanage.typebreakage')" min-width="180"> + <template #default="{ row }"> + <el-select + v-model="selectValuesa[row.id]" + filterable + :placeholder="$t('reportmanage.pcausebreakage')" + clearable + @input="handleInputChangea($event, row.id)" + > + <el-option + v-for="item in selectOptionsa" + :key="item.basicName" + :label="item.basicName" + :value="item.basicName" + /> + </el-select> + </template> + </el-table-column> + <el-table-column prop="breakageReason" align="center" :label="$t('reportmanage.causebreakage')" min-width="180"> + <template #default="{ row }"> + <el-select + v-model="selectValuesb[row.id]" + filterable + :placeholder="$t('reportmanage.ptypebreakage')" + clearable + @input="handleInputChangea($event, row.id)" + > + <el-option + v-for="item in selectOptionsb" + :key="item.basicName" + :label="item.basicName" + :value="item.basicName" + /> + </el-select> + </template> + </el-table-column> + <el-table-column align="center" :label="$t('reportmanage.responsibleprocess')" min-width="120"> + <template #default="{ row }"> + <span>{{ '鍒囧壊纾ㄨ竟閽㈠寲' }}</span> + </template> + </el-table-column> + <el-table-column prop="responsiblePersonnel" align="center" :label="$t('reportmanage.responsiblepersonnel')" min-width="180"> + <template #default="{ row }"> + <el-input :placeholder="$t('reportmanage.presponsiblepersonnel')" v-model="inputValuesa[row.id]" autocomplete="off" /> + </template> + </el-table-column> + <el-table-column prop="responsibleTeam" align="center" :label="$t('reportmanage.responsibleteam')" min-width="180"> + <template #default="{ row }"> + <el-select + v-model="selectValuesc[row.id]" + filterable + :placeholder="$t('reportmanage.presponsibleteam')" + clearable + @input="handleInputChangea($event, row.id)" + > + <el-option + v-for="item in selectOptionsc" + :key="item.basicName" + :label="item.basicName" + :value="item.basicName" + /> + </el-select> + </template> + </el-table-column> + <el-table-column prop="responsibleEquipment" align="center" :label="$t('reportmanage.responsibleequipment')" min-width="180"> + <template #default="{ row }"> + <el-select + v-model="selectValuesd[row.id]" + filterable + :placeholder="$t('reportmanage.presponsibleequipment')" + clearable + @input="handleInputChangea($event, row.id)" + > + <el-option + v-for="item in selectOptionsd" + :key="item.basicName" + :label="item.basicName" + :value="item.basicName" + /> + </el-select> + </template> + </el-table-column> + <el-table-column prop="remark" align="center" :label="$t('reportmanage.remark')" min-width="180"> + <template #default="{ row }"> + <el-input :placeholder="$t('reportmanage.premark')" v-model="inputValuesb[row.id]" autocomplete="off" /> + </template> + </el-table-column> </el-table> + </div> + </el-card> </div> </template> <script setup> @@ -63,7 +149,17 @@ workingProcedure: '0', }); const reportData = ref([]) -const timeRange = ref(["2022-01-01", "2022-01-01"]) +const timeRange = ref(["2022-01-01", "2025-01-01"]) +const selectOptionsa = ref([]); +const selectOptionsb = ref([]); +const selectOptionsc = ref([]); +const selectOptionsd = ref([]); +const selectValuesa = reactive({}); +const selectValuesb = reactive({}); +const selectValuesc = reactive({}); +const selectValuesd = reactive({}); +const inputValuesa = reactive({}); +const inputValuesb = reactive({}); // 鏌ヨ鏁版嵁 @@ -90,7 +186,45 @@ status:"2" }) }; - +// 鎶ュ伐 +const handleConfirm = async () => { + const response = await request.post("/cacheVerticalGlass/damage/submitDamage", reportData.value) + if (response.code === 200) { + ElMessage.success(response.message); + } else { + ElMessage.error(response.message); + } +}; +const fetchTableData = async () => { + try { + const response = await request.post('/cacheVerticalGlass/basic_data_produce/selectBasicDataProduceGroup'); + if (response.code == 200) { + selectOptionsa.value = response.data.breakagetype.filter(item => item !== null) +.map(item => ({ basicName: item.basicName })); + selectOptionsb.value = response.data.breakagereason.filter(item => item !== null) +.map(item => ({ basicName: item.basicName })); + selectOptionsc.value = response.data.teamsgroups.filter(item => item !== null) +.map(item => ({ basicName: item.basicName })); + selectOptionsd.value = response.data.device.filter(item => item !== null) +.map(item => ({ basicName: item.basicName })); + } else { + ElMessage.warning(response.data); + } + } catch (error) { + console.error('Error fetching options:', error); + } +}; +const handleInputChangea = (value, rowId) => { + // 鏇存柊瀵瑰簲琛岀殑 select 鍊� + selectValuesa[rowId] = value; + selectValuesb[rowId] = value; + selectValuesc[rowId] = value; + selectValuesd[rowId] = value; + inputValuesa[rowId] = value; + inputValuesb[rowId] = value; +}; +fetchTableData(); +let socket = null; const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/screen`; const handleMessage = (data) => { // adjustedRects.value = data.device[0].map(rect => ({ @@ -100,7 +234,7 @@ // thisProcess: rect.thisProcess, // })); }; -let socket; +// let socket; onMounted(() => { socket = new WebSocket(socketUrl); socket.onmessage = (event) => { @@ -110,19 +244,18 @@ }; // }; }); - - - - onUnmounted(() => { socket.close(); }); - onMounted(() => { - // fetchFlowCardId(); - // fetchTableData(); // 鑾峰彇鏁版嵁 - initializeWebSocket(socketUrl, handleMessage); + fetchTableData(); + socket = initializeWebSocket(socketUrl, handleMessage); }); + onUnmounted(() => { + if (socket) { + closeWebSocket(socket); + } + }); onBeforeUnmount(() => { console.log("鍏抽棴浜�") closeWebSocket(); -- Gitblit v1.8.0