Browse Source

2026-06-04

RoHs优化
master
fengyuan_yang 1 week ago
parent
commit
8d52ce4402
  1. 104
      src/views/modules/rohs/rohsRecord.vue

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

@ -28,7 +28,22 @@
<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>
<el-button v-if="authSearch" @click="exportHandle()">导出</el-button>
<download-excel
v-if="authSearch"
:fields="exportFieldMap"
:data="exportData"
type="xls"
:name="exportName"
:header="exportHeader"
:footer="exportFooter"
:fetch="createExportData"
:before-generate="startDownload"
:before-finish="finishDownload"
worksheet="导出信息"
:class="['el-button', 'el-button--primary', 'el-button--medium', {'is-loading': exportLoading}]">
<i v-if="exportLoading" class="el-icon-loading"></i>
<span>{{ "导出" }}</span>
</download-excel>
<el-button v-if="authSearch" @click="searchHandle()">搜索</el-button> <el-button v-if="authSearch" @click="searchHandle()">搜索</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -54,7 +69,7 @@
<el-table-column prop="pm" header-align="center" align="center" label="PM编码" width="130"></el-table-column> <el-table-column prop="pm" header-align="center" align="center" label="PM编码" width="130"></el-table-column>
<el-table-column prop="pmName" header-align="center" align="center" label="PM名称" width="150"></el-table-column> <el-table-column prop="pmName" header-align="center" align="center" label="PM名称" width="150"></el-table-column>
<el-table-column prop="applicationDate" header-align="center" align="center" label="申请日期" width="165"></el-table-column> <el-table-column prop="applicationDate" header-align="center" align="center" label="申请日期" width="165"></el-table-column>
<el-table-column header-align="center" align="center" label="计划转量产时间" width="165">
<el-table-column prop="plannedMassProductionDate" header-align="center" align="center" label="计划转量产时间" width="165">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ normalizeDateOnly(scope.row.plannedMassProductionDate) }}</span> <span>{{ normalizeDateOnly(scope.row.plannedMassProductionDate) }}</span>
</template> </template>
@ -88,7 +103,7 @@
<el-table-column prop="expectReportTime" header-align="center" align="center" label="报告时间(月)" width="200"></el-table-column> <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="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="expiredDate" header-align="center" align="center" label="报告日期" width="165"></el-table-column>
<el-table-column header-align="center" align="center" label="有效期" width="170" :show-overflow-tooltip="true">
<el-table-column prop="validUntilDisplay" header-align="center" align="center" label="有效期" width="170" :show-overflow-tooltip="true">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ getValidUntilDisplay(scope.row.validUntilValue, scope.row.validUntil) }}</span> <span>{{ getValidUntilDisplay(scope.row.validUntilValue, scope.row.validUntil) }}</span>
</template> </template>
@ -951,6 +966,13 @@ export default {
currentApprover: '', currentApprover: '',
nodeId: '' nodeId: ''
}, },
exportLoading: false,
exportData: [],
exportFieldMap: {},
exportName: '',
exportHeader: ['RoHs记录'],
exportFooter: [],
resultList: [],
dataList: [], dataList: [],
pageIndex: 1, pageIndex: 1,
pageSize: 20, pageSize: 20,
@ -1930,7 +1952,7 @@ export default {
if (!target) { if (!target) {
return return
} }
const fields = ['applicantName', 'pmName', 'npdEngineerName', 'technicalPlanName', 'buyerName', 'endCustomerName', 'projectName', 'commGroup1Desc', 'commGroup2Desc', 'commGroup3Desc']
const fields = ['nodeId', 'nodeName', 'currentApprover', 'applicantName', 'pmName', 'npdEngineerName', 'technicalPlanName', 'buyerName', 'endCustomerName', 'projectName', 'commGroup1Desc', 'commGroup2Desc', 'commGroup3Desc']
fields.forEach(field => { fields.forEach(field => {
const value = target[field] || fallbackData[field] || '' const value = target[field] || fallbackData[field] || ''
this.$set(target, field, value) this.$set(target, field, value)
@ -2060,6 +2082,73 @@ export default {
this.pageIndex = 1 this.pageIndex = 1
this.getDataList() this.getDataList()
}, },
buildExportName () {
const now = new Date()
const year = String(now.getFullYear())
const month = String(now.getMonth() + 1).padStart(2, '0')
const day = String(now.getDate()).padStart(2, '0')
const hour = String(now.getHours()).padStart(2, '0')
const minute = String(now.getMinutes()).padStart(2, '0')
const second = String(now.getSeconds()).padStart(2, '0')
return 'RoHs记录' + year + month + day + hour + minute + second
},
async createExportData () {
const params = {
...this.searchData,
site: this.$store.state.user.site,
menuId: this.menuId,
page: 1,
limit: -1
}
this.resultList = []
await api.getRohsList(params).then(({data}) => {
if (data && data.code === 0 && data.page && Array.isArray(data.page.list)) {
this.resultList = (data.page.list || []).map(item => {
const row = {
...item
}
row.applicationDate = this.normalizeDateOnly(row.applicationDate)
row.plannedMassProductionDate = this.normalizeDateOnly(row.plannedMassProductionDate)
row.materialValidityTime = this.normalizeDateOnly(row.materialValidityTime)
row.expiredDate = this.normalizeDateOnly(row.expiredDate)
row.validUntilDisplay = this.getValidUntilDisplay(row.validUntilValue, row.validUntil)
return row
})
} else {
this.$message.warning((data && data.msg) || '导出数据获取失败')
}
}).catch(() => {
this.$message.error('导出数据获取失败')
})
return this.resultList
},
startDownload () {
this.exportName = this.buildExportName()
this.exportFieldMap = this.buildExportFields()
if (!this.exportFieldMap || Object.keys(this.exportFieldMap).length === 0) {
this.$message.warning('未获取到可导出的列,请稍后重试')
}
this.exportLoading = true
},
finishDownload () {
this.exportLoading = false
},
buildExportFields () {
const tableRef = this.$refs.rohsTable
if (!tableRef || !Array.isArray(tableRef.columns)) {
return {}
}
const fields = {}
tableRef.columns.forEach(column => {
const label = column && column.label ? String(column.label).trim() : ''
const property = column && column.property ? String(column.property).trim() : ''
if (!label || !property || label === '操作') {
return
}
fields[label] = property
})
return fields
},
// //
radioClick (field, value) { radioClick (field, value) {
if (this.modalData[field] === value) { if (this.modalData[field] === value) {
@ -2068,13 +2157,6 @@ export default {
this.modalData[field] = value this.modalData[field] = value
} }
}, },
//
exportHandle () {
if (!this.authSearch) {
return
}
this.$message.info('导出功能开发中')
},
// / // /
addOrUpdateHandle (row) { addOrUpdateHandle (row) {
if (!row && !this.authUpdate) { if (!row && !this.authUpdate) {

Loading…
Cancel
Save