update 企标稽查计划-业务信息调整前端存储

This commit is contained in:
danshihao
2024-01-03 16:20:52 +08:00
parent 6a41bd0c2e
commit bcfab27f9e
@@ -18,7 +18,7 @@
:columns="columns"
:dataSource="dataSource"
:can-drag="true"
rowKey="id"
:rowKey="(row, index) => row.id || index"
:loading="loading"
:pagination="false"
:row-selection="hasTableOperator ? { selectedRowKeys: selectedRowKeys, onChange: onSelectChange, getCheckboxProps } : null"
@@ -63,7 +63,7 @@
<!-- 节点2填写意见意见回显 -->
<write-opinion-modal ref="writeOpinionModal" @ok="handleWriteOpinionCallback"/>
<!-- 节点3所属部门意见-查看 -->
<show-opinion-modal ref="showOpinionModal" @ok="modalFormOk"/>
<show-opinion-modal ref="showOpinionModal"/>
</div>
</template>
@@ -74,7 +74,10 @@ import InspectionPlanDrawer from '@views/workCenter/enterpriseStandardInspection
import WriteOpinionModal from '@views/workCenter/enterpriseStandardInspectionPlan/modules/WriteOpinionModal'
import ShowOpinionModal from '@views/workCenter/enterpriseStandardInspectionPlan/modules/ShowOpinionModal'
import { EsInspectionPlan } from '@/enums/commonEnums'
import Vue from 'vue'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import store from '@/store'
let importModalLoading
export default {
name: 'InspectionPlanTable',
components: { ShowOpinionModal, WriteOpinionModal, InspectionPlanDrawer, JTable },
@@ -98,9 +101,13 @@ export default {
url: {
list: '/process/processEsInspectPlan/list',
delete: '/process/processEsInspectPlan/delete',
importExcelUrl: '/process/processEsInspectPlan/importExcel',
deleteBatch: '/process/processEsInspectPlan/deleteBatch',
downTemplateUrl: '/process/processEsInspectPlan/templateDownload'
// 默认是发起节点的导入和 下载模板,如果是节点2就用没有 征求意见对象 的模板和导入接口
importExcelUrl: '/process/processEsInspectPlan/importExcelByStart',
downTemplateUrl: '/process/processEsInspectPlan/templateDownloadByStart',
// 节点2 的导入和下载模板
nodeTwoImportUrl: '/process/processEsInspectPlan/importExcelByOpinionFill',
nodeTwoDownTemplateUrl: '/process/processEsInspectPlan/templateDownloadByStartByOpinionFill'
},
model: {},
dataSource: [],
@@ -238,6 +245,17 @@ export default {
}
this.loadData()
}
},
// 监听当前节点变化
currentNode: {
immediate: true,
handler () {
// 节点2填写意见,用没有“征求意见对象”的模板和导入接口
if (this.currentNode === EsInspectionPlan.fillInComments.value) {
this.url.importExcelUrl = this.url.nodeTwoImportUrl
this.url.downTemplateUrl = this.url.nodeTwoDownTemplateUrl
}
}
}
},
computed: {
@@ -245,7 +263,7 @@ export default {
currentUserName () {
return this.$store.getters.userInfo.username
},
// 是否显示表格操作按钮
// 是否前两个节点:显示表格操作按钮
hasTableOperator () {
const arr = [
EsInspectionPlan.initiate.value,
@@ -345,6 +363,88 @@ export default {
// 查看所属部门意见
showDepartOpinion (record) {
this.$refs.showOpinionModal.show(record)
},
/* 导入 */
handleImportExcel (info) {
// 限制导入大于500MB
if (info.file.size > 1024 * 1024 * 500) {
this.$message.error('导入文件最大500MB')
info.fileList.pop()
return
}
// 加一个大的提示
if (!this.loading) {
importModalLoading = this.$info({
title: '提示',
content: <span>正在导入请稍候 <a-spin size="small" /></span>,
keyboard: false
})
}
this.loading = true
// 把知道了这个按钮去掉
this.$nextTick(() => {
document.getElementsByClassName('ant-modal-confirm-btns')[0].style = 'display:none'
})
if (info.file.status !== 'uploading') {
console.log(info.file, info.fileList)
}
if (info.file.status === 'done') {
// 销毁这个提示
importModalLoading && importModalLoading.destroy()
this.loading = false
if (info.file.response.success) {
// this.$message.success(`${info.file.name} 文件上传成功`);
if (info.file.response.code === 201) {
const { message, result: { msg, fileUrl, fileName } } = info.file.response
const href = window._CONFIG.domianURL + fileUrl
this.$warning({
title: message,
content: (<div>
<span>{msg}</span><br />
<span>具体详情请 <a href={href} target="_blank" download={fileName}>点击下载</a> </span>
</div>
)
})
} else {
this.$message.success(info.file.response.message || `${info.file.name} 文件上传成功`)
}
// 前端存储
const data = info.file.response.result || []
this.dataSource.push(...data)
} else {
if (Array.isArray(info.file.response.result) && info.file.response.result.length > 0) {
this.messageLineFeed(this.$t('fileImportError'), info.file.response.result)
} else if (/<br>|<\/br>|<br\/>/.test(info.file.response.message)) {
this.messageLineFeedByBr(this.$t('fileImportError'), info.file.response.message)
} else {
this.$message.warning(`${info.file.name} ${info.file.response.message}`)
}
}
} else if (info.file.status === 'error') {
// 销毁这个提示
importModalLoading && importModalLoading.destroy()
this.loading = false
if (info.file.response.status === 500) {
const data = info.file.response
const token = Vue.ls.get(ACCESS_TOKEN)
if (token && data.message.includes('Token失效')) {
this.error({
title: '登录已过期',
content: '很抱歉,登录已过期,请重新登录',
okText: '重新登录',
mask: false,
onOk: () => {
store.dispatch('Logout').then(() => {
Vue.ls.remove(ACCESS_TOKEN)
window.location.reload()
})
}
})
}
} else {
this.$message.warning(`文件上传失败: ${info.file.msg} `)
}
}
}
}
}