| | |
| | | </div> |
| | | </div> |
| | | <div style="display:flex;justify-content: space-around;width: 9zz5%;margin: 0 auto;"> |
| | | <!-- <el-input style="width:15%;" :placeholder="$t('Enter the glass barcode')" v-model="glassid1" |
| | | :class="ManuallyInfeedGlass == true ? 'hide' : ''"></el-input> --> |
| | | <el-button type="primary" @click="SelectGlassByGlassIDs()" :disabled="ManuallyInfeedGlass" |
| | | :class="ManuallyInfeedGlass == true ? 'hide' : ''"> |
| | | {{ $t('Manually Infeed Glass') }}</el-button> |
| | | <el-button type="primary" @click="showform2()" :disabled="OrderInfo" |
| | | :class="OrderInfo == true ? 'hide' : ''">{{ $t('Order Info') |
| | | }}</el-button> |
| | | <el-button type="primary" @click="showform6()" :disabled="OutingQueue" |
| | | :class="OutingQueue == true ? 'hide' : ''"> |
| | | {{ $t('Outing Queue') }}</el-button> |
| | | <el-button type="primary" @click="TaskStop(0)" :disabled="OutingQueue" |
| | | :class="StopTask == true ? 'hide' : ''"> |
| | | {{ $t('Terminate Feeding') }}</el-button> |
| | | <el-button type="primary" @click="TaskStop(1)" :disabled="StopTask" :class="StopTask == true ? 'hide' : ''"> |
| | | {{ $t('Terminate Outing') }}</el-button> |
| | | <el-button type="primary" @click="SoftEmergencyStop()" :disabled="SoftEmergencyStopState" |
| | | <el-button type="primary" @click="showform(1)" :disabled="SoftEmergencyStopState" |
| | | :class="SoftEmergencyStopState == true ? 'hide' : ''"> |
| | | {{ $t('SoftEmergencyStop') }}</el-button> |
| | | <!-- <el-input style="width:15%;" :placeholder="$t('Enter the Order No')" v-model="order"></el-input> |
| | | <el-button type="warning" @click="showform1();">{{ $t('Exit the glass by order number') }}</el-button> --> |
| | | {{ $t('Import order') }}</el-button> |
| | | <el-button type="primary" @click="showform(2)" :disabled="SoftEmergencyStopState" |
| | | :class="SoftEmergencyStopState == true ? 'hide' : ''"> |
| | | {{ $t('Measure') }}</el-button> |
| | | <el-button type="primary" @click="showform(2)" :disabled="SoftEmergencyStopState" |
| | | :class="SoftEmergencyStopState == true ? 'hide' : ''"> |
| | | {{ $t('StorageCage') }}</el-button> |
| | | <el-button type="primary" @click="showform(2)" :disabled="SoftEmergencyStopState" |
| | | :class="SoftEmergencyStopState == true ? 'hide' : ''"> |
| | | {{ $t('Task queue') }}</el-button> |
| | | </div> |
| | | <div> |
| | | <el-table :data="this.tasklist1" border style="width: 100%"> |
| | |
| | | </div> |
| | | </div> |
| | | </el-main> |
| | | <el-footer> |
| | | <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']" |
| | |
| | | <el-button type="primary" size="mini" @click="ClearGlassId('DB101.9.5', 10)"> |
| | | {{ $t('Clear') }}</el-button> |
| | | </div> |
| | | |
| | | |
| | | </div> |
| | | </el-footer> |
| | | <el-dialog :visible.sync="dialogFormVisible" :title="$t('Please confirm the glass information')"> |
| | | <el-form :model="form" label-width="100px" style="padding-right: 30px"> |
| | | <el-form-item :label="$t('Barcode')"> |
| | | <el-input style="width:15%;" :placeholder="$t('Enter the glass barcode')" v-model="glassid"></el-input> |
| | | <el-button type="primary" @click="showform(3)">{{ $t('Query') }}</el-button> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('Barcode')"> |
| | | <el-input v-model="form.glassId" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('Order No')"> |
| | | <el-input v-model="form.orderId" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('List No')"> |
| | | <el-input v-model="form.listId" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('Box No')"> |
| | | <el-input v-model="form.boxId" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('Length')"> |
| | | <el-input v-model="form.glasswidthmm" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('Width')"> |
| | | <el-input v-model="form.glassheightmm" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('Length')"> |
| | | <el-input v-model="form.glasswidth" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('Width')"> |
| | | <el-input v-model="form.glassheight" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | |
| | | </el-form> |
| | | <template #footer> |
| | | <span class="dialog-footer"> |
| | | <!-- <el-button @click="sbumitglassid()" :style="{ display: confirm1 == true ? '' : 'none' }" |
| | | type="primary">{{ |
| | | $t('confirm') }}</el-button> --> |
| | | <el-button @click="FeedInglassid()" :style="{ display: confirm2 == true ? '' : 'none' }" |
| | | type="primary">{{ |
| | | $t('confirm') }}</el-button> |
| | | <el-button @click="cancel()">{{ $t('cancel') }}</el-button> |
| | | </span> |
| | | </template> |
| | | </el-dialog> |
| | | |
| | | <el-dialog :visible.sync="dialogFormVisible1" :title="$t('Please confirm the Ordering Information')"> |
| | | <el-form :model="form1" label-width="100px" style="padding-right: 30px"> |
| | | <el-form-item :label="$t('Order No')"> |
| | | <el-input v-model="form1.order" autocomplete="off" /> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('Number')"> |
| | | <el-input v-model="form1.number" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <template #footer> |
| | | <span class="dialog-footer"> |
| | | <el-button @click="getOrder();" type="primary">{{ $t('confirm') }}</el-button> |
| | | <el-button @click="cancel1()">{{ $t('cancel') }}</el-button> |
| | | </span> |
| | | </template> |
| | | </el-dialog> |
| | | |
| | | <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> |
| | | |
| | | <el-dialog :visible.sync="dialogFormVisible3" :title="$t('Cage Details')" top="5vh"> |
| | | <el-input style="width:15%;" :placeholder="$t('Enter the glass barcode')" v-model="cageglassid"></el-input> |
| | | <el-button type="primary" @click="showcageinfo(1)">{{ $t('Query') }}</el-button> |
| | | <el-table :data="cageinfo.slice((currentPages - 1) * pagesizes, currentPages * pagesizes)" :height="700" border |
| | | style="width: 100%;overflow: auto;"> |
| | | <el-table-column :min-width="50" prop="cage" :label="$t('Cage No')"></el-table-column> |
| | | <el-table-column :min-width="50" prop="cell" :label="$t('Slot No')"></el-table-column> |
| | | <el-table-column :min-width="55" prop="tier" :label="$t('The Side')"> |
| | | <template slot-scope='scope'> |
| | | {{ |
| | | scope.row.tier == 1 ? $t('Inside') : $t('Outside') |
| | | }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column :min-width="145" prop="glassId" :label="$t('Barcode')"></el-table-column> |
| | | <el-table-column :min-width="80" prop="orderId" :label="$t('Order No')"></el-table-column> |
| | | <el-table-column :min-width="80" prop="listId" :label="$t('List No')"></el-table-column> |
| | | <el-table-column :min-width="50" prop="boxId" :label="$t('Box No')"></el-table-column> |
| | | <el-table-column :min-width="80" prop="state" :label="$t('Glass State')"> |
| | | <template slot-scope='scope'> |
| | | {{ |
| | | scope.row.state == 1 ? $t('Normal') : scope.row.state == 2 ? $t('Entering') : scope.row.state == 3 ? |
| | | $t('Outing') : "" |
| | | }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column :min-width="150" prop="lengthWidth" :label="$t('Dim')"> |
| | | <template slot-scope='scope'> |
| | | {{ scope.row.glassWidthMm }}{{ scope.row.glassWidthMm > 0 ? "*" : "" }}{{ scope.row.glassHeightMm }} |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column :min-width="80" prop="lengthWidth" :label="$t('State')"> |
| | | <template slot-scope='scope'> |
| | | {{ scope.row.disabled == 0 ? $t('Enable') : $t('Disable') }} |
| | | </template> |
| | | </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;" |
| | | :disabled="scope.row.state == 1 ? false : true" |
| | | @click="deleteglass(scope.row.glassId, scope.row.state)">{{ $t('Delete') }}</el-button> |
| | | <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" |
| | | :disabled="scope.row.state == 1 ? false : true" |
| | | @click="outglass(scope.row.glassId, scope.row.state)">{{ $t('Out') }}</el-button> |
| | | <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.glassId != null ? true : false" |
| | | @click="insertglass(scope.row.cage, scope.row.cell, scope.row.tier)">{{ $t('Add') |
| | | }}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <el-pagination :style="'margin-top:-2px'" @size-change="handleSizeChanges" |
| | | @current-change="handleCurrentChanges" :pager-count="7" :current-page="currentPages" |
| | | :page-sizes="[42, 84, 126, 420]" :page-size="pagesizes" layout="total, sizes, prev, pager, next, jumper" |
| | | :total="cageinfo.length > 0 ? cageinfo.length : null" background style="float: right; margin-top: 20px"> |
| | | </el-pagination> |
| | | |
| | | </el-dialog> |
| | | |
| | | <el-dialog :visible.sync="dialogFormVisible4" :title="$t('Order Info')" top="5vh"> |
| | | <el-input style="width:15%;" :placeholder="$t('Enter the Order No')" v-model="orderid"></el-input> |
| | | <el-button type="primary" @click="selectglassinfo()">{{ $t('Query') }}</el-button> |
| | | <el-table :data="GlassInfo.slice((currentPage - 1) * pagesize, currentPage * pagesize) |
| | | " :height="700" border style="width: 100%;overflow: auto;"> |
| | | <el-table-column prop="barcode" :label="$t('Barcode')"></el-table-column> |
| | | <el-table-column prop="ordernumber" :label="$t('Order No')"></el-table-column> |
| | | <el-table-column prop="listnumber" :label="$t('List No')"></el-table-column> |
| | | <el-table-column prop="boxnumber" :label="$t('Box No')"></el-table-column> |
| | | <el-table-column prop="frameBarcode" :label="$t('Frame No')"></el-table-column> |
| | | <el-table-column prop="glasslength" :label="$t('Length')"></el-table-column> |
| | | <el-table-column prop="glassheight" :label="$t('Width')"></el-table-column> |
| | | </el-table> |
| | | <el-pagination :style="'margin-top:-2px'" @size-change="handleSizeChange" @current-change="handleCurrentChange" |
| | | :pager-count="7" :current-page="currentPage" :page-sizes="[5, 10, 15, 20]" :page-size="pagesize" |
| | | layout="total, sizes, prev, pager, next, jumper" :total="GlassInfo.length > 0 ? GlassInfo.length : null" |
| | | background style="float: right; margin-top: 20px"> |
| | | </el-pagination> |
| | | </el-dialog> |
| | | <el-dialog :visible.sync="dialogFormVisible5" :title="$t('Please confirm the glass information')"> |
| | | <el-form :model="form" label-width="100px" style="padding-right: 30px"> |
| | | <div style="display: flex;justify-content: center;"> |
| | | <el-form-item> |
| | | {{ $t('Confirm State') }}:{{ this.isConfirm == true ? $t('Allow') : $t('Not Allow') }} |
| | | <el-button type="primary" @click="isConfirmState()"> |
| | | {{ this.isConfirm == true ? $t('Not Allow') : $t('Allow') }}</el-button> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | {{ $t('Current State') }}:{{ this.Scanningmethod == false ? $t('Automatic') : $t('Hand Movement') }} |
| | | <el-button type="primary" @click="SwitchScanMethod()">{{ $t('Switch') |
| | | }}</el-button> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-input style="width:70%;" maxlength="13" :placeholder="$t('Enter the glass barcode')" |
| | | v-model="glassid1"></el-input> |
| | | <el-button type="primary" :disabled="!Scanningmethod" @click="WriteGlassID()">{{ $t('Add') |
| | | }}</el-button> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | {{ $t('Barcode') }}: |
| | | <el-input style="width:70%;" maxlength="14" :disabled="true" v-model="CurrrentGlassId"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | <div style="display: flex;justify-content: space-around;"> |
| | | <label for="">{{ $t('Upper film position') }}</label> |
| | | |
| | | <label for="">{{ $t('Scan Code Point') }}</label> |
| | | </div> |
| | | <div style="display: flex;justify-content: space-around;height: 40px;"> |
| | | <label for="">{{ $t('current Information') }}</label> |
| | | <label for="">{{ $t('Modify Information') }}</label> |
| | | <label for="">{{ $t('current Information') }}</label> |
| | | <label for="">{{ $t('Modify Information') }}</label> |
| | | </div> |
| | | |
| | | <div style="display: flex;justify-content: space-around;"> |
| | | <el-form-item :label="$t('Barcode')"> |
| | | <el-input v-model="form2.glassId" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('Barcode')"> |
| | | <el-input v-model="form4.glassId" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('Barcode')"> |
| | | <el-input v-model="form3.glassId" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('Barcode')"> |
| | | <el-input v-model="form5.glassId" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | </div> |
| | | <div style="display: flex;justify-content: space-around;"> |
| | | <el-form-item :label="$t('Order No')"> |
| | | <el-input v-model="form2.orderId" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('Order No')"> |
| | | <el-input v-model="form4.orderId" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('Order No')"> |
| | | <el-input v-model="form3.orderId" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('Order No')"> |
| | | <el-input v-model="form5.orderId" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | </div> |
| | | <div style="display: flex;justify-content: space-around;"> |
| | | <el-form-item :label="$t('List No')"> |
| | | <el-input v-model="form2.listId" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('List No')"> |
| | | <el-input v-model="form4.listId" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('List No')"> |
| | | <el-input v-model="form3.listId" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('List No')"> |
| | | <el-input v-model="form5.listId" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | </div> |
| | | <div style="display: flex;justify-content: space-around;"> |
| | | <el-form-item :label="$t('Box No')"> |
| | | <el-input v-model="form2.boxId" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('Box No')"> |
| | | <el-input v-model="form4.boxId" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('Box No')"> |
| | | <el-input v-model="form3.boxId" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('Box No')"> |
| | | <el-input v-model="form5.boxId" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | </div> |
| | | <div style="display: flex;justify-content: space-around;"> |
| | | <el-form-item :label="$t('Length')"> |
| | | <el-input v-model="form2.glasswidthmm" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('Length')"> |
| | | <el-input v-model="form4.glasswidthmm" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('Length')"> |
| | | <el-input v-model="form3.glasswidthmm" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('Length')"> |
| | | <el-input v-model="form5.glasswidthmm" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | </div> |
| | | <div style="display: flex;justify-content: space-around;"> |
| | | <el-form-item :label="$t('Width')"> |
| | | <el-input v-model="form2.glassheightmm" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('Width')"> |
| | | <el-input v-model="form4.glassheightmm" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('Width')"> |
| | | <el-input v-model="form3.glassheightmm" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('Width')"> |
| | | <el-input v-model="form5.glassheightmm" readonly autocomplete="off" /> |
| | | </el-form-item> |
| | | </div> |
| | | <div style="display: flex;justify-content: right;"> |
| | | <el-button @click="InsertQueueGlass(1)" style="margin-right: 100px;" type="primary" |
| | | :disabled="disabled1"> |
| | | {{ $t('Confirm') }}</el-button> |
| | | </div> |
| | | </el-form> |
| | | </el-dialog> |
| | | |
| | | <el-dialog :visible.sync="dialogFormVisible6" :title="$t('Outing Queue')" top="5vh"> |
| | | {{ $t('Queue State') }}: |
| | | {{ this.isAllowQueue |
| | | == true ? $t('Start') : $t('Stop') |
| | | }} |
| | | <el-button type="primary" @click="isAllowQueueState()" :disabled="!this.isAllowReordering">{{ this.isAllowQueue |
| | | == true ? $t('Stop') : $t('Start') |
| | | }}</el-button> |
| | | <!-- {{ $t('Sorting State') }}: |
| | | {{ |
| | | this.isAllowReordering == true ? $t('Not Allow') : $t('Allow') |
| | | }} |
| | | <el-button type="primary" @click="isAllowReorderings()" :disabled="this.isAllowQueue">{{ |
| | | this.isAllowReordering == true ? $t('Allow') : $t('Not Allow') |
| | | }}</el-button> --> |
| | | <!-- <el-input style="width:15%;" :placeholder="$t('Enter the Frame No')" v-model="framebarcode"></el-input> --> |
| | | <el-button type="primary" @click="showform7()">{{ $t('Add') }}</el-button> |
| | | <label style="background-color:yellow;font-size: 23px;" for=""> |
| | | {{ isQueueWarning == true ? $t('The slot is disabled') : "" }} |
| | | </label> |
| | | <div style="display:flex;"> |
| | | <div style="width:70%;"> |
| | | <el-table :data="this.OutSlice" :height="700" :span-method="objectSpanMethod" border |
| | | :cell-style="cellStyle" style="width: 100%;overflow: auto;font-size: 18px;"> |
| | | <el-table-column prop="barcode" :label="$t('Frame No')"></el-table-column> |
| | | <el-table-column :min-width="175" prop="glassId" :label="$t('Barcode')"></el-table-column> |
| | | <el-table-column :min-width="70" prop="orderId" :label="$t('Order No')"></el-table-column> |
| | | <el-table-column :min-width="70" prop="listId" :label="$t('List No')"></el-table-column> |
| | | <el-table-column :min-width="70" prop="boxId" :label="$t('Box No')"></el-table-column> |
| | | <el-table-column :min-width="100" prop="glasswidthmm" :label="$t('Length')"></el-table-column> |
| | | <el-table-column :min-width="100" prop="glassheightmm" :label="$t('Width')"></el-table-column> |
| | | <el-table-column :min-width="90" prop="state" :label="$t('Glass State')"> |
| | | <template slot-scope='scope'> |
| | | {{ scope.row.state == 0 ? $t('Waiting') : scope.row.state == 1 ? $t('Outing') : |
| | | scope.row.state |
| | | == 2 |
| | | ? $t('Outed') : scope.row.state == 3 ? $t('Absent') : $t('Completed') }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="sequence" :label="$t('Sequence')"></el-table-column> |
| | | <el-table-column :min-width="90" prop="barcode" :label="$t('Complete')"> |
| | | <template slot-scope='scope' style="height:100px;height:100px;"> |
| | | <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" |
| | | :disabled="!(!isAllowQueue && scope.row.state != 1 && scope.row.state != 2)" |
| | | @click="CompleteQueue(scope.row.id, scope.row.barcode, scope.row.glassId)">{{ |
| | | $t('Complete') |
| | | }}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column :width="100" :label="$t('Operate')"> |
| | | <template slot-scope='scope'> |
| | | <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" |
| | | :disabled="isAllowQueue" @click="deleteproductionqueueglass(scope.row.barcode)">{{ |
| | | $t('Delete') }}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div style="width:30%;" v-for="(item) in CurrentFrame" :key="item['barcode']"> |
| | | <el-button style="margin-left: 42%;" type="primary" @click="FrameStateUpdate(item['barcode'])">{{ |
| | | $t('Next') }}</el-button> |
| | | <h1 style="font-size: 40px;text-align: center;">{{ $t('Current Frame') }}:{{ item['barcode'] }}</h1> |
| | | <h1 style="font-size: 30px;text-align: center;"> |
| | | {{ item['flip'] == true ? $t('EXTERIQR OUT AND BYPASS TO THE LEFT') |
| | | : $t('EXTERIQR OUT AND BYPASS TO THE RIGHT') }} |
| | | </h1> |
| | | <h1 style="font-size: 30px;text-align: center;">{{ item['framewidthmm'] }}*{{ item['frameheightmm'] }} |
| | | </h1> |
| | | |
| | | <div class="frame" :style="'background-color: green;margin-top:30px;margin:0 auto;width: ' + |
| | | FrameWidthHeight('before', item['framewidthmm'], item['frameheightmm'], item['position']) + 'px;height:' + |
| | | FrameWidthHeight('after', item['framewidthmm'], item['frameheightmm'], item['position']) + 'px;' |
| | | "> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </el-dialog> |
| | | |
| | | <el-dialog :visible.sync="dialogFormVisible7" :title="$t('Glass information corresponding to aluminum frame')" |
| | | top="5vh"> |
| | | <el-input style="width:15%;" :placeholder="$t('Enter the Frame No')" v-model="framebarcode"></el-input> |
| | | <el-button type="primary" @click="showform7()">{{ $t('Query') }}</el-button> |
| | | <el-button type="primary" @click="AddOutSliceS()">{{ $t('Add') }}</el-button> |
| | | <el-button type="primary" @click="CloseForm7()">{{ $t('Cancel') }}</el-button> |
| | | <el-table :data="this.AluminumFrame" :height="700" border style="width: 100%;overflow: auto;"> |
| | | <el-table-column prop="frameBarcode" :label="$t('Frame No')"></el-table-column> |
| | | <el-table-column prop="barcode" :label="$t('Barcode')"></el-table-column> |
| | | <el-table-column prop="ordernumber" :label="$t('Order No')"></el-table-column> |
| | | <el-table-column prop="listnumber" :label="$t('List No')"></el-table-column> |
| | | <el-table-column prop="boxnumber" :label="$t('Box No')"></el-table-column> |
| | | <el-table-column prop="glasslength" :label="$t('Length')"></el-table-column> |
| | | <el-table-column prop="glassheight" :label="$t('Width')"></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.tier" :label="$t('The Side')"> |
| | | <template slot-scope='scope'> |
| | | {{ |
| | | scope.row.storageCage == null ? "" : scope.row.storageCage.tier == 1 ? $t('Inside') : $t('Outside') |
| | | }} |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column prop="out_slice.state" :label="$t('In the queue')"> |
| | | <template slot-scope='scope'> |
| | | {{ scope.row.out_slice != null ? $t('Yes') : $t('No') }} |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column prop="storageCage.tier" :label="$t('In the cage')"> |
| | | <template slot-scope='scope'> |
| | | {{ scope.row.storageCage != null ? $t('Yes') : $t('No') }} |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-dialog> |
| | | <el-dialog :visible.sync="dialogFormCountDown" :title="$t('Approximately resettable time')" top="5vh"> |
| | | <div :style="'font-size: ' + PromptSize + 'px;text-align: center;'"> |
| | | <!-- {{ this.CountDowns }} --> |
| | | {{ this.CountDowns }} |
| | | </div> |
| | | </el-dialog> |
| | | </el-footer> --> |
| | | </el-container> |
| | | </template> |
| | | <script> |
| | | |
| | | import { |
| | | home, home2, InsertOrder, Addglassid, UpdateTask, SelectAlarmmgInfo, SelectCageInfo, DeleteByGlassID, OutByGlassID, Loadcarlist, |
| | | SelectPassword, SelectGlassByGlassID, Disabled, Inglassid, SelectGlass, InsertQueueGlassId, UpdateQueueState, DeleteQueueGlass, SelectGlassNo, |
| | | SelectAluminumFrameInfoById, DeleteProductionQueueGlass, AddOutSliceS, isAllowQueues, isConfirmStates, SelectPermissionByUserName, currentUsername, CompleteQueue, |
| | | isAllowReorderings, FrameStateUpdate, WriteGlassID, ClearGlassId, CloseForm7, TaskStop, SoftEmergencyStop, SwitchScanMethod |
| | | home, home2, UpdateTask, SelectCageInfo, DeleteByGlassID, |
| | | SelectPassword, Disabled, AddOutSliceS, SelectPermissionByUserName, currentUsername, CompleteQueue, |
| | | isAllowReorderings, WriteGlassID, ClearGlassId, CloseForm7, SoftEmergencyStop, SwitchScanMethod |
| | | } from "../../api/home"; |
| | | |
| | | |
| | |
| | | dialogFormVisible: false, |
| | | dialogFormVisible1: false, |
| | | dialogFormVisible2: false, |
| | | dialogFormVisible3: false, |
| | | dialogFormVisible4: false, |
| | | dialogFormVisible5: false, |
| | | dialogFormVisible6: false, |
| | | dialogFormVisible7: false, |
| | | dialogFormCountDown: false, |
| | | Importorder:false, |
| | | Measure:false, |
| | | StorageCage:false, |
| | | Taskqueue:false, |
| | | form: { |
| | | orderId: "", |
| | | glassId: "", |
| | |
| | | } |
| | | , |
| | | 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; |
| | | } |
| | | }, |
| | | init() { |
| | | let viewname = "Home"; |
| | | if (typeof (WebSocket) == "undefined") { |
| | |
| | | this.tasklist1 = obj.tasklist1[0]; |
| | | this.tasklist2 = obj.tasklist2[0]; |
| | | this.alarm = obj.alarmmg[0]; |
| | | //获取当前扫码方式 |
| | | if (obj.Scanningmethod != null) { |
| | | this.Scanningmethod = obj.Scanningmethod[0]; |
| | | } |
| | | |
| | | //获取当前扫码枪玻璃id |
| | | if (obj.CurrrentGlassId != null) { |
| | | const specialChars = /[^\w\s]/g; |
| | | this.CurrrentGlassId = obj.CurrrentGlassId[0].replace(specialChars, ""); |
| | | } |
| | | |
| | | //查询当前铝框信息 |
| | | this.CurrentFrame = obj.CurrentFrame; |
| | | |
| | | // 获取设备状态 |
| | | if (obj.DeviceList != null) { |
| | | this.DeviceList = obj.DeviceList[0]; |
| | | } |
| | | //获取设备上的玻璃id |
| | | if (obj.GlassIdList != null) { |
| | | this.GlassIdList = obj.GlassIdList[0]; |
| | | } |
| | | //获取待确认的铝框玻璃信息 |
| | | if (obj.AluminumFrame != null) { |
| | | this.AluminumFrame = obj.AluminumFrame[0]; |
| | | if (this.dialogFormVisible6 == true) { |
| | | this.dialogFormVisible7 = true; |
| | | } |
| | | } |
| | | |
| | | //根据进片状态出发进片任务 |
| | | if (obj.FeedState != null) { |
| | | if (obj.FeedState[0] == true) { |
| | | this.InsertQueueGlass(1); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | // 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.alarm = obj.alarmmg[0]; |
| | | // this.dialogFormVisible2 = true; |
| | | // } |
| | | // } else { |
| | | // this.alarm = obj.alarmmg[0]; |
| | | // this.dialogFormVisible2 = true; |
| | | // } |
| | | // } |
| | | // //是否急停 |
| | | // if (obj.emergencystop != null) { |
| | | // this.EmergencyStop = obj.emergencystop[0]; |
| | | // } |
| | | |
| | | // //复位倒计时 |
| | | // if (obj.countdown != null) { |
| | | // if ((obj.countdown[0] == true && this.CountDowns == 0) || this.EmergencyStop == true) { |
| | | // this.CountDown(); |
| | | // } |
| | | // } |
| | | |
| | | // //复位完成信号 |
| | | // if (obj.reset != null) { |
| | | // this.reset = obj.reset[0]; |
| | | // } |
| | | |
| | | //是否有进片请求 |
| | | if (obj.D01RequestState != null) { |
| | | this.D01RequestState = obj.D01RequestState[0]; |
| | | } |
| | | // this.D01RequestState=true; |
| | | |
| | | //是否允许出片 |
| | | this.isAllowQueue = obj.isAllowQueue[0]; |
| | |
| | | //出片队列 |
| | | if (this.isAllowReordering == true) { |
| | | this.OutSlice = obj.listoutslice[0]; |
| | | } |
| | | //获取上片位玻璃信息 |
| | | |
| | | if (obj.zhuangtai != null) { |
| | | this.zhuangtai = obj.zhuangtai[0]; |
| | | } |
| | | //上片位玻璃信息 |
| | | if (obj.form2 != null && obj.form2 != "") { |
| | | this.form2 = obj.form2[0]; |
| | | this.loadglassheight2 = 70; |
| | | } else { |
| | | this.form2 = {}; |
| | | } |
| | | |
| | | //是否需要手动确认上片 |
| | | this.isConfirm = obj.isConfirm[0]; |
| | | |
| | | //扫码位玻璃信息 |
| | | if (obj.form3 != null && obj.form3 != "" && obj.state[0] == 1) { |
| | | this.form3 = obj.form3[0]; |
| | | this.loadglassheight1 = 70; |
| | | } else { |
| | | this.form3 = {}; |
| | | } |
| | | |
| | | if (obj.form3 != null && obj.form3 != "" && obj.state[0] == 0) { |
| | | this.loadglassheight1 = 70; |
| | | if (this.form5.glassId != obj.form3[0].glassId&&this.ManuallyInfeedGlass==false) { |
| | | this.showform3(); |
| | | |
| | | } |
| | | this.form5 = obj.form3[0]; |
| | | this.glassid1 = ""; |
| | | if (this.D01RequestState == true) { |
| | | this.Sizerange(this.form5, 3); |
| | | } else { |
| | | this.disabled1 = true; |
| | | } |
| | | } else { |
| | | if (this.glassid1 == "") { |
| | | this.DeleteBarcodeGlass(); |
| | | } |
| | | } |
| | | //数据库连接是否正常 |
| | | if (obj.dbconnected == "false") { |
| | | this.text = this.$t('DataBase Connection failed'); |
| | | } |
| | | //理片笼玻璃信息 |
| | | if (this.dialogFormVisible3 == true) { |
| | |
| | | }); |
| | | |
| | | }); |
| | | //加载小车位置信息 |
| | | Loadcarlist().then(res => { |
| | | this.carlist = res.data.carlist; |
| | | }); |
| | | //加载笼子使用情况数据 |
| | | home().then(res => { |
| | | this.tableData = res.data.list; |
| | |
| | | this.cagelist3 = res.data.list3; |
| | | this.cagelist4 = res.data.list4; |
| | | }); |
| | | //加载报警信息 |
| | | SelectAlarmmgInfo().then(res => { |
| | | this.alarm = res.data.alarmmg; |
| | | }); |
| | | |
| | | //加载确认密码 |
| | | SelectPassword().then(res => { |
| | | this.password = res.data.password; |
| | | }); |
| | | }, |
| | | //根据格子状态修改颜色 |
| | | getStatusClass(state) { |
| | | if (state == 0) { |
| | | return "gezi"; |
| | | } else if (state == 1) { |
| | | return "blue gezi"; |
| | | } else if (state == 2) { |
| | | return "yellow gezi"; |
| | | } else if (state == 3) { |
| | | return "black gezi"; |
| | | } else { |
| | | return "black gezi"; |
| | | } |
| | | }, |
| | | //按订单出片 |
| | | getOrder() { |
| | | if (this.form1.order != "") { |
| | | InsertOrder(this.order).then(res => { |
| | | if (res.data.message == 200) { |
| | | this.dialogFormVisible1 = false; |
| | | this.$message.success(this.$t('Operation successful')); |
| | | } else { |
| | | this.$message.error(this.$t('There is no glass for this order')); |
| | | } |
| | | this.load(); |
| | | }); |
| | | } |
| | | }, |
| | | //手动上片 |
| | | sbumitglassid() { |
| | | if (this.form.order != "") { |
| | | if (this.form.height < 380 || this.form.width < 390 || this.form.height > 1810 || this.form.width > 2760) { |
| | | this.$message.error(this.$t('The glass size is not within the range')); |
| | | } else { |
| | | if (this.zhuangtai == true) { |
| | | Addglassid(this.glassid).then(res => { |
| | | if (res.data.message2 == 200) { |
| | | this.$message.success(this.$t('Operation successful')); |
| | | this.cancel(); |
| | | } else if (res.data.message2 == 500) { |
| | | this.$message.error(this.$t('There are currently tasks')); |
| | | } |
| | | else if (res.data.message2 == 300) { |
| | | this.$message.error(this.$t('There is no such glass')); |
| | | } |
| | | else if (res.data.message2 == 400) { |
| | | this.$message.error(this.$t('There is no such slot')); |
| | | } |
| | | }); |
| | | } else { |
| | | this.$message.error(this.$t('There are currently tasks')); |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | //显示确认玻璃信息也没 |
| | | showform(buttons) { |
| | | if (buttons == 1) { |
| | | this.confirm1 = true; |
| | | this.confirm2 = false; |
| | | } else if (buttons == 2) { |
| | | this.confirm1 = false; |
| | | this.confirm2 = true; |
| | | } |
| | | //根据输入的玻璃id获取玻璃信息 |
| | | SelectGlassByGlassID(this.glassid).then(res => { |
| | | if (res.data.form != null) { |
| | | this.form = res.data.form; |
| | | this.dialogFormVisible = true; |
| | | this.$message.success(this.$t('query was successful')); |
| | | } else { |
| | | this.dialogFormVisible = true; |
| | | this.$message.error(this.$t('There is no such glass')); |
| | | } |
| | | }); |
| | | }, |
| | | //显示订单信息页面 |
| | | showform1() { |
| | | if (this.order != "") { |
| | | SelectGlassNo(this.order).then(res => { |
| | | this.form1.order = this.order; |
| | | this.form1.number = res.data.count; |
| | | }); |
| | | this.dialogFormVisible1 = true; |
| | | } |
| | | }, |
| | | //显示扫码位和上片位 |
| | | showform3() { |
| | | this.dialogFormVisible5 = true; |
| | | }, |
| | | //手动写入plc扫码位玻璃id |
| | | WriteGlassID() { |
| | | if (this.glassid1.length == 14) { |
| | | WriteGlassID(this.glassid1).then(res => { |
| | | console.log(res.data); |
| | | this.$message.success(this.$t('Successful operation')); |
| | | }); |
| | | } else { |
| | | this.$message.error(this.$t('Please enter the correct glassID')); |
| | | } |
| | | }, |
| | | //获取扫码位和上片位数据 |
| | | SelectGlassByGlassIDs() { |
| | | this.showform3(); |
| | | |
| | | }, |
| | | //查询客户玻璃信息 |
| | | selectglassinfo() { |
| | | SelectGlass(this.orderid).then(res => { |
| | | this.currentPage = 1; |
| | | this.GlassInfo = res.data.glass; |
| | | }); |
| | | }, |
| | | //显示客户玻璃信息 |
| | | showform2() { |
| | | SelectGlass(this.orderid).then(res => { |
| | | this.GlassInfo = res.data.glass; |
| | | }); |
| | | this.dialogFormVisible4 = true; |
| | | }, |
| | | //显示出片队列 |
| | | showform6() { |
| | | this.dialogFormVisible6 = true; |
| | | }, |
| | | //显示铝框对应玻璃信息 |
| | | showform7() { |
| | | //查询铝框id对应玻璃信息 |
| | | SelectAluminumFrameInfoById(this.framebarcode).then(res => { |
| | | this.AluminumFrame = res.data.AluminumFrame; |
| | | }); |
| | | this.dialogFormVisible7 = true; |
| | | }, |
| | | //取消操作时关闭页面 |
| | | cancel() { |
| | | this.dialogFormVisible = false; |
| | | this.form = { |
| | | orderId: "", |
| | | glassId: "", |
| | | height: "", |
| | | width: "" |
| | | }; |
| | | }, |
| | | //取消操作时关闭页面 |
| | | cancel1() { |
| | | this.dialogFormVisible1 = false; |
| | | this.form1 = {}; |
| | | }, |
| | | //取消操作时关闭页面 |
| | | cancel3() { |
| | | this.dialogFormVisible5 = false; |
| | | this.form1 = {}; |
| | | }, |
| | | |
| | | //结束进/出片任务 |
| | | endtask(type, glassid, cell) { |
| | | this.$prompt(this.$t('Are you sure to perform this operation ?'), this.$t('prompt'), { |
| | |
| | | message: this.$t('Operation canceled') |
| | | }); |
| | | }); |
| | | }, |
| | | //显示理片笼详情信息 |
| | | showcageinfo(cage) { |
| | | if (this.CageDetails == false) { |
| | | cage = this.cageglassid; |
| | | SelectCageInfo(cage).then(res => { |
| | | this.cageinfo = res.data.cageinfo; |
| | | this.currentPages = 1; |
| | | this.dialogFormVisible3 = true; |
| | | }); |
| | | } else { |
| | | this.$message.error(this.$t('You do not have this permission')); |
| | | } |
| | | |
| | | }, |
| | | //删除理片笼玻璃 |
| | | deleteglass(glassid, state) { |
| | |
| | | }); |
| | | }); |
| | | }, |
| | | //手动出片 |
| | | outglass(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) { |
| | | OutByGlassID(glassid).then(res => { |
| | | if (res.data.message2 == 200) { |
| | | this.$message.success(this.$t('Operation successful')); |
| | | } |
| | | else if (res.data.message2 == 300) { |
| | | this.$message.error(this.$t('Unable to find the placement method of the aluminum frame')); |
| | | } |
| | | else if (res.data.message2 == 400) { |
| | | this.$message.error(this.$t('Unable to find whether the aluminum frame is flipped or not')); |
| | | } |
| | | else if (res.data.message2 == 500) { |
| | | this.$message.error(this.$t('This glass is already in the Queue')); |
| | | } |
| | | }); |
| | | } else { |
| | | this.$message.error(this.$t('No out allowed')); |
| | | } |
| | | } else { |
| | | this.$message.error(this.$t('Password error'));//密码错误 |
| | | } |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: this.$t('Operation canceled') |
| | | }); |
| | | }); |
| | | }, |
| | | //手动往理片笼添加玻璃 |
| | | insertglass(cage, cell, tier) { |
| | | 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) { |
| | | this.insertcage = cage; |
| | | this.insertcell = cell; |
| | | this.inserttier = tier; |
| | | this.showform(2); |
| | | } else { |
| | | this.$message.error(this.$t('Password error'));//密码错误 |
| | | } |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: this.$t('Operation canceled') |
| | | }); |
| | | }); |
| | | }, |
| | | //手动上片 |
| | | FeedInglassid() { |
| | | if (this.form.glassId != "" && this.form.glassId != null) { |
| | | Inglassid(this.insertcage, this.insertcell, this.inserttier, this.form).then(res => { |
| | | if (res.data.message == 200) { |
| | | this.$message.success(this.$t('Operation successful')); |
| | | this.dialogFormVisible = false; |
| | | this.glassid=""; |
| | | } |
| | | else if (res.data.message == 400) { |
| | | this.$message.error(this.$t('The glass size is not within the range')); |
| | | } |
| | | else if (res.data.message == 300) { |
| | | this.$message.error(this.$t('This glass is already in the cage')); |
| | | } |
| | | }); |
| | | } else { |
| | | this.$message.error(this.$t('There is no such glass')); |
| | | } |
| | | |
| | | |
| | | }, |
| | | //启用//理片笼禁用 |
| | | UpdateDisabled(cage, cell, disabled) { |
| | | Disabled(cage, cell, disabled).then(res => { |
| | |
| | | } |
| | | }); |
| | | }, |
| | | //删除出片队列玻璃 |
| | | deleteproductionqueueglass(id) { |
| | | 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) { |
| | | DeleteProductionQueueGlass(id).then(res => { |
| | | if (res.data.message == 200) { |
| | | this.$message.success(this.$t('Operation successful')); |
| | | } else { |
| | | this.$message.error(this.$t('This frame has glass that is currently outing')); |
| | | } |
| | | }); |
| | | } |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: this.$t('Operation canceled') |
| | | }); |
| | | }); |
| | | }, |
| | | //表格删除 |
| | | handleDelete(index, row) { |
| | | console.log(index, row); |
| | | }, |
| | | |
| | | //改变每页容纳的数据量 |
| | | handleSizeChange: function (size) { |
| | | this.pagesize = size; |
| | |
| | | handleCurrentChanges: function (currentPage) { |
| | | this.currentPages = currentPage; |
| | | }, |
| | | //手动添加扫码位玻璃 |
| | | InsertQueueGlass(parameter) { |
| | | if (parameter == 1 && this.form5.glassId != "") { |
| | | if (this.form5.glassId != this.form2.glassId && this.form5.glassId != this.form3.glassId) { |
| | | if (this.dialogFormVisible5 == true) { |
| | | InsertQueueGlassId(1, this.form5).then(res => { |
| | | if (res.data.message == 200) { |
| | | this.form5 = {}; |
| | | this.$message.success(this.$t('Operation successful')); |
| | | } |
| | | else if (res.data.message == 400) { |
| | | this.$message.error(this.$t('The glass size is not within the range')); |
| | | } else { |
| | | this.$message.error(this.$t('This glass ID already exists in the sorting cage')); |
| | | } |
| | | }); |
| | | } |
| | | } else { |
| | | this.$message.error(this.$t('The glass ID already exists in the loading queue')); |
| | | } |
| | | } else if (parameter == 2 && this.form4.glassId != "") { |
| | | if (this.form4.glassId != this.form3.glassId && this.form4.glassId != this.form2.glassId) { |
| | | InsertQueueGlassId(2, this.form4).then(res => { |
| | | if (res.data.message == 200) { |
| | | this.form4 = {}; |
| | | this.$message.success(this.$t('Operation successful')); |
| | | } else { |
| | | this.$message.error(this.$t('This glass ID already exists in the sorting cage')); |
| | | } |
| | | }); |
| | | } else { |
| | | this.$message.error(this.$t('The glass ID already exists in the loading queue')); |
| | | } |
| | | |
| | | |
| | | } |
| | | }, |
| | | //清除上片队列玻璃 |
| | | DeleteQueueGlasss(parameter) { |
| | | if (parameter == 1) { |
| | | DeleteQueueGlass(1).then(res => { |
| | | if (res.data.message == 200) { |
| | | this.form3 = {}; |
| | | this.$message.success(this.$t('Operation successful')); |
| | | } |
| | | }); |
| | | } else { |
| | | DeleteQueueGlass(2).then(res => { |
| | | if (res.data.message == 200) { |
| | | this.form2 = {}; |
| | | this.$message.success(this.$t('Operation successful')); |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | //修改扫码位玻璃状态 |
| | | UpdateQueueStates() { |
| | | UpdateQueueState().then(res => { |
| | | if (res.data.message == 200) { |
| | | this.$message.success(this.$t('Operation successful')); |
| | | } |
| | | }); |
| | | }, |
| | | //铝框对应玻璃信息添加铝框id和是否添加到队列 |
| | | CheckBoxchange(glassid, isChecked) { |
| | | this.AluminumFrame.forEach(item => { item.barcode = glassid; item.isCheck = isChecked }) |
| | | }, |
| | | //添加到出片队列 |
| | | AddOutSliceS() { |
| | | if (this.AluminumFrame != null) { |
| | | AddOutSliceS(this.AluminumFrame[0].frameBarcode).then(res => { |
| | | if (res.data.message == 200) { |
| | | this.$message.success(this.$t('Operation successful')); |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | //关闭待确认铝框信息界面并清除待确认信息 |
| | | CloseForm7() { |
| | | if (this.AluminumFrame != null) { |
| | | CloseForm7().then(res => { |
| | | if (res.data.message == 200) { |
| | | this.AluminumFrame = null; |
| | | this.dialogFormVisible7 = false; |
| | | this.$message.success(this.$t('Operation successful')); |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | //置顶 |
| | | getTopMove(row, index) { |
| | | let Sequence = []; |
| | | this.OutSlice.forEach(item => { |
| | | Sequence.push(item.sequence); |
| | | }); |
| | | let OutSliceArr = []; |
| | | OutSliceArr.push(row); |
| | | let belowstop = 1; |
| | | let hereframeno = this.OutSlice[index].barcode; |
| | | let upperstop = 0; |
| | | for (let i = index + 1; i < this.OutSlice.length; i++) { |
| | | if (this.OutSlice[i].barcode == hereframeno) { |
| | | OutSliceArr.push(this.OutSlice[i]); |
| | | belowstop += 1; |
| | | } else { |
| | | break; |
| | | } |
| | | } |
| | | this.OutSlice.splice(index, belowstop); |
| | | for (let i = 0; i < OutSliceArr.length; i++) { |
| | | this.OutSlice.splice(upperstop, 0, OutSliceArr[i]); |
| | | upperstop += 1; |
| | | } |
| | | this.UpdateSequence(Sequence); |
| | | }, |
| | | //上移 |
| | | getUpMove(row, index) { |
| | | let Sequence = []; |
| | | this.OutSlice.forEach(item => { |
| | | Sequence.push(item.sequence); |
| | | }); |
| | | let OutSliceArr = []; |
| | | OutSliceArr.push(row); |
| | | let belowstop = 1; |
| | | let upperstop = 0; |
| | | let index_x = index - 1; |
| | | let hereframeno = this.OutSlice[index].barcode; |
| | | let upperframeno = this.OutSlice[index_x].barcode; |
| | | for (let i = index + 1; i < this.OutSlice.length; i++) { |
| | | if (this.OutSlice[i].barcode == hereframeno) { |
| | | OutSliceArr.push(this.OutSlice[i]); |
| | | belowstop += 1; |
| | | } else { |
| | | break; |
| | | } |
| | | } |
| | | this.OutSlice.splice(index, belowstop); |
| | | for (let i = index_x; i >= 0; i--) { |
| | | if (this.OutSlice[i].barcode != upperframeno) { |
| | | upperstop = i + 1; |
| | | break; |
| | | } |
| | | } |
| | | for (let i = 0; i < OutSliceArr.length; i++) { |
| | | this.OutSlice.splice(upperstop, 0, OutSliceArr[i]); |
| | | upperstop += 1; |
| | | } |
| | | this.UpdateSequence(Sequence); |
| | | }, |
| | | //下移 |
| | | getDownMove(row, index) { |
| | | let Sequence = []; |
| | | this.OutSlice.forEach(item => { |
| | | Sequence.push(item.sequence); |
| | | }); |
| | | let OutSliceArr = []; |
| | | OutSliceArr.push(row); |
| | | |
| | | let belowstop = 1; |
| | | let upperstop = this.OutSlice.length - 1; |
| | | let flag = 0; |
| | | let hereframeno = this.OutSlice[index].barcode; |
| | | let upperframeno; |
| | | for (let i = index + 1; i < this.OutSlice.length; i++) { |
| | | if (this.OutSlice[i].barcode == hereframeno) { |
| | | OutSliceArr.push(this.OutSlice[i]); |
| | | belowstop += 1; |
| | | } else { |
| | | break; |
| | | } |
| | | } |
| | | this.OutSlice.splice(index, belowstop); |
| | | for (let i = index; i < this.OutSlice.length; i++) { |
| | | if (this.OutSlice[i].barcode != hereframeno && this.OutSlice[i].barcode != upperframeno) { |
| | | upperframeno = this.OutSlice[i].barcode; |
| | | flag += 1; |
| | | upperstop = i; |
| | | } |
| | | if (i == this.OutSlice.length - 1 && flag == 1) { |
| | | flag += 1; |
| | | upperstop = i + 1; |
| | | } |
| | | if (flag == 2) { |
| | | break; |
| | | } |
| | | } |
| | | for (let i = 0; i < OutSliceArr.length; i++) { |
| | | this.OutSlice.splice(upperstop, 0, OutSliceArr[i]); |
| | | upperstop += 1; |
| | | } |
| | | this.UpdateSequence(Sequence); |
| | | }, |
| | | //修改出片顺序 |
| | | UpdateSequence(Sequence) { |
| | | let i = 0; |
| | | this.OutSlice.forEach(item => { |
| | | item.sequence = Sequence[i]; |
| | | i++; |
| | | }); |
| | | }, |
| | | //切换出片队列状态 |
| | | isAllowQueueState() { |
| | | isAllowQueues(!this.isAllowQueue, this.OutSlice).then(res => { |
| | | if (res.data.message == 200) { |
| | | this.$message.success(this.$t('Operation successful')); |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | //是否允许出片队列排序 |
| | | isAllowReorderings() { |
| | | isAllowReorderings(!this.isAllowReordering, this.OutSlice).then(res => { |
| | |
| | | } |
| | | }) |
| | | }, |
| | | //切换上片是否需要确认玻璃信息 |
| | | isConfirmState() { |
| | | isConfirmStates(!this.isConfirm).then(res => { |
| | | if (res.data.message == 200) { |
| | | this.$message.success(this.$t('Operation successful')); |
| | | } |
| | | }); |
| | | } |
| | | , |
| | | //表格样式 |
| | | cellStyle({ column, rowIndex, columnIndex }) { |
| | | column = rowIndex; |
| | | rowIndex = column; |
| | | let style = ""; |
| | | if (columnIndex === 8) { |
| | | // style = "font-size:200px;text-align: center;"; |
| | | style = ""; |
| | | } |
| | | // if (columnIndex === 9 && row.flip == 1) { |
| | | // style = "background-Color:yellow;"; |
| | | // } |
| | | // if (columnIndex === 6 && row.state == 3) { |
| | | // style = "background-Color:gray;"; |
| | | // } |
| | | return style; |
| | | } |
| | | , |
| | | //合并行 |
| | | objectSpanMethod({ row, column, rowIndex, columnIndex }) { |
| | | // console.log(row, column, "ss"); |
| | | row = column; |
| | | column = row |
| | | let arrOutSlice = this.OutSlice; |
| | | let rowspans = 0; |
| | | let colspans = 1; |
| | | let barcode = arrOutSlice[rowIndex].barcode; |
| | | |
| | | let barcode2; |
| | | if (rowIndex != 0) { |
| | | barcode2 = arrOutSlice[rowIndex - 1].barcode; |
| | | } |
| | | if (columnIndex === 0 || columnIndex === 10) { |
| | | if (barcode != barcode2) { |
| | | // this.FrameNoFlag = barcode; |
| | | for (let i = rowIndex; i < this.OutSlice.length; i++) { |
| | | if (barcode == arrOutSlice[i].barcode) { |
| | | barcode = arrOutSlice[i].barcode; |
| | | rowspans += 1; |
| | | } else { |
| | | break; |
| | | } |
| | | } |
| | | return { |
| | | rowspan: rowspans, |
| | | colspan: colspans |
| | | }; |
| | | } else { |
| | | return { |
| | | rowspan: 0, |
| | | colspan: 0 |
| | | }; |
| | | } |
| | | } |
| | | }, |
| | | //判断玻璃是否超出范围 |
| | | Sizerange(Glass, position) { |
| | | if (this.ManuallyInfeedGlass == false) { |
| | | if ((Glass.glassheight < 380 || Glass.glasswidth < 390 || Glass.glassheight > 1810 || Glass.glasswidth > 2760) || (Glass.glassheight < 390 || Glass.glasswidth < 380 || Glass.glassheight > 2760 || Glass.glasswidth > 1810)) { |
| | | this.$alert(this.$t('The glass size is not within the range'), this.$t('confirm'), { |
| | | confirmButtonText: this.$t('Yes'), |
| | | type: 'info', |
| | | callback: (action) => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: `action: ${action}` |
| | | }).then( |
| | | this.DeleteBarcodeGlass() |
| | | ); |
| | | } |
| | | }); |
| | | if (position == 1 || position == 3) { |
| | | this.disabled1 = true; |
| | | } else { |
| | | this.disabled = true; |
| | | } |
| | | } else { |
| | | if (position == 1 || position == 3) { |
| | | this.disabled1 = false; |
| | | } else { |
| | | this.disabled = false; |
| | | } |
| | | // if (position == 3 && this.isConfirm == true && this.D01RequestState == true && this.dialogFormVisible5 == true) { |
| | | // this.InsertQueueGlass(1); |
| | | // } |
| | | } |
| | | } |
| | | }, |
| | | //清空待确认玻璃信息 |
| | | DeleteBarcodeGlass() { |
| | | this.form5 = {}; |
| | | }, |
| | | //手动完成出片任务 |
| | | CompleteQueue(id, frameid, glassid) { |
| | | CompleteQueue(id, frameid, glassid).then(res => { |
| | |
| | | this.$message.success(this.$t('Operation successful')); |
| | | } |
| | | }); |
| | | }, |
| | | //60秒复位倒数计时 |
| | | CountDown() { |
| | | let count = 60; |
| | | let timer = setInterval( |
| | | () => { |
| | | if (this.EmergencyStop == true) { |
| | | this.dialogFormCountDown = false; |
| | | clearInterval(timer); |
| | | this.CountDowns = "0"; |
| | | } else { |
| | | if (count > 0) { |
| | | this.PromptSize = 500; |
| | | count--; |
| | | this.CountDowns = count; |
| | | this.dialogFormCountDown = true; |
| | | } |
| | | else { |
| | | this.PromptSize = 200; |
| | | this.CountDowns = "Waiting for reset"; |
| | | if (this.reset == true) { |
| | | clearInterval(timer); |
| | | this.dialogFormCountDown = false; |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | 1000 |
| | | ); |
| | | |
| | | }, |
| | | //更换当前铝框 |
| | | FrameStateUpdate(frameno) { |
| | | FrameStateUpdate(frameno).then(res => { |
| | | if (res.data.message == 200) { |
| | | this.$message.success("Operation successful"); |
| | | } |
| | | }); |
| | | }, |
| | | //当前铝框图形 |
| | | FrameWidthHeight(state, width, height, position) { |
| | | if (state == "before") { |
| | | if (position == 0) { |
| | | if (width > height) { |
| | | return 400; |
| | | } |
| | | else { |
| | | return width / height * 400; |
| | | } |
| | | } else { |
| | | if (width > height) { |
| | | return height / width * 400; |
| | | } |
| | | else { |
| | | return 400; |
| | | } |
| | | } |
| | | } |
| | | if (state == "after") { |
| | | if (position == 0) { |
| | | if (width < height) { |
| | | return 400; |
| | | } |
| | | else { |
| | | return height / width * 400; |
| | | } |
| | | } else { |
| | | if (width < height) { |
| | | return width / height * 400; |
| | | } |
| | | else { |
| | | return 400; |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | //获取设备显示状态 |
| | | ShowDeviceList(num) { |
| | |
| | | const specialChars = /[^\w\s]/g; |
| | | return this.GlassIdList[num].replace(specialChars, ""); |
| | | } |
| | | }, |
| | | //清除玻璃id |
| | | ClearGlassId(position, num) { |
| | | if (this.ClearGlassID == false) { |
| | | console.log(this.DeviceList, num); |
| | | if (this.DeviceList[num] == 0) { |
| | | if (this.GlassIdList[num].length <= 14) { |
| | | this.$confirm(this.$t('Are you sure to clear this barcode ?'), this.$t('confirm'), { |
| | | confirmButtonText: this.$t('Yes'), |
| | | cancelButtonText: this.$t('No'), |
| | | type: 'warning' |
| | | }).then(() => { |
| | | ClearGlassId(position, this.GlassIdList[num]).then(res => { |
| | | if (res.data.message == 200) { |
| | | this.$message.success(this.$t('Operation successful')); |
| | | } else { |
| | | this.$message.success(this.$t('operation failed')); |
| | | } |
| | | }); |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: this.$t('Operation canceled') |
| | | }); |
| | | }); |
| | | } else { |
| | | this.$message.error(this.$t('There is no glass ID here')); |
| | | } |
| | | } else { |
| | | //自动状态不能清除玻璃id |
| | | this.$message.error(this.$t('Unable to clear glass ID in automatic mode')); |
| | | } |
| | | } else { |
| | | this.$message.error(this.$t('You do not have this permission')); |
| | | } |
| | | }, |
| | | //终止进/出片任务 |
| | | TaskStop(num) { |
| | | TaskStop(num).then(res => { |
| | | if (res.data.message == 200) { |
| | | this.$message.success(this.$t('Operation successful')); |
| | | } |
| | | }); |
| | | }, |
| | | //软急停 |
| | | SoftEmergencyStop() { |
| | | this.$confirm(this.$t('Are you sure you want an emergency stop ?'), this.$t('confirm'), { |
| | | confirmButtonText: this.$t('Yes'), |
| | | cancelButtonText: this.$t('No'), |
| | | type: 'warning' |
| | | }).then(() => { |
| | | SoftEmergencyStop.then(res => { |
| | | if (res.data.message == 200) { |
| | | this.$message.success(this.$t('Operation successful')); |
| | | } |
| | | }); |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: this.$t('Operation canceled') |
| | | }); |
| | | }); |
| | | }, |
| | | //切换二维码获取方式 |
| | | SwitchScanMethod() { |
| | | SwitchScanMethod(!this.Scanningmethod).then(res => { |
| | | if (res.data.message == 200) { |
| | | this.$message.success(this.$t('Operation successful')); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | } |
| | | } |
| | | </script> |