Commit 430f1369be207d9988d8d44c56d9c8ed7f423dba
1 parent
d8bbc715
完善 BPM Model 的搜索功能
Showing
4 changed files
with
39 additions
and
5 deletions
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/model/vo/ModelPageReqVO.java
| @@ -14,7 +14,13 @@ import lombok.ToString; | @@ -14,7 +14,13 @@ import lombok.ToString; | ||
| 14 | @ToString(callSuper = true) | 14 | @ToString(callSuper = true) |
| 15 | public class ModelPageReqVO extends PageParam { | 15 | public class ModelPageReqVO extends PageParam { |
| 16 | 16 | ||
| 17 | - @ApiModelProperty(value = "名字", example = "芋道") | 17 | + @ApiModelProperty(value = "标识", example = "process1641042089407", notes = "精准匹配") |
| 18 | + private String key; | ||
| 19 | + | ||
| 20 | + @ApiModelProperty(value = "名字", example = "芋道", notes = "模糊匹配") | ||
| 18 | private String name; | 21 | private String name; |
| 19 | 22 | ||
| 23 | + @ApiModelProperty(value = "流程分类", notes = "参见 bpm_model_category 数据字典", example = "1") | ||
| 24 | + private String category; | ||
| 25 | + | ||
| 20 | } | 26 | } |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/model/impl/BpmModelServiceImpl.java
| @@ -55,9 +55,15 @@ public class BpmModelServiceImpl implements BpmModelService { | @@ -55,9 +55,15 @@ public class BpmModelServiceImpl implements BpmModelService { | ||
| 55 | @Override | 55 | @Override |
| 56 | public PageResult<BpmModelPageItemRespVO> getModelPage(ModelPageReqVO pageVO) { | 56 | public PageResult<BpmModelPageItemRespVO> getModelPage(ModelPageReqVO pageVO) { |
| 57 | ModelQuery modelQuery = repositoryService.createModelQuery(); | 57 | ModelQuery modelQuery = repositoryService.createModelQuery(); |
| 58 | + if (StrUtil.isNotBlank(pageVO.getKey())) { | ||
| 59 | + modelQuery.modelKey(pageVO.getKey()); | ||
| 60 | + } | ||
| 58 | if (StrUtil.isNotBlank(pageVO.getName())) { | 61 | if (StrUtil.isNotBlank(pageVO.getName())) { |
| 59 | modelQuery.modelNameLike("%" + pageVO.getName() + "%"); // 模糊匹配 | 62 | modelQuery.modelNameLike("%" + pageVO.getName() + "%"); // 模糊匹配 |
| 60 | } | 63 | } |
| 64 | + if (StrUtil.isNotBlank(pageVO.getCategory())) { | ||
| 65 | + modelQuery.modelCategory(pageVO.getCategory()); | ||
| 66 | + } | ||
| 61 | // 执行查询 | 67 | // 执行查询 |
| 62 | List<Model> models = modelQuery.orderByCreateTime().desc() | 68 | List<Model> models = modelQuery.orderByCreateTime().desc() |
| 63 | .listPage(PageUtils.getStart(pageVO), pageVO.getPageSize()); | 69 | .listPage(PageUtils.getStart(pageVO), pageVO.getPageSize()); |
yudao-admin-ui/src/utils/dict.js
| @@ -8,6 +8,7 @@ import store from '@/store' | @@ -8,6 +8,7 @@ import store from '@/store' | ||
| 8 | export const DICT_TYPE = { | 8 | export const DICT_TYPE = { |
| 9 | USER_TYPE: 'user_type', | 9 | USER_TYPE: 'user_type', |
| 10 | 10 | ||
| 11 | + // system | ||
| 11 | SYS_COMMON_STATUS: 'sys_common_status', | 12 | SYS_COMMON_STATUS: 'sys_common_status', |
| 12 | SYS_MENU_TYPE: 'sys_menu_type', | 13 | SYS_MENU_TYPE: 'sys_menu_type', |
| 13 | SYS_ROLE_TYPE: 'sys_role_type', | 14 | SYS_ROLE_TYPE: 'sys_role_type', |
| @@ -24,13 +25,17 @@ export const DICT_TYPE = { | @@ -24,13 +25,17 @@ export const DICT_TYPE = { | ||
| 24 | SYS_SMS_RECEIVE_STATUS: 'sys_sms_receive_status', | 25 | SYS_SMS_RECEIVE_STATUS: 'sys_sms_receive_status', |
| 25 | SYS_ERROR_CODE_TYPE: 'sys_error_code_type', | 26 | SYS_ERROR_CODE_TYPE: 'sys_error_code_type', |
| 26 | 27 | ||
| 28 | + // infra | ||
| 27 | INF_REDIS_TIMEOUT_TYPE: 'inf_redis_timeout_type', | 29 | INF_REDIS_TIMEOUT_TYPE: 'inf_redis_timeout_type', |
| 28 | INF_JOB_STATUS: 'inf_job_status', | 30 | INF_JOB_STATUS: 'inf_job_status', |
| 29 | INF_JOB_LOG_STATUS: 'inf_job_log_status', | 31 | INF_JOB_LOG_STATUS: 'inf_job_log_status', |
| 30 | INF_API_ERROR_LOG_PROCESS_STATUS: 'inf_api_error_log_process_status', | 32 | INF_API_ERROR_LOG_PROCESS_STATUS: 'inf_api_error_log_process_status', |
| 31 | 33 | ||
| 34 | + // tool | ||
| 32 | TOOL_CODEGEN_TEMPLATE_TYPE: 'tool_codegen_template_type', | 35 | TOOL_CODEGEN_TEMPLATE_TYPE: 'tool_codegen_template_type', |
| 33 | 36 | ||
| 37 | + // bpm | ||
| 38 | + BPM_MODEL_CATEGORY: 'bpm_model_category', | ||
| 34 | OA_LEAVE_STATUS: 'flow_status', | 39 | OA_LEAVE_STATUS: 'flow_status', |
| 35 | OA_LEAVE_TYPE: 'oa_leave_type' | 40 | OA_LEAVE_TYPE: 'oa_leave_type' |
| 36 | } | 41 | } |
yudao-admin-ui/src/views/bpm/model/index.vue
| @@ -3,10 +3,19 @@ | @@ -3,10 +3,19 @@ | ||
| 3 | 3 | ||
| 4 | <!-- 搜索工作栏 --> | 4 | <!-- 搜索工作栏 --> |
| 5 | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> | 5 | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| 6 | - <el-form-item label="模型名字" prop="name"> | ||
| 7 | - <el-input v-model="queryParams.name" placeholder="请输入模型名字" clearable style="width: 240px;" size="small" | 6 | + <el-form-item label="流程标识" prop="key"> |
| 7 | + <el-input v-model="queryParams.key" placeholder="请输入流程标识" clearable style="width: 240px;" size="small" | ||
| 8 | @keyup.enter.native="handleQuery"/> | 8 | @keyup.enter.native="handleQuery"/> |
| 9 | </el-form-item> | 9 | </el-form-item> |
| 10 | + <el-form-item label="流程名称" prop="name"> | ||
| 11 | + <el-input v-model="queryParams.name" placeholder="请输入流程名称" clearable style="width: 240px;" size="small" | ||
| 12 | + @keyup.enter.native="handleQuery"/> | ||
| 13 | + </el-form-item> | ||
| 14 | + <el-form-item label="流程分类" prop="category"> | ||
| 15 | + <el-select v-model="queryParams.category" placeholder="流程分类" clearable size="small" style="width: 240px"> | ||
| 16 | + <el-option v-for="dict in categoryDictDatas" :key="parseInt(dict.value)" :label="dict.label" :value="parseInt(dict.value)"/> | ||
| 17 | + </el-select> | ||
| 18 | + </el-form-item> | ||
| 10 | <el-form-item> | 19 | <el-form-item> |
| 11 | <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> | 20 | <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> |
| 12 | <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> | 21 | <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> |
| @@ -24,10 +33,13 @@ | @@ -24,10 +33,13 @@ | ||
| 24 | 33 | ||
| 25 | <!-- 列表 --> | 34 | <!-- 列表 --> |
| 26 | <el-table v-loading="loading" :data="list"> | 35 | <el-table v-loading="loading" :data="list"> |
| 27 | - <el-table-column label="流程编号" align="center" prop="id" :show-overflow-tooltip="true" /> | ||
| 28 | <el-table-column label="流程标识" align="center" prop="key" /> | 36 | <el-table-column label="流程标识" align="center" prop="key" /> |
| 29 | <el-table-column label="流程名称" align="center" prop="name" /> | 37 | <el-table-column label="流程名称" align="center" prop="name" /> |
| 30 | - <el-table-column label="流程分类" align="center" prop="category" /> <!-- TODO 芋艿:数据字典的格式化 --> | 38 | + <el-table-column label="流程分类" align="center" prop="category"> |
| 39 | + <template slot-scope="scope"> | ||
| 40 | + <span>{{ getDictDataLabel(DICT_TYPE.BPM_MODEL_CATEGORY, scope.row.category) }}</span> | ||
| 41 | + </template> | ||
| 42 | + </el-table-column> | ||
| 31 | <el-table-column label="表单信息" align="center" prop="formId" /> <!-- TODO 芋艿:需要支持表单的点击 --> | 43 | <el-table-column label="表单信息" align="center" prop="formId" /> <!-- TODO 芋艿:需要支持表单的点击 --> |
| 32 | <el-table-column label="流程版本" align="center" prop="processDefinition.version" /> | 44 | <el-table-column label="流程版本" align="center" prop="processDefinition.version" /> |
| 33 | <el-table-column label="创建时间" align="center" prop="createTime" width="180"> | 45 | <el-table-column label="创建时间" align="center" prop="createTime" width="180"> |
| @@ -59,6 +71,7 @@ | @@ -59,6 +71,7 @@ | ||
| 59 | <script> | 71 | <script> |
| 60 | import {deleteModel, deployModel, createModel, updateModel, getModelPage, getModel} from "@/api/bpm/model"; | 72 | import {deleteModel, deployModel, createModel, updateModel, getModelPage, getModel} from "@/api/bpm/model"; |
| 61 | import VueBpmn from "@/components/bpmn/VueBpmn"; | 73 | import VueBpmn from "@/components/bpmn/VueBpmn"; |
| 74 | +import {DICT_TYPE, getDictDatas} from "@/utils/dict"; | ||
| 62 | 75 | ||
| 63 | export default { | 76 | export default { |
| 64 | name: "model", | 77 | name: "model", |
| @@ -77,10 +90,14 @@ export default { | @@ -77,10 +90,14 @@ export default { | ||
| 77 | pageNo: 1, | 90 | pageNo: 1, |
| 78 | pageSize: 10 | 91 | pageSize: 10 |
| 79 | }, | 92 | }, |
| 93 | + | ||
| 80 | // BPMN 数据 | 94 | // BPMN 数据 |
| 81 | showBpmnOpen: false, | 95 | showBpmnOpen: false, |
| 82 | bpmnXML: null, | 96 | bpmnXML: null, |
| 83 | bpmnData: {}, | 97 | bpmnData: {}, |
| 98 | + | ||
| 99 | + // 数据字典 | ||
| 100 | + categoryDictDatas: getDictDatas(DICT_TYPE.BPM_MODEL_CATEGORY), | ||
| 84 | }; | 101 | }; |
| 85 | }, | 102 | }, |
| 86 | components: {VueBpmn}, | 103 | components: {VueBpmn}, |