Browse Source

2026-05-13

RoHs功能优化
master
fengyuan_yang 1 month ago
parent
commit
2a0d0eb2bf
  1. 3
      src/api/rohs/rohs.js
  2. 177
      src/views/modules/rohs/rohsRecord.vue

3
src/api/rohs/rohs.js

@ -30,5 +30,8 @@ export const getRohsApprovalList = data => createAPI(`/rohs/approvalList`, 'post
// 查询按钮控制信息
export const getRohsButtonCondition = data => createAPI(`/rohs/buttonCondition`, 'post', data);
// 获取节点字段权限(复用工程变更接口)
export const getRohsNodeAuthority = data => createAPI(`/plm/changeManagement/getNodeAuthority`, 'post', data);
// 导出
export const exportRohs = params => createAPI(`/rohs/export`, 'get', params);

177
src/views/modules/rohs/rohsRecord.vue

@ -110,72 +110,75 @@
<div style="height: 635px">
<el-form :inline="true" label-position="top" :model="modalData" style="margin-top: -5px;">
<el-form-item>
<span style="cursor: pointer" slot="label" @click="getBaseList(103, 1)"><a herf="#">申请人/Applicant</a></span>
<el-input v-model="modalData.applicant" @blur="applicantBlur(103)" style="width: 150px"></el-input>
<span style="cursor: pointer" v-if="!isRohsFieldDisabled('applicant')" slot="label" @click="getBaseList(103, 1)"><a herf="#">申请人/Applicant</a></span>
<span v-else slot="label">申请人/Applicant</span>
<el-input v-model="modalData.applicant" @blur="applicantBlur(103)" :disabled="isRohsFieldDisabled('applicant')" style="width: 150px"></el-input>
<el-input v-model="modalData.applicantName" disabled style="width: 240px"></el-input>
</el-form-item>
<el-form-item label="申请日期/Application Date">
<el-date-picker v-model="modalData.applicationDate" type="date" value-format="yyyy-MM-dd" style="width: 190px" :editable=false></el-date-picker>
<el-date-picker v-model="modalData.applicationDate" type="date" value-format="yyyy-MM-dd" :disabled="isRohsFieldDisabled('applicationDate')" style="width: 190px" :editable=false></el-date-picker>
</el-form-item>
<el-form-item label="工艺/Process">
<dict-data-select v-model="modalData.process" clearable style="width: 190px" dict-type="rohs_process"></dict-data-select>
<dict-data-select v-model="modalData.process" clearable :disabled="isRohsFieldDisabled('process')" style="width: 190px" dict-type="rohs_process"></dict-data-select>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData">
<el-form-item label="供应商代码/Vendor Code">
<el-input v-model="modalData.vendorCode" style="width: 150px"></el-input>
<el-input v-model="modalData.vendorCode" :disabled="isRohsFieldDisabled('vendorCode')" style="width: 150px"></el-input>
</el-form-item>
<el-form-item label="供应商材料编号/Vendor Material Code" style="margin-left: -10px">
<el-input v-model="modalData.vendorMaterialCode" style="width: 240px"></el-input>
<el-input v-model="modalData.vendorMaterialCode" :disabled="isRohsFieldDisabled('vendorMaterialCode')" style="width: 240px"></el-input>
</el-form-item>
<el-form-item label="辅材用途/Material Use For">
<el-input v-model="modalData.materialUseFor" style="width: 190px"></el-input>
<el-input v-model="modalData.materialUseFor" :disabled="isRohsFieldDisabled('materialUseFor')" style="width: 190px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData">
<el-form-item label="材料分类/Material Classify">
<dict-data-select v-model="modalData.materialClassifyList" multiple :collapse-tags="true" style="width: 394px" dict-type="rohs_material_classify"></dict-data-select>
<dict-data-select v-model="modalData.materialClassifyList" multiple :collapse-tags="true" :disabled="isRohsFieldDisabled('materialClassify')" style="width: 394px" dict-type="rohs_material_classify"></dict-data-select>
</el-form-item>
<el-form-item label="其他材料分类/Other Material Classify" v-if="modalData.materialClassifyList && modalData.materialClassifyList.includes('Other其他')">
<el-input v-model="modalData.otherMaterialClassify" style="width: 190px"></el-input>
<el-input v-model="modalData.otherMaterialClassify" :disabled="isRohsFieldDisabled('otherMaterialClassify')" style="width: 190px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData">
<el-form-item>
<span slot="label" v-if="!modalData.endCustomerFlag" @click="getBaseList(102, 1)"><a herf="#">最终客户/End Customer</a></span>
<span slot="label" v-if="!modalData.endCustomerFlag && !isRohsFieldDisabled('endCustomer')" @click="getBaseList(102, 1)"><a herf="#">最终客户/End Customer</a></span>
<span slot="label" v-else>最终客户/End Customer</span>
<el-input :disabled="modalData.endCustomerFlag" readonly v-model="modalData.endCustomer" @blur="handleQueryCustomer" style="width: 150px"></el-input>
<el-input :disabled="modalData.endCustomerFlag || isRohsFieldDisabled('endCustomer')" readonly v-model="modalData.endCustomer" @blur="handleQueryCustomer" style="width: 150px"></el-input>
<el-input disabled v-model="modalData.endCustomerName" style="width: 240px"></el-input>
</el-form-item>
<el-form-item>
<span style="cursor: pointer" slot="label" @click="getBaseList(103, 5)"><a herf="#">PM人员/PM</a></span>
<el-input v-model="modalData.pm" @blur="pmBlur(103)" style="width: 150px"></el-input>
<span style="cursor: pointer" v-if="!isRohsFieldDisabled('pm')" slot="label" @click="getBaseList(103, 5)"><a herf="#">PM人员/PM</a></span>
<span v-else slot="label">PM人员/PM</span>
<el-input v-model="modalData.pm" @blur="pmBlur(103)" :disabled="isRohsFieldDisabled('pm')" style="width: 150px"></el-input>
<el-input v-model="modalData.pmName" disabled style="width: 240px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData">
<el-form-item>
<span slot="label" v-if="!modalData.projectIdFlag" @click="chooseProjectListFlag = true"><a herf="#">项目编码/Project ID</a></span>
<span slot="label" v-if="!modalData.projectIdFlag && !isRohsFieldDisabled('projectId')" @click="chooseProjectListFlag = true"><a herf="#">项目编码/Project ID</a></span>
<span slot="label" v-else>项目编码/Project ID</span>
<el-input :disabled="modalData.projectIdFlag" readonly v-model="modalData.projectId" @blur="handleQueryProjectByCustomer" style="width: 150px"></el-input>
<el-input :disabled="modalData.projectIdFlag || isRohsFieldDisabled('projectId')" readonly v-model="modalData.projectId" @blur="handleQueryProjectByCustomer" style="width: 150px"></el-input>
<el-input disabled v-model="modalData.projectName" style="width: 240px"></el-input>
</el-form-item>
<el-form-item label="颜色/Color">
<el-input v-model="modalData.color" style="width: 150px"></el-input>
<el-input v-model="modalData.color" :disabled="isRohsFieldDisabled('color')" style="width: 150px"></el-input>
</el-form-item>
<el-form-item label="计划转量产时间/Planned Mass Production">
<el-date-picker v-model="modalData.plannedMassProductionDate" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" style="width: 230px" :editable=false></el-date-picker>
<el-date-picker v-model="modalData.plannedMassProductionDate" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" :disabled="isRohsFieldDisabled('plannedMassProductionDate')" style="width: 230px" :editable=false></el-date-picker>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData">
<el-form-item>
<span style="cursor: pointer" slot="label" @click="getBaseList(110)"><a herf="#">商品组1 / Comm Group 1</a></span>
<el-input v-model="modalData.commGroup1" @change="commGroup1Blur(110)" style="width: 150px"></el-input>
<span style="cursor: pointer" v-if="!isRohsFieldDisabled('commGroup1')" slot="label" @click="getBaseList(110)"><a herf="#">商品组1 / Comm Group 1</a></span>
<span v-else slot="label">商品组1 / Comm Group 1</span>
<el-input v-model="modalData.commGroup1" @change="commGroup1Blur(110)" :disabled="isRohsFieldDisabled('commGroup1')" style="width: 150px"></el-input>
<el-input v-model="modalData.commGroup1Desc" disabled style="width: 240px"></el-input>
</el-form-item>
<el-form-item label="是否需偏差许可/Need Deviation">
<el-radio-group v-model="modalData.needDeviation" style="width: 190px">
<el-radio-group v-model="modalData.needDeviation" :disabled="isRohsFieldDisabled('needDeviation')" style="width: 190px">
<el-radio label="Y" @click.native.prevent="radioClick('needDeviation', 'Y')"></el-radio>
<el-radio label="N" @click.native.prevent="radioClick('needDeviation', 'N')"></el-radio>
</el-radio-group>
@ -183,12 +186,13 @@
</el-form>
<el-form :inline="true" label-position="top" :model="modalData">
<el-form-item>
<span style="cursor: pointer" slot="label" @click="getBaseList(111)"><a herf="#">商品组2 / Comm Group 2</a></span>
<el-input v-model="modalData.commGroup2" @change="commGroup2Blur(111)" style="width: 150px"></el-input>
<span style="cursor: pointer" v-if="!isRohsFieldDisabled('commGroup2')" slot="label" @click="getBaseList(111)"><a herf="#">商品组2 / Comm Group 2</a></span>
<span v-else slot="label">商品组2 / Comm Group 2</span>
<el-input v-model="modalData.commGroup2" @change="commGroup2Blur(111)" :disabled="isRohsFieldDisabled('commGroup2')" style="width: 150px"></el-input>
<el-input v-model="modalData.commGroup2Desc" disabled style="width: 240px"></el-input>
</el-form-item>
<el-form-item label="需创建内部编号/Need Create No.">
<el-radio-group v-model="modalData.needCreateNumber" style="width: 190px">
<el-radio-group v-model="modalData.needCreateNumber" :disabled="isRohsFieldDisabled('needCreateNumber')" style="width: 190px">
<el-radio label="Y" @click.native.prevent="radioClick('needCreateNumber', 'Y')"></el-radio>
<el-radio label="N" @click.native.prevent="radioClick('needCreateNumber', 'N')"></el-radio>
</el-radio-group>
@ -196,12 +200,13 @@
</el-form>
<el-form :inline="true" label-position="top" :model="modalData">
<el-form-item>
<span style="cursor: pointer" slot="label" @click="getBaseList(130)"><a herf="#">商品组3 / Comm Group 3</a></span>
<el-input v-model="modalData.commGroup3" @change="commGroup3Blur(130)" style="width: 150px"></el-input>
<span style="cursor: pointer" v-if="!isRohsFieldDisabled('commGroup3')" slot="label" @click="getBaseList(130)"><a herf="#">商品组3 / Comm Group 3</a></span>
<span v-else slot="label">商品组3 / Comm Group 3</span>
<el-input v-model="modalData.commGroup3" @change="commGroup3Blur(130)" :disabled="isRohsFieldDisabled('commGroup3')" style="width: 150px"></el-input>
<el-input v-model="modalData.commGroup3Desc" disabled style="width: 240px"></el-input>
</el-form-item>
<el-form-item label="是否Fiber材料/Fiber Material">
<el-radio-group v-model="modalData.isFiberMaterial" style="width: 190px">
<el-radio-group v-model="modalData.isFiberMaterial" :disabled="isRohsFieldDisabled('isFiberMaterial')" style="width: 190px">
<el-radio label="Y" @click.native.prevent="radioClick('isFiberMaterial', 'Y')"></el-radio>
<el-radio label="N" @click.native.prevent="radioClick('isFiberMaterial', 'N')"></el-radio>
</el-radio-group>
@ -209,26 +214,27 @@
</el-form>
<el-form :inline="true" label-position="top" :model="modalData">
<el-form-item>
<span style="cursor: pointer" slot="label" @click="getBaseList(103, 3)"><a herf="#">NPD工程师/NPD Engineer</a></span>
<el-input v-model="modalData.npdEngineer" @blur="npdEngineerBlur(103)" style="width: 150px"></el-input>
<span style="cursor: pointer" v-if="!isRohsFieldDisabled('npdEngineer')" slot="label" @click="getBaseList(103, 3)"><a herf="#">NPD工程师/NPD Engineer</a></span>
<span v-else slot="label">NPD工程师/NPD Engineer</span>
<el-input v-model="modalData.npdEngineer" @blur="npdEngineerBlur(103)" :disabled="isRohsFieldDisabled('npdEngineer')" style="width: 150px"></el-input>
<el-input v-model="modalData.npdEngineerName" disabled style="width: 240px"></el-input>
</el-form-item>
<el-form-item label="WM所需求规格/WM Required Spec">
<el-input v-model="modalData.wmRequiredSpec" style="width: 190px"></el-input>
<el-input v-model="modalData.wmRequiredSpec" :disabled="isRohsFieldDisabled('wmRequiredSpec')" style="width: 190px"></el-input>
</el-form-item>
<el-form-item label="材料厚度/Material Thickness">
<el-input v-model="modalData.materialThickness" style="width: 190px"></el-input>
<el-input v-model="modalData.materialThickness" :disabled="isRohsFieldDisabled('materialThickness')" style="width: 190px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData">
<el-form-item label="材料有效期/Material Validity Time">
<el-date-picker v-model="modalData.materialValidityTime" type="date" value-format="yyyy-MM-dd" style="width: 190px" :editable=false></el-date-picker>
<el-date-picker v-model="modalData.materialValidityTime" type="date" value-format="yyyy-MM-dd" :disabled="isRohsFieldDisabled('materialValidityTime')" style="width: 190px" :editable=false></el-date-picker>
</el-form-item>
<el-form-item label="有效期备注/Validity Comments">
<el-input v-model="modalData.materialValidityComments" style="width: 190px"></el-input>
<el-input v-model="modalData.materialValidityComments" :disabled="isRohsFieldDisabled('materialValidityComments')" style="width: 190px"></el-input>
</el-form-item>
<el-form-item label="报告时间(月)/Expect Report Time">
<el-input class="inlineNumber numInput" v-model="modalData.expectReportTime" type="number" style="width: 190px"></el-input>
<el-input class="inlineNumber numInput" v-model="modalData.expectReportTime" :disabled="isRohsFieldDisabled('expectReportTime')" type="number" style="width: 190px"></el-input>
</el-form-item>
<el-form-item label=" " style="margin-top: -2px;margin-left: 2px">
<el-button type="primary" icon="el-icon-upload" @click="uploadDialog = true">上传附件</el-button>
@ -236,27 +242,29 @@
</el-form>
<el-form :inline="true" label-position="top" :model="modalData">
<el-form-item>
<span style="cursor: pointer" slot="label" @click="getBaseList(103, 4)"><a herf="#">技术计划/Technical Plan</a></span>
<el-input v-model="modalData.technicalPlan" @blur="technicalPlanBlur(103)" style="width: 150px"></el-input>
<span style="cursor: pointer" v-if="!isRohsFieldDisabled('technicalPlan')" slot="label" @click="getBaseList(103, 4)"><a herf="#">技术计划/Technical Plan</a></span>
<span v-else slot="label">技术计划/Technical Plan</span>
<el-input v-model="modalData.technicalPlan" @blur="technicalPlanBlur(103)" :disabled="isRohsFieldDisabled('technicalPlan')" style="width: 150px"></el-input>
<el-input v-model="modalData.technicalPlanName" disabled style="width: 240px"></el-input>
</el-form-item>
<el-form-item>
<span style="cursor: pointer" slot="label" @click="getBaseList(2000, 2)"><a herf="#">采购/Buyer</a></span>
<el-input v-model="modalData.buyer" @blur="buyerBlur(2000)" style="width: 150px"></el-input>
<span style="cursor: pointer" v-if="!isRohsFieldDisabled('buyer')" slot="label" @click="getBaseList(2000, 2)"><a herf="#">采购/Buyer</a></span>
<span v-else slot="label">采购/Buyer</span>
<el-input v-model="modalData.buyer" @blur="buyerBlur(2000)" :disabled="isRohsFieldDisabled('buyer')" style="width: 150px"></el-input>
<el-input v-model="modalData.buyerName" disabled style="width: 240px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData">
<el-form-item label="所需审批文件/Docs Needed" >
<dict-data-select v-model="modalData.qualificationDocumentsNeededList" multiple :collapse-tags="true" style="width: 394px" dict-type="rohs_qualification_docs"></dict-data-select>
<dict-data-select v-model="modalData.qualificationDocumentsNeededList" multiple :collapse-tags="true" :disabled="isRohsFieldDisabled('qualificationDocumentsNeeded')" style="width: 394px" dict-type="rohs_qualification_docs"></dict-data-select>
</el-form-item>
<el-form-item label="测试报告必测项/Test Items">
<dict-data-select v-model="modalData.testReportIncludingItemsList" multiple :collapse-tags="true" style="width: 394px" dict-type="rohs_test_report_items"></dict-data-select>
<dict-data-select v-model="modalData.testReportIncludingItemsList" multiple :collapse-tags="true" :disabled="isRohsFieldDisabled('testReportIncludingItems')" style="width: 394px" dict-type="rohs_test_report_items"></dict-data-select>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData">
<el-form-item label="备注说明/Remark" style="display: block;">
<el-input type="textarea" :rows="3" v-model="modalData.remark" resize="none" style="width: 802px;height: 30px"></el-input>
<el-input type="textarea" :rows="3" v-model="modalData.remark" :disabled="isRohsFieldDisabled('remark')" resize="none" style="width: 802px;height: 30px"></el-input>
</el-form-item>
</el-form>
</div>
@ -267,30 +275,30 @@
<div style="height: 635px">
<el-form :inline="true" label-position="top" :model="modalData" style="margin-top: -5px;">
<el-form-item label="SGS报告编号/SGS Report Number">
<el-input v-model="modalData.sgsReportNumber" style="width: 230px"></el-input>
<el-input v-model="modalData.sgsReportNumber" :disabled="isRohsFieldDisabled('sgsReportNumber')" style="width: 230px"></el-input>
</el-form-item>
<el-form-item label="报告日期/Expired Date">
<el-date-picker v-model="modalData.expiredDate" type="date" value-format="yyyy-MM-dd" 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>
</el-form-item>
<el-form-item label="有效期/Valid Until">
<dict-data-select v-model="modalData.validUntil" clearable style="width: 180px" dict-type="rohs_valid_until"></dict-data-select>
<dict-data-select v-model="modalData.validUntil" clearable :disabled="isRohsFieldDisabled('validUntil')" style="width: 180px" dict-type="rohs_valid_until"></dict-data-select>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData">
<el-form-item label="是否符合RoHS/Meet RoHS Req">
<el-radio-group v-model="modalData.isMeetRohsRequirement" style="width: 230px">
<el-radio-group v-model="modalData.isMeetRohsRequirement" :disabled="isRohsFieldDisabled('isMeetRohsRequirement')" style="width: 230px">
<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-group>
</el-form-item>
<el-form-item label="材料属性是否是AH/Is AH Grade">
<el-radio-group v-model="modalData.isAhGrade" style="width: 180px">
<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>
<el-form-item label="HSF供应商等级/Supplier Class">
<el-radio-group v-model="modalData.hsfSupplierClassification" style="width: 180px">
<el-radio-group v-model="modalData.hsfSupplierClassification" :disabled="isRohsFieldDisabled('hsfSupplierClassification')" style="width: 180px">
<el-radio label="A类" @click.native.prevent="radioClick('hsfSupplierClassification', 'A类')">A类</el-radio>
<el-radio label="B类" @click.native.prevent="radioClick('hsfSupplierClassification', 'B类')">B类</el-radio>
<el-radio label="C类" @click.native.prevent="radioClick('hsfSupplierClassification', 'C类')">C类</el-radio>
@ -299,12 +307,12 @@
</el-form>
<el-form :inline="true" label-position="top" :model="modalData">
<el-form-item label="Fiber报告信息/Fiber Information" style="display: block;">
<el-input type="textarea" :rows="3" v-model="modalData.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: 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="HSF标准/HSF Standard" style="display: block;">
<el-input type="textarea" :rows="3" v-model="modalData.hsfStandard" resize="none" style="width: 802px;height: 30px"></el-input>
<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>
@ -315,7 +323,7 @@
<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" style="width: 190px">
<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>
@ -323,12 +331,12 @@
</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" resize="none" style="width: 802px;height: 30px"></el-input>
<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" resize="none" style="width: 802px;height: 30px"></el-input>
<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">
@ -363,8 +371,8 @@
<div style="height: 635px">
<el-form :inline="true" label-position="top" :model="modalData" style="margin-top: -15px;">
<el-form-item label=" ">
<el-button type="primary" v-if="!showModalFlag" @click="openProjectMaterialDialog">新增材料</el-button>
<el-button type="danger" v-if="!showModalFlag" @click="removeSelectedMaterialRows">删除材料</el-button>
<el-button type="primary" v-if="!showModalFlag && canEditRohsMaterial()" @click="openProjectMaterialDialog">新增材料</el-button>
<el-button type="danger" v-if="!showModalFlag && canEditRohsMaterial()" @click="removeSelectedMaterialRows">删除材料</el-button>
</el-form-item>
</el-form>
<el-table
@ -960,6 +968,8 @@ export default {
projectList: [],
fileList: [],
approvalList: [],
plmRohsAuthorityArr: [],
plmRohsMaterialAuthorityArr: [],
modalTitle: 'RoHs 新增',
activeName: 'basicInfo',
showModalFlag: false,
@ -1045,6 +1055,50 @@ export default {
})
},
methods: {
loadNodeAuthority (site, stepId) {
if (!site || stepId === null || stepId === undefined || !this.menuId) {
this.plmRohsAuthorityArr = []
this.plmRohsMaterialAuthorityArr = []
return Promise.resolve()
}
let params = {
site: site,
stepId: stepId,
menuId: this.menuId
}
return api.getRohsNodeAuthority(params).then(({data}) => {
if (data && data.code === 0 && data.rows) {
this.plmRohsAuthorityArr = data.rows.plm_rohs || []
this.plmRohsMaterialAuthorityArr = data.rows.plm_rohs_material || []
} else {
this.plmRohsAuthorityArr = []
this.plmRohsMaterialAuthorityArr = []
}
}).catch(() => {
this.plmRohsAuthorityArr = []
this.plmRohsMaterialAuthorityArr = []
})
},
rohsFieldFlag (fieldId) {
if (!this.plmRohsAuthorityArr || this.plmRohsAuthorityArr.length === 0) {
return 'N'
}
let target = this.plmRohsAuthorityArr.find(item => item.fieldId === fieldId)
return target ? target.updateFlag : 'N'
},
rohsMaterialFieldFlag (fieldId) {
if (!this.plmRohsMaterialAuthorityArr || this.plmRohsMaterialAuthorityArr.length === 0) {
return 'N'
}
let target = this.plmRohsMaterialAuthorityArr.find(item => item.fieldId === fieldId)
return target ? target.updateFlag : 'N'
},
isRohsFieldDisabled (fieldId) {
return this.showModalFlag || this.rohsFieldFlag(fieldId) === 'N'
},
canEditRohsMaterial () {
return !this.showModalFlag && this.rohsMaterialFieldFlag('testPartNo') !== 'N'
},
materialDialogHeaderCellStyle () {
return {
whiteSpace: 'nowrap',
@ -1312,6 +1366,8 @@ export default {
this.projectMaterialDialogFlag = false
this.projectMaterialSelections = []
this.materialSelections = []
this.plmRohsAuthorityArr = []
this.plmRohsMaterialAuthorityArr = []
this.projectMaterialPageIndex = 1
this.projectMaterialTotal = 0
this.projectMaterialList = []
@ -1341,7 +1397,10 @@ export default {
this.$set(this.modalData, 'tpProcessControl', 'N')
this.$set(this.modalData, 'csProcessControl', 'N')
this.loadModalButtonCondition()
this.loadNodeAuthority(this.modalData.site || row.site, this.modalData.stepId !== null && this.modalData.stepId !== undefined ? this.modalData.stepId : (row.stepId !== null && row.stepId !== undefined ? row.stepId : 10))
}
}).catch(() => {
this.loadNodeAuthority(row.site, row.stepId !== null && row.stepId !== undefined ? row.stepId : 10)
})
} else {
this.modalTitle = 'RoHs 新增'
@ -1417,6 +1476,7 @@ export default {
tpProcessControl: 'N',
csProcessControl: 'N'
}
this.loadNodeAuthority(this.modalData.site, this.modalData.stepId)
}
},
//
@ -1544,6 +1604,10 @@ export default {
})
},
openProjectMaterialDialog () {
if (!this.canEditRohsMaterial()) {
this.$message.warning('当前节点无材料编辑权限')
return
}
if (!this.modalData.projectId) {
this.$message.warning('请先选择项目编码')
return
@ -1608,6 +1672,10 @@ export default {
this.searchProjectMaterialList()
},
confirmProjectMaterialSelection () {
if (!this.canEditRohsMaterial()) {
this.$message.warning('当前节点无材料编辑权限')
return
}
if (!this.projectMaterialSelections || this.projectMaterialSelections.length === 0) {
this.$message.warning('请至少选择一条项目物料')
return
@ -1707,7 +1775,8 @@ export default {
})
},
removeSelectedMaterialRows () {
if (this.showModalFlag) {
if (!this.canEditRohsMaterial()) {
this.$message.warning('当前节点无材料编辑权限')
return
}
if (!this.materialSelections || this.materialSelections.length === 0) {

Loading…
Cancel
Save