[update 查看详情] 标准宣贯流程

This commit is contained in:
danshihao
2024-07-25 18:22:23 +08:00
parent 9f5c1da7e6
commit 405db914ba
2 changed files with 80 additions and 18 deletions
@@ -11,7 +11,7 @@
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('processName')">
<a-input :placeholder="$t('pleaseEnter') + $t('processName')"
:maxLength="50"
:disabled="disabled || processDisabled"
:disabled="disabled || processDisabled || disabledAll"
v-decorator="['prcName', validatorRules.processName]" />
</a-form-item>
</a-col>
@@ -20,7 +20,7 @@
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('expirationDate')">
<a-date-picker :placeholder="$t('pleaseSelect') + $t('expirationDate')"
style="width: 100%"
:disabled="disabled || processDisabled"
:disabled="disabled || processDisabled || disabledAll"
value-format="YYYY-MM-DD hh:mm:ss"
v-decorator="['dueTime']" />
</a-form-item>
@@ -31,7 +31,7 @@
<a-textarea :placeholder="$t('pleaseEnter') + $t('processExplain')"
:maxLength="500"
:rows="4"
:disabled="disabled || processDisabled"
:disabled="disabled || processDisabled || disabledAll"
v-decorator="['prcMes']" />
</a-form-item>
</a-col>
@@ -40,7 +40,7 @@
<!-- 业务基本信息 -->
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
<base-info-form :disabled="disabled" ref="baseInfoForm"/>
<base-info-form :disabled="disabled" :disabled-all="disabledAll" ref="baseInfoForm"/>
<!-- 流程审批信息 -->
<div class="process-part-title">{{ $t('processApprovalInformation') }}</div>
@@ -50,16 +50,17 @@
<a-textarea :placeholder="$t('pleaseEnter') + $t('remarks')"
:maxLength="500"
:rows="4"
:disabled="disabledAll"
v-decorator="['commitText', validatorRules.remarks]" />
</a-form-item>
<!--附件-->
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('businessSupport.questionAnswer.attach')">
<j-upload v-decorator="['commitFile']" return-id multiple />
<j-upload v-decorator="['commitFile']" return-id multiple :disabled="disabledAll" />
</a-form-item>
</a-form>
</div>
<div class="detail-page-bottom-operate-box">
<div class="detail-page-bottom-operate-box" v-if="!disabledAll">
<!--取消-->
<a-button v-if="btn.includes('cancel')" type="primary" :loading="loading" ghost @click="handleCancel">{{ $t('cancel') }}</a-button>
<!--保存-->
@@ -76,6 +77,7 @@ import InternalDetailPage from '@comp/InternalDetailPage'
import BaseInfoForm from '@views/workCenter/standardPromotionProcess/modules/BaseInfoForm'
import { ProcessKey, StandardPromotion } from '@/enums/commonEnums'
import {
getLookData,
getStandardPromotionDataById, getStandardPromotionDetail,
getStandardPromotionProjectId,
saveStandardPromotion,
@@ -89,6 +91,7 @@ export default {
return {
loading: false,
switchValue: 'base',
disabledAll: false, // 禁用全部
labelCol: {
xs: { span: 24 },
sm: { span: 4 }
@@ -169,7 +172,8 @@ export default {
// standardApproval
},
created () {
const { projectId, nodeId, taskName } = this.$route.query
const { projectId, nodeId, taskName, isLook } = this.$route.query
this.disabledAll = isLook === '1'
// 发起、草稿进来没有nodeId,就默认发起节点
this.currentNode = nodeId || StandardPromotion.initiate.value
this.currentNodeName = taskName || StandardPromotion.initiate.text
@@ -180,6 +184,11 @@ export default {
// 提交按钮
this.btn = ['submit']
}
// 快照回显
if (this.$route.query.snapshotId) {
this.loadSnapshotPage()
return
}
// 如果是待办进来,就获取详情数据
if (this.$route.query.projectId) {
this.loadPage()
@@ -273,6 +282,8 @@ export default {
this.$refs.baseInfoForm.getData()
]
}
// 保存一下所有表单收集的数据用于快照回显
params.formDataList = formDataList
// 开始处理信息
// 流程信息
@@ -298,8 +309,47 @@ export default {
projectId: this.projectId,
id: this.formInfo.id
})
// 发起保存草稿信息
if (this.isInitiate) {
params.infoJsonStr = JSON.stringify({
// 将流程数据保存json,后续进行快照回显
prcData: params
})
}
return params
},
// 回显快照页面
loadSnapshotPage () {
const { snapshotId } = this.$route.query
if (!snapshotId) {
return
}
this.loading = true
getLookData({ snapshotId }).then(res => {
const result = res.result || {}
const jsonData = JSON.parse(result.infoJsonStr || '{}')
const prcData = jsonData.prcData || {}
this.info = prcData
// 保存并回显表单信息
this.formInfo = prcData.processEsDeclare
this.$nextTick(() => {
this.$refs.baseInfoForm.initData(prcData.processEsDeclare)
})
this.processInfoForm && this.processInfoForm.setFieldsValue({
prcName: prcData.processAll.prcName,
dueTime: prcData.processAll.dueTime,
prcMes: prcData.processAll.prcMes
})
this.approvalInfoForm && this.approvalInfoForm.setFieldsValue({
commitText: prcData.processApprovalRecord.commitText,
commitFile: prcData.processApprovalRecord.commitFile
})
}).finally(() => {
this.loading = false
})
},
/**
* 保存
*/
@@ -11,7 +11,7 @@
</span>
</div>
<a-form-model-item class="item-model" prop="emergencyDegree">
<j-dict-select-tag :disabled="disabled"
<j-dict-select-tag :disabled="disabled || disabledAll"
v-model="formInline.emergencyDegree"
:placeholder="$t('pleaseSelect')+$t('workCenter.standardPromotionProcess.urgency')"
:triggerChange="false"
@@ -30,7 +30,7 @@
<a-form-model-item class="item-model" prop="standardNo">
<standard-selection :source="StandardSource.ENTERPRISE.value" type="radio"
:disabledSourceSearch="true"
:disabled="disabled"
:disabled="disabled || disabledAll"
:placeholder="$t('pleaseSelect')+$t('workCenter.standardPromotionProcess.esNumber')"
@nameChange="changeStandardName"
v-model="formInline.standardNo" />
@@ -61,8 +61,9 @@
<a-form-model-item class="item-model" prop="declareUser">
<user-selection :placeholder="$t('pleaseSelect')+$t('workCenter.standardPromotionProcess.promoter')"
v-model="formInline.declareUser"
@nameChange="(name) => nameChange('declareUserDictText', name)"
:name-str="formInline.declareUserDictText"
:disabled="disabled"
:disabled="disabled || disabledAll"
type="radio" />
</a-form-model-item>
</div>
@@ -78,6 +79,7 @@
<a-input v-model="formInline.mainDepart"
@change="event => formInline.mainDepart = event.target.value"
:maxLength="50"
:disabled="disabledAll"
:placeholder="$t('pleaseEnter')+$t('workCenter.standardPromotionProcess.mainDeliveryDepart')" />
</a-form-model-item>
</div>
@@ -93,6 +95,7 @@
<a-input v-model="formInline.declareTopic"
@change="event => formInline.declareTopic = event.target.value"
:maxLength="50"
:disabled="disabledAll"
:placeholder="$t('pleaseEnter')+$t('workCenter.standardPromotionProcess.subject')" />
</a-form-model-item>
</div>
@@ -105,7 +108,7 @@
</span>
</div>
<a-form-model-item class="item-model" prop="declareDate">
<j-date date-format="YYYY-MM-DD" style="width: 100%" showType="day" :disabled="disabled"
<j-date date-format="YYYY-MM-DD" style="width: 100%" showType="day" :disabled="disabled || disabledAll"
:placeholder="$t('pleaseSelect') + $t('workCenter.standardPromotionProcess.promotionDate')"
v-model="formInline.declareDate" />
</a-form-model-item>
@@ -120,7 +123,7 @@
</div>
<a-form-model-item class="item-model" prop="attendUnit">
<j-select-depart
:disabled="disabled"
:disabled="disabled || disabledAll"
v-model="formInline.attendUnit"
:multi="true"
:placeholder="$t('pleaseSelect') + $t('workCenter.standardPromotionProcess.participatingUnits')"
@@ -140,7 +143,9 @@
</div>
<a-form-model-item class="item-model" prop="initiator">
<user-selection :placeholder="$t('pleaseEnter')+$t('workCenter.standardPromotionProcess.contactPerson')"
type="checkbox" :nameStr="initiatorName"
@nameChange="(name) => nameChange('initiatorDictText', name)"
type="checkbox" :nameStr="formInline.initiatorDictText"
:disabled="disabledAll"
v-model="formInline.initiator" />
</a-form-model-item>
</div>
@@ -156,6 +161,7 @@
<a-textarea :maxLength="500"
:placeholder="$t('pleaseSelect')+$t('workCenter.standardPromotionProcess.content')"
:rows="4"
:disabled="disabledAll"
v-model="formInline.declareContent" />
</a-form-model-item>
</div>
@@ -179,7 +185,7 @@
</div>
</div>
<!-- 上传 -->
<upload-file ref="uploadFile" @change="uploadFileChange" :return-url="false" :disabled="disabled"></upload-file>
<upload-file ref="uploadFile" @change="uploadFileChange" :return-url="false" :disabled="disabled || disabledAll"></upload-file>
</a-form-model>
</template>
@@ -197,6 +203,12 @@ export default {
type: Boolean,
required: false,
default: false
},
// 查看,禁用全部表单
disabledAll: {
type: Boolean,
required: false,
default: false
}
},
data () {
@@ -207,8 +219,6 @@ export default {
model: {},
// 操作类型
operationType: null,
// 联络人名字
initiatorName: '',
// 是否禁用联络人
disabledInitiator: true,
rules: {
@@ -303,7 +313,6 @@ export default {
this.formInline = {
...data
}
this.initiatorName = data.initiatorDictText
},
// 外层要获取数据
getData () {
@@ -352,7 +361,7 @@ export default {
const names = data.map(item => item.contactIdDictText).join(',')
// 如果是清空,设置禁用,否则根据返回内容设置禁用
this.disabledInitiator = val ? !!ids : true
this.initiatorName = names
this.formInline.initiatorDictText = names
this.$set(this.formInline, 'initiator', ids)
// 如果接口有回显,就去掉校验信息
if (ids) {
@@ -360,6 +369,9 @@ export default {
}
}
})
},
nameChange (field, name) {
this.formInline[field] = name
}
}
}