| | |
| | | <template> |
| | | <div class="title">Welcome To PCS!</div> |
| | | <div class="home-page"> |
| | | <div class="qhuan"> |
| | | <el-button type="primary" :class="{ 'qh_box': true, 'selected': selected === '䏿åº' }" |
| | | v-on:click="selectss(0)">䏿åº</el-button> |
| | | <el-button type="primary" :class="{ 'qh_box': true, 'selected': selected === 'åºåº' }" |
| | | v-on:click="selectss(1)">åºåº</el-button> |
| | | </div> |
| | | |
| | | <!-- 䏿åºä»£ç --> |
| | | <div v-if="selected === '䏿åº'" style="margin-top: 30px;"> |
| | | <centerLeft1 :dataList="dataxlist" :plcList_one="plcList_one" :plcList_two="plcList_two" :plcList_three="plcList_three" /> |
| | | <div style="height: 50px;width: 100%;"> |
| | | <div class="dd_div" :style="{ 'background-color': getBackgroundColor(item1.enable, item1.location_state) }"> |
| | | <el-tooltip class="item" effect="dark" placement="left"> |
| | | <template #content v-if="item1.quantity !== 0 && item1.tray_type !== ''"> |
| | | <div>åºä½ç¼å·ï¼{{ item1.stationCode }}</div> |
| | | <div v-if="item1.tray_type == 'SmallTray'">æçç±»åï¼å°æç</div> |
| | | <div v-else>æçç±»åï¼å¤§æç</div> |
| | | <div>æçæ°éï¼ {{ item1.quantity }}</div> |
| | | </template> |
| | | <template #content v-else> |
| | | <div>åºä½ç¼å·ï¼{{ item1.stationCode }}</div> |
| | | <div>ç®åææ å çæ°æ®</div> |
| | | </template> |
| | | <!-- <div > |
| | | </div> --> |
| | | <div class="v_dd" v-if="item1.location_state === 'Stroge'"> |
| | | <img src="../assets/imgs/huojia.png" style="width: 100%;" /> |
| | | </div> |
| | | <div class="v_dd" v-else></div> |
| | | </el-tooltip> |
| | | </div> |
| | | </div> |
| | | <div style="margin-left: 65px;"> |
| | | <div class="table-container"> |
| | | <div class="scrollable-table" > |
| | | <table class="one_tal"> |
| | | <tr v-for="(item, k) in 2" :key="k"> |
| | | <td v-for="items in filteredItems(ddataList, k + 1)" :key="items.stationCode" |
| | | :style="{ 'background-color': getBackgroundColor(items.enable, items.location_state) }"> |
| | | <el-tooltip class="item" effect="dark" placement="right"> |
| | | <template #content> |
| | | <div>åºä½ç¼å·ï¼{{ items.stationCode }}</div> |
| | | <div v-if="items.tray_type=='SmallTray'">æçç±»åï¼å°æç</div> |
| | | <div v-else>æçç±»åï¼å¤§æç</div> |
| | | <div>æ°éï¼{{ items.quantity }}</div> |
| | | <div v-if="items.location_state === 'Stroge'">è´§ä½ç¶æï¼æè´§</div> |
| | | <div v-if="items.location_state === 'Empty'">è´§ä½ç¶æï¼æ è´§</div> |
| | | </template> |
| | | <div style="height: 35px;writing-mode: vertical-lr;width: 35px;"> |
| | | <img src="../assets/imgs/huojia.png" style="width: 100%;" v-if="items.location_state === 'Stroge'" /> |
| | | </div> |
| | | </el-tooltip> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!--æçå æ¾åº--> |
| | | <div style="height: 50px;"></div> |
| | | </div> |
| | | <!-- 䏿åºä»£ç --> |
| | | |
| | | |
| | | <!-- åºåºä»£ç --> |
| | | <div v-else-if="selected === 'åºåº'" style="margin-top: 30px;margin-left: 30px;"> |
| | | <centerLeft2 :dataList="datalist" /> |
| | | </div> |
| | | <!-- åºåºä»£ç --> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { ref, reactive } from 'vue' |
| | | |
| | | import axios from 'axios'; |
| | | import centerLeft1 from '@/views/Homes/centerLeft1.vue'; |
| | | import centerLeft2 from '@/views/Homes/centerLeft2.vue'; |
| | | export default { |
| | | setup() { |
| | | return { |
| | | |
| | | data() { |
| | | return { |
| | | selected: '䏿åº', // é»è®¤éä¸ä¸ä¸æåº |
| | | datalist: [], |
| | | dataxlist: [], |
| | | item1: [], |
| | | ddataList: [], |
| | | plcList_one:[], |
| | | plcList_two:[], |
| | | plcList_three:[], |
| | | }; |
| | | }, |
| | | components: { |
| | | centerLeft1, |
| | | centerLeft2 |
| | | }, |
| | | mounted() { |
| | | |
| | | }, |
| | | created() { |
| | | this.One_unit_plc(); |
| | | this.Two_unit_plc(); |
| | | this.Three_unit_plc(); |
| | | this.selList(); |
| | | this.selListxl(); |
| | | |
| | | setInterval(() => { |
| | | this.selList(); |
| | | }, 60000); |
| | | |
| | | setInterval(() => { |
| | | this.selListxl(); |
| | | this.One_unit_plc(); |
| | | this.Two_unit_plc(); |
| | | this.Three_unit_plc(); |
| | | }, 5000); |
| | | |
| | | }, |
| | | methods: { |
| | | openDialog() { |
| | | this.isModalVisible = true; |
| | | }, |
| | | //忢 |
| | | selectss(selvelue) { |
| | | if (selvelue == "0") { |
| | | this.selected = "䏿åº"; |
| | | } else { |
| | | |
| | | this.selected = "åºåº"; |
| | | this.selList(); |
| | | } |
| | | }, |
| | | //è·ååºåºçæ°æ® |
| | | selList() { |
| | | this.loading = true; |
| | | this.http.post('api/Readplc/dt_stationinfolist').then(x => { |
| | | this.datalist = x; |
| | | for (var i = 0; i < x[1].item1.length; i++) { |
| | | this.ddataList[i] = x[1].item1[i]; |
| | | } |
| | | }) |
| | | .catch(error => { |
| | | console.error('请æ±åºéï¼', error); |
| | | }); |
| | | }, |
| | | //è·å䏿å£çæ°æ® |
| | | selListxl() { |
| | | this.loading = true; |
| | | this.http.post('api/Readplc/pcs_dt_stationinfolist').then((x) => { |
| | | |
| | | this.dataxlist = x; |
| | | this.item1 = x[4].item1[0]; |
| | | |
| | | }) |
| | | .catch(error => { |
| | | console.error('请æ±åºéï¼', error); |
| | | }); |
| | | }, |
| | | //æ´æ¹é¢è² |
| | | getBackgroundColor(enable, locationState) { |
| | | if (enable == '0') { |
| | | return '#C0C4CC'; |
| | | } |
| | | else { |
| | | switch (locationState) { |
| | | case 'Stroge': |
| | | return '#409eff'; |
| | | case 'Empty': |
| | | return 'lightgreen'; |
| | | case 'InBusy': |
| | | return 'yellow'; |
| | | case 'OutBusy': |
| | | return 'yellow'; |
| | | case 'Busy': |
| | | return 'yellow'; |
| | | case 'Abnormal': |
| | | return 'red'; |
| | | case 'Abnormal': |
| | | return 'yellow'; |
| | | default: |
| | | return 'transparent'; |
| | | } |
| | | } |
| | | }, |
| | | //è·åè¾é线1åå
ä¸çæ°æ® |
| | | One_unit_plc(){ |
| | | this.http.post('api/Readplc/One_unit_plc') |
| | | .then((response) => { |
| | | this.plcList_one=response; |
| | | |
| | | }) |
| | | .catch((error) => { |
| | | console.error('Error fetching current user info:', error); |
| | | }); |
| | | }, |
| | | //è·åè¾é线2åå
ä¸çæ°æ® |
| | | Two_unit_plc(){ |
| | | this.http.post('api/Readplc/Two_unit_plc') |
| | | .then((response) => { |
| | | this.plcList_two=response; |
| | | }) |
| | | .catch((error) => { |
| | | console.error('Error fetching current user info:', error); |
| | | }); |
| | | }, |
| | | //è·åè¾é线3åå
ä¸çæ°æ® |
| | | Three_unit_plc(){ |
| | | this.http.post('api/Readplc/Three_unit_plc') |
| | | .then((response) => { |
| | | this.plcList_three=response; |
| | | }) |
| | | .catch((error) => { |
| | | console.error('Error fetching current user info:', error); |
| | | }); |
| | | } |
| | | |
| | | }, |
| | | computed: { |
| | | filteredItems() { |
| | | return (itemList, line) => { |
| | | return itemList.filter(item => item.line === line); |
| | | }; |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .title { |
| | | line-height: 70vh; |
| | | text-align: center; |
| | | font-size: 28px; |
| | | color: orange; |
| | | .home-page { |
| | | width: 125%; |
| | | background-image: url("../assets/imgs/pageBg.png"); |
| | | } |
| | | |
| | | .dd_div { |
| | | width: 57px; |
| | | height: 53px; |
| | | margin-left: 1300px; |
| | | margin-top: 70px; |
| | | } |
| | | |
| | | .v_dd { |
| | | width: 57px; |
| | | height: 50px; |
| | | margin-top: 10px; |
| | | } |
| | | </style> |