Przeglądaj źródła

Merge branch 'hhl' of SH-Arbitrate/Mediation-Frontend into dev

hhlxayunmei 2 lat temu
rodzic
commit
1de995660d

+ 34
- 0
src/api/caseprocessManagement/caseprocessManagement.js Wyświetl plik

1
+import request from '@/utils/request'
2
+
3
+// 查询案件流程节点信息
4
+export function queryCaseFlowInfo(data) {
5
+    return request({
6
+        url: '/case/flow/queryCaseFlowInfo',
7
+        method: 'post',
8
+        data: data
9
+    })
10
+}
11
+// 新增或编辑案例流程信息
12
+export function saveCaseFlow(data) {
13
+    return request({
14
+        url: '/case/flow/saveCaseFlow',
15
+        method: 'post',
16
+        data: data
17
+    })
18
+}
19
+// 删除
20
+export function deleteCaseFlow(data) {
21
+    return request({
22
+        url: '/case/flow/deleteCaseFlow',
23
+        method: 'post',
24
+        data: data
25
+    })
26
+}
27
+// 流程节点排序接口
28
+export function sortCaseFlow(data) {
29
+    return request({
30
+        url: '/case/flow/sortCaseFlow',
31
+        method: 'post',
32
+        data: data
33
+    })
34
+}

+ 40
- 47
src/views/caseprocessManagement/caseprocessManage.vue Wyświetl plik

1
 <template>
1
 <template>
2
     <div class="app-container">
2
     <div class="app-container">
3
         <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
3
         <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
4
-            <el-form-item label="案件状态" prop="roleName">
5
-                <el-input v-model="queryParams.roleName" placeholder="请输入案件状态" clearable style="width: 240px"
4
+            <el-form-item label="案件状态" prop="caseStatusName">
5
+                <el-input v-model="queryParams.caseStatusName" placeholder="请输入案件状态" clearable style="width: 240px"
6
                     @keyup.enter.native="handleQuery" />
6
                     @keyup.enter.native="handleQuery" />
7
             </el-form-item>
7
             </el-form-item>
8
-            <el-form-item label="节点名称" prop="status">
9
-                <el-select v-model="queryParams.status" placeholder="节点名称" clearable style="width: 240px">
10
-                    <el-option v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.label"
8
+            <el-form-item label="节点名称" prop="nodeName">
9
+                <el-select v-model="queryParams.nodeName" placeholder="节点名称" clearable style="width: 240px">
10
+                    <el-option v-for="dict in dict.type.case_flow_node" :key="dict.value" :label="dict.label"
11
                         :value="dict.value" />
11
                         :value="dict.value" />
12
                 </el-select>
12
                 </el-select>
13
             </el-form-item>
13
             </el-form-item>
29
                     }}</span>
29
                     }}</span>
30
                 </template>
30
                 </template>
31
             </el-table-column>
31
             </el-table-column>
32
-            <el-table-column label="节点名称" align="center" prop="nodename" :show-overflow-tooltip="true" />
33
-            <el-table-column label="案件状态" align="center" prop="casestatus" :show-overflow-tooltip="true" />
34
-            <el-table-column label="驳回节点" align="center" prop="rejectnode" :show-overflow-tooltip="true" />
35
-            <el-table-column label="关联角色" align="center" prop="associatedroles" :show-overflow-tooltip="true" />
32
+            <el-table-column label="节点名称" align="center" prop="nodeName" :show-overflow-tooltip="true" />
33
+            <el-table-column label="案件状态" align="center" prop="caseStatusName" :show-overflow-tooltip="true" />
34
+            <el-table-column label="驳回节点" align="center" prop="backFlowName" :show-overflow-tooltip="true" />
35
+            <el-table-column label="关联角色" align="center" prop="roleNames" :show-overflow-tooltip="true" />
36
             <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
36
             <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
37
                 <template slot-scope="scope">
37
                 <template slot-scope="scope">
38
-                    <el-button size="mini" @click="moveDown(scope.row)" type="text"
39
-                        icon="el-icon-arrow-down"></el-button>
38
+                    <el-button size="mini" @click="moveDown(scope.row)" type="text" icon="el-icon-arrow-down"></el-button>
40
 
