| | |
| | | } |
| | | |
| | | .occupy { |
| | | height: 100%; |
| | | width: 10%; |
| | | height: 50%; |
| | | width: 45%; |
| | | background-color: white; |
| | | margin: 0px 8px 0px 8px; |
| | | border: 1px #EBEEF5 solid; |
| | |
| | | } |
| | | |
| | | .blocks { |
| | | background-image: url('../../img/xmjc.png'); |
| | | margin: 0 auto; |
| | | background-image: url('../../img/device.png'); |
| | | /* margin: 0 auto; */ |
| | | /* clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%); */ |
| | | background-repeat: no-repeat; |
| | | background-attachment: local; |
| | | min-height: 55vh; |
| | | width: 1400px; |
| | | max-width: 94vw; |
| | | background-size: 1200px 510px; |
| | | margin: 0 auto; |
| | | min-height: 118vh; |
| | | width: 1124px; |
| | | 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 { |
| | |
| | | font-size: 25px; |
| | | } |
| | | |
| | | /* |
| | | @media screen and (min-width: 1900px) { |
| | | .blocks { |
| | | transform: scale(1.5, 1.05); |
| | | width: 1210px; |
| | | } |
| | | } |
| | | } */ |
| | | |
| | | .el-message-box__btns { |
| | | padding: 0px 15px 0; |
| | |
| | | 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 }} |
| | |
| | | </label> |
| | | </div> |
| | | </div> |
| | | <div style="display:flex;justify-content: space-around;width: 9zz5%;margin: 0 auto;"> |
| | | <el-button type="primary" @click="showform(1)" :disabled="SoftEmergencyStopState" |
| | | <div style="display:flex;justify-content: space-around;width: 95%;margin: 0 auto;"> |
| | | <el-button type="primary" @click="showform(1)" :disabled="SoftEmergencyStopState" style="z-index: 999;" |
| | | :class="SoftEmergencyStopState == true ? 'hide' : ''"> |
| | | {{ $t('Import order') }}</el-button> |
| | | <el-button type="primary" @click="showform(2)" :disabled="SoftEmergencyStopState" |
| | | |
| | | <el-button type="primary" @click="showform(2)" :disabled="SoftEmergencyStopState" style="z-index: 999;" |
| | | :class="SoftEmergencyStopState == true ? 'hide' : ''"> |
| | | {{ $t('Measure') }}</el-button> |
| | | <el-button type="primary" @click="showform(2)" :disabled="SoftEmergencyStopState" |
| | | |
| | | <el-button type="primary" @click="showform(3)" :disabled="SoftEmergencyStopState" style="z-index: 999;" |
| | | :class="SoftEmergencyStopState == true ? 'hide' : ''"> |
| | | {{ $t('StorageCage') }}</el-button> |
| | | <el-button type="primary" @click="showform(2)" :disabled="SoftEmergencyStopState" |
| | | <el-button type="primary" @click="showform(4)" :disabled="SoftEmergencyStopState" style="z-index: 999;" |
| | | :class="SoftEmergencyStopState == true ? 'hide' : ''"> |
| | | {{ $t('Task queue') }}</el-button> |
| | | </div> |
| | | <div> |
| | | <el-table :data="this.tasklist1" border style="width: 100%"> |
| | | <el-table-column :min-width="180" prop="glassId" :label="$t('Outfeed glass barcode')"></el-table-column> |
| | | <el-table-column :min-width="130" prop="cage" :label="$t('Cage No')"></el-table-column> |
| | | <el-table-column :min-width="130" prop="cell" :label="$t('Slot No')"></el-table-column> |
| | | <el-table-column :min-width="130" prop="orderId" :label="$t('Order No')"></el-table-column> |
| | | <el-table-column prop="orderId" :label="$t('List No')"></el-table-column> |
| | | <el-table-column prop="orderId" :label="$t('Box No')"></el-table-column> |
| | | <el-table-column :min-width="150" prop="lengthWidth" :label="$t('Dim')"> |
| | | <template slot-scope='scope'> |
| | | {{ scope.row.glasswidthmm }}*{{ scope.row.glassheightmm }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column :label="$t('Terminate Task')"> |
| | | <template slot-scope='scope'> |
| | | <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" |
| | | @click="endtask(1, scope.row.glassId, scope.row.cell)">{{ $t('Terminate Task') |
| | | }}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-table :data="this.tasklist2" border style="width: 100%"> |
| | | <el-table-column :min-width="180" prop="glassId" :label="$t('Infeed glass barcode')"></el-table-column> |
| | | <el-table-column :min-width="130" prop="cage" :label="$t('Cage No')"></el-table-column> |
| | | <el-table-column :min-width="130" prop="cell" :label="$t('Slot No')"></el-table-column> |
| | | <el-table-column :min-width="130" prop="orderId" :label="$t('Order No')"></el-table-column> |
| | | <el-table-column prop="orderId" :label="$t('List No')"></el-table-column> |
| | | <el-table-column prop="orderId" :label="$t('Box No')"></el-table-column> |
| | | <el-table-column :min-width="150" prop="lengthWidth" :label="$t('Dim')"> |
| | | <template slot-scope='scope'> |
| | | {{ scope.row.glasswidthmm }}*{{ scope.row.glassheightmm }} |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column :label="$t('Terminate Task')"> |
| | | <template slot-scope='scope'> |
| | | <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" |
| | | @click="endtask(0, scope.row.glassId, scope.row.cell)">{{ $t('Terminate Task') |
| | | }}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div style="padding: 10px;display: flex;height:85px;"> |
| | | <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> |
| | | </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> |
| | | </el-col> |
| | | </div> |
| | | </div> |
| | | </el-main> |
| | | <el-dialog :visible.sync="Importorder" :title="$t('Importorder')" |
| | | top="5vh"> |
| | | </el-dialog> |
| | | <el-dialog :visible.sync="Measure" :title="$t('Measure')" |
| | | top="5vh"> |
| | | </el-dialog> |
| | | <el-dialog :visible.sync="StorageCage" :title="$t('StorageCage')" |
| | | top="5vh"> |
| | | </el-dialog> |
| | | <el-dialog :visible.sync="Taskqueue" :title="$t('Taskqueue')" |
| | | top="5vh"> |
| | | </el-dialog> |
| | | <!-- <el-footer> |
| | | <div class="blocks" style="position: relative;"> |
| | | <div style="display:flex;position: absolute;float:left;z-index: 999;top:102px;left:237px;"> |
| | | <div :class="getStatusClass(item.state)" v-for="(item, index) in cagelist1" :key="item['date']" |
| | | :style="{ height: 35 * item['glassWidth'] + 'px', left: 3.07 * index + Math.abs(item['cage'] - 10) * 6.8 + 'px' }" |
| | | @click="showcageinfo(item['cage'])"></div> |
| | | </div> |
| | | <div style="display:flex;position: absolute;float:left;z-index: 999;top:102px;left:640px;"> |
| | | <div :class="getStatusClass(item.state)" v-for="(item, index) in cagelist2" :key="item['date']" |
| | | :style="{ height: 35 * item['glassWidth'] + 'px', left: 3.07 * index + Math.abs(item['cage'] - 5) * 6.8 + 'px' }" |
| | | @click="showcageinfo(item['cage'])"></div> |
| | | </div> |
| | | <div style="display:flex;position: absolute;float:left;z-index: 999;top:139px;left:237px;"> |
| | | <div :class="getStatusClass(item.state)" v-for="(item, index) in cagelist3" :key="item['date']" |
| | | :style="{ height: 35 * item['glassWidth'] + 'px', top: item['width'] * 35 - 35 + 'px', left: 3.07 * index + Math.abs(item['cage'] - 10) * 6.8 + 'px' }" |
| | | @click="showcageinfo(item['cage'])"> |
| | | <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 style="display:flex;position: absolute;float:left;z-index: 999;top:139px;left:640px;"> |
| | | <div :class="getStatusClass(item.state)" v-for="(item, index) in cagelist4" :key="item['date']" |
| | | :style="{ height: 35 * item['glassWidth'] + 'px', top: item['width'] * 35 - 35 + 'px', left: 3.07 * index + Math.abs(item['cage'] - 5) * 6.8 + 'px' }" |
| | | @click="showcageinfo(item['cage'])"></div> |
| | | </div> |
| | | <div class="blue gezi" |
| | | :style="{ display: 'flex', position: 'absolute', float: 'left', top: 28 + 'px', left: 1050 + 'px', height: loadglassheight1 + 'px', width: 4 + 'px' }"> |
| | | </div> |
| | | <div class="blue gezi" |
| | | :style="{ display: 'flex', position: 'absolute', float: 'left', top: 105 + 'px', left: 1050 + 'px', height: loadglassheight2 + 'px', width: 4 + 'px' }"> |
| | | </div> |
| | | <div> |
| | | <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;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['cell'] |
| | | }}</span> |
| | | </el-col> |
| | | </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="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 prop="storageCage.glassHeight" :label="$t('Height')"></el-table-column> |
| | | <el-table-column prop="storageCage.thickness" :label="$t('Thickness')"></el-table-column> |
| | | <el-table-column prop="storageCage.films" :label="$t('Films')"></el-table-column> |
| | | <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(scope.row.id)">{{ $t('Complete') }}</el-button> |
| | | </template> |
| | | </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="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 prop="storageCage.glassHeight" :label="$t('Height')"></el-table-column> |
| | | <el-table-column prop="storageCage.thickness" :label="$t('Thickness')"></el-table-column> |
| | | <el-table-column prop="storageCage.films" :label="$t('Films')"></el-table-column> |
| | | |
| | | <div class="blocks-img2"></div> |
| | | <div class="blocks-img3"></div> |
| | | |
| | | <div class="device" :style="'top: 25px;left: 1027px;background-color: ' + ShowDeviceList(0) + ';'">D01</div> |
| | | <div class="device" :style="'top: 105px;left: 1027px;background-color: ' + ShowDeviceList(1) + ';'">D02 |
| | | </div> |
| | | <div class="device" :style="'top: 102px;left: 605px;background-color: ' + ShowDeviceList(2) + ';'">B01</div> |
| | | <div class="device" :style="'top: 102px;left: 197px;background-color: ' + ShowDeviceList(3) + ';'">B02</div> |
| | | <div class="blocks-img" :style="'left:' + car2 + 'px;top:175px;background-color:' + ShowDeviceList(4) + ''"> |
| | | A01</div> |
| | | <div class="blocks-img" :style="'left:' + car1 + 'px;top:16px;background-color:' + ShowDeviceList(5) + ''"> |
| | | A02</div> |
| | | <div class="device" :style="'top: 108px;left: 150px;background-color: ' + ShowDeviceList(6) + ';'">D03</div> |
| | | <div class="device" :style="'top: 185px;left: 150px;background-color: ' + ShowDeviceList(7) + ';'">D04</div> |
| | | <div class="device" :style="'top: 262px;left: 150px;background-color: ' + ShowDeviceList(8) + ';'">D05</div> |
| | | <div class="device" :style="'top: 339px;left: 150px;background-color: ' + ShowDeviceList(9) + ';'">D06</div> |
| | | |
| | | <div class="device" :style="'top: 395px;left: 90px;background-color: ;'">E01</div> |
| | | <div class="device" :style="'top: 395px;left: 243px;background-color: ;'">E02</div> |
| | | <div class="device" :style="'top: 395px;left: 395px;background-color: ;'">E03</div> |
| | | <div class="device" :style="'top: 345px;left: 655px;background-color: ;'">E04</div> |
| | | <div class="device" :style="'top: 345px;left: 810px;background-color: ;'">E05</div> |
| | | <div class="device" :style="'top: 345px;left: 960px;background-color: ;'">E06</div> |
| | | |
| | | <div class="device" :style="'top: 345px;left: 525px;background-color: ;'">J01</div> |
| | | <div class="device" :style="'top: 345px;left: 1100px;background-color: ;'">F01</div> |
| | | <div class="device" :style="'top: 275px;left: 1100px;background-color: ;'">G01</div> |
| | | |
| | | <div class="glass D01" style="top: 39px;left: 1055px;position: absolute;">{{ ShowGlassIdList(0) }} |
| | | <br /> |
| | | <el-button type="primary" size="mini" @click="ClearGlassId('DB101.9.2', 0)"> |
| | | {{ $t('Clear') }}</el-button> |
| | | </div> |
| | | <div class="glass D02" style="top: 117px;left: 1055px;position: absolute;">{{ ShowGlassIdList(1) }} |
| | | <br /> |
| | | <el-button type="primary" size="mini" @click="ClearGlassId('DB101.9.2', 1)"> |
| | | {{ $t('Clear') }}</el-button> |
| | | </div> |
| | | <div class="glass B01" style="top: 270px;left: 640px;position: absolute;"> |
| | | B01:{{ ShowGlassIdList(2) }} |
| | | <br /> |
| | | <el-button type="primary" size="mini" @click="ClearGlassId('DB101.10.2', 2)"> |
| | | {{ $t('Clear') }}</el-button> |
| | | </div> |
| | | <div class="glass B02" style="top: 315px;left: 640px;position: absolute;">B02:{{ ShowGlassIdList(3) }} |
| | | <br /> |
| | | <el-button type="primary" size="mini" @click="ClearGlassId('DB101.10.3', 3)"> |
| | | {{ $t('Clear') }}</el-button> |
| | | </div> |
| | | <div class="glass A01" style="top: 270px;left: 289px;position: absolute;"> |
| | | A01.1:{{ ShowGlassIdList(4) }} |
| | | <br /> |
| | | <el-button type="primary" size="mini" @click="ClearGlassId('DB101.10.0', 4)"> |
| | | {{ $t('Clear') }}</el-button> |
| | | </div> |
| | | |
| | | <div class="glass A01" style="top: 315px;left: 289px;position: absolute;">A01.2:{{ ShowGlassIdList(5) }} |
| | | <br /> |
| | | <el-button type="primary" size="mini" @click="ClearGlassId('DB101.10.0', 5)"> |
| | | {{ $t('Clear') }}</el-button> |
| | | </div> |
| | | |
| | | <div class="glass A02" style="top: 360px;left: 289px;position: absolute;">A02:{{ ShowGlassIdList(6) }} |
| | | <br /> |
| | | <el-button type="primary" size="mini" @click="ClearGlassId('DB101.10.1', 6)"> |
| | | {{ $t('Clear') }}</el-button> |
| | | </div> |
| | | |
| | | <div class="glass D03" style="top: 122px;left: 42px;position: absolute;"> |
| | | {{ ShowGlassIdList(7) }} |
| | | <br /> |
| | | <el-button type="primary" size="mini" @click="ClearGlassId('DB101.9.4', 7)"> |
| | | {{ $t('Clear') }}</el-button> |
| | | </div> |
| | | <div class="glass D04" style="top: 198px;left: 42px;position: absolute;"> |
| | | {{ ShowGlassIdList(8) }} |
| | | <br /> |
| | | <el-button type="primary" size="mini" @click="ClearGlassId('DB101.9.5', 8)"> |
| | | {{ $t('Clear') }}</el-button> |
| | | </div> |
| | | <div class="glass D05" style="top: 275px;left: 42px;position: absolute;"> |
| | | {{ ShowGlassIdList(9) }} |
| | | <br /> |
| | | <el-button type="primary" size="mini" @click="ClearGlassId('DB101.9.6', 9)"> |
| | | {{ $t('Clear') }}</el-button> |
| | | </div> |
| | | <div class="glass D06" style="top: 352px;left: 42px;position: absolute;"> |
| | | {{ ShowGlassIdList(10) }} |
| | | <br /> |
| | | <el-button type="primary" size="mini" @click="ClearGlassId('DB101.9.5', 10)"> |
| | | {{ $t('Clear') }}</el-button> |
| | | <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(scope.row.id)">{{ $t('Complete') }}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | </el-footer> --> |
| | | |
| | | |
| | | </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 style="height: 780px;"> |
| | | <!--功能--> |
| | | <div> |
| | | <el-button type="primary" @click="ManualMatching()" :disabled="SoftEmergencyStopState" |
| | | 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: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-dialog :visible.sync="StorageCage" :title="$t('StorageCage')" top="5vh"> |
| | | <el-table :data="this.StorageCageInfo" :height="700" border style="width: 100%;overflow: auto;"> |
| | | <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="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-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-dialog> |
| | | |
| | | <el-dialog :visible.sync="Taskqueue" :title="$t('Task queue')" top="5vh"> |
| | | <el-table :data="tableData1" style="width: 100%;margin-bottom: 20px;" row-key="id" border lazy |
| | | default-expand-all :tree-props="{ children: 'glassinfo', hasChildren: 'hasChildren' }"> |
| | | <el-table-column prop="flowcard" :label="$t('Order')"> |
| | | </el-table-column> |
| | | <el-table-column prop="glasstype" :label="$t('GlassType')"> |
| | | </el-table-column> |
| | | <el-table-column prop="number" :label="$t('Order No')"> |
| | | </el-table-column> |
| | | <el-table-column prop="cageno" :label="$t('No Of Cage')"> |
| | | </el-table-column> |
| | | <el-table-column prop="finishnumber" :label="$t('Finish No')"> |
| | | </el-table-column> |
| | | <el-table-column prop="mateid" :label="$t('Mate No')"> |
| | | </el-table-column> |
| | | <el-table-column prop="films" :label="$t('Films')"> |
| | | </el-table-column> |
| | | <el-table-column prop="thickness" :label="$t('Thickness')"> |
| | | </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="state" :label="$t('Task State')"> |
| | | <template slot-scope='scope'> |
| | | {{ 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="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, 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" |
| | | @click="ModeChange(scope.row.flowcard, scope.row.method)"> |
| | | {{ $t('Mode Change') }}</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%;" /> |
| | | <label for="">{{ $t('Height') }}</label> |
| | | <el-input v-model="StorageCageForm.height" 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-input v-model="StorageCageForm.films" autocomplete="off" style="width:15%;" /> |
| | | <el-button @click="SelectGlassInfo()" type="primary"> |
| | | {{ $t('Select') }}</el-button> |
| | | </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> |
| | | <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 :label="$t('Operate')"> |
| | | <template slot-scope='scope'> |
| | | <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" |
| | | @click="StorageCageAddGlass(scope.$index)"> |
| | | {{ $t('Add') }}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-dialog> |
| | | |
| | | </el-container> |
| | | </template> |
| | | <script> |
| | | |
| | | import { |
| | | home, home2, UpdateTask, SelectCageInfo, DeleteByGlassID, |
| | | SelectPassword, Disabled, AddOutSliceS, SelectPermissionByUserName, currentUsername, CompleteQueue, |
| | | isAllowReorderings, WriteGlassID, ClearGlassId, CloseForm7, SoftEmergencyStop, SwitchScanMethod |
| | | home, SelectCageInfo, |
| | | Disabled, SelectPermissionByUserName, currentUsername, CompleteQueue, |
| | | isAllowReorderings, |
| | | |
| | | 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, |
| | | confirm2: false, |
| | | insertcage: 0, |
| | |
| | | dialogFormVisible: false, |
| | | dialogFormVisible1: false, |
| | | dialogFormVisible2: false, |
| | | Importorder:false, |
| | | Measure:false, |
| | | StorageCage:false, |
| | | Taskqueue:false, |
| | | form: { |
| | | orderId: "", |
| | | glassId: "", |
| | | Importorder: false, |
| | | Measure: false, |
| | | StorageCage: false, |
| | | Taskqueue: false, |
| | | StorageCageAdd: false, |
| | | StorageCageInfo: [], |
| | | StorageCageForm: { |
| | | width: "", |
| | | height: "", |
| | | width: "" |
| | | thickness: "", |
| | | films: "" |
| | | }, |
| | | StorageCageAddInfo: [], |
| | | TaskqueueInfo: [], |
| | | cell: "", |
| | | form1: {}, |
| | | form2: {}, |
| | | form3: {}, |
| | |
| | | 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() { |
| | |
| | | } |
| | | , |
| | | methods: { |
| | | showform(i){ |
| | | if(i==1){ |
| | | this.Importorder=true; |
| | | }else if(i==2){ |
| | | this.Measure=true; |
| | | }else if(i==3){ |
| | | this.StorageCage=true; |
| | | }else if(i==4){ |
| | | this.Taskqueue=true; |
| | | showform(i) { |
| | | if (i == 1) { |
| | | this.Importorder = true; |
| | | } else if (i == 2) { |
| | | this.Measure = true; |
| | | } else if (i == 3) { |
| | | this.StorageCage = true; |
| | | } else if (i == 4) { |
| | | this.Taskqueue = true; |
| | | } |
| | | }, |
| | | init() { |
| | |
| | | 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.cagelist3 = obj.cagelist3[0]; |
| | | this.cagelist4 = obj.cagelist4[0]; |
| | | this.tasklist1 = obj.tasklist1[0]; |
| | | this.tasklist2 = obj.tasklist2[0]; |
| | | this.tasklist2 = obj.StoragTaskeTaskFeed[0]; |
| | | this.tasklist1 = obj.StoragTaskeTaskOut[0]; |
| | | this.alarm = obj.alarmmg[0]; |
| | | |
| | | |
| | | this.tableData1 = obj.OrderTask[0]; |
| | | this.LastQueue = obj.LastQueue[0]; |
| | | |
| | | |
| | | //是否允许出片 |
| | |
| | | this.cageinfo = res.data.cageinfo; |
| | | }); |
| | | } |
| | | if (obj.StorageCageInfo != null) { |
| | | this.StorageCageInfo = obj.StorageCageInfo[0]; |
| | | } |
| | | this.$forceUpdate(); |
| | | |
| | | }.bind(this); |
| | |
| | | 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; |
| | | }); |
| | | //加载确认密码 |
| | | SelectPassword().then(res => { |
| | | this.password = res.data.password; |
| | | }); |
| | | }, |
| | | |
| | | //结束进/出片任务 |
| | | endtask(type, glassid, cell) { |
| | | this.$prompt(this.$t('Are you sure to perform this operation ?'), this.$t('prompt'), { |
| | | inputType: 'password', |
| | | inputPlaceholder: this.$t('Please enter the password'), |
| | | confirmButtonText: this.$t('Yes'), |
| | | cancelButtonText: this.$t('No'), |
| | | type: 'warning' |
| | | }).then(({ value }) => { |
| | | if (this.password == value) { |
| | | UpdateTask(type, glassid, cell).then(res => { |
| | | if (res.data.message3 == 200) { |
| | | this.$message.success(this.$t('Operation successful')); |
| | | } |
| | | }); |
| | | } else { |
| | | this.$message.error(this.$t('Password error'));//密码错误 |
| | | } |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: this.$t('Operation canceled') |
| | | }); |
| | | }); |
| | | }, |
| | | //删除理片笼玻璃 |
| | | deleteglass(glassid, state) { |
| | | this.$prompt(this.$t('Are you sure to perform this operation ?'), this.$t('prompt'), { |
| | | inputType: 'password', |
| | | inputPlaceholder: this.$t('Please enter the password'), |
| | | confirmButtonText: this.$t('Yes'), |
| | | cancelButtonText: this.$t('No'), |
| | | type: 'warning' |
| | | }).then(({ value }) => { |
| | | if (this.password == value) { |
| | | if (state == 1) { |
| | | DeleteByGlassID(glassid).then(res => { |
| | | if (res.data.message3 == 200) { |
| | | this.$message.success(this.$t('Operation successful')); |
| | | } |
| | | }); |
| | | } else { |
| | | this.$message.error(this.$t('No delete allowed')); |
| | | //添加理片笼玻璃 |
| | | StorageCageAddGlass(index) { |
| | | if (this.Measuermode == true) { |
| | | StorageCageAddGlass(this.cell, this.StorageCageAddInfo[index]).then(res => { |
| | | if (res.data.message == 200) { |
| | | this.$message.success(this.$t('Operation successful')); |
| | | this.StorageCageAdd=false; |
| | | } |
| | | } else { |
| | | this.$message.error(this.$t('Password error'));//密码错误 |
| | | } |
| | | |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: this.$t('Operation canceled') |
| | | }) |
| | | } else { |
| | | UpdateQueue(this.StorageCageAddInfo[index]).then(res => { |
| | | if (res.data.message == 200) { |
| | | this.$message.success(this.$t('Operation successful')); |
| | | } else { |
| | | this.$message.error(this.$t('Operation failed')); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | }, |
| | | //领取/暂停任务 |
| | | ClaimTasks(flowcard, state, line) { |
| | | ClaimTasks(flowcard, state, line).then(res => { |
| | | if (res.data.message == 200) { |
| | | this.$message.success(this.$t('Operation successful')); |
| | | } |
| | | }); |
| | | }, |
| | | //修改出片方式 |
| | | ModeChange(flowcard, method) { |
| | | ModeChange(flowcard, method).then(res => { |
| | | if (res.data.message == 200) { |
| | | this.$message.success(this.$t('Operation successful')); |
| | | } |
| | | }); |
| | | }, |
| | | //查询玻璃信息 |
| | | SelectGlassInfo() { |
| | | SelectGlassInfo(this.StorageCageForm.width, this.StorageCageForm.height, this.StorageCageForm.thickness, this.StorageCageForm.films).then(res => { |
| | | this.StorageCageAddInfo = res.data.StorageCageAddInfo; |
| | | }) |
| | | }, |
| | | //完成进/出片任务 |
| | | 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) { |
| | | num = 0; |
| | | } |
| | | UpdateStroageCageByCell(cell, num).then(res => { |
| | | if (res.data.message3 == 200) { |
| | | this.$message.success(this.$t('Operation successful')); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | }, |
| | | //启用//理片笼禁用 |
| | | UpdateDisabled(cage, cell, disabled) { |
| | |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | |
| | | //改变每页容纳的数据量 |
| | | handleSizeChange: function (size) { |
| | | this.pagesize = size; |
| | |
| | | handleCurrentChanges: function (currentPage) { |
| | | this.currentPages = currentPage; |
| | | }, |
| | | |
| | | |
| | | //是否允许出片队列排序 |
| | | isAllowReorderings() { |
| | | isAllowReorderings(!this.isAllowReordering, this.OutSlice).then(res => { |
| | |
| | | } |
| | | } |
| | | }, |
| | | //获取设备显示状态 |
| | | 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) { |
| | | const specialChars = /[^\w\s]/g; |
| | | return this.GlassIdList[num].replace(specialChars, ""); |
| | | } |
| | | }, |
| | | //人工匹配 |
| | | 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> |
| | | </script> |