[update 查看详情] 标准宣贯流程
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user