├── .gitattributes
├── dist
├── favicon.ico
├── img
│ └── loading.c54ac4d1.gif
├── app.839d3d2e4a04b0c9892b.js.gz
├── fonts
│ ├── element-icons.732389de.ttf
│ └── element-icons.535877f5.woff
├── js
│ ├── chunk-25ca418e.27906047.js.gz
│ └── chunk-vendors.789a9fa6.js.gz
├── css
│ ├── chunk-25ca418e.fea66408.css.gz
│ ├── chunk-vendors.3b8bc273.css.gz
│ ├── app.cee175a8.css
│ └── chunk-25ca418e.fea66408.css
├── departments324.json
├── departments150.json
├── departments.json
├── departments0.json
├── conditions.json
├── index.html
├── conditions字段注释.js
├── employees.json
├── roles.json
├── data.json
├── data字段注释.js
└── app.839d3d2e4a04b0c9892b.js
├── public
├── favicon.ico
├── departments324.json
├── index.html
├── departments150.json
├── departments.json
├── departments0.json
├── conditions.json
├── conditions字段注释.js
├── employees.json
├── roles.json
├── data.json
└── data字段注释.js
├── src
├── assets
│ ├── logo.png
│ └── images
│ │ ├── cancel.png
│ │ ├── jiaojiao.png
│ │ ├── loading.gif
│ │ ├── add-close.png
│ │ ├── add-close1.png
│ │ ├── check_box.png
│ │ ├── icon_file.png
│ │ ├── icon_role.png
│ │ ├── next_level.png
│ │ ├── icon_people.png
│ │ ├── list_search.png
│ │ └── next_level_active.png
├── router.js
├── plugins
│ ├── element.js
│ ├── api.js
│ ├── axios.js
│ └── preload.js
├── css
│ ├── dialog.css
│ └── override-element-ui.css
├── components
│ ├── dialog
│ │ ├── mixins.js
│ │ ├── errorDialog.vue
│ │ ├── roleDialog.vue
│ │ ├── employeesDialog.vue
│ │ └── employeesRoleDialog.vue
│ ├── selectBox.vue
│ ├── selectResult.vue
│ ├── drawer
│ │ ├── promoterDrawer.vue
│ │ ├── copyerDrawer.vue
│ │ ├── approverDrawer.vue
│ │ └── conditionDrawer.vue
│ ├── addNode.vue
│ └── nodeWrap.vue
├── main.js
├── store.js
├── App.vue
└── views
│ └── setting.vue
├── .prettierrc
├── .gitignore
├── babel.config.js
├── LICENSE
├── vue.config.js
├── package.json
└── README.md
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.css linguist-language=Vue
--------------------------------------------------------------------------------
/dist/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StavinLi/Workflow/HEAD/dist/favicon.ico
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StavinLi/Workflow/HEAD/public/favicon.ico
--------------------------------------------------------------------------------
/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StavinLi/Workflow/HEAD/src/assets/logo.png
--------------------------------------------------------------------------------
/dist/img/loading.c54ac4d1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StavinLi/Workflow/HEAD/dist/img/loading.c54ac4d1.gif
--------------------------------------------------------------------------------
/src/assets/images/cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StavinLi/Workflow/HEAD/src/assets/images/cancel.png
--------------------------------------------------------------------------------
/src/assets/images/jiaojiao.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StavinLi/Workflow/HEAD/src/assets/images/jiaojiao.png
--------------------------------------------------------------------------------
/src/assets/images/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StavinLi/Workflow/HEAD/src/assets/images/loading.gif
--------------------------------------------------------------------------------
/src/assets/images/add-close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StavinLi/Workflow/HEAD/src/assets/images/add-close.png
--------------------------------------------------------------------------------
/src/assets/images/add-close1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StavinLi/Workflow/HEAD/src/assets/images/add-close1.png
--------------------------------------------------------------------------------
/src/assets/images/check_box.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StavinLi/Workflow/HEAD/src/assets/images/check_box.png
--------------------------------------------------------------------------------
/src/assets/images/icon_file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StavinLi/Workflow/HEAD/src/assets/images/icon_file.png
--------------------------------------------------------------------------------
/src/assets/images/icon_role.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StavinLi/Workflow/HEAD/src/assets/images/icon_role.png
--------------------------------------------------------------------------------
/src/assets/images/next_level.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StavinLi/Workflow/HEAD/src/assets/images/next_level.png
--------------------------------------------------------------------------------
/dist/app.839d3d2e4a04b0c9892b.js.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StavinLi/Workflow/HEAD/dist/app.839d3d2e4a04b0c9892b.js.gz
--------------------------------------------------------------------------------
/src/assets/images/icon_people.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StavinLi/Workflow/HEAD/src/assets/images/icon_people.png
--------------------------------------------------------------------------------
/src/assets/images/list_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StavinLi/Workflow/HEAD/src/assets/images/list_search.png
--------------------------------------------------------------------------------
/dist/fonts/element-icons.732389de.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StavinLi/Workflow/HEAD/dist/fonts/element-icons.732389de.ttf
--------------------------------------------------------------------------------
/dist/js/chunk-25ca418e.27906047.js.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StavinLi/Workflow/HEAD/dist/js/chunk-25ca418e.27906047.js.gz
--------------------------------------------------------------------------------
/dist/js/chunk-vendors.789a9fa6.js.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StavinLi/Workflow/HEAD/dist/js/chunk-vendors.789a9fa6.js.gz
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "tabWidth": 4,
3 | "semi": true,
4 | "singleQuote": true,
5 | "trailingComma": "none"
6 | }
7 |
--------------------------------------------------------------------------------
/dist/css/chunk-25ca418e.fea66408.css.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StavinLi/Workflow/HEAD/dist/css/chunk-25ca418e.fea66408.css.gz
--------------------------------------------------------------------------------
/dist/css/chunk-vendors.3b8bc273.css.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StavinLi/Workflow/HEAD/dist/css/chunk-vendors.3b8bc273.css.gz
--------------------------------------------------------------------------------
/dist/fonts/element-icons.535877f5.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StavinLi/Workflow/HEAD/dist/fonts/element-icons.535877f5.woff
--------------------------------------------------------------------------------
/src/assets/images/next_level_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StavinLi/Workflow/HEAD/src/assets/images/next_level_active.png
--------------------------------------------------------------------------------
/src/router.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Router from 'vue-router'
3 |
4 | Vue.use(Router)
5 |
6 | export default new Router({
7 | routes: [{
8 | path: '/',
9 | component: (resolve) => {
10 | require([`@/views/setting`], resolve)
11 | }
12 | }]
13 | })
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 |
4 | # local env files
5 | .env.local
6 | .env.*.local
7 |
8 | # Log files
9 | npm-debug.log*
10 | yarn-debug.log*
11 | yarn-error.log*
12 |
13 | # Editor directories and files
14 | .idea
15 | .vscode
16 | *.suo
17 | *.ntvs*
18 | *.njsproj
19 | *.sln
20 | *.sw?
21 |
--------------------------------------------------------------------------------
/babel.config.js:
--------------------------------------------------------------------------------
1 | const plugins = [
2 | [
3 | "component",
4 | {
5 | "libraryName": "element-ui",
6 | "styleLibraryName": "theme-chalk"
7 | }
8 | ]
9 | ]
10 | if (process.env.NODE_ENV == 'production') {
11 | plugins.push('transform-remove-console')
12 | }
13 | module.exports = {
14 | "presets": [
15 | "@vue/app"
16 | ],
17 | "plugins": plugins
18 | }
--------------------------------------------------------------------------------
/dist/departments324.json:
--------------------------------------------------------------------------------
1 | {
2 | "code": "200",
3 | "msg": "操作成功",
4 | "data": {
5 | "childDepartments": [],
6 | "employees": [{
7 | "id": "53128133",
8 | "employeeName": "测试3",
9 | "isLeave": "0",
10 | "open": "false"
11 | }],
12 | "titleDepartments": [{
13 | "departmentId": "324",
14 | "departmentKey": "ZNBN",
15 | "departmentName": "法务部",
16 | "departmentNames": "法务部",
17 | "id": "324",
18 | "parentId": "0"
19 | }]
20 | }
21 | }
--------------------------------------------------------------------------------
/public/departments324.json:
--------------------------------------------------------------------------------
1 | {
2 | "code": "200",
3 | "msg": "操作成功",
4 | "data": {
5 | "childDepartments": [],
6 | "employees": [{
7 | "id": "53128133",
8 | "employeeName": "测试3",
9 | "isLeave": "0",
10 | "open": "false"
11 | }],
12 | "titleDepartments": [{
13 | "departmentId": "324",
14 | "departmentKey": "ZNBN",
15 | "departmentName": "法务部",
16 | "departmentNames": "法务部",
17 | "id": "324",
18 | "parentId": "0"
19 | }]
20 | }
21 | }
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | 审批设置
10 |
11 |
12 |
13 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/dist/departments150.json:
--------------------------------------------------------------------------------
1 | {
2 | "code": "200",
3 | "msg": "操作成功",
4 | "data": {
5 | "childDepartments": [],
6 | "employees": [{
7 | "id": "53128112",
8 | "employeeName": "测试1",
9 | "isLeave": "0",
10 | "open": "false"
11 | },{
12 | "id": "53128113",
13 | "employeeName": "测试2",
14 | "isLeave": "0",
15 | "open": "false"
16 | }],
17 | "titleDepartments": [{
18 | "departmentId": "150",
19 | "departmentKey": "RLXZB_V2",
20 | "departmentName": "人力行政部",
21 | "departmentNames": "人力行政部",
22 | "id": "150",
23 | "parentId": "0"
24 | }]
25 | }
26 | }
--------------------------------------------------------------------------------
/public/departments150.json:
--------------------------------------------------------------------------------
1 | {
2 | "code": "200",
3 | "msg": "操作成功",
4 | "data": {
5 | "childDepartments": [],
6 | "employees": [{
7 | "id": "53128112",
8 | "employeeName": "测试1",
9 | "isLeave": "0",
10 | "open": "false"
11 | },{
12 | "id": "53128113",
13 | "employeeName": "测试2",
14 | "isLeave": "0",
15 | "open": "false"
16 | }],
17 | "titleDepartments": [{
18 | "departmentId": "150",
19 | "departmentKey": "RLXZB_V2",
20 | "departmentName": "人力行政部",
21 | "departmentNames": "人力行政部",
22 | "id": "150",
23 | "parentId": "0"
24 | }]
25 | }
26 | }
--------------------------------------------------------------------------------
/dist/departments.json:
--------------------------------------------------------------------------------
1 | {
2 | "code": "200",
3 | "msg": "操作成功",
4 | "data": {
5 | "childDepartments": [{
6 | "departmentKey": "RLXZB_V2",
7 | "departmentName": "人力行政部",
8 | "id": "150",
9 | "parentId": "0",
10 | "departmentNames": "人力行政部"
11 | }, {
12 | "departmentKey": "ZNBN",
13 | "departmentName": "法务部",
14 | "id": "324",
15 | "parentId": "0",
16 | "departmentNames": "法务部"
17 | }],
18 | "employees": [{
19 | "id": "53128111",
20 | "employeeName": "亚nan",
21 | "isLeave": "0",
22 | "open": "false"
23 | }],
24 | "titleDepartments": []
25 | }
26 | }
--------------------------------------------------------------------------------
/dist/departments0.json:
--------------------------------------------------------------------------------
1 | {
2 | "code": "200",
3 | "msg": "操作成功",
4 | "data": {
5 | "childDepartments": [{
6 | "departmentKey": "RLXZB_V2",
7 | "departmentName": "人力行政部",
8 | "id": "150",
9 | "parentId": "0",
10 | "departmentNames": "人力行政部"
11 | }, {
12 | "departmentKey": "ZNBN",
13 | "departmentName": "法务部",
14 | "id": "324",
15 | "parentId": "0",
16 | "departmentNames": "法务部"
17 | }],
18 | "employees": [{
19 | "id": "53128111",
20 | "employeeName": "亚nan",
21 | "isLeave": "0",
22 | "open": "false"
23 | }],
24 | "titleDepartments": []
25 | }
26 | }
--------------------------------------------------------------------------------
/public/departments.json:
--------------------------------------------------------------------------------
1 | {
2 | "code": "200",
3 | "msg": "操作成功",
4 | "data": {
5 | "childDepartments": [{
6 | "departmentKey": "RLXZB_V2",
7 | "departmentName": "人力行政部",
8 | "id": "150",
9 | "parentId": "0",
10 | "departmentNames": "人力行政部"
11 | }, {
12 | "departmentKey": "ZNBN",
13 | "departmentName": "法务部",
14 | "id": "324",
15 | "parentId": "0",
16 | "departmentNames": "法务部"
17 | }],
18 | "employees": [{
19 | "id": "53128111",
20 | "employeeName": "亚nan",
21 | "isLeave": "0",
22 | "open": "false"
23 | }],
24 | "titleDepartments": []
25 | }
26 | }
--------------------------------------------------------------------------------
/public/departments0.json:
--------------------------------------------------------------------------------
1 | {
2 | "code": "200",
3 | "msg": "操作成功",
4 | "data": {
5 | "childDepartments": [{
6 | "departmentKey": "RLXZB_V2",
7 | "departmentName": "人力行政部",
8 | "id": "150",
9 | "parentId": "0",
10 | "departmentNames": "人力行政部"
11 | }, {
12 | "departmentKey": "ZNBN",
13 | "departmentName": "法务部",
14 | "id": "324",
15 | "parentId": "0",
16 | "departmentNames": "法务部"
17 | }],
18 | "employees": [{
19 | "id": "53128111",
20 | "employeeName": "亚nan",
21 | "isLeave": "0",
22 | "open": "false"
23 | }],
24 | "titleDepartments": []
25 | }
26 | }
--------------------------------------------------------------------------------
/dist/conditions.json:
--------------------------------------------------------------------------------
1 | {
2 | "code": "200",
3 | "msg": "操作成功",
4 | "data": [
5 | {
6 | "columnId": "1090",
7 | "showType": "input",
8 | "showName": "预计采购总费用",
9 | "columnName": "planProcurementTotalMoney",
10 | "columnType": "Double",
11 | "fixedDownBoxValue": ""
12 | },
13 | {
14 | "columnId": "1092",
15 | "showType": "checkBox",
16 | "showName": "采购类型",
17 | "columnName": "procurementType",
18 | "columnType": "String",
19 | "fixedDownBoxValue": "{\"1\":{\"key\":\"1\",\"value\":\"新开园区集中采购\",\"column\":\"\",\"type\":\"1\"}}"
20 | },
21 | {
22 | "columnId": "1093",
23 | "showType": "input",
24 | "showName": "园区面积",
25 | "columnName": "parkArea",
26 | "columnType": "Double",
27 | "fixedDownBoxValue": ""
28 | }
29 | ]
30 | }
--------------------------------------------------------------------------------
/public/conditions.json:
--------------------------------------------------------------------------------
1 | {
2 | "code": "200",
3 | "msg": "操作成功",
4 | "data": [
5 | {
6 | "columnId": "1090",
7 | "showType": "input",
8 | "showName": "预计采购总费用",
9 | "columnName": "planProcurementTotalMoney",
10 | "columnType": "Double",
11 | "fixedDownBoxValue": ""
12 | },
13 | {
14 | "columnId": "1092",
15 | "showType": "checkBox",
16 | "showName": "采购类型",
17 | "columnName": "procurementType",
18 | "columnType": "String",
19 | "fixedDownBoxValue": "{\"1\":{\"key\":\"1\",\"value\":\"新开园区集中采购\",\"column\":\"\",\"type\":\"1\"}}"
20 | },
21 | {
22 | "columnId": "1093",
23 | "showType": "input",
24 | "showName": "园区面积",
25 | "columnName": "parkArea",
26 | "columnType": "Double",
27 | "fixedDownBoxValue": ""
28 | }
29 | ]
30 | }
--------------------------------------------------------------------------------
/src/plugins/element.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import {
3 | Button, Popover,
4 | Dialog, Drawer,
5 | Tree, Radio,
6 | RadioGroup, Checkbox,
7 | CheckboxGroup, Breadcrumb,
8 | BreadcrumbItem, Message,
9 | Tabs,
10 | TabPane,
11 | } from 'element-ui'
12 | import 'element-ui/lib/theme-chalk/index.css'
13 | Vue.use(Button)
14 | Vue.use(Popover)
15 | Vue.use(Dialog)
16 | Vue.use(Drawer)
17 | Vue.use(Tree)
18 | Vue.use(Radio)
19 | Vue.use(RadioGroup)
20 | Vue.use(Checkbox)
21 | Vue.use(CheckboxGroup)
22 | Vue.use(Breadcrumb)
23 | Vue.use(BreadcrumbItem)
24 | Vue.use(Tabs)
25 | Vue.use(TabPane)
26 |
27 | Vue.prototype.$message = {
28 | error(msg) {
29 | Message.closeAll();
30 | Message.error(msg)
31 | },
32 | success(msg) {
33 | Message.closeAll();
34 | Message.success(msg)
35 | }
36 | }
--------------------------------------------------------------------------------
/src/css/dialog.css:
--------------------------------------------------------------------------------
1 | .person_body {
2 | border: 1px solid #f5f5f5;
3 | height: 500px;
4 | }
5 | .tree_nav span {
6 | display: inline-block;
7 | padding-right: 10px;
8 | margin-right: 5px;
9 | max-width: 6em;
10 | color: #38adff;
11 | font-size: 12px;
12 | cursor: pointer;
13 | background: url(~@/assets/images/jiaojiao.png) no-repeat right center;
14 | }
15 | .tree_nav span:last-of-type {
16 | background: none;
17 | }
18 | .person_tree {
19 | padding: 10px 12px 0 8px;
20 | width: 280px;
21 | height: 100%;
22 | border-right: 1px solid #f5f5f5;
23 | }
24 | .person_tree input {
25 | padding-left: 22px;
26 | width: 210px;
27 | height: 30px;
28 | font-size: 12px;
29 | border-radius: 2px;
30 | border: 1px solid #d5dadf;
31 | background: url(~@/assets/images/list_search.png) no-repeat 10px center;
32 | background-size: 14px 14px;
33 | margin-bottom: 14px;
34 | }
35 |
36 | .person_tree img {
37 | width: 14px;
38 | vertical-align: middle;
39 | margin-right: 5px;
40 | }
41 |
--------------------------------------------------------------------------------
/dist/index.html:
--------------------------------------------------------------------------------
1 | 审批设置
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 Stavin Li
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/src/plugins/api.js:
--------------------------------------------------------------------------------
1 | import http from '@/plugins/axios'
2 |
3 | let baseUrl = process.env.BASE_URL
4 |
5 | /**
6 | * 获取角色
7 | * @param {*} data
8 | * @returns
9 | */
10 | export function getRoles(data) {
11 | return http.get(`${baseUrl}roles.json`, { params: data })
12 | }
13 |
14 | /**
15 | * 获取部门
16 | * @param {*} data
17 | * @returns
18 | */
19 | export function getDepartments(data) {
20 | return http.get(`${baseUrl}departments.json`, { params: data })
21 | }
22 |
23 | /**
24 | * 获取职员
25 | * @param {*} data
26 | * @returns
27 | */
28 | export function getEmployees(data) {
29 | return http.get(`${baseUrl}employees.json`, { params: data })
30 | }
31 | /**
32 | * 获取条件字段
33 | * @param {*} data
34 | * @returns
35 | */
36 | export function getConditions(data) {
37 | return http.get(`${baseUrl}conditions.json`, { params: data })
38 | }
39 |
40 | /**
41 | * 获取审批数据
42 | * @param {*} data
43 | * @returns
44 | */
45 | export function getWorkFlowData(data) {
46 | return http.get(`${baseUrl}data.json`, { params: data })
47 | }
48 | /**
49 | * 设置审批数据
50 | * @param {*} data
51 | * @returns
52 | */
53 | export function setWorkFlowData(data) {
54 | return http.post(`${baseUrl}`, data)
55 | }
--------------------------------------------------------------------------------
/dist/conditions字段注释.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @Date: 2022-08-04 16:29:35
3 | * @LastEditors: StavinLi
4 | * @LastEditTime: 2022-09-21 14:18:20
5 | * @FilePath: /Workflow/public/conditions字段注释.js
6 | */
7 | export default {
8 | "code": "200",
9 | "msg": "操作成功",
10 | "data": [
11 | {
12 | //条件id columnId == 0 为发起人
13 | "columnId": "1090",
14 | //columnType == "String" && showType == "checkBox"为多选 columnType == "Double"为区间
15 | "showType": "input",
16 | "showName": "预计采购总费用",
17 | //columnName 条件自定义字段
18 | "columnName": "planProcurementTotalMoney",
19 | "columnType": "Double",
20 | //fixedDownBoxValue 匹配 columnType == "String" && showType == "checkBox"时子选项内容
21 | "fixedDownBoxValue": ""
22 | },
23 | {
24 | "columnId": "1092",
25 | "showType": "checkBox",
26 | "showName": "采购类型",
27 | "columnName": "procurementType",
28 | "columnType": "String",
29 | "fixedDownBoxValue": "{\"1\":{\"key\":\"1\",\"value\":\"新开园区集中采购\",\"column\":\"\",\"type\":\"1\"}}"
30 | },
31 | {
32 | "columnId": "1093",
33 | "showType": "input",
34 | "showName": "园区面积",
35 | "columnName": "parkArea",
36 | "columnType": "Double",
37 | "fixedDownBoxValue": ""
38 | }
39 | ]
40 | }
--------------------------------------------------------------------------------
/public/conditions字段注释.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @Date: 2022-08-04 16:29:35
3 | * @LastEditors: StavinLi
4 | * @LastEditTime: 2022-09-21 14:18:20
5 | * @FilePath: /Workflow/public/conditions字段注释.js
6 | */
7 | export default {
8 | "code": "200",
9 | "msg": "操作成功",
10 | "data": [
11 | {
12 | //条件id columnId == 0 为发起人
13 | "columnId": "1090",
14 | //columnType == "String" && showType == "checkBox"为多选 columnType == "Double"为区间
15 | "showType": "input",
16 | "showName": "预计采购总费用",
17 | //columnName 条件自定义字段
18 | "columnName": "planProcurementTotalMoney",
19 | "columnType": "Double",
20 | //fixedDownBoxValue 匹配 columnType == "String" && showType == "checkBox"时子选项内容
21 | "fixedDownBoxValue": ""
22 | },
23 | {
24 | "columnId": "1092",
25 | "showType": "checkBox",
26 | "showName": "采购类型",
27 | "columnName": "procurementType",
28 | "columnType": "String",
29 | "fixedDownBoxValue": "{\"1\":{\"key\":\"1\",\"value\":\"新开园区集中采购\",\"column\":\"\",\"type\":\"1\"}}"
30 | },
31 | {
32 | "columnId": "1093",
33 | "showType": "input",
34 | "showName": "园区面积",
35 | "columnName": "parkArea",
36 | "columnType": "Double",
37 | "fixedDownBoxValue": ""
38 | }
39 | ]
40 | }
--------------------------------------------------------------------------------
/dist/employees.json:
--------------------------------------------------------------------------------
1 | {
2 | "code": "200",
3 | "msg": "操作成功",
4 | "data": {
5 | "navigatepageNums": ["1"],
6 | "startRow": "1",
7 | "hasNextPage": "false",
8 | "prePage": "0",
9 | "nextPage": "0",
10 | "endRow": "3",
11 | "pageSize": "30",
12 | "list": [{
13 | "departmentName": "招商事业部",
14 | "employeeName": "111111",
15 | "employeeDepartmentId": "121",
16 | "id": "5312",
17 | "departmentNames": "招商事业部"
18 | }, {
19 | "departmentName": "111",
20 | "employeeName": "东亚-测试",
21 | "employeeDepartmentId": "139",
22 | "id": "2515638",
23 | "departmentNames": "111"
24 | }, {
25 | "departmentName": "招商事业部",
26 | "employeeName": "1111",
27 | "employeeDepartmentId": "121",
28 | "id": "2515746",
29 | "departmentNames": "招商事业部"
30 | }],
31 | "pageNum": "1",
32 | "navigatePages": "8",
33 | "navigateFirstPage": "1",
34 | "total": "3",
35 | "pages": "1",
36 | "size": "3",
37 | "isLastPage": "true",
38 | "hasPreviousPage": "false",
39 | "navigateLastPage": "1",
40 | "isFirstPage": "true"
41 | }
42 | }
--------------------------------------------------------------------------------
/public/employees.json:
--------------------------------------------------------------------------------
1 | {
2 | "code": "200",
3 | "msg": "操作成功",
4 | "data": {
5 | "navigatepageNums": ["1"],
6 | "startRow": "1",
7 | "hasNextPage": "false",
8 | "prePage": "0",
9 | "nextPage": "0",
10 | "endRow": "3",
11 | "pageSize": "30",
12 | "list": [{
13 | "departmentName": "招商事业部",
14 | "employeeName": "111111",
15 | "employeeDepartmentId": "121",
16 | "id": "5312",
17 | "departmentNames": "招商事业部"
18 | }, {
19 | "departmentName": "111",
20 | "employeeName": "东亚-测试",
21 | "employeeDepartmentId": "139",
22 | "id": "2515638",
23 | "departmentNames": "111"
24 | }, {
25 | "departmentName": "招商事业部",
26 | "employeeName": "1111",
27 | "employeeDepartmentId": "121",
28 | "id": "2515746",
29 | "departmentNames": "招商事业部"
30 | }],
31 | "pageNum": "1",
32 | "navigatePages": "8",
33 | "navigateFirstPage": "1",
34 | "total": "3",
35 | "pages": "1",
36 | "size": "3",
37 | "isLastPage": "true",
38 | "hasPreviousPage": "false",
39 | "navigateLastPage": "1",
40 | "isFirstPage": "true"
41 | }
42 | }
--------------------------------------------------------------------------------
/src/components/dialog/mixins.js:
--------------------------------------------------------------------------------
1 | import { getRoles, getDepartments, getEmployees } from '@/plugins/api.js'
2 | export default {
3 | data() {
4 | return {
5 | visibleDialog: false,
6 | searchVal: "",
7 | activeName: "1",
8 | departments: {},
9 | roles: [],
10 | }
11 | },
12 | methods: {
13 | async getRoleList() {
14 | let { data: { list } } = await getRoles()
15 | this.roles = list;
16 | },
17 | async getDepartmentList(parentId = 0) {
18 | let { data } = await getDepartments({ parentId })
19 | this.departments = data;
20 | },
21 | getDebounceData(event, type = 1) {
22 | this.$func.debounce(async function () {
23 | if (event.target.value) {
24 | let data = {
25 | searchName: event.target.value,
26 | pageNum: 1,
27 | pageSize: 30
28 | }
29 | if (type == 1) {
30 | this.departments.childDepartments = [];
31 | let res = await getEmployees(data)
32 | this.departments.employees = res.data.list
33 | } else {
34 | let res = await getRoles(data)
35 | this.roles = res.data.list
36 | }
37 | } else {
38 | type == 1 ? await this.getDepartmentList() : await this.getRoleList();
39 | }
40 | }.bind(this))()
41 | },
42 | }
43 | }
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @Date: 2022-08-04 16:29:35
3 | * @LastEditors: StavinLi
4 | * @LastEditTime: 2022-09-21 14:08:37
5 | * @FilePath: /Workflow/src/main.js
6 | */
7 | import 'babel-polyfill'
8 | import Vue from 'vue'
9 | import App from './App.vue'
10 | import router from './router'
11 | import store from './store'
12 | import './plugins/element.js'
13 | import './css/override-element-ui.css'
14 | import func from './plugins/preload.js'
15 | import nodeWrap from '@/components/nodeWrap'
16 | Vue.component('nodeWrap', nodeWrap); //初始化组件
17 | import addNode from '@/components/addNode'
18 | Vue.component('addNode', addNode); //初始化组件
19 | Vue.prototype.$func = func;
20 | Vue.config.productionTip = false;
21 | Vue.directive('enterNumber', {
22 | bind: function (el, { value = 2 }) {
23 | el = el.nodeName == "INPUT" ? el : el.children[0]
24 | var RegStr = value == 0 ? `^[\\+\\-]?\\d+\\d{0,0}` : `^[\\+\\-]?\\d+\\.?\\d{0,${value}}`;
25 | el.addEventListener('keyup', function () {
26 | el.value = el.value.match(new RegExp(RegStr, 'g'));
27 | el.dispatchEvent(new Event('input'))
28 | })
29 | }
30 | });
31 |
32 | Vue.directive('focus', {
33 | // 当被绑定的元素插入到 DOM 中时
34 | inserted: function (el) {
35 | el.focus()
36 | }
37 | });
38 | new Vue({
39 | router,
40 | store,
41 | components: {
42 | nodeWrap,
43 | addNode,
44 | },
45 | render: h => h(App)
46 | }).$mount('#app')
--------------------------------------------------------------------------------
/vue.config.js:
--------------------------------------------------------------------------------
1 | const CompressionWebpackPlugin = require('compression-webpack-plugin'),
2 | productionGzipExtensions = ['js', 'css'];
3 | let path = require('path')
4 |
5 | function resolve(dir) {
6 | return path.join(__dirname, dir)
7 | }
8 | module.exports = {
9 | lintOnSave: false,
10 | productionSourceMap: false,
11 | publicPath: process.env.NODE_ENV === "production" ? '/Workflow/dist/' : '/',
12 | devServer: {
13 | disableHostCheck: true,
14 | https: false, // https:{type:Boolean}
15 | port: 6969,
16 | },
17 | chainWebpack: config => {
18 | config.resolve.alias.set('@', resolve('src'));
19 | config.performance.set('hints', false);
20 | config.output.filename('[name].[hash].js').end();
21 | },
22 | configureWebpack: config => {
23 | //配置参数详解https://www.webpackjs.com/plugins/compression-webpack-plugin/
24 | if (process.env.NODE_ENV !== 'development') { // 非开发环境
25 | config.plugins.push(new CompressionWebpackPlugin({
26 | algorithm: 'gzip', //algorithm: 可以是 function(buf, callback) 或者字符串。对于字符串来说依照 zlib 的算法(或者 zopfli 的算法)。默认值是 "gzip"。
27 | test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'), //test: 所有匹配该正则的资源都会被处理。默认值是全部资源。
28 | threshold: 10240, //threshold: 只有大小大于该值的资源会被处理。单位是 bytes。默认值是 0。
29 | minRatio: 0.8 //minRatio: 只有压缩率小于这个值的资源才会被处理。默认值是 0.8。
30 | }))
31 | }
32 | }
33 | }
--------------------------------------------------------------------------------
/src/store.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Vuex from 'vuex'
3 | Vue.use(Vuex)
4 |
5 | export default new Vuex.Store({
6 | state: {
7 | tableId: '',
8 | isTried: false,
9 | promoterDrawer: false,
10 | flowPermission1: {},
11 | approverDrawer: false,
12 | approverConfig1: {},
13 | copyerDrawer: false,
14 | copyerConfig1: {},
15 | conditionDrawer: false,
16 | conditionsConfig1: {
17 | conditionNodes: [],
18 | },
19 | },
20 | mutations: {
21 | setTableId(status, payload) {
22 | status.tableId = payload
23 | },
24 | setIsTried(status, payload) {
25 | status.isTried = payload
26 | },
27 | setPromoter(status, payload) {
28 | status.promoterDrawer = payload
29 | },
30 | setFlowPermission(status, payload) {
31 | status.flowPermission1 = payload
32 | },
33 | setApprover(status, payload) {
34 | status.approverDrawer = payload
35 | },
36 | setApproverConfig(status, payload) {
37 | status.approverConfig1 = payload
38 | },
39 | setCopyer(status, payload) {
40 | status.copyerDrawer = payload
41 | },
42 | setCopyerConfig(status, payload) {
43 | status.copyerConfig1 = payload
44 | },
45 | setCondition(status, payload) {
46 | status.conditionDrawer = payload
47 | },
48 | setConditionsConfig(status, payload) {
49 | status.conditionsConfig1 = payload
50 | },
51 | },
52 | actions: {}
53 | })
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ydc_espace",
3 | "version": "0.1.0",
4 | "private": true,
5 | "scripts": {
6 | "serve": "vue-cli-service serve",
7 | "dev": "vue-cli-service serve",
8 | "test": "vue-cli-service build --mode test",
9 | "build": "vue-cli-service build",
10 | "lint": "vue-cli-service lint"
11 | },
12 | "dependencies": {
13 | "core-js": "^2.6.5",
14 | "element-ui": "^2.12.0",
15 | "vue": "^2.6.10",
16 | "vue-router": "^3.0.3",
17 | "vuex": "^3.0.1"
18 | },
19 | "devDependencies": {
20 | "@vue/cli-plugin-babel": "^3.0.3",
21 | "@vue/cli-plugin-eslint": "^3.0.3",
22 | "@vue/cli-service": "^3.0.3",
23 | "axios": "^0.21.1",
24 | "babel-eslint": "^10.0.1",
25 | "babel-plugin-component": "^1.1.1",
26 | "babel-plugin-transform-remove-console": "^6.9.4",
27 | "babel-polyfill": "^6.26.0",
28 | "compression-webpack-plugin": "^3.0.0",
29 | "eslint": "^5.16.0",
30 | "eslint-plugin-vue": "^5.0.0",
31 | "less": "^2.7.2",
32 | "less-loader": "^4.0.6",
33 | "vue-cli-plugin-axios": "0.0.4",
34 | "vue-cli-plugin-element": "^1.0.1",
35 | "vue-template-compiler": "^2.6.10"
36 | },
37 | "eslintConfig": {
38 | "root": true,
39 | "env": {
40 | "node": true
41 | },
42 | "extends": [
43 | "plugin:vue/essential",
44 | "eslint:recommended"
45 | ],
46 | "rules": {},
47 | "parserOptions": {
48 | "parser": "babel-eslint"
49 | }
50 | },
51 | "postcss": {
52 | "plugins": {
53 | "autoprefixer": {}
54 | }
55 | },
56 | "browserslist": [
57 | "> 1%",
58 | "last 2 versions"
59 | ]
60 | }
61 |
--------------------------------------------------------------------------------
/src/components/dialog/errorDialog.vue:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 |
11 |
当前无法发布
12 |
13 |
14 |
以下内容不完善,需进行修改
15 |
16 |
17 |
流程设计
18 |
{{item.name}} 未选择{{item.type}}
19 |
20 |
21 |
22 |
23 |
24 |
28 |
29 |
30 |
31 |
49 |
50 |
--------------------------------------------------------------------------------
/src/plugins/axios.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @Date: 2022-08-04 16:29:35
3 | * @LastEditors: StavinLi
4 | * @LastEditTime: 2022-09-21 14:13:59
5 | * @FilePath: /Workflow/src/plugins/axios.js
6 | */
7 | "use strict";
8 | import axios from "axios";
9 | import {
10 | Message,
11 | Loading
12 | } from 'element-ui'; //引入elm组件
13 | let needLoadingRequestCount = 0,
14 | loading;
15 |
16 |
17 | function showFullScreenLoading() {
18 | if (needLoadingRequestCount === 0) {
19 | startLoading()
20 | }
21 | needLoadingRequestCount++
22 | }
23 |
24 | function tryHideFullScreenLoading() {
25 | if (needLoadingRequestCount <= 0) return
26 | needLoadingRequestCount--
27 | if (needLoadingRequestCount === 0) {
28 | setTimeout(function () {
29 | endLoading()
30 | }, 200)
31 | }
32 | }
33 |
34 | function startLoading() {
35 | loading = Loading.service({
36 | lock: true,
37 | background: 'rgba(0, 0, 0, 0.2)',
38 | spinner: 'my-el-custom-spinner'
39 | })
40 | }
41 |
42 | function endLoading() {
43 | loading.close()
44 | }
45 |
46 | let config = {
47 | // baseURL: process.env.baseURL || process.env.apiUrl || ""
48 | timeout: 10 * 1000, // Timeout
49 | // withCredentials: true, // Check cross-site Access-Control
50 | };
51 | const _axios = axios.create(config);
52 |
53 | // 添加请求拦截器
54 | _axios.interceptors.request.use(config => { // 在发送请求之前做些什么
55 | if (config.loading !== false) {
56 | showFullScreenLoading()
57 | }
58 | return config;
59 | }, err => { // 对请求错误做些什么
60 | return Promise.reject(err);
61 | });
62 |
63 | // 添加响应拦截器
64 | _axios.interceptors.response.use(res => { // 对响应数据做点什么
65 | tryHideFullScreenLoading()
66 | if (res.data.code && res.data.code != 200) {
67 | Message.error(res.data.msg);
68 | return;
69 | }
70 | return res.data;
71 | }, err => { // 对响应错误做点什么
72 | tryHideFullScreenLoading()
73 | if (err.response.data.code && err.response.data.code != 200) {
74 | Message.error(err.response.data.msg);
75 | }
76 | return Promise.reject(err);
77 | });
78 |
79 | export default _axios;
--------------------------------------------------------------------------------
/dist/roles.json:
--------------------------------------------------------------------------------
1 | {
2 | "code": "200",
3 | "msg": "操作成功",
4 | "data": {
5 | "navigatepageNums": [],
6 | "startRow": "1",
7 | "hasNextPage": "false",
8 | "prePage": "0",
9 | "nextPage": "0",
10 | "endRow": "8",
11 | "pageSize": "0",
12 | "list": [{
13 | "code": "SHGLY",
14 | "roleId": "1",
15 | "scope": "1",
16 | "roleName": "审核管理员",
17 | "description": "初始化内置审批角色",
18 | "status": "1"
19 | }, {
20 | "code": "",
21 | "roleId": "2",
22 | "scope": "1",
23 | "roleName": "招商事业部",
24 | "description": "",
25 | "status": "1"
26 | }, {
27 | "code": "",
28 | "roleId": "3",
29 | "scope": "1",
30 | "roleName": "互联网部门",
31 | "description": "",
32 | "status": "1"
33 | }, {
34 | "code": "",
35 | "roleId": "4",
36 | "scope": "1",
37 | "roleName": "销售部",
38 | "description": "",
39 | "status": "1"
40 | }, {
41 | "code": "",
42 | "roleId": "5",
43 | "scope": "1",
44 | "roleName": "战区一",
45 | "description": "",
46 | "status": "1"
47 | }, {
48 | "code": "",
49 | "roleId": "6",
50 | "scope": "1",
51 | "roleName": "战区二",
52 | "description": "",
53 | "status": "1"
54 | }, {
55 | "code": "",
56 | "roleId": "7",
57 | "scope": "1",
58 | "roleName": "JAVA开发",
59 | "description": "",
60 | "status": "1"
61 | }, {
62 | "code": "",
63 | "roleId": "8",
64 | "scope": "1",
65 | "roleName": "测试审批角色",
66 | "description": "",
67 | "status": "1"
68 | }],
69 | "pageNum": "1",
70 | "navigatePages": "8",
71 | "navigateFirstPage": "0",
72 | "total": "8",
73 | "pages": "0",
74 | "size": "8",
75 | "isLastPage": "true",
76 | "hasPreviousPage": "false",
77 | "navigateLastPage": "0",
78 | "isFirstPage": "true"
79 | }
80 | }
--------------------------------------------------------------------------------
/public/roles.json:
--------------------------------------------------------------------------------
1 | {
2 | "code": "200",
3 | "msg": "操作成功",
4 | "data": {
5 | "navigatepageNums": [],
6 | "startRow": "1",
7 | "hasNextPage": "false",
8 | "prePage": "0",
9 | "nextPage": "0",
10 | "endRow": "8",
11 | "pageSize": "0",
12 | "list": [{
13 | "code": "SHGLY",
14 | "roleId": "1",
15 | "scope": "1",
16 | "roleName": "审核管理员",
17 | "description": "初始化内置审批角色",
18 | "status": "1"
19 | }, {
20 | "code": "",
21 | "roleId": "2",
22 | "scope": "1",
23 | "roleName": "招商事业部",
24 | "description": "",
25 | "status": "1"
26 | }, {
27 | "code": "",
28 | "roleId": "3",
29 | "scope": "1",
30 | "roleName": "互联网部门",
31 | "description": "",
32 | "status": "1"
33 | }, {
34 | "code": "",
35 | "roleId": "4",
36 | "scope": "1",
37 | "roleName": "销售部",
38 | "description": "",
39 | "status": "1"
40 | }, {
41 | "code": "",
42 | "roleId": "5",
43 | "scope": "1",
44 | "roleName": "战区一",
45 | "description": "",
46 | "status": "1"
47 | }, {
48 | "code": "",
49 | "roleId": "6",
50 | "scope": "1",
51 | "roleName": "战区二",
52 | "description": "",
53 | "status": "1"
54 | }, {
55 | "code": "",
56 | "roleId": "7",
57 | "scope": "1",
58 | "roleName": "JAVA开发",
59 | "description": "",
60 | "status": "1"
61 | }, {
62 | "code": "",
63 | "roleId": "8",
64 | "scope": "1",
65 | "roleName": "测试审批角色",
66 | "description": "",
67 | "status": "1"
68 | }],
69 | "pageNum": "1",
70 | "navigatePages": "8",
71 | "navigateFirstPage": "0",
72 | "total": "8",
73 | "pages": "0",
74 | "size": "8",
75 | "isLastPage": "true",
76 | "hasPreviousPage": "false",
77 | "navigateLastPage": "0",
78 | "isFirstPage": "true"
79 | }
80 | }
--------------------------------------------------------------------------------
/src/css/override-element-ui.css:
--------------------------------------------------------------------------------
1 | .el-drawer__header button.el-drawer__close-btn {
2 | display: none;
3 | }
4 |
5 | .el-drawer__header {
6 | margin-bottom: 0;
7 | padding: 14px 0 14px 20px;
8 | /* border-bottom: 1px solid #f2f2f2; */
9 | color: #323232;
10 | font-size: 16px;
11 | }
12 |
13 | .demo-drawer__content {
14 | display: flex;
15 | flex-direction: column;
16 | height: 100%;
17 | }
18 |
19 | .drawer_content {
20 | flex: 1;
21 | }
22 |
23 | .demo-drawer__content>div {
24 | border-top: 1px solid #F2F2F2;
25 | }
26 |
27 | .el-button {
28 | min-width: 79px;
29 | padding: 8px 12px;
30 | font-size: 12px;
31 | border-radius: 2px;
32 | background: #46A6FE;
33 | }
34 |
35 | .el-button.el-button--default {
36 | color: #323232;
37 | background: #f2f2f2;
38 | }
39 |
40 | .demo-drawer__footer {
41 | padding: 10px 30px;
42 | border-top: 1px solid #F2F2F2;
43 | }
44 |
45 | .demo-drawer__footer .el-button {
46 | float: right;
47 | margin-right: 10px;
48 | }
49 |
50 | .el-dialog {
51 | width: 520px;
52 | border: 1px solid #DDE1E5;
53 | border-radius: 3px;
54 | }
55 |
56 | .el-dialog__header {
57 | padding: 0 0 0 20px;
58 | line-height: 50px;
59 | height: 50px;
60 | background: #fff;
61 | border-bottom: 1px solid #F2F2F2;
62 | }
63 |
64 | .el-dialog__header .el-dialog__title {
65 | font-size: 16px;
66 | line-height: 50px;
67 | color: #333333;
68 | }
69 |
70 | .el-dialog__header .el-dialog__headerbtn {
71 | height: 12px;
72 | width: 12px;
73 | }
74 |
75 | .el-dialog__header .el-icon-close {
76 | width: 12px;
77 | height: 12px;
78 | float: left;
79 | }
80 |
81 | .el-dialog__header .el-icon-close::before {
82 | display: block;
83 | width: 12px;
84 | height: 12px;
85 | background: url(~@/assets/images/add-close.png) no-repeat center;
86 | background-size: 100% 100%;
87 | content: "";
88 | }
89 |
90 | .el-dialog__footer {
91 | border-top: 1px solid #F2F2F2;
92 | padding-bottom: 10px;
93 | }
94 |
95 | .el-checkbox,
96 | .el-checkbox__input.is-checked+.el-checkbox__label,
97 | .el-radio,
98 | .el-radio__input.is-checked+.el-radio__label,
99 | .el-dialog__body,
100 | .el-tree {
101 | color: #333;
102 | }
103 |
104 | .el-radio__label, .el-checkbox__label {
105 | font-size: 12px;
106 | }
107 | .my-el-custom-spinner {
108 | display: inline-block;
109 | width: 80px;
110 | height: 80px;
111 | background: url(~@/assets/images/loading.gif) no-repeat center;
112 | }
--------------------------------------------------------------------------------
/src/components/selectBox.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
42 |
43 |
53 |
--------------------------------------------------------------------------------
/src/components/dialog/roleDialog.vue:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
20 |
21 |
22 |
23 |
89 |
90 |
--------------------------------------------------------------------------------
/src/components/selectResult.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
已选({{total}})
11 | 清空
12 |
13 |
14 |
15 |
16 | -
17 |
18 | {{item.roleName}}
19 |
20 |
21 |
22 |
23 | -
24 |
25 | {{item.departmentName}}
26 |
27 |
28 |
29 |
30 | -
31 |
32 | {{item.employeeName}}
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
54 |
55 |
--------------------------------------------------------------------------------
/src/components/drawer/promoterDrawer.vue:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 |
11 |
{{$func.arrToStr(flowPermission)?$func.arrToStr(flowPermission):'所有人'}}
12 |
添加/修改发起人
13 |
14 |
18 |
24 |
25 |
26 |
27 |
71 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
209 |
--------------------------------------------------------------------------------
/src/components/drawer/copyerDrawer.vue:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 |
11 |
添加成员
12 |
13 | {{item.name}}
14 |
15 |
16 | 清除
17 |
18 |
19 | 允许发起人自选抄送人
20 |
21 |
22 |
26 |
31 |
32 |
33 |
34 |
84 |
85 |
--------------------------------------------------------------------------------
/src/components/dialog/employeesDialog.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 天下
8 | {{item.departmentName}}
10 |
11 |
12 |
13 |
14 |
15 |
19 |
20 |
21 |
22 |
107 |
108 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ### workflow钉钉审批流程设置
4 |
5 | workflow钉钉审批流程设置,基于vue开发。 QQ交流群①:639251756 QQ交流群②:790780565
6 | 
7 | - [开源地址vue2版本 https://github.com/StavinLi/Workflow](https://github.com/StavinLi/Workflow) github点个星吧!
8 | - [开源地址vue3版本 https://github.com/StavinLi/Workflow-Vue3](https://github.com/StavinLi/Workflow-Vue3) github点个星吧!
9 | - [开源地址react版本 https://github.com/StavinLi/Workflow-React](https://github.com/StavinLi/Workflow-React) github点个星吧!
10 | - [预览地址 https://stavinli.github.io/Workflow/dist/index.html#/](https://stavinli.github.io/Workflow/dist/index.html#/)
11 | -------------------
12 |
13 |
14 | #### 项目介绍
15 | - UI钉钉风格
16 | - 技术点
17 | 1. 组件自调用+递归处理,按树状结局处理审批流程问题
18 | - 主要功能点
19 | 2. 界面缩放
20 | 
21 | ```javascript
22 |
23 |
24 |
{{nowVal}}%
25 |
26 |
27 | ```
28 | 3. 节点设置(包括审批人、发起人、抄送人、条件设置)
29 | 
30 | ```javascript
31 |
32 |
33 |
34 |
35 |
36 | 指定成员
37 | 主管
38 | 发起人自选
39 | 发起人自己
40 | 连续多级主管
41 |
42 | ...
43 | ```
44 | 5. 节点新增
45 | 
46 | ```javascript
47 |
48 |
49 |
69 | ...
70 | ```
71 | 5.错误校验
72 | 
73 | ```javascript
74 | let {type,error,nodeName,conditionNodes} = childNode
75 | if (type == 1 || type == 2) {
76 | if (error) {
77 | this.tipList.push({ name: nodeName, type: ["","审核人","抄送人"][type] })
78 | }
79 | this.reErr(childNode)
80 | } else if (type == 3) {
81 | this.reErr(childNode)
82 | } else if (type == 4) {
83 | this.reErr(childNode)
84 | for (var i = 0; i < conditionNodes.length; i++) {
85 | if (conditionNodes[i].error) {
86 | this.tipList.push({ name: conditionNodes[i].nodeName, type: "条件" })
87 | }
88 | this.reErr(conditionNodes[i])
89 | }
90 | }
91 | ```
92 | 6.模糊搜索匹配人员、职位、角色
93 | ```javascript
94 |
95 |
96 |
97 | ```
98 | #### 项目安装
99 |
100 | > git clone https://github.com/StavinLi/Workflow.git 点个赞吧!
101 |
102 | #### 项目运行 **node14**
103 | > 1.环境依赖 `npm i`
104 |
105 | > 2.本地运行 `npm run serve`
106 |
107 | > 3.打包运行 `npm run build`
108 |
--------------------------------------------------------------------------------
/src/views/setting.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
{{workFlowDef.name}}
7 |
8 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
{{nowVal}}%
27 |
28 |
29 |
36 |
37 |
38 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
146 |
--------------------------------------------------------------------------------
/src/components/dialog/employeesRoleDialog.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | 天下
12 | {{item.departmentName}}
14 |
15 |
16 |
17 |
18 |
19 |
23 |
24 |
25 |
26 |
141 |
142 |
--------------------------------------------------------------------------------
/dist/data.json:
--------------------------------------------------------------------------------
1 | {
2 | "code": "200",
3 | "msg": "success",
4 | "data": {
5 | "tableId": 1,
6 | "workFlowDef": {
7 | "name": "合同审批"
8 | },
9 | "directorMaxLevel": 4,
10 | "flowPermission": [],
11 | "nodeConfig": {
12 | "nodeName": "发起人",
13 | "type": 0,
14 | "priorityLevel": "",
15 | "settype": "",
16 | "selectMode": "",
17 | "selectRange": "",
18 | "directorLevel": "",
19 | "examineMode": "",
20 | "noHanderAction": "",
21 | "examineEndDirectorLevel": "",
22 | "ccSelfSelectFlag": "",
23 | "conditionList": [],
24 | "nodeUserList": [],
25 | "childNode": {
26 | "nodeName": "审核人",
27 | "error": false,
28 | "type": 1,
29 | "settype": 2,
30 | "selectMode": 0,
31 | "selectRange": 0,
32 | "directorLevel": 1,
33 | "examineMode": 1,
34 | "noHanderAction": 2,
35 | "examineEndDirectorLevel": 0,
36 | "childNode": {
37 | "nodeName": "路由",
38 | "type": 4,
39 | "priorityLevel": 1,
40 | "settype": 1,
41 | "selectMode": 0,
42 | "selectRange": 0,
43 | "directorLevel": 1,
44 | "examineMode": 1,
45 | "noHanderAction": 2,
46 | "examineEndDirectorLevel": 1,
47 | "ccSelfSelectFlag": 1,
48 | "conditionList": [],
49 | "nodeUserList": [],
50 | "childNode": {
51 | "nodeName": "抄送人",
52 | "type": 2,
53 | "ccSelfSelectFlag": 1,
54 | "childNode": null,
55 | "nodeUserList": [],
56 | "error": false
57 | },
58 | "conditionNodes": [{
59 | "nodeName": "条件1",
60 | "type": 3,
61 | "priorityLevel": 1,
62 | "settype": 1,
63 | "selectMode": 0,
64 | "selectRange": 0,
65 | "directorLevel": 1,
66 | "examineMode": 1,
67 | "noHanderAction": 2,
68 | "examineEndDirectorLevel": 1,
69 | "ccSelfSelectFlag": 1,
70 | "conditionList": [{
71 | "columnId": 0,
72 | "type": 1,
73 | "conditionEn": "",
74 | "conditionCn": "",
75 | "optType": "",
76 | "zdy1": "",
77 | "zdy2": "",
78 | "opt1": "",
79 | "opt2": "",
80 | "columnDbname": "",
81 | "columnType": "",
82 | "showType": "",
83 | "showName": "",
84 | "fixedDownBoxValue": ""
85 | }],
86 | "nodeUserList": [{
87 | "targetId": 85,
88 | "type": 1,
89 | "name": "天旭"
90 | }],
91 | "childNode": {
92 | "nodeName": "审核人",
93 | "type": 1,
94 | "priorityLevel": 1,
95 | "settype": 1,
96 | "selectMode": 0,
97 | "selectRange": 0,
98 | "directorLevel": 1,
99 | "examineMode": 1,
100 | "noHanderAction": 2,
101 | "examineEndDirectorLevel": 1,
102 | "ccSelfSelectFlag": 1,
103 | "conditionList": [],
104 | "nodeUserList": [{
105 | "targetId": 2515744,
106 | "type": 1,
107 | "name": "哈哈哈哈"
108 | }],
109 | "childNode": null,
110 | "conditionNodes": [],
111 | "error": false
112 | },
113 | "conditionNodes": [],
114 | "error": false
115 | }, {
116 | "nodeName": "条件2",
117 | "type": 3,
118 | "priorityLevel": 2,
119 | "settype": 1,
120 | "selectMode": 0,
121 | "selectRange": 0,
122 | "directorLevel": 1,
123 | "examineMode": 1,
124 | "noHanderAction": 2,
125 | "examineEndDirectorLevel": 1,
126 | "ccSelfSelectFlag": 1,
127 | "conditionList": [],
128 | "nodeUserList": [],
129 | "childNode": null,
130 | "conditionNodes": [],
131 | "error": false
132 | }]
133 | },
134 | "nodeUserList": []
135 | },
136 | "conditionNodes": []
137 | }
138 | }
139 | }
--------------------------------------------------------------------------------
/public/data.json:
--------------------------------------------------------------------------------
1 | {
2 | "code": "200",
3 | "msg": "success",
4 | "data": {
5 | "tableId": 1,
6 | "workFlowDef": {
7 | "name": "合同审批"
8 | },
9 | "directorMaxLevel": 4,
10 | "flowPermission": [],
11 | "nodeConfig": {
12 | "nodeName": "发起人",
13 | "type": 0,
14 | "priorityLevel": "",
15 | "settype": "",
16 | "selectMode": "",
17 | "selectRange": "",
18 | "directorLevel": "",
19 | "examineMode": "",
20 | "noHanderAction": "",
21 | "examineEndDirectorLevel": "",
22 | "ccSelfSelectFlag": "",
23 | "conditionList": [],
24 | "nodeUserList": [],
25 | "childNode": {
26 | "nodeName": "审核人",
27 | "error": false,
28 | "type": 1,
29 | "settype": 2,
30 | "selectMode": 0,
31 | "selectRange": 0,
32 | "directorLevel": 1,
33 | "examineMode": 1,
34 | "noHanderAction": 2,
35 | "examineEndDirectorLevel": 0,
36 | "childNode": {
37 | "nodeName": "路由",
38 | "type": 4,
39 | "priorityLevel": 1,
40 | "settype": 1,
41 | "selectMode": 0,
42 | "selectRange": 0,
43 | "directorLevel": 1,
44 | "examineMode": 1,
45 | "noHanderAction": 2,
46 | "examineEndDirectorLevel": 1,
47 | "ccSelfSelectFlag": 1,
48 | "conditionList": [],
49 | "nodeUserList": [],
50 | "childNode": {
51 | "nodeName": "抄送人",
52 | "type": 2,
53 | "ccSelfSelectFlag": 1,
54 | "childNode": null,
55 | "nodeUserList": [],
56 | "error": false
57 | },
58 | "conditionNodes": [{
59 | "nodeName": "条件1",
60 | "type": 3,
61 | "priorityLevel": 1,
62 | "settype": 1,
63 | "selectMode": 0,
64 | "selectRange": 0,
65 | "directorLevel": 1,
66 | "examineMode": 1,
67 | "noHanderAction": 2,
68 | "examineEndDirectorLevel": 1,
69 | "ccSelfSelectFlag": 1,
70 | "conditionList": [{
71 | "columnId": 0,
72 | "type": 1,
73 | "conditionEn": "",
74 | "conditionCn": "",
75 | "optType": "",
76 | "zdy1": "",
77 | "zdy2": "",
78 | "opt1": "",
79 | "opt2": "",
80 | "columnDbname": "",
81 | "columnType": "",
82 | "showType": "",
83 | "showName": "",
84 | "fixedDownBoxValue": ""
85 | }],
86 | "nodeUserList": [{
87 | "targetId": 85,
88 | "type": 1,
89 | "name": "天旭"
90 | }],
91 | "childNode": {
92 | "nodeName": "审核人",
93 | "type": 1,
94 | "priorityLevel": 1,
95 | "settype": 1,
96 | "selectMode": 0,
97 | "selectRange": 0,
98 | "directorLevel": 1,
99 | "examineMode": 1,
100 | "noHanderAction": 2,
101 | "examineEndDirectorLevel": 1,
102 | "ccSelfSelectFlag": 1,
103 | "conditionList": [],
104 | "nodeUserList": [{
105 | "targetId": 2515744,
106 | "type": 1,
107 | "name": "哈哈哈哈"
108 | }],
109 | "childNode": null,
110 | "conditionNodes": [],
111 | "error": false
112 | },
113 | "conditionNodes": [],
114 | "error": false
115 | }, {
116 | "nodeName": "条件2",
117 | "type": 3,
118 | "priorityLevel": 2,
119 | "settype": 1,
120 | "selectMode": 0,
121 | "selectRange": 0,
122 | "directorLevel": 1,
123 | "examineMode": 1,
124 | "noHanderAction": 2,
125 | "examineEndDirectorLevel": 1,
126 | "ccSelfSelectFlag": 1,
127 | "conditionList": [],
128 | "nodeUserList": [],
129 | "childNode": null,
130 | "conditionNodes": [],
131 | "error": false
132 | }]
133 | },
134 | "nodeUserList": []
135 | },
136 | "conditionNodes": []
137 | }
138 | }
139 | }
--------------------------------------------------------------------------------
/dist/data字段注释.js:
--------------------------------------------------------------------------------
1 | export default {
2 | "code": "200",
3 | "msg": "success",
4 | "data": {
5 | "tableId": 1,//审批id
6 | "workFlowDef": {
7 | "name": "合同审批",//审批名称
8 | },
9 | "directorMaxLevel": 4,//审批主管最大层级
10 | "flowPermission": [],//发起人
11 | "nodeConfig": {
12 | "nodeName": "发起人",//节点名称
13 | "type": 0,// 0 发起人 1审批 2抄送 3条件 4路由
14 | "priorityLevel": "",// 条件优先级
15 | "settype": "",// 审批人设置 1指定成员 2主管 4发起人自选 5发起人自己 7连续多级主管
16 | "selectMode": "", //审批人数 1选一个人 2选多个人
17 | "selectRange": "", //选择范围 1.全公司 2指定成员 2指定角色
18 | "directorLevel": "", //审批终点 最高层主管数
19 | "examineMode": "", //多人审批时采用的审批方式 1依次审批 2会签
20 | "noHanderAction": "",//审批人为空时 1自动审批通过/不允许发起 2转交给审核管理员
21 | "examineEndDirectorLevel": "", //审批终点 第n层主管
22 | "ccSelfSelectFlag": "", //允许发起人自选抄送人
23 | "conditionList": [], //当审批单同时满足以下条件时进入此流程
24 | "nodeUserList": [], //操作人
25 | "childNode": {
26 | "nodeName": "审核人",
27 | "error": false, //当前审批是否通过校验
28 | "type": 1,
29 | "settype": 2,
30 | "selectMode": 0,
31 | "selectRange": 0,
32 | "directorLevel": 1,
33 | "examineMode": 1,
34 | "noHanderAction": 2,
35 | "examineEndDirectorLevel": 0,
36 | "childNode": {
37 | "nodeName": "路由",
38 | "type": 4,
39 | "priorityLevel": 1,
40 | "settype": 1,
41 | "selectMode": 0,
42 | "selectRange": 0,
43 | "directorLevel": 1,
44 | "examineMode": 1,
45 | "noHanderAction": 2,
46 | "examineEndDirectorLevel": 1,
47 | "ccSelfSelectFlag": 1,
48 | "conditionList": [],
49 | "nodeUserList": [],
50 | "childNode": {
51 | "nodeName": "抄送人",
52 | "type": 2,
53 | "ccSelfSelectFlag": 1,
54 | "childNode": null,
55 | "nodeUserList": [],
56 | "error": false
57 | },
58 | "conditionNodes": [{ //条件节点
59 | "nodeName": "条件1",
60 | "type": 3,
61 | "priorityLevel": 1,
62 | "settype": 1,
63 | "selectMode": 0,
64 | "selectRange": 0,
65 | "directorLevel": 1,
66 | "examineMode": 1,
67 | "noHanderAction": 2,
68 | "examineEndDirectorLevel": 1,
69 | "ccSelfSelectFlag": 1,
70 | "conditionList": [{ //当前条件
71 | "columnId": 0, //发起人
72 | "type": 1, //1 发起人 2其他
73 | "optType": "", //["", "<", ">", "≤", "=", "≥"][optType]
74 | "zdy1": "",//左侧自定义内容
75 | "zdy2": "",//右侧自定义内容
76 | "opt1": "",//左侧符号 < ≤
77 | "opt2": "",//右侧符号 < ≤
78 | "columnDbname": "",//条件字段名称
79 | "columnType": "",//条件字段类型
80 | "showType": "",//checkBox多选 其他
81 | "showName": "",//展示名
82 | "fixedDownBoxValue": ""//多选数组
83 | }],
84 | "nodeUserList": [{
85 | "targetId": 85,
86 | "type": 1,
87 | "name": "天旭"
88 | }],
89 | "childNode": {
90 | "nodeName": "审核人",
91 | "type": 1,
92 | "priorityLevel": 1,
93 | "settype": 1,
94 | "selectMode": 0,
95 | "selectRange": 0,
96 | "directorLevel": 1,
97 | "examineMode": 1,
98 | "noHanderAction": 2,
99 | "examineEndDirectorLevel": 1,
100 | "ccSelfSelectFlag": 1,
101 | "conditionList": [],
102 | "nodeUserList": [{
103 | "targetId": 2515744,
104 | "type": 1,
105 | "name": "哈哈哈哈"
106 | }],
107 | "childNode": null,
108 | "conditionNodes": [],
109 | "error": false
110 | },
111 | "conditionNodes": [],
112 | "error": false
113 | }, {
114 | "nodeName": "条件2",
115 | "type": 3,
116 | "priorityLevel": 2,
117 | "settype": 1,
118 | "selectMode": 0,
119 | "selectRange": 0,
120 | "directorLevel": 1,
121 | "examineMode": 1,
122 | "noHanderAction": 2,
123 | "examineEndDirectorLevel": 1,
124 | "ccSelfSelectFlag": 1,
125 | "conditionList": [],
126 | "nodeUserList": [],
127 | "childNode": null,
128 | "conditionNodes": [],
129 | "error": false
130 | }]
131 | },
132 | "nodeUserList": []
133 | },
134 | "conditionNodes": []
135 | }
136 | }
137 | }
--------------------------------------------------------------------------------
/public/data字段注释.js:
--------------------------------------------------------------------------------
1 | export default {
2 | "code": "200",
3 | "msg": "success",
4 | "data": {
5 | "tableId": 1,//审批id
6 | "workFlowDef": {
7 | "name": "合同审批",//审批名称
8 | },
9 | "directorMaxLevel": 4,//审批主管最大层级
10 | "flowPermission": [],//发起人
11 | "nodeConfig": {
12 | "nodeName": "发起人",//节点名称
13 | "type": 0,// 0 发起人 1审批 2抄送 3条件 4路由
14 | "priorityLevel": "",// 条件优先级
15 | "settype": "",// 审批人设置 1指定成员 2主管 4发起人自选 5发起人自己 7连续多级主管
16 | "selectMode": "", //审批人数 1选一个人 2选多个人
17 | "selectRange": "", //选择范围 1.全公司 2指定成员 2指定角色
18 | "directorLevel": "", //审批终点 最高层主管数
19 | "examineMode": "", //多人审批时采用的审批方式 1依次审批 2会签
20 | "noHanderAction": "",//审批人为空时 1自动审批通过/不允许发起 2转交给审核管理员
21 | "examineEndDirectorLevel": "", //审批终点 第n层主管
22 | "ccSelfSelectFlag": "", //允许发起人自选抄送人
23 | "conditionList": [], //当审批单同时满足以下条件时进入此流程
24 | "nodeUserList": [], //操作人
25 | "childNode": {
26 | "nodeName": "审核人",
27 | "error": false, //当前审批是否通过校验
28 | "type": 1,
29 | "settype": 2,
30 | "selectMode": 0,
31 | "selectRange": 0,
32 | "directorLevel": 1,
33 | "examineMode": 1,
34 | "noHanderAction": 2,
35 | "examineEndDirectorLevel": 0,
36 | "childNode": {
37 | "nodeName": "路由",
38 | "type": 4,
39 | "priorityLevel": 1,
40 | "settype": 1,
41 | "selectMode": 0,
42 | "selectRange": 0,
43 | "directorLevel": 1,
44 | "examineMode": 1,
45 | "noHanderAction": 2,
46 | "examineEndDirectorLevel": 1,
47 | "ccSelfSelectFlag": 1,
48 | "conditionList": [],
49 | "nodeUserList": [],
50 | "childNode": {
51 | "nodeName": "抄送人",
52 | "type": 2,
53 | "ccSelfSelectFlag": 1,
54 | "childNode": null,
55 | "nodeUserList": [],
56 | "error": false
57 | },
58 | "conditionNodes": [{ //条件节点
59 | "nodeName": "条件1",
60 | "type": 3,
61 | "priorityLevel": 1,
62 | "settype": 1,
63 | "selectMode": 0,
64 | "selectRange": 0,
65 | "directorLevel": 1,
66 | "examineMode": 1,
67 | "noHanderAction": 2,
68 | "examineEndDirectorLevel": 1,
69 | "ccSelfSelectFlag": 1,
70 | "conditionList": [{ //当前条件
71 | "columnId": 0, //发起人
72 | "type": 1, //1 发起人 2其他
73 | "optType": "", //["", "<", ">", "≤", "=", "≥"][optType]
74 | "zdy1": "",//左侧自定义内容
75 | "zdy2": "",//右侧自定义内容
76 | "opt1": "",//左侧符号 < ≤
77 | "opt2": "",//右侧符号 < ≤
78 | "columnDbname": "",//条件字段名称
79 | "columnType": "",//条件字段类型
80 | "showType": "",//checkBox多选 其他
81 | "showName": "",//展示名
82 | "fixedDownBoxValue": ""//多选数组
83 | }],
84 | "nodeUserList": [{
85 | "targetId": 85,
86 | "type": 1,
87 | "name": "天旭"
88 | }],
89 | "childNode": {
90 | "nodeName": "审核人",
91 | "type": 1,
92 | "priorityLevel": 1,
93 | "settype": 1,
94 | "selectMode": 0,
95 | "selectRange": 0,
96 | "directorLevel": 1,
97 | "examineMode": 1,
98 | "noHanderAction": 2,
99 | "examineEndDirectorLevel": 1,
100 | "ccSelfSelectFlag": 1,
101 | "conditionList": [],
102 | "nodeUserList": [{
103 | "targetId": 2515744,
104 | "type": 1,
105 | "name": "哈哈哈哈"
106 | }],
107 | "childNode": null,
108 | "conditionNodes": [],
109 | "error": false
110 | },
111 | "conditionNodes": [],
112 | "error": false
113 | }, {
114 | "nodeName": "条件2",
115 | "type": 3,
116 | "priorityLevel": 2,
117 | "settype": 1,
118 | "selectMode": 0,
119 | "selectRange": 0,
120 | "directorLevel": 1,
121 | "examineMode": 1,
122 | "noHanderAction": 2,
123 | "examineEndDirectorLevel": 1,
124 | "ccSelfSelectFlag": 1,
125 | "conditionList": [],
126 | "nodeUserList": [],
127 | "childNode": null,
128 | "conditionNodes": [],
129 | "error": false
130 | }]
131 | },
132 | "nodeUserList": []
133 | },
134 | "conditionNodes": []
135 | }
136 | }
137 | }
--------------------------------------------------------------------------------
/src/plugins/preload.js:
--------------------------------------------------------------------------------
1 | function All() { }
2 | All.prototype = {
3 | timer: "",
4 | debounce(fn, delay = 500) {
5 | var _this = this;
6 | return function (arg) {
7 | //获取函数的作用域和变量
8 | let that = this;
9 | let args = arg;
10 | clearTimeout(_this.timer) // 清除定时器
11 | _this.timer = setTimeout(function () {
12 | fn.call(that, args)
13 | }, delay)
14 | }
15 | },
16 | setCookie(val) { //cookie设置[{key:value}]、获取key、清除['key1','key2']
17 | for (var i = 0, len = val.length; i < len; i++) {
18 | for (var key in val[i]) {
19 | document.cookie = key + '=' + encodeURIComponent(val[i][key]) + "; path=/";
20 | }
21 | }
22 | },
23 | getCookie(name) {
24 | var strCookie = document.cookie;
25 | var arrCookie = strCookie.split("; ");
26 | for (var i = 0, len = arrCookie.length; i < len; i++) {
27 | var arr = arrCookie[i].split("=");
28 | if (name == arr[0]) {
29 | return decodeURIComponent(arr[1]);
30 | }
31 | }
32 | },
33 | clearCookie(name) {
34 | var myDate = new Date();
35 | myDate.setTime(-1000); //设置时间
36 | for (var i = 0, len = name.length; i < len; i++) {
37 | document.cookie = "" + name[i] + "=''; path=/; expires=" + myDate.toGMTString();
38 | }
39 | },
40 | arrToStr(arr) {
41 | if (arr) {
42 | return arr.map(item => item.name).toString()
43 | }
44 | },
45 | toggleClass(arr, elem, key = 'id') {
46 | return arr.some(item => item[key] == elem[key]);
47 | },
48 | toChecked(arr, elem, key = 'id') {
49 | var isIncludes = this.toggleClass(arr, elem, key);
50 | !isIncludes ? arr.push(elem) : this.removeEle(arr, elem, key);
51 | },
52 | removeEle(arr, elem, key = 'id') {
53 | var includesIndex;
54 | arr.map((item, index) => {
55 | if (item[key] == elem[key]) {
56 | includesIndex = index
57 | }
58 | });
59 | arr.splice(includesIndex, 1);
60 | },
61 | setApproverStr(nodeConfig) {
62 | if (nodeConfig.settype == 1) {
63 | if (nodeConfig.nodeUserList.length == 1) {
64 | return nodeConfig.nodeUserList[0].name
65 | } else if (nodeConfig.nodeUserList.length > 1) {
66 | if (nodeConfig.examineMode == 1) {
67 | return this.arrToStr(nodeConfig.nodeUserList)
68 | } else if (nodeConfig.examineMode == 2) {
69 | return nodeConfig.nodeUserList.length + "人会签"
70 | }
71 | }
72 | } else if (nodeConfig.settype == 2) {
73 | let level = nodeConfig.directorLevel == 1 ? '直接主管' : '第' + nodeConfig.directorLevel + '级主管'
74 | if (nodeConfig.examineMode == 1) {
75 | return level
76 | } else if (nodeConfig.examineMode == 2) {
77 | return level + "会签"
78 | }
79 | } else if (nodeConfig.settype == 4) {
80 | if (nodeConfig.selectRange == 1) {
81 | return "发起人自选"
82 | } else {
83 | if (nodeConfig.nodeUserList.length > 0) {
84 | if (nodeConfig.selectRange == 2) {
85 | return "发起人自选"
86 | } else {
87 | return '发起人从' + nodeConfig.nodeUserList[0].name + '中自选'
88 | }
89 | } else {
90 | return "";
91 | }
92 | }
93 | } else if (nodeConfig.settype == 5) {
94 | return "发起人自己"
95 | } else if (nodeConfig.settype == 7) {
96 | return '从直接主管到通讯录中级别最高的第' + nodeConfig.examineEndDirectorLevel + '个层级主管'
97 | }
98 | },
99 | dealStr(str, obj) {
100 | let arr = [];
101 | let list = str.split(",");
102 | for (var elem in obj) {
103 | list.map(item => {
104 | if (item == elem) {
105 | arr.push(obj[elem].value)
106 | }
107 | })
108 | }
109 | return arr.join("或")
110 | },
111 | conditionStr(nodeConfig, index) {
112 | var { conditionList, nodeUserList } = nodeConfig.conditionNodes[index];
113 | if (conditionList.length == 0) {
114 | return (index == nodeConfig.conditionNodes.length - 1) && nodeConfig.conditionNodes[0].conditionList.length != 0 ? '其他条件进入此流程' : '请设置条件'
115 | } else {
116 | let str = ""
117 | for (var i = 0; i < conditionList.length; i++) {
118 | var { columnId, columnType, showType, showName, optType, zdy1, opt1, zdy2, opt2, fixedDownBoxValue } = conditionList[i];
119 | if (columnId == 0) {
120 | if (nodeUserList.length != 0) {
121 | str += '发起人属于:'
122 | str += nodeUserList.map(item => item.name).join("或") + " 并且 "
123 | }
124 | }
125 | if (columnType == "String" && showType == "checkBox") {
126 | if (zdy1) {
127 | str += showName + '属于:' + this.dealStr(zdy1, JSON.parse(fixedDownBoxValue)) + " 并且 "
128 | }
129 | }
130 | if (columnType == "Double") {
131 | if (optType != 6 && zdy1) {
132 | var optTypeStr = ["", "<", ">", "≤", "=", "≥"][optType]
133 | str += `${showName} ${optTypeStr} ${zdy1} 并且 `
134 | } else if (optType == 6 && zdy1 && zdy2) {
135 | str += `${zdy1} ${opt1} ${showName} ${opt2} ${zdy2} 并且 `
136 | }
137 | }
138 | }
139 | return str ? str.substring(0, str.length - 4) : '请设置条件'
140 | }
141 | },
142 | copyerStr(nodeConfig) {
143 | if (nodeConfig.nodeUserList.length != 0) {
144 | return this.arrToStr(nodeConfig.nodeUserList)
145 | } else {
146 | if (nodeConfig.ccSelfSelectFlag == 1) {
147 | return "发起人自选"
148 | }
149 | }
150 | },
151 | toggleStrClass(item, key) {
152 | let a = item.zdy1 ? item.zdy1.split(",") : []
153 | return a.some(item => item == key);
154 | },
155 | }
156 |
157 | export default new All();
--------------------------------------------------------------------------------
/dist/css/app.cee175a8.css:
--------------------------------------------------------------------------------
1 | #app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#333;margin-top:60px}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,p,pre,q,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;outline:0;font-size:100%;font:inherit;vertical-align:baseline}.clear:after,.clear:before{content:" ";display:table}.clear:after{clear:both}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.l{float:left}input{text-indent:10px}select{text-indent:8px}.ml_10{margin-left:10px}.mr_10{margin-right:10px}.check_box a,.radio_box a{font-size:12px;position:relative;padding-left:20px;margin-right:30px;cursor:pointer;color:#333}.check_box.not a:hover{color:#333}.check_box.not a:before,.check_box.not a:hover:before{border:none}.check_box.not.active{background:#f3f3f3}.check_box a:hover:before,.radio_box a:hover:before{border:1px solid #46a6fe}.check_box a:before,.radio_box a:before{position:absolute;width:14px;height:14px;border:1px solid #dcdfe6;border-radius:2px;left:0;top:1px;content:""}.radio_box a:before{border-radius:50%}.check-dot.active:after,.check_box a.active:after,.radio_box a.active:after{position:absolute;width:10px;height:10px;border-radius:50%;top:3px;left:3px;content:""}.radio_box a.active:after{background:#46a6fe}.check_box a.active:after{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAAsSAAALEgHS3X78AAAAqUlEQVQY033PoUrDUQCF8d/VobhyQbkPsGdYGZhUGIhlQQxG4dalJYN7kLuyJmi2aV/2DcQwuBiuwSRo+QuGsVPPB+c7wZbEUvtY4ra3BdrDI85xGGKpA9zgruX000G7uMcl3nDcwwOGOMAslhqw6KA1zlpO7yGWOsIz+pjjCFN84KTl9AqhmzrFE/Y7xU+MW06rP+cdaDm94Arf+MLkP7Tp6XUs9WJT9ws1kC07ActjIgAAAABJRU5ErkJggg==) no-repeat 50%}.el-drawer__header button.el-drawer__close-btn{display:none}.el-drawer__header{margin-bottom:0;padding:14px 0 14px 20px;color:#323232;font-size:16px}.demo-drawer__content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%}.drawer_content{-webkit-box-flex:1;-ms-flex:1;flex:1}.demo-drawer__content>div{border-top:1px solid #f2f2f2}.el-button{min-width:79px;padding:8px 12px;font-size:12px;border-radius:2px;background:#46a6fe}.el-button.el-button--default{color:#323232;background:#f2f2f2}.demo-drawer__footer{padding:10px 30px;border-top:1px solid #f2f2f2}.demo-drawer__footer .el-button{float:right;margin-right:10px}.el-dialog{width:520px;border:1px solid #dde1e5;border-radius:3px}.el-dialog__header{padding:0 0 0 20px;line-height:50px;height:50px;background:#fff;border-bottom:1px solid #f2f2f2}.el-dialog__header .el-dialog__title{font-size:16px;line-height:50px;color:#333}.el-dialog__header .el-dialog__headerbtn{height:12px;width:12px}.el-dialog__header .el-icon-close{width:12px;height:12px;float:left}.el-dialog__header .el-icon-close:before{display:block;width:12px;height:12px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAYxJREFUKBV9kTFLw0AUx+8uFx06F0FwEjoIlgptzg6OfgYHBzsITVJsLOji4OImKFabFhShCFKXiiJSoaKLYJuUCiriIjiKgoMUl6Q53wUDKtQHd+/x+P/e3XsPG5mMxTmf3ywWr9E/tqCqYVeWlwlGSCUY7wM40Uu/qOsDLqXnyPPaUsO2X1g8foEIOUgqyl3Dsp5/gjlVHewSUofc6oZp7kkQ4Gar9aowViecVxhjj03LehKQYRhDHOM6R2glb5oVkYMf+UfEyNC0CJKkU4yx4XL+QBE6A/FSvlA49AVw/QJEMqfrw1C1BiEFb4D4ROQDI0EA3ocd1xVCEXtw+oM8eN9EDwISApRV1RGJUlFRcxFah+ntjivKO/R0H2j8poV4Lp0eJbJ8DDuZhZ1c2rb9oUSjR5jSbZZIdJq2fSsgH8hq2hihtOp1uzNbpdLVdzVstdudZCxWBagIo3cAusGwMIYwrsBUpk3TtMRrf01PpcJ9oVANetuBb+I12OBUL7GAi+Xy26fjTEKjkS8Vk5JVBgyrJwAAAABJRU5ErkJggg==) no-repeat 50%;background-size:100% 100%;content:""}.el-dialog__footer{border-top:1px solid #f2f2f2;padding-bottom:10px}.el-checkbox,.el-checkbox__input.is-checked+.el-checkbox__label,.el-dialog__body,.el-radio,.el-radio__input.is-checked+.el-radio__label,.el-tree{color:#333}.el-checkbox__label,.el-radio__label{font-size:12px}.my-el-custom-spinner{display:inline-block;width:80px;height:80px;background:url(../img/loading.c54ac4d1.gif) no-repeat 50%}.error_tip{position:absolute;top:0;right:0;-webkit-transform:translate(150%);transform:translate(150%);font-size:24px}.promoter_person .el-dialog__body{padding:10px 20px 14px 20px}.selected_list{margin-bottom:20px;line-height:30px}.selected_list span{margin-right:10px;padding:3px 6px 3px 9px;line-height:12px;white-space:nowrap;border-radius:2px;border:1px solid #dcdcdc}.selected_list img{margin-left:5px;width:7px;height:7px;cursor:pointer}.add-node-btn-box[data-v-3263f707]{width:240px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-negative:0;flex-shrink:0;-webkit-box-flex:1;-ms-flex-positive:1;position:relative}.add-node-btn-box[data-v-3263f707]:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;margin:auto;width:2px;height:100%;background-color:#cacaca}.add-node-btn-box .add-node-btn[data-v-3263f707]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:240px;padding:20px 0 32px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-ms-flex-negative:0;flex-shrink:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.add-node-btn-box .add-node-btn .btn[data-v-3263f707]{outline:none;-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,.1);box-shadow:0 2px 4px 0 rgba(0,0,0,.1);width:30px;height:30px;background:#3296fa;border-radius:50%;position:relative;border:none;line-height:30px;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1)}.add-node-btn-box .add-node-btn .btn .iconfont[data-v-3263f707]{color:#fff;font-size:16px}.add-node-btn-box .add-node-btn .btn[data-v-3263f707]:hover{-webkit-transform:scale(1.3);transform:scale(1.3);-webkit-box-shadow:0 13px 27px 0 rgba(0,0,0,.1);box-shadow:0 13px 27px 0 rgba(0,0,0,.1)}.add-node-btn-box .add-node-btn .btn[data-v-3263f707]:active{-webkit-transform:none;transform:none;background:#1e83e9;-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,.1);box-shadow:0 2px 4px 0 rgba(0,0,0,.1)}.add-node-popover-body{display:-webkit-box;display:-ms-flexbox;display:flex}.add-node-popover-body .add-node-popover-item{margin-right:10px;cursor:pointer;text-align:center;-webkit-box-flex:1;-ms-flex:1;flex:1;color:#191f25!important}.add-node-popover-body .add-node-popover-item .item-wrapper{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:inline-block;width:80px;height:80px;margin-bottom:5px;background:#fff;border:1px solid #e2e2e2;border-radius:50%;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1)}.add-node-popover-body .add-node-popover-item .item-wrapper .iconfont{font-size:35px;line-height:80px}.add-node-popover-body .add-node-popover-item.approver .item-wrapper{color:#ff943e}.add-node-popover-body .add-node-popover-item.notifier .item-wrapper{color:#3296fa}.add-node-popover-body .add-node-popover-item.condition .item-wrapper{color:#15bc83}.add-node-popover-body .add-node-popover-item:hover .item-wrapper{background:#3296fa;-webkit-box-shadow:0 10px 20px 0 rgba(50,150,250,.4);box-shadow:0 10px 20px 0 rgba(50,150,250,.4)}.add-node-popover-body .add-node-popover-item:hover .iconfont{color:#fff}.add-node-popover-body .add-node-popover-item:active .item-wrapper{-webkit-box-shadow:none;box-shadow:none;background:#eaeaea}.add-node-popover-body .add-node-popover-item:active .iconfont{color:inherit}
--------------------------------------------------------------------------------
/src/components/addNode.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
25 |
28 |
29 |
30 |
31 |
32 |
97 |
166 |
--------------------------------------------------------------------------------
/src/components/drawer/approverDrawer.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 指定成员
8 | 主管
9 | 发起人自选
10 | 发起人自己
11 | 连续多级主管
12 |
13 |
添加/修改成员
14 |
15 | {{item.name}}
16 |
17 |
18 | 清除
19 |
20 |
21 |
22 |
23 | 发起人的:
24 |
27 |
28 |
找不到主管时,由上级主管代审批
29 |
30 |
31 |
该审批节点设置“发起人自己”后,审批人默认为发起人
32 |
33 |
34 |
35 | 选一个人
36 | 选多个人
37 |
38 |
选择范围
39 |
40 | 全公司
41 | 指定成员
42 | 指定角色
43 |
44 |
添加/修改成员
45 |
添加/修改角色
46 |
47 | {{item.name}}
48 |
49 |
50 | 清除
51 |
52 |
53 |
54 |
审批终点
55 |
56 | 发起人的:
57 |
60 |
61 |
62 |
63 |
多人审批时采用的审批方式
64 |
65 | 依次审批
66 |
67 | 会签(须所有审批人同意)
68 |
69 |
70 |
71 |
审批人为空时
72 |
73 | 自动审批通过/不允许发起
74 |
75 | 转交给审核管理员
76 |
77 |
78 |
79 |
83 |
88 |
93 |
94 |
95 |
96 |
171 |
--------------------------------------------------------------------------------
/src/components/nodeWrap.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | {{nodeConfig.nodeName}}
8 |
9 | {{nodeConfig.type==1?'':''}}
10 |
19 | {{nodeConfig.nodeName}}
20 |
21 |
22 |
23 |
24 |
25 | 请选择{{defaultText}}
26 | {{showText}}
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
<
46 |
47 |
55 | {{item.nodeName}}
56 | 优先级{{item.priorityLevel}}
57 |
58 |
59 |
>
60 |
{{$func.conditionStr(nodeConfig,index)}}
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
261 |
--------------------------------------------------------------------------------
/src/components/drawer/conditionDrawer.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
当审批单同时满足以下条件时进入此流程
9 |
10 | -
11 | {{item.type==1?'发起人':item.showName}}:
12 |
13 |
14 |
15 | {{item1.name}}
16 |
17 |
18 |
19 |
20 |
26 |
52 | 删除
53 | 删除
54 |
55 |
56 |
添加条件
57 |
58 | 请选择用来区分审批流程的条件字段
59 |
60 | 发起人
61 | {{item.showName}}
63 |
64 |
68 |
69 |
70 |
76 |
80 |
81 |
82 |
83 |
84 |
245 |
246 |
--------------------------------------------------------------------------------
/dist/app.839d3d2e4a04b0c9892b.js:
--------------------------------------------------------------------------------
1 | (function(e){function t(t){for(var o,i,d=t[0],a=t[1],c=t[2],l=0,u=[];l1&&void 0!==arguments[1]?arguments[1]:500,n=this;return function(o){var i=this,r=o;clearTimeout(n.timer),n.timer=setTimeout((function(){e.call(i,r)}),t)}},setCookie:function(e){for(var t=0,n=e.length;t2&&void 0!==arguments[2]?arguments[2]:"id",o=this.toggleClass(e,t,n);o?this.removeEle(e,t,n):e.push(t)},removeEle:function(e,t){var n,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"id";e.map((function(e,i){e[o]==t[o]&&(n=i)})),e.splice(n,1)},setApproverStr:function(e){if(1==e.settype){if(1==e.nodeUserList.length)return e.nodeUserList[0].name;if(e.nodeUserList.length>1){if(1==e.examineMode)return this.arrToStr(e.nodeUserList);if(2==e.examineMode)return e.nodeUserList.length+"人会签"}}else if(2==e.settype){var t=1==e.directorLevel?"直接主管":"第"+e.directorLevel+"级主管";if(1==e.examineMode)return t;if(2==e.examineMode)return t+"会签"}else{if(4==e.settype)return 1==e.selectRange?"发起人自选":e.nodeUserList.length>0?2==e.selectRange?"发起人自选":"发起人从"+e.nodeUserList[0].name+"中自选":"";if(5==e.settype)return"发起人自己";if(7==e.settype)return"从直接主管到通讯录中级别最高的第"+e.examineEndDirectorLevel+"个层级主管"}},dealStr:function(e,t){var n=[],o=e.split(",");for(var i in t)o.map((function(e){e==i&&n.push(t[i].value)}));return n.join("或")},conditionStr:function(e,t){var n=e.conditionNodes[t],o=n.conditionList,i=n.nodeUserList;if(0==o.length)return t==e.conditionNodes.length-1&&0!=e.conditionNodes[0].conditionList.length?"其他条件进入此流程":"请设置条件";for(var r="",s=0;s","≤","=","≥"][f];r+="".concat(u," ").concat(m," ").concat(p," 并且 ")}else 6==f&&p&&g&&(r+="".concat(p," ").concat(h," ").concat(u," ").concat(v," ").concat(g," 并且 "))}return r?r.substring(0,r.length-4):"请设置条件"},copyerStr:function(e){return 0!=e.nodeUserList.length?this.arrToStr(e.nodeUserList):1==e.ccSelfSelectFlag?"发起人自选":void 0},toggleStrClass:function(e,t){var n=e.zdy1?e.zdy1.split(","):[];return n.some((function(e){return e==t}))}};var z=new W,q=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[e.nodeConfig.type<3?n("div",{staticClass:"node-wrap"},[n("div",{staticClass:"node-wrap-box",class:(0==e.nodeConfig.type?"start-node ":"")+(e.isTried&&e.nodeConfig.error?"active error":"")},[n("div",[n("div",{staticClass:"title",style:"background: rgb("+e.bgColor+");"},[0==e.nodeConfig.type?n("span",[e._v(e._s(e.nodeConfig.nodeName))]):[n("span",{staticClass:"iconfont"},[e._v(e._s(1==e.nodeConfig.type?"":""))]),e.isInput?n("input",{directives:[{name:"focus",rawName:"v-focus"},{name:"model",rawName:"v-model",value:e.nodeConfig.nodeName,expression:"nodeConfig.nodeName"}],staticClass:"ant-input editable-title-input",attrs:{type:"text",placeholder:e.defaultText},domProps:{value:e.nodeConfig.nodeName},on:{blur:function(t){return e.blurEvent()},focus:function(e){return e.currentTarget.select()},input:function(t){t.target.composing||e.$set(e.nodeConfig,"nodeName",t.target.value)}}}):n("span",{staticClass:"editable-title",on:{click:function(t){return e.clickEvent()}}},[e._v(e._s(e.nodeConfig.nodeName))]),n("i",{staticClass:"anticon anticon-close close",on:{click:e.delNode}})]],2),n("div",{staticClass:"content",on:{click:e.setPerson}},[n("div",{staticClass:"text"},[e.showText?e._e():n("span",{staticClass:"placeholder"},[e._v("请选择"+e._s(e.defaultText))]),e._v("\n "+e._s(e.showText)+"\n ")]),n("i",{staticClass:"anticon anticon-right arrow"})]),e.isTried&&e.nodeConfig.error?n("div",{staticClass:"error_tip"},[n("i",{staticClass:"anticon anticon-exclamation-circle"})]):e._e()])]),n("addNode",{attrs:{childNodeP:e.nodeConfig.childNode},on:{"update:childNodeP":function(t){return e.$set(e.nodeConfig,"childNode",t)},"update:child-node-p":function(t){return e.$set(e.nodeConfig,"childNode",t)}}})],1):e._e(),4==e.nodeConfig.type?n("div",{staticClass:"branch-wrap"},[n("div",{staticClass:"branch-box-wrap"},[n("div",{staticClass:"branch-box"},[n("button",{staticClass:"add-branch",on:{click:e.addTerm}},[e._v("添加条件")]),e._l(e.nodeConfig.conditionNodes,(function(t,o){return n("div",{key:o,staticClass:"col-box"},[n("div",{staticClass:"condition-node"},[n("div",{staticClass:"condition-node-box"},[n("div",{staticClass:"auto-judge",class:e.isTried&&t.error?"error active":""},[0!=o?n("div",{staticClass:"sort-left",on:{click:function(t){return e.arrTransfer(o,-1)}}},[e._v("<")]):e._e(),n("div",{staticClass:"title-wrapper"},[e.isInputList[o]?n("input",{directives:[{name:"focus",rawName:"v-focus"},{name:"model",rawName:"v-model",value:t.nodeName,expression:"item.nodeName"}],staticClass:"ant-input editable-title-input",attrs:{type:"text"},domProps:{value:t.nodeName},on:{blur:function(t){return e.blurEvent(o)},focus:function(e){return e.currentTarget.select()},input:function(n){n.target.composing||e.$set(t,"nodeName",n.target.value)}}}):n("span",{staticClass:"editable-title",on:{click:function(t){return e.clickEvent(o)}}},[e._v(e._s(t.nodeName))]),n("span",{staticClass:"priority-title",on:{click:function(n){return e.setPerson(t.priorityLevel)}}},[e._v("优先级"+e._s(t.priorityLevel))]),n("i",{staticClass:"anticon anticon-close close",on:{click:function(t){return e.delTerm(o)}}})]),o!=e.nodeConfig.conditionNodes.length-1?n("div",{staticClass:"sort-right",on:{click:function(t){return e.arrTransfer(o)}}},[e._v(">")]):e._e(),n("div",{staticClass:"content",on:{click:function(n){return e.setPerson(t.priorityLevel)}}},[e._v(e._s(e.$func.conditionStr(e.nodeConfig,o)))]),e.isTried&&t.error?n("div",{staticClass:"error_tip"},[n("i",{staticClass:"anticon anticon-exclamation-circle",staticStyle:{color:"rgb(242, 86, 67)"}})]):e._e()]),n("addNode",{attrs:{childNodeP:t.childNode},on:{"update:childNodeP":function(n){return e.$set(t,"childNode",n)},"update:child-node-p":function(n){return e.$set(t,"childNode",n)}}})],1)]),t.childNode?n("nodeWrap",{attrs:{nodeConfig:t.childNode},on:{"update:nodeConfig":function(n){return e.$set(t,"childNode",n)},"update:node-config":function(n){return e.$set(t,"childNode",n)}}}):e._e(),0==o?[n("div",{staticClass:"top-left-cover-line"}),n("div",{staticClass:"bottom-left-cover-line"})]:e._e(),o==e.nodeConfig.conditionNodes.length-1?[n("div",{staticClass:"top-right-cover-line"}),n("div",{staticClass:"bottom-right-cover-line"})]:e._e()],2)}))],2),n("addNode",{attrs:{childNodeP:e.nodeConfig.childNode},on:{"update:childNodeP":function(t){return e.$set(e.nodeConfig,"childNode",t)},"update:child-node-p":function(t){return e.$set(e.nodeConfig,"childNode",t)}}})],1)]):e._e(),e.nodeConfig.childNode?n("nodeWrap",{attrs:{nodeConfig:e.nodeConfig.childNode},on:{"update:nodeConfig":function(t){return e.$set(e.nodeConfig,"childNode",t)},"update:node-config":function(t){return e.$set(e.nodeConfig,"childNode",t)}}}):e._e()],1)},H=[],G=(n("8e6e"),n("ac6a"),n("456d"),n("bd86"));function K(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function V(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:1;this.nodeConfig.conditionNodes[e]=this.nodeConfig.conditionNodes.splice(e+t,1,this.nodeConfig.conditionNodes[e])[0],this.nodeConfig.conditionNodes.map((function(e,t){e.priorityLevel=t+1})),this.$emit("update:nodeConfig",this.nodeConfig)},resetConditionNodesErr:function(){for(var e=0;e.anticon[data-v-bdf165a2]{font-size:22px;margin-right:16px;float:left}.select-box{height:420px;overflow-y:auto}.select-box li{padding:5px 0}.select-box li i{float:right;padding-left:24px;padding-right:10px;color:#3195f8;font-size:12px;cursor:pointer;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAMCAYAAABbayygAAAA0UlEQVQoU43QXQrCMAwH8KSb0uFZlNVHFa+zYXcZsb3PhvpqDzOmAT8inYpd8cG+tCS/hj/BuaU9A6wgOAhwOGm5HtSUJXZairCoLD3iGv49EQBQGSoBeeZ0tgknR3FAKEPFG+q5peZXZgQYQmXp7rRMosz3Hua7rkSR2E/TaZm+3+xv/9nDJN91BQoxdTqrlLk0gLiM1/WFCDNXTTysYwjMxxfctiUmYtpDS1en5SiYyMrSzcM037YFpiMTZBxHGa899Lv8IGXONaBYDPbJfHwCUk9gCTg39g0AAAAASUVORK5CYII=) no-repeat 10px;border-left:1px solid #eee}.select-box li a.active+i{color:#c5c5c5;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAMCAYAAABbayygAAAAvElEQVQoU43QXW4CMQwEYDsBbgMHoBXXmSztcSDruQ2o5VT8GHkFKI14aF6SOJ/sUZTkj4h8yt/1C2DTlpSkA0htkeStrwX8X0cRCVzcfVVK2XYRXlcVkUQSD/hF8vgu8zt4BZC7zNcJmllR1f3zEcDscfbYSU4wmxlEZFlK+Tazo6p+9N/1gpFxGIaAhx66+2mCtdYYvQxI8gxg3nR0kpeAs1orcs67JuOiy3ieYPzlE43jeEgprduMMfoOtkhobQKAU6QAAAAASUVORK5CYII=);pointer-events:none}.select-box li img{width:14px;vertical-align:middle;margin-right:5px}.select-result{width:276px;height:100%;font-size:12px}.select-result ul{height:460px;overflow-y:auto}.select-result ul li{margin:11px 26px 13px 19px;line-height:17px}.select-result ul li span{vertical-align:middle}.select-result ul li img:first-of-type{width:14px;vertical-align:middle;margin-right:5px}.select-result ul li img:last-of-type{float:right;margin-top:2px;width:14px}.select-result p{padding-left:19px;padding-right:20px;line-height:37px;border-bottom:1px solid #f2f2f2}.select-result p a{float:right}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:hsla(0,0%,100%,.9);margin:0;top:0;right:0;bottom:0;left:0;-webkit-transition:opacity .3s;transition:opacity .3s}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:50px;width:50px}.el-loading-spinner{top:50%;margin-top:-21px;width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:#409eff;margin:3px 0;font-size:14px}.el-loading-spinner .circular{height:42px;width:42px;-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#409eff;stroke-linecap:round}.el-loading-spinner i{color:#409eff}.el-loading-fade-enter,.el-loading-fade-leave-active{opacity:0}@-webkit-keyframes loading-rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loading-rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.person_body{border:1px solid #f5f5f5;height:500px}.tree_nav span{display:inline-block;padding-right:10px;margin-right:5px;max-width:6em;color:#38adff;font-size:12px;cursor:pointer;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAALCAYAAACzkJeoAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3FpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNjBmOTNmOC1mZDY0LTU3NGEtOGQ5Yi00ZTZiYzI5YTA5YzkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MEZEOEZFQ0IyQTdDMTFFN0FDMkJCQjNCRDI0NkZCQUEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MEZEOEZFQ0EyQTdDMTFFN0FDMkJCQjNCRDI0NkZCQUEiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjA2MGY5M2Y4LWZkNjQtNTc0YS04ZDliLTRlNmJjMjlhMDljOSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowNjBmOTNmOC1mZDY0LTU3NGEtOGQ5Yi00ZTZiYzI5YTA5YzkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5Mr+d8AAAAbklEQVR42mI8evEZAxAYA/FZBjTABMQ8QLwCiIvQJVmA+AsQOwLxfqhYH7IkCDyBKtiHrIAFyRSQAidkBSxo1oAUxALxcSA+yIQmKQPEi4G4FOR6JjQJkJEzgbgX5hWsEsj+xJBA9mckthACCDAAXZ4Y+7+dmmAAAAAASUVORK5CYII=) no-repeat 100%}.tree_nav span:last-of-type{background:none}.person_tree{padding:10px 12px 0 8px;width:280px;height:100%;border-right:1px solid #f5f5f5}.person_tree input{padding-left:22px;width:210px;height:30px;font-size:12px;border-radius:2px;border:1px solid #d5dadf;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAEMklEQVRIS72XXWhcRRTH/2duTXPTiFSkqxaL0Rot+GBpCYKiItZQP9pSRB+sEqm+SEWC65272ZfBipnZXbPBKL4oKMU8FGyNCkrRxA+IqKWi+AWChVpERGoba9bd7L1HTrkJaXOzG+2287hz5vzunDkf/yU0WNlsdoVSqpeItgLoAXAFgOUA/gLwM4AJAGO+708aY+JGvs7cozTjvr6+9kwmswtADsDFzRwS0ffMPOCcG2tmO7u/ABwEwToiEgfXJEaTRLQviqIJZj7a2dl5fGpqKuN53lWe522O4/h+IupKbMeY+aFCoSARabhOA4dheDsz7wNwEYCvmfmpQqHwYSMPxphllUrlMQDPALiEmb8F0FsoFH5tdG4OnNz0swQ66vv+TmPMP82+fHY/m812KaXeJqLriejLarV6a7lcrix2/hQ4edNvkvCOOuceXCpwvl0YhiuZ+fPEz6vOuUcbgoMgeJqIChJe3/dv/C83PdNxLpe7Lo7jQ5L9RLTRWvtVGpykZDzPOyLZy8x3NHvTpURCa+0ABET0rrX23lRwEATbiehNAJPOuZuW4riZTRLy3wAQEWWstX8uqGOt9esAHiairLX2+WZOl7qvtX5fspuIdlhr30gD/wBA3mVDsViUt2nJCsNQM7MlohestU+mgU8CWBFFUaZUKv3eEioArfUOAHsA7HfObU8DzwBY5vv+cmNMrVXgXC53TxzH7wB4zzl3Vxr4GICVMzMza4aGhn5pFTgIgp1E9AqAvc65B9LABwFsiOP4tmKx+HGrwGEYPsvMeQDWOSfD5rRFWusigCwROWtt2Cqw1loSdT0R9VprD6SBbwbwKTMf7ujo6DbG1M8WnvT97wBM+b6/Ki13yBijKpWKTJR1AB53zr18tmCt9X4A24joRWvtE6mdS37UWovCeAvAH1EU9ZRKpcP/Fx4EwX1EtBfAySiK1i5WonNjUWst4K0yT5VSt6S1uWYfk8/ne+r1+rj0BQC7nHMvLXZm/jy+UPq1zFMAPymltgwODv7YDDa7n9z0tQR6ZHp6untkZKTaFCwGQRBcnsiejQBkiI8QkW10+ySRnpNoyVAAIOKhHcCBWq22bTExsEBz9ff3+21tbSMAHgGgAEg3myAiUZRHieiEtFelVBczS0e6IQGKzsoppSbiOBa5dCkRjdfr9S2lUunvBeW0WCjCMFzPzLsB3AngggYhP0FEe+r1+u7ZRAqC4FoiEvhqAJ/4vn+3MUZmwtxKlbfzDWS2ApCb9TCz6GoJ4yldLVFob2//KK1OwzBcG8fxOBHJmUnf9zcbY6ZmfTcFLzW50uxEAHqeJ1l+JYAvqtVq7/Dw8HGxPafgpEesASDwqwEcqtVqm8rl8rFzDhZ4Pp9fndR3twhKpdSm8wIW+MDAwGVRFEnCyT+VD84bWODZbHaV53mjzHzwX4sip7vxoJ9hAAAAAElFTkSuQmCC) no-repeat 10px;background-size:14px 14px;margin-bottom:14px}.person_tree img{width:14px;vertical-align:middle;margin-right:5px}.set_promoter .promoter_content{padding:0 20px}.set_promoter .promoter_content .el-button{margin-bottom:20px}.set_promoter .promoter_content p{padding:18px 0;font-size:14px;line-height:20px;color:#000}.set_promoter .approver_content{padding-bottom:10px;border-bottom:1px solid #f2f2f2}.set_promoter .approver_content .el-button,.set_promoter .approver_self_select .el-button{margin-bottom:20px}.set_promoter .approver_content .el-radio,.set_promoter .approver_self_select .el-radio,.set_promoter .approver_some .el-radio{width:27%;margin-bottom:20px}.set_promoter .approver_manager p{line-height:32px}.set_promoter .approver_manager select{width:420px;height:32px;background:#fff;border-radius:4px;border:1px solid #d9d9d9}.set_promoter .approver_manager p.tip{margin:10px 0 22px 0;font-size:12px;line-height:16px;color:#f8642d}.set_promoter .approver_self{padding:28px 20px}.set_promoter .approver_content,.set_promoter .approver_manager,.set_promoter .approver_self_select,.set_promoter .approver_some{padding:20px 20px 0}.set_promoter .approver_manager p:first-of-type,.set_promoter .approver_some p{line-height:19px;font-size:14px;margin-bottom:14px}.set_promoter .approver_self_select h3{margin:5px 0 20px;font-size:14px;font-weight:700;line-height:19px}.set_copyer .copyer_content{padding:20px 20px 0}.set_copyer .copyer_content .el-button,.set_copyer .copyer_content .el-checkbox{margin-bottom:20px}.condition_copyer .el-drawer__body .priority_level{position:absolute;top:11px;right:30px;width:100px;height:32px;background:#fff;border-radius:4px;border:1px solid #d9d9d9}.condition_copyer .condition_content{padding:20px 20px 0}.condition_copyer .condition_content p.tip{margin:20px 0;width:510px;text-indent:17px;line-height:45px;background:#f1f9ff;border:1px solid #40a3f7;color:#46a6fe;font-size:14px}.condition_copyer .condition_content ul{max-height:500px;overflow-y:scroll;margin-bottom:20px}.condition_copyer .condition_content ul li>span{float:left;margin-right:8px;width:70px;line-height:32px;text-align:right}.condition_copyer .condition_content ul li>div{display:inline-block;width:370px}.condition_copyer .condition_content ul li>div>p:not(:last-child){margin-bottom:10px}.condition_copyer .condition_content ul li:not(:last-child)>div>p{margin-bottom:20px}.condition_copyer .condition_content ul li>a{float:right;margin-right:10px;margin-top:7px}.condition_copyer .condition_content ul li input,.condition_copyer .condition_content ul li select{width:100%;height:32px;background:#fff;border-radius:4px;border:1px solid #d9d9d9}.condition_copyer .condition_content ul li select+input{width:260px}.condition_copyer .condition_content ul li select{margin-right:10px;width:100px}.condition_copyer .condition_content ul li p.selected_list{padding-left:10px;border-radius:4px;min-height:32px;border:1px solid #d9d9d9;word-break:break-word}.condition_copyer .condition_content ul li p.check_box{line-height:32px}.condition_copyer .condition_content .el-button{margin-bottom:20px}.condition_list .el-dialog__body{padding:16px 26px}.condition_list p{color:#666;margin-bottom:10px}.condition_list p>.check_box{margin-bottom:0;line-height:36px}body{background:#eee}@font-face{font-family:Chinese Quote;src:local("PingFang SC"),local("SimSun");unicode-range:U+2018,U+2019,U+201c,U+201d}body,html{width:100%}input::-ms-clear,input::-ms-reveal{display:none}html{line-height:1.15;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:Chinese Quote,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;font-variant:tabular-nums;line-height:1.5;color:rgba(0,0,0,.65)}[tabindex="-1"]:focus{outline:none!important}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;color:rgba(0,0,0,.85);font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=number],input[type=password],input[type=text],textarea{-webkit-appearance:none}dl,ol,ul{margin-top:0;margin-bottom:1em}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#1890ff;background-color:transparent;outline:none;-webkit-transition:color .3s;transition:color .3s;-webkit-text-decoration-skip:objects}a:focus{text-decoration:underline;-webkit-text-decoration-skip:auto;text-decoration-skip:auto}a:hover{color:#40a9ff}a:active{color:#096dd9}a:active,a:hover{text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}caption{padding-top:.75em;padding-bottom:.3em;color:rgba(0,0,0,.45);text-align:left;caption-side:bottom}th{text-align:inherit}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;color:inherit}button,input{overflow:visible}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5em;font-size:1.5em;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}::-moz-selection{background:#1890ff;color:#fff}::selection{background:#1890ff;color:#fff}.clearfix{zoom:1}.clearfix:after,.clearfix:before{content:"";display:table}.clearfix:after{clear:both}@font-face{font-family:anticon;font-display:fallback;src:url(https://at.alicdn.com/t/font_148784_v4ggb6wrjmkotj4i.eot);src:url(https://at.alicdn.com/t/font_148784_v4ggb6wrjmkotj4i.woff) format("woff"),url(https://at.alicdn.com/t/font_148784_v4ggb6wrjmkotj4i.ttf) format("truetype"),url(https://at.alicdn.com/t/font_148784_v4ggb6wrjmkotj4i.svg#iconfont) format("svg")}.anticon{display:inline-block;font-style:normal;vertical-align:baseline;text-align:center;text-transform:none;line-height:1;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.anticon:before{display:block;font-family:anticon!important}.anticon-close:before{content:"\E633"}.anticon-right:before{content:"\E61F"}.anticon-exclamation-circle{color:#f25643}.anticon-exclamation-circle:before{content:"\E62C"}.anticon-left:before{content:"\E620"}.anticon-close-circle:before{content:"\E62E"}.ant-btn{line-height:1.5;display:inline-block;font-weight:400;text-align:center;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:0 15px;font-size:14px;border-radius:4px;height:32px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);color:rgba(0,0,0,.65);background-color:#fff;border-color:#d9d9d9}.ant-btn>.anticon{line-height:1}.ant-btn,.ant-btn:active,.ant-btn:focus{outline:0}.ant-btn>a:only-child{color:currentColor}.ant-btn>a:only-child:after{content:"";position:absolute;top:0;left:0;bottom:0;right:0;background:transparent}.ant-btn:focus,.ant-btn:hover{color:#40a9ff;background-color:#fff;border-color:#40a9ff}.ant-btn:focus>a:only-child,.ant-btn:hover>a:only-child{color:currentColor}.ant-btn:focus>a:only-child:after,.ant-btn:hover>a:only-child:after{content:"";position:absolute;top:0;left:0;bottom:0;right:0;background:transparent}.ant-btn.active,.ant-btn:active{color:#096dd9;background-color:#fff;border-color:#096dd9}.ant-btn.active>a:only-child,.ant-btn:active>a:only-child{color:currentColor}.ant-btn.active>a:only-child:after,.ant-btn:active>a:only-child:after{content:"";position:absolute;top:0;left:0;bottom:0;right:0;background:transparent}.ant-btn.active,.ant-btn:active,.ant-btn:focus,.ant-btn:hover{background:#fff;text-decoration:none}.ant-btn:before,.ant-btn>i,.ant-btn>span{pointer-events:none}.ant-btn:before{position:absolute;top:-1px;left:-1px;bottom:-1px;right:-1px;background:#fff;opacity:.35;content:"";border-radius:inherit;z-index:1;-webkit-transition:opacity .2s;transition:opacity .2s;display:none}.ant-btn .anticon{-webkit-transition:margin-left .3s cubic-bezier(.645,.045,.355,1);transition:margin-left .3s cubic-bezier(.645,.045,.355,1)}.ant-btn:active>span,.ant-btn:focus>span{position:relative}.ant-btn>.anticon+span,.ant-btn>span+.anticon{margin-left:8px}.fd-nav-container{display:inline-block;position:relative}.fd-nav-container .ghost-bar{position:absolute;width:150px;height:100%;left:0;background:#1583f2;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1)}.fd-nav-container .ghost-bar:after{content:"";position:absolute;bottom:0;left:50%;margin-left:-5px;width:0;height:0;border-style:solid;border-width:0 5px 6px;border-color:transparent transparent #f6f6f6}.fd-nav-item{position:relative;cursor:pointer;display:inline-block;line-height:60px;width:150px;text-align:center;white-space:nowrap}.fd-nav-item .order-num{display:inline-block;width:20px;height:20px;line-height:20px;border:1px solid #fff;border-radius:50%;margin-right:6px;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1)}.fd-nav-item.active .order-num{color:#1583f2;background:#fff}.ant-input{font-family:Chinese Quote,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif;font-variant:tabular-nums;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;list-style:none;position:relative;display:inline-block;padding:4px 11px;width:100%;height:32px;font-size:14px;line-height:1.5;color:rgba(0,0,0,.65);background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:4px;-webkit-transition:all .3s;transition:all .3s}.ant-input::-moz-placeholder{color:#bfbfbf;opacity:1}.ant-input:-ms-input-placeholder{color:#bfbfbf}.ant-input::-webkit-input-placeholder{color:#bfbfbf}.ant-input:focus,.ant-input:hover{border-color:#40a9ff;border-right-width:1px!important}.ant-input:focus{outline:0;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}textarea.ant-input{max-width:100%;height:auto;vertical-align:bottom;-webkit-transition:all .3s,height 0s;transition:all .3s,height 0s;min-height:32px}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,p,pre,q,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;outline:0;font-size:100%;font:inherit;vertical-align:baseline}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body,html{font-size:14px}body{font-family:Microsoft Yahei,Lucida Grande,Lucida Sans Unicode,Helvetica,Arial,Verdana,sans-serif;line-height:1.6;background-color:#fff;position:static!important;-webkit-tap-highlight-color:rgba(0,0,0,0)}ol,ul{list-style-type:none}b,strong{font-weight:700}img{border:0}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}textarea{overflow:auto;vertical-align:top;-webkit-appearance:none}button,input{line-height:normal}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}table{width:100%;border-spacing:0;border-collapse:collapse}table,td,th{border:0}td,th{padding:0;vertical-align:top}th{font-weight:700;text-align:left}thead th{white-space:nowrap}a{text-decoration:none;cursor:pointer;color:#3296fa}a:active,a:hover{outline:0;color:#3296fa}small{font-size:80%}body,html{font-size:12px!important;color:#191f25!important;background:#f6f6f6!important}.wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%}@font-face{font-family:IconFont;src:url(//at.alicdn.com/t/font_135284_ph2thxxbzgf.eot);src:url(//at.alicdn.com/t/font_135284_ph2thxxbzgf.eot#iefix) format("embedded-opentype"),url(//at.alicdn.com/t/font_135284_ph2thxxbzgf.woff) format("woff"),url(//at.alicdn.com/t/font_135284_ph2thxxbzgf.ttf) format("truetype"),url(//at.alicdn.com/t/font_135284_ph2thxxbzgf.svg#IconFont) format("svg")}.iconfont{font-family:IconFont!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-webkit-text-stroke-width:.2px;-moz-osx-font-smoothing:grayscale}.fd-nav{position:fixed;top:0;left:0;right:0;z-index:997;width:100%;height:60px;font-size:14px;color:#fff;background:#3296fa;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.fd-nav>*{-webkit-box-flex:1;-ms-flex:1;flex:1;width:100%}.fd-nav .fd-nav-left{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.fd-nav .fd-nav-center{-webkit-box-flex:0;-ms-flex:none;flex:none;width:600px;text-align:center}.fd-nav .fd-nav-right{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;text-align:right}.fd-nav .fd-nav-back{display:inline-block;width:60px;height:60px;font-size:22px;border-right:1px solid #1583f2;text-align:center;cursor:pointer}.fd-nav .fd-nav-back:hover{background:#5af}.fd-nav .fd-nav-back:active{background:#1583f2}.fd-nav .fd-nav-back .anticon{line-height:60px}.fd-nav .fd-nav-title{width:0;-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0 15px}.fd-nav a{color:#fff;margin-left:12px}.fd-nav .button-publish{min-width:80px;margin-left:4px;margin-right:15px;color:#3296fa;border-color:#fff}.fd-nav .button-publish.ant-btn:focus,.fd-nav .button-publish.ant-btn:hover{color:#3296fa;border-color:#fff;-webkit-box-shadow:0 10px 20px 0 rgba(0,0,0,.3);box-shadow:0 10px 20px 0 rgba(0,0,0,.3)}.fd-nav .button-publish.ant-btn:active{color:#3296fa;background:#d6eaff;-webkit-box-shadow:none;box-shadow:none}.fd-nav .button-preview{min-width:80px;margin-left:16px;margin-right:4px;color:#fff;border-color:#fff;background:transparent}.fd-nav .button-preview.ant-btn:focus,.fd-nav .button-preview.ant-btn:hover{color:#fff;border-color:#fff;background:#59acfc}.fd-nav .button-preview.ant-btn:active{color:#fff;border-color:#fff;background:#2186ef}.fd-nav-content{position:fixed;top:60px;left:0;right:0;bottom:0;z-index:1;overflow-x:hidden;overflow-y:auto;padding-bottom:30px}.error-modal-desc{font-size:13px;color:rgba(25,31,37,.56);line-height:22px;margin-bottom:14px}.error-modal-list{height:200px;overflow-y:auto;margin-right:-25px;padding-right:25px}.error-modal-item{padding:10px 20px;line-height:21px;background:#f6f6f6;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:8px;border-radius:4px}.error-modal-item-label{-webkit-box-flex:0;-ms-flex:none;flex:none;font-size:15px;color:rgba(25,31,37,.56);padding-right:10px}.error-modal-item-content{text-align:right;-webkit-box-flex:1;-ms-flex:1;flex:1;font-size:13px;color:#191f25}#body.blur{-webkit-filter:blur(3px);filter:blur(3px)}.zoom{display:-webkit-box;display:-ms-flexbox;display:flex;position:fixed;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;height:40px;width:125px;right:40px;margin-top:30px;z-index:10}.zoom .zoom-in,.zoom .zoom-out{width:30px;height:30px;background:#fff;color:#c1c1cd;cursor:pointer;background-size:100%;background-repeat:no-repeat}.zoom .zoom-out{background-image:url(https://gw.alicdn.com/tfs/TB1s0qhBHGYBuNjy0FoXXciBFXa-90-90.png)}.zoom .zoom-out.disabled{opacity:.5}.zoom .zoom-in{background-image:url(https://gw.alicdn.com/tfs/TB1UIgJBTtYBeNjy1XdXXXXyVXa-90-90.png)}.zoom .zoom-in.disabled{opacity:.5}.auto-judge:hover .editable-title,.node-wrap-box:hover .editable-title{border-bottom:1px dashed #fff}.auto-judge:hover .editable-title.editing,.node-wrap-box:hover .editable-title.editing{text-decoration:none;border:1px solid #d9d9d9}.auto-judge:hover .editable-title{border-color:#15bc83}.editable-title{line-height:15px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;border-bottom:1px dashed transparent}.editable-title:before{content:"";position:absolute;top:0;left:0;bottom:0;right:40px}.editable-title:hover{border-bottom:1px dashed #fff}.editable-title-input{-webkit-box-flex:0;-ms-flex:none;flex:none;height:18px;padding-left:4px;text-indent:0;font-size:12px;line-height:18px;z-index:1}.editable-title-input:hover{text-decoration:none}.node-wrap-box{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;position:relative;width:220px;min-height:72px;-ms-flex-negative:0;flex-shrink:0;background:#fff;border-radius:4px;cursor:pointer}.node-wrap-box:after{pointer-events:none;content:"";position:absolute;top:0;bottom:0;left:0;right:0;z-index:2;border-radius:4px;border:1px solid transparent;-webkit-transition:all .1s cubic-bezier(.645,.045,.355,1);transition:all .1s cubic-bezier(.645,.045,.355,1);-webkit-box-shadow:0 2px 5px 0 rgba(0,0,0,.1);box-shadow:0 2px 5px 0 rgba(0,0,0,.1)}.node-wrap-box.active:after,.node-wrap-box:active:after,.node-wrap-box:hover:after{border:1px solid #3296fa;-webkit-box-shadow:0 0 6px 0 rgba(50,150,250,.3);box-shadow:0 0 6px 0 rgba(50,150,250,.3)}.node-wrap-box.active .close,.node-wrap-box:active .close,.node-wrap-box:hover .close{display:block}.node-wrap-box.error:after{border:1px solid #f25643;-webkit-box-shadow:0 2px 5px 0 rgba(0,0,0,.1);box-shadow:0 2px 5px 0 rgba(0,0,0,.1)}.node-wrap-box .title{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:30px;width:100%;height:24px;line-height:24px;font-size:12px;color:#fff;text-align:left;background:#576a95;border-radius:4px 4px 0 0}.node-wrap-box .title .iconfont{font-size:12px;margin-right:5px}.node-wrap-box .placeholder{color:#bfbfbf}.node-wrap-box .close{display:none;position:absolute;right:10px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:20px;height:20px;font-size:14px;color:#fff;border-radius:50%;text-align:center;line-height:20px}.node-wrap-box .content{position:relative;font-size:14px;padding:16px;padding-right:30px}.node-wrap-box .content .text{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.node-wrap-box .content .arrow{position:absolute;right:10px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:20px;height:14px;font-size:14px;color:#979797}.start-node.node-wrap-box .content .text{display:block;white-space:nowrap}.node-wrap-box:before{content:"";position:absolute;top:-12px;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:0;height:4px;border-style:solid;border-width:8px 6px 4px;border-color:#cacaca transparent transparent;background:#f5f5f7}.node-wrap-box.start-node:before{content:none}.top-left-cover-line{left:-1px}.top-left-cover-line,.top-right-cover-line{position:absolute;height:8px;width:50%;background-color:#f5f5f7;top:-4px}.top-right-cover-line{right:-1px}.bottom-left-cover-line{left:-1px}.bottom-left-cover-line,.bottom-right-cover-line{position:absolute;height:8px;width:50%;background-color:#f5f5f7;bottom:-4px}.bottom-right-cover-line{right:-1px}.dingflow-design{width:100%;background-color:#f5f5f7;overflow:auto;position:absolute;bottom:0;left:0;right:0;top:0}.dingflow-design .box-scale{-webkit-transform:scale(1);transform:scale(1);display:inline-block;position:relative;width:100%;padding:54.5px 0;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-ms-flex-wrap:wrap;flex-wrap:wrap;min-width:-webkit-min-content;min-width:-moz-min-content;min-width:min-content;background-color:#f5f5f7;-webkit-transform-origin:50% 0 0;transform-origin:50% 0 0}.dingflow-design .node-wrap{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-flex:1;-ms-flex-positive:1;padding:0 50px;position:relative}.dingflow-design .branch-wrap,.dingflow-design .node-wrap{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;width:100%}.dingflow-design .branch-box-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-height:270px;width:100%;-ms-flex-negative:0;flex-shrink:0}.dingflow-design .branch-box{display:-webkit-box;display:-ms-flexbox;display:flex;overflow:visible;min-height:180px;height:auto;border-bottom:2px solid #ccc;border-top:2px solid #ccc;position:relative;margin-top:15px}.dingflow-design .branch-box .col-box{background:#f5f5f7}.dingflow-design .branch-box .col-box:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;z-index:0;margin:auto;width:2px;height:100%;background-color:#cacaca}.dingflow-design .add-branch{border:none;outline:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:12px;padding:0 10px;height:30px;line-height:30px;border-radius:15px;color:#3296fa;background:#fff;-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,.1);box-shadow:0 2px 4px 0 rgba(0,0,0,.1);position:absolute;top:-16px;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);-webkit-transform-origin:center center;transform-origin:center center;cursor:pointer;z-index:1;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1)}.dingflow-design .add-branch:hover{-webkit-transform:translateX(-50%) scale(1.1);transform:translateX(-50%) scale(1.1);-webkit-box-shadow:0 8px 16px 0 rgba(0,0,0,.1);box-shadow:0 8px 16px 0 rgba(0,0,0,.1)}.dingflow-design .add-branch:active{-webkit-transform:translateX(-50%);transform:translateX(-50%);-webkit-box-shadow:none;box-shadow:none}.dingflow-design .col-box{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative}.dingflow-design .condition-node{min-height:220px}.dingflow-design .condition-node,.dingflow-design .condition-node-box{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1}.dingflow-design .condition-node-box{padding-top:30px;padding-right:50px;padding-left:50px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;position:relative}.dingflow-design .condition-node-box:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;margin:auto;width:2px;height:100%;background-color:#cacaca}.dingflow-design .auto-judge{position:relative;width:220px;min-height:72px;background:#fff;border-radius:4px;padding:14px 19px;cursor:pointer}.dingflow-design .auto-judge:after{pointer-events:none;content:"";position:absolute;top:0;bottom:0;left:0;right:0;z-index:2;border-radius:4px;border:1px solid transparent;-webkit-transition:all .1s cubic-bezier(.645,.045,.355,1);transition:all .1s cubic-bezier(.645,.045,.355,1);-webkit-box-shadow:0 2px 5px 0 rgba(0,0,0,.1);box-shadow:0 2px 5px 0 rgba(0,0,0,.1)}.dingflow-design .auto-judge.active:after,.dingflow-design .auto-judge:active:after,.dingflow-design .auto-judge:hover:after{border:1px solid #3296fa;-webkit-box-shadow:0 0 6px 0 rgba(50,150,250,.3);box-shadow:0 0 6px 0 rgba(50,150,250,.3)}.dingflow-design .auto-judge.active .close,.dingflow-design .auto-judge:active .close,.dingflow-design .auto-judge:hover .close{display:block}.dingflow-design .auto-judge.error:after{border:1px solid #f25643;-webkit-box-shadow:0 2px 5px 0 rgba(0,0,0,.1);box-shadow:0 2px 5px 0 rgba(0,0,0,.1)}.dingflow-design .auto-judge .title-wrapper{position:relative;font-size:12px;color:#15bc83;text-align:left;line-height:16px}.dingflow-design .auto-judge .title-wrapper .editable-title{display:inline-block;max-width:120px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dingflow-design .auto-judge .title-wrapper .priority-title{display:inline-block;float:right;margin-right:10px;color:rgba(25,31,37,.56)}.dingflow-design .auto-judge .placeholder{color:#bfbfbf}.dingflow-design .auto-judge .close{display:none;position:absolute;right:-10px;top:-10px;width:20px;height:20px;font-size:14px;color:rgba(0,0,0,.25);border-radius:50%;text-align:center;line-height:20px;z-index:2}.dingflow-design .auto-judge .content{font-size:14px;color:#191f25;text-align:left;margin-top:6px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.dingflow-design .auto-judge .sort-left,.dingflow-design .auto-judge .sort-right{position:absolute;top:0;bottom:0;display:none;z-index:1}.dingflow-design .auto-judge .sort-left{left:0;border-right:1px solid #f6f6f6}.dingflow-design .auto-judge .sort-right{right:0;border-left:1px solid #f6f6f6}.dingflow-design .auto-judge:hover .sort-left,.dingflow-design .auto-judge:hover .sort-right{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.dingflow-design .auto-judge .sort-left:hover,.dingflow-design .auto-judge .sort-right:hover{background:#efefef}.dingflow-design .end-node{border-radius:50%;font-size:14px;color:rgba(25,31,37,.4);text-align:left}.dingflow-design .end-node .end-node-circle{width:10px;height:10px;margin:auto;border-radius:50%;background:#dbdcdc}.dingflow-design .end-node .end-node-text{margin-top:5px;text-align:center}.approval-setting{border-radius:2px;margin:20px 0;position:relative;background:#fff}.ant-btn{position:relative}.error-modal-list{width:455px}
--------------------------------------------------------------------------------