[add] 年度制修订计划主动上报

This commit is contained in:
lideqin
2023-12-12 16:16:53 +08:00
parent b3ed2f4bf5
commit cd01e500f7
7 changed files with 474 additions and 75 deletions
+15
View File
@@ -70,6 +70,16 @@ const enterprisePlanApprovalTurnTo = (params) => postAction('/process/es/initCha
// 保存
const enterprisePlanApprovalSave = (params) => postAction('/process/es/initChange/save', params)
// 年度制修订计划(各部门主动上报)
// 根据流程id获取流程信息
const activelyReportGetDataById = (taskId, params) => getAction(`/process/es/annualReport/handle/${taskId}`, params)
// 转办
const activelyReportTurnTo = (params) => postAction('/process/es/annualReport/transfer', params)
// 同意
const activelyReportAgree = (params) => postAction('/process/es/annualReport/agree', params)
// 拒绝
const activelyReportReject = (params) => postAction('/process/es/annualReport/reject', params)
// 企标复审流程
// 保存
const enStandardRecheckSave = (params) => postAction('/process/es/recheck/save', params)
@@ -201,6 +211,11 @@ export {
enterprisePlanApprovalTurnTo,
enterprisePlanApprovalSave,
activelyReportGetDataById,
activelyReportTurnTo,
activelyReportAgree,
activelyReportReject,
enStandardRecheckSave,
enStandardRecheckTurnTo,
enStandardRecheckAgree,
+21
View File
@@ -103,6 +103,27 @@ module.exports = {
superintendent: '所长',
relatedPersonnel: '相关人员'
},
// 年度制修订计划(各部门主动上报)
revisionPlanActivelyReport: {
revisionPlanDesc: '制修订计划说明',
revisionType: '制修订类型',
oldEnterpriseStandardNum: '原企标编号',
newEnterpriseStandardNum: '新企标编号',
oldEnterpriseStandardName: '原企标名称',
newEnterpriseStandardName: '新企标名称',
authDepartment: '授权部门',
enterpriseStandardCode: '企业标准代号',
suitUnit: '配合单位',
principalDrafter: '主起草人',
mainDraftingUnit: '主起草单位',
headOfMainDraftingUnit: '主起草单位负责人',
affiliatedWorkingGroup: '隶属工作组',
standardPusher: '标准推进人',
draftPlanFinishDate: '草稿计划完成日期',
exposureDraftPlanFinishDate: '征求意见稿计划完成日期',
planSubmissionDate: '计划报批日期',
changeState: '变更状态'
},
// 企标复审流程
esRecheck: {
recheckDate: '复审日期',
+21
View File
@@ -103,6 +103,27 @@ module.exports = {
superintendent: '所长',
relatedPersonnel: '相关人员'
},
// 年度制修订计划(各部门主动上报)
revisionPlanActivelyReport: {
revisionPlanDesc: '制修订计划说明',
revisionType: '制修订类型',
oldEnterpriseStandardNum: '原企标编号',
newEnterpriseStandardNum: '新企标编号',
oldEnterpriseStandardName: '原企标名称',
newEnterpriseStandardName: '新企标名称',
authDepartment: '授权部门',
enterpriseStandardCode: '企业标准代号',
suitUnit: '配合单位',
principalDrafter: '主起草人',
mainDraftingUnit: '主起草单位',
headOfMainDraftingUnit: '主起草单位负责人',
affiliatedWorkingGroup: '隶属工作组',
standardPusher: '标准推进人',
draftPlanFinishDate: '草稿计划完成日期',
exposureDraftPlanFinishDate: '征求意见稿计划完成日期',
planSubmissionDate: '计划报批日期',
changeState: '变更状态'
},
// 企标复审流程
esRecheck: {
recheckDate: '复审日期',
+15 -5
View File
@@ -4,7 +4,17 @@ export default [
name: 'EnterpriseStandardInitChange',
component: (resolve) => require(['@/views/workCenter/enterpriseStandardInitChange/EnterpriseStandardInitChange.vue'], resolve),
meta: {
title: '企标计划立项/变更流程',
// title: '企标计划立项/变更流程',
hasNavBar: true, // 这个属性控制页面是否显示上面的导航栏
hasBack: true // 这个属性控制页面上面的导航栏 是否有返回按钮
}
},
{
path: '/workCenter/annualRevisionPlanActivelyReport',
name: 'AnnualRevisionPlanActivelyReport',
component: (resolve) => require(['@/views/workCenter/annualRevisionPlanActivelyReport/AnnualRevisionPlanActivelyReport.vue'], resolve),
meta: {
// title: '年度制修订计划(各部门主动上报)',
hasNavBar: true, // 这个属性控制页面是否显示上面的导航栏
hasBack: true // 这个属性控制页面上面的导航栏 是否有返回按钮
}
@@ -14,7 +24,7 @@ export default [
name: 'EnterpriseStandardRecheck',
component: (resolve) => require(['@/views/workCenter/enterpriseStandardRecheck/EnterpriseStandardRecheck.vue'], resolve),
meta: {
title: '企标复审流程',
// title: '企标复审流程',
hasNavBar: true, // 这个属性控制页面是否显示上面的导航栏
hasBack: true // 这个属性控制页面上面的导航栏 是否有返回按钮
}
@@ -24,7 +34,7 @@ export default [
name: 'EnterpriseStandardAnnul',
component: (resolve) => require(['@/views/workCenter/enterpriseStandardAnnul/EnterpriseStandardAnnul.vue'], resolve),
meta: {
title: '企标废止流程',
// title: '企标废止流程',
hasNavBar: true, // 这个属性控制页面是否显示上面的导航栏
hasBack: true // 这个属性控制页面上面的导航栏 是否有返回按钮
}
@@ -34,7 +44,7 @@ export default [
name: 'EnterpriseStandardSealSave',
component: (resolve) => require(['@/views/workCenter/enterpriseStandardSealSave/EnterpriseStandardSealSave.vue'], resolve),
meta: {
title: '企标封存流程',
// title: '企标封存流程',
hasNavBar: true, // 这个属性控制页面是否显示上面的导航栏
hasBack: true // 这个属性控制页面上面的导航栏 是否有返回按钮
}
@@ -44,7 +54,7 @@ export default [
name: 'EnterpriseStandardStartUse',
component: (resolve) => require(['@/views/workCenter/enterpriseStandardStartUse/EnterpriseStandardStartUse.vue'], resolve),
meta: {
title: '已封存企标启用流程',
// title: '已封存企标启用流程',
hasNavBar: true, // 这个属性控制页面是否显示上面的导航栏
hasBack: true // 这个属性控制页面上面的导航栏 是否有返回按钮
}
-64
View File
@@ -5,11 +5,6 @@
<van-button type="info" @click="logout">退出登录</van-button>
<van-button type="info" @click="toMyTodo" style="margin-left: 0.1rem">我的待办</van-button>
<br>
<van-button type="primary" @click="goEnterpriseStandardInitChange">跳转企标计划立项变更流程审批</van-button>
<van-button type="danger" @click="goESRecheck">跳转企标复审流程</van-button>
<van-button type="primary" @click="goESAnnul">跳转企标废止流程</van-button>
<van-button type="danger" @click="goESSealSave">跳转企标封存流程</van-button>
<van-button type="primary" @click="goESStartUse">跳转已封存企标启用流程</van-button>
</div>
</template>
@@ -22,65 +17,6 @@ export default {
toMyTodo () {
this.$router.push({ path: '/myTodo' })
},
goEnterpriseStandardInitChange () {
this.$router.push({
path: '/workCenter/enterpriseStandardInitChange',
query: {
// processInstanceId: '392773',
// taskId: '435061'
// 完成时间变更
// processInstanceId: '435062',
// taskId: '435106'
// 工作终止变更
// processInstanceId: '435107',
// taskId: '435135'
// 责任部门变更
processInstanceId: '447619',
taskId: '475241',
nodeId: 'sid-AB70F1CA-8311-4639-B3DA-204EF3332B29'
}
})
},
goESRecheck () {
this.$router.push({
path: '/workCenter/enterpriseStandardRecheck',
query: {
processInstanceId: '580001',
taskId: '580037',
nodeId: 'sid-72303DAD-0B49-471B-828E-66602468BE44'
}
})
},
goESAnnul () {
this.$router.push({
path: '/workCenter/enterpriseStandardAnnul',
query: {
processInstanceId: '447681',
taskId: '492542',
nodeId: 'sid-9C90582D-F71F-4516-B54F-1E9F896C30D8'
}
})
},
goESSealSave () {
this.$router.push({
path: '/workCenter/enterpriseStandardSealSave',
query: {
processInstanceId: '467582',
taskId: '492547',
nodeId: 'sid-9C90582D-F71F-4516-B54F-1E9F896C30D8'
}
})
},
goESStartUse () {
this.$router.push({
path: '/workCenter/enterpriseStandardStartUse',
query: {
processInstanceId: '467650',
taskId: '492552',
nodeId: 'sid-9C90582D-F71F-4516-B54F-1E9F896C30D8'
}
})
},
...mapActions(['Logout']),
logout () {
const that = this
+6 -6
View File
@@ -64,11 +64,11 @@ export default {
break
// 企标立项、变更计划
case '7':
path = '/workCenter/enterpriseStandardInitChange/planApprovalChangeFlow'
path = '/workCenter/enterpriseStandardInitChange'
break
// 年度制修订计划(各部门主动上报)
case '8':
path = '/workCenter/annualRevisionPlanActivelyReport/revisionPlanActivelyReportFlow'
path = '/workCenter/annualRevisionPlanActivelyReport'
break
// 年度制修订计划(标准化发起)
case '9':
@@ -84,19 +84,19 @@ export default {
break
// 企标复审流程
case '12':
path = '/workCenter/enterpriseStandardRecheck/enterpriseStandardRecheckFlow'
path = '/workCenter/enterpriseStandardRecheck'
break
// 企标废止流程
case '13':
path = '/workCenter/enterpriseStandardAnnul/enterpriseStandardAnnulFlow'
path = '/workCenter/enterpriseStandardAnnul'
break
// 企标封存流程
case '14':
path = '/workCenter/enterpriseStandardSealSave/enterpriseStandardSealSaveFlow'
path = '/workCenter/enterpriseStandardSealSave'
break
// 已封存企标启用流程
case '15':
path = '/workCenter/enterpriseStandardStartUse/enterpriseStandardStartUseFlow'
path = '/workCenter/enterpriseStandardStartUse'
break
// 企标稽查计划
case '16':
@@ -0,0 +1,396 @@
<template>
<process-common-layout class="page-box" :processKey="ProcessKey.ES_ANNUAL_REPORT.value" :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"
:readonly="readonly"
>
<!-- 流程名称 -->
<van-field
:label="$t('processName')"
:placeholder="$t('pleaseEnter') + $t('processName')"
readonly
type="textarea"
rows="1"
autosize
v-model="processInfoForm.prcName" />
<!-- 截止日期 -->
<calendar-field
:label="$t('expirationDate')"
v-model="processInfoForm.dueTime"
type="date"
readonly
/>
<!-- 流程说明 -->
<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-field
v-model="processInfoForm.processDescription"
:label="$t('revisionPlanActivelyReport.revisionPlanDesc')"
type="textarea"
autosize
disabled
rows="2"
:placeholder="$t('pleaseEnter')+$t('revisionPlanActivelyReport.revisionPlanDesc')"
:border="false"
input-align="left"
class="vertical-form-item"/>
</van-form>
</div>
<van-form
ref="baseInfoFormRef"
input-align="right"
error-message-align="right"
:readonly="readonly"
>
<!-- 业务基本信息 -->
<div class="process-part">
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
<a-table
bordered
:scroll="{x: '100%'}"
ref="table"
rowKey="espId"
:columns="columns"
:dataSource="baseInfoForm"
:pagination="false">
</a-table>
</div>
</van-form>
<!-- 流程审批信息 -->
<div class="process-part">
<div class="process-part-title">{{ $t('processApprovalInformation') }}</div>
<van-form
ref="processForm"
input-align="right"
error-message-align="right"
:readonly="readonly">
<!-- 备注 -->
<van-field
v-model="processInfoForm.commitText"
:rules="processInfoRules.commitText"
:label="$t('remark')"
name="commitText"
type="textarea"
autosize
rows="2"
:placeholder="$t('pleaseEnter')+$t('remark')"
:border="false"
input-align="left"
class="vertical-form-item"/>
</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 { ProcessKey } from '@/enums/commonEnums'
import CalendarField from '@/components/CalendarField'
import SelectUser from '@/components/SelectUser'
import {
activelyReportGetDataById,
activelyReportTurnTo,
activelyReportAgree,
activelyReportReject
} from '@/api/api'
export default {
name: 'AnnualRevisionPlanActivelyReport',
components: {
ProcessCommonLayout,
CalendarField,
SelectUser
},
data () {
return {
ProcessKey,
readonly: false,
loading: false,
processInfoForm: {}, // 流程信息表单
// 流程信息校验
processInfoRules: {
commitText: [
{ required: false, message: this.$t('pleaseEnter') + this.$t('remark') }
]
},
columns: [
{
title: this.$t('serialNumber'),
dataIndex: '',
key: 'rowIndex',
align: 'center',
width: 80,
customRender: function (t, r, index) {
return parseInt(index) + 1
}
},
{ // 制修订类型
title: this.$t('revisionPlanActivelyReport.revisionType'),
align: 'center',
width: 180,
dataIndex: 'projectType_dictText',
scopedSlots: { customRender: 'text' }
},
{ // 原企标编号
title: this.$t('revisionPlanActivelyReport.oldEnterpriseStandardNum'),
align: 'center',
width: 180,
dataIndex: 'originEnStandardNo',
scopedSlots: { customRender: 'toDetailOld' }
},
{ // 新企标编号
title: this.$t('revisionPlanActivelyReport.newEnterpriseStandardNum'),
align: 'center',
width: 180,
dataIndex: 'newEnStandardNo',
scopedSlots: { customRender: 'toDetailNew' }
},
{ // 原企标名称
title: this.$t('revisionPlanActivelyReport.oldEnterpriseStandardName'),
align: 'center',
width: 180,
dataIndex: 'originEnStandardName',
scopedSlots: { customRender: 'toDetailOld' }
},
{ // 新企标名称
title: this.$t('revisionPlanActivelyReport.newEnterpriseStandardName'),
align: 'center',
width: 180,
dataIndex: 'newEnStandardName',
scopedSlots: { customRender: 'toDetailNew' }
},
{ // 授权部门
title: this.$t('revisionPlanActivelyReport.authDepartment'),
align: 'center',
width: 180,
dataIndex: 'authDept_dictText',
scopedSlots: { customRender: 'text' }
},
{ // 企业标准代号
title: this.$t('revisionPlanActivelyReport.enterpriseStandardCode'),
align: 'center',
width: 180,
dataIndex: 'enStandardCode_dictText',
scopedSlots: { customRender: 'text' }
},
{ // 配合单位
title: this.$t('revisionPlanActivelyReport.suitUnit'),
align: 'center',
width: 180,
dataIndex: 'cooperationUnit_dictText',
scopedSlots: { customRender: 'text' }
},
// { // 主起草人
// title: this.$t('revisionPlanActivelyReport.principalDrafter'),
// align: 'center',
// width: 180,
// dataIndex: 'mainDraftingUser_dictText',
// scopedSlots: { customRender: 'text' }
// },
{ // 主起草单位
title: this.$t('revisionPlanActivelyReport.mainDraftingUnit'),
align: 'center',
width: 180,
dataIndex: 'mainDraftingUnit_dictText',
scopedSlots: { customRender: 'text' }
},
{ // 主起草单位负责人
title: this.$t('revisionPlanActivelyReport.headOfMainDraftingUnit'),
align: 'center',
width: 180,
dataIndex: 'mainDraftingUnitResponsiblePerson_dictText',
scopedSlots: { customRender: 'text' }
},
{ // 隶属工作组
title: this.$t('revisionPlanActivelyReport.affiliatedWorkingGroup'),
align: 'center',
width: 180,
dataIndex: 'workGroup_dictText',
scopedSlots: { customRender: 'text' }
},
{ // 标准推进人
title: this.$t('revisionPlanActivelyReport.standardPusher'),
align: 'center',
width: 180,
dataIndex: 'standardPromoter_dictText',
scopedSlots: { customRender: 'text' }
},
{ // 草稿计划完成日期
title: this.$t('revisionPlanActivelyReport.draftPlanFinishDate'),
align: 'center',
width: 180,
dataIndex: 'draftPlannedCompleteDate',
scopedSlots: { customRender: 'text' }
},
{ // 征求意见稿计划完成日期
title: this.$t('revisionPlanActivelyReport.exposureDraftPlanFinishDate'),
align: 'center',
width: 200,
dataIndex: 'solicitationDraftPlanCompleteDate',
scopedSlots: { customRender: 'text' }
},
{ // 计划报批日期
title: this.$t('revisionPlanActivelyReport.planSubmissionDate'),
align: 'center',
width: 180,
dataIndex: 'planApprovalDate',
scopedSlots: { customRender: 'text' }
},
{ // 变更状态
title: this.$t('revisionPlanActivelyReport.changeState'),
align: 'center',
width: 180,
dataIndex: 'changeStatus_dictText',
scopedSlots: { customRender: 'text' }
}
],
baseInfoForm: {}
}
},
created () {
this.initData()
},
methods: {
// 初始化数据
initData () {
this.loading = true
activelyReportGetDataById(this.$route.query.taskId).then(res => {
if (res.success) {
const result = res.result
this.processInfoForm = result.common
this.baseInfoForm = result.dataList
} else {
this.$message(res.message)
}
}).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
activelyReportTurnTo(param).then(res => {
if (res.success) {
this.$message(res.message)
this.goBack()
} else {
this.$message(res.message)
}
}).finally(() => {
this.loading = false
})
},
// 同意
handleAgree () {
if (this.loading) return
this.processInfoRules.commitText[0].required = false
if (!this.processInfoForm.commitText) {
this.processInfoForm.commitText = '同意'
}
this.$refs.processForm.validate().then(() => {
const param = {} // 需要传给后端的数据
param.common = Object.assign({}, this.processInfoForm)
param.common.taskId = this.$route.query.taskId
this.loading = true
activelyReportAgree(param).then(res => {
if (res.success) {
this.$message(res.message)
this.goBack()
} else {
this.$message(res.message)
}
}).finally(() => {
this.loading = false
})
}).catch((errorInfo) => {
console.log(errorInfo)
})
},
// 驳回
handleReject () {
if (this.loading) return
this.processInfoRules.commitText[0].required = true
this.$refs.processForm.validate().then(() => {
this.loading = true
const param = {}
param.common = Object.assign({}, this.processInfoForm)
param.common.taskId = this.$route.query.taskId
activelyReportReject(param).then(res => {
if (res.success) {
this.$message(res.message)
this.goBack()
} else {
this.$message(res.message)
}
}).finally(() => {
this.loading = false
this.processInfoRules.commitText[0].required = false
})
}).catch((errorInfo) => {
console.log(errorInfo)
if (errorInfo.find(item => item.name === 'commitText')) {
// 没通过校验的有备注,弹窗提示输入备注
this.$message(this.$t('pleaseEnterRemarks'))
}
})
},
goBack () {
this.$router.go(-1)
}
}
}
</script>
<style scoped lang="less">
@import '~@assets/less/common.less';
</style>