@ -1,51 +1,53 @@
< template >
< ContentWrap >
<!-- 第一步 , 通过流程定义的列表 , 选择对应的流程 -- >
< div v-if = "!selectProcessInstance ">
< XTable @register ="registerTable" >
< ! - - 流程分类 - - >
< template # category_ default= "{ row } " >
< D ictT ag :type = "DICT_TYPE.BPM_MODEL_CATEGORY" :value = "Number( row? .category) " / >
<!-- 第一步 , 通过流程定义的列表 , 选择对应的流程 -- >
< ContentWrap v-if = "!selectProcessInstance" >
< el -table v-loading = "loading" :data="list ">
< el -table -column label = "流程名称" align = "center" prop = "name" / >
< el-table-column label = " 流程分类" align = "center" prop = "category" >
< template # default = "scope " >
< d ict-t ag :type = "DICT_TYPE.BPM_MODEL_CATEGORY" :value = "scope. row.category" / >
< / template >
< template # version_default = "{ row }" >
< el-tag v-if = "row" > v {{ row.version }} < / el -tag >
< / el-table-column >
< el-table-column label = "流程版本" align = "center" p rop = "version" >
< template # default = "scope" >
< el-tag > v { { scope . row . version } } < / el-tag >
< / template >
< template # actionbtns_default = "{ row }" >
< XTextButton preIcon = "ep:plus" title = "选择" @click ="handleSelect(row)" / >
< / el-table-column >
< el-table-column label = "流程描述" align = "center" prop = "description" / >
< el-table-column label = "操作" align = "center" >
< template # default = "scope" >
< el-button link type = "primary" @click ="handleSelect(scope.row)" >
< Icon icon = "ep:plus" / > 选择
< / el-button >
< / template >
< / XTable >
< / div >
<!-- 第二步 , 填写表单 , 进行流程的提交 -- >
< div v-else >
< el -card class = "box-card" >
< div class = "clearfix" >
< span class = "el-icon-document" > 申请信息 【 { { selectProcessInstance . name } } 】 < / span >
< XButton
style = "float: right"
type = "primary"
preI con = "ep:delete"
title = "选择其它流程"
@click ="selectProcessInstance = undefined"
/ >
< / div >
< el-col :span = "16" :offset = "6" style = "margin-top: 20px" >
< form-create
:rule = "detailForm.rule "
v -model :api = "fApi "
:option = "detailForm.option"
@submit ="submitForm"
/ >
< / el-col >
< / el-card >
<!-- 流程图预览 -- >
< ProcessInstanceBpmnViewer :bpmn-xml = "bpmnXML" / >
< / div >
< / el-table-column >
< / el-table >
< / ContentWrap >
<!-- 第二步 , 填写表单 , 进行流程的提交 -- >
< ContentWrap v-else >
< el -card class = "box-card" >
< div class = "clearfix" >
< span class = "el-icon-document" > 申请信息 【 { { selectProcessInstance . name } } 】 < / span >
< el-button style = "float: right" type = "primary" @click ="selectProcessInstance = undefined" >
< Icon i con= "ep:delete" / > 选择其它流程
< / el-button >
< / div >
< el-col :span = "16" :offset = "6" style = "margin-top: 20px" >
< form-create
:rule = "detailForm.rule"
v -model :api = "fApi"
:option = "detailForm.option "
@submit ="submitForm "
/ >
< / el-col >
< / el-card >
<!-- 流程图预览 -- >
< ProcessInstanceBpmnViewer :bpmn-xml = "bpmnXML" / >
< / ContentWrap >
< / template >
< script setup lang = "ts" >
import { DICT _TYPE } from '@/utils/dict'
// 业务相关的 import
import { allSchemas } from './process.create'
import * as DefinitionApi from '@/api/bpm/definition'
import * as ProcessInstanceApi from '@/api/bpm/processInstance'
import { setConfAndFields2 } from '@/utils/formCreate'
@ -55,28 +57,32 @@ const router = useRouter() // 路由
const message = useMessage ( ) // 消息
// ========== 列表相关 ==========
const [ registerTable ] = useXTable ( {
allSchemas : allSchemas ,
params : {
suspensionState : 1
} ,
getListApi : DefinitionApi . getProcessDefinitionList ,
isList : true
const loading = ref ( true ) // 列表的加载中
const list = ref ( [ ] ) // 列表的数据
const queryParams = reactive ( {
suspensionState : 1
} )
/** 查询列表 */
const getList = async ( ) => {
loading . value = true
try {
list . value = await DefinitionApi . getProcessDefinitionList ( queryParams )
} finally {
loading . value = false
}
}
// ========== 表单相关 ==========
const bpmnXML = ref ( null ) // BPMN 数据
const fApi = ref < ApiAttrs > ( )
// 流程表单详情
const detailForm = ref ( {
// 流程表单详情
rule : [ ] ,
option : { }
} )
// 流程表单
const selectProcessInstance = ref ( ) // 选择的流程实例
/** 处理选择流程的按钮操作 **/
const handleSelect = async ( row ) => {
// 设置选择的流程
@ -86,11 +92,8 @@ const handleSelect = async (row) => {
if ( row . formType == 10 ) {
// 设置表单
setConfAndFields2 ( detailForm , row . formConf , row . formFields )
// 加载流程图
DefinitionApi . getProcessDefinitionBpmnXML ( row . id ) . then ( ( response ) => {
bpmnXML . value = response
} )
bpmnXML . value = await DefinitionApi. getProcessDefinitionBpmnXML ( row . id )
// 情况二:业务表单
} else if ( row . formCustomCreatePath ) {
await router . push ( {
@ -105,7 +108,6 @@ const submitForm = async (formData) => {
if ( ! fApi . value || ! selectProcessInstance . value ) {
return
}
// 提交请求
fApi . value . btn . loading ( true )
try {
@ -121,8 +123,8 @@ const submitForm = async (formData) => {
}
}
// ========== 流程图相关 ==========
// // BPMN 数据
const bpmnXML = ref ( null )
/** 初始化 */
onMounted ( ( ) => {
getList ( )
} )
< / script >