| | |
| | | } |
| | | |
| | | .occupy { |
| | | height: 100%; |
| | | width: 20%; |
| | | height: 50%; |
| | | width: 45%; |
| | | background-color: white; |
| | | margin: 0px 8px 0px 8px; |
| | | border: 1px #EBEEF5 solid; |
| | |
| | | max-width: 57%; |
| | | background-size: 1050px 1400px; |
| | | margin-top: -280px; |
| | | overflow: hidden; |
| | | /* width: 1660px; |
| | | max-width: 100vw; |
| | | background-size: 1660px 560px; */ |
| | |
| | | } |
| | | |
| | | .blocks-img { |
| | | height: 88px; |
| | | line-height: 90px; |
| | | color: white; |
| | | height: 900px; |
| | | max-width: 100vw; |
| | | background-repeat: no-repeat; |
| | | background-attachment: local; |
| | | width: 32px; |
| | | width: 1200px; |
| | | position: absolute; |
| | | background-image: url('../../img/bigcar01.png'); |
| | | background-size: 40px 87px; |
| | | /* background-size: 46px 94px; */ |
| | | background-image: url('../../img/car.png'); |
| | | background-size: 800px 1200px; |
| | | } |
| | | |
| | | .blocks-img2 { |
| | |
| | | height: 15px; |
| | | position: absolute; |
| | | } |
| | | |
| | | /* |
| | | |
| | | */ |
| | | #fileinput .container { |
| | | width: 800px; |
| | | margin: 0 auto; |
| | | } |
| | | |
| | | #fileinput .header { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | #fileinput table { |
| | | width: 100%; |
| | | border-collapse: collapse; |
| | | border: 1px solid; |
| | | } |
| | | |
| | | #fileinput tr, |
| | | #fileinput th, |
| | | #fileinput td { |
| | | border: 1px solid #000; |
| | | padding: 5px; |
| | | } |
| | | |
| | | #fileinput button { |
| | | border: none; |
| | | padding: 5px; |
| | | background-color: #00a297; |
| | | color: #fff; |
| | | border-radius: 5px; |
| | | cursor: pointer; |
| | | margin: 0 5px; |
| | | } |
| | | |
| | | #fileinput tr:nth-child(2n) { |
| | | background-color: #dcdcdc; |
| | | } |
| | | |
| | | #fileinput .hide { |
| | | display: none; |
| | | } |
| | | |
| | | #fileinput .c1 { |
| | | position: fixed; |
| | | top: 0; |
| | | bottom: 0; |
| | | left: 0; |
| | | right: 0; |
| | | background: rgba(0, 0, 0, .5); |
| | | z-index: 2; |
| | | } |
| | | |
| | | #fileinput .c2 { |
| | | background-color: white; |
| | | position: fixed; |
| | | width: 400px; |
| | | height: 300px; |
| | | top: 50%; |
| | | left: 50%; |
| | | z-index: 3; |
| | | margin-top: -150px; |
| | | margin-left: -200px; |
| | | } |
| | | |
| | | .cells { |
| | | height: 100%; |
| | | } |
| | | </style> |
| | | <template> |
| | | <el-container> |
| | | <!-- <el-header style="padding: 10px;"></el-header> --> |
| | | <el-main> |
| | | <div class="box" @click="dialogFormVisible2 = true"> |
| | | <el-dialog :visible.sync="dialogFormVisible2" :title="$t('Alarm Information')"> |
| | | <el-table :data="this.alarm" border style="width: 100%;font-size: 25px;"> |
| | | <el-table-column prop="id" :label="$t('id')"></el-table-column> |
| | | <el-table-column prop="content" :label="$t('content')"></el-table-column> |
| | | <el-table-column prop="timeons" :label="$t('timeon')"></el-table-column> |
| | | </el-table> |
| | | </el-dialog> |
| | | <div class="box" @click="dialogFormVisible2 = true" style="z-index: 999;"> |
| | | <div class="text"> |
| | | <!-- Alarm: --> |
| | | {{ this.text }} |
| | |
| | | {{ $t('Task queue') }}</el-button> |
| | | |
| | | </div> |
| | | <div style="display: flex;align-items: center;"> |
| | | <div style="display: flex;align-items: center;overflow: hidden;"> |
| | | <div class="blocks" style="position: relative;width: 100%;"> |
| | | <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: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> |
| | | <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: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:' + |
| | | ((item['glassWidth'] * 0.046 * (num - 1)) + ((num - 1) * 5)) + 'px;'"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <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:' + |
| | | ((item['glassWidth'] * 0.046 * (num - 1)) + ((num - 1) * 5)) + 'px;'"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <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:' + |
| | | ((item['glassWidth'] * 0.046 * (num - 1)) + ((num - 1) * 5)) + 'px;'"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <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:' + |
| | | ((item['glassWidth'] * 0.046 * (num - 1)) + ((num - 1) * 5)) + 'px;'"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div> |
| | | <div style="padding: 10px;display: flex;height:100px;"> |
| | | <div style="padding: 10px;display: flex;height: 300px;flex-wrap: wrap;"> |
| | | <div v-for="item in tableData" :key="item['cageno']" class="occupy"> |
| | | <el-col style="text-align:left;font-weight: bold;">#{{ item['cage'] }}</el-col> |
| | | <el-col |
| | | style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span class="biao">{{ $t('Usage') }}</span><span class="zhi">{{ item['cell'] }}%</span> |
| | | style="text-align:left;display:flex;justify-content: space-between;align-items: center;height: 70px;"> |
| | | <span class="biao">{{ $t('Usage') }}</span><span class="zhi">{{ item['width'] }}%</span> |
| | | </el-col> |
| | | <hr style="width:80%;margin: 0 auto;" /> |
| | | <el-col |
| | | style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span class="biao">{{ $t('Space (Pieces)') }}</span><span class="zhi">{{ item['state'] |
| | | <span class="biao">{{ $t('Space (Pieces)') }}</span><span class="zhi">{{ item['cell'] |
| | | }}</span> |
| | | </el-col> |
| | | </div> |
| | |
| | | <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-main> |
| | | <el-dialog :visible.sync="Importorder" :title="$t('Import order')" top="5vh"> |
| | | <!--文件导入数据页面--> |
| | | <div id="" class="container"> |
| | | <div class="header"> |
| | | <div class="btn"> |
| | | <el-button type="primary" @click="importData()">保存</el-button> |
| | | |
| | | <input type="file" id="uploadExcel" multiple @change="Change" /> |
| | | </div> |
| | | </div> |
| | | <el-table :data="this.dataList" border style="width: 100%;"> |
| | | <el-table-column prop="Customer" :label="$t('Customer')"></el-table-column> |
| | | <el-table-column prop="order" :label="$t('Order')"></el-table-column> |
| | | <el-table-column prop="base" :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> |
| | | <el-table-column prop="films" :label="$t('Films')"></el-table-column> |
| | | <el-table-column prop="quantity" :label="$t('No')"></el-table-column> |
| | | <el-table-column prop="tier" :label="$t('Tier')"></el-table-column> |
| | | <el-table-column prop="matching" :label="$t('Matching')"></el-table-column> |
| | | <el-table-column prop="glasstype" :label="$t('Glasstype')"></el-table-column> |
| | | <el-table-column prop="productname" :label="$t('Productname')"></el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <el-dialog :visible.sync="Measure" :title="$t('Measure')" top="5vh"><!--测量页面--> |
| | | <!--测量页面主体--> |
| | | <div> |
| | | <div style="height: 780px;"> |
| | | <!--功能--> |
| | | <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;">{{ $t('Manual removal') }}</el-button> |
| | | <el-button type="primary" @click="AnewMeasure()" :disabled="SoftEmergencyStopState" |
| | | style="z-index: 999;">{{ $t('Remeasure') }}</el-button> |
| | | </div> |
| | | <br> |
| | | <!--显示--> |
| | | <div style="width:1000px;height: 720px;border: 2px solid #d1d1d1;float: left;"> |
| | | <!--玻璃图 #81b337--> |
| | | <div :style="'top:10px;bottom: 10px;left: 10px;right: 10px;margin:'+((1000-(this.LastQueue.glasswidth / 25 * 7))/2)+'px auto;'+ |
| | | 'width:'+ (this.LastQueue.glasswidth / 25 * 7) + 'px;'+ |
| | | 'height:'+ (this.LastQueue.glassheight / 25 * 7) + 'px;'+ |
| | | 'line-height: '+ (this.LastQueue.glassheight / 25 * 7) + 'px;'+ |
| | | 'background-color: '+ (this.LastQueue.state>0?'#4CCCE4':(this.LastQueue.state==0?'#E4CA4C':'#E4CA4C'))+ |
| | | ';text-align: center;'"> |
| | | |
| | | {{ this.LastQueue.glasswidth!=null?(this.LastQueue.glasswidth+"*"+this.LastQueue.glassheight):"" }} |
| | | |
| | | |
| | | </div> |
| | | |
| | | </div> |
| | | <!--显示--> |
| | | <div style="width:100%;height: 600px;border: 1px solid black;"> |
| | | <!--玻璃图--> |
| | | <div |
| | | style="top:0;bottom: 0;left: 0;right: 0;margin: auto;position:absolute;width: 100px;height: 200px;background-color: aqua;line-height: 200px;text-align: center;"> |
| | | 100*200 |
| | | </div> |
| | | |
| | | <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--> |
| | | <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> |
| | |
| | | <script> |
| | | |
| | | import { |
| | | home, home2, SelectCageInfo, |
| | | home, SelectCageInfo, |
| | | Disabled, SelectPermissionByUserName, currentUsername, CompleteQueue, |
| | | isAllowReorderings, |
| | | |
| | | UpdateStroageCageByCell, FinishTask, SelectGlassInfo, StorageCageAddGlass, ClaimTasks, ModeChange, UpdateQueue |
| | | UpdateStroageCageByCell, FinishTask, SelectGlassInfo, StorageCageAddGlass, ClaimTasks, ModeChange, UpdateQueue, importData, ManualTake, AnewMeasure |
| | | } from "../../api/home"; |
| | | |
| | | |
| | | import LanguageMixin from '../../lang/LanguageMixin' |
| | | import LanguageMixin from '../../lang/LanguageMixin'; |
| | | import * as XLSX from "../../../node_modules/xlsx/xlsx.mjs"; |
| | | let socket; |
| | | export default { |
| | | name: "Home", |
| | | data() { |
| | | return { |
| | | carposition:0, |
| | | selected: [], |
| | | options: [{ |
| | | value: '1', |
| | | label: '1' |
| | | }, { |
| | | value: '2', |
| | | label: '2' |
| | | }], |
| | | dataList: [], |
| | | tableData1: [], |
| | | Measuermode: false, |
| | | confirm1: false, |
| | |
| | | reset: false, |
| | | isQueueWarning: false, |
| | | CurrentFrame: [], |
| | | DeviceList: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], |
| | | DeviceList: [1, 1, 1, 1], |
| | | GlassIdList: [], |
| | | Scanningmethod: true, |
| | | CurrrentGlassId: "" |
| | | CurrrentGlassId: "", |
| | | LastQueue: {} |
| | | }; |
| | | }, |
| | | created() { |
| | |
| | | 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) { |
| | | this.DeviceList = obj.DeviceList[0]; |
| | | } |
| | | this.tableData = obj.tableData[0]; |
| | | this.cagelist1 = obj.cagelist1[0]; |
| | | this.cagelist2 = obj.cagelist2[0]; |
| | |
| | | this.alarm = obj.alarmmg[0]; |
| | | |
| | | this.tableData1 = obj.OrderTask[0]; |
| | | this.LastQueue = obj.LastQueue[0]; |
| | | |
| | | |
| | | //是否允许出片 |
| | |
| | | socket.onclose = function () { |
| | | console.log("websocket已关闭"); |
| | | }; |
| | | //发生了错误事件 |
| | | //发生了错误事件 |
| | | socket.onerror = function () { |
| | | console.log("websocket发生了错误"); |
| | | } |
| | |
| | | this.cageinfo = res.data.cageinfo; |
| | | this.currentPages = 1; |
| | | }); |
| | | //加载理片笼玻璃数据 |
| | | home2().then(res => { |
| | | this.cagelist1 = res.data.list1; |
| | | this.cagelist2 = res.data.list2; |
| | | this.cagelist3 = res.data.list3; |
| | | this.cagelist4 = res.data.list4; |
| | | }); |
| | | }, |
| | | //添加理片笼玻璃 |
| | | StorageCageAddGlass(index) { |
| | |
| | | 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) { |
| | |
| | | } |
| | | } |
| | | }, |
| | | //获取设备显示状态 |
| | | ShowCellList(num) { |
| | | if (num == null) { |
| | | return ""; |
| | | } else if (num > 0) { |
| | | return "gray"; |
| | | // return "rgba(0,0,0,1)"; |
| | | } |
| | | }, |
| | | //获取设备玻璃id |
| | | ShowGlassIdList(num) { |
| | | if (this.GlassIdList != null && this.GlassIdList.length > 0) { |
| | |
| | | //人工匹配 |
| | | ManualMatching() { |
| | | this.StorageCageAdd = true; |
| | | this.Measuermode=false; |
| | | }, |
| | | //人工拿走 |
| | | ManualTake() { |
| | | let s = "123"; |
| | | ManualTake(s).then(res => { |
| | | if (res.data.message == 200) { |
| | | console.log(res.data.message); |
| | | } |
| | | }) |
| | | }, |
| | | //重新测量 |
| | | AnewMeasure() { |
| | | let s = "123"; |
| | | AnewMeasure(s).then(res => { |
| | | if (res.data.message == 200) { |
| | | console.log(res.data.message); |
| | | } |
| | | }) |
| | | }, |
| | | Change(event) { |
| | | // 获取到文件夹 |
| | | let fileList = event.target.files; |
| | | // 如果数据不为空 |
| | | if (fileList) { |
| | | // FileReader是一种异步文件读取机制,结合input:file可以很方便的读取本地文件。 |
| | | let reader = new FileReader(); |
| | | let file = fileList[0]; //拿到第一条数据 |
| | | reader.readAsBinaryString(file)// 将文件以二进制形式读入页面 |
| | | let _this = this //把data里的数据赋值给新的变量 |
| | | // wb:wordbook 工作表 |
| | | reader.addEventListener("load", function (e) { |
| | | |
| | | var data = e.target.result; //读取成功后result中的数据 |
| | | var wb = XLSX.read(data, { type: "binary" }); |
| | | let sheetName = wb.SheetNames[0]; //是获取Sheets中第一个Sheet的名字 |
| | | let sheets = wb.Sheets[sheetName]; |
| | | let dataList2 = JSON.stringify(XLSX.utils.sheet_to_json(sheets)); |
| | | let dataList3 = (JSON.parse(dataList2)); |
| | | _this.dataList = dataList3;//赋值 |
| | | //console.log(dataList2); |
| | | console.log(dataList3); |
| | | |
| | | }) |
| | | } |
| | | }, |
| | | Add() { |
| | | |
| | | }, |
| | | importData() { |
| | | //let tbdata=JSON.stringify(this.dataList); |
| | | let tbdata=this.dataList; |
| | | console.log(tbdata); |
| | | importData(tbdata).then(res => { |
| | | if (res.data.message == 200) { |
| | | this.$message.success(this.$t('Operation successful')); |
| | | } |
| | | }); |
| | | }, |
| | | del() { |
| | | |
| | | this.StorageCageAdd = true; |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | </script> |