| | |
| | | background-attachment: local; |
| | | width: 1200px; |
| | | position: absolute; |
| | | background-image: url(/img/car.c2f92670.png); |
| | | background-image: url('../../img/car.png'); |
| | | background-size: 800px 1200px; |
| | | } |
| | | |
| | |
| | | .cells { |
| | | height: 100%; |
| | | } |
| | | .measure_Content{ |
| | | margin-bottom: 20px; |
| | | font-size: 30px; |
| | | } |
| | | .measuretitle{ |
| | | |
| | | } |
| | | .measureValue{ |
| | | |
| | | } |
| | | .measureUnit{ |
| | | margin-left: 10px; |
| | | } |
| | | </style> |
| | | <template> |
| | | <el-container> |
| | |
| | | </div> |
| | | <div style="display: flex;align-items: center;overflow: hidden;"> |
| | | <div class="blocks" style="position: relative;width: 100%;"> |
| | | <div class="blocks-img" :style="'z-index:99;left:150px;top:555px;'"> |
| | | <div class="blocks-img" :style="'z-index:999;left:150px;top:'+carposition+'px;'"> |
| | | |
| | | </div> |
| | | <div |
| | | :style="'position: absolute;z-index:99;left:271px;top:987px;width:210px;height:38px;background-color:' + ShowDeviceList(0) + ';'"> |
| | | </div> |
| | | <div |
| | | :style="'position: absolute;z-index:99;left:553px;top:956px;width:110px;height:74px;background-color:' + ShowDeviceList(0) + ';'"> |
| | | :style="'position: absolute;z-index:1000;left:553px;top:'+(400+carposition)+'px;width:110px;height:88px;background-color:' + ShowDeviceList(0) + ';'"> |
| | | </div> |
| | | <div |
| | | :style="'position: absolute;z-index:99;left:800px;top:450px;width:115px;height:30px;background-color:' + ShowDeviceList(0) + ';'"> |
| | |
| | | <div |
| | | :style="'position: absolute;z-index:99;left:800px;top:675px;width:115px;height:30px;background-color:' + ShowDeviceList(0) + ';'"> |
| | | </div> |
| | | <div :style="'position: absolute;z-index:1000;left:740px;top:507px;width:230px;height:114px;'"> |
| | | <div :style="'position: absolute;z-index:99;left:740px;top:507px;width:230px;height:114px;'"> |
| | | <div v-for="item in cagelist4" :key="item['id']" |
| | | :style="'display:flex;height:4.55px;position: relative;'"> |
| | | <div class="cells" v-for="(num) in item['number']" :key="num" :style="'width: ' + (item['glassWidth'] * 0.046) + 'px;background-color:' + ShowCellList(1) + ';position: absolute;left:' + |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div :style="'position: absolute;z-index:1000;left:740px;top:730px;width:230px;height:90px;'"> |
| | | <div :style="'position: absolute;z-index:100;left:740px;top:730px;width:230px;height:90px;'"> |
| | | <div v-for="item in cagelist3" :key="item['id']" |
| | | :style="'display:flex;height:2.25px;position: relative;'"> |
| | | <div class="cells" v-for="(num) in item['number']" :key="num" :style="'width: ' + (item['glassWidth'] * 0.046) + 'px;background-color:' + ShowCellList(1) + ';position: absolute;left:' + |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div :style="'position: absolute;z-index:1000;left:740px;top:830px;width:230px;height:90px;'"> |
| | | <div :style="'position: absolute;z-index:100;left:740px;top:830px;width:230px;height:90px;'"> |
| | | <div v-for="item in cagelist2" :key="item['id']" |
| | | :style="'display:flex;height:2.25px;position: relative;'"> |
| | | <div class="cells" v-for="(num) in item['number']" :key="num" :style="'width: ' + (item['glassWidth'] * 0.046) + 'px;background-color:' + ShowCellList(1) + ';position: absolute;left:' + |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div :style="'position: absolute;z-index:1000;left:740px;top:930px;width:230px;height:90px;'"> |
| | | <div :style="'position: absolute;z-index:100;left:740px;top:930px;width:230px;height:90px;'"> |
| | | <div v-for="item in cagelist1" :key="item['id']" |
| | | :style="'display:flex;height:2.25px;position: relative;'"> |
| | | <div class="cells" v-for="(num) in item['number']" :key="num" :style="'width: ' + (item['glassWidth'] * 0.046) + 'px;background-color:' + ShowCellList(1) + ';position: absolute;left:' + |
| | |
| | | <el-table-column :min-width="100" :label="$t('Terminate Task')"> |
| | | <template slot-scope='scope'> |
| | | <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" |
| | | @click="FinishTask(0, scope.row.id)">{{ $t('Complete') }}</el-button> |
| | | @click="FinishTask(scope.row.id)">{{ $t('Complete') }}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <el-table-column :min-width="100" :label="$t('Terminate Task')"> |
| | | <template slot-scope='scope'> |
| | | <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" |
| | | @click="FinishTask(1, scope.row.id)">{{ $t('Complete') }}</el-button> |
| | | @click="FinishTask(scope.row.id)">{{ $t('Complete') }}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <el-table-column prop="glasstype" :label="$t('Glasstype')"></el-table-column> |
| | | <el-table-column prop="productname" :label="$t('Productname')"></el-table-column> |
| | | </el-table> |
| | | <!-- <table id="table"> |
| | | <thead> |
| | | <tr> |
| | | <th>Customer</th> |
| | | <th>order</th> |
| | | <th>base</th> |
| | | <th>height</th> |
| | | <th>thickness</th> |
| | | <th>films</th> |
| | | <th>quantity</th> |
| | | <th>tier</th> |
| | | <th>matching</th> |
| | | <th>glasstype</th> |
| | | <th>productname</th> |
| | | </tr> |
| | | </thead> |
| | | <tbody style="text-align: center"> |
| | | <tr v-for="item in dataList" :key="item.id"> |
| | | <td>{{ item.Customer }}</td> |
| | | <td>{{ item.order }}</td> |
| | | <td>{{ item.base }}</td> |
| | | <td>{{ item.height }}</td> |
| | | <td>{{ item.thickness }}</td> |
| | | <td>{{ item.films }}</td> |
| | | <td>{{ item.quantity }}</td> |
| | | <td>{{ item.tier }}</td> |
| | | <td>{{ item.matching }}</td> |
| | | <td>{{ item.glasstype }}</td> |
| | | <td>{{ item.productname }}</td> |
| | | </tr> |
| | | </tbody> |
| | | </table> --> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | |
| | | <!--功能--> |
| | | <div> |
| | | <el-button type="primary" @click="ManualMatching()" :disabled="SoftEmergencyStopState" |
| | | style="z-index: 999;">人工匹配</el-button> |
| | | style="z-index: 999;">{{ $t('Manual matching') }}</el-button> |
| | | <el-button type="primary" @click="ManualTake()" :disabled="SoftEmergencyStopState" |
| | | style="z-index: 999;">人工拿走</el-button> |
| | | style="z-index: 999;">{{ $t('Manual removal') }}</el-button> |
| | | <el-button type="primary" @click="AnewMeasure()" :disabled="SoftEmergencyStopState" |
| | | style="z-index: 999;">重新测量</el-button> |
| | | style="z-index: 999;">{{ $t('Remeasure') }}</el-button> |
| | | </div> |
| | | <br> |
| | | <!--显示--> |
| | |
| | | <div style="width:20px;height: 720px;float: left;"></div> |
| | | <div style="width:500px;height: 620px;border: 2px solid #d1d1d1;float: left;padding: 50px 50px;"> |
| | | <!--玻璃图 #81b337--> |
| | | <div class="measure_Content"> |
| | | <span class="measuretitle" style="font-size: 30px;">长:</span> |
| | | <span class="measureValue">{{ this.LastQueue.glasswidth }}</span> |
| | | <span class="measureUnit"> mm</span> |
| | | </div> |
| | | <div class="measure_Content"> |
| | | <span class="measuretitle">宽:</span> |
| | | <span class="measureValue">{{ this.LastQueue.glassheight }}</span> |
| | | <span class="measureUnit">mm</span> |
| | | </div> |
| | | <div class="measure_Content"> |
| | | <span class="measuretitle">测量长:</span> |
| | | <span class="measureValue">{{ this.LastQueue.glasswidthmm }}</span> |
| | | <span class="measureUnit">mm</span> |
| | | </div> |
| | | <div class="measure_Content"> |
| | | <span class="measuretitle">测量宽:</span> |
| | | <span class="measureValue">{{ this.LastQueue.glassheightmm }}</span> |
| | | <span class="measureUnit">mm</span> |
| | | </div> |
| | | <div class="measure_Content"> |
| | | <span class="measuretitle">匹配结果:</span> |
| | | <span class="measureValue">{{ this.LastQueue.state>0?"匹配成功":(this.LastQueue.state==0?"匹配失败":"多数据匹配") }}</span> |
| | | </div> |
| | | |
| | | <span class="measuretitle">{{ $t('Width') }}:</span> <span class="measureValue">{{ this.LastQueue.glasswidth }}</span> <span class="measureUnit">mm</span> |
| | | <br> |
| | | <span class="measuretitle">{{ $t('Height') }}:</span> <span class="measureValue">{{ this.LastQueue.glassheight }}</span> <span class="measureUnit">mm</span> |
| | | <br> |
| | | <span class="measuretitle">{{ $t('Thickness') }}:</span> <span class="measureValue">{{ this.LastQueue.thickness }}</span> <span class="measureUnit">mm</span> |
| | | <br> |
| | | <span class="measuretitle">{{ $t('Measure Width') }}:</span> <span class="measureValue">{{ this.LastQueue.glasswidthmm }}</span> <span class="measureUnit">mm</span> |
| | | <br> |
| | | <span class="measuretitle">{{ $t('Measure Height') }}:</span> <span class="measureValue">{{ this.LastQueue.glassheightmm }}</span> <span class="measureUnit">mm</span> |
| | | <br> |
| | | <span class="measuretitle">{{ $t('Matching results') }}:</span> <span class="measureValue">{{ this.LastQueue.state>0?$t('Matching successful'):(this.LastQueue.state==0?$t('Multiple data matching'):$t('Matching failed')) }}</span> |
| | | <br> |
| | | </div> |
| | | </div> |
| | | </el-dialog> |
| | |
| | | <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="250" :label="$t('Operate')"> |
| | | <template slot-scope='scope'> |
| | | |
| | | <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" |
| | | @click="UpdateDisabled(scope.row.cage, scope.row.cell, scope.row.disabled == 0 ? 1 : 0)"> |
| | | {{ scope.row.disabled == 0 ? $t('Disable') : $t('Enable') }}</el-button> |
| | | |
| | | <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" |
| | | :disabled="(scope.row.width < scope.row.glassWidth + 100 ? true : false)" |
| | | @click="UpdateStroageCageByCell(scope.row.cell, scope.row.number, 1)">{{ $t('Add') |
| | | }} |
| | | </el-button> |
| | | |
| | | <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" |
| | | :disabled="scope.row.number >= 1 ? false : true" |
| | | @click="UpdateStroageCageByCell(scope.row.cell, scope.row.number, -1)">{{ $t('Reduce') |
| | | }}</el-button> |
| | | |
| | | <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" |
| | | :disabled="scope.row.number >= 1 ? false : true" |
| | | @click="UpdateStroageCageByCell(scope.row.cell, scope.row.number, 0)">{{ $t('Delete') |
| | |
| | | </el-table-column> |
| | | <el-table-column prop="state" :label="$t('Task State')"> |
| | | <template slot-scope='scope'> |
| | | {{ scope.row.state >= 0 ? scope.row.state == 0 ? $t('Start') : $t('Stop') : "" }} |
| | | {{ 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')"> |
| | | <template slot-scope='scope'> |
| | | {{ scope.row.state >= 0 ? scope.row.method == 0 ? $t('Out') : $t('All Out') : "" }} |
| | | </template> |
| | | |
| | | </el-table-column> |
| | | <el-table-column prop="line" :label="$t('Task Line')"> |
| | | </el-table-column> |
| | | <el-table-column width="220" :label="$t('Operate')"> |
| | | <el-table-column width="300" :label="$t('Operate')"> |
| | | |
| | | <template slot-scope='scope'> |
| | | <el-select v-model="selected[scope.$index]" :placeholder="$t('Line')" |
| | | v-show="scope.row.state >= 0 ? true : false"> |
| | | <el-option v-for="item in options" :key="item.value" :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" |
| | | v-show="scope.row.state >= 0 ? true : false" |
| | | @click="ClaimTasks(scope.row.flowcard, scope.row.state)"> |
| | | {{ scope.row.status == '0' ? $t('Start Task') : $t('Stop Task') }}</el-button> |
| | | @click="ClaimTasks(scope.row.flowcard, scope.row.state, selected[scope.$index])"> |
| | | {{ scope.row.state > 0 ? $t('Stop Task') : $t('Start Task') }}</el-button> |
| | | |
| | | <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" |
| | | v-show="scope.row.state >= 0 ? true : false" |
| | |
| | | </div> |
| | | <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="width" :label="$t('Width')"></el-table-column> |
| | | <el-table-column prop="height" :label="$t('Height')"></el-table-column> |
| | |
| | | name: "Home", |
| | | data() { |
| | | return { |
| | | carposition:0, |
| | | selected: [], |
| | | options: [{ |
| | | value: '1', |
| | | label: '1' |
| | | }, { |
| | | value: '2', |
| | | label: '2' |
| | | }], |
| | | dataList: [], |
| | | tableData1: [], |
| | | Measuermode: false, |
| | |
| | | socket.onmessage = function (msg) { |
| | | //console.log("收到数据====" + msg.data); |
| | | let obj = JSON.parse(msg.data); |
| | | if (obj.params != null) { |
| | | var zhi1 = obj.params[0][0]; |
| | | var zhi2 = obj.params[0][1]; |
| | | this.car1 = 145 + 8.15 * Math.abs(zhi1 - this.carlist[0]['start']) / Math.abs(this.carlist[0]['end'] - this.carlist[0]['start']) * 100; |
| | | this.car2 = 210 + 8.15 * Math.abs(zhi2 - this.carlist[1]['start']) / Math.abs(this.carlist[1]['end'] - this.carlist[1]['start']) * 100; |
| | | // this.car1 = 210 + 11.25 * (obj.params[0][1]-this.carlist[1]['start'])/(this.carlist[1]['end']-this.carlist[1]['start'])*100; |
| | | // this.car2 = 300 + 11.25 * (obj.params[0][1]-this.carlist[1]['start'])/(this.carlist[1]['end']-this.carlist[1]['start'])*100; |
| | | if(obj.carposition != null){ |
| | | this.carposition = obj.carposition[0]; |
| | | } |
| | | // 获取设备状态 |
| | | if (obj.DeviceList != null) { |
| | |
| | | StorageCageAddGlass(this.cell, this.StorageCageAddInfo[index]).then(res => { |
| | | if (res.data.message == 200) { |
| | | this.$message.success(this.$t('Operation successful')); |
| | | this.StorageCageAdd=false; |
| | | } |
| | | }) |
| | | } else { |
| | |
| | | |
| | | }, |
| | | //领取/暂停任务 |
| | | ClaimTasks(flowcard, state) { |
| | | ClaimTasks(flowcard, state).then(res => { |
| | | ClaimTasks(flowcard, state, line) { |
| | | ClaimTasks(flowcard, state, line).then(res => { |
| | | if (res.data.message == 200) { |
| | | this.$message.success(this.$t('Operation successful')); |
| | | } |
| | |
| | | }) |
| | | }, |
| | | //完成进/出片任务 |
| | | FinishTask(tasktype, id) { |
| | | FinishTask(tasktype, id).then(res => { |
| | | if (res.data.message3 == 200) { |
| | | FinishTask(id) { |
| | | FinishTask(id).then(res => { |
| | | if (res.data.message == 200) { |
| | | this.$message.success(this.$t('Operation successful')); |
| | | } |
| | | }); |
| | |
| | | UpdateStroageCageByCell(cell, nownum, num) { |
| | | if (nownum == null && num == 1) { |
| | | this.StorageCageAdd = true; |
| | | this.Measuermode=true; |
| | | this.cell = cell; |
| | | } else { |
| | | if (nownum + num == 0) { |
| | |
| | | //人工匹配 |
| | | ManualMatching() { |
| | | this.StorageCageAdd = true; |
| | | this.Measuermode=false; |
| | | }, |
| | | //人工拿走 |
| | | ManualTake() { |
| | |
| | | console.log(tbdata); |
| | | importData(tbdata).then(res => { |
| | | if (res.data.message == 200) { |
| | | //this.$message.success(this.$t('Operation successful')); |
| | | this.$message.success(this.$t('Operation successful')); |
| | | } |
| | | }); |
| | | }, |