<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="info" @click="handleBindd">{{
|
$t('hellow.taskdet')
|
}}
|
</el-button>
|
<el-button style="margin-left: 10px;" id="searchButton" type="warning" @click="handleBindc">{{
|
$t('hellow.stopproject')
|
}}
|
</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-table height="650" ref="table" :data="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 ? "等待出片" : "出片完成" }}
|
</template>
|
</el-table-column>
|
</el-table>
|
<!-- <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="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>
|
<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="pairCount" align="center" :label="$t('hellow.pairsnumber')" min-width="80"/>
|
<el-table-column prop="damageCount" align="center" :label="$t('hellow.damagenumber')" 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 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') }}
|
</el-button>
|
<el-button @click="blindc = false">{{ $t('basicData.cancel') }}</el-button>
|
</div>
|
</template>
|
</el-dialog>
|
<!-- 删除任务 -->
|
<el-dialog v-model="blindd" top="30vh" width="25%" :title="$t('hellow.hollowtaskdet')">
|
<template #footer>
|
<div id="dialog-footer">
|
<el-button type="primary" @click="handled">
|
{{ $t('basicData.confirm') }}
|
</el-button>
|
<el-button @click="blindd = false">{{ $t('basicData.cancel') }}</el-button>
|
</div>
|
</template>
|
</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('basicData.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 { ElMessage, ElMessageBox } from 'element-plus'
|
import {onBeforeUnmount, onMounted, onUnmounted, ref, reactive, watch, computed} from "vue";
|
import request from "@/utils/request"
|
import {host, WebSocketHost} from '@/utils/constants'
|
import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
|
import {useI18n} from 'vue-i18n'
|
const {t} = useI18n()
|
const blinda = ref(false)
|
const blindb = ref(false)
|
const blindc = ref(false)
|
const blindd = ref(false)
|
const mulan = ref(false)
|
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 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'),
|
}
|
]
|
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) => {
|
try {
|
tableDataa.value = data.queueInfo[0];
|
const allPageData = data;
|
const currentPageKeyValue = currentPageKey.value;
|
const currentPageData = allPageData[currentPageKeyValue];
|
if (data.freeRequest != null) {
|
freetwo.value = data.freeRequest[0] == true ? 'green' : '#911005';
|
}
|
// if (currentPageData && Array.isArray(currentPageData) && currentPageData.length > 0) {
|
// tableDataa.value = currentPageData[0];
|
// } else {
|
// console.warn('No data for the current page key:', currentPageKeyValue);
|
// }
|
} 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 handleBindd = (row) => {
|
blindd.value = true;
|
};
|
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;
|
} else {
|
ElMessage.error('Failed to fetch data');
|
}
|
} catch (error) {
|
ElMessage.error('Error fetching data');
|
}
|
};
|
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;
|
} else {
|
ElMessage.error('Failed to fetch data');
|
}
|
} catch (error) {
|
ElMessage.error('Error fetching data');
|
}
|
};
|
// 中空配方
|
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 {
|
ElMessage.error('Failed to fetch data');
|
}
|
} catch (error) {
|
ElMessage.error('Error fetching data');
|
}
|
};
|
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 () => {
|
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 {
|
ElMessage.error('Failed to fetch data');
|
}
|
} catch (error) {
|
ElMessage.error('Error fetching data');
|
}
|
};
|
const removalMethodMapa = {
|
[t('Mounting.removal')]: 1,
|
[t('Mounting.noremoval')]: 0,
|
};
|
// 中空配方修改
|
const handledit = async () => {
|
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 {
|
ElMessage.error('Failed to fetch data');
|
}
|
} catch (error) {
|
ElMessage.error('Error fetching data');
|
}
|
};
|
// 中空配方删除
|
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 {
|
ElMessage.error(response.msg);
|
}
|
}
|
} 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 {
|
ElMessage.error('Failed to fetch data');
|
}
|
} catch (error) {
|
ElMessage.error('Error fetching data');
|
}
|
};
|
// 预览
|
const handleup = async () => {
|
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);
|
} else {
|
ElMessage.error('Failed to fetch data');
|
}
|
} catch (error) {
|
ElMessage.error('Error fetching data');
|
}
|
};
|
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 {
|
ElMessage.error(response.message);
|
}
|
} catch (error) {
|
}
|
}
|
// 开始任务
|
const handlea = async () => {
|
try {
|
let flowCardId = window.localStorage.getItem('flowCardId')
|
if (flowCardId !== '') {
|
var url="/hollowGlass/hollowGlassOutRelationInfo/startTask?flowCardId="+flowCardId + "&cell=" + 931;
|
const response = await request.post(url)
|
if (response.code == 200) {
|
ElMessage.success(response.message);
|
blinda.value = false;
|
} else {
|
ElMessage.error(response.message);
|
}
|
} 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?flowCardId="+flowCardId + "&cell=" + 931;
|
const response = await request.post(url)
|
if (response.code == 200) {
|
ElMessage.success(response.message);
|
blindc.value = false;
|
} else {
|
ElMessage.error(response.message);
|
}
|
} else {
|
ElMessage({
|
type: 'info',
|
message: t('basicData.infonull'),
|
})
|
}
|
} catch (error) {
|
}
|
}
|
// 删除任务
|
const handled = async () => {
|
try {
|
let flowCardId = window.localStorage.getItem('flowCardId')
|
if (flowCardId !== '') {
|
var url="/hollowGlass/hollowGlassOutRelationInfo/deleteHollowTaskDetails?flowCardId="+flowCardId + "&cell=" + 931;
|
const response = await request.post(url)
|
if (response.code == 200) {
|
ElMessage.success(response.message);
|
blindd.value = false;
|
} else {
|
ElMessage.error(response.message);
|
}
|
} else {
|
ElMessage({
|
type: 'info',
|
message: t('basicData.infonull'),
|
})
|
}
|
} catch (error) {
|
}
|
}
|
// 领取任务
|
const finisha = async () => {
|
let flowCardId = window.localStorage.getItem('flowCardId')
|
let id = window.localStorage.getItem('id')
|
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 {
|
ElMessage.error(response.message);
|
}
|
} catch (error) {
|
}
|
}
|
// 强制出片
|
const finishb = async () => {
|
let flowCardId = window.localStorage.getItem('flowCardId')
|
let id = window.localStorage.getItem('id')
|
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 {
|
ElMessage.error(response.message);
|
}
|
} catch (error) {
|
}
|
}
|
|
onBeforeUnmount(() => {
|
closeWebSocket();
|
});
|
</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>
|