From 2d92826d942cd4c06e1f415d4a3896b99ec65e2b Mon Sep 17 00:00:00 2001 From: wu <731351411@qq.com> Date: 星期四, 07 十一月 2024 19:32:00 +0800 Subject: [PATCH] 更改配片逻辑 --- Albania_Mes-ui/src/views/home/index.vue | 205 ++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 161 insertions(+), 44 deletions(-) diff --git a/Albania_Mes-ui/src/views/home/index.vue b/Albania_Mes-ui/src/views/home/index.vue index 2d87286..c873062 100644 --- a/Albania_Mes-ui/src/views/home/index.vue +++ b/Albania_Mes-ui/src/views/home/index.vue @@ -327,6 +327,11 @@ display: inline-block; cursor: pointer; } + +.bold-center { + font-weight: bold; + text-align: center; +} </style> <template> <el-container> @@ -432,7 +437,7 @@ </div> </div> <el-table :data="this.tasklist1" border style="width: 700px;"> - <el-table-column prop="glasstype" :label="$t('Glasstype')"></el-table-column> + <el-table-column prop="mateid" :label="$t('Mateid')"></el-table-column> <el-table-column prop="storageCage.cage" :label="$t('Cage No')"></el-table-column> <el-table-column prop="storageCage.cell" :label="$t('Slot No')"></el-table-column> <el-table-column prop="storageCage.glassWidth" :label="$t('Width')"></el-table-column> @@ -447,7 +452,7 @@ </el-table-column> </el-table> <el-table :data="this.tasklist2" border style="width: 100%"> - <el-table-column prop="glassId" :label="$t('Glasstype')"></el-table-column> + <el-table-column prop="mateid" :label="$t('Mateid')"></el-table-column> <el-table-column prop="storageCage.cage" :label="$t('Cage No')"></el-table-column> <el-table-column prop="storageCage.cell" :label="$t('Slot No')"></el-table-column> <el-table-column prop="storageCage.glassWidth" :label="$t('Width')"></el-table-column> @@ -478,7 +483,7 @@ <!-- 淇濆瓨 --> <el-button type="primary" @click="importData()" style="margin-right: 10px;margin-bottom: 10px;">{{ - $t('Save') }}</el-button> + $t('Save') }}</el-button> <input type="file" id="file-upload" multiple @change="Change" /> <label for="file-upload">{{ $t('Select file') }}</label> </div> @@ -504,17 +509,35 @@ <el-dialog :visible.sync="Measure" :title="$t('Measure')" top="5vh"><!--娴嬮噺椤甸潰--> <!--娴嬮噺椤甸潰涓讳綋--> - <div style="height: 780px;"> + <div style="height: 800px;"> <!--鍔熻兘--> <div> - <!-- <el-button type="primary" @click="ManualMatching()" :disabled="(this.LastQueue.state <= 0)" + <el-button type="primary" @click="ManualMatching()" :disabled="(this.LastQueue.state > 1)" style="z-index: 999;">{{ $t('Manual matching') }}</el-button> - <el-button type="primary" @click="ManualTake()" :disabled="(this.LastQueue.state <= 0)" + <el-button type="primary" @click="ManualTake()" :disabled="(this.LastQueue.state > 1)" style="z-index: 999;">{{ - $t('Manual removal') }}</el-button> --> - <el-button type="primary" @click="AnewMeasure()" :disabled="(this.LastQueue.state <= 0)" + $t('Manual removal') }}</el-button> + <el-button type="primary" @click="AnewMeasure()" style="z-index: 999;">{{ $t('Remeasure') }}</el-button> + <!-- 杈撳叆涓嬫媺妗�1 --> + <!-- SelectSetting --> + <label for="file-upload" style="font-weight: bold;font-size: 16px;margin-left: 50px;">{{ $t('Films') }}:{{SelectSetting.films }}</label> + <el-select v-model="selectedValue1" :placeholder="$t('Films')"> + <el-option v-for="item in selectedOption1.films" :key="item.value" :label="item.films" + :value="item.films"> + </el-option> + </el-select> + <!-- 杈撳叆涓嬫媺妗�2 --> + <label for="file-upload" style="font-weight: bold;font-size: 16px;">{{ $t('Thickness') }}:{{SelectSetting.thickness }}mm</label> + <el-select v-model="selectedValue2" :placeholder="$t('Thickness')"> + <el-option v-for="item in selectedOption2.thickness" :key="item.value" :label="item.thickness" + :value="item.thickness"> + </el-option> + </el-select> + <el-button type="primary" @click="SaveMeasure(selectedValue1,selectedValue2)" + style="z-index: 999;">{{ + $t('Save') }}</el-button> </div> <br> <!--鏄剧ず--> @@ -544,7 +567,7 @@ </div> <!--鏄剧ず--> <div style="width:20px;height: 720px;float: left;"></div> - <div style="width:600px;height: 720px;border: 2px solid #d1d1d1;float: left;"> + <div style="width:700px;height: 720px;border: 2px solid #d1d1d1;float: left;"> <!--鐜荤拑鍥� #81b337 padding: 50px 50px;--> <!-- <span class="measuretitle">{{ $t('Width') }}锛�</span> <span class="measureValue">{{ this.LastQueue.glasswidth @@ -564,8 +587,9 @@ this.LastQueue.state > 0 ? $t('Matching successful') : (this.LastQueue.state == 0 ? $t('Multiple data matching') : $t('Matching failed')) }}</span> <br> --> - <el-table :data="this.tasklist3" :row-class-name="rowClassName" style="width: 100%;padding:0;"> + <el-table :data="this.tasklist3" :height="700" :row-class-name="rowClassName" style="width: 100%;padding:0;"> <el-table-column prop="flowcard" :label="$t('Flowcard')"></el-table-column> + <el-table-column prop="mateid" :label="$t('Mateid')"></el-table-column> <el-table-column prop="films" :label="$t('Films')"></el-table-column> <el-table-column prop="width" :label="$t('Width')"></el-table-column> <el-table-column prop="height" :label="$t('Height')"></el-table-column> @@ -579,16 +603,18 @@ </el-dialog> <el-dialog :visible.sync="StorageCage" :title="$t('StorageCage')" top="5vh"> - <el-table :data="this.StorageCageInfo" :height="700" border style="width: 100%;overflow: auto;"> + <el-table :data="this.StorageCageInfo" :height="700" border style="width: 100%;overflow: auto;" + :span-method="spanMethod" class="bold-center"> <el-table-column :min-width="80" prop="cage" :label="$t('Cage No')"></el-table-column> <el-table-column :min-width="80" prop="cell" :label="$t('Slot No')"></el-table-column> - <el-table-column :min-width="80" prop="glasstype" :label="$t('GlassType')"></el-table-column> + <el-table-column :min-width="80" prop="flowcard" :label="$t('Flowcard')"></el-table-column> + <el-table-column :min-width="80" prop="mateid" :label="$t('Mateid')"></el-table-column> <el-table-column :min-width="80" prop="glassWidth" :label="$t('Width')"></el-table-column> <el-table-column :min-width="80" prop="glassHeight" :label="$t('Height')"></el-table-column> <el-table-column :min-width="80" prop="thickness" :label="$t('Thickness')"></el-table-column> <el-table-column :min-width="80" prop="films" :label="$t('Films')"></el-table-column> <el-table-column :min-width="80" prop="number" :label="$t('number')"></el-table-column> - <el-table-column :min-width="80" prop="width" :label="$t('Width')"></el-table-column> + <!-- <el-table-column :min-width="80" prop="width" :label="$t('Width')"></el-table-column> --> <el-table-column :min-width="250" :label="$t('Operate')"> <template slot-scope='scope'> <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" @@ -617,17 +643,18 @@ :tree-props="{ children: 'glassinfo', hasChildren: 'hasChildren' }"> <el-table-column prop="flowcard" :label="$t('Order')" width="150" align="center"> <template slot-scope='scope'> - <div - > + <div> {{ scope.row.flowcard }} </div> </template> </el-table-column> - <el-table-column prop="glasstype" :label="$t('GlassType')" align="center"> + <el-table-column prop="mateid" :label="$t('Mateid')" align="center"> </el-table-column> - <el-table-column prop="number" :label="$t('Order No')" align="center"> + <el-table-column prop="tier" :label="$t('Tier')" align="center"> </el-table-column> - <el-table-column prop="cageno" :label="$t('No Of Cage')" align="center"> + <el-table-column prop="number" :label="$t('Number')" align="center"> + </el-table-column> + <el-table-column prop="cageno" :label="$t('Cage GlassNumber')" align="center"> </el-table-column> <el-table-column prop="finishnumber" :label="$t('Finish No')" align="center"> </el-table-column> @@ -644,7 +671,7 @@ <el-table-column prop="state" :label="$t('Task State')" align="center"> <template slot-scope='scope'> <div - :style="{ backgroundColor: scope.row.state === 0 ? '' : '#00FFFF', width: '105%', height: '125%',lineHeight: '50px'}"> + :style="{ backgroundColor: scope.row.state === 0 ? '' : '#00FFFF', width: '105%', height: '125%', lineHeight: '50px' }"> {{ scope.row.state >= 0 ? scope.row.state == 0 ? $t('Stop') : $t('Start') : "" }} </div> </template> @@ -654,9 +681,11 @@ {{ scope.row.state >= 0 ? scope.row.state == 0 ? $t('Stop') : $t('Start') : "" }} </template> </el-table-column> --> - <el-table-column prop="method" :label="$t('Task Method')"> + <el-table-column prop="method" :label="$t('Task Method')" align="center"> <template slot-scope='scope'> - {{ scope.row.state >= 0 ? scope.row.method == 0 ? $t('Out') : $t('All Out') : "" }} + <div style="text-align: center;width: 105%;"> + {{ scope.row.state >= 0 ? (scope.row.method == 0 ? $t('Out') : $t('All Out')) : "" }} + </div> </template> </el-table-column> <el-table-column prop="line" :label="$t('Task Line')"> @@ -681,24 +710,24 @@ {{ $t('Mode Change') }}</el-button> <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" - v-show="scope.row.state >= 0 ? true : false" @click="StartChange(scope.row.flowcard)"> - {{ scope.row.orderstate > 0 ? $t('start work') : $t('start work') }}</el-button> + v-show="scope.row.state >= 0 ? true : false" @click="StartChange(scope.row.flowcard, scope.row.orderstate)"> + {{ scope.row.orderstate > 0 ? $t('stop work') : $t('start work') }}</el-button> + <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" - v-show="scope.row.state >= 0 ? true : false" - @click="deleteTasks(scope.row.flowcard)"> + v-show="scope.row.state >= 0 ? true : false" @click="deleteTasks(scope.row.flowcard)"> {{ $t('langDelete') }}</el-button> </template> </el-table-column> </el-table> </el-dialog> - + <!-- 浜哄伐鍖归厤 --> <el-dialog :visible.sync="StorageCageAdd" :title="$t('StorageCageAdd')" top="5vh" width="80%"> <div style="display: flex;height: 40px;line-height: 40px;"> <label for="">{{ $t('Width') }}</label> - <el-input v-model="StorageCageForm.width" autocomplete="off" style="width:15%;" /> + <el-input v-model="StorageCageForm.glasswidthmm" autocomplete="off" style="width:15%;" /> <label for="">{{ $t('Height') }}</label> - <el-input v-model="StorageCageForm.height" autocomplete="off" style="width:15%;" /> + <el-input v-model="StorageCageForm.glassheightmm" autocomplete="off" style="width:15%;" /> <label for="">{{ $t('Thickness') }}</label> <el-input v-model="StorageCageForm.thickness" autocomplete="off" style="width:15%;" /> <label for="">{{ $t('Films') }}</label> @@ -709,7 +738,7 @@ <el-table :data="this.StorageCageAddInfo" :height="700" border style="width: 100%;overflow: auto;"> <el-table-column prop="flowcard" :label="$t('Flowcard')"></el-table-column> <el-table-column prop="tier" :label="$t('Tier')"></el-table-column> - <el-table-column prop="glasstype" :label="$t('GlassType')"></el-table-column> + <el-table-column prop="mateid" :label="$t('Mateid')"></el-table-column> <el-table-column prop="width" :label="$t('Width')"></el-table-column> <el-table-column prop="height" :label="$t('Height')"></el-table-column> <el-table-column prop="thickness" :label="$t('Thickness')"></el-table-column> @@ -733,7 +762,7 @@ Disabled, SelectPermissionByUserName, currentUsername, CompleteQueue, isAllowReorderings, - UpdateStroageCageByCell, FinishTask, SelectGlassInfo, StorageCageAddGlass, ClaimTasks, ModeChange, UpdateQueue, importData, ManualTake, AnewMeasure, StartChange, deleteTasks + UpdateStroageCageByCell, FinishTask, SelectGlassInfo, StorageCageAddGlass, ClaimTasks, ModeChange, UpdateQueue, importData, ManualTake, AnewMeasure, StartChange, deleteTasks,SaveMeasure } from "../../api/home"; @@ -747,14 +776,28 @@ carposition: 0, // selected: [], selected: Array.from({ length: 1000 }, () => 1), + selected2: Array.from({ length: 1000 }, () => 1), + selected3: Array.from({ length: 1000 }, () => 1), // selected: '1', options: [{ value: '1', label: '1' }], - // mounted() { - // this.selected[scope.$index] = '1'; // 鍋囪浣犳兂璁╃涓�涓笅鎷夋榛樿閫変腑 '閫夐」 1' - // }, + // 娴嬮噺涓嬫媺妗嗚啘绯� + selectedOption1: { + films: [], + }, + selectedOption2: { + thickness: [], + }, + // selectedOption1: [films], + // selectedOption2: [thickness], + + selectedValue1: null, // 鐢ㄤ簬瀛樺偍绗竴涓笅鎷夋鐨勯�変腑鍊� + selectedValue2: null, // 鐢ㄤ簬瀛樺偍绗簩涓笅鎷夋鐨勯�変腑鍊� + // 灏嗗�艰祴缁� selectedValue1 鍜� selectedValue2 + + dataList: [], tableData1: [], Measuermode: false, @@ -775,8 +818,8 @@ StorageCageAdd: false, StorageCageInfo: [], StorageCageForm: { - width: "", - height: "", + glasswidthmm: "", + glassheightmm: "", thickness: "", films: "" }, @@ -794,6 +837,8 @@ cagelist2: [], cagelist3: [], cagelist4: [], + SelectMeasure: [], + SelectSetting: [], task1: 3, task2: 2, tasklist1: [], @@ -847,7 +892,7 @@ PromptSize: 250, reset: false, isQueueWarning: false, - CurrentFrame: [], + // CurrentFrame: [], DeviceList: [1, 1, 1, 1], GlassIdList: [], Scanningmethod: true, @@ -859,11 +904,13 @@ created() { this.load(); + }, activated() { this.init(); } , + methods: { showform(i) { if (i == 1) { @@ -912,6 +959,23 @@ this.tasklist3 = obj.glassInfoFlowCard[0]; this.tasklist2 = obj.StoragTaskeTaskFeed[0]; this.tasklist1 = obj.StoragTaskeTaskOut[0]; + this.SelectSetting=obj.SelectSetting[0]; + this.selectedOption1.films = obj.SelectMeasure[0]; + this.selectedOption2.thickness = obj.SelectMeasure[0]; + // if(obj.StorageCageForm.length == 0){ + // this.StorageCageForm.glasswidthmm = "" + // this.StorageCageForm.glassheightmm = "" + // this.StorageCageForm.films = "" + // this.StorageCageForm.thickness = "" + // }else{ + // this.StorageCageForm = obj.StorageCageForm[0]; + // } + + // console.log(obj.StorageCageForm[0]); + + + //鍦ㄨ繖閲屽啓涓嬫媺閫夌殑v-for鐨勫悕绉� + if (obj.alarmmg[0].length > 0) { if (this.alarm.length > 0) { if (this.alarm[this.alarm.length - 1].id != obj.alarmmg[0][obj.alarmmg[0].length - 1].id) { @@ -952,6 +1016,7 @@ this.$forceUpdate(); }.bind(this); + //鍏抽棴浜嬩欢 socket.onclose = function () { console.log("websocket宸插叧闂�"); @@ -966,6 +1031,7 @@ }); } }, + load() { //鍔犺浇鐢ㄦ埛鏉冮檺 currentUsername().then(res => { @@ -1005,6 +1071,7 @@ this.cageinfo = res.data.cageinfo; this.currentPages = 1; }); + }, //娣诲姞鐞嗙墖绗肩幓鐠� StorageCageAddGlass(index) { @@ -1056,25 +1123,46 @@ } }); },//閫夋嫨寮�濮嬪伐绋� - StartChange(flowcard) { - StartChange(flowcard).then(res => { + StartChange(flowcard,orderstate) { + if(orderstate==1){ + + StartChange(flowcard,0).then(res => { + if (res.data.message == 200) { + this.$message.success(this.$t('Operation successful')); + } + }); + }else{ + StartChange(flowcard,1).then(res => { + if (res.data.message == 200) { + this.$message.success(this.$t('Operation successful')); + } + }); + } + }, + //閫夋嫨寮�濮嬪伐绋� + deleteTasks(flowcard) { + deleteTasks(flowcard).then(res => { + console.log("@" + flowcard + "@"); if (res.data.message == 200) { this.$message.success(this.$t('Operation successful')); } }); }, - //閫夋嫨寮�濮嬪伐绋� - deleteTasks(flowcard) { - deleteTasks(flowcard).then(res => { - console.log("@"+flowcard+"@"); - if (res.data.message == 200) { + //淇濆瓨娴嬮噺鑶滅郴鐨勫弬鏁� + SaveMeasure(films,thickness) { + console.log('Films:', films); // 鎵撳嵃 films + console.log('Thickness:', thickness); // 鎵撳嵃 thickness + SaveMeasure(films,thickness).then(res => { + if (res.data.message >= 1) { this.$message.success(this.$t('Operation successful')); } }); }, //鏌ヨ鐜荤拑淇℃伅 SelectGlassInfo() { - SelectGlassInfo(this.StorageCageForm.width, this.StorageCageForm.height, this.StorageCageForm.thickness, this.StorageCageForm.films).then(res => { + console.log(this.StorageCageForm.glasswidthmm); + + SelectGlassInfo(this.StorageCageForm.glasswidthmm, this.StorageCageForm.glassheightmm, this.StorageCageForm.thickness, this.StorageCageForm.films).then(res => { this.StorageCageAddInfo = res.data.StorageCageAddInfo; }) }, @@ -1112,7 +1200,35 @@ } }); }, + spanMethod({ rowIndex, columnIndex }) { + let zhi1 = this.StorageCageInfo[rowIndex].cage; + let zhi2 = 0; + if (rowIndex > 0) { + zhi2 = this.StorageCageInfo[rowIndex - 1].cage; + } + if (columnIndex === 0) { // 浠呭鐞� cage 鍒� + // console.log(columnIndex,rowIndex); + if (zhi1 != zhi2) { + const currentCage = this.StorageCageInfo[rowIndex].cage; + let span = { rowspan: 1, colspan: 1 }; + // 妫�鏌ュ悗缁锛屾壘鍒扮浉鍚岀殑 cage 鍊� + for (let i = rowIndex + 1; i < this.StorageCageInfo.length; i++) { + if (this.StorageCageInfo[i].cage === currentCage) { + span.rowspan++; + } else { + break; + } + } + return span; + } else { + return { rowspan: 0, colspan: 0 }; + } + + } + // 鍏朵粬鍒椾繚鎸侀粯璁わ紝涓嶅悎骞� + return { rowspan: 1, colspan: 1 }; + }, //鏀瑰彉姣忛〉瀹圭撼鐨勬暟鎹噺 handleSizeChange: function (size) { this.pagesize = size; @@ -1234,6 +1350,7 @@ importData(tbdata).then(res => { if (res.data.message == 200) { this.$message.success(this.$t('Operation successful')); + this.dataList = null; } }); }, -- Gitblit v1.8.0