|
|
@ -1,58 +1,31 @@ |
|
|
|
<template> |
|
|
|
<ContentWrap> |
|
|
|
<!-- 搜索工作栏 --> |
|
|
|
<el-form |
|
|
|
class="-mb-15px" |
|
|
|
:model="queryParams" |
|
|
|
ref="queryFormRef" |
|
|
|
:inline="true" |
|
|
|
label-width="68px" |
|
|
|
> |
|
|
|
<el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" label-width="68px"> |
|
|
|
<el-form-item label="流程标识" prop="key"> |
|
|
|
<el-input |
|
|
|
v-model="queryParams.key" |
|
|
|
placeholder="请输入流程标识" |
|
|
|
clearable |
|
|
|
@keyup.enter="handleQuery" |
|
|
|
class="!w-240px" |
|
|
|
/> |
|
|
|
<el-input v-model="queryParams.key" placeholder="请输入流程标识" clearable @keyup.enter="handleQuery" class="!w-240px" /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="流程名称" prop="name"> |
|
|
|
<el-input |
|
|
|
v-model="queryParams.name" |
|
|
|
placeholder="请输入流程名称" |
|
|
|
clearable |
|
|
|
@keyup.enter="handleQuery" |
|
|
|
class="!w-240px" |
|
|
|
/> |
|
|
|
<el-input v-model="queryParams.name" placeholder="请输入流程名称" clearable @keyup.enter="handleQuery" |
|
|
|
class="!w-240px" /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="流程分类" prop="category"> |
|
|
|
<el-select |
|
|
|
v-model="queryParams.category" |
|
|
|
placeholder="请选择流程分类" |
|
|
|
clearable |
|
|
|
class="!w-240px" |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="dict in getIntDictOptions(DICT_TYPE.BPM_MODEL_CATEGORY)" |
|
|
|
:key="dict.value" |
|
|
|
:label="dict.label" |
|
|
|
:value="dict.value" |
|
|
|
/> |
|
|
|
<el-select v-model="queryParams.category" placeholder="请选择流程分类" clearable class="!w-240px"> |
|
|
|
<el-option v-for="dict in getIntDictOptions(DICT_TYPE.BPM_MODEL_CATEGORY)" :key="dict.value" :label="dict.label" |
|
|
|
:value="dict.value" /> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item> |
|
|
|
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button> |
|
|
|
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button> |
|
|
|
<el-button |
|
|
|
type="primary" |
|
|
|
plain |
|
|
|
@click="openForm('create')" |
|
|
|
v-hasPermi="['bpm:model:create']" |
|
|
|
> |
|
|
|
<el-button type="info" plain @click="handleQuery"> |
|
|
|
<Icon icon="ep:search" class="mr-5px" /> 搜索 |
|
|
|
</el-button> |
|
|
|
<el-button type="info" plain @click="resetQuery"> |
|
|
|
<Icon icon="ep:refresh" class="mr-5px" /> 重置 |
|
|
|
</el-button> |
|
|
|
<el-button type="primary" @click="openForm('create')" v-hasPermi="['bpm:model:create']"> |
|
|
|
<Icon icon="ep:plus" class="mr-5px" /> 新建流程 |
|
|
|
</el-button> |
|
|
|
<el-button type="success" plain @click="openImportForm" v-hasPermi="['bpm:model:import']"> |
|
|
|
<el-button type="success" @click="openImportForm" v-hasPermi="['bpm:model:import']"> |
|
|
|
<Icon icon="ep:upload" class="mr-5px" /> 导入流程 |
|
|
|
</el-button> |
|
|
|
</el-form-item> |
|
|
@ -75,41 +48,20 @@ |
|
|
|
<dict-tag :type="DICT_TYPE.BPM_MODEL_CATEGORY" :value="scope.row.category" /> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="表单信息" align="center" prop="formType" width="200"> |
|
|
|
<el-table-column label="表单信息" align="center" prop="formType"> |
|
|
|
<template #default="scope"> |
|
|
|
<el-button |
|
|
|
v-if="scope.row.formType === 10" |
|
|
|
type="primary" |
|
|
|
link |
|
|
|
@click="handleFormDetail(scope.row)" |
|
|
|
> |
|
|
|
<el-button v-if="scope.row.formType === 10" type="primary" link @click="handleFormDetail(scope.row)"> |
|
|
|
<span>{{ scope.row.formName }}</span> |
|
|
|
</el-button> |
|
|
|
<el-button |
|
|
|
v-else-if="scope.row.formType === 20" |
|
|
|
type="primary" |
|
|
|
link |
|
|
|
@click="handleFormDetail(scope.row)" |
|
|
|
> |
|
|
|
<el-button v-else-if="scope.row.formType === 20" type="primary" link @click="handleFormDetail(scope.row)"> |
|
|
|
<span>{{ scope.row.formCustomCreatePath }}</span> |
|
|
|
</el-button> |
|
|
|
<label v-else>暂无表单</label> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
label="创建时间" |
|
|
|
align="center" |
|
|
|
prop="createTime" |
|
|
|
width="180" |
|
|
|
:formatter="dateFormatter" |
|
|
|
/> |
|
|
|
<el-table-column label="创建时间" align="center" prop="createTime" width="180" :formatter="dateFormatter" /> |
|
|
|
<el-table-column label="最新部署的流程定义" align="center"> |
|
|
|
<el-table-column |
|
|
|
label="流程版本" |
|
|
|
align="center" |
|
|
|
prop="processDefinition.version" |
|
|
|
width="100" |
|
|
|
> |
|
|
|
<el-table-column label="流程版本" align="center" prop="processDefinition.version" width="100"> |
|
|
|
<template #default="scope"> |
|
|
|
<el-tag v-if="scope.row.processDefinition"> |
|
|
|
v{{ scope.row.processDefinition.version }} |
|
|
@ -117,20 +69,10 @@ |
|
|
|
<el-tag v-else type="warning">未部署</el-tag> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
label="激活状态" |
|
|
|
align="center" |
|
|
|
prop="processDefinition.version" |
|
|
|
width="85" |
|
|
|
> |
|
|
|
<el-table-column label="激活状态" align="center" prop="processDefinition.version" width="85"> |
|
|
|
<template #default="scope"> |
|
|
|
<el-switch |
|
|
|
v-if="scope.row.processDefinition" |
|
|
|
v-model="scope.row.processDefinition.suspensionState" |
|
|
|
:active-value="1" |
|
|
|
:inactive-value="2" |
|
|
|
@change="handleChangeState(scope.row)" |
|
|
|
/> |
|
|
|
<el-switch v-if="scope.row.processDefinition" v-model="scope.row.processDefinition.suspensionState" |
|
|
|
:active-value="1" :inactive-value="2" @change="handleChangeState(scope.row)" /> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="部署时间" align="center" prop="deploymentTime" width="180"> |
|
|
@ -141,66 +83,39 @@ |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="操作" align="center" width="240" fixed="right"> |
|
|
|
<el-table-column label="操作" align="center" width="300" fixed="right"> |
|
|
|
<template #default="scope"> |
|
|
|
<el-button |
|
|
|
link |
|
|
|
type="primary" |
|
|
|
@click="openForm('update', scope.row.id)" |
|
|
|
v-hasPermi="['bpm:model:update']" |
|
|
|
> |
|
|
|
<el-button link type="primary" @click="openForm('update', scope.row.id)" v-hasPermi="['bpm:model:update']"> |
|
|
|
<Icon icon="ep:edit" /> |
|
|
|
修改流程 |
|
|
|
</el-button> |
|
|
|
<el-button |
|
|
|
link |
|
|
|
type="primary" |
|
|
|
@click="handleDesign(scope.row)" |
|
|
|
v-hasPermi="['bpm:model:update']" |
|
|
|
> |
|
|
|
<el-button link type="primary" @click="handleDesign(scope.row)" v-hasPermi="['bpm:model:update']"> |
|
|
|
<Icon icon="fa-solid:ruler" /> |
|
|
|
设计流程 |
|
|
|
</el-button> |
|
|
|
<el-button |
|
|
|
link |
|
|
|
type="primary" |
|
|
|
@click="handleAssignRule(scope.row)" |
|
|
|
v-hasPermi="['bpm:task-assign-rule:query']" |
|
|
|
> |
|
|
|
<el-button link type="primary" @click="handleAssignRule(scope.row)" v-hasPermi="['bpm:task-assign-rule:query']"> |
|
|
|
<Icon icon="fa-solid:tasks" /> |
|
|
|
分配规则 |
|
|
|
</el-button> |
|
|
|
<el-button |
|
|
|
link |
|
|
|
type="primary" |
|
|
|
@click="handleDeploy(scope.row)" |
|
|
|
v-hasPermi="['bpm:model:deploy']" |
|
|
|
> |
|
|
|
<el-button link type="primary" @click="handleDeploy(scope.row)" v-hasPermi="['bpm:model:deploy']"> |
|
|
|
<Icon icon="ep:promotion" /> |
|
|
|
发布流程 |
|
|
|
</el-button> |
|
|
|
<el-button |
|
|
|
link |
|
|
|
type="primary" |
|
|
|
v-hasPermi="['bpm:process-definition:query']" |
|
|
|
@click="handleDefinitionList(scope.row)" |
|
|
|
> |
|
|
|
<el-button link type="primary" v-hasPermi="['bpm:process-definition:query']" |
|
|
|
@click="handleDefinitionList(scope.row)"> |
|
|
|
<Icon icon="fa:sitemap" /> |
|
|
|
流程定义 |
|
|
|
</el-button> |
|
|
|
<el-button |
|
|
|
link |
|
|
|
type="danger" |
|
|
|
@click="handleDelete(scope.row.id)" |
|
|
|
v-hasPermi="['bpm:model:delete']" |
|
|
|
> |
|
|
|
<el-button link type="danger" @click="handleDelete(scope.row.id)" v-hasPermi="['bpm:model:delete']"> |
|
|
|
<Icon icon="ep:delete" /> |
|
|
|
删除 |
|
|
|
</el-button> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
<!-- 分页 --> |
|
|
|
<Pagination |
|
|
|
:total="total" |
|
|
|
v-model:page="queryParams.pageNo" |
|
|
|
v-model:limit="queryParams.pageSize" |
|
|
|
@pagination="getList" |
|
|
|
/> |
|
|
|
<Pagination :total="total" v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize" |
|
|
|
@pagination="getList" /> |
|
|
|
</ContentWrap> |
|
|
|
|
|
|
|
<!-- 表单弹窗:添加/修改流程 --> |
|
|
@ -216,13 +131,8 @@ |
|
|
|
|
|
|
|
<!-- 弹窗:流程模型图的预览 --> |
|
|
|
<Dialog title="流程图" v-model="bpmnDetailVisible" width="800"> |
|
|
|
<MyProcessViewer |
|
|
|
key="designer" |
|
|
|
v-model="bpmnXML" |
|
|
|
:value="bpmnXML as any" |
|
|
|
v-bind="bpmnControlForm" |
|
|
|
:prefix="bpmnControlForm.prefix" |
|
|
|
/> |
|
|
|
<MyProcessViewer key="designer" v-model="bpmnXML" :value="bpmnXML as any" v-bind="bpmnControlForm" |
|
|
|
:prefix="bpmnControlForm.prefix" /> |
|
|
|
</Dialog> |
|
|
|
</template> |
|
|
|
|
|
|
@ -300,7 +210,7 @@ const handleDelete = async (id: number) => { |
|
|
|
message.success(t('common.delSuccess')) |
|
|
|
// 刷新列表 |
|
|
|
await getList() |
|
|
|
} catch {} |
|
|
|
} catch { } |
|
|
|
} |
|
|
|
|
|
|
|
/** 更新状态操作 */ |
|
|
@ -342,7 +252,7 @@ const handleDeploy = async (row) => { |
|
|
|
message.success(t('部署成功')) |
|
|
|
// 刷新列表 |
|
|
|
await getList() |
|
|
|
} catch {} |
|
|
|
} catch { } |
|
|
|
} |
|
|
|
|
|
|
|
/** 点击任务分配按钮 */ |
|
|
|