You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2080 lines
86 KiB
2080 lines
86 KiB
<template>
|
|
<div class="mod-config" v-highlight-container>
|
|
<el-form :inline="true" label-position="top" style="margin-top: 1px;" >
|
|
<el-row :gutter="20">
|
|
<el-col :span="18">
|
|
<el-form-item label="工艺/Process">
|
|
<dict-data-select
|
|
v-if="searchData.site"
|
|
:site="searchData.site"
|
|
v-model="sheetData.process"
|
|
:use-default-value="false"
|
|
dict-type="bm_process"
|
|
style="width: 120px"
|
|
:disabled="plmTechnicalSpecificationSheetFlag('process') === 'N'||readonly">
|
|
</dict-data-select>
|
|
</el-form-item>
|
|
<!-- <el-form-item>
|
|
<span slot="label" v-if="plmTechnicalSpecificationSheetFlag('overPrintOperator') === 'N'">热转移打印人员/Technician</span>
|
|
<span slot="label" v-else @click="getBaseList(1)"><a herf="#">热转移打印人员/Technician</a></span>
|
|
<el-input v-model="sheetData.overPrintOperatorName" ref="overPrintOperatorName" placeholder="请选择人员" readonly style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item>
|
|
<span slot="label" v-if="plmTechnicalSpecificationSheetFlag('printOperator') === 'N'">印刷人员/Technician</span>
|
|
<span slot="label" v-else @click="getBaseList(2)"><a herf="#">印刷人员/Technician</a></span>
|
|
<el-input v-model="sheetData.printOperatorName" ref="printOperatorName" placeholder="请选择人员" readonly style="width: 160px"></el-input>
|
|
</el-form-item>-->
|
|
<el-form-item label=" " v-if="!readonly">
|
|
<el-button type="primary" @click="searchTable(true)">刷新</el-button>
|
|
<el-button type="primary" @click="changeRouteRev()" v-if="((!ifDisableFlag && spForm.sp.includes(searchData.username) && baseForm.status === 'spz') || baseForm.status === 'cg' || superAdmin)">变更</el-button>
|
|
<el-button type="primary" @click="jumpRoute()">跳转至Routing</el-button>
|
|
</el-form-item>
|
|
<el-form-item label=" " v-if="!readonly">
|
|
<template v-if="isAuth('103002:bmSave')">
|
|
<template v-if="baseForm.status === 'cg' || (baseForm.status === 'spz' && ((spForm.sp && spForm.sp.includes(searchData.username)) || superAdmin))">
|
|
<el-button type="primary" @click="updateBMProcess()">保存数据</el-button>
|
|
</template>
|
|
</template>
|
|
<template v-if="superAdmin || (spForm.sp && spForm.sp.includes(searchData.username))">
|
|
<el-button v-if="baseForm.status === 'spz'" type="primary" :loading="submitLoading" @click="agreeSubmit">同意</el-button>
|
|
</template>
|
|
<template v-if="superAdmin || (spForm.sp && spForm.sp.includes(searchData.username))">
|
|
<el-button v-if="baseForm.status === 'spz' && baseForm.isReject === 'Y'" type="primary" @click="submitDataModal">驳回</el-button>
|
|
</template>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="3">
|
|
<div class="grid-content bg-purple">
|
|
<el-form-item label="当前节点/Status" style="width: 100%">
|
|
<el-input :readonly="readonly" v-model="spForm.nodeName" disabled></el-input>
|
|
</el-form-item>
|
|
</div>
|
|
</el-col>
|
|
<el-col :span="3">
|
|
<div class="grid-content bg-purple">
|
|
<el-form-item label="当前节点审批人/Authorizer" style="width: 100%">
|
|
<el-input :readonly="readonly" v-model="spForm.sp" disabled></el-input>
|
|
</el-form-item>
|
|
</div>
|
|
</el-col>
|
|
</el-row>
|
|
</el-form>
|
|
|
|
<!-- <el-form label-position="top" style="margin-top: 1px" v-if="searchData.buNo === 'RDC'">-->
|
|
<!-- <el-row :gutter="20" >-->
|
|
<!-- <el-col :span="24">-->
|
|
<!-- <div class="grid-content bg-purple">-->
|
|
<!-- <el-form-item :label="'过程及过程控制/Process and Production Control'">-->
|
|
<!-- <el-input-->
|
|
<!-- type="textarea"-->
|
|
<!-- :readonly="readonly"-->
|
|
<!-- v-model="dataForm.processDetail"-->
|
|
<!-- :rows="3"-->
|
|
<!-- resize='none'-->
|
|
<!-- maxlength="255"-->
|
|
<!-- show-word-limit-->
|
|
<!-- :disabled="ifDisableFlag"-->
|
|
<!-- style="height: 60px" >-->
|
|
<!-- </el-input>-->
|
|
<!-- </el-form-item>-->
|
|
<!-- </div>-->
|
|
<!-- </el-col>-->
|
|
<!-- </el-row>-->
|
|
<!-- <el-row :gutter="20" style="margin-top: 60px">-->
|
|
<!-- <el-col :span="6">-->
|
|
<!-- <div class="grid-content bg-purple">-->
|
|
<!-- <el-form-item :label="'是否提供胶条/Supply Adhesive Tape'">-->
|
|
<!-- <el-select clearable v-model="dataForm.supplyAdhesiveTape" :disabled="ifDisableFlag||readonly">-->
|
|
<!-- <el-option label="Yes" value="Y"></el-option>-->
|
|
<!-- <el-option label="No" value="N"></el-option>-->
|
|
<!-- </el-select>-->
|
|
<!-- </el-form-item>-->
|
|
<!-- </div>-->
|
|
<!-- </el-col>-->
|
|
<!-- <el-col :span="18">-->
|
|
<!-- <div class="grid-content bg-purple">-->
|
|
<!-- <el-form-item :label="'图稿/Drawing'">-->
|
|
<!-- <el-input :readonly="readonly" v-model="dataForm.routingDrawing" :disabled="ifDisableFlag"></el-input>-->
|
|
<!-- </el-form-item>-->
|
|
<!-- </div>-->
|
|
<!-- </el-col>-->
|
|
<!-- </el-row>-->
|
|
<!-- <el-row :gutter="20" >-->
|
|
<!-- <el-col :span="6">-->
|
|
<!-- <div class="grid-content bg-purple">-->
|
|
<!-- <el-form-item :label="'图稿版本/Drawing Revison'">-->
|
|
<!-- <el-input :readonly="readonly" v-model="dataForm.drawingRevison" :disabled="ifDisableFlag"></el-input>-->
|
|
<!-- </el-form-item>-->
|
|
<!-- </div>-->
|
|
<!-- </el-col>-->
|
|
<!-- <el-col :span="6">-->
|
|
<!-- <div class="grid-content bg-purple">-->
|
|
<!-- <el-form-item :label="'图稿日期/Drawing Date'">-->
|
|
<!-- <el-date-picker-->
|
|
<!-- v-model="searchData.drawingDate"-->
|
|
<!-- type="date"-->
|
|
<!-- value-format="yyyy-MM-dd"-->
|
|
<!-- :disabled="ifDisableFlag||readonly"-->
|
|
<!-- placeholder="选择日期">-->
|
|
<!-- </el-date-picker>-->
|
|
<!-- </el-form-item>-->
|
|
<!-- </div>-->
|
|
<!-- </el-col>-->
|
|
<!-- </el-row>-->
|
|
<!-- <el-row :gutter="20">-->
|
|
<!-- <el-col :span="24">-->
|
|
<!-- <div class="grid-content bg-purple">-->
|
|
<!-- <el-form-item :label="'作业说明/WI'">-->
|
|
<!-- <el-input-->
|
|
<!-- type="textarea"-->
|
|
<!-- :readonly="readonly"-->
|
|
<!-- v-model="dataForm.workInfo"-->
|
|
<!-- :rows="3"-->
|
|
<!-- resize='none'-->
|
|
<!-- maxlength="255"-->
|
|
<!-- show-word-limit-->
|
|
<!-- :disabled="ifDisableFlag"-->
|
|
<!-- style="height: 60px" >-->
|
|
<!-- </el-input>-->
|
|
<!-- </el-form-item>-->
|
|
<!-- </div>-->
|
|
<!-- </el-col>-->
|
|
<!-- </el-row>-->
|
|
<!-- <el-row :gutter="20" style="margin-top: 60px">-->
|
|
<!-- <el-col :span="6">-->
|
|
<!-- <div class="grid-content bg-purple">-->
|
|
<!-- <el-form-item :label="'作业说明版本/WI Revision'">-->
|
|
<!-- <el-input :readonly="readonly" v-model="dataForm.wiRevison" :disabled="ifDisableFlag"></el-input>-->
|
|
<!-- </el-form-item>-->
|
|
<!-- </div>-->
|
|
<!-- </el-col>-->
|
|
<!-- <el-col :span="6">-->
|
|
<!-- <div class="grid-content bg-purple">-->
|
|
<!-- <el-form-item :label="'作业说明日期/WI Date'">-->
|
|
<!-- <el-date-picker-->
|
|
<!-- v-model="searchData.wiDate"-->
|
|
<!-- type="date"-->
|
|
<!-- value-format="yyyy-MM-dd"-->
|
|
<!-- :disabled="ifDisableFlag||readonly"-->
|
|
<!-- placeholder="选择日期">-->
|
|
<!-- </el-date-picker>-->
|
|
<!-- </el-form-item>-->
|
|
<!-- </div>-->
|
|
<!-- </el-col>-->
|
|
<!-- </el-row>-->
|
|
<!-- <el-row :gutter="20">-->
|
|
<!-- <el-col :span="6">-->
|
|
<!-- <div class="grid-content bg-purple">-->
|
|
<!-- <el-form-item>-->
|
|
<!-- <span slot="label" v-if="readonly" @click="reviewEngineerChooseModal()">选择审查工程师/Select ME Review Engineer</span>-->
|
|
<!-- <span slot="label" v-else @click="reviewEngineerChooseModal()"><a herf="#">选择审查工程师/Select ME Review Engineer</a></span>-->
|
|
<!-- <el-input v-model="dataForm.reviewEngineer" readonly @focus="reviewEngineerChooseModal()"></el-input>-->
|
|
<!-- </el-form-item>-->
|
|
<!-- </div>-->
|
|
<!-- </el-col>-->
|
|
<!-- <el-col :span="6">-->
|
|
<!-- <div class="grid-content bg-purple">-->
|
|
<!-- <el-form-item >-->
|
|
<!-- <span slot="label" v-if="readonly" @click="peEngineerChooseModal()">选择PE工程师/Select PE Engineer</span>-->
|
|
<!-- <span slot="label" v-else @click="peEngineerChooseModal()"><a herf="#">选择PE工程师/Select PE Engineer</a></span>-->
|
|
<!-- <el-input v-model="dataForm.peEngineer" readonly @focus="peEngineerChooseModal()"></el-input>-->
|
|
<!-- </el-form-item>-->
|
|
<!-- </div>-->
|
|
<!-- </el-col>-->
|
|
<!-- <el-col :span="6">-->
|
|
<!-- <div class="grid-content bg-purple">-->
|
|
<!-- <el-form-item >-->
|
|
<!-- <span slot="label" v-if="readonly" @click="cqeModal()">选择CQE/Select CQE</span>-->
|
|
<!-- <span slot="label" v-else @click="cqeModal()"><a herf="#">选择CQE/Select CQE</a></span>-->
|
|
<!-- <el-input v-model="dataForm.cqe" readonly @focus="cqeModal()"></el-input>-->
|
|
<!-- </el-form-item>-->
|
|
<!-- </div>-->
|
|
<!-- </el-col>-->
|
|
<!-- </el-row>-->
|
|
<!-- <el-row :gutter="20">-->
|
|
<!-- <el-col :span="24">-->
|
|
<!-- <div class="grid-content bg-purple">-->
|
|
<!-- <el-form-item :label="'备注/Remark'">-->
|
|
<!-- <el-input-->
|
|
<!-- type="textarea"-->
|
|
<!-- :readonly="readonly"-->
|
|
<!-- v-model="dataForm.routingRemark"-->
|
|
<!-- :rows="3"-->
|
|
<!-- resize='none'-->
|
|
<!-- maxlength="255"-->
|
|
<!-- show-word-limit-->
|
|
<!-- :disabled="ifDisableFlag"-->
|
|
<!-- style="height: 60px" >-->
|
|
<!-- </el-input>-->
|
|
<!-- </el-form-item>-->
|
|
<!-- </div>-->
|
|
<!-- </el-col>-->
|
|
<!-- </el-row>-->
|
|
<!-- <el-row :gutter="20" style="margin-top: 60px">-->
|
|
<!-- <el-col :span="24">-->
|
|
<!-- <div class="grid-content bg-purple">-->
|
|
<!-- <el-form-item :label="'措施/Action'">-->
|
|
<!-- <el-input-->
|
|
<!-- type="textarea"-->
|
|
<!-- :readonly="readonly"-->
|
|
<!-- v-model="dataForm.routingAction"-->
|
|
<!-- :rows="3"-->
|
|
<!-- resize='none'-->
|
|
<!-- maxlength="255"-->
|
|
<!-- show-word-limit-->
|
|
<!-- :disabled="ifDisableFlag"-->
|
|
<!-- style="height: 60px" >-->
|
|
<!-- </el-input>-->
|
|
<!-- </el-form-item>-->
|
|
<!-- </div>-->
|
|
<!-- </el-col>-->
|
|
<!-- </el-row>-->
|
|
<!-- <el-form-item style="margin-top: 60px;text-align:center">-->
|
|
<!-- <el-button type="primary" @click="saveData()" v-if="!ifDisableFlag&&!readonly">保存</el-button>-->
|
|
<!-- </el-form-item>-->
|
|
<!-- </el-form>-->
|
|
|
|
<el-form v-if="searchData.buNo === 'Flexo'" label-position="top" style="margin-top: 1px">
|
|
<el-form :inline="true" label-position="top" style="margin-top: 1px;">
|
|
<el-form-item label="物料信息/Material">
|
|
<el-input :readonly="readonly" v-model="routeData.partNo" disabled style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="工艺路线类型/Routing Type">
|
|
<el-input :readonly="readonly" v-model="routeData.routingType" disabled style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="工艺路线版本/Routing Rev.">
|
|
<el-input :readonly="readonly" v-model="routeData.routingRevision" disabled style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="替代编码/Alternative No.">
|
|
<el-input :readonly="readonly" v-model="routeData.alternativeNo" disabled style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="单双面印刷/Simplex/Duplex">
|
|
<dict-data-select
|
|
:site="searchData.site"
|
|
v-if="searchData.site"
|
|
clearable
|
|
v-model="sheetData.simplexDuplex"
|
|
:use-default-value="false"
|
|
dict-type="bm_simplex_duplex"
|
|
style="width: 160px"
|
|
:disabled="plmTechnicalSpecificationSheetFlag('simplexDuplex') === 'N'||readonly">
|
|
</dict-data-select>
|
|
</el-form-item>
|
|
<el-form-item label="周长/Repeat">
|
|
<dict-data-select
|
|
:site="searchData.site"
|
|
v-if="searchData.site"
|
|
clearable
|
|
v-model="sheetData.repeat"
|
|
dict-type="bm_repeat"
|
|
style="width: 160px"
|
|
:disabled="plmTechnicalSpecificationSheetFlag('repeat') === 'N'||readonly">
|
|
</dict-data-select>
|
|
</el-form-item>
|
|
</el-form>
|
|
<el-form :inline="true" label-position="top" style="margin-top: 1px; margin-left: 0px;" >
|
|
<el-row :gutter="20">
|
|
<el-col :span="24">
|
|
<!-- <el-form-item label="标签尺寸/Label Size">-->
|
|
<!-- <el-input v-model="sheetData.labelSize" style="width: 120px" ></el-input>-->
|
|
<!-- </el-form-item>-->
|
|
<el-form-item label="标签长度/Label Length">
|
|
<el-input :readonly="readonly" v-model="sheetData.labelLength" :disabled="plmTechnicalSpecificationSheetFlag('labelLength') === 'N'" style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="标签宽度/Label Width">
|
|
<el-input :readonly="readonly" v-model="sheetData.labelWidth" :disabled="plmTechnicalSpecificationSheetFlag('labelWidth') === 'N'" style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="圆角/Radius">
|
|
<el-input :readonly="readonly" v-model="sheetData.radius" :disabled="plmTechnicalSpecificationSheetFlag('radius') === 'N'" style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="横向跳距/HP">
|
|
<el-input :readonly="readonly" v-model="sheetData.hp" :disabled="plmTechnicalSpecificationSheetFlag('hp') === 'N'" style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="竖向跳距/VP">
|
|
<el-input :readonly="readonly" v-model="sheetData.vp" :disabled="plmTechnicalSpecificationSheetFlag('vp') === 'N'" style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="横排数/Across">
|
|
<el-input :readonly="readonly" v-model="sheetData.across" :disabled="plmTechnicalSpecificationSheetFlag('across') === 'N'" style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="竖排数/Down">
|
|
<el-input :readonly="readonly" v-model="sheetData.down" :disabled="plmTechnicalSpecificationSheetFlag('down') === 'N'" style="width: 160px" ></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
</el-form>
|
|
<el-form :inline="true" label-position="top" style="margin-top: 1px; margin-left: 0px;">
|
|
<el-row :gutter="20">
|
|
<el-col :span="24">
|
|
<!-- <el-form-item label="实际数目/Actual Number">-->
|
|
<!-- <el-input v-model="sheetData.actualNumber" style="width: 160px"></el-input>-->
|
|
<!-- </el-form-item>-->
|
|
<el-form-item label="印刷出纸方向/Feeding Direction">
|
|
<dict-data-select
|
|
:site="searchData.site"
|
|
v-if="searchData.site"
|
|
clearable
|
|
v-model="sheetData.printCopyPosition"
|
|
dict-type="bm_print_copy_position"
|
|
style="width: 160px; margin-right: -10px"
|
|
:disabled="plmTechnicalSpecificationSheetFlag('printCopyPosition') === 'N'||readonly">
|
|
</dict-data-select>
|
|
</el-form-item>
|
|
<el-form-item label="片状PCS/Sheet">
|
|
<el-input :readonly="readonly" v-model="sheetData.sheet" :disabled="plmTechnicalSpecificationSheetFlag('sheet') === 'N'" style="width: 160px; margin-left: -9px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="成品卷边宽度/FG Roll Width">
|
|
<el-input :readonly="readonly" v-model="sheetData.goodsRollWidth" :disabled="plmTechnicalSpecificationSheetFlag('goodsRollWidth') === 'N'" style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="新刀具(是/否)/New Cutter(Y/N)">
|
|
<dict-data-select
|
|
:site="searchData.site"
|
|
v-if="searchData.site"
|
|
clearable
|
|
v-model="sheetData.newCutter"
|
|
dict-type="bm_new_cutter"
|
|
style="width: 160px"
|
|
:disabled="plmTechnicalSpecificationSheetFlag('newCutter') === 'N'||readonly">
|
|
</dict-data-select>
|
|
</el-form-item>
|
|
<el-form-item label="印刷刀模公差/P2C Tolerance">
|
|
<el-input :readonly="readonly" v-model="sheetData.p2cTolerance" :disabled="plmTechnicalSpecificationSheetFlag('p2cTolerance') === 'N'" style="width: 160px; margin-left: -2px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="尺寸公差/Dimension Tolerance">
|
|
<el-input :readonly="readonly" v-model="sheetData.dimensionTolerance" :disabled="plmTechnicalSpecificationSheetFlag('dimensionTolerance') === 'N'" style="width: 160px; margin-left: -1px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="修边公差(+/-)/Slitting Tolerance">
|
|
<el-input :readonly="readonly" v-model="sheetData.slittingTolerance" :disabled="plmTechnicalSpecificationSheetFlag('slittingTolerance') === 'N'" style="width: 160px; margin-left: -4px"></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
</el-form>
|
|
<el-table
|
|
:height="'250'"
|
|
ref="table"
|
|
:data="tableData"
|
|
highlight-current-row
|
|
border
|
|
@row-click="chooseRoute"
|
|
style="width: 100%">
|
|
<el-table-column
|
|
fixed="left"
|
|
header-align="center"
|
|
align="center"
|
|
width="60"
|
|
label="操作">
|
|
<template slot-scope="scope">
|
|
<a type="text" size="small" @click="bmModel(scope.row)" v-if="!ifDisableFlag && isAuth('103002:bmRoute') && !readonly">填写</a>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="工序号" header-align="center">
|
|
<el-table-column
|
|
prop="operationNo"
|
|
header-align="center"
|
|
align="center"
|
|
min-width="80"
|
|
label="Operation No.">
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column label="工序名称" header-align="center">
|
|
<el-table-column
|
|
prop="operationName"
|
|
header-align="center"
|
|
align="left"
|
|
min-width="120"
|
|
label="Operation Desc">
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column label="加工中心编码" header-align="center">
|
|
<el-table-column
|
|
prop="workCenterNo"
|
|
header-align="center"
|
|
align="left"
|
|
min-width="80"
|
|
label="Work Center No.">
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column label="加工中心名称" header-align="center">
|
|
<el-table-column
|
|
prop="workCenterDesc"
|
|
header-align="center"
|
|
align="left"
|
|
min-width="120"
|
|
label="Work Center Desc.">
|
|
</el-table-column>
|
|
</el-table-column>
|
|
</el-table>
|
|
<component style="margin-top: 5px" :is="selectedComponent" ref="routeRef" :key="componentKey"></component>
|
|
</el-form>
|
|
|
|
<el-form v-else-if="searchData.buNo === 'RDC'" label-position="top" style="margin-top: 1px">
|
|
<el-form :inline="true" label-position="top" style="margin-top: 1px;">
|
|
<el-form-item label="物料信息/Material">
|
|
<el-input :readonly="readonly" v-model="routeData.partNo" disabled style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="工艺路线类型/Routing Type">
|
|
<el-input :readonly="readonly" v-model="routeData.routingType" disabled style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="工艺路线版本/Routing Rev.">
|
|
<el-input :readonly="readonly" v-model="routeData.routingRevision" disabled style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="替代编码/Alternative No.">
|
|
<el-input :readonly="readonly" v-model="routeData.alternativeNo" disabled style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="单双面印刷/Simplex/Duplex">
|
|
<dict-data-select
|
|
:site="searchData.site"
|
|
v-if="searchData.site"
|
|
clearable
|
|
v-model="sheetData.simplexDuplex"
|
|
:use-default-value="false"
|
|
dict-type="bm_simplex_duplex"
|
|
style="width: 160px"
|
|
:disabled="plmTechnicalSpecificationSheetFlag('simplexDuplex') === 'N'||readonly">
|
|
</dict-data-select>
|
|
</el-form-item>
|
|
<el-form-item label="周长/Repeat">
|
|
<dict-data-select
|
|
:site="searchData.site"
|
|
v-if="searchData.site"
|
|
clearable
|
|
v-model="sheetData.repeat"
|
|
dict-type="bm_repeat"
|
|
style="width: 160px"
|
|
:disabled="plmTechnicalSpecificationSheetFlag('repeat') === 'N'||readonly">
|
|
</dict-data-select>
|
|
</el-form-item>
|
|
</el-form>
|
|
<el-form :inline="true" label-position="top" style="margin-top: 1px; margin-left: 0px;" >
|
|
<el-row :gutter="20">
|
|
<el-col :span="24">
|
|
<!-- <el-form-item label="标签尺寸/Label Size">-->
|
|
<!-- <el-input v-model="sheetData.labelSize" style="width: 120px" ></el-input>-->
|
|
<!-- </el-form-item>-->
|
|
<el-form-item label="标签长度/Label Length">
|
|
<el-input :readonly="readonly" v-model="sheetData.labelLength" :disabled="plmTechnicalSpecificationSheetFlag('labelLength') === 'N'" style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="标签宽度/Label Width">
|
|
<el-input :readonly="readonly" v-model="sheetData.labelWidth" :disabled="plmTechnicalSpecificationSheetFlag('labelWidth') === 'N'" style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="圆角/Radius">
|
|
<el-input :readonly="readonly" v-model="sheetData.radius" :disabled="plmTechnicalSpecificationSheetFlag('radius') === 'N'" style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="横向跳距/HP">
|
|
<el-input :readonly="readonly" v-model="sheetData.hp" :disabled="plmTechnicalSpecificationSheetFlag('hp') === 'N'" style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="竖向跳距/VP">
|
|
<el-input :readonly="readonly" v-model="sheetData.vp" :disabled="plmTechnicalSpecificationSheetFlag('vp') === 'N'" style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="横排数/Across">
|
|
<el-input :readonly="readonly" v-model="sheetData.across" :disabled="plmTechnicalSpecificationSheetFlag('across') === 'N'" style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="竖排数/Down">
|
|
<el-input :readonly="readonly" v-model="sheetData.down" :disabled="plmTechnicalSpecificationSheetFlag('down') === 'N'" style="width: 160px" ></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
</el-form>
|
|
<el-form :inline="true" label-position="top" style="margin-top: 1px; margin-left: 0px;">
|
|
<el-row :gutter="20">
|
|
<el-col :span="24">
|
|
<!-- <el-form-item label="实际数目/Actual Number">-->
|
|
<!-- <el-input v-model="sheetData.actualNumber" style="width: 160px"></el-input>-->
|
|
<!-- </el-form-item>-->
|
|
<el-form-item label="印刷出纸方向/Feeding Direction">
|
|
<dict-data-select
|
|
:site="searchData.site"
|
|
v-if="searchData.site"
|
|
clearable
|
|
v-model="sheetData.printCopyPosition"
|
|
dict-type="bm_print_copy_position"
|
|
style="width: 160px; margin-right: -10px"
|
|
:disabled="plmTechnicalSpecificationSheetFlag('printCopyPosition') === 'N'||readonly">
|
|
</dict-data-select>
|
|
</el-form-item>
|
|
<el-form-item label="片状PCS/Sheet">
|
|
<el-input :readonly="readonly" v-model="sheetData.sheet" :disabled="plmTechnicalSpecificationSheetFlag('sheet') === 'N'" style="width: 160px; margin-left: -9px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="成品卷边宽度/FG Roll Width">
|
|
<el-input :readonly="readonly" v-model="sheetData.goodsRollWidth" :disabled="plmTechnicalSpecificationSheetFlag('goodsRollWidth') === 'N'" style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="新刀具(是/否)/New Cutter(Y/N)">
|
|
<dict-data-select
|
|
:site="searchData.site"
|
|
v-if="searchData.site"
|
|
clearable
|
|
v-model="sheetData.newCutter"
|
|
dict-type="bm_new_cutter"
|
|
style="width: 160px"
|
|
:disabled="plmTechnicalSpecificationSheetFlag('newCutter') === 'N'||readonly">
|
|
</dict-data-select>
|
|
</el-form-item>
|
|
<el-form-item label="印刷刀模公差/P2C Tolerance">
|
|
<el-input :readonly="readonly" v-model="sheetData.p2cTolerance" :disabled="plmTechnicalSpecificationSheetFlag('p2cTolerance') === 'N'" style="width: 160px; margin-left: -2px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="尺寸公差/Dimension Tolerance">
|
|
<el-input :readonly="readonly" v-model="sheetData.dimensionTolerance" :disabled="plmTechnicalSpecificationSheetFlag('dimensionTolerance') === 'N'" style="width: 160px; margin-left: -1px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="修边公差(+/-)/Slitting Tolerance">
|
|
<el-input :readonly="readonly" v-model="sheetData.slittingTolerance" :disabled="plmTechnicalSpecificationSheetFlag('slittingTolerance') === 'N'" style="width: 160px; margin-left: -4px"></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
</el-form>
|
|
<el-table
|
|
:height="'250'"
|
|
ref="table"
|
|
:data="tableData"
|
|
highlight-current-row
|
|
border
|
|
@row-click="chooseRoute"
|
|
style="width: 100%">
|
|
<el-table-column
|
|
fixed="left"
|
|
header-align="center"
|
|
align="center"
|
|
width="60"
|
|
label="操作">
|
|
<template slot-scope="scope">
|
|
<a type="text" size="small" @click="bmModel(scope.row)" v-if="!ifDisableFlag && isAuth('103002:bmRoute') && !readonly">填写</a>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="工序号" header-align="center">
|
|
<el-table-column
|
|
prop="operationNo"
|
|
header-align="center"
|
|
align="center"
|
|
min-width="80"
|
|
label="Operation No.">
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column label="工序名称" header-align="center">
|
|
<el-table-column
|
|
prop="operationName"
|
|
header-align="center"
|
|
align="left"
|
|
min-width="120"
|
|
label="Operation Desc">
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column label="加工中心编码" header-align="center">
|
|
<el-table-column
|
|
prop="workCenterNo"
|
|
header-align="center"
|
|
align="left"
|
|
min-width="80"
|
|
label="Work Center No.">
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column label="加工中心名称" header-align="center">
|
|
<el-table-column
|
|
prop="workCenterDesc"
|
|
header-align="center"
|
|
align="left"
|
|
min-width="120"
|
|
label="Work Center Desc.">
|
|
</el-table-column>
|
|
</el-table-column>
|
|
</el-table>
|
|
<component style="margin-top: 5px" :is="selectedComponent" ref="routeRef" :key="componentKey"></component>
|
|
</el-form>
|
|
|
|
<el-form v-else-if="searchData.buNo === 'DBE'" label-position="top" style="margin-top: 1px">
|
|
<el-form :inline="true" label-position="top" style="margin-top: 1px;">
|
|
<el-form-item label="物料信息/Material">
|
|
<el-input :readonly="readonly" v-model="routeData.partNo" disabled style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="工艺路线类型/Routing Type">
|
|
<el-input :readonly="readonly" v-model="routeData.routingType" disabled style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="工艺路线版本/Routing Rev.">
|
|
<el-input :readonly="readonly" v-model="routeData.routingRevision" disabled style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="替代编码/Alternative No.">
|
|
<el-input :readonly="readonly" v-model="routeData.alternativeNo" disabled style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="单双面印刷/Simplex/Duplex">
|
|
<dict-data-select
|
|
:site="searchData.site"
|
|
v-if="searchData.site"
|
|
clearable
|
|
v-model="sheetData.simplexDuplex"
|
|
:use-default-value="false"
|
|
dict-type="bm_simplex_duplex"
|
|
style="width: 160px"
|
|
:disabled="plmTechnicalSpecificationSheetFlag('simplexDuplex') === 'N'||readonly">
|
|
</dict-data-select>
|
|
</el-form-item>
|
|
<el-form-item label="周长/Repeat">
|
|
<dict-data-select
|
|
:site="searchData.site"
|
|
v-if="searchData.site"
|
|
clearable
|
|
v-model="sheetData.repeat"
|
|
dict-type="bm_repeat"
|
|
style="width: 160px"
|
|
:disabled="plmTechnicalSpecificationSheetFlag('repeat') === 'N'||readonly">
|
|
</dict-data-select>
|
|
</el-form-item>
|
|
</el-form>
|
|
<el-form :inline="true" label-position="top" style="margin-top: 1px; margin-left: 0px;" >
|
|
<el-row :gutter="20">
|
|
<el-col :span="24">
|
|
<!-- <el-form-item label="标签尺寸/Label Size">-->
|
|
<!-- <el-input v-model="sheetData.labelSize" style="width: 120px" ></el-input>-->
|
|
<!-- </el-form-item>-->
|
|
<el-form-item label="标签长度/Label Length">
|
|
<el-input :readonly="readonly" v-model="sheetData.labelLength" :disabled="plmTechnicalSpecificationSheetFlag('labelLength') === 'N'" style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="标签宽度/Label Width">
|
|
<el-input :readonly="readonly" v-model="sheetData.labelWidth" :disabled="plmTechnicalSpecificationSheetFlag('labelWidth') === 'N'" style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="圆角/Radius">
|
|
<el-input :readonly="readonly" v-model="sheetData.radius" :disabled="plmTechnicalSpecificationSheetFlag('radius') === 'N'" style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="横向跳距/HP">
|
|
<el-input :readonly="readonly" v-model="sheetData.hp" :disabled="plmTechnicalSpecificationSheetFlag('hp') === 'N'" style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="竖向跳距/VP">
|
|
<el-input :readonly="readonly" v-model="sheetData.vp" :disabled="plmTechnicalSpecificationSheetFlag('vp') === 'N'" style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="横排数/Across">
|
|
<el-input :readonly="readonly" v-model="sheetData.across" :disabled="plmTechnicalSpecificationSheetFlag('across') === 'N'" style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="竖排数/Down">
|
|
<el-input :readonly="readonly" v-model="sheetData.down" :disabled="plmTechnicalSpecificationSheetFlag('down') === 'N'" style="width: 160px" ></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
</el-form>
|
|
<el-form :inline="true" label-position="top" style="margin-top: 1px; margin-left: 0px;">
|
|
<el-row :gutter="20">
|
|
<el-col :span="24">
|
|
<!-- <el-form-item label="实际数目/Actual Number">-->
|
|
<!-- <el-input v-model="sheetData.actualNumber" style="width: 160px"></el-input>-->
|
|
<!-- </el-form-item>-->
|
|
<el-form-item label="印刷出纸方向/Feeding Direction">
|
|
<dict-data-select
|
|
:site="searchData.site"
|
|
v-if="searchData.site"
|
|
clearable
|
|
v-model="sheetData.printCopyPosition"
|
|
dict-type="bm_print_copy_position"
|
|
style="width: 160px; margin-right: -10px"
|
|
:disabled="plmTechnicalSpecificationSheetFlag('printCopyPosition') === 'N'||readonly">
|
|
</dict-data-select>
|
|
</el-form-item>
|
|
<el-form-item label="片状PCS/Sheet">
|
|
<el-input :readonly="readonly" v-model="sheetData.sheet" :disabled="plmTechnicalSpecificationSheetFlag('sheet') === 'N'" style="width: 160px; margin-left: -9px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="成品卷边宽度/FG Roll Width">
|
|
<el-input :readonly="readonly" v-model="sheetData.goodsRollWidth" :disabled="plmTechnicalSpecificationSheetFlag('goodsRollWidth') === 'N'" style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="新刀具(是/否)/New Cutter(Y/N)">
|
|
<dict-data-select
|
|
:site="searchData.site"
|
|
v-if="searchData.site"
|
|
clearable
|
|
v-model="sheetData.newCutter"
|
|
dict-type="bm_new_cutter"
|
|
style="width: 160px"
|
|
:disabled="plmTechnicalSpecificationSheetFlag('newCutter') === 'N'||readonly">
|
|
</dict-data-select>
|
|
</el-form-item>
|
|
<el-form-item label="印刷刀模公差/P2C Tolerance">
|
|
<el-input :readonly="readonly" v-model="sheetData.p2cTolerance" :disabled="plmTechnicalSpecificationSheetFlag('p2cTolerance') === 'N'" style="width: 160px; margin-left: -2px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="尺寸公差/Dimension Tolerance">
|
|
<el-input :readonly="readonly" v-model="sheetData.dimensionTolerance" :disabled="plmTechnicalSpecificationSheetFlag('dimensionTolerance') === 'N'" style="width: 160px; margin-left: -1px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="修边公差(+/-)/Slitting Tolerance">
|
|
<el-input :readonly="readonly" v-model="sheetData.slittingTolerance" :disabled="plmTechnicalSpecificationSheetFlag('slittingTolerance') === 'N'" style="width: 160px; margin-left: -4px"></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
</el-form>
|
|
<el-table
|
|
:height="'250'"
|
|
ref="table"
|
|
:data="tableData"
|
|
highlight-current-row
|
|
border
|
|
@row-click="chooseRoute"
|
|
style="width: 100%">
|
|
<el-table-column
|
|
fixed="left"
|
|
header-align="center"
|
|
align="center"
|
|
width="60"
|
|
label="操作">
|
|
<template slot-scope="scope">
|
|
<a type="text" size="small" @click="bmModel(scope.row)" v-if="!ifDisableFlag && isAuth('103002:bmRoute') && !readonly">填写</a>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="工序号" header-align="center">
|
|
<el-table-column
|
|
prop="operationNo"
|
|
header-align="center"
|
|
align="center"
|
|
min-width="80"
|
|
label="Operation No.">
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column label="工序名称" header-align="center">
|
|
<el-table-column
|
|
prop="operationName"
|
|
header-align="center"
|
|
align="left"
|
|
min-width="120"
|
|
label="Operation Desc">
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column label="加工中心编码" header-align="center">
|
|
<el-table-column
|
|
prop="workCenterNo"
|
|
header-align="center"
|
|
align="left"
|
|
min-width="80"
|
|
label="Work Center No.">
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column label="加工中心名称" header-align="center">
|
|
<el-table-column
|
|
prop="workCenterDesc"
|
|
header-align="center"
|
|
align="left"
|
|
min-width="120"
|
|
label="Work Center Desc.">
|
|
</el-table-column>
|
|
</el-table-column>
|
|
</el-table>
|
|
<component style="margin-top: 5px" :is="selectedComponent" ref="routeRef" :key="componentKey"></component>
|
|
</el-form>
|
|
|
|
<el-form v-else-if="searchData.buNo === 'SS'" label-position="top" style="margin-top: 1px">
|
|
<el-form :inline="true" label-position="top" style="margin-top: 1px;">
|
|
<el-form-item label="物料信息/Material">
|
|
<el-input :readonly="readonly" v-model="routeData.partNo" disabled style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="工艺路线类型/Routing Type">
|
|
<el-input :readonly="readonly" v-model="routeData.routingType" disabled style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="工艺路线版本/Routing Rev.">
|
|
<el-input :readonly="readonly" v-model="routeData.routingRevision" disabled style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="替代编码/Alternative No.">
|
|
<el-input :readonly="readonly" v-model="routeData.alternativeNo" disabled style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="单双面印刷/Simplex/Duplex">
|
|
<dict-data-select
|
|
:site="searchData.site"
|
|
v-if="searchData.site"
|
|
clearable
|
|
v-model="sheetData.simplexDuplex"
|
|
:use-default-value="false"
|
|
dict-type="bm_simplex_duplex"
|
|
style="width: 160px"
|
|
:disabled="plmTechnicalSpecificationSheetFlag('simplexDuplex') === 'N'||readonly">
|
|
</dict-data-select>
|
|
</el-form-item>
|
|
<el-form-item label="周长/Repeat">
|
|
<dict-data-select
|
|
:site="searchData.site"
|
|
v-if="searchData.site"
|
|
clearable
|
|
v-model="sheetData.repeat"
|
|
dict-type="bm_repeat"
|
|
style="width: 160px"
|
|
:disabled="plmTechnicalSpecificationSheetFlag('repeat') === 'N'||readonly">
|
|
</dict-data-select>
|
|
</el-form-item>
|
|
</el-form>
|
|
<el-form :inline="true" label-position="top" style="margin-top: 1px; margin-left: 0px;" >
|
|
<el-row :gutter="20">
|
|
<el-col :span="24">
|
|
<!-- <el-form-item label="标签尺寸/Label Size">-->
|
|
<!-- <el-input v-model="sheetData.labelSize" style="width: 120px" ></el-input>-->
|
|
<!-- </el-form-item>-->
|
|
<el-form-item label="标签长度/Label Length">
|
|
<el-input :readonly="readonly" v-model="sheetData.labelLength" :disabled="plmTechnicalSpecificationSheetFlag('labelLength') === 'N'" style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="标签宽度/Label Width">
|
|
<el-input :readonly="readonly" v-model="sheetData.labelWidth" :disabled="plmTechnicalSpecificationSheetFlag('labelWidth') === 'N'" style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="圆角/Radius">
|
|
<el-input :readonly="readonly" v-model="sheetData.radius" :disabled="plmTechnicalSpecificationSheetFlag('radius') === 'N'" style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="横向跳距/HP">
|
|
<el-input :readonly="readonly" v-model="sheetData.hp" :disabled="plmTechnicalSpecificationSheetFlag('hp') === 'N'" style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="竖向跳距/VP">
|
|
<el-input :readonly="readonly" v-model="sheetData.vp" :disabled="plmTechnicalSpecificationSheetFlag('vp') === 'N'" style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="横排数/Across">
|
|
<el-input :readonly="readonly" v-model="sheetData.across" :disabled="plmTechnicalSpecificationSheetFlag('across') === 'N'" style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="竖排数/Down">
|
|
<el-input :readonly="readonly" v-model="sheetData.down" :disabled="plmTechnicalSpecificationSheetFlag('down') === 'N'" style="width: 160px" ></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
</el-form>
|
|
<el-form :inline="true" label-position="top" style="margin-top: 1px; margin-left: 0px;">
|
|
<el-row :gutter="20">
|
|
<el-col :span="24">
|
|
<!-- <el-form-item label="实际数目/Actual Number">-->
|
|
<!-- <el-input v-model="sheetData.actualNumber" style="width: 160px"></el-input>-->
|
|
<!-- </el-form-item>-->
|
|
<el-form-item label="印刷出纸方向/Feeding Direction">
|
|
<dict-data-select
|
|
:site="searchData.site"
|
|
v-if="searchData.site"
|
|
clearable
|
|
v-model="sheetData.printCopyPosition"
|
|
dict-type="bm_print_copy_position"
|
|
style="width: 160px; margin-right: -10px"
|
|
:disabled="plmTechnicalSpecificationSheetFlag('printCopyPosition') === 'N'||readonly">
|
|
</dict-data-select>
|
|
</el-form-item>
|
|
<el-form-item label="片状PCS/Sheet">
|
|
<el-input :readonly="readonly" v-model="sheetData.sheet" :disabled="plmTechnicalSpecificationSheetFlag('sheet') === 'N'" style="width: 160px; margin-left: -9px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="成品卷边宽度/FG Roll Width">
|
|
<el-input :readonly="readonly" v-model="sheetData.goodsRollWidth" :disabled="plmTechnicalSpecificationSheetFlag('goodsRollWidth') === 'N'" style="width: 160px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="新刀具(是/否)/New Cutter(Y/N)">
|
|
<dict-data-select
|
|
:site="searchData.site"
|
|
v-if="searchData.site"
|
|
clearable
|
|
v-model="sheetData.newCutter"
|
|
dict-type="bm_new_cutter"
|
|
style="width: 160px"
|
|
:disabled="plmTechnicalSpecificationSheetFlag('newCutter') === 'N'||readonly">
|
|
</dict-data-select>
|
|
</el-form-item>
|
|
<el-form-item label="印刷刀模公差/P2C Tolerance">
|
|
<el-input :readonly="readonly" v-model="sheetData.p2cTolerance" :disabled="plmTechnicalSpecificationSheetFlag('p2cTolerance') === 'N'" style="width: 160px; margin-left: -2px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="尺寸公差/Dimension Tolerance">
|
|
<el-input :readonly="readonly" v-model="sheetData.dimensionTolerance" :disabled="plmTechnicalSpecificationSheetFlag('dimensionTolerance') === 'N'" style="width: 160px; margin-left: -1px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="修边公差(+/-)/Slitting Tolerance">
|
|
<el-input :readonly="readonly" v-model="sheetData.slittingTolerance" :disabled="plmTechnicalSpecificationSheetFlag('slittingTolerance') === 'N'" style="width: 160px; margin-left: -4px"></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
</el-form>
|
|
<el-table
|
|
:height="'250'"
|
|
ref="table"
|
|
:data="tableData"
|
|
highlight-current-row
|
|
border
|
|
@row-click="chooseRoute"
|
|
style="width: 100%">
|
|
<el-table-column
|
|
fixed="left"
|
|
header-align="center"
|
|
align="center"
|
|
width="60"
|
|
label="操作">
|
|
<template slot-scope="scope">
|
|
<a type="text" size="small" @click="bmModel(scope.row)" v-if="!ifDisableFlag && isAuth('103002:bmRoute') && !readonly">填写</a>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="工序号" header-align="center">
|
|
<el-table-column
|
|
prop="operationNo"
|
|
header-align="center"
|
|
align="center"
|
|
min-width="80"
|
|
label="Operation No.">
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column label="工序名称" header-align="center">
|
|
<el-table-column
|
|
prop="operationName"
|
|
header-align="center"
|
|
align="left"
|
|
min-width="120"
|
|
label="Operation Desc">
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column label="加工中心编码" header-align="center">
|
|
<el-table-column
|
|
prop="workCenterNo"
|
|
header-align="center"
|
|
align="left"
|
|
min-width="80"
|
|
label="Work Center No.">
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column label="加工中心名称" header-align="center">
|
|
<el-table-column
|
|
prop="workCenterDesc"
|
|
header-align="center"
|
|
align="left"
|
|
min-width="120"
|
|
label="Work Center Desc.">
|
|
</el-table-column>
|
|
</el-table-column>
|
|
</el-table>
|
|
<component style="margin-top: 5px" :is="selectedComponent" ref="routeRef" :key="componentKey"></component>
|
|
</el-form>
|
|
|
|
<el-dialog width="530px" title="审查工程师" :close-on-click-modal="false" :visible.sync="reviewEngineerFlag">
|
|
<el-transfer
|
|
v-model="reviewEngineerList" class="rq" filterable
|
|
:props="{key: 'operatorId',label: 'operatorName'}"
|
|
:data="operatorList" :titles="['未选择', '已选择']">
|
|
</el-transfer>
|
|
<span slot="footer" class="dialog-footer">
|
|
<div style="margin-top: 5px">
|
|
<el-button type="primary" @click="savereviewEngineerList()">确定</el-button>
|
|
<el-button @click="reviewEngineerFlag = false" type="primary">取消</el-button>
|
|
</div>
|
|
</span>
|
|
</el-dialog>
|
|
|
|
<el-dialog width="530px" title="PE工程师" :close-on-click-modal="false" :visible.sync="peEngineerFlag">
|
|
<el-transfer
|
|
v-model="peEngineerList" class="rq" filterable
|
|
:props="{key: 'operatorId',label: 'operatorName'}"
|
|
:data="operatorList" :titles="['未选择', '已选择']">
|
|
</el-transfer>
|
|
<span slot="footer" class="dialog-footer">
|
|
<div style="margin-top: 5px">
|
|
<el-button type="primary" @click="savepeEngineerList()">确定</el-button>
|
|
<el-button @click="peEngineerFlag = false" type="primary">取消</el-button>
|
|
</div>
|
|
</span>
|
|
</el-dialog>
|
|
|
|
<el-dialog width="530px" title="选择CQE" :close-on-click-modal="false" :visible.sync="cqeFlag">
|
|
<el-transfer
|
|
v-model="cqeList" class="rq" filterable
|
|
:props="{key: 'operatorId',label: 'operatorName'}"
|
|
:data="operatorList" :titles="['未选择', '已选择']">
|
|
</el-transfer>
|
|
<span slot="footer" class="dialog-footer">
|
|
<div style="margin-top: 5px">
|
|
<el-button type="primary" @click="savecqeList()">确定</el-button>
|
|
<el-button @click="cqeFlag = false" type="primary">取消</el-button>
|
|
</div>
|
|
</span>
|
|
</el-dialog>
|
|
|
|
<el-dialog append-to-body width="900px" title="工序记录" top="10vh" @close="closeItemModel" :close-on-click-modal="false" :visible.sync="routeModelFlag">
|
|
<el-form label-position="top" style="margin-top: -5px; margin-left: 0px;" >
|
|
<el-row :gutter="20">
|
|
<el-col :span="6"><div class="grid-content bg-purple">
|
|
<el-form-item :label="'工序编码/Operation No.'">
|
|
<el-input v-model="currentRow.operationNo" disabled></el-input>
|
|
</el-form-item>
|
|
</div></el-col>
|
|
<el-col :span="6"><div class="grid-content bg-purple">
|
|
<el-form-item :label="'工序名称/Operation Desc.'">
|
|
<el-input v-model="currentRow.operationName" disabled></el-input>
|
|
</el-form-item>
|
|
</div></el-col>
|
|
</el-row>
|
|
</el-form>
|
|
<div v-if="currentRow.itemType === 'prepress'">
|
|
<prepress ref="prepress" @closeModel="closeModel"></prepress>
|
|
</div>
|
|
<div v-else-if="currentRow.itemType === 'printing'">
|
|
<printing ref="printing" @closeModel="closeModel"></printing>
|
|
</div>
|
|
<div v-else-if="currentRow.itemType === 'printOther'">
|
|
<printOther ref="printOther" @closeModel="closeModel"></printOther>
|
|
</div>
|
|
<div v-else-if="currentRow.itemType === 'overprinting'">
|
|
<overprinting ref="overprinting" @closeModel="closeModel"></overprinting>
|
|
</div>
|
|
<div v-else-if="currentRow.itemType === 'slitting'">
|
|
<slitting ref="slitting" @closeModel="closeModel"></slitting>
|
|
</div>
|
|
<div v-else-if="currentRow.itemType === 'lamTemperature'">
|
|
<lamTemperature ref="lamTemperature" @closeModel="closeModel"></lamTemperature>
|
|
</div>
|
|
<div v-else-if="currentRow.itemType === 'cutting'">
|
|
<cutting ref="cutting" @closeModel="closeModel"></cutting>
|
|
</div>
|
|
<div v-else-if="currentRow.itemType === 'InkMixing'">
|
|
<InkMixing ref="InkMixing" @closeModel="closeModel"></InkMixing>
|
|
</div>
|
|
<div v-else-if="currentRow.itemType === 'InkFormulation'">
|
|
<InkFormulation ref="InkFormulation" @closeModel="closeModel"></InkFormulation>
|
|
</div>
|
|
<div v-else-if="currentRow.itemType === 'lamination'">
|
|
<lamination ref="lamination" @closeModel="closeModel"></lamination>
|
|
</div>
|
|
<div v-else-if="currentRow.itemType === 'CNC'">
|
|
<CNC ref="CNC" @closeModel="closeModel"></CNC>
|
|
</div>
|
|
<div v-else-if="currentRow.itemType === 'Cut'">
|
|
<Cut ref="Cut" @closeModel="closeModel"></Cut>
|
|
</div>
|
|
<div v-else-if="currentRow.itemType === 'packagePage'">
|
|
<packagePage ref="packagePage" @closeModel="closeModel"></packagePage>
|
|
</div>
|
|
<div v-else-if="currentRow.itemType === 'fqc'">
|
|
<fqc ref="fqc" @closeModel="closeModel"></fqc>
|
|
</div>
|
|
<div v-else-if="currentRow.itemType === 'cqc'">
|
|
<cqc ref="cqc" @closeModel="closeModel"></cqc>
|
|
</div>
|
|
<div v-else-if="currentRow.itemType === 'printFlexo'">
|
|
<printFlexo ref="printFlexo" @closeModel="closeModel"></printFlexo>
|
|
</div>
|
|
<div v-else-if="currentRow.itemType === 'silkScreen'">
|
|
<silkScreen ref="silkScreen" @closeModel="closeModel"></silkScreen>
|
|
</div>
|
|
<div v-else-if="currentRow.itemType === 'printIndigo'">
|
|
<printIndigo ref="printIndigo" @closeModel="closeModel"></printIndigo>
|
|
</div>
|
|
</el-dialog>
|
|
|
|
<el-dialog title="变更工艺路线" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="750px">
|
|
<el-table
|
|
:data="routeDetailList"
|
|
height="300"
|
|
border
|
|
highlight-current-row
|
|
onclick=""
|
|
@row-click="getRow"
|
|
ref="componentTable"
|
|
style="width:100%">
|
|
<el-table-column
|
|
prop="partNo"
|
|
header-align="left"
|
|
align="left"
|
|
min-width="80"
|
|
label="物料编码">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="routingType"
|
|
header-align="left"
|
|
align="left"
|
|
min-width="80"
|
|
label="Routing类型">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="routingRevision"
|
|
header-align="left"
|
|
align="left"
|
|
min-width="80"
|
|
label="Routing版本">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="alternativeNo"
|
|
header-align="left"
|
|
align="left"
|
|
min-width="80"
|
|
label="替代编码">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="alternativeDescription"
|
|
header-align="left"
|
|
align="left"
|
|
min-width="80"
|
|
label="替代名称">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="status"
|
|
header-align="left"
|
|
align="left"
|
|
min-width="60"
|
|
label="状态">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="phaseInDate"
|
|
header-align="left"
|
|
align="left"
|
|
min-width="80"
|
|
label="生效日期">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="phaseOutDate"
|
|
header-align="left"
|
|
align="left"
|
|
min-width="80"
|
|
label="失效日期">
|
|
</el-table-column>
|
|
</el-table>
|
|
<el-footer style="height:30px;margin-top:20px;text-align:center">
|
|
<el-button type="primary" @click="updateBMRouteRev()">确定</el-button>
|
|
<el-button type="primary" @click="modalFlag=false">取消</el-button>
|
|
</el-footer>
|
|
</el-dialog>
|
|
|
|
<ChooseUser ref="baseList" @getBaseData="getBaseData"></ChooseUser>
|
|
|
|
<!-- 提交 -->
|
|
<el-dialog title="驳回" top="30vh" :close-on-click-modal="false" v-drag :visible.sync="submitModalFlag" width="500px">
|
|
<el-form :inline="true" label-position="top">
|
|
<el-form-item :label="'驳回意见'">
|
|
<el-input type="textarea" v-model="rejectOpinion" :rows="3" resize='none' show-word-limit style="width: 479px;height: 30px"></el-input>
|
|
</el-form-item>
|
|
</el-form>
|
|
<el-footer style="height:30px;margin-top: 50px;text-align:center">
|
|
<el-button type="primary" :loading="submitLoading" @click="rejectSubmit">确定</el-button>
|
|
<el-button type="primary" @click="submitModalFlag = false">取消</el-button>
|
|
</el-footer>
|
|
</el-dialog>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import {
|
|
searchBMRoutingDetail,
|
|
searchTechnicalSpecificationTeamStr,
|
|
updateBMRoutingDetail,
|
|
searchBMRoute,
|
|
searchRouteDetail,
|
|
updateBMRouteRev,
|
|
tsdBasicInformationSearch,
|
|
updateBMProcess,
|
|
submitChange,getBMStatusDesc, // 提交
|
|
getOADetailForBM,
|
|
} from "@/api/sampleManagement/technicalSpecificationList.js"
|
|
import {
|
|
getNodeAuthority, // 获取节点权限
|
|
} from '@/api/changeManagement/changeManagement.js'
|
|
import ChooseUser from '@/views/modules/common/ChooseUser'
|
|
import {
|
|
searchOperatorWithSite,
|
|
} from "@/api/project/project.js"
|
|
import prepress from "./com_bm_prepress";/*组件*/
|
|
import printing from "./com_bm_printing";/*组件*/
|
|
import printOther from "./com_bm_printOther";/*组件*/
|
|
import overprinting from "./com_bm_demoSlot";/*组件*/
|
|
import slitting from "./com_bm_demoSlot";/*组件*/
|
|
import lamTemperature from "./com_bm_demoSlot";/*组件*/
|
|
import cutting from "./com_bm_demoSlot";/*组件*/
|
|
import InkMixing from "./com_bm_inkMixing";/*组件*/
|
|
import InkFormulation from "./com_bm_inkFormulation";/*组件*/
|
|
import lamination from "./com_bm_lamination";/*组件*/
|
|
import CNC from "./com_bm_cnc";
|
|
import Cut from "./com_bm_cut";
|
|
import packagePage from "./com_bm_demoSlot";/*组件*/
|
|
import fqc from "./com_bm_demoSlot";/*组件*/
|
|
import cqc from "./com_bm_demoSlot";/*组件*/
|
|
import printFlexo from "./com_bm_printingFlexo";/*组件*/
|
|
import silkScreen from "./com_bm_silkScreen";/*组件*/
|
|
import printIndigo from "./com_bm_printingIndigo";
|
|
import DictDataSelect from "../../sys/dict-data-select-highlight";
|
|
import {updateBMProcessInfo} from "../../../../api/sampleManagement/technicalSpecificationList";
|
|
/*组件*/
|
|
export default {
|
|
components: {
|
|
DictDataSelect,
|
|
ChooseUser,
|
|
prepress,
|
|
printing,
|
|
printOther,
|
|
overprinting,
|
|
slitting,
|
|
lamTemperature,
|
|
cutting,
|
|
InkMixing,
|
|
InkFormulation,
|
|
lamination,
|
|
CNC,
|
|
Cut,
|
|
packagePage,
|
|
fqc,
|
|
cqc,
|
|
printFlexo,
|
|
silkScreen,
|
|
printIndigo,
|
|
},
|
|
props: {
|
|
readonly: {
|
|
type: Boolean,
|
|
default: false,
|
|
},
|
|
},
|
|
computed: {
|
|
plmTechnicalSpecificationSheetFlag () {
|
|
return (value) => {
|
|
if (!this.plmTechnicalSpecificationSheetArr) {
|
|
return 'N'
|
|
}
|
|
let arr = this.plmTechnicalSpecificationSheetArr.filter(a => a.fieldId === value)
|
|
if (arr.length > 0) {
|
|
return arr[0].updateFlag
|
|
}
|
|
return 'N'
|
|
}
|
|
},
|
|
},
|
|
|
|
data() {
|
|
return {
|
|
spForm: {
|
|
sp: '',
|
|
nodeName: '',
|
|
},
|
|
nowRoute: {},
|
|
//动态组件
|
|
selectedComponent: null,
|
|
routeData: {
|
|
site: '',
|
|
partNo: '',
|
|
alternativeNo: '',
|
|
routingType: '',
|
|
routingRevision: '',
|
|
},
|
|
componentKey: 0,
|
|
routeModelFlag: false,
|
|
height: 200,
|
|
searchData: {
|
|
site: '',
|
|
username: this.$store.state.user.name,
|
|
codeNo: '',
|
|
buNo:'',
|
|
fieldId:''
|
|
},
|
|
baseForm:{
|
|
status:'',
|
|
isReject:'',
|
|
},
|
|
tableData:'',
|
|
partList:[],
|
|
superAdmin:false,
|
|
ifDisableFlag:false,
|
|
sheetData: {
|
|
site: '',
|
|
codeNo: '',
|
|
process: '',
|
|
overPrintOperator: '',
|
|
overPrintOperatorName: '',
|
|
printOperator: '',
|
|
printOperatorName: '',
|
|
simplexDuplex: '',
|
|
repeat: '',
|
|
hp: '',
|
|
across: null,
|
|
printCopyPosition: '',
|
|
labelSize: '',
|
|
labelLength: '',
|
|
labelWidth: '',
|
|
vp: '',
|
|
down: null,
|
|
actualNumber: null,
|
|
goodsRollWidth: '',
|
|
newCutter: '',
|
|
dimensionTolerance: '',
|
|
p2cTolerance: '',
|
|
slittingTolerance: '',
|
|
sheet: '',
|
|
radius: '',
|
|
},
|
|
sheetData2: {
|
|
process: '',
|
|
overPrintOperator: '',
|
|
printOperator: '',
|
|
simplexDuplex: '',
|
|
repeat: '',
|
|
labelLength: '',
|
|
labelWidth: '',
|
|
hp: '',
|
|
vp: '',
|
|
across: '',
|
|
down: '',
|
|
printCopyPosition: '',
|
|
goodsRollWidth: '',
|
|
newCutter: '',
|
|
p2cTolerance: '',
|
|
dimensionTolerance: '',
|
|
slittingTolerance: ''
|
|
},
|
|
dataForm: {
|
|
site: '',
|
|
codeNo:'',
|
|
processDetail:'',
|
|
supplyAdhesiveTape: '',
|
|
routingDrawing:'',
|
|
drawingRevison:'',
|
|
drawingDate:'',
|
|
workInfo:'',
|
|
wiRevison:'',
|
|
wiDate:'',
|
|
reviewEngineer: '',
|
|
routingRemark:'',
|
|
routingAction:'',
|
|
username:this.$store.state.user.name,
|
|
peEngineer:'',
|
|
cqe:'',
|
|
reviewEngineerList:[],
|
|
peEngineerList:[],
|
|
cqeList:[],
|
|
},
|
|
reviewEngineerFlag:false,
|
|
peEngineerFlag:false,
|
|
cqeFlag:false,
|
|
operatorList:[],
|
|
reviewEngineerList:[],
|
|
peEngineerList:[],
|
|
cqeList:[],
|
|
currentRow:{},
|
|
//变更工艺路线
|
|
modalFlag:false,
|
|
routeDetailList:[],
|
|
currentRoute:null,
|
|
tagNo:'',
|
|
tagNo1:'',
|
|
rejectOpinion: '',
|
|
submitModalFlag: false,
|
|
submitLoading: false,
|
|
plmTechnicalSpecificationSheetArr: []
|
|
}
|
|
},
|
|
mounted () {
|
|
this.$nextTick(() => {
|
|
this.height = window.innerHeight - 100
|
|
})
|
|
},
|
|
methods: {
|
|
// 获取基础数据列表S
|
|
getBaseList (type) {
|
|
this.tagNo1 = type
|
|
this.$nextTick(() => {
|
|
let strVal = ''
|
|
let roleId = ''
|
|
if (type === 1) {
|
|
strVal = this.sheetData.overPrintOperator
|
|
roleId = 'R018'
|
|
}
|
|
if (type===2) {
|
|
strVal = this.sheetData.printOperator
|
|
roleId = 'R019'
|
|
}
|
|
this.$refs.baseList.init(this.searchData.site,this.searchData.buNo, strVal,roleId)
|
|
})
|
|
},
|
|
|
|
/* 列表方法的回调 */
|
|
getBaseData (val) {
|
|
if (this.tagNo1 === 1) {
|
|
this.sheetData.overPrintOperator = val.username
|
|
this.sheetData.overPrintOperatorName = val.userDisplay
|
|
this.$nextTick(() => {
|
|
this.$triggerInputEvent(this.$refs.overPrintOperatorName)
|
|
})
|
|
}
|
|
if (this.tagNo1 === 2) {
|
|
this.sheetData.printOperator = val.username
|
|
this.sheetData.printOperatorName = val.userDisplay
|
|
this.$nextTick(() => {
|
|
this.$triggerInputEvent(this.$refs.printOperatorName)
|
|
})
|
|
}
|
|
},
|
|
|
|
//初始化组件的参数
|
|
init (inData) {
|
|
// if (this.dataForm.codeNo != null && this.dataForm.codeNo !== '') {
|
|
// return false;
|
|
// }
|
|
//初始化参数
|
|
this.searchData = JSON.parse(JSON.stringify(inData))
|
|
//刷新表格
|
|
this.searchTable()
|
|
},
|
|
|
|
searchTable (type) {
|
|
tsdBasicInformationSearch(this.searchData).then(({data}) => {
|
|
if (data&& data.code === 0) {
|
|
this.sheetData = data.row
|
|
this.baseForm = data.row
|
|
this.routeData.site = data.row.site
|
|
this.routeData.partNo = data.row.finalPartNo
|
|
this.getNodeAuthority(data.row)
|
|
if (type) {
|
|
this.$message.success( '操作成功')
|
|
}
|
|
} else {
|
|
this.$message.error(data.msg)
|
|
}
|
|
})
|
|
getOADetailForBM(this.searchData).then(({data}) => {
|
|
this.spForm.nodeName = data.row.nodeName
|
|
this.spForm.sp = data.row.sp == null ? '' : data.row.sp
|
|
})
|
|
// if (this.searchData.buNo === 'RDC') {
|
|
// searchBMRoutingDetail(this.searchData).then(({data}) => {
|
|
// if (data&& data.code === 0) {
|
|
// if (data.rows.length > 0) {
|
|
// this.dataForm = data.rows[0]
|
|
// } else {
|
|
// this.dataForm.site = this.searchData.site
|
|
// this.dataForm.codeNo = this.searchData.codeNo
|
|
// }
|
|
// } else {
|
|
// this.$message.error(data.msg)
|
|
// }
|
|
// })
|
|
// let inData = {
|
|
// site: this.searchData.site,
|
|
// codeNo: this.searchData.codeNo,
|
|
// type: 'reviewEngineer',
|
|
// }
|
|
// searchTechnicalSpecificationTeamStr(inData).then(({data}) => {
|
|
// this.dataForm.reviewEngineerList = data.rows
|
|
// })
|
|
// let inData2 = {
|
|
// site: this.searchData.site,
|
|
// codeNo: this.searchData.codeNo,
|
|
// type: 'cqe',
|
|
// }
|
|
// searchTechnicalSpecificationTeamStr(inData2).then(({data}) => {
|
|
// this.dataForm.cqeList = data.rows
|
|
// })
|
|
// let inData3 = {
|
|
// site: this.searchData.site,
|
|
// codeNo: this.searchData.codeNo,
|
|
// type: 'peEngineer',
|
|
// }
|
|
// searchTechnicalSpecificationTeamStr(inData3).then(({data}) => {
|
|
// this.dataForm.peEngineerList = data.rows
|
|
// })
|
|
// } else {
|
|
searchBMRoute(this.searchData).then(({data}) => {
|
|
if (data&& data.code === 0) {
|
|
this.tableData = data.rows
|
|
this.routeData = data.row
|
|
this.$nextTick(() => {
|
|
if (this.tableData.length > 0) {
|
|
const firstRow = this.tableData[0];
|
|
// 高亮第一行(可选)
|
|
this.$refs.table.setCurrentRow(firstRow);
|
|
// 触发 chooseRoute 方法
|
|
this.chooseRoute(firstRow);
|
|
}
|
|
});
|
|
} else {
|
|
this.$message.error(data.msg)
|
|
}
|
|
})
|
|
// }
|
|
},
|
|
|
|
closeModel () {
|
|
this.routeModelFlag = false
|
|
},
|
|
|
|
// 根据itemType
|
|
bmModel (row) {
|
|
this.currentRow = row
|
|
this.routeModelFlag = true
|
|
setTimeout(() => {
|
|
switch (this.currentRow.itemType) {
|
|
case 'prepress':
|
|
this.getPrepress();
|
|
break
|
|
case 'printing':
|
|
this.getPrinting();
|
|
break
|
|
case 'printOther':
|
|
this.getPrintOther();
|
|
break
|
|
case 'overprinting':
|
|
this.getOverprinting();
|
|
break
|
|
case 'slitting':
|
|
this.getSlitting();
|
|
break
|
|
case 'lamTemperature':
|
|
this.getLamTemperature();
|
|
break
|
|
case 'cutting':
|
|
this.getCutting();
|
|
break
|
|
case 'InkMixing':
|
|
this.getInkMixing();
|
|
break
|
|
case 'InkFormulation':
|
|
this.getInkFormulation();
|
|
break
|
|
case 'lamination':
|
|
this.getLamination();
|
|
break
|
|
case 'CNC':
|
|
this.getCNC();
|
|
break
|
|
case 'Cut':
|
|
this.getCut();
|
|
break
|
|
case 'packagePage':
|
|
this.getPackagePage();
|
|
break
|
|
case 'fqc':
|
|
this.getFqc();
|
|
break
|
|
case 'cqc':
|
|
this.getCqc();
|
|
break
|
|
case 'printFlexo':
|
|
this.getPrintFlexo();
|
|
break
|
|
case 'silkScreen':
|
|
this.getSilkScreen();
|
|
break
|
|
case 'printIndigo':
|
|
this.getPrintIndigo();
|
|
break
|
|
}
|
|
}, 500);
|
|
},
|
|
|
|
getPrepress () {
|
|
let inData = JSON.parse(JSON.stringify(this.searchData))
|
|
inData.type = 'prepress'
|
|
this.$refs.prepress.init(inData)
|
|
},
|
|
|
|
getPrinting () {
|
|
let inData = JSON.parse(JSON.stringify(this.searchData))
|
|
inData.type = 'printing'
|
|
this.$refs.printing.init(inData)
|
|
},
|
|
|
|
getPrintOther () {
|
|
let inData = JSON.parse(JSON.stringify(this.searchData))
|
|
inData.type = 'printOther'
|
|
this.$refs.printOther.init(inData)
|
|
},
|
|
|
|
getOverprinting () {
|
|
let inData = JSON.parse(JSON.stringify(this.searchData))
|
|
inData.type = 'overprinting'
|
|
this.$refs.overprinting.init(inData)
|
|
},
|
|
|
|
getSlitting () {
|
|
let inData = JSON.parse(JSON.stringify(this.searchData))
|
|
inData.type = 'slitting'
|
|
this.$refs.slitting.init(inData)
|
|
},
|
|
|
|
getLamTemperature () {
|
|
let inData = JSON.parse(JSON.stringify(this.searchData))
|
|
inData.type = 'lamTemperature'
|
|
this.$refs.lamTemperature.init(inData)
|
|
},
|
|
|
|
getCutting () {
|
|
let inData = JSON.parse(JSON.stringify(this.searchData))
|
|
inData.type = 'cutting'
|
|
this.$refs.cutting.init(inData)
|
|
},
|
|
|
|
getInkMixing () {
|
|
let inData = JSON.parse(JSON.stringify(this.searchData))
|
|
inData.type = 'InkMixing'
|
|
this.$refs.InkMixing.init(inData)
|
|
},
|
|
|
|
getInkFormulation () {
|
|
let inData = JSON.parse(JSON.stringify(this.searchData))
|
|
inData.type = 'InkFormulation'
|
|
this.$refs.InkFormulation.init(inData)
|
|
},
|
|
|
|
getLamination () {
|
|
let inData = JSON.parse(JSON.stringify(this.searchData))
|
|
inData.type = 'lamination'
|
|
this.$refs.lamination.init(inData)
|
|
},
|
|
|
|
getCNC () {
|
|
let inData = JSON.parse(JSON.stringify(this.searchData))
|
|
inData.type = 'CNC'
|
|
this.$refs.CNC.init(inData)
|
|
},
|
|
|
|
getCut () {
|
|
let inData = JSON.parse(JSON.stringify(this.searchData))
|
|
inData.type = 'Cut'
|
|
this.$refs.Cut.init(inData)
|
|
},
|
|
|
|
getPackagePage () {
|
|
let inData = JSON.parse(JSON.stringify(this.searchData))
|
|
inData.type = 'packagePage'
|
|
this.$refs.packagePage.init(inData)
|
|
},
|
|
|
|
getFqc () {
|
|
let inData = JSON.parse(JSON.stringify(this.searchData))
|
|
inData.type = 'fqc'
|
|
this.$refs.fqc.init(inData)
|
|
},
|
|
|
|
getCqc () {
|
|
let inData = JSON.parse(JSON.stringify(this.searchData))
|
|
inData.type = 'cqc'
|
|
this.$refs.cqc.init(inData)
|
|
},
|
|
|
|
getPrintFlexo () {
|
|
let inData = JSON.parse(JSON.stringify(this.searchData))
|
|
inData.type = 'printFlexo'
|
|
this.$refs.printFlexo.init(inData)
|
|
},
|
|
|
|
getSilkScreen () {
|
|
let inData = JSON.parse(JSON.stringify(this.searchData))
|
|
inData.type = 'silkScreen'
|
|
this.$refs.silkScreen.init(inData)
|
|
},
|
|
|
|
getPrintIndigo () {
|
|
let inData = JSON.parse(JSON.stringify(this.searchData))
|
|
inData.type = 'printIndigo'
|
|
this.$refs.printIndigo.init(inData)
|
|
},
|
|
|
|
reviewEngineerChooseModal () {
|
|
if (this.ifDisableFlag) {
|
|
return false
|
|
}
|
|
let inData = {
|
|
site: this.searchData.site,
|
|
}
|
|
searchOperatorWithSite(inData).then(({data}) => {
|
|
this.operatorList = data.rows
|
|
})
|
|
this.reviewEngineerList = JSON.parse(JSON.stringify(this.dataForm.reviewEngineerList));
|
|
this.reviewEngineerFlag = true
|
|
},
|
|
|
|
savereviewEngineerList () {
|
|
let reviewEngineerName = ''
|
|
for (let i = 0; i < this.reviewEngineerList.length; i++) {
|
|
let select= this.operatorList.filter(item => item.operatorId === this.reviewEngineerList[i])
|
|
if (select.length > 0) {
|
|
reviewEngineerName += select[0].operatorName + ';'
|
|
}
|
|
}
|
|
this.dataForm.reviewEngineer = reviewEngineerName
|
|
this.dataForm.reviewEngineerList = JSON.parse(JSON.stringify(this.reviewEngineerList))
|
|
this.reviewEngineerFlag = false
|
|
},
|
|
|
|
peEngineerChooseModal () {
|
|
if (this.ifDisableFlag) {
|
|
return false
|
|
}
|
|
let inData = {
|
|
site: this.searchData.site,
|
|
}
|
|
searchOperatorWithSite(inData).then(({data}) => {
|
|
this.operatorList = data.rows
|
|
})
|
|
this.peEngineerList = JSON.parse(JSON.stringify(this.dataForm.peEngineerList));
|
|
this.peEngineerFlag = true
|
|
},
|
|
|
|
savepeEngineerList () {
|
|
let peEngineerName = ''
|
|
for (let i = 0; i < this.peEngineerList.length; i++) {
|
|
let select= this.operatorList.filter(item => item.operatorId === this.peEngineerList[i])
|
|
if (select.length > 0) {
|
|
peEngineerName += select[0].operatorName + ';'
|
|
}
|
|
}
|
|
this.dataForm.peEngineer = peEngineerName
|
|
this.dataForm.peEngineerList = JSON.parse(JSON.stringify(this.peEngineerList))
|
|
this.peEngineerFlag = false
|
|
},
|
|
|
|
cqeModal(){
|
|
if(this.ifDisableFlag){
|
|
return false
|
|
}
|
|
let inData={
|
|
site:this.searchData.site,
|
|
}
|
|
searchOperatorWithSite(inData).then(({data}) => {
|
|
this.operatorList=data.rows
|
|
})
|
|
this.cqeList = JSON.parse(JSON.stringify(this.dataForm.cqeList));
|
|
this.cqeFlag=true
|
|
},
|
|
savecqeList(){
|
|
let cqeName='';
|
|
for (let i = 0; i < this.cqeList.length; i++) {
|
|
let select= this.operatorList.filter(item => item.operatorId === this.cqeList[i])
|
|
if(select.length>0){
|
|
cqeName+=select[0].operatorName+';'
|
|
}
|
|
}
|
|
this.dataForm.cqe=cqeName
|
|
this.dataForm.cqeList=JSON.parse(JSON.stringify(this.cqeList));
|
|
this.cqeFlag=false
|
|
},
|
|
saveData(){
|
|
this.$confirm("是否保存基本信息?", '保存提示', {
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
}).then(() => {
|
|
updateBMRoutingDetail(this.dataForm).then(({data}) => {
|
|
if (data && data.code === 0) {
|
|
this.$message.success( '操作成功')
|
|
} else {
|
|
this.$message.error(data.msg)
|
|
}
|
|
})
|
|
}).catch(() => {
|
|
return
|
|
})
|
|
},
|
|
|
|
chooseRoute (row) {
|
|
this.nowRoute = JSON.parse(JSON.stringify(row))
|
|
switch (row.itemType) {
|
|
case 'prepress':
|
|
this.selectedComponent = 'prepress'
|
|
let prepressData = JSON.parse(JSON.stringify(this.searchData))
|
|
prepressData.type='prepress'
|
|
prepressData.ifDisableFlag = true
|
|
this.$nextTick (()=>{this.$refs.routeRef.init(prepressData)})
|
|
break;
|
|
case 'printing':
|
|
this.selectedComponent = 'printing';
|
|
let printing = JSON.parse(JSON.stringify(this.searchData))
|
|
printing.type = 'printing'
|
|
printing.ifDisableFlag = true
|
|
this.$nextTick (()=>{this.$refs.routeRef.init(printing)});
|
|
break;
|
|
case 'printOther':
|
|
this.selectedComponent = 'printOther';
|
|
let printOther = JSON.parse(JSON.stringify(this.searchData))
|
|
printOther.type = 'printOther'
|
|
printOther.ifDisableFlag = true
|
|
this.$nextTick (()=>{this.$refs.routeRef.init(printOther)});
|
|
break;
|
|
case 'overprinting':
|
|
this.selectedComponent='overprinting';
|
|
let overprinting = JSON.parse(JSON.stringify(this.searchData))
|
|
overprinting.type = 'overprinting'
|
|
overprinting.ifDisableFlag = true
|
|
this.$nextTick (()=>{this.$refs.routeRef.init(overprinting)});
|
|
break;
|
|
case 'slitting':
|
|
this.selectedComponent = 'slitting';
|
|
let slitting=JSON.parse(JSON.stringify(this.searchData))
|
|
slitting.type = 'slitting'
|
|
slitting.ifDisableFlag = true
|
|
this.$nextTick (()=>{this.$refs.routeRef.init(slitting)});
|
|
break;
|
|
case 'lamTemperature':
|
|
this.selectedComponent = 'lamTemperature';
|
|
let lamTemperature = JSON.parse(JSON.stringify(this.searchData))
|
|
lamTemperature.type = 'lamTemperature'
|
|
lamTemperature.ifDisableFlag = true
|
|
this.$nextTick (()=>{this.$refs.routeRef.init(lamTemperature)});
|
|
break;
|
|
case 'cutting':
|
|
this.selectedComponent = 'cutting';
|
|
let cutting = JSON.parse(JSON.stringify(this.searchData))
|
|
cutting.type = 'cutting'
|
|
cutting.ifDisableFlag = true
|
|
this.$nextTick (()=>{this.$refs.routeRef.init(cutting)});
|
|
break;
|
|
case 'InkMixing':
|
|
this.selectedComponent='InkMixing';
|
|
let InkMixing=JSON.parse(JSON.stringify(this.searchData))
|
|
InkMixing.type='InkMixing'
|
|
InkMixing.ifDisableFlag=true
|
|
this.$nextTick (()=>{this.$refs.routeRef.init(InkMixing)});
|
|
break;
|
|
case 'InkFormulation':
|
|
this.selectedComponent='InkFormulation';
|
|
let InkFormulation=JSON.parse(JSON.stringify(this.searchData))
|
|
InkFormulation.type='InkFormulation'
|
|
InkFormulation.ifDisableFlag=true
|
|
this.$nextTick (()=>{this.$refs.routeRef.init(InkFormulation)});
|
|
break;
|
|
case 'lamination':
|
|
this.selectedComponent='lamination';
|
|
let lamination=JSON.parse(JSON.stringify(this.searchData))
|
|
lamination.type='lamination'
|
|
lamination.ifDisableFlag=true
|
|
this.$nextTick (()=>{this.$refs.routeRef.init(lamination)});
|
|
break;
|
|
case 'CNC':
|
|
this.selectedComponent='CNC';
|
|
let CNC=JSON.parse(JSON.stringify(this.searchData))
|
|
CNC.type='CNC'
|
|
CNC.ifDisableFlag=true
|
|
this.$nextTick (()=>{this.$refs.routeRef.init(CNC)});
|
|
break;
|
|
case 'Cut':
|
|
this.selectedComponent='Cut';
|
|
let inData=JSON.parse(JSON.stringify(this.searchData))
|
|
inData.type='Cut'
|
|
inData.ifDisableFlag=true
|
|
this.$nextTick (()=>{this.$refs.routeRef.init(inData)});
|
|
break;
|
|
case 'packagePage':
|
|
this.selectedComponent='packagePage';
|
|
let packagePage=JSON.parse(JSON.stringify(this.searchData))
|
|
packagePage.type='packagePage'
|
|
packagePage.ifDisableFlag=true
|
|
this.$nextTick (()=>{this.$refs.routeRef.init(packagePage)});
|
|
break;
|
|
case 'fqc':
|
|
this.selectedComponent='fqc';
|
|
let fqc=JSON.parse(JSON.stringify(this.searchData))
|
|
fqc.type='fqc'
|
|
fqc.ifDisableFlag=true
|
|
this.$nextTick (()=>{this.$refs.routeRef.init(fqc)});
|
|
break;
|
|
case 'cqc':
|
|
this.selectedComponent='cqc';
|
|
let cqc=JSON.parse(JSON.stringify(this.searchData))
|
|
cqc.type='cqc'
|
|
cqc.ifDisableFlag=true
|
|
this.$nextTick (()=>{this.$refs.routeRef.init(cqc)});
|
|
break;
|
|
case 'printFlexo':
|
|
this.selectedComponent='printFlexo';
|
|
let printFlexo=JSON.parse(JSON.stringify(this.searchData))
|
|
printFlexo.type='printFlexo'
|
|
printFlexo.ifDisableFlag=true
|
|
this.$nextTick (()=>{this.$refs.routeRef.init(printFlexo)});
|
|
break;
|
|
case 'printIndigo':
|
|
this.selectedComponent='printIndigo';
|
|
let printIndigo=JSON.parse(JSON.stringify(this.searchData))
|
|
printIndigo.type='printIndigo'
|
|
printIndigo.ifDisableFlag=true
|
|
this.$nextTick (()=>{this.$refs.routeRef.init(printIndigo)});
|
|
break;
|
|
case 'silkScreen':
|
|
this.selectedComponent = 'silkScreen'
|
|
let silkScreen = JSON.parse(JSON.stringify(this.searchData))
|
|
silkScreen.type = 'silkScreen'
|
|
silkScreen.ifDisableFlag = true
|
|
this.$nextTick (()=>{this.$refs.routeRef.init(silkScreen)})
|
|
break;
|
|
default :
|
|
this.selectedComponent = null;
|
|
break;
|
|
}
|
|
},
|
|
|
|
searchDetailTable(){
|
|
searchRouteDetail(this.routeData).then(({data}) => {
|
|
this.routeDetailList=data.rows;
|
|
});
|
|
},
|
|
|
|
changeRouteRev(){
|
|
this.searchDetailTable()
|
|
this.currentRoute=null
|
|
this.modalFlag=true;
|
|
},
|
|
|
|
getRow (row) {
|
|
this.currentRoute = row
|
|
},
|
|
|
|
updateBMProcess () {
|
|
updateBMProcess(this.sheetData).then(({data}) => {
|
|
if (data && data.code === 0) {
|
|
this.$nextTick (()=>{this.$refs.routeRef.saveData(2)})
|
|
this.$clearHighLight()
|
|
tsdBasicInformationSearch(this.searchData).then(({data}) => {
|
|
if (data.row) {
|
|
this.sheetData = data.row
|
|
}
|
|
})
|
|
this.$message.success('操作成功')
|
|
} else {
|
|
this.$message.error(data.msg)
|
|
}
|
|
})
|
|
},
|
|
|
|
updateBMRouteRev () {
|
|
if (this.currentRoute == null) {
|
|
this.$alert('请点击选择Route版本!', '错误', {
|
|
confirmButtonText: '确定'
|
|
})
|
|
return false;
|
|
}
|
|
if (this.currentRoute.status!=='Buildable') {
|
|
this.$alert('只有Buildable状态的可以保存!', '错误', {
|
|
confirmButtonText: '确定'
|
|
})
|
|
return false;
|
|
}
|
|
let inData = {
|
|
site: this.routeData.site,
|
|
codeNo: this.searchData.codeNo,
|
|
routingType: this.currentRoute.routingType,
|
|
routingRevision: this.currentRoute.routingRevision,
|
|
routingAlternativeNo: this.currentRoute.alternativeNo
|
|
}
|
|
this.$confirm("更改工艺路线后,之前填写的工艺信息都将覆盖,是否继续?", '保存提示', {
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
}).then(() => {
|
|
updateBMRouteRev(inData).then(({data}) => {
|
|
if (data && data.code === 0) {
|
|
this.searchTable()
|
|
this.modalFlag = false
|
|
this.$message.success('操作成功')
|
|
} else {
|
|
this.$message.error(data.msg)
|
|
}
|
|
})
|
|
})
|
|
},
|
|
|
|
jumpRoute () {
|
|
if (this.routeData.routingRevision != null || this.routeData.routingRevision !== '') {
|
|
this.$message.error("route明细不存在")
|
|
}
|
|
let inData = {
|
|
site: this.searchData.site,
|
|
partNo: this.routeData.partNo,
|
|
routingType: this.routeData.routingType,
|
|
routingRevision: this.routeData.routingRevision,
|
|
}
|
|
localStorage.setItem('routeData', JSON.stringify(inData))
|
|
window.open('#/part-routingManagement');
|
|
},
|
|
|
|
// 获取流程的配置权限
|
|
getNodeAuthority (row) {
|
|
getBMStatusDesc(this.searchData).then(({data}) => {
|
|
this.superAdmin = data.superAdmin
|
|
if (data.superAdmin) {
|
|
this.ifDisableFlag = false
|
|
} else if (data.status === '已完成' || data.status === '已升版' || data.status === 'Dead') {
|
|
this.ifDisableFlag = true
|
|
}
|
|
let tempData = {
|
|
site: row.site,
|
|
stepId: row.stepId,
|
|
menuId: '103002'
|
|
}
|
|
getNodeAuthority(tempData).then(({data}) => {
|
|
if (data && data.code === 0) {
|
|
this.plmTechnicalSpecificationSheetArr = data.rows.plm_technical_specification_sheet
|
|
}
|
|
})
|
|
})
|
|
},
|
|
// 打开提交模态框
|
|
submitDataModal () {
|
|
this.rejectOpinion = ''
|
|
this.submitModalFlag = true
|
|
},
|
|
// 同意提交
|
|
agreeSubmit () {
|
|
this.$confirm(`是否确认提交?`, '提示', {
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'warning'
|
|
}).then(() => {
|
|
let tempData = {
|
|
site: this.searchData.site,
|
|
userName: this.$store.state.user.name,
|
|
codeNo: this.searchData.codeNo,
|
|
menuId: '103002',
|
|
nodeConclusion: 'Y'
|
|
}
|
|
this.submitData(tempData)
|
|
})
|
|
},
|
|
|
|
// 驳回提交
|
|
rejectSubmit () {
|
|
this.$confirm(`是否确认驳回?`, '提示', {
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'warning'
|
|
}).then(() => {
|
|
let tempData = {
|
|
site: this.searchData.site,
|
|
userName: this.$store.state.user.name,
|
|
codeNo: this.searchData.codeNo,
|
|
menuId: '103002',
|
|
nodeConclusion: 'N',
|
|
rejectOpinion : this.rejectOpinion
|
|
}
|
|
this.submitData(tempData)
|
|
})
|
|
},
|
|
|
|
async submitData (tempData) {
|
|
let map = new Map(Object.entries(this.sheetData2))
|
|
if (this.plmTechnicalSpecificationSheetArr) {
|
|
for (let i = 0; i < this.plmTechnicalSpecificationSheetArr.length; i++) {
|
|
if (map.has(this.plmTechnicalSpecificationSheetArr[i].fieldId) && !this.sheetData[this.plmTechnicalSpecificationSheetArr[i].fieldId] && this.plmTechnicalSpecificationSheetArr[i].required === 'Y') {
|
|
this.$message.warning(this.plmTechnicalSpecificationSheetArr[i].fieldName + '不能为空!')
|
|
return
|
|
}
|
|
}
|
|
}
|
|
await updateBMProcess(this.sheetData).then(({data}) => {
|
|
if (data && data.code === 0) {
|
|
this.$nextTick (()=>{this.$refs.routeRef.saveData(2)})
|
|
tsdBasicInformationSearch(this.searchData).then(({data}) => {
|
|
if (data.row) {
|
|
this.sheetData = data.row
|
|
}
|
|
})
|
|
} else {
|
|
this.$message.error(data.msg)
|
|
return false
|
|
}
|
|
})
|
|
// await updateBMRoutingDetail(this.dataForm).then(({data}) => {
|
|
// if (data && data.code === 0) {
|
|
// } else {
|
|
// this.$message.error(data.msg)
|
|
// return false
|
|
// }
|
|
// })
|
|
this.submitLoading = true
|
|
await submitChange(tempData).then(({data}) => {
|
|
if (data && data.code === 0) {
|
|
this.searchTable()
|
|
// 2025-05-31 操作成功才刷新界面,如果报错了则不刷新界面
|
|
//window.location.reload();
|
|
this.submitModalFlag = false
|
|
this.submitLoading = false
|
|
this.$message({message: '操作成功', type: 'success'})
|
|
} else {
|
|
this.submitLoading = false
|
|
this.$alert(data.msg, '错误', {
|
|
confirmButtonText: '确定'
|
|
})
|
|
}
|
|
}).catch(() => {
|
|
this.submitLoading = false
|
|
})
|
|
},
|
|
|
|
// 关闭模态框后刷新下方预览 重新加载组件
|
|
closeItemModel () {
|
|
this.componentKey = Number( this.componentKey) + 1
|
|
this.chooseRoute(this.nowRoute)
|
|
},
|
|
},
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
input[readonly] {
|
|
cursor: text;
|
|
}
|
|
</style>
|