fz 2 лет назад
Родитель
Сommit
a09158bdfe

+ 1
- 1
.env.development Просмотреть файл

@@ -5,7 +5,7 @@ VUE_APP_TITLE = 若依管理系统
5 5
 ENV = 'development'
6 6
 
7 7
 # 若依管理系统/开发环境
8
-VUE_APP_BASE_API = '/dev-api'
8
+VUE_APP_BASE_API = '/API'
9 9
 
10 10
 # 路由懒加载
11 11
 VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 1
- 1
.env.production Просмотреть файл

@@ -1,5 +1,5 @@
1 1
 # 页面标题
2
-VUE_APP_TITLE = 若依管理系统
2
+VUE_APP_TITLE = 调解系统
3 3
 
4 4
 # 生产环境配置
5 5
 ENV = 'production'

+ 2
- 2
.env.staging Просмотреть файл

@@ -1,5 +1,5 @@
1 1
 # 页面标题
2
-VUE_APP_TITLE = 若依管理系统
2
+VUE_APP_TITLE = 调解系统
3 3
 
4 4
 NODE_ENV = production
5 5
 
@@ -7,4 +7,4 @@ NODE_ENV = production
7 7
 ENV = 'staging'
8 8
 
9 9
 # 若依管理系统/测试环境
10
-VUE_APP_BASE_API = '/stage-api'
10
+VUE_APP_BASE_API = '/API'

+ 1
- 1
package.json Просмотреть файл

@@ -1,7 +1,7 @@
1 1
 {
2 2
   "name": "ruoyi",
3 3
   "version": "3.8.6",
4
-  "description": "若依管理系统",
4
+  "description": "调解系统",
5 5
   "author": "若依",
6 6
   "license": "MIT",
7 7
   "scripts": {

Двоичные данные
public/favicon.ico Просмотреть файл


+ 203
- 0
src/api/officialSeal/officialSeal.js Просмотреть файл

@@ -0,0 +1,203 @@
1
+import request from '@/utils/request'
2
+
3
+// 查询邮件列表
4
+export function deptIdentifyList(data) {
5
+    return request({
6
+        url: '/deptIdentify/list',
7
+        method: 'get',
8
+        params: data
9
+    })
10
+}
11
+// 是否启用
12
+export function enableDept(data) {
13
+    return request({
14
+        url: '/deptIdentify/enableDept',
15
+        method: 'post',
16
+        data: data
17
+    })
18
+}
19
+
20
+// 认证
21
+export function selectDeptIndefiUrl(data) {
22
+    return request({
23
+        url: 'deptIdentify/selectDeptIndefiUrl',
24
+        method: 'post',
25
+        data: data
26
+    })
27
+}
28
+// 新增机构
29
+export function insert(data) {
30
+    return request({
31
+        url: '/deptIdentify/insert',
32
+        method: 'post',
33
+        data: data
34
+    })
35
+}
36
+// 查询公章列表
37
+export function sealList(data) {
38
+    return request({
39
+        url: '/deptIdentify/sealList',
40
+        method: 'get',
41
+        params: data
42
+    })
43
+}
44
+// 启用或者禁用公章
45
+export function updateSealLockStatus(data) {
46
+    return request({
47
+        url: '/deptIdentify/updateSealLockStatus',
48
+        method: 'post',
49
+        data: data
50
+    })
51
+}
52
+// 删除未认证的数据
53
+export function deleteSeal(data) {
54
+    return request({
55
+        url: '/deptIdentify/delete',
56
+        method: 'delete',
57
+        params: data
58
+    })
59
+}
60
+// 修改机构信息
61
+export function sealUpdate(data) {
62
+    return request({
63
+        url: '/deptIdentify/update',
64
+        method: 'put',
65
+        data: data
66
+    })
67
+}
68
+// 新增模板
69
+export function insertTemplate(data) {
70
+    return request({
71
+        url: '/deptIdentify/insertTemplate',
72
+        method: 'post',
73
+        data: data
74
+    })
75
+}
76
+// 修改模板
77
+export function updateTemplate(data) {
78
+    return request({
79
+        url: '/deptIdentify/updateTemplate',
80
+        method: 'post',
81
+        params: data
82
+    })
83
+}
84
+// 删除模板
85
+export function deleteTemplate(data) {
86
+    return request({
87
+        url: '/deptIdentify/deleteTemplate',
88
+        method: 'delete',
89
+        params: data
90
+    })
91
+}
92
+// 根据机构id查询模板
93
+export function getTemplate(data) {
94
+    return request({
95
+        url: '/deptIdentify/getTemplate',
96
+        method: 'get',
97
+        params: data
98
+    })
99
+}
100
+// 查询机构下的经办人
101
+export function selectPostUserByDeptId(data) {
102
+    return request({
103
+        url: '/deptIdentify/selectPostUserByDeptId',
104
+        method: 'get',
105
+        params: data
106
+    })
107
+}
108
+// 机构绑定经办人
109
+export function bindHandler(data) {
110
+    return request({
111
+        url: '/deptIdentify/bindHandler',
112
+        method: 'get',
113
+        params: data
114
+    })
115
+}
116
+// 查询模板
117
+export function getManagerList(data) {
118
+    return request({
119
+        url: '/template/list',
120
+        method: 'get',
121
+        params: data
122
+    })
123
+}
124
+// 案件编号查新模板
125
+export function caseNumRuleList(data) {
126
+    return request({
127
+        url: '/caseNumRule/list',
128
+        method: 'get',
129
+        params: data
130
+    })
131
+}
132
+// 新增模板
133
+export function insertManager(data) {
134
+    return request({
135
+        url: '/template/insert',
136
+        method: 'post',
137
+        data: data
138
+    })
139
+}
140
+// 案件编号新增
141
+export function insertCaseNumRule(data) {
142
+    return request({
143
+        url: '/caseNumRule/insertCaseNumRule',
144
+        method: 'post',
145
+        data: data
146
+    })
147
+}
148
+// 删除模板
149
+export function deleteManager(data) {
150
+    return request({
151
+        url: '/template/delete',
152
+        method: 'delete',
153
+        params: data
154
+    })
155
+}
156
+//案件编号删除
157
+export function deleteCaseNumRule(data) {
158
+    return request({
159
+        url: '/caseNumRule/deleteCaseNumRule',
160
+        method: 'post',
161
+        data: data
162
+    })
163
+}
164
+// 修改模板
165
+export function updateManager(data) {
166
+    return request({
167
+        url: '/template/update',
168
+        method: 'put',
169
+        data: data
170
+    })
171
+}
172
+// 案件编号修改
173
+export function updateCaseNumRule(data) {
174
+    return request({
175
+        url: '/caseNumRule/updateCaseNumRule',
176
+        method: 'post',
177
+        data: data
178
+    })
179
+}
180
+// 查询模板id对应的设置抓取字段
181
+export function getFatchRuleByTemplateid(data) {
182
+    return request({
183
+        url: '/deptIdentify/getFatchRuleByTemplateid',
184
+        method: 'post',
185
+        data: data
186
+    })
187
+}
188
+// 保存抓取规则
189
+export function saveFatchRules(data) {
190
+    return request({
191
+        url: '/deptIdentify/saveFatchRules',
192
+        method: 'post',
193
+        data: data
194
+    })
195
+}
196
+// 模板字段列表
197
+export function getTemplateInfoById(data) {
198
+    return request({
199
+        url: '/deptIdentify/getTemplateInfoById',
200
+        method: 'get',
201
+        params: data
202
+    })
203
+}

+ 124
- 0
src/views/officialSeal/components/addInstitution.vue Просмотреть файл

@@ -0,0 +1,124 @@
1
+<template>
2
+    <div>
3
+        <el-dialog :title="title" :visible="operateVisable" v-if="operateVisable" @close="cancel" width="600px" center
4
+            :distroy-on-close="true">
5
+
6
+            <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="130px" class="demo-ruleForm">
7
+                <el-form-item label="机构名称" prop="identifyName">
8
+                    <el-input v-model="ruleForm.identifyName"></el-input>
9
+                </el-form-item>
10
+                <el-form-item label="机构邮箱" prop="identifyEmail">
11
+                    <el-input v-model="ruleForm.identifyEmail"></el-input>
12
+                </el-form-item>
13
+                <!-- <el-form-item label="经办人姓名" prop="operName">
14
+                    <el-input v-model="ruleForm.operName"></el-input>
15
+                </el-form-item>
16
+                <el-form-item label="经办人用户名" prop="operUserName">
17
+                    <el-input v-model="ruleForm.operUserName"></el-input>
18
+                </el-form-item>
19
+                <el-form-item label="经办人手机号" prop="operPhone">
20
+                    <el-input v-model="ruleForm.operPhone"></el-input>
21
+                </el-form-item> -->
22
+                <el-form-item label="机构信用代码" prop="creditCode">
23
+                    <el-input v-model="ruleForm.creditCode"></el-input>
24
+                </el-form-item>
25
+                <el-form-item label="法人姓名" prop="legalPerName">
26
+                    <el-input v-model="ruleForm.legalPerName"></el-input>
27
+                </el-form-item>
28
+                <el-form-item label="法人手机号" prop="legalPerPhone">
29
+                    <el-input v-model="ruleForm.legalPerPhone"></el-input>
30
+                </el-form-item>
31
+            </el-form>
32
+            <div slot="footer" class="dialog-footer">
33
+                <el-button @click="cancel" class="endbutton"><span>取 消</span></el-button>
34
+                <el-button type="primary" @click="submitForm" class="endbutton"><span>确认</span></el-button>
35
+            </div>
36
+        </el-dialog>
37
+    </div>
38
+</template>
39
+<script>
40
+import {
41
+    insert,
42
+} from "@/api/officialSeal/officialSeal.js";
43
+import { listUser } from '@/api/system/user.js'
44
+export default {
45
+    props: ["operateVisable", "queryParams"],
46
+    data() {
47
+        return {
48
+            title: "新增机构",
49
+            ruleForm: {},
50
+            rules: {
51
+                identifyName: [
52
+                    { required: true, message: '请输入机构名称', trigger: 'blur' },
53
+                ],
54
+                // operName: [
55
+                //     { required: true, message: '请输入经办人姓名', trigger: 'blur' },
56
+                // ],
57
+                // operPhone: [
58
+                //     { required: true, message: '请输入经办人手机号', trigger: 'blur' },
59
+                //     { pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/, message: '请输入正确的手机号码', trigger: 'blur', },
60
+                // ],
61
+                creditCode: [
62
+                    { required: true, message: '请输入机构信用代码', trigger: 'blur' },
63
+                ],
64
+                legalPerName: [
65
+                    { required: true, message: '请输入法人姓名', trigger: 'blur' },
66
+                ],
67
+                legalPerPhone: [
68
+                    { required: true, message: '请输入法人手机号', trigger: 'blur' },
69
+                    { pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/, message: '请输入正确的手机号码', trigger: 'blur', },
70
+                ],
71
+                // operUserName: [
72
+                //     { required: true, message: '请输入经办人用户名', trigger: 'blur' },
73
+                // ],
74
+                identifyEmail: [
75
+                    { required: true, message: '请输入邮箱', trigger: 'blur' },
76
+                    { type: 'email', message: '请输入正确的邮箱地址', trigger: 'blur' }
77
+                ]
78
+            }
79
+        };
80
+    },
81
+    watch: {
82
+        operateVisable(val) {
83
+            if (val) {
84
+            }
85
+        },
86
+    },
87
+    created() {
88
+
89
+    },
90
+    methods: {
91
+        // 新增部门
92
+        insertFn(data) {
93
+            insert(data).then(res => {
94
+                this.$modal.msgSuccess("新增成功!");
95
+                this.$emit("cancelFilingreview");
96
+                this.$emit('getList', this.queryParams);
97
+            })
98
+        },
99
+        // 提交form表单
100
+        submitForm() {
101
+            this.$refs['ruleForm'].validate((valid) => {
102
+                if (valid) {
103
+                    this.insertFn(this.ruleForm)
104
+                }
105
+            });
106
+
107
+        },
108
+        cancel() {
109
+            this.$emit("cancelFilingreview");
110
+        },
111
+    },
112
+};
113
+</script>
114
+  
115
+<style lang="scss" scoped>
116
+.steps {
117
+    display: flex;
118
+    flex-wrap: wrap;
119
+}
120
+
121
+.radiobox {
122
+    margin-top: 30px;
123
+}
124
+</style>

+ 94
- 0
src/views/officialSeal/components/addManager.vue Просмотреть файл

@@ -0,0 +1,94 @@
1
+<template>
2
+    <div>
3
+        <el-dialog title="新增模板" :visible="uploadVisable" v-if="uploadVisable" @close="cancel" width="600px" center>
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="name">
7
+                    <el-input v-model="ruleForm.name"></el-input>
8
+                </el-form-item>
9
+                <el-form-item label="模板类型" prop="type">
10
+                    <el-select v-model="ruleForm.type" placeholder="请选择">
11
+                        <el-option v-for="dict in dict.type.manager_type" :key="dict.value" :label="dict.label"
12
+                            :value="dict.value"></el-option>
13
+                    </el-select>
14
+                </el-form-item>
15
+                <el-form-item label="模板内容" prop="content">
16
+                    <el-input type="textarea" placeholder="请输入内容" v-model="ruleForm.content">
17
+                    </el-input>
18
+                </el-form-item>
19
+            </el-form>
20
+            <div slot="footer" class="dialog-footer">
21
+                <el-button @click="cancel" class="endbutton"><span>取 消</span></el-button>
22
+                <el-button type="primary" @click="submitUpload" class="endbutton"><span>确认</span></el-button>
23
+            </div>
24
+        </el-dialog>
25
+    </div>
26
+</template>
27
+<script>
28
+import { getToken } from "@/utils/auth";
29
+import {
30
+    insertManager,
31
+} from "@/api/officialSeal/officialSeal.js";
32
+export default {
33
+    props: ["uploadVisable", "uploadData", "queryParams"],
34
+    dicts: ["manager_type"],
35
+    data() {
36
+        return {
37
+            fileList: [],
38
+            data: [],
39
+            tempList: [],
40
+            isImg: false,
41
+            headers: {
42
+                Authorization: "Bearer " + getToken(),
43
+            },
44
+            filedata: {},
45
+            flagBtn: false,
46
+            ruleForm: {},
47
+            rules: {
48
+                name: [
49
+                    { required: true, message: '请输入模板名称', trigger: 'blur' },
50
+                ],
51
+                type: [
52
+                    { required: true, message: '请输入模板名称', trigger: 'blur' },
53
+                ],
54
+                content: [
55
+                    { required: true, message: '请输入模板名称', trigger: 'blur' },
56
+                ]
57
+            }
58
+        };
59
+    },
60
+    watch: {
61
+        uploadVisable(val) {
62
+            if (val) {
63
+                this.ruleForm = {};
64
+            }
65
+        }
66
+    },
67
+    created() {
68
+
69
+    },
70
+    methods: {
71
+        cancel() {
72
+            this.$emit("cancelUpload");
73
+        },
74
+        // 新增模板
75
+        insertManagerFn(data) {
76
+            insertManager(data).then(res => {
77
+                this.$message.success('新增成功');
78
+                this.$emit("cancelUpload");
79
+                this.$emit('getList', this.queryParams);
80
+            })
81
+        },
82
+        submitUpload() {
83
+            this.$refs['ruleForm'].validate((valid) => {
84
+                if (valid) {
85
+                    console.log(this.ruleForm, "LLLLLLLLLLLLLLLLLLLLLLL");
86
+                    this.insertManagerFn(this.ruleForm)
87
+                }
88
+            });
89
+        },
90
+    },
91
+};
92
+</script>
93
+  
94
+<style lang="scss" scoped></style>

+ 123
- 0
src/views/officialSeal/components/addTemplate.vue Просмотреть файл

@@ -0,0 +1,123 @@
1
+<template>
2
+    <div>
3
+        <el-dialog title="新增模板" :visible="uploadVisable" v-if="uploadVisable" @close="cancel" width="600px" center>
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="temName">
7
+                    <el-input v-model="ruleForm.temName"></el-input>
8
+                </el-form-item>
9
+                <el-form-item label="模板类型" prop="temType">
10
+                    <el-select v-model="ruleForm.temType" placeholder="请选择">
11
+                        <el-option v-for="dict in dict.type.template_type" :key="dict.value" :label="dict.label"
12
+                            :value="dict.value"></el-option>
13
+                    </el-select>
14
+                </el-form-item>
15
+                <el-form-item label="机构名称" prop="identifyId">
16
+                    <el-select v-model="ruleForm.identifyId" placeholder="请选择">
17
+                        <el-option v-for="item in tempList" :key="item.id" :label="item.identifyName" :value="item.id">
18
+                        </el-option>
19
+                    </el-select>
20
+                </el-form-item>
21
+            </el-form>
22
+            <el-upload class="avatar-uploader" :before-upload="beforeUpload" :on-success="handleSuccess" ref="upload"
23
+                :action="UploadUrl()" :headers="headers" :data="filedata" :on-remove="handleRemove"
24
+                :on-change="handleChange" accept=".doc,.docx" :file-list="fileList" :auto-upload="false">
25
+                <el-button size="small" type="primary">选择模板文件</el-button>
26
+            </el-upload>
27
+            <div slot="footer" class="dialog-footer">
28
+                <el-button @click="cancel" class="endbutton"><span>取 消</span></el-button>
29
+                <el-button type="primary" @click="submitUpload" class="endbutton"><span>确认</span></el-button>
30
+            </div>
31
+        </el-dialog>
32
+    </div>
33
+</template>
34
+<script>
35
+import { getToken } from "@/utils/auth";
36
+import {
37
+    deptIdentifyList,
38
+} from "@/api/officialSeal/officialSeal.js";
39
+export default {
40
+    props: ["uploadVisable", "uploadData", "queryParams"],
41
+    dicts: ["template_type"],
42
+    data() {
43
+        return {
44
+            fileList: [],
45
+            data: [],
46
+            tempList: [],
47
+            isImg:false,
48
+            headers: {
49
+                Authorization: "Bearer " + getToken(),
50
+            },
51
+            filedata: {},
52
+            flagBtn: false,
53
+            ruleForm: {},
54
+            rules: {
55
+                temName: [
56
+                    { required: true, message: '请输入模板名称', trigger: 'blur' },
57
+                ],
58
+                temType: [
59
+                    { required: true, message: '请输入模板名称', trigger: 'blur' },
60
+                ],
61
+                identifyId: [
62
+                    { required: true, message: '请输入模板名称', trigger: 'blur' },
63
+                ]
64
+            }
65
+        };
66
+    },
67
+    watch: {
68
+        uploadVisable(val) {
69
+            if (val) {
70
+                let queryParams = {
71
+                    pageNum: 1,
72
+                    pageSize: 10000000000000000000000,
73
+                };
74
+                deptIdentifyList(queryParams).then(res => {
75
+                    this.tempList = res.rows;
76
+                })
77
+                this.ruleForm = {}
78
+            }
79
+        }
80
+    },
81
+    created() {
82
+
83
+    },
84
+    methods: {
85
+        cancel() {
86
+            this.$emit("cancelUpload");
87
+        },
88
+        handleChange(file, fileList) {
89
+            this.isImg = file.type === '.doc' || '.docx'
90
+        },
91
+        UploadUrl() {
92
+            return window.location.origin + "/API/deptIdentify/insertTemplate";
93
+        },
94
+        submitUpload() {
95
+            this.$refs['ruleForm'].validate((valid) => {
96
+                if (valid) {
97
+                    this.filedata.identifyId = this.ruleForm.identifyId;
98
+                    this.filedata.temName = this.ruleForm.temName;
99
+                    if (this.isImg) {
100
+                        this.$refs.upload.submit();
101
+                    }else{
102
+                        this.$message.error('只能上传doc,docx格式的文件')
103
+                    }
104
+                }
105
+            });
106
+        },
107
+        handleRemove(file, fileList) {
108
+            console.log(file, fileList);
109
+        },
110
+        beforeUpload(file) {
111
+            // debugger
112
+            // this.isImg = file.type === '.doc' || '.docx'
113
+        },
114
+        handleSuccess() {
115
+            this.$message.success('上传成功');
116
+            this.$emit("cancelUpload");
117
+            this.$emit('getList', this.queryParams);
118
+        }
119
+    },
120
+};
121
+</script>
122
+  
123
+<style lang="scss" scoped></style>

+ 90
- 0
src/views/officialSeal/components/editManager.vue Просмотреть файл

@@ -0,0 +1,90 @@
1
+<template>
2
+    <div>
3
+        <el-dialog title="修改模板" :visible="editVisable" v-if="editVisable" @close="cancel" width="600px" center>
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="name">
7
+                    <el-input v-model="ruleForm.name"></el-input>
8
+                </el-form-item>
9
+                <el-form-item label="模板类型" prop="type">
10
+                    <el-select v-model="ruleForm.type" placeholder="请选择">
11
+                        <el-option v-for="dict in dict.type.manager_type" :key="dict.value" :label="dict.label"
12
+                            :value="dict.value"></el-option>
13
+                    </el-select>
14
+                </el-form-item>
15
+                <el-form-item label="模板内容" prop="content">
16
+                    <el-input type="textarea" placeholder="请输入内容" v-model="ruleForm.content">
17
+                    </el-input>
18
+                </el-form-item>
19
+            </el-form>
20
+            <div slot="footer" class="dialog-footer">
21
+                <el-button @click="cancel" class="endbutton"><span>取 消</span></el-button>
22
+                <el-button type="primary" @click="submitUpload" class="endbutton"><span>确认</span></el-button>
23
+            </div>
24
+        </el-dialog>
25
+    </div>
26
+</template>
27
+<script>
28
+import { updateManager } from "@/api/officialSeal/officialSeal"
29
+export default {
30
+    props: ["editVisable", "editData", "queryParams"],
31
+    dicts: ["manager_type"],
32
+    data() {
33
+        return {
34
+            data: [],
35
+            flagBtn: false,
36
+            ruleForm: {},
37
+            rules: {
38
+                name: [
39
+                    { required: true, message: '请输入模板名称', trigger: 'blur' },
40
+                ],
41
+                type: [
42
+                    { required: true, message: '请输入模板名称', trigger: 'blur' },
43
+                ],
44
+                content: [
45
+                    { required: true, message: '请输入模板名称', trigger: 'blur' },
46
+                ]
47
+            }
48
+        };
49
+    },
50
+    watch: {
51
+        editData(val) {
52
+            if (val) {
53
+                this.ruleForm = val;
54
+                this.fileList = [];
55
+                this.ruleForm.type = this.ruleForm.type + '';
56
+            }
57
+        }
58
+    },
59
+    created() {
60
+
61
+    },
62
+    methods: {
63
+        cancel() {
64
+            this.$emit("cancelEdit");
65
+        },
66
+        // 修改模板
67
+        updateManagerFn(data) {
68
+            updateManager(data).then(res => {
69
+                this.$message.success('修改成功');
70
+                this.$emit("cancelEdit");
71
+                this.$emit('getList', this.queryParams);
72
+            })
73
+        },
74
+        submitUpload() {
75
+            this.$refs['ruleForm'].validate((valid) => {
76
+                if (valid) {
77
+                    this.updateManagerFn({
78
+                        name: this.ruleForm.name,
79
+                        content: this.ruleForm.content,
80
+                        type: this.ruleForm.type,
81
+                        id:this.ruleForm.id
82
+                    })
83
+                }
84
+            });
85
+        },
86
+    },
87
+};
88
+</script>
89
+  
90
+<style lang="scss" scoped></style>

+ 127
- 0
src/views/officialSeal/components/editTemplate.vue Просмотреть файл

@@ -0,0 +1,127 @@
1
+<template>
2
+    <div>
3
+        <el-dialog title="修改模板" :visible="editVisable" v-if="editVisable" @close="cancel" width="600px" center>
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="temName">
7
+                    <el-input v-model="ruleForm.temName"></el-input>
8
+                </el-form-item>
9
+                <el-form-item label="模板类型" prop="temType">
10
+                    <el-select v-model="ruleForm.temType" placeholder="请选择">
11
+                        <el-option v-for="dict in dict.type.template_type" :key="dict.value" :label="dict.label"
12
+                            :value="dict.value"></el-option>
13
+                    </el-select>
14
+                </el-form-item>
15
+                <el-form-item label="当前模板">
16
+                    <span style="color: #0e5ce3;cursor:pointer" @click="openUrl(editData.temOrigPath)">{{ editData.fileName
17
+                    }}</span>
18
+                </el-form-item>
19
+            </el-form>
20
+            <el-upload class="avatar-uploader" :before-upload="beforeUpload" :on-success="handleSuccess" ref="upload"
21
+                :action="UploadUrl()" :headers="headers" :data="filedata" :on-remove="handleRemove"
22
+                :on-change="handleChange" accept=".doc,.docx" :file-list="fileList" :auto-upload="false">
23
+                <el-button size="small" type="primary">选择模板文件</el-button>
24
+            </el-upload>
25
+            <div slot="footer" class="dialog-footer">
26
+                <el-button @click="cancel" class="endbutton"><span>取 消</span></el-button>
27
+                <el-button type="primary" @click="submitUpload" class="endbutton"><span>确认</span></el-button>
28
+            </div>
29
+        </el-dialog>
30
+    </div>
31
+</template>
32
+<script>
33
+import { getToken } from "@/utils/auth";
34
+import { updateTemplate } from "@/api/officialSeal/officialSeal"
35
+export default {
36
+    props: ["editVisable", "editData", "queryParams"],
37
+    dicts: ["template_type"],
38
+    data() {
39
+        return {
40
+            fileList: [],
41
+            data: [],
42
+            headers: {
43
+                Authorization: "Bearer " + getToken(),
44
+            },
45
+            isImg: true,
46
+            filedata: {},
47
+            flagBtn: false,
48
+            ruleForm: {},
49
+            rules: {
50
+                temName: [
51
+                    { required: true, message: '请输入模板名称', trigger: 'blur' },
52
+                ],
53
+                temType: [
54
+                    { required: true, message: '请输入模板名称', trigger: 'blur' },
55
+                ],
56
+            }
57
+        };
58
+    },
59
+    watch: {
60
+        editData(val) {
61
+            if (val) {
62
+                this.ruleForm = val;
63
+                this.fileList = [];
64
+                this.ruleForm.temType = this.ruleForm.temType + '';
65
+            }
66
+        }
67
+    },
68
+    created() {
69
+
70
+    },
71
+    methods: {
72
+        // 打开链接
73
+        openUrl(urlTemp) {
74
+            let headPath = window.location.origin + "/API/";
75
+            window.open(headPath + urlTemp);
76
+        },
77
+        cancel() {
78
+            this.$emit("cancelEdit");
79
+        },
80
+        handleChange(file, fileList) {
81
+            this.isImg = file.type === '.doc' || '.docx';
82
+            this.fileList = fileList;
83
+        },
84
+        UploadUrl() {
85
+            return window.location.origin + "/API/deptIdentify/updateTemplate";
86
+        },
87
+        submitUpload() {
88
+            let that = this;
89
+            this.$refs['ruleForm'].validate((valid) => {
90
+                if (valid) {
91
+                    if (that.fileList.length > 0) {
92
+                        that.filedata.id = that.editData.id;
93
+                        that.filedata.temName = that.ruleForm.temName;
94
+                        if (that.isImg) {
95
+                            that.$refs.upload.submit();
96
+                        } else {
97
+                            that.$message.error('只能上传doc,docx格式的文件')
98
+                        }
99
+                    } else {
100
+                        updateTemplate({
101
+                            id: that.editData.id,
102
+                            temName: that.ruleForm.temName
103
+                        }).then(res => {
104
+                            that.$message.success('修改成功');
105
+                            that.$emit("cancelEdit");
106
+                            that.$emit('getList', that.queryParams);
107
+                        })
108
+                    }
109
+                }
110
+            });
111
+        },
112
+        handleRemove(file, fileList) {
113
+            console.log(file, fileList);
114
+        },
115
+        beforeUpload(file) {
116
+            // this.isImg = file.type === '.doc' || '.docx'
117
+        },
118
+        handleSuccess() {
119
+            this.$message.success('修改成功');
120
+            this.$emit("cancelEdit");
121
+            this.$emit('getList', this.queryParams);
122
+        }
123
+    },
124
+};
125
+</script>
126
+  
127
+<style lang="scss" scoped></style>

+ 112
- 0
src/views/officialSeal/components/eidtInstitution.vue Просмотреть файл

@@ -0,0 +1,112 @@
1
+<template>
2
+    <div>
3
+        <el-dialog :title="title" :visible="editVisable" v-if="editVisable" @close="cancel" width="600px" center
4
+            :distroy-on-close="true">
5
+            <el-form :model="editForm" :rules="rules" ref="editForm" label-width="130px" class="demo-editForm">
6
+                <el-form-item label="机构名称" prop="identifyName">
7
+                    <el-input v-model="editForm.identifyName"></el-input>
8
+                </el-form-item>
9
+                <el-form-item label="机构邮箱" prop="identifyEmail">
10
+                    <el-input v-model="editForm.identifyEmail"></el-input>
11
+                </el-form-item>
12
+                <el-form-item label="机构信用代码" prop="creditCode">
13
+                    <el-input v-model="editForm.creditCode"></el-input>
14
+                </el-form-item>
15
+                <el-form-item label="法人姓名" prop="legalPerName">
16
+                    <el-input v-model="editForm.legalPerName"></el-input>
17
+                </el-form-item>
18
+                <el-form-item label="法人手机号" prop="legalPerPhone">
19
+                    <el-input v-model="editForm.legalPerPhone"></el-input>
20
+                </el-form-item>
21
+            </el-form>
22
+            <div slot="footer" class="dialog-footer">
23
+                <el-button @click="cancel" class="endbutton"><span>取 消</span></el-button>
24
+                <el-button type="primary" @click="submitForm" class="endbutton"><span>确认</span></el-button>
25
+            </div>
26
+        </el-dialog>
27
+    </div>
28
+</template>
29
+<script>
30
+import {
31
+    sealUpdate
32
+} from "@/api/officialSeal/officialSeal.js";
33
+export default {
34
+    props: ["editVisable","editData","queryParams"],
35
+    data() {
36
+        return {
37
+            title: "修改机构",
38
+            editForm: {},
39
+            rules: {
40
+                identifyName: [
41
+                    { required: true, message: '请输入机构名称', trigger: 'blur' },
42
+                ],
43
+                creditCode: [
44
+                    { required: true, message: '请输入机构信用代码', trigger: 'blur' },
45
+                ],
46
+                legalPerName: [
47
+                    { required: true, message: '请输入法人姓名', trigger: 'blur' },
48
+                ],
49
+                legalPerPhone: [
50
+                    { required: true, message: '请输入法人手机号', trigger: 'blur' },
51
+                    { pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/, message: '请输入正确的手机号码', trigger: 'blur', },
52
+                ],
53
+                // operUserName: [
54
+                //     { required: true, message: '请输入经办人用户名', trigger: 'blur' },
55
+                // ],
56
+                identifyEmail: [
57
+                    { required: true, message: '请输入邮箱', trigger: 'blur' },
58
+                    { type: 'email', message: '请输入正确的邮箱地址', trigger: 'blur' }
59
+                ]
60
+            }
61
+        };
62
+    },
63
+    watch: {
64
+        editVisable(val) {
65
+            if (val) {
66
+               this.editForm = this.editData;
67
+            }
68
+        }
69
+    },
70
+    created() {
71
+
72
+    },
73
+    methods: {
74
+        // 编辑
75
+        sealUpdateFn(data) {
76
+            sealUpdate(data).then(res => {
77
+                this.$modal.msgSuccess("修改成功!");
78
+                this.$emit("cancelEdit");
79
+                this.$emit('getList',this.queryParams);
80
+            })
81
+        },
82
+        // 提交form表单
83
+        submitForm() {
84
+            this.$refs['editForm'].validate((valid) => {
85
+                if (valid) {
86
+                    this.sealUpdateFn({
87
+                        identifyName:this.editForm.identifyName,
88
+                        operName:this.editForm.operName,
89
+                        operPhone:this.editForm.operPhone,
90
+                        id:this.editForm.id,
91
+                    })
92
+                }
93
+            });
94
+
95
+        },
96
+        cancel() {
97
+            this.$emit("cancelEdit");
98
+        },
99
+    },
100
+};
101
+</script>
102
+  
103
+<style lang="scss" scoped>
104
+.steps {
105
+    display: flex;
106
+    flex-wrap: wrap;
107
+}
108
+
109
+.radiobox {
110
+    margin-top: 30px;
111
+}
112
+</style>

+ 288
- 0
src/views/officialSeal/components/grabRules.vue Просмотреть файл

@@ -0,0 +1,288 @@
1
+<template>
2
+    <div>
3
+        <el-dialog title="设置抓取规则" :visible="rulesVisable" v-if="rulesVisable" @close="cancelRules"
4
+            append-to-body :destroy-on-close="true" center>
5
+            <el-button type="primary" icon="el-icon-plus" style="margin-bottom: 20px;"
6
+                @click="addForm">新增系统内置抓取规则</el-button>
7
+            <div class="formDom">
8
+                <el-form ref="form" :model="formData" label-width="150px">
9
+                    <div class="formItem" v-for="(item, index) in formData.forms" :key="item.key">
10
+                        <el-button type="primary" icon="el-icon-delete" style="margin-bottom: 20px;"
11
+                            @click="deleteForm(item)">删除</el-button>
12
+                        <el-row>
13
+                            <el-col :span="12">
14
+                                <el-form-item label="抓取文件名:" :prop="'forms.' + index + '.fileName'" :rules="[
15
+                                    {
16
+                                        required: true,
17
+                                        message: '抓取文件名不能为空',
18
+                                    },
19
+                                ]">
20
+                                    <el-input v-model="item.fileName" placeholder="请输入抓取文件名" />
21
+                                </el-form-item>
22
+                            </el-col>
23
+                            <el-col :span="12">
24
+                                <el-form-item label="字段名:" :prop="'forms.' + index + '.columnName'" :rules="[
25
+                                    {
26
+                                        required: true,
27
+                                        message: '字段名不能为空',
28
+                                    },
29
+                                ]">
30
+                                    <el-select v-model="item.columnName" placeholder="请选择" @change="columnNameChange(item)">
31
+                                        <el-option v-for="dict in dict.type.case_built_type" :key="dict.value"
32
+                                            :label="dict.label" :value="dict.label"></el-option>
33
+                                    </el-select>
34
+                                </el-form-item>
35
+                            </el-col>
36
+                            <el-col :span="12">
37
+                                <el-form-item label="开始抓取字段:" :prop="'forms.' + index + '.startContent'">
38
+                                    <el-input v-model="item.startContent" placeholder="请输入开始抓取字段" />
39
+                                </el-form-item>
40
+                            </el-col>
41
+                            <el-col :span="12">
42
+                                <el-form-item label="结束抓取字段:" :prop="'forms.' + index + '.endContent'">
43
+                                    <el-input v-model="item.endContent" placeholder="结束抓取字段" />
44
+                                </el-form-item>
45
+                            </el-col>
46
+                            <el-col :span="12">
47
+                                <el-form-item label="指定抓取开始位置:" :prop="'forms.' + index + '.startContentRepeatOrder'">
48
+                                    <el-input-number v-model="item.startContentRepeatOrder" controls-position="right" :min="1"></el-input-number>
49
+                                </el-form-item>
50
+                            </el-col>
51
+                            <el-col :span="12">
52
+                                <el-form-item label="指定抓取结束位置:" :prop="'forms.' + index + '.endContentRepeatOrder'">
53
+                                    <el-input-number v-model="item.endContentRepeatOrder" controls-position="right" :min="1"></el-input-number>
54
+                                </el-form-item>
55
+                            </el-col>
56
+                            <el-col :span="12">
57
+                                <el-form-item label="抓取方向:" :prop="'forms.' + index + '.fatchOrder'">
58
+                                    <el-select v-model="item.fatchOrder" placeholder="请选择">
59
+                                        <el-option v-for="dict in fatchOrderList" :key="dict.key"
60
+                                            :label="dict.name" :value="dict.key"></el-option>
61
+                                    </el-select>
62
+                                </el-form-item>
63
+                            </el-col>
64
+                        </el-row>
65
+                    </div>
66
+                </el-form>
67
+            </div>
68
+            <el-button type="primary" icon="el-icon-plus" style="margin-bottom: 20px;"
69
+                @click="addFormCustom">新增自定义抓取规则</el-button>
70
+            <div class="formDom">
71
+                <el-form ref="form_custom" :model="formData_custom" label-width="150px">
72
+                    <div class="formItem" v-for="(item, index) in formData_custom.forms" :key="item.key">
73
+                        <el-button type="primary" icon="el-icon-delete" style="margin-bottom: 20px;"
74
+                            @click="deleteFormCustom(item)">删除</el-button>
75
+                        <el-row>
76
+                            <el-col :span="12">
77
+                                <el-form-item label="字段:" :prop="'forms.' + index + '.column'" :rules="[
78
+                                    {
79
+                                        required: true,
80
+                                        message: '字段不能为空',
81
+                                    },
82
+                                ]">
83
+                                    <el-input v-model="item.column" placeholder="请输入字段" />
84
+                                </el-form-item>
85
+                            </el-col>
86
+                            <el-col :span="12">
87
+                                <el-form-item label="字段名:" :prop="'forms.' + index + '.columnName'" :rules="[
88
+                                    {
89
+                                        required: true,
90
+                                        message: '字段名不能为空',
91
+                                    },
92
+                                ]">
93
+                                    <el-input v-model="item.columnName" placeholder="请输入字段名" />
94
+                                </el-form-item>
95
+                            </el-col>
96
+                            <el-col :span="12">
97
+                                <el-form-item label="抓取文件名:" :prop="'forms.' + index + '.fileName'" :rules="[
98
+                                    {
99
+                                        required: true,
100
+                                        message: '抓取文件名不能为空',
101
+                                    },
102
+                                ]">
103
+                                    <el-input v-model="item.fileName" placeholder="请输入抓取文件名" />
104
+                                </el-form-item>
105
+                            </el-col>
106
+                            <el-col :span="12">
107
+                                <el-form-item label="开始抓取字段:" :prop="'forms.' + index + '.startContent'">
108
+                                    <el-input v-model="item.startContent" placeholder="请输入开始抓取字段" />
109
+                                </el-form-item>
110
+                            </el-col>
111
+                            <el-col :span="12">
112
+                                <el-form-item label="结束抓取字段:" :prop="'forms.' + index + '.endContent'">
113
+                                    <el-input v-model="item.endContent" placeholder="结束抓取字段" />
114
+                                </el-form-item>
115
+                            </el-col>
116
+                            <el-col :span="12">
117
+                                <el-form-item label="指定抓取开始位置:" :prop="'forms.' + index + '.startContentRepeatOrder'">
118
+                                    <el-input-number v-model="item.startContentRepeatOrder" controls-position="right" :min="1"></el-input-number>
119
+                                </el-form-item>
120
+                            </el-col>
121
+                            <el-col :span="12">
122
+                                <el-form-item label="指定抓取结束位置:" :prop="'forms.' + index + '.endContentRepeatOrder'">
123
+                                    <el-input-number v-model="item.endContentRepeatOrder" controls-position="right" :min="1"></el-input-number>
124
+                                </el-form-item>
125
+                            </el-col>
126
+                            <el-col :span="12">
127
+                                <el-form-item label="抓取方向:" :prop="'forms.' + index + '.fatchOrder'">
128
+                                    <el-select v-model="item.fatchOrder" placeholder="请选择">
129
+                                        <el-option v-for="dict in fatchOrderList" :key="dict.key"
130
+                                            :label="dict.name" :value="dict.key"></el-option>
131
+                                    </el-select>
132
+                                </el-form-item>
133
+                            </el-col>
134
+                        </el-row>
135
+                    </div>
136
+                </el-form>
137
+            </div>
138
+            <div slot="footer" class="dialog-footer">
139
+                <el-button @click="cancelRules" class="endbutton"><span>取 消</span></el-button>
140
+                <el-button type="primary" @click="submitRules" class="endbutton"><span>确认</span></el-button>
141
+            </div>
142
+        </el-dialog>
143
+    </div>
144
+</template>
145
+<script>
146
+import {
147
+    getFatchRuleByTemplateid,
148
+    saveFatchRules
149
+} from "@/api/officialSeal/officialSeal.js";
150
+export default {
151
+    props: ["rulesVisable", "rulesData", "queryParams"],
152
+    dicts: ["case_built_type"],
153
+    data() {
154
+        return {
155
+            formData: {
156
+                forms: [{
157
+                    // fileName: "",
158
+                    // startContent: '',
159
+                    // endContent: '',
160
+                    // column: "",
161
+                    // columnName: "",
162
+                }]
163
+            },
164
+            formData_custom: {
165
+                forms: []
166
+            },
167
+            fatchOrderList: [
168
+                {
169
+                    name:'从前向后抓取',
170
+                    key:0
171
+                },
172
+                {
173
+                    name:'从后往前抓取',
174
+                    key:1
175
+                }
176
+            ]
177
+        };
178
+    },
179
+    watch: {
180
+        rulesData(val) {
181
+            if (val) {
182
+                this.formData.forms = [];
183
+                this.formData_custom.forms = [];
184
+                this.getFatchRuleByTemplateidFn({ id: val.id })
185
+            }
186
+        }
187
+    },
188
+    created() {
189
+
190
+    },
191
+    methods: {
192
+        cancelRules() {
193
+            this.$emit("cancelRules");
194
+        },
195
+        addForm() {
196
+            this.formData.forms.push({
197
+                fileName: "",
198
+                startContent: '',
199
+                endContent: '',
200
+                column: "",
201
+                columnName: "",
202
+                isDefault: 0
203
+            });
204
+        },
205
+        deleteForm(item) {
206
+            var index = this.formData.forms.indexOf(item)
207
+            if (index !== -1) {
208
+                this.formData.forms.splice(index, 1)
209
+            }
210
+        },
211
+        deleteFormCustom(item) {
212
+            var index = this.formData_custom.forms.indexOf(item)
213
+            if (index !== -1) {
214
+                this.formData_custom.forms.splice(index, 1)
215
+            }
216
+        },
217
+        addFormCustom() {
218
+            this.formData_custom.forms.push({
219
+                fileName: "",
220
+                startContent: '',
221
+                endContent: '',
222
+                column: "",
223
+                columnName: "",
224
+                isDefault: 1
225
+            });
226
+        },
227
+        columnNameChange(item){
228
+            let result = this.dict.type.case_built_type.find((data=>{
229
+                return data.label == item.columnName
230
+            }))
231
+            item.column = result.value;
232
+        },
233
+        submitRules() {
234
+            this.$refs['form'].validate((valid) => {
235
+                if (valid) {
236
+                    this.$refs['form_custom'].validate((valid_custom) => {
237
+                        if (valid_custom) {
238
+                            let paramsList = this.formData.forms.concat(this.formData_custom.forms)
239
+                            this.saveFatchRulesFn({
240
+                                id: this.rulesData.id,
241
+                                fatchRules: paramsList
242
+                            })
243
+                        }
244
+                    })
245
+                }
246
+            });
247
+        },
248
+        // 根据id获取抓取规则
249
+        getFatchRuleByTemplateidFn(data) {
250
+            getFatchRuleByTemplateid(data).then(res => {
251
+                // this.formData.forms = res.data;
252
+                // this.selectList = res.data
253
+                this.formData.forms = [];
254
+                this.formData_custom.forms = [];
255
+                console.log(res.data,"LLLLLLLLLLLLLLLLLLLLLLLLLLLL");
256
+                res.data.forEach(item => {
257
+                    if(item.isDefault == 0){
258
+                        this.formData.forms.push(item)
259
+                    }else if(item.isDefault == 1){
260
+                        this.formData_custom.forms.push(item)
261
+                    }
262
+                });
263
+            })
264
+        },
265
+        // 提交抓取规则
266
+        saveFatchRulesFn(data) {
267
+            saveFatchRules(data).then(res => {
268
+                this.$message.success('提交成功');
269
+                this.$emit("cancelRules");
270
+                this.$emit('getList', this.queryParams);
271
+            })
272
+        }
273
+    },
274
+};
275
+</script>
276
+  
277
+<style lang="scss" scoped>
278
+::v-deep .el-form {
279
+    border: 1px solid #c2bcbc;
280
+    padding: 20px;
281
+    margin-bottom: 15px;
282
+    max-height: 300px;
283
+    overflow-y: scroll;
284
+}
285
+.el-input-number{
286
+    width: 180px;
287
+}
288
+</style>

+ 117
- 0
src/views/officialSeal/components/sealManage.vue Просмотреть файл

@@ -0,0 +1,117 @@
1
+<template>
2
+    <div>
3
+        <el-dialog title="公章列表" :visible="sealVisable" @close="cancel" width="800px" center :distroy-on-close="true">
4
+            <el-table v-loading="loading" :data="dataList" style="width: 100%">
5
+                <el-table-column label="序号" type="index" align="center">
6
+                    <template slot-scope="scope">
7
+                        <span>{{
8
+                            (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1
9
+                        }}</span>
10
+                    </template>
11
+                </el-table-column>
12
+                <el-table-column label="印章名称" align="center" prop="sealName"
13
+                    :show-overflow-tooltip="true"></el-table-column>
14
+                <el-table-column label="印章图片" align="center" prop="annexPath">
15
+                    <template slot-scope="scope">
16
+                        <el-image style="width: 40px; height: 40px;" :src="imgUrl + scope.row.annexPath"
17
+                            :preview-src-list="[imgUrl + scope.row.annexPath]">
18
+                        </el-image>
19
+                        <!-- <span>{{ imgUrl + scope.row.annexPath }}</span> -->
20
+                    </template>
21
+                </el-table-column>
22
+                <el-table-column label="是否启用" align="center" prop="sealStatus">
23
+                    <template slot-scope="scope">
24
+                        <el-tag type="success" v-if="scope.row.isUse == 1">已启用</el-tag>
25
+                        <el-tag type="info"
26
+                            v-if="(scope.row.isUse == 0 || scope.row.isUse == null) && scope.row.sealStatus !== 0">未启用</el-tag>
27
+                        <el-tag type="danger" v-if="scope.row.sealStatus == 0">审核中</el-tag>
28
+                    </template>
29
+                </el-table-column>
30
+                <el-table-column label="操作" align="center">
31
+                    <template slot-scope="scope">
32
+                        <el-button size="mini" @click="isUseChange(scope.row.id, 1)" type="text" icon="el-icon-thumb"
33
+                            v-if="(scope.row.isUse == 0 || scope.row.isUse == null) && scope.row.sealStatus !== 0">启用</el-button>
34
+                        <el-button size="mini" @click="isUseChange(scope.row.id, 0)" type="text" icon="el-icon-thumb"
35
+                            v-if="scope.row.isUse == 1">禁用</el-button>
36
+                    </template>
37
+                </el-table-column>
38
+            </el-table>
39
+            <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
40
+                :limit.sync="queryParams.pageSize" @pagination="sealListFn(queryParams)" />
41
+        </el-dialog>
42
+    </div>
43
+</template>
44
+<script>
45
+import {
46
+    sealList,
47
+    updateSealLockStatus
48
+} from "@/api/officialSeal/officialSeal.js";
49
+export default {
50
+    props: ["sealVisable", "sealData"],
51
+    data() {
52
+        return {
53
+            loading: false,
54
+            srcList: [],
55
+            queryParams: {
56
+                pageNum: 1,
57
+                pageSize: 10,
58
+            },
59
+            dataList: [
60
+
61
+            ],
62
+            total: 0,
63
+            imgUrl: ""
64
+        };
65
+    },
66
+    watch: {
67
+        sealVisable(val) {
68
+            if (val) {
69
+                this.queryParams.id = this.sealData.id;
70
+                this.sealListFn(this.queryParams)
71
+            }
72
+        }
73
+    },
74
+    created() {
75
+        this.UploadUrl()
76
+    },
77
+    methods: {
78
+        UploadUrl() {
79
+            this.imgUrl = window.location.origin + '/API';
80
+        },
81
+        // 查询列表数据
82
+        sealListFn(data) {
83
+            this.loading = true;
84
+            sealList(data).then(res => {
85
+                this.dataList = res.rows;
86
+                this.total = res.total;
87
+                this.loading = false;
88
+            })
89
+        },
90
+        // 更新公章状态
91
+        updateSealLockStatusFn(data) {
92
+            updateSealLockStatus(data).then(res => {
93
+                this.$message.success('更新状态成功');
94
+                this.sealListFn(this.queryParams);
95
+            })
96
+        },
97
+        // 启用或者禁用公章
98
+        isUseChange(id, type) {
99
+            let params = {
100
+                id: id,
101
+                isUse: type
102
+            }
103
+            this.$modal
104
+                .confirm("是否更改状态")
105
+                .then((res) => {
106
+                    this.updateSealLockStatusFn(params);
107
+                })
108
+        },
109
+        cancel() {
110
+            this.$emit("cancelSeal");
111
+        },
112
+
113
+    },
114
+};
115
+</script>
116
+  
117
+<style lang="scss" scoped></style>

+ 58
- 0
src/views/officialSeal/components/temmplateList.vue Просмотреть файл

@@ -0,0 +1,58 @@
1
+<template>
2
+    <div>
3
+        <el-dialog :title="title" :visible="listVisable" v-if="listVisable" @close="cancel" width="800px" center
4
+            :distroy-on-close="true">
5
+            <el-table v-loading="loading" :data="dataList" style="width: 100%">
6
+                <el-table-column label="字段" align="center" prop="column" :show-overflow-tooltip="true" />
7
+                <el-table-column label="字段名" align="center" prop="columnName" :show-overflow-tooltip="true" />
8
+            </el-table>
9
+            <div slot="footer" class="dialog-footer">
10
+                <el-button @click="cancel" class="endbutton"><span>取 消</span></el-button>
11
+            </div>
12
+        </el-dialog>
13
+    </div>
14
+</template>
15
+<script>
16
+import {
17
+    getTemplateInfoById
18
+} from "@/api/officialSeal/officialSeal.js";
19
+export default {
20
+    props: ["listVisable", "listData", "queryParams"],
21
+    data() {
22
+        return {
23
+            title: "模板字段列表",
24
+            // 遮罩层
25
+            loading: false,
26
+            dataList:[]
27
+        };
28
+    },
29
+    watch: {
30
+        listData(val) {
31
+            if (val) {
32
+                getTemplateInfoById({ id: val.id }).then(res=>{
33
+                    this.dataList = res.data;
34
+                })
35
+            }
36
+        }
37
+    },
38
+    created() {
39
+
40
+    },
41
+    methods: {
42
+        cancel() {
43
+            this.$emit("cancelList");
44
+        },
45
+    },
46
+};
47
+</script>
48
+  
49
+<style lang="scss" scoped>
50
+.steps {
51
+    display: flex;
52
+    flex-wrap: wrap;
53
+}
54
+
55
+.radiobox {
56
+    margin-top: 30px;
57
+}
58
+</style>

+ 128
- 0
src/views/officialSeal/components/uploadSeal.vue Просмотреть файл

@@ -0,0 +1,128 @@
1
+<template>
2
+    <div>
3
+        <el-dialog title="上传公章" :visible="uploadVisable" v-if="uploadVisable" @close="cancel" width="600px" center>
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="sealName">
7
+                    <el-input v-model="ruleForm.sealName"></el-input>
8
+                </el-form-item>
9
+            </el-form>
10
+            <el-upload class="avatar-uploader" accept="image/png" :before-upload="beforeUpload" :on-success="handleSuccess" ref="upload"
11
+                :action="UploadUrl()" :headers="headers" :data="filedata" :on-remove="handleRemove"
12
+                :on-change="handleChange" :show-file-list="false" :file-list="fileList" :auto-upload="false">
13
+                <img v-if="imageUrl" :src="imageUrl" class="avatar">
14
+                <i v-else class="el-icon-plus avatar-uploader-icon"></i>
15
+            </el-upload>
16
+            <div slot="footer" class="dialog-footer">
17
+                <el-button @click="cancel" class="endbutton"><span>取 消</span></el-button>
18
+                <el-button type="primary" @click="submitUpload" class="endbutton"><span>确认</span></el-button>
19
+            </div>
20
+        </el-dialog>
21
+    </div>
22
+</template>
23
+<script>
24
+import { getToken } from "@/utils/auth";
25
+export default {
26
+    props: ["uploadVisable", "uploadData"],
27
+    data() {
28
+        return {
29
+            fileList: [],
30
+            data: [],
31
+            headers: {
32
+                Authorization: "Bearer " + getToken(),
33
+            },
34
+            filedata: {
35
+                id: this.uploadData.id
36
+            },
37
+            flagBtn: false,
38
+            imageUrl: "",
39
+            ruleForm: {},
40
+            rules: {
41
+                sealName: [
42
+                    { required: true, message: '请输入印章名称', trigger: 'blur' },
43
+                ],
44
+            }
45
+        };
46
+    },
47
+    watch: {
48
+        uploadVisable(val) {
49
+            if (val) {
50
+                this.imageUrl = "",
51
+                this.ruleForm = {}
52
+            }
53
+        }
54
+    },
55
+    created() {
56
+
57
+    },
58
+    methods: {
59
+        cancel() {
60
+            this.$emit("cancelUpload");
61
+        },
62
+        handleChange(file, fileList) {
63
+            this.imageUrl = URL.createObjectURL(file.raw);
64
+        },
65
+        UploadUrl() {
66
+            return window.location.origin + "/API/deptIdentify/sealUpload";
67
+        },
68
+        submitUpload() {
69
+            this.$refs['ruleForm'].validate((valid) => {
70
+                if (valid) {
71
+                    this.filedata.id = this.uploadData.id;
72
+                    this.filedata.sealName = this.ruleForm.sealName;
73
+                    this.$refs.upload.submit();
74
+                    
75
+                }
76
+            });
77
+        },
78
+        handleRemove(file, fileList) {
79
+            console.log(file, fileList);
80
+        },
81
+        beforeUpload(file) {
82
+            const isImg = file.type === 'image/png'
83
+            if (!isImg) {
84
+                this.$message.error('只能上传图片格式的文件')
85
+            }
86
+            return isImg
87
+        },
88
+        handleSuccess(response) {
89
+            if (response.code == 200) {
90
+                this.$message.success('上传成功');
91
+                this.cancel()
92
+            } else {
93
+                this.$message.error(response.msg);
94
+            }
95
+        }
96
+    },
97
+};
98
+</script>
99
+  
100
+<style lang="scss" scoped>
101
+::v-deep .avatar-uploader .el-upload {
102
+    width: 178px;
103
+    height: 178px;
104
+    border: 1px dashed #d9d9d9;
105
+    border-radius: 6px;
106
+    cursor: pointer;
107
+    margin-left: 90px;
108
+}
109
+
110
+::v-deep .avatar-uploader .el-upload:hover {
111
+    border-color: #409EFF;
112
+}
113
+
114
+::v-deep .avatar-uploader-icon {
115
+    font-size: 28px;
116
+    color: #8c939d;
117
+    width: 178px;
118
+    height: 178px;
119
+    line-height: 178px;
120
+    text-align: center;
121
+}
122
+
123
+::v-deep .avatar {
124
+    width: 178px;
125
+    height: 178px;
126
+    display: block;
127
+}
128
+</style>

+ 280
- 0
src/views/officialSeal/officialSealList.vue Просмотреть файл

@@ -0,0 +1,280 @@
1
+<template>
2
+    <div class="app-container">
3
+        <el-row :gutter="10" class="mb8">
4
+            <el-col :span="1.5">
5
+                <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="addInstitution">新增部门</el-button>
6
+                <!-- v-hasPermi="['caseManagement:list:add']" -->
7
+            </el-col>
8
+        </el-row>
9
+        <el-table v-loading="loading" :data="dataList" style="width: 100%">
10
+            <el-table-column label="序号" type="index" align="center">
11
+                <template slot-scope="scope">
12
+                    <span>{{
13
+                        (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1
14
+                    }}</span>
15
+                </template>
16
+            </el-table-column>
17
+            <el-table-column label="仲裁机构名称" align="center" prop="identifyName" :show-overflow-tooltip="true" />
18
+            <el-table-column label="经办人姓名" align="center" prop="operName" :show-overflow-tooltip="true" />
19
+            <el-table-column label="经办人手机号" align="center" prop="operPhone" :show-overflow-tooltip="true" />
20
+            <el-table-column label="认证时间" align="center" prop="identifyDate" />
21
+            <el-table-column label="认证状态" align="center" prop="identifyStatus" :show-overflow-tooltip="true" />
22
+            <el-table-column label="是否启用" align="center" prop="isUse"></el-table-column>
23
+            <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
24
+                <template slot-scope="scope">
25
+                    <el-button size="mini" @click="DeptIndefiUrl(scope.row)" type="text" icon="el-icon-thumb"
26
+                        v-if="scope.row.identifyStatus == '未认证'">认证</el-button>
27
+                    <el-button size="mini" @click="changeStatus(scope.row)" type="text" icon="el-icon-thumb"
28
+                        v-if="scope.row.isUse == '未启用' && scope.row.identifyStatus == '已认证'">启用</el-button>
29
+                    <el-button size="mini" @click="uploadSeal(scope.row)" type="text"
30
+                        v-if="scope.row.identifyStatus == '已认证'" icon="el-icon-upload2">上传公章</el-button>
31
+                    <el-button size="mini" @click="sealManage(scope.row)" type="text"
32
+                        v-if="scope.row.identifyStatus == '已认证'" icon="el-icon-upload2">公章管理</el-button>
33
+                    <el-button size="mini" @click="sealDelete(scope.row)" v-if="scope.row.identifyStatus == '未认证'"
34
+                        type="text" icon="el-icon-delete">删除</el-button>
35
+                    <el-button size="mini" @click="eidtSeal(scope.row)" type="text" v-if="scope.row.identifyStatus == '未认证'"
36
+                        icon="el-icon-edit">修改</el-button>
37
+                    <el-button size="mini" @click="selectUser(scope.row)" type="text"
38
+                        v-if="scope.row.identifyStatus == '未认证'" icon="el-icon-edit">选择经办人</el-button>
39
+                </template>
40
+            </el-table-column>
41
+        </el-table>
42
+        <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
43
+            @pagination="getList(queryParams)" />
44
+        <addInstitution :operateVisable="operateVisable" @cancelFilingreview="cancelFilingreview" :queryParams="queryParams"
45
+            @getList="getList">
46
+        </addInstitution>
47
+        <uploadSeal :uploadVisable="uploadVisable" @cancelUpload="cancelUpload" :queryParams="queryParams"
48
+            :uploadData="uploadData" @getList="getList">
49
+        </uploadSeal>
50
+        <sealManage :sealVisable="sealVisable" @cancelSeal="cancelSeal" :queryParams="queryParams" :sealData="sealData">
51
+        </sealManage>
52
+        <eidtInstitution :editVisable="editVisable" @cancelEdit="cancelEdit" :queryParams="queryParams" @getList="getList"
53
+            :editData="editData"></eidtInstitution>
54
+        <el-dialog title="选择经办人" :visible.sync="selectVisible" width="600px" @close="selectClose">
55
+            <el-form :model="slectFrom" :rules="rules" ref="slectFrom" label-width="80px">
56
+                <el-form-item label="经办人" prop="id">
57
+                    <el-select v-model="slectFrom.id" clearable placeholder="请选择">
58
+                        <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId">
59
+                        </el-option>
60
+                    </el-select>
61
+                </el-form-item>
62
+            </el-form>
63
+            <div slot="footer" class="dialog-footer">
64
+                <el-button @click="selectClose" class="endbutton"><span>取 消</span></el-button>
65
+                <el-button type="primary" @click="submitUser" class="endbutton"><span>确认</span></el-button>
66
+            </div>
67
+        </el-dialog>
68
+    </div>
69
+</template>
70
+  
71
+<script>
72
+import {
73
+    deptIdentifyList,
74
+    enableDept,
75
+    selectDeptIndefiUrl,
76
+    deleteSeal,
77
+    selectPostUserByDeptId,
78
+    bindHandler
79
+} from "@/api/officialSeal/officialSeal.js";
80
+
81
+import addInstitution from "./components/addInstitution";
82
+import uploadSeal from "./components/uploadSeal";
83
+import sealManage from "./components/sealManage";
84
+import eidtInstitution from "./components/eidtInstitution";
85
+export default {
86
+    name: "paymentList",
87
+    components: {
88
+        addInstitution,
89
+        uploadSeal,
90
+        sealManage,
91
+        eidtInstitution
92
+    },
93
+    data() {
94
+        return {
95
+            queryParams: {
96
+                pageNum: 1,
97
+                pageSize: 10,
98
+            },
99
+            // 遮罩层
100
+            loading: false,
101
+            // 总条数
102
+            total: 0,
103
+            // 表格数据
104
+            form: {},
105
+            // 校验表单
106
+            rules: {},
107
+            dataList: [1],
108
+            operateVisable: false,//新增弹窗
109
+            uploadVisable: false,//上传弹窗
110
+            sealVisable: false,//公章列表弹窗
111
+            uploadData: {},
112
+            sealData: {},
113
+            editVisable: false,
114
+            editData: {},
115
+            selectVisible: false,
116
+            slectFrom: {},
117
+            userList: [],
118
+            templateId: null,
119
+            rules: {
120
+                id: [
121
+                    { required: true, message: '请选择经办人', trigger: 'blur' },
122
+                ]
123
+            }
124
+        };
125
+    },
126
+    created() {
127
+        this.getList(this.queryParams)
128
+    },
129
+    methods: {
130
+        // 选择经办人
131
+        selectUser(row) {
132
+            this.selectVisible = true;
133
+            this.templateId = row.id;
134
+            selectPostUserByDeptId({ id: row.id }).then(res => {
135
+                this.userList = res.data;
136
+                if (row.userId) {
137
+                    this.slectFrom.id = row.userId;
138
+                } else {
139
+                    this.slectFrom = {};
140
+                }
141
+            })
142
+        },
143
+        // 确认经办人
144
+        submitUser() {
145
+            this.$refs['slectFrom'].validate((valid) => {
146
+                if (valid) {
147
+                    bindHandler({ id: this.templateId, userId: this.slectFrom.id }).then(res => {
148
+                        this.$modal.msgSuccess("选择成功");
149
+                        this.selectVisible = false;
150
+                        this.getList(this.queryParams);
151
+                    })
152
+                }
153
+            })
154
+        },
155
+        selectClose() {
156
+            this.selectVisible = false;
157
+        },
158
+        // 删除
159
+        sealDelete(row) {
160
+            this.$modal
161
+                .confirm("是否更改状态")
162
+                .then((res) => {
163
+                    this.deleteSealFn({ id: row.id })
164
+                })
165
+        },
166
+        // 删除接口
167
+        deleteSealFn(data) {
168
+            deleteSeal(data).then(res => {
169
+                this.$modal.msgSuccess("删除成功!");
170
+                this.getList(this.queryParams);
171
+            })
172
+        },
173
+        // 公章管理
174
+        sealManage(row) {
175
+            this.sealVisable = true;
176
+            this.sealData = row;
177
+        },
178
+        cancelSeal() {
179
+            this.sealVisable = false;
180
+        },
181
+        // 上传公章
182
+        uploadSeal(row) {
183
+            this.uploadVisable = true;
184
+            this.uploadData = row;
185
+        },
186
+        closeUploadSeal(){
187
+            this.uploadVisable = false
188
+        },
189
+        cancelFilingreview() {
190
+            this.operateVisable = false;
191
+        },
192
+        cancelUpload() {
193
+            this.uploadVisable = false;
194
+        },
195
+        // 新增部门
196
+        addInstitution() {
197
+            this.operateVisable = true;
198
+        },
199
+        // 编辑
200
+        eidtSeal(row) {
201
+            this.editVisable = true;
202
+            this.editData = row;
203
+        },
204
+        cancelEdit() {
205
+            this.editVisable = false;
206
+        },
207
+        // 启用认证按钮
208
+        changeStatus(row) {
209
+            this.$modal.confirm('是否进行启用?')
210
+                .then(function () {
211
+
212
+                })
213
+                .then(() => {
214
+                    enableDept({ id: row.id }).then(res => {
215
+                        this.$modal.msgSuccess("启用成功!");
216
+                        this.getList(this.queryParams);
217
+                    })
218
+
219
+                })
220
+                .catch(function () {
221
+                });
222
+        },
223
+        // 认证按钮
224
+        DeptIndefiUrl(row) {
225
+            if (!row.operName || !row.legalPerPhone) {
226
+                this.$modal.msgError("当前没有经办人 ,无法认证!!");
227
+                return
228
+            }
229
+            this.$modal.confirm('是否认证?')
230
+                .then(function () {
231
+                    selectDeptIndefiUrl({ id: row.id }).then(res => {
232
+                        let url = res.data.identifyUrl;
233
+                        window.open(url)
234
+                    })
235
+                })
236
+                .then(() => {
237
+                    // this.$modal.msgSuccess("认证成功!");
238
+                    // this.getList(this.queryParams);
239
+                })
240
+                .catch(function () {
241
+                });
242
+        },
243
+        /** 搜索按钮操作 */
244
+        handleQuery() {
245
+            this.queryParams.pageNum = 1;
246
+            this.getList(this.queryParams);
247
+        },
248
+        /** 重置按钮操作 */
249
+        resetQuery() {
250
+            this.resetForm("queryForm");
251
+            this.handleQuery();
252
+        },
253
+        // 查询列表数据
254
+        getList(parms) {
255
+            this.loading = true;
256
+            deptIdentifyList(parms).then((response) => {
257
+                this.dataList = response.rows;
258
+                this.total = response.total;
259
+                this.loading = false;
260
+                this.dataList.forEach(item => {
261
+                    if (item.identifyStatus == 0 || item.identifyStatus == null) {
262
+                        item.identifyStatus = '未认证'
263
+                    } else if (item.identifyStatus == 2) {
264
+                        item.identifyStatus = '认证中'
265
+                    } else if (item.identifyStatus == 1) {
266
+                        item.identifyStatus = '已认证'
267
+                    }
268
+                    if (item.isUse == 0 || item.isUse == null) {
269
+                        item.isUse = '未启用'
270
+                    } else {
271
+                        item.isUse = '已启用'
272
+                    }
273
+                })
274
+            });
275
+        },
276
+    },
277
+};
278
+</script>
279
+  
280
+<style lang="scss" scoped></style>

+ 182
- 0
src/views/officialSeal/templateManagement.vue Просмотреть файл

@@ -0,0 +1,182 @@
1
+<template>
2
+    <div class="app-container">
3
+        <el-row :gutter="10" class="mb8">
4
+            <el-col :span="1.5">
5
+                <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="addtemplate">新增裁决书模板</el-button>
6
+                <!-- v-hasPermi="['caseManagement:list:add']" -->
7
+            </el-col>
8
+        </el-row>
9
+        <el-table v-loading="loading" :data="dataList" style="width: 100%">
10
+            <el-table-column label="序号" type="index" align="center">
11
+                <template slot-scope="scope">
12
+                    <span>{{
13
+                        (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1
14
+                    }}</span>
15
+                </template>
16
+            </el-table-column>
17
+            <el-table-column label="仲裁机构名称" align="center" prop="identifyName" :show-overflow-tooltip="true" />
18
+            <el-table-column label="裁决书名称" align="center" prop="temName" :show-overflow-tooltip="true" />
19
+            <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
20
+                <template slot-scope="scope">
21
+                    <el-button size="mini" @click="deleteTemplate(scope.row)" type="text" icon="el-icon-delete">删除</el-button>
22
+                    <el-button size="mini" @click="eidtTemplate(scope.row)" type="text" icon="el-icon-edit">修改模板</el-button>
23
+                    <el-button size="mini" @click="grabRulesClick(scope.row)" type="text" icon="el-icon-edit">设置抓取规则</el-button>
24
+                    <el-button size="mini" @click="templateList(scope.row)" type="text" icon="el-icon-edit">模板字段列表</el-button>
25
+                </template>
26
+            </el-table-column>
27
+        </el-table>
28
+        <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
29
+            @pagination="getList(queryParams)" />
30
+       
31
+        <addTemplate :uploadVisable="uploadVisable" @cancelUpload="cancelUpload" :uploadData="uploadData" @getList="getList" :queryParams="queryParams">
32
+        </addTemplate>
33
+        <sealManage :sealVisable="sealVisable" @cancelSeal="cancelSeal" :sealData="sealData">
34
+        </sealManage>
35
+        <editTemplate :editVisable="editVisable" @cancelEdit="cancelEdit" @getList="getList" :editData="editData" :queryParams="queryParams"></editTemplate>
36
+        <grabRules :rulesVisable="rulesVisable" @cancelRules="cancelRules" @getList="getList" :rulesData="rulesData" :queryParams="queryParams"></grabRules>
37
+        <temmplateList :listVisable="listVisable" @cancelList="cancelList" @getList="getList" :listData="listData" :queryParams="queryParams"></temmplateList>
38
+   </div>
39
+</template>
40
+  
41
+<script>
42
+import {
43
+    getTemplate,
44
+    deleteTemplate,
45
+    getTemplateInfoById
46
+} from "@/api/officialSeal/officialSeal.js";
47
+
48
+import addInstitution from "./components/addInstitution";
49
+import addTemplate from "./components/addTemplate";
50
+import sealManage from "./components/sealManage";
51
+import editTemplate from "./components/editTemplate";
52
+import grabRules from "./components/grabRules.vue";
53
+import temmplateList from "./components/temmplateList.vue";
54
+export default {
55
+    name: "paymentList",
56
+    components: {
57
+        addInstitution,
58
+        addTemplate,
59
+        sealManage,
60
+        editTemplate,
61
+        grabRules,
62
+        temmplateList
63
+    },
64
+    data() {
65
+        return {
66
+            queryParams: {
67
+                pageNum: 1,
68
+                pageSize: 10,
69
+            },
70
+            // 遮罩层
71
+            loading: false,
72
+            // 总条数
73
+            total: 0,
74
+            // 表格数据
75
+            form: {},
76
+            // 校验表单
77
+            rules: {},
78
+            dataList: [],
79
+            operateVisable: false,//新增弹窗
80
+            uploadVisable: false,//上传弹窗
81
+            sealVisable: false,//公章列表弹窗
82
+            rulesVisable:false,//抓取规则弹窗
83
+            uploadData: {},
84
+            sealData: {},
85
+            editVisable:false,
86
+            editData:{},
87
+            rulesData:{},
88
+            listVisable:false,
89
+            listData:{}
90
+        };
91
+    },
92
+    created() {
93
+        this.getList(this.queryParams)
94
+    },
95
+    methods: {
96
+        // 删除
97
+        deleteTemplate(row) {
98
+            this.$modal
99
+                .confirm("是否删除")
100
+                .then((res) => {
101
+                    this.deleteSealFn({ id: row.id })
102
+                })
103
+        },
104
+        // 删除接口
105
+        deleteSealFn(data) {
106
+            deleteTemplate(data).then(res => {
107
+                this.$modal.msgSuccess("删除成功!");
108
+                this.getList(this.queryParams);
109
+            })
110
+        },
111
+        cancelSeal() {
112
+            this.sealVisable = false;
113
+        },
114
+        // 新增模板
115
+        addtemplate(row) {
116
+            this.uploadVisable = true;
117
+            this.uploadData = row;
118
+        },
119
+        cancelUpload() {
120
+            this.uploadVisable = false;
121
+        },
122
+        // 编辑
123
+        eidtTemplate(row) {
124
+            this.editVisable = true;
125
+            this.editData = row;
126
+        },
127
+        cancelEdit() {
128
+            this.editVisable = false;
129
+        },
130
+        // 模板字段列表
131
+        templateList(row){
132
+            this.listVisable = true;
133
+            this.listData = row;
134
+        },
135
+        cancelList(){
136
+            this.listVisable = false;
137
+        },
138
+        // 抓取规则
139
+        grabRulesClick(row){
140
+            this.rulesVisable = true;
141
+            this.rulesData = row;
142
+        },
143
+        cancelRules(){
144
+            this.rulesVisable = false;
145
+        },
146
+        /** 搜索按钮操作 */
147
+        handleQuery() {
148
+            this.queryParams.pageNum = 1;
149
+            this.getList(this.queryParams);
150
+        },
151
+        /** 重置按钮操作 */
152
+        resetQuery() {
153
+            this.resetForm("queryForm");
154
+            this.handleQuery();
155
+        },
156
+        // 查询列表数据
157
+        getList(parms) {
158
+            this.loading = true;
159
+            getTemplate(parms).then((response) => {
160
+                this.dataList = response.rows;
161
+                this.total = response.total;
162
+                this.loading = false;
163
+                console.log(this.dataList,"LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL");
164
+                // this.dataList.forEach(item => {
165
+                //     if (item.identifyStatus == 0 || item.identifyStatus == null) {
166
+                //         item.identifyStatus = '未认证'
167
+                //     } else {
168
+                //         item.identifyStatus = '已认证'
169
+                //     }
170
+                //     if (item.isUse == 0 || item.isUse == null) {
171
+                //         item.isUse = '未启用'
172
+                //     } else {
173
+                //         item.isUse = '已启用'
174
+                //     }
175
+                // })
176
+            });
177
+        },
178
+    },
179
+};
180
+</script>
181
+  
182
+<style lang="scss" scoped></style>

+ 140
- 0
src/views/officialSeal/templateManager.vue Просмотреть файл

@@ -0,0 +1,140 @@
1
+<template>
2
+    <div class="app-container">
3
+        <el-row :gutter="10" class="mb8">
4
+            <el-col :span="1.5">
5
+                <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="addtemplate">新增模板</el-button>
6
+                <!-- v-hasPermi="['caseManagement:list:add']" -->
7
+            </el-col>
8
+        </el-row>
9
+        <el-table v-loading="loading" :data="dataList" style="width: 100%">
10
+            <el-table-column label="序号" type="index" align="center">
11
+                <template slot-scope="scope">
12
+                    <span>{{
13
+                        (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1
14
+                    }}</span>
15
+                </template>
16
+            </el-table-column>
17
+            <el-table-column label="模板名称" align="center" prop="name" :show-overflow-tooltip="true" />
18
+            <el-table-column label="模板内容" align="center" prop="content" :show-overflow-tooltip="true" />
19
+            <el-table-column label="模板类型" align="center" prop="typeName" :show-overflow-tooltip="true" />
20
+            <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
21
+                <template slot-scope="scope">
22
+                    <el-button size="mini" @click="deleteTemplate(scope.row)" type="text" icon="el-icon-delete">删除</el-button>
23
+                    <el-button size="mini" @click="eidtTemplate(scope.row)" type="text" icon="el-icon-edit">修改模板</el-button>
24
+                </template>
25
+            </el-table-column>
26
+        </el-table>
27
+        <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
28
+            @pagination="getList(queryParams)" />
29
+       
30
+        <addManager :uploadVisable="uploadVisable" @cancelUpload="cancelUpload" :uploadData="uploadData" @getList="getList" :queryParams="queryParams">
31
+        </addManager>
32
+        <editManager :editVisable="editVisable" @cancelEdit="cancelEdit" @getList="getList" :editData="editData" :queryParams="queryParams"></editManager>
33
+    </div>
34
+</template>
35
+  
36
+<script>
37
+import {
38
+    getManagerList,
39
+    deleteManager
40
+} from "@/api/officialSeal/officialSeal.js";
41
+
42
+import addManager from "./components/addManager";
43
+import editManager from "./components/editManager";
44
+export default {
45
+    name: "paymentList",
46
+    components: {
47
+        addManager,
48
+        editManager
49
+    },
50
+    data() {
51
+        return {
52
+            queryParams: {
53
+                pageNum: 1,
54
+                pageSize: 10,
55
+            },
56
+            // 遮罩层
57
+            loading: false,
58
+            // 总条数
59
+            total: 0,
60
+            // 表格数据
61
+            form: {},
62
+            // 校验表单
63
+            rules: {},
64
+            dataList: [],
65
+            operateVisable: false,//新增弹窗
66
+            uploadVisable: false,//上传弹窗
67
+            uploadData: {},
68
+            sealData: {},
69
+            editVisable:false,
70
+            editData:{}
71
+        };
72
+    },
73
+    created() {
74
+        this.getList(this.queryParams)
75
+    },
76
+    methods: {
77
+        // 删除
78
+        deleteTemplate(row) {
79
+            this.$modal
80
+                .confirm("是否删除")
81
+                .then((res) => {
82
+                    this.deleteSealFn({ id: row.id })
83
+                })
84
+        },
85
+        // 删除接口
86
+        deleteSealFn(data) {
87
+            deleteManager(data).then(res => {
88
+                this.$modal.msgSuccess("删除成功!");
89
+                this.getList(this.queryParams);
90
+            })
91
+        },
92
+        // 新增模板
93
+        addtemplate(row) {
94
+            this.uploadVisable = true;
95
+            this.uploadData = row;
96
+        },
97
+        cancelUpload() {
98
+            this.uploadVisable = false;
99
+        },
100
+        // 编辑
101
+        eidtTemplate(row) {
102
+            this.editVisable = true;
103
+            this.editData = row;
104
+        },
105
+        cancelEdit() {
106
+            this.editVisable = false;
107
+        },
108
+        /** 搜索按钮操作 */
109
+        handleQuery() {
110
+            this.queryParams.pageNum = 1;
111
+            this.getList(this.queryParams);
112
+        },
113
+        /** 重置按钮操作 */
114
+        resetQuery() {
115
+            this.resetForm("queryForm");
116
+            this.handleQuery();
117
+        },
118
+        // 查询列表数据
119
+        getList(parms) {
120
+            this.loading = true;
121
+            getManagerList(parms).then((response) => {
122
+                this.dataList = response.rows;
123
+                this.dataList.forEach(item => {
124
+                    if(item.type == 1){
125
+                        item.typeName = '裁决内容'
126
+                    }else if(item.type == 2){
127
+                        item.typeName = '调解协议'
128
+                    }else if(item.type == 3){
129
+                        item.typeName = '金融消费纠纷基本情况'
130
+                    }
131
+                });
132
+                this.total = response.total;
133
+                this.loading = false;
134
+            });
135
+        },
136
+    },
137
+};
138
+</script>
139
+  
140
+<style lang="scss" scoped></style>

+ 59
- 68
src/views/system/dept/index.vue Просмотреть файл

@@ -2,21 +2,12 @@
2 2
   <div class="app-container">
3 3
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
4 4
       <el-form-item label="部门名称" prop="deptName">
5
-        <el-input
6
-          v-model="queryParams.deptName"
7
-          placeholder="请输入部门名称"
8
-          clearable
9
-          @keyup.enter.native="handleQuery"
10
-        />
5
+        <el-input v-model="queryParams.deptName" placeholder="请输入部门名称" clearable @keyup.enter.native="handleQuery" />
11 6
       </el-form-item>
12 7
       <el-form-item label="状态" prop="status">
13 8
         <el-select v-model="queryParams.status" placeholder="部门状态" clearable>
14
-          <el-option
15
-            v-for="dict in dict.type.sys_normal_disable"
16
-            :key="dict.value"
17
-            :label="dict.label"
18
-            :value="dict.value"
19
-          />
9
+          <el-option v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.label"
10
+            :value="dict.value" />
20 11
         </el-select>
21 12
       </el-form-item>
22 13
       <el-form-item>
@@ -27,40 +18,22 @@
27 18
 
28 19
     <el-row :gutter="10" class="mb8">
29 20
       <el-col :span="1.5">
30
-        <el-button
31
-          type="primary"
32
-          plain
33
-          icon="el-icon-plus"
34
-          size="mini"
35
-          @click="handleAdd"
36
-          v-hasPermi="['system:dept:add']"
37
-        >新增</el-button>
21
+        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd(1)"
22
+          v-hasPermi="['system:dept:add']">新增</el-button>
38 23
       </el-col>
39 24
       <el-col :span="1.5">
40
-        <el-button
41
-          type="info"
42
-          plain
43
-          icon="el-icon-sort"
44
-          size="mini"
45
-          @click="toggleExpandAll"
46
-        >展开/折叠</el-button>
25
+        <el-button type="info" plain icon="el-icon-sort" size="mini" @click="toggleExpandAll">展开/折叠</el-button>
47 26
       </el-col>
48 27
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
49 28
     </el-row>
50 29
 
51
-    <el-table
52
-      v-if="refreshTable"
53
-      v-loading="loading"
54
-      :data="deptList"
55
-      row-key="deptId"
56
-      :default-expand-all="isExpandAll"
57
-      :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
58
-    >
30
+    <el-table v-if="refreshTable" v-loading="loading" :data="deptList" row-key="deptId" :default-expand-all="isExpandAll"
31
+      :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
59 32
       <el-table-column prop="deptName" label="部门名称" width="260"></el-table-column>
60 33
       <el-table-column prop="orderNum" label="排序" width="200"></el-table-column>
61 34
       <el-table-column prop="status" label="状态" width="100">
62 35
         <template slot-scope="scope">
63
-          <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
36
+          <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status" />
64 37
         </template>
65 38
       </el-table-column>
66 39
       <el-table-column label="创建时间" align="center" prop="createTime" width="200">
@@ -70,28 +43,12 @@
70 43
       </el-table-column>
71 44
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
72 45
         <template slot-scope="scope">
73
-          <el-button
74
-            size="mini"
75
-            type="text"
76
-            icon="el-icon-edit"
77
-            @click="handleUpdate(scope.row)"
78
-            v-hasPermi="['system:dept:edit']"
79
-          >修改</el-button>
80
-          <el-button
81
-            size="mini"
82
-            type="text"
83
-            icon="el-icon-plus"
84
-            @click="handleAdd(scope.row)"
85
-            v-hasPermi="['system:dept:add']"
86
-          >新增</el-button>
87
-          <el-button
88
-            v-if="scope.row.parentId != 0"
89
-            size="mini"
90
-            type="text"
91
-            icon="el-icon-delete"
92
-            @click="handleDelete(scope.row)"
93
-            v-hasPermi="['system:dept:remove']"
94
-          >删除</el-button>
46
+          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
47
+            v-hasPermi="['system:dept:edit']">修改</el-button>
48
+          <el-button size="mini" type="text" icon="el-icon-plus" @click="handleAdd(scope.row)"
49
+            v-hasPermi="['system:dept:add']">新增</el-button>
50
+          <el-button v-if="scope.row.parentId != 0" size="mini" type="text" icon="el-icon-delete"
51
+            @click="handleDelete(scope.row)" v-hasPermi="['system:dept:remove']">删除</el-button>
95 52
         </template>
96 53
       </el-table-column>
97 54
     </el-table>
@@ -100,7 +57,12 @@
100 57
     <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
101 58
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
102 59
         <el-row>
103
-          <el-col :span="24" v-if="form.parentId !== 0">
60
+          <!-- <el-col :span="24" v-if="form.parentId !== 0">
61
+            <el-form-item label="上级部门" prop="parentId">
62
+              <treeselect v-model="form.parentId" :options="deptOptions" :normalizer="normalizer" placeholder="选择上级部门" />
63
+            </el-form-item>
64
+          </el-col> -->
65
+          <el-col :span="24" v-if="flag">
104 66
             <el-form-item label="上级部门" prop="parentId">
105 67
               <treeselect v-model="form.parentId" :options="deptOptions" :normalizer="normalizer" placeholder="选择上级部门" />
106 68
             </el-form-item>
@@ -136,14 +98,26 @@
136 98
               <el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50" />
137 99
             </el-form-item>
138 100
           </el-col>
101
+          <!-- <el-col :span="12">
102
+            <el-form-item label="部门类型" prop="deptType">
103
+              <el-input v-model="form.deptType" placeholder="请输入部门编码" maxlength="50" />
104
+            </el-form-item>
105
+          </el-col> -->
106
+          <el-col :span="12">
107
+            <el-form-item label="部门类型" prop="deptType">
108
+              <el-select v-model="form.deptType" placeholder="请选择部门类型">
109
+                <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
110
+                </el-option>
111
+              </el-select>
112
+            </el-form-item>
113
+          </el-col>
114
+        </el-row>
115
+        <el-row>
139 116
           <el-col :span="12">
140 117
             <el-form-item label="部门状态">
141 118
               <el-radio-group v-model="form.status">
142
-                <el-radio
143
-                  v-for="dict in dict.type.sys_normal_disable"
144
-                  :key="dict.value"
145
-                  :label="dict.value"
146
-                >{{dict.label}}</el-radio>
119
+                <el-radio v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.value">{{ dict.label
120
+                }}</el-radio>
147 121
               </el-radio-group>
148 122
             </el-form-item>
149 123
           </el-col>
@@ -168,6 +142,7 @@ export default {
168 142
   components: { Treeselect },
169 143
   data() {
170 144
     return {
145
+      flag: false,
171 146
       // 遮罩层
172 147
       loading: true,
173 148
       // 显示搜索条件
@@ -199,6 +174,9 @@ export default {
199 174
         deptName: [
200 175
           { required: true, message: "部门名称不能为空", trigger: "blur" }
201 176
         ],
177
+        deptType: [
178
+          { required: true, message: "部门类型不能为空", trigger: "blur" }
179
+        ],
202 180
         orderNum: [
203 181
           { required: true, message: "显示排序不能为空", trigger: "blur" }
204 182
         ],
@@ -216,7 +194,14 @@ export default {
216 194
             trigger: "blur"
217 195
           }
218 196
         ]
219
-      }
197
+      },
198
+      options: [{
199
+        value: 1,
200
+        label: '仲裁机构'
201
+      }, {
202
+        value: 2,
203
+        label: '金融公司'
204
+      },],
220 205
     };
221 206
   },
222 207
   created() {
@@ -272,6 +257,12 @@ export default {
272 257
     },
273 258
     /** 新增按钮操作 */
274 259
     handleAdd(row) {
260
+      console.log(row, "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL");
261
+      if (row == 1) {
262
+        this.flag = false;
263
+      } else {
264
+        this.flag = true;
265
+      }
275 266
       this.reset();
276 267
       if (row != undefined) {
277 268
         this.form.parentId = row.deptId;
@@ -307,7 +298,7 @@ export default {
307 298
       });
308 299
     },
309 300
     /** 提交按钮 */
310
-    submitForm: function() {
301
+    submitForm: function () {
311 302
       this.$refs["form"].validate(valid => {
312 303
         if (valid) {
313 304
           if (this.form.deptId != undefined) {
@@ -328,12 +319,12 @@ export default {
328 319
     },
329 320
     /** 删除按钮操作 */
330 321
     handleDelete(row) {
331
-      this.$modal.confirm('是否确认删除名称为"' + row.deptName + '"的数据项?').then(function() {
322
+      this.$modal.confirm('是否确认删除名称为"' + row.deptName + '"的数据项?').then(function () {
332 323
         return delDept(row.deptId);
333 324
       }).then(() => {
334 325
         this.getList();
335 326
         this.$modal.msgSuccess("删除成功");
336
-      }).catch(() => {});
327
+      }).catch(() => { });
337 328
     }
338 329
   }
339 330
 };

+ 8
- 2
vue.config.js Просмотреть файл

@@ -7,10 +7,16 @@ function resolve(dir) {
7 7
 
8 8
 const CompressionPlugin = require('compression-webpack-plugin')
9 9
 
10
-const name = process.env.VUE_APP_TITLE || '若依管理系统' // 网页标题
10
+const name = process.env.VUE_APP_TITLE || '调解系统' // 网页标题
11 11
 
12 12
 const port = process.env.port || process.env.npm_config_port || 80 // 端口
13 13
 
14
+// const API = 'http://121.40.189.20:9001'  //生产
15
+const API = 'http://121.40.189.20:6001'  //测试
16
+// const API = 'http://192.168.3.18:8001'  //B
17
+// const API = 'http://192.168.3.77:9001' //Q
18
+
19
+
14 20
 // vue.config.js 配置说明
15 21
 //官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions
16 22
 // 这里只列一部分,具体配置参考文档
@@ -35,7 +41,7 @@ module.exports = {
35 41
     proxy: {
36 42
       // detail: https://cli.vuejs.org/config/#devserver-proxy
37 43
       [process.env.VUE_APP_BASE_API]: {
38
-        target: `http://localhost:8080`,
44
+        target: API,
39 45
         changeOrigin: true,
40 46
         pathRewrite: {
41 47
           ['^' + process.env.VUE_APP_BASE_API]: ''