queryGroupByKey(String roleKey);
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/workflow-process-common/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | workflow
7 | com.workflow
8 | 3.6.0
9 |
10 | 4.0.0
11 |
12 | workflow-process-common
13 | pom
14 |
15 | workflow-process-common-pojo
16 | workflow-process-idm-pojo
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/workflow-process-common/workflow-process-common-pojo/src/main/java/com/workflow/process/center/domain/dto/BaseQueryDTO.java:
--------------------------------------------------------------------------------
1 | package com.workflow.process.center.domain.dto;
2 |
3 | import lombok.Data;
4 |
5 | import java.io.Serializable;
6 |
7 | @Data
8 | public class BaseQueryDTO implements Serializable {
9 |
10 | private Integer pageIndex =1;
11 |
12 | private Integer pageSize =10;
13 | }
14 |
--------------------------------------------------------------------------------
/workflow-process-common/workflow-process-idm-pojo/src/main/java/com/workflow/process/center/api/domain/LoginDTO.java:
--------------------------------------------------------------------------------
1 | package com.workflow.process.center.api.domain;
2 |
3 | import lombok.Data;
4 |
5 | import javax.validation.constraints.NotBlank;
6 | import java.io.Serializable;
7 |
8 | @Data
9 | public class LoginDTO implements Serializable {
10 |
11 | @NotBlank(message = "账号不能为空!")
12 | private String username;
13 |
14 | @NotBlank(message = "密码不能为空!")
15 | private String password;
16 | }
17 |
--------------------------------------------------------------------------------
/workflow-quartz/src/main/java/com/workflow/quartz/task/RyTask.java:
--------------------------------------------------------------------------------
1 | package com.workflow.quartz.task;
2 |
3 | import org.springframework.stereotype.Component;
4 | import com.workflow.common.utils.StringUtils;
5 |
6 | /**
7 | * 定时任务调度测试
8 | *
9 | * @author workflow
10 | */
11 | @Component("ryTask")
12 | public class RyTask
13 | {
14 | public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i)
15 | {
16 | System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i));
17 | }
18 |
19 | public void ryParams(String params)
20 | {
21 | System.out.println("执行有参方法:" + params);
22 | }
23 |
24 | public void ryNoParams()
25 | {
26 | System.out.println("执行无参方法");
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/workflow-quartz/src/main/java/com/workflow/quartz/util/QuartzDisallowConcurrentExecution.java:
--------------------------------------------------------------------------------
1 | package com.workflow.quartz.util;
2 |
3 | import org.quartz.DisallowConcurrentExecution;
4 | import org.quartz.JobExecutionContext;
5 | import com.workflow.quartz.domain.entity.SysJob;
6 |
7 | /**
8 | * 定时任务处理(禁止并发执行)
9 | *
10 | * @author workflow
11 | *
12 | */
13 | @DisallowConcurrentExecution
14 | public class QuartzDisallowConcurrentExecution extends AbstractQuartzJob
15 | {
16 | @Override
17 | protected void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception
18 | {
19 | JobInvokeUtil.invokeMethod(sysJob);
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/workflow-quartz/src/main/java/com/workflow/quartz/util/QuartzJobExecution.java:
--------------------------------------------------------------------------------
1 | package com.workflow.quartz.util;
2 |
3 | import org.quartz.JobExecutionContext;
4 | import com.workflow.quartz.domain.entity.SysJob;
5 |
6 | /**
7 | * 定时任务处理(允许并发执行)
8 | *
9 | * @author workflow
10 | *
11 | */
12 | public class QuartzJobExecution extends AbstractQuartzJob
13 | {
14 | @Override
15 | protected void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception
16 | {
17 | JobInvokeUtil.invokeMethod(sysJob);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/workflow-ui/.editorconfig:
--------------------------------------------------------------------------------
1 | # 告诉EditorConfig插件,这是根文件,不用继续往上查找
2 | root = true
3 |
4 | # 匹配全部文件
5 | [*]
6 | # 设置字符集
7 | charset = utf-8
8 | # 缩进风格,可选space、tab
9 | indent_style = space
10 | # 缩进的空格数
11 | indent_size = 2
12 | # 结尾换行符,可选lf、cr、crlf
13 | end_of_line = lf
14 | # 在文件结尾插入新行
15 | insert_final_newline = true
16 | # 删除一行中的前后空格
17 | trim_trailing_whitespace = true
18 |
19 | # 匹配md结尾的文件
20 | [*.md]
21 | insert_final_newline = false
22 | trim_trailing_whitespace = false
23 |
--------------------------------------------------------------------------------
/workflow-ui/.env.development:
--------------------------------------------------------------------------------
1 | # 页面标题
2 | VUE_APP_TITLE = 流程引擎管理系统
3 |
4 | # 开发环境配置
5 | ENV = 'development'
6 |
7 | # 流程引擎管理系统/开发环境
8 | VUE_APP_BASE_API = '/dev-api'
9 |
10 | # 路由懒加载
11 | VUE_CLI_BABEL_TRANSPILE_MODULES = true
12 |
--------------------------------------------------------------------------------
/workflow-ui/.env.production:
--------------------------------------------------------------------------------
1 | # 页面标题
2 | VUE_APP_TITLE = 流程引擎管理系统
3 |
4 | # 生产环境配置
5 | ENV = 'production'
6 |
7 | # 流程引擎管理系统/生产环境
8 | VUE_APP_BASE_API = '/prod-api'
9 |
--------------------------------------------------------------------------------
/workflow-ui/.env.staging:
--------------------------------------------------------------------------------
1 | # 页面标题
2 | VUE_APP_TITLE = 流程引擎管理系统
3 |
4 | NODE_ENV = production
5 |
6 | # 测试环境配置
7 | ENV = 'staging'
8 |
9 | # 流程引擎管理系统/测试环境
10 | VUE_APP_BASE_API = '/stage-api'
11 |
--------------------------------------------------------------------------------
/workflow-ui/.eslintignore:
--------------------------------------------------------------------------------
1 | # 忽略build目录下类型为js的文件的语法检查
2 | build/*.js
3 | # 忽略src/assets目录下文件的语法检查
4 | src/assets
5 | # 忽略public目录下文件的语法检查
6 | public
7 | # 忽略当前目录下为js的文件的语法检查
8 | *.js
9 | # 忽略当前目录下为vue的文件的语法检查
10 | *.vue
--------------------------------------------------------------------------------
/workflow-ui/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | dist/
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | **/*.log
8 |
9 | tests/**/coverage/
10 | tests/e2e/reports
11 | selenium-debug.log
12 |
13 | # Editor directories and files
14 | .idea
15 | .vscode
16 | *.suo
17 | *.ntvs*
18 | *.njsproj
19 | *.sln
20 | *.local
21 |
22 | package-lock.json
23 | yarn.lock
24 |
--------------------------------------------------------------------------------
/workflow-ui/README.md:
--------------------------------------------------------------------------------
1 | ## 开发
2 |
3 | ```bash
4 | # 克隆项目
5 | git clone https://gitee.com/y_project/workflow-Vue
6 |
7 | # 进入项目目录
8 | cd workflow-ui
9 |
10 | # 安装依赖
11 | npm install
12 |
13 | # 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
14 | npm install --registry=https://registry.npm.taobao.org
15 |
16 | # 启动服务
17 | npm run dev
18 | ```
19 |
20 | 浏览器访问 http://localhost:80
21 |
22 | ## 发布
23 |
24 | ```bash
25 | # 构建测试环境
26 | npm run build:stage
27 |
28 | # 构建生产环境
29 | npm run build:prod
30 | ```
--------------------------------------------------------------------------------
/workflow-ui/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | // https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app
4 | '@vue/cli-plugin-babel/preset'
5 | ],
6 | 'env': {
7 | 'development': {
8 | // babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require().
9 | // This plugin can significantly increase the speed of hot updates, when you have a large number of pages.
10 | 'plugins': ['dynamic-import-node']
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/workflow-ui/bin/build.bat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tudouxian/workflow/f7793a7511a611dd8f421f4318c4ddc9d1083f71/workflow-ui/bin/build.bat
--------------------------------------------------------------------------------
/workflow-ui/bin/package.bat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tudouxian/workflow/f7793a7511a611dd8f421f4318c4ddc9d1083f71/workflow-ui/bin/package.bat
--------------------------------------------------------------------------------
/workflow-ui/bin/run-web.bat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tudouxian/workflow/f7793a7511a611dd8f421f4318c4ddc9d1083f71/workflow-ui/bin/run-web.bat
--------------------------------------------------------------------------------
/workflow-ui/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tudouxian/workflow/f7793a7511a611dd8f421f4318c4ddc9d1083f71/workflow-ui/public/favicon.ico
--------------------------------------------------------------------------------
/workflow-ui/public/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Disallow: /
--------------------------------------------------------------------------------
/workflow-ui/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
20 |
--------------------------------------------------------------------------------
/workflow-ui/src/api/dict.js:
--------------------------------------------------------------------------------
1 | import request from '@/utils/request'
2 | // 字典项-分类
3 | export function getCategoryDict() {
4 | return request({
5 | url: '/workFlowCategory/list',
6 | method: 'get'
7 | })
8 | }
9 |
10 | // 字典项-部门
11 | export function getDeptDict() {
12 | return request({
13 | url: '/workFlowDepts/selectAll',
14 | method: 'get'
15 | })
16 | }
17 |
18 | // 字典项-租户
19 | export function getTenantDict() {
20 | return request({
21 | url: '/workFlowTenant/list',
22 | method: 'get'
23 | })
24 | }
25 |
26 | // 字典项-待办人列表
27 | export const getToDoUsers = () => {
28 | return request({
29 | url: '/flowable/workBench/findToDoUsers',
30 | method: 'get'
31 | })
32 | }
33 |
34 | export function getFormCategoryDict() {
35 | return request({
36 | url: '/workFlowFormCategory/list',
37 | method: 'get'
38 | })
39 | }
40 |
--------------------------------------------------------------------------------
/workflow-ui/src/api/menu.js:
--------------------------------------------------------------------------------
1 | import request from '@/utils/request'
2 |
3 | // 获取路由
4 | export const getRouters = () => {
5 | return request({
6 | url: '/getRouters',
7 | method: 'get'
8 | })
9 | }
--------------------------------------------------------------------------------
/workflow-ui/src/api/monitor/cache.js:
--------------------------------------------------------------------------------
1 | import request from '@/utils/request'
2 |
3 | // 查询缓存详细
4 | export function getCache() {
5 | return request({
6 | url: '/monitor/cache',
7 | method: 'get'
8 | })
9 | }
10 |
--------------------------------------------------------------------------------
/workflow-ui/src/api/monitor/jobLog.js:
--------------------------------------------------------------------------------
1 | import request from '@/utils/request'
2 |
3 | // 查询调度日志列表
4 | export function listJobLog(query) {
5 | return request({
6 | url: '/monitor/jobLog/list',
7 | method: 'get',
8 | params: query
9 | })
10 | }
11 |
12 | // 删除调度日志
13 | export function delJobLog(jobLogId) {
14 | return request({
15 | url: '/monitor/jobLog/' + jobLogId,
16 | method: 'delete'
17 | })
18 | }
19 |
20 | // 清空调度日志
21 | export function cleanJobLog() {
22 | return request({
23 | url: '/monitor/jobLog/clean',
24 | method: 'delete'
25 | })
26 | }
27 |
28 | // 导出调度日志
29 | export function exportJobLog(query) {
30 | return request({
31 | url: '/monitor/jobLog/export',
32 | method: 'get',
33 | params: query
34 | })
35 | }
--------------------------------------------------------------------------------
/workflow-ui/src/api/monitor/logininfor.js:
--------------------------------------------------------------------------------
1 | import request from '@/utils/request'
2 |
3 | // 查询登录日志列表
4 | export function list(query) {
5 | return request({
6 | url: '/monitor/logininfor/list',
7 | method: 'get',
8 | params: query
9 | })
10 | }
11 |
12 | // 删除登录日志
13 | export function delLogininfor(infoId) {
14 | return request({
15 | url: '/monitor/logininfor/' + infoId,
16 | method: 'delete'
17 | })
18 | }
19 |
20 | // 清空登录日志
21 | export function cleanLogininfor() {
22 | return request({
23 | url: '/monitor/logininfor/clean',
24 | method: 'delete'
25 | })
26 | }
27 |
28 | // 导出登录日志
29 | export function exportLogininfor(query) {
30 | return request({
31 | url: '/monitor/logininfor/export',
32 | method: 'get',
33 | params: query
34 | })
35 | }
--------------------------------------------------------------------------------
/workflow-ui/src/api/monitor/online.js:
--------------------------------------------------------------------------------
1 | import request from '@/utils/request'
2 |
3 | // 查询在线用户列表
4 | export function list(query) {
5 | return request({
6 | url: '/monitor/online/list',
7 | method: 'get',
8 | params: query
9 | })
10 | }
11 |
12 | // 强退用户
13 | export function forceLogout(tokenId) {
14 | return request({
15 | url: '/monitor/online/' + tokenId,
16 | method: 'delete'
17 | })
18 | }
19 |
--------------------------------------------------------------------------------
/workflow-ui/src/api/monitor/operlog.js:
--------------------------------------------------------------------------------
1 | import request from '@/utils/request'
2 |
3 | // 查询操作日志列表
4 | export function list(query) {
5 | return request({
6 | url: '/monitor/operlog/list',
7 | method: 'get',
8 | params: query
9 | })
10 | }
11 |
12 | // 删除操作日志
13 | export function delOperlog(operId) {
14 | return request({
15 | url: '/monitor/operlog/' + operId,
16 | method: 'delete'
17 | })
18 | }
19 |
20 | // 清空操作日志
21 | export function cleanOperlog() {
22 | return request({
23 | url: '/monitor/operlog/clean',
24 | method: 'delete'
25 | })
26 | }
27 |
28 | // 导出操作日志
29 | export function exportOperlog(query) {
30 | return request({
31 | url: '/monitor/operlog/export',
32 | method: 'get',
33 | params: query
34 | })
35 | }
--------------------------------------------------------------------------------
/workflow-ui/src/api/monitor/server.js:
--------------------------------------------------------------------------------
1 | import request from '@/utils/request'
2 |
3 | // 查询服务器详细
4 | export function getServer() {
5 | return request({
6 | url: '/monitor/server',
7 | method: 'get'
8 | })
9 | }
--------------------------------------------------------------------------------
/workflow-ui/src/api/system/notice.js:
--------------------------------------------------------------------------------
1 | import request from '@/utils/request'
2 |
3 | // 查询公告列表
4 | export function listNotice(query) {
5 | return request({
6 | url: '/system/notice/list',
7 | method: 'get',
8 | params: query
9 | })
10 | }
11 |
12 | // 查询公告详细
13 | export function getNotice(noticeId) {
14 | return request({
15 | url: '/system/notice/' + noticeId,
16 | method: 'get'
17 | })
18 | }
19 |
20 | // 新增公告
21 | export function addNotice(data) {
22 | return request({
23 | url: '/system/notice',
24 | method: 'post',
25 | data: data
26 | })
27 | }
28 |
29 | // 修改公告
30 | export function updateNotice(data) {
31 | return request({
32 | url: '/system/notice',
33 | method: 'put',
34 | data: data
35 | })
36 | }
37 |
38 | // 删除公告
39 | export function delNotice(noticeId) {
40 | return request({
41 | url: '/system/notice/' + noticeId,
42 | method: 'delete'
43 | })
44 | }
--------------------------------------------------------------------------------
/workflow-ui/src/api/workmenu/handlecontent.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: your name
3 | * @Date: 2021-07-20 15:37:09
4 | * @LastEditTime: 2021-07-21 10:35:43
5 | * @LastEditors: Please set LastEditors
6 | * @Description: In User Settings Edit
7 | * @FilePath: /flow-template-front/src/api/workmenu/handlecontent.js
8 | */
9 | import request from '@/utils/request'
10 |
11 | export const getStepList = async (processInstanceId, taskId) => {
12 | return request({
13 | url: `/flowable/task/getBackNodesByProcessInstanceId/${processInstanceId}/${taskId}`,
14 | method: 'get'
15 | })
16 | }
17 |
18 | export const getUserList = async (params) => {
19 | return request({
20 | url: `/workFlowUsers/selectAll`,
21 | method: 'get',
22 | params
23 | })
24 | }
25 |
26 | export const handleActions = async ({ url, params }) => {
27 |
28 | return await request({
29 | url: `${url}`,
30 | method: 'post',
31 | data: params
32 | })
33 | }
34 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/401_images/401.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tudouxian/workflow/f7793a7511a611dd8f421f4318c4ddc9d1083f71/workflow-ui/src/assets/401_images/401.gif
--------------------------------------------------------------------------------
/workflow-ui/src/assets/404_images/404.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tudouxian/workflow/f7793a7511a611dd8f421f4318c4ddc9d1083f71/workflow-ui/src/assets/404_images/404.png
--------------------------------------------------------------------------------
/workflow-ui/src/assets/404_images/404_cloud.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tudouxian/workflow/f7793a7511a611dd8f421f4318c4ddc9d1083f71/workflow-ui/src/assets/404_images/404_cloud.png
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import SvgIcon from '@/components/SvgIcon'// svg component
3 |
4 | // register globally
5 | Vue.component('svg-icon', SvgIcon)
6 |
7 | const req = require.context('./svg', false, /\.svg$/)
8 | const requireAll = requireContext => requireContext.keys().map(requireContext)
9 | requireAll(req)
10 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/build.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/chart.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/code.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/documentation.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/drag.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/druid.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/edit.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/education.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/email.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/example.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/excel.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/eye.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/fullscreen.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/guide.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/input.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/link.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/lock.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/message.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/money.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/monitor.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/nested.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/peoples.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/row.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/search.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/server.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/size.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/slider.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/star.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/switch.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/tab.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/table.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/textarea.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/theme.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/time.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/tree-table.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svg/user.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/icons/svgo.yml:
--------------------------------------------------------------------------------
1 | # replace default config
2 |
3 | # multipass: true
4 | # full: true
5 |
6 | plugins:
7 |
8 | # - name
9 | #
10 | # or:
11 | # - name: false
12 | # - name: true
13 | #
14 | # or:
15 | # - name:
16 | # param1: 1
17 | # param2: 2
18 |
19 | - removeAttrs:
20 | attrs:
21 | - 'fill'
22 | - 'fill-rule'
23 |
--------------------------------------------------------------------------------
/workflow-ui/src/assets/images/back.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tudouxian/workflow/f7793a7511a611dd8f421f4318c4ddc9d1083f71/workflow-ui/src/assets/images/back.jpg
--------------------------------------------------------------------------------
/workflow-ui/src/assets/images/back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tudouxian/workflow/f7793a7511a611dd8f421f4318c4ddc9d1083f71/workflow-ui/src/assets/images/back.png
--------------------------------------------------------------------------------
/workflow-ui/src/assets/images/login-background.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tudouxian/workflow/f7793a7511a611dd8f421f4318c4ddc9d1083f71/workflow-ui/src/assets/images/login-background.jpg
--------------------------------------------------------------------------------
/workflow-ui/src/assets/images/profile.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tudouxian/workflow/f7793a7511a611dd8f421f4318c4ddc9d1083f71/workflow-ui/src/assets/images/profile.jpg
--------------------------------------------------------------------------------
/workflow-ui/src/assets/logo/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tudouxian/workflow/f7793a7511a611dd8f421f4318c4ddc9d1083f71/workflow-ui/src/assets/logo/logo.png
--------------------------------------------------------------------------------
/workflow-ui/src/assets/styles/element-variables.scss:
--------------------------------------------------------------------------------
1 | /**
2 | * I think element-ui's default theme color is too light for long-term use.
3 | * So I modified the default color and you can modify it to your liking.
4 | **/
5 |
6 | /* theme color */
7 | $--color-primary: #1890ff;
8 | $--color-success: #13ce66;
9 | $--color-warning: #ffba00;
10 | $--color-danger: #ff4949;
11 | // $--color-info: #1E1E1E;
12 |
13 | $--button-font-weight: 400;
14 |
15 | // $--color-text-regular: #1f2d3d;
16 |
17 | $--border-color-light: #dfe4ed;
18 | $--border-color-lighter: #e6ebf5;
19 |
20 | $--table-border:1px solid#dfe6ec;
21 |
22 | /* icon font path, required */
23 | $--font-path: '~element-ui/lib/theme-chalk/fonts';
24 |
25 | @import "~element-ui/packages/theme-chalk/src/index";
26 |
27 | // the :export directive is the magic sauce for webpack
28 | // https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass
29 | :export {
30 | theme: $--color-primary;
31 | }
32 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/IconSelect/requireIcons.js:
--------------------------------------------------------------------------------
1 |
2 | const req = require.context('../../assets/icons/svg', false, /\.svg$/)
3 | const requireAll = requireContext => requireContext.keys()
4 |
5 | const re = /\.\/(.*)\.svg/
6 |
7 | const icons = requireAll(req).map(i => {
8 | return i.match(re)[1]
9 | })
10 |
11 | export default icons
12 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/ParentView/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/Process/common/customTranslate.js:
--------------------------------------------------------------------------------
1 | import translations from '../lang/zh'
2 |
3 | export default function customTranslate(template, replacements) {
4 | replacements = replacements || {}
5 |
6 | // Translate
7 | template = translations[template] || template
8 |
9 | // Replace
10 | return template.replace(/{([^}]+)}/g, function(_, key) {
11 | var str = replacements[key]
12 | if (
13 | translations[replacements[key]] !== null &&
14 | translations[replacements[key]] !== 'undefined'
15 | ) {
16 | str = translations[replacements[key]]
17 | }
18 | return str || '{' + key + '}'
19 | })
20 | }
21 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/Process/common/mixinExecutionListener.js:
--------------------------------------------------------------------------------
1 |
2 | import executionListenerDialog from '../components/nodePanel/property/executionListener'
3 | export default {
4 | components: {
5 | executionListenerDialog
6 | },
7 | data() {
8 | return {
9 | executionListenerLength: 0,
10 | dialogName: null
11 | }
12 | },
13 | methods: {
14 | computedExecutionListenerLength() {
15 | this.executionListenerLength = this.element.businessObject.extensionElements?.values?.length ?? 0
16 | },
17 | finishExecutionListener() {
18 | if (this.dialogName === 'executionListenerDialog') {
19 | this.computedExecutionListenerLength()
20 | }
21 | this.dialogName = ''
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/Process/common/mixinXcrud.js:
--------------------------------------------------------------------------------
1 | import xcrud from 'xcrud'
2 | import golbalConfig from 'xcrud/package/common/config'
3 | golbalConfig.set({
4 | input: {
5 | // size: 'mini'
6 | },
7 | select: {
8 | // size: 'mini'
9 | },
10 | colorPicker: {
11 | showAlpha: true
12 | },
13 | xform: {
14 | form: {
15 | labelWidth: 'auto'
16 | // size: 'mini'
17 | }
18 | }
19 | })
20 | export default {
21 | components: { xForm: xcrud.xForm }
22 | }
23 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/Process/components/custom/customContextPad.vue:
--------------------------------------------------------------------------------
1 | export default class CustomContextPad {
2 | constructor(config, contextPad, create, elementFactory, injector, translate) {
3 | this.create = create;
4 | this.elementFactory = elementFactory;
5 | this.translate = translate;
6 |
7 | if (config.autoPlace !== false) {
8 | this.autoPlace = injector.get('autoPlace', false);
9 | }
10 |
11 | contextPad.registerProvider(this); // 定义这是一个contextPad
12 | }
13 |
14 | getContextPadEntries(element) {}
15 | }
16 |
17 | CustomContextPad.$inject = [
18 | 'config',
19 | 'contextPad',
20 | 'create',
21 | 'elementFactory',
22 | 'injector',
23 | 'translate'
24 | ];
25 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/Process/index.js:
--------------------------------------------------------------------------------
1 | import workflowBpmnModeler from './index.vue'
2 |
3 | workflowBpmnModeler.install = Vue => Vue.component(workflowBpmnModeler.name, workflowBpmnModeler) // 给组件配置install方法
4 |
5 | export default workflowBpmnModeler
6 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/iFrame/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 |
11 |
37 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/package/index.js:
--------------------------------------------------------------------------------
1 | import MyProcessDesigner from "./process-designer";
2 | import MyProcessPenal from "./refactor";
3 |
4 | const components = [MyProcessDesigner, MyProcessPenal];
5 |
6 | const install = function(Vue) {
7 | components.forEach(component => {
8 | Vue.component(component.name, component);
9 | });
10 | };
11 |
12 | if (typeof window !== "undefined" && window.Vue) {
13 | install(window.Vue);
14 | }
15 |
16 | export default {
17 | version: "0.0.1",
18 | install,
19 | ...components
20 | };
21 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/package/process-designer/index.js:
--------------------------------------------------------------------------------
1 | import MyProcessDesigner from "./ProcessDesigner.vue";
2 |
3 | MyProcessDesigner.install = function(Vue) {
4 | Vue.component(MyProcessDesigner.name, MyProcessDesigner);
5 | };
6 |
7 | export default MyProcessDesigner;
8 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/package/process-designer/plugins/content-pad/index.js:
--------------------------------------------------------------------------------
1 | import CustomContextPadProvider from "./contentPadProvider";
2 |
3 | export default {
4 | __init__: ["contextPadProvider"],
5 | contextPadProvider: ["type", CustomContextPadProvider]
6 | };
7 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/package/process-designer/plugins/extension-moddle/activiti/index.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @author igdianov
3 | * address https://github.com/igdianov/activiti-bpmn-moddle
4 | * */
5 |
6 | module.exports = {
7 | __init__: ["ActivitiModdleExtension"],
8 | ActivitiModdleExtension: ["type", require("./activitiExtension")]
9 | };
10 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/package/process-designer/plugins/extension-moddle/camunda/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | module.exports = {
4 | __init__: ["camundaModdleExtension"],
5 | camundaModdleExtension: ["type", require("./extension")]
6 | };
7 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/package/process-designer/plugins/extension-moddle/flowable/index.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @author igdianov
3 | * address https://github.com/igdianov/activiti-bpmn-moddle
4 | * */
5 |
6 | module.exports = {
7 | __init__: ["FlowableModdleExtension"],
8 | FlowableModdleExtension: ["type", require("./flowableExtension")]
9 | };
10 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/package/process-designer/plugins/palette/index.js:
--------------------------------------------------------------------------------
1 | import PaletteModule from "diagram-js/lib/features/palette";
2 | import CreateModule from "diagram-js/lib/features/create";
3 | import SpaceToolModule from "diagram-js/lib/features/space-tool";
4 | import LassoToolModule from "diagram-js/lib/features/lasso-tool";
5 | import HandToolModule from "diagram-js/lib/features/hand-tool";
6 | import GlobalConnectModule from "diagram-js/lib/features/global-connect";
7 | import translate from "diagram-js/lib/i18n/translate";
8 |
9 | import PaletteProvider from "./paletteProvider";
10 |
11 | export default {
12 | __depends__: [PaletteModule, CreateModule, SpaceToolModule, LassoToolModule, HandToolModule, GlobalConnectModule, translate],
13 | __init__: ["paletteProvider"],
14 | paletteProvider: ["type", PaletteProvider]
15 | };
16 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/package/refactor/components/expression/dict.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: xueyan
3 | * @Date: 2021-09-01 14:32:17
4 | * @LastEditTime: 2021-09-01 14:35:23
5 | * @LastEditors: Please set LastEditors
6 | * @Description: 流程表达式字典
7 | * @FilePath: /flow-template-front/src/views/processManagement/processExpression/dict.js
8 | */
9 |
10 | export default {
11 | computed: {
12 | dict() {
13 | return {
14 | systemExpression: [
15 | {
16 | label: '是',
17 | value: 0
18 | },
19 | {
20 | label: '否',
21 | value: 1
22 | }
23 | ]
24 | }
25 | }
26 | },
27 | methods: {
28 | formatterSystemExpression(row, column, cellValue) {
29 | return this.dict.systemExpression.find(item => item.value === cellValue)?.label ?? ''
30 | },
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/package/refactor/index.js:
--------------------------------------------------------------------------------
1 | import MyPropertiesPanel from "./PropertiesPanel.vue";
2 |
3 | MyPropertiesPanel.install = function(Vue) {
4 | Vue.component(MyPropertiesPanel.name, MyPropertiesPanel);
5 | };
6 |
7 | export default MyPropertiesPanel;
8 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/package/theme/index.scss:
--------------------------------------------------------------------------------
1 | @import "./process-designer.scss";
2 | @import "./process-panel.scss";
--------------------------------------------------------------------------------
/workflow-ui/src/components/parser/README.md:
--------------------------------------------------------------------------------
1 | ## form-generator JSON 解析器
2 | >用于将form-generator导出的JSON解析成一个表单。
3 |
4 | ### 安装组件
5 | ```
6 | npm i form-gen-parser
7 | ```
8 | 或者
9 | ```
10 | yarn add form-gen-parser
11 | ```
12 |
13 | ### 使用示例
14 | > [查看在线示例](https://mrhj.gitee.io/form-generator/#/parser)
15 |
16 | 示例代码:
17 | > [src\components\parser\example\Index.vue](https://github.com/JakHuang/form-generator/blob/dev/src/components/parser/example/Index.vue)
18 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/parser/index.js:
--------------------------------------------------------------------------------
1 | import Parser from './Parser'
2 |
3 | export default Parser
4 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/parser/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "form-gen-parser",
3 | "version": "1.0.3",
4 | "description": "表单json解析器",
5 | "main": "lib/form-gen-parser.umd.js",
6 | "directories": {
7 | "example": "example"
8 | },
9 | "scripts": {
10 | "test": "echo \"Error: no test specified\" && exit 1"
11 | },
12 | "repository": {
13 | "type": "git",
14 | "url": "git+https://github.com/JakHuang/form-generator.git"
15 | },
16 | "dependencies": {
17 | "form-gen-render": "^1.0.0"
18 | },
19 | "author": "jakHuang",
20 | "license": "MIT",
21 | "bugs": {
22 | "url": "https://github.com/JakHuang/form-generator/issues"
23 | },
24 | "homepage": "https://github.com/JakHuang/form-generator/blob/dev/src/components/parser"
25 | }
26 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/render/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "form-gen-render",
3 | "version": "1.0.4",
4 | "description": "表单核心render",
5 | "main": "lib/form-gen-render.umd.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "repository": {
10 | "type": "git",
11 | "url": "git+https://github.com/JakHuang/form-generator.git"
12 | },
13 | "author": "jakhuang",
14 | "license": "MIT",
15 | "bugs": {
16 | "url": "https://github.com/JakHuang/form-generator/issues"
17 | },
18 | "homepage": "https://github.com/JakHuang/form-generator#readme"
19 | }
20 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/render/slots/el-button.js:
--------------------------------------------------------------------------------
1 | export default {
2 | default(h, conf, key) {
3 | return conf.__slot__[key]
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/render/slots/el-checkbox-group.js:
--------------------------------------------------------------------------------
1 | export default {
2 | options(h, conf, key) {
3 | const list = []
4 | conf.__slot__.options.forEach(item => {
5 | if (conf.__config__.optionType === 'button') {
6 | list.push({item.label})
7 | } else {
8 | list.push({item.label})
9 | }
10 | })
11 | return list
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/render/slots/el-input.js:
--------------------------------------------------------------------------------
1 | export default {
2 | prepend(h, conf, key) {
3 | return {conf.__slot__[key]}
4 | },
5 | append(h, conf, key) {
6 | return {conf.__slot__[key]}
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/render/slots/el-radio-group.js:
--------------------------------------------------------------------------------
1 | export default {
2 | options(h, conf, key) {
3 | const list = []
4 | conf.__slot__.options.forEach(item => {
5 | if (conf.__config__.optionType === 'button') {
6 | list.push({item.label})
7 | } else {
8 | list.push({item.label})
9 | }
10 | })
11 | return list
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/render/slots/el-select.js:
--------------------------------------------------------------------------------
1 | export default {
2 | options(h, conf, key) {
3 | const list = []
4 | conf.__slot__.options.forEach(item => {
5 | list.push()
6 | })
7 | return list
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/render/slots/el-upload.js:
--------------------------------------------------------------------------------
1 | export default {
2 | 'list-type': (h, conf, key) => {
3 | const list = []
4 | const config = conf.__config__
5 | if (conf['list-type'] === 'picture-card') {
6 | list.push()
7 | } else {
8 | list.push({config.buttonText})
9 | }
10 | if (config.showTip) {
11 | list.push(
12 | 只能上传不超过 {config.fileSize}{config.sizeUnit} 的{conf.accept}文件
13 | )
14 | }
15 | return list
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/tinymce/README.md:
--------------------------------------------------------------------------------
1 | ## 简介
2 | 富文本编辑器tinymce的一个vue版本封装。使用cdn动态脚本引入的方式加载。
3 |
4 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/tinymce/config.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable max-len */
2 |
3 | export const plugins = [
4 | 'advlist anchor autolink autosave code codesample directionality emoticons fullscreen hr image imagetools insertdatetime link lists media nonbreaking noneditable pagebreak paste preview print save searchreplace spellchecker tabfocus table template textpattern visualblocks visualchars wordcount'
5 | ]
6 | export const toolbar = [
7 | 'code searchreplace bold italic underline strikethrough alignleft aligncenter alignright outdent indent blockquote removeformat subscript superscript codesample hr bullist numlist link image charmap preview anchor pagebreak insertdatetime media table emoticons forecolor backcolor fullscreen'
8 | ]
9 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/tinymce/example/Index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
39 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/tinymce/index.js:
--------------------------------------------------------------------------------
1 | import Index from './index.vue'
2 |
3 | export default Index
4 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/tinymce/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "form-gen-tinymce",
3 | "version": "1.0.0",
4 | "description": "富文本编辑器tinymce的一个vue版本封装。使用cdn动态脚本引入的方式加载。",
5 | "main": "lib/form-gen-tinymce.umd.js",
6 | "directories": {
7 | "example": "example"
8 | },
9 | "scripts": {
10 | "test": "echo \"Error: no test specified\" && exit 1"
11 | },
12 | "repository": {
13 | "type": "git",
14 | "url": "git+https://github.com/JakHuang/form-generator.git"
15 | },
16 | "keywords": [
17 | "tinymce-vue"
18 | ],
19 | "dependencies": {
20 | "throttle-debounce": "^2.1.0"
21 | },
22 | "author": "jakHuang",
23 | "license": "MIT",
24 | "bugs": {
25 | "url": "https://github.com/JakHuang/form-generator/issues"
26 | },
27 | "homepage": "https://github.com/JakHuang/form-generator/blob/dev/src/components/tinymce"
28 | }
29 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/workflow/Doc/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
22 |
--------------------------------------------------------------------------------
/workflow-ui/src/components/workflow/Git/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
22 |
--------------------------------------------------------------------------------
/workflow-ui/src/directive/index.js:
--------------------------------------------------------------------------------
1 | import hasRole from './permission/hasRole'
2 | import hasPermi from './permission/hasPermi'
3 | import dialogDrag from './dialog/drag'
4 | import dialogDragWidth from './dialog/dragWidth'
5 | import dialogDragHeight from './dialog/dragHeight'
6 |
7 | const install = function(Vue) {
8 | Vue.directive('hasRole', hasRole)
9 | Vue.directive('hasPermi', hasPermi)
10 | Vue.directive('dialogDrag', dialogDrag)
11 | Vue.directive('dialogDragWidth', dialogDragWidth)
12 | Vue.directive('dialogDragHeight', dialogDragHeight)
13 | }
14 |
15 | if (window.Vue) {
16 | window['hasRole'] = hasRole
17 | window['hasPermi'] = hasPermi
18 | Vue.use(install); // eslint-disable-line
19 | }
20 |
21 | export default install
22 |
--------------------------------------------------------------------------------
/workflow-ui/src/directive/permission/hasPermi.js:
--------------------------------------------------------------------------------
1 | /**
2 | * v-hasPermi 操作权限处理
3 | * Copyright (c) 2019 workflow
4 | */
5 |
6 | import store from '@/store'
7 |
8 | export default {
9 | inserted(el, binding, vnode) {
10 | const { value } = binding
11 | const all_permission = "*:*:*";
12 | const permissions = store.getters && store.getters.permissions
13 |
14 | if (value && value instanceof Array && value.length > 0) {
15 | const permissionFlag = value
16 |
17 | const hasPermissions = permissions.some(permission => {
18 | return all_permission === permission || permissionFlag.includes(permission)
19 | })
20 |
21 | if (!hasPermissions) {
22 | el.parentNode && el.parentNode.removeChild(el)
23 | }
24 | } else {
25 | throw new Error(`请设置操作权限标签值`)
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/workflow-ui/src/directive/permission/hasRole.js:
--------------------------------------------------------------------------------
1 | /**
2 | * v-hasRole 角色权限处理
3 | * Copyright (c) 2019 workflow
4 | */
5 |
6 | import store from '@/store'
7 |
8 | export default {
9 | inserted(el, binding, vnode) {
10 | const { value } = binding
11 | const super_admin = "admin";
12 | const roles = store.getters && store.getters.roles
13 |
14 | if (value && value instanceof Array && value.length > 0) {
15 | const roleFlag = value
16 |
17 | const hasRole = roles.some(role => {
18 | return super_admin === role || roleFlag.includes(role)
19 | })
20 |
21 | if (!hasRole) {
22 | el.parentNode && el.parentNode.removeChild(el)
23 | }
24 | } else {
25 | throw new Error(`请设置角色权限标签值"`)
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/workflow-ui/src/icons/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import SvgIcon from '@/components/SvgIcon'// svg component
3 |
4 | // register globally
5 | Vue.component('svg-icon', SvgIcon)
6 |
7 | const req = require.context('./svg', false, /\.svg$/)
8 | const requireAll = requireContext => requireContext.keys().map(requireContext)
9 | requireAll(req)
10 |
--------------------------------------------------------------------------------
/workflow-ui/src/icons/svg/input.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/icons/svg/row.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/icons/svg/slider.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/icons/svg/switch.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/icons/svg/textarea.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/icons/svg/time.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/workflow-ui/src/layout/components/InnerLink/index.vue:
--------------------------------------------------------------------------------
1 |
28 |
--------------------------------------------------------------------------------
/workflow-ui/src/layout/components/Sidebar/FixiOSBug.js:
--------------------------------------------------------------------------------
1 | export default {
2 | computed: {
3 | device() {
4 | return this.$store.state.app.device
5 | }
6 | },
7 | mounted() {
8 | // In order to fix the click on menu on the ios device will trigger the mouseleave bug
9 | this.fixBugIniOS()
10 | },
11 | methods: {
12 | fixBugIniOS() {
13 | const $subMenu = this.$refs.subMenu
14 | if ($subMenu) {
15 | const handleMouseleave = $subMenu.handleMouseleave
16 | $subMenu.handleMouseleave = (e) => {
17 | if (this.device === 'mobile') {
18 | return
19 | }
20 | handleMouseleave(e)
21 | }
22 | }
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/workflow-ui/src/layout/components/Sidebar/Item.vue:
--------------------------------------------------------------------------------
1 |
30 |
--------------------------------------------------------------------------------
/workflow-ui/src/layout/components/Sidebar/Link.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
44 |
--------------------------------------------------------------------------------
/workflow-ui/src/layout/components/index.js:
--------------------------------------------------------------------------------
1 | export { default as AppMain } from './AppMain'
2 | export { default as Navbar } from './Navbar'
3 | export { default as Settings } from './Settings'
4 | export { default as Sidebar } from './Sidebar/index.vue'
5 | export { default as TagsView } from './TagsView/index.vue'
6 |
--------------------------------------------------------------------------------
/workflow-ui/src/plugins/content-pad/index.js:
--------------------------------------------------------------------------------
1 | import CustomContextPadProvider from "./contentPadProvider";
2 |
3 | export default {
4 | __init__: ["contextPadProvider"],
5 | contextPadProvider: ["type", CustomContextPadProvider]
6 | };
7 |
--------------------------------------------------------------------------------
/workflow-ui/src/plugins/extension-moddle/activiti/index.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @author igdianov
3 | * address https://github.com/igdianov/activiti-bpmn-moddle
4 | * */
5 |
6 | module.exports = {
7 | __init__: ["ActivitiModdleExtension"],
8 | ActivitiModdleExtension: ["type", require("./activitiExtension")]
9 | };
10 |
--------------------------------------------------------------------------------
/workflow-ui/src/plugins/extension-moddle/camunda/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | module.exports = {
4 | __init__: ["camundaModdleExtension"],
5 | camundaModdleExtension: ["type", require("./extension")]
6 | };
7 |
--------------------------------------------------------------------------------
/workflow-ui/src/plugins/extension-moddle/flowable/index.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @author igdianov
3 | * address https://github.com/igdianov/activiti-bpmn-moddle
4 | * */
5 |
6 | module.exports = {
7 | __init__: ["FlowableModdleExtension"],
8 | FlowableModdleExtension: ["type", require("./flowableExtension")]
9 | };
10 |
--------------------------------------------------------------------------------
/workflow-ui/src/plugins/highlight/index.js:
--------------------------------------------------------------------------------
1 | const hljs = require("highlight.js/lib/core");
2 | hljs.registerLanguage("xml", require("highlight.js/lib/languages/xml"));
3 | hljs.registerLanguage("json", require("highlight.js/lib/languages/json"));
4 | hljs.registerLanguage("java", require("highlight.js/lib/languages/java"));
5 | hljs.registerLanguage("html", require("highlight.js/lib/languages/xml"));
6 | hljs.registerLanguage("vue", require("highlight.js/lib/languages/xml"));
7 | hljs.registerLanguage("javascript", require("highlight.js/lib/languages/javascript"));
8 | hljs.registerLanguage("sql", require("highlight.js/lib/languages/sql"));
9 |
10 | module.exports = hljs;
11 |
--------------------------------------------------------------------------------
/workflow-ui/src/settings.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | /**
3 | * 侧边栏主题 深色主题theme-dark,浅色主题theme-light
4 | */
5 | sideTheme: 'theme-dark',
6 |
7 | /**
8 | * 是否系统布局配置
9 | */
10 | showSettings: false,
11 |
12 | /**
13 | * 是否显示顶部导航
14 | */
15 | topNav: false,
16 |
17 | /**
18 | * 是否显示 tagsView
19 | */
20 | tagsView: true,
21 |
22 | /**
23 | * 是否固定头部
24 | */
25 | fixedHeader: false,
26 |
27 | /**
28 | * 是否显示logo
29 | */
30 | sidebarLogo: true,
31 |
32 | /**
33 | * 是否显示动态标题
34 | */
35 | dynamicTitle: false,
36 |
37 | /**
38 | * @type {string | array} 'production' | ['production', 'development']
39 | * @description Need show err logs component.
40 | * The default is only used in the production env
41 | * If you want to also use it in dev, you can pass ['production', 'development']
42 | */
43 | errorLog: 'production'
44 | }
45 |
--------------------------------------------------------------------------------
/workflow-ui/src/store/getters.js:
--------------------------------------------------------------------------------
1 | const getters = {
2 | sidebar: state => state.app.sidebar,
3 | size: state => state.app.size,
4 | device: state => state.app.device,
5 | visitedViews: state => state.tagsView.visitedViews,
6 | cachedViews: state => state.tagsView.cachedViews,
7 | token: state => state.user.token,
8 | avatar: state => state.user.avatar,
9 | name: state => state.user.name,
10 | introduction: state => state.user.introduction,
11 | roles: state => state.user.roles,
12 | permissions: state => state.user.permissions,
13 | permission_routes: state => state.permission.routes,
14 | topbarRouters:state => state.permission.topbarRouters,
15 | defaultRoutes:state => state.permission.defaultRoutes,
16 | sidebarRouters:state => state.permission.sidebarRouters,
17 | modelSelect: state => state.modelSelect
18 | }
19 | export default getters
20 |
--------------------------------------------------------------------------------
/workflow-ui/src/store/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Vuex from 'vuex'
3 | import app from './modules/app'
4 | import user from './modules/user'
5 | import dict from './modules/dict'
6 | import tagsView from './modules/tagsView'
7 | import permission from './modules/permission'
8 | import settings from './modules/settings'
9 | import getters from './getters'
10 | import modelSelect from './modules/modelSelect'
11 |
12 | Vue.use(Vuex)
13 |
14 | const store = new Vuex.Store({
15 | modules: {
16 | app,
17 | user,
18 | tagsView,
19 | dict,
20 | permission,
21 | settings,
22 | modelSelect
23 | },
24 | getters
25 | })
26 |
27 | export default store
28 |
--------------------------------------------------------------------------------
/workflow-ui/src/styles/mixin.scss:
--------------------------------------------------------------------------------
1 | @mixin action-bar {
2 | .action-bar {
3 | height: 33px;
4 | background: #f2fafb;
5 | padding: 0 15px;
6 | box-sizing: border-box;
7 |
8 | .bar-btn {
9 | display: inline-block;
10 | padding: 0 6px;
11 | line-height: 32px;
12 | color: #8285f5;
13 | cursor: pointer;
14 | font-size: 14px;
15 | user-select: none;
16 | & i {
17 | font-size: 20px;
18 | }
19 | &:hover {
20 | color: #4348d4;
21 | }
22 | }
23 | .bar-btn + .bar-btn {
24 | margin-left: 8px;
25 | }
26 | .delete-btn {
27 | color: #f56c6c;
28 | &:hover {
29 | color: #ea0b30;
30 | }
31 | }
32 | }
33 | }
--------------------------------------------------------------------------------
/workflow-ui/src/utils/auth.js:
--------------------------------------------------------------------------------
1 | import Cookies from 'js-cookie'
2 |
3 | const TokenKey = 'Admin-Token'
4 |
5 | export function getToken() {
6 | return Cookies.get(TokenKey)
7 | }
8 |
9 | export function setToken(token) {
10 | return Cookies.set(TokenKey, token)
11 | }
12 |
13 | export function removeToken() {
14 | return Cookies.remove(TokenKey)
15 | }
16 |
--------------------------------------------------------------------------------
/workflow-ui/src/utils/errorCode.js:
--------------------------------------------------------------------------------
1 | export default {
2 | '401': '认证失败,无法访问系统资源',
3 | '403': '当前操作没有权限',
4 | '404': '访问资源不存在',
5 | 'default': '系统未知错误,请反馈给管理员'
6 | }
7 |
--------------------------------------------------------------------------------
/workflow-ui/src/utils/generator/css.js:
--------------------------------------------------------------------------------
1 | const styles = {
2 | 'el-rate': '.el-rate{display: inline-block; vertical-align: text-top;}',
3 | 'el-upload': '.el-upload__tip{line-height: 1.2;}'
4 | }
5 |
6 | function addCss(cssList, el) {
7 | const css = styles[el.tag]
8 | css && cssList.indexOf(css) === -1 && cssList.push(css)
9 | if (el.children) {
10 | el.children.forEach(el2 => addCss(cssList, el2))
11 | }
12 | }
13 |
14 | export function makeUpCss(conf) {
15 | const cssList = []
16 | conf.fields.forEach(el => addCss(cssList, el))
17 | return cssList.join('\n')
18 | }
19 |
--------------------------------------------------------------------------------
/workflow-ui/src/utils/generator/ruleTrigger.js:
--------------------------------------------------------------------------------
1 | /**
2 | * 用于生成表单校验,指定正则规则的触发方式。
3 | * 未在此处声明无触发方式的组件将不生成rule!!
4 | */
5 | export default {
6 | 'el-input': 'blur',
7 | 'el-input-number': 'blur',
8 | 'el-select': 'change',
9 | 'el-radio-group': 'change',
10 | 'el-checkbox-group': 'change',
11 | 'el-cascader': 'change',
12 | 'el-time-picker': 'change',
13 | 'el-date-picker': 'change',
14 | 'el-rate': 'change',
15 | tinymce: 'blur'
16 | }
17 |
--------------------------------------------------------------------------------
/workflow-ui/src/utils/loadBeautifier.js:
--------------------------------------------------------------------------------
1 | import loadScript from './loadScript'
2 | import ELEMENT from 'element-ui'
3 | import pluginsConfig from './pluginsConfig'
4 |
5 | let beautifierObj
6 |
7 | export default function loadBeautifier(cb) {
8 | const { beautifierUrl } = pluginsConfig
9 | if (beautifierObj) {
10 | cb(beautifierObj)
11 | return
12 | }
13 |
14 | const loading = ELEMENT.Loading.service({
15 | fullscreen: true,
16 | lock: true,
17 | text: '格式化资源加载中...',
18 | spinner: 'el-icon-loading',
19 | background: 'rgba(255, 255, 255, 0.5)'
20 | })
21 |
22 | loadScript(beautifierUrl, () => {
23 | loading.close()
24 | // eslint-disable-next-line no-undef
25 | beautifierObj = beautifier
26 | cb(beautifierObj)
27 | })
28 | }
29 |
--------------------------------------------------------------------------------
/workflow-ui/src/utils/loadTinymce.js:
--------------------------------------------------------------------------------
1 | import loadScript from './loadScript'
2 | import ELEMENT from 'element-ui'
3 | import pluginsConfig from './pluginsConfig'
4 |
5 | let tinymceObj
6 |
7 | export default function loadTinymce(cb) {
8 | const { tinymceUrl } = pluginsConfig
9 |
10 | if (tinymceObj) {
11 | cb(tinymceObj)
12 | return
13 | }
14 |
15 | const loading = ELEMENT.Loading.service({
16 | fullscreen: true,
17 | lock: true,
18 | text: '富文本资源加载中...',
19 | spinner: 'el-icon-loading',
20 | background: 'rgba(255, 255, 255, 0.5)'
21 | })
22 |
23 | loadScript(tinymceUrl, () => {
24 | loading.close()
25 | // eslint-disable-next-line no-undef
26 | tinymceObj = tinymce
27 | cb(tinymceObj)
28 | })
29 | }
30 |
--------------------------------------------------------------------------------
/workflow-ui/src/utils/pluginsConfig.js:
--------------------------------------------------------------------------------
1 | const CDN = 'https://lib.baomitu.com/' // CDN Homepage: https://cdn.baomitu.com/
2 | const publicPath = process.env.BASE_URL
3 |
4 | function splicingPluginUrl(PluginName, version, fileName) {
5 | return `${CDN}${PluginName}/${version}/${fileName}`
6 | }
7 |
8 | export default {
9 | beautifierUrl: splicingPluginUrl('js-beautify', '1.13.5', 'beautifier.min.js'),
10 | // monacoEditorUrl: splicingPluginUrl('monaco-editor', '0.19.3', 'min/vs'), // 使用 monaco-editor CDN 链接
11 | monacoEditorUrl: `${publicPath}libs/monaco-editor/vs`, // 使用 monaco-editor 本地代码
12 | tinymceUrl: splicingPluginUrl('tinymce', '5.7.0', 'tinymce.min.js')
13 | }
14 |
--------------------------------------------------------------------------------
/workflow-ui/src/views/components/icons/svg-icons.js:
--------------------------------------------------------------------------------
1 | const req = require.context('../../../assets/icons/svg', false, /\.svg$/)
2 | const requireAll = requireContext => requireContext.keys()
3 |
4 | const re = /\.\/(.*)\.svg/
5 |
6 | const svgIcons = requireAll(req).map(i => {
7 | return i.match(re)[1]
8 | })
9 |
10 | export default svgIcons
11 |
--------------------------------------------------------------------------------
/workflow-ui/src/views/monitor/druid/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
16 |
--------------------------------------------------------------------------------
/workflow-ui/src/views/processCore/processConfig/email/dict.js:
--------------------------------------------------------------------------------
1 | export default {
2 | computed: {
3 | dict() {
4 | return {
5 | tenant: this.$store.state.dict.tenant,
6 | }
7 | }
8 | },
9 | methods: {
10 | formatterTenantId(row, column, cellValue) {
11 | return this.dict.tenant.find(item => item.value === cellValue).name
12 | },
13 | },
14 | }
15 |
--------------------------------------------------------------------------------
/workflow-ui/src/views/processCore/processConfig/processTenant/dict.js:
--------------------------------------------------------------------------------
1 | export default {
2 | computed: {
3 | dict() {
4 | return {
5 | // 是否上线
6 | systemListener: [
7 | {
8 | label: '上线',
9 | value: 0
10 | },
11 | {
12 | label: '下线',
13 | value: 1
14 | }
15 | ],
16 | }
17 | }
18 | },
19 | methods: {
20 |
21 | formatterStatus(row, column, cellValue) {
22 | return this.dict.systemListener.find(item => item.value === cellValue)?.label ?? ''
23 | },
24 | },
25 | }
26 |
--------------------------------------------------------------------------------
/workflow-ui/src/views/processCore/processMeta/definition/dict.js:
--------------------------------------------------------------------------------
1 | export default {
2 | computed: {
3 | dict() {
4 | return {
5 | category: this.$store.state.dict.category,
6 | }
7 | }
8 | },
9 | methods: {
10 | formatterCategoryId(row, column, cellValue) {
11 | console.log(cellValue);
12 | const findDict = this.dict.category.find(item => item.value == cellValue)
13 | return findDict ? findDict.name : "未找到字典项"
14 | }
15 | },
16 | }
17 |
--------------------------------------------------------------------------------
/workflow-ui/src/views/processCore/processMeta/task/record/flow.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 |
11 |
33 |
--------------------------------------------------------------------------------
/workflow-ui/src/views/processCore/processService/processExpression/dict.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: xueyan
3 | * @Date: 2021-09-01 14:32:17
4 | * @LastEditTime: 2021-09-01 14:35:23
5 | * @LastEditors: Please set LastEditors
6 | * @Description: 流程表达式字典
7 | * @FilePath: /flow-template-front/src/views/processManagement/processExpression/dict.js
8 | */
9 |
10 | export default {
11 | computed: {
12 | dict() {
13 | return {
14 | systemExpression: [
15 | {
16 | label: '是',
17 | value: 0
18 | },
19 | {
20 | label: '否',
21 | value: 1
22 | }
23 | ]
24 | }
25 | }
26 | },
27 | methods: {
28 | formatterSystemExpression(row, column, cellValue) {
29 | return this.dict.systemExpression.find(item => item.value === cellValue)?.label ?? ''
30 | },
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/workflow-ui/src/views/processCore/processService/processModelDesign/custom-renderer/CustomRenderer.js:
--------------------------------------------------------------------------------
1 | import BpmnRenderer from "bpmn-js/lib/draw/BpmnRenderer";
2 |
3 | export default function CustomRenderer(config, eventBus, styles, pathMap, canvas, textRenderer) {
4 | BpmnRenderer.call(this, config, eventBus, styles, pathMap, canvas, textRenderer, 2000);
5 |
6 | this.handlers["label"] = function() {
7 | return null;
8 | };
9 | }
10 |
11 | const F = function() {}; // 核心,利用空对象作为中介;
12 | F.prototype = BpmnRenderer.prototype; // 核心,将父类的原型赋值给空对象F;
13 | CustomRenderer.prototype = new F(); // 核心,将 F的实例赋值给子类;
14 | CustomRenderer.prototype.constructor = CustomRenderer; // 修复子类CustomRenderer的构造器指向,防止原型链的混乱;
15 |
--------------------------------------------------------------------------------
/workflow-ui/src/views/processCore/processService/processModelDesign/custom-renderer/index.js:
--------------------------------------------------------------------------------
1 | import CustomRenderer from "./CustomRenderer";
2 |
3 | export default {
4 | __init__: ["customRenderer"],
5 | customRenderer: ["type", CustomRenderer]
6 | };
7 |
--------------------------------------------------------------------------------
/workflow-ui/src/views/processCore/processService/processSerivceCategory/dict.js:
--------------------------------------------------------------------------------
1 | export default {
2 | computed: {
3 | dict() {
4 | return {
5 | flag: this.$store.state.dict.flag,
6 | }
7 | }
8 | },
9 | methods: {
10 | formatterFlag(row, column, cellValue) {
11 | return this.dict.flag.find(item => item.value === cellValue).name
12 | },
13 | },
14 | }
--------------------------------------------------------------------------------
/workflow-ui/src/views/redirect.vue:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/workflow-ui/src/views/tool/build/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
23 |
--------------------------------------------------------------------------------
/workflow-ui/src/views/tool/build/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import App from './App.vue'
3 | import router from '@/router'
4 | import '@/styles/index.scss'
5 | import '@/icons'
6 | import axios from 'axios'
7 | import Tinymce from '@/components/tinymce/index.vue'
8 |
9 | Vue.component('tinymce', Tinymce)
10 |
11 | Vue.config.productionTip = false
12 | Vue.prototype.$axios = axios
13 |
14 | new Vue({
15 | router,
16 | render: h => h(App)
17 | }).$mount('#app')
18 |
--------------------------------------------------------------------------------
/workflow-ui/src/views/tool/swagger/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
16 |
--------------------------------------------------------------------------------
/workflow-ui/src/views/workBench/done/dict.js:
--------------------------------------------------------------------------------
1 | export default {
2 | computed: {
3 | dict() {
4 | return {
5 | tenant: this.$store.state.dict.tenant,
6 | category: this.$store.state.dict.category,
7 | todoUsers: this.$store.state.dict.todoUsers
8 | }
9 | }
10 | },
11 | methods: {
12 | formatterFlowStatus(row, column, cellValue) {
13 | return this.dict.flowStatus.find(item => item.value === cellValue).name
14 | },
15 | formatterTenant(row, column, cellValue) {
16 | return this.dict.tenant.find(item => item.value === cellValue).name
17 | },
18 | },
19 | }
--------------------------------------------------------------------------------
/workflow-ui/src/views/workBench/group/dict.js:
--------------------------------------------------------------------------------
1 | export default {
2 | computed: {
3 | dict() {
4 | return {
5 | tenant: this.$store.state.dict.tenant,
6 | category: this.$store.state.dict.category,
7 | todoUsers: this.$store.state.dict.todoUsers
8 | }
9 | }
10 | },
11 | methods: {
12 | formatterFlowStatus(row, column, cellValue) {
13 | return this.dict.flowStatus.find(item => item.value === cellValue).name
14 | },
15 | formatterTenant(row, column, cellValue) {
16 | return this.dict.tenant.find(item => item.value === cellValue).name
17 | },
18 | },
19 | }
--------------------------------------------------------------------------------
/workflow-ui/src/views/workBench/homePage/DoneMission/dict.js:
--------------------------------------------------------------------------------
1 | export default {
2 | computed: {
3 | dict() {
4 | return {
5 | tenant: this.$store.state.dict.tenant,
6 | category: this.$store.state.dict.category,
7 | todoUsers: this.$store.state.dict.todoUsers
8 | }
9 | }
10 | },
11 | methods: {
12 | formatterFlowStatus(row, column, cellValue) {
13 | return this.dict.flowStatus.find(item => item.value === cellValue).name
14 | },
15 | formatterTenant(row, column, cellValue) {
16 | return this.dict.tenant.find(item => item.value === cellValue).name
17 | },
18 | },
19 | }
--------------------------------------------------------------------------------
/workflow-ui/src/views/workBench/homePage/GroupMission/dict.js:
--------------------------------------------------------------------------------
1 | export default {
2 | computed: {
3 | dict() {
4 | return {
5 | tenant: this.$store.state.dict.tenant,
6 | category: this.$store.state.dict.category,
7 | todoUsers: this.$store.state.dict.todoUsers
8 | }
9 | }
10 | },
11 | methods: {
12 | formatterFlowStatus(row, column, cellValue) {
13 | return this.dict.flowStatus.find(item => item.value === cellValue).name
14 | },
15 | formatterTenant(row, column, cellValue) {
16 | return this.dict.tenant.find(item => item.value === cellValue).name
17 | },
18 | },
19 | }
--------------------------------------------------------------------------------
/workflow-ui/src/views/workBench/homePage/LaunchMission/LaunchMission.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
22 |
--------------------------------------------------------------------------------
/workflow-ui/src/views/workBench/homePage/PersonalMission/dict.js:
--------------------------------------------------------------------------------
1 | export default {
2 | computed: {
3 | dict() {
4 | return {
5 | tenant: this.$store.state.dict.tenant,
6 | category: this.$store.state.dict.category,
7 | todoUsers: this.$store.state.dict.todoUsers
8 | }
9 | }
10 | },
11 | methods: {
12 | formatterFlowStatus(row, column, cellValue) {
13 | return this.dict.flowStatus.find(item => item.value === cellValue).name
14 | },
15 | formatterTenant(row, column, cellValue) {
16 | return this.dict.tenant.find(item => item.value === cellValue).name
17 | },
18 | },
19 | }
--------------------------------------------------------------------------------
/workflow-ui/src/views/workBench/homePage/SentMission/dict.js:
--------------------------------------------------------------------------------
1 | export default {
2 | computed: {
3 | dict() {
4 | return {
5 | tenant: this.$store.state.dict.tenant,
6 | category: this.$store.state.dict.category,
7 | todoUsers: this.$store.state.dict.todoUsers
8 | }
9 | }
10 | },
11 | methods: {
12 | formatterFlowStatus(row, column, cellValue) {
13 | return this.dict.flowStatus.find(item => item.value === cellValue).name
14 | },
15 | formatterTenant(row, column, cellValue) {
16 | return this.dict.tenant.find(item => item.value === cellValue).name
17 | },
18 | },
19 | }
--------------------------------------------------------------------------------
/workflow-ui/src/views/workBench/overTime/dict.js:
--------------------------------------------------------------------------------
1 | export default {
2 | computed: {
3 | dict() {
4 | return {
5 | tenant: this.$store.state.dict.tenant,
6 | category: this.$store.state.dict.category,
7 | todoUsers: this.$store.state.dict.todoUsers
8 | }
9 | }
10 | },
11 | methods: {
12 | formatterFlowStatus(row, column, cellValue) {
13 | return this.dict.flowStatus.find(item => item.value === cellValue).name
14 | },
15 | formatterTenant(row, column, cellValue) {
16 | return this.dict.tenant.find(item => item.value === cellValue).name
17 | },
18 | },
19 | }
--------------------------------------------------------------------------------
/workflow-ui/src/views/workBench/sent/dict.js:
--------------------------------------------------------------------------------
1 | export default {
2 | computed: {
3 | dict() {
4 | return {
5 | tenant: this.$store.state.dict.tenant,
6 | category: this.$store.state.dict.category,
7 | todoUsers: this.$store.state.dict.todoUsers
8 | }
9 | }
10 | },
11 | methods: {
12 | formatterFlowStatus(row, column, cellValue) {
13 | return this.dict.flowStatus.find(item => item.value === cellValue).name
14 | },
15 | formatterTenant(row, column, cellValue) {
16 | return this.dict.tenant.find(item => item.value === cellValue).name
17 | },
18 | },
19 | }
--------------------------------------------------------------------------------
/workflow-ui/src/views/workBench/todo/dict.js:
--------------------------------------------------------------------------------
1 | export default {
2 | computed: {
3 | dict() {
4 | return {
5 | tenant: this.$store.state.dict.tenant,
6 | category: this.$store.state.dict.category,
7 | todoUsers: this.$store.state.dict.todoUsers
8 | }
9 | }
10 | },
11 | methods: {
12 | formatterFlowStatus(row, column, cellValue) {
13 | return this.dict.flowStatus.find(item => item.value === cellValue).name
14 | },
15 | formatterTenant(row, column, cellValue) {
16 | return this.dict.tenant.find(item => item.value === cellValue).name
17 | },
18 | },
19 | }
--------------------------------------------------------------------------------