|
|
@ -324,12 +324,61 @@ |
|
|
</div> |
|
|
</div> |
|
|
</el-tab-pane> |
|
|
</el-tab-pane> |
|
|
|
|
|
|
|
|
|
|
|
<!-- NPD 信息 --> |
|
|
|
|
|
<el-tab-pane label="NPD 信息" name="npdInfo"> |
|
|
|
|
|
<div style="height: 635px; overflow-y: auto;"> |
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="modalData" style="margin-top: -5px;"> |
|
|
|
|
|
<el-form-item label="现有材料不同规格/Same Material Diff Size"> |
|
|
|
|
|
<el-radio-group v-model="modalData.isSameMaterialDiffSize" :disabled="isRohsFieldDisabled('isSameMaterialDiffSize')" style="width: 190px"> |
|
|
|
|
|
<el-radio label="Y" @click.native.prevent="radioClick('isSameMaterialDiffSize', 'Y')">是</el-radio> |
|
|
|
|
|
<el-radio label="N" @click.native.prevent="radioClick('isSameMaterialDiffSize', 'N')">否</el-radio> |
|
|
|
|
|
</el-radio-group> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="modalData"> |
|
|
|
|
|
<el-form-item label="材料描述/Material Desc." style="display: block;"> |
|
|
|
|
|
<el-input type="textarea" :rows="3" v-model="modalData.materialDesc" :disabled="isRohsFieldDisabled('materialDesc')" resize="none" style="width: 804px;height: 30px"></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="modalData" style="margin-top: 50px"> |
|
|
|
|
|
<el-form-item label="备注说明/NPD Remark" style="display: block;"> |
|
|
|
|
|
<el-input type="textarea" :rows="3" v-model="modalData.npdRemark" :disabled="isRohsFieldDisabled('npdRemark')" resize="none" style="width: 804px;height: 30px"></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="modalData" style="margin-top: 50px"> |
|
|
|
|
|
<el-form-item label="TDS属性/TDS Property" style="display: block;"> |
|
|
|
|
|
<oss-components |
|
|
|
|
|
ref="modalTdsOss" |
|
|
|
|
|
:save-visible="authFileSave" |
|
|
|
|
|
:download-visible="authFileDownLoad" |
|
|
|
|
|
:remove-visible="authFileRemove" |
|
|
|
|
|
:preview-visible="authFilePreview" |
|
|
|
|
|
:disabled="showModalFlag || modalData.status === '已完成'" |
|
|
|
|
|
:enable-upgrade="!showModalFlag && modalData.status !== '已完成'" |
|
|
|
|
|
:require-file-no-rev="true" |
|
|
|
|
|
:auto-file-no="true" |
|
|
|
|
|
:single-upload="true" |
|
|
|
|
|
:row-click-select="true" |
|
|
|
|
|
:show-order-ref2="false" |
|
|
|
|
|
label="序列号" |
|
|
|
|
|
:height="350" |
|
|
|
|
|
style="margin-top: 2px" |
|
|
|
|
|
:columns="tdsFileColumnList" |
|
|
|
|
|
:order-ref1="modalData.site || ''" |
|
|
|
|
|
:order-ref2="modalData.referenceNo || ''" |
|
|
|
|
|
order-ref3="tdsProperty"> |
|
|
|
|
|
</oss-components> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-tab-pane> |
|
|
|
|
|
|
|
|
<!-- HSF 填写信息 --> |
|
|
<!-- HSF 填写信息 --> |
|
|
<el-tab-pane label="HSF 填写信息" name="hsfInfo"> |
|
|
<el-tab-pane label="HSF 填写信息" name="hsfInfo"> |
|
|
<div style="height: 635px"> |
|
|
<div style="height: 635px"> |
|
|
<el-form :inline="true" label-position="top" :model="modalData" style="margin-top: -5px;"> |
|
|
<el-form :inline="true" label-position="top" :model="modalData" style="margin-top: -5px;"> |
|
|
<el-form-item label="SGS报告编号/SGS Report Number"> |
|
|
<el-form-item label="SGS报告编号/SGS Report Number"> |
|
|
<el-input v-model="modalData.sgsReportNumber" :disabled="isRohsFieldDisabled('sgsReportNumber')" style="width: 230px"></el-input> |
|
|
|
|
|
|
|
|
<el-input v-model="modalData.sgsReportNumber" :disabled="isRohsFieldDisabled('sgsReportNumber')" style="width: 252px"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="报告日期/Expired Date"> |
|
|
<el-form-item label="报告日期/Expired Date"> |
|
|
<el-date-picker v-model="modalData.expiredDate" type="date" value-format="yyyy-MM-dd" :disabled="isRohsFieldDisabled('expiredDate')" style="width: 180px" :editable=false></el-date-picker> |
|
|
<el-date-picker v-model="modalData.expiredDate" type="date" value-format="yyyy-MM-dd" :disabled="isRohsFieldDisabled('expiredDate')" style="width: 180px" :editable=false></el-date-picker> |
|
|
@ -351,16 +400,18 @@ |
|
|
</el-form> |
|
|
</el-form> |
|
|
<el-form :inline="true" label-position="top" :model="modalData"> |
|
|
<el-form :inline="true" label-position="top" :model="modalData"> |
|
|
<el-form-item label="是否符合RoHS/Meet RoHS Req"> |
|
|
<el-form-item label="是否符合RoHS/Meet RoHS Req"> |
|
|
<el-radio-group v-model="modalData.isMeetRohsRequirement" :disabled="isRohsFieldDisabled('isMeetRohsRequirement')" style="width: 230px"> |
|
|
|
|
|
|
|
|
<el-radio-group v-model="modalData.isMeetRohsRequirement" :disabled="isRohsFieldDisabled('isMeetRohsRequirement')" style="width: 252px"> |
|
|
<el-radio label="Y" @click.native.prevent="radioClick('isMeetRohsRequirement', 'Y')">是</el-radio> |
|
|
<el-radio label="Y" @click.native.prevent="radioClick('isMeetRohsRequirement', 'Y')">是</el-radio> |
|
|
<el-radio label="N" @click.native.prevent="radioClick('isMeetRohsRequirement', 'N')">否</el-radio> |
|
|
<el-radio label="N" @click.native.prevent="radioClick('isMeetRohsRequirement', 'N')">否</el-radio> |
|
|
</el-radio-group> |
|
|
</el-radio-group> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="材料属性是否是AH/Is AH Grade"> |
|
|
|
|
|
<el-radio-group v-model="modalData.isAhGrade" :disabled="isRohsFieldDisabled('isAhGrade')" style="width: 180px"> |
|
|
|
|
|
<el-radio label="Y" @click.native.prevent="radioClick('isAhGrade', 'Y')">是</el-radio> |
|
|
|
|
|
<el-radio label="N" @click.native.prevent="radioClick('isAhGrade', 'N')">否</el-radio> |
|
|
|
|
|
</el-radio-group> |
|
|
|
|
|
|
|
|
<el-form-item label=" "> |
|
|
|
|
|
<el-checkbox |
|
|
|
|
|
v-model="modalData.isAhGrade" |
|
|
|
|
|
true-label="Y" |
|
|
|
|
|
false-label="N" |
|
|
|
|
|
:disabled="isRohsFieldDisabled('isAhGrade')" |
|
|
|
|
|
style="width: 200px">材料属性是否是AH/Is AH Grade</el-checkbox> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="HSF供应商等级/Supplier Class"> |
|
|
<el-form-item label="HSF供应商等级/Supplier Class"> |
|
|
<el-radio-group v-model="modalData.hsfSupplierClassification" :disabled="isRohsFieldDisabled('hsfSupplierClassification')" style="width: 200px"> |
|
|
<el-radio-group v-model="modalData.hsfSupplierClassification" :disabled="isRohsFieldDisabled('hsfSupplierClassification')" style="width: 200px"> |
|
|
@ -372,7 +423,7 @@ |
|
|
</el-form> |
|
|
</el-form> |
|
|
<el-form :inline="true" label-position="top" :model="modalData"> |
|
|
<el-form :inline="true" label-position="top" :model="modalData"> |
|
|
<el-form-item label="Fiber报告信息/Fiber Information" style="display: block;"> |
|
|
<el-form-item label="Fiber报告信息/Fiber Information" style="display: block;"> |
|
|
<el-input type="textarea" :rows="3" v-model="modalData.fiberInformation" :disabled="isRohsFieldDisabled('fiberInformation')" resize="none" style="width: 802px;height: 30px"></el-input> |
|
|
|
|
|
|
|
|
<el-input type="textarea" :rows="3" v-model="modalData.fiberInformation" :disabled="isRohsFieldDisabled('fiberInformation')" resize="none" style="width: 804px;height: 30px"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-form> |
|
|
</el-form> |
|
|
<el-form :inline="true" label-position="top" :model="modalData" style="margin-top: 45px"> |
|
|
<el-form :inline="true" label-position="top" :model="modalData" style="margin-top: 45px"> |
|
|
@ -383,7 +434,7 @@ |
|
|
v-model="modalData.hsfApprover" |
|
|
v-model="modalData.hsfApprover" |
|
|
readonly |
|
|
readonly |
|
|
:disabled="isRohsFieldDisabled('hsfApprover')" |
|
|
:disabled="isRohsFieldDisabled('hsfApprover')" |
|
|
style="width: 420px" |
|
|
|
|
|
|
|
|
style="width: 396px" |
|
|
placeholder="请选择人员" |
|
|
placeholder="请选择人员" |
|
|
@focus="openHsfApproverChooseModal"> |
|
|
@focus="openHsfApproverChooseModal"> |
|
|
<span slot="suffix" v-show="modalData.hsfApprover && !isRohsFieldDisabled('hsfApprover')" @click.stop="clearHsfApproverSelection"> |
|
|
<span slot="suffix" v-show="modalData.hsfApprover && !isRohsFieldDisabled('hsfApprover')" @click.stop="clearHsfApproverSelection"> |
|
|
@ -391,77 +442,25 @@ |
|
|
</span> |
|
|
</span> |
|
|
</el-input> |
|
|
</el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-form> |
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="modalData"> |
|
|
|
|
|
<el-form-item label="Inform Related people"> |
|
|
|
|
|
<el-select |
|
|
|
|
|
|
|
|
<el-form-item> |
|
|
|
|
|
<span style="cursor: pointer" v-if="!isRohsFieldDisabled('relatedPeople')" slot="label" @click="openRelatedPeopleChooseModal"><a herf="#">Inform Related people</a></span> |
|
|
|
|
|
<span v-else slot="label">Inform Related people</span> |
|
|
|
|
|
<el-input |
|
|
v-model="modalData.relatedPeople" |
|
|
v-model="modalData.relatedPeople" |
|
|
clearable |
|
|
|
|
|
filterable |
|
|
|
|
|
|
|
|
readonly |
|
|
:disabled="isRohsFieldDisabled('relatedPeople')" |
|
|
:disabled="isRohsFieldDisabled('relatedPeople')" |
|
|
style="width: 420px" |
|
|
|
|
|
placeholder="请从HSF审批人中选择"> |
|
|
|
|
|
<el-option |
|
|
|
|
|
v-for="item in (modalData.hsfApproverList || [])" |
|
|
|
|
|
:key="item" |
|
|
|
|
|
:label="item" |
|
|
|
|
|
:value="item"> |
|
|
|
|
|
</el-option> |
|
|
|
|
|
</el-select> |
|
|
|
|
|
|
|
|
style="width: 396px" |
|
|
|
|
|
placeholder="请从HSF审批人中选择" |
|
|
|
|
|
@focus="openRelatedPeopleChooseModal"> |
|
|
|
|
|
<span slot="suffix" v-show="modalData.relatedPeople && !isRohsFieldDisabled('relatedPeople')" @click.stop="clearRelatedPeopleSelection"> |
|
|
|
|
|
<i class="el-icon-circle-close" style="margin-left: 5px;cursor: pointer;"></i> |
|
|
|
|
|
</span> |
|
|
|
|
|
</el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-form> |
|
|
</el-form> |
|
|
<el-form v-if="shouldShowHsfStandard(modalData.endCustomer)" :inline="true" label-position="top" :model="modalData" style="margin-top: 0px"> |
|
|
<el-form v-if="shouldShowHsfStandard(modalData.endCustomer)" :inline="true" label-position="top" :model="modalData" style="margin-top: 0px"> |
|
|
<el-form-item label="HSF标准/HSF Standard" style="display: block;"> |
|
|
<el-form-item label="HSF标准/HSF Standard" style="display: block;"> |
|
|
<el-input type="textarea" :rows="3" v-model="modalData.hsfStandard" :disabled="isRohsFieldDisabled('hsfStandard')" resize="none" style="width: 802px;height: 30px"></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-tab-pane> |
|
|
|
|
|
|
|
|
|
|
|
<!-- NPD 信息 --> |
|
|
|
|
|
<el-tab-pane label="NPD 信息" name="npdInfo"> |
|
|
|
|
|
<div style="height: 635px; overflow-y: auto;"> |
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="modalData" style="margin-top: -5px;"> |
|
|
|
|
|
<el-form-item label="现有材料不同规格/Same Material Diff Size"> |
|
|
|
|
|
<el-radio-group v-model="modalData.isSameMaterialDiffSize" :disabled="isRohsFieldDisabled('isSameMaterialDiffSize')" style="width: 190px"> |
|
|
|
|
|
<el-radio label="Y" @click.native.prevent="radioClick('isSameMaterialDiffSize', 'Y')">是</el-radio> |
|
|
|
|
|
<el-radio label="N" @click.native.prevent="radioClick('isSameMaterialDiffSize', 'N')">否</el-radio> |
|
|
|
|
|
</el-radio-group> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="modalData"> |
|
|
|
|
|
<el-form-item label="材料描述/Material Desc." style="display: block;"> |
|
|
|
|
|
<el-input type="textarea" :rows="3" v-model="modalData.materialDesc" :disabled="isRohsFieldDisabled('materialDesc')" resize="none" style="width: 802px;height: 30px"></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="modalData" style="margin-top: 50px"> |
|
|
|
|
|
<el-form-item label="备注说明/NPD Remark" style="display: block;"> |
|
|
|
|
|
<el-input type="textarea" :rows="3" v-model="modalData.npdRemark" :disabled="isRohsFieldDisabled('npdRemark')" resize="none" style="width: 802px;height: 30px"></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="modalData" style="margin-top: 50px"> |
|
|
|
|
|
<el-form-item label="TDS属性/TDS Property" style="display: block;"> |
|
|
|
|
|
<oss-components |
|
|
|
|
|
ref="modalTdsOss" |
|
|
|
|
|
:save-visible="authFileSave" |
|
|
|
|
|
:download-visible="authFileDownLoad" |
|
|
|
|
|
:remove-visible="authFileRemove" |
|
|
|
|
|
:preview-visible="authFilePreview" |
|
|
|
|
|
:disabled="showModalFlag || modalData.status === '已完成'" |
|
|
|
|
|
:enable-upgrade="!showModalFlag && modalData.status !== '已完成'" |
|
|
|
|
|
:require-file-no-rev="true" |
|
|
|
|
|
:auto-file-no="true" |
|
|
|
|
|
:single-upload="true" |
|
|
|
|
|
:row-click-select="true" |
|
|
|
|
|
:show-order-ref2="false" |
|
|
|
|
|
label="序列号" |
|
|
|
|
|
:height="350" |
|
|
|
|
|
style="margin-top: 2px" |
|
|
|
|
|
:columns="tdsFileColumnList" |
|
|
|
|
|
:order-ref1="modalData.site || ''" |
|
|
|
|
|
:order-ref2="modalData.referenceNo || ''" |
|
|
|
|
|
order-ref3="tdsProperty"> |
|
|
|
|
|
</oss-components> |
|
|
|
|
|
|
|
|
<el-input type="textarea" :rows="3" v-model="modalData.hsfStandard" :disabled="isRohsFieldDisabled('hsfStandard')" resize="none" style="width: 804px;height: 30px"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-form> |
|
|
</el-form> |
|
|
</div> |
|
|
</div> |
|
|
@ -658,6 +657,37 @@ |
|
|
</el-footer> |
|
|
</el-footer> |
|
|
</el-dialog> |
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
|
|
|
<el-dialog title="人员选择" @open="openRelatedPeopleDialog" @close="closeRelatedPeopleDialog" v-drag |
|
|
|
|
|
:visible.sync="relatedPeopleFlag" width="40vw" :close-on-click-modal="false"> |
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="relatedPeopleSearchData"> |
|
|
|
|
|
<el-form-item label="编码"> |
|
|
|
|
|
<el-input v-model="relatedPeopleSearchData.operatorId" clearable style="width: 120px"></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="名称"> |
|
|
|
|
|
<el-input v-model="relatedPeopleSearchData.operatorName" clearable style="width: 120px"></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label=" "> |
|
|
|
|
|
<el-button type="primary" @click="filterRelatedPeopleOptions">查询</el-button> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
<el-table v-if="relatedPeopleFlag" |
|
|
|
|
|
:height="300" |
|
|
|
|
|
:data="relatedPeopleDisplayList" |
|
|
|
|
|
highlight-current-row |
|
|
|
|
|
@current-change="handleRelatedPeopleCurrentChange" |
|
|
|
|
|
@row-click="handleRelatedPeopleTableClick" |
|
|
|
|
|
ref="relatedPeopleTable" |
|
|
|
|
|
border |
|
|
|
|
|
style="width: 100%;"> |
|
|
|
|
|
<el-table-column label="编码" property="operatorId" align="left" header-align="center"/> |
|
|
|
|
|
<el-table-column label="名称" property="operatorName" align="left" header-align="center"/> |
|
|
|
|
|
</el-table> |
|
|
|
|
|
<el-footer style="height:40px;margin-top: 20px;text-align:center"> |
|
|
|
|
|
<el-button type="primary" @click="saveRelatedPeopleChooseModal">确定</el-button> |
|
|
|
|
|
<el-button type="primary" @click="relatedPeopleFlag = false">关闭</el-button> |
|
|
|
|
|
</el-footer> |
|
|
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
<el-dialog title="驳回" top="30vh" :close-on-click-modal="false" v-drag :visible.sync="submitModalFlag" width="500px"> |
|
|
<el-dialog title="驳回" top="30vh" :close-on-click-modal="false" v-drag :visible.sync="submitModalFlag" width="500px"> |
|
|
<el-form label-position="top"> |
|
|
<el-form label-position="top"> |
|
|
<el-form-item label="驳回意见/Reject Opinion"> |
|
|
<el-form-item label="驳回意见/Reject Opinion"> |
|
|
@ -833,42 +863,6 @@ |
|
|
</div> |
|
|
</div> |
|
|
</el-tab-pane> |
|
|
</el-tab-pane> |
|
|
|
|
|
|
|
|
<el-tab-pane label="HSF 填写信息" name="hsfInfo"> |
|
|
|
|
|
<div :style="{height: secondHeight + 'px'}" style="margin-left: 5px;margin-top: 5px; overflow-y: auto;"> |
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="currentRow"> |
|
|
|
|
|
<el-form-item label="SGS报告编号/SGS Report Number"> |
|
|
|
|
|
<el-input :value="currentRow.sgsReportNumber || ''" disabled style="width: 230px"></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="报告日期/Expired Date"> |
|
|
|
|
|
<el-date-picker :value="currentRow.expiredDate" disabled type="date" value-format="yyyy-MM-dd" style="width: 180px"></el-date-picker> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="有效期数值/Valid Until Value"> |
|
|
|
|
|
<el-input :value="currentRow.validUntilValue || ''" disabled style="width: 150px"></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="有效期单位/Valid Until Unit"> |
|
|
|
|
|
<el-input :value="currentRow.validUntil || ''" disabled style="width: 180px"></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="currentRow"> |
|
|
|
|
|
<el-form-item label="是否符合RoHS/Meet RoHS Req"><el-input :value="displayYesNo(currentRow.isMeetRohsRequirement)" disabled style="width: 230px"></el-input></el-form-item> |
|
|
|
|
|
<el-form-item label="材料属性是否是AH/Is AH Grade"><el-input :value="displayYesNo(currentRow.isAhGrade)" disabled style="width: 180px"></el-input></el-form-item> |
|
|
|
|
|
<el-form-item label="HSF供应商等级/Supplier Class"><el-input :value="currentRow.hsfSupplierClassification || ''" disabled style="width: 200px"></el-input></el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="currentRow"> |
|
|
|
|
|
<el-form-item label="HSF审批人/HSF Approver"><el-input :value="currentRow.hsfApprover || ''" disabled style="width: 420px"></el-input></el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="currentRow"> |
|
|
|
|
|
<el-form-item label="Inform Related people"><el-input :value="currentRow.relatedPeople || ''" disabled style="width: 420px"></el-input></el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="currentRow"> |
|
|
|
|
|
<el-form-item label="Fiber报告信息/Fiber Information" style="display: block;"><el-input type="textarea" :rows="3" :value="currentRow.fiberInformation || ''" disabled resize="none" style="width: 802px;height: 30px"></el-input></el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
<el-form v-if="shouldShowHsfStandard(currentRow.endCustomer)" :inline="true" label-position="top" :model="currentRow" style="margin-top: 50px"> |
|
|
|
|
|
<el-form-item label="HSF标准/HSF Standard" style="display: block;"><el-input type="textarea" :rows="3" :value="currentRow.hsfStandard || ''" disabled resize="none" style="width: 802px;height: 30px"></el-input></el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-tab-pane> |
|
|
|
|
|
|
|
|
|
|
|
<el-tab-pane label="NPD 信息" name="npdInfo"> |
|
|
<el-tab-pane label="NPD 信息" name="npdInfo"> |
|
|
<div :style="{height: secondHeight + 'px'}" style="margin-left: 5px;margin-top: 5px; overflow-y: auto;"> |
|
|
<div :style="{height: secondHeight + 'px'}" style="margin-left: 5px;margin-top: 5px; overflow-y: auto;"> |
|
|
<el-form :inline="true" label-position="top" :model="currentRow"> |
|
|
<el-form :inline="true" label-position="top" :model="currentRow"> |
|
|
@ -902,6 +896,40 @@ |
|
|
</div> |
|
|
</div> |
|
|
</el-tab-pane> |
|
|
</el-tab-pane> |
|
|
|
|
|
|
|
|
|
|
|
<el-tab-pane label="HSF 填写信息" name="hsfInfo"> |
|
|
|
|
|
<div :style="{height: secondHeight + 'px'}" style="margin-left: 5px;margin-top: 5px; overflow-y: auto;"> |
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="currentRow"> |
|
|
|
|
|
<el-form-item label="SGS报告编号/SGS Report Number"> |
|
|
|
|
|
<el-input :value="currentRow.sgsReportNumber || ''" disabled style="width: 230px"></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="报告日期/Expired Date"> |
|
|
|
|
|
<el-date-picker :value="currentRow.expiredDate" disabled type="date" value-format="yyyy-MM-dd" style="width: 180px"></el-date-picker> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="有效期数值/Valid Until Value"> |
|
|
|
|
|
<el-input :value="currentRow.validUntilValue || ''" disabled style="width: 150px"></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="有效期单位/Valid Until Unit"> |
|
|
|
|
|
<el-input :value="currentRow.validUntil || ''" disabled style="width: 180px"></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="currentRow"> |
|
|
|
|
|
<el-form-item label="是否符合RoHS/Meet RoHS Req"><el-input :value="displayYesNo(currentRow.isMeetRohsRequirement)" disabled style="width: 230px"></el-input></el-form-item> |
|
|
|
|
|
<el-form-item label="材料属性是否是AH/Is AH Grade"><el-input :value="displayYesNo(currentRow.isAhGrade)" disabled style="width: 180px"></el-input></el-form-item> |
|
|
|
|
|
<el-form-item label="HSF供应商等级/Supplier Class"><el-input :value="currentRow.hsfSupplierClassification || ''" disabled style="width: 200px"></el-input></el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="currentRow"> |
|
|
|
|
|
<el-form-item label="HSF审批人/HSF Approver"><el-input :value="currentRow.hsfApprover || ''" disabled style="width: 396px"></el-input></el-form-item> |
|
|
|
|
|
<el-form-item label="Inform Related people"><el-input :value="currentRow.relatedPeople || ''" disabled style="width: 396px"></el-input></el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="currentRow"> |
|
|
|
|
|
<el-form-item label="Fiber报告信息/Fiber Information" style="display: block;"><el-input type="textarea" :rows="3" :value="currentRow.fiberInformation || ''" disabled resize="none" style="width: 802px;height: 30px"></el-input></el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
<el-form v-if="shouldShowHsfStandard(currentRow.endCustomer)" :inline="true" label-position="top" :model="currentRow" style="margin-top: 50px"> |
|
|
|
|
|
<el-form-item label="HSF标准/HSF Standard" style="display: block;"><el-input type="textarea" :rows="3" :value="currentRow.hsfStandard || ''" disabled resize="none" style="width: 802px;height: 30px"></el-input></el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-tab-pane> |
|
|
|
|
|
|
|
|
<el-tab-pane label="材料信息" name="materialInfo"> |
|
|
<el-tab-pane label="材料信息" name="materialInfo"> |
|
|
<div :style="{height: secondHeight + 'px'}" style="overflow-y: auto;"> |
|
|
<div :style="{height: secondHeight + 'px'}" style="overflow-y: auto;"> |
|
|
<el-table |
|
|
<el-table |
|
|
@ -1173,6 +1201,14 @@ export default { |
|
|
operatorId: '', |
|
|
operatorId: '', |
|
|
operatorName: '' |
|
|
operatorName: '' |
|
|
}, |
|
|
}, |
|
|
|
|
|
relatedPeopleOptionList: [], |
|
|
|
|
|
relatedPeopleDisplayList: [], |
|
|
|
|
|
relatedPeopleSelection: null, |
|
|
|
|
|
relatedPeopleFlag: false, |
|
|
|
|
|
relatedPeopleSearchData: { |
|
|
|
|
|
operatorId: '', |
|
|
|
|
|
operatorName: '' |
|
|
|
|
|
}, |
|
|
fileList: [], |
|
|
fileList: [], |
|
|
approvalList: [], |
|
|
approvalList: [], |
|
|
plmRohsAuthorityArr: [], |
|
|
plmRohsAuthorityArr: [], |
|
|
@ -1239,7 +1275,7 @@ export default { |
|
|
validUntilValue: 0, |
|
|
validUntilValue: 0, |
|
|
validUntil: '', |
|
|
validUntil: '', |
|
|
isMeetRohsRequirement: '', |
|
|
isMeetRohsRequirement: '', |
|
|
isAhGrade: '', |
|
|
|
|
|
|
|
|
isAhGrade: 'N', |
|
|
hsfSupplierClassification: '', |
|
|
hsfSupplierClassification: '', |
|
|
materialDesc: '', |
|
|
materialDesc: '', |
|
|
npdRemark: '', |
|
|
npdRemark: '', |
|
|
@ -1422,6 +1458,9 @@ export default { |
|
|
getCurrentDateString () { |
|
|
getCurrentDateString () { |
|
|
return this.normalizeDateOnly(new Date()) |
|
|
return this.normalizeDateOnly(new Date()) |
|
|
}, |
|
|
}, |
|
|
|
|
|
normalizeCheckboxFlag (value) { |
|
|
|
|
|
return String(value || '').trim().toUpperCase() === 'Y' ? 'Y' : 'N' |
|
|
|
|
|
}, |
|
|
normalizeValidUntilValue (value) { |
|
|
normalizeValidUntilValue (value) { |
|
|
if (value === null || value === undefined || value === '') { |
|
|
if (value === null || value === undefined || value === '') { |
|
|
return null |
|
|
return null |
|
|
@ -1568,7 +1607,38 @@ export default { |
|
|
}) |
|
|
}) |
|
|
this.$set(this.modalData, 'hsfApproverList', uniqueList) |
|
|
this.$set(this.modalData, 'hsfApproverList', uniqueList) |
|
|
this.$set(this.modalData, 'hsfApprover', uniqueList.join(';')) |
|
|
this.$set(this.modalData, 'hsfApprover', uniqueList.join(';')) |
|
|
if (!uniqueList.includes(this.modalData.relatedPeople)) { |
|
|
|
|
|
|
|
|
this.buildRelatedPeopleOptions(uniqueList) |
|
|
|
|
|
const relatedPeople = String(this.modalData.relatedPeople || '').trim() |
|
|
|
|
|
if (relatedPeople && !uniqueList.includes(relatedPeople)) { |
|
|
|
|
|
this.$set(this.modalData, 'relatedPeople', '') |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
buildRelatedPeopleOptions (selectedNames) { |
|
|
|
|
|
const normalizedNames = (Array.isArray(selectedNames) ? selectedNames : (this.modalData.hsfApproverList || [])) |
|
|
|
|
|
.map(item => String(item || '').trim()) |
|
|
|
|
|
.filter(item => !!item) |
|
|
|
|
|
const selectedSet = new Set(normalizedNames) |
|
|
|
|
|
let optionList = (this.hsfApproverOptionList || []) |
|
|
|
|
|
.filter(item => selectedSet.has(String(item.operatorName || '').trim())) |
|
|
|
|
|
.map(item => ({ |
|
|
|
|
|
operatorId: item.operatorId, |
|
|
|
|
|
operatorName: item.operatorName |
|
|
|
|
|
})) |
|
|
|
|
|
const existingNameSet = new Set(optionList.map(item => String(item.operatorName || '').trim())) |
|
|
|
|
|
normalizedNames.forEach(name => { |
|
|
|
|
|
if (existingNameSet.has(name)) { |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
optionList.push({ |
|
|
|
|
|
operatorId: name, |
|
|
|
|
|
operatorName: name |
|
|
|
|
|
}) |
|
|
|
|
|
existingNameSet.add(name) |
|
|
|
|
|
}) |
|
|
|
|
|
this.relatedPeopleOptionList = optionList |
|
|
|
|
|
this.filterRelatedPeopleOptions() |
|
|
|
|
|
const selectedRelatedPeople = String(this.modalData.relatedPeople || '').trim() |
|
|
|
|
|
if (selectedRelatedPeople && !optionList.some(item => String(item.operatorName || '').trim() === selectedRelatedPeople)) { |
|
|
this.$set(this.modalData, 'relatedPeople', '') |
|
|
this.$set(this.modalData, 'relatedPeople', '') |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
@ -1601,6 +1671,17 @@ export default { |
|
|
return matchOperatorId && matchOperatorName |
|
|
return matchOperatorId && matchOperatorName |
|
|
}) |
|
|
}) |
|
|
}, |
|
|
}, |
|
|
|
|
|
filterRelatedPeopleOptions () { |
|
|
|
|
|
const operatorIdKeyword = String(this.relatedPeopleSearchData.operatorId || '').trim().toUpperCase() |
|
|
|
|
|
const operatorNameKeyword = String(this.relatedPeopleSearchData.operatorName || '').trim().toUpperCase() |
|
|
|
|
|
this.relatedPeopleDisplayList = (this.relatedPeopleOptionList || []).filter(item => { |
|
|
|
|
|
const operatorId = String(item.operatorId || '').toUpperCase() |
|
|
|
|
|
const operatorName = String(item.operatorName || '').toUpperCase() |
|
|
|
|
|
const matchOperatorId = !operatorIdKeyword || operatorId.includes(operatorIdKeyword) |
|
|
|
|
|
const matchOperatorName = !operatorNameKeyword || operatorName.includes(operatorNameKeyword) |
|
|
|
|
|
return matchOperatorId && matchOperatorName |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
openHsfApproverChooseModal () { |
|
|
openHsfApproverChooseModal () { |
|
|
if (this.isRohsFieldDisabled('hsfApprover')) { |
|
|
if (this.isRohsFieldDisabled('hsfApprover')) { |
|
|
return |
|
|
return |
|
|
@ -1663,6 +1744,61 @@ export default { |
|
|
this.$set(this.modalData, 'hsfApproverList', []) |
|
|
this.$set(this.modalData, 'hsfApproverList', []) |
|
|
this.syncHsfApproverFields() |
|
|
this.syncHsfApproverFields() |
|
|
}, |
|
|
}, |
|
|
|
|
|
openRelatedPeopleChooseModal () { |
|
|
|
|
|
if (this.isRohsFieldDisabled('relatedPeople')) { |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
if (!this.modalData || !Array.isArray(this.modalData.hsfApproverList) || this.modalData.hsfApproverList.length === 0) { |
|
|
|
|
|
this.$message.warning('请先选择HSF审批人') |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
this.buildRelatedPeopleOptions(this.modalData.hsfApproverList) |
|
|
|
|
|
if (!this.relatedPeopleOptionList || this.relatedPeopleOptionList.length === 0) { |
|
|
|
|
|
this.$message.warning('未查询到可选Inform Related people') |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
this.relatedPeopleFlag = true |
|
|
|
|
|
}, |
|
|
|
|
|
openRelatedPeopleDialog () { |
|
|
|
|
|
this.relatedPeopleSearchData = { |
|
|
|
|
|
operatorId: '', |
|
|
|
|
|
operatorName: '' |
|
|
|
|
|
} |
|
|
|
|
|
this.filterRelatedPeopleOptions() |
|
|
|
|
|
const relatedPeople = String(this.modalData.relatedPeople || '').trim() |
|
|
|
|
|
const selectedRow = (this.relatedPeopleOptionList || []).find(item => String(item.operatorName || '').trim() === relatedPeople) || null |
|
|
|
|
|
this.relatedPeopleSelection = selectedRow |
|
|
|
|
|
this.$nextTick(() => { |
|
|
|
|
|
if (!this.$refs.relatedPeopleTable) { |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
this.$refs.relatedPeopleTable.setCurrentRow(selectedRow || null) |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
|
|
|
closeRelatedPeopleDialog () { |
|
|
|
|
|
this.relatedPeopleSelection = null |
|
|
|
|
|
}, |
|
|
|
|
|
handleRelatedPeopleCurrentChange (row) { |
|
|
|
|
|
this.relatedPeopleSelection = row || null |
|
|
|
|
|
}, |
|
|
|
|
|
handleRelatedPeopleTableClick (row) { |
|
|
|
|
|
this.relatedPeopleSelection = row || null |
|
|
|
|
|
if (this.$refs.relatedPeopleTable) { |
|
|
|
|
|
this.$refs.relatedPeopleTable.setCurrentRow(row) |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
saveRelatedPeopleChooseModal () { |
|
|
|
|
|
const selectedName = this.relatedPeopleSelection ? String(this.relatedPeopleSelection.operatorName || '').trim() : '' |
|
|
|
|
|
this.$set(this.modalData, 'relatedPeople', selectedName) |
|
|
|
|
|
this.relatedPeopleFlag = false |
|
|
|
|
|
}, |
|
|
|
|
|
clearRelatedPeopleSelection () { |
|
|
|
|
|
this.$set(this.modalData, 'relatedPeople', '') |
|
|
|
|
|
this.relatedPeopleSelection = null |
|
|
|
|
|
if (this.$refs.relatedPeopleTable) { |
|
|
|
|
|
this.$refs.relatedPeopleTable.setCurrentRow(null) |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
clearHsfApproverFields (clearBuNo = false) { |
|
|
clearHsfApproverFields (clearBuNo = false) { |
|
|
if (clearBuNo) { |
|
|
if (clearBuNo) { |
|
|
this.$set(this.modalData, 'buNo', '') |
|
|
this.$set(this.modalData, 'buNo', '') |
|
|
@ -1670,10 +1806,18 @@ export default { |
|
|
this.hsfApproverOptionList = [] |
|
|
this.hsfApproverOptionList = [] |
|
|
this.hsfApproverDisplayList = [] |
|
|
this.hsfApproverDisplayList = [] |
|
|
this.hsfApproverSelectionCache = [] |
|
|
this.hsfApproverSelectionCache = [] |
|
|
|
|
|
this.relatedPeopleOptionList = [] |
|
|
|
|
|
this.relatedPeopleDisplayList = [] |
|
|
|
|
|
this.relatedPeopleSelection = null |
|
|
|
|
|
this.relatedPeopleFlag = false |
|
|
this.hsfApproverSearchData = { |
|
|
this.hsfApproverSearchData = { |
|
|
operatorId: '', |
|
|
operatorId: '', |
|
|
operatorName: '' |
|
|
operatorName: '' |
|
|
} |
|
|
} |
|
|
|
|
|
this.relatedPeopleSearchData = { |
|
|
|
|
|
operatorId: '', |
|
|
|
|
|
operatorName: '' |
|
|
|
|
|
} |
|
|
this.$set(this.modalData, 'hsfApproverList', []) |
|
|
this.$set(this.modalData, 'hsfApproverList', []) |
|
|
this.$set(this.modalData, 'hsfApprover', '') |
|
|
this.$set(this.modalData, 'hsfApprover', '') |
|
|
this.$set(this.modalData, 'relatedPeople', '') |
|
|
this.$set(this.modalData, 'relatedPeople', '') |
|
|
@ -2183,6 +2327,14 @@ export default { |
|
|
operatorName: '' |
|
|
operatorName: '' |
|
|
} |
|
|
} |
|
|
this.hsfApproverFlag = false |
|
|
this.hsfApproverFlag = false |
|
|
|
|
|
this.relatedPeopleOptionList = [] |
|
|
|
|
|
this.relatedPeopleDisplayList = [] |
|
|
|
|
|
this.relatedPeopleSelection = null |
|
|
|
|
|
this.relatedPeopleSearchData = { |
|
|
|
|
|
operatorId: '', |
|
|
|
|
|
operatorName: '' |
|
|
|
|
|
} |
|
|
|
|
|
this.relatedPeopleFlag = false |
|
|
this.plmRohsAuthorityArr = [] |
|
|
this.plmRohsAuthorityArr = [] |
|
|
this.nodeAuthorityLoaded = !row |
|
|
this.nodeAuthorityLoaded = !row |
|
|
this.isEditMode = !!row |
|
|
this.isEditMode = !!row |
|
|
@ -2207,6 +2359,7 @@ export default { |
|
|
this.$set(this.modalData, 'materialList', Array.isArray(this.modalData.materialList) ? this.modalData.materialList : []) |
|
|
this.$set(this.modalData, 'materialList', Array.isArray(this.modalData.materialList) ? this.modalData.materialList : []) |
|
|
this.$set(this.modalData, 'hsfApproverList', this.modalData.hsfApprover ? this.modalData.hsfApprover.split(';').filter(item => item) : []) |
|
|
this.$set(this.modalData, 'hsfApproverList', this.modalData.hsfApprover ? this.modalData.hsfApprover.split(';').filter(item => item) : []) |
|
|
this.$set(this.modalData, 'buNo', this.modalData.process || '') |
|
|
this.$set(this.modalData, 'buNo', this.modalData.process || '') |
|
|
|
|
|
this.$set(this.modalData, 'isAhGrade', this.normalizeCheckboxFlag(this.modalData.isAhGrade)) |
|
|
this.$set(this.modalData, 'validUntilValue', this.normalizeValidUntilValue(this.modalData.validUntilValue)) |
|
|
this.$set(this.modalData, 'validUntilValue', this.normalizeValidUntilValue(this.modalData.validUntilValue)) |
|
|
this.syncHsfApproverFields() |
|
|
this.syncHsfApproverFields() |
|
|
this.fillDisplayFields(this.modalData, row || {}) |
|
|
this.fillDisplayFields(this.modalData, row || {}) |
|
|
@ -2288,7 +2441,7 @@ export default { |
|
|
validUntilValue: 0, |
|
|
validUntilValue: 0, |
|
|
validUntil: '', |
|
|
validUntil: '', |
|
|
isMeetRohsRequirement: '', |
|
|
isMeetRohsRequirement: '', |
|
|
isAhGrade: '', |
|
|
|
|
|
|
|
|
isAhGrade: 'N', |
|
|
hsfSupplierClassification: '', |
|
|
hsfSupplierClassification: '', |
|
|
materialDesc: '', |
|
|
materialDesc: '', |
|
|
npdRemark: '', |
|
|
npdRemark: '', |
|
|
@ -2312,6 +2465,7 @@ export default { |
|
|
this.$message.warning('当前状态不允许保存') |
|
|
this.$message.warning('当前状态不允许保存') |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
|
|
|
this.$set(this.modalData, 'isAhGrade', this.normalizeCheckboxFlag(this.modalData.isAhGrade)) |
|
|
this.normalizeHsfStandardByCustomer(this.modalData) |
|
|
this.normalizeHsfStandardByCustomer(this.modalData) |
|
|
this.syncHsfApproverFields() |
|
|
this.syncHsfApproverFields() |
|
|
if (!this.validateValidUntilPair()) { |
|
|
if (!this.validateValidUntilPair()) { |
|
|
@ -2382,6 +2536,7 @@ export default { |
|
|
this.$message.warning('单据主键信息缺失,无法提交审批') |
|
|
this.$message.warning('单据主键信息缺失,无法提交审批') |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
|
|
|
this.$set(this.modalData, 'isAhGrade', this.normalizeCheckboxFlag(this.modalData.isAhGrade)) |
|
|
this.normalizeHsfStandardByCustomer(this.modalData) |
|
|
this.normalizeHsfStandardByCustomer(this.modalData) |
|
|
this.syncHsfApproverFields() |
|
|
this.syncHsfApproverFields() |
|
|
if (!this.validateValidUntilPair()) { |
|
|
if (!this.validateValidUntilPair()) { |
|
|
|