<template>
|
<div style="height: 600px;">
|
<el-card style="flex: 1;margin-left: 10px;margin-top: 10px;">
|
<div style="display: flex; flex-direction: row; align-items: center; margin-bottom: 10px;">
|
<el-button id="searchButton" type="primary" @click="handleormulan">
|
{{ $t('hellow.hollowformula') }}
|
</el-button>
|
<el-button id="searchButton" type="primary" @click="handlezhiban">
|
{{ $t('hellow.createtask') }}
|
</el-button>
|
<el-button type="primary" @click="selectproject">
|
{{ $t('hellow.reviewproject') }}
|
</el-button>
|
<el-button style="margin-left: 10px;" id="searchButton" type="primary" @click="handlehistorical">{{
|
$t('searchOrder.historicaltasks') }}</el-button>
|
<el-button style="margin-left: 10px;" id="searchButton" type="success" @click="handleBinda">
|
{{ $t('hellow.starttask') }}
|
</el-button>
|
<el-button style="margin-left: 10px;" id="searchButton" type="warning" @click="handleBindc">{{
|
$t('hellow.stopproject')
|
}}
|
</el-button>
|
<el-button style="margin-left: 10px;" :disabled="listFlow.length > 0 ? false : true" id="searchButton" type="warning" @click="handleBinde">{{
|
$t('searchOrder.printlabels')
|
}}
|
</el-button>
|
</div>
|
|
<div id="dotClass">
|
<div style="margin-left: 70px;">{{ $t('hellow.freetwo') }}</div>
|
<i
|
:style="{ marginTop: '2px', backgroundColor: freetwo, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
|
</div>
|
<div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
|
<el-tabs v-model="activeTab" type="card">
|
<el-tab-pane
|
v-for="tab in tabList"
|
:key="tab.title"
|
:label="tab.title"
|
:name="tab.title"
|
>
|
<div style="margin-bottom: 10px;">
|
<el-button style="margin-left: 10px;" type="info" @click="handleDelete(tab.title)">{{
|
$t('hellow.taskdet')
|
}}
|
</el-button>
|
</div>
|
<!-- 动态表格 -->
|
<el-table
|
:data="tab.tableDataa"
|
:header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }"
|
>
|
<el-table-column prop="flowCardId" :label="$t('hellow.flowCardId')" align="center" />
|
<el-table-column prop="glassId" :label="$t('searchOrder.glassID')" align="center" />
|
<el-table-column prop="hollowSequence" :label="$t('hellow.order')" align="center" />
|
<el-table-column prop="thickness" :label="$t('hellow.thickness')" align="center" />
|
<el-table-column prop="layer" :label="$t('hellow.layer')" align="center" />
|
<el-table-column prop="filmsId" :label="$t('hellow.coatingtypes')" align="center" />
|
<el-table-column prop="height" :label="$t('hellow.height')" align="center" />
|
<el-table-column prop="width" :label="$t('hellow.width')" align="center" />
|
<el-table-column prop="state" :label="$t('hellow.state')" align="center">
|
<template #default="scope">
|
{{ scope.row.state == -1 ? $t('hellow.waitingout') : $t('hellow.finishout') }}
|
</template>
|
</el-table-column>
|
</el-table>
|
</el-tab-pane>
|
</el-tabs>
|
<!-- <div style="display: flex;margin-left: 40%;margin-top: 10px;">
|
<div style="margin-top: 5px;margin-right: 5px;">{{ $t('hellow.line') }}</div>
|
<el-pagination
|
background
|
size="large"
|
layout="prev, pager, next"
|
:total="30"
|
:current-page.sync="currentPage"
|
@current-change="handlePageChange1"
|
/>
|
</div> -->
|
</div>
|
</el-card>
|
</div>
|
<!-- 创建任务 -->
|
<el-dialog v-model="dialogFormVisiblea" top="5vh" width="85%">
|
<div style="display: flex;">
|
<el-input v-model="flowCardId" style="margin-left: 10px;margin-bottom: 10px;width: 240px;"
|
:placeholder="$t('searchOrder.incardnumber')" />
|
<el-input v-model="filmsId" style="margin-left: 10px;margin-bottom: 10px;width: 240px;"
|
:placeholder="$t('film.infilms')" />
|
<el-input v-model="productName" style="margin-left: 10px;margin-bottom: 10px;width: 240px;"
|
:placeholder="$t('large.inproductname')" />
|
<el-input v-model="customerName" style="margin-left: 10px;margin-bottom: 10px;width: 240px;"
|
:placeholder="$t('large.incustomerName')" />
|
<el-input v-model="thickness" style="margin-left: 10px;margin-bottom: 10px;width: 240px;"
|
:placeholder="$t('searchOrder.inthickness')" />
|
<el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="fetchFlowCardsearch">
|
{{ $t('reportmanage.inquire') }}</el-button>
|
</div>
|
<div style="margin-left: 87%;">{{ $t('hellow.pairsnumbertotal') }}{{ pairTotal }}</div>
|
<el-table ref="table" style="margin-top: 20px; height: 700px;" :data="tableDatab"
|
:row-class-name="tableRowClassName" :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }"
|
row-key="projectNumber">
|
<!-- <el-table-column type="expand"> -->
|
<el-table-column>
|
<template #default="props">
|
<el-table :data="props.row.flowCardGlassInfoDTOList" style="width: 100%"
|
:row-class-name="(row) => nestedTableRowClassName(props.row, row)">
|
<el-table-column prop="layer" fixed align="center" :label="$t('hellow.layernumber')" min-width="80" />
|
<el-table-column prop="thickness" align="center" :label="$t('hellow.thickness')" min-width="80" />
|
<el-table-column prop="filmsId" align="center" :label="$t('hellow.coatingtypes')" min-width="80" />
|
<el-table-column prop="sumCount" align="center" :label="$t('hellow.totalnumber')" min-width="80" />
|
<el-table-column prop="realCount" align="center" :label="$t('hellow.realpieces')" min-width="80" />
|
<el-table-column prop="damageCount" align="center" :label="$t('hellow.damagenumber')" min-width="80" />
|
<el-table-column prop="pairCount" align="center" :label="$t('hellow.pairsnumber')" min-width="80" />
|
</el-table>
|
</template>
|
</el-table-column>
|
<el-table-column prop="flowCardId" fixed align="center" :label="$t('hellow.cardnumber')" min-width="20" />
|
<el-table-column prop="productName" fixed align="center" :label="$t('large.productname')" min-width="20" />
|
<el-table-column prop="customerName" fixed align="center" :label="$t('large.customerName')" min-width="20" />
|
<el-table-column fixed="right" :label="$t('hellow.operate')" align="center" width="270">
|
<template #default="scope">
|
<el-button type="text" :disabled="scope.row.isThroughSlot" plain @click="handletake(scope.row)">{{
|
$t('hellow.claimquest') }}</el-button>
|
<el-button type="text" plain @click="handleBindRack(scope.row)">{{
|
$t('hellow.missingfilms')
|
}}
|
</el-button>
|
<el-button type="text" plain @click="handleout(scope.row)">{{
|
$t('hellow.forcedfilming')
|
}}
|
</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
</el-dialog>
|
<!-- 中空配方添加 -->
|
<el-dialog v-model="add" top="23vh" width="55%" :title="$t('hellow.hollowformula')">
|
<div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
|
<el-form label-width="200px">
|
<el-form label-width="200px" label-position="right">
|
<el-row style="margin-top: 10px;">
|
<el-col :span="6">
|
<div id="dt" style="font-size: 15px;">
|
<div>
|
<el-form-item :label="$t('hellow.formulaName')" :required="true" style="width: 20vw;">
|
<el-input :placeholder="$t('hellow.formulaNamea')" v-model="formulaName" autocomplete="off" />
|
</el-form-item>
|
</div>
|
</div>
|
</el-col>
|
<el-col :span="9">
|
<div id="dta" style="font-size: 15px;">
|
<div>
|
<el-form-item :label="$t('Mounting.removalmethoda')" :required="true" style="width: 20vw;">
|
<el-select v-model="filmRemove" clearable style="width: 270px"
|
:placeholder="$t('Mounting.removalmethod')">
|
<el-option :label="$t('Mounting.removal')" value="1"></el-option>
|
<el-option :label="$t('Mounting.noremoval')" value="0"></el-option>
|
</el-select>
|
</el-form-item>
|
</div>
|
</div>
|
</el-col>
|
</el-row>
|
<el-row style="margin-top: 30px;">
|
<el-col :span="6">
|
<div id="dt" style="font-size: 15px;">
|
<div>
|
<el-form-item :label="$t('hellow.bottomRemove')" :required="true" style="width: 20vw;">
|
<el-input :placeholder="$t('hellow.bottomRemovea')" v-model="bottomRemove" autocomplete="off" />
|
</el-form-item>
|
</div>
|
</div>
|
</el-col>
|
<el-col :span="9">
|
<div id="dta" style="font-size: 15px;">
|
<div>
|
<el-form-item :label="$t('hellow.topRemove')" :required="true" style="width: 20vw;">
|
<el-input :placeholder="$t('hellow.topRemovea')" v-model="topRemove" autocomplete="off" />
|
</el-form-item>
|
</div>
|
</div>
|
</el-col>
|
</el-row>
|
<el-row style="margin-top: 30px;">
|
<el-col :span="6">
|
<div id="dt" style="font-size: 15px;">
|
<div>
|
<el-form-item :label="$t('hellow.leftRemove')" :required="true" style="width: 20vw;">
|
<el-input :placeholder="$t('hellow.leftRemovea')" v-model="leftRemove" autocomplete="off" />
|
</el-form-item>
|
</div>
|
</div>
|
</el-col>
|
<el-col :span="9">
|
<div id="dta" style="font-size: 15px;">
|
<div>
|
<el-form-item :label="$t('hellow.rightRemove')" :required="true" style="width: 20vw;">
|
<el-input :placeholder="$t('hellow.rightRemovea')" v-model="rightRemove" autocomplete="off" />
|
</el-form-item>
|
</div>
|
</div>
|
</el-col>
|
</el-row>
|
</el-form>
|
</el-form>
|
</div>
|
<template #footer>
|
<div id="dialog-footer">
|
<el-button type="primary" @click="handleConfirm">
|
{{ $t('basicData.confirm') }}
|
</el-button>
|
<el-button @click="add = false">{{ $t('basicData.cancel') }}</el-button>
|
</div>
|
</template>
|
</el-dialog>
|
<!-- 中空配方修改 -->
|
<el-dialog v-model="adda" top="23vh" width="55%" :title="$t('hellow.edithollowformula')">
|
<div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
|
<el-form label-width="200px">
|
<el-form label-width="200px" label-position="right">
|
<el-row style="margin-top: 10px;">
|
<el-col :span="6">
|
<div id="dt" style="font-size: 15px;">
|
<div>
|
<el-form-item :label="$t('hellow.formulaName')" :required="true" style="width: 20vw;">
|
<el-input :placeholder="$t('hellow.formulaNamea')" v-model="formulaName" autocomplete="off" />
|
</el-form-item>
|
</div>
|
</div>
|
</el-col>
|
<el-col :span="9">
|
<div id="dta" style="font-size: 15px;">
|
<div>
|
<el-form-item :label="$t('Mounting.removalmethoda')" :required="true" style="width: 20vw;">
|
<el-select v-model="filmRemove" clearable style="width: 270px"
|
:placeholder="$t('Mounting.removalmethod')">
|
<el-option :label="$t('Mounting.removal')" value="1"></el-option>
|
<el-option :label="$t('Mounting.noremoval')" value="0"></el-option>
|
</el-select>
|
</el-form-item>
|
</div>
|
</div>
|
</el-col>
|
</el-row>
|
<el-row style="margin-top: 30px;">
|
<el-col :span="6">
|
<div id="dt" style="font-size: 15px;">
|
<div>
|
<el-form-item :label="$t('hellow.bottomRemove')" :required="true" style="width: 20vw;">
|
<el-input :placeholder="$t('hellow.bottomRemovea')" v-model="bottomRemove" autocomplete="off" />
|
</el-form-item>
|
</div>
|
</div>
|
</el-col>
|
<el-col :span="9">
|
<div id="dta" style="font-size: 15px;">
|
<div>
|
<el-form-item :label="$t('hellow.topRemove')" :required="true" style="width: 20vw;">
|
<el-input :placeholder="$t('hellow.topRemovea')" v-model="topRemove" autocomplete="off" />
|
</el-form-item>
|
</div>
|
</div>
|
</el-col>
|
</el-row>
|
<el-row style="margin-top: 30px;">
|
<el-col :span="6">
|
<div id="dt" style="font-size: 15px;">
|
<div>
|
<el-form-item :label="$t('hellow.leftRemove')" :required="true" style="width: 20vw;">
|
<el-input :placeholder="$t('hellow.leftRemovea')" v-model="leftRemove" autocomplete="off" />
|
</el-form-item>
|
</div>
|
</div>
|
</el-col>
|
<el-col :span="9">
|
<div id="dta" style="font-size: 15px;">
|
<div>
|
<el-form-item :label="$t('hellow.rightRemove')" :required="true" style="width: 20vw;">
|
<el-input :placeholder="$t('hellow.rightRemovea')" v-model="rightRemove" autocomplete="off" />
|
</el-form-item>
|
</div>
|
</div>
|
</el-col>
|
</el-row>
|
</el-form>
|
</el-form>
|
</div>
|
<template #footer>
|
<div id="dialog-footer">
|
<el-button type="primary" @click="handledit">
|
{{ $t('basicData.confirm') }}
|
</el-button>
|
<el-button @click="adda = false">{{ $t('basicData.cancel') }}</el-button>
|
</div>
|
</template>
|
</el-dialog>
|
<!-- 领取任务 -->
|
<el-dialog v-model="dialogFormVisiblec" top="21vh" width="40%" :title="$t('hellow.claimquest')">
|
<div style="margin-left: 20px;margin-top: 10px;margin-bottom: 10px;">
|
<el-form label-width="100px">
|
<el-form label-width="210px" label-position="right">
|
<el-form-item :label="$t('hellow.ptotalpairQuantity')" :required="true" style="width: 25vw">
|
<el-input :placeholder="$t('hellow.cpairQuantity')" v-model="totalPairQuantity" autocomplete="off" />
|
</el-form-item>
|
<el-form-item :label="$t('hellow.route')" :required="true" style="width: 25vw;">
|
<el-select :placeholder="$t('hellow.line2')" disabled style="width: 270px" v-model="cell">
|
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
|
</el-select>
|
</el-form-item>
|
<el-form-item :label="$t('hellow.hollowformulp')" :required="true" style="width: 25vw;">
|
<el-select v-model="selectedFormulaName" filterable clearable :placeholder="$t('hellow.phollowformula')"
|
style="width: 270px" @change="handleFormulaChange">
|
<el-option v-for="item in titleformulaName" :key="item.id" :label="item.formulaName"
|
:value="item.formulaName" />
|
</el-select>
|
</el-form-item>
|
</el-form>
|
</el-form>
|
</div>
|
<template #footer>
|
<div id="dialog-footer">
|
<el-button type="primary" @click="finisha">
|
{{ $t('reportWork.sure') }}
|
</el-button>
|
<el-button @click="dialogFormVisiblec = false">{{ $t('reportWork.cancel') }}</el-button>
|
</div>
|
</template>
|
</el-dialog>
|
<!-- 强制出片 -->
|
<el-dialog v-model="dialogFormVisibled" top="21vh" width="40%" :title="$t('hellow.forcedfilming')">
|
<div style="margin-left: 20px;margin-top: 10px;margin-bottom: 10px;">
|
<el-form label-width="100px">
|
<el-form label-width="210px" label-position="right">
|
<el-form-item :label="$t('hellow.ptotalpairQuantity')" :required="true" style="width: 25vw">
|
<el-input :placeholder="$t('hellow.cpairQuantity')" v-model="totalPairQuantitya" autocomplete="off" />
|
</el-form-item>
|
<el-form-item :label="$t('hellow.route')" :required="true" style="width: 25vw;">
|
<el-select :placeholder="$t('hellow.line2')" disabled style="width: 270px" v-model="cella">
|
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
|
</el-select>
|
</el-form-item>
|
<el-form-item :label="$t('hellow.hollowformulp')" :required="true" style="width: 25vw;">
|
<el-select v-model="selectedFormulaName" filterable clearable :placeholder="$t('hellow.phollowformula')"
|
style="width: 270px" @change="handleFormulaChange">
|
<el-option v-for="item in titleformulaName" :key="item.id" :label="item.formulaName"
|
:value="item.formulaName" />
|
</el-select>
|
</el-form-item>
|
</el-form>
|
</el-form>
|
</div>
|
<template #footer>
|
<div id="dialog-footer">
|
<el-button type="primary" @click="finishb">
|
{{ $t('reportWork.sure') }}
|
</el-button>
|
<el-button @click="dialogFormVisibled = false">{{ $t('reportWork.cancel') }}</el-button>
|
</div>
|
</template>
|
</el-dialog>
|
<!-- 缺片详情 -->
|
<el-dialog v-model="dialogFormVisibleb" top="7vh" width="70%" height="500">
|
<div style="margin-top: -20px;text-align: center;margin-left: 400px;">
|
<el-form-item :label="$t('hellow.cardnumbera')" style="width: 14vw">
|
{{ currentRow.flowCardId }}
|
</el-form-item>
|
</div>
|
<el-table ref="table" style="margin-top: 20px;height: 400px;" :data="tableDatac"
|
:header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
|
<el-table-column prop="thickness" align="center" :label="$t('hellow.thickness')" min-width="80" />
|
<el-table-column prop="filmsId" align="center" :label="$t('hellow.coatingtypes')" min-width="80" />
|
<el-table-column prop="height" align="center" :label="$t('hellow.height')" min-width="80" />
|
<el-table-column prop="width" align="center" :label="$t('hellow.width')" min-width="80" />
|
<!-- <el-table-column prop="totalCount" align="center" :label="$t('hellow.totalnumber')" min-width="80"/> -->
|
<el-table-column prop="lackCount" align="center" :label="$t('hellow.missingnumber')" min-width="80" />
|
<!-- <el-table-column prop="damageCount" align="center" :label="$t('hellow.brokenpieces')" min-width="80"/> -->
|
<div style="float: right;margin-bottom: 5px;">
|
<el-pagination layout="prev, pager, next" :total="50" />
|
</div>
|
</el-table>
|
<div style="display: flex;margin-left: 40%;margin-top: 10px;">
|
<el-pagination background size="large" layout="prev, pager, next" :total="30" :current-page.sync="currentPage2"
|
@current-change="handlePageChange2" />
|
</div>
|
</el-dialog>
|
<!-- 开始任务 -->
|
<el-dialog v-model="blinda" top="30vh" width="25%" :title="$t('hellow.pstarttask')">
|
<template #footer>
|
<div id="dialog-footer">
|
<el-button type="primary" @click="handlea">
|
{{ $t('basicData.confirm') }}
|
</el-button>
|
<el-button @click="blinda = false">{{ $t('basicData.cancel') }}</el-button>
|
</div>
|
</template>
|
</el-dialog>
|
<!-- 暂停任务 -->
|
<el-dialog v-model="blindc" top="30vh" width="25%" :title="$t('hellow.pstopproject')">
|
<template #footer>
|
<div id="dialog-footer">
|
<el-button type="primary" @click="handlec">
|
{{ $t('basicData.confirm') }}e
|
</el-button>
|
<el-button @click="blindc = false">{{ $t('basicData.cancel') }}</el-button>
|
</div>
|
</template>
|
</el-dialog>
|
<!-- 打印标签 -->
|
<el-dialog v-model="blinde" top="30vh" width="25%" :title="$t('searchOrder.printlabels')">
|
<template #footer>
|
<div id="dialog-footer">
|
<el-select v-model="tag" filterable clearable :placeholder="$t('hellow.projectMsg2')" @change="changeTag"
|
style="width: 220px" @input="handleInputChange">
|
<el-option v-for="(tag, index) in tags" :key="index" :label="tag.name" :value="tag" />
|
</el-select>
|
<el-select v-model="stateValue" filterable clearable :placeholder="$t('screendisplay.pchoice')"
|
style="width: 220px" @input="handleInputChange">
|
<el-option v-for="item in stateOptions" :key="item.value" :label="item.label" :value="item.value" />
|
</el-select>
|
<el-button type="primary" @click="labelPrint = true">
|
{{ $t('processCard.printing') }}
|
</el-button>
|
<el-button @click="blinde = false">{{ $t('basicData.cancel') }}</el-button>
|
</div>
|
</template>
|
</el-dialog>
|
<el-dialog v-model="labelPrint" style="width: 80%; " destroy-on-close>
|
<el-button :icon="Printer" circle @click="printOrder(1)">{{ $t('processCard.printing') }}</el-button>
|
<print-custom-label-x-j id="childLabel" :faceOrientation="stateValue" :lableType="1" :list="listFlow"
|
:lastList='lastList' :type="tag.name" style="width: 100%;height: 100%" />
|
</el-dialog>
|
<!-- 预览 -->
|
<el-dialog v-model="dialogFormVisiblee" top="24vh" width="25%" :title="$t('hellow.reviewproject')">
|
<div style="margin-left: 50px;margin-bottom: 10px;">
|
<el-form-item :label="$t('basicData.projectnumber')" :required="true">
|
<el-select v-model="selectedProjectNo" filterable clearable :placeholder="$t('hellow.plselectproject')"
|
style="width: 260px">
|
<el-option v-for="item in titleSelectJson.processType" :key="item.value" :label="item.value"
|
:value="item.value" />
|
</el-select>
|
</el-form-item>
|
</div>
|
<template #footer>
|
<div id="dialog-footer">
|
<el-button type="primary" @click="handleup">
|
{{ $t('basicData.confirm') }}
|
</el-button>
|
<el-button @click="dialogFormVisiblee = false">{{ $t('basicData.cancel') }}</el-button>
|
</div>
|
</template>
|
</el-dialog>
|
<!-- 中空配方 -->
|
<el-dialog v-model="mulan" top="15vh" width="70%" :title="$t('hellow.hollowformula')">
|
<el-button id="searchButton" type="primary" @click="openAddDialog">
|
{{ $t('basicData.add') }}
|
</el-button>
|
<el-table ref="table" style="margin-top: 20px;height: 400px;" :data="tableDatax"
|
:header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
|
<el-table-column prop="formulaName" fixed align="center" :label="$t('hellow.formulaNamep')" />
|
<el-table-column prop="filmRemove" align="center" :label="$t('Mounting.removalmethodp')" min-width="110">
|
<template #default="scope">
|
<el-tag :type="getcasOnea(scope.row.filmRemove)">
|
{{ getStatuscasOnea(scope.row.filmRemove) }}
|
</el-tag>
|
</template>
|
</el-table-column>
|
<el-table-column prop="topRemove" align="center" :label="$t('hellow.topRemovep')"> </el-table-column>
|
<el-table-column prop="bottomRemove" align="center" :label="$t('hellow.bottomRemovep')"> </el-table-column>
|
<el-table-column prop="leftRemove" align="center" :label="$t('hellow.leftRemovep')"> </el-table-column>
|
<el-table-column prop="rightRemove" align="center" :label="$t('hellow.rightRemovep')"> </el-table-column>
|
<el-table-column fixed="right" :label="$t('productStock.operate')" align="center" width="270">
|
<template #default="scope">
|
<el-button type="text" plain @click="handleEdit(scope.row)">{{ $t('productStock.exit') }}</el-button>
|
<el-button type="text" plain @click="opena(scope.row)">{{ $t('productStock.delete') }}</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
<template #footer>
|
<div id="dialog-footer">
|
<el-button @click="mulan = false">{{ $t('large.close') }}</el-button>
|
</div>
|
</template>
|
</el-dialog>
|
<!-- 历史任务 -->
|
<el-dialog v-model="blindb" top="5vh" width="95%" @close="iframeUrl = ''">
|
<iframe :src="iframeUrl" marginwidth="2000px" marginheight="2000px" width="100%" height="750px"
|
frameborder="0"></iframe>
|
</el-dialog>
|
</template>
|
<script setup>
|
import { CircleCheck, Download, Printer } from "@element-plus/icons-vue/global";
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
import { onBeforeUnmount, onMounted, onUnmounted, ref, reactive, watch, computed } from "vue";
|
import request from "@/utils/request"
|
import requestErp from "@/utils/requestErp"
|
import { host, WebSocketHost } from '@/utils/constants'
|
import { closeWebSocket, initializeWebSocket } from '@/utils/WebSocketService'
|
import PrintCustomLabelXJ from './PrintCustomLabelTwo.vue'
|
import { useI18n } from 'vue-i18n'
|
const { t } = useI18n()
|
const blinda = ref(false)
|
const blindb = ref(false)
|
const blindc = ref(false)
|
const mulan = ref(false)
|
const activeTab = ref('')
|
const tabList = ref([])
|
const internalInstance = getCurrentInstance()
|
const tableDataa = ref([])
|
const tableDatab = ref([])
|
const tableDatac = ref([])
|
const tableDatax = ref([])
|
const cell = ref('')
|
const cella = ref('')
|
const selectedProjectNo = ref('')
|
const totalPairQuantity = ref('')
|
const totalPairQuantitya = ref('')
|
const bottomRemove = ref('')
|
const filmRemove = ref('')
|
const formulaName = ref('')
|
const leftRemove = ref('')
|
const thickness = ref('')
|
const rightRemove = ref('')
|
const topRemove = ref('')
|
const filmsId = ref('')
|
const pairTotal = ref()
|
const productName = ref('')
|
const customerName = ref('')
|
const flowCardId = ref('')
|
const freetwo = ref('#911005');
|
const dialogFormVisiblea = ref(false)
|
const dialogFormVisibleb = ref(false)
|
const dialogFormVisiblec = ref(false)
|
const dialogFormVisibled = ref(false)
|
const dialogFormVisiblee = ref(false)
|
const add = ref(false)
|
const adda = ref(false)
|
const currentPage2 = ref(1)
|
const currentRow = reactive({});
|
const formattedProcessType = ref([]);
|
const selectedFormulaName = ref('');
|
let selectedFormulaId = ref(null);
|
const formulaNameid = ref({ id: null });
|
const titleformulaName = ref({ formulaName: [], formulaId: [] });
|
const titleSelectJson = ref({ processType: [] });
|
const iframeUrl = ref('');
|
const handlehistorical = (row) => {
|
blindb.value = true;
|
iframeUrl.value = `${window.location.origin}/#/hollow/hellowquiptwohistory`;
|
};
|
const options = [
|
{
|
value: 930,
|
label: t('hellow.line1'),
|
},
|
{
|
value: 931,
|
label: t('hellow.line2'),
|
}
|
]
|
|
const stateValue = ref('')
|
const stateOptions = [
|
{
|
value: t('processCard.thisIsTheIndoorSurface'),
|
label: t('processCard.thisIsTheIndoorSurface'),
|
},
|
{
|
value: t('processCard.thisSideIsOutsideTheRoom'),
|
label: t('processCard.thisSideIsOutsideTheRoom'),
|
},
|
]
|
const labelPrint = ref(false);
|
const listFlow = ref([])
|
|
// let labelRow = ref({
|
// list: null,//勾选的数据
|
// faceOrientation: null,//内外面
|
// type: null,//标签模板
|
// lableType: null,//标签类型
|
// dataType: null,
|
// landingSequence: null
|
// })
|
|
let socket = null;
|
const socketUrl = `ws://${WebSocketHost}:${host}/api/hollowGlass/api/talk/HollowGlassTwo`;
|
const currentPage = ref(parseInt(window.localStorage.getItem('currentPage')) || 1);
|
watch(() => currentPage.value, (newVal) => {
|
window.localStorage.setItem('currentPage', newVal);
|
});
|
const currentPageKey = computed(() => `93${currentPage.value - 1}`);
|
const handlePageChange1 = (newPage) => {
|
currentPage.value = newPage;
|
};
|
const handlePageChange2 = (newPage) => {
|
currentPage2.value = newPage;
|
fetchFlowBind(currentRow.flowCardId, currentPage2.value);
|
};
|
const handleMessage = (data) => {
|
const rawData = data.queueInfo[0]
|
const formattedData = Object.entries(rawData).map(([key, data]) => ({
|
title: key,
|
tableDataa: Array.isArray(data) ? data : [data]
|
}));
|
tabList.value = formattedData;
|
if (tabList.value.length > 0) {
|
activeTab.value = tabList.value[0].title;
|
}
|
internalInstance.ctx.$forceUpdate();
|
try {
|
const allPageData = data;
|
const currentPageKeyValue = currentPageKey.value;
|
const currentPageData = allPageData[currentPageKeyValue];
|
if (data.freeRequest != null) {
|
freetwo.value = data.freeRequest[0] == true ? 'green' : '#911005';
|
}
|
} catch (error) {
|
}
|
};
|
onMounted(() => {
|
socket = initializeWebSocket(socketUrl, handleMessage);
|
window.localStorage.setItem('flowCardId', '')
|
});
|
onUnmounted(() => {
|
if (socket) {
|
closeWebSocket(socket);
|
}
|
});
|
function getcasOnea(filmRemove) {
|
switch (filmRemove) {
|
case 1:
|
return 'success';
|
case 0:
|
return 'warning';
|
default:
|
return 'info';
|
}
|
}
|
function getStatuscasOnea(filmRemove) {
|
switch (filmRemove) {
|
case 1:
|
return t('Mounting.removal');
|
case 0:
|
return t('Mounting.noremoval');
|
default:
|
return '';
|
}
|
}
|
// 开始任务
|
const handleBinda = (row) => {
|
blinda.value = true;
|
};
|
// 暂停任务
|
const handleBindc = (row) => {
|
blindc.value = true;
|
};
|
const handleBinde = (row) => {
|
blinde.value = true;
|
getTags();
|
hiprint.init();
|
};
|
const removalMethodMap = {
|
1: t('Mounting.removal'),
|
0: t('Mounting.noremoval')
|
};
|
// 处理编辑按钮点击
|
function handleEdit(row) {
|
formulaName.value = row.formulaName;
|
filmRemove.value = removalMethodMap[row.filmRemove];
|
bottomRemove.value = row.bottomRemove;
|
leftRemove.value = row.leftRemove;
|
rightRemove.value = row.rightRemove;
|
topRemove.value = row.topRemove;
|
adda.value = true;
|
}
|
function openAddDialog() {
|
formulaName.value = '';
|
filmRemove.value = '';
|
bottomRemove.value = '';
|
leftRemove.value = '';
|
rightRemove.value = '';
|
topRemove.value = '';
|
add.value = true;
|
}
|
const handlezhiban = () => {
|
dialogFormVisiblea.value = true;
|
fetchFlowCardId();
|
};
|
const handleormulan = () => {
|
mulan.value = true;
|
fetchmulan();
|
};
|
// 预览
|
const selectproject = () => {
|
dialogFormVisiblee.value = true;
|
selectgong();
|
};
|
// 缺片详情
|
const handleBindRack = (row) => {
|
currentPage2.value = 1;
|
const { flowCardId } = row;
|
currentRow.flowCardId = row.flowCardId;
|
dialogFormVisibleb.value = true;
|
fetchFlowBind(flowCardId, currentPage2.value);
|
};
|
// 领取任务
|
const handletake = (row) => {
|
window.localStorage.setItem('flowCardId', row.flowCardId)
|
dialogFormVisiblec.value = true;
|
fetchmulan()
|
};
|
// 强制出片
|
const handleout = (row) => {
|
window.localStorage.setItem('flowCardId', row.flowCardId)
|
dialogFormVisibled.value = true;
|
fetchmulan()
|
};
|
// 创建任务
|
const fetchFlowCardId = async () => {
|
try {
|
const response = await request.post('/hollowGlass/hollowGlassRelationInfo/queryHollowAllFlowCard', {
|
deviceId: 0,
|
filmsId: '',
|
flowCardId: '',
|
thickness: 0,
|
});
|
if (response.code == 200) {
|
ElMessage.success(response.message);
|
tableDatab.value = response.data;
|
pairTotal.value = response.data[0].pairTotalCount;
|
} else {
|
}
|
} catch (error) {
|
}
|
};
|
function tableRowClassName({ row }) {
|
if (row.isThroughSlot == true) {
|
return 'row-red-background';
|
}
|
return '';
|
}
|
function nestedTableRowClassName(parentRow, row) {
|
if (parentRow.isThroughSlot == true) {
|
return 'row-red-background';
|
}
|
return '';
|
}
|
const fetchFlowCardsearch = async () => {
|
try {
|
const response = await request.post('/hollowGlass/hollowGlassRelationInfo/queryHollowAllFlowCard', {
|
filmsId: filmsId.value,
|
flowCardId: flowCardId.value,
|
thickness: thickness.value
|
});
|
if (response.code == 200) {
|
ElMessage.success(response.message);
|
tableDatab.value = response.data;
|
pairTotal.value = response.data[0].pairTotalCount;
|
} else {
|
}
|
} catch (error) {
|
}
|
};
|
// 中空配方
|
const fetchmulan = async () => {
|
try {
|
var url = "/hollowGlass/hollowFormulaDetails/listFormulaDetails?keyword=" + '';
|
const response = await request.post(url)
|
if (response.code == 200) {
|
ElMessage.success(response.message);
|
tableDatax.value = response.data;
|
titleformulaName.value = response.data.map(item => ({ formulaId: item.id, formulaName: item.formulaName }));
|
} else {
|
}
|
} catch (error) {
|
}
|
};
|
const handleFormulaChange = (value) => {
|
const selectedItem = titleformulaName.value.find(item => item.formulaName === value);
|
if (selectedItem) {
|
formulaNameid.value = { id: selectedItem.formulaId };
|
window.localStorage.setItem('id', formulaNameid.value.id)
|
} else {
|
formulaNameid.value = { id: null };
|
}
|
};
|
// 中空配方添加
|
const handleConfirm = async () => {
|
if (!formulaName.value) {
|
ElMessage.error(t('hellow.formulaNamea'))
|
return
|
}
|
if (!filmRemove.value) {
|
ElMessage.error(t('Mounting.removalmethod'))
|
return
|
}
|
if (!bottomRemove.value) {
|
ElMessage.error(t('hellow.bottomRemovea'))
|
return
|
}
|
if (!topRemove.value) {
|
ElMessage.error(t('hellow.topRemovea'))
|
return
|
}
|
if (!leftRemove.value) {
|
ElMessage.error(t('hellow.leftRemovea'))
|
return
|
}
|
if (!rightRemove.value) {
|
ElMessage.error(t('hellow.rightRemovea'))
|
return
|
}
|
try {
|
const response = await request.post('/hollowGlass/hollowFormulaDetails/saveFormulaDetails', {
|
formulaName: formulaName.value,
|
filmRemove: filmRemove.value,
|
bottomRemove: bottomRemove.value,
|
leftRemove: leftRemove.value,
|
rightRemove: rightRemove.value,
|
topRemove: topRemove.value,
|
});
|
if (response.code == 200) {
|
ElMessage.success(response.message);
|
tableDatax.value = response.data;
|
add.value = false
|
formulaName.value = '';
|
filmRemove.value = '';
|
bottomRemove.value = '';
|
leftRemove.value = '';
|
rightRemove.value = '';
|
topRemove.value = '';
|
fetchmulan()
|
} else {
|
}
|
} catch (error) {
|
}
|
};
|
const removalMethodMapa = {
|
[t('Mounting.removal')]: 1,
|
[t('Mounting.noremoval')]: 0,
|
};
|
// 中空配方修改
|
const handledit = async () => {
|
if (!formulaName.value) {
|
ElMessage.error(t('hellow.formulaNamea'))
|
return
|
}
|
if (!filmRemove.value) {
|
ElMessage.error(t('Mounting.removalmethod'))
|
return
|
}
|
if (!bottomRemove.value) {
|
ElMessage.error(t('hellow.bottomRemovea'))
|
return
|
}
|
if (!topRemove.value) {
|
ElMessage.error(t('hellow.topRemovea'))
|
return
|
}
|
if (!leftRemove.value) {
|
ElMessage.error(t('hellow.leftRemovea'))
|
return
|
}
|
if (!rightRemove.value) {
|
ElMessage.error(t('hellow.rightRemovea'))
|
return
|
}
|
try {
|
const response = await request.post('/hollowGlass/hollowFormulaDetails/updateFormulaDetails', {
|
formulaName: formulaName.value,
|
filmRemove: removalMethodMapa[filmRemove.value],
|
bottomRemove: bottomRemove.value,
|
leftRemove: leftRemove.value,
|
rightRemove: rightRemove.value,
|
topRemove: topRemove.value,
|
});
|
if (response.code == 200) {
|
ElMessage.success(response.message);
|
adda.value = false
|
fetchmulan()
|
} else {
|
}
|
} catch (error) {
|
}
|
};
|
// 中空配方删除
|
const opena = async (row) => {
|
try {
|
const confirmResult = await ElMessageBox.confirm(
|
t('hellow.hollowformuldet'),
|
t('productStock.prompt'),
|
{
|
confirmButtonText: t('productStock.yes'),
|
cancelButtonText: t('productStock.cancel'),
|
type: 'warning',
|
}
|
);
|
if (confirmResult === 'confirm') {
|
var url = "/hollowGlass/hollowFormulaDetails/deleteFormulaDetails?idList=" + row.id;
|
const response = await request.post(url)
|
if (response.code === 200) {
|
ElMessage.success(response.message);
|
fetchmulan()
|
} else {
|
}
|
}
|
} catch (error) {
|
}
|
};
|
// 工程号
|
const selectgong = async () => {
|
try {
|
var url = "/hollowGlass/hollowGlassOutRelationInfo/hollowTaskList?cell=" + 931;
|
const response = await request.post(url)
|
if (response.code == 200) {
|
const processTypes = response.data.map((projectNo, index) => ({
|
value: projectNo,
|
label: projectNo
|
}));
|
titleSelectJson.value.processType = processTypes;
|
} else {
|
}
|
} catch (error) {
|
}
|
};
|
// 预览
|
const handleup = async () => {
|
if (!selectedProjectNo.value) {
|
ElMessage.error(t('hellow.plselectproject'))
|
return
|
}
|
try {
|
var url = "/hollowGlass/hollowGlassOutRelationInfo/appointHollowTaskDetails?cell=" + 931 + "&flowCardId=" + selectedProjectNo.value;
|
window.localStorage.setItem('flowCardId', selectedProjectNo.value)
|
const response = await request.post(url)
|
if (response.code == 200) {
|
ElMessage.success(response.message);
|
tableDataa.value = response.data;
|
dialogFormVisiblee.value = false
|
selectedProjectNo.value = ''
|
closeWebSocket(socket);
|
|
const summary = response.data.reduce((map, item) => {
|
const key = `${item.hollowSequence}`;
|
if (!map[key]) {
|
map[key] = {
|
printQuantity: 1,
|
order_number: item.glassType,
|
processId: item.flowCardId,
|
orderId:item.flowCardId.slice(0, 10)
|
};
|
}
|
return map;
|
}, {});
|
listFlow.value = Object.values(summary);
|
|
} else {
|
}
|
} catch (error) {
|
}
|
};
|
const parseData = (rawData) => {
|
return Object.entries(rawData).map(([compositeKey, records]) => {
|
const [projectNumber, productName] = compositeKey.split(':');
|
return {
|
projectNumber,
|
productname: productName,
|
records: records.map(record => ({
|
...record,
|
}))
|
};
|
});
|
};
|
const fetchFlowBind = async (flowCardId, page) => {
|
try {
|
var url = "/hollowGlass/hollowGlassRelationInfo/queryLackByFlowCard?flowCardId=" + flowCardId + "&layer=" + 1;
|
const response = await request.post(url)
|
if (response.code == 200) {
|
tableDatac.value = response.data[page];
|
ElMessage.success(response.message);
|
} else {
|
}
|
} catch (error) {
|
}
|
}
|
// 开始任务
|
const handlea = async () => {
|
try {
|
let flowCardId = window.localStorage.getItem('flowCardId')
|
if (flowCardId !== '') {
|
var url = "/hollowGlass/hollowGlassOutRelationInfo/startTask?cell=" + 931 ;
|
const response = await request.post(url)
|
if (response.code == 200) {
|
ElMessage.success(response.message);
|
blinda.value = false;
|
} else {
|
}
|
} else {
|
ElMessage({
|
type: 'info',
|
message: t('basicData.infonull'),
|
})
|
}
|
} catch (error) {
|
}
|
}
|
// 暂停任务
|
const handlec = async () => {
|
try {
|
let flowCardId = window.localStorage.getItem('flowCardId')
|
if (flowCardId !== '') {
|
var url = "/hollowGlass/hollowGlassOutRelationInfo/pauseTask?cell=" + 931;
|
const response = await request.post(url)
|
if (response.code == 200) {
|
ElMessage.success(response.message);
|
blindc.value = false;
|
} else {
|
}
|
} else {
|
ElMessage({
|
type: 'info',
|
message: t('basicData.infonull'),
|
})
|
}
|
} catch (error) {
|
}
|
}
|
// 删除任务
|
const handleDelete = async (flowCardId) => {
|
try {
|
const confirmResult = await ElMessageBox.confirm(
|
t('hellow.hollowtaskdet'),
|
t('workOrder.prompt'),
|
{
|
confirmButtonText: t('workOrder.yes'),
|
cancelButtonText: t('workOrder.cancel'),
|
type: 'warning',
|
}
|
);
|
if (confirmResult === 'confirm') {
|
var url = "/hollowGlass/hollowGlassOutRelationInfo/deleteHollowTaskDetails?flowCardId=" + flowCardId + "&cell=" + 930;
|
const response = await request.post(url)
|
if (response.code === 200) {
|
ElMessage.success(response.message);
|
} else {
|
ElMessage.error(response.msg);
|
}
|
}
|
} catch (error) {
|
}
|
};
|
// 领取任务
|
const finisha = async () => {
|
let flowCardId = window.localStorage.getItem('flowCardId')
|
let id = window.localStorage.getItem('id')
|
if (!totalPairQuantity.value) {
|
ElMessage.error(t('hellow.cpairQuantity'))
|
return
|
}
|
if (!selectedFormulaName.value) {
|
ElMessage.error(t('hellow.phollowformula'))
|
return
|
}
|
try {
|
var url = "/hollowGlass/hollowGlassOutRelationInfo/receiveTask?cell=" + 931 + "&flowCardId=" + flowCardId + "&totalPairQuantity=" + totalPairQuantity.value + "&formulaId=" + id;
|
const response = await request.post(url)
|
if (response.code == 200) {
|
ElMessage.success(response.message);
|
dialogFormVisiblec.value = false;
|
cell.value = '';
|
formulaName.value = '';
|
totalPairQuantity.value = '';
|
} else {
|
}
|
} catch (error) {
|
}
|
}
|
// 强制出片
|
const finishb = async () => {
|
let flowCardId = window.localStorage.getItem('flowCardId')
|
let id = window.localStorage.getItem('id')
|
if (!totalPairQuantitya.value) {
|
ElMessage.error(t('hellow.cpairQuantity'))
|
return
|
}
|
if (!selectedFormulaName.value) {
|
ElMessage.error(t('hellow.phollowformula'))
|
return
|
}
|
try {
|
var url = "/hollowGlass/hollowGlassOutRelationInfo/forceOutGlass?cell=" + 931 + "&flowCardId=" + flowCardId + "&totalPairQuantity=" + totalPairQuantitya.value + "&formulaId=" + id;
|
const response = await request.post(url)
|
if (response.code == 200) {
|
ElMessage.success(response.message);
|
dialogFormVisibled.value = false;
|
cella.value = '';
|
totalPairQuantitya.value = '';
|
} else {
|
}
|
} catch (error) {
|
}
|
}
|
|
onBeforeUnmount(() => {
|
closeWebSocket();
|
});
|
|
import { hiprint } from "vue-plugin-hiprint";
|
let hiprintTemplate = ref()
|
const blinde = ref(false)
|
const changeTag = () => {
|
hiprintTemplate.value = new hiprint.PrintTemplate({});
|
const json = JSON.parse(tag.value.value)
|
hiprintTemplate.value.update(json)
|
}
|
|
const getTags = async () => {
|
try {
|
const response = await requestErp.get('tagStyle/getTagList')
|
if (response.code == 200) {
|
tags.value = response.data
|
ElMessage.success(response.message);
|
}
|
} catch (error) {
|
}
|
}
|
|
|
|
const printOrder = (type) => {
|
const list = hiprintTemplate.value.getJson()
|
list.panels[0].printElements.forEach(element => {
|
element.options.fontFamily = 'Arial'
|
})
|
console.log(lastList.value)
|
let object = lastList.value
|
//判断是否为表格
|
let columnsNum = null
|
if (list.panels[0].printElements[0].options.field === 'table') {
|
object = { table: lastList.value }
|
columnsNum = (list.panels[0].printElements[0].options.gridColumns || 1)
|
}
|
hiprintTemplate.value.print(object)
|
|
}
|
let lastList = ref([])
|
const tags = ref([])
|
|
const tag = ref({
|
id: null,
|
name: null,
|
type: 1,
|
tagWidth: null,
|
tagHeight: null,
|
value: null,
|
size: null
|
})
|
|
</script>
|
<style scoped>
|
#dt {
|
display: block;
|
float: left;
|
line-height: 20px;
|
margin-left: 10px;
|
}
|
|
#dta {
|
display: block;
|
float: left;
|
line-height: 20px;
|
margin-left: 70%;
|
}
|
|
#dialog-footer {
|
text-align: center;
|
margin-top: -5px;
|
}
|
|
#dotClass {
|
display: flex;
|
margin-left: 20px;
|
size: 50px;
|
margin-top: 20px;
|
margin-bottom: 10px;
|
}
|
|
::v-deep(.row-red-background) {
|
background-color: rgb(224.6, 242.8, 215.6) !important;
|
}
|
</style>
|