[update] 外部标准流程查看详情
This commit is contained in:
@@ -531,25 +531,22 @@ export default {
|
||||
)
|
||||
},
|
||||
// 保存快照
|
||||
saveParamJsonStr () {
|
||||
saveParamJsonStr (callback) {
|
||||
// 流程信息表单
|
||||
const processInfoForm = Object.assign(this.processInfo, this.processInfoForm.getFieldsValue())
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = Object.assign(this.approvalInfo, this.approvalInfoForm.getFieldsValue())
|
||||
// 人员信息的数据, 处理成对象
|
||||
const personnelObj = this.$refs.personnelInfo.getDataObj()
|
||||
const params = { ...processInfoForm, ...approvalInfoForm }
|
||||
params.infoJsonStr = JSON.stringify({
|
||||
processInfo: processInfoForm,
|
||||
approvalInfo: approvalInfoForm,
|
||||
userInfoMap: personnelObj,
|
||||
dataSource: this.dataSource
|
||||
})
|
||||
params.infoJsonStr = JSON.stringify(this.dealSaveJsonData())
|
||||
params.taskId = this.$route.query.taskId
|
||||
params.prcType = ProcessType.NO_MATCH_TRACKING.value
|
||||
saveSnapShot(params).then(res => {
|
||||
if (!res.success) {
|
||||
console.log(res.message)
|
||||
saveSnapShot(params).then(async res => {
|
||||
if (res.success) {
|
||||
callback && await callback()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -710,21 +707,34 @@ export default {
|
||||
} else {
|
||||
submitFunc = submitNoMatchTrackingProcess
|
||||
}
|
||||
submitFunc(formData).then(async res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
if (!(this.currentNode === NoMatchTrackingNodes.initial.value && (!this.$route.query.processInstanceId || this.$route.query.draftId))) {
|
||||
// 保存快照
|
||||
await this.saveParamJsonStr()
|
||||
if (this.currentNode === NoMatchTrackingNodes.initial.value && (!this.$route.query.processInstanceId || this.$route.query.draftId)) {
|
||||
submitFunc(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
} else {
|
||||
// 保存快照后提交
|
||||
this.saveParamJsonStr(() => {
|
||||
submitFunc(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 同意
|
||||
@@ -744,18 +754,19 @@ export default {
|
||||
return
|
||||
}
|
||||
this.loading = true
|
||||
agreeNoMatchTrackingProcess(formData).then(async res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
// 保存快照
|
||||
await this.saveParamJsonStr()
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
agreeNoMatchTrackingProcess(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
},
|
||||
/**
|
||||
@@ -774,18 +785,19 @@ export default {
|
||||
return
|
||||
}
|
||||
this.loading = true
|
||||
rejectNoMatchTrackingProcess(formData).then(async res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
// 保存快照
|
||||
await this.saveParamJsonStr()
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
rejectNoMatchTrackingProcess(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
},
|
||||
handleDesignEngineerNameChange (name) {
|
||||
|
||||
+136
-57
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<internal-detail-page :content-padding="0" :title="pageTitle" :loading="loading">
|
||||
<!-- 标题右侧tab -->
|
||||
<template v-slot:titleRightCustom>
|
||||
<template v-slot:titleRightCustom v-if="!isLook">
|
||||
<div class="table-operator-tab">
|
||||
<!--基础信息-->
|
||||
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
|
||||
@@ -31,7 +31,7 @@
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('processName')">
|
||||
<a-input :placeholder="$t('pleaseEnter') + $t('processName')"
|
||||
:maxLength="50"
|
||||
:disabled="processInfoDisabled"
|
||||
:disabled="processInfoDisabled || isLook"
|
||||
v-decorator="['processName', validatorRules.processName]" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -44,7 +44,7 @@
|
||||
format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD"
|
||||
v-decorator="['processDueDate']"
|
||||
:disabled="processInfoDisabled"
|
||||
:disabled="processInfoDisabled || isLook"
|
||||
style="width: 100%" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -83,7 +83,7 @@
|
||||
<a-input :placeholder="$t('pleaseEnter') + $t('processExplain')"
|
||||
:maxLength="500"
|
||||
type="textarea"
|
||||
:disabled="processInfoDisabled"
|
||||
:disabled="processInfoDisabled || isLook"
|
||||
:rows="4"
|
||||
v-decorator="['processDescription']" />
|
||||
</a-form-item>
|
||||
@@ -95,6 +95,7 @@
|
||||
v-if="comp"
|
||||
ref="projectStandardTable"
|
||||
:project-id="projectId"
|
||||
:disabled="isLook"
|
||||
:echo-data-source="currentStep === 1 ? projectDataSource : standardDataSource" />
|
||||
</keep-alive>
|
||||
|
||||
@@ -103,11 +104,11 @@
|
||||
<div class="process-part-title">{{ middlePartTitle }}</div>
|
||||
<div class="table-operator" v-if="!showExpandTable">
|
||||
<!--批量选择人员-->
|
||||
<a-button type="primary" ghost @click="batchSelector">
|
||||
<a-button type="primary" ghost @click="batchSelector" :disabled="isLook">
|
||||
{{ $t('workCenter.projectComplianceEvaluationProcess.batchSelector') }}
|
||||
</a-button>
|
||||
<!--批量删除-->
|
||||
<a-button type="primary" icon="delete" ghost @click="batchDel" v-if="isInit">
|
||||
<a-button type="primary" icon="delete" ghost @click="batchDel" v-if="isInit" :disabled="isLook">
|
||||
{{ $t('batchDelete') }}
|
||||
</a-button>
|
||||
</div>
|
||||
@@ -145,6 +146,7 @@
|
||||
:value="record.responsibleUnitLeaders"
|
||||
:placeholder="$t('pleaseSelect') + $t('workCenter.projectComplianceEvaluationProcess.responsibleUnitHead')"
|
||||
type="checkbox"
|
||||
:disabled="isLook"
|
||||
@listChange="value => handleUserChange(value, record, index, 'responsibleUnitLeaders')" />
|
||||
<div class="table-text" v-else>{{ global.emptyLine }}</div>
|
||||
</template>
|
||||
@@ -162,6 +164,7 @@
|
||||
:placeholder="$t('pleaseSelect') + $t('workCenter.standardConsultationProcess.moduleOwner')"
|
||||
type="checkbox"
|
||||
v-if="!record.notInvolved && record.canAssignFlag + '' === '1'"
|
||||
:disabled="isLook"
|
||||
@listChange="value => handleUserChange(value, record, index, 'moduleOwners')" />
|
||||
<div v-else>{{ global.emptyLine }}</div>
|
||||
</template>
|
||||
@@ -179,18 +182,19 @@
|
||||
:placeholder="$t('pleaseSelect') + $t('workCenter.standardConsultationProcess.designEngineer')"
|
||||
type="radio"
|
||||
v-if="!record.notInvolved && record.canAssignFlag + '' === '1'"
|
||||
:disabled="isLook"
|
||||
@listChange="value => handleUserChange(value, record, index, 'designEngineers')" />
|
||||
<div v-else>{{ global.emptyLine }}</div>
|
||||
</template>
|
||||
|
||||
<!--操作(删除)-->
|
||||
<template v-slot:action="{text, record}">
|
||||
<a @click="handleDelete(record.tableRowKey)">{{ $t('delete') }}</a>
|
||||
<a @click="handleDelete(record.tableRowKey)" :disabled="isLook">{{ $t('delete') }}</a>
|
||||
</template>
|
||||
|
||||
<!--操作(不涉及/不涉及原因)-->
|
||||
<template v-slot:notInvolved="{text, record}">
|
||||
<a @click="handleUninvolved(record)" :disabled="record.canAssignFlag + '' !== '1'">
|
||||
<a @click="handleUninvolved(record)" :disabled="record.canAssignFlag + '' !== '1' || isLook">
|
||||
{{
|
||||
!record.notInvolved ? $t('projectLibrary.vehicleItemLibrary.uninvolved') : $t('workCenter.projectComplianceEvaluationProcess.noCauseInvolved')
|
||||
}}
|
||||
@@ -204,7 +208,7 @@
|
||||
:columns="columns"
|
||||
:data-source="dataSource"
|
||||
:pagination="ipagination"
|
||||
:all-disabled="expandTableDisabled"
|
||||
:all-disabled="expandTableDisabled || isLook"
|
||||
form-is-depend="evaluationFeedback"
|
||||
:extra-form="extraForm"
|
||||
:scroll="{x: '100%'}"
|
||||
@@ -232,7 +236,7 @@
|
||||
:placeholder="$t('pleaseSelect') + $t('workCenter.projectComplianceEvaluationProcess.evaluationFeedback')"
|
||||
:value="record.evaluationFeedback"
|
||||
dict-code="assess_results"
|
||||
:disabled="!!record.notInvolved"
|
||||
:disabled="!!record.notInvolved || isLook"
|
||||
@change="value => handleEvaluationFeedBackChange(value, record, index)" />
|
||||
|
||||
<template v-else>
|
||||
@@ -255,6 +259,7 @@
|
||||
:label="$t('workCenter.projectComplianceEvaluationProcess.ccPerson')">
|
||||
<user-selection :placeholder="$t('pleaseSelect') + $t('workCenter.projectComplianceEvaluationProcess.ccPerson')"
|
||||
type="checkbox"
|
||||
:disabled="isLook"
|
||||
:name-str="dispatchInfo.carbonCopyPersonnels_dictText"
|
||||
v-decorator="['carbonCopyPersonnels', validatorRules.carbonCopyPersonnels]"
|
||||
@nameChange="handleCarbonCopyNameChange" />
|
||||
@@ -274,11 +279,12 @@
|
||||
:maxLength="500"
|
||||
type="textarea"
|
||||
:rows="4"
|
||||
:disabled="isLook"
|
||||
v-decorator="['handleText', validatorRules.handleText]" />
|
||||
</a-form-item>
|
||||
<!--附件-->
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('businessSupport.questionAnswer.attach')">
|
||||
<j-upload v-decorator="['handleFile']" return-id multiple />
|
||||
<j-upload v-decorator="['handleFile']" return-id multiple :disabled="isLook" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
@@ -294,7 +300,7 @@
|
||||
</div>
|
||||
|
||||
<!--底部按钮-->
|
||||
<div class="detail-page-bottom-operate-box">
|
||||
<div v-if="!isLook" class="detail-page-bottom-operate-box">
|
||||
<!--转办-->
|
||||
<a-button type="primary" :loading="loading" ghost icon="arrow-up" v-if="btnList.includes('return')" @click="handleTurnTo">
|
||||
{{ $t('turnTo') }}
|
||||
@@ -324,6 +330,16 @@
|
||||
{{ $t('reject') }}
|
||||
</a-button>
|
||||
</div>
|
||||
<div v-else class="detail-page-bottom-operate-box">
|
||||
<!--上一步-->
|
||||
<a-button type="primary" :loading="loading" ghost icon="arrow-up" v-if="btnList.includes('pre')" @click="handleLastStep">
|
||||
{{ $t('workCenter.projectComplianceEvaluationProcess.lastStep') }}
|
||||
</a-button>
|
||||
<!--下一步-->
|
||||
<a-button type="primary" :loading="loading" icon="arrow-down" v-if="btnList.includes('next')" @click="handleNextStep">
|
||||
{{ $t('workCenter.projectComplianceEvaluationProcess.nextStep') }}
|
||||
</a-button>
|
||||
</div>
|
||||
|
||||
<!--选人-->
|
||||
<user-select-modal :type="userSelectType" ref="userSelectModal" @listChange="handleBatchSelectorOk" @change="continueTransfer" />
|
||||
@@ -344,7 +360,8 @@ import {
|
||||
EvaluationResultType,
|
||||
ProcessKey,
|
||||
ProjectComplianceEvaluationProcessNode,
|
||||
StandardSource
|
||||
StandardSource,
|
||||
ProcessType
|
||||
} from '../../../enums/commonEnums'
|
||||
import JTable from '../../../components/jero/JTable'
|
||||
import ProjectTable from './components/ProjectTable'
|
||||
@@ -360,7 +377,9 @@ import {
|
||||
queryProjectComplianceEvaluation,
|
||||
processTransfer,
|
||||
agreeProjectComplianceEvaluation,
|
||||
rejectProjectComplianceEvaluation
|
||||
rejectProjectComplianceEvaluation,
|
||||
saveSnapShot,
|
||||
getLookData
|
||||
} from '../../../api/workCenter'
|
||||
import SplitClauseDetail from '../../documentTool/documentSplit/modules/SplitClauseDetail'
|
||||
import moment from 'moment'
|
||||
@@ -640,7 +659,8 @@ export default {
|
||||
},
|
||||
businessId: null,
|
||||
isTransfer: false, // 是否转办选人
|
||||
tableLoading: false
|
||||
tableLoading: false,
|
||||
isLook: false // 是否是查看
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -897,28 +917,47 @@ export default {
|
||||
}
|
||||
},
|
||||
created () {
|
||||
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
|
||||
this.currentNode = this.$route.query.nodeId || ProjectComplianceEvaluationProcessNode.initiate.value
|
||||
if (this.$route.query.isLook + '' === '1') {
|
||||
// 是查看
|
||||
this.isLook = true
|
||||
// 设置当前节点
|
||||
this.currentNode = this.$route.query.nodeId
|
||||
// 人员信息全部不可选
|
||||
this.initPersonInfoData(false)
|
||||
// 查询数据
|
||||
this.initProcessInfo()
|
||||
} else {
|
||||
this.currentNode = ProjectComplianceEvaluationProcessNode.initiate.value
|
||||
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
|
||||
this.currentNode = this.$route.query.nodeId || ProjectComplianceEvaluationProcessNode.initiate.value
|
||||
this.initProcessInfo()
|
||||
} else {
|
||||
this.currentNode = ProjectComplianceEvaluationProcessNode.initiate.value
|
||||
}
|
||||
this.getPersonInfoStructure(ProcessKey.PROJECT_COMPLIANCE_EVALUATION.value, () => {
|
||||
this.initPersonInfoData(this.currentNode === ProjectComplianceEvaluationProcessNode.initiate.value)
|
||||
})
|
||||
}
|
||||
this.getPersonInfoStructure(ProcessKey.PROJECT_COMPLIANCE_EVALUATION.value, () => {
|
||||
this.initPersonInfoData(this.currentNode === ProjectComplianceEvaluationProcessNode.initiate.value)
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
* 获取流程数据
|
||||
*/
|
||||
initProcessInfo () {
|
||||
const params = {
|
||||
draftId: this.$route.query.draftId,
|
||||
processInstanceId: this.$route.query.draftId ? null : this.$route.query.processInstanceId,
|
||||
taskId: this.$route.query.taskId
|
||||
let params = {}
|
||||
let func
|
||||
if (this.isLook) {
|
||||
params.snapshotId = this.$route.query.snapshotId
|
||||
func = getLookData
|
||||
} else {
|
||||
params = {
|
||||
draftId: this.$route.query.draftId,
|
||||
processInstanceId: this.$route.query.draftId ? null : this.$route.query.processInstanceId,
|
||||
taskId: this.$route.query.taskId
|
||||
}
|
||||
func = queryProjectComplianceEvaluation
|
||||
}
|
||||
this.loading = true
|
||||
queryProjectComplianceEvaluation(params).then(res => {
|
||||
func(params).then(res => {
|
||||
if (res.success) {
|
||||
const { result = {} } = res
|
||||
this.approvalInfo = Object.assign({}, result.basicTaskInfoDTO)
|
||||
@@ -1399,6 +1438,26 @@ export default {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
// 保存快照
|
||||
saveParamJsonStr (callback) {
|
||||
// 流程信息表单
|
||||
const processInfoForm = Object.assign(this.processInfo, this.processInfoForm.getFieldsValue())
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = Object.assign(this.approvalInfo, this.approvalInfoForm.getFieldsValue())
|
||||
const params = { ...processInfoForm, ...approvalInfoForm }
|
||||
params.infoJsonStr = JSON.stringify(this.dealSaveJsonData())
|
||||
params.taskId = this.$route.query.taskId
|
||||
params.prcType = ProcessType.PROJECT_COMPLIANCE_EVALUATION.value
|
||||
saveSnapShot(params).then(async res => {
|
||||
if (res.success) {
|
||||
callback && await callback()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 提交
|
||||
*/
|
||||
@@ -1422,20 +1481,34 @@ export default {
|
||||
formData.infoJsonStr = JSON.stringify(saveJsonObj)
|
||||
}
|
||||
submitFunc = initiateProjectComplianceEvaluation
|
||||
submitFunc(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
} else {
|
||||
submitFunc = submitProjectComplianceEvaluation
|
||||
// 保存快照后提交
|
||||
this.saveParamJsonStr(() => {
|
||||
submitFunc(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
}
|
||||
submitFunc(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 转办
|
||||
@@ -1487,16 +1560,19 @@ export default {
|
||||
return
|
||||
}
|
||||
this.loading = true
|
||||
agreeProjectComplianceEvaluation(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
// 保存快照后提交
|
||||
this.saveParamJsonStr(() => {
|
||||
agreeProjectComplianceEvaluation(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
},
|
||||
/**
|
||||
@@ -1514,16 +1590,19 @@ export default {
|
||||
return
|
||||
}
|
||||
this.loading = true
|
||||
rejectProjectComplianceEvaluation(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
// 保存快照后提交
|
||||
this.saveParamJsonStr(() => {
|
||||
rejectProjectComplianceEvaluation(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
},
|
||||
handleTableChange (pagination) {
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
<div class="process-part-title">{{ $t('project') }}</div>
|
||||
<div class="table-operator">
|
||||
<!-- 新增-->
|
||||
<a-button icon="plus" type="primary" @click="handleAdd">{{ $t('newlyAdded') }}</a-button>
|
||||
<a-button icon="plus" type="primary" @click="handleAdd" :disabled="disabled">{{ $t('newlyAdded') }}</a-button>
|
||||
<!-- 批量删除-->
|
||||
<a-button type="primary" icon="delete" ghost @click="batchDel">{{ $t('delete') }}</a-button>
|
||||
<a-button type="primary" icon="delete" ghost @click="batchDel" :disabled="disabled">{{ $t('delete') }}</a-button>
|
||||
</div>
|
||||
<div>
|
||||
<j-table
|
||||
@@ -41,6 +41,11 @@ export default {
|
||||
default: () => {
|
||||
return []
|
||||
}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data () {
|
||||
@@ -122,4 +127,4 @@ export default {
|
||||
.process-part-title:first-child {
|
||||
margin-top: 32px;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
<div class="process-part-title">{{ $t('workCenter.projectComplianceEvaluationProcess.rDComplianceList') }}</div>
|
||||
<div class="table-operator">
|
||||
<!-- 新增-->
|
||||
<a-button icon="plus" type="primary" @click="handleAdd">{{ $t('newlyAdded') }}</a-button>
|
||||
<a-button icon="plus" type="primary" @click="handleAdd" :disabled="disabled">{{ $t('newlyAdded') }}</a-button>
|
||||
<!-- 批量删除-->
|
||||
<a-button type="primary" icon="delete" ghost @click="batchDel">{{ $t('delete') }}</a-button>
|
||||
<a-button type="primary" icon="delete" ghost @click="batchDel" :disabled="disabled">{{ $t('delete') }}</a-button>
|
||||
</div>
|
||||
<div>
|
||||
<j-table
|
||||
@@ -25,6 +25,7 @@
|
||||
<a-select :placeholder="$t('pleaseSelect') + $t('workCenter.projectComplianceEvaluationProcess.salvageListSource')"
|
||||
:value="record.decompositionOrderSource"
|
||||
style="width: 100%"
|
||||
:disabled="disabled"
|
||||
@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 }}
|
||||
@@ -60,6 +61,11 @@ export default {
|
||||
default: () => {
|
||||
return []
|
||||
}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data () {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<internal-detail-page :content-padding="0" :title="pageTitle" :loading="loading">
|
||||
<!-- 标题右侧tab -->
|
||||
<template v-slot:titleRightCustom>
|
||||
<template v-slot:titleRightCustom v-if="!isLook">
|
||||
<div class="table-operator-tab">
|
||||
<!--基础信息-->
|
||||
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
|
||||
@@ -38,7 +38,7 @@
|
||||
format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD"
|
||||
v-decorator="['processDueDate']"
|
||||
:disabled="!isInitial"
|
||||
:disabled="!isInitial || isLook"
|
||||
style="width: 100%" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -48,7 +48,7 @@
|
||||
<a-input :placeholder="$t('pleaseEnter') + $t('processExplain')"
|
||||
:maxLength="500"
|
||||
type="textarea"
|
||||
:disabled="!isInitial"
|
||||
:disabled="!isInitial || isLook"
|
||||
:rows="4"
|
||||
v-decorator="['processDescription']" />
|
||||
</a-form-item>
|
||||
@@ -69,37 +69,40 @@
|
||||
<initial-basic-service-info ref="standardList"
|
||||
:selected-standard="selectedStandard"
|
||||
@source:change="handleSourceChange"
|
||||
@standard:change="handleStandardChange" />
|
||||
@standard:change="handleStandardChange"
|
||||
:disabled="isLook"/>
|
||||
<!--业务分派信息-->
|
||||
<initial-assign-table ref="termList"
|
||||
:selected-spilt-info-id="selectedSpiltInfoId"
|
||||
:selected-standard="selectedStandard"
|
||||
:display-data-source="dispatchDataSource" />
|
||||
:display-data-source="dispatchDataSource"
|
||||
:disabled="isLook"/>
|
||||
</template>
|
||||
|
||||
<!--部所主管级领导下发-->
|
||||
<depart-leader-issue-table v-if="isDepartLeaderIssue" ref="termList" :display-data-source="dispatchDataSource" />
|
||||
<depart-leader-issue-table v-if="isDepartLeaderIssue" ref="termList" :display-data-source="dispatchDataSource" :disabled="isLook" />
|
||||
|
||||
<!--模块责任人分发-->
|
||||
<module-owner-issue-table v-if="isModuleOwnerIssue" ref="termList" :display-data-source="dispatchDataSource" />
|
||||
<module-owner-issue-table v-if="isModuleOwnerIssue" ref="termList" :display-data-source="dispatchDataSource" :disabled="isLook" />
|
||||
|
||||
<!--设计工程师评估-->
|
||||
<design-engineer-assess v-if="isDesignEngineerAssess"
|
||||
ref="asyncTermList"
|
||||
:display-data-source="dispatchDataSource"
|
||||
:pre-node-user="preNodeUser" />
|
||||
:pre-node-user="preNodeUser"
|
||||
:disabled="isLook"/>
|
||||
|
||||
<!--模块负责人评审-->
|
||||
<module-owner-approve-table v-if="isModuleOwnerApprove" ref="termList" :display-data-source="dispatchDataSource" />
|
||||
|
||||
<!--部所主管级领导审批-->
|
||||
<depart-leader-approve-table v-if="isDepartLeaderApprove" ref="termList" :display-data-source="dispatchDataSource" />
|
||||
<depart-leader-approve-table v-if="isDepartLeaderApprove" ref="termList" :display-data-source="dispatchDataSource" :disabled="isLook" />
|
||||
|
||||
<!--法规工程师审批-->
|
||||
<regulatory-engineer-approval v-if="isRegulatoryEngineerApproval" ref="termList" :display-data-source="dispatchDataSource" />
|
||||
<regulatory-engineer-approval v-if="isRegulatoryEngineerApproval" ref="termList" :display-data-source="dispatchDataSource" :disabled="isLook" />
|
||||
|
||||
<!--设计工程师补充立项项目号-->
|
||||
<design-engineer-write-project v-if="isDesignEngineerWriteProject" ref="termList" :display-data-source="dispatchDataSource" />
|
||||
<design-engineer-write-project v-if="isDesignEngineerWriteProject" ref="termList" :display-data-source="dispatchDataSource" :disabled="isLook" />
|
||||
|
||||
<!--流程审批信息-->
|
||||
<div class="process-part-title">{{ $t('processApprovalInformation') }}</div>
|
||||
@@ -110,11 +113,12 @@
|
||||
:maxLength="500"
|
||||
type="textarea"
|
||||
:rows="4"
|
||||
:disabled="isLook"
|
||||
v-decorator="['handleText', validatorRules.handleText]" />
|
||||
</a-form-item>
|
||||
<!--附件-->
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('businessSupport.questionAnswer.attach')">
|
||||
<j-upload v-decorator="['handleFile']" return-id multiple />
|
||||
<j-upload v-decorator="['handleFile']" return-id multiple :disabled="isLook" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
@@ -132,7 +136,7 @@
|
||||
</div>
|
||||
|
||||
<!--底部按钮-->
|
||||
<div class="detail-page-bottom-operate-box">
|
||||
<div v-if="!isLook" class="detail-page-bottom-operate-box">
|
||||
<!--转办 审批节点存在-->
|
||||
<a-button type="primary" :loading="loading" ghost icon="arrow-up" v-if="btnList.includes('return')" @click="handleTurnTo">
|
||||
{{ $t('turnTo') }}
|
||||
@@ -165,7 +169,7 @@ import PersonnelInfo from '../../../components/PersonnelInfo'
|
||||
import InternalDetailPage from '../../../components/InternalDetailPage'
|
||||
import ProcessDetailList from '../../../components/ProcessDetailList'
|
||||
import { WorkCenterMixin } from '../../../mixins/WorkCenterMixin'
|
||||
import { ProcessKey, StandardComplianceNodes, StandardSource } from '../../../enums/commonEnums'
|
||||
import { ProcessKey, StandardComplianceNodes, StandardSource, ProcessType } from '../../../enums/commonEnums'
|
||||
import InitialBasicServiceInfo from './components/InitialBasicServiceInfo'
|
||||
import InitialAssignTable from './components/InitialAssignTable'
|
||||
import DepartLeaderIssueTable from './components/DepartLeaderIssueTable'
|
||||
@@ -182,7 +186,9 @@ import {
|
||||
queryStandardCompliance,
|
||||
processTransfer,
|
||||
agreeStandardCompliance,
|
||||
rejectStandardCompliance
|
||||
rejectStandardCompliance,
|
||||
saveSnapShot,
|
||||
getLookData
|
||||
} from '../../../api/workCenter'
|
||||
import UserSelectModal from '../../../components/selection/UserSelectModal'
|
||||
|
||||
@@ -245,7 +251,8 @@ export default {
|
||||
dispatchDataSource: [], // 业务分派信息的数据
|
||||
currentNodePrefix: null, // 判断节点的前缀
|
||||
preNodeUser: null, // 上一节点处理人
|
||||
disabledBtnClick: false
|
||||
disabledBtnClick: false,
|
||||
isLook: false // 是否是查看
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -287,29 +294,48 @@ export default {
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this.getPersonInfoStructure(ProcessKey.REGULATORY_COMPLIANCE_ASSESSMENT.value, () => {
|
||||
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
|
||||
this.currentNode = this.$route.query.nodeId || StandardComplianceNodes.initial.value
|
||||
this.initProcessData()
|
||||
if (this.$route.query.isLook + '' === '1') {
|
||||
// 是查看
|
||||
this.isLook = true
|
||||
// 设置当前节点
|
||||
this.currentNode = this.$route.query.nodeId
|
||||
// 人员信息全部不可选
|
||||
this.initPersonInfoData(false)
|
||||
// 查询数据
|
||||
this.initProcessData()
|
||||
} else {
|
||||
this.getPersonInfoStructure(ProcessKey.REGULATORY_COMPLIANCE_ASSESSMENT.value, () => {
|
||||
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
|
||||
this.currentNode = this.$route.query.nodeId || StandardComplianceNodes.initial.value
|
||||
this.initProcessData()
|
||||
|
||||
} else {
|
||||
this.currentNode = StandardComplianceNodes.initial.value
|
||||
}
|
||||
const key = StandardComplianceNodes.keyOfValueByLike(this.currentNode)
|
||||
this.btnList = StandardComplianceNodes[key].btn || []
|
||||
this.currentNodePrefix = StandardComplianceNodes[key].value
|
||||
this.initPersonInfoData()
|
||||
})
|
||||
} else {
|
||||
this.currentNode = StandardComplianceNodes.initial.value
|
||||
}
|
||||
const key = StandardComplianceNodes.keyOfValueByLike(this.currentNode)
|
||||
this.btnList = StandardComplianceNodes[key].btn || []
|
||||
this.currentNodePrefix = StandardComplianceNodes[key].value
|
||||
this.initPersonInfoData()
|
||||
})
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
initProcessData () {
|
||||
this.loading = true
|
||||
const params = {
|
||||
taskId: this.$route.query.taskId,
|
||||
processInstanceId: this.$route.query.processInstanceId,
|
||||
draftId: this.$route.query.draftId
|
||||
let params = {}
|
||||
let func
|
||||
if (this.isLook) {
|
||||
params.snapshotId = this.$route.query.snapshotId
|
||||
func = getLookData
|
||||
} else {
|
||||
params = {
|
||||
taskId: this.$route.query.taskId,
|
||||
processInstanceId: this.$route.query.processInstanceId,
|
||||
draftId: this.$route.query.draftId
|
||||
}
|
||||
func = queryStandardCompliance
|
||||
}
|
||||
queryStandardCompliance(params).then(res => {
|
||||
func(params).then(res => {
|
||||
if (res.success) {
|
||||
let { result = {} } = res
|
||||
if (result.infoJsonStr) {
|
||||
@@ -507,6 +533,27 @@ export default {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
// 保存快照
|
||||
async saveParamJsonStr (callback) {
|
||||
// 流程信息表单
|
||||
const processInfoForm = Object.assign(this.processInfo, this.processInfoForm.getFieldsValue())
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = Object.assign(this.approvalInfo, this.approvalInfoForm.getFieldsValue())
|
||||
const params = { ...processInfoForm, ...approvalInfoForm }
|
||||
const saveForm = await this.dealSaveFormData()
|
||||
params.infoJsonStr = JSON.stringify(saveForm)
|
||||
params.taskId = this.$route.query.taskId
|
||||
params.prcType = ProcessType.REGULATORY_COMPLIANCE_ASSESSMENT.value
|
||||
saveSnapShot(params).then(async res => {
|
||||
if (res.success) {
|
||||
callback && await callback()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 提交
|
||||
*/
|
||||
@@ -531,17 +578,34 @@ export default {
|
||||
submitFunc = submitStandardCompliance
|
||||
}
|
||||
this.loading = true
|
||||
submitFunc(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
if (this.currentNode.indexOf(StandardComplianceNodes.initial.value) === 0) {
|
||||
submitFunc(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
} else {
|
||||
// 保存快照后提交
|
||||
this.saveParamJsonStr(() => {
|
||||
submitFunc(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 同意
|
||||
@@ -562,16 +626,19 @@ export default {
|
||||
return
|
||||
}
|
||||
this.loading = true
|
||||
agreeStandardCompliance(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
// 保存快照后提交
|
||||
this.saveParamJsonStr(() => {
|
||||
agreeStandardCompliance(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
},
|
||||
/**
|
||||
@@ -590,16 +657,19 @@ export default {
|
||||
return
|
||||
}
|
||||
this.loading = true
|
||||
rejectStandardCompliance(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
// 保存快照后提交
|
||||
this.saveParamJsonStr(() => {
|
||||
rejectStandardCompliance(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
},
|
||||
toStandardDetail () {
|
||||
|
||||
+6
-1
@@ -15,7 +15,7 @@
|
||||
|
||||
<!--是否立项-->
|
||||
<template v-slot:projectApprovalFlag="{text,record,index}">
|
||||
<j-dict-select-tag v-model="record.projectApprovalFlag" dict-code="yn" style="width: 100%" />
|
||||
<j-dict-select-tag v-model="record.projectApprovalFlag" dict-code="yn" :disabled="disabled" style="width: 100%" />
|
||||
</template>
|
||||
|
||||
<!--条文内容-->
|
||||
@@ -54,6 +54,11 @@ export default {
|
||||
default: () => {
|
||||
return []
|
||||
}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data () {
|
||||
|
||||
+8
-2
@@ -4,7 +4,7 @@
|
||||
<div class="process-part-title">{{ $t('workCenter.dispatchInformation') }}</div>
|
||||
<div class="table-operator">
|
||||
<!--批量选择人员-->
|
||||
<a-button type="primary" @click="handleSelectPerson">
|
||||
<a-button type="primary" @click="handleSelectPerson" :disabled="disabled">
|
||||
{{ $t('workCenter.projectComplianceEvaluationProcess.batchSelector') }}
|
||||
</a-button>
|
||||
</div>
|
||||
@@ -31,6 +31,7 @@
|
||||
v-model="record.moduleOwner"
|
||||
:name-str="record.moduleOwner_dictText"
|
||||
v-if="!record.notInvolved"
|
||||
:disabled="disabled"
|
||||
:placeholder="$t('pleaseSelect') + $t('workCenter.standardCompliance.moduleOwner')"
|
||||
@nameChange="nameStr => record.moduleOwner_dictText = nameStr" />
|
||||
<div v-else>{{ global.emptyLine }}</div>
|
||||
@@ -47,7 +48,7 @@
|
||||
<!--操作-->
|
||||
<template v-slot:action="{text,record,index}">
|
||||
<div class="action-span-cell">
|
||||
<a @click="handleUninvolved(record, index)">
|
||||
<a :disabled="disabled" @click="handleUninvolved(record, index)">
|
||||
{{
|
||||
!record.notInvolved ? $t('projectLibrary.vehicleItemLibrary.uninvolved') : $t('workCenter.projectComplianceEvaluationProcess.noCauseInvolved')
|
||||
}}
|
||||
@@ -84,6 +85,11 @@ export default {
|
||||
default: () => {
|
||||
return []
|
||||
}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data () {
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
:options="resultOptions"
|
||||
style="width: 100%"
|
||||
:value="record.assessResults"
|
||||
:disabled="disabled"
|
||||
@change="value => handleEvaluationResultChange(value, record, record.dataSourceIndex)" />
|
||||
</template>
|
||||
|
||||
@@ -62,6 +63,7 @@
|
||||
prop="isRelate">
|
||||
<j-dict-select-tag v-model="record.isRelate"
|
||||
dict-code="yn"
|
||||
:disabled="disabled"
|
||||
type="radio" />
|
||||
</a-form-model-item>
|
||||
<!--不符合车型系列-->
|
||||
@@ -71,6 +73,7 @@
|
||||
prop="modelSeries"
|
||||
v-if="record.isRelate === yesValue">
|
||||
<j-multi-select-tag v-model="record.modelSeries"
|
||||
:disabled="disabled"
|
||||
dict-code="model_series" />
|
||||
</a-form-model-item>
|
||||
</template>
|
||||
@@ -80,7 +83,7 @@
|
||||
:labelCol="{span: 4}"
|
||||
:wrapperCol="{span: 18}"
|
||||
prop="description">
|
||||
<a-input type="textarea" :maxLength="500" v-model="record.description" />
|
||||
<a-input type="textarea" :maxLength="500" :disabled="disabled" v-model="record.description" />
|
||||
</a-form-model-item>
|
||||
<!--佐证材料-->
|
||||
<a-form-model-item :label="$t('projectLibrary.specialProjectLibrary.supportingMaterial')"
|
||||
@@ -90,6 +93,7 @@
|
||||
<j-upload return-id
|
||||
multiple
|
||||
v-model="record.fileId"
|
||||
:disabled="disabled"
|
||||
file-type="pdf,doc,docx,pptx,ppt,jpg,jpeg,png,xls,xlsx,bmp" />
|
||||
</a-form-model-item>
|
||||
</template>
|
||||
@@ -127,6 +131,11 @@ export default {
|
||||
type: String,
|
||||
required: false,
|
||||
default: ''
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data () {
|
||||
|
||||
+6
-1
@@ -15,7 +15,7 @@
|
||||
|
||||
<!--操作-->
|
||||
<template v-slot:action="{text, record, index}">
|
||||
<a @click="handleEdit(record)">{{ $t('edit') }}</a>
|
||||
<a @click="handleEdit(record)" :disabled="disabled">{{ $t('edit') }}</a>
|
||||
</template>
|
||||
</j-table>
|
||||
</div>
|
||||
@@ -42,6 +42,11 @@ export default {
|
||||
default: () => {
|
||||
return []
|
||||
}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data () {
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
<div class="process-part-title">{{ $t('workCenter.dispatchInformation') }}</div>
|
||||
<div class="table-operator">
|
||||
<!--批量选择人员-->
|
||||
<a-button type="primary" @click="handleSelectPerson">
|
||||
<a-button type="primary" @click="handleSelectPerson" :disabled="disabled">
|
||||
{{ $t('workCenter.projectComplianceEvaluationProcess.batchSelector') }}
|
||||
</a-button>
|
||||
<!--批量删除-->
|
||||
<a-button type="primary" ghost @click="batchDelete">
|
||||
<a-button type="primary" ghost @click="batchDelete" :disabled="disabled">
|
||||
{{ $t('batchDelete') }}
|
||||
</a-button>
|
||||
</div>
|
||||
@@ -37,6 +37,7 @@
|
||||
v-model="record.responsibleUnitLeader"
|
||||
:name-str="record.responsibleUnitLeader_dictText"
|
||||
type="checkbox"
|
||||
:disabled="disabled"
|
||||
:placeholder="$t('pleaseSelect') + $t('workCenter.standardCompliance.responsibleUnitContactPerson')"
|
||||
@nameChange="nameStr => record.responsibleUnitLeader_dictText = nameStr" />
|
||||
</template>
|
||||
@@ -52,7 +53,7 @@
|
||||
<!--操作-->
|
||||
<template v-slot:action="{text,record,index}">
|
||||
<div class="action-span-cell">
|
||||
<a :disabled="index === 0 && dataSource.length === 1" @click="handleDelete(record.rowKey)">{{ $t('delete') }}</a>
|
||||
<a :disabled="index === 0 && dataSource.length === 1 || disabled" @click="handleDelete(record.rowKey)">{{ $t('delete') }}</a>
|
||||
</div>
|
||||
</template>
|
||||
</j-table>
|
||||
@@ -97,6 +98,11 @@ export default {
|
||||
default: () => {
|
||||
return []
|
||||
}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
|
||||
+8
-2
@@ -4,11 +4,11 @@
|
||||
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
|
||||
<div class="table-operator">
|
||||
<!--添加标准-->
|
||||
<a-button type="primary" @click="handleAdd">
|
||||
<a-button type="primary" @click="handleAdd" :disabled="disabled">
|
||||
{{ $t('workCenter.standardCompliance.addStandard') }}
|
||||
</a-button>
|
||||
<!--删除-->
|
||||
<a-button type="primary" ghost @click="handleDelete">
|
||||
<a-button type="primary" ghost @click="handleDelete" :disabled="disabled">
|
||||
{{ $t('delete') }}
|
||||
</a-button>
|
||||
</div>
|
||||
@@ -36,6 +36,7 @@
|
||||
v-model="record.decompositionOrderSource"
|
||||
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
||||
style="width: 100%"
|
||||
:disabled="disabled"
|
||||
@change="value => handleSourceChange(value, record)">
|
||||
<a-select-option v-for="item in record.decompositionOrderSourceVOList"
|
||||
:key="item.value"
|
||||
@@ -71,6 +72,11 @@ export default {
|
||||
default: () => {
|
||||
return {}
|
||||
}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<div class="process-part-title">{{ $t('workCenter.dispatchInformation') }}</div>
|
||||
<div class="table-operator">
|
||||
<!--批量选择人员-->
|
||||
<a-button type="primary" @click="handleSelectPerson">
|
||||
<a-button type="primary" @click="handleSelectPerson" :disabled="disabled">
|
||||
{{ $t('workCenter.projectComplianceEvaluationProcess.batchSelector') }}
|
||||
</a-button>
|
||||
</div>
|
||||
@@ -32,6 +32,7 @@
|
||||
:name-str="record.designEngineer_dictText"
|
||||
v-if="!record.notInvolved"
|
||||
type="checkbox"
|
||||
:disabled="disabled"
|
||||
:placeholder="$t('pleaseSelect') + $t('workCenter.standardConsultationProcess.designEngineer')"
|
||||
@nameChange="nameStr => record.designEngineer_dictText = nameStr" />
|
||||
<div v-else>{{ global.emptyLine }}</div>
|
||||
@@ -48,7 +49,7 @@
|
||||
<!--操作-->
|
||||
<template v-slot:action="{text,record}">
|
||||
<div class="action-span-cell">
|
||||
<a @click="handleUninvolved(record)">{{
|
||||
<a :disabled="disabled" @click="handleUninvolved(record)">{{
|
||||
!record.notInvolved ? $t('projectLibrary.vehicleItemLibrary.uninvolved') : $t('workCenter.projectComplianceEvaluationProcess.noCauseInvolved')
|
||||
}}</a>
|
||||
</div>
|
||||
@@ -83,6 +84,11 @@ export default {
|
||||
default: () => {
|
||||
return []
|
||||
}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data () {
|
||||
|
||||
+10
-3
@@ -5,11 +5,11 @@
|
||||
<div>
|
||||
<div class="table-operator">
|
||||
<!--批量选择设计工程师-->
|
||||
<a-button type="primary" @click="handleSelectPerson('designEngineer')">
|
||||
<a-button type="primary" @click="handleSelectPerson('designEngineer')" :disabled="disabled">
|
||||
{{ $t('workCenter.standardCompliance.batchSelectDesignEngineer') }}
|
||||
</a-button>
|
||||
<!--批量选择抄送人员-->
|
||||
<a-button type="primary" @click="handleSelectPerson('carbonCopyPersonnels')">
|
||||
<a-button type="primary" @click="handleSelectPerson('carbonCopyPersonnels')" :disabled="disabled">
|
||||
{{ $t('workCenter.standardCompliance.batchSelectCCPersonnel') }}
|
||||
</a-button>
|
||||
</div>
|
||||
@@ -45,7 +45,7 @@
|
||||
|
||||
<!--是否立项-->
|
||||
<template v-slot:projectApprovalFlag="{text,record}">
|
||||
<j-dict-select-tag v-model="record.projectApprovalFlag" dict-code="yn" style="width: 100%" />
|
||||
<j-dict-select-tag v-model="record.projectApprovalFlag" dict-code="yn" :disabled="disabled" style="width: 100%" />
|
||||
</template>
|
||||
|
||||
<!--设计工程师-->
|
||||
@@ -58,6 +58,7 @@
|
||||
:placeholder="$t('pleaseSelect') + $t('workCenter.standardConsultationProcess.designEngineer')"
|
||||
style="width: 100%"
|
||||
type="radio"
|
||||
:disabled="disabled"
|
||||
@nameChange="nameStr => record.designEngineer_dictText = nameStr" />
|
||||
<div v-else>{{ global.emptyLine }}</div>
|
||||
</template>
|
||||
@@ -70,6 +71,7 @@
|
||||
:placeholder="$t('pleaseSelect') + $t('workCenter.projectComplianceEvaluationProcess.ccPerson')"
|
||||
style="width: 100%"
|
||||
type="checkbox"
|
||||
:disabled="disabled"
|
||||
@nameChange="nameStr => record.carbonCopyPersonnels_dictText = nameStr" />
|
||||
<!--<div>{{ global.emptyLine }}</div>-->
|
||||
</template>
|
||||
@@ -127,6 +129,11 @@ export default {
|
||||
default: () => {
|
||||
return []
|
||||
}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data () {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<internal-detail-page :content-padding="0" :title="pageTitle" :loading="loading">
|
||||
<!-- 标题右侧tab -->
|
||||
<template v-slot:titleRightCustom>
|
||||
<template v-slot:titleRightCustom v-if="!isLook">
|
||||
<div class="table-operator-tab">
|
||||
<!--基础信息-->
|
||||
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
|
||||
@@ -38,7 +38,7 @@
|
||||
format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD"
|
||||
v-decorator="['processDueDate']"
|
||||
:disabled="processInfoDisabled"
|
||||
:disabled="processInfoDisabled || isLook"
|
||||
style="width: 100%" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -48,7 +48,7 @@
|
||||
<a-input :placeholder="$t('pleaseEnter') + $t('processExplain')"
|
||||
:maxLength="500"
|
||||
type="textarea"
|
||||
:disabled="processInfoDisabled"
|
||||
:disabled="processInfoDisabled || isLook"
|
||||
:rows="4"
|
||||
v-decorator="['processDescription']" />
|
||||
</a-form-item>
|
||||
@@ -62,7 +62,7 @@
|
||||
<!--标准编号-->
|
||||
<a-form-item :label="$t('standardNumber')">
|
||||
<standard-selection v-decorator="['standardNumber', validatorRules.standardNumber]"
|
||||
:disabled="basicServiceInfoDisabled"
|
||||
:disabled="basicServiceInfoDisabled || isLook"
|
||||
:placeholder="$t('pleaseSelect') + $t('standardNumber')"
|
||||
:can-selected-source="[StandardSource.DOMESTIC.value]"
|
||||
type="radio"
|
||||
@@ -99,7 +99,7 @@
|
||||
<div class="form-flex-item custom-flex-form-item">
|
||||
<!--相关文件-->
|
||||
<a-form-item :label="$t('workCenter.standardConsultationProcess.relevantDocument')">
|
||||
<j-upload multiple return-id v-decorator="['relatedFile', validatorRules.relatedFile]" :disabled="basicServiceInfoDisabled" />
|
||||
<j-upload multiple return-id v-decorator="['relatedFile', validatorRules.relatedFile]" :disabled="basicServiceInfoDisabled || isLook" />
|
||||
</a-form-item>
|
||||
</div>
|
||||
<div class="form-flex-item custom-flex-form-item">
|
||||
@@ -108,7 +108,7 @@
|
||||
<j-date show-type="day"
|
||||
:placeholder="$t('pleaseSelect') + $t('workCenter.standardConsultationProcess.endDate')"
|
||||
v-decorator="['consultationDueDate', validatorRules.consultationDueDate]"
|
||||
:disabled="basicServiceInfoDisabled"
|
||||
:disabled="basicServiceInfoDisabled || isLook"
|
||||
:disabled-date="consultationDueDateDisabledDate" />
|
||||
</a-form-item>
|
||||
</div>
|
||||
@@ -128,6 +128,7 @@
|
||||
type="select"
|
||||
dict-code="sender_type"
|
||||
:triggerChange="false"
|
||||
:disabled="isLook"
|
||||
@change="handleSenderTypeChange" />
|
||||
</a-form-item>
|
||||
</div>
|
||||
@@ -139,6 +140,7 @@
|
||||
<user-selection v-decorator="['moduleOwnerId', validatorRules.moduleOwnerId]"
|
||||
:name-str="dispatchInfo.moduleOwnerId_dictText"
|
||||
type="checkbox"
|
||||
:disabled="isLook"
|
||||
:placeholder="$t('pleaseSelect') + $t('workCenter.standardConsultationProcess.moduleOwner')"
|
||||
@nameChange="handleModuleOwnerNameChange" />
|
||||
</a-form-item>
|
||||
@@ -151,6 +153,7 @@
|
||||
<user-selection v-decorator="['designEngineerId', validatorRules.designEngineerId]"
|
||||
:name-str="dispatchInfo.designEngineerId_dictText"
|
||||
type="checkbox"
|
||||
:disabled="isLook"
|
||||
:placeholder="$t('pleaseSelect') + $t('workCenter.standardConsultationProcess.designEngineer')"
|
||||
@nameChange="handleDesignEngineerNameChange" />
|
||||
</a-form-item>
|
||||
@@ -166,9 +169,9 @@
|
||||
<template v-if="currentNode.indexOf(ConsultationProcess.designEngineerFillIn.value) === 0">
|
||||
<div class="table-operator">
|
||||
<!-- 新增-->
|
||||
<a-button icon="plus" type="primary" @click="handleAdd">{{ $t('newlyAdded') }}</a-button>
|
||||
<a-button icon="plus" type="primary" :disabled="isLook" @click="handleAdd">{{ $t('newlyAdded') }}</a-button>
|
||||
<!-- 批量删除-->
|
||||
<a-button type="primary" icon="delete" ghost @click="batchDel">{{ $t('delete') }}</a-button>
|
||||
<a-button type="primary" icon="delete" ghost :disabled="isLook" @click="batchDel">{{ $t('delete') }}</a-button>
|
||||
</div>
|
||||
<div>
|
||||
<j-table
|
||||
@@ -190,7 +193,7 @@
|
||||
|
||||
<!-- 操作栏 -->
|
||||
<div slot="action" slot-scope="{record, index}" class="action-span-cell">
|
||||
<a @click="handleEdit(record, index)" class="table-ope-btn">{{ $t('edit') }}</a>
|
||||
<a @click="handleEdit(record, index)" class="table-ope-btn" :disabled="isLook">{{ $t('edit') }}</a>
|
||||
</div>
|
||||
|
||||
</j-table>
|
||||
@@ -201,7 +204,7 @@
|
||||
<template v-if="showAuditTable">
|
||||
<div class="table-operator">
|
||||
<!--批量操作,汇总节点才有的按钮-->
|
||||
<a-button type="primary" icon="delete" ghost @click="batchOperate" v-if="isSummaryNode">
|
||||
<a-button type="primary" icon="delete" ghost @click="batchOperate" v-if="isSummaryNode" :disabled="isLook">
|
||||
{{ $t('batchOperation') }}
|
||||
</a-button>
|
||||
</div>
|
||||
@@ -215,7 +218,7 @@
|
||||
:locale="tableLocale"
|
||||
:class="{'empty-no-opinion': tableEmptyShowNoOpinion}"
|
||||
:extra-form="collectExtraForm"
|
||||
:all-disabled="disabledConsultationList"
|
||||
:all-disabled="disabledConsultationList || isLook"
|
||||
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }">
|
||||
|
||||
<!--表头插槽 start-->
|
||||
@@ -238,6 +241,7 @@
|
||||
:triggerChange="false"
|
||||
class="opinion-select"
|
||||
dict-code="consultation_opinion"
|
||||
:disabled="isLook"
|
||||
:placeholder="$t('pleaseSelect') + $t('workCenter.esInspectionPlan.opinion')"
|
||||
@change="value => {handleOpinionChange(value, index, record)}" />
|
||||
</template>
|
||||
@@ -254,11 +258,12 @@
|
||||
:maxLength="500"
|
||||
type="textarea"
|
||||
:rows="4"
|
||||
:disabled="isLook"
|
||||
v-decorator="['handleText', validatorRules.handleText]" />
|
||||
</a-form-item>
|
||||
<!--附件-->
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('businessSupport.questionAnswer.attach')">
|
||||
<j-upload v-decorator="['handleFile']" return-id multiple />
|
||||
<j-upload v-decorator="['handleFile']" return-id multiple :disabled="isLook" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
@@ -275,7 +280,7 @@
|
||||
</process-detail-list>
|
||||
</div>
|
||||
|
||||
<div class="detail-page-bottom-operate-box">
|
||||
<div v-if="!isLook" class="detail-page-bottom-operate-box">
|
||||
<!--转办 审批节点存在-->
|
||||
<a-button type="primary" :loading="loading" ghost icon="arrow-up" v-if="btnList.includes('return')" @click="handleTurnTo">
|
||||
{{ $t('turnTo') }}
|
||||
@@ -314,7 +319,7 @@
|
||||
<script>
|
||||
import InternalDetailPage from '../../../components/InternalDetailPage.vue'
|
||||
import StandardSelection from '../../../components/selection/StandardSelection.vue'
|
||||
import { ConsultationProcess, SenderType, ProcessKey, StandardSource } from '../../../enums/commonEnums'
|
||||
import { ConsultationProcess, SenderType, ProcessKey, StandardSource, ProcessType } from '../../../enums/commonEnums'
|
||||
import UserSelection from '../../../components/selection/UserSelection'
|
||||
import JTable from '../../../components/jero/JTable'
|
||||
import ConsultationModal from './modules/ConsultationModal'
|
||||
@@ -332,7 +337,9 @@ import {
|
||||
submitConsultationProcess,
|
||||
transferConsultationProcess,
|
||||
agreeConsultationProcess,
|
||||
rejectConsultationProcess
|
||||
rejectConsultationProcess,
|
||||
saveSnapShot,
|
||||
getLookData
|
||||
} from '../../../api/workCenter'
|
||||
import UserSelectModal from '../../../components/selection/UserSelectModal'
|
||||
import { getFileInfo } from '../../../api/api'
|
||||
@@ -755,7 +762,8 @@ export default {
|
||||
tableEmptyShowNoOpinion: false, // 表格暂无数据文本在汇总节点显示无意见
|
||||
tableLocale: {
|
||||
emptyText: <a-empty image={Empty.PRESENTED_IMAGE_SIMPLE}><span slot="description"> {this.$t('noData')} </span></a-empty>
|
||||
}
|
||||
},
|
||||
isLook: false // 是否是查看
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -831,36 +839,55 @@ export default {
|
||||
}
|
||||
},
|
||||
created () {
|
||||
// 获取人员信息数据
|
||||
this.getPersonInfoStructure(this.processKey, () => {
|
||||
// 有流程id或者草稿id点进来的
|
||||
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
|
||||
this.currentNode = this.$route.query.nodeId || ConsultationProcess.initiate.value
|
||||
this.initPersonInfoData(this.currentNode.indexOf(ConsultationProcess.initiate.value) === 0)
|
||||
this.initProcessDetailData()
|
||||
} else {
|
||||
this.currentNode = ConsultationProcess.initiate.value
|
||||
this.initPersonInfoData(this.currentNode.indexOf(ConsultationProcess.initiate.value) === 0)
|
||||
}
|
||||
// 找不到这个节点默认使用审批节点页面及按钮,发起除外
|
||||
this.nodeEnumsKey = this.currentNode ? ConsultationProcess.keyOfValueByLike(this.currentNode) || 'regulatoryEngineerApproval' : 'initiate'
|
||||
this.currentNodePrefix = ConsultationProcess[this.nodeEnumsKey].value
|
||||
this.btnList = ConsultationProcess[this.nodeEnumsKey].btn
|
||||
})
|
||||
if (this.$route.query.isLook + '' === '1') {
|
||||
// 是查看
|
||||
this.isLook = true
|
||||
// 设置当前节点
|
||||
this.currentNode = this.$route.query.nodeId
|
||||
// 人员信息全部不可选
|
||||
this.initPersonInfoData(false)
|
||||
// 查询数据
|
||||
this.initProcessDetailData()
|
||||
} else {
|
||||
// 获取人员信息数据
|
||||
this.getPersonInfoStructure(this.processKey, () => {
|
||||
// 有流程id或者草稿id点进来的
|
||||
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
|
||||
this.currentNode = this.$route.query.nodeId || ConsultationProcess.initiate.value
|
||||
this.initPersonInfoData(this.currentNode.indexOf(ConsultationProcess.initiate.value) === 0)
|
||||
this.initProcessDetailData()
|
||||
} else {
|
||||
this.currentNode = ConsultationProcess.initiate.value
|
||||
this.initPersonInfoData(this.currentNode.indexOf(ConsultationProcess.initiate.value) === 0)
|
||||
}
|
||||
// 找不到这个节点默认使用审批节点页面及按钮,发起除外
|
||||
this.nodeEnumsKey = this.currentNode ? ConsultationProcess.keyOfValueByLike(this.currentNode) || 'regulatoryEngineerApproval' : 'initiate'
|
||||
this.currentNodePrefix = ConsultationProcess[this.nodeEnumsKey].value
|
||||
this.btnList = ConsultationProcess[this.nodeEnumsKey].btn
|
||||
})
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
initProcessDetailData () {
|
||||
this.loading = true
|
||||
const params = {
|
||||
taskId: this.$route.query.taskId,
|
||||
projectId: this.$route.query.projectId
|
||||
}
|
||||
if (this.$route.query.draftId) {
|
||||
params.draftId = this.$route.query.draftId
|
||||
let params = {}
|
||||
let func
|
||||
if (this.isLook) {
|
||||
params.snapshotId = this.$route.query.snapshotId
|
||||
func = getLookData
|
||||
} else {
|
||||
params.processInstanceId = this.$route.query.processInstanceId
|
||||
params = {
|
||||
taskId: this.$route.query.taskId,
|
||||
projectId: this.$route.query.projectId
|
||||
}
|
||||
if (this.$route.query.draftId) {
|
||||
params.draftId = this.$route.query.draftId
|
||||
} else {
|
||||
params.processInstanceId = this.$route.query.processInstanceId
|
||||
}
|
||||
func = queryConsultationProcessDetail
|
||||
}
|
||||
queryConsultationProcessDetail(params).then(async res => {
|
||||
func(params).then(async res => {
|
||||
if (res.success) {
|
||||
let result = res.result || {}
|
||||
// 草稿有数据需要从草稿里取
|
||||
@@ -1193,6 +1220,27 @@ export default {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
// 保存快照
|
||||
async saveParamJsonStr (callback) {
|
||||
// 流程信息表单
|
||||
const processInfoForm = Object.assign(this.processInfo, this.processInfoForm.getFieldsValue())
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = Object.assign(this.approvalInfo, this.approvalInfoForm.getFieldsValue())
|
||||
const params = { ...processInfoForm, ...approvalInfoForm }
|
||||
const saveForm = await this.dealFormData(true)
|
||||
params.infoJsonStr = JSON.stringify(saveForm)
|
||||
params.taskId = this.$route.query.taskId
|
||||
params.prcType = ProcessType.CONSULTATION.value
|
||||
saveSnapShot(params).then(async res => {
|
||||
if (res.success) {
|
||||
callback && await callback()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 提交
|
||||
*/
|
||||
@@ -1214,20 +1262,34 @@ export default {
|
||||
if (saveForm) {
|
||||
formData.infoJsonStr = JSON.stringify(saveForm)
|
||||
}
|
||||
func(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
} else {
|
||||
func = submitConsultationProcess
|
||||
// 保存快照后提交
|
||||
this.saveParamJsonStr(() => {
|
||||
func(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
}
|
||||
func(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 同意
|
||||
@@ -1248,16 +1310,19 @@ export default {
|
||||
}
|
||||
this.loading = true
|
||||
formData.basicTaskInfoDTO.commitFlag = 1 // 同意就传1,驳回传2,其他都为空
|
||||
agreeConsultationProcess(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
// 保存快照后提交
|
||||
this.saveParamJsonStr(() => {
|
||||
agreeConsultationProcess(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
},
|
||||
/**
|
||||
@@ -1276,16 +1341,19 @@ export default {
|
||||
}
|
||||
this.loading = true
|
||||
formData.basicTaskInfoDTO.commitFlag = 2 // 同意就传1,驳回传2,其他都为空
|
||||
rejectConsultationProcess(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
// 保存快照后提交
|
||||
this.saveParamJsonStr(() => {
|
||||
rejectConsultationProcess(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
},
|
||||
/**
|
||||
|
||||
+177
-106
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<internal-detail-page :title="pageTitle" :content-padding="0" :loading="loading">
|
||||
<!-- 标题右侧tab -->
|
||||
<template v-slot:titleRightCustom>
|
||||
<template v-slot:titleRightCustom v-if="!isLook">
|
||||
<div class="table-operator-tab">
|
||||
<!--基础信息-->
|
||||
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
|
||||
@@ -37,7 +37,7 @@
|
||||
format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD"
|
||||
v-decorator="['processDueDate']"
|
||||
:disabled="disabled"
|
||||
:disabled="disabled || isLook"
|
||||
style="width: 100%" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -47,7 +47,7 @@
|
||||
<a-input :placeholder="$t('pleaseEnter') + $t('processExplain')"
|
||||
:maxLength="500"
|
||||
type="textarea"
|
||||
:disabled="disabled"
|
||||
:disabled="disabled || isLook"
|
||||
:rows="4"
|
||||
v-decorator="['processDescription']" />
|
||||
</a-form-item>
|
||||
@@ -78,7 +78,7 @@
|
||||
<a-form-model-item class="item-model" prop="source">
|
||||
<j-dict-select-tag class="box-input"
|
||||
v-model="formInline.source"
|
||||
:disabled="disabled || disabledFieldList.includes('source') || isFromList"
|
||||
:disabled="disabled || disabledFieldList.includes('source') || isFromList || isLook"
|
||||
:placeholder="$t('pleaseSelect')+$t('standardSelect.source')"
|
||||
:type="'select'"
|
||||
:triggerChange="false"
|
||||
@@ -95,7 +95,7 @@
|
||||
<a-form-model-item class="item-model" prop="operateType">
|
||||
<j-dict-select-tag class="box-input"
|
||||
v-model="formInline.operateType"
|
||||
:disabled="disabled || disabledFieldList.includes('operateType') || isFromList"
|
||||
:disabled="disabled || disabledFieldList.includes('operateType') || isFromList || isLook"
|
||||
:placeholder="$t('pleaseSelect')+$t('log.operationType')"
|
||||
:type="'select'"
|
||||
:triggerChange="false"
|
||||
@@ -123,7 +123,7 @@
|
||||
:name-str="formInline.standard_number_temp"
|
||||
:source="formInline.source"
|
||||
:disabledSourceSearch="true"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
|
||||
type="radio"
|
||||
select-only
|
||||
:placeholder="$t('pleaseEnter')+item.dbFieldTxt"
|
||||
@@ -132,7 +132,7 @@
|
||||
<!--文本框-->
|
||||
<a-input v-else
|
||||
class="box-input"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
|
||||
v-model="formInline[item.dbFieldName]"
|
||||
:maxLength="50"
|
||||
:placeholder="specialPlaceholder[item.dbFieldName] || $t('pleaseEnter')+item.dbFieldTxt" />
|
||||
@@ -146,7 +146,7 @@
|
||||
format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD"
|
||||
v-model="formInline[item.dbFieldName]"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
|
||||
style="width: 100%" />
|
||||
<!-- 2, 单选用户 -->
|
||||
<user-selection v-else-if="item.fieldShowType === FieldType.USER_SINGLE.value"
|
||||
@@ -156,22 +156,22 @@
|
||||
@nameChange="userSelectNameChange"
|
||||
:nameStr="formInline[item.dbFieldName + '_dictText']"
|
||||
type="radio"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)" />
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook" />
|
||||
<!-- 3, 单选组织机构 -->
|
||||
<j-select-depart v-else-if="item.fieldShowType === FieldType.ORGAN_SINGLE.value"
|
||||
v-model="formInline[item.dbFieldName]"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
|
||||
:backDepart="true" />
|
||||
<!-- 4, 日期多选 -->
|
||||
<j-multiple-date-picker v-else-if="item.fieldShowType === FieldType.DATE_MORE.value"
|
||||
class="box-input"
|
||||
v-model="formInline[item.dbFieldName]"
|
||||
:fieldName="item.dbFieldName"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)" />
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook" />
|
||||
<!-- 5, 多行文本 -->
|
||||
<a-textarea v-else-if="item.fieldShowType === FieldType.TEXTAREA.value"
|
||||
:placeholder="$t('pleaseEnter')+item.dbFieldTxt"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
|
||||
:maxLength="500"
|
||||
v-model="formInline[item.dbFieldName]" :rows="4" />
|
||||
<!-- 6, 标准多选 -->
|
||||
@@ -179,13 +179,13 @@
|
||||
:placeholder="specialPlaceholder[item.dbFieldName] || $t('pleaseSelectStandard')"
|
||||
:source="getStandardSource(item)"
|
||||
:disabledSourceSearch="true"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
|
||||
:exclude-standard-numbers="excludeStandardFields.includes(item.dbFieldName) ? excludeStandardNumbers : null"
|
||||
v-model="formInline[item.dbFieldName]" />
|
||||
<!-- 7, 多选组织机构 -->
|
||||
<j-select-depart v-else-if="item.fieldShowType === FieldType.ORGAN_MORE.value"
|
||||
v-model="formInline[item.dbFieldName]"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
|
||||
:multi="true"
|
||||
:backDepart="true"
|
||||
:treeOpera="true" />
|
||||
@@ -206,7 +206,7 @@
|
||||
<!-- 9, 文本框 -->
|
||||
<a-input v-else-if="item.fieldShowType === FieldType.TEXT_BOX.value"
|
||||
class="box-input"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
|
||||
v-model="formInline[item.dbFieldName]"
|
||||
:maxLength="item.dbLength"
|
||||
:placeholder="specialPlaceholder[item.dbFieldName] || $t('pleaseEnter')+item.dbFieldTxt" />
|
||||
@@ -214,7 +214,7 @@
|
||||
<j-dict-select-tag v-else-if="item.fieldShowType === FieldType.OPTION_SINGLE.value"
|
||||
class="box-input"
|
||||
v-model="formInline[item.dbFieldName]"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
|
||||
:placeholder="$t('pleaseSelect')+item.dbFieldTxt"
|
||||
:type="'select'"
|
||||
:triggerChange="false"
|
||||
@@ -224,7 +224,7 @@
|
||||
<j-multi-select-tag v-else-if="item.fieldShowType === FieldType.OPTION_MORE.value"
|
||||
class="box-input"
|
||||
v-model="formInline[item.dbFieldName]"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
|
||||
:placeholder="$t('pleaseSelect')+item.dbFieldTxt"
|
||||
:type="'select'"
|
||||
:triggerChange="false"
|
||||
@@ -233,7 +233,7 @@
|
||||
<s-tree-select
|
||||
v-else-if="item.fieldShowType === FieldType.TREE.value"
|
||||
v-model="formInline[item.dbFieldName]"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
|
||||
:tree-data="optionsData[item.dbFieldName]"
|
||||
tree-checkable
|
||||
treeCheckStrictly
|
||||
@@ -242,7 +242,7 @@
|
||||
<!-- 14, 年份选择 -->
|
||||
<j-date v-else-if="item.fieldShowType === FieldType.YEAR_PICKER.value"
|
||||
show-type="year"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
|
||||
v-model="formInline[item.dbFieldName]"
|
||||
:default-value="defaultValue[item.dbFieldName]"
|
||||
date-format="YYYY"
|
||||
@@ -250,7 +250,7 @@
|
||||
<!-- 15, 树选择(单选) -->
|
||||
<s-tree-select v-else-if="item.fieldShowType === FieldType.TREE_SINGLE.value"
|
||||
v-model="formInline[item.dbFieldName]"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
|
||||
:tree-data="optionsData[item.dbFieldName]"
|
||||
:label-in-value="false"
|
||||
:placeholder="$t('pleaseSelect')+item.dbFieldTxt" />
|
||||
@@ -264,7 +264,7 @@
|
||||
:options-href="item.fieldHref"
|
||||
:nameStr="formInline[item.dbFieldName + '_dictText']"
|
||||
:dict-id="item.dictId"
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)" />
|
||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook" />
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</template>
|
||||
@@ -282,11 +282,12 @@
|
||||
:maxLength="500"
|
||||
type="textarea"
|
||||
:rows="4"
|
||||
:disabled="isLook"
|
||||
v-decorator="['handleText', validatorRules.handleText]" />
|
||||
</a-form-item>
|
||||
<!--附件-->
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('businessSupport.questionAnswer.attach')">
|
||||
<j-upload v-decorator="['handleFile']" return-id multiple />
|
||||
<j-upload v-decorator="['handleFile']" return-id multiple :disabled="isLook" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
@@ -298,7 +299,7 @@
|
||||
</template>
|
||||
</process-detail-list>
|
||||
</div>
|
||||
<div class="detail-page-bottom-operate-box">
|
||||
<div v-if="!isLook" class="detail-page-bottom-operate-box">
|
||||
<!--转办 审批节点存在-->
|
||||
<a-button type="primary" :loading="loading" ghost icon="arrow-up" v-if="btnList.includes('return')" @click="handleTurnTo">
|
||||
{{ $t('turnTo') }}
|
||||
@@ -321,7 +322,7 @@
|
||||
</a-button>
|
||||
</div>
|
||||
|
||||
<upload-file ref="uploadFile" @change="uploadFileChange" :return-url="false" :disabled="disabled" />
|
||||
<upload-file ref="uploadFile" @change="uploadFileChange" :return-url="false" :disabled="disabled || isLook" />
|
||||
|
||||
<!--转办选人-->
|
||||
<user-select-modal ref="userSelectModal" check-required @change="continueTurnTo" />
|
||||
@@ -337,7 +338,8 @@ import {
|
||||
StandardProperty,
|
||||
ProcessKey,
|
||||
FGEntryChangeProcessNode,
|
||||
StandardStatus
|
||||
StandardStatus,
|
||||
ProcessType
|
||||
} from '../../../enums/commonEnums.js'
|
||||
import {
|
||||
getDomesticStandardDocumentInfo,
|
||||
@@ -360,7 +362,10 @@ import {
|
||||
saveStandardECProcess,
|
||||
queryStandardECProcessData,
|
||||
turnToStandardECProcess,
|
||||
agreeStandardECProcess, rejectStandardECProcess
|
||||
agreeStandardECProcess,
|
||||
rejectStandardECProcess,
|
||||
saveSnapShot,
|
||||
getLookData, queryProcurementProcessInfo
|
||||
} from '../../../api/workCenter'
|
||||
import { WorkCenterMixin } from '../../../mixins/WorkCenterMixin'
|
||||
import STreeSelect from '../../../components/STreeSelect'
|
||||
@@ -443,7 +448,8 @@ export default {
|
||||
},
|
||||
businessId: null,
|
||||
standardGetState: null, // 标准从接口获取到数据时候的标准状态值
|
||||
disabledBtnClick: false // 防连点
|
||||
disabledBtnClick: false, // 防连点
|
||||
isLook: false // 是否是查看
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -523,53 +529,64 @@ export default {
|
||||
}
|
||||
},
|
||||
created () {
|
||||
// 获取人员信息
|
||||
this.getPersonInfoStructure(this.processKey, () => {
|
||||
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
|
||||
this.currentNode = this.$route.query.nodeId || FGEntryChangeProcessNode.initiate.value
|
||||
this.initPersonInfoData(this.currentNode === FGEntryChangeProcessNode.initiate.value)
|
||||
this.initProcessData()
|
||||
} else {
|
||||
this.currentNode = FGEntryChangeProcessNode.initiate.value
|
||||
this.initPersonInfoData(this.currentNode === FGEntryChangeProcessNode.initiate.value)
|
||||
// 处理非管理员从国内/海外标准模块进入发起页面,不可修改来源和操作类型
|
||||
if (this.$route.query.source && this.$route.query.operateType) {
|
||||
this.formInline = {
|
||||
source: this.$route.query.source,
|
||||
operateType: this.$route.query.operateType
|
||||
}
|
||||
switch (this.$route.query.source) {
|
||||
// 国内标准
|
||||
case StandardSource.DOMESTIC.value:
|
||||
this.initDomesticStandardForm()
|
||||
if (this.$route.query.standardId) {
|
||||
this.initDomesticFormData(this.$route.query.standardId)
|
||||
}
|
||||
break
|
||||
// 海外标准
|
||||
case StandardSource.OVERSEAS.value:
|
||||
this.initOverseasStandardForm()
|
||||
if (this.$route.query.standardId) {
|
||||
this.initOverseasFormData(this.$route.query.standardId)
|
||||
}
|
||||
break
|
||||
default:
|
||||
break
|
||||
}
|
||||
if (this.$route.query.isLook + '' === '1') {
|
||||
// 是查看
|
||||
this.isLook = true
|
||||
// 设置当前节点
|
||||
this.currentNode = this.$route.query.nodeId
|
||||
// 人员信息全部不可选
|
||||
this.initPersonInfoData(false)
|
||||
// 查询数据
|
||||
this.initProcessData()
|
||||
} else {
|
||||
// 获取人员信息
|
||||
this.getPersonInfoStructure(this.processKey, () => {
|
||||
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
|
||||
this.currentNode = this.$route.query.nodeId || FGEntryChangeProcessNode.initiate.value
|
||||
this.initPersonInfoData(this.currentNode === FGEntryChangeProcessNode.initiate.value)
|
||||
this.initProcessData()
|
||||
} else {
|
||||
// 默认选中国内
|
||||
this.initDomesticStandardForm()
|
||||
this.currentNode = FGEntryChangeProcessNode.initiate.value
|
||||
this.initPersonInfoData(this.currentNode === FGEntryChangeProcessNode.initiate.value)
|
||||
// 处理非管理员从国内/海外标准模块进入发起页面,不可修改来源和操作类型
|
||||
if (this.$route.query.source && this.$route.query.operateType) {
|
||||
this.formInline = {
|
||||
source: this.$route.query.source,
|
||||
operateType: this.$route.query.operateType
|
||||
}
|
||||
switch (this.$route.query.source) {
|
||||
// 国内标准
|
||||
case StandardSource.DOMESTIC.value:
|
||||
this.initDomesticStandardForm()
|
||||
if (this.$route.query.standardId) {
|
||||
this.initDomesticFormData(this.$route.query.standardId)
|
||||
}
|
||||
break
|
||||
// 海外标准
|
||||
case StandardSource.OVERSEAS.value:
|
||||
this.initOverseasStandardForm()
|
||||
if (this.$route.query.standardId) {
|
||||
this.initOverseasFormData(this.$route.query.standardId)
|
||||
}
|
||||
break
|
||||
default:
|
||||
break
|
||||
}
|
||||
} else {
|
||||
// 默认选中国内
|
||||
this.initDomesticStandardForm()
|
||||
}
|
||||
}
|
||||
}
|
||||
// 获取按钮清单
|
||||
const btnList = FGEntryChangeProcessNode.propertyOfValue('btn', this.currentNode)
|
||||
if (btnList && btnList.length > 0) {
|
||||
this.btnList = btnList
|
||||
} else {
|
||||
this.btnList = FGEntryChangeProcessNode.approve.btn
|
||||
}
|
||||
this.disabled = FGEntryChangeProcessNode.propertyOfValue('disabled', this.currentNode) || false
|
||||
})
|
||||
// 获取按钮清单
|
||||
const btnList = FGEntryChangeProcessNode.propertyOfValue('btn', this.currentNode)
|
||||
if (btnList && btnList.length > 0) {
|
||||
this.btnList = btnList
|
||||
} else {
|
||||
this.btnList = FGEntryChangeProcessNode.approve.btn
|
||||
}
|
||||
this.disabled = FGEntryChangeProcessNode.propertyOfValue('disabled', this.currentNode) || false
|
||||
})
|
||||
}
|
||||
this.getSourceOptions()
|
||||
},
|
||||
methods: {
|
||||
@@ -598,7 +615,18 @@ export default {
|
||||
initProcessData () {
|
||||
this.loading = true
|
||||
const { processInstanceId, draftId, taskId, projectId } = this.$route.query
|
||||
queryStandardECProcessData({ processInstanceId, draftId, taskId, projectId }).then(async res => {
|
||||
let params = {}
|
||||
let func
|
||||
if (this.isLook) {
|
||||
params.snapshotId = this.$route.query.snapshotId
|
||||
func = getLookData
|
||||
} else {
|
||||
params = {
|
||||
processInstanceId, draftId, taskId, projectId
|
||||
}
|
||||
func = queryStandardECProcessData
|
||||
}
|
||||
func(params).then(async res => {
|
||||
if (res.success) {
|
||||
let result = res.result || {}
|
||||
// 如果草稿中有内容,就从草稿里取值
|
||||
@@ -613,9 +641,9 @@ export default {
|
||||
// 获取对应类型的表单
|
||||
await this.handleSourceChange()
|
||||
// 处理流程信息回显
|
||||
this.processInfo = Object.assign({}, res.result.basicProcessInfoDTO || {})
|
||||
this.processInfo = Object.assign({}, res.result.basicProcessInfoDTO || result.basicProcessInfoDTO || {})
|
||||
// 处理流程审批信息
|
||||
this.approvalInfo = Object.assign({}, res.result.basicTaskInfoDTO || {})
|
||||
this.approvalInfo = Object.assign({}, res.result.basicTaskInfoDTO || result.basicTaskInfoDTO || {})
|
||||
this.$nextTick(() => {
|
||||
// 处理表单数据回显
|
||||
this.processInfoForm.setFieldsValue(this.processInfo)
|
||||
@@ -990,6 +1018,26 @@ export default {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
// 保存快照
|
||||
saveParamJsonStr (callback) {
|
||||
// 流程信息表单
|
||||
const processInfoForm = Object.assign(this.processInfo, this.processInfoForm.getFieldsValue())
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = Object.assign(this.approvalInfo, this.approvalInfoForm.getFieldsValue())
|
||||
const params = { ...processInfoForm, ...approvalInfoForm }
|
||||
params.infoJsonStr = JSON.stringify(this.dealSaveJsonData())
|
||||
params.taskId = this.$route.query.taskId
|
||||
params.prcType = ProcessType.FB_ENTRY_CHANGE.value
|
||||
saveSnapShot(params).then(async res => {
|
||||
if (res.success) {
|
||||
callback && await callback()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 提交(发起)
|
||||
*/
|
||||
@@ -1014,17 +1062,34 @@ export default {
|
||||
} else {
|
||||
submitFunc = agreeStandardECProcess
|
||||
}
|
||||
submitFunc(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
if (this.currentNode === FGEntryChangeProcessNode.initiate.value && (!this.$route.query.processInstanceId || this.$route.query.draftId)) {
|
||||
submitFunc(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
} else {
|
||||
// 保存快照后提交
|
||||
this.saveParamJsonStr(() => {
|
||||
submitFunc(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 同意
|
||||
@@ -1045,16 +1110,19 @@ export default {
|
||||
}
|
||||
formData.basicTaskInfoDTO.commitFlag = 1 // 同意就传1,驳回传2,其他都为空
|
||||
this.loading = true
|
||||
agreeStandardECProcess(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
// 保存快照后提交
|
||||
this.saveParamJsonStr(() => {
|
||||
agreeStandardECProcess(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
},
|
||||
/**
|
||||
@@ -1073,16 +1141,19 @@ export default {
|
||||
}
|
||||
formData.basicTaskInfoDTO.commitFlag = 2 // 同意就传1,驳回传2,其他都为空
|
||||
this.loading = true
|
||||
rejectStandardECProcess(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
// 保存快照后提交
|
||||
this.saveParamJsonStr(() => {
|
||||
rejectStandardECProcess(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
},
|
||||
/**
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<internal-detail-page :content-padding="0" :title="pageTitle" :loading="loading">
|
||||
<!-- 标题右侧tab -->
|
||||
<template v-slot:titleRightCustom>
|
||||
<template v-slot:titleRightCustom v-if="!isLook">
|
||||
<div class="table-operator-tab">
|
||||
<!--基础信息-->
|
||||
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
|
||||
@@ -25,7 +25,7 @@
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('processName')">
|
||||
<a-input :placeholder="$t('pleaseEnter') + $t('processName')"
|
||||
:maxLength="50"
|
||||
:disabled="processInfoDisabled"
|
||||
:disabled="processInfoDisabled || isLook"
|
||||
v-decorator="['processName', validatorRules.processName]" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -38,7 +38,7 @@
|
||||
format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD"
|
||||
v-decorator="['processDueDate']"
|
||||
:disabled="processInfoDisabled"
|
||||
:disabled="processInfoDisabled || isLook"
|
||||
style="width: 100%" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -48,7 +48,7 @@
|
||||
<a-input :placeholder="$t('pleaseEnter') + $t('processExplain')"
|
||||
:maxLength="500"
|
||||
type="textarea"
|
||||
:disabled="processInfoDisabled"
|
||||
:disabled="processInfoDisabled || isLook"
|
||||
:rows="4"
|
||||
v-decorator="['processDescription']" />
|
||||
</a-form-item>
|
||||
@@ -58,9 +58,9 @@
|
||||
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
|
||||
<div class="table-operator">
|
||||
<!-- 新增-->
|
||||
<a-button icon="plus" type="primary" @click="handleAdd" v-if="canTableOperate">{{ $t('newlyAdded') }}</a-button>
|
||||
<a-button icon="plus" type="primary" @click="handleAdd" v-if="canTableOperate && !isLook">{{ $t('newlyAdded') }}</a-button>
|
||||
<!-- 批量删除-->
|
||||
<a-button type="primary" icon="delete" ghost @click="batchDel" v-if="canTableOperate">{{ $t('batchDelete') }}</a-button>
|
||||
<a-button type="primary" icon="delete" ghost @click="batchDel" v-if="canTableOperate && !isLook">{{ $t('batchDelete') }}</a-button>
|
||||
<a-button icon="upload" type="primary" ghost @click="handleExportXls" v-if="!canTableOperate">
|
||||
{{ $t('export') }}
|
||||
</a-button>
|
||||
@@ -77,9 +77,9 @@
|
||||
:loading="loading">
|
||||
|
||||
<template v-slot:action="{text, record, index}">
|
||||
<a @click="handleEdit(record, index)">{{ $t('edit') }}</a>
|
||||
<a @click="handleEdit(record, index)" :disabled="isLook">{{ $t('edit') }}</a>
|
||||
<a-divider type="vertical" />
|
||||
<a @click="handleDelete(index)">{{ $t('delete') }}</a>
|
||||
<a @click="handleDelete(index)" :disabled="isLook">{{ $t('delete') }}</a>
|
||||
</template>
|
||||
|
||||
</j-table>
|
||||
@@ -95,6 +95,7 @@
|
||||
type="radio"
|
||||
v-decorator="['confirmEngineer', validatorRules.confirmEngineer]"
|
||||
@nameChange="userSelectNameChange"
|
||||
:disabled="isLook"
|
||||
filedName="confirmEngineer"
|
||||
:nameStr="businessFormData.confirmEngineer_dictText" />
|
||||
</a-form-item>
|
||||
@@ -110,11 +111,12 @@
|
||||
:maxLength="500"
|
||||
type="textarea"
|
||||
:rows="4"
|
||||
:disabled="isLook"
|
||||
v-decorator="['handleText', validatorRules.handleText]" />
|
||||
</a-form-item>
|
||||
<!--附件-->
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('businessSupport.questionAnswer.attach')">
|
||||
<j-upload v-decorator="['handleFile']" return-id multiple />
|
||||
<j-upload v-decorator="['handleFile']" return-id multiple :disabled="isLook" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
@@ -129,7 +131,7 @@
|
||||
</div>
|
||||
|
||||
<!--底部按钮-->
|
||||
<div class="detail-page-bottom-operate-box">
|
||||
<div v-if="!isLook" class="detail-page-bottom-operate-box">
|
||||
<!--转办 审批节点存在-->
|
||||
<a-button type="primary" :loading="loading" ghost icon="arrow-up" v-if="btnList.includes('return')" @click="handleTurnTo">
|
||||
{{ $t('turnTo') }}
|
||||
@@ -172,7 +174,7 @@ import InternalDetailPage from '../../../components/InternalDetailPage'
|
||||
import { WorkCenterMixin } from '../../../mixins/WorkCenterMixin'
|
||||
import PersonnelInfo from '../../../components/PersonnelInfo'
|
||||
import ProcessDetailList from '../../../components/ProcessDetailList'
|
||||
import { ProcessKey, ProcurementProcessNodes } from '../../../enums/commonEnums'
|
||||
import { ProcessKey, ProcurementProcessNodes, ProcessType } from '../../../enums/commonEnums'
|
||||
import JTable from '../../../components/jero/JTable'
|
||||
import TableFormModal from './modules/TableFormModal'
|
||||
import {
|
||||
@@ -182,7 +184,9 @@ import {
|
||||
agreeProcurementProcess,
|
||||
rejectProcurementProcess,
|
||||
transferProcurementProcess,
|
||||
carbonCopyProcurementProcess
|
||||
carbonCopyProcurementProcess,
|
||||
saveSnapShot,
|
||||
getLookData
|
||||
} from '../../../api/workCenter'
|
||||
import UserSelection from '../../../components/selection/UserSelection'
|
||||
import UserSelectModal from '../../../components/selection/UserSelectModal'
|
||||
@@ -271,7 +275,8 @@ export default {
|
||||
isTransfer: true, // 是否转办
|
||||
businessId: null,
|
||||
carbonCopyPersonIds: null, // 抄送选择人的id
|
||||
disabledBtnClick: false
|
||||
disabledBtnClick: false,
|
||||
isLook: false // 是否是查看
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -305,20 +310,31 @@ export default {
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this.getPersonInfoStructure(this.processKey, () => {
|
||||
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
|
||||
this.currentNode = this.$route.query.nodeId || ProcurementProcessNodes.initiate.value
|
||||
this.initPersonInfoData(this.currentNode === ProcurementProcessNodes.initiate.value)
|
||||
this.initProcessInfo()
|
||||
} else {
|
||||
this.currentNode = ProcurementProcessNodes.initiate.value
|
||||
this.initPersonInfoData(this.currentNode === ProcurementProcessNodes.initiate.value)
|
||||
}
|
||||
if (this.currentNode === ProcurementProcessNodes.initiate.value) {
|
||||
this.columns.push(this.operateColumn)
|
||||
}
|
||||
this.btnList = ProcurementProcessNodes.propertyOfValue('btn', this.currentNode)
|
||||
})
|
||||
if (this.$route.query.isLook + '' === '1') {
|
||||
// 是查看
|
||||
this.isLook = true
|
||||
// 设置当前节点
|
||||
this.currentNode = this.$route.query.nodeId
|
||||
// 人员信息全部不可选
|
||||
this.initPersonInfoData(false)
|
||||
// 查询数据
|
||||
this.initProcessInfo()
|
||||
} else {
|
||||
this.getPersonInfoStructure(this.processKey, () => {
|
||||
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
|
||||
this.currentNode = this.$route.query.nodeId || ProcurementProcessNodes.initiate.value
|
||||
this.initPersonInfoData(this.currentNode === ProcurementProcessNodes.initiate.value)
|
||||
this.initProcessInfo()
|
||||
} else {
|
||||
this.currentNode = ProcurementProcessNodes.initiate.value
|
||||
this.initPersonInfoData(this.currentNode === ProcurementProcessNodes.initiate.value)
|
||||
}
|
||||
if (this.currentNode === ProcurementProcessNodes.initiate.value) {
|
||||
this.columns.push(this.operateColumn)
|
||||
}
|
||||
this.btnList = ProcurementProcessNodes.propertyOfValue('btn', this.currentNode)
|
||||
})
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 选择用户得到用户名
|
||||
@@ -371,13 +387,21 @@ export default {
|
||||
},
|
||||
initProcessInfo () {
|
||||
this.loading = true
|
||||
const params = {
|
||||
processInstanceId: this.$route.query.processInstanceId,
|
||||
draftId: this.$route.query.draftId,
|
||||
taskId: this.$route.query.taskId,
|
||||
projectId: this.$route.query.projectId
|
||||
let params = {}
|
||||
let func
|
||||
if (this.isLook) {
|
||||
params.snapshotId = this.$route.query.snapshotId
|
||||
func = getLookData
|
||||
} else {
|
||||
params = {
|
||||
processInstanceId: this.$route.query.processInstanceId,
|
||||
draftId: this.$route.query.draftId,
|
||||
taskId: this.$route.query.taskId,
|
||||
projectId: this.$route.query.projectId
|
||||
}
|
||||
func = queryProcurementProcessInfo
|
||||
}
|
||||
queryProcurementProcessInfo(params).then(res => {
|
||||
func(params).then(res => {
|
||||
if (res.success) {
|
||||
let result = res.result || {}
|
||||
if (result.infoJsonStr) {
|
||||
@@ -480,6 +504,26 @@ export default {
|
||||
}
|
||||
return !flag ? flag : formData
|
||||
},
|
||||
// 保存快照
|
||||
saveParamJsonStr (callback) {
|
||||
// 流程信息表单
|
||||
const processInfoForm = Object.assign(this.processInfo, this.processInfoForm.getFieldsValue())
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = Object.assign(this.approvalInfo, this.approvalInfoForm.getFieldsValue())
|
||||
const params = { ...processInfoForm, ...approvalInfoForm }
|
||||
params.infoJsonStr = JSON.stringify(this.dealFormData(true))
|
||||
params.taskId = this.$route.query.taskId
|
||||
params.prcType = ProcessType.LEGAL_PROCUREMENT.value
|
||||
saveSnapShot(params).then(async res => {
|
||||
if (res.success) {
|
||||
callback && await callback()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.loading = false
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 转办
|
||||
*/
|
||||
@@ -587,17 +631,34 @@ export default {
|
||||
submitFunc = agreeProcurementProcess
|
||||
}
|
||||
this.loading = true
|
||||
submitFunc(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
if (this.currentNode === ProcurementProcessNodes.initiate.value && (!this.$route.query.processInstanceId || this.$route.query.draftId)) {
|
||||
submitFunc(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
} else {
|
||||
// 保存快照后提交
|
||||
this.saveParamJsonStr(() => {
|
||||
submitFunc(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 同意
|
||||
@@ -618,16 +679,19 @@ export default {
|
||||
}
|
||||
formData.basicTaskInfoDTO.commitFlag = 1 // 同意就传1,驳回传2,其他都为空
|
||||
this.loading = true
|
||||
agreeProcurementProcess(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
agreeProcurementProcess(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
},
|
||||
/**
|
||||
@@ -646,16 +710,19 @@ export default {
|
||||
}
|
||||
formData.basicTaskInfoDTO.commitFlag = 2 // 同意就传1,驳回传2,其他都为空
|
||||
this.loading = true
|
||||
rejectProcurementProcess(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
// 保存快照
|
||||
this.saveParamJsonStr(() => {
|
||||
rejectProcurementProcess(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.disabledBtnClick = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
})
|
||||
},
|
||||
handleExportXls () {
|
||||
|
||||
Reference in New Issue
Block a user