[update] 权限申请流程、流程完善
This commit is contained in:
@@ -200,6 +200,18 @@ const transferInspectRectify = (params) => getAction('/process/esInspectRectifyF
|
||||
// 企标稽查整改业务数据
|
||||
const getInspectRectifyDataById = (params) => getAction('/esinspectreport/processEsInspectRectify/queryByProjectId', params)
|
||||
|
||||
/* 权限申请流程 */
|
||||
// 详情信息
|
||||
const getPermissionApplyDetail = (params) => getAction('/process/esPermissionApplyFlow/queryDetailByProjectId', params)
|
||||
// 同意
|
||||
const approvalPermissionApply = (params) => postAction('/process/esPermissionApplyFlow/flowApproval', params)
|
||||
// 驳回
|
||||
const rejectPermissionApply = (params) => postAction('/process/esPermissionApplyFlow/flowReject', params)
|
||||
// 转办
|
||||
const transferPermissionApply = (params) => getAction('/process/esPermissionApplyFlow/flowTransfer', params)
|
||||
// 权限申请流程业务数据
|
||||
const getPermissionApplyDataById = (params) => getAction('/espermissionapply/processEsPermissionApply/queryByProjectId', params)
|
||||
|
||||
// 流程中心统一转办
|
||||
const processTransfer = (params) => postAction('/workCenter/transfer', params)
|
||||
|
||||
@@ -305,6 +317,12 @@ export {
|
||||
transferInspectRectify,
|
||||
getInspectRectifyDataById,
|
||||
|
||||
getPermissionApplyDetail,
|
||||
approvalPermissionApply,
|
||||
rejectPermissionApply,
|
||||
transferPermissionApply,
|
||||
getPermissionApplyDataById,
|
||||
|
||||
processTransfer,
|
||||
|
||||
queryProjectComplianceEvaluation,
|
||||
|
||||
@@ -267,6 +267,15 @@ module.exports = {
|
||||
requestExtensionDate: '申请延期日期',
|
||||
extensionDescription: '延期说明'
|
||||
},
|
||||
// 权限申请流程
|
||||
permissionApplicationProcess: {
|
||||
esNumber: '企标编号',
|
||||
esName: '企标名称',
|
||||
authExpirationDate: '授权到期日期',
|
||||
applicationDescription: '申请说明',
|
||||
applicant: '申请人',
|
||||
applyForPermission: '申请权限'
|
||||
},
|
||||
// 项目合规评估流程
|
||||
projectCompliance: {
|
||||
vehicleItemInfo: '车型项目信息',
|
||||
@@ -279,6 +288,6 @@ module.exports = {
|
||||
preNodeProcessesPeople: '上一节点处理人',
|
||||
evaluationFeedback: '评估反馈',
|
||||
evaluator: '评估人',
|
||||
evaluationResult:'评估结果'
|
||||
evaluationResult: '评估结果'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -267,6 +267,15 @@ module.exports = {
|
||||
requestExtensionDate: '申请延期日期',
|
||||
extensionDescription: '延期说明'
|
||||
},
|
||||
// 权限申请流程
|
||||
permissionApplicationProcess: {
|
||||
esNumber: '企标编号',
|
||||
esName: '企标名称',
|
||||
authExpirationDate: '授权到期日期',
|
||||
applicationDescription: '申请说明',
|
||||
applicant: '申请人',
|
||||
applyForPermission: '申请权限'
|
||||
},
|
||||
// 项目合规评估流程
|
||||
projectCompliance: {
|
||||
vehicleItemInfo: '车型项目信息',
|
||||
@@ -279,6 +288,6 @@ module.exports = {
|
||||
preNodeProcessesPeople: '上一节点处理人',
|
||||
evaluationFeedback: '评估反馈',
|
||||
evaluator: '评估人',
|
||||
evaluationResult:'评估结果'
|
||||
evaluationResult: '评估结果'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -219,6 +219,13 @@ export const EsInspectionRectification = new EsEnums({
|
||||
directorToExamine: { text: '稽查负责人审核', value: 'responsible_approval', isMobile: true }
|
||||
})
|
||||
|
||||
// 权限申请流程
|
||||
export const PermissionApply = new EsEnums({
|
||||
initiate: { text: '发起人申请', value: 'initiator_start' },
|
||||
leaderApproval: { text: '发起人领导审批', value: 'leader_approval', isMobile: true },
|
||||
standardApproval: { text: '标准化审批', value: 'standard_approval', isMobile: true }
|
||||
})
|
||||
|
||||
// 标准征求意见流程
|
||||
export const ConsultationProcess = new EsEnums({
|
||||
initiate: { text: '法规工程师发起', value: 'engineer_start', btn: ['save', 'submit'] },
|
||||
|
||||
@@ -140,6 +140,28 @@ export default [
|
||||
},
|
||||
component: () => import('@/views/workCenter/enterpriseStandardInspectionRectification/EnterpriseStandardInspectionRectification')
|
||||
},
|
||||
// 权限申请流程
|
||||
{
|
||||
path: '/workCenter/PermissionApplicationProcess',
|
||||
name: 'PermissionApplicationProcess',
|
||||
meta: {
|
||||
hasNavBar: true,
|
||||
hasBack: true
|
||||
},
|
||||
component: () => import('@/views/workCenter/permissionApplicationProcess/permissionApplicationProcess')
|
||||
},
|
||||
// 标准宣贯流程(没有节点移动端需要显示,直接跳转noMobile)
|
||||
{
|
||||
path: '/workCenter/StandardPromotionProcess',
|
||||
name: 'StandardPromotionProcess',
|
||||
redirect: '/noMobile'
|
||||
},
|
||||
// 会后管理流程(没有节点移动端需要显示,直接跳转noMobile)
|
||||
{
|
||||
path: '/workCenter/PostMeetingManageProcess',
|
||||
name: 'PostMeetingManageProcess',
|
||||
redirect: '/noMobile'
|
||||
},
|
||||
// 项目合规评估流程
|
||||
{
|
||||
path: '/workCenter/ProjectComplianceEvaluationProcess',
|
||||
|
||||
+1
-2
@@ -290,6 +290,7 @@ export default {
|
||||
// 流程信息
|
||||
params.processAll = Object.assign({}, this.info.processAll, {
|
||||
projectId: this.projectId,
|
||||
nodeId: this.$route.query.nodeId,
|
||||
taskId: this.$route.query.taskId
|
||||
})
|
||||
|
||||
@@ -299,10 +300,8 @@ export default {
|
||||
projectId: this.projectId
|
||||
})
|
||||
}).catch(err => {
|
||||
// 验证失败滚动到验证失败的位置
|
||||
console.log(err)
|
||||
validateError = err
|
||||
this.$refs.approvalInfoForm.scrollToField(err[0].name)
|
||||
})
|
||||
|
||||
// 验证失败就返回一个错误
|
||||
|
||||
+1
-2
@@ -350,6 +350,7 @@ export default {
|
||||
// 流程信息
|
||||
params.processAll = Object.assign({}, this.info.processAll, {
|
||||
projectId: this.projectId,
|
||||
nodeId: this.$route.query.nodeId,
|
||||
taskId: this.$route.query.taskId
|
||||
})
|
||||
|
||||
@@ -359,10 +360,8 @@ export default {
|
||||
projectId: this.projectId
|
||||
})
|
||||
}).catch(err => {
|
||||
// 验证失败滚动到验证失败的位置
|
||||
console.log(err)
|
||||
validateError = err
|
||||
this.$refs.approvalInfoForm.scrollToField(err[0].name)
|
||||
})
|
||||
|
||||
// 验证失败就返回一个错误
|
||||
|
||||
-2
@@ -346,10 +346,8 @@ export default {
|
||||
projectId: this.projectId
|
||||
})
|
||||
}).catch(err => {
|
||||
// 验证失败滚动到验证失败的位置
|
||||
console.log(err)
|
||||
validateError = err
|
||||
this.$refs.approvalInfoForm.scrollToField(err[0].name)
|
||||
})
|
||||
|
||||
// 验证失败就返回一个错误
|
||||
|
||||
+1
-2
@@ -289,6 +289,7 @@ export default {
|
||||
// 流程信息
|
||||
params.processAll = Object.assign({}, this.info.processAll, {
|
||||
projectId: this.projectId,
|
||||
nodeId: this.$route.query.nodeId,
|
||||
taskId: this.$route.query.taskId
|
||||
})
|
||||
|
||||
@@ -298,10 +299,8 @@ export default {
|
||||
projectId: this.projectId
|
||||
})
|
||||
}).catch(err => {
|
||||
// 验证失败滚动到验证失败的位置
|
||||
console.log(err)
|
||||
validateError = err
|
||||
this.$refs.approvalInfoForm.scrollToField(err[0].name)
|
||||
})
|
||||
|
||||
// 验证失败就返回一个错误
|
||||
|
||||
@@ -0,0 +1,345 @@
|
||||
<template>
|
||||
<process-common-layout class="page-box" :process-key="processKey" :loading="loading">
|
||||
<template v-slot:process>
|
||||
<!-- 流程信息 -->
|
||||
<div class="process-part">
|
||||
<div class="process-part-title">{{ $t('processInformation') }}</div>
|
||||
<van-form
|
||||
ref="form"
|
||||
input-align="right"
|
||||
error-message-align="right">
|
||||
<!-- 流程名称 -->
|
||||
<van-field
|
||||
:label="$t('processName')"
|
||||
:placeholder="$t('pleaseEnter') + $t('processName')"
|
||||
readonly
|
||||
type="textarea"
|
||||
rows="1"
|
||||
autosize
|
||||
:rules="rules.prcName"
|
||||
v-model="processInfoForm.prcName"/>
|
||||
<!-- 截止日期 -->
|
||||
<calendar-field
|
||||
:label="$t('expirationDate')"
|
||||
v-model="processInfoForm.dueTime"
|
||||
readonly
|
||||
type="date"/>
|
||||
<!-- 流程说明 -->
|
||||
<van-field
|
||||
v-model="processInfoForm.prcMes"
|
||||
:label="$t('processExplain')"
|
||||
type="textarea"
|
||||
autosize
|
||||
disabled
|
||||
rows="2"
|
||||
:placeholder="$t('pleaseEnter')+$t('processExplain')"
|
||||
:border="false"
|
||||
input-align="left"
|
||||
class="vertical-form-item"/>
|
||||
</van-form>
|
||||
</div>
|
||||
<!-- 业务信息 -->
|
||||
<div class="process-part">
|
||||
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
|
||||
<!-- 申请人 -->
|
||||
<van-field
|
||||
:label="$t('permissionApplicationProcess.applicant')"
|
||||
readonly
|
||||
type="textarea"
|
||||
autosize
|
||||
rows="1"
|
||||
v-model="baseInfoForm.userDictText" />
|
||||
<a-table
|
||||
bordered
|
||||
row-key="id"
|
||||
:scroll="{x:'100%', y: '50vh'}"
|
||||
:columns="columns"
|
||||
:data-source="dataSource"
|
||||
:pagination="false"
|
||||
></a-table>
|
||||
<!-- 授权到期日期 -->
|
||||
<van-field
|
||||
:label="$t('permissionApplicationProcess.authExpirationDate')"
|
||||
readonly
|
||||
type="textarea"
|
||||
autosize
|
||||
rows="1"
|
||||
v-model="baseInfoForm.expirationDate" />
|
||||
<!-- 申请说明 -->
|
||||
<van-field
|
||||
:label="$t('permissionApplicationProcess.applicationDescription')"
|
||||
readonly
|
||||
type="textarea"
|
||||
autosize
|
||||
rows="1"
|
||||
v-model="baseInfoForm.applyDetail" />
|
||||
</div>
|
||||
<!-- 流程审批信息 -->
|
||||
<div class="process-part">
|
||||
<div class="process-part-title">{{ $t('processApprovalInformation') }}</div>
|
||||
<van-form
|
||||
ref="approvalInfoForm"
|
||||
input-align="right"
|
||||
error-message-align="right">
|
||||
<!-- 备注 -->
|
||||
<van-field
|
||||
v-model="approvalInfoForm.commitText"
|
||||
:label="$t('remark')"
|
||||
:rules="rules.commitText"
|
||||
name="commitText"
|
||||
type="textarea"
|
||||
autosize
|
||||
rows="2"
|
||||
:placeholder="$t('pleaseEnter')+$t('remark')"
|
||||
:border="false"
|
||||
input-align="left"
|
||||
class="vertical-form-item"/>
|
||||
<!--附件-->
|
||||
<z-upload v-model="approvalInfoForm.commitFile" />
|
||||
</van-form>
|
||||
</div>
|
||||
</template>
|
||||
<template v-slot:operation>
|
||||
<!-- 转办 -->
|
||||
<van-button class="operation-common-btn" @click="handleTurnTo">
|
||||
<template #icon>
|
||||
<van-icon class="iconfont" class-prefix="icon" name="xunhuan" />
|
||||
</template>
|
||||
{{ $t('turnTo') }}
|
||||
</van-button>
|
||||
<!-- 同意 -->
|
||||
<van-button class="operation-common-btn" type="primary" @click="handleAgree">
|
||||
<template #icon>
|
||||
<van-icon class="iconfont" class-prefix="icon" name="check" />
|
||||
</template>
|
||||
{{ $t('agree') }}
|
||||
</van-button>
|
||||
<!-- 驳回 -->
|
||||
<van-button class="operation-common-btn light-color-button" @click="handleReject">
|
||||
<template #icon>
|
||||
<van-icon class="iconfont" class-prefix="icon" name="close" />
|
||||
</template>
|
||||
{{ $t('reject') }}
|
||||
</van-button>
|
||||
</template>
|
||||
<select-user ref="selectUserRef" @selected-change="selectUserChange"></select-user>
|
||||
</process-common-layout>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import ProcessCommonLayout from '@/components/ProcessCommonLayout'
|
||||
import SelectUser from '@/components/SelectUser'
|
||||
import ZUpload from '@/components/ZUpload'
|
||||
import { ApprovalOpinions, PermissionApply, ProcessKey } from '@/enums/commonEnums'
|
||||
import {
|
||||
approvalPermissionApply,
|
||||
getPermissionApplyDataById,
|
||||
getPermissionApplyDetail,
|
||||
rejectPermissionApply,
|
||||
transferPermissionApply
|
||||
} from '@/api/api'
|
||||
import CalendarField from '@/components/CalendarField'
|
||||
|
||||
export default {
|
||||
name: 'permissionApplicationProcess',
|
||||
components: { CalendarField, ZUpload, SelectUser, ProcessCommonLayout },
|
||||
data () {
|
||||
return {
|
||||
// 流程加载
|
||||
loading: false,
|
||||
// 表格加载
|
||||
tableLoading: false,
|
||||
columns: [],
|
||||
dataSource: [],
|
||||
processKey: ProcessKey.PERMISSION_APPLY.value,
|
||||
rules: {
|
||||
// 备注
|
||||
commitText: [
|
||||
{ required: false, message: this.$t('pleaseEnter') + this.$t('remark') }
|
||||
]
|
||||
},
|
||||
// 获取到的流程信息
|
||||
info: {},
|
||||
// 流程信息
|
||||
processInfoForm: {},
|
||||
// 审批意见信息
|
||||
approvalInfoForm: {},
|
||||
// 业务信息
|
||||
baseInfoForm: {}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
// 当前项目id
|
||||
projectId () {
|
||||
return this.$route.query.projectId
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this.loadPage()
|
||||
},
|
||||
methods: {
|
||||
// 加载页面数据
|
||||
loadPage () {
|
||||
this.loading = true
|
||||
const { projectId, taskId } = this.$route.query
|
||||
Promise.all([
|
||||
// 获取业务数据
|
||||
getPermissionApplyDataById({ projectId }).then(res => {
|
||||
if (res.success) {
|
||||
this.baseInfoForm = res.result || {}
|
||||
console.log(this.baseInfoForm)
|
||||
}
|
||||
}).finally(() => {}),
|
||||
|
||||
// 获取流程数据
|
||||
getPermissionApplyDetail({ projectId, taskId }).then(res => {
|
||||
if (res.success) {
|
||||
const data = res.result || {}
|
||||
this.info = data
|
||||
const processAll = data.processAll || {}
|
||||
const processApprovalRecord = data.processApprovalRecord || {}
|
||||
// 回显流程信息
|
||||
this.processInfoForm = {
|
||||
prcName: processAll.prcName,
|
||||
dueTime: processAll.dueTime,
|
||||
prcMes: processAll.prcMes
|
||||
}
|
||||
// 回显审批信息
|
||||
this.approvalInfoForm = {
|
||||
commitText: processApprovalRecord.commitText,
|
||||
commitFile: processApprovalRecord.commitFile
|
||||
}
|
||||
}
|
||||
}).finally(() => {})
|
||||
]).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
// 转办
|
||||
handleTurnTo () {
|
||||
if (this.loading) return
|
||||
// 点击显示选人组件
|
||||
this.$refs.selectUserRef.open()
|
||||
},
|
||||
// 转办选完人的回调
|
||||
selectUserChange (userIds) {
|
||||
this.loading = true
|
||||
const param = {}
|
||||
param.userId = userIds
|
||||
param.taskId = this.$route.query.taskId
|
||||
transferPermissionApply(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
// 获取页面参数
|
||||
async getPageParams () {
|
||||
const params = {}
|
||||
let validateError = null
|
||||
|
||||
// 流程信息
|
||||
params.processAll = Object.assign({}, this.info.processAll, {
|
||||
projectId: this.projectId,
|
||||
nodeId: this.$route.query.nodeId,
|
||||
taskId: this.$route.query.taskId
|
||||
})
|
||||
|
||||
// 审批意见
|
||||
await this.$refs.approvalInfoForm.validate().then(() => {
|
||||
params.processApprovalRecord = Object.assign({}, this.info.processApprovalRecord, this.approvalInfoForm, {
|
||||
projectId: this.projectId
|
||||
})
|
||||
}).catch(err => {
|
||||
console.log(err)
|
||||
validateError = err
|
||||
})
|
||||
|
||||
// 验证失败就返回一个错误
|
||||
if (validateError) {
|
||||
throw new Error(validateError)
|
||||
}
|
||||
|
||||
// 其他参数
|
||||
params.map = {}
|
||||
return params
|
||||
},
|
||||
// 同意
|
||||
handleAgree () {
|
||||
if (this.loading) return
|
||||
this.loading = true
|
||||
this.rules.commitText[0].required = false
|
||||
this.getPageParams().then(params => {
|
||||
params.map.pass = true
|
||||
// 如果没有填写注释,就默认同意
|
||||
if (!params.processApprovalRecord.commitText) {
|
||||
params.processApprovalRecord.commitText = '同意'
|
||||
}
|
||||
// 审批意见
|
||||
params.processApprovalRecord.commitFlag = ApprovalOpinions.AGREE.value
|
||||
console.log(params)
|
||||
return approvalPermissionApply(params)
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.$message(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message(res.message)
|
||||
}
|
||||
}).catch((err) => {
|
||||
console.log(err)
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
// 驳回
|
||||
handleReject () {
|
||||
if (this.loading) return
|
||||
this.rules.commitText[0].required = true
|
||||
// 驳回需要填写备注
|
||||
if (!this.approvalInfoForm.commitText) {
|
||||
this.$message(this.$t('pleaseEnterRemarks'))
|
||||
}
|
||||
this.getPageParams().then(params => {
|
||||
params.map.pass = false
|
||||
// 审批意见
|
||||
params.processApprovalRecord.commitFlag = ApprovalOpinions.REJECT.value
|
||||
console.log(params)
|
||||
return rejectPermissionApply(params)
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.$message(res.message)
|
||||
this.goBack()
|
||||
} else {
|
||||
this.$message(res.message)
|
||||
}
|
||||
}).catch((err) => {
|
||||
console.log(err)
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
this.rules.commitText[0].required = false
|
||||
})
|
||||
},
|
||||
goBack () {
|
||||
// this.$router.go(-1)
|
||||
}
|
||||
},
|
||||
// 组件内路由拦截
|
||||
beforeRouteEnter (to, from, next) {
|
||||
// 如果不是移动端支持的节点,就跳转NoMobile
|
||||
if (!PermissionApply.propertyOfValue('isMobile', to.query.nodeId)) {
|
||||
next({ path: '/noMobile' })
|
||||
}
|
||||
next()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
Reference in New Issue
Block a user