update 项目合规流程

This commit is contained in:
赵霄
2023-12-13 17:06:07 +08:00
parent 9cdce928db
commit a30ca5cf93
5 changed files with 261 additions and 73 deletions
+11 -1
View File
@@ -359,7 +359,14 @@ const savePostMeetingManage = (params) => postAction('/process/meetingManageFlow
const getPostMeetingManageDataById = (params) => getAction('/meetingmanage/processMeetingManage/queryByProjectId', params) const getPostMeetingManageDataById = (params) => getAction('/meetingmanage/processMeetingManage/queryByProjectId', params)
/* 项目合规评估流程 */ /* 项目合规评估流程 */
// 获取项目法规清单
const queryProjectRegulationList = (params) => getAction('/projectLibrary/lawsAssess/page', params) const queryProjectRegulationList = (params) => getAction('/projectLibrary/lawsAssess/page', params)
// 发起-通过法规获取标准/条款列表
const queryStandardClauseList = (params) => postAction('/process/projectAssess/processProjectAssessGetList', params)
// 发起
const initiateProjectComplianceEvaluation = (params) => postAction('/process/projectAssess/startProcess', params)
// 提交
const submitProjectComplianceEvaluation = (params) => postAction('/process/projectAssess/submit', params)
export { export {
getProcessNodeList, getProcessNodeList,
@@ -542,5 +549,8 @@ export {
savePostMeetingManage, savePostMeetingManage,
getPostMeetingManageDataById, getPostMeetingManageDataById,
queryProjectRegulationList queryProjectRegulationList,
queryStandardClauseList,
initiateProjectComplianceEvaluation,
submitProjectComplianceEvaluation
} }
+26 -13
View File
@@ -239,7 +239,7 @@ module.exports = {
designEngineer: '设计工程师', designEngineer: '设计工程师',
solicitationList: '征求意见列表', solicitationList: '征求意见列表',
chapterName: '章节名称', chapterName: '章节名称',
pleaseSelectCriteriaFirst: '请先选择标准', pleaseSelectCriteriaFirst: '请先选择标准'
}, },
// 企标稽查计划 // 企标稽查计划
esInspectionPlan: { esInspectionPlan: {
@@ -377,24 +377,37 @@ module.exports = {
noCauseInvolved: '不涉及原因', noCauseInvolved: '不涉及原因',
cancelNotInvolve: '取消不涉及', cancelNotInvolve: '取消不涉及',
preNodePeople: '上一节点处理人', preNodePeople: '上一节点处理人',
evaluationFeedback:'评估反馈', evaluationFeedback: '评估反馈',
ccPerson: '抄送人员' ccPerson: '抄送人员',
pleaseSelectResponsibleUnit: '请选择责任单位',
pleaseSelectResponsibleUnitLeader: '请选择责任单位负责人',
aUnitOnlyALeader: '一个责任单位只能选择一个责任单位负责人,请检查'
}, },
// 未符合项跟踪流程 // 未符合项跟踪流程
noMatchTracking: { noMatchTracking: {
queryByCondition: '按条件查询', queryByCondition: '按条件查询',
problemTypes: '问题类型' problemTypes:
}, '问题类型'
}
,
// 法规合规评估流程 // 法规合规评估流程
standardCompliance: { standardCompliance: {
addStandard: '添加标准', addStandard: '添加标准',
responsibleUnitContactPerson: '责任单位联络人', responsibleUnitContactPerson:
pleaseSelectDeleteData: '请选择要删除的数据', '责任单位联络人',
moduleOwner: '模块责任人', pleaseSelectDeleteData:
projectAppraisal: '项目评估', '请选择要删除的数据',
stronglyRelatedVehicleType: '是否与车型强关联', moduleOwner:
doesNotFitModel: '不符合车型系列', '模块责任人',
projectApproval: '项目审批', projectAppraisal:
projectFiling: '项目归档' '项目评估',
stronglyRelatedVehicleType:
'是否与车型强关联',
doesNotFitModel:
'不符合车型系列',
projectApproval:
'项目审批',
projectFiling:
'项目归档'
} }
} }
+13 -8
View File
@@ -339,7 +339,11 @@ export const InspectionExtensionRequestProcess = new EsEnums({
initiate: { text: '稽查负责人申请延期', value: 'responsible_start', btn: ['save', 'submit'] }, initiate: { text: '稽查负责人申请延期', value: 'responsible_start', btn: ['save', 'submit'] },
directorLeaderApproval: { text: '负责人主管级领导审批', value: 'leader_approval', btn: ['transfer', 'save', 'agree', 'reject'] }, directorLeaderApproval: { text: '负责人主管级领导审批', value: 'leader_approval', btn: ['transfer', 'save', 'agree', 'reject'] },
contactEvaluation: { text: '稽查联络人评估', value: 'liaisons_assess', btn: ['transfer', 'save', 'agree', 'reject'] }, contactEvaluation: { text: '稽查联络人评估', value: 'liaisons_assess', btn: ['transfer', 'save', 'agree', 'reject'] },
directorSuperiorLeaderApproval: { text: '负责人主管级上一级领导审批', value: 'leader_up_level', btn: ['transfer', 'save', 'agree', 'reject'] } directorSuperiorLeaderApproval: {
text: '负责人主管级上一级领导审批',
value: 'leader_up_level',
btn: ['transfer', 'save', 'agree', 'reject']
}
}) })
// 企标稽查整改 // 企标稽查整改
@@ -397,13 +401,14 @@ export const ProcurementProcessNodes = new EsEnums({
// 项目合规评估流程节点 // 项目合规评估流程节点
export const ProjectComplianceEvaluationProcessNode = new EsEnums({ export const ProjectComplianceEvaluationProcessNode = new EsEnums({
initiate: { text: '法规工程师发起', value: '1', btn: ['save', 'pre', 'next', 'submit'] }, initiate: { text: '法规工程师发起', value: 'fggcsfq', btn: ['save', 'pre', 'next', 'submit'] },
departLeaderIssued: { text: '各部门主管级领导下发', value: '2', btn: ['return', 'save', 'submit'] }, departLeaderIssued: { text: '各部门主管级领导下发', value: 'gbmzgjldxf', btn: ['return', 'save', 'submit'] },
moduleOwnerIssued: { text: '模块负责人分发', value: '3', btn: ['return', 'save', 'submit'] }, moduleOwnerIssued: { text: '模块负责人分发', value: 'mkfzrff', btn: ['return', 'save', 'submit'] },
designEngineerEvaluation: { text: '设计工程师评估', value: '4', btn: ['return', 'save', 'submit'] }, designEngineerEvaluation: { text: '设计工程师评估', value: 'sjgcspg', btn: ['return', 'save', 'submit'] },
moduleOwnerApproval: { text: '模块负责人审批', value: '5', btn: ['return', 'save', 'agree', 'reject'] }, moduleOwnerApproval: { text: '模块负责人审批', value: 'mkfzrsp', btn: ['return', 'save', 'agree', 'reject'] },
departLeaderApproval: { text: '各部门主管级领导审批', value: '6', btn: ['return', 'save', 'agree', 'reject'] }, departLeaderApproval: { text: '各部门主管级领导审批', value: 'gbmzgjldsp', btn: ['return', 'save', 'agree', 'reject'] },
regulatoryEngineerFiling: { text: '法规工程师归档', value: '7', btn: ['return', 'save', 'submit'] } moduleOwnerModification: { text: '模块负责人修改', value: 'mkfzrxg', btn: ['return', 'save', 'agree', 'reject'] },
regulatoryEngineerFiling: { text: '法规工程师归档', value: 'fggcsgd', btn: ['return', 'save', 'submit'] }
}) })
// 企标立项、变更流程 // 企标立项、变更流程
@@ -92,7 +92,7 @@
<!--发起第二步选择项目第三步添加标准采用引入组件的方式--> <!--发起第二步选择项目第三步添加标准采用引入组件的方式-->
<keep-alive> <keep-alive>
<component :is="comp" v-if="comp" ref="projectStandardTable" :project-id="projectId"/> <component :is="comp" v-if="comp" ref="projectStandardTable" :project-id="projectId" />
</keep-alive> </keep-alive>
<!--业务分派信息--> <!--业务分派信息-->
@@ -109,29 +109,42 @@
:can-drag="true" :can-drag="true"
:scroll="{x: '100%'}" :scroll="{x: '100%'}"
ref="table" ref="table"
rowKey="id" :rowKey="(record,index)=>{return index}"
:columns="columns" :columns="columns"
:dataSource="dataSource" :dataSource="dataSource"
:pagination="false" :pagination="ipagination"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
@change="handleTableChange"
v-bind="$attrs"> v-bind="$attrs">
<!--条文内容-->
<template v-slot:clauseContent="{text}">
<div class="table-text" @click="showContent(text)" v-if="text">
{{ text && text !== 'null' ? text.replace(/<.*?>/ig, ' ') : '' }}
</div>
<div class="table-text" v-else>{{ global.emptyLine }}</div>
</template>
<!--责任单位--> <!--责任单位-->
<template v-slot:depart="{text, record, index}"> <template v-slot:depart="{text, record, index}">
<j-select-depart multi <j-select-depart v-if="record.canAssignFlag"
multi
:back-depart="true" :back-depart="true"
:value="record.depart" :value="record.responsibleUnits"
@change="value => handleDepartChange(value, record, index)" /> @change="value => handleDepartChange(value, record, index)" />
<div class="table-text" v-else>{{ global.emptyLine }}</div>
</template> </template>
<!--责任单位负责人--> <!--责任单位负责人-->
<template v-slot:user="{text, record, index}"> <template v-slot:user="{text, record, index}">
<user-selection :name-str="record.user_dictText" <user-selection v-if="record.canAssignFlag"
:name-str="record.responsibleUnitLeader_dictText"
:show-btn="false" :show-btn="false"
:value="record.user" :value="record.responsibleUnitLeaders"
:placeholder="$t('pleaseSelect') + $t('workCenter.projectComplianceEvaluationProcess.responsibleUnitHead')" :placeholder="$t('pleaseSelect') + $t('workCenter.projectComplianceEvaluationProcess.responsibleUnitHead')"
type="checkbox" type="checkbox"
@listChange="value => handleUserChange(value, record, index, 'user')" /> @listChange="value => handleUserChange(value, record, index, 'responsibleUnitLeaders')" />
<div class="table-text" v-else>{{ global.emptyLine }}</div>
</template> </template>
<!--模块负责人--> <!--模块负责人-->
@@ -291,6 +304,8 @@
<user-select-modal type="checkbox" ref="userSelectModal" @listChange="handleBatchSelectorOk" /> <user-select-modal type="checkbox" ref="userSelectModal" @listChange="handleBatchSelectorOk" />
<!--不涉及--> <!--不涉及-->
<uninvolved-modal ref="uninvolvedModal" @ok="handleUninvolvedOk" /> <uninvolved-modal ref="uninvolvedModal" @ok="handleUninvolvedOk" />
<!--条文内容-->
<split-clause-detail ref="clauseDetail" />
</internal-detail-page> </internal-detail-page>
</template> </template>
@@ -299,13 +314,15 @@ import PersonnelInfo from '../../../components/PersonnelInfo'
import InternalDetailPage from '../../../components/InternalDetailPage' import InternalDetailPage from '../../../components/InternalDetailPage'
import ProcessDetailList from '../../../components/ProcessDetailList' import ProcessDetailList from '../../../components/ProcessDetailList'
import { WorkCenterMixin } from '../../../mixins/WorkCenterMixin' import { WorkCenterMixin } from '../../../mixins/WorkCenterMixin'
import { ProcessKey, ProjectComplianceEvaluationProcessNode } from '../../../enums/commonEnums' import { ProcessKey, ProjectComplianceEvaluationProcessNode, StandardSource } from '../../../enums/commonEnums'
import JTable from '../../../components/jero/JTable' import JTable from '../../../components/jero/JTable'
import ProjectTable from './components/ProjectTable' import ProjectTable from './components/ProjectTable'
import UserSelection from '../../../components/selection/UserSelection' import UserSelection from '../../../components/selection/UserSelection'
import UserSelectModal from '../../../components/selection/UserSelectModal' import UserSelectModal from '../../../components/selection/UserSelectModal'
import UninvolvedModal from './modules/UninvolvedModal' import UninvolvedModal from './modules/UninvolvedModal'
import JExpandTable from '../../../components/JExpandTable' import JExpandTable from '../../../components/JExpandTable'
import { queryStandardClauseList, initiateProjectComplianceEvaluation, submitProjectComplianceEvaluation } from '../../../api/workCenter'
import SplitClauseDetail from '../../documentTool/documentSplit/modules/SplitClauseDetail'
export default { export default {
name: 'ProjectComplianceEvaluationProcess', name: 'ProjectComplianceEvaluationProcess',
@@ -318,7 +335,8 @@ export default {
ProjectTable, ProjectTable,
UserSelection, UserSelection,
UserSelectModal, UserSelectModal,
UninvolvedModal UninvolvedModal,
SplitClauseDetail
}, },
mixins: [WorkCenterMixin], mixins: [WorkCenterMixin],
data () { data () {
@@ -350,6 +368,18 @@ export default {
xs: { span: 24 }, xs: { span: 24 },
sm: { span: 21 } sm: { span: 21 }
}, },
/* 分页参数 */
ipagination: {
current: 1,
pageSize: 10,
pageSizeOptions: ['10', '30', '50', '100', '150', '200'],
showTotal: (total, range) => {
return range[0] + '-' + range[1] + ' ' + this.$t('total') + total + this.$t('strip')
},
showQuickJumper: true,
showSizeChanger: true,
total: 0
},
validatorRules: { validatorRules: {
// 流程名称 // 流程名称
processName: { processName: {
@@ -402,7 +432,7 @@ export default {
}, },
// 标准编号/条款号 // 标准编号/条款号
{ {
dataIndex: 'workNumber', dataIndex: 'termNumber',
title: this.$t('projectLibrary.vehicleItemLibrary.standardNumberClauseNumber'), title: this.$t('projectLibrary.vehicleItemLibrary.standardNumberClauseNumber'),
width: 150, width: 150,
align: 'center', align: 'center',
@@ -410,7 +440,7 @@ export default {
}, },
// 标准名称/条款名称 // 标准名称/条款名称
{ {
dataIndex: 'projectName', dataIndex: 'termName',
title: this.$t('workCenter.projectComplianceEvaluationProcess.standardNameClauseName'), title: this.$t('workCenter.projectComplianceEvaluationProcess.standardNameClauseName'),
width: 160, width: 160,
align: 'center', align: 'center',
@@ -418,11 +448,11 @@ export default {
}, },
// 条款内容 // 条款内容
{ {
dataIndex: 'projectSource_dictText', dataIndex: 'termText',
title: this.$t('workCenter.projectComplianceEvaluationProcess.terms'), title: this.$t('workCenter.projectComplianceEvaluationProcess.terms'),
width: 150, width: 150,
align: 'center', align: 'center',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'clauseContent' }
} }
], ],
dataSource: [], dataSource: [],
@@ -614,14 +644,14 @@ export default {
// 责任单位 // 责任单位
{ {
title: this.$t('workCenter.projectComplianceEvaluationProcess.accountabilityUnit'), title: this.$t('workCenter.projectComplianceEvaluationProcess.accountabilityUnit'),
dataIndex: 'depart', dataIndex: 'responsibleUnits',
width: 150, width: 150,
scopedSlots: { customRender: 'depart' } scopedSlots: { customRender: 'depart' }
}, },
// 责任单位负责人 // 责任单位负责人
{ {
title: this.$t('workCenter.projectComplianceEvaluationProcess.responsibleUnitHead'), title: this.$t('workCenter.projectComplianceEvaluationProcess.responsibleUnitHead'),
dataIndex: 'user', dataIndex: 'responsibleUnitLeaders',
width: 150, width: 150,
scopedSlots: { customRender: 'user' } scopedSlots: { customRender: 'user' }
}, },
@@ -767,11 +797,12 @@ export default {
// 第三步选择标准 // 第三步选择标准
if (this.currentStep === 2) { if (this.currentStep === 2) {
this.standardDataSource = this.$refs.projectStandardTable.getData() this.standardDataSource = this.$refs.projectStandardTable.getData()
console.log(this.standardDataSource)
if (!this.standardDataSource || this.standardDataSource.length === 0) { if (!this.standardDataSource || this.standardDataSource.length === 0) {
this.$message.warning(this.$t('addAtLeastOneRowOfData')) this.$message.warning(this.$t('addAtLeastOneRowOfData'))
flag = false flag = false
} else { } else {
// TODO 这块应该需要调接口把标准转成第四步要的条款 this.getDispatchList()
} }
} }
if (!flag) { if (!flag) {
@@ -779,6 +810,23 @@ export default {
} }
this.currentStep++ this.currentStep++
}, },
/**
* 获取业务分派信息列表
*/
getDispatchList () {
const params = this.standardDataSource.map(item => {
return {
sarFileSplitInfoId: item.sarFileSplitInfoId,
standardNumber: item.standardNumber,
standardName: item.standardName
}
})
queryStandardClauseList(params).then(res => {
if (res.success) {
this.dataSource = res.result || []
}
})
},
/** /**
* 跳转项目详情 * 跳转项目详情
*/ */
@@ -794,9 +842,34 @@ export default {
/** /**
* 跳转标准详情 * 跳转标准详情
*/ */
toStandardDetail (standard) { toStandardDetail ({ source, standardId }) {
// todo 需要标准类别 let path
console.log(standard) // 根据来源跳转不同的详情页
switch (source) {
// 国内
case StandardSource.DOMESTIC.value:
path = '/standardRegulationLibrary/DomesticStandardDetail'
break
// 海外
case StandardSource.OVERSEAS.value:
path = '/standardRegulationLibrary/OverseasStandardDetail'
break
// 企标
case StandardSource.ENTERPRISE.value:
path = '/enterpriseStandardLibrary/enterpriseStandardDetail'
break
default:
break
}
if (!path) {
return
}
const query = {
id: standardId
}
this.$openPageNewSheet({
path, query
})
}, },
/** /**
* 批量选择人员 * 批量选择人员
@@ -813,7 +886,7 @@ export default {
switch (this.currentNode) { switch (this.currentNode) {
// 发起节点,批量选择的是责任单位负责人 // 发起节点,批量选择的是责任单位负责人
case ProjectComplianceEvaluationProcessNode.initiate.value: case ProjectComplianceEvaluationProcessNode.initiate.value:
fieldName = 'user' fieldName = 'responsibleUnitLeaders'
break break
// 各部门主管级领导下发,批量选择的是模块负责人 // 各部门主管级领导下发,批量选择的是模块负责人
case ProjectComplianceEvaluationProcessNode.departLeaderIssued.value: case ProjectComplianceEvaluationProcessNode.departLeaderIssued.value:
@@ -830,12 +903,13 @@ export default {
return return
} }
this.dataSource.forEach((item, index) => { this.dataSource.forEach((item, index) => {
if (this.selectedRowKeys.includes(item.id)) { if (this.selectedRowKeys.includes(index)) {
item[fieldName] = list.map(tt => tt.id).join(',') item[fieldName] = list.map(tt => tt.id).join(',')
item[fieldName + '_dictText'] = list.map(tt => tt.realname + '(' + tt.username + ')').join(',') item[fieldName + '_dictText'] = list.map(tt => tt.realname + '(' + tt.username + ')').join(',')
this.$set(this.dataSource, index, item) this.$set(this.dataSource, index, item)
} }
}) })
console.log(this.dataSource)
this.selectedRowKeys = [] this.selectedRowKeys = []
}, },
onSelectChange (selectedRowKeys) { onSelectChange (selectedRowKeys) {
@@ -848,7 +922,7 @@ export default {
* @param index * @param index
*/ */
handleDepartChange (value, record, index) { handleDepartChange (value, record, index) {
record.depart = value record.responsibleUnits = value
this.$set(this.dataSource, index, record) this.$set(this.dataSource, index, record)
}, },
/** /**
@@ -896,21 +970,92 @@ export default {
record.evaluationFeedback = value record.evaluationFeedback = value
this.$set(this.dataSource, index, record) this.$set(this.dataSource, index, record)
}, },
dealFormData (isSave) { dealFormData () {
let formData = {}, processProjectAssess = {} let formData = {}, basicTaskInfoDTO = {}, flag = true
// 流程信息 // 流程信息
formData.basicProcessInfoDTO = { ...this.processInfo } formData.basicProcessInfoDTO = { ...this.processInfo }
// 业务基本信息(项目信息) // 发起节点需要多传一些参数
if (this.projectDataSource && this.projectDataSource.length > 0) { if (this.currentNode === ProjectComplianceEvaluationProcessNode.initiate.value) {
processProjectAssess.projectId = this.projectDataSource[0].id let processProjectAssess = {}, processProjectAssessLinkList = [], processProjectAssessTermList = []
// 项目信息(发起第二步)
if (this.projectDataSource && this.projectDataSource.length > 0) {
processProjectAssess.projectId = this.projectDataSource[0].id
}
// 关联标准列表(发起第三步)
processProjectAssessLinkList = JSON.parse(JSON.stringify(this.standardDataSource))
// 关联条款列表(发起第四步)
processProjectAssessTermList = JSON.parse(JSON.stringify(this.dataSource))
// 校验责任单位必填
if (processProjectAssessTermList.some(tt => !tt.responsibleUnits)) {
this.$message.warning(this.$t('workCenter.projectComplianceEvaluationProcess.pleaseSelectResponsibleUnit'))
flag = false
}
// 校验责任单位负责人必填
if (processProjectAssessTermList.some(tt => !tt.responsibleUnitLeaders)) {
this.$message.warning(this.$t('workCenter.projectComplianceEvaluationProcess.pleaseSelectResponsibleUnitLeader'))
flag = false
}
// 校验责任单位和责任单位负责人是一对一的关系
if (processProjectAssessTermList.some(tt => {
const responsibleUnitList = (tt.responsibleUnits || '').split(',')
const responsibleUnitLeadersList = (tt.responsibleUnitLeaders || '').split(',')
return responsibleUnitList.length !== responsibleUnitLeadersList.length
})) {
this.$message.warning(this.$t('workCenter.projectComplianceEvaluationProcess.aUnitOnlyALeader'))
flag = false
}
formData.businessInfoDTO = {
processProjectAssess, processProjectAssessLinkList, processProjectAssessTermList
}
}
// 流程审批意见数据
this.approvalInfoForm.validateFields((errors, values) => {
if (!errors) {
basicTaskInfoDTO = Object.assign(this.approvalInfo, values)
} else {
flag = false
}
})
formData.basicTaskInfoDTO = basicTaskInfoDTO
console.log(formData)
if (!flag) {
return false
} }
return formData return formData
}, },
handleSave () { handleSave () {
const formData = this.dealFormData(true)
console.log('保存表单数据===', formData)
}, },
/**
* 提交
*/
handleSubmit () { handleSubmit () {
const formData = this.dealFormData()
console.log('提交表单数据===', formData)
if (!formData) {
return
}
let submitFunc
// 发起和提交的接口判断
if (this.currentNode === ProjectComplianceEvaluationProcessNode.initiate.value) {
submitFunc = initiateProjectComplianceEvaluation
} else {
submitFunc = submitProjectComplianceEvaluation
}
if (!submitFunc) {
return
}
this.loading = true
submitFunc(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
}
}).finally(() => {
this.loading = false
})
}, },
handleTurnTo () { handleTurnTo () {
@@ -920,6 +1065,12 @@ export default {
}, },
handleReject () { handleReject () {
},
handleTableChange (pagination) {
this.ipagination = pagination
},
showContent (text) {
this.$refs.clauseDetail.open(text)
} }
}, },
beforeRouteLeave (to, form, next) { beforeRouteLeave (to, form, next) {
@@ -22,10 +22,14 @@
<!--分解单来源--> <!--分解单来源-->
<template v-slot:salvageListSource="{text, record, index}"> <template v-slot:salvageListSource="{text, record, index}">
<j-dict-select-tag style="width: 100%" <a-select :placeholder="$t('pleaseSelect') + $t('workCenter.projectComplianceEvaluationProcess.salvageListSource')"
:value="record.salvageSource" :value="record.decompositionOrderSource"
:options="standardFileType" style="width: 100%"
@change="value => handleSourceChange(value, record, index)" /> @change="value => handleSourceChange(value, record, index)">
<a-select-option v-for="item in record.dictOptions" :key="item.value" :value="item.value" :disabled="item.disabled">
{{ item.text }}
</a-select-option>
</a-select>
</template> </template>
</j-table> </j-table>
@@ -38,7 +42,6 @@
<script> <script>
import JTable from '../../../../components/jero/JTable' import JTable from '../../../../components/jero/JTable'
import SelectStandardListDrawer from '../modules/SelectStandardListDrawer' import SelectStandardListDrawer from '../modules/SelectStandardListDrawer'
import { ajaxGetDictItems } from '../../../../api/api'
export default { export default {
name: 'StandardList', name: 'StandardList',
@@ -87,7 +90,7 @@ export default {
// 分解单来源 // 分解单来源
{ {
title: this.$t('workCenter.projectComplianceEvaluationProcess.salvageListSource'), title: this.$t('workCenter.projectComplianceEvaluationProcess.salvageListSource'),
dataIndex: 'salvageSource', dataIndex: 'decompositionOrderSource',
width: 150, width: 150,
scopedSlots: { customRender: 'salvageListSource' } scopedSlots: { customRender: 'salvageListSource' }
}, },
@@ -112,21 +115,10 @@ export default {
], ],
dataSource: [], dataSource: [],
selectedRowKeys: [], selectedRowKeys: [],
rowIds: [], rowIds: []
standardFileType: []
} }
}, },
created () {
this.initDict()
},
methods: { methods: {
initDict () {
ajaxGetDictItems('decomposition_order_source').then(res => {
if (res.success) {
this.standardFileType = res.result
}
})
},
handleAdd () { handleAdd () {
this.$refs.selectStandardDrawer.open(this.projectId) this.$refs.selectStandardDrawer.open(this.projectId)
}, },
@@ -150,8 +142,18 @@ export default {
}, },
handleOk (rows) { handleOk (rows) {
this.dataSource = rows.map(item => { this.dataSource = rows.map(item => {
if (!item.salvageSource) { // 默认选中不带入
item.salvageSource = '0' if (!item.decompositionOrderSource) {
item.decompositionOrderSource = '0'
}
// 处理没有拆分单的来源禁用
if (item.decompositionOrderSourceVOList && item.decompositionOrderSourceVOList.length > 0) {
item.dictOptions = item.decompositionOrderSourceVOList.map(dictItem => {
if (dictItem.value !== '0' && !dictItem.sarFileSplitInfoId) {
dictItem.disabled = true
}
return dictItem
})
} }
return item return item
}) })
@@ -159,8 +161,15 @@ export default {
getData () { getData () {
return this.dataSource return this.dataSource
}, },
/**
* 分解单来源变化
* @param value
* @param record
* @param index
*/
handleSourceChange (value, record, index) { handleSourceChange (value, record, index) {
record.salvageSource = value record.decompositionOrderSource = value
record.sarFileSplitInfoId = record.dictOptions.find(tt => tt.value === value).sarFileSplitInfoId
this.$set(this.dataSource, index, record) this.$set(this.dataSource, index, record)
}, },
handleTableChange (pagination) { handleTableChange (pagination) {