39
 
41
-                    <el-button size="mini" @click="moveUp(scope.row)" type="text"
42
-                        icon="el-icon-arrow-up"></el-button>
40
+                    <el-button size="mini" @click="moveUp(scope.row)" type="text" icon="el-icon-arrow-up"></el-button>
43
                     <el-button size="mini" @click="eidtNodeprocess(scope.row)" type="text"
41
                     <el-button size="mini" @click="eidtNodeprocess(scope.row)" type="text"
44
                         icon="el-icon-edit">修改</el-button>
42
                         icon="el-icon-edit">修改</el-button>
45
                     <el-button size="mini" @click="deleteNodeprocess(scope.row)" type="text"
43
                     <el-button size="mini" @click="deleteNodeprocess(scope.row)" type="text"
57
 </template>
55
 </template>
58
   
56
   
59
 <script>
57
 <script>
60
-// import {
61
-//     getTemplate,
62
-//     deleteTemplate,
63
-//     getTemplateInfoById
64
-// } from "@/api/officialSeal/officialSeal.js";
65
-
58
+import { queryCaseFlowInfo, deleteCaseFlow, sortCaseFlow } from "@/api/caseprocessManagement/caseprocessManagement.js";
66
 import addNodeprocess from "./components/addNodeprocess";
59
 import addNodeprocess from "./components/addNodeprocess";
67
 export default {
60
 export default {
68
     name: "paymentList",
61
     name: "paymentList",
69
     components: {
62
     components: {
70
         addNodeprocess,
63
         addNodeprocess,
71
     },
64
     },
72
-    dicts: ['sys_normal_disable'],
65
+    dicts: ['case_flow_node'],
73
     data() {
66
     data() {
74
         return {
67
         return {
75
             queryParams: {
68
             queryParams: {
103
         },
96
         },
104
         // 删除接口
97
         // 删除接口
105
         deleteSealFn(data) {
98
         deleteSealFn(data) {
106
-            deleteTemplate(data).then(res => {
99
+            deleteCaseFlow(data).then(res => {
107
                 this.$modal.msgSuccess("删除成功!");
100
                 this.$modal.msgSuccess("删除成功!");
108
                 this.getList(this.queryParams);
101
                 this.getList(this.queryParams);
109
             })
102
             })
110
         },
103
         },
104
+        // 向下 sortType
105
+        moveDown(row) {
106
+            let params = {
107
+                id: row.id,
108
+                sortType: 0
109
+            }
110
+            sortCaseFlow(params).then((res) => {
111
+                this.getList(this.queryParams);
112
+            })
113
+        },
114
+        // 向上
115
+        moveUp(row) {
116
+            let params = {
117
+                id: row.id,
118
+                sortType: 1
119
+            }
120
+            sortCaseFlow(params).then((res) => {
121
+                this.getList(this.queryParams);
122
+            })
123
+        },
111
         // 新增流程节点
124
         // 新增流程节点
112
         addnodeprocess(row) {
125
         addnodeprocess(row) {
113
             this.addvisiable = true;
126
             this.addvisiable = true;
136
         // 查询列表数据
149
         // 查询列表数据
137
         getList(parms) {
150
         getList(parms) {
138
             this.loading = true;
151
             this.loading = true;
139
-            // getTemplate(parms).then((response) => {
140
-            // this.dataList = response.rows;
141
-            this.dataList = [
142
-                {
143
-                    nodename: '调解',
144
-                    casestatus: '未立案',
145
-                    rejectnode: 2,
146
-                    associatedroles: '申请人'
147
-                }
148
-            ];
149
-            // this.total = response.total;
150
-            this.loading = false;
151
-            console.log(this.dataList, "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL");
152
-            // this.dataList.forEach(item => {
153
-            //     if (item.identifyStatus == 0 || item.identifyStatus == null) {
154
-            //         item.identifyStatus = '未认证'
155
-            //     } else {
156
-            //         item.identifyStatus = '已认证'
157
-            //     }
158
-            //     if (item.isUse == 0 || item.isUse == null) {
159
-            //         item.isUse = '未启用'
160
-            //     } else {
161
-            //         item.isUse = '已启用'
162
-            //     }
163
-            // })
164
-            // });
152
+            parms.nodeId = parseInt(parms.nodeName)
153
+            queryCaseFlowInfo(parms).then((response) => {
154
+                this.dataList = response.rows;
155
+                this.total = response.total;
156
+                this.loading = false;
157
+            });
165
         },
158
         },
166
     },
159
     },
167
 };
160
 };

+ 113
- 62
src/views/caseprocessManagement/components/addNodeprocess.vue Wyświetl plik

2
     <div>
2
     <div>
3
         <el-dialog title="新增流程节点" :visible="addvisiable" v-if="addvisiable" @close="cancel" width="600px" center>
3
         <el-dialog title="新增流程节点" :visible="addvisiable" v-if="addvisiable" @close="cancel" width="600px" center>
4
             <el-form :model="ruleForm" label-position="left" :rules="rules" ref="ruleForm" label-width="90px"
4
             <el-form :model="ruleForm" label-position="left" :rules="rules" ref="ruleForm" label-width="90px"
5
-                class="demo-ruleForm">    
6
-                <el-form-item label="节点名称" prop="nodename">
7
-                    <el-select v-model="ruleForm.nodename" placeholder="请选择">
8
-                        <el-option v-for="dict in dict.type.template_type" :key="dict.value" :label="dict.label"
5
+                class="demo-ruleForm">
6
+                <el-form-item label="节点名称" prop="nodeName">
7
+                    <el-select v-model="ruleForm.nodeName" placeholder="请选择" @change="changenodeName">
8
+                        <el-option v-for="dict in dict.type.case_flow_node" :key="dict.value" :label="dict.label"
9
                             :value="dict.value"></el-option>
9
                             :value="dict.value"></el-option>
10
                     </el-select>
10
                     </el-select>
11
                 </el-form-item>
11
                 </el-form-item>
12
-                <el-form-item label="案件状态" prop="casestatus">
13
-                    <el-input v-model="ruleForm.casestatus"></el-input>
12
+                <el-form-item label="案件状态" prop="caseStatusName">
13
+                    <el-input v-model="ruleForm.caseStatusName" placeholder="请输入"></el-input>
14
                 </el-form-item>
14
                 </el-form-item>
15
-                <el-form-item label="驳回节点" prop="rejectnode">
16
-                    <el-select v-model="ruleForm.rejectnode" placeholder="请选择">
17
-                        <el-option v-for="item in tempList" :key="item.id" :label="item.identifyName" :value="item.id">
15
+                <el-form-item label="驳回节点" prop="backFlowName">
16
+                    <el-select v-model="ruleForm.backFlowId" placeholder="请选择">
17
+                        <el-option v-for="item in backflowArr" :key="item.backFlowId" :value="item.backFlowId"
18
+                            :label="item.backFlowName">
18
                         </el-option>
19
                         </el-option>
19
                     </el-select>
20
                     </el-select>
20
                 </el-form-item>
21
                 </el-form-item>
21
-                <el-form-item label="关联角色" prop="associatedroles">
22
-                    <el-select v-model="ruleForm.associatedroles" placeholder="请选择">
23
-                        <el-option v-for="item in tempList" :key="item.id" :label="item.identifyName" :value="item.id">
22
+                <el-form-item label="关联角色" prop="roleIds">
23
+                    <el-select v-model="ruleForm.roleIds" multiple placeholder="请选择">
24
+                        <el-option v-for="item in roleArr" :key="item.roleId" :label="item.roleName" :value="item.roleId">
24
                         </el-option>
25
                         </el-option>
25
                     </el-select>
26
                     </el-select>
26
                 </el-form-item>
27
                 </el-form-item>
27
             </el-form>
28
             </el-form>
28
             <div slot="footer" class="dialog-footer">
29
             <div slot="footer" class="dialog-footer">
29
                 <el-button @click="cancel" class="endbutton"><span>取 消</span></el-button>
30
                 <el-button @click="cancel" class="endbutton"><span>取 消</span></el-button>
30
-                <el-button type="primary" @click="submitUpload" class="endbutton"><span>确认</span></el-button>
31
+                <el-button type="primary" @click="submitForm" class="endbutton"><span>确认</span></el-button>
31
             </div>
32
             </div>
32
         </el-dialog>
33
         </el-dialog>
33
     </div>
34
     </div>
34
 </template>
35
 </template>
35
 <script>
36
 <script>
36
-// import {
37
-//     deptIdentifyList,
38
-// } from "@/api/officialSeal/officialSeal.js";
37
+import { queryCaseFlowInfo, saveCaseFlow } from "@/api/caseprocessManagement/caseprocessManagement.js";
38
+import { listRole } from "@/api/system/role";
39
 export default {
39
 export default {
40
     props: ["addvisiable", "editData", "queryParams"],
40
     props: ["addvisiable", "editData", "queryParams"],
41
-    dicts: ["template_type"],
41
+    dicts: ["case_flow_node"],
42
     data() {
42
     data() {
43
         return {
43
         return {
44
             fileList: [],
44
             fileList: [],
45
             data: [],
45
             data: [],
46
-            tempList: [],
47
-            isImg:false,
46
+            backflowArr: [],//驳回节点
47
+            roleArr: [],//关联角色
48
+            isImg: false,
48
             filedata: {},
49
             filedata: {},
49
             flagBtn: false,
50
             flagBtn: false,
50
             ruleForm: {},
51
             ruleForm: {},
51
             rules: {
52
             rules: {
52
-                temName: [
53
-                    { required: true, message: '请输入模板名称', trigger: 'blur' },
53
+                nodeName: [
54
+                    { required: true, message: '请选择模版名称', trigger: 'blur' },
54
                 ],
55
                 ],
55
-                temType: [
56
-                    { required: true, message: '请输入模板名称', trigger: 'blur' },
56
+                caseStatusName: [
57
+                    { required: true, message: '请输入案件状态', trigger: 'blur' },
57
                 ],
58
                 ],
58
-                identifyId: [
59
-                    { required: true, message: '请输入模板名称', trigger: 'blur' },
59
+                roleIds: [
60
+                    { required: true, message: '请选择关联角色', trigger: 'blur' },
60
                 ]
61
                 ]
61
-            }
62
+            },
63
+            dealvalue: [],
62
         };
64
         };
63
     },
65
     },
64
     watch: {
66
     watch: {
65
-        editData(val) {
67
+        addvisiable(val) {
66
             if (val) {
68
             if (val) {
67
-                this.ruleForm = val
68
-                // let queryParams = {
69
-                //     pageNum: 1,
70
-                //     pageSize: 10000000000000000000000,
71
-                // };
72
-                // deptIdentifyList(queryParams).then(res => {
73
-                //     this.tempList = res.rows;
74
-                // })
75
-                // this.ruleForm = {}
69
+                this.ruleForm = this.editData;
70
+                this.getRoles();
71
+                this.getbackflowArr()
76
             }
72
             }
77
         }
73
         }
78
     },
74
     },
80
 
76
 
81
     },
77
     },
82
     methods: {
78
     methods: {
83
-        cancel() {
84
-            this.$emit("cancelAdd");
79
+        changenodeName(val) {
80
+            console.log(val, 'changeval');
85
         },
81
         },
86
-        handleChange(file, fileList) {
87
-            this.isImg = file.type === '.doc' || '.docx'
82
+        // 获取驳回节点数据
83
+        getbackflowArr() {
84
+            let queryParams2 = {
85
+                pageNum: 1,
86
+                pageSize: 999,
87
+            };
88
+            queryCaseFlowInfo(queryParams2).then((res) => {
89
+                this.backflowArr = [];
90
+                res.rows.forEach(item => {
91
+                    this.backflowArr.push({
92
+                        backFlowName: item.nodeName,
93
+                        backFlowId: item.id
94
+                    })
95
+                });
96
+                if (this.editData.id) {
97
+                    let arr = this.backflowArr;
98
+                    let result = arr.filter(obj => obj.backFlowId !== this.editData.id);
99
+                    this.backflowArr = result
100
+                }
101
+            })
88
         },
102
         },
89
-        UploadUrl() {
90
-            return window.location.origin + "/API/deptIdentify/insertTemplate";
103
+        // 获取关联角色
104
+        getRoles() {
105
+            let queryParams1 = {
106
+                pageNum: 1,
107
+                pageSize: 100000000000000000,
108
+            };
109
+            listRole(queryParams1).then((res) => {
110
+                this.roleArr = res.rows
111
+            })
112
+        },
113
+        cancel() {
114
+            this.$emit("cancelAdd");
91
         },
115
         },
92
-        submitUpload() {
116
+        // 提交
117
+        submitForm() {
93
             this.$refs['ruleForm'].validate((valid) => {
118
             this.$refs['ruleForm'].validate((valid) => {
94
                 if (valid) {
119
                 if (valid) {
95
-                    this.filedata.identifyId = this.ruleForm.identifyId;
96
-                    this.filedata.temName = this.ruleForm.temName;
97
-                    if (this.isImg) {
98
-                        this.$refs.upload.submit();
99
-                    }else{
100
-                        this.$message.error('只能上传doc,docx格式的文件')
120
+                    let params = {};
121
+                    if (this.ruleForm.id) {
122
+                        let nodevalue = this.dict.type.case_flow_node;
123
+                        this.dealvalue = nodevalue.filter((item) => {
124
+                            if(item.value == this.ruleForm.nodeId) {
125
+                                return item
126
+                            }
127
+                        }
128
+                        );
129
+                        // 编辑
130
+                        params = {
131
+                            id: this.ruleForm.id,
132
+                            nodeId: this.dealvalue[0].value,
133
+                            nodeName: this.dealvalue[0].label,
134
+                            caseStatusName: this.ruleForm.caseStatusName,
135
+                            backFlowId: this.ruleForm.backFlowId,
136
+                            roleIds: this.ruleForm.roleIds,
137
+                            sort: this.ruleForm.sort
138
+                        }
139
+                    } else {
140
+                        let nodevalue = this.dict.type.case_flow_node;
141
+                        this.dealvalue = nodevalue.filter((item) => {
142
+                            if (item.value == this.ruleForm.nodeName) {
143
+                                return item
144
+                            }
145
+                        }
146
+                        );
147
+                        // 新增
148
+                        params = {
149
+                            nodeId: this.dealvalue[0].value,
150
+                            nodeName: this.dealvalue[0].label,
151
+                            caseStatusName: this.ruleForm.caseStatusName,
152
+                            backFlowId: this.ruleForm.backFlowId,
153
+                            roleIds: this.ruleForm.roleIds
154
+                        }
101
                     }
155
                     }
156
+                    if (params.backFlowId == undefined) {
157
+                        delete params.backFlowId
158
+                    }
159
+                    saveCaseFlow(params).then((res) => {
160
+                        this.$modal.msgSuccess("成功!");
161
+                        this.$emit("getList", this.queryParams)
162
+                        this.$emit("cancelAdd");
163
+                    })
164
+
102
                 }
165
                 }
103
             });
166
             });
104
         },
167
         },
105
-        handleRemove(file, fileList) {
106
-            console.log(file, fileList);
107
-        },
108
-        beforeUpload(file) {
109
-            // debugger
110
-            // this.isImg = file.type === '.doc' || '.docx'
111
-        },
112
-        handleSuccess() {
113
-            this.$message.success('上传成功');
114
-            this.$emit("cancelAdd");
115
-            this.$emit('getList', this.queryParams);
116
-        }
117
     },
168
     },
118
 };
169
 };
119
 </script>
170
 </script>
120
   
171
   
121
 <style lang="scss" scoped>
172
 <style lang="scss" scoped>
122
- ::v-deep .el-select {
173
+::v-deep .el-select {
123
     width: 100%;
174
     width: 100%;
124
 }
175
 }
125
 </style>
176
 </style>