|
|
|
@ -84,7 +84,11 @@ |
|
|
|
<el-table-column prop="expectReportTime" header-align="center" align="center" label="报告时间(月)" width="200"></el-table-column> |
|
|
|
<el-table-column prop="sgsReportNumber" header-align="center" align="center" label="SGS报告编号" width="190" :show-overflow-tooltip="true"></el-table-column> |
|
|
|
<el-table-column prop="expiredDate" header-align="center" align="center" label="报告日期" width="165"></el-table-column> |
|
|
|
<el-table-column prop="validUntil" header-align="center" align="center" label="有效期" width="160"></el-table-column> |
|
|
|
<el-table-column header-align="center" align="center" label="有效期" width="170" :show-overflow-tooltip="true"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<span>{{ getValidUntilDisplay(scope.row.validUntilValue, scope.row.validUntil) }}</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="isMeetRohsRequirement" header-align="center" align="center" label="符合RoHS" width="170"></el-table-column> |
|
|
|
<el-table-column prop="isAhGrade" header-align="center" align="center" label="AH属性" width="140"></el-table-column> |
|
|
|
<el-table-column prop="hsfSupplierClassification" header-align="center" align="center" label="HSF供应商等级" width="220"></el-table-column> |
|
|
|
@ -304,8 +308,19 @@ |
|
|
|
<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-form-item> |
|
|
|
<el-form-item label="有效期/Valid Until"> |
|
|
|
<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 label="有效期数值/Valid Until Value"> |
|
|
|
<el-input-number |
|
|
|
v-model="modalData.validUntilValue" |
|
|
|
:controls="false" |
|
|
|
:min="0" |
|
|
|
:step="1" |
|
|
|
:precision="0" |
|
|
|
:disabled="isValidUntilValueDisabled()" |
|
|
|
style="width: 150px"> |
|
|
|
</el-input-number> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="有效期单位/Valid Until Unit"> |
|
|
|
<dict-data-select v-model="modalData.validUntil" clearable :disabled="isValidUntilUnitDisabled()" 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"> |
|
|
|
@ -322,7 +337,7 @@ |
|
|
|
</el-radio-group> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="HSF供应商等级/Supplier Class"> |
|
|
|
<el-radio-group v-model="modalData.hsfSupplierClassification" :disabled="isRohsFieldDisabled('hsfSupplierClassification')" style="width: 180px"> |
|
|
|
<el-radio-group v-model="modalData.hsfSupplierClassification" :disabled="isRohsFieldDisabled('hsfSupplierClassification')" style="width: 200px"> |
|
|
|
<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> |
|
|
|
@ -789,14 +804,17 @@ |
|
|
|
<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"> |
|
|
|
<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: 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> |
|
|
|
@ -1173,6 +1191,7 @@ export default { |
|
|
|
hsfApproverList: [], |
|
|
|
relatedPeople: '', |
|
|
|
buNo: '', |
|
|
|
validUntilValue: 0, |
|
|
|
validUntil: '', |
|
|
|
isMeetRohsRequirement: '', |
|
|
|
isAhGrade: '', |
|
|
|
@ -1273,9 +1292,49 @@ export default { |
|
|
|
} |
|
|
|
return this.rohsFieldFlag(fieldId) === 'N' |
|
|
|
}, |
|
|
|
isRohsFieldDisabledWithFallback (primaryFieldId, fallbackFieldId) { |
|
|
|
if (this.showModalFlag) { |
|
|
|
return true |
|
|
|
} |
|
|
|
if (!this.isEditMode) { |
|
|
|
return false |
|
|
|
} |
|
|
|
const primaryDisabled = this.rohsFieldFlag(primaryFieldId) === 'N' |
|
|
|
if (!primaryDisabled) { |
|
|
|
return false |
|
|
|
} |
|
|
|
return this.rohsFieldFlag(fallbackFieldId) === 'N' |
|
|
|
}, |
|
|
|
isValidUntilValueDisabled () { |
|
|
|
return this.isRohsFieldDisabledWithFallback('validUntilValue', 'validUntil') |
|
|
|
}, |
|
|
|
isValidUntilUnitDisabled () { |
|
|
|
return this.isRohsFieldDisabledWithFallback('validUntil', 'validUntilValue') |
|
|
|
}, |
|
|
|
canEditRohsMaterial () { |
|
|
|
return !this.showModalFlag |
|
|
|
}, |
|
|
|
normalizeValidUntilValue (value) { |
|
|
|
if (value === null || value === undefined || value === '') { |
|
|
|
return null |
|
|
|
} |
|
|
|
const parsed = Number.parseInt(value, 10) |
|
|
|
if (Number.isNaN(parsed) || parsed <= 0) { |
|
|
|
return null |
|
|
|
} |
|
|
|
return parsed |
|
|
|
}, |
|
|
|
getValidUntilDisplay (value, unit) { |
|
|
|
const normalizedValue = this.normalizeValidUntilValue(value) |
|
|
|
const normalizedUnit = String(unit || '').trim() |
|
|
|
if (normalizedValue && normalizedUnit) { |
|
|
|
return normalizedValue + normalizedUnit |
|
|
|
} |
|
|
|
if (normalizedValue) { |
|
|
|
return String(normalizedValue) |
|
|
|
} |
|
|
|
return normalizedUnit |
|
|
|
}, |
|
|
|
getRohsSubmitFieldValue (fieldId) { |
|
|
|
const fieldMapping = { |
|
|
|
materialClassify: 'materialClassifyList', |
|
|
|
@ -1300,6 +1359,7 @@ export default { |
|
|
|
}, |
|
|
|
validateSubmitRequiredFields () { |
|
|
|
if (this.plmRohsAuthorityArr && this.plmRohsAuthorityArr.length > 0) { |
|
|
|
let validUntilPairRequiredChecked = false |
|
|
|
for (let i = 0; i < this.plmRohsAuthorityArr.length; i++) { |
|
|
|
const fieldConfig = this.plmRohsAuthorityArr[i] |
|
|
|
if (fieldConfig.required !== 'Y') { |
|
|
|
@ -1308,6 +1368,19 @@ export default { |
|
|
|
if (fieldConfig.fieldId === 'hsfStandard' && !this.shouldShowHsfStandard(this.modalData.endCustomer)) { |
|
|
|
continue |
|
|
|
} |
|
|
|
if (fieldConfig.fieldId === 'validUntil' || fieldConfig.fieldId === 'validUntilValue') { |
|
|
|
if (validUntilPairRequiredChecked) { |
|
|
|
continue |
|
|
|
} |
|
|
|
const validUntilValue = this.normalizeValidUntilValue(this.modalData.validUntilValue) |
|
|
|
this.$set(this.modalData, 'validUntilValue', validUntilValue) |
|
|
|
if (this.isSubmitFieldEmpty(validUntilValue) || this.isSubmitFieldEmpty(this.modalData.validUntil)) { |
|
|
|
this.$message.warning('有效期数值/单位不能为空!') |
|
|
|
return false |
|
|
|
} |
|
|
|
validUntilPairRequiredChecked = true |
|
|
|
continue |
|
|
|
} |
|
|
|
const value = this.getRohsSubmitFieldValue(fieldConfig.fieldId) |
|
|
|
if (this.isSubmitFieldEmpty(value)) { |
|
|
|
this.$message.warning((fieldConfig.fieldName || fieldConfig.fieldId) + '不能为空!') |
|
|
|
@ -1318,6 +1391,24 @@ export default { |
|
|
|
|
|
|
|
return true |
|
|
|
}, |
|
|
|
validateValidUntilPair () { |
|
|
|
const validUntilValue = this.normalizeValidUntilValue(this.modalData.validUntilValue) |
|
|
|
const validUntilUnit = String(this.modalData.validUntil || '').trim() |
|
|
|
this.$set(this.modalData, 'validUntilValue', validUntilValue) |
|
|
|
this.$set(this.modalData, 'validUntil', validUntilUnit) |
|
|
|
if (!validUntilValue && !validUntilUnit) { |
|
|
|
return true |
|
|
|
} |
|
|
|
if (!validUntilValue) { |
|
|
|
this.$message.warning('请填写有效期数值') |
|
|
|
return false |
|
|
|
} |
|
|
|
if (!validUntilUnit) { |
|
|
|
this.$message.warning('请选择有效期单位') |
|
|
|
return false |
|
|
|
} |
|
|
|
return true |
|
|
|
}, |
|
|
|
materialDialogHeaderCellStyle () { |
|
|
|
return { |
|
|
|
whiteSpace: 'nowrap', |
|
|
|
@ -1731,6 +1822,10 @@ export default { |
|
|
|
}) |
|
|
|
this.$set(target, 'endCustomerFlag', !!target.endCustomerFlag) |
|
|
|
this.$set(target, 'projectIdFlag', !!target.projectIdFlag) |
|
|
|
const validUntilValue = target.validUntilValue !== undefined && target.validUntilValue !== null && target.validUntilValue !== '' |
|
|
|
? target.validUntilValue |
|
|
|
: fallbackData.validUntilValue |
|
|
|
this.$set(target, 'validUntilValue', this.normalizeValidUntilValue(validUntilValue)) |
|
|
|
}, |
|
|
|
refreshCurrentTabTable () { |
|
|
|
if (this.activeTable === 'approvalInformation') { |
|
|
|
@ -1909,6 +2004,7 @@ export default { |
|
|
|
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, 'buNo', this.modalData.buNo || '') |
|
|
|
this.$set(this.modalData, 'validUntilValue', this.normalizeValidUntilValue(this.modalData.validUntilValue)) |
|
|
|
this.syncHsfApproverFields() |
|
|
|
this.fillDisplayFields(this.modalData, row || {}) |
|
|
|
// 编辑时不允许修改最终客户和项目编码 |
|
|
|
@ -1986,6 +2082,7 @@ export default { |
|
|
|
hsfApproverList: [], |
|
|
|
relatedPeople: '', |
|
|
|
buNo: '', |
|
|
|
validUntilValue: 0, |
|
|
|
validUntil: '', |
|
|
|
isMeetRohsRequirement: '', |
|
|
|
isAhGrade: '', |
|
|
|
@ -2014,6 +2111,9 @@ export default { |
|
|
|
} |
|
|
|
this.normalizeHsfStandardByCustomer(this.modalData) |
|
|
|
this.syncHsfApproverFields() |
|
|
|
if (!this.validateValidUntilPair()) { |
|
|
|
return |
|
|
|
} |
|
|
|
this.modalData.qualificationDocumentsNeeded = this.modalData.qualificationDocumentsNeededList.join(';') |
|
|
|
this.modalData.testReportIncludingItems = this.modalData.testReportIncludingItemsList.join(';') |
|
|
|
this.modalData.materialClassify = this.modalData.materialClassifyList.join(';') |
|
|
|
@ -2081,6 +2181,9 @@ export default { |
|
|
|
} |
|
|
|
this.normalizeHsfStandardByCustomer(this.modalData) |
|
|
|
this.syncHsfApproverFields() |
|
|
|
if (!this.validateValidUntilPair()) { |
|
|
|
return |
|
|
|
} |
|
|
|
if (!this.nodeAuthorityLoaded) { |
|
|
|
this.$message.warning('节点权限加载中,请稍后重试') |
|
|
|
return |
|
|
|
|