|
|
@ -391,9 +391,9 @@ |
|
|
<!-- HSF 填写信息 --> |
|
|
<!-- HSF 填写信息 --> |
|
|
<el-tab-pane label="HSF 填写信息" name="hsfInfo"> |
|
|
<el-tab-pane label="HSF 填写信息" name="hsfInfo"> |
|
|
<div style="height: 755px"> |
|
|
<div style="height: 755px"> |
|
|
<el-form :inline="true" label-position="top" :model="modalData" style="margin-top: -5px;"> |
|
|
|
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="modalData" > |
|
|
<el-form-item label="报告日期/Report Date"> |
|
|
<el-form-item label="报告日期/Report Date"> |
|
|
<el-date-picker v-model="modalData.expiredDate" type="date" value-format="yyyy-MM-dd" :disabled="isRohsFieldDisabled('expiredDate')" style="width: 150px" :editable=false></el-date-picker> |
|
|
|
|
|
|
|
|
<el-date-picker v-model="modalData.expiredDate" type="date" value-format="yyyy-MM-dd" :disabled="isRohsFieldDisabled('expiredDate')" style="width: 170px" :editable=false></el-date-picker> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="有效期数值/Valid Until Value"> |
|
|
<el-form-item label="有效期数值/Valid Until Value"> |
|
|
<el-input-number |
|
|
<el-input-number |
|
|
@ -410,18 +410,15 @@ |
|
|
<dict-data-select v-model="modalData.validUntil" clearable :disabled="isValidUntilUnitDisabled()" style="width: 150px" dict-type="rohs_valid_until"></dict-data-select> |
|
|
<dict-data-select v-model="modalData.validUntil" clearable :disabled="isValidUntilUnitDisabled()" style="width: 150px" dict-type="rohs_valid_until"></dict-data-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="失效日期/Expiry Date"> |
|
|
<el-form-item label="失效日期/Expiry Date"> |
|
|
<el-date-picker v-model="modalData.expiryDate" type="date" value-format="yyyy-MM-dd" disabled style="width: 150px" :editable=false></el-date-picker> |
|
|
|
|
|
|
|
|
<el-date-picker v-model="modalData.expiryDate" type="date" value-format="yyyy-MM-dd" disabled style="width: 170px" :editable=false></el-date-picker> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="状态/Status"> |
|
|
|
|
|
<el-select v-model="modalData.rohsStatus" clearable :disabled="isRohsFieldDisabled('rohsStatus')" style="width: 150px"> |
|
|
|
|
|
<el-option label="Active" value="Active"></el-option> |
|
|
|
|
|
<el-option label="Dead" value="Dead"></el-option> |
|
|
|
|
|
</el-select> |
|
|
|
|
|
|
|
|
<el-form-item label=" " v-if="canShowUpdateExpiryDateButton()"> |
|
|
|
|
|
<el-button type="primary" @click="openUpdateExpiryDateDialog" style="width: 110px">更新失效日期</el-button> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</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: 190px"> |
|
|
|
|
|
|
|
|
<el-radio-group v-model="modalData.isMeetRohsRequirement" :disabled="isRohsFieldDisabled('isMeetRohsRequirement')" style="width: 170px"> |
|
|
<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> |
|
|
@ -432,15 +429,21 @@ |
|
|
true-label="Y" |
|
|
true-label="Y" |
|
|
false-label="N" |
|
|
false-label="N" |
|
|
:disabled="isRohsFieldDisabled('isAhGrade')" |
|
|
:disabled="isRohsFieldDisabled('isAhGrade')" |
|
|
style="width: 190px">材料属性是否是AH/Is AH Grade</el-checkbox> |
|
|
|
|
|
|
|
|
style="width: 210px">材料属性是否是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: 260px"> |
|
|
|
|
|
|
|
|
<el-radio-group v-model="modalData.hsfSupplierClassification" :disabled="isRohsFieldDisabled('hsfSupplierClassification')" style="width: 274px"> |
|
|
<el-radio label="高风险" @click.native.prevent="radioClick('hsfSupplierClassification', '高风险')">高风险</el-radio> |
|
|
<el-radio label="高风险" @click.native.prevent="radioClick('hsfSupplierClassification', '高风险')">高风险</el-radio> |
|
|
<el-radio label="中风险" @click.native.prevent="radioClick('hsfSupplierClassification', '中风险')">中风险</el-radio> |
|
|
<el-radio label="中风险" @click.native.prevent="radioClick('hsfSupplierClassification', '中风险')">中风险</el-radio> |
|
|
<el-radio label="低风险" @click.native.prevent="radioClick('hsfSupplierClassification', '低风险')">低风险</el-radio> |
|
|
<el-radio label="低风险" @click.native.prevent="radioClick('hsfSupplierClassification', '低风险')">低风险</el-radio> |
|
|
</el-radio-group> |
|
|
</el-radio-group> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="状态/Status"> |
|
|
|
|
|
<el-select v-model="modalData.rohsStatus" clearable :disabled="isRohsFieldDisabled('rohsStatus')" style="width: 110px"> |
|
|
|
|
|
<el-option label="Active" value="Active"></el-option> |
|
|
|
|
|
<el-option label="Dead" value="Dead"></el-option> |
|
|
|
|
|
</el-select> |
|
|
|
|
|
</el-form-item> |
|
|
</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;"> |
|
|
@ -1283,6 +1286,34 @@ |
|
|
</el-footer> |
|
|
</el-footer> |
|
|
</el-dialog> |
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
|
|
|
<el-dialog width="700px" title="更新失效日期" :close-on-click-modal="false" :visible.sync="updateExpiryDialogFlag" v-drag> |
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="updateExpiryForm"> |
|
|
|
|
|
<el-form-item label="报告日期/Report Date"> |
|
|
|
|
|
<el-date-picker v-model="updateExpiryForm.expiredDate" type="date" value-format="yyyy-MM-dd" style="width: 150px" :editable=false></el-date-picker> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="有效期数值/Valid Until Value"> |
|
|
|
|
|
<el-input-number |
|
|
|
|
|
v-model="updateExpiryForm.validUntilValue" |
|
|
|
|
|
:controls="false" |
|
|
|
|
|
:min="0" |
|
|
|
|
|
:step="1" |
|
|
|
|
|
:precision="0" |
|
|
|
|
|
style="width: 150px"> |
|
|
|
|
|
</el-input-number> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="有效期单位/Valid Until Unit"> |
|
|
|
|
|
<dict-data-select v-model="updateExpiryForm.validUntil" clearable style="width: 150px" dict-type="rohs_valid_until"></dict-data-select> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="失效日期/Expiry Date"> |
|
|
|
|
|
<el-date-picker v-model="updateExpiryForm.expiryDate" type="date" value-format="yyyy-MM-dd" disabled style="width: 150px" :editable=false></el-date-picker> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
<el-footer style="height:35px;margin-top:20px;text-align:center"> |
|
|
|
|
|
<el-button type="primary" :loading="updateExpiryLoading" @click="saveUpdateExpiryDate">保存</el-button> |
|
|
|
|
|
<el-button type="primary" @click="updateExpiryDialogFlag = false">取消</el-button> |
|
|
|
|
|
</el-footer> |
|
|
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
<!-- 底部附件页签 --> |
|
|
<!-- 底部附件页签 --> |
|
|
<el-tabs v-model="activeTable" style="width: 100%; height: 100%;" type="border-card" @tab-click="refreshCurrentTabTable" class="customer-tab"> |
|
|
<el-tabs v-model="activeTable" style="width: 100%; height: 100%;" type="border-card" @tab-click="refreshCurrentTabTable" class="customer-tab"> |
|
|
<el-tab-pane label="基本信息" name="basicInfo"> |
|
|
<el-tab-pane label="基本信息" name="basicInfo"> |
|
|
@ -1481,7 +1512,7 @@ |
|
|
<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"> |
|
|
<el-form-item label="报告日期/Report Date"> |
|
|
<el-form-item label="报告日期/Report Date"> |
|
|
<el-date-picker :value="currentRow.expiredDate" disabled type="date" value-format="yyyy-MM-dd" style="width: 150px"></el-date-picker> |
|
|
|
|
|
|
|
|
<el-date-picker :value="currentRow.expiredDate" disabled type="date" value-format="yyyy-MM-dd" style="width: 170px"></el-date-picker> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="有效期数值/Valid Until Value"> |
|
|
<el-form-item label="有效期数值/Valid Until Value"> |
|
|
<el-input :value="currentRow.validUntilValue || ''" disabled style="width: 150px"></el-input> |
|
|
<el-input :value="currentRow.validUntilValue || ''" disabled style="width: 150px"></el-input> |
|
|
@ -1490,15 +1521,15 @@ |
|
|
<el-input :value="currentRow.validUntil || ''" disabled style="width: 150px"></el-input> |
|
|
<el-input :value="currentRow.validUntil || ''" disabled style="width: 150px"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="失效日期/Expiry Date"> |
|
|
<el-form-item label="失效日期/Expiry Date"> |
|
|
<el-date-picker :value="currentRow.expiryDate" disabled type="date" value-format="yyyy-MM-dd" style="width: 150px"></el-date-picker> |
|
|
|
|
|
|
|
|
<el-date-picker :value="currentRow.expiryDate" disabled type="date" value-format="yyyy-MM-dd" style="width: 170px"></el-date-picker> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="状态/Status"> |
|
|
<el-form-item label="状态/Status"> |
|
|
<el-input :value="currentRow.rohsStatus || ''" disabled style="width: 150px"></el-input> |
|
|
|
|
|
|
|
|
<el-input :value="currentRow.rohsStatus || ''" disabled style="width: 110px"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-form> |
|
|
</el-form> |
|
|
<el-form :inline="true" label-position="top" :model="currentRow"> |
|
|
<el-form :inline="true" label-position="top" :model="currentRow"> |
|
|
<el-form-item label="是否符合RoHS/Meet RoHS Req"> |
|
|
<el-form-item label="是否符合RoHS/Meet RoHS Req"> |
|
|
<el-radio-group :value="currentRow.isMeetRohsRequirement" disabled style="width: 190px"> |
|
|
|
|
|
|
|
|
<el-radio-group :value="currentRow.isMeetRohsRequirement" disabled style="width: 170px"> |
|
|
<el-radio label="Y">是</el-radio> |
|
|
<el-radio label="Y">是</el-radio> |
|
|
<el-radio label="N">否</el-radio> |
|
|
<el-radio label="N">否</el-radio> |
|
|
</el-radio-group> |
|
|
</el-radio-group> |
|
|
@ -1509,10 +1540,10 @@ |
|
|
true-label="Y" |
|
|
true-label="Y" |
|
|
false-label="N" |
|
|
false-label="N" |
|
|
disabled |
|
|
disabled |
|
|
style="width: 190px">材料属性是否是AH/Is AH Grade</el-checkbox> |
|
|
|
|
|
|
|
|
style="width: 210px">材料属性是否是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 :value="currentRow.hsfSupplierClassification" disabled style="width: 260px"> |
|
|
|
|
|
|
|
|
<el-radio-group :value="currentRow.hsfSupplierClassification" disabled style="width: 274px"> |
|
|
<el-radio label="高风险">高风险</el-radio> |
|
|
<el-radio label="高风险">高风险</el-radio> |
|
|
<el-radio label="中风险">中风险</el-radio> |
|
|
<el-radio label="中风险">中风险</el-radio> |
|
|
<el-radio label="低风险">低风险</el-radio> |
|
|
<el-radio label="低风险">低风险</el-radio> |
|
|
@ -1648,6 +1679,7 @@ export default { |
|
|
authFilePreview: false, |
|
|
authFilePreview: false, |
|
|
authDataEntry: false, |
|
|
authDataEntry: false, |
|
|
authMaterialDescRemark: false, |
|
|
authMaterialDescRemark: false, |
|
|
|
|
|
authUpdateExpiryDate: false, |
|
|
authDelete: false, |
|
|
authDelete: false, |
|
|
superAdmin: false, |
|
|
superAdmin: false, |
|
|
createBy2: this.$store.state.user.name, |
|
|
createBy2: this.$store.state.user.name, |
|
|
@ -2118,6 +2150,8 @@ export default { |
|
|
submitModalFlag: false, |
|
|
submitModalFlag: false, |
|
|
rohsRemarkFlag: false, |
|
|
rohsRemarkFlag: false, |
|
|
rohsMaterialDescFlag: false, |
|
|
rohsMaterialDescFlag: false, |
|
|
|
|
|
updateExpiryDialogFlag: false, |
|
|
|
|
|
updateExpiryLoading: false, |
|
|
rejectOpinion: '', |
|
|
rejectOpinion: '', |
|
|
submitLoading: false, |
|
|
submitLoading: false, |
|
|
rohsRemarkForm: { |
|
|
rohsRemarkForm: { |
|
|
@ -2126,6 +2160,14 @@ export default { |
|
|
rohsMaterialDescForm: { |
|
|
rohsMaterialDescForm: { |
|
|
materialDesc: '' |
|
|
materialDesc: '' |
|
|
}, |
|
|
}, |
|
|
|
|
|
updateExpiryForm: { |
|
|
|
|
|
site: '', |
|
|
|
|
|
referenceNo: '', |
|
|
|
|
|
expiredDate: '', |
|
|
|
|
|
validUntilValue: null, |
|
|
|
|
|
validUntil: '', |
|
|
|
|
|
expiryDate: '' |
|
|
|
|
|
}, |
|
|
hsfStandardDefaultText: 'With the follow environmental specification: Macallan regulated Substances specification(069-0135) /Macallan sustainable fiber specification(099-00532)', |
|
|
hsfStandardDefaultText: 'With the follow environmental specification: Macallan regulated Substances specification(069-0135) /Macallan sustainable fiber specification(099-00532)', |
|
|
modalData: { |
|
|
modalData: { |
|
|
site: 'DEFAULT', |
|
|
site: 'DEFAULT', |
|
|
@ -2169,6 +2211,7 @@ export default { |
|
|
status: '', |
|
|
status: '', |
|
|
sgsReportNumber: '', |
|
|
sgsReportNumber: '', |
|
|
rohsStatus: 'Active', |
|
|
rohsStatus: 'Active', |
|
|
|
|
|
isExpiring: 'N', |
|
|
expiredDate: '', |
|
|
expiredDate: '', |
|
|
expiryDate: '', |
|
|
expiryDate: '', |
|
|
fiberInformation: '', |
|
|
fiberInformation: '', |
|
|
@ -2243,6 +2286,15 @@ export default { |
|
|
'modalData.validUntil' () { |
|
|
'modalData.validUntil' () { |
|
|
this.syncExpiryDateByRule() |
|
|
this.syncExpiryDateByRule() |
|
|
}, |
|
|
}, |
|
|
|
|
|
'updateExpiryForm.expiredDate' () { |
|
|
|
|
|
this.syncUpdateExpiryDateByRule() |
|
|
|
|
|
}, |
|
|
|
|
|
'updateExpiryForm.validUntilValue' () { |
|
|
|
|
|
this.syncUpdateExpiryDateByRule() |
|
|
|
|
|
}, |
|
|
|
|
|
'updateExpiryForm.validUntil' () { |
|
|
|
|
|
this.syncUpdateExpiryDateByRule() |
|
|
|
|
|
}, |
|
|
'modalData.endCustomer' () { |
|
|
'modalData.endCustomer' () { |
|
|
this.applyHsfStandardDefaultByCustomer(this.modalData) |
|
|
this.applyHsfStandardDefaultByCustomer(this.modalData) |
|
|
} |
|
|
} |
|
|
@ -3047,6 +3099,120 @@ export default { |
|
|
hasPersistedRohsRecord () { |
|
|
hasPersistedRohsRecord () { |
|
|
return !!(this.modalData && this.modalData.site && this.modalData.referenceNo && !String(this.modalData.referenceNo).startsWith('TEMP-')) |
|
|
return !!(this.modalData && this.modalData.site && this.modalData.referenceNo && !String(this.modalData.referenceNo).startsWith('TEMP-')) |
|
|
}, |
|
|
}, |
|
|
|
|
|
canShowUpdateExpiryDateButton () { |
|
|
|
|
|
const status = String((this.modalData && this.modalData.status) || '').trim() |
|
|
|
|
|
const isExpiring = String((this.modalData && this.modalData.isExpiring) || '').trim().toUpperCase() |
|
|
|
|
|
return !!(this.showModalFlag && this.authUpdateExpiryDate && status === '已完成' && isExpiring === 'Y') |
|
|
|
|
|
}, |
|
|
|
|
|
openUpdateExpiryDateDialog () { |
|
|
|
|
|
if (!this.canShowUpdateExpiryDateButton()) { |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
const validUntilValue = this.normalizeValidUntilValue(this.modalData.validUntilValue) |
|
|
|
|
|
this.updateExpiryForm = { |
|
|
|
|
|
site: this.modalData.site || '', |
|
|
|
|
|
referenceNo: this.modalData.referenceNo || '', |
|
|
|
|
|
expiredDate: this.normalizeDateOnly(this.modalData.expiredDate), |
|
|
|
|
|
validUntilValue: validUntilValue, |
|
|
|
|
|
validUntil: String(this.modalData.validUntil || '').trim(), |
|
|
|
|
|
expiryDate: '' |
|
|
|
|
|
} |
|
|
|
|
|
this.syncUpdateExpiryDateByRule() |
|
|
|
|
|
this.updateExpiryDialogFlag = true |
|
|
|
|
|
}, |
|
|
|
|
|
syncUpdateExpiryDateByRule () { |
|
|
|
|
|
if (!this.updateExpiryForm) { |
|
|
|
|
|
return '' |
|
|
|
|
|
} |
|
|
|
|
|
const expiryDate = this.calculateExpiryDateByRule(this.updateExpiryForm.expiredDate, this.updateExpiryForm.validUntilValue, this.updateExpiryForm.validUntil) |
|
|
|
|
|
this.$set(this.updateExpiryForm, 'expiryDate', expiryDate) |
|
|
|
|
|
return expiryDate |
|
|
|
|
|
}, |
|
|
|
|
|
applyUpdatedExpiryInfo (latestData = {}) { |
|
|
|
|
|
const expiredDate = this.normalizeDateOnly(latestData.expiredDate || this.updateExpiryForm.expiredDate || this.modalData.expiredDate) |
|
|
|
|
|
const validUntilValue = this.normalizeValidUntilValue( |
|
|
|
|
|
latestData.validUntilValue !== undefined && latestData.validUntilValue !== null |
|
|
|
|
|
? latestData.validUntilValue |
|
|
|
|
|
: this.updateExpiryForm.validUntilValue |
|
|
|
|
|
) |
|
|
|
|
|
const validUntil = String(latestData.validUntil || this.updateExpiryForm.validUntil || '').trim() |
|
|
|
|
|
const expiryDate = this.normalizeDateOnly(latestData.expiryDate || this.updateExpiryForm.expiryDate) |
|
|
|
|
|
const isExpiring = String(latestData.isExpiring || this.modalData.isExpiring || 'N').trim().toUpperCase() === 'Y' ? 'Y' : 'N' |
|
|
|
|
|
|
|
|
|
|
|
this.$set(this.modalData, 'expiredDate', expiredDate) |
|
|
|
|
|
this.$set(this.modalData, 'validUntilValue', validUntilValue) |
|
|
|
|
|
this.$set(this.modalData, 'validUntil', validUntil) |
|
|
|
|
|
this.$set(this.modalData, 'expiryDate', expiryDate) |
|
|
|
|
|
this.$set(this.modalData, 'isExpiring', isExpiring) |
|
|
|
|
|
|
|
|
|
|
|
if (this.currentRow && this.currentRow.site === this.modalData.site && this.currentRow.referenceNo === this.modalData.referenceNo) { |
|
|
|
|
|
this.$set(this.currentRow, 'expiredDate', expiredDate) |
|
|
|
|
|
this.$set(this.currentRow, 'validUntilValue', validUntilValue) |
|
|
|
|
|
this.$set(this.currentRow, 'validUntil', validUntil) |
|
|
|
|
|
this.$set(this.currentRow, 'expiryDate', expiryDate) |
|
|
|
|
|
this.$set(this.currentRow, 'isExpiring', isExpiring) |
|
|
|
|
|
} |
|
|
|
|
|
const target = (this.dataList || []).find(item => item.site === this.modalData.site && item.referenceNo === this.modalData.referenceNo) |
|
|
|
|
|
if (target) { |
|
|
|
|
|
this.$set(target, 'expiredDate', expiredDate) |
|
|
|
|
|
this.$set(target, 'validUntilValue', validUntilValue) |
|
|
|
|
|
this.$set(target, 'validUntil', validUntil) |
|
|
|
|
|
this.$set(target, 'expiryDate', expiryDate) |
|
|
|
|
|
this.$set(target, 'isExpiring', isExpiring) |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
saveUpdateExpiryDate () { |
|
|
|
|
|
if (!this.hasPersistedRohsRecord()) { |
|
|
|
|
|
this.$message.warning('当前单据未保存,无法更新失效日期') |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
const expiredDate = this.normalizeDateOnly(this.updateExpiryForm.expiredDate) |
|
|
|
|
|
const validUntilValue = this.normalizeValidUntilValue(this.updateExpiryForm.validUntilValue) |
|
|
|
|
|
const validUntil = String(this.updateExpiryForm.validUntil || '').trim() |
|
|
|
|
|
if (!expiredDate) { |
|
|
|
|
|
this.$message.warning('报告日期不能为空') |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
if (!validUntilValue) { |
|
|
|
|
|
this.$message.warning('有效期数值必须大于0') |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
if (!validUntil) { |
|
|
|
|
|
this.$message.warning('有效期单位不能为空') |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
const expiryDate = this.calculateExpiryDateByRule(expiredDate, validUntilValue, validUntil) |
|
|
|
|
|
if (!expiryDate) { |
|
|
|
|
|
this.$message.warning('有效期信息不完整,无法计算失效日期') |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
this.$set(this.updateExpiryForm, 'expiredDate', expiredDate) |
|
|
|
|
|
this.$set(this.updateExpiryForm, 'validUntilValue', validUntilValue) |
|
|
|
|
|
this.$set(this.updateExpiryForm, 'validUntil', validUntil) |
|
|
|
|
|
this.$set(this.updateExpiryForm, 'expiryDate', expiryDate) |
|
|
|
|
|
|
|
|
|
|
|
const params = { |
|
|
|
|
|
site: this.modalData.site, |
|
|
|
|
|
referenceNo: this.modalData.referenceNo, |
|
|
|
|
|
expiredDate: expiredDate, |
|
|
|
|
|
validUntilValue: validUntilValue, |
|
|
|
|
|
validUntil: validUntil |
|
|
|
|
|
} |
|
|
|
|
|
this.updateExpiryLoading = true |
|
|
|
|
|
api.updateRohsExpiryInfo(params).then(({data}) => { |
|
|
|
|
|
if (data && data.code === 0) { |
|
|
|
|
|
this.applyUpdatedExpiryInfo((data.data || {})) |
|
|
|
|
|
this.updateExpiryDialogFlag = false |
|
|
|
|
|
this.$message.success('失效日期更新成功') |
|
|
|
|
|
} else { |
|
|
|
|
|
this.$message.error((data && data.msg) || '更新失败') |
|
|
|
|
|
} |
|
|
|
|
|
}).catch(() => { |
|
|
|
|
|
this.$message.error('更新失败') |
|
|
|
|
|
}).finally(() => { |
|
|
|
|
|
this.updateExpiryLoading = false |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
openRohsRemarkDialog () { |
|
|
openRohsRemarkDialog () { |
|
|
this.$set(this.rohsRemarkForm, 'remark', this.modalData.remark || '') |
|
|
this.$set(this.rohsRemarkForm, 'remark', this.modalData.remark || '') |
|
|
this.rohsRemarkFlag = true |
|
|
this.rohsRemarkFlag = true |
|
|
@ -3199,6 +3365,7 @@ export default { |
|
|
this.authFilePreview = this.isAuth(this.menuId+":filePreview") |
|
|
this.authFilePreview = this.isAuth(this.menuId+":filePreview") |
|
|
this.authDataEntry = this.isAuth(this.menuId+":dataEntry") |
|
|
this.authDataEntry = this.isAuth(this.menuId+":dataEntry") |
|
|
this.authMaterialDescRemark = this.isAuth(this.menuId + ":materialDescRemark") |
|
|
this.authMaterialDescRemark = this.isAuth(this.menuId + ":materialDescRemark") |
|
|
|
|
|
this.authUpdateExpiryDate = this.isAuth(this.menuId + ":updateExpiryDate") |
|
|
this.authDelete = this.isAuth(this.menuId+":delete") |
|
|
this.authDelete = this.isAuth(this.menuId+":delete") |
|
|
}, |
|
|
}, |
|
|
// 校验是否为超级管理员 |
|
|
// 校验是否为超级管理员 |
|
|
@ -3299,6 +3466,8 @@ export default { |
|
|
this.rohsCreatePartDialogFlag = false |
|
|
this.rohsCreatePartDialogFlag = false |
|
|
this.rohsCharacteristicDialogFlag = false |
|
|
this.rohsCharacteristicDialogFlag = false |
|
|
this.rohsMaterialDescFlag = false |
|
|
this.rohsMaterialDescFlag = false |
|
|
|
|
|
this.updateExpiryDialogFlag = false |
|
|
|
|
|
this.updateExpiryLoading = false |
|
|
this.rohsCreatePartTab = 'General' |
|
|
this.rohsCreatePartTab = 'General' |
|
|
this.$nextTick(() => { |
|
|
this.$nextTick(() => { |
|
|
this.refreshAttachmentPanels() |
|
|
this.refreshAttachmentPanels() |
|
|
@ -3320,6 +3489,8 @@ export default { |
|
|
? target.validUntilValue |
|
|
? target.validUntilValue |
|
|
: fallbackData.validUntilValue |
|
|
: fallbackData.validUntilValue |
|
|
this.$set(target, 'validUntilValue', this.normalizeValidUntilValue(validUntilValue)) |
|
|
this.$set(target, 'validUntilValue', this.normalizeValidUntilValue(validUntilValue)) |
|
|
|
|
|
const isExpiring = String(target.isExpiring || fallbackData.isExpiring || 'N').trim().toUpperCase() === 'Y' ? 'Y' : 'N' |
|
|
|
|
|
this.$set(target, 'isExpiring', isExpiring) |
|
|
const applicationDate = target.applicationDate || fallbackData.applicationDate || '' |
|
|
const applicationDate = target.applicationDate || fallbackData.applicationDate || '' |
|
|
const plannedMassProductionDate = target.plannedMassProductionDate || fallbackData.plannedMassProductionDate || '' |
|
|
const plannedMassProductionDate = target.plannedMassProductionDate || fallbackData.plannedMassProductionDate || '' |
|
|
const expiredDate = target.expiredDate || fallbackData.expiredDate || '' |
|
|
const expiredDate = target.expiredDate || fallbackData.expiredDate || '' |
|
|
@ -3430,6 +3601,7 @@ export default { |
|
|
relatedPeopleName: '', |
|
|
relatedPeopleName: '', |
|
|
mainIfsPartNo: '', |
|
|
mainIfsPartNo: '', |
|
|
mainPartDesc: '', |
|
|
mainPartDesc: '', |
|
|
|
|
|
isExpiring: 'N', |
|
|
...item |
|
|
...item |
|
|
} |
|
|
} |
|
|
}) |
|
|
}) |
|
|
@ -3519,6 +3691,7 @@ export default { |
|
|
relatedPeopleName: '', |
|
|
relatedPeopleName: '', |
|
|
mainIfsPartNo: '', |
|
|
mainIfsPartNo: '', |
|
|
mainPartDesc: '', |
|
|
mainPartDesc: '', |
|
|
|
|
|
isExpiring: 'N', |
|
|
...item |
|
|
...item |
|
|
} |
|
|
} |
|
|
}) |
|
|
}) |
|
|
@ -3644,6 +3817,7 @@ export default { |
|
|
this.submitModalFlag = false |
|
|
this.submitModalFlag = false |
|
|
this.rohsRemarkFlag = false |
|
|
this.rohsRemarkFlag = false |
|
|
this.rohsMaterialDescFlag = false |
|
|
this.rohsMaterialDescFlag = false |
|
|
|
|
|
this.updateExpiryDialogFlag = false |
|
|
this.$nextTick(() => { |
|
|
this.$nextTick(() => { |
|
|
this.$router.push({name: `part-partInformation`, params: {ifsPartNo: targetPartNo}}) |
|
|
this.$router.push({name: `part-partInformation`, params: {ifsPartNo: targetPartNo}}) |
|
|
}) |
|
|
}) |
|
|
@ -3672,6 +3846,16 @@ export default { |
|
|
this.submitModalFlag = false |
|
|
this.submitModalFlag = false |
|
|
this.rohsRemarkFlag = false |
|
|
this.rohsRemarkFlag = false |
|
|
this.rohsMaterialDescFlag = false |
|
|
this.rohsMaterialDescFlag = false |
|
|
|
|
|
this.updateExpiryDialogFlag = false |
|
|
|
|
|
this.updateExpiryLoading = false |
|
|
|
|
|
this.updateExpiryForm = { |
|
|
|
|
|
site: '', |
|
|
|
|
|
referenceNo: '', |
|
|
|
|
|
expiredDate: '', |
|
|
|
|
|
validUntilValue: null, |
|
|
|
|
|
validUntil: '', |
|
|
|
|
|
expiryDate: '' |
|
|
|
|
|
} |
|
|
this.rejectOpinion = '' |
|
|
this.rejectOpinion = '' |
|
|
this.rohsRemarkForm = { |
|
|
this.rohsRemarkForm = { |
|
|
remark: '' |
|
|
remark: '' |
|
|
@ -3813,6 +3997,7 @@ export default { |
|
|
status: '草稿', |
|
|
status: '草稿', |
|
|
sgsReportNumber: '', |
|
|
sgsReportNumber: '', |
|
|
rohsStatus: 'Active', |
|
|
rohsStatus: 'Active', |
|
|
|
|
|
isExpiring: 'N', |
|
|
expiredDate: '', |
|
|
expiredDate: '', |
|
|
expiryDate: '', |
|
|
expiryDate: '', |
|
|
fiberInformation: '', |
|
|
fiberInformation: '', |
|
|
|