Initial commit
This commit is contained in:
@@ -0,0 +1,222 @@
|
||||
<template>
|
||||
<a-card :bordered="false">
|
||||
<div v-for="data in dataList" :key="data.uid">
|
||||
<div class="title-wrapper"><span class="title-span">{{ data.text }}</span></div>
|
||||
<div class="list-wrapper">
|
||||
<template v-for="item in data.list">
|
||||
<div :key="item.title" v-if="isHasPermission(item.permission)" class="list-cont" @click="processClick(item)">{{ item.title }}</div>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
</a-card>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { isHasPermission } from '@/utils/hasPermission'
|
||||
export default {
|
||||
name: 'NewProcess',
|
||||
data () {
|
||||
return {
|
||||
dataList: [
|
||||
{ // 外部标准管理流程
|
||||
uid: 1,
|
||||
text: this.$t('workCenter.newProcess.externalStandardsManagementProcess'),
|
||||
list: [
|
||||
{ // 标准法规入库/更正流程
|
||||
title: this.$t('workCenter.newProcess.standardRegulationEntryCorrectionProcess'),
|
||||
path: '/workCenter/StandardEntryOrChangeProcess',
|
||||
permission: 'workCenter:newProcess:standardRegulationEntryCorrectionProcess'
|
||||
},
|
||||
{ // 标准征求意见流程
|
||||
title: this.$t('workCenter.newProcess.annotateTheConsultationProcess'),
|
||||
path: '/workCenter/StandardConsultationProcess',
|
||||
permission: 'workCenter:newProcess:annotateTheConsultationProcess'
|
||||
},
|
||||
{ // 项目合规评估流程
|
||||
title: this.$t('workCenter.newProcess.projectComplianceAssessmentProcess'),
|
||||
path: '/workCenter/ProjectComplianceEvaluationProcess',
|
||||
permission: 'workCenter:newProcess:projectComplianceAssessmentProcess'
|
||||
},
|
||||
{ // 未符合项跟踪流程
|
||||
title: this.$t('workCenter.newProcess.noMatchTrackingProcess'),
|
||||
path: '/workCenter/NoMatchTrackingProcess',
|
||||
permission: 'workCenter:newProcess:noMatchTrackingProcess'
|
||||
},
|
||||
{ // 法规合规评估流程
|
||||
title: this.$t('workCenter.newProcess.regulatoryComplianceAssessmentProcess'),
|
||||
path: '/workCenter/StandardComplianceProcess',
|
||||
permission: 'workCenter:newProcess:regulatoryComplianceAssessmentProcess'
|
||||
},
|
||||
{ // 法规采购流程
|
||||
title: this.$t('workCenter.newProcess.regulatoryProcurementProcess'),
|
||||
path: '/workCenter/StandardProcurementProcess',
|
||||
permission: 'workCenter:newProcess:regulatoryProcurementProcess'
|
||||
}
|
||||
]
|
||||
},
|
||||
{ // 企标管理流程
|
||||
uid: 2,
|
||||
text: '企标管理流程',
|
||||
list: [
|
||||
{ // 企标立项/变更计划
|
||||
title: this.$t('workCenter.newProcess.enterpriseProjectChangePlan'),
|
||||
path: '/workCenter/enterpriseStandardInitChange/planApprovalChangeFlow',
|
||||
permission: 'workCenter:newProcess:enterpriseProjectChangePlan'
|
||||
},
|
||||
{ // 年度制修订计划审批流程(各部门主动上报)
|
||||
title: this.$t('workCenter.newProcess.annualRevisionPlanActivelyReport'),
|
||||
path: '/workCenter/annualRevisionPlanActivelyReport/revisionPlanActivelyReportFlow',
|
||||
permission: 'workCenter:newProcess:annualRevisionPlanActivelyReport'
|
||||
},
|
||||
{ // 年度制修订计划审批流程(标准化发起)
|
||||
title: this.$t('workCenter.newProcess.annualRevisionPlanStandardizationInit'),
|
||||
path: '/workCenter/annualRevisionPlanStandardizationInit/revisionPlanStandardizationInitFlow',
|
||||
permission: 'workCenter:newProcess:annualRevisionPlanStandardizationInit'
|
||||
},
|
||||
{ // 企标制修订流程
|
||||
title: this.$t('workCenter.newProcess.enterpriseStandardSystemRevisionProcess'),
|
||||
path: '/workCenter/enterpriseStandardRevision/enterpriseStandardRevisionFlow',
|
||||
permission: 'workCenter:newProcess:enterpriseStandardSystemRevisionProcess'
|
||||
},
|
||||
{ // 企标更改流程
|
||||
title: this.$t('workCenter.newProcess.bidChangeProcess'),
|
||||
path: '/workCenter/enterpriseStandardChange/enterpriseStandardChangeFlow',
|
||||
permission: 'workCenter:newProcess:bidChangeProcess'
|
||||
},
|
||||
{ // 企标复审流程
|
||||
title: this.$t('workCenter.newProcess.processOfEnterpriseBidReview'),
|
||||
path: '/workCenter/enterpriseStandardRecheck/enterpriseStandardRecheckFlow',
|
||||
permission: 'workCenter:newProcess:processOfEnterpriseBidReview'
|
||||
},
|
||||
{ // 企标废止流程
|
||||
title: this.$t('workCenter.newProcess.processOfEnterpriseBidAnnulment'),
|
||||
path: '/workCenter/enterpriseStandardAnnul/enterpriseStandardAnnulFlow',
|
||||
permission: 'workCenter:newProcess:processOfEnterpriseBidAnnulment'
|
||||
},
|
||||
{ // 企标封存流程
|
||||
title: this.$t('workCenter.newProcess.processOfSealingEnterpriseStandard'),
|
||||
path: '/workCenter/enterpriseStandardSealSave/enterpriseStandardSealSaveFlow',
|
||||
permission: 'workCenter:newProcess:processOfSealingEnterpriseStandard'
|
||||
},
|
||||
{ // 已封存企标启用流程
|
||||
title: this.$t('workCenter.newProcess.theSealedEnterpriseBidHasBeenActivatedProcess'),
|
||||
path: '/workCenter/enterpriseStandardStartUse/enterpriseStandardStartUseFlow',
|
||||
permission: 'workCenter:newProcess:theSealedEnterpriseBidHasBeenActivatedProcess'
|
||||
},
|
||||
{ // 企标稽查计划
|
||||
title: this.$t('workCenter.newProcess.enterpriseStandardAuditPlan'),
|
||||
path: '/workCenter/EnterpriseStandardInspectionPlan',
|
||||
permission: 'workCenter:newProcess:enterpriseStandardAuditPlan'
|
||||
},
|
||||
{ // 企标稽查流程
|
||||
title: this.$t('workCenter.newProcess.processOfEnterpriseStandardAudit'),
|
||||
path: '/workCenter/EnterpriseStandardInspectionProcess',
|
||||
permission: 'workCenter:newProcess:processOfEnterpriseStandardAudit'
|
||||
},
|
||||
{ // 稽查延期申请流程
|
||||
title: this.$t('workCenter.newProcess.auditExtensionApplicationProcess'),
|
||||
path: '/workCenter/InspectionExtensionRequestProcess',
|
||||
permission: 'workCenter:newProcess:auditExtensionApplicationProcess'
|
||||
},
|
||||
{ // 企标稽查整改
|
||||
title: this.$t('workCenter.newProcess.enterpriseStandardInspectionAndRectification'),
|
||||
path: '/workCenter/EnterpriseStandardInspectionRectification',
|
||||
permission: 'workCenter:newProcess:enterpriseStandardInspectionAndRectification'
|
||||
},
|
||||
{ // 权限申请流程
|
||||
title: this.$t('workCenter.newProcess.permissionApplicationProcess'),
|
||||
path: '/workCenter/PermissionApplicationProcess',
|
||||
permission: 'workCenter:newProcess:permissionApplicationProcess'
|
||||
},
|
||||
{ // 标准宣贯流程
|
||||
title: this.$t('workCenter.newProcess.standardPromotionProcess'),
|
||||
path: '/workCenter/StandardPromotionProcess',
|
||||
permission: 'workCenter:newProcess:standardPromotionProcess'
|
||||
}
|
||||
]
|
||||
},
|
||||
{ // 工作组相关流程
|
||||
uid: 3,
|
||||
text: this.$t('workCenter.newProcess.workgroupProcess'),
|
||||
list: [
|
||||
{ // 会后管理流程
|
||||
title: this.$t('workCenter.newProcess.postMeetingManagementProcess'),
|
||||
path: '/workCenter/PostMeetingManageProcess',
|
||||
permission: 'workCenter:newProcess:postMeetingManagementProcess'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
isHasPermission,
|
||||
// 流程点击
|
||||
processClick (item) {
|
||||
this.$router.push({
|
||||
path: item.path
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
/deep/ .ant-card-body {
|
||||
padding-top: 0;
|
||||
}
|
||||
.title-wrapper {
|
||||
font-size: 16px;
|
||||
font-family: PingFang SC-Medium, PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #1D2129;
|
||||
height: 22px;
|
||||
line-height: 22px;
|
||||
margin-top: 24px;
|
||||
display: flex;
|
||||
}
|
||||
.title-wrapper::before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
width: 4px;
|
||||
height: 16px;
|
||||
background: @primary-color;
|
||||
border-radius: 4px 4px 4px 4px;
|
||||
margin-right: 8px;
|
||||
margin-top: 3px;
|
||||
}
|
||||
.list-wrapper {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.list-cont {
|
||||
width: 210px;
|
||||
height: 60px;
|
||||
background: rgba(245,245,245,0.6);
|
||||
border-radius: 4px 4px 4px 4px;
|
||||
border: 1px solid #E5E6EB;
|
||||
padding: 8px 28px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
box-sizing: border-box;
|
||||
font-size: 14px;
|
||||
font-family: PingFang SC-Regular, PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #4E5969;
|
||||
line-height: 22px;
|
||||
text-align: center;
|
||||
margin: 24px 23px 0 0;
|
||||
cursor: pointer;
|
||||
}
|
||||
@media screen and (min-device-width: 1920px) and (max-device-width: 1366px) {
|
||||
.list-cont:nth-child(7n) {
|
||||
margin: 24px 0 0 0;
|
||||
}
|
||||
}
|
||||
@media screen and (min-device-width: 1366px) and (max-device-width: 768px) {
|
||||
.list-cont:nth-child(4n) {
|
||||
margin: 24px 0 0 0;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,127 @@
|
||||
<template>
|
||||
<a-card :bordered="false">
|
||||
<a-tabs default-active-key="1" v-model="activeTab">
|
||||
<template v-for="tab in tabList">
|
||||
<a-tab-pane :key="tab.component" v-if="!tab.permission || isHasPermission(tab.permission)">
|
||||
<template v-slot:tab>
|
||||
<div>
|
||||
{{ tab.label }}
|
||||
</div>
|
||||
</template>
|
||||
</a-tab-pane>
|
||||
</template>
|
||||
</a-tabs>
|
||||
<div class="tabs-table-box">
|
||||
<keep-alive>
|
||||
<component
|
||||
:is="comp"
|
||||
ref="compModel"
|
||||
v-if="comp">
|
||||
</component>
|
||||
</keep-alive>
|
||||
</div>
|
||||
</a-card>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import { isHasPermission } from '@/utils/hasPermission'
|
||||
|
||||
export default {
|
||||
name: 'ProcessCenter',
|
||||
data () {
|
||||
return {
|
||||
comp: null,
|
||||
activeTab: '',
|
||||
tabList: [
|
||||
{ // 待办流程
|
||||
component: 'TodoList',
|
||||
label: this.$t('workCenter.processCenter.todoProcess')
|
||||
},
|
||||
{ // 已办流程
|
||||
component: 'DoneList',
|
||||
label: this.$t('workCenter.processCenter.doneProcess')
|
||||
},
|
||||
{ // 已发流程
|
||||
component: 'SentList',
|
||||
label: this.$t('workCenter.processCenter.sentProcess')
|
||||
},
|
||||
{ // 监控流程
|
||||
component: 'MonitorList',
|
||||
label: this.$t('workCenter.processCenter.monitorProcess'),
|
||||
permission: 'workCenter.processCenter.monitorProcess'
|
||||
},
|
||||
{ // 草稿
|
||||
component: 'DraftList',
|
||||
label: this.$t('workCenter.processCenter.draft')
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
activeTab () {
|
||||
this.comp = resolve => require([`@views/workCenter/processCenter/table/${this.activeTab}.vue`], resolve)
|
||||
setTimeout(() => {
|
||||
this.$refs.compModel.loadData()
|
||||
}, 100)
|
||||
},
|
||||
// 消息弹框当前页跳转当前页,需要将参数带入查询条件
|
||||
$route: {
|
||||
deep: true,
|
||||
handler (to, from) {
|
||||
// 如果有消息跳转参数就带入参数查询
|
||||
if (to.query.prcNum) {
|
||||
// 如果有路由参数,则使用路由参数跳转对应页签
|
||||
if (this.$route.query.activeTab) {
|
||||
this.activeTab = to.query.activeTab
|
||||
this.comp = resolve => require([`@views/workCenter/processCenter/table/${this.activeTab}.vue`], resolve)
|
||||
}
|
||||
setTimeout(() => {
|
||||
if (this.$refs.compModel && this.$refs.compModel.loadData) {
|
||||
this.$refs.compModel.initQueryParam && this.$refs.compModel.initQueryParam()
|
||||
this.$refs.compModel.loadData()
|
||||
}
|
||||
}, 100)
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
isHasPermission
|
||||
},
|
||||
created () {
|
||||
// 获取第一个tab
|
||||
this.activeTab = 'TodoList'
|
||||
this.comp = resolve => require([`@views/workCenter/processCenter/table/${this.activeTab}.vue`], resolve)
|
||||
},
|
||||
// mounted () {
|
||||
// window.reloadData = () => {
|
||||
// if (this.$refs.compModel && this.$refs.compModel.loadData) {
|
||||
// this.$refs.compModel.loadData()
|
||||
// }
|
||||
// }
|
||||
// },
|
||||
activated () {
|
||||
console.log('---------activated')
|
||||
// 如果有路由参数,则使用路由参数跳转对应页签
|
||||
if (this.$route.query.activeTab) {
|
||||
this.activeTab = this.$route.query.activeTab
|
||||
this.comp = resolve => require([`@views/workCenter/processCenter/table/${this.activeTab}.vue`], resolve)
|
||||
}
|
||||
setTimeout(() => {
|
||||
if (this.$refs.compModel && this.$refs.compModel.loadData) {
|
||||
this.$refs.compModel.initQueryParam && this.$refs.compModel.initQueryParam()
|
||||
this.$refs.compModel.loadData()
|
||||
}
|
||||
}, 100)
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
@import '~@assets/less/common.less';
|
||||
|
||||
/deep/ .table-page-search-wrapper .ant-form-inline .ant-form-item > .ant-form-item-label {
|
||||
min-width: 70px;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,69 @@
|
||||
<template>
|
||||
<internal-detail-page :title="pageTitle" :content-padding="0" :loading="loading">
|
||||
<process-detail-list :processKey="processKey" show-urge-button>
|
||||
<personnel-info slot="personnelInfo" ref="personnelInfo" :data="personnelInfoData"></personnel-info>
|
||||
</process-detail-list>
|
||||
</internal-detail-page>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import InternalDetailPage from '@/components/InternalDetailPage'
|
||||
import ProcessDetailList from '@/components/ProcessDetailList'
|
||||
import PersonnelInfo from '@/components/PersonnelInfo'
|
||||
import { getProcessNodeList } from '@/api/workCenter'
|
||||
|
||||
export default {
|
||||
name: 'ProcessDetail',
|
||||
components: {
|
||||
InternalDetailPage,
|
||||
ProcessDetailList,
|
||||
PersonnelInfo
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
pageTitle: '流程详情',
|
||||
processKey: '',
|
||||
loading: false,
|
||||
currentNodeName: '',
|
||||
personnelInfoData: [],
|
||||
/* 排序参数 */
|
||||
isorter: {
|
||||
column: 'createTime',
|
||||
order: 'asc'
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted () {
|
||||
this.processKey = this.$route.query.processKey
|
||||
this.getPersonInfoStructure()
|
||||
},
|
||||
methods: {
|
||||
getPersonInfoStructure () {
|
||||
const param = {}
|
||||
if (this.$route.query.processDefinitionId) {
|
||||
param.processDefinitionId = this.$route.query.processDefinitionId
|
||||
}
|
||||
if (this.$route.query.processInstanceId) {
|
||||
param.processInstanceId = this.$route.query.processInstanceId
|
||||
}
|
||||
getProcessNodeList(param).then(res => {
|
||||
if (res.success) {
|
||||
console.log(res.result)
|
||||
// 处理人员信息数据
|
||||
this.personnelInfoData = res.result.map(item => {
|
||||
return {
|
||||
...item,
|
||||
canChoose: false,
|
||||
userList: item.linkUserIds_dictText
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,310 @@
|
||||
<template>
|
||||
<div>
|
||||
<!-- 搜索区域 -->
|
||||
<div class="table-page-search-wrapper">
|
||||
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
||||
<a-row :gutter="24">
|
||||
<!-- 流程名称 -->
|
||||
<a-col :span="6">
|
||||
<a-form-item :label="$t('processName')" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input :placeholder="$t('pleaseEnter')+$t('processName')" v-model="queryParam.prcName"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<!-- 流程编号 -->
|
||||
<a-col :span="6">
|
||||
<a-form-item :label="$t('workCenter.processCenter.processNumber')" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input :placeholder="$t('pleaseEnter')+$t('workCenter.processCenter.processNumber')" v-model="queryParam.prcNum"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<!-- 流程类型 -->
|
||||
<a-col :span="6">
|
||||
<a-form-item :label="$t('workCenter.processCenter.processType')" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-dict-select-tag
|
||||
:placeholder="$t('pleaseSelect')+$t('workCenter.processCenter.processType')"
|
||||
dict-code="prc_type"
|
||||
:dropdownMatchSelectWidth="false"
|
||||
v-model="queryParam.prcType">
|
||||
</j-dict-select-tag>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
<div style="float: right;overflow: hidden;" class="table-page-search-submitButtons">
|
||||
<a-button type="primary" @click="searchQuery" icon="search" style="margin-left: 8px">{{ $t('query') }}</a-button>
|
||||
<a-button type="primary" ghost @click="searchReset" icon="reload" style="margin-left: 8px">{{ $t('reset') }}</a-button>
|
||||
</div>
|
||||
|
||||
</a-row>
|
||||
</a-form>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<j-table
|
||||
:can-drag="true"
|
||||
:scroll="{x: '100%'}"
|
||||
ref="table"
|
||||
rowKey="id"
|
||||
:columns="columns"
|
||||
:dataSource="dataSource"
|
||||
:pagination="ipagination"
|
||||
:loading="loading"
|
||||
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
|
||||
@change="handleTableChange">
|
||||
|
||||
<!-- 操作栏 -->
|
||||
<div slot="action" slot-scope="{record}" class="action-span-cell">
|
||||
<!-- 查看 -->
|
||||
<a @click="handleDetail(record)" class="table-ope-btn">{{ $t('view') }}</a>
|
||||
</div>
|
||||
|
||||
</j-table>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import JTable from '@/components/jero/JTable'
|
||||
import { JeroListMixin } from '@/mixins/JeroListMixin'
|
||||
import { ProcessType, ProcessKey } from '../../../../enums/commonEnums'
|
||||
import { getAction } from '../../../../api/manage'
|
||||
|
||||
export default {
|
||||
name: 'DoneList',
|
||||
components: { JTable },
|
||||
mixins: [JeroListMixin],
|
||||
data () {
|
||||
return {
|
||||
labelCol: {
|
||||
span: 4
|
||||
},
|
||||
wrapperCol: {
|
||||
span: 14
|
||||
},
|
||||
/* 排序参数 */
|
||||
isorter: {
|
||||
column: 'receivedTaskTime',
|
||||
order: 'desc'
|
||||
},
|
||||
columns: [
|
||||
{ // 流程编号
|
||||
title: this.$t('workCenter.processCenter.processNumber'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'prcNum',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 流程类型
|
||||
title: this.$t('workCenter.processCenter.processType'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'prcType_dictText',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 流程名称
|
||||
title: this.$t('processName'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'prcName',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 发起人
|
||||
title: this.$t('workCenter.processCenter.initiator'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'createUserId_dictText',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 当前处理人
|
||||
title: this.$t('workCenter.processCenter.currentProcessor'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'handleUserId_dictText',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 接收任务时间
|
||||
title: this.$t('workCenter.processCenter.receivingTaskTime'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'receivedTaskTime',
|
||||
sorter: true,
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 完成时间
|
||||
title: this.$t('workCenter.processCenter.finishTime'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'endTime',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 流程状态
|
||||
title: this.$t('workCenter.processCenter.processState'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'prcStatus_dictText',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{
|
||||
title: this.$t('operation'),
|
||||
scopedSlots: { customRender: 'action' },
|
||||
align: 'center',
|
||||
fixed: 'right',
|
||||
width: 200
|
||||
}
|
||||
],
|
||||
url: {
|
||||
list: '/workCenter/getCompletedList'
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
loadData (arg) {
|
||||
if (!this.url.list) {
|
||||
this.$message.warning('请设置url.list属性!')
|
||||
return
|
||||
}
|
||||
// 加载数据 若传入参数1则加载第一页的内容
|
||||
if (arg === 1) {
|
||||
this.ipagination.current = 1
|
||||
}
|
||||
const params = this.getQueryParams()// 查询条件
|
||||
this.loading = true
|
||||
getAction(this.url.list, params).then((res) => {
|
||||
if (res.success) {
|
||||
if ((res.result.records || res.result).length === 0 && this.ipagination.current !== 1) {
|
||||
this.ipagination.current--
|
||||
this.loadData()
|
||||
this.loading = false
|
||||
return
|
||||
}
|
||||
// update-begin---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------
|
||||
this.dataSource = res.result.records || res.result
|
||||
if (res.result.total) {
|
||||
this.ipagination.total = res.result.total
|
||||
} else {
|
||||
this.ipagination.total = 0
|
||||
}
|
||||
// update-end---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
handleTableChange (pagination, filters, sorter) {
|
||||
// 分页、排序、筛选变化时触发
|
||||
if (Object.keys(sorter).length > 0) {
|
||||
this.isorter.column = sorter.order ? sorter.field : 'receivedTaskTime'
|
||||
this.isorter.order = sorter.order === 'ascend' ? 'asc' : 'desc'
|
||||
}
|
||||
this.ipagination = pagination
|
||||
this.loadData()
|
||||
},
|
||||
handleDetail (record) {
|
||||
// 跳转到流程详情页
|
||||
let processKey = ''
|
||||
switch (record.prcType + '') {
|
||||
// 1.标准法规入库/变更流程
|
||||
case ProcessType.FB_ENTRY_CHANGE.value:
|
||||
processKey = ProcessKey.FB_ENTRY_CHANGE.value
|
||||
break
|
||||
// 2.征求意见流程
|
||||
case ProcessType.CONSULTATION.value:
|
||||
processKey = ProcessKey.CONSULTATION.value
|
||||
break
|
||||
// 3.项目合规评估流程
|
||||
case ProcessType.PROJECT_COMPLIANCE_EVALUATION.value:
|
||||
processKey = ProcessKey.PROJECT_COMPLIANCE_EVALUATION.value
|
||||
break
|
||||
// 4.未符合项跟踪流程
|
||||
case ProcessType.NO_MATCH_TRACKING.value:
|
||||
processKey = ProcessKey.NO_MATCH_TRACKING.value
|
||||
break
|
||||
// 5.法规合规评估流程
|
||||
case ProcessType.REGULATORY_COMPLIANCE_ASSESSMENT.value:
|
||||
processKey = ProcessKey.REGULATORY_COMPLIANCE_ASSESSMENT.value
|
||||
break
|
||||
// 6.法规采购流程
|
||||
case ProcessType.LEGAL_PROCUREMENT.value:
|
||||
processKey = ProcessKey.LEGAL_PROCUREMENT.value
|
||||
break
|
||||
// 7.企标立项/变更计划
|
||||
case ProcessType.ES_INIT_CHANGE.value:
|
||||
processKey = ProcessKey.ES_INIT_CHANGE.value
|
||||
break
|
||||
// 8.年度制修订-各部门主动上报
|
||||
case ProcessType.ES_ANNUAL_REPORT.value:
|
||||
processKey = ProcessKey.ES_ANNUAL_REPORT.value
|
||||
break
|
||||
// 9.年度制修订-标准化部门主动发起
|
||||
case ProcessType.ES_ANNUAL_INIT.value:
|
||||
processKey = ProcessKey.ES_ANNUAL_INIT.value
|
||||
break
|
||||
// 10.企标制修订流程
|
||||
case ProcessType.ES_EDIT.value:
|
||||
processKey = ProcessKey.ES_EDIT.value
|
||||
break
|
||||
// 11.企标更改流程
|
||||
case ProcessType.ES_CHANGE.value:
|
||||
processKey = ProcessKey.ES_CHANGE.value
|
||||
break
|
||||
// 12.企标复审流程
|
||||
case ProcessType.ES_RECHECK.value:
|
||||
processKey = ProcessKey.ES_RECHECK.value
|
||||
break
|
||||
// 13.企标废止流程
|
||||
case ProcessType.ES_ABOLISH.value:
|
||||
processKey = ProcessKey.ES_ABOLISH.value
|
||||
break
|
||||
// 14.企标封存流程
|
||||
case ProcessType.ES_ARCHIVE.value:
|
||||
processKey = ProcessKey.ES_ARCHIVE.value
|
||||
break
|
||||
// 15.已封存企标启用流程
|
||||
case ProcessType.ES_ENABLE.value:
|
||||
processKey = ProcessKey.ES_ENABLE.value
|
||||
break
|
||||
// 16.企标稽查计划
|
||||
case ProcessType.ES_INSPECTION_PLAN.value:
|
||||
processKey = ProcessKey.ES_INSPECTION_PLAN.value
|
||||
break
|
||||
// 17.企标稽查流程
|
||||
case ProcessType.ES_INSPECTION_PROCESS.value:
|
||||
processKey = ProcessKey.ES_INSPECTION_PROCESS.value
|
||||
break
|
||||
// 18.稽查延期申请流程
|
||||
case ProcessType.INSPECTION_EXTENSION_REQUEST_PROCESS.value:
|
||||
processKey = ProcessKey.INSPECTION_EXTENSION_REQUEST_PROCESS.value
|
||||
break
|
||||
// 19.企标稽查整改
|
||||
case ProcessType.ES_INSPECTION_RECTIFICATION.value:
|
||||
processKey = ProcessKey.ES_INSPECTION_RECTIFICATION.value
|
||||
break
|
||||
// 20.权限申请流程
|
||||
case ProcessType.PERMISSION_APPLY.value:
|
||||
processKey = ProcessKey.PERMISSION_APPLY.value
|
||||
break
|
||||
// 21.标准宣贯流程
|
||||
case ProcessType.STANDARD_PROMOTION.value:
|
||||
processKey = ProcessKey.STANDARD_PROMOTION.value
|
||||
break
|
||||
// 22.会后管理流程
|
||||
case ProcessType.POST_MEETING_MANAGE.value:
|
||||
processKey = ProcessKey.POST_MEETING_MANAGE.value
|
||||
break
|
||||
}
|
||||
this.$router.push({
|
||||
path: '/workCenter/processCenter/detail/processDetail',
|
||||
query: {
|
||||
processKey: processKey,
|
||||
processDefinitionId: record.processDefinitionId,
|
||||
processInstanceId: record.processInstanceId
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,262 @@
|
||||
<template>
|
||||
<div>
|
||||
<!-- 搜索区域 -->
|
||||
<div class="table-page-search-wrapper">
|
||||
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
||||
<a-row :gutter="24">
|
||||
<!-- 流程类型 -->
|
||||
<a-col :span="6">
|
||||
<a-form-item :label="$t('workCenter.processCenter.processType')" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-dict-select-tag
|
||||
:placeholder="$t('pleaseSelect')+$t('workCenter.processCenter.processType')"
|
||||
dict-code="prc_type"
|
||||
:dropdownMatchSelectWidth="false"
|
||||
v-model="queryParam.prcType">
|
||||
</j-dict-select-tag>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
<div style="float: right;overflow: hidden;" class="table-page-search-submitButtons">
|
||||
<a-button type="primary" @click="searchQuery" icon="search" style="margin-left: 8px">{{ $t('query') }}</a-button>
|
||||
<a-button type="primary" ghost @click="searchReset" icon="reload" style="margin-left: 8px">{{ $t('reset') }}</a-button>
|
||||
</div>
|
||||
|
||||
</a-row>
|
||||
</a-form>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<j-table
|
||||
:can-drag="true"
|
||||
:scroll="{x: '100%'}"
|
||||
ref="table"
|
||||
rowKey="id"
|
||||
:columns="columns"
|
||||
:dataSource="dataSource"
|
||||
:pagination="ipagination"
|
||||
:loading="loading"
|
||||
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
|
||||
@change="handleTableChange">
|
||||
|
||||
<!-- 操作栏 -->
|
||||
<div slot="action" slot-scope="{record}" class="action-span-cell">
|
||||
<!-- 办理 -->
|
||||
<a @click="handleTransact(record)" class="table-ope-btn">{{ $t('transact') }}</a>
|
||||
</div>
|
||||
|
||||
</j-table>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import JTable from '@/components/jero/JTable'
|
||||
import { JeroListMixin } from '@/mixins/JeroListMixin'
|
||||
import { getAction } from '../../../../api/manage'
|
||||
|
||||
export default {
|
||||
name: 'DraftList',
|
||||
components: { JTable },
|
||||
mixins: [JeroListMixin],
|
||||
data () {
|
||||
return {
|
||||
labelCol: {
|
||||
span: 4
|
||||
},
|
||||
wrapperCol: {
|
||||
span: 14
|
||||
},
|
||||
columns: [
|
||||
{ // 流程类型
|
||||
title: this.$t('workCenter.processCenter.processType'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'prcType_dictText',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 流程名称
|
||||
title: this.$t('processName'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'prcName',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 创建时间
|
||||
title: this.$t('createTime'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'createTime',
|
||||
sorter: true,
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{
|
||||
title: this.$t('operation'),
|
||||
scopedSlots: { customRender: 'action' },
|
||||
align: 'center',
|
||||
fixed: 'right',
|
||||
width: 200
|
||||
}
|
||||
],
|
||||
url: {
|
||||
list: '/workCenter/getDraftList'
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
loadData (arg) {
|
||||
if (!this.url.list) {
|
||||
this.$message.warning('请设置url.list属性!')
|
||||
return
|
||||
}
|
||||
// 加载数据 若传入参数1则加载第一页的内容
|
||||
if (arg === 1) {
|
||||
this.ipagination.current = 1
|
||||
}
|
||||
const params = this.getQueryParams()// 查询条件
|
||||
this.loading = true
|
||||
getAction(this.url.list, params).then((res) => {
|
||||
if (res.success) {
|
||||
if ((res.result.records || res.result).length === 0 && this.ipagination.current !== 1) {
|
||||
this.ipagination.current--
|
||||
this.loadData()
|
||||
this.loading = false
|
||||
return
|
||||
}
|
||||
// update-begin---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------
|
||||
this.dataSource = res.result.records || res.result
|
||||
if (res.result.total) {
|
||||
this.ipagination.total = res.result.total
|
||||
} else {
|
||||
this.ipagination.total = 0
|
||||
}
|
||||
// update-end---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
// 办理
|
||||
handleTransact (record) {
|
||||
let path = ''
|
||||
// 跳转到对应流程页面
|
||||
switch (record.prcType + '') {
|
||||
// 标准法规入库/变更流程
|
||||
case '1':
|
||||
path = '/workCenter/StandardEntryOrChangeProcess'
|
||||
break
|
||||
// 标准征求意见流程
|
||||
case '2':
|
||||
path = '/workCenter/StandardConsultationProcess'
|
||||
break
|
||||
// 项目合规评估流程
|
||||
case '3':
|
||||
path = '/workCenter/ProjectComplianceEvaluationProcess'
|
||||
break
|
||||
// 未符合项跟踪流程
|
||||
case '4':
|
||||
path = '/workCenter/NoMatchTrackingProcess'
|
||||
break
|
||||
// 法规合规评估流程
|
||||
case '5':
|
||||
path = '/workCenter/StandardComplianceProcess'
|
||||
break
|
||||
// 法规采购流程
|
||||
case '6':
|
||||
path = '/workCenter/StandardProcurementProcess'
|
||||
break
|
||||
// 企标立项、变更计划
|
||||
case '7':
|
||||
path = '/workCenter/enterpriseStandardInitChange/planApprovalChangeFlow'
|
||||
break
|
||||
// 年度制修订计划(各部门主动上报)
|
||||
case '8':
|
||||
path = '/workCenter/annualRevisionPlanActivelyReport/revisionPlanActivelyReportFlow'
|
||||
break
|
||||
// 年度制修订计划(标准化发起)
|
||||
case '9':
|
||||
path = '/workCenter/annualRevisionPlanStandardizationInit/revisionPlanStandardizationInitFlow'
|
||||
break
|
||||
// 企标制修订流程
|
||||
case '10':
|
||||
path = '/workCenter/enterpriseStandardRevision/enterpriseStandardRevisionFlow'
|
||||
break
|
||||
// 企标更改流程
|
||||
case '11':
|
||||
path = '/workCenter/enterpriseStandardChange/enterpriseStandardChangeFlow'
|
||||
break
|
||||
// 企标复审流程
|
||||
case '12':
|
||||
path = '/workCenter/enterpriseStandardRecheck/enterpriseStandardRecheckFlow'
|
||||
break
|
||||
// 企标废止流程
|
||||
case '13':
|
||||
path = '/workCenter/enterpriseStandardAnnul/enterpriseStandardAnnulFlow'
|
||||
break
|
||||
// 企标封存流程
|
||||
case '14':
|
||||
path = '/workCenter/enterpriseStandardSealSave/enterpriseStandardSealSaveFlow'
|
||||
break
|
||||
// 已封存企标启用流程
|
||||
case '15':
|
||||
path = '/workCenter/enterpriseStandardStartUse/enterpriseStandardStartUseFlow'
|
||||
break
|
||||
// 企标稽查计划
|
||||
case '16':
|
||||
path = '/workCenter/EnterpriseStandardInspectionPlan'
|
||||
break
|
||||
// 企标稽查流程
|
||||
case '17':
|
||||
path = '/workCenter/EnterpriseStandardInspectionProcess'
|
||||
break
|
||||
// 稽查延期申请流程
|
||||
case '18':
|
||||
path = '/workCenter/InspectionExtensionRequestProcess'
|
||||
break
|
||||
// 企标稽查整改
|
||||
case '19':
|
||||
path = '/workCenter/EnterpriseStandardInspectionRectification'
|
||||
break
|
||||
// 权限申请流程
|
||||
case '20':
|
||||
path = '/workCenter/PermissionApplicationProcess'
|
||||
break
|
||||
// 标准宣贯流程
|
||||
case '21':
|
||||
path = '/workCenter/StandardPromotionProcess'
|
||||
break
|
||||
// 会后管理流程
|
||||
case '22':
|
||||
path = '/workCenter/PostMeetingManageProcess'
|
||||
break
|
||||
}
|
||||
const query = {}
|
||||
query.draftId = record.id // 草稿id
|
||||
if (record.projectId) {
|
||||
query.projectId = record.projectId
|
||||
}
|
||||
if (record.nodeName) {
|
||||
query.taskName = record.nodeName
|
||||
}
|
||||
if (record.taskId) {
|
||||
query.taskId = record.taskId // 任务id
|
||||
}
|
||||
if (record.processInstanceId) {
|
||||
query.processInstanceId = record.processInstanceId // 流程实例id,必须传人员信息右侧表格查询需要用
|
||||
}
|
||||
if (record.nodeId) {
|
||||
query.nodeId = record.nodeId // 节点的id
|
||||
}
|
||||
this.$router.push({
|
||||
path: path,
|
||||
query: query
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,314 @@
|
||||
<template>
|
||||
<div>
|
||||
<!-- 搜索区域 -->
|
||||
<div class="table-page-search-wrapper">
|
||||
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
||||
<a-row :gutter="24">
|
||||
<!-- 流程名称 -->
|
||||
<a-col :span="6">
|
||||
<a-form-item :label="$t('processName')" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input :placeholder="$t('pleaseEnter')+$t('processName')" v-model="queryParam.prcName"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<!-- 流程编号 -->
|
||||
<a-col :span="6">
|
||||
<a-form-item :label="$t('workCenter.processCenter.processNumber')" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input :placeholder="$t('pleaseEnter')+$t('workCenter.processCenter.processNumber')" v-model="queryParam.prcNum"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<!-- 流程类型 -->
|
||||
<a-col :span="6">
|
||||
<a-form-item :label="$t('workCenter.processCenter.processType')" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-dict-select-tag
|
||||
:placeholder="$t('pleaseSelect')+$t('workCenter.processCenter.processType')"
|
||||
dict-code="prc_type"
|
||||
:dropdownMatchSelectWidth="false"
|
||||
v-model="queryParam.prcType">
|
||||
</j-dict-select-tag>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
<div style="float: right;overflow: hidden;" class="table-page-search-submitButtons">
|
||||
<a-button type="primary" @click="searchQuery" icon="search" style="margin-left: 8px">{{ $t('query') }}</a-button>
|
||||
<a-button type="primary" ghost @click="searchReset" icon="reload" style="margin-left: 8px">{{ $t('reset') }}</a-button>
|
||||
</div>
|
||||
|
||||
</a-row>
|
||||
</a-form>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<j-table
|
||||
:can-drag="true"
|
||||
:scroll="{x: '100%'}"
|
||||
ref="table"
|
||||
rowKey="id"
|
||||
:columns="columns"
|
||||
:dataSource="dataSource"
|
||||
:pagination="ipagination"
|
||||
:loading="loading"
|
||||
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
|
||||
@change="handleTableChange">
|
||||
|
||||
<!-- 操作栏 -->
|
||||
<div slot="action" slot-scope="{record}" class="action-span-cell">
|
||||
<!-- 查看 -->
|
||||
<a @click="handleDetail(record)" class="table-ope-btn">{{ $t('view') }}</a>
|
||||
<a-divider v-if="record.prcStatus === 1 && (record.createUserId === userInfo.id || isAdmin)" type="vertical" />
|
||||
<!-- 强制撤回 -->
|
||||
<a v-if="record.prcStatus === 1 && (record.createUserId === userInfo.id || isAdmin)"
|
||||
@click="handleWithdrawal(record)"
|
||||
class="table-ope-btn">{{ $t('compulsoryWithdrawal') }}</a>
|
||||
</div>
|
||||
|
||||
</j-table>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import JTable from '@/components/jero/JTable'
|
||||
import { JeroListMixin } from '@/mixins/JeroListMixin'
|
||||
import { compulsoryWithdrawal } from '@/api/workCenter'
|
||||
import { ProcessType, ProcessKey } from '@/enums/commonEnums'
|
||||
import { mapGetters } from 'vuex'
|
||||
|
||||
export default {
|
||||
name: 'MonitorList',
|
||||
components: { JTable },
|
||||
mixins: [JeroListMixin],
|
||||
computed: {
|
||||
...mapGetters(['userInfo']),
|
||||
// 当前用户是否管理员
|
||||
isAdmin () {
|
||||
const adminRoleList = window._CONFIG.adminRoleCode.split(',')
|
||||
const userRoleList = this.userInfo.roleCode.split(',')
|
||||
return userRoleList.some(tt => adminRoleList.includes(tt))
|
||||
}
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
labelCol: {
|
||||
span: 4
|
||||
},
|
||||
wrapperCol: {
|
||||
span: 14
|
||||
},
|
||||
/* 排序参数 */
|
||||
isorter: {
|
||||
column: 'receivedTaskTime',
|
||||
order: 'desc'
|
||||
},
|
||||
columns: [
|
||||
{ // 流程编号
|
||||
title: this.$t('workCenter.processCenter.processNumber'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'prcNum',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 流程类型
|
||||
title: this.$t('workCenter.processCenter.processType'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'prcType_dictText',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 流程名称
|
||||
title: this.$t('processName'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'prcName',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 发起人
|
||||
title: this.$t('workCenter.processCenter.initiator'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'createUserId_dictText',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 当前处理人
|
||||
title: this.$t('workCenter.processCenter.currentProcessor'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'handleUserId_dictText',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 接收任务时间
|
||||
title: this.$t('workCenter.processCenter.receivingTaskTime'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'receivedTaskTime',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 完成时间
|
||||
title: this.$t('workCenter.processCenter.finishTime'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'endTime',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 流程耗时(小时)
|
||||
title: this.$t('workCenter.processCenter.processTime'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'overTime',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 流程状态
|
||||
title: this.$t('workCenter.processCenter.processState'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'prcStatus_dictText',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{
|
||||
title: this.$t('operation'),
|
||||
scopedSlots: { customRender: 'action' },
|
||||
align: 'center',
|
||||
fixed: 'right',
|
||||
width: 200
|
||||
}
|
||||
],
|
||||
url: {
|
||||
list: '/workCenter/getAllList'
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 查看
|
||||
handleDetail (record) {
|
||||
// 跳转到流程详情页
|
||||
let processKey = ''
|
||||
switch (record.prcType + '') {
|
||||
// 1.标准法规入库/变更流程
|
||||
case ProcessType.FB_ENTRY_CHANGE.value:
|
||||
processKey = ProcessKey.FB_ENTRY_CHANGE.value
|
||||
break
|
||||
// 2.征求意见流程
|
||||
case ProcessType.CONSULTATION.value:
|
||||
processKey = ProcessKey.CONSULTATION.value
|
||||
break
|
||||
// 3.项目合规评估流程
|
||||
case ProcessType.PROJECT_COMPLIANCE_EVALUATION.value:
|
||||
processKey = ProcessKey.PROJECT_COMPLIANCE_EVALUATION.value
|
||||
break
|
||||
// 4.未符合项跟踪流程
|
||||
case ProcessType.NO_MATCH_TRACKING.value:
|
||||
processKey = ProcessKey.NO_MATCH_TRACKING.value
|
||||
break
|
||||
// 5.法规合规评估流程
|
||||
case ProcessType.REGULATORY_COMPLIANCE_ASSESSMENT.value:
|
||||
processKey = ProcessKey.REGULATORY_COMPLIANCE_ASSESSMENT.value
|
||||
break
|
||||
// 6.法规采购流程
|
||||
case ProcessType.LEGAL_PROCUREMENT.value:
|
||||
processKey = ProcessKey.LEGAL_PROCUREMENT.value
|
||||
break
|
||||
// 7.企标立项/变更计划
|
||||
case ProcessType.ES_INIT_CHANGE.value:
|
||||
processKey = ProcessKey.ES_INIT_CHANGE.value
|
||||
break
|
||||
// 8.年度制修订-各部门主动上报
|
||||
case ProcessType.ES_ANNUAL_REPORT.value:
|
||||
processKey = ProcessKey.ES_ANNUAL_REPORT.value
|
||||
break
|
||||
// 9.年度制修订-标准化部门主动发起
|
||||
case ProcessType.ES_ANNUAL_INIT.value:
|
||||
processKey = ProcessKey.ES_ANNUAL_INIT.value
|
||||
break
|
||||
// 10.企标制修订流程
|
||||
case ProcessType.ES_EDIT.value:
|
||||
processKey = ProcessKey.ES_EDIT.value
|
||||
break
|
||||
// 11.企标更改流程
|
||||
case ProcessType.ES_CHANGE.value:
|
||||
processKey = ProcessKey.ES_CHANGE.value
|
||||
break
|
||||
// 12.企标复审流程
|
||||
case ProcessType.ES_RECHECK.value:
|
||||
processKey = ProcessKey.ES_RECHECK.value
|
||||
break
|
||||
// 13.企标废止流程
|
||||
case ProcessType.ES_ABOLISH.value:
|
||||
processKey = ProcessKey.ES_ABOLISH.value
|
||||
break
|
||||
// 14.企标封存流程
|
||||
case ProcessType.ES_ARCHIVE.value:
|
||||
processKey = ProcessKey.ES_ARCHIVE.value
|
||||
break
|
||||
// 15.已封存企标启用流程
|
||||
case ProcessType.ES_ENABLE.value:
|
||||
processKey = ProcessKey.ES_ENABLE.value
|
||||
break
|
||||
// 16.企标稽查计划
|
||||
case ProcessType.ES_INSPECTION_PLAN.value:
|
||||
processKey = ProcessKey.ES_INSPECTION_PLAN.value
|
||||
break
|
||||
// 17.企标稽查流程
|
||||
case ProcessType.ES_INSPECTION_PROCESS.value:
|
||||
processKey = ProcessKey.ES_INSPECTION_PROCESS.value
|
||||
break
|
||||
// 18.稽查延期申请流程
|
||||
case ProcessType.INSPECTION_EXTENSION_REQUEST_PROCESS.value:
|
||||
processKey = ProcessKey.INSPECTION_EXTENSION_REQUEST_PROCESS.value
|
||||
break
|
||||
// 19.企标稽查整改
|
||||
case ProcessType.ES_INSPECTION_RECTIFICATION.value:
|
||||
processKey = ProcessKey.ES_INSPECTION_RECTIFICATION.value
|
||||
break
|
||||
// 20.权限申请流程
|
||||
case ProcessType.PERMISSION_APPLY.value:
|
||||
processKey = ProcessKey.PERMISSION_APPLY.value
|
||||
break
|
||||
// 21.标准宣贯流程
|
||||
case ProcessType.STANDARD_PROMOTION.value:
|
||||
processKey = ProcessKey.STANDARD_PROMOTION.value
|
||||
break
|
||||
// 22.会后管理流程
|
||||
case ProcessType.POST_MEETING_MANAGE.value:
|
||||
processKey = ProcessKey.POST_MEETING_MANAGE.value
|
||||
break
|
||||
}
|
||||
this.$router.push({
|
||||
path: '/workCenter/processCenter/detail/processDetail',
|
||||
query: {
|
||||
processKey: processKey,
|
||||
processDefinitionId: record.processDefinitionId,
|
||||
processInstanceId: record.processInstanceId,
|
||||
// 流程监控并且是已撤回,详情不查进行中的
|
||||
source: 'monitorList',
|
||||
prcStatus: record.prcStatus
|
||||
}
|
||||
})
|
||||
},
|
||||
// 强制撤回
|
||||
handleWithdrawal (record) {
|
||||
this.$confirm({
|
||||
title: this.$t('compulsoryWithdrawal'),
|
||||
content: this.$t('sureCompulsoryWithdrawal'),
|
||||
onOk: () => {
|
||||
this.loading = true
|
||||
const params = {}
|
||||
params.processInstanceId = record.processInstanceId
|
||||
params.projectId = record.projectId
|
||||
params.taskId = record.taskId
|
||||
compulsoryWithdrawal(params).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.loadData()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,322 @@
|
||||
<template>
|
||||
<div>
|
||||
<!-- 搜索区域 -->
|
||||
<div class="table-page-search-wrapper">
|
||||
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
||||
<a-row :gutter="24">
|
||||
<!-- 流程名称 -->
|
||||
<a-col :span="6">
|
||||
<a-form-item :label="$t('processName')" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input :placeholder="$t('pleaseEnter')+$t('processName')" v-model="queryParam.prcName"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<!-- 流程编号 -->
|
||||
<a-col :span="6">
|
||||
<a-form-item :label="$t('workCenter.processCenter.processNumber')" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input :placeholder="$t('pleaseEnter')+$t('workCenter.processCenter.processNumber')" v-model="queryParam.prcNum"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<!-- 流程类型 -->
|
||||
<a-col :span="6">
|
||||
<a-form-item :label="$t('workCenter.processCenter.processType')" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-dict-select-tag
|
||||
:placeholder="$t('pleaseSelect')+$t('workCenter.processCenter.processType')"
|
||||
dict-code="prc_type"
|
||||
:dropdownMatchSelectWidth="false"
|
||||
v-model="queryParam.prcType">
|
||||
</j-dict-select-tag>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<template v-if="toggleSearchStatus">
|
||||
<!-- 流程状态 -->
|
||||
<a-col :span="6">
|
||||
<a-form-item :label="$t('workCenter.processCenter.processState')" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-dict-select-tag
|
||||
:placeholder="$t('pleaseSelect')+$t('workCenter.processCenter.processState')"
|
||||
dict-code="prc_status"
|
||||
v-model="queryParam.prcStatus">
|
||||
</j-dict-select-tag>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</template>
|
||||
|
||||
<div style="float: right;overflow: hidden;" class="table-page-search-submitButtons">
|
||||
<a @click="handleToggleSearch">
|
||||
{{ toggleSearchStatus ? $t('putAway') : $t('open') }}
|
||||
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
|
||||
</a>
|
||||
<a-button type="primary" @click="searchQuery" icon="search" style="margin-left: 8px">{{ $t('query') }}</a-button>
|
||||
<a-button type="primary" ghost @click="searchReset" icon="reload" style="margin-left: 8px">{{ $t('reset') }}</a-button>
|
||||
</div>
|
||||
|
||||
</a-row>
|
||||
</a-form>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<j-table
|
||||
:can-drag="true"
|
||||
:scroll="{x: '100%'}"
|
||||
ref="table"
|
||||
rowKey="id"
|
||||
:columns="columns"
|
||||
:dataSource="dataSource"
|
||||
:pagination="ipagination"
|
||||
:loading="loading"
|
||||
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
|
||||
@change="handleTableChange">
|
||||
|
||||
<!-- 操作栏 -->
|
||||
<div slot="action" slot-scope="{record}" class="action-span-cell">
|
||||
<!-- 查看 -->
|
||||
<a @click="handleDetail(record)" class="table-ope-btn">{{ $t('view') }}</a>
|
||||
<a-divider v-if="record.prcStatus !== 2" type="vertical" />
|
||||
<!-- 强制撤回 -->
|
||||
<a v-if="record.prcStatus !== 2" @click="handleWithdrawal(record)" class="table-ope-btn">{{ $t('compulsoryWithdrawal') }}</a>
|
||||
</div>
|
||||
|
||||
</j-table>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import JTable from '@/components/jero/JTable'
|
||||
import { JeroListMixin } from '@/mixins/JeroListMixin'
|
||||
import { compulsoryWithdrawal } from '@/api/workCenter'
|
||||
import { ProcessType, ProcessKey } from '@/enums/commonEnums'
|
||||
|
||||
export default {
|
||||
name: 'SentList',
|
||||
components: { JTable },
|
||||
mixins: [JeroListMixin],
|
||||
data () {
|
||||
return {
|
||||
labelCol: {
|
||||
span: 4
|
||||
},
|
||||
wrapperCol: {
|
||||
span: 14
|
||||
},
|
||||
/* 排序参数 */
|
||||
isorter: {
|
||||
column: 'receivedTaskTime',
|
||||
order: 'desc'
|
||||
},
|
||||
columns: [
|
||||
{ // 流程编号
|
||||
title: this.$t('workCenter.processCenter.processNumber'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'prcNum',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 流程类型
|
||||
title: this.$t('workCenter.processCenter.processType'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'prcType_dictText',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 流程名称
|
||||
title: this.$t('processName'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'prcName',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 发起人
|
||||
title: this.$t('workCenter.processCenter.initiator'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'createUserId_dictText',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 当前处理人
|
||||
title: this.$t('workCenter.processCenter.currentProcessor'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'handleUserId_dictText',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 接收任务时间
|
||||
title: this.$t('workCenter.processCenter.receivingTaskTime'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'receivedTaskTime',
|
||||
sorter: true,
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 完成时间
|
||||
title: this.$t('workCenter.processCenter.finishTime'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'endTime',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 流程状态
|
||||
title: this.$t('workCenter.processCenter.processState'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'prcStatus_dictText',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{
|
||||
title: this.$t('operation'),
|
||||
scopedSlots: { customRender: 'action' },
|
||||
align: 'center',
|
||||
fixed: 'right',
|
||||
width: 200
|
||||
}
|
||||
],
|
||||
url: {
|
||||
list: '/workCenter/getSentList'
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
handleTableChange (pagination, filters, sorter) {
|
||||
// 分页、排序、筛选变化时触发
|
||||
if (Object.keys(sorter).length > 0) {
|
||||
this.isorter.column = sorter.order ? sorter.field : 'receivedTaskTime'
|
||||
this.isorter.order = sorter.order === 'ascend' ? 'asc' : 'desc'
|
||||
}
|
||||
this.ipagination = pagination
|
||||
this.loadData()
|
||||
},
|
||||
// 查看
|
||||
handleDetail (record) {
|
||||
// 跳转到流程详情页
|
||||
let processKey = ''
|
||||
switch (record.prcType + '') {
|
||||
// 1.标准法规入库/变更流程
|
||||
case ProcessType.FB_ENTRY_CHANGE.value:
|
||||
processKey = ProcessKey.FB_ENTRY_CHANGE.value
|
||||
break
|
||||
// 2.征求意见流程
|
||||
case ProcessType.CONSULTATION.value:
|
||||
processKey = ProcessKey.CONSULTATION.value
|
||||
break
|
||||
// 3.项目合规评估流程
|
||||
case ProcessType.PROJECT_COMPLIANCE_EVALUATION.value:
|
||||
processKey = ProcessKey.PROJECT_COMPLIANCE_EVALUATION.value
|
||||
break
|
||||
// 4.未符合项跟踪流程
|
||||
case ProcessType.NO_MATCH_TRACKING.value:
|
||||
processKey = ProcessKey.NO_MATCH_TRACKING.value
|
||||
break
|
||||
// 5.法规合规评估流程
|
||||
case ProcessType.REGULATORY_COMPLIANCE_ASSESSMENT.value:
|
||||
processKey = ProcessKey.REGULATORY_COMPLIANCE_ASSESSMENT.value
|
||||
break
|
||||
// 6.法规采购流程
|
||||
case ProcessType.LEGAL_PROCUREMENT.value:
|
||||
processKey = ProcessKey.LEGAL_PROCUREMENT.value
|
||||
break
|
||||
// 7.企标立项/变更计划
|
||||
case ProcessType.ES_INIT_CHANGE.value:
|
||||
processKey = ProcessKey.ES_INIT_CHANGE.value
|
||||
break
|
||||
// 8.年度制修订-各部门主动上报
|
||||
case ProcessType.ES_ANNUAL_REPORT.value:
|
||||
processKey = ProcessKey.ES_ANNUAL_REPORT.value
|
||||
break
|
||||
// 9.年度制修订-标准化部门主动发起
|
||||
case ProcessType.ES_ANNUAL_INIT.value:
|
||||
processKey = ProcessKey.ES_ANNUAL_INIT.value
|
||||
break
|
||||
// 10.企标制修订流程
|
||||
case ProcessType.ES_EDIT.value:
|
||||
processKey = ProcessKey.ES_EDIT.value
|
||||
break
|
||||
// 11.企标更改流程
|
||||
case ProcessType.ES_CHANGE.value:
|
||||
processKey = ProcessKey.ES_CHANGE.value
|
||||
break
|
||||
// 12.企标复审流程
|
||||
case ProcessType.ES_RECHECK.value:
|
||||
processKey = ProcessKey.ES_RECHECK.value
|
||||
break
|
||||
// 13.企标废止流程
|
||||
case ProcessType.ES_ABOLISH.value:
|
||||
processKey = ProcessKey.ES_ABOLISH.value
|
||||
break
|
||||
// 14.企标封存流程
|
||||
case ProcessType.ES_ARCHIVE.value:
|
||||
processKey = ProcessKey.ES_ARCHIVE.value
|
||||
break
|
||||
// 15.已封存企标启用流程
|
||||
case ProcessType.ES_ENABLE.value:
|
||||
processKey = ProcessKey.ES_ENABLE.value
|
||||
break
|
||||
// 16.企标稽查计划
|
||||
case ProcessType.ES_INSPECTION_PLAN.value:
|
||||
processKey = ProcessKey.ES_INSPECTION_PLAN.value
|
||||
break
|
||||
// 17.企标稽查流程
|
||||
case ProcessType.ES_INSPECTION_PROCESS.value:
|
||||
processKey = ProcessKey.ES_INSPECTION_PROCESS.value
|
||||
break
|
||||
// 18.稽查延期申请流程
|
||||
case ProcessType.INSPECTION_EXTENSION_REQUEST_PROCESS.value:
|
||||
processKey = ProcessKey.INSPECTION_EXTENSION_REQUEST_PROCESS.value
|
||||
break
|
||||
// 19.企标稽查整改
|
||||
case ProcessType.ES_INSPECTION_RECTIFICATION.value:
|
||||
processKey = ProcessKey.ES_INSPECTION_RECTIFICATION.value
|
||||
break
|
||||
// 20.权限申请流程
|
||||
case ProcessType.PERMISSION_APPLY.value:
|
||||
processKey = ProcessKey.PERMISSION_APPLY.value
|
||||
break
|
||||
// 21.标准宣贯流程
|
||||
case ProcessType.STANDARD_PROMOTION.value:
|
||||
processKey = ProcessKey.STANDARD_PROMOTION.value
|
||||
break
|
||||
// 22.会后管理流程
|
||||
case ProcessType.POST_MEETING_MANAGE.value:
|
||||
processKey = ProcessKey.POST_MEETING_MANAGE.value
|
||||
break
|
||||
}
|
||||
this.$router.push({
|
||||
path: '/workCenter/processCenter/detail/processDetail',
|
||||
query: {
|
||||
processKey: processKey,
|
||||
processDefinitionId: record.processDefinitionId,
|
||||
processInstanceId: record.processInstanceId
|
||||
}
|
||||
})
|
||||
},
|
||||
// 强制撤回
|
||||
handleWithdrawal (record) {
|
||||
this.$confirm({
|
||||
title: this.$t('compulsoryWithdrawal'),
|
||||
content: this.$t('sureCompulsoryWithdrawal'),
|
||||
onOk: () => {
|
||||
this.loading = true
|
||||
const params = {}
|
||||
params.processInstanceId = record.processInstanceId
|
||||
params.projectId = record.projectId
|
||||
params.taskId = record.taskId
|
||||
compulsoryWithdrawal(params).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
// 判断当前删除的数据是否是最后一页的最后一条数据,如果是的话页码减一
|
||||
if (this.ipagination.current > 1 && ((this.ipagination.current - 1) * this.ipagination.pageSize) + 1 === that.ipagination.total) {
|
||||
this.ipagination.current -= 1
|
||||
}
|
||||
this.loadData()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,558 @@
|
||||
<template>
|
||||
<div>
|
||||
<!-- 搜索区域 -->
|
||||
<div class="table-page-search-wrapper">
|
||||
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
||||
<a-row :gutter="24">
|
||||
<!-- 流程名称 -->
|
||||
<a-col :span="6">
|
||||
<a-form-item :label="$t('processName')" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input :placeholder="$t('pleaseEnter')+$t('processName')" v-model="queryParam.prcName"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<!-- 流程编号 -->
|
||||
<a-col :span="6">
|
||||
<a-form-item :label="$t('workCenter.processCenter.processNumber')" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input :placeholder="$t('pleaseEnter')+$t('workCenter.processCenter.processNumber')" v-model="queryParam.prcNum"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<!-- 流程类型 -->
|
||||
<a-col :span="6">
|
||||
<a-form-item :label="$t('workCenter.processCenter.processType')" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-dict-select-tag
|
||||
:placeholder="$t('pleaseSelect')+$t('workCenter.processCenter.processType')"
|
||||
dict-code="prc_type"
|
||||
:dropdownMatchSelectWidth="false"
|
||||
v-model="queryParam.prcType">
|
||||
</j-dict-select-tag>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
<div style="float: right;overflow: hidden;" class="table-page-search-submitButtons">
|
||||
<a-button type="primary" @click="searchQuery" icon="search" style="margin-left: 8px">{{ $t('query') }}</a-button>
|
||||
<a-button type="primary" ghost @click="searchReset" icon="reload" style="margin-left: 8px">{{ $t('reset') }}</a-button>
|
||||
</div>
|
||||
|
||||
</a-row>
|
||||
</a-form>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<j-table
|
||||
:can-drag="true"
|
||||
:scroll="{x: '100%'}"
|
||||
ref="table"
|
||||
rowKey="taskId"
|
||||
:columns="columns"
|
||||
:dataSource="dataSource"
|
||||
:pagination="ipagination"
|
||||
:loading="loading"
|
||||
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
|
||||
@change="handleTableChange">
|
||||
|
||||
<!-- 操作栏 -->
|
||||
<div slot="action" slot-scope="{record}" class="action-span-cell">
|
||||
<!-- 办理 -->
|
||||
<a @click="handleTransact(record)" class="table-ope-btn">{{ $t('transact') }}</a>
|
||||
<a-divider v-if="isShowTurnTo(record)" type="vertical" />
|
||||
<!-- 转办 -->
|
||||
<a v-if="isShowTurnTo(record)" @click="handleTurnTo(record)" class="table-ope-btn">{{ $t('turnTo') }}</a>
|
||||
</div>
|
||||
|
||||
</j-table>
|
||||
</div>
|
||||
<!-- 转办需要选人 -->
|
||||
<user-select-modal ref="userSelectModal" type="radio" @change="userSelectChange"></user-select-modal>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import JTable from '@/components/jero/JTable'
|
||||
import { JeroListMixin } from '@/mixins/JeroListMixin'
|
||||
import UserSelectModal from '@/components/selection/UserSelectModal'
|
||||
import {
|
||||
activelyReportTurnTo,
|
||||
enStandardAnnulTurnTo,
|
||||
enStandardChangeTurnTo,
|
||||
enStandardEditTurnTo,
|
||||
enStandardRecheckTurnTo,
|
||||
enStandardSealSaveTurnTo,
|
||||
enStandardStartUseTurnTo,
|
||||
enterprisePlanApprovalTurnTo,
|
||||
processTransfer,
|
||||
standardizationInitTurnTo,
|
||||
transferConsultationProcess,
|
||||
transferInspectExtension,
|
||||
transferInspectPlan,
|
||||
transferInspectProcess,
|
||||
transferInspectRectify,
|
||||
transferPermissionApply,
|
||||
transferPostMeetingManage,
|
||||
transferProcurementProcess,
|
||||
turnToStandardECProcess
|
||||
} from '../../../../api/workCenter'
|
||||
import {
|
||||
ProcessType,
|
||||
EsAnnulNodes,
|
||||
EsChangeNodes,
|
||||
EsInitChangeNodes,
|
||||
EsRecheckNodes,
|
||||
EsRevisionNodes,
|
||||
EsRevisionPlanActivityReportNodes,
|
||||
EsRevisionPlanStandardizationInitNodes,
|
||||
EsSealSaveNodes,
|
||||
EsStartUseNodes,
|
||||
EsInspectionPlan,
|
||||
EsInspectionProcess,
|
||||
InspectionExtensionRequestProcess,
|
||||
PermissionApply,
|
||||
PostMeetingManage,
|
||||
FGEntryChangeProcessNode,
|
||||
ConsultationProcess,
|
||||
ProjectComplianceEvaluationProcessNode,
|
||||
ProcurementProcessNodes,
|
||||
StandardPromotion,
|
||||
NoMatchTrackingNodes,
|
||||
StandardComplianceNodes
|
||||
} from '@/enums/commonEnums'
|
||||
import { getAction } from '../../../../api/manage'
|
||||
|
||||
export default {
|
||||
name: 'TodoList',
|
||||
components: { JTable, UserSelectModal },
|
||||
mixins: [JeroListMixin],
|
||||
data () {
|
||||
return {
|
||||
labelCol: {
|
||||
span: 4
|
||||
},
|
||||
wrapperCol: {
|
||||
span: 14
|
||||
},
|
||||
/* 排序参数 */
|
||||
isorter: {
|
||||
column: 'receivedTaskTime',
|
||||
order: 'desc'
|
||||
},
|
||||
columns: [
|
||||
{ // 流程编号
|
||||
title: this.$t('workCenter.processCenter.processNumber'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'prcNum',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 流程类型
|
||||
title: this.$t('workCenter.processCenter.processType'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'prcType_dictText',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 流程名称
|
||||
title: this.$t('processName'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'prcName',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 节点名称
|
||||
title: this.$t('workCenter.processCenter.nodeName'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'taskName',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 发起人
|
||||
title: this.$t('workCenter.processCenter.initiator'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'createUserId_dictText',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 接收任务时间
|
||||
title: this.$t('workCenter.processCenter.receivingTaskTime'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'receivedTaskTime',
|
||||
sorter: true,
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{
|
||||
title: this.$t('operation'),
|
||||
scopedSlots: { customRender: 'action' },
|
||||
align: 'center',
|
||||
fixed: 'right',
|
||||
width: 200
|
||||
}
|
||||
],
|
||||
url: {
|
||||
list: '/workCenter/getTodoList'
|
||||
},
|
||||
currentTurnTo: {}, // 当前转办
|
||||
// 每个流程不显示待办按钮的节点nodeId
|
||||
notTurnToBtn: {
|
||||
// 标准法规入库/变更流程
|
||||
[ProcessType.FB_ENTRY_CHANGE.value]: [FGEntryChangeProcessNode.initiate.value],
|
||||
// 征求意见流程
|
||||
[ProcessType.CONSULTATION.value]: [ConsultationProcess.initiate.value],
|
||||
// 项目合规评估流程
|
||||
[ProcessType.PROJECT_COMPLIANCE_EVALUATION.value]: [ProjectComplianceEvaluationProcessNode.initiate.value],
|
||||
// 未符合项跟踪流程
|
||||
[ProcessType.NO_MATCH_TRACKING.value]: [NoMatchTrackingNodes.initial.value],
|
||||
// 法规合规评估流程
|
||||
[ProcessType.REGULATORY_COMPLIANCE_ASSESSMENT.value]: [
|
||||
StandardComplianceNodes.initial.value, StandardComplianceNodes.designEngineerWriteProject.value
|
||||
],
|
||||
// 法规采购流程
|
||||
[ProcessType.LEGAL_PROCUREMENT.value]: [ProcurementProcessNodes.initiate.value, ProcurementProcessNodes.regulatoryEngineerConfirmation.value],
|
||||
// 企标立项/变更计划
|
||||
[ProcessType.ES_INIT_CHANGE.value]: [
|
||||
EsInitChangeNodes.mainDrafterStart.value,
|
||||
EsInitChangeNodes.mainDrafterCopy.value
|
||||
],
|
||||
// 年度制修订-各部门主动上报
|
||||
[ProcessType.ES_ANNUAL_REPORT.value]: [
|
||||
EsRevisionPlanActivityReportNodes.standardizationStart.value,
|
||||
EsRevisionPlanActivityReportNodes.standardizationSumUp.value
|
||||
],
|
||||
// 年度制修订-标准化部门主动发起
|
||||
[ProcessType.ES_ANNUAL_INIT.value]: [
|
||||
EsRevisionPlanStandardizationInitNodes.standardizationStart.value,
|
||||
EsRevisionPlanStandardizationInitNodes.standardizationUpdate.value,
|
||||
EsRevisionPlanStandardizationInitNodes.mainDrafterEnterInfo.value,
|
||||
EsRevisionPlanStandardizationInitNodes.standardizationSumUp.value,
|
||||
EsRevisionPlanStandardizationInitNodes.standardizationTwoUpdate.value
|
||||
],
|
||||
// 企标制修订流程
|
||||
[ProcessType.ES_EDIT.value]: [
|
||||
EsRevisionNodes.mainDrafterSend.value,
|
||||
EsRevisionNodes.mainDrafterPublish.value
|
||||
],
|
||||
// 企标更改流程
|
||||
[ProcessType.ES_CHANGE.value]: [
|
||||
EsChangeNodes.mainDrafterStart.value
|
||||
],
|
||||
// 企标复审流程
|
||||
[ProcessType.ES_RECHECK.value]: [
|
||||
EsRecheckNodes.standardizationSelectContact.value,
|
||||
EsRecheckNodes.initiatorStart.value
|
||||
],
|
||||
// 企标废止流程
|
||||
[ProcessType.ES_ABOLISH.value]: [
|
||||
EsAnnulNodes.initiatorStart.value
|
||||
],
|
||||
// 企标封存流程
|
||||
[ProcessType.ES_ARCHIVE.value]: [
|
||||
EsSealSaveNodes.initiatorStart.value
|
||||
],
|
||||
// 已封存企标启用流程
|
||||
[ProcessType.ES_ENABLE.value]: [
|
||||
EsStartUseNodes.initiatorStart.value
|
||||
],
|
||||
// 企标稽查计划
|
||||
[ProcessType.ES_INSPECTION_PLAN.value]: [
|
||||
EsInspectionPlan.initiate.value,
|
||||
EsInspectionPlan.fillInComments.value,
|
||||
EsInspectionPlan.liaisonCollect.value
|
||||
],
|
||||
// 企标稽查流程
|
||||
[ProcessType.ES_INSPECTION_PROCESS.value]: [EsInspectionProcess.initiate.value],
|
||||
// 稽查延期申请流程
|
||||
[ProcessType.INSPECTION_EXTENSION_REQUEST_PROCESS.value]: [InspectionExtensionRequestProcess.initiate.value],
|
||||
// 企标稽查整改
|
||||
[ProcessType.ES_INSPECTION_RECTIFICATION.value]: [],
|
||||
// 权限申请流程
|
||||
[ProcessType.PERMISSION_APPLY.value]: [PermissionApply.initiate.value],
|
||||
// 标准宣贯流程
|
||||
[ProcessType.STANDARD_PROMOTION.value]: [StandardPromotion.initiate.value],
|
||||
// 会后管理流程
|
||||
[ProcessType.POST_MEETING_MANAGE.value]: [PostMeetingManage.initiate.value]
|
||||
},
|
||||
disableMixinCreated: true
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 初始化查询参数
|
||||
initQueryParam () {
|
||||
const { prcName, prcNum, prcType } = this.$route.query
|
||||
this.$set(this.queryParam, 'prcName', prcName)
|
||||
this.$set(this.queryParam, 'prcNum', prcNum)
|
||||
this.$set(this.queryParam, 'prcType', prcType)
|
||||
},
|
||||
loadData (arg) {
|
||||
if (!this.url.list) {
|
||||
this.$message.warning('请设置url.list属性!')
|
||||
return
|
||||
}
|
||||
// 加载数据 若传入参数1则加载第一页的内容
|
||||
if (arg === 1) {
|
||||
this.ipagination.current = 1
|
||||
}
|
||||
const params = this.getQueryParams()// 查询条件
|
||||
this.loading = true
|
||||
getAction(this.url.list, params).then((res) => {
|
||||
if (res.success) {
|
||||
if ((res.result.records || res.result).length === 0 && this.ipagination.current !== 1) {
|
||||
this.ipagination.current--
|
||||
this.loadData()
|
||||
this.loading = false
|
||||
return
|
||||
}
|
||||
// update-begin---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------
|
||||
this.dataSource = res.result.records || res.result
|
||||
if (res.result.total) {
|
||||
this.ipagination.total = res.result.total
|
||||
} else {
|
||||
this.ipagination.total = 0
|
||||
}
|
||||
// update-end---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
handleTableChange (pagination, filters, sorter) {
|
||||
// 分页、排序、筛选变化时触发
|
||||
if (Object.keys(sorter).length > 0) {
|
||||
this.isorter.column = sorter.order ? sorter.field : 'receivedTaskTime'
|
||||
this.isorter.order = sorter.order === 'ascend' ? 'asc' : 'desc'
|
||||
}
|
||||
this.ipagination = pagination
|
||||
this.loadData()
|
||||
},
|
||||
// 办理
|
||||
handleTransact (record) {
|
||||
let path = ''
|
||||
// 跳转到对应流程页面
|
||||
switch (record.prcType + '') {
|
||||
// 标准法规入库/变更流程
|
||||
case '1':
|
||||
path = '/workCenter/StandardEntryOrChangeProcess'
|
||||
break
|
||||
// 标准征求意见流程
|
||||
case '2':
|
||||
path = '/workCenter/StandardConsultationProcess'
|
||||
break
|
||||
// 项目合规评估流程
|
||||
case '3':
|
||||
path = '/workCenter/ProjectComplianceEvaluationProcess'
|
||||
break
|
||||
// 未符合项跟踪流程
|
||||
case '4':
|
||||
path = '/workCenter/NoMatchTrackingProcess'
|
||||
break
|
||||
// 法规合规评估流程
|
||||
case '5':
|
||||
path = '/workCenter/StandardComplianceProcess'
|
||||
break
|
||||
// 法规采购流程
|
||||
case '6':
|
||||
path = '/workCenter/StandardProcurementProcess'
|
||||
break
|
||||
// 企标立项、变更计划
|
||||
case '7':
|
||||
path = '/workCenter/enterpriseStandardInitChange/planApprovalChangeFlow'
|
||||
break
|
||||
// 年度制修订计划(各部门主动上报)
|
||||
case '8':
|
||||
path = '/workCenter/annualRevisionPlanActivelyReport/revisionPlanActivelyReportFlow'
|
||||
break
|
||||
// 年度制修订计划(标准化发起)
|
||||
case '9':
|
||||
path = '/workCenter/annualRevisionPlanStandardizationInit/revisionPlanStandardizationInitFlow'
|
||||
break
|
||||
// 企标制修订流程
|
||||
case '10':
|
||||
path = '/workCenter/enterpriseStandardRevision/enterpriseStandardRevisionFlow'
|
||||
break
|
||||
// 企标更改流程
|
||||
case '11':
|
||||
path = '/workCenter/enterpriseStandardChange/enterpriseStandardChangeFlow'
|
||||
break
|
||||
// 企标复审流程
|
||||
case '12':
|
||||
path = '/workCenter/enterpriseStandardRecheck/enterpriseStandardRecheckFlow'
|
||||
break
|
||||
// 企标废止流程
|
||||
case '13':
|
||||
path = '/workCenter/enterpriseStandardAnnul/enterpriseStandardAnnulFlow'
|
||||
break
|
||||
// 企标封存流程
|
||||
case '14':
|
||||
path = '/workCenter/enterpriseStandardSealSave/enterpriseStandardSealSaveFlow'
|
||||
break
|
||||
// 已封存企标启用流程
|
||||
case '15':
|
||||
path = '/workCenter/enterpriseStandardStartUse/enterpriseStandardStartUseFlow'
|
||||
break
|
||||
// 企标稽查计划
|
||||
case '16':
|
||||
path = '/workCenter/EnterpriseStandardInspectionPlan'
|
||||
break
|
||||
// 企标稽查流程
|
||||
case '17':
|
||||
path = '/workCenter/EnterpriseStandardInspectionProcess'
|
||||
break
|
||||
// 稽查延期申请流程
|
||||
case '18':
|
||||
path = '/workCenter/InspectionExtensionRequestProcess'
|
||||
break
|
||||
// 企标稽查整改
|
||||
case '19':
|
||||
path = '/workCenter/EnterpriseStandardInspectionRectification'
|
||||
break
|
||||
// 权限申请流程
|
||||
case '20':
|
||||
path = '/workCenter/PermissionApplicationProcess'
|
||||
break
|
||||
// 标准宣贯流程
|
||||
case '21':
|
||||
path = '/workCenter/StandardPromotionProcess'
|
||||
break
|
||||
// 会后管理流程
|
||||
case '22':
|
||||
path = '/workCenter/PostMeetingManageProcess'
|
||||
break
|
||||
}
|
||||
// 征求意见流程,超期后不能继续办理
|
||||
if (record.prcType + '' === '2' && record.overDue === '1') {
|
||||
this.$message.warning(this.$t('workCenter.standardConsultationProcess.processExpiration'))
|
||||
return
|
||||
}
|
||||
const query = {}
|
||||
if (record.projectId) {
|
||||
query.projectId = record.projectId
|
||||
}
|
||||
query.taskName = record.taskName
|
||||
query.taskId = record.taskId // 任务id
|
||||
query.processInstanceId = record.processInstanceId // 流程实例id,必须传人员信息右侧表格查询需要用
|
||||
query.nodeId = record.nodeId // 节点的id
|
||||
this.$router.push({
|
||||
path: path,
|
||||
query: query
|
||||
})
|
||||
},
|
||||
// 是否显示转办按钮
|
||||
isShowTurnTo (record) {
|
||||
if (record.prcType && record.nodeId) {
|
||||
return !this.notTurnToBtn[record.prcType + ''].some(tt => record.nodeId.indexOf(tt) !== -1)
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
},
|
||||
// 转办
|
||||
handleTurnTo (record) {
|
||||
this.currentTurnTo = record
|
||||
this.$refs.userSelectModal.open()
|
||||
},
|
||||
// 转办选完人的回调
|
||||
userSelectChange (value) {
|
||||
if (value) {
|
||||
let func
|
||||
const param = {}
|
||||
switch (this.currentTurnTo.prcType + '') {
|
||||
// 标准法规入库/变更流程
|
||||
case '1':
|
||||
func = turnToStandardECProcess
|
||||
break
|
||||
// 标准征求意见流程
|
||||
case '2':
|
||||
func = transferConsultationProcess
|
||||
param.projectId = this.currentTurnTo.projectId
|
||||
break
|
||||
// 项目合规评估流程
|
||||
case '3':
|
||||
// 未符合项跟踪流程
|
||||
case '4':
|
||||
// 法规合规评估
|
||||
case '5':
|
||||
func = processTransfer
|
||||
break
|
||||
// 法规采购流程
|
||||
case '6':
|
||||
func = transferProcurementProcess
|
||||
break
|
||||
// 企标立项、变更计划
|
||||
case '7':
|
||||
func = enterprisePlanApprovalTurnTo
|
||||
break
|
||||
// 年度制修订计划(各部门主动上报)
|
||||
case '8':
|
||||
func = activelyReportTurnTo
|
||||
break
|
||||
// 年度制修订计划(标准化发起)
|
||||
case '9':
|
||||
func = standardizationInitTurnTo
|
||||
break
|
||||
// 企标制修订流程
|
||||
case '10':
|
||||
func = enStandardEditTurnTo
|
||||
break
|
||||
// 企标更改流程
|
||||
case '11':
|
||||
func = enStandardChangeTurnTo
|
||||
break
|
||||
// 企标复审流程
|
||||
case '12':
|
||||
func = enStandardRecheckTurnTo
|
||||
break
|
||||
// 企标废止流程
|
||||
case '13':
|
||||
func = enStandardAnnulTurnTo
|
||||
break
|
||||
// 企标封存流程
|
||||
case '14':
|
||||
func = enStandardSealSaveTurnTo
|
||||
break
|
||||
// 已封存企标启用流程
|
||||
case '15':
|
||||
func = enStandardStartUseTurnTo
|
||||
break
|
||||
// 企标稽查计划
|
||||
case '16':
|
||||
func = transferInspectPlan
|
||||
break
|
||||
// 企标稽查流程
|
||||
case '17':
|
||||
func = transferInspectProcess
|
||||
break
|
||||
// 稽查延期申请流程
|
||||
case '18':
|
||||
func = transferInspectExtension
|
||||
break
|
||||
// 企标稽查整改
|
||||
case '19':
|
||||
func = transferInspectRectify
|
||||
break
|
||||
// 权限申请流程
|
||||
case '20':
|
||||
func = transferPermissionApply
|
||||
break
|
||||
// 标准宣贯流程
|
||||
// 会后管理流程
|
||||
case '22':
|
||||
func = transferPostMeetingManage
|
||||
break
|
||||
}
|
||||
param.userId = value
|
||||
param.taskId = this.currentTurnTo.taskId
|
||||
func(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.loadData()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,97 @@
|
||||
<template>
|
||||
<internal-detail-page :title="$route.meta.title" :content-padding="0" :loading="loading">
|
||||
<div class="detail-page-scroll-content">
|
||||
<!--流程图dom-->
|
||||
<flow-chart dom-id="flowChart" :chart-data="chartData" @add="handleAdd" @delete="handleDelete" />
|
||||
</div>
|
||||
<div class="detail-page-bottom-operate-box">
|
||||
<!--取消-->
|
||||
<a-button type="primary" :loading="loading" ghost @click="handleCancel">{{ $t('cancel') }}</a-button>
|
||||
<!--保存-->
|
||||
<a-button type="primary" :loading="loading" @click="handleSubmit">{{ $t('preservation') }}</a-button>
|
||||
</div>
|
||||
|
||||
<flow-node-modal ref="modalForm" @ok="modalFormOk" />
|
||||
</internal-detail-page>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import InternalDetailPage from '../../../components/InternalDetailPage.vue'
|
||||
import { getFlowNodeList, deleteFlowNode } from '../../../api/workCenter.js'
|
||||
import FlowNodeModal from './modules/FlowNodeModal.vue'
|
||||
import FlowChart from '../../../components/FlowChart.vue'
|
||||
|
||||
export default {
|
||||
name: 'EditFlowNode',
|
||||
components: { InternalDetailPage, FlowNodeModal, FlowChart },
|
||||
data () {
|
||||
return {
|
||||
loading: false,
|
||||
chartData: {},
|
||||
graph: null
|
||||
}
|
||||
},
|
||||
mounted () {
|
||||
this.initProcessNode()
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
* 获取流程节点信息
|
||||
*/
|
||||
initProcessNode () {
|
||||
this.loading = true
|
||||
this.chartData = {}
|
||||
getFlowNodeList({ modelId: this.$route.query.id }).then(res => {
|
||||
if (res.success) {
|
||||
this.chartData = Object.assign({}, res.result || {})
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
handleAdd (item) {
|
||||
this.$refs.modalForm.title = this.$t('newlyAdded')
|
||||
this.$refs.modalForm.add({
|
||||
modelId: this.$route.query.id,
|
||||
xmlNodeId: item._cfg.id
|
||||
})
|
||||
},
|
||||
handleDelete (item) {
|
||||
this.$confirm({
|
||||
title: this.$t('confirmDeletion'),
|
||||
content: this.$t('areYouSure'),
|
||||
onOk: function () {
|
||||
deleteFlowNode({ xmlNodeId: item._cfg.id }).then((res) => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.initProcessNode()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
modalFormOk () {
|
||||
this.initProcessNode()
|
||||
},
|
||||
handleCancel () {
|
||||
this.$router.go(-1)
|
||||
},
|
||||
handleSubmit () {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
@import '~@assets/less/common.less';
|
||||
|
||||
#flowChart {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,131 @@
|
||||
<template>
|
||||
<a-card :bordered="false">
|
||||
<div>
|
||||
<j-table
|
||||
:columns="columns"
|
||||
:dataSource="dataSource"
|
||||
:can-drag="true"
|
||||
rowKey="id"
|
||||
:pagination="false"
|
||||
:scroll="{x: '100%'}"
|
||||
:operation-list="operationList"
|
||||
:loading="loading"
|
||||
@change="handleTableChange"
|
||||
@operationClick="operationClick">
|
||||
</j-table>
|
||||
</div>
|
||||
</a-card>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import JTable from '../../../components/jero/JTable.vue'
|
||||
import { JeroListMixin } from '../../../mixins/JeroListMixin.js'
|
||||
import { deployWorkFlow } from '../../../api/workCenter.js'
|
||||
|
||||
export default {
|
||||
name: 'ProcessConfig',
|
||||
components: { JTable },
|
||||
mixins: [JeroListMixin],
|
||||
data () {
|
||||
return {
|
||||
columns: [
|
||||
// 序号
|
||||
{
|
||||
title: this.$t('serialNumber'),
|
||||
dataIndex: '',
|
||||
key: 'rowIndex',
|
||||
width: 60,
|
||||
align: 'center',
|
||||
customRender: function (t, r, index) {
|
||||
return parseInt(index) + 1
|
||||
}
|
||||
},
|
||||
// 流程名称
|
||||
{
|
||||
dataIndex: 'name',
|
||||
title: this.$t('processName'),
|
||||
width: 250
|
||||
},
|
||||
// 流程类型
|
||||
{
|
||||
dataIndex: 'category',
|
||||
title: this.$t('workCenter.processConfig.processType'),
|
||||
width: 250
|
||||
},
|
||||
// 创建时间
|
||||
{
|
||||
dataIndex: 'createTime',
|
||||
title: this.$t('createTime'),
|
||||
width: 250
|
||||
},
|
||||
// 操作
|
||||
{
|
||||
title: this.$t('operation'),
|
||||
fixed: 'right',
|
||||
width: 180,
|
||||
scopedSlots: { customRender: 'action' }
|
||||
}
|
||||
],
|
||||
url: {
|
||||
list: '/activitiModel/modelList'
|
||||
},
|
||||
operationList: [
|
||||
// 编辑流程图
|
||||
{
|
||||
text: this.$t('workCenter.processConfig.editFlowchart'),
|
||||
clickEvent: 'handleEditFlowchart',
|
||||
has: 'processConfig:editFlowchart'
|
||||
},
|
||||
// 编辑流程节点
|
||||
{
|
||||
text: this.$t('workCenter.processConfig.editFlowNode'),
|
||||
clickEvent: 'handleEditFlowNode',
|
||||
has: 'processConfig:editFlowNode'
|
||||
},
|
||||
// 部署
|
||||
{
|
||||
text: this.$t('workCenter.processConfig.deploy'),
|
||||
clickEvent: 'handleDeploy',
|
||||
has: 'processConfig:deploy'
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
* 编辑流程图
|
||||
* @param id
|
||||
*/
|
||||
handleEditFlowchart ({ id }) {
|
||||
window.open('/laws-chery/modeler.html?modelId=' + id, '_blank')
|
||||
},
|
||||
handleEditFlowNode ({ id }) {
|
||||
this.$router.push({
|
||||
path: '/workCenter/EditFlowNode',
|
||||
query: { id }
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 部署
|
||||
* @param id
|
||||
*/
|
||||
handleDeploy ({ id }) {
|
||||
this.loading = true
|
||||
deployWorkFlow({ modelId: id }).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.modalFormOk()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,91 @@
|
||||
<template>
|
||||
<j-modal
|
||||
:title="title"
|
||||
:maskClosable="false"
|
||||
:width="width"
|
||||
:visible="visible"
|
||||
:confirm-loading="confirmLoading"
|
||||
switchFullscreen
|
||||
@ok="handleOk"
|
||||
@cancel="handleCancel">
|
||||
|
||||
<a-form :form="form">
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('standardRegulationLibrary.nodeName')">
|
||||
<a-input :placeholder="$t('pleaseEnter') + $t('standardRegulationLibrary.nodeName')"
|
||||
:maxLength="50"
|
||||
v-decorator="['nodeName', validatorRules.nodeName]" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
|
||||
</j-modal>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { addFlowNode } from '../../../../api/workCenter.js'
|
||||
|
||||
export default {
|
||||
name: 'FlowNodeModal',
|
||||
data () {
|
||||
return {
|
||||
title: this.$t('operation'),
|
||||
width: 800,
|
||||
visible: false,
|
||||
confirmLoading: false,
|
||||
form: this.$form.createForm(this),
|
||||
model: {},
|
||||
labelCol: {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 4 }
|
||||
},
|
||||
wrapperCol: {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 20 }
|
||||
},
|
||||
validatorRules: {
|
||||
// 节点名称
|
||||
nodeName: {
|
||||
rules: [{ required: true, message: this.$t('pleaseEnter') + this.$t('standardRegulationLibrary.nodeName') }],
|
||||
validateTrigger: 'blur'
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
add (record) {
|
||||
this.visible = true
|
||||
this.model = Object.assign({}, record)
|
||||
},
|
||||
handleOk () {
|
||||
this.form.validateFields((errors, values) => {
|
||||
if (!errors) {
|
||||
const formData = Object.assign(this.model, values)
|
||||
let submitFunc
|
||||
if (!this.model.id) {
|
||||
submitFunc = addFlowNode
|
||||
}
|
||||
this.confirmLoading = true
|
||||
submitFunc(formData).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.$emit('ok')
|
||||
this.handleCancel()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.confirmLoading = false
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
handleCancel () {
|
||||
this.visible = false
|
||||
this.form.resetFields()
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
|
||||
</style>
|
||||
Reference in New Issue
Block a user