| | |
| | | display: inline-block; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .bold-center { |
| | | font-weight: bold; |
| | | text-align: center; |
| | | } |
| | | </style> |
| | | <template> |
| | | <el-container> |
| | |
| | | </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> |
| | |
| | | </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> |
| | |
| | | <!-- 保存 --> |
| | | <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> |
| | |
| | | |
| | | <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> |
| | | <!--显示--> |
| | |
| | | </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 |
| | |
| | | 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> |
| | |
| | | </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;" |
| | |
| | | :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> |
| | |
| | | <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> |
| | |
| | | {{ 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')"> |
| | |
| | | {{ $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> |
| | |
| | | <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> |
| | |
| | | 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"; |
| | | |
| | | |
| | |
| | | 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, |
| | |
| | | StorageCageAdd: false, |
| | | StorageCageInfo: [], |
| | | StorageCageForm: { |
| | | width: "", |
| | | height: "", |
| | | glasswidthmm: "", |
| | | glassheightmm: "", |
| | | thickness: "", |
| | | films: "" |
| | | }, |
| | |
| | | cagelist2: [], |
| | | cagelist3: [], |
| | | cagelist4: [], |
| | | SelectMeasure: [], |
| | | SelectSetting: [], |
| | | task1: 3, |
| | | task2: 2, |
| | | tasklist1: [], |
| | |
| | | PromptSize: 250, |
| | | reset: false, |
| | | isQueueWarning: false, |
| | | CurrentFrame: [], |
| | | // CurrentFrame: [], |
| | | DeviceList: [1, 1, 1, 1], |
| | | GlassIdList: [], |
| | | Scanningmethod: true, |
| | |
| | | created() { |
| | | this.load(); |
| | | |
| | | |
| | | }, |
| | | activated() { |
| | | this.init(); |
| | | } |
| | | , |
| | | |
| | | methods: { |
| | | showform(i) { |
| | | if (i == 1) { |
| | |
| | | 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) { |
| | |
| | | this.$forceUpdate(); |
| | | |
| | | }.bind(this); |
| | | |
| | | //关闭事件 |
| | | socket.onclose = function () { |
| | | console.log("websocket已关闭"); |
| | |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | load() { |
| | | //加载用户权限 |
| | | currentUsername().then(res => { |
| | |
| | | this.cageinfo = res.data.cageinfo; |
| | | this.currentPages = 1; |
| | | }); |
| | | |
| | | }, |
| | | //添加理片笼玻璃 |
| | | StorageCageAddGlass(index) { |
| | |
| | | } |
| | | }); |
| | | },//选择开始工程 |
| | | 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; |
| | | }) |
| | | }, |
| | |
| | | } |
| | | }); |
| | | }, |
| | | 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; |
| | |
| | | importData(tbdata).then(res => { |
| | | if (res.data.message == 200) { |
| | | this.$message.success(this.$t('Operation successful')); |
| | | this.dataList = null; |
| | | } |
| | | }); |
| | | }, |