From 23deff80efa6651995f7c1013a968275045f0e0f Mon Sep 17 00:00:00 2001 From: ZengTao <2773468879@qq.com> Date: 星期四, 08 八月 2024 08:47:58 +0800 Subject: [PATCH] 添加查询流程卡打印数据 --- UI-Project/src/views/UnLoadGlass/loadmachinerack.vue | 375 +++++++++++++++++++++++++++++++---------------------- 1 files changed, 221 insertions(+), 154 deletions(-) diff --git a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue index 844a323..a6b9c45 100644 --- a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue +++ b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue @@ -1,18 +1,18 @@ <script setup> -import {Search} from "@element-plus/icons-vue"; -import {reactive, onMounted, onBeforeUnmount,onUnmounted} from "vue"; -import {useRouter} from "vue-router" +import { Search } from "@element-plus/icons-vue"; +import { reactive, onMounted, onBeforeUnmount, onUnmounted } from "vue"; +import { useRouter } from "vue-router" const router = useRouter() import { useI18n } from 'vue-i18n' - const { t } = useI18n() - let language = ref(localStorage.getItem('lang') || 'zh') +const { t } = useI18n() +let language = ref(localStorage.getItem('lang') || 'zh') import { ref } from 'vue' import { ElMessage, ElMessageBox } from 'element-plus' import Landingindication from "./Landingindication.vue"; import Landingindicationtwo from "./Landingindicationtwo.vue"; import request from "@/utils/request"; import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService'; -import { WebSocketHost ,host} from '@/utils/constants' +import { WebSocketHost, host } from '@/utils/constants' const dialogFormVisiblea = ref(false) const dialogFormVisiblea2 = ref(false) const dialogFormVisibleaDownGlass = ref(false) @@ -26,17 +26,24 @@ const flowCardId = ref(''); const flowCardOptions = ref('[]'); const tableData = reactive([]); -const downGlass= ref([]); +const downGlass = ref([]); +const timeRange = ref(["2022-01-01", "2025-01-01"]) +const selectValuesa = reactive({}); +const selectOptionsa = ref([]); + +const handleInputChangea = (value, rowId) => { + // 鏇存柊瀵瑰簲琛岀殑 select 鍊� + selectValuesa[rowId] = value; +}; // 鏂规硶 const handleSelectionChange = () => { // 澶勭悊琛ㄦ牸琛岄�夋嫨浜嬩欢 }; const handleBindRack = (row) => { workstationId.value = row.workstationId; // 鍋囪rackNumber鏄灦鍙峰瓧娈电殑灞炴�у悕 - console.log(row.flowCardId); flowCardId.value = row.flowCardId; // 鍙戣捣鎺ュ彛璇锋眰鑾峰彇娴佺▼鍗″彿 - fetchFlowCardId(); + fetchFlowCardId(); dialogFormVisiblea.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗� }; //鑾峰彇娴佺▼鍗″彿 @@ -45,12 +52,12 @@ const response = await request.get('unLoadGlass/downWorkStation/getflowCardId'); console.log(response) if (response.code === 200) { - - flowCardOptions.value = response.data.filter(item => item !== null) -.map(item => ({ flowcard_id: item.flow_card_id })); - console.log(flowCardOptions.value); -} - else { + + flowCardOptions.value = response.data.filter(item => item !== null) + .map(item => ({ flowcard_id: item.flow_card_id })); + console.log(flowCardOptions.value); + } + else { ElMessage.error(response.msg); } } catch (error) { @@ -61,17 +68,17 @@ const handleConfirm = async () => { try { const firstPart = flowCardId.value.split('|')[0].trim(); // -const twoPart = flowCardId.value.split('|')[1].trim(); // + const twoPart = flowCardId.value.split('|')[1].trim(); // const response = await request.post('unLoadGlass/downWorkStation/updateFlowCardId', { workstationId: workstationId.value, flowCardId: firstPart, - layer:twoPart - }); + layer: twoPart + }); console.log(response) if (response.code == 200) { // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫 console.log('缁戝畾鎴愬姛'); - + ElMessage.success(response.message); updatePageData(); dialogFormVisiblea.value = false; @@ -96,30 +103,29 @@ }; //娓呴櫎鍐呭 const handleclear = async () => { - try { - const response = await request.post('unLoadGlass/downWorkStation/clear', { - workstationId: workstationId.value, - }); + try { + const response = await request.post('unLoadGlass/downWorkStation/clear', { + workstationId: workstationId.value, + }); - console.log(response); - if (response.code === 200) { - // 娓呴櫎鎴愬姛鐨勯�昏緫 - console.log('娓呴櫎鎴愬姛'); - ElMessage.success(response.message); - dialogFormVisiblea2.value = false; - } else if (response.code === 500) { - // 娓呴櫎澶辫触鐨勯�昏緫 - console.log('娓呴櫎澶辫触'); - console.log(response.message); // 鎵撳嵃鏈嶅姟鍣ㄨ繑鍥炵殑閿欒淇℃伅 - ElMessage.error(response.message); - dialogFormVisiblea2.value = false; - } - } catch (error) { - // console.log(error); - ElMessage.error("娓呴櫎澶辫触"); - dialogFormVisiblea2.value = false; + if (response.code === 200) { + // 娓呴櫎鎴愬姛鐨勯�昏緫 + console.log('娓呴櫎鎴愬姛'); + ElMessage.success(response.message); + dialogFormVisiblea2.value = false; + } else if (response.code === 500) { + // 娓呴櫎澶辫触鐨勯�昏緫 + console.log('娓呴櫎澶辫触'); + console.log(response.message); // 鎵撳嵃鏈嶅姟鍣ㄨ繑鍥炵殑閿欒淇℃伅 + ElMessage.error(response.message); + dialogFormVisiblea2.value = false; } + } catch (error) { + // console.log(error); + ElMessage.error("娓呴櫎澶辫触"); + dialogFormVisiblea2.value = false; + } }; // 鍙戦�佽幏鍙栬〃鏍兼暟鎹殑璇锋眰 const fetchTableData = async () => { @@ -146,14 +152,16 @@ // 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺 const handleMessage = (data) => { // 鏇存柊 tableData 鐨勬暟鎹� - if(data.sendDownGlass!=null){ - downGlass.value=data.sendDownGlass[0][1]; - console.log(downGlass.value); - console.log(tableData.value); + if (data.downGlassInfos != null) { + downGlass.value = data.downGlassInfos[0][1]; } + if (data.engineerIdList != null) { + selectOptionsa.value = data.engineerIdList[0] + } + // tableData.splice(0, tableData.length, ...data.params[0]); -// console.log("鏇存柊鍚庢暟鎹�", data.params[0]); + // console.log("鏇存柊鍚庢暟鎹�", data.params[0]); }; // 鍒濆鍖� WebSocket锛屽苟浼犻�掓秷鎭鐞嗗嚱鏁� onMounted(() => { @@ -161,40 +169,40 @@ fetchTableData(); // 鑾峰彇鏁版嵁 socket = initializeWebSocket(socketUrl, handleMessage); }); - onUnmounted(() => { - if (socket) { +onUnmounted(() => { + if (socket) { closeWebSocket(socket); - } - }); + } +}); onBeforeUnmount(() => { console.log("鍏抽棴浜�") closeWebSocket(); }); -const getTagType =(status) => { - return status === 1 ? 'success' : 'danger'; - // 鏍规嵁鐘舵�佸�煎喅瀹氭爣绛剧被鍨嬶紝杩欓噷鍋囪鐘舵�佷负1鏃朵负鎴愬姛锛堢豢鑹诧級锛屽惁鍒欎负澶辫触锛堢孩鑹诧級 - } - - const toggleStatus = (row) => { - // 鍒囨崲鏂欐灦鐘舵�佺殑閫昏緫 - row.enableState = 1 - row.enableState; // Toggle between 0 and 1 - // 姝ゅ鍙互娣诲姞淇濆瓨鐘舵�佺殑閫昏緫锛屾瘮濡傝皟鐢� API 鏇存柊鏁版嵁 - updateRowStatus(row); - }; - - const updateRowStatus = async (row) => { +const getTagType = (status) => { + return status === 1 ? 'success' : 'danger'; + // 鏍规嵁鐘舵�佸�煎喅瀹氭爣绛剧被鍨嬶紝杩欓噷鍋囪鐘舵�佷负1鏃朵负鎴愬姛锛堢豢鑹诧級锛屽惁鍒欎负澶辫触锛堢孩鑹诧級 +} + +const toggleStatus = (row) => { + // 鍒囨崲鏂欐灦鐘舵�佺殑閫昏緫 + row.enableState = 1 - row.enableState; // Toggle between 0 and 1 + // 姝ゅ鍙互娣诲姞淇濆瓨鐘舵�佺殑閫昏緫锛屾瘮濡傝皟鐢� API 鏇存柊鏁版嵁 + updateRowStatus(row); +}; + +const updateRowStatus = async (row) => { try { // 鍋囪浣犵殑鍚庣 API 鎺ユ敹 PUT 璇锋眰锛屽苟涓旈渶瑕佷紶閫� row.id 鍜� row.enableState 鍙傛暟 - - + + const response = await request.post('unLoadGlass/downWorkStation/updateDownWorkstation', { enableState: row.enableState, id: row.id - - }); + + }); console.log('Updated row status:', response.data); // 鍙互鏍规嵁鍚庣杩斿洖鐨勬暟鎹繘琛岃繘涓�姝ュ鐞嗭紝姣斿鏇存柊鏈湴鐘舵�佺瓑 } catch (error) { @@ -202,11 +210,29 @@ // 澶勭悊閿欒鎯呭喌锛屾瘮濡傛彁绀虹敤鎴锋洿鏂板け璐� } }; - + +// 鏌ヨ鏁版嵁 +const selectDownGlassData = async () => { + + const response = await request.post("/unLoadGlass/downGlassInfo/selectDownGlassInfo", { + workStationId: selectValuesa[0], + engineerId: selectValuesa[1], + beginDate: timeRange.value[0], + endDate: timeRange.value[1], + }) + if (response.code === 200) { + sendDownGlass.value = response.data; + ElMessage.success(response.message); + } else { + ElMessage.error(response.message); + } + +} - - +const open=async()=>{ + router.push({path: '/UnLoadGlass/PrintFlow'}) +} // beforeUnmount(() => { @@ -216,94 +242,119 @@ </script> <template> <div> - <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="primary" @click="dialogFormVisibleaDownGlass = true">钀芥灦璇︽儏</el-button> + <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="primary" + @click="dialogFormVisibleaDownGlass = true">钀芥灦璇︽儏</el-button> <el-card style="flex: 1;" v-loading="loading"> <el-card style="flex: 1;margin-left: 4px;margin-top: 1px;" v-loading="loading"> - <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;"> - <el-table height="200px" ref="table" - @selection-change="handleSelectionChange" - :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> - <el-table-column prop="workstationId" align="center" :label="$t('reportWork.lowerbit')" min-width="80" /> - <el-table-column prop="workstationId" align="center" :label="$t('reportWork.shelfnumber')" min-width="120" /> - <el-table-column prop="flowCardId" align="center" :label="$t('reportWork.cardnumber')" min-width="150" /> - <el-table-column prop="totalQuantity" align="center" :label="$t('reportWork.totalquantity')" min-width="120" /> - <el-table-column prop="racksNumber" align="center" :label="$t('reportWork.beendropped')" min-width="120" /> - <el-table-column prop="layer" align="center" label="灞傛暟" min-width="120" /> - <el-table-column prop="otherNumber" align="center" label="浜哄伐涓嬬墖鏁�" min-width="120" /> - <!-- <el-table-column prop="work_state" align="center" :label="$t('reportWork.state')" min-width="120" /> --> - <el-table-column prop="deviceId" align="center" :label="$t('reportWork.devicenumber')" min-width="120" /> - <el-table-column - align="center" - :label="$t('reportWork.startstatus')" - min-width="80" - prop="enableState" - > - <template #default="scope"> - <el-tag :type="getTagType(scope.row.enableState)" @click="toggleStatus(scope.row)"> - {{ scope.row.enableState === 1 ? $t('reportWork.enable') : $t('reportWork.unenable') }} - </el-tag> - </template> - </el-table-column> - <el-table-column fixed="right" :label="$t('reportWork.operate')" align="center" width="200"> - <template #default="scope"> - <el-button size="mini" type="text" plain v-show="scope.row.enableState !== '宸插惎鐢�' " @click="handleBindRack(scope.row)">{{ $t('reportWork.bindingshelves') }}</el-button> - <el-button size="mini" type="text" plain @click="handleBindRack2(scope.row)">{{ $t('reportWork.clear') }}</el-button> - </template> - - </el-table-column> - </el-table> - - </div> - <el-dialog v-model="dialogFormVisibleaDownGlass" top="2vh" width="97%" :title="$t('searchOrder.cageinformation')"> - <el-table height="200px" ref="table" - @selection-change="handleSelectionChange" - :data="downGlass" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> - <el-table-column prop="workStationId" align="center" :label="$t('宸ヤ綅鍙�')" min-width="80" /> - <el-table-column prop="engineerId" align="center" :label="$t('宸ョ▼鍙�')" min-width="80" /> - <el-table-column prop="flowCardId" align="center" :label="$t('娴佺▼鍗″彿')" min-width="80" /> - <el-table-column prop="layer" align="center" :label="$t('灞�')" min-width="120" /> - <el-table-column prop="sequence" align="center" :label="$t('椤哄簭')" min-width="150" /> - <el-table-column prop="width" align="center" :label="$t('瀹�')" min-width="120" /> - <el-table-column prop="height" align="center" :label="$t('楂�')" min-width="120" /> - <el-table-column prop="Filmsid" align="center" :label="$t('鑶滅郴')" min-width="120" /> - <el-table-column prop="thickness" align="center" label="鍘氬害" min-width="120" /> - <el-table-column prop="glassId" align="center" :label="$t('鐜荤拑id')" min-width="120" /> - - </el-table> - </el-dialog> - - </el-card> - <!-- workstationId: '1', + <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;"> + <el-table height="200px" ref="table" @selection-change="handleSelectionChange" :data="tableData" + :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }"> + <el-table-column prop="workstationId" align="center" :label="$t('reportWork.lowerbit')" min-width="80" /> + <el-table-column prop="workstationId" align="center" :label="$t('reportWork.shelfnumber')" + min-width="120" /> + <el-table-column prop="flowCardId" align="center" :label="$t('reportWork.cardnumber')" min-width="150" /> + <el-table-column prop="totalQuantity" align="center" :label="$t('reportWork.totalquantity')" + min-width="120" /> + <el-table-column prop="racksNumber" align="center" :label="$t('reportWork.beendropped')" min-width="120" /> + <el-table-column prop="layer" align="center" label="灞傛暟" min-width="120" /> + <el-table-column prop="otherNumber" align="center" label="浜哄伐涓嬬墖鏁�" min-width="120" /> + <!-- <el-table-column prop="work_state" align="center" :label="$t('reportWork.state')" min-width="120" /> --> + <el-table-column prop="deviceId" align="center" :label="$t('reportWork.devicenumber')" min-width="120" /> + <el-table-column align="center" :label="$t('reportWork.startstatus')" min-width="80" prop="enableState"> + <template #default="scope"> + <el-tag :type="getTagType(scope.row.enableState)" @click="toggleStatus(scope.row)"> + {{ scope.row.enableState === 1 ? $t('reportWork.enable') : $t('reportWork.unenable') }} + </el-tag> + </template> + </el-table-column> + <el-table-column fixed="right" :label="$t('reportWork.operate')" align="center" width="200"> + <template #default="scope"> + <el-button size="mini" type="text" plain v-show="scope.row.enableState !== '宸插惎鐢�'" + @click="handleBindRack(scope.row)">{{ $t('reportWork.bindingshelves') }}</el-button> + <el-button size="mini" type="text" plain @click="handleBindRack2(scope.row)">{{ $t('reportWork.clear') + }}</el-button> + <el-button @click="open()">111</el-button> + </template> + + </el-table-column> + </el-table> + + </div> + <el-dialog v-model="dialogFormVisibleaDownGlass" top="2vh" width="97%" + :title="$t('searchOrder.cageinformation')"> + <el-select v-model="selectValuesa[0]" filterable :placeholder="$t('璇烽�夋嫨宸ヤ綅')" clearable> + <el-option label="鍏ㄩ儴" value="0"></el-option> + <el-option label="1" value="1"></el-option> + <el-option label="2" value="2"></el-option> + <el-option label="3" value="3"></el-option> + <el-option label="4" value="4"></el-option> + <el-option label="5" value="5"></el-option> + <el-option label="6" value="6"></el-option> + <el-option label="7" value="7"></el-option> + <el-option label="8" value="8"></el-option> + <el-option label="9" value="9"></el-option> + <el-option label="10" value="10"></el-option> + </el-select> + + <el-select v-model="selectValuesa[1]" filterable :placeholder="$t('basicData.plselectproject')" clearable + @input="handleInputChangea($event, row.id)"> + <el-option v-for="item in selectOptionsa" :key="item" :label="item" :value="item" /> + </el-select> + <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-button type="primary" style="margin-left: 10px;" @click="selectDownGlassData()">{{ + $t('reportmanage.inquire') + }}</el-button> + <el-table height="200px" ref="table" @selection-change="handleSelectionChange" :data="downGlass" + :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }"> + <el-table-column prop="workStationId" align="center" :label="$t('宸ヤ綅鍙�')" min-width="80" /> + <el-table-column prop="engineerId" align="center" :label="$t('宸ョ▼鍙�')" min-width="80" /> + <el-table-column prop="flowCardId" align="center" :label="$t('娴佺▼鍗″彿')" min-width="80" /> + <el-table-column prop="layer" align="center" :label="$t('灞�')" min-width="120" /> + <el-table-column prop="sequence" align="center" :label="$t('椤哄簭')" min-width="150" /> + <el-table-column prop="width" align="center" :label="$t('瀹�')" min-width="120" /> + <el-table-column prop="height" align="center" :label="$t('楂�')" min-width="120" /> + <el-table-column prop="Filmsid" align="center" :label="$t('鑶滅郴')" min-width="120" /> + <el-table-column prop="thickness" align="center" label="鍘氬害" min-width="120" /> + <el-table-column prop="glassId" align="center" :label="$t('鐜荤拑id')" min-width="120" /> + + </el-table> + </el-dialog> + + </el-card> + <!-- workstationId: '1', workstationId: '1005', flowCardId: '183.6', totalquantity: '1991', racksnumber:"1", work_state: '寰呰瘑鍒�', --> - <div style="display: flex;" class="awatch"> - <div id="main-body"> - <Landingindication></Landingindication> - </div> - <div id="main-bodya"> - <Landingindicationtwo></Landingindicationtwo> - </div> - </div> + <div style="display: flex;" class="awatch"> + <div id="main-body"> + <Landingindication></Landingindication> + </div> + <div id="main-bodya"> + <Landingindicationtwo></Landingindicationtwo> + </div> + </div> </el-card> - + </div> - <el-dialog v-model="dialogFormVisiblea" top="21vh" width="40%" :title="$t('reportWork.bindingshelves')"> + <el-dialog v-model="dialogFormVisiblea" top="21vh" width="40%" :title="$t('reportWork.bindingshelves')"> <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;"> - <el-form size="mini" label-width="100px"> - <el-form label-width="210px" label-position="right"> + <el-form size="mini" label-width="100px"> + <el-form label-width="210px" label-position="right"> <el-form-item :label="$t('reportWork.shelfnumbera')" :required="true" style="width: 25vw"> - <el-input v-model="workstationId" autocomplete="off"/> + <el-input v-model="workstationId" autocomplete="off" /> </el-form-item> <el-form-item :label="$t('reportWork.cardnumbera')" :required="true" style="width: 25vw;"> - <el-select v-model="flowCardId" :placeholder="$t('reportWork.incardnumber')"> - <el-option v-for="item in flowCardOptions" :key="item.flowcard_id" :label="item.flowcard_id" :value="item.flowcard_id" /> - </el-select> - </el-form-item> - </el-form> + <el-select v-model="flowCardId" :placeholder="$t('reportWork.incardnumber')"> + <el-option v-for="item in flowCardOptions" :key="item.flowcard_id" :label="item.flowcard_id" + :value="item.flowcard_id" /> + </el-select> + </el-form-item> + </el-form> </el-form> </div> <template #footer> @@ -328,29 +379,45 @@ </el-dialog> </template> <style scoped> -#dt { display:block; float:left;line-height: 20px;margin-left: 100px;} -#dta { display:block; float:left;line-height: 20px;margin-left: 80%;} -#dialog-footer{ +#dt { + display: block; + float: left; + line-height: 20px; + margin-left: 100px; +} + +#dta { + display: block; + float: left; + line-height: 20px; + margin-left: 80%; +} + +#dialog-footer { text-align: center; margin-top: -15px; } -#message{ + +#message { text-align: center; align-items: center; color: black; - width: 200px; - height: 100px; - background-color: #337ecc; - margin-left: 28%; + width: 200px; + height: 100px; + background-color: #337ecc; + margin-left: 28%; } -.awatch{ + +.awatch { max-width: 100%; } -#main-body{ + +#main-body { margin-top: -40px; margin-left: 150px; } -#main-bodya{ + +#main-bodya { margin-top: -40px; margin-left: 100px; } -- Gitblit v1.8.0