Browse Source

2026-07-28

RoHS:
1、【更新失效日期】操作里加一个“状态”属性
2、刷新RoHS即将失效标识的定时任务,只有 单据状态=已完成 且 RoHS状态=Active 才参与“即将失效”判断;
3、筛选条件变动;
master
fengyuan_yang 1 day ago
parent
commit
0389f3d540
  1. 86
      src/views/modules/rohs/rohsRecord.vue

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

@ -6,29 +6,35 @@
<el-input v-model="searchData.referenceNo" clearable style="width: 120px"></el-input> <el-input v-model="searchData.referenceNo" clearable style="width: 120px"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="单据状态"> <el-form-item label="单据状态">
<el-select v-model="searchData.status" clearable style="width: 120px">
<el-select v-model="searchData.status" clearable style="width: 100px">
<el-option label="草稿" value="草稿"></el-option> <el-option label="草稿" value="草稿"></el-option>
<el-option label="审批中" value="审批中"></el-option> <el-option label="审批中" value="审批中"></el-option>
<el-option label="已完成" value="已完成"></el-option> <el-option label="已完成" value="已完成"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="RoHS状态">
<el-select v-model="searchData.rohsStatus" clearable style="width: 120px">
<el-option label="Active" value="Active"></el-option>
<el-option label="Dead" value="Dead"></el-option>
</el-select>
<el-form-item label="失效日期">
<el-date-picker
style="width: 120px"
v-model="searchData.expiryStartDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="开始日期">
</el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="即将失效">
<el-select v-model="searchData.isExpiring" clearable style="width: 120px">
<el-option label="是" value="Y"></el-option>
<el-option label="否" value="N"></el-option>
</el-select>
<el-form-item :label="' '">
<el-date-picker
style="width: 120px"
v-model="searchData.expiryEndDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="结束日期">
</el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="节点审批人"> <el-form-item label="节点审批人">
<el-input v-model="searchData.currentApprover" clearable style="width: 120px"></el-input> <el-input v-model="searchData.currentApprover" clearable style="width: 120px"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="当前节点"> <el-form-item label="当前节点">
<el-select v-model="searchData.nodeId" placeholder="请选择节点" clearable style="width: 120px">
<el-select v-model="searchData.nodeId" placeholder="请选择节点" clearable style="width: 140px">
<el-option <el-option
v-for="option in nodeOptions" v-for="option in nodeOptions"
:key="option.id" :key="option.id"
@ -41,8 +47,13 @@
<el-input v-model="searchData.ifsPartNo" clearable style="width: 140px"></el-input> <el-input v-model="searchData.ifsPartNo" clearable style="width: 140px"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="IFS物料描述"> <el-form-item label="IFS物料描述">
<el-input v-model="searchData.materialDesc" clearable style="width: 180px"></el-input>
<el-input v-model="searchData.materialDesc" clearable style="width: 200px"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="' '">
<el-checkbox v-model="searchData.isExpiring" true-label="Y" false-label="">Waiting for HSF update</el-checkbox>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="searchData" style="margin-top: -10px">
<el-form-item :label="' '"> <el-form-item :label="' '">
<el-button v-if="authSearch" @click="getDataList">查询</el-button> <el-button v-if="authSearch" @click="getDataList">查询</el-button>
<el-button v-if="authUpdate" @click="addOrUpdateHandle()">新增</el-button> <el-button v-if="authUpdate" @click="addOrUpdateHandle()">新增</el-button>
@ -111,6 +122,7 @@
<span>{{ normalizeDateOnly(scope.row.expiryDate) }}</span> <span>{{ normalizeDateOnly(scope.row.expiryDate) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="rohsStatus" header-align="center" align="center" label="RoHS状态" width="110"></el-table-column>
<el-table-column fixed="right" header-align="center" align="center" width="130" label="操作"> <el-table-column fixed="right" header-align="center" align="center" width="130" label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<el-link v-if="authUpdate && scope.row.status !== '已完成'" style="cursor: pointer" @click="addOrUpdateHandle(scope.row)">编辑</el-link> <el-link v-if="authUpdate && scope.row.status !== '已完成'" style="cursor: pointer" @click="addOrUpdateHandle(scope.row)">编辑</el-link>
@ -1292,10 +1304,10 @@
</el-footer> </el-footer>
</el-dialog> </el-dialog>
<el-dialog width="700px" title="更新失效日期" :close-on-click-modal="false" :visible.sync="updateExpiryDialogFlag" v-drag>
<el-dialog width="730px" title="更新失效日期" :close-on-click-modal="false" :visible.sync="updateExpiryDialogFlag" v-drag>
<el-form :inline="true" label-position="top" :model="updateExpiryForm"> <el-form :inline="true" label-position="top" :model="updateExpiryForm">
<el-form-item label="报告日期/Report Date"> <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-date-picker v-model="updateExpiryForm.expiredDate" type="date" value-format="yyyy-MM-dd" style="width: 125px" :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
@ -1311,7 +1323,13 @@
<dict-data-select v-model="updateExpiryForm.validUntil" clearable style="width: 150px" dict-type="rohs_valid_until"></dict-data-select> <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>
<el-form-item label="失效日期/Expiry Date"> <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-date-picker v-model="updateExpiryForm.expiryDate" type="date" value-format="yyyy-MM-dd" disabled style="width: 125px" :editable=false></el-date-picker>
</el-form-item>
<el-form-item label="状态/Status">
<el-select v-model="updateExpiryForm.rohsStatus" style="width: 90px">
<el-option label="Active" value="Active"></el-option>
<el-option label="Dead" value="Dead"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-footer style="height:35px;margin-top:20px;text-align:center"> <el-footer style="height:35px;margin-top:20px;text-align:center">
@ -1653,8 +1671,9 @@ export default {
site: this.$store.state.user.site, site: this.$store.state.user.site,
referenceNo: '', referenceNo: '',
status: '', status: '',
rohsStatus: '',
isExpiring: '', isExpiring: '',
expiryStartDate: '',
expiryEndDate: '',
currentApprover: '', currentApprover: '',
nodeId: '', nodeId: '',
ifsPartNo: '', ifsPartNo: '',
@ -2173,6 +2192,7 @@ export default {
expiredDate: '', expiredDate: '',
validUntilValue: null, validUntilValue: null,
validUntil: '', validUntil: '',
rohsStatus: '',
expiryDate: '' 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)',
@ -2260,9 +2280,9 @@ export default {
this.handleRouteQuery() this.handleRouteQuery()
} }
this.$nextTick(() => { this.$nextTick(() => {
this.height = window.innerHeight / 2 - 30
this.height = window.innerHeight / 2 - 60
/*第二个表格高度的动态调整*/ /*第二个表格高度的动态调整*/
this.secondHeight = window.innerHeight / 2 - 186
this.secondHeight = window.innerHeight / 2 - 188
}) })
}, },
activated () { activated () {
@ -3122,6 +3142,7 @@ export default {
expiredDate: this.normalizeDateOnly(this.modalData.expiredDate), expiredDate: this.normalizeDateOnly(this.modalData.expiredDate),
validUntilValue: validUntilValue, validUntilValue: validUntilValue,
validUntil: String(this.modalData.validUntil || '').trim(), validUntil: String(this.modalData.validUntil || '').trim(),
rohsStatus: String(this.modalData.rohsStatus || 'Active').trim() || 'Active',
expiryDate: '' expiryDate: ''
} }
this.syncUpdateExpiryDateByRule() this.syncUpdateExpiryDateByRule()
@ -3143,12 +3164,14 @@ export default {
: this.updateExpiryForm.validUntilValue : this.updateExpiryForm.validUntilValue
) )
const validUntil = String(latestData.validUntil || this.updateExpiryForm.validUntil || '').trim() const validUntil = String(latestData.validUntil || this.updateExpiryForm.validUntil || '').trim()
const rohsStatus = String(latestData.rohsStatus || this.updateExpiryForm.rohsStatus || this.modalData.rohsStatus || 'Active').trim() || 'Active'
const expiryDate = this.normalizeDateOnly(latestData.expiryDate || this.updateExpiryForm.expiryDate) const expiryDate = this.normalizeDateOnly(latestData.expiryDate || this.updateExpiryForm.expiryDate)
const isExpiring = String(latestData.isExpiring || this.modalData.isExpiring || 'N').trim().toUpperCase() === 'Y' ? 'Y' : 'N' const isExpiring = String(latestData.isExpiring || this.modalData.isExpiring || 'N').trim().toUpperCase() === 'Y' ? 'Y' : 'N'
this.$set(this.modalData, 'expiredDate', expiredDate) this.$set(this.modalData, 'expiredDate', expiredDate)
this.$set(this.modalData, 'validUntilValue', validUntilValue) this.$set(this.modalData, 'validUntilValue', validUntilValue)
this.$set(this.modalData, 'validUntil', validUntil) this.$set(this.modalData, 'validUntil', validUntil)
this.$set(this.modalData, 'rohsStatus', rohsStatus)
this.$set(this.modalData, 'expiryDate', expiryDate) this.$set(this.modalData, 'expiryDate', expiryDate)
this.$set(this.modalData, 'isExpiring', isExpiring) this.$set(this.modalData, 'isExpiring', isExpiring)
@ -3156,6 +3179,7 @@ export default {
this.$set(this.currentRow, 'expiredDate', expiredDate) this.$set(this.currentRow, 'expiredDate', expiredDate)
this.$set(this.currentRow, 'validUntilValue', validUntilValue) this.$set(this.currentRow, 'validUntilValue', validUntilValue)
this.$set(this.currentRow, 'validUntil', validUntil) this.$set(this.currentRow, 'validUntil', validUntil)
this.$set(this.currentRow, 'rohsStatus', rohsStatus)
this.$set(this.currentRow, 'expiryDate', expiryDate) this.$set(this.currentRow, 'expiryDate', expiryDate)
this.$set(this.currentRow, 'isExpiring', isExpiring) this.$set(this.currentRow, 'isExpiring', isExpiring)
} }
@ -3164,6 +3188,7 @@ export default {
this.$set(target, 'expiredDate', expiredDate) this.$set(target, 'expiredDate', expiredDate)
this.$set(target, 'validUntilValue', validUntilValue) this.$set(target, 'validUntilValue', validUntilValue)
this.$set(target, 'validUntil', validUntil) this.$set(target, 'validUntil', validUntil)
this.$set(target, 'rohsStatus', rohsStatus)
this.$set(target, 'expiryDate', expiryDate) this.$set(target, 'expiryDate', expiryDate)
this.$set(target, 'isExpiring', isExpiring) this.$set(target, 'isExpiring', isExpiring)
} }
@ -3176,6 +3201,7 @@ export default {
const expiredDate = this.normalizeDateOnly(this.updateExpiryForm.expiredDate) const expiredDate = this.normalizeDateOnly(this.updateExpiryForm.expiredDate)
const validUntilValue = this.normalizeValidUntilValue(this.updateExpiryForm.validUntilValue) const validUntilValue = this.normalizeValidUntilValue(this.updateExpiryForm.validUntilValue)
const validUntil = String(this.updateExpiryForm.validUntil || '').trim() const validUntil = String(this.updateExpiryForm.validUntil || '').trim()
const rohsStatus = String(this.updateExpiryForm.rohsStatus || '').trim()
if (!expiredDate) { if (!expiredDate) {
this.$message.warning('报告日期不能为空') this.$message.warning('报告日期不能为空')
return return
@ -3188,6 +3214,10 @@ export default {
this.$message.warning('有效期单位不能为空') this.$message.warning('有效期单位不能为空')
return return
} }
if (!rohsStatus) {
this.$message.warning('状态不能为空')
return
}
const expiryDate = this.calculateExpiryDateByRule(expiredDate, validUntilValue, validUntil) const expiryDate = this.calculateExpiryDateByRule(expiredDate, validUntilValue, validUntil)
if (!expiryDate) { if (!expiryDate) {
this.$message.warning('有效期信息不完整,无法计算失效日期') this.$message.warning('有效期信息不完整,无法计算失效日期')
@ -3196,6 +3226,7 @@ export default {
this.$set(this.updateExpiryForm, 'expiredDate', expiredDate) this.$set(this.updateExpiryForm, 'expiredDate', expiredDate)
this.$set(this.updateExpiryForm, 'validUntilValue', validUntilValue) this.$set(this.updateExpiryForm, 'validUntilValue', validUntilValue)
this.$set(this.updateExpiryForm, 'validUntil', validUntil) this.$set(this.updateExpiryForm, 'validUntil', validUntil)
this.$set(this.updateExpiryForm, 'rohsStatus', rohsStatus)
this.$set(this.updateExpiryForm, 'expiryDate', expiryDate) this.$set(this.updateExpiryForm, 'expiryDate', expiryDate)
const params = { const params = {
@ -3203,7 +3234,8 @@ export default {
referenceNo: this.modalData.referenceNo, referenceNo: this.modalData.referenceNo,
expiredDate: expiredDate, expiredDate: expiredDate,
validUntilValue: validUntilValue, validUntilValue: validUntilValue,
validUntil: validUntil
validUntil: validUntil,
rohsStatus: rohsStatus
} }
this.updateExpiryLoading = true this.updateExpiryLoading = true
api.updateRohsExpiryInfo(params).then(({data}) => { api.updateRohsExpiryInfo(params).then(({data}) => {
@ -3579,8 +3611,9 @@ export default {
menuId: this.menuId, menuId: this.menuId,
referenceNo: this.searchData.referenceNo, referenceNo: this.searchData.referenceNo,
status: this.searchData.status, status: this.searchData.status,
rohsStatus: this.searchData.rohsStatus,
isExpiring: this.searchData.isExpiring, isExpiring: this.searchData.isExpiring,
expiryStartDate: this.searchData.expiryStartDate,
expiryEndDate: this.searchData.expiryEndDate,
currentApprover: this.searchData.currentApprover, currentApprover: this.searchData.currentApprover,
nodeId: this.searchData.nodeId, nodeId: this.searchData.nodeId,
ifsPartNo: this.searchData.ifsPartNo, ifsPartNo: this.searchData.ifsPartNo,
@ -3747,9 +3780,17 @@ export default {
}, },
async createExportData () { async createExportData () {
const params = { const params = {
...this.searchData,
site: this.$store.state.user.site, site: this.$store.state.user.site,
menuId: this.menuId, menuId: this.menuId,
referenceNo: this.searchData.referenceNo,
status: this.searchData.status,
isExpiring: this.searchData.isExpiring,
expiryStartDate: this.searchData.expiryStartDate,
expiryEndDate: this.searchData.expiryEndDate,
currentApprover: this.searchData.currentApprover,
nodeId: this.searchData.nodeId,
ifsPartNo: this.searchData.ifsPartNo,
materialDesc: this.searchData.materialDesc,
page: 1, page: 1,
limit: -1 limit: -1
} }
@ -3862,6 +3903,7 @@ export default {
expiredDate: '', expiredDate: '',
validUntilValue: null, validUntilValue: null,
validUntil: '', validUntil: '',
rohsStatus: '',
expiryDate: '' expiryDate: ''
} }
this.rejectOpinion = '' this.rejectOpinion = ''

Loading…
Cancel
Save