[update] 法规符合性排查流程

This commit is contained in:
lideqin
2024-07-09 18:20:37 +08:00
parent e932d40c83
commit e3ebdc2c25
7 changed files with 88 additions and 56 deletions
+2 -1
View File
@@ -50,7 +50,8 @@ module.exports = {
salvageListTemplateDownload: 'Split single file template download', salvageListTemplateDownload: 'Split single file template download',
salvageListTemplateName: 'Decomposes a single file upload template', salvageListTemplateName: 'Decomposes a single file upload template',
carTypeFileTemplateDownload: 'Model project file template download', carTypeFileTemplateDownload: 'Model project file template download',
carTypeFileTemplateName: 'Model project file upload template' carTypeFileTemplateName: 'Model project file upload template',
pleaseGenerate: 'Please generate data'
}, },
// 市场清单发布流程 // 市场清单发布流程
marketListReleaseProcess: { marketListReleaseProcess: {
+2 -1
View File
@@ -50,7 +50,8 @@ module.exports = {
salvageListTemplateDownload: '分解单文件模板下载', salvageListTemplateDownload: '分解单文件模板下载',
salvageListTemplateName: '分解单文件上传模板', salvageListTemplateName: '分解单文件上传模板',
carTypeFileTemplateDownload: '车型项目文件模板下载', carTypeFileTemplateDownload: '车型项目文件模板下载',
carTypeFileTemplateName: '车型项目文件上传模板' carTypeFileTemplateName: '车型项目文件上传模板',
pleaseGenerate: '请先生成数据'
}, },
// 市场清单发布流程 // 市场清单发布流程
marketListReleaseProcess: { marketListReleaseProcess: {
@@ -20,6 +20,7 @@
v-bind="$attrs" v-bind="$attrs"
:value="value" :value="value"
@change="modalInput" @change="modalInput"
@numberChange="modalNumberChange"
@nameChange="modalNameChange" @nameChange="modalNameChange"
@listChange="modalListChange"> @listChange="modalListChange">
</market-regulations-list-selection-modal> </market-regulations-list-selection-modal>
@@ -76,6 +77,7 @@ export default {
clearInput () { clearInput () {
console.log('输入框清空了') console.log('输入框清空了')
this.$emit('change', '') this.$emit('change', '')
this.$emit('numberChange', '')
this.$emit('nameChange', '') this.$emit('nameChange', '')
this.$emit('listChange', []) this.$emit('listChange', [])
}, },
@@ -86,6 +88,9 @@ export default {
modalInput (value) { modalInput (value) {
this.$emit('change', value) this.$emit('change', value)
}, },
modalNumberChange (value) {
this.$emit('numberChange', value)
},
modalNameChange (value) { modalNameChange (value) {
this.$emit('nameChange', value) this.$emit('nameChange', value)
}, },
@@ -310,14 +310,15 @@ export default {
this.close() this.close()
}, },
handleSubmit () { handleSubmit () {
const serialNumber = [] const serialNumberArr = []
const serialNameArr = [] const serialNameArr = []
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) { if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
this.selectedRowList.forEach(res => { this.selectedRowList.forEach(res => {
serialNumber.push(res.standardNumber) serialNumberArr.push(res.manifestNo)
serialNameArr.push(res.standardName) serialNameArr.push(res.manifestName)
}) })
this.$emit('change', this.selectedRowKeys.join(',')) this.$emit('change', this.selectedRowKeys.join(','))
this.$emit('numberChange', serialNumberArr.join(','))
this.$emit('nameChange', serialNameArr.join(',')) this.$emit('nameChange', serialNameArr.join(','))
this.$emit('listChange', this.selectedRowList) this.$emit('listChange', this.selectedRowList)
this.close() this.close()
@@ -80,6 +80,7 @@ import {
NewRegulationsImportNodes, StandardInterpretationNodes NewRegulationsImportNodes, StandardInterpretationNodes
} from '@/enums/commonEnums' } from '@/enums/commonEnums'
import { getAction } from '../../../../api/manage' import { getAction } from '../../../../api/manage'
import { RegulatoryComplianceCheckNodes } from '../../../../enums/commonEnums'
export default { export default {
name: 'TodoList', name: 'TodoList',
@@ -161,6 +162,7 @@ export default {
// 标准解读流程 // 标准解读流程
[ProcessType.STANDARD_INTERPRETATION_PROCESS.value]: [StandardInterpretationNodes.initiated.value], [ProcessType.STANDARD_INTERPRETATION_PROCESS.value]: [StandardInterpretationNodes.initiated.value],
// 法规符合性排查流程 // 法规符合性排查流程
[ProcessType.REGULATORY_COMPLIANCE_CHECK.value]: [RegulatoryComplianceCheckNodes.initiated.value],
// 市场清单发布流程 // 市场清单发布流程
[ProcessType.MARKET_LIST_RELEASE.value]: [MarketListReleaseNodes.initiated.value] [ProcessType.MARKET_LIST_RELEASE.value]: [MarketListReleaseNodes.initiated.value]
}, },
@@ -233,7 +235,7 @@ export default {
break break
// 法规符合性排查流程 // 法规符合性排查流程
case '3': case '3':
path = '' path = '/workCenter/RegulatoryComplianceCheckProcess'
break break
// 市场清单发布流程 // 市场清单发布流程
case '4': case '4':
@@ -27,7 +27,7 @@
<a-input :placeholder="$t('pleaseEnter') + $t('processName')" <a-input :placeholder="$t('pleaseEnter') + $t('processName')"
disabled disabled
:maxLength="50" :maxLength="50"
v-decorator="['prcName', validatorRules.prcName]" /> v-decorator="['processName', validatorRules.processName]" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
@@ -41,7 +41,7 @@
style="width: 100%" style="width: 100%"
:disabled="disabled" :disabled="disabled"
value-format="YYYY-MM-DD" value-format="YYYY-MM-DD"
v-decorator="['dueTime']" /> v-decorator="['processDueDate']" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
@@ -55,7 +55,7 @@
:maxLength="500" :maxLength="500"
:rows="4" :rows="4"
:disabled="disabled" :disabled="disabled"
v-decorator="['prcMes']" /> v-decorator="['processDescription']" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col v-if="[2, 3, 4, 5, 6, 7, 8, 9].includes(currentNode)" :span="24"> <a-col v-if="[2, 3, 4, 5, 6, 7, 8, 9].includes(currentNode)" :span="24">
@@ -79,7 +79,7 @@
:colon="formItemColon"> :colon="formItemColon">
<a-input :placeholder="$t('pleaseEnter') + $t('applicableMarket')" <a-input :placeholder="$t('pleaseEnter') + $t('applicableMarket')"
disabled disabled
v-decorator="['applicableMarket']" /> v-decorator="['applicableMarket_dictText']" />
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
@@ -111,11 +111,11 @@
<a-textarea :placeholder="$t('pleaseEnter') + $t('remarks')" <a-textarea :placeholder="$t('pleaseEnter') + $t('remarks')"
:maxLength="500" :maxLength="500"
:rows="4" :rows="4"
v-decorator="['commitText', validatorRules.commitText]" /> v-decorator="['handleText', validatorRules.handleText]" />
</a-form-item> </a-form-item>
<!--附件--> <!--附件-->
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('attach')" :colon="formItemColon"> <a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('attach')" :colon="formItemColon">
<j-upload v-decorator="['commitFile']" return-id multiple /> <j-upload v-decorator="['handleFile']" return-id multiple />
</a-form-item> </a-form-item>
</a-form> </a-form>
</div> </div>
@@ -325,13 +325,13 @@ export default {
}, },
validatorRules: { validatorRules: {
// 流程名称 // 流程名称
prcName: { processName: {
rules: [ rules: [
{ required: true, message: this.$t('pleaseEnter') + this.$t('processName') } { required: true, message: this.$t('pleaseEnter') + this.$t('processName') }
], ],
validateTrigger: 'blur' validateTrigger: 'blur'
}, },
commitText: { handleText: {
rules: [ rules: [
{ required: false, message: this.$t('pleaseEnter') + this.$t('remarks') } { required: false, message: this.$t('pleaseEnter') + this.$t('remarks') }
], ],
@@ -362,19 +362,27 @@ export default {
this.$nextTick(() => { this.$nextTick(() => {
if (type === 'todo') { if (type === 'todo') {
// 初始化流程信息 // 初始化流程信息
this.processInfoForm.setFieldsValue(pick(this.model.common, 'prcName', 'dueTime', 'prcMes')) if (this.currentNode !== 1) {
// 需要回显上方的标准编号/标准名称和适用市场
// 标准编号/标准名称
this.model.basicProcessInfoDTO.standardNumberName = this.model.businessInfoDTO.standardInfo.standardNumber + ' ' + this.model.businessInfoDTO.standardInfo.standardName
// 适用市场
this.model.basicProcessInfoDTO.applicableMarket_dictText = this.model.businessInfoDTO.standardInfo.applicableMarket_dictText
}
this.processInfoForm.setFieldsValue(pick(this.model.basicProcessInfoDTO, 'processName', 'processDueDate', 'processDescription', 'standardNumberName', 'applicableMarket_dictText'))
} }
// 有草稿json按草稿进来的回显 // 有草稿json按草稿进来的回显
if (this.model.infoJsonStr) { if (this.model.infoJsonStr) {
this.model = JSON.parse(this.model.infoJsonStr)
// 初始化流程信息 // 初始化流程信息
const prcObj = Object.assign({}, this.model) const prcObj = Object.assign({}, this.model)
prcObj.dueTime = this.model.processDueDate prcObj.processDueDate = this.model.processDueDate
prcObj.prcMes = this.model.processDescription prcObj.processDescription = this.model.processDescription
this.processInfoForm.setFieldsValue(pick(prcObj, 'prcName', 'dueTime', 'prcMes')) this.processInfoForm.setFieldsValue(pick(prcObj, 'processName', 'processDueDate', 'processDescription'))
// 初始化流程审批信息 // 初始化流程审批信息
prcObj.commitText = this.model.handleText prcObj.handleText = this.model.handleText
prcObj.commitFile = this.model.handleFile prcObj.handleFile = this.model.handleFile
this.approvalInfoForm.setFieldsValue(pick(prcObj, 'commitText', 'commitFile')) this.approvalInfoForm.setFieldsValue(pick(prcObj, 'handleText', 'handleFile'))
this.model.data = JSON.parse(this.model.infoJsonStr).data this.model.data = JSON.parse(this.model.infoJsonStr).data
// 如果是节点1的保存回显人员信息 // 如果是节点1的保存回显人员信息
if (this.currentNode === 1) { if (this.currentNode === 1) {
@@ -399,9 +407,9 @@ export default {
}, },
// 业务基本信息组件中获取到流程名称改变后的值 // 业务基本信息组件中获取到流程名称改变后的值
processNameChange (value) { processNameChange (value) {
const param = { prcName: value } const param = { processName: value }
this.$nextTick(() => { this.$nextTick(() => {
this.processInfoForm.setFieldsValue(pick(param, 'prcName')) this.processInfoForm.setFieldsValue(pick(param, 'processName'))
}) })
}, },
// 保存 // 保存
@@ -429,14 +437,9 @@ export default {
const paramObj = {} const paramObj = {}
// 流程信息 // 流程信息
paramObj.basicProcessInfoDTO = Object.assign({}, processInfoForm) paramObj.basicProcessInfoDTO = Object.assign({}, processInfoForm)
paramObj.basicProcessInfoDTO.processName = paramObj.basicProcessInfoDTO.prcName
paramObj.basicProcessInfoDTO.processDueDate = paramObj.basicProcessInfoDTO.dueTime
paramObj.basicProcessInfoDTO.processDescription = paramObj.basicProcessInfoDTO.prcMes
paramObj.basicProcessInfoDTO.processInstanceId = this.$route.query.processInstanceId paramObj.basicProcessInfoDTO.processInstanceId = this.$route.query.processInstanceId
// 流程审批信息 // 流程审批信息
paramObj.basicTaskInfoDTO = Object.assign({}, approvalInfoForm) paramObj.basicTaskInfoDTO = Object.assign({}, approvalInfoForm)
paramObj.basicTaskInfoDTO.handleText = paramObj.basicTaskInfoDTO.commitText
paramObj.basicTaskInfoDTO.handleFile = paramObj.basicTaskInfoDTO.commitFile
paramObj.basicTaskInfoDTO.taskId = this.$route.query.taskId paramObj.basicTaskInfoDTO.taskId = this.$route.query.taskId
// 草稿id // 草稿id
if (this.model.infoJsonStr) { if (this.model.infoJsonStr) {
@@ -476,13 +479,18 @@ export default {
} }
this.loading = true this.loading = true
const paramObj = {} // 需要传给后端的数据 const paramObj = {} // 需要传给后端的数据
paramObj.common = { ...values, ...approvalValues } // 流程基本信息
paramObj.basicProcessInfoDTO = values
// 流程审批信息
paramObj.basicTaskInfoDTO = approvalValues
// 草稿id // 草稿id
if (this.model.infoJsonStr) { if (this.model.infoJsonStr) {
paramObj.common.draftId = this.model.id paramObj.draftId = this.model.id
} }
paramObj.flowUser = personnelObj paramObj.userInfoMap = personnelObj
paramObj.data = data.formInline paramObj.businessInfoDTO = data
// JSON字符串
paramObj.infoJsonStr = JSON.stringify(paramObj)
let func let func
if (this.$route.query.taskId) { if (this.$route.query.taskId) {
// 有taskId说明是驳回的提交 // 有taskId说明是驳回的提交
@@ -560,9 +568,9 @@ export default {
// 同意 // 同意
handleAgree () { handleAgree () {
if (this.loading) return if (this.loading) return
this.validatorRules.commitText.rules[0].required = false this.validatorRules.handleText.rules[0].required = false
if (!this.approvalInfoForm.getFieldValue('commitText')) { if (!this.approvalInfoForm.getFieldValue('handleText')) {
this.approvalInfoForm.setFieldsValue({ commitText: '同意' }) this.approvalInfoForm.setFieldsValue({ handleText: '同意' })
} }
this.approvalInfoForm.validateFields((err, values) => { this.approvalInfoForm.validateFields((err, values) => {
if (!err) { if (!err) {
@@ -585,8 +593,8 @@ export default {
// 驳回 // 驳回
handleReject () { handleReject () {
if (this.loading) return if (this.loading) return
this.validatorRules.commitText.rules[0].required = true this.validatorRules.handleText.rules[0].required = true
if (!this.approvalInfoForm.getFieldValue('commitText')) { if (!this.approvalInfoForm.getFieldValue('handleText')) {
this.$message.warning(this.$t('pleaseEnterRemarks')) this.$message.warning(this.$t('pleaseEnterRemarks'))
this.switchValue = 'base' this.switchValue = 'base'
} }
@@ -606,7 +614,7 @@ export default {
this.loading = false this.loading = false
} }
}).finally(() => { }).finally(() => {
this.validatorRules.commitText.rules[0].required = false this.validatorRules.handleText.rules[0].required = false
}) })
} }
}) })
@@ -74,11 +74,11 @@
</span> </span>
</div> </div>
<a-form-model-item class="item-model" prop="applicableMarket"> <a-form-model-item class="item-model" prop="applicableMarket">
<s-tree-select <market-regulations-list-selection
v-model="formInline.applicableMarket" v-model="formInline.applicableMarket"
:tree-data="countryOptions" type="radio"
tree-checkable @numberChange="marketRegulationNumberChange"
treeCheckStrictly :name-str="formInline.applicableMarket_dictText"
:placeholder="$t('pleaseSelect')+$t('applicableMarket')" /> :placeholder="$t('pleaseSelect')+$t('applicableMarket')" />
</a-form-model-item> </a-form-model-item>
</div> </div>
@@ -103,7 +103,7 @@
<div class="center-operate-box"> <div class="center-operate-box">
<!-- 生成 --> <!-- 生成 -->
<a-button type="primary" ghost :loading="loading" @click="handleGenerate">{{ $t('generate') }}</a-button> <a-button class="next-btn" type="primary" ghost :loading="loading" @click="handleGenerate">{{ $t('generate') }}</a-button>
</div> </div>
</div> </div>
<template v-if="isGenerateAfter"> <template v-if="isGenerateAfter">
@@ -203,10 +203,13 @@ import { regulatoryComplianceCheckGenerate } from '@/api/workCenter'
import { getFormDictTreeList, queryDepartTreeList } from '../../../../api/api' import { getFormDictTreeList, queryDepartTreeList } from '../../../../api/api'
import { downloadFile } from '../../../../api/manage' import { downloadFile } from '../../../../api/manage'
import { JeroListMixin } from '@/mixins/JeroListMixin' import { JeroListMixin } from '@/mixins/JeroListMixin'
import MarketRegulationsListSelection from '../../../../components/selection/MarketRegulationsListSelection'
import pick from 'lodash.pick'
export default { export default {
name: 'EngineerInitBaseInfo', name: 'EngineerInitBaseInfo',
components: { components: {
MarketRegulationsListSelection,
JTable, JTable,
ManualAddModal, ManualAddModal,
StandardSelectionModal, StandardSelectionModal,
@@ -397,7 +400,11 @@ export default {
}, },
disableMixinCreated: true, disableMixinCreated: true,
countryOptions: [], // 适用市场下拉框 countryOptions: [], // 适用市场下拉框
model: {} model: {
standardInfo: {
id: ''
}
}
} }
}, },
mounted () { mounted () {
@@ -414,20 +421,19 @@ export default {
// 外层要获取数据 // 外层要获取数据
getData () { getData () {
// 把数据抛出,在线编辑不知道要不要抛 // 把数据抛出,在线编辑不知道要不要抛
const data = {} const data = { standardInfo: {} }
data.formInline = {standardInfo: {id: this.model.id}} data.standardInfo.id = {standardInfo: {id: this.model.standardInfo.id}}
return data return data
}, },
// 外层获取数据要过校验,返回false表示没有通过校验 // 外层获取数据要过校验,返回false表示没有通过校验
async getDataValidate () { async getDataValidate () {
let data = {} let data = { standardInfo: {} }
await this.$refs.ruleForm.validate(valid => { if (!this.model.standardInfo.id) {
if (valid) { this.$message.warning(this.$t('workCenter.regulatoryComplianceCheckProcess.pleaseGenerate'))
data.formInline = this.formInline data = false
} else { } else {
data = false data.standardInfo.id = this.model.standardInfo.id
} }
})
return data return data
}, },
getCountryOption () { getCountryOption () {
@@ -552,11 +558,12 @@ export default {
}, },
// 生成 // 生成
handleGenerate () { handleGenerate () {
console.log('--------生成了')
if (this.standardDataSource.length >= 1) { if (this.standardDataSource.length >= 1) {
this.$refs.ruleForm.validate(valid => { this.$refs.ruleForm.validate(valid => {
console.log('-----valid', valid)
if (valid) { if (valid) {
const param = Object.assign({}, this.standardDataSource[0], this.formInline) const param = Object.assign({}, this.standardDataSource[0], this.formInline)
param.applicableMarket = param.applicableMarket.map(item => item.value).join(',')
regulatoryComplianceCheckGenerate(param).then(res => { regulatoryComplianceCheckGenerate(param).then(res => {
if (res.success) { if (res.success) {
this.$message.success(res.message) this.$message.success(res.message)
@@ -564,7 +571,7 @@ export default {
this.isGenerateAfter = true this.isGenerateAfter = true
// 获取下方列表信息 // 获取下方列表信息
this.filters.checkId = res.result this.filters.checkId = res.result
this.model.id = res.result this.model.standardInfo.id = res.result
this.loadData(1) this.loadData(1)
} else { } else {
this.$message.warning(res.message) this.$message.warning(res.message)
@@ -576,6 +583,10 @@ export default {
this.$message.warning(this.$t('workCenter.regulatoryComplianceCheckProcess.pleaseAddStandard')) this.$message.warning(this.$t('workCenter.regulatoryComplianceCheckProcess.pleaseAddStandard'))
} }
}, },
// 选择市场法规清单回调
marketRegulationNumberChange (value) {
this.formInline.applicableMarket_dictText = value
},
filterTreeOption (input, option) { filterTreeOption (input, option) {
const text = option.componentOptions.propsData.title || option.componentOptions.propsData.label const text = option.componentOptions.propsData.title || option.componentOptions.propsData.label
return text.toLowerCase().indexOf(input.toLowerCase()) >= 0 return text.toLowerCase().indexOf(input.toLowerCase()) >= 0
@@ -600,5 +611,8 @@ export default {
.center-operate-box { .center-operate-box {
float: right; float: right;
.next-btn {
z-index: 999;
}
} }
</style> </style>