Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0d62eda5a8 | ||
|
|
0ce29b99ac | ||
|
|
30d335340a | ||
|
|
0f5f320312 | ||
|
|
6156b82b6c | ||
|
|
c6aafbf252 | ||
|
|
604d76e1fd | ||
|
|
3b809685e3 | ||
|
|
96086cf6f9 | ||
|
|
1cf64e3b41 | ||
|
|
f67c276eab | ||
|
|
5038469490 | ||
|
|
11ecebb5f9 | ||
|
|
fcab34b6eb | ||
|
|
eaa129cfd4 | ||
|
|
b0e379e8bb | ||
|
|
9d7247a4ed | ||
|
|
e6645c7685 | ||
|
|
3249841059 | ||
|
|
0ebb84bab1 | ||
|
|
68258f3451 | ||
|
|
afb49528c1 | ||
|
|
5918d71352 | ||
|
|
006260ffed | ||
|
|
0cfefe4893 | ||
|
|
24cbd66d75 | ||
|
|
cd6a6064fa | ||
|
|
5df5678c95 | ||
|
|
c5f5d8c98c | ||
|
|
b7705af7e0 | ||
|
|
61f6cd4742 | ||
|
|
18e07846a5 | ||
|
|
fb97f76070 | ||
|
|
4fc6019ffa | ||
|
|
cde9f59262 | ||
|
|
e6f456b0c9 | ||
|
|
ce5938c4c3 | ||
|
|
5c3bbd469d | ||
|
|
2a4759330b | ||
|
|
f00a25449f | ||
|
|
9b3145944d | ||
|
|
4b32e754c0 | ||
|
|
921888a0c3 | ||
|
|
278a041a8a | ||
|
|
c144befe51 | ||
|
|
c291d70a9f | ||
|
|
fb864ad0b2 | ||
|
|
3e53480616 | ||
|
|
3bf0460ddf | ||
|
|
6aedf3c23d | ||
|
|
ab0fc9d6f0 | ||
|
|
dbb2855547 | ||
|
|
cd93c92b62 | ||
|
|
3c033f7cd9 | ||
|
|
3a6a780964 | ||
|
|
fa0b195ec1 | ||
|
|
0d22fa41e1 | ||
|
|
96087a7247 | ||
|
|
b7cd12db46 | ||
|
|
b88c628c4d | ||
|
|
26b5753150 | ||
|
|
0d47f2c2fb | ||
|
|
c8340874f6 | ||
|
|
394a65fcaa | ||
|
|
fc5fd5914f | ||
|
|
0fa56bbf45 | ||
|
|
a3003f6af8 | ||
|
|
aef3c0f53f | ||
|
|
f76cafe928 | ||
|
|
d07ba431c5 | ||
|
|
b1c8e45570 | ||
|
|
b4bb4f5dbf | ||
|
|
db0d35c424 | ||
|
|
c9c91fe405 | ||
|
|
ca17f03831 | ||
|
|
4e86daeb5a | ||
|
|
e00f712efb | ||
|
|
c7c4ed8f6e | ||
|
|
1f1a8dcd46 | ||
|
|
7f704424b2 | ||
|
|
9806e7c9ef | ||
|
|
5ecea9844c | ||
|
|
cc1629f632 | ||
|
|
c658dc1929 | ||
|
|
0f9cfcd432 | ||
|
|
570ffbfee8 | ||
|
|
0e303073df | ||
|
|
822318aec1 | ||
|
|
1718fdd6d8 | ||
|
|
8eca5b0fab | ||
|
|
a013dc90b5 | ||
|
|
c454099061 | ||
|
|
c071610f80 | ||
|
|
930c654c68 | ||
|
|
0a50839f9d | ||
|
|
dfa4c3d4da | ||
|
|
ca9043d7bf | ||
|
|
14f6838c50 | ||
|
|
9e3c6928f0 | ||
|
|
4751846f64 | ||
|
|
0c08314b4d | ||
|
|
cb7387c631 | ||
|
|
263a82b915 | ||
|
|
d23258c3ce | ||
|
|
5f549a11e2 | ||
|
|
705a180fc0 | ||
|
|
2c9aaf2e49 | ||
|
|
c92b45b275 | ||
|
|
fb7a73ed46 | ||
|
|
497eaf0700 | ||
|
|
7bdb0e9536 | ||
|
|
c2ba8108f8 | ||
|
|
4affe89cd0 | ||
|
|
95d4e52a84 | ||
|
|
d08d1cc7ef | ||
|
|
33c92b49c2 | ||
|
|
20c19a6c10 | ||
|
|
3b1153c5e3 | ||
|
|
1504603ca6 | ||
|
|
ce23ba56bd | ||
|
|
05a7103794 | ||
|
|
6fe397c1ee | ||
|
|
24c61698cb | ||
|
|
400b3e4644 | ||
|
|
5f0c651bac | ||
|
|
a7ae328123 | ||
|
|
972c409213 | ||
|
|
9948c9ed04 | ||
|
|
752950ea35 | ||
|
|
8955626849 | ||
|
|
6281a29aae | ||
|
|
830f41bbec | ||
|
|
51c91a1c1a | ||
|
|
4c0c084126 | ||
|
|
6a0a382963 | ||
|
|
81ac5528a1 | ||
|
|
b1810b835a | ||
|
|
72e79651b6 | ||
|
|
4f8165045a | ||
|
|
9bebf1a8a7 | ||
|
|
03f1700c37 | ||
|
|
ab70858f39 | ||
|
|
ed1165a6ac | ||
|
|
8c45d922a5 | ||
|
|
a1fec88e88 | ||
|
|
6a1d18309a | ||
|
|
5f41c61d1e | ||
|
|
c2f5d6d8bd | ||
|
|
3762c9a6cb | ||
|
|
fc37239f9d | ||
|
|
b923625515 | ||
|
|
62dbde7d0a | ||
|
|
720d90193f | ||
|
|
13937509c8 | ||
|
|
72ced8108b | ||
|
|
9f2556e387 | ||
|
|
7d56e738ff | ||
|
|
fc0272dca0 | ||
|
|
d6ccde627a | ||
|
|
8cd7dfcfcd | ||
|
|
8178a9d180 | ||
|
|
857e5588ad | ||
|
|
8b71e26f57 | ||
|
|
57f11996c6 | ||
|
|
718e182766 | ||
|
|
9fbd20a098 | ||
|
|
9f34dafc9a | ||
|
|
a61a1388f7 | ||
|
|
8d4a69a959 | ||
|
|
08ba042ac2 | ||
|
|
e370c8f248 | ||
|
|
ecd8979c8b | ||
|
|
39125fdcdf | ||
|
|
fe0833dd32 | ||
|
|
bcd9f7cbb2 | ||
|
|
0733c67999 | ||
|
|
0620ab8a43 | ||
|
|
53f3e04905 | ||
|
|
7cfdcd1fc5 | ||
|
|
9f15145a7c | ||
|
|
a45b73ab82 | ||
|
|
c348a4c529 | ||
|
|
3b3191c353 | ||
|
|
811f169ddd | ||
|
|
cca3bb656b | ||
|
|
e0bb8cde42 | ||
|
|
20c062fcef | ||
|
|
1b243dc441 | ||
|
|
e305b7b668 | ||
|
|
987fa7dd54 | ||
|
|
53ca46a5f5 | ||
|
|
b577f650f5 | ||
|
|
b89f7272b8 | ||
|
|
9efd609de8 | ||
|
|
504e8ef1d5 | ||
|
|
f3b90edb88 | ||
|
|
797bdc837d | ||
|
|
3566f3bd09 | ||
|
|
7b17d986f3 | ||
|
|
718e96daa3 | ||
|
|
42806a93bf | ||
|
|
e79cf46f62 | ||
|
|
836f26c1f0 | ||
|
|
69bdd05df4 | ||
|
|
b0f6fee8ab | ||
|
|
7f3138d499 | ||
|
|
d3256e15fb |
@@ -1,3 +1,30 @@
|
|||||||
# Mediation-Frontend
|
## 开发
|
||||||
|
|
||||||
调解系统PC端服务
|
```bash
|
||||||
|
# 克隆项目
|
||||||
|
git clone https://gitee.com/y_project/RuoYi-Vue
|
||||||
|
|
||||||
|
# 进入项目目录
|
||||||
|
cd ruoyi-ui
|
||||||
|
|
||||||
|
# 安装依赖
|
||||||
|
npm install
|
||||||
|
|
||||||
|
# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
|
||||||
|
npm install --registry=https://registry.npmmirror.com
|
||||||
|
|
||||||
|
# 启动服务
|
||||||
|
npm run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
浏览器访问 http://localhost:80
|
||||||
|
|
||||||
|
## 发布
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 构建测试环境
|
||||||
|
npm run build:stage
|
||||||
|
|
||||||
|
# 构建生产环境
|
||||||
|
npm run build:prod
|
||||||
|
```
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "ruoyi",
|
"name": "ruoyi",
|
||||||
"version": "3.8.6",
|
"version": "3.8.6",
|
||||||
"description": "智慧仲裁管理系统",
|
"description": "调解系统",
|
||||||
"author": "智慧仲裁",
|
"author": "智慧仲裁",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@@ -48,8 +48,7 @@
|
|||||||
"js-beautify": "1.13.0",
|
"js-beautify": "1.13.0",
|
||||||
"js-cookie": "3.0.1",
|
"js-cookie": "3.0.1",
|
||||||
"jsencrypt": "3.0.0-rc.1",
|
"jsencrypt": "3.0.0-rc.1",
|
||||||
"lodash": "^4.17.21",
|
"moment": "^2.29.4",
|
||||||
"moment": "^2.30.1",
|
|
||||||
"nprogress": "0.2.0",
|
"nprogress": "0.2.0",
|
||||||
"qrcodejs2": "0.0.2",
|
"qrcodejs2": "0.0.2",
|
||||||
"quill": "1.3.7",
|
"quill": "1.3.7",
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 4.2 KiB |
@@ -7,6 +7,7 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
||||||
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
|
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
|
||||||
<title><%= webpackConfig.name %></title>
|
<title><%= webpackConfig.name %></title>
|
||||||
|
<script src="http://121.40.189.20:8899/web-apps/apps/api/documents/api.js"></script>
|
||||||
<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
|
<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
|
||||||
<style>
|
<style>
|
||||||
html,
|
html,
|
||||||
|
|||||||
@@ -2,6 +2,9 @@
|
|||||||
<div id="app">
|
<div id="app">
|
||||||
<router-view />
|
<router-view />
|
||||||
<theme-picker />
|
<theme-picker />
|
||||||
|
<div class="onlyoffice">
|
||||||
|
<div id="placeholder"></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -11,18 +14,94 @@ import ThemePicker from "@/components/ThemePicker";
|
|||||||
export default {
|
export default {
|
||||||
name: "App",
|
name: "App",
|
||||||
components: { ThemePicker },
|
components: { ThemePicker },
|
||||||
metaInfo() {
|
data() {
|
||||||
return {
|
return {
|
||||||
title: this.$store.state.settings.dynamicTitle && this.$store.state.settings.title,
|
config: {},
|
||||||
titleTemplate: title => {
|
flag: false
|
||||||
return title ? `${title} - ${process.env.VUE_APP_TITLE}` : process.env.VUE_APP_TITLE
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
console.log("app.vue");
|
||||||
|
this.config = {
|
||||||
|
"editorConfig": {
|
||||||
|
"mode": "edit",
|
||||||
|
"customization": {
|
||||||
|
"feedback": {
|
||||||
|
"visible": false
|
||||||
|
},
|
||||||
|
"help": false,
|
||||||
|
"goback": {
|
||||||
|
"blank": false
|
||||||
|
},
|
||||||
|
"macros": false,
|
||||||
|
"autosave": false,
|
||||||
|
"comments": false,
|
||||||
|
"review": {},
|
||||||
|
"hideRightMenu": true,
|
||||||
|
"anonymous": {
|
||||||
|
"request": false
|
||||||
|
},
|
||||||
|
"forcesave": true,
|
||||||
|
"logo": {},
|
||||||
|
"hideNotes": true
|
||||||
|
},
|
||||||
|
"plugins": {
|
||||||
|
"pluginsData": [],
|
||||||
|
"autostart": []
|
||||||
|
},
|
||||||
|
"callbackUrl": "http://121.40.189.20:9090/onlyOffice/save",
|
||||||
|
"lang": "zh-CN",
|
||||||
|
"user": {
|
||||||
|
"name": "OnlyOfficeUserName1",
|
||||||
|
"id": "1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"docServiceApiUrl": "http://121.40.189.20:8899/web-apps/apps/api/documents/api.js",
|
||||||
|
"documentType": "word",
|
||||||
|
"document": {
|
||||||
|
"permissions": {
|
||||||
|
"edit": false,
|
||||||
|
"chat": false,
|
||||||
|
"review": false
|
||||||
|
},
|
||||||
|
"title": "调解申请书模板.docx",
|
||||||
|
"fileType": "docx",
|
||||||
|
"key": "6ae50056ac5e4e3ba09be430d444699c",
|
||||||
|
"url": "http://121.40.189.20:9090/download/6ae50056ac5e4e3ba09be430d444699c",
|
||||||
|
"info": {
|
||||||
|
"sharingSettings": [
|
||||||
|
{
|
||||||
|
"isLink": true,
|
||||||
|
"permissions": [
|
||||||
|
"Full Access"
|
||||||
|
],
|
||||||
|
"user": "OnlyOfficeUserName1"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"created": "2024-03-13 09:46:41"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"type": "desktop"
|
||||||
|
}
|
||||||
|
var docEditor = new DocsAPI.DocEditor("placeholder", this.config);
|
||||||
|
},
|
||||||
|
metaInfo() {
|
||||||
|
return {
|
||||||
|
title: this.$store.state.settings.dynamicTitle && this.$store.state.settings.title,
|
||||||
|
titleTemplate: title => {
|
||||||
|
return title ? `${title} - ${process.env.VUE_APP_TITLE}` : process.env.VUE_APP_TITLE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style scoped>
|
<style scoped>
|
||||||
#app .theme-picker {
|
#app .theme-picker {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.onlyoffice {
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -239,3 +239,18 @@ export function secretaryRoleByUserId(query) {
|
|||||||
params: query
|
params: query
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
// 获取证件类型
|
||||||
|
export function getIdType() {
|
||||||
|
return request({
|
||||||
|
url: '/system/dict/data/type/id_type',
|
||||||
|
method: 'get',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 会议附件上传接口
|
||||||
|
export function meetingUpload(data) {
|
||||||
|
return request({
|
||||||
|
url: '/video/upload',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -17,4 +17,44 @@ export function smsList(data,params) {
|
|||||||
data: data,
|
data: data,
|
||||||
params:params
|
params:params
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
//更新短信内容
|
||||||
|
export function updateSendContent(data) {
|
||||||
|
return request({
|
||||||
|
url: 'shortMessage/updateSendContent',
|
||||||
|
method: 'post',
|
||||||
|
data: data,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 分页查询短信
|
||||||
|
export function recordList(data) {
|
||||||
|
return request({
|
||||||
|
url: '/shortMessage/recordList',
|
||||||
|
method: 'get',
|
||||||
|
params: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 重新发送短信
|
||||||
|
export function reSendShortMessage(data) {
|
||||||
|
return request({
|
||||||
|
url: 'shortMessage/reSendShortMessage',
|
||||||
|
method: 'post',
|
||||||
|
data: data,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 重新发送邮件
|
||||||
|
export function reSendMailRecord(data) {
|
||||||
|
return request({
|
||||||
|
url: 'sendMailRecord/reSendMailRecord',
|
||||||
|
method: 'post',
|
||||||
|
data: data,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 更新邮件发送记录
|
||||||
|
export function update(data) {
|
||||||
|
return request({
|
||||||
|
url: 'sendMailRecord/update',
|
||||||
|
method: 'post',
|
||||||
|
data: data,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
@@ -65,6 +65,14 @@ export function sendCode(data) {
|
|||||||
params:data
|
params:data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
// 获取邮箱验证码
|
||||||
|
export function sendEmailCode(data) {
|
||||||
|
return request({
|
||||||
|
url: '/weChatUser/sendEmailCode',
|
||||||
|
method: 'get',
|
||||||
|
params:data
|
||||||
|
})
|
||||||
|
}
|
||||||
// 注册方法
|
// 注册方法
|
||||||
export function wxregister(data) {
|
export function wxregister(data) {
|
||||||
return request({
|
return request({
|
||||||
@@ -75,4 +83,34 @@ export function wxregister(data) {
|
|||||||
method: 'post',
|
method: 'post',
|
||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
// 检测用户名是否已经存在
|
||||||
|
export function verifyUserName(data) {
|
||||||
|
return request({
|
||||||
|
url: '/weChatUser/verifyUserName',
|
||||||
|
method: 'get',
|
||||||
|
params:data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 获取证件类型
|
||||||
|
export function getIdType() {
|
||||||
|
return request({
|
||||||
|
url: '/system/dict/data/type/skipToken/id_type',
|
||||||
|
method: 'get',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 获取pc端的EIDtoken
|
||||||
|
export function selectIdentityAuthenticaEIDtoken() {
|
||||||
|
return request({
|
||||||
|
url: '/identityAuthentication/selectIdentityAuthenticaEIDtoken',
|
||||||
|
method: 'post'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// H5轮询获取E证通Token状态
|
||||||
|
export function selectPCEIDtokenStatus(data) {
|
||||||
|
return request({
|
||||||
|
url: '/identityAuthentication/selectPCEIDtokenStatus',
|
||||||
|
method: 'get',
|
||||||
|
params:data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
// 获取onlyoffice配置文件
|
||||||
|
export function getOnlyoffice(params) {
|
||||||
|
return request({
|
||||||
|
url: '/onlyOffice',
|
||||||
|
// headers: {
|
||||||
|
// isToken: false
|
||||||
|
// },
|
||||||
|
method: 'get',
|
||||||
|
params: params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 保存onlyoffice文档
|
||||||
|
export function saveOnlyOfficeFile(data) {
|
||||||
|
return request({
|
||||||
|
url: '/caseApplication/saveOnlyOfficeFile',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
// 查询首页待办
|
||||||
|
export function todoCount(data) {
|
||||||
|
return request({
|
||||||
|
url: '/caseApplication/todoCount',
|
||||||
|
method: 'get',
|
||||||
|
params: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 8.3 KiB |
|
After Width: | Height: | Size: 6.5 KiB |
|
After Width: | Height: | Size: 185 KiB |
|
After Width: | Height: | Size: 139 KiB |
|
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 394 KiB |
|
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 185 KiB |
@@ -51,12 +51,12 @@ export default {
|
|||||||
// 图片数量限制
|
// 图片数量限制
|
||||||
limit: {
|
limit: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 5,
|
default: 1,
|
||||||
},
|
},
|
||||||
// 大小限制(MB)
|
// 大小限制(MB)
|
||||||
fileSize: {
|
fileSize: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 5,
|
// default: 5,
|
||||||
},
|
},
|
||||||
// 文件类型, 例如['png', 'jpg', 'jpeg']
|
// 文件类型, 例如['png', 'jpg', 'jpeg']
|
||||||
fileType: {
|
fileType: {
|
||||||
|
|||||||
@@ -9,7 +9,8 @@ export default {
|
|||||||
name: 'RuoYiDoc',
|
name: 'RuoYiDoc',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
url: 'http://doc.ruoyi.vip/ruoyi-vue'
|
// url: 'http://doc.ruoyi.vip/ruoyi-vue'
|
||||||
|
url: '#'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|||||||
@@ -7,15 +7,10 @@
|
|||||||
|
|
||||||
<div class="right-menu">
|
<div class="right-menu">
|
||||||
<template v-if="device!=='mobile'">
|
<template v-if="device!=='mobile'">
|
||||||
<!-- <search id="header-search" class="right-menu-item" />
|
<!-- <search id="header-search" class="right-menu-item" /> -->
|
||||||
|
|
||||||
<el-tooltip content="源码地址" effect="dark" placement="bottom">
|
|
||||||
<ruo-yi-git id="ruoyi-git" class="right-menu-item hover-effect" />
|
|
||||||
</el-tooltip>
|
|
||||||
|
|
||||||
<el-tooltip content="文档地址" effect="dark" placement="bottom">
|
<el-tooltip content="文档地址" effect="dark" placement="bottom">
|
||||||
<ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" />
|
<ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" />
|
||||||
</el-tooltip> -->
|
</el-tooltip>
|
||||||
|
|
||||||
<screenfull id="screenfull" class="right-menu-item hover-effect" />
|
<screenfull id="screenfull" class="right-menu-item hover-effect" />
|
||||||
|
|
||||||
@@ -102,7 +97,8 @@ export default {
|
|||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.$store.dispatch('LogOut').then(() => {
|
this.$store.dispatch('LogOut').then(() => {
|
||||||
location.href = '/index';
|
// location.href = '/index';
|
||||||
|
this.$router.push({ path: '/Login' })
|
||||||
})
|
})
|
||||||
}).catch(() => {});
|
}).catch(() => {});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,9 +13,15 @@ import router from './router'
|
|||||||
import directive from './directive' // directive
|
import directive from './directive' // directive
|
||||||
import plugins from './plugins' // plugins
|
import plugins from './plugins' // plugins
|
||||||
import { download } from '@/utils/request'
|
import { download } from '@/utils/request'
|
||||||
|
import { Message } from 'element-ui'
|
||||||
|
import NProgress from 'nprogress'
|
||||||
|
import 'nprogress/nprogress.css'
|
||||||
|
import { getToken } from '@/utils/auth'
|
||||||
|
import { isRelogin } from '@/utils/request'
|
||||||
|
import './assets/icons' // icon
|
||||||
|
// 引入Iconfont 矢量图标库
|
||||||
import './assets/icon/iconfont.css'
|
import './assets/icon/iconfont.css'
|
||||||
import './permission' // permission control
|
// import './permission' // permission control
|
||||||
import { getDicts } from "@/api/system/dict/data";
|
import { getDicts } from "@/api/system/dict/data";
|
||||||
import { getConfigKey } from "@/api/system/config";
|
import { getConfigKey } from "@/api/system/config";
|
||||||
import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree } from "@/utils/ruoyi";
|
import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree } from "@/utils/ruoyi";
|
||||||
@@ -37,8 +43,9 @@ import DictTag from '@/components/DictTag'
|
|||||||
import VueMeta from 'vue-meta'
|
import VueMeta from 'vue-meta'
|
||||||
// 字典数据组件
|
// 字典数据组件
|
||||||
import DictData from '@/components/DictData'
|
import DictData from '@/components/DictData'
|
||||||
|
//画布组件
|
||||||
|
import vueEsign from 'vue-esign'
|
||||||
import {checkPermi} from '@/utils/permission'
|
import {checkPermi} from '@/utils/permission'
|
||||||
import { statusRole } from '@/utils/permission'
|
|
||||||
|
|
||||||
// 全局方法挂载
|
// 全局方法挂载
|
||||||
Vue.prototype.getDicts = getDicts
|
Vue.prototype.getDicts = getDicts
|
||||||
@@ -51,7 +58,6 @@ Vue.prototype.selectDictLabels = selectDictLabels
|
|||||||
Vue.prototype.download = download
|
Vue.prototype.download = download
|
||||||
Vue.prototype.handleTree = handleTree
|
Vue.prototype.handleTree = handleTree
|
||||||
Vue.prototype.checkPermi = checkPermi
|
Vue.prototype.checkPermi = checkPermi
|
||||||
Vue.prototype.statusRole = statusRole
|
|
||||||
|
|
||||||
// 全局组件挂载
|
// 全局组件挂载
|
||||||
Vue.component('DictTag', DictTag)
|
Vue.component('DictTag', DictTag)
|
||||||
@@ -65,6 +71,7 @@ Vue.component('ImagePreview', ImagePreview)
|
|||||||
Vue.use(directive)
|
Vue.use(directive)
|
||||||
Vue.use(plugins)
|
Vue.use(plugins)
|
||||||
Vue.use(VueMeta)
|
Vue.use(VueMeta)
|
||||||
|
Vue.use(vueEsign)
|
||||||
DictData.install()
|
DictData.install()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -75,7 +82,61 @@ DictData.install()
|
|||||||
* Currently MockJs will be used in the production environment,
|
* Currently MockJs will be used in the production environment,
|
||||||
* please remove it before going online! ! !
|
* please remove it before going online! ! !
|
||||||
*/
|
*/
|
||||||
|
NProgress.configure({ showSpinner: false })
|
||||||
|
|
||||||
|
const whiteList = ['/login', '/register']
|
||||||
|
|
||||||
|
router.beforeEach((to, from, next) => {
|
||||||
|
let path = to.fullPath
|
||||||
|
if(path.indexOf('token') != -1){
|
||||||
|
path = path.split('token=');
|
||||||
|
path = path[1];
|
||||||
|
Cookies.set("Admin-Token", path)
|
||||||
|
}
|
||||||
|
NProgress.start()
|
||||||
|
if (getToken()) {
|
||||||
|
to.meta.title && store.dispatch('settings/setTitle', to.meta.title)
|
||||||
|
/* has token*/
|
||||||
|
if (to.path === '/login') {
|
||||||
|
next({ path: '/' })
|
||||||
|
NProgress.done()
|
||||||
|
} else {
|
||||||
|
if (store.getters.roles.length === 0) {
|
||||||
|
isRelogin.show = true
|
||||||
|
// 判断当前用户是否已拉取完user_info信息
|
||||||
|
store.dispatch('GetInfo').then(() => {
|
||||||
|
isRelogin.show = false
|
||||||
|
store.dispatch('GenerateRoutes').then(accessRoutes => {
|
||||||
|
// 根据roles权限生成可访问的路由表
|
||||||
|
router.addRoutes(accessRoutes) // 动态添加可访问路由表
|
||||||
|
next({ ...to, replace: true }) // hack方法 确保addRoutes已完成
|
||||||
|
})
|
||||||
|
}).catch(err => {
|
||||||
|
store.dispatch('LogOut').then(() => {
|
||||||
|
Message.error(err)
|
||||||
|
next({ path: '/' })
|
||||||
|
})
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
next()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 没有token
|
||||||
|
if (whiteList.indexOf(to.path) !== -1) {
|
||||||
|
// 在免登录白名单,直接进入
|
||||||
|
next()
|
||||||
|
} else {
|
||||||
|
// next(`/login?redirect=${encodeURIComponent(to.fullPath)}`) // 否则全部重定向到登录页
|
||||||
|
next(`/login`)
|
||||||
|
NProgress.done()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
router.afterEach(() => {
|
||||||
|
NProgress.done()
|
||||||
|
})
|
||||||
Vue.use(Element, {
|
Vue.use(Element, {
|
||||||
size: Cookies.get('size') || 'medium' // set element-ui default size
|
size: Cookies.get('size') || 'medium' // set element-ui default size
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ NProgress.configure({ showSpinner: false })
|
|||||||
const whiteList = ['/login', '/register']
|
const whiteList = ['/login', '/register']
|
||||||
|
|
||||||
router.beforeEach((to, from, next) => {
|
router.beforeEach((to, from, next) => {
|
||||||
|
console.log("**************************************");
|
||||||
NProgress.start()
|
NProgress.start()
|
||||||
if (getToken()) {
|
if (getToken()) {
|
||||||
to.meta.title && store.dispatch('settings/setTitle', to.meta.title)
|
to.meta.title && store.dispatch('settings/setTitle', to.meta.title)
|
||||||
@@ -45,7 +46,8 @@ router.beforeEach((to, from, next) => {
|
|||||||
// 在免登录白名单,直接进入
|
// 在免登录白名单,直接进入
|
||||||
next()
|
next()
|
||||||
} else {
|
} else {
|
||||||
next(`/login?redirect=${encodeURIComponent(to.fullPath)}`) // 否则全部重定向到登录页
|
// next(`/login?redirect=${encodeURIComponent(to.fullPath)}`) // 否则全部重定向到登录页
|
||||||
|
next(`/login`)
|
||||||
NProgress.done()
|
NProgress.done()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,6 +61,16 @@ export const constantRoutes = [
|
|||||||
component: () => import('@/views/error/401'),
|
component: () => import('@/views/error/401'),
|
||||||
hidden: true
|
hidden: true
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/onlyoffice',
|
||||||
|
component: () => import('@/views/onlyoffice/onlyoffice'),
|
||||||
|
hidden: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/test',
|
||||||
|
component: () => import('@/views/test'),
|
||||||
|
hidden: true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: '',
|
path: '',
|
||||||
component: Layout,
|
component: Layout,
|
||||||
@@ -100,7 +110,8 @@ export const dynamicRoutes = [
|
|||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
path: 'role/:userId(\\d+)',
|
path: 'role/:userId(\\d+)',
|
||||||
component: () => import('@/views/system/user/authRole'),
|
// component: () => import('@/views/system/user/authRole'),
|
||||||
|
component: (resolve) => require(['@/views/system/user/authRole'],resolve),
|
||||||
name: 'AuthRole',
|
name: 'AuthRole',
|
||||||
meta: { title: '分配角色', activeMenu: '/system/user' }
|
meta: { title: '分配角色', activeMenu: '/system/user' }
|
||||||
}
|
}
|
||||||
@@ -114,7 +125,8 @@ export const dynamicRoutes = [
|
|||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
path: 'user/:roleId(\\d+)',
|
path: 'user/:roleId(\\d+)',
|
||||||
component: () => import('@/views/system/role/authUser'),
|
// component: () => import('@/views/system/role/authUser'),
|
||||||
|
component: (resolve) => require(['@/views/system/role/authUser'],resolve),
|
||||||
name: 'AuthUser',
|
name: 'AuthUser',
|
||||||
meta: { title: '分配用户', activeMenu: '/system/role' }
|
meta: { title: '分配用户', activeMenu: '/system/role' }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,5 +15,6 @@ const getters = {
|
|||||||
topbarRouters:state => state.permission.topbarRouters,
|
topbarRouters:state => state.permission.topbarRouters,
|
||||||
defaultRoutes:state => state.permission.defaultRoutes,
|
defaultRoutes:state => state.permission.defaultRoutes,
|
||||||
sidebarRouters:state => state.permission.sidebarRouters,
|
sidebarRouters:state => state.permission.sidebarRouters,
|
||||||
|
userId:state => state.user.userId,
|
||||||
}
|
}
|
||||||
export default getters
|
export default getters
|
||||||
|
|||||||
@@ -126,6 +126,7 @@ export const loadView = (view) => {
|
|||||||
return (resolve) => require([`@/views/${view}`], resolve)
|
return (resolve) => require([`@/views/${view}`], resolve)
|
||||||
} else {
|
} else {
|
||||||
// 使用 import 实现生产环境的路由懒加载
|
// 使用 import 实现生产环境的路由懒加载
|
||||||
|
// return () => import(`@/views/${view}`)
|
||||||
return (resolve) => require([`@/views/${view}`], resolve)
|
return (resolve) => require([`@/views/${view}`], resolve)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,11 +6,15 @@ const user = {
|
|||||||
token: getToken(),
|
token: getToken(),
|
||||||
name: '',
|
name: '',
|
||||||
avatar: '',
|
avatar: '',
|
||||||
|
userId:null,
|
||||||
roles: [],
|
roles: [],
|
||||||
permissions: []
|
permissions: []
|
||||||
},
|
},
|
||||||
|
|
||||||
mutations: {
|
mutations: {
|
||||||
|
SET_USERID:(state,userId) => {
|
||||||
|
state.userId = userId
|
||||||
|
},
|
||||||
SET_TOKEN: (state, token) => {
|
SET_TOKEN: (state, token) => {
|
||||||
state.token = token
|
state.token = token
|
||||||
},
|
},
|
||||||
@@ -50,7 +54,6 @@ const user = {
|
|||||||
GetInfo({ commit, state }) {
|
GetInfo({ commit, state }) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
getInfo().then(res => {
|
getInfo().then(res => {
|
||||||
sessionStorage.setItem('caseStatus', JSON.stringify(res.caseStatus))
|
|
||||||
const user = res.user
|
const user = res.user
|
||||||
const avatar = (user.avatar == "" || user.avatar == null) ? require("@/assets/images/profile.jpg") : process.env.VUE_APP_BASE_API + user.avatar;
|
const avatar = (user.avatar == "" || user.avatar == null) ? require("@/assets/images/profile.jpg") : process.env.VUE_APP_BASE_API + user.avatar;
|
||||||
if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组
|
if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组
|
||||||
@@ -61,6 +64,7 @@ const user = {
|
|||||||
}
|
}
|
||||||
commit('SET_NAME', user.userName)
|
commit('SET_NAME', user.userName)
|
||||||
commit('SET_AVATAR', avatar)
|
commit('SET_AVATAR', avatar)
|
||||||
|
commit('SET_USERID',user.userId)
|
||||||
resolve(res)
|
resolve(res)
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
reject(error)
|
reject(error)
|
||||||
@@ -69,13 +73,14 @@ const user = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
// 退出系统
|
// 退出系统
|
||||||
LogOut({ commit, state }) {
|
LogOut({ commit, state, dispatch }) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
logout(state.token).then(() => {
|
logout(state.token).then(() => {
|
||||||
commit('SET_TOKEN', '')
|
commit('SET_TOKEN', '')
|
||||||
commit('SET_ROLES', [])
|
commit('SET_ROLES', [])
|
||||||
commit('SET_PERMISSIONS', [])
|
commit('SET_PERMISSIONS', [])
|
||||||
removeToken()
|
removeToken()
|
||||||
|
dispatch('tagsView/delAllViews', null, { root: true })
|
||||||
resolve()
|
resolve()
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
reject(error)
|
reject(error)
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ export function checkPermi(value) {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 角色权限校验
|
* 角色权限校验
|
||||||
* @param {Array} value 校验值
|
* @param {Array} value 校验值
|
||||||
@@ -62,27 +61,7 @@ export function statusRole(value) {
|
|||||||
if (caseStatus.length == 0) {
|
if (caseStatus.length == 0) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
// if (caseStatus.includes(value)) {
|
if (caseStatus.includes(value)) {
|
||||||
// // caseStatus.forEach(item => {
|
|
||||||
// // if (item == value) {
|
|
||||||
// // return true
|
|
||||||
// // }
|
|
||||||
// // });
|
|
||||||
// for(let i = 0;i < caseStatus.length;i++){
|
|
||||||
// if(caseStatus[i] == value){
|
|
||||||
// return true
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// } else {
|
|
||||||
// return false
|
|
||||||
// }
|
|
||||||
let flag = null;
|
|
||||||
for (let i = 0; i < caseStatus.length; i++) {
|
|
||||||
if (caseStatus[i] == value) {
|
|
||||||
flag = caseStatus[i]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (flag == value) {
|
|
||||||
return true
|
return true
|
||||||
} else {
|
} else {
|
||||||
return false
|
return false
|
||||||
|
|||||||
@@ -17,7 +17,8 @@ const service = axios.create({
|
|||||||
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
||||||
baseURL: process.env.VUE_APP_BASE_API,
|
baseURL: process.env.VUE_APP_BASE_API,
|
||||||
// 超时
|
// 超时
|
||||||
timeout: 10000
|
// timeout: 10000
|
||||||
|
timeout: 15000
|
||||||
})
|
})
|
||||||
|
|
||||||
// request拦截器
|
// request拦截器
|
||||||
@@ -36,10 +37,6 @@ service.interceptors.request.use(config => {
|
|||||||
config.params = {};
|
config.params = {};
|
||||||
config.url = url;
|
config.url = url;
|
||||||
}
|
}
|
||||||
if (config.url === '/caseApplication/mediation') {
|
|
||||||
// 调解时对于特定的请求设置超时时间为20秒
|
|
||||||
config.timeout = 20000; // 20秒
|
|
||||||
}
|
|
||||||
if (!isRepeatSubmit && (config.method === 'post' || config.method === 'put')) {
|
if (!isRepeatSubmit && (config.method === 'post' || config.method === 'put')) {
|
||||||
const requestObj = {
|
const requestObj = {
|
||||||
url: config.url,
|
url: config.url,
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
|
||||||
<el-form-item label="案件状态" prop="caseFlowId">
|
<el-form-item label="案件状态" prop="caseFlowId">
|
||||||
<el-select v-model="queryParams.caseFlowId" placeholder="请选择" clearable>
|
<el-select v-model="queryParams.caseFlowId" placeholder="请选择" clearable>
|
||||||
<el-option v-for="dict in caseStausArr" :key="dict.id" :label="dict.caseStatusName"
|
<el-option v-for="dict in caseStausArr" :key="dict.id" :label="dict.caseStatusName" :value="dict.id"
|
||||||
:value="dict.id" @keyup.enter.native="handleQuery"></el-option>
|
@keyup.enter.native="handleQuery"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- <el-form-item label="申请机构" prop="applicationOrganId">
|
<!-- <el-form-item label="申请机构" prop="applicationOrganId">
|
||||||
@@ -18,12 +18,13 @@
|
|||||||
@keyup.enter.native="handleQuery" />
|
@keyup.enter.native="handleQuery" />
|
||||||
</el-form-item> -->
|
</el-form-item> -->
|
||||||
<el-form-item label="案件编号" prop="caseNum">
|
<el-form-item label="案件编号" prop="caseNum">
|
||||||
<el-input v-model="queryParams.caseNum" placeholder="请输入案件编号" clearable style="width: 240px"
|
<el-input v-model="queryParams.caseNum" placeholder="请输入案件编号" :disabled='queryDisable' clearable
|
||||||
@keyup.enter.native="handleQuery" />
|
style="width: 240px" @keyup.enter.native="handleQuery" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="创建时间" prop="caseTime">
|
<el-form-item label="创建时间" prop="caseTime">
|
||||||
<el-date-picker v-model="caseTime" type="daterange" align="right" unlink-panels range-separator="至"
|
<el-date-picker v-model="caseTime" type="datetimerange" align="right" unlink-panels range-separator="至"
|
||||||
start-placeholder="开始日期" end-placeholder="结束日期" clearable style="width: 240px" @change="caseTimeChange">
|
start-placeholder="开始日期" end-placeholder="结束日期" clearable style="width: 240px" :default-time="['00:00:00', '23:59:59']"
|
||||||
|
@change="caseTimeChange">
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
@@ -33,7 +34,8 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
<el-row :gutter="10" class="mb8">
|
<el-row :gutter="10" class="mb8">
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="primary" plain icon="el-icon-plus" v-hasPermi="['caseManagement:list:add']" size="mini" @click="addCase()">新增案件</el-button>
|
<el-button type="primary" plain icon="el-icon-plus" v-hasPermi="['caseManagement:list:add']" size="mini"
|
||||||
|
@click="addCase()">新增案件</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<!-- TODO 后期可能加上-->
|
<!-- TODO 后期可能加上-->
|
||||||
<!-- <el-col :span="1.5">
|
<!-- <el-col :span="1.5">
|
||||||
@@ -45,8 +47,8 @@
|
|||||||
<el-table-column label="序号" type="index" align="center">
|
<el-table-column label="序号" type="index" align="center">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{
|
<span>{{
|
||||||
(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1
|
(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1
|
||||||
}}</span>
|
}}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- <el-table-column label="批号" align="center" prop="batchNumber" :show-overflow-tooltip="true" /> -->
|
<!-- <el-table-column label="批号" align="center" prop="batchNumber" :show-overflow-tooltip="true" /> -->
|
||||||
@@ -61,40 +63,41 @@
|
|||||||
<el-table-column label="创建时间" align="center" prop="createTime" :show-overflow-tooltip="true" />
|
<el-table-column label="创建时间" align="center" prop="createTime" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<!-- <el-button size="mini" type="text" icon="el-icon-check" @click="onsubmitRow(scope.row)" v-if="statusRole(scope.row.caseFlowId)">提交</el-button> -->
|
<el-button size="mini" @click="eidtNodeprocess(scope.row)" type="text" icon="el-icon-edit"
|
||||||
<el-button size="mini" @click="eidtNodeprocess(scope.row)" type="text"
|
v-hasPermi="['caseManagement:list:edit']" v-if="scope.row.caseFlowId <= 1">修改</el-button>
|
||||||
icon="el-icon-edit" v-hasPermi="['caseManagement:list:edit']" v-if="scope.row.caseFlowId <= 1">修改</el-button>
|
<el-button size="mini" @click="checkDetail(scope.row)" type="text"
|
||||||
<el-button size="mini" @click="checkDetail(scope.row)" type="text" icon="el-icon-view">查看详情</el-button>
|
icon="el-icon-view">查看详情</el-button>
|
||||||
<!-- <el-button size="mini" @click="consultantApplica(scope.row)" type="text" icon="el-icon-tickets">法律顾问用印申请</el-button> -->
|
<el-button size="mini" @click="caseFlow(scope.row)" type="text"
|
||||||
<!-- <el-button size="mini" @click="departmentApplica(scope.row)" type="text" icon="el-icon-edit-outline">部门长用印</el-button> -->
|
icon="el-icon-zoom-in">查看流程</el-button>
|
||||||
<el-button size="mini" @click="caseFlow(scope.row)" type="text" icon="el-icon-zoom-in">查看流程</el-button>
|
|
||||||
<el-button size="mini" @click="caseLog(scope.row)" type="text"
|
<el-button size="mini" @click="caseLog(scope.row)" type="text"
|
||||||
icon="el-icon-edit-outline">案件日志</el-button>
|
icon="el-icon-edit-outline">案件日志</el-button>
|
||||||
<!-- <el-button size="mini" @click="paymentconfirmationRow(scope.row)" type="text" icon="el-icon-zoom-in">缴费确认</el-button> -->
|
<el-button size="mini" @click="viewpaymentformRow(scope.row)" type="text" icon="el-icon-edit"
|
||||||
<!-- <el-button size="mini" @click="caseAccep(scope.row)" type="text" icon="el-icon-zoom-in">案件受理</el-button> -->
|
v-if="scope.row.caseFlowId > 2">查看缴费单</el-button>
|
||||||
<el-button size="mini" @click="viewpaymentformRow(scope.row)" type="text"
|
<el-button size="mini" type="text" icon="el-icon-edit" @click="evidenceUpload(scope.row)"
|
||||||
icon="el-icon-edit">查看缴费单</el-button>
|
v-hasPermi="['caseManagement:list:evidenceEdit']"
|
||||||
<!-- <el-button size="mini" @click="caseFiling(scope.row)" type="text" icon="el-icon-tickets">案件归档</el-button> -->
|
v-if="scope.row.caseFlowId <= 9">上传证据</el-button>
|
||||||
<!-- <el-button size="mini" @click="signMediation(scope.row)" type="text" icon="el-icon-edit-outline">申请人签收</el-button> -->
|
<el-button size="mini" v-if="scope.row.mediationFileFlag == 1"
|
||||||
<!-- <el-button size="mini" @click="receivedMediation(scope.row)" type="text" icon="el-icon-edit-outline">被申请人签收</el-button> -->
|
@click="mediationApplication(scope.row)" type="text" icon="el-icon-edit-outline">调解书</el-button>
|
||||||
<el-button size="mini" type="text" icon="el-icon-edit"
|
<el-button size="mini" type="text" icon="el-icon-edit" v-if="scope.row.caseFlowId == 15 ||
|
||||||
@click="evidenceUpload(scope.row)" v-hasPermi="['caseManagement:list:evidenceEdit']" v-if="scope.row.caseFlowId <= 9">上传证据</el-button>
|
scope.row.caseFlowId == 16 ||
|
||||||
<el-button size="mini" type="text" icon="el-icon-edit" v-if="scope.row.caseFlowId == 15 || scope.row.caseFlowId == 16 || scope.row.caseFlowId == 17" @click="caseFilingDetails(scope.row)">归档详情</el-button>
|
scope.row.caseFlowId == 17
|
||||||
<!-- <el-button size="mini" type="text" icon="el-icon-tickets" @click="payStatus(scope.row)">缴费</el-button> -->
|
" @click="caseFilingDetails(scope.row)">归档详情</el-button>
|
||||||
<!-- <el-button size="mini" type="text" icon="el-icon-tickets" @click="selectMediator(scope.row)">预约时间</el-button> -->
|
<div class="btnList" v-for="item in buttonList" :key="item.id">
|
||||||
<!-- <el-button size="mini" type="text" icon="el-icon-tickets" @click="secretaryConfirm(scope.row)">秘书审核</el-button> -->
|
<el-button size="mini" type="text" icon="el-icon-tickets" @click="caseClick(scope.row, item.id)"
|
||||||
<!-- <el-button size="mini" type="text" icon="el-icon-tickets" @click="department(scope.row)">部门长审核</el-button> -->
|
v-if="(item.id == scope.row.caseFlowId &&
|
||||||
<!-- <el-button size="mini" type="text" icon="el-icon-tickets" @click="timeConfirm(scope.row)">确认调解时间</el-button> -->
|
checkPermi([item.buttonAuthFlag]) &&
|
||||||
<el-button size="mini" type="text" icon="el-icon-tickets" v-for="(item) in buttonList" :key="item.id"
|
scope.row.signButtonFlag != 1) && (scope.row.appOperatorFlag == 1 || scope.row.resOperatorFlag == 1 || scope.row.otherFlag == 1 || scope.row.agentFlag == 1 || scope.row.mediatorFlag == 1)
|
||||||
@click="caseClick(scope.row,item.id)" v-if="item.id == scope.row.caseFlowId && checkPermi([item.buttonAuthFlag])">{{ item.nodeName }}</el-button>
|
">{{ item.nodeName }}</el-button>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
|
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
|
||||||
@pagination="getList(queryParams)" />
|
:limit.sync="queryParams.pageSize" @pagination="getList(queryParams)" />
|
||||||
<!-- 新增编辑详情 -->
|
<!-- 新增编辑详情 -->
|
||||||
<addCase :addVisable="addVisable" :queryParams="queryParams" @cancelCaseAdd="cancelCaseAdd" @getList="getList"
|
<addCase :addVisable="addVisable" :queryParams="queryParams" @cancelCaseAdd="cancelCaseAdd" @getList="getList"
|
||||||
:caseData="caseData" :caseDisabled="caseDisabled" :tabFlag="tabFlag" :addModifyData="addModifyData"></addCase>
|
:caseData="caseData" :caseDisabled="caseDisabled" :tabFlag="tabFlag" :addModifyData="addModifyData">
|
||||||
|
</addCase>
|
||||||
<!-- 压缩包导入 -->
|
<!-- 压缩包导入 -->
|
||||||
<caseCompressionPackage :openCompressedPackages="openCompressedPackages" :queryParams="queryParams"
|
<caseCompressionPackage :openCompressedPackages="openCompressedPackages" :queryParams="queryParams"
|
||||||
@cancelCompreess="cancelCompreess" :getList="getList">
|
@cancelCompreess="cancelCompreess" :getList="getList">
|
||||||
@@ -104,23 +107,28 @@
|
|||||||
:caseFlowNumber="caseFlowNumber">
|
:caseFlowNumber="caseFlowNumber">
|
||||||
</mediationCaseDetails>
|
</mediationCaseDetails>
|
||||||
<!-- 案件日志 -->
|
<!-- 案件日志 -->
|
||||||
<mediationCaseLog :showcaseLog="showcaseLog" @cancelcaseLog="cancelcaseLog" :caselogDataArr="caselogDataArr" :flagLoading="flagLoading"></mediationCaseLog>
|
<mediationCaseLog :showcaseLog="showcaseLog" @cancelcaseLog="cancelcaseLog" :caselogDataArr="caselogDataArr"
|
||||||
|
:flagLoading="flagLoading"></mediationCaseLog>
|
||||||
<!-- 证据修改 -->
|
<!-- 证据修改 -->
|
||||||
<evidenceDialog :evidenceVisable="evidenceVisable" @cancelEvidence="cancelEvidence" :evidenceData="evidenceData">
|
<evidenceDialog :evidenceVisable="evidenceVisable" @cancelEvidence="cancelEvidence"
|
||||||
|
:evidenceData="evidenceData">
|
||||||
</evidenceDialog>
|
</evidenceDialog>
|
||||||
<!-- 缴费 -->
|
<!-- 缴费 -->
|
||||||
<payDialog :openPay="openPay" :payTitle="payTitle" :formPayDetail="formPayDetail" :payId="payId" :payForm="payForm"
|
<payDialog :openPay="openPay" :payTitle="payTitle" :formPayDetail="formPayDetail" :payId="payId"
|
||||||
:queryParams="queryParams" @getList="getList" @paycancelRow="paycancelRow" :formPayDetailAffiliate="formPayDetailAffiliate"></payDialog>
|
:payForm="payForm" :queryParams="queryParams" @getList="getList" @paycancelRow="paycancelRow"
|
||||||
|
:formPayDetailAffiliate="formPayDetailAffiliate"></payDialog>
|
||||||
<!-- 缴费确认查看详情 -->
|
<!-- 缴费确认查看详情 -->
|
||||||
<paymentdetailsDialog :openDialog="openDialog" @cancelpaymentdetails="cancelpaymentdetails" :title="payTitle"
|
<paymentdetailsDialog :openDialog="openDialog" @cancelpaymentdetails="cancelpaymentdetails" :title="payTitle"
|
||||||
:detailform="detailform" :queryParams="queryParams" :flag="flag" :paymentConfirma="paymentConfirma" :isapplicant="isapplicant" @getList="getList">
|
:detailform="detailform" :queryParams="queryParams" :flag="flag" :paymentConfirma="paymentConfirma"
|
||||||
|
:isapplicant="isapplicant" @getList="getList">
|
||||||
</paymentdetailsDialog>
|
</paymentdetailsDialog>
|
||||||
<!-- 案件受理 -->
|
<!-- 案件受理 -->
|
||||||
<caseAcceptance :showAcceptance="showAcceptance" @cancelAcceptance="cancelAcceptance"
|
<caseAcceptance :showAcceptance="showAcceptance" @cancelAcceptance="cancelAcceptance"
|
||||||
:caseAcceptanceData="caseAcceptanceData" @getList="getList"></caseAcceptance>
|
:caseAcceptanceData="caseAcceptanceData" @getList="getList" :queryParams="queryParams"></caseAcceptance>
|
||||||
<!-- 被申请人缴费 -->
|
<!-- 被申请人缴费 -->
|
||||||
<respondentPay :openResPay="openResPay" :resPayTitle="resPayTitle" :formResPayDetail="formResPayDetail" :resPayId="resPayId" :resPayForm="resPayForm"
|
<respondentPay :openResPay="openResPay" :resPayTitle="resPayTitle" :formResPayDetail="formResPayDetail"
|
||||||
:queryParams="queryParams" @getList="getList" @paycancelRes="paycancelRes" :formResPay="formResPay"></respondentPay>
|
:resPayId="resPayId" :resPayForm="resPayForm" :queryParams="queryParams" @getList="getList"
|
||||||
|
@paycancelRes="paycancelRes" :formResPay="formResPay"></respondentPay>
|
||||||
<!-- 调解员弹窗 -->
|
<!-- 调解员弹窗 -->
|
||||||
<selectMediator @cancelMediator="cancelMediator" :mediatorVisable="mediatorVisable" :mediatorData="mediatorData"
|
<selectMediator @cancelMediator="cancelMediator" :mediatorVisable="mediatorVisable" :mediatorData="mediatorData"
|
||||||
@getList="getList" :queryParams="queryParams"></selectMediator>
|
@getList="getList" :queryParams="queryParams"></selectMediator>
|
||||||
@@ -135,35 +143,54 @@
|
|||||||
:timeConfirmData="timeConfirmData" @getList="getList" :queryParams="queryParams"></timeConfirm>
|
:timeConfirmData="timeConfirmData" @getList="getList" :queryParams="queryParams"></timeConfirm>
|
||||||
<!-- 待调解 -->
|
<!-- 待调解 -->
|
||||||
<mediation @cancelMediation="cancelMediation" :mediationVisable="mediationVisable"
|
<mediation @cancelMediation="cancelMediation" :mediationVisable="mediationVisable"
|
||||||
:mediationData="mediationData" @getList="getList" :queryParams="queryParams"></mediation>
|
:mediationData="mediationData" @getList="getList" :queryParams="queryParams" :applicant="applicant">
|
||||||
|
</mediation>
|
||||||
<confirmMediation @cancelConfirmTion="cancelConfirmTion" :confirmTionVisable="confirmTionVisable"
|
<confirmMediation @cancelConfirmTion="cancelConfirmTion" :confirmTionVisable="confirmTionVisable"
|
||||||
:confirmTionData="confirmTionData" @getList="getList" :queryParams="queryParams"></confirmMediation>
|
:confirmTionData="confirmTionData" @getList="getList" :queryParams="queryParams"></confirmMediation>
|
||||||
<!-- 归档详情 -->
|
<!-- 归档详情 -->
|
||||||
<caseFilingDetailsPage :showarchiveDetails="showarchiveDetails" :caseFilingData="caseFilingData" @cancelDetail="cancelDetail" :detailsAwardNum="detailsAwardNum" :flagLoadingS="flagLoadingS"></caseFilingDetailsPage>
|
<caseFilingDetailsPage :showarchiveDetails="showarchiveDetails" :caseFilingData="caseFilingData"
|
||||||
|
@cancelDetail="cancelDetail" :detailsAwardNum="detailsAwardNum" :flagLoadingS="flagLoadingS">
|
||||||
|
</caseFilingDetailsPage>
|
||||||
|
<!-- 调解申请书 -->
|
||||||
|
<mediationApplications :mediationAppVisable="mediationAppVisable" @cancelmediationApp="cancelmediationApp"
|
||||||
|
:mediationLise="mediationLise"></mediationApplications>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { caseApplicationList, caseApplicationSelectById,submitCaseApply,selectPaymentDetail,sealApply,selectSealUrl,listCaseLogRecord,msCaseFile,msCaseSign,listDeptApplied,msCaseSignUrlApplyPC} from '@/api/caseManagement/caseManagement.js'
|
import {
|
||||||
import { listDept } from '@/api/system/dept.js'
|
caseApplicationList,
|
||||||
import { queryCaseFlowInfo } from '@/api/caseprocessManagement/caseprocessManagement.js'
|
caseApplicationSelectById,
|
||||||
|
submitCaseApply,
|
||||||
|
selectPaymentDetail,
|
||||||
|
sealApply,
|
||||||
|
selectSealUrl,
|
||||||
|
listCaseLogRecord,
|
||||||
|
msCaseFile,
|
||||||
|
msCaseSign,
|
||||||
|
listDeptApplied,
|
||||||
|
msCaseSignUrlApplyPC,
|
||||||
|
} from "@/api/caseManagement/caseManagement.js";
|
||||||
|
import { listDept } from "@/api/system/dept.js";
|
||||||
|
import { queryCaseFlowInfo } from "@/api/caseprocessManagement/caseprocessManagement.js";
|
||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
import addCase from './components/addCase.vue'
|
import addCase from "./components/addCase.vue";
|
||||||
import evidenceDialog from './components/evidenceDialog.vue';
|
import evidenceDialog from "./components/evidenceDialog.vue";
|
||||||
import caseCompressionPackage from './components/caseCompressionPackage.vue';
|
import caseCompressionPackage from "./components/caseCompressionPackage.vue";
|
||||||
import mediationCaseDetails from './components/mediationCaseDetails.vue'
|
import mediationCaseDetails from "./components/mediationCaseDetails.vue";
|
||||||
import mediationCaseLog from './components/mediationCaseLog.vue'
|
import mediationCaseLog from "./components/mediationCaseLog.vue";
|
||||||
import payDialog from "./components/payDialog.vue";
|
import payDialog from "./components/payDialog.vue";
|
||||||
import respondentPay from "./components/respondentPay.vue"
|
import respondentPay from "./components/respondentPay.vue";
|
||||||
import paymentdetailsDialog from './components/paymentdetailsDialog.vue'
|
import paymentdetailsDialog from "./components/paymentdetailsDialog.vue";
|
||||||
import caseAcceptance from './components/caseAcceptance.vue'
|
import caseAcceptance from "./components/caseAcceptance.vue";
|
||||||
import selectMediator from './components/selectMediator.vue'
|
import selectMediator from "./components/selectMediator.vue";
|
||||||
import confirmMediator from './components/confirmMediator.vue'
|
import confirmMediator from "./components/confirmMediator.vue";
|
||||||
import departmentMediator from './components/departmentMediator.vue'
|
import departmentMediator from "./components/departmentMediator.vue";
|
||||||
import timeConfirm from './components/timeConfirm.vue'
|
import timeConfirm from "./components/timeConfirm.vue";
|
||||||
import mediation from './components/mediation.vue'
|
import mediation from "./components/mediation.vue";
|
||||||
import confirmMediation from './components/confirmMediation.vue'
|
import confirmMediation from "./components/confirmMediation.vue";
|
||||||
import caseFilingDetailsPage from './components/caseFilingDetailsPage.vue'
|
import caseFilingDetailsPage from "./components/caseFilingDetailsPage.vue";
|
||||||
|
import mediationApplications from "./components/mediationApplications.vue"
|
||||||
export default {
|
export default {
|
||||||
name: "caseList",
|
name: "caseList",
|
||||||
dicts: ["case_flow_node"],
|
dicts: ["case_flow_node"],
|
||||||
@@ -176,14 +203,15 @@ export default {
|
|||||||
payDialog,
|
payDialog,
|
||||||
paymentdetailsDialog,
|
paymentdetailsDialog,
|
||||||
caseAcceptance,
|
caseAcceptance,
|
||||||
selectMediator,//调解员弹窗
|
selectMediator, //调解员弹窗
|
||||||
confirmMediator,
|
confirmMediator,
|
||||||
departmentMediator,
|
departmentMediator,
|
||||||
timeConfirm,
|
timeConfirm,
|
||||||
mediation,
|
mediation,
|
||||||
confirmMediation,
|
confirmMediation,
|
||||||
caseFilingDetailsPage,
|
caseFilingDetailsPage,
|
||||||
respondentPay
|
respondentPay,
|
||||||
|
mediationApplications
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@@ -191,6 +219,7 @@ export default {
|
|||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
},
|
},
|
||||||
|
queryDisable: false,
|
||||||
// 遮罩层
|
// 遮罩层
|
||||||
loading: false,
|
loading: false,
|
||||||
// 总条数
|
// 总条数
|
||||||
@@ -200,143 +229,166 @@ export default {
|
|||||||
// 校验表单
|
// 校验表单
|
||||||
rules: {},
|
rules: {},
|
||||||
dataList: [],
|
dataList: [],
|
||||||
addVisable: false,//新增弹窗
|
addVisable: false, //新增弹窗
|
||||||
openPay: false, //缴费弹框
|
openPay: false, //缴费弹框
|
||||||
openResPay:false,//被申请人缴费弹窗
|
openResPay: false, //被申请人缴费弹窗
|
||||||
formPayDetail: {},
|
formPayDetail: {},
|
||||||
formResPayDetail:{},
|
formResPayDetail: {},
|
||||||
payId: null,
|
payId: null,
|
||||||
resPayId:null,
|
resPayId: null,
|
||||||
payForm: {},
|
payForm: {},
|
||||||
resPayForm:{},
|
resPayForm: {},
|
||||||
openCompressedPackages: false,//压缩包导入弹窗
|
openCompressedPackages: false, //压缩包导入弹窗
|
||||||
processVisable: false,//案件详情
|
processVisable: false, //案件详情
|
||||||
showcaseLog: false,//案件日志
|
showcaseLog: false, //案件日志
|
||||||
openDialog: false,//确认缴费和缴费详情
|
openDialog: false, //确认缴费和缴费详情
|
||||||
detailform: {}, //缴费详情数据
|
detailform: {}, //缴费详情数据
|
||||||
evidenceVisable: false,//证据修改弹窗
|
evidenceVisable: false, //证据修改弹窗
|
||||||
mediationVisable:false,//待调解弹窗
|
mediationVisable: false, //待调解弹窗
|
||||||
mediationData:{},
|
mediationAppVisable: false,//调解申请书
|
||||||
payTitle:"",//缴费标题
|
mediationLise: {},
|
||||||
resPayTitle:'',//被申请人缴费标题
|
mediationData: {},
|
||||||
paymentConfirma:{},//缴费确认
|
payTitle: "", //缴费标题
|
||||||
showAcceptance:false,//案件受理弹框
|
resPayTitle: "", //被申请人缴费标题
|
||||||
caseAcceptanceData:{},//案件受理数据
|
paymentConfirma: {}, //缴费确认
|
||||||
mediatorVisable:false,//选择调解员弹窗
|
showAcceptance: false, //案件受理弹框
|
||||||
timeVisable:false,//预约时间弹窗
|
caseAcceptanceData: {}, //案件受理数据
|
||||||
confirmVisable:false,//确认时间/调解员
|
mediatorVisable: false, //选择调解员弹窗
|
||||||
caseFlowNumber:{},//案件流程数据
|
timeVisable: false, //预约时间弹窗
|
||||||
caselogDataArr:[],//案件日志数据
|
confirmVisable: false, //确认时间/调解员
|
||||||
|
caseFlowNumber: {}, //案件流程数据
|
||||||
|
caselogDataArr: [], //案件日志数据
|
||||||
flagLoading: true, //案件日志弹框loading
|
flagLoading: true, //案件日志弹框loading
|
||||||
confirmTionVisable:false,//确认调解书弹窗
|
confirmTionVisable: false, //确认调解书弹窗
|
||||||
addModifyData:null,//新增修改传的参数
|
addModifyData: null, //新增修改传的参数
|
||||||
showarchiveDetails:false,//归档详情弹窗
|
showarchiveDetails: false, //归档详情弹窗
|
||||||
detailsAwardNum:{},
|
detailsAwardNum: {},
|
||||||
flagLoadingS: true,
|
flagLoadingS: true,
|
||||||
formPayDetailAffiliate:{},
|
formPayDetailAffiliate: {},
|
||||||
formResPay:{},
|
formResPay: {},
|
||||||
mediatorData:{},
|
mediatorData: {},
|
||||||
flag: null,
|
flag: null,
|
||||||
caseData: {},
|
caseData: {},
|
||||||
evidenceData: {},
|
evidenceData: {},
|
||||||
caseDisabled: false,
|
caseDisabled: false,
|
||||||
caseTime: '',
|
caseTime: "",
|
||||||
deptList: [],
|
deptList: [],
|
||||||
payTitle: '',
|
payTitle: "",
|
||||||
tabFlag: false,
|
tabFlag: false,
|
||||||
confirmData: {},
|
confirmData: {},
|
||||||
departmentVisable: false,
|
departmentVisable: false,
|
||||||
departmentData: {},
|
departmentData: {},
|
||||||
timeConfirmVisable: false,
|
timeConfirmVisable: false,
|
||||||
timeConfirmData: {},
|
timeConfirmData: {},
|
||||||
confirmTionData:{},
|
confirmTionData: {},
|
||||||
buttonList: [],
|
buttonList: [],
|
||||||
caseStausArr: [],//案件状态
|
caseStausArr: [], //案件状态
|
||||||
isapplicant: true, //判断角色申请人或非申请人
|
isapplicant: true, //判断角色申请人或非申请人
|
||||||
caseFilingData:{}
|
caseFilingData: {},
|
||||||
|
applicant: ""
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
// this.queryParams.caseNum = this.$route.query.caseNum;
|
||||||
|
this.$set(this.queryParams, "caseNum", this.$route.query.caseNum);
|
||||||
|
console.log(this.$route.query)
|
||||||
|
if (this.$route.query.token) {
|
||||||
|
this.queryDisable = true;
|
||||||
|
} else {
|
||||||
|
this.queryDisable = false;
|
||||||
|
}
|
||||||
|
// this.getList(this.queryParams);
|
||||||
|
this.listDeptFn();
|
||||||
|
// this.getButtonList()
|
||||||
|
queryCaseFlowInfo({
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 100000,
|
||||||
|
}).then((res) => {
|
||||||
|
res.rows.forEach((item) => {
|
||||||
|
if (item.id != 17) {
|
||||||
|
this.buttonList.push(item);
|
||||||
|
}
|
||||||
|
this.caseStausArr.push(item);
|
||||||
|
});
|
||||||
|
// if (this.$route.query.caseFlowId) {
|
||||||
|
// let querydata = Number(this.$route.query.caseFlowId);
|
||||||
|
// if (querydata > 0) {
|
||||||
|
// this.$set(this.queryParams, 'caseFlowId', querydata)
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// this.getList(this.queryParams);
|
||||||
|
});
|
||||||
|
if (this.$route.query.caseFlowId) {
|
||||||
|
let querydata = Number(this.$route.query.caseFlowId);
|
||||||
|
if (querydata > 0) {
|
||||||
|
this.$set(this.queryParams, 'caseFlowId', querydata)
|
||||||
|
}
|
||||||
|
}
|
||||||
this.getList(this.queryParams);
|
this.getList(this.queryParams);
|
||||||
this.listDeptFn()
|
|
||||||
this.getButtonList()
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/**所有按钮事件 */
|
/**所有按钮事件 */
|
||||||
caseClick(val,type){
|
caseClick(val, type) {
|
||||||
if(type == 1){
|
if (type == 1) {
|
||||||
// 提交案件
|
// 提交案件
|
||||||
this.onsubmitRow(val);
|
this.onsubmitRow(val);
|
||||||
}else if(type == 2){
|
} else if (type == 2) {
|
||||||
// 缴费
|
// 缴费
|
||||||
this.payStatus(val);
|
this.payStatus(val);
|
||||||
}else if(type == 3 || type == 45){
|
} else if (type == 3 || type == 45) {
|
||||||
// 确认缴费
|
// 确认缴费
|
||||||
this.paymentconfirmationRow(val,type);
|
this.paymentconfirmationRow(val, type);
|
||||||
}else if(type == 4){
|
} else if (type == 4) {
|
||||||
// 受理分配
|
// 受理分配
|
||||||
this.caseAccep(val);
|
this.caseAccep(val);
|
||||||
}else if(type == 5){
|
} else if (type == 5) {
|
||||||
// 选择调解员
|
// 选择调解员
|
||||||
this.selectMediator(val);
|
this.selectMediator(val);
|
||||||
}else if(type == 6){
|
} else if (type == 6) {
|
||||||
// 核实调解员
|
// 核实调解员
|
||||||
this.secretaryConfirm(val);
|
this.secretaryConfirm(val);
|
||||||
}else if(type == 7){
|
} else if (type == 7) {
|
||||||
// 确认调解员
|
// 确认调解员
|
||||||
this.department(val);
|
this.department(val);
|
||||||
}else if(type == 8){
|
} else if (type == 8) {
|
||||||
// 确定调解时间
|
// 确定调解时间
|
||||||
this.timeConfirm(val);
|
this.timeConfirm(val);
|
||||||
}else if(type == 9){
|
} else if (type == 9) {
|
||||||
// 调解
|
// 调解
|
||||||
this.mediationClick(val)
|
this.mediationClick(val);
|
||||||
}else if(type == 10){
|
} else if (type == 10) {
|
||||||
// 确认调解书
|
// 确认调解书
|
||||||
this.confirmMediation(val)
|
this.confirmMediation(val);
|
||||||
}else if(type == 11){
|
} else if (type == 11) {
|
||||||
// 签名
|
// 签名
|
||||||
this.msCaseSignUrlApplyPCFn(val)
|
this.msCaseSignUrlApplyPCFn(val);
|
||||||
}else if(type == 12){
|
} else if (type == 12) {
|
||||||
// 用印申请
|
// 用印申请
|
||||||
this.consultantApplica(val)
|
this.consultantApplica(val);
|
||||||
}else if(type == 13){
|
} else if (type == 13) {
|
||||||
// 用印
|
// 用印
|
||||||
this.departmentApplica(val)
|
this.departmentApplica(val);
|
||||||
}else if(type == 14){
|
} else if (type == 14) {
|
||||||
// 归档
|
// 归档
|
||||||
this.caseFiling(val);
|
this.caseFiling(val);
|
||||||
}else if(type == 15){
|
} else if (type == 15) {
|
||||||
// 申请人签收
|
// 申请人签收
|
||||||
this.signMediation(val)
|
this.signMediation(val);
|
||||||
}else if(type == 16){
|
} else if (type == 16) {
|
||||||
// 被申请人签收
|
// 被申请人签收
|
||||||
this.receivedMediation(val)
|
this.receivedMediation(val);
|
||||||
}else if(type == 17){
|
} else if (type == 17) {
|
||||||
//结束
|
//结束
|
||||||
}else if(type == 44){
|
} else if (type == 44) {
|
||||||
// 被申请人缴费
|
// 被申请人缴费
|
||||||
this.resPayStatus(val)
|
this.resPayStatus(val);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
/**查询按钮列表 */
|
/**查询按钮列表 */
|
||||||
getButtonList() {
|
getButtonList() { },
|
||||||
queryCaseFlowInfo({
|
|
||||||
pageNum: 1,
|
|
||||||
pageSize: 100000
|
|
||||||
}).then(res => {
|
|
||||||
console.log(res)
|
|
||||||
res.rows.forEach(item => {
|
|
||||||
if(item.id !=17){
|
|
||||||
this.buttonList.push(item)
|
|
||||||
}
|
|
||||||
this.caseStausArr.push(item)
|
|
||||||
});
|
|
||||||
})
|
|
||||||
},
|
|
||||||
/** 新增案件 */
|
/** 新增案件 */
|
||||||
addCase() {
|
addCase() {
|
||||||
this.addModifyData =1;
|
this.addModifyData = 1;
|
||||||
this.addVisable = true;
|
this.addVisable = true;
|
||||||
this.caseData = {};
|
this.caseData = {};
|
||||||
this.caseDisabled = false;
|
this.caseDisabled = false;
|
||||||
@@ -344,7 +396,7 @@ export default {
|
|||||||
},
|
},
|
||||||
/** 查看详情 */
|
/** 查看详情 */
|
||||||
checkDetail(val) {
|
checkDetail(val) {
|
||||||
this.addModifyData =2;
|
this.addModifyData = 2;
|
||||||
this.addVisable = true;
|
this.addVisable = true;
|
||||||
this.caseData = val;
|
this.caseData = val;
|
||||||
this.caseDisabled = true;
|
this.caseDisabled = true;
|
||||||
@@ -352,10 +404,10 @@ export default {
|
|||||||
},
|
},
|
||||||
/** 修改案件 */
|
/** 修改案件 */
|
||||||
eidtNodeprocess(row) {
|
eidtNodeprocess(row) {
|
||||||
this.addModifyData = 3
|
this.addModifyData = 3;
|
||||||
this.addVisable = true;
|
this.addVisable = true;
|
||||||
this.caseData = row;
|
this.caseData = row;
|
||||||
this.$set(this.caseData,'flag',2)
|
this.$set(this.caseData, "flag", 2);
|
||||||
this.caseDisabled = false;
|
this.caseDisabled = false;
|
||||||
this.tabFlag = false;
|
this.tabFlag = false;
|
||||||
},
|
},
|
||||||
@@ -402,10 +454,9 @@ export default {
|
|||||||
// this.$modal.msgSuccess("立案申请成功");
|
// this.$modal.msgSuccess("立案申请成功");
|
||||||
// })
|
// })
|
||||||
// .catch(() => { });
|
// .catch(() => { });
|
||||||
msCaseSignUrlApplyPC({ caseId: row.id }).then(res=>{
|
msCaseSignUrlApplyPC({ caseId: row.id }).then((res) => {
|
||||||
console.log(res,"PPPPPPPPPPPPPPPPPPPP");
|
|
||||||
window.open(res.data.sealUrl);
|
window.open(res.data.sealUrl);
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
/** 选择调解员 */
|
/** 选择调解员 */
|
||||||
selectMediator(val) {
|
selectMediator(val) {
|
||||||
@@ -417,12 +468,13 @@ export default {
|
|||||||
this.timeVisable = true;
|
this.timeVisable = true;
|
||||||
},
|
},
|
||||||
/** 调解 */
|
/** 调解 */
|
||||||
mediationClick(val){
|
mediationClick(val) {
|
||||||
this.mediationVisable = true;
|
this.mediationVisable = true;
|
||||||
this.mediationData = val;
|
this.mediationData = val;
|
||||||
|
this.applicant = val.applicationName;
|
||||||
},
|
},
|
||||||
/** 确认调解书 */
|
/** 确认调解书 */
|
||||||
confirmMediation(val){
|
confirmMediation(val) {
|
||||||
this.confirmTionVisable = true;
|
this.confirmTionVisable = true;
|
||||||
this.confirmTionData = val;
|
this.confirmTionData = val;
|
||||||
},
|
},
|
||||||
@@ -430,6 +482,12 @@ export default {
|
|||||||
caseApplicationSelectById(parms).then((res) => {
|
caseApplicationSelectById(parms).then((res) => {
|
||||||
this.formPayDetail = res.data;
|
this.formPayDetail = res.data;
|
||||||
this.formPayDetailAffiliate = res.data.affiliate;
|
this.formPayDetailAffiliate = res.data.affiliate;
|
||||||
|
let applicantStr = '';
|
||||||
|
let resStr = '';
|
||||||
|
applicantStr = this.formPayDetailAffiliate.applicant.map(item => item.applicant.name).join(',');
|
||||||
|
resStr = this.formPayDetailAffiliate.res.map(item => item.res.name).join(',');
|
||||||
|
this.formPayDetailAffiliate.applicationName = applicantStr;
|
||||||
|
this.formPayDetailAffiliate.respondentName = resStr;
|
||||||
this.payForm.feePayable = res.data.feePayable;
|
this.payForm.feePayable = res.data.feePayable;
|
||||||
this.payForm.caseId = res.data.id;
|
this.payForm.caseId = res.data.id;
|
||||||
});
|
});
|
||||||
@@ -438,6 +496,12 @@ export default {
|
|||||||
caseApplicationSelectById(parms).then((res) => {
|
caseApplicationSelectById(parms).then((res) => {
|
||||||
this.formResPayDetail = res.data;
|
this.formResPayDetail = res.data;
|
||||||
this.formResPay = res.data.affiliate;
|
this.formResPay = res.data.affiliate;
|
||||||
|
let applicantStr = '';
|
||||||
|
let resStr = '';
|
||||||
|
applicantStr = this.formResPay.applicant.map(item => item.applicant.name).join(',');
|
||||||
|
resStr = this.formResPay.res.map(item => item.res.name).join(',');
|
||||||
|
this.formResPay.applicationName = applicantStr;
|
||||||
|
this.formResPay.respondentName = resStr;
|
||||||
this.resPayForm.feePayable = res.data.feePayable;
|
this.resPayForm.feePayable = res.data.feePayable;
|
||||||
this.resPayForm.caseId = res.data.id;
|
this.resPayForm.caseId = res.data.id;
|
||||||
});
|
});
|
||||||
@@ -460,23 +524,22 @@ export default {
|
|||||||
/** 时间改变处理 */
|
/** 时间改变处理 */
|
||||||
caseTimeChange() {
|
caseTimeChange() {
|
||||||
if (this.caseTime) {
|
if (this.caseTime) {
|
||||||
this.queryParams.startTime = moment(
|
this.queryParams.startTime = moment(this.caseTime[0]).format(
|
||||||
this.caseTime[0]
|
"YYYY-MM-DD HH:mm:ss"
|
||||||
).format("YYYY-MM-DD HH:mm:ss");
|
);
|
||||||
this.queryParams.endTime = moment(
|
this.queryParams.endTime = moment(this.caseTime[1]).format(
|
||||||
this.caseTime[1]
|
"YYYY-MM-DD HH:mm:ss"
|
||||||
).format("YYYY-MM-DD HH:mm:ss");
|
);
|
||||||
} else {
|
} else {
|
||||||
this.queryParams.startTime = '';
|
this.queryParams.startTime = "";
|
||||||
this.queryParams.endTime = '';
|
this.queryParams.endTime = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
/** 获取所有部门 */
|
/** 获取所有部门 */
|
||||||
listDeptFn() {
|
listDeptFn() {
|
||||||
listDeptApplied().then(res => {
|
listDeptApplied().then((res) => {
|
||||||
this.deptList = res.data;
|
this.deptList = res.data;
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
/** 修改证据 */
|
/** 修改证据 */
|
||||||
evidenceUpload(row) {
|
evidenceUpload(row) {
|
||||||
@@ -512,14 +575,14 @@ export default {
|
|||||||
this.timeVisable = false;
|
this.timeVisable = false;
|
||||||
},
|
},
|
||||||
/**取消调解 */
|
/**取消调解 */
|
||||||
cancelMediation(){
|
cancelMediation() {
|
||||||
this.timeConfirmVisable = false;
|
this.timeConfirmVisable = false;
|
||||||
},
|
},
|
||||||
/** 取消确认调解弹窗 */
|
/** 取消确认调解弹窗 */
|
||||||
cancelConfirmTion(){
|
cancelConfirmTion() {
|
||||||
this.confirmTionVisable = false;
|
this.confirmTionVisable = false;
|
||||||
},
|
},
|
||||||
cancelMediation(){
|
cancelMediation() {
|
||||||
this.mediationVisable = false;
|
this.mediationVisable = false;
|
||||||
},
|
},
|
||||||
cancelConfirm() {
|
cancelConfirm() {
|
||||||
@@ -548,162 +611,209 @@ export default {
|
|||||||
this.dataList = response.rows;
|
this.dataList = response.rows;
|
||||||
this.total = response.total;
|
this.total = response.total;
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
// 法律顾问用印申请
|
// 法律顾问用印申请
|
||||||
consultantApplica(row) {
|
consultantApplica(row) {
|
||||||
let paramsValue = {
|
let paramsValue = {
|
||||||
caseId: row.id,
|
caseId: row.id,
|
||||||
batchNumber: "",
|
batchNumber: "",
|
||||||
caseFlowId: row.caseFlowId
|
caseFlowId: row.caseFlowId,
|
||||||
}
|
};
|
||||||
this.$modal.confirm("你确定要用印申请吗?").then((res) => {
|
this.$modal
|
||||||
sealApply(paramsValue).then(res => {
|
.confirm("你确定要用印申请吗?")
|
||||||
this.getList(this.queryParams);
|
.then((res) => {
|
||||||
this.$modal.msgSuccess("用印申请成功");
|
sealApply(paramsValue).then((res) => {
|
||||||
|
this.getList(this.queryParams);
|
||||||
|
this.$modal.msgSuccess("用印申请成功");
|
||||||
|
});
|
||||||
})
|
})
|
||||||
}).catch(() => {
|
.catch(() => { });
|
||||||
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
// 部门长用印申请
|
// 部门长用印申请
|
||||||
departmentApplica(row) {
|
departmentApplica(row) {
|
||||||
this.$modal.confirm("你确定要用印确认吗?").then((res) => {
|
this.$modal
|
||||||
let paramsValue = {
|
.confirm("你确定要用印确认吗?")
|
||||||
caseId: row.id
|
.then((res) => {
|
||||||
}
|
let paramsValue = {
|
||||||
selectSealUrl(paramsValue).then(res => {
|
caseId: row.id,
|
||||||
window.open(res.data.sealUrl)
|
};
|
||||||
this.$modal.confirm("你确认用印了吗?").then((res) => {
|
selectSealUrl(paramsValue).then((res) => {
|
||||||
this.getList(this.queryParams);
|
window.open(res.data.sealUrl);
|
||||||
}).catch(() => {
|
this.$modal
|
||||||
|
.confirm("你确认用印了吗?")
|
||||||
})
|
.then((res) => {
|
||||||
|
this.getList(this.queryParams);
|
||||||
|
})
|
||||||
|
.catch(() => { });
|
||||||
|
});
|
||||||
})
|
})
|
||||||
}).catch(() => {
|
.catch(() => { });
|
||||||
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
// 案件受理
|
// 案件受理
|
||||||
caseAccep(row) {
|
caseAccep(row) {
|
||||||
this.caseAcceptanceData = row
|
this.caseAcceptanceData = row;
|
||||||
this.showAcceptance = true
|
this.showAcceptance = true;
|
||||||
},
|
},
|
||||||
cancelAcceptance() {
|
cancelAcceptance() {
|
||||||
this.showAcceptance = false
|
this.showAcceptance = false;
|
||||||
},
|
},
|
||||||
// 缴费确认
|
// 缴费确认
|
||||||
paymentconfirmationRow(row,type) {
|
paymentconfirmationRow(row, type) {
|
||||||
this.paymentConfirma = row
|
this.paymentConfirma = row;
|
||||||
console.log(this.paymentConfirma)
|
console.log(this.paymentConfirma);
|
||||||
this.paymentDetails({
|
this.paymentDetails({
|
||||||
id: row.id
|
id: row.id,
|
||||||
})
|
});
|
||||||
this.openDialog = true
|
this.openDialog = true;
|
||||||
this.payTitle = "缴费确认"
|
this.payTitle = "缴费确认";
|
||||||
this.flag = 0;
|
this.flag = 0;
|
||||||
this.detailform = {}
|
this.detailform = {};
|
||||||
if (type == 3) {
|
if (type == 3) {
|
||||||
// 申请人
|
// 申请人
|
||||||
this.isapplicant = true
|
this.isapplicant = true;
|
||||||
}else {
|
} else {
|
||||||
this.isapplicant = false
|
this.isapplicant = false;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
cancelpaymentdetails() {
|
cancelpaymentdetails() {
|
||||||
this.openDialog = false
|
this.openDialog = false;
|
||||||
},
|
},
|
||||||
// 查看缴费确认
|
// 查看缴费确认
|
||||||
viewpaymentformRow(row) {
|
viewpaymentformRow(row) {
|
||||||
this.paymentDetails({
|
this.paymentDetails({
|
||||||
id: row.id
|
id: row.id,
|
||||||
})
|
});
|
||||||
this.payTitle = "缴费单详情"
|
this.payTitle = "缴费单详情";
|
||||||
this.flag = 1;
|
this.flag = 1;
|
||||||
this.detailform = {}
|
this.detailform = {};
|
||||||
this.openDialog = true
|
this.openDialog = true;
|
||||||
},
|
},
|
||||||
// 缴费详情
|
// 缴费详情
|
||||||
paymentDetails(val) {
|
paymentDetails(val) {
|
||||||
selectPaymentDetail(val).then(res => {
|
selectPaymentDetail(val).then((res) => {
|
||||||
this.detailform = res.data;
|
this.detailform = res.data;
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
//案件流程
|
//案件流程
|
||||||
caseFlow(row) {
|
caseFlow(row) {
|
||||||
this.caseFlowNumber = row
|
this.caseFlowNumber = row;
|
||||||
this.processVisable = true
|
this.processVisable = true;
|
||||||
},
|
},
|
||||||
cancelViewProcess() {
|
cancelViewProcess() {
|
||||||
this.processVisable = false
|
this.processVisable = false;
|
||||||
},
|
},
|
||||||
//案件日志
|
//案件日志
|
||||||
caseLog(row) {
|
caseLog(row) {
|
||||||
this.caseLogNumber = row
|
this.caseLogNumber = row;
|
||||||
this.showcaseLog = true
|
this.showcaseLog = true;
|
||||||
this.flagLoading = true;
|
this.flagLoading = true;
|
||||||
listCaseLogRecord({caseId:row.id}).then(res=>{
|
listCaseLogRecord({ caseId: row.id }).then((res) => {
|
||||||
this.caselogDataArr = res.data
|
this.caselogDataArr = res.data;
|
||||||
this.flagLoading = false;
|
this.flagLoading = false;
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
cancelcaseLog() {
|
cancelcaseLog() {
|
||||||
this.showcaseLog = false
|
this.showcaseLog = false;
|
||||||
},
|
},
|
||||||
// 案件送达
|
// 案件送达
|
||||||
caseFiling(row) {
|
caseFiling(row) {
|
||||||
console.log(row.id)
|
console.log(row.id);
|
||||||
let paramValues = {
|
let paramValues = {
|
||||||
ids:[row.id]
|
ids: [row.id],
|
||||||
}
|
};
|
||||||
this.$modal.confirm("你确定要案件送达吗?").then((res) => {
|
this.$confirm("你确定要案件送达吗?", "提示", {
|
||||||
msCaseFile(paramValues).then(res=>{
|
confirmButtonText: '确定',
|
||||||
this.$modal.msgSuccess("案件送达成功");
|
cancelButtonText: '取消',
|
||||||
this.getList(this.queryParams);
|
type: 'warning',
|
||||||
})
|
callback: () => { },
|
||||||
}).catch(() => {
|
beforeClose: (action, ctx, close) => {
|
||||||
|
if (action !== 'confirm') {
|
||||||
})
|
close();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ctx.confirmButtonLoading = true;
|
||||||
|
msCaseFile(paramValues).then((res) => {
|
||||||
|
this.$modal.msgSuccess("案件送达成功");
|
||||||
|
close();
|
||||||
|
this.getList(this.queryParams);
|
||||||
|
}).finally(() => {
|
||||||
|
ctx.confirmButtonLoading = false;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}).finally(() => { })
|
||||||
|
// .then((res) => {
|
||||||
|
// msCaseFile(paramValues).then((res) => {
|
||||||
|
// this.$modal.msgSuccess("案件送达成功");
|
||||||
|
// this.getList(this.queryParams);
|
||||||
|
// });
|
||||||
|
// })
|
||||||
|
// .catch(() => { });
|
||||||
},
|
},
|
||||||
//申请人签收调解书
|
//申请人签收调解书
|
||||||
signMediation(row) {
|
signMediation(row) {
|
||||||
this.$modal.confirm("你确定要签收调解书吗?").then((res) => {
|
this.$modal
|
||||||
this.signingMediationAgreement({caseId:row.id,isSignApply:1})
|
.confirm("你确定要签收调解书吗?")
|
||||||
}).catch(() => {
|
.then((res) => {
|
||||||
|
this.signingMediationAgreement({ caseId: row.id, isSignApply: 1 });
|
||||||
})
|
})
|
||||||
|
.catch(() => { });
|
||||||
},
|
},
|
||||||
//被申请人签收调解书
|
//被申请人签收调解书
|
||||||
receivedMediation(row) {
|
receivedMediation(row) {
|
||||||
this.$modal.confirm("你确定要签收调解书吗?").then((res) => {
|
this.$modal
|
||||||
this.signingMediationAgreement({caseId:row.id,isSignRespon:1})
|
.confirm("你确定要签收调解书吗?")
|
||||||
}).catch(() => {
|
.then((res) => {
|
||||||
|
this.signingMediationAgreement({ caseId: row.id, isSignRespon: 1 });
|
||||||
})
|
})
|
||||||
|
.catch(() => { });
|
||||||
},
|
},
|
||||||
// 申请人和被申请人签收调解书接口
|
// 申请人和被申请人签收调解书接口
|
||||||
signingMediationAgreement(val){
|
signingMediationAgreement(val) {
|
||||||
console.log(val)
|
console.log(val);
|
||||||
msCaseSign(val).then(res=>{
|
msCaseSign(val).then((res) => {
|
||||||
this.$modal.msgSuccess("签收成功");
|
this.$modal.msgSuccess("签收成功");
|
||||||
this.getList(this.queryParams);
|
this.getList(this.queryParams);
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
//归档详情
|
//归档详情
|
||||||
caseFilingDetails(val){
|
caseFilingDetails(val) {
|
||||||
this.showarchiveDetails = true;
|
this.showarchiveDetails = true;
|
||||||
this.caseFilingData = val;
|
this.caseFilingData = val;
|
||||||
let vals = {id:val.id}
|
let vals = { id: val.id };
|
||||||
caseApplicationSelectById(vals).then(res=>{
|
caseApplicationSelectById(vals).then((res) => {
|
||||||
this.detailsAwardNum = res.data
|
res.data.affiliate.applicant.forEach(item => {
|
||||||
console.log(this.detailsAwardNum)
|
if (!item.applicant) {
|
||||||
this.flagLoadingS = false
|
item.applicant = {}
|
||||||
})
|
}
|
||||||
|
if (!item.applicantAgent) {
|
||||||
|
item.applicantAgent = {}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
res.data.affiliate.res.forEach(item => {
|
||||||
|
if (!item.res) {
|
||||||
|
item.res = {}
|
||||||
|
}
|
||||||
|
if (!item.resAgent) {
|
||||||
|
item.resAgent = {}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.detailsAwardNum = res.data;
|
||||||
|
console.log(this.detailsAwardNum);
|
||||||
|
this.flagLoadingS = false;
|
||||||
|
});
|
||||||
},
|
},
|
||||||
cancelDetail(){
|
cancelDetail() {
|
||||||
this.showarchiveDetails = false
|
this.showarchiveDetails = false;
|
||||||
|
},
|
||||||
|
// 调解书
|
||||||
|
mediationApplication(row) {
|
||||||
|
this.mediationLise = row
|
||||||
|
this.mediationAppVisable = true
|
||||||
|
},
|
||||||
|
cancelmediationApp() {
|
||||||
|
this.mediationAppVisable = false
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -1,148 +1,154 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<!-- 案件受理 -->
|
<!-- 案件受理 -->
|
||||||
<el-dialog title="案件受理" :visible="showAcceptance" @close="cancel" :destroy-on-close="true" center>
|
<el-dialog title="案件受理" :visible="showAcceptance" @close="cancel" :destroy-on-close="true" center>
|
||||||
<el-form ref="courtReviewform" :model="courtReviewform">
|
<el-form ref="courtReviewform" :model="courtReviewform">
|
||||||
<el-form-item label="被申请人是否同意调解:">
|
<el-form-item label="被申请人是否同意调解:">
|
||||||
<el-radio-group v-model="courtReviewform.agreeFlag">
|
<el-radio-group v-model="courtReviewform.agreeFlag">
|
||||||
<el-radio :label="1">是</el-radio>
|
<el-radio :label="1">是</el-radio>
|
||||||
<el-radio :label="0">否</el-radio>
|
<el-radio :label="0">否</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="调解方式:" v-if="courtReviewform.agreeFlag == 1">
|
<el-form-item label="调解方式:" v-if="courtReviewform.agreeFlag == 1">
|
||||||
<el-radio-group v-model="courtReviewform.mediationMethod">
|
<el-radio-group v-model="courtReviewform.mediationMethod">
|
||||||
<el-radio :label="1">线上调解</el-radio>
|
<el-radio :label="1">线上调解</el-radio>
|
||||||
<el-radio :label="2">线下调解</el-radio>
|
<el-radio :label="2">线下调解</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="是否纸质送达:" v-if="courtReviewform.agreeFlag == 1">
|
<el-form-item label="是否纸质送达:" v-if="courtReviewform.agreeFlag == 1">
|
||||||
<el-radio-group v-model="courtReviewform.paperFlag">
|
<el-radio-group v-model="courtReviewform.paperFlag">
|
||||||
<el-radio :label="1">是</el-radio>
|
<el-radio :label="1">是</el-radio>
|
||||||
<el-radio :label="0">否</el-radio>
|
<el-radio :label="0">否</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- <el-form-item label="是否仲裁确认:" v-if="courtReviewform.agreeFlag == 1" >
|
<!-- <el-form-item label="是否仲裁确认:" v-if="courtReviewform.agreeFlag == 1" >
|
||||||
<el-radio-group v-model="courtReviewform.arbitrateConfirm">
|
<el-radio-group v-model="courtReviewform.arbitrateConfirm">
|
||||||
<el-radio :label="1">是</el-radio>
|
<el-radio :label="1">是</el-radio>
|
||||||
<el-radio :label="0">否</el-radio>
|
<el-radio :label="0">否</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item> -->
|
</el-form-item> -->
|
||||||
<el-form-item v-if="courtReviewform.agreeFlag == 0" label="拒绝理由:" prop="rejectReason" :rules="[
|
<el-form-item v-if="courtReviewform.agreeFlag == 0" label="拒绝理由:" prop="rejectReason" :rules="[
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: '拒绝理由不能为空',
|
message: '拒绝理由不能为空',
|
||||||
trigger: 'blur',
|
trigger: 'blur',
|
||||||
},
|
},
|
||||||
]">
|
]">
|
||||||
<el-input v-model="courtReviewform.rejectReason" type="textarea" :rows="8" />
|
<el-input v-model="courtReviewform.rejectReason" type="textarea" :rows="8" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
<el-button type="primary" @click="submitForm" class="endbutton"><span>确 定</span></el-button>
|
<el-button type="primary" @click="submitForm" class="endbutton"><span>确 定</span></el-button>
|
||||||
<el-button @click="cancel" class="endbutton1"><span> 取 消</span></el-button>
|
<el-button @click="cancel" class="endbutton1"><span> 取 消</span></el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { accept } from '@/api/caseManagement/caseManagement.js'
|
import { accept } from '@/api/caseManagement/caseManagement.js'
|
||||||
export default {
|
export default {
|
||||||
name: "caseAcceptance",
|
name: "caseAcceptance",
|
||||||
props: ["showAcceptance", "caseAcceptanceData", "getList", "queryParams"],
|
props: ["showAcceptance", "caseAcceptanceData", "getList", "queryParams"],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
courtReviewform: {
|
courtReviewform: {
|
||||||
mediationMethod: 2,
|
mediationMethod: 2,
|
||||||
paperFlag: 0,
|
paperFlag: 0,
|
||||||
arbitrateConfirm: 0,
|
arbitrateConfirm: 0,
|
||||||
agreeFlag: 1
|
agreeFlag: 1
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
showAcceptance(val) {
|
showAcceptance(val) {
|
||||||
if (val) {
|
if (val) {
|
||||||
console.log(this.caseAcceptanceData)
|
console.log(this.caseAcceptanceData);
|
||||||
}
|
this.courtReviewform = {
|
||||||
},
|
mediationMethod: 2,
|
||||||
},
|
paperFlag: 0,
|
||||||
methods: {
|
arbitrateConfirm: 0,
|
||||||
submitForm() {
|
agreeFlag: 1
|
||||||
this.$refs["courtReviewform"].validate((valid) => {
|
}
|
||||||
if (valid) {
|
}
|
||||||
let paramsdata = {
|
},
|
||||||
id: this.caseAcceptanceData.id,
|
},
|
||||||
caseFlowId: this.caseAcceptanceData.caseFlowId,
|
methods: {
|
||||||
batchNumber: ""
|
submitForm() {
|
||||||
}
|
this.$refs["courtReviewform"].validate((valid) => {
|
||||||
let mergeValue = Object.assign({}, this.courtReviewform, paramsdata)
|
if (valid) {
|
||||||
accept(mergeValue).then((res) => {
|
let paramsdata = {
|
||||||
this.$modal.msgSuccess("确认成功");
|
id: this.caseAcceptanceData.id,
|
||||||
this.$emit("getList", this.queryParams)
|
caseFlowId: this.caseAcceptanceData.caseFlowId,
|
||||||
this.cancel();
|
batchNumber: ""
|
||||||
})
|
}
|
||||||
.catch((err) => { });
|
let mergeValue = Object.assign({}, this.courtReviewform, paramsdata)
|
||||||
}
|
accept(mergeValue).then((res) => {
|
||||||
});
|
this.$modal.msgSuccess("确认成功");
|
||||||
},
|
this.$emit("getList", this.queryParams)
|
||||||
cancel() {
|
this.cancel();
|
||||||
this.$emit("cancelAcceptance");
|
})
|
||||||
},
|
.catch((err) => { });
|
||||||
},
|
}
|
||||||
};
|
});
|
||||||
</script>
|
},
|
||||||
|
cancel() {
|
||||||
<style lang="scss" scoped>
|
this.$emit("cancelAcceptance");
|
||||||
::v-deep .el-dialog {
|
},
|
||||||
background: #ffffff;
|
},
|
||||||
border-radius: 20px;
|
};
|
||||||
}
|
</script>
|
||||||
|
|
||||||
.el-form-item {
|
<style lang="scss" scoped>
|
||||||
margin-left: 10%;
|
::v-deep .el-dialog {
|
||||||
}
|
background: #ffffff;
|
||||||
|
border-radius: 20px;
|
||||||
.endbutton {
|
}
|
||||||
width: 124px;
|
|
||||||
height: 37px;
|
.el-form-item {
|
||||||
background: #0072ff;
|
margin-left: 10%;
|
||||||
border-radius: 19px;
|
}
|
||||||
|
|
||||||
span {
|
.endbutton {
|
||||||
width: 32px;
|
width: 124px;
|
||||||
height: 15px;
|
height: 37px;
|
||||||
font-size: 16px;
|
background: #0072ff;
|
||||||
font-family: Microsoft YaHei;
|
border-radius: 19px;
|
||||||
font-weight: 400;
|
|
||||||
color: #ffffff;
|
span {
|
||||||
// line-height: 48px;
|
width: 32px;
|
||||||
}
|
height: 15px;
|
||||||
}
|
font-size: 16px;
|
||||||
|
font-family: Microsoft YaHei;
|
||||||
.endbutton1 {
|
font-weight: 400;
|
||||||
width: 124px;
|
color: #ffffff;
|
||||||
height: 37px;
|
// line-height: 48px;
|
||||||
background: #ffffff;
|
}
|
||||||
border: 1px solid #d0d0d0;
|
}
|
||||||
border-radius: 19px;
|
|
||||||
|
.endbutton1 {
|
||||||
span {
|
width: 124px;
|
||||||
width: 31px;
|
height: 37px;
|
||||||
height: 13px;
|
background: #ffffff;
|
||||||
font-size: 16px;
|
border: 1px solid #d0d0d0;
|
||||||
font-family: Microsoft YaHei;
|
border-radius: 19px;
|
||||||
font-weight: 400;
|
|
||||||
color: #959595;
|
span {
|
||||||
// line-height: 48px;
|
width: 31px;
|
||||||
}
|
height: 13px;
|
||||||
}
|
font-size: 16px;
|
||||||
|
font-family: Microsoft YaHei;
|
||||||
.nowarbitrator {
|
font-weight: 400;
|
||||||
margin-left: 10%;
|
color: #959595;
|
||||||
}
|
// line-height: 48px;
|
||||||
|
}
|
||||||
::v-deep .el-form-item__error {
|
}
|
||||||
left: 90px;
|
|
||||||
}
|
.nowarbitrator {
|
||||||
|
margin-left: 10%;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-form-item__error {
|
||||||
|
left: 90px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -92,7 +92,7 @@ export default {
|
|||||||
if (val) {
|
if (val) {
|
||||||
this.mediatorArr = [];
|
this.mediatorArr = [];
|
||||||
this.selectReservationFn({ id: this.confirmData.id })
|
this.selectReservationFn({ id: this.confirmData.id })
|
||||||
listMediator().then(res => {
|
listMediator({caseAppliId:this.confirmData.id}).then(res => {
|
||||||
this.tableData = res.data;
|
this.tableData = res.data;
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,10 +3,12 @@
|
|||||||
<el-dialog title="部门长确认调解员" :visible="departmentVisable" v-if="departmentVisable" @close="cancel" center
|
<el-dialog title="部门长确认调解员" :visible="departmentVisable" v-if="departmentVisable" @close="cancel" center
|
||||||
:distroy-on-close="true">
|
:distroy-on-close="true">
|
||||||
<div>
|
<div>
|
||||||
<div v-if="tableDataFlag">
|
<!-- v-if="tableDataFlag" -->
|
||||||
|
<div>
|
||||||
<div style="margin-bottom: 20px;">选择调解员</div>
|
<div style="margin-bottom: 20px;">选择调解员</div>
|
||||||
</div>
|
</div>
|
||||||
<el-table v-if="tableDataFlag" ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%"
|
<!-- v-if="tableDataFlag" -->
|
||||||
|
<el-table ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%"
|
||||||
@selection-change="handleSelectionChange">
|
@selection-change="handleSelectionChange">
|
||||||
<el-table-column type="selection" width="55">
|
<el-table-column type="selection" width="55">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@@ -92,7 +94,7 @@ export default {
|
|||||||
if (val) {
|
if (val) {
|
||||||
this.mediatorArr = [];
|
this.mediatorArr = [];
|
||||||
this.selectReservationFn({ id: this.departmentData.id })
|
this.selectReservationFn({ id: this.departmentData.id })
|
||||||
listMediator().then(res => {
|
listMediator({caseAppliId:this.departmentData.id}).then(res => {
|
||||||
this.tableData = res.data;
|
this.tableData = res.data;
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -124,6 +126,7 @@ export default {
|
|||||||
},
|
},
|
||||||
/**提交选择结果*/
|
/**提交选择结果*/
|
||||||
async submitMediator() {
|
async submitMediator() {
|
||||||
|
console.log(this.multipleSelection,this.tableDataNow)
|
||||||
if (this.multipleSelection.length == 0 && this.tableDataNow.length > 0) {
|
if (this.multipleSelection.length == 0 && this.tableDataNow.length > 0) {
|
||||||
this.verifyMediatorFn({
|
this.verifyMediatorFn({
|
||||||
id: this.departmentData.id,
|
id: this.departmentData.id,
|
||||||
@@ -138,7 +141,15 @@ export default {
|
|||||||
mediatorId: this.multipleSelection[0].mediatorId,
|
mediatorId: this.multipleSelection[0].mediatorId,
|
||||||
mediatorName: this.multipleSelection[0].mediatorName,
|
mediatorName: this.multipleSelection[0].mediatorName,
|
||||||
})
|
})
|
||||||
} else if (this.multipleSelection.length > 1 && this.tableDataNow.length == 0) {
|
}else if(this.multipleSelection.length == 1){
|
||||||
|
this.verifyMediatorFn({
|
||||||
|
id: this.departmentData.id,
|
||||||
|
caseFlowId: this.departmentData.caseFlowId,
|
||||||
|
mediatorId: this.multipleSelection[0].mediatorId,
|
||||||
|
mediatorName: this.multipleSelection[0].mediatorName,
|
||||||
|
})
|
||||||
|
// && this.tableDataNow.length == 0
|
||||||
|
}else if (this.multipleSelection.length > 1) {
|
||||||
Message.error('最多选择一名调解员');
|
Message.error('最多选择一名调解员');
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<el-dialog :title="title" :visible="mediationVisable" @close="cancel" center :distroy-on-close="true" width="1000px">
|
<el-dialog :title="title" :visible="mediationVisable" @close="cancel" center :distroy-on-close="true"
|
||||||
|
width="1000px">
|
||||||
<el-form ref="form" :model="formData" label-width="180px">
|
<el-form ref="form" :model="formData" label-width="180px">
|
||||||
<div class="caseInfo">案件信息:</div>
|
<div class="caseInfo">案件信息:</div>
|
||||||
<el-divider></el-divider>
|
<el-divider></el-divider>
|
||||||
@@ -11,8 +12,8 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="申请人:" prop="affiliate.applicationName">
|
<el-form-item label="申请人:">
|
||||||
<el-input v-model="formData.affiliate.applicationName" :disabled="true" />
|
<el-input v-model="applicant" :disabled="true" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
@@ -21,15 +22,15 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="案件标的:" prop="caseSubjectAmount">
|
<!-- <el-form-item label="案件标的:" prop="caseSubjectAmount">
|
||||||
<el-input v-model="formData.caseSubjectAmount" placeholder="请输入案件标的" :disabled="true" />
|
<el-input v-model="formData.caseSubjectAmount" placeholder="请输入案件标的" :disabled="true" />
|
||||||
</el-form-item>
|
</el-form-item> -->
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<!-- <el-col :span="12">
|
||||||
<el-form-item label="调解费用:" prop="feePayable">
|
<el-form-item label="调解费用:" prop="feePayable">
|
||||||
<el-input v-model="formData.feePayable" placeholder="请输入仲裁费用" :disabled="true" />
|
<el-input v-model="formData.feePayable" placeholder="请输入仲裁费用" :disabled="true" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col> -->
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="调解员:" prop="mediatorName">
|
<el-form-item label="调解员:" prop="mediatorName">
|
||||||
<el-input v-model="formData.mediatorName" placeholder="请输入" :disabled="true" />
|
<el-input v-model="formData.mediatorName" placeholder="请输入" :disabled="true" />
|
||||||
@@ -40,13 +41,13 @@
|
|||||||
<el-form-item label="申请人案件证据:">
|
<el-form-item label="申请人案件证据:">
|
||||||
<div v-if="applicateArr.length == 0">申请人暂未提供证据!</div>
|
<div v-if="applicateArr.length == 0">申请人暂未提供证据!</div>
|
||||||
<div v-for="(item, index) in applicateArr" :key="index" v-if="item.annexType == 2">
|
<div v-for="(item, index) in applicateArr" :key="index" v-if="item.annexType == 2">
|
||||||
<a href="#" @click="toFile(item, index)" style="color: blue">{{ item.annexName }}</a>
|
<a href="#" @click="toFile2(item.annexPath)" style="color: blue">{{ item.annexName }}</a>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24" v-if="mediationType">
|
<el-col :span="24">
|
||||||
<el-form-item label="调解结果:">
|
<el-form-item label="调解结果:">
|
||||||
<el-radio-group v-model="mediaResult" :disabled="!isSecretaryRole" @change="resultsMediation">
|
<el-radio-group v-model="formData.mediaResult" :disabled="!selectRoido" @change="resultsMediation">
|
||||||
<el-radio :label="1">达成调解</el-radio>
|
<el-radio :label="1">达成调解</el-radio>
|
||||||
<el-radio :label="2">未达成调解</el-radio>
|
<el-radio :label="2">未达成调解</el-radio>
|
||||||
<el-radio :label="3">未达成调解但不在争议</el-radio>
|
<el-radio :label="3">未达成调解但不在争议</el-radio>
|
||||||
@@ -55,14 +56,14 @@
|
|||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<!-- <el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="是否和解" v-if="mediaResult==1">
|
<el-form-item label="是否用印申请" v-if="formData.mediaResult == 1 && mediationData.mediationMethod == '1'">
|
||||||
<el-radio-group v-model="isReconci">
|
<el-radio-group v-model="formData.sealFlag" :disabled="!selectRoido">
|
||||||
<el-radio :label="1">是</el-radio>
|
<el-radio :label="1">是</el-radio>
|
||||||
<el-radio :label="0">否</el-radio>
|
<el-radio :label="0">否</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col> -->
|
</el-col>
|
||||||
<!-- <el-col :span="24">
|
<!-- <el-col :span="24">
|
||||||
<el-form-item label="被申请人案件证据:">
|
<el-form-item label="被申请人案件证据:">
|
||||||
<div v-if="quiltArr.length == 0">被申请人暂未提供证据!</div>
|
<div v-if="quiltArr.length == 0">被申请人暂未提供证据!</div>
|
||||||
@@ -81,7 +82,7 @@
|
|||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="调解书:" v-if="recordArrMediate.length > 0">
|
<el-form-item label="调解书:" v-if="recordArrMediate.length > 0">
|
||||||
<div v-for="(item, index) in recordArrMediate" :key="index" style="color: blue">
|
<div v-for="(item, index) in recordArrMediate" :key="index" style="color: blue">
|
||||||
<a href="#" @click="toFileMediate(item.annexPath)">{{ item.annexName }}</a>
|
<a href="#" @click="toFileMediate(item.onlyOfficeFileId)">{{ item.annexName }}</a>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
@@ -98,29 +99,29 @@
|
|||||||
<!-- v-if="!mediationType" -->
|
<!-- v-if="!mediationType" -->
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="上传调解书">
|
<el-form-item label="上传调解书">
|
||||||
<el-upload class="upload-demo" accept=".png,.jpg,.doc,.docx,.txt,.pdf" ref="upload" :action="UploadUrl()"
|
<el-upload class="upload-demo" accept=".doc,.docx,.pdf" ref="upload" :action="UploadUrl()"
|
||||||
:headers="headers" :data="filedata" :on-preview="handlePreview" :on-remove="handleRemove" :limit="1"
|
:headers="headers" :data="filedata" :on-preview="handlePreview" :on-remove="handleRemove" :limit="2"
|
||||||
:on-change="beforeUpload" :on-success="handlSuccess" :file-list="fileList">
|
:on-change="beforeUpload" :on-success="handlSuccess" :file-list="fileList">
|
||||||
<el-button slot="trigger" size="small" :disabled="!isSecretaryRole" type="primary">选取文件</el-button>
|
<el-button slot="trigger" size="small" :disabled="!isSecretaryRole" type="primary">选取文件</el-button>
|
||||||
<!-- <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传到服务器</el-button> -->
|
<!-- <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传到服务器</el-button> -->
|
||||||
<div slot="tip" class="el-upload__tip">只能上传.jpg,png,.doc,docx,.txt,.pdf文件</div>
|
<div slot="tip" class="el-upload__tip">只能上传.doc,docx,pdf文件</div>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<!-- </el-form> -->
|
<!-- </el-form> -->
|
||||||
</el-form>
|
</el-form>
|
||||||
<el-button @click="openmeeting" type="primary" v-if="mediationType">{{ isSecretaryRole ? '发起会议' :
|
<el-button @click="openmeeting" type="primary" v-if="mediationType">{{ isSecretaryRole ? '发起会议' :
|
||||||
'进入会议' }}</el-button>
|
'进入会议' }}</el-button>
|
||||||
<!-- v-if="this.recordArr.length <= 0 && mediationData.mediationMethod == '1'" -->
|
|
||||||
<el-button @click="openArbitrationresults" type="primary"
|
<el-button @click="openArbitrationresults" type="primary"
|
||||||
v-if="this.recordArrMediate.length <= 0 && mediationData.mediationMethod == '1' && isSecretaryRole">确认会议结果</el-button>
|
v-if="this.recordArrMediate.length <= 0 && mediationData.mediationMethod == '1' && isSecretaryRole">确认会议结果</el-button>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
<el-button @click="cancel" class="endbutton1" round>
|
<el-button @click="cancel" class="endbutton1" round>
|
||||||
<span>取 消</span>
|
<span>取 消</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button v-if="isSecretaryRole" @click="submitMediation" :disabled="this.recordArrMediate.length <= 0 && mediationData.mediationMethod == '1'"
|
<el-button v-if="isSecretaryRole" :loading="loadingSubmit" @click="submitMediation"
|
||||||
|
:disabled="this.recordArrMediate.length <= 0 && mediationData.mediationMethod == '1' && isSecretaryRole"
|
||||||
class="endbutton1" type="primary" round>
|
class="endbutton1" type="primary" round>
|
||||||
<span>提 交</span>
|
提 交
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
@@ -139,9 +140,10 @@ import { getUserProfile } from "@/api/system/user";
|
|||||||
import { reserveConferenceList } from "@/api/metting/metting.js";
|
import { reserveConferenceList } from "@/api/metting/metting.js";
|
||||||
import { getToken } from "@/utils/auth";
|
import { getToken } from "@/utils/auth";
|
||||||
export default {
|
export default {
|
||||||
props: ["mediationVisable", "mediationData", "queryParams"],
|
props: ["mediationVisable", "mediationData", "queryParams", "applicant"],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
sealFlag: 1,
|
||||||
loanStartDate: "",
|
loanStartDate: "",
|
||||||
codes: null,
|
codes: null,
|
||||||
title: "线上调解",
|
title: "线上调解",
|
||||||
@@ -154,7 +156,9 @@ export default {
|
|||||||
mediaResult: 1,
|
mediaResult: 1,
|
||||||
// isReconci:0,
|
// isReconci:0,
|
||||||
formData: {
|
formData: {
|
||||||
affiliate: {}
|
affiliate: {},
|
||||||
|
mediaResult: 1,
|
||||||
|
sealFlag: 1,
|
||||||
},
|
},
|
||||||
user: "",
|
user: "",
|
||||||
userId: null,
|
userId: null,
|
||||||
@@ -165,14 +169,21 @@ export default {
|
|||||||
},
|
},
|
||||||
filedata: {
|
filedata: {
|
||||||
annexType: 7,
|
annexType: 7,
|
||||||
|
isMediaBook: 1,
|
||||||
|
caseId:null
|
||||||
},
|
},
|
||||||
fileList: [],
|
fileList: [],
|
||||||
attachList: [],
|
attachList: [],
|
||||||
isSecretaryRole: true,
|
isSecretaryRole: true,
|
||||||
|
loadingSubmit: false,
|
||||||
|
selectRoido: true
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
mediationVisable(val) {
|
mediationVisable(val) {
|
||||||
|
this.attachList = [];
|
||||||
|
this.formData.mediaResult = 1;
|
||||||
|
this.formData.sealFlag = 1;
|
||||||
this.recordArr = [];
|
this.recordArr = [];
|
||||||
this.recordArrMediate = [];
|
this.recordArrMediate = [];
|
||||||
if (this.mediationData.mediationMethod == "1") {
|
if (this.mediationData.mediationMethod == "1") {
|
||||||
@@ -181,6 +192,7 @@ export default {
|
|||||||
} else if (this.mediationData.mediationMethod == "2") {
|
} else if (this.mediationData.mediationMethod == "2") {
|
||||||
this.title = "线下调解";
|
this.title = "线下调解";
|
||||||
this.mediationType = false;
|
this.mediationType = false;
|
||||||
|
this.selectRoido = true
|
||||||
}
|
}
|
||||||
if (val) {
|
if (val) {
|
||||||
this.caseApplicationSelectByIdFn({
|
this.caseApplicationSelectByIdFn({
|
||||||
@@ -188,6 +200,11 @@ export default {
|
|||||||
});
|
});
|
||||||
this.getUser();
|
this.getUser();
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
recordArrMediate(val) {
|
||||||
|
if (val.length >= 1) {
|
||||||
|
this.selectRoido = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() { },
|
created() { },
|
||||||
@@ -195,32 +212,49 @@ export default {
|
|||||||
// 根据用户id查询是否为调解员
|
// 根据用户id查询是否为调解员
|
||||||
secretaryRoleByUserIdFn() {
|
secretaryRoleByUserIdFn() {
|
||||||
secretaryRoleByUserId({
|
secretaryRoleByUserId({
|
||||||
userId: this.userId
|
userId: this.userId,
|
||||||
|
caseId: this.mediationData.id
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
this.isSecretaryRole = res.data.isSecretaryRole;
|
this.isSecretaryRole = res.data.isSecretaryRole;
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
/**上传地址*/
|
/**上传地址*/
|
||||||
UploadUrl() {
|
UploadUrl() {
|
||||||
return window.location.origin + "/API/common/upload";
|
return window.location.origin + "/API/video/upload";
|
||||||
},
|
},
|
||||||
handlePreview(file) {
|
handlePreview(file) {
|
||||||
},
|
},
|
||||||
handleRemove(file, fileList) {
|
handleRemove(file, fileList) {
|
||||||
|
let updatedArray = this.attachList.filter(item => item.annexId != file.response.annexId);
|
||||||
|
this.attachList = updatedArray;
|
||||||
},
|
},
|
||||||
beforeUpload(flie, fileList) {
|
beforeUpload(flie, fileList) {
|
||||||
|
this.filedata.caseId = this.mediationData.id
|
||||||
|
|
||||||
this.fileList = fileList;
|
this.fileList = fileList;
|
||||||
},
|
},
|
||||||
handlSuccess(res, file) {
|
handlSuccess(res, file) {
|
||||||
|
const fileSuccess = [{ annexId: res.annexId, annexType: res.annexType,annexName:res.newFileName,annexPath:res.fileName,onlyOfficeFileId:res.onlyOfficeFileId}]
|
||||||
this.codes = res.code
|
this.codes = res.code
|
||||||
this.attachList = [{ annexId: res.annexId }];
|
this.attachList.push({ annexId: res.annexId, annexType: res.annexType });
|
||||||
|
this.recordArrMediate = fileSuccess;
|
||||||
// this.$set(this.mediationData, "attachList", {annexId:res.annexId});
|
// this.$set(this.mediationData, "attachList", {annexId:res.annexId});
|
||||||
},
|
},
|
||||||
/** 获取案件详情信息 */
|
/** 获取案件详情信息 */
|
||||||
caseApplicationSelectByIdFn(data) {
|
caseApplicationSelectByIdFn(data) {
|
||||||
caseApplicationSelectById(data).then(res => {
|
caseApplicationSelectById(data).then(res => {
|
||||||
this.formData = res.data;
|
if (res.data.mediaResult) {
|
||||||
|
this.formData = res.data;
|
||||||
|
} else {
|
||||||
|
this.formData = res.data;
|
||||||
|
this.formData.mediaResult = 1;
|
||||||
|
}
|
||||||
|
if (res.data.sealFlag == 1 || res.data.sealFlag == 0) {
|
||||||
|
this.formData = res.data;
|
||||||
|
} else {
|
||||||
|
this.formData = res.data;
|
||||||
|
this.formData.sealFlag = 1;
|
||||||
|
}
|
||||||
this.applicateArr = res.data.caseAttachList;
|
this.applicateArr = res.data.caseAttachList;
|
||||||
res.data.caseAttachList.forEach(item => {
|
res.data.caseAttachList.forEach(item => {
|
||||||
if (item.annexType == 6) {
|
if (item.annexType == 6) {
|
||||||
@@ -229,6 +263,7 @@ export default {
|
|||||||
this.recordArrMediate.push(item);
|
this.recordArrMediate.push(item);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
/** 获取用户信息 */
|
/** 获取用户信息 */
|
||||||
@@ -241,9 +276,10 @@ export default {
|
|||||||
},
|
},
|
||||||
/** 发起会议 */
|
/** 发起会议 */
|
||||||
openmeeting() {
|
openmeeting() {
|
||||||
|
this.mediationVisable = false
|
||||||
window.open(
|
window.open(
|
||||||
// `http://localhost:8080/#/home?name=${this.user}&id=${this.formData.id}&userId=${this.userId}&roomId=${this.formData.roomId}&type=tiaojie`
|
// `http://localhost:8080/#/home?name=${this.user}&id=${this.formData.id}&userId=${this.userId}&roomId=${this.formData.roomId}&type=tiaojie&token=${getToken()}`
|
||||||
`https://txroom.xayunmei.com/#/home?name=${this.user}&id=${this.formData.id}&userId=${this.userId}&roomId=${this.formData.roomId}&type=tiaojie`
|
`https://txroom.xayunmei.com/#/home?name=${this.user}&id=${this.formData.id}&userId=${this.userId}&roomId=${this.formData.roomId}&type=tiaojie&token=${getToken()}`
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
/**提交仲裁结果 */
|
/**提交仲裁结果 */
|
||||||
@@ -252,7 +288,6 @@ export default {
|
|||||||
caseApplicationSelectById({
|
caseApplicationSelectById({
|
||||||
id: this.mediationData.id
|
id: this.mediationData.id
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
console.log(res)
|
|
||||||
res.data.caseAttachList.forEach(item => {
|
res.data.caseAttachList.forEach(item => {
|
||||||
if (item.annexType == 6) {
|
if (item.annexType == 6) {
|
||||||
this.recordArr.push(item);
|
this.recordArr.push(item);
|
||||||
@@ -263,7 +298,8 @@ export default {
|
|||||||
id: this.mediationData.id,
|
id: this.mediationData.id,
|
||||||
caseFlowId: this.mediationData.caseFlowId,
|
caseFlowId: this.mediationData.caseFlowId,
|
||||||
batchNumber: "",
|
batchNumber: "",
|
||||||
mediaResult: this.mediaResult,
|
mediaResult: this.formData.mediaResult,
|
||||||
|
sealFlag: this.formData.sealFlag
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
caseApplicationSelectById({
|
caseApplicationSelectById({
|
||||||
id: this.mediationData.id
|
id: this.mediationData.id
|
||||||
@@ -275,14 +311,19 @@ export default {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
this.isSecretaryRole = false
|
// this.selectRoido = true;
|
||||||
},
|
},
|
||||||
/** 庭审笔录附件 */
|
/** 庭审笔录附件 */
|
||||||
toFile2(annexPath) {
|
toFile2(annexPath) {
|
||||||
window.open(window.location.origin + "/API" + annexPath, "_black");
|
window.open(window.location.origin + "/API" + annexPath, "_black");
|
||||||
},
|
},
|
||||||
toFileMediate(annexPath) {
|
toFileMediate(val) {
|
||||||
window.open(window.location.origin + "/API" + annexPath, "_black");
|
if (this.checkPermi(['caseManagement:list:editOffice'])) {
|
||||||
|
this.$router.push({ path: '/onlyoffice', query: { id: val, flag: 1 } })
|
||||||
|
} else {
|
||||||
|
this.$router.push({ path: '/onlyoffice', query: { id: val, flag: 0 } })
|
||||||
|
}
|
||||||
|
// window.open(window.location.origin + "/API" + annexPath, "_black");
|
||||||
},
|
},
|
||||||
/** 生成调解书 */
|
/** 生成调解书 */
|
||||||
mediationFn(data) {
|
mediationFn(data) {
|
||||||
@@ -290,45 +331,64 @@ export default {
|
|||||||
this.$modal.msgSuccess("成功");
|
this.$modal.msgSuccess("成功");
|
||||||
this.$emit("cancelMediation");
|
this.$emit("cancelMediation");
|
||||||
this.$emit("getList", this.queryParams);
|
this.$emit("getList", this.queryParams);
|
||||||
|
this.loadingSubmit = false;
|
||||||
|
}).catch(err => {
|
||||||
|
this.loadingSubmit = false;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
cancel() {
|
cancel() {
|
||||||
this.$emit("cancelMediation");
|
this.$emit("cancelMediation");
|
||||||
},
|
},
|
||||||
|
|
||||||
submitMediation: _.debounce(function() {
|
submitMediation() {
|
||||||
if (this.fileList.length < 1 && !this.mediationType && this.mediationData.mediationMethod == "2") {
|
if (this.fileList.length < 1 && !this.mediationType && this.mediationData.mediationMethod == "2") {
|
||||||
this.$modal.msgError("请上传调解书");
|
this.$modal.msgError("请上传调解书");
|
||||||
return
|
return
|
||||||
|
} else {
|
||||||
|
this.loadingSubmit = true;
|
||||||
}
|
}
|
||||||
let mediationVal = {}
|
let mediationVal = {}
|
||||||
|
|
||||||
if (this.codes == 200) {
|
if (this.codes == 200) {
|
||||||
|
if (this.formData.mediaResult != 1) {
|
||||||
|
this.sealFlag = 0
|
||||||
|
}
|
||||||
mediationVal = {
|
mediationVal = {
|
||||||
id: this.mediationData.id,
|
id: this.mediationData.id,
|
||||||
caseFlowId: this.mediationData.caseFlowId,
|
caseFlowId: this.mediationData.caseFlowId,
|
||||||
attachList: this.attachList,
|
attachList: this.attachList,
|
||||||
// isReconci:this.isReconci,
|
mediaResult: this.formData.mediaResult,
|
||||||
mediaResult: this.mediaResult,
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
if (this.formData.mediaResult != 1) {
|
||||||
|
this.sealFlag = 0
|
||||||
|
}
|
||||||
mediationVal = {
|
mediationVal = {
|
||||||
id: this.mediationData.id,
|
id: this.mediationData.id,
|
||||||
caseFlowId: this.mediationData.caseFlowId,
|
caseFlowId: this.mediationData.caseFlowId,
|
||||||
mediaResult: this.mediaResult,
|
sealFlag: this.sealFlag,
|
||||||
|
attachList: this.attachList,
|
||||||
|
mediaResult: this.formData.mediaResult,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
console.log(mediationVal)
|
||||||
this.mediationFn(mediationVal);
|
this.mediationFn(mediationVal);
|
||||||
},5000),
|
},
|
||||||
resultsMediation() {
|
resultsMediation() {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.steps {
|
.steps {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
::v-deep .el-input--medium .el-input__inner {
|
||||||
|
height: 40px;
|
||||||
|
line-height: 40px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -0,0 +1,131 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<el-dialog title="调解书" :visible="mediationAppVisable" width="500px" @close="cancel" center
|
||||||
|
:distroy-on-close="true">
|
||||||
|
<div>
|
||||||
|
<div>
|
||||||
|
<span style="font-weight: bold;">下载调解书</span>
|
||||||
|
</div>
|
||||||
|
<div style="margin-top: 10px;">
|
||||||
|
<div style="color: blue; cursor: pointer" v-for="(item, index) in getFileListV"
|
||||||
|
v-if="item.annexType == 7 || item.annexType == 13" @click="downloadApplic(item.annexPath)">{{
|
||||||
|
item.annexName }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style="margin-top: 30px;">
|
||||||
|
<div>
|
||||||
|
<span style="font-weight: bold;">上传调解书</span>
|
||||||
|
</div>
|
||||||
|
<div style="margin-top: 10px;">
|
||||||
|
<el-upload class="upload-demo" accept=".doc,.docx,.pdf" ref="upload" :action="UploadUrl()"
|
||||||
|
:headers="headers" :data="filedata" :on-preview="handlePreview" :on-remove="handleRemove"
|
||||||
|
:auto-upload="false" :limit="1" :on-change="beforeUpload" :on-success="handlSuccess"
|
||||||
|
:file-list="fileList">
|
||||||
|
<el-button slot="trigger" size="small" type="primary">选取文件</el-button>
|
||||||
|
<div slot="tip" class="el-upload__tip">只能上传.doc,docx,pdf文件</div>
|
||||||
|
</el-upload>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="cancel" class="endbutton1" round><span>取 消</span></el-button>
|
||||||
|
<el-button @click="submitMediator" class="endbutton1" type="primary" round><span>确 认</span></el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { getFileList, meetingUpload } from "@/api/caseManagement/caseManagement.js"
|
||||||
|
import { createRoomId } from '@/api/metting/metting.js'
|
||||||
|
import { getToken } from "@/utils/auth";
|
||||||
|
import moment from "moment";
|
||||||
|
export default {
|
||||||
|
props: ["mediationAppVisable", "mediationLise", "queryParams"],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
getFileListV: [],
|
||||||
|
fileURL: window.location.origin + "/API",
|
||||||
|
fileList: [],
|
||||||
|
headers: {
|
||||||
|
Authorization: "Bearer " + getToken(),
|
||||||
|
},
|
||||||
|
filedata: {
|
||||||
|
isMediaBook:1,
|
||||||
|
annexType: null,
|
||||||
|
caseId: null
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
mediationAppVisable(val) {
|
||||||
|
this.fileList = []
|
||||||
|
if (val) {
|
||||||
|
let dataValue = {
|
||||||
|
caseAppliId: this.mediationLise.id,
|
||||||
|
}
|
||||||
|
console.log(dataValue)
|
||||||
|
this.getFileListFn(dataValue)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
/**上传地址*/
|
||||||
|
UploadUrl() {
|
||||||
|
return window.location.origin + "/API/video/upload";
|
||||||
|
},
|
||||||
|
handlePreview(file) {
|
||||||
|
},
|
||||||
|
handleRemove(file, fileList) {
|
||||||
|
|
||||||
|
},
|
||||||
|
beforeUpload(flie, fileList) {
|
||||||
|
function getFileExtension(filename) {
|
||||||
|
const parts = filename.split('.');
|
||||||
|
return parts.length > 1 ? parts.pop() : '';
|
||||||
|
}
|
||||||
|
const extension = getFileExtension(flie.name);
|
||||||
|
if (extension == 'docx' || extension == 'doc') {
|
||||||
|
this.filedata.annexType = 7
|
||||||
|
} else if (extension == 'pdf') {
|
||||||
|
this.filedata.annexType = 7
|
||||||
|
}
|
||||||
|
this.filedata.caseId = this.mediationLise.id
|
||||||
|
this.fileList = fileList;
|
||||||
|
const isLt2M = flie.size / 1024 / 1024 < 50; // 小于50MB
|
||||||
|
if (!isLt2M) {
|
||||||
|
this.$message.error('上传的文件大小不能超过 50MB!');
|
||||||
|
}
|
||||||
|
return isLt2M;
|
||||||
|
},
|
||||||
|
handlSuccess(res, file) {
|
||||||
|
if (res.code == 200) {
|
||||||
|
this.$modal.msgSuccess("上传成功");
|
||||||
|
this.$emit("cancelmediationApp");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
cancel() {
|
||||||
|
this.$emit("cancelmediationApp");
|
||||||
|
},
|
||||||
|
// 获取申请书附件
|
||||||
|
async getFileListFn(vals) {
|
||||||
|
await getFileList(vals).then(res => {
|
||||||
|
this.getFileListV = res.data
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 下载申请书
|
||||||
|
downloadApplic(val) {
|
||||||
|
window.open(this.fileURL + val);
|
||||||
|
},
|
||||||
|
/**提交选择结果*/
|
||||||
|
async submitMediator() {
|
||||||
|
this.$refs.upload.submit()
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped></style>
|
||||||
@@ -1,93 +1,93 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<el-dialog title="案件流程" :visible="processVisable" @close="cancel" center :distroy-on-close="true">
|
<el-dialog title="案件流程" :visible="processVisable" @close="cancel" center :distroy-on-close="true">
|
||||||
<div class="loading" v-if="flagLoading">
|
<div class="loading" v-if="flagLoading">
|
||||||
<i class="el-icon-loading"></i>
|
<i class="el-icon-loading"></i>
|
||||||
</div>
|
</div>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<el-steps class="steps" :active="finishCasenode.length">
|
<el-steps class="steps" :active="finishCasenode.length">
|
||||||
<el-step :title="item.content" :description="(item.createNickName || '') + (item.caseNodeTime || '')+(item.nextRoleName || '')" v-for="(item,index) in stepNumber" :key="index"></el-step>
|
<el-step :title="item.content" :description="(item.createNickName || '') + (item.caseNodeTime || '')+(item.nextRoleName || '')" v-for="(item,index) in stepNumber" :key="index"></el-step>
|
||||||
</el-steps>
|
</el-steps>
|
||||||
</div>
|
</div>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
<el-button @click="cancel" class="endbutton1"><span>取 消</span></el-button>
|
<el-button @click="cancel" class="endbutton1"><span>取 消</span></el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {selectCaseProgress} from '@/api/caseManagement/caseManagement.js'
|
import {selectCaseProgress} from '@/api/caseManagement/caseManagement.js'
|
||||||
export default {
|
export default {
|
||||||
props: ["processVisable","processData","caseFlowNumber"],
|
props: ["processVisable","processData","caseFlowNumber"],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
processId:null,
|
processId:null,
|
||||||
pageData:{},
|
pageData:{},
|
||||||
caseStatus:0,
|
caseStatus:0,
|
||||||
finishCasenode:[],
|
finishCasenode:[],
|
||||||
stepNumber:[],
|
stepNumber:[],
|
||||||
flagLoading:true
|
flagLoading:true
|
||||||
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
processVisable(val){
|
processVisable(val){
|
||||||
if(val){
|
if(val){
|
||||||
this.processId = this.caseFlowNumber.id;
|
this.processId = this.caseFlowNumber.id;
|
||||||
this.selectCaseProgressFn({caseId:this.processId});
|
this.selectCaseProgressFn({caseId:this.processId});
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
cancel() {
|
cancel() {
|
||||||
this.$emit("cancelViewProcess");
|
this.$emit("cancelViewProcess");
|
||||||
},
|
},
|
||||||
selectCaseProgressFn(data){
|
selectCaseProgressFn(data){
|
||||||
selectCaseProgress(data).then(res=>{
|
selectCaseProgress(data).then(res=>{
|
||||||
let finishCasenode = res.data.data.finishCasenode;;
|
let finishCasenode = res.data.data.finishCasenode;;
|
||||||
this.finishCasenode = finishCasenode;
|
this.finishCasenode = finishCasenode;
|
||||||
let inCasenode = res.data.data.inCasenode;
|
let inCasenode = res.data.data.inCasenode;
|
||||||
let nextCasenode = res.data.data.nextCasenode;
|
let nextCasenode = res.data.data.nextCasenode;
|
||||||
this.stepNumber= [...finishCasenode,...inCasenode,...nextCasenode];
|
this.stepNumber= [...finishCasenode,...inCasenode,...nextCasenode];
|
||||||
this.flagLoading =false
|
this.flagLoading =false
|
||||||
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.steps{
|
.steps{
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
}
|
}
|
||||||
::v-deep .el-step{
|
::v-deep .el-step{
|
||||||
// width: 150px;
|
// width: 150px;
|
||||||
flex-basis:25% !important;
|
flex-basis:25% !important;
|
||||||
margin-right: 20px;
|
margin-right: 20px;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
::v-deep .el-dialog__body {
|
::v-deep .el-dialog__body {
|
||||||
height: 500px !important;
|
height: 500px !important;
|
||||||
overflow: auto !important;
|
overflow: auto !important;
|
||||||
}
|
}
|
||||||
::v-deep .el-dialog {
|
::v-deep .el-dialog {
|
||||||
width: 800px;
|
width: 800px;
|
||||||
background: #ffffff;
|
background: #ffffff;
|
||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
}
|
}
|
||||||
.loading {
|
.loading {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
.el-icon-loading {
|
.el-icon-loading {
|
||||||
font-size: 50px;
|
font-size: 50px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -1,113 +1,113 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<el-dialog
|
<el-dialog
|
||||||
title="案件日志"
|
title="案件日志"
|
||||||
:visible="showcaseLog"
|
:visible="showcaseLog"
|
||||||
@close="cancel"
|
@close="cancel"
|
||||||
center
|
center
|
||||||
:distroy-on-close="true"
|
:distroy-on-close="true"
|
||||||
>
|
>
|
||||||
<div class="loading" v-if="flagLoading">
|
<div class="loading" v-if="flagLoading">
|
||||||
<i class="el-icon-loading"></i>
|
<i class="el-icon-loading"></i>
|
||||||
</div>
|
</div>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<div class="noData" v-if="noData">暂无数据!</div>
|
<div class="noData" v-if="noData">暂无数据!</div>
|
||||||
<el-timeline v-else>
|
<el-timeline v-else>
|
||||||
<el-timeline-item
|
<el-timeline-item
|
||||||
v-for="(activity, index) in activities"
|
v-for="(activity, index) in activities"
|
||||||
:key="index"
|
:key="index"
|
||||||
:timestamp="(index + 1).toString()"
|
:timestamp="(index + 1).toString()"
|
||||||
placement="top"
|
placement="top"
|
||||||
>
|
>
|
||||||
<p>{{ activity.content }}</p>
|
<p>{{ activity.content }}</p>
|
||||||
</el-timeline-item>
|
</el-timeline-item>
|
||||||
</el-timeline>
|
</el-timeline>
|
||||||
</div>
|
</div>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
<el-button @click="cancel" class="endbutton1"
|
<el-button @click="cancel" class="endbutton1"
|
||||||
><span>取 消</span></el-button
|
><span>取 消</span></el-button
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
props: ["showcaseLog", "flagLoading", "caselogDataArr"],
|
props: ["showcaseLog", "flagLoading", "caselogDataArr"],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
reverse: true,
|
reverse: true,
|
||||||
activities: [],
|
activities: [],
|
||||||
noData: false,
|
noData: false,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
caselogDataArr: {
|
caselogDataArr: {
|
||||||
handler(val) {
|
handler(val) {
|
||||||
if (val && val.length > 0) {
|
if (val && val.length > 0) {
|
||||||
this.noData = false;
|
this.noData = false;
|
||||||
this.activities = val;
|
this.activities = val;
|
||||||
this.activities.forEach((item) => {
|
this.activities.forEach((item) => {
|
||||||
item.content = item.content;
|
item.content = item.content;
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
this.noData = true;
|
this.noData = true;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
cancel() {
|
cancel() {
|
||||||
this.$emit("cancelcaseLog");
|
this.$emit("cancelcaseLog");
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
::v-deep .el-dialog__body {
|
::v-deep .el-dialog__body {
|
||||||
height: 500px !important;
|
height: 500px !important;
|
||||||
overflow: auto !important;
|
overflow: auto !important;
|
||||||
}
|
}
|
||||||
::v-deep .el-dialog {
|
::v-deep .el-dialog {
|
||||||
width: 800px;
|
width: 800px;
|
||||||
background: #ffffff;
|
background: #ffffff;
|
||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
}
|
}
|
||||||
.endbutton1 {
|
.endbutton1 {
|
||||||
width: 154px;
|
width: 154px;
|
||||||
height: 37px;
|
height: 37px;
|
||||||
background: #ffffff;
|
background: #ffffff;
|
||||||
border: 1px solid #d0d0d0;
|
border: 1px solid #d0d0d0;
|
||||||
border-radius: 19px;
|
border-radius: 19px;
|
||||||
span {
|
span {
|
||||||
width: 31px;
|
width: 31px;
|
||||||
height: 13px;
|
height: 13px;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-family: Microsoft YaHei;
|
font-family: Microsoft YaHei;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
color: #959595;
|
color: #959595;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.loading {
|
.loading {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
.el-icon-loading {
|
.el-icon-loading {
|
||||||
font-size: 50px;
|
font-size: 50px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.noData {
|
.noData {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 400px;
|
height: 400px;
|
||||||
font-size: 30px;
|
font-size: 30px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
color: #959595;
|
color: #959595;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -23,11 +23,11 @@
|
|||||||
{{ formPayDetail.caseStatusName }}
|
{{ formPayDetail.caseStatusName }}
|
||||||
</el-tag>
|
</el-tag>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="驳回原因" v-if="formPayDetail.reason">
|
<!-- <el-descriptions-item label="驳回原因" v-if="formPayDetail.reason">
|
||||||
<el-tag size="mini" type='danger' effect="dark">
|
<el-tag size="mini" type='danger' effect="dark">
|
||||||
{{ formPayDetail.reason }}
|
{{ formPayDetail.reason }}
|
||||||
</el-tag>
|
</el-tag>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item> -->
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
<div class="paySelectType">
|
<div class="paySelectType">
|
||||||
<el-radio-group v-model="paySelect" @input="changPayType">
|
<el-radio-group v-model="paySelect" @input="changPayType">
|
||||||
@@ -56,9 +56,13 @@
|
|||||||
<div id="qrcodeImg"></div>
|
<div id="qrcodeImg"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="payTitle">{{ payMain }}</div>
|
<div class="payTitle">{{ payMain }}</div>
|
||||||
|
<div v-if="formPayDetail.reason">
|
||||||
|
<span>驳回原因:</span>
|
||||||
|
<div style="width:95%;">{{ formPayDetail.reason }}</div>
|
||||||
|
</div>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
<el-button @click="payCancel" class="endbutton" round><span>取 消</span></el-button>
|
<el-button @click="payCancel" round><span>取 消</span></el-button>
|
||||||
<el-button @click="submitUpload" class="endbutton" type="primary" round><span>确认缴费</span></el-button>
|
<el-button @click="submitUpload" type="primary" :disabled="payFlagSubmit" round><span>确认缴费</span></el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
@@ -88,7 +92,8 @@ export default {
|
|||||||
payType:1,
|
payType:1,
|
||||||
payOrderList:[],
|
payOrderList:[],
|
||||||
caseId:null
|
caseId:null
|
||||||
}
|
},
|
||||||
|
payFlagSubmit:true
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -112,6 +117,7 @@ export default {
|
|||||||
annexId: res.annexId,
|
annexId: res.annexId,
|
||||||
annexName:res.annexName
|
annexName:res.annexName
|
||||||
});
|
});
|
||||||
|
this.payFlagSubmit = false;
|
||||||
},
|
},
|
||||||
submitUpload() {
|
submitUpload() {
|
||||||
if (this.fileList.length < 1) {
|
if (this.fileList.length < 1) {
|
||||||
@@ -128,7 +134,7 @@ export default {
|
|||||||
handleRemove(file, fileList) {
|
handleRemove(file, fileList) {
|
||||||
(this.submitForm.payOrderList = []),
|
(this.submitForm.payOrderList = []),
|
||||||
fileList.forEach((item) => {
|
fileList.forEach((item) => {
|
||||||
this.submitForm.payOrderList.push({ annexId:item.response.data.annexId,annexName:item.response.data.annexName });
|
this.submitForm.payOrderList.push({ annexId:item.response.annexId,annexName:item.response.annexName });
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
handlePreview(file) {
|
handlePreview(file) {
|
||||||
@@ -187,7 +193,7 @@ export default {
|
|||||||
this.submitForm.caseId = this.payId;
|
this.submitForm.caseId = this.payId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -1,169 +1,169 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<el-dialog :title="title" :visible="openDialog" @close="cancel" :destroy-on-close="true" center>
|
<el-dialog :title="title" :visible="openDialog" @close="cancel" :destroy-on-close="true" center>
|
||||||
<el-form ref="form" :model="form" label-width="180px">
|
<el-form ref="form" :model="form" label-width="180px">
|
||||||
<el-form-item label="案件编号:" prop="caseNum">
|
<el-form-item label="案件编号:" prop="caseNum">
|
||||||
<el-input v-model="form.caseNum" placeholder="" :disabled="true"/>
|
<el-input v-model="form.caseNum" placeholder="" :disabled="true"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- <el-form-item label="案件标的:" prop="caseSubjectAmount">
|
<!-- <el-form-item label="案件标的:" prop="caseSubjectAmount">
|
||||||
<el-input v-model="form.caseSubjectAmount" :disabled="true"/>
|
<el-input v-model="form.caseSubjectAmount" :disabled="true"/>
|
||||||
</el-form-item> -->
|
</el-form-item> -->
|
||||||
<!-- <el-form-item label="缴费人:" prop="applicantName">
|
<!-- <el-form-item label="缴费人:" prop="applicantName">
|
||||||
<el-input v-model="form.applicationName" placeholder="" />
|
<el-input v-model="form.applicationName" placeholder="" />
|
||||||
</el-form-item> -->
|
</el-form-item> -->
|
||||||
<el-form-item label="缴费金额:" prop="feePayable">
|
<el-form-item label="缴费金额:" prop="feePayable">
|
||||||
<el-input v-model="form.feePayable" :disabled="true"/>
|
<el-input v-model="form.feePayable" :disabled="true"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="申请人缴费凭证:" v-if="form.caseAttachList.length > 0">
|
<el-form-item label="申请人缴费凭证:" v-if="form.caseAttachList&&form.caseAttachList.length>0 ">
|
||||||
<div style="color: #104fad;cursor:pointer" v-for="(item, index) in form.caseAttachList" :key="index"
|
<div style="color: #104fad;cursor:pointer" v-for="(item, index) in form.caseAttachList" :key="index"
|
||||||
@click="preview(item.annexPath)">
|
@click="preview(item.annexPath)">
|
||||||
{{ item.annexName }}
|
{{ item.annexName }}
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="被申请人缴费凭证:" v-if="form.resCaseAttachList.length > 0">
|
<el-form-item label="被申请人缴费凭证:" v-if="form.resCaseAttachList&&form.resCaseAttachList.length>0">
|
||||||
<div style="color: #104fad;cursor:pointer" v-for="(item, index) in form.resCaseAttachList" :key="index"
|
<div style="color: #104fad;cursor:pointer" v-for="(item, index) in form.resCaseAttachList" :key="index"
|
||||||
@click="preview(item.annexPath)">
|
@click="preview(item.annexPath)">
|
||||||
{{ item.annexName }}
|
{{ item.annexName }}
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 判断缴费是否通过 -->
|
<!-- 判断缴费是否通过 -->
|
||||||
<el-form-item label="是否缴费通过:" v-if="flag == 0">
|
<el-form-item label="是否缴费通过:" v-if="flag == 0">
|
||||||
<el-radio-group v-model="yesOrNo">
|
<el-radio-group v-model="yesOrNo">
|
||||||
<el-radio :label="1">通过</el-radio>
|
<el-radio :label="1">通过</el-radio>
|
||||||
<el-radio :label="0">驳回</el-radio>
|
<el-radio :label="0">驳回</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 缴费驳回原因-->
|
<!-- 缴费驳回原因-->
|
||||||
<el-form-item label="驳回原因:" v-if="yesOrNo == 0" prop="reason" :rules="[{ required: true, message: '请输入驳回原因',trigger: 'blur',},]">
|
<el-form-item label="驳回原因:" v-if="yesOrNo == 0" prop="reason" :rules="[{ required: true, message: '请输入驳回原因',trigger: 'blur',},]">
|
||||||
<el-input type="textarea" :rows="2" placeholder="请输入驳回原因" v-model="form.reason"></el-input>
|
<el-input type="textarea" :rows="2" placeholder="请输入驳回原因" v-model="form.reason"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
<!-- <el-button type="primary" @click="submitForm" v-if="flag == 0" class="endbutton">确认已缴费</el-button> -->
|
<!-- <el-button type="primary" @click="submitForm" v-if="flag == 0" class="endbutton">确认已缴费</el-button> -->
|
||||||
<el-button type="primary" @click="submitForm" v-if="flag == 0" class="endbutton">确 认</el-button>
|
<el-button type="primary" @click="submitForm" v-if="flag == 0" class="endbutton">确 认</el-button>
|
||||||
<el-button @click="cancel" class="endbutton1">取 消</el-button>
|
<el-button @click="cancel" class="endbutton1">取 消</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { confirmPaid, resConfirmPaid } from '@/api/caseManagement/caseManagement.js'
|
import { confirmPaid, resConfirmPaid } from '@/api/caseManagement/caseManagement.js'
|
||||||
export default {
|
export default {
|
||||||
props: ["openDialog", "title", "flag", "detailform", "getList", "paymentConfirma", "queryParams",'isapplicant'],
|
props: ["openDialog", "title", "flag", "detailform", "getList", "paymentConfirma", "queryParams",'isapplicant'],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
form: {
|
form: {
|
||||||
reason: '',//驳回原因
|
reason: '',//驳回原因
|
||||||
},
|
},
|
||||||
yesOrNo: 1,
|
yesOrNo: 1,
|
||||||
srcList: [],
|
srcList: [],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
detailform: {
|
detailform: {
|
||||||
handler(val) {
|
handler(val) {
|
||||||
if (val) {
|
if (val) {
|
||||||
this.form = val;
|
this.form = val;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
openDialog: {
|
openDialog: {
|
||||||
handler(val) {
|
handler(val) {
|
||||||
if (val) {
|
if (val) {
|
||||||
this.yesOrNo = 1
|
this.yesOrNo = 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
preview(data) {
|
preview(data) {
|
||||||
window.open(
|
window.open(
|
||||||
window.location.origin + "/API" + data,
|
window.location.origin + "/API" + data,
|
||||||
"_blank"
|
"_blank"
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
// 确认缴费
|
// 确认缴费
|
||||||
submitForm() {
|
submitForm() {
|
||||||
let paramsVal = {
|
let paramsVal = {
|
||||||
caseId: this.paymentConfirma.id,
|
caseId: this.paymentConfirma.id,
|
||||||
batchNumber: "",
|
batchNumber: "",
|
||||||
caseFlowId: this.paymentConfirma.caseFlowId,
|
caseFlowId: this.paymentConfirma.caseFlowId,
|
||||||
yesOrNo: this.yesOrNo,
|
yesOrNo: this.yesOrNo,
|
||||||
reason: this.form.reason
|
reason: this.form.reason
|
||||||
}
|
}
|
||||||
this.$refs["form"].validate((valid) => {
|
this.$refs["form"].validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
if (this.isapplicant) {
|
if (this.isapplicant) {
|
||||||
confirmPaid(paramsVal).then((res) => {
|
confirmPaid(paramsVal).then((res) => {
|
||||||
this.$message({
|
this.$message({
|
||||||
message: "确认成功",
|
message: "确认成功",
|
||||||
type: "success",
|
type: "success",
|
||||||
});
|
});
|
||||||
this.cancel();
|
this.cancel();
|
||||||
this.$emit("getList", this.queryParams);
|
this.$emit("getList", this.queryParams);
|
||||||
})
|
})
|
||||||
console.log('申请人');
|
console.log('申请人');
|
||||||
} else {
|
} else {
|
||||||
// 被申请人 resConfirmPaid
|
// 被申请人 resConfirmPaid
|
||||||
resConfirmPaid(paramsVal).then((res) => {
|
resConfirmPaid(paramsVal).then((res) => {
|
||||||
this.$message({
|
this.$message({
|
||||||
message: "确认成功",
|
message: "确认成功",
|
||||||
type: "success",
|
type: "success",
|
||||||
});
|
});
|
||||||
this.cancel();
|
this.cancel();
|
||||||
this.$emit("getList", this.queryParams);
|
this.$emit("getList", this.queryParams);
|
||||||
})
|
})
|
||||||
console.log('被申请人');
|
console.log('被申请人');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
cancel() {
|
cancel() {
|
||||||
this.$emit("cancelpaymentdetails");
|
this.$emit("cancelpaymentdetails");
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
::v-deep .el-dialog {
|
::v-deep .el-dialog {
|
||||||
width: 50%;
|
width: 50%;
|
||||||
background: #ffffff;
|
background: #ffffff;
|
||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.endbutton {
|
.endbutton {
|
||||||
width: 124px;
|
width: 124px;
|
||||||
height: 37px;
|
height: 37px;
|
||||||
background: #0072ff;
|
background: #0072ff;
|
||||||
border-radius: 19px;
|
border-radius: 19px;
|
||||||
|
|
||||||
span {
|
span {
|
||||||
width: 32px;
|
width: 32px;
|
||||||
height: 15px;
|
height: 15px;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-family: Microsoft YaHei;
|
font-family: Microsoft YaHei;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
// line-height: 48px;
|
// line-height: 48px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.endbutton1 {
|
.endbutton1 {
|
||||||
width: 124px;
|
width: 124px;
|
||||||
height: 37px;
|
height: 37px;
|
||||||
background: #ffffff;
|
background: #ffffff;
|
||||||
border: 1px solid #d0d0d0;
|
border: 1px solid #d0d0d0;
|
||||||
border-radius: 19px;
|
border-radius: 19px;
|
||||||
|
|
||||||
span {
|
span {
|
||||||
width: 31px;
|
width: 31px;
|
||||||
height: 13px;
|
height: 13px;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-family: Microsoft YaHei;
|
font-family: Microsoft YaHei;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
color: #959595;
|
color: #959595;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -57,8 +57,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="resPayTitle">{{ payMain }}</div>
|
<div class="resPayTitle">{{ payMain }}</div>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
<el-button @click="payCancel" class="endbutton" round><span>取 消</span></el-button>
|
<el-button @click="payCancel" round><span>取 消</span></el-button>
|
||||||
<el-button @click="submitUpload" class="endbutton" type="primary" round><span>确认缴费</span></el-button>
|
<el-button @click="submitUpload" type="primary" :disabled="payFlagSubmit" round><span>确认缴费</span></el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
@@ -88,7 +88,8 @@
|
|||||||
payType:1,
|
payType:1,
|
||||||
payOrderList:[],
|
payOrderList:[],
|
||||||
caseId:null
|
caseId:null
|
||||||
}
|
},
|
||||||
|
payFlagSubmit:true
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -112,6 +113,7 @@
|
|||||||
annexId: res.annexId,
|
annexId: res.annexId,
|
||||||
annexName:res.annexName
|
annexName:res.annexName
|
||||||
});
|
});
|
||||||
|
this.payFlagSubmit = false;
|
||||||
},
|
},
|
||||||
submitUpload() {
|
submitUpload() {
|
||||||
if (this.fileList.length < 1) {
|
if (this.fileList.length < 1) {
|
||||||
@@ -128,7 +130,7 @@
|
|||||||
handleRemove(file, fileList) {
|
handleRemove(file, fileList) {
|
||||||
(this.submitForm.payOrderList = []),
|
(this.submitForm.payOrderList = []),
|
||||||
fileList.forEach((item) => {
|
fileList.forEach((item) => {
|
||||||
this.submitForm.payOrderList.push({ annexId:item.response.data.annexId,annexName:item.response.data.annexName });
|
this.submitForm.payOrderList.push({ annexId:item.response.annexId,annexName:item.response.annexName });
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
handlePreview(file) {
|
handlePreview(file) {
|
||||||
|
|||||||
@@ -47,8 +47,15 @@ export default {
|
|||||||
watch: {
|
watch: {
|
||||||
mediatorVisable(val) {
|
mediatorVisable(val) {
|
||||||
if (val) {
|
if (val) {
|
||||||
listMediator().then(res=>{
|
listMediator({caseAppliId: this.mediatorData.id}).then(res=>{
|
||||||
this.tableData = res.data;
|
this.tableData = res.data;
|
||||||
|
this.tableData.forEach((item)=> {
|
||||||
|
if (item.echoFlag) {
|
||||||
|
this.$nextTick(()=>{
|
||||||
|
this.$refs.multipleTable.toggleRowSelection(item, true);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -88,7 +95,6 @@ export default {
|
|||||||
},
|
},
|
||||||
handleSelectionChange(val) {
|
handleSelectionChange(val) {
|
||||||
this.multipleSelection = val;
|
this.multipleSelection = val;
|
||||||
// console.log(this.multipleSelection,"LLLLLLLLLLLLLLLLL");
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -87,10 +87,11 @@ export default {
|
|||||||
this.createRoomIdFn({
|
this.createRoomIdFn({
|
||||||
caseId: this.timeConfirmData.id
|
caseId: this.timeConfirmData.id
|
||||||
})
|
})
|
||||||
if (this.formLabelAlign.name == '') {
|
if (!this.formLabelAlign.name) {
|
||||||
Message.error('请选择时间');
|
Message.error('请选择时间');
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
console.log(this.formLabelAlign.name)
|
||||||
this.formLabelAlign.name = moment(
|
this.formLabelAlign.name = moment(
|
||||||
this.formLabelAlign.name
|
this.formLabelAlign.name
|
||||||
).format("YYYY-MM-DD HH:mm:ss");
|
).format("YYYY-MM-DD HH:mm:ss");
|
||||||
|
|||||||
@@ -33,6 +33,12 @@
|
|||||||
<el-table-column label="案件状态" align="center" prop="caseStatusName" :show-overflow-tooltip="true" />
|
<el-table-column label="案件状态" align="center" prop="caseStatusName" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="驳回节点" align="center" prop="backFlowName" :show-overflow-tooltip="true" />
|
<el-table-column label="驳回节点" align="center" prop="backFlowName" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="关联角色" align="center" prop="roleNames" :show-overflow-tooltip="true" />
|
<el-table-column label="关联角色" align="center" prop="roleNames" :show-overflow-tooltip="true" />
|
||||||
|
<el-table-column label="节点图标" align="center" prop="nodeIcon" :show-overflow-tooltip="true">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<img v-if="scope.row.fileName" class="nodeIcon" :src="iconHead+scope.row.fileName"/>
|
||||||
|
<span v-else>暂无图标</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button size="mini" @click="moveDown(scope.row)" type="text" icon="el-icon-arrow-down"></el-button>
|
<el-button size="mini" @click="moveDown(scope.row)" type="text" icon="el-icon-arrow-down"></el-button>
|
||||||
@@ -80,10 +86,14 @@ export default {
|
|||||||
dataList: [],
|
dataList: [],
|
||||||
addvisiable: false,//新增弹窗
|
addvisiable: false,//新增弹窗
|
||||||
editData: {},
|
editData: {},
|
||||||
|
iconHead: process.env.VUE_APP_BASE_API
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getList(this.queryParams)
|
this.getList(this.queryParams);
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 删除
|
// 删除
|
||||||
@@ -160,4 +170,9 @@ export default {
|
|||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped></style>
|
<style lang="scss" scoped>
|
||||||
|
.nodeIcon {
|
||||||
|
width: 20%;
|
||||||
|
height: 20%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
<el-form :model="ruleForm" label-position="left" :rules="rules" ref="ruleForm" label-width="90px"
|
<el-form :model="ruleForm" label-position="left" :rules="rules" ref="ruleForm" label-width="90px"
|
||||||
class="demo-ruleForm">
|
class="demo-ruleForm">
|
||||||
<el-form-item label="节点名称" prop="nodeName">
|
<el-form-item label="节点名称" prop="nodeName">
|
||||||
<el-select v-model="ruleForm.nodeName" placeholder="请选择" @change="changenodeName">
|
<el-select v-model="ruleForm.nodeName" placeholder="请选择">
|
||||||
<el-option v-for="dict in dict.type.case_flow_node" :key="dict.value" :label="dict.label"
|
<el-option v-for="dict in dict.type.case_flow_node" :key="dict.value" :label="dict.label"
|
||||||
:value="dict.value"></el-option>
|
:value="dict.value"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
@@ -28,6 +28,20 @@
|
|||||||
<el-form-item label="权限字符" prop="buttonAuthFlag">
|
<el-form-item label="权限字符" prop="buttonAuthFlag">
|
||||||
<el-input v-model="ruleForm.buttonAuthFlag" placeholder="请输入"></el-input>
|
<el-input v-model="ruleForm.buttonAuthFlag" placeholder="请输入"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="节点图标" prop="nodeIcon">
|
||||||
|
<el-upload
|
||||||
|
class="avatar-uploader"
|
||||||
|
:action="uploadImgUrl"
|
||||||
|
:show-file-list="false"
|
||||||
|
:headers="headers"
|
||||||
|
:data="filedata"
|
||||||
|
:on-success="handleAvatarSuccess"
|
||||||
|
:before-upload="beforeAvatarUpload">
|
||||||
|
<img v-if="imageUrl" :src="imgSvgUrl" class="avatar">
|
||||||
|
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
|
||||||
|
<div slot="tip" class="el-upload__tip">只能上传SVG图片</div>
|
||||||
|
</el-upload>
|
||||||
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
<el-button @click="cancel" class="endbutton"><span>取 消</span></el-button>
|
<el-button @click="cancel" class="endbutton"><span>取 消</span></el-button>
|
||||||
@@ -39,6 +53,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import { queryCaseFlowInfo, saveCaseFlow } from "@/api/caseprocessManagement/caseprocessManagement.js";
|
import { queryCaseFlowInfo, saveCaseFlow } from "@/api/caseprocessManagement/caseprocessManagement.js";
|
||||||
import { listRole } from "@/api/system/role";
|
import { listRole } from "@/api/system/role";
|
||||||
|
import { getToken } from "@/utils/auth";
|
||||||
export default {
|
export default {
|
||||||
props: ["addvisiable", "editData", "queryParams"],
|
props: ["addvisiable", "editData", "queryParams"],
|
||||||
dicts: ["case_flow_node"],
|
dicts: ["case_flow_node"],
|
||||||
@@ -49,7 +64,9 @@ export default {
|
|||||||
backflowArr: [],//驳回节点
|
backflowArr: [],//驳回节点
|
||||||
roleArr: [],//关联角色
|
roleArr: [],//关联角色
|
||||||
isImg: false,
|
isImg: false,
|
||||||
filedata: {},
|
filedata: {
|
||||||
|
annexType: 11,
|
||||||
|
},
|
||||||
flagBtn: false,
|
flagBtn: false,
|
||||||
ruleForm: {},
|
ruleForm: {},
|
||||||
rules: {
|
rules: {
|
||||||
@@ -67,24 +84,46 @@ export default {
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
dealvalue: [],
|
dealvalue: [],
|
||||||
|
imageUrl: '',
|
||||||
|
uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址
|
||||||
|
headers: {
|
||||||
|
Authorization: "Bearer " + getToken(),
|
||||||
|
},
|
||||||
|
fileName: '',
|
||||||
|
imgSvgUrl: ''
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
addvisiable(val) {
|
addvisiable(val) {
|
||||||
if (val) {
|
if (val) {
|
||||||
this.ruleForm = this.editData;
|
this.ruleForm = this.editData;
|
||||||
|
this.fileName = '',
|
||||||
this.getRoles();
|
this.getRoles();
|
||||||
this.getbackflowArr()
|
this.getbackflowArr();
|
||||||
|
if (this.ruleForm && this.ruleForm.fileName) {
|
||||||
|
this.imgSvgUrl = process.env.VUE_APP_BASE_API + this.ruleForm.fileName;
|
||||||
|
this.imageUrl = process.env.VUE_APP_BASE_API + this.ruleForm.fileName;
|
||||||
|
this.fileName = this.ruleForm.fileName
|
||||||
|
} else {
|
||||||
|
this.imgSvgUrl = ''
|
||||||
|
this.imageUrl = ''
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
fileName: {
|
||||||
|
handler(val) {
|
||||||
|
if (val) {
|
||||||
|
this.imgSvgUrl = this.imageUrl
|
||||||
|
}
|
||||||
|
},
|
||||||
|
deep: true
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
changenodeName(val) {
|
|
||||||
console.log(val, 'changeval');
|
|
||||||
},
|
|
||||||
// 获取驳回节点数据
|
// 获取驳回节点数据
|
||||||
getbackflowArr() {
|
getbackflowArr() {
|
||||||
let queryParams2 = {
|
let queryParams2 = {
|
||||||
@@ -119,6 +158,19 @@ export default {
|
|||||||
cancel() {
|
cancel() {
|
||||||
this.$emit("cancelAdd");
|
this.$emit("cancelAdd");
|
||||||
},
|
},
|
||||||
|
// 图标上传
|
||||||
|
handleAvatarSuccess(res, file) {
|
||||||
|
this.fileName = ''
|
||||||
|
this.imageUrl = URL.createObjectURL(file.raw);
|
||||||
|
this.fileName = file.response.fileName
|
||||||
|
},
|
||||||
|
beforeAvatarUpload(file) {
|
||||||
|
const isSvg = file.type === 'image/svg+xml';
|
||||||
|
if (!isSvg) {
|
||||||
|
this.$message.error('上传图片只能是 SVG 格式!');
|
||||||
|
}
|
||||||
|
return isSvg;
|
||||||
|
},
|
||||||
// 提交
|
// 提交
|
||||||
submitForm() {
|
submitForm() {
|
||||||
this.$refs['ruleForm'].validate((valid) => {
|
this.$refs['ruleForm'].validate((valid) => {
|
||||||
@@ -141,7 +193,8 @@ export default {
|
|||||||
backFlowId: this.ruleForm.backFlowId,
|
backFlowId: this.ruleForm.backFlowId,
|
||||||
roleIds: this.ruleForm.roleIds,
|
roleIds: this.ruleForm.roleIds,
|
||||||
sort: this.ruleForm.sort,
|
sort: this.ruleForm.sort,
|
||||||
buttonAuthFlag: this.ruleForm.buttonAuthFlag
|
buttonAuthFlag: this.ruleForm.buttonAuthFlag,
|
||||||
|
fileName: this.fileName
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
let nodevalue = this.dict.type.case_flow_node;
|
let nodevalue = this.dict.type.case_flow_node;
|
||||||
@@ -158,7 +211,8 @@ export default {
|
|||||||
caseStatusName: this.ruleForm.caseStatusName,
|
caseStatusName: this.ruleForm.caseStatusName,
|
||||||
backFlowId: this.ruleForm.backFlowId,
|
backFlowId: this.ruleForm.backFlowId,
|
||||||
roleIds: this.ruleForm.roleIds,
|
roleIds: this.ruleForm.roleIds,
|
||||||
buttonAuthFlag: this.ruleForm.buttonAuthFlag
|
buttonAuthFlag: this.ruleForm.buttonAuthFlag,
|
||||||
|
fileName: this.fileName
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (params.backFlowId == undefined) {
|
if (params.backFlowId == undefined) {
|
||||||
@@ -181,4 +235,31 @@ export default {
|
|||||||
::v-deep .el-select {
|
::v-deep .el-select {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
.avatar-uploader .el-upload {
|
||||||
|
border: 1px dashed #d9d9d9;
|
||||||
|
border-radius: 6px;
|
||||||
|
cursor: pointer;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
// .avatar-uploader .el-upload:hover {
|
||||||
|
// border-color: #409EFF;
|
||||||
|
// }
|
||||||
|
.avatar-uploader-icon {
|
||||||
|
border: 1px dashed #d9d9d9;
|
||||||
|
font-size: 28px;
|
||||||
|
color: #8c939d;
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
line-height: 100px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.avatar-uploader-icon:hover {
|
||||||
|
border-color: #409EFF;
|
||||||
|
}
|
||||||
|
.avatar {
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<el-dialog title="编辑内容" :visible="emailVidable" @close="cancel" center
|
||||||
|
:distroy-on-close="true">
|
||||||
|
<div>
|
||||||
|
<el-input type="textarea" :rows="6" placeholder="请输入内容" v-model="sendData">
|
||||||
|
</el-input>
|
||||||
|
</div>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="cancel" class="endbutton1" round><span>取 消</span></el-button>
|
||||||
|
<el-button @click="submitSend" class="endbutton1" type="primary" round><span>确 认</span></el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
updateSendContent,update
|
||||||
|
} from "@/api/deliveryRecord/deliveryRecord.js";
|
||||||
|
export default {
|
||||||
|
props: ["emailVidable", "emailRow","queryParams"],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
sendData:''
|
||||||
|
};
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
emailVidable(val){
|
||||||
|
if(val){
|
||||||
|
this.sendData = this.emailRow.mailContent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
cancel() {
|
||||||
|
this.$emit("cancelEmail");
|
||||||
|
},
|
||||||
|
submitSend() {
|
||||||
|
console.log(this.emailRow.mailContent)
|
||||||
|
this.updateSendContentFn({
|
||||||
|
id:this.emailRow.id,
|
||||||
|
mailContent:this.sendData
|
||||||
|
})
|
||||||
|
},
|
||||||
|
updateSendContentFn(data){
|
||||||
|
update(data).then(res=>{
|
||||||
|
this.$message.success('更新成功');
|
||||||
|
this.$emit("cancelEmail");
|
||||||
|
this.$emit('getList',this.queryParams);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped></style>
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<el-dialog title="修改内容" :visible="resendVidable" v-if="resendVidable" @close="cancel" center
|
||||||
|
:distroy-on-close="true">
|
||||||
|
<div style="margin-bottom: 30px;"><span style="font-weight: bold;">发送内容:</span>{{ sendData }}</div>
|
||||||
|
<el-form label-width="100px">
|
||||||
|
<el-form-item v-for="(item,index) in rowData.templateParams" :label="item.paramName" :key="item.id">
|
||||||
|
<el-input v-model="rowData.templateParams[index].paramValue" @input="changeContent"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="cancel" class="endbutton1" round><span>取 消</span></el-button>
|
||||||
|
<el-button @click="submitSend" class="endbutton1" type="primary" round><span>确 认</span></el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
updateSendContent,
|
||||||
|
} from "@/api/deliveryRecord/deliveryRecord.js";
|
||||||
|
export default {
|
||||||
|
props: ["resendVidable", "rowData","queryParams"],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
sendData:'',
|
||||||
|
param:"",
|
||||||
|
paramValue:""
|
||||||
|
|
||||||
|
};
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
resendVidable(val){
|
||||||
|
if(val){
|
||||||
|
this.sendData = this.rowData.sendContent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
cancel() {
|
||||||
|
this.$emit("cancelSend");
|
||||||
|
},
|
||||||
|
submitSend() {
|
||||||
|
console.log(this.rowData)
|
||||||
|
this.updateSendContentFn({
|
||||||
|
id:this.rowData.id,
|
||||||
|
templateParams:this.rowData.templateParams
|
||||||
|
})
|
||||||
|
},
|
||||||
|
updateSendContentFn(data){
|
||||||
|
updateSendContent(data).then(res=>{
|
||||||
|
this.$message.success('更新成功');
|
||||||
|
this.$emit("cancelSend");
|
||||||
|
this.$emit('getList',this.queryParams);
|
||||||
|
})
|
||||||
|
},
|
||||||
|
changeContent(){
|
||||||
|
let templateContent = this.rowData.templateContent
|
||||||
|
this.rowData.templateParams.forEach(item => {
|
||||||
|
templateContent = templateContent.replace(item.param,item.paramValue)
|
||||||
|
});
|
||||||
|
this.sendData = templateContent
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped></style>
|
||||||
@@ -27,7 +27,14 @@
|
|||||||
<!-- 缴费人 -->
|
<!-- 缴费人 -->
|
||||||
<!-- <el-table-column label="案件状态" align="center" prop="caseStatusName" /> -->
|
<!-- <el-table-column label="案件状态" align="center" prop="caseStatusName" /> -->
|
||||||
<el-table-column label="内容" align="center" prop="mailContent"></el-table-column>
|
<el-table-column label="内容" align="center" prop="mailContent"></el-table-column>
|
||||||
|
<el-table-column label="操作" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button size="mini" type="text" @click="emailEditing(scope.row)" icon="el-icon-s-promotion">邮箱编辑</el-button>
|
||||||
|
<el-button v-if="scope.row.sendStatus == '未发送'" size="mini" type="text" @click="resendCounts(scope.row)" icon="el-icon-s-promotion">重新发送</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
<emailEdits :emailVidable="emailVidable" @cancelEmail="cancelEmail" @getList="getList" :queryParams="queryParams" :emailRow="emailRow"></emailEdits>
|
||||||
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
|
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
|
||||||
@pagination="getList(queryParams)" />
|
@pagination="getList(queryParams)" />
|
||||||
|
|
||||||
@@ -36,14 +43,14 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {
|
import {
|
||||||
emailList,
|
emailList,reSendMailRecord
|
||||||
} from "@/api/deliveryRecord/deliveryRecord.js";
|
} from "@/api/deliveryRecord/deliveryRecord.js";
|
||||||
|
import emailEdits from "./components/emailEdits.vue";
|
||||||
import { getDicts } from '@/api/system/dict/data.js'
|
import { getDicts } from '@/api/system/dict/data.js'
|
||||||
export default {
|
export default {
|
||||||
name: "paymentList",
|
name: "paymentList",
|
||||||
dicts: ["case_status"],
|
dicts: ["case_status"],
|
||||||
components: {},
|
components: {emailEdits},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
queryParams: {
|
queryParams: {
|
||||||
@@ -60,6 +67,9 @@ export default {
|
|||||||
// 校验表单
|
// 校验表单
|
||||||
rules: {},
|
rules: {},
|
||||||
dataList: [],
|
dataList: [],
|
||||||
|
emailVidable:false,
|
||||||
|
emailRow:{},
|
||||||
|
sendStatusMessage:false,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
@@ -89,14 +99,37 @@ export default {
|
|||||||
item.sendStatus = "未发送"
|
item.sendStatus = "未发送"
|
||||||
} else if (item.sendStatus == 1) {
|
} else if (item.sendStatus == 1) {
|
||||||
item.sendStatus = "已发送"
|
item.sendStatus = "已发送"
|
||||||
} else {
|
|
||||||
item.sendStatus = "未发送"
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
this.total = response.total;
|
this.total = response.total;
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
// 邮箱编辑内容
|
||||||
|
emailEditing(data){
|
||||||
|
this.emailVidable = true
|
||||||
|
this.emailRow = data;
|
||||||
|
console.log(data)
|
||||||
|
},
|
||||||
|
// 关闭弹窗
|
||||||
|
cancelEmail(){
|
||||||
|
this.emailVidable = false
|
||||||
|
},
|
||||||
|
// 重新发送
|
||||||
|
resendCounts(row){
|
||||||
|
if(row.sendStatus=='未发送'){
|
||||||
|
row.sendStatus = 0
|
||||||
|
}else if(row.sendStatus=='已发送'){
|
||||||
|
row.sendStatus = 1
|
||||||
|
}
|
||||||
|
reSendMailRecord(row).then(res=>{
|
||||||
|
console.log(res)
|
||||||
|
this.$message.success('发送成功');
|
||||||
|
this.getList(this.queryParams);
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
|
||||||
<el-form-item label="案件编号" prop="caseNum">
|
<el-form-item label="案件编号" prop="caseNum">
|
||||||
<el-input v-model="queryParams.caseNum" placeholder="请输入案件编号" clearable @keyup.enter.native="handleQuery" />
|
<el-input v-model="queryParams.caseNum" placeholder="请输入案件编号" clearable
|
||||||
|
@keyup.enter.native="handleQuery" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||||
@@ -13,32 +14,43 @@
|
|||||||
<el-table-column label="序号" type="index" align="center">
|
<el-table-column label="序号" type="index" align="center">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{
|
<span>{{
|
||||||
(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1
|
(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1
|
||||||
}}</span>
|
}}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="案件编号" align="center" prop="caseNum" :show-overflow-tooltip="true" />
|
<el-table-column label="案件编号" align="center" prop="caseNum" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="手机号" align="center" prop="phone" :show-overflow-tooltip="true" />
|
<el-table-column label="手机号" align="center" prop="phone" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="发送时间" align="center" prop="sendTime" />
|
<el-table-column label="发送时间" align="center" prop="sendTime" />
|
||||||
<el-table-column label="发送状态" align="center" prop="sendStatus" />
|
<el-table-column label="发送状态" align="center" prop="sendStatus" />
|
||||||
<el-table-column label="发送内容" align="center" prop="sendContent" :show-overflow-tooltip="true" />
|
<el-table-column label="发送内容" align="center" prop="sendContent" :show-overflow-tooltip="true"/>
|
||||||
|
<el-table-column label="备注" align="center" prop="reason" :show-overflow-tooltip="true"/>
|
||||||
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button size="mini" @click="copyContent(scope.row.sendContent)" type="text"
|
||||||
|
icon="el-icon-document-copy">复制内容</el-button>
|
||||||
|
<el-button size="mini" @click="resend(scope.row)" type="text" icon="el-icon-s-promotion">编辑内容</el-button>
|
||||||
|
<el-button v-if="scope.row.sendStatus == '发送失败'|| scope.row.sendStatus == '发送中'" size="mini" type="text" @click="resendMessage(scope.row)" icon="el-icon-s-promotion">重新发送</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
|
<resend :resendVidable="resendVidable" :rowData="rowData" @getList="getList" @cancelSend="cancelSend" :queryParams="queryParams"></resend>
|
||||||
@pagination="getList({caseNum:queryParams.caseNum},{pageNum:queryParams.pageNum,pageSize:queryParams.pageSize})" />
|
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
|
||||||
|
:limit.sync="queryParams.pageSize"
|
||||||
|
@pagination="getList({ caseNum: queryParams.caseNum }, { pageNum: queryParams.pageNum, pageSize: queryParams.pageSize })" />
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {
|
import {
|
||||||
smsList,
|
recordList,reSendShortMessage
|
||||||
} from "@/api/deliveryRecord/deliveryRecord.js";
|
} from "@/api/deliveryRecord/deliveryRecord.js";
|
||||||
|
import resend from "./components/resend.vue";
|
||||||
import { getDicts } from '@/api/system/dict/data.js'
|
import { getDicts } from '@/api/system/dict/data.js'
|
||||||
export default {
|
export default {
|
||||||
name: "paymentList",
|
name: "paymentList",
|
||||||
dicts: ["case_status"],
|
dicts: ["case_status"],
|
||||||
components: { },
|
components: {resend},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
queryParams: {
|
queryParams: {
|
||||||
@@ -55,18 +67,40 @@ export default {
|
|||||||
// 校验表单
|
// 校验表单
|
||||||
rules: {},
|
rules: {},
|
||||||
dataList: [],
|
dataList: [],
|
||||||
|
rowData:{},
|
||||||
|
resendVidable:false,
|
||||||
|
sendStatusMessage:false
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
getDicts("case_status").then(res => {
|
getDicts("case_status").then(res => {
|
||||||
this.getList({caseNum:this.queryParams.caseNum},{pageNum:this.queryParams.pageNum,pageSize:this.queryParams.pageSize});
|
this.getList({ caseNum: this.queryParams.caseNum }, { pageNum: this.queryParams.pageNum, pageSize: this.queryParams.pageSize });
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
/** 复制内容 */
|
||||||
|
copyContent(row) {
|
||||||
|
const el = document.createElement('textarea');
|
||||||
|
el.value = row;
|
||||||
|
document.body.appendChild(el);
|
||||||
|
el.select();
|
||||||
|
document.execCommand('copy');
|
||||||
|
document.body.removeChild(el);
|
||||||
|
this.$message.success('复制成功');
|
||||||
|
},
|
||||||
|
/**重新发送 */
|
||||||
|
resend(row){
|
||||||
|
this.resendVidable = true;
|
||||||
|
this.rowData = row;
|
||||||
|
},
|
||||||
|
/**关闭弹窗 */
|
||||||
|
cancelSend(){
|
||||||
|
this.resendVidable = false;
|
||||||
|
},
|
||||||
/** 搜索按钮操作 */
|
/** 搜索按钮操作 */
|
||||||
handleQuery() {
|
handleQuery() {
|
||||||
this.queryParams.pageNum = 1;
|
this.queryParams.pageNum = 1;
|
||||||
this.getList({caseNum:this.queryParams.caseNum},{pageNum:this.queryParams.pageNum,pageSize:this.queryParams.pageSize});
|
this.getList({ caseNum: this.queryParams.caseNum }, { pageNum: this.queryParams.pageNum, pageSize: this.queryParams.pageSize });
|
||||||
},
|
},
|
||||||
/** 重置按钮操作 */
|
/** 重置按钮操作 */
|
||||||
resetQuery() {
|
resetQuery() {
|
||||||
@@ -74,18 +108,16 @@ export default {
|
|||||||
this.handleQuery();
|
this.handleQuery();
|
||||||
},
|
},
|
||||||
// 查询列表数据
|
// 查询列表数据
|
||||||
getList(data,params) {
|
getList(data, params) {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
smsList(data,params).then((response) => {
|
recordList(data, params).then((response) => {
|
||||||
this.dataList = response.rows;
|
this.dataList = response.rows;
|
||||||
this.dataList.forEach(item=>{
|
this.dataList.forEach(item => {
|
||||||
if(item.sendStatus == 0){
|
if (item.sendStatus == 1) {
|
||||||
item.sendStatus = "发送失败"
|
item.sendStatus = "发送成功"
|
||||||
}else if(item.sendStatus == 1){
|
} else if (item.sendStatus == 2) {
|
||||||
item.sendStatus = "已送达"
|
item.sendStatus = "发送中"
|
||||||
}else if(item.sendStatus == 2){
|
} else if(item.sendStatus == 3){
|
||||||
item.sendStatus = "已读取"
|
|
||||||
}else{
|
|
||||||
item.sendStatus = "发送失败"
|
item.sendStatus = "发送失败"
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -93,8 +125,27 @@ export default {
|
|||||||
this.loading = false;
|
this.loading = false;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
// 重新发送
|
||||||
|
resendMessage(row){
|
||||||
|
console.log(row.sendStatus)
|
||||||
|
let valuesRow ={
|
||||||
|
id:row.id,
|
||||||
|
templateId:row.templateId,
|
||||||
|
phone:row.phone,
|
||||||
|
templateParams:row.templateParams
|
||||||
|
}
|
||||||
|
this.reSendShortMessageFn(valuesRow)
|
||||||
|
console.log(valuesRow)
|
||||||
|
|
||||||
|
},
|
||||||
|
reSendShortMessageFn(valuesRow){
|
||||||
|
reSendShortMessage(valuesRow).then(res=>{
|
||||||
|
this.$message.success('发送成功');
|
||||||
|
this.getList({ caseNum: this.queryParams.caseNum }, { pageNum: this.queryParams.pageNum, pageSize: this.queryParams.pageSize });
|
||||||
|
})
|
||||||
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped></style>
|
<style lang="scss" scoped></style>
|
||||||
@@ -1,27 +1,149 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container home">
|
<div class="app-container home">
|
||||||
调解系统
|
<div class="header">
|
||||||
|
<div class="iconTitle"></div>
|
||||||
|
<div class="headerMain">我的待办</div>
|
||||||
|
</div>
|
||||||
|
<div class="homeMain">
|
||||||
|
<div
|
||||||
|
class="cardList"
|
||||||
|
v-for="(item, index) in pendingTasks"
|
||||||
|
:key="index"
|
||||||
|
@click="pushPage(item.caseFlowId)"
|
||||||
|
>
|
||||||
|
<div class="badge">{{ item.caseCount }}</div>
|
||||||
|
<div class="cardMain">
|
||||||
|
<img class="iconImg" :src="iconHead + item.fileName" alt="" />
|
||||||
|
</div>
|
||||||
|
<div class="cardMain1">
|
||||||
|
<div class="imgTitle">{{ item.caseStatusName }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import { todoCount } from "@/api/system/homepage.js";
|
||||||
export default {
|
export default {
|
||||||
name: "Index",
|
name: "Index",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
// 版本号
|
// 版本号
|
||||||
version: "3.8.6"
|
version: "3.8.6",
|
||||||
|
pendingTasks: [], //案件代办状态
|
||||||
|
iconHead: process.env.VUE_APP_BASE_API
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
watch: {
|
||||||
|
$route(val) {
|
||||||
|
if (val) {
|
||||||
|
this.gettodoCount();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.gettodoCount();
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
goTarget(href) {
|
goTarget(href) {
|
||||||
window.open(href, "_blank");
|
window.open(href, "_blank");
|
||||||
}
|
},
|
||||||
}
|
// 查询代办状态
|
||||||
|
gettodoCount() {
|
||||||
|
todoCount({}).then((res) => {
|
||||||
|
this.pendingTasks = res.data.toDoCountList;
|
||||||
|
console.log(res.data.toDoCountList, "this.pendingTasks");
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 点击待办按钮跳转
|
||||||
|
pushPage(status) {
|
||||||
|
this.$router.push({
|
||||||
|
path: "/caseManagement/caseManagement/caseList",
|
||||||
|
query: { caseFlowId: status + "" },
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
|
.home {
|
||||||
|
font-family: "open sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #676a6c;
|
||||||
|
overflow-x: hidden;
|
||||||
|
background-color: #f1f1f1;
|
||||||
|
height: 100vh;
|
||||||
|
|
||||||
|
.header {
|
||||||
|
width: 100%;
|
||||||
|
height: 80px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.iconTitle {
|
||||||
|
width: 5px;
|
||||||
|
height: 25px;
|
||||||
|
background-color: #0f5c9b;
|
||||||
|
margin-right: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.headerMain {
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.homeMain {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
|
||||||
|
.cardList {
|
||||||
|
width: 13%;
|
||||||
|
height: 200px;
|
||||||
|
border-radius: 30px;
|
||||||
|
background-color: #ffffff;
|
||||||
|
position: relative;
|
||||||
|
margin-right: 38px;
|
||||||
|
margin-bottom: 30px;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
.badge {
|
||||||
|
width: 50px;
|
||||||
|
height: 30px;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 30px;
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: 500;
|
||||||
|
color: red;
|
||||||
|
border-radius: 10px 30px 10px 30px;
|
||||||
|
background-color: #1296DB;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardMain {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
margin-top: 40px;
|
||||||
|
.iconImg {
|
||||||
|
width: 100px;
|
||||||
|
height: 110px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.cardMain1 {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
.imgTitle {
|
||||||
|
font-size: 15px;
|
||||||
|
font-weight: 900;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|||||||
@@ -10,109 +10,177 @@
|
|||||||
</div>
|
</div>
|
||||||
<!-- 右侧 -->
|
<!-- 右侧 -->
|
||||||
<div class="rightBox">
|
<div class="rightBox">
|
||||||
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
|
<el-form
|
||||||
<h2 class="title">用户登录</h2>
|
ref="loginForm"
|
||||||
<el-form-item prop="username">
|
:model="loginForm"
|
||||||
<el-input
|
:rules="loginRules"
|
||||||
v-model="loginForm.username"
|
class="login-form"
|
||||||
type="text"
|
>
|
||||||
auto-complete="off"
|
<h2 class="title">用户登录</h2>
|
||||||
placeholder="账号"
|
<el-form-item prop="username">
|
||||||
|
<el-input
|
||||||
|
v-model="loginForm.username"
|
||||||
|
type="text"
|
||||||
|
auto-complete="off"
|
||||||
|
placeholder="账号"
|
||||||
|
>
|
||||||
|
<svg-icon
|
||||||
|
slot="prefix"
|
||||||
|
icon-class="user"
|
||||||
|
class="el-input__icon input-icon"
|
||||||
|
/>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item prop="password">
|
||||||
|
<el-input
|
||||||
|
v-model="loginForm.password"
|
||||||
|
type="password"
|
||||||
|
auto-complete="off"
|
||||||
|
placeholder="密码"
|
||||||
|
@keyup.enter.native="handleLogin"
|
||||||
|
>
|
||||||
|
<svg-icon
|
||||||
|
slot="prefix"
|
||||||
|
icon-class="password"
|
||||||
|
class="el-input__icon input-icon"
|
||||||
|
/>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item prop="code" v-if="captchaEnabled">
|
||||||
|
<el-input
|
||||||
|
v-model="loginForm.code"
|
||||||
|
auto-complete="off"
|
||||||
|
placeholder="验证码"
|
||||||
|
style="width: 63%"
|
||||||
|
@keyup.enter.native="handleLogin"
|
||||||
|
>
|
||||||
|
<svg-icon
|
||||||
|
slot="prefix"
|
||||||
|
icon-class="validCode"
|
||||||
|
class="el-input__icon input-icon"
|
||||||
|
/>
|
||||||
|
</el-input>
|
||||||
|
<div class="login-code">
|
||||||
|
<img :src="codeUrl" @click="getCode" class="login-code-img" />
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
<el-checkbox
|
||||||
|
v-model="loginForm.rememberMe"
|
||||||
|
style="margin: 0px 0px 25px 0px"
|
||||||
|
>记住密码</el-checkbox
|
||||||
>
|
>
|
||||||
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
|
<el-form-item style="width: 100%">
|
||||||
</el-input>
|
<el-button
|
||||||
</el-form-item>
|
:loading="loading"
|
||||||
<el-form-item prop="password">
|
size="medium"
|
||||||
<el-input
|
type="primary"
|
||||||
v-model="loginForm.password"
|
style="width: 100%"
|
||||||
type="password"
|
@click.native.prevent="handleLogin"
|
||||||
auto-complete="off"
|
>
|
||||||
placeholder="密码"
|
<span v-if="!loading">登 录</span>
|
||||||
@keyup.enter.native="handleLogin"
|
<span v-else>登 录 中...</span>
|
||||||
>
|
</el-button>
|
||||||
<svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" />
|
<div style="float: right" v-if="register">
|
||||||
</el-input>
|
<!-- <router-link class="link-type" :to="'/register'">立即注册</router-link> -->
|
||||||
</el-form-item>
|
<el-button
|
||||||
<el-form-item prop="code" v-if="captchaEnabled">
|
type="text"
|
||||||
<el-input
|
v-if="buttonReg"
|
||||||
v-model="loginForm.code"
|
@click="registrationLink('/register')"
|
||||||
auto-complete="off"
|
>立即注册</el-button
|
||||||
placeholder="验证码"
|
>
|
||||||
style="width: 63%"
|
</div>
|
||||||
@keyup.enter.native="handleLogin"
|
<div class="registerImg" v-show="closeImgs">
|
||||||
>
|
<div class="closeImg" @click="closeImg">
|
||||||
<svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />
|
<img
|
||||||
</el-input>
|
style="width: 25px; height: 25px"
|
||||||
<div class="login-code">
|
src="../assets/images/closed.png"
|
||||||
<img :src="codeUrl" @click="getCode" class="login-code-img"/>
|
alt=""
|
||||||
</div>
|
/>
|
||||||
</el-form-item>
|
<span style="padding-left: 100px">扫码人脸核验</span>
|
||||||
<el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">记住密码</el-checkbox>
|
</div>
|
||||||
<el-form-item style="width:100%;">
|
<div id="qrcodeImg" style="padding-left: 76px"></div>
|
||||||
<el-button
|
</div>
|
||||||
:loading="loading"
|
</el-form-item>
|
||||||
size="medium"
|
</el-form>
|
||||||
type="primary"
|
</div>
|
||||||
style="width:100%;"
|
<!-- 注册时选择是否 -->
|
||||||
@click.native.prevent="handleLogin"
|
<div>
|
||||||
>
|
<el-dialog
|
||||||
<span v-if="!loading">登 录</span>
|
title="是否需要人脸核实"
|
||||||
<span v-else>登 录 中...</span>
|
:visible.sync="centerDialogVisible"
|
||||||
</el-button>
|
width="30%"
|
||||||
<div style="float: right;" v-if="register">
|
center
|
||||||
<router-link class="link-type" :to="'/register'">立即注册</router-link>
|
>
|
||||||
</div>
|
<span slot="footer" class="dialog-footer">
|
||||||
</el-form-item>
|
<el-button @click="facialVerification('/register')" type="primary"
|
||||||
</el-form>
|
>是</el-button
|
||||||
|
>
|
||||||
|
<el-button @click="noFacialVerification('/register')" type="primary"
|
||||||
|
>否</el-button
|
||||||
|
>
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
<!-- 底部 -->
|
<!-- 底部 -->
|
||||||
<div class="el-login-footer">
|
<div class="el-login-footer">
|
||||||
<span>Copyright © 2023 乙巢(上海)企业管理服务有限公司.</span>
|
<div>Copyright © 2023 乙巢(上海)企业管理服务有限公司.</div>
|
||||||
|
<div>Version:1.1.3</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { getCodeImg } from "@/api/login";
|
import {
|
||||||
|
getCodeImg,
|
||||||
|
selectIdentityAuthenticaEIDtoken,
|
||||||
|
selectPCEIDtokenStatus,
|
||||||
|
} from "@/api/login";
|
||||||
import Cookies from "js-cookie";
|
import Cookies from "js-cookie";
|
||||||
import { encrypt, decrypt } from '@/utils/jsencrypt'
|
import QRCode from "qrcodejs2";
|
||||||
|
import { encrypt, decrypt } from "@/utils/jsencrypt";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Login",
|
name: "Login",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
codeUrl: "",
|
codeUrl: "",
|
||||||
|
closeImgs: false,
|
||||||
|
centerDialogVisible: false,
|
||||||
|
buttonReg: true,
|
||||||
|
eidTokens: {},
|
||||||
|
timer: null,
|
||||||
|
pathVal: "",
|
||||||
loginForm: {
|
loginForm: {
|
||||||
username: "admin",
|
username: "admin",
|
||||||
password: "admin123",
|
password: "admin123",
|
||||||
rememberMe: false,
|
rememberMe: false,
|
||||||
code: "",
|
code: "",
|
||||||
uuid: ""
|
uuid: "",
|
||||||
},
|
},
|
||||||
loginRules: {
|
loginRules: {
|
||||||
username: [
|
username: [
|
||||||
{ required: true, trigger: "blur", message: "请输入您的账号" }
|
{ required: true, trigger: "blur", message: "请输入您的账号" },
|
||||||
],
|
],
|
||||||
password: [
|
password: [
|
||||||
{ required: true, trigger: "blur", message: "请输入您的密码" }
|
{ required: true, trigger: "blur", message: "请输入您的密码" },
|
||||||
],
|
],
|
||||||
code: [{ required: true, trigger: "change", message: "请输入验证码" }]
|
code: [{ required: true, trigger: "change", message: "请输入验证码" }],
|
||||||
},
|
},
|
||||||
loading: false,
|
loading: false,
|
||||||
// 验证码开关
|
// 验证码开关
|
||||||
captchaEnabled: true,
|
captchaEnabled: true,
|
||||||
// 注册开关
|
// 注册开关
|
||||||
register: true,
|
register: true,
|
||||||
redirect: undefined
|
redirect: undefined,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
$route: {
|
$route: {
|
||||||
handler: function(route) {
|
handler: function (route) {
|
||||||
this.redirect = route.query && route.query.redirect;
|
this.redirect = route.query && route.query.redirect;
|
||||||
},
|
},
|
||||||
immediate: true
|
immediate: true,
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getCode();
|
this.getCode();
|
||||||
@@ -120,8 +188,9 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getCode() {
|
getCode() {
|
||||||
getCodeImg().then(res => {
|
getCodeImg().then((res) => {
|
||||||
this.captchaEnabled = res.captchaEnabled === undefined ? true : res.captchaEnabled;
|
this.captchaEnabled =
|
||||||
|
res.captchaEnabled === undefined ? true : res.captchaEnabled;
|
||||||
if (this.captchaEnabled) {
|
if (this.captchaEnabled) {
|
||||||
this.codeUrl = "data:image/gif;base64," + res.img;
|
this.codeUrl = "data:image/gif;base64," + res.img;
|
||||||
this.loginForm.uuid = res.uuid;
|
this.loginForm.uuid = res.uuid;
|
||||||
@@ -131,38 +200,110 @@ export default {
|
|||||||
getCookie() {
|
getCookie() {
|
||||||
const username = Cookies.get("username");
|
const username = Cookies.get("username");
|
||||||
const password = Cookies.get("password");
|
const password = Cookies.get("password");
|
||||||
const rememberMe = Cookies.get('rememberMe')
|
const rememberMe = Cookies.get("rememberMe");
|
||||||
this.loginForm = {
|
this.loginForm = {
|
||||||
username: username === undefined ? this.loginForm.username : username,
|
username: username === undefined ? this.loginForm.username : username,
|
||||||
password: password === undefined ? this.loginForm.password : decrypt(password),
|
password:
|
||||||
rememberMe: rememberMe === undefined ? false : Boolean(rememberMe)
|
password === undefined ? this.loginForm.password : decrypt(password),
|
||||||
|
rememberMe: rememberMe === undefined ? false : Boolean(rememberMe),
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
handleLogin() {
|
handleLogin() {
|
||||||
this.$refs.loginForm.validate(valid => {
|
this.$refs.loginForm.validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
if (this.loginForm.rememberMe) {
|
if (this.loginForm.rememberMe) {
|
||||||
Cookies.set("username", this.loginForm.username, { expires: 30 });
|
Cookies.set("username", this.loginForm.username, { expires: 30 });
|
||||||
Cookies.set("password", encrypt(this.loginForm.password), { expires: 30 });
|
Cookies.set("password", encrypt(this.loginForm.password), {
|
||||||
Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 });
|
expires: 30,
|
||||||
|
});
|
||||||
|
Cookies.set("rememberMe", this.loginForm.rememberMe, {
|
||||||
|
expires: 30,
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
Cookies.remove("username");
|
Cookies.remove("username");
|
||||||
Cookies.remove("password");
|
Cookies.remove("password");
|
||||||
Cookies.remove('rememberMe');
|
Cookies.remove("rememberMe");
|
||||||
}
|
}
|
||||||
this.$store.dispatch("Login", this.loginForm).then(() => {
|
this.$store
|
||||||
this.$router.push({ path: this.redirect || "/" }).catch(()=>{});
|
.dispatch("Login", this.loginForm)
|
||||||
}).catch(() => {
|
.then(() => {
|
||||||
this.loading = false;
|
this.$router.push({ path: this.redirect || "/" }).catch(() => {});
|
||||||
if (this.captchaEnabled) {
|
})
|
||||||
this.getCode();
|
.catch(() => {
|
||||||
}
|
this.loading = false;
|
||||||
});
|
if (this.captchaEnabled) {
|
||||||
|
this.getCode();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
},
|
||||||
|
// 生成二维码
|
||||||
|
qrcode(url) {
|
||||||
|
// 前端根据 URL 生成微信支付二维码
|
||||||
|
document.getElementById("qrcodeImg").innerHTML = "";
|
||||||
|
return new QRCode("qrcodeImg", {
|
||||||
|
width: 200,
|
||||||
|
height: 200,
|
||||||
|
text: url,
|
||||||
|
colorDark: "#000",
|
||||||
|
colorLight: "#fff",
|
||||||
|
});
|
||||||
|
},
|
||||||
|
registrationLink(path) {
|
||||||
|
this.centerDialogVisible = true;
|
||||||
|
},
|
||||||
|
// 是人脸核实
|
||||||
|
facialVerification(path) {
|
||||||
|
this.centerDialogVisible = false;
|
||||||
|
this.pathVal = path;
|
||||||
|
// clearInterval(this.timer);
|
||||||
|
selectIdentityAuthenticaEIDtoken().then((res) => {
|
||||||
|
this.closeImgs = true;
|
||||||
|
this.buttonReg = false;
|
||||||
|
let url = res.data.Url;
|
||||||
|
this.eidTokens = {
|
||||||
|
eidToken: res.data.EidToken,
|
||||||
|
};
|
||||||
|
this.timer = setInterval(() => {
|
||||||
|
this.getSelectPCEIDtokenStatus(this.eidTokens);
|
||||||
|
}, 10000);
|
||||||
|
this.qrcode(url);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 不用人脸核实
|
||||||
|
noFacialVerification(path) {
|
||||||
|
this.$router.push(path);
|
||||||
|
},
|
||||||
|
// H5轮询获取E证通Token状态
|
||||||
|
getSelectPCEIDtokenStatus(data) {
|
||||||
|
selectPCEIDtokenStatus(data).then((res) => {
|
||||||
|
if (res.data.certificationStatus == 0) {
|
||||||
|
// this.$router.push(this.pathVal);
|
||||||
|
this.$router.push({
|
||||||
|
path:this.pathVal,
|
||||||
|
query:{
|
||||||
|
identityNo:res.data.identityNo,
|
||||||
|
name:res.data.name
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 关闭弹框
|
||||||
|
closeImg() {
|
||||||
|
clearInterval(this.timer);
|
||||||
|
this.closeImgs = false;
|
||||||
|
this.buttonReg = true;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
beforeDestroy() {
|
||||||
|
// 清除计时器
|
||||||
|
if (this.timer) {
|
||||||
|
clearInterval(this.timer);
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@@ -172,23 +313,28 @@ export default {
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|
||||||
.leftBox {
|
.leftBox {
|
||||||
width: 50%;
|
width: 50%;
|
||||||
height: 90%;
|
height: 90%;
|
||||||
|
|
||||||
.leftIcon {
|
.leftIcon {
|
||||||
height: 10%;
|
height: 20%;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin: 5% 10% 1% 15%;
|
margin: 0% 10% 1% 15%;
|
||||||
|
|
||||||
.Icon {
|
.Icon {
|
||||||
width: 45px;
|
width: 100px;
|
||||||
height: 45px;
|
height: 105px;
|
||||||
background-image: url("../assets/images/mediate.svg");
|
background-image: url("../assets/images/logos.png");
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
}
|
}
|
||||||
|
|
||||||
div {
|
div {
|
||||||
font-size: 17px;
|
font-size: 18px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.leftImage {
|
.leftImage {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 90%;
|
height: 90%;
|
||||||
@@ -198,7 +344,7 @@ export default {
|
|||||||
background-size: cover;
|
background-size: cover;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.rightBox {
|
.rightBox {
|
||||||
width: 50%;
|
width: 50%;
|
||||||
height: 90%;
|
height: 90%;
|
||||||
@@ -207,6 +353,7 @@ export default {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.title {
|
.title {
|
||||||
margin: 0px auto 30px auto;
|
margin: 0px auto 30px auto;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
@@ -219,36 +366,43 @@ export default {
|
|||||||
background: #ffffff;
|
background: #ffffff;
|
||||||
width: 400px;
|
width: 400px;
|
||||||
padding: 25px 25px 5px 25px;
|
padding: 25px 25px 5px 25px;
|
||||||
|
|
||||||
.el-input {
|
.el-input {
|
||||||
height: 38px;
|
height: 38px;
|
||||||
|
|
||||||
input {
|
input {
|
||||||
height: 38px;
|
height: 38px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.input-icon {
|
.input-icon {
|
||||||
height: 39px;
|
height: 39px;
|
||||||
width: 14px;
|
width: 14px;
|
||||||
margin-left: 2px;
|
margin-left: 2px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.login-tip {
|
.login-tip {
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
color: #bfbfbf;
|
color: #bfbfbf;
|
||||||
}
|
}
|
||||||
|
|
||||||
.login-code {
|
.login-code {
|
||||||
width: 33%;
|
width: 33%;
|
||||||
height: 38px;
|
height: 38px;
|
||||||
float: right;
|
float: right;
|
||||||
|
|
||||||
img {
|
img {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-login-footer {
|
.el-login-footer {
|
||||||
background-color: rgb(126, 131, 135);
|
background-color: rgb(126, 131, 135);
|
||||||
height: 40px;
|
height: 55px;
|
||||||
line-height: 40px;
|
line-height: 55px;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -257,6 +411,16 @@ export default {
|
|||||||
font-family: Arial;
|
font-family: Arial;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
letter-spacing: 1px;
|
letter-spacing: 1px;
|
||||||
|
|
||||||
|
div {
|
||||||
|
height: 30%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.registerImg {
|
||||||
|
border: 1px solid #c0c0c0;
|
||||||
|
width: 350px;
|
||||||
|
height: 250px;
|
||||||
}
|
}
|
||||||
.login-code-img {
|
.login-code-img {
|
||||||
height: 38px;
|
height: 38px;
|
||||||
|
|||||||
@@ -0,0 +1,110 @@
|
|||||||
|
<template>
|
||||||
|
<div style="width: 100%; height: 100%">
|
||||||
|
<div id="placeholder"></div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { getOnlyoffice, saveOnlyOfficeFile } from "@/api/onlyoffice/onlyoffice";
|
||||||
|
import { setToken } from "@/utils/auth";
|
||||||
|
import store from "@/store";
|
||||||
|
import axios from "axios";
|
||||||
|
export default {
|
||||||
|
props: [],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
config: {},
|
||||||
|
flag: 0,
|
||||||
|
userId: store.getters.userId,
|
||||||
|
websock: null,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
destroyed() {
|
||||||
|
//页面销毁时关闭ws连接
|
||||||
|
if (this.websock) {
|
||||||
|
this.websock.close(); // 关闭websocket
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getConfig(id) {
|
||||||
|
let edit = "edit";
|
||||||
|
if (this.flag == 0) {
|
||||||
|
edit = "view";
|
||||||
|
} else {
|
||||||
|
edit = "edit";
|
||||||
|
}
|
||||||
|
axios
|
||||||
|
.get(
|
||||||
|
`http://121.40.189.20:9090/onlyOfficeConfig/${edit}/${id}/${this.userId}/desktop/true/tiaojieprod`
|
||||||
|
)
|
||||||
|
.then((res) => {
|
||||||
|
this.config = res.data;
|
||||||
|
this.config.editorConfig.callbackUrl = this.config.editorConfig.callbackUrl + "/" + id;
|
||||||
|
console.log(this.config,"OOOOOOOOOOOOOOOOOOOOOOOOOOO");
|
||||||
|
|
||||||
|
// this.config.callbackUrl = this.config.callbackUrl + `/${this.userId}`;
|
||||||
|
var docEditor = new DocsAPI.DocEditor("placeholder", this.config);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
//初始化weosocket
|
||||||
|
initWebSocket() {
|
||||||
|
if (typeof WebSocket === "undefined") {
|
||||||
|
alert("您的浏览器不支持WebSocket");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const wsuri = `ws://121.40.189.20:9090/api/websocket/${this.userId}`; // websocket地址
|
||||||
|
this.websock = new WebSocket(wsuri);
|
||||||
|
this.websock.onopen = this.websocketonopen;
|
||||||
|
this.websock.onmessage = this.websocketonmessage;
|
||||||
|
this.websock.onerror = this.websocketonerror;
|
||||||
|
this.websock.onclose = this.websocketclose;
|
||||||
|
},
|
||||||
|
//连接成功
|
||||||
|
websocketonopen() {
|
||||||
|
console.log("WebSocket连接成功");
|
||||||
|
},
|
||||||
|
//接收后端返回的数据
|
||||||
|
websocketonmessage(e) {
|
||||||
|
let dataJson = e.data;
|
||||||
|
if (dataJson != "conn_success") {
|
||||||
|
dataJson = JSON.parse(dataJson);
|
||||||
|
}
|
||||||
|
if (dataJson.caseId) {
|
||||||
|
saveOnlyOfficeFile({
|
||||||
|
caseAppliId: Number(dataJson.caseId),
|
||||||
|
annexName: dataJson.fileName,
|
||||||
|
annexPath: dataJson.filePath,
|
||||||
|
onlyOfficeFileId: dataJson.fileId,
|
||||||
|
}).then((res) => {
|
||||||
|
this.websock.send();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// 在这里使用后端返回的数据,对数据进行处理渲染
|
||||||
|
},
|
||||||
|
//连接建立失败重连
|
||||||
|
websocketonerror(e) {
|
||||||
|
console.log(`连接失败的信息:`, e);
|
||||||
|
this.initWebSocket(); // 连接失败后尝试重新连接
|
||||||
|
},
|
||||||
|
//关闭连接
|
||||||
|
websocketclose(e) {
|
||||||
|
console.log("断开连接", e);
|
||||||
|
},
|
||||||
|
/**是否从视频会议跳转,是处理token */
|
||||||
|
async getToken() {
|
||||||
|
setToken(this.$route.query.token);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
async mounted() {
|
||||||
|
if (this.$route.query.token) {
|
||||||
|
await this.getToken();
|
||||||
|
}
|
||||||
|
let id = this.$route.query.id;
|
||||||
|
this.flag = this.$route.query.flag;
|
||||||
|
this.getConfig(id);
|
||||||
|
this.initWebSocket();
|
||||||
|
},
|
||||||
|
watch: {},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped></style>
|
||||||
@@ -1,9 +1,13 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="register">
|
<div class="register">
|
||||||
|
<div class="leftIcon">
|
||||||
|
<div class="Icon"></div>
|
||||||
|
<div>智慧调解系统</div>
|
||||||
|
</div>
|
||||||
<el-form ref="registerForm" :model="registerForm" :rules="registerRules" class="register-form">
|
<el-form ref="registerForm" :model="registerForm" :rules="registerRules" class="register-form">
|
||||||
<h3 class="title">若依后台管理系统</h3>
|
<h3 class="title">智慧调解系统注册</h3>
|
||||||
<el-form-item prop="userName">
|
<el-form-item prop="userName">
|
||||||
<el-input v-model="registerForm.userName" type="text" auto-complete="off" placeholder="账号">
|
<el-input v-model="registerForm.userName" type="text" auto-complete="off" @blur="changeInput" placeholder="账号">
|
||||||
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
|
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -19,15 +23,45 @@
|
|||||||
<svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" />
|
<svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" />
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item prop="nationality">
|
||||||
|
<el-select v-model="registerForm.nationality" placeholder="请选择国籍" auto-complete="off" style="width: 100%;">
|
||||||
|
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
|
||||||
|
<el-option v-for="item in nationalityList" :key="item.id" :label="item.value" :value="item.id">
|
||||||
|
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item prop="idType">
|
||||||
|
<el-select v-model="registerForm.idType" placeholder="证件类型" auto-complete="off" style="width: 100%;">
|
||||||
|
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
|
||||||
|
<el-option v-for="item in idTypeList" :key="Number(item.dictValue)" :label="item.dictLabel" :value="Number(item.dictValue)">
|
||||||
|
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item prop="identityNo">
|
<el-form-item prop="identityNo">
|
||||||
<el-input v-model="registerForm.identityNo" type="text" auto-complete="off" placeholder="身份证号码">
|
<el-input v-model="registerForm.identityNo" type="text" auto-complete="off" placeholder="证件号码">
|
||||||
|
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item prop="identityNo" v-if="registerForm.idType === 1">
|
||||||
|
<el-input v-model="registerForm.identityNo" type="text" auto-complete="off" placeholder="护照号码">
|
||||||
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
|
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item prop="email">
|
<el-form-item prop="email">
|
||||||
<el-input v-model="registerForm.email" type="text" auto-complete="off" placeholder="邮箱">
|
<el-input v-model="registerForm.email" type="text" auto-complete="off" placeholder="邮箱" style="width:63%;">
|
||||||
<svg-icon slot="prefix" icon-class="email" class="el-input__icon input-icon" />
|
<svg-icon slot="prefix" icon-class="email" class="el-input__icon input-icon" />
|
||||||
</el-input>
|
</el-input>
|
||||||
|
<div class="register-code">
|
||||||
|
<el-button type="primary" :disabled="emailDisabled" @click="getEmailNumber(registerForm.email)">{{ emailText
|
||||||
|
}}</el-button>
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item prop="emailVerifyCode">
|
||||||
|
<el-input v-model="registerForm.emailVerifyCode" type="text" auto-complete="off" placeholder="邮箱验证码">
|
||||||
|
<svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />
|
||||||
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item prop="name">
|
<el-form-item prop="name">
|
||||||
<el-input v-model="registerForm.name" type="text" auto-complete="off" placeholder="用户名">
|
<el-input v-model="registerForm.name" type="text" auto-complete="off" placeholder="用户名">
|
||||||
@@ -77,14 +111,14 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<!-- 底部 -->
|
<!-- 底部 -->
|
||||||
<div class="el-register-footer">
|
<!-- <div class="el-register-footer">
|
||||||
<span>Copyright © 2018-2023 ruoyi.vip All Rights Reserved.</span>
|
<span>Copyright © 2018-2023 ruoyi.vip All Rights Reserved.</span>
|
||||||
</div>
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { getCodeImg, register, sendCode, wxregister } from "@/api/login";
|
import { getCodeImg, register, sendCode, wxregister,verifyUserName,getIdType,sendEmailCode } from "@/api/login";
|
||||||
import { listRoleNotoken } from "@/api/system/role.js"
|
import { listRoleNotoken } from "@/api/system/role.js"
|
||||||
export default {
|
export default {
|
||||||
name: "Register",
|
name: "Register",
|
||||||
@@ -98,7 +132,9 @@ export default {
|
|||||||
};
|
};
|
||||||
return {
|
return {
|
||||||
codeText: "发送验证码",
|
codeText: "发送验证码",
|
||||||
|
emailText:"发送验证码",
|
||||||
codeDisabled: false,
|
codeDisabled: false,
|
||||||
|
emailDisabled:false,
|
||||||
codeUrl: "",
|
codeUrl: "",
|
||||||
registerForm: {
|
registerForm: {
|
||||||
userName: "",
|
userName: "",
|
||||||
@@ -107,11 +143,21 @@ export default {
|
|||||||
confirmPassword: "",
|
confirmPassword: "",
|
||||||
code: "",
|
code: "",
|
||||||
uuid: "",
|
uuid: "",
|
||||||
|
nationality:0,
|
||||||
|
idType:0,
|
||||||
|
identityNo:"",
|
||||||
|
name:""
|
||||||
},
|
},
|
||||||
registerRules: {
|
registerRules: {
|
||||||
username: [
|
userName: [
|
||||||
{ required: true, trigger: "blur", message: "请输入您的账号" },
|
{ required: true, trigger: "blur", message: "请输入您的账号" },
|
||||||
{ min: 2, max: 20, message: '用户账号长度必须介于 2 和 20 之间', trigger: 'blur' }
|
{ min: 2, max: 20, message: '用户账号长度必须介于 2 和 20 之间', trigger: 'blur' },
|
||||||
|
{
|
||||||
|
pattern:
|
||||||
|
/^[0-9a-zA-Z]*$/g,
|
||||||
|
message: '只能输入英文或者数字',
|
||||||
|
trigger: 'blur',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
password: [
|
password: [
|
||||||
{ required: true, trigger: "blur", message: "请输入您的密码" },
|
{ required: true, trigger: "blur", message: "请输入您的密码" },
|
||||||
@@ -125,18 +171,18 @@ export default {
|
|||||||
identityNo: [
|
identityNo: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: '被申请人身份证号不能为空',
|
message: '证件号码不能为空',
|
||||||
trigger: 'blur',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
pattern:
|
|
||||||
/^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/,
|
|
||||||
message: '请输入正确的身份证号码',
|
|
||||||
trigger: 'blur',
|
trigger: 'blur',
|
||||||
},
|
},
|
||||||
|
// {
|
||||||
|
// pattern:
|
||||||
|
// /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/,
|
||||||
|
// message: '请输入正确的身份证号码',
|
||||||
|
// trigger: 'blur',
|
||||||
|
// },
|
||||||
],
|
],
|
||||||
email: [
|
email: [
|
||||||
{ required: true, trigger: "blur", message: "请再次输入您的密码" },
|
{ required: true, trigger: "blur", message: "请输入您的邮箱" },
|
||||||
{
|
{
|
||||||
pattern:
|
pattern:
|
||||||
/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/,
|
/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/,
|
||||||
@@ -163,24 +209,59 @@ export default {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
verifyCode: [
|
verifyCode: [
|
||||||
{ required: true, trigger: "blur", message: "请输入验证码" },
|
{ required: true, trigger: "blur", message: "请输入短信验证码" },
|
||||||
|
],
|
||||||
|
emailVerifyCode:[
|
||||||
|
{ required: true, trigger: "blur", message: "请输入邮箱验证码" },
|
||||||
|
],
|
||||||
|
idType: [
|
||||||
|
{ required: true, trigger: "blur", message: "请选择证件类型" },
|
||||||
|
],
|
||||||
|
nationality: [
|
||||||
|
{ required: true, trigger: "blur", message: "请选择国籍" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
loading: false,
|
loading: false,
|
||||||
captchaEnabled: true,
|
captchaEnabled: true,
|
||||||
roleList: []
|
roleList: [],
|
||||||
|
nationalityList:[
|
||||||
|
{
|
||||||
|
value:'境内',
|
||||||
|
id:0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value:'境外',
|
||||||
|
id:1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
idTypeList:[
|
||||||
|
|
||||||
|
]
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getCode();
|
this.getCode();
|
||||||
this.getListRole();
|
this.getListRole();
|
||||||
|
this.getIdTypeFn();
|
||||||
|
this.registerForm.identityNo = this.$route.query.identityNo;
|
||||||
|
this.registerForm.name = this.$route.query.name;
|
||||||
|
console.log(this.$route.query.identityNo)
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
changeInput(){
|
||||||
|
verifyUserName({userName:this.registerForm.userName})
|
||||||
|
},
|
||||||
|
/** 获取证件类型 */
|
||||||
|
getIdTypeFn(){
|
||||||
|
getIdType().then(res=>{
|
||||||
|
this.idTypeList = res.data;
|
||||||
|
})
|
||||||
|
},
|
||||||
/**获取角色 */
|
/**获取角色 */
|
||||||
getListRole() {
|
getListRole() {
|
||||||
listRoleNotoken().then(res => {
|
listRoleNotoken().then(res => {
|
||||||
console.log(res, "PPPPPPPPPPPPPPPPPPPPPPPPPPPP");
|
const roleList = res.data.filter((item) => item.roleName == '申请人' || item.roleName == '被申请人');
|
||||||
this.roleList = res.data;
|
this.roleList = roleList;
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
getCode() {
|
getCode() {
|
||||||
@@ -197,8 +278,8 @@ export default {
|
|||||||
if (valid) {
|
if (valid) {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
wxregister(this.registerForm).then(res => {
|
wxregister(this.registerForm).then(res => {
|
||||||
const username = this.registerForm.username;
|
const userName = this.registerForm.userName;
|
||||||
this.$alert("<font color='red'>恭喜你,您的账号 " + username + " 注册成功!</font>", '系统提示', {
|
this.$alert("<font color='red'>恭喜你,您的账号 " + userName + " 注册成功!</font>", '系统提示', {
|
||||||
dangerouslyUseHTMLString: true,
|
dangerouslyUseHTMLString: true,
|
||||||
type: 'success'
|
type: 'success'
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
@@ -237,6 +318,28 @@ export default {
|
|||||||
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
// 获取邮箱验证码
|
||||||
|
getEmailNumber(emailValue){
|
||||||
|
sendEmailCode({email:emailValue}).then(res=>{
|
||||||
|
if(res.code != 200){
|
||||||
|
this.$modal.msgError(res.msg);
|
||||||
|
return
|
||||||
|
}else{
|
||||||
|
this.$modal.msgSuccess('发送成功');
|
||||||
|
let time = 60;
|
||||||
|
let timer = setInterval(() => {
|
||||||
|
time--;
|
||||||
|
this.emailDisabled = true;
|
||||||
|
this.emailText = time + 's重试'
|
||||||
|
if (time == 0) {
|
||||||
|
clearInterval(timer)
|
||||||
|
this.emailText = '发送验证码'
|
||||||
|
this.emailDisabled = false;
|
||||||
|
}
|
||||||
|
}, 1000)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
@@ -246,9 +349,25 @@ export default {
|
|||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
height: 100%;
|
// height: 100%;
|
||||||
background-image: url("../assets/images/login-background.jpg");
|
// background-image: url("../assets/images/login-background.jpg");
|
||||||
|
background-image: url("../assets/images/login.svg");
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
|
.leftIcon {
|
||||||
|
position: relative;
|
||||||
|
width: 200px;
|
||||||
|
height: 155px;
|
||||||
|
top:-300px;
|
||||||
|
left: -300px;
|
||||||
|
|
||||||
|
.Icon {
|
||||||
|
width: 100px;
|
||||||
|
height: 105px;
|
||||||
|
background-image: url("../assets/images/logos.png");
|
||||||
|
background-size: cover;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.title {
|
.title {
|
||||||
@@ -261,7 +380,7 @@ export default {
|
|||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
background: #ffffff;
|
background: #ffffff;
|
||||||
width: 400px;
|
width: 400px;
|
||||||
height: 90%;
|
height: 80%;
|
||||||
padding: 25px 25px 5px 25px;
|
padding: 25px 25px 5px 25px;
|
||||||
|
|
||||||
// .el-input {
|
// .el-input {
|
||||||
|
|||||||
@@ -189,6 +189,13 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="证件号码" prop="idCard">
|
||||||
|
<el-input v-model="form.idCard" placeholder="请输入证件号码" maxlength="18" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="备注">
|
<el-form-item label="备注">
|
||||||
|
|||||||
@@ -0,0 +1,79 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<el-form :model="dynamicValidateForm" ref="dynamicValidateForm" label-width="100px" class="demo-dynamic">
|
||||||
|
<el-form-item prop="email" label="邮箱" :rules="[
|
||||||
|
{ required: true, message: '请输入邮箱地址', trigger: 'blur' },
|
||||||
|
{ type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }
|
||||||
|
]">
|
||||||
|
<el-input v-model="dynamicValidateForm.email"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<div v-for="(item, index) in dynamicValidateForm.domains" :key="item.key">
|
||||||
|
<el-form-item :label="'域名' + index" :prop="'domains.' + index + '.value.name'" :rules="{
|
||||||
|
required: true, message: '域名不能为空', trigger: 'blur'
|
||||||
|
}">
|
||||||
|
<el-input v-model="item.value.name"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item :label="'链接' + index" :prop="'domains.' + index + '.value.url'" :rules="{
|
||||||
|
required: true, message: '链接不能为空', trigger: 'blur'
|
||||||
|
}">
|
||||||
|
<el-input v-model="item.value.url"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-button @click.prevent="removeDomain(item)">删除</el-button>
|
||||||
|
</div>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" @click="submitForm('dynamicValidateForm')">提交</el-button>
|
||||||
|
<el-button @click="addDomain">新增域名</el-button>
|
||||||
|
<el-button @click="resetForm('dynamicValidateForm')">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dynamicValidateForm: {
|
||||||
|
domains: [{
|
||||||
|
value: {
|
||||||
|
name: "",
|
||||||
|
url: ""
|
||||||
|
}
|
||||||
|
}],
|
||||||
|
email: ''
|
||||||
|
},
|
||||||
|
data: { "applicant": { "id": 123, "caseAppliId": 5453163805296176, "userId": null, "applicantDeptId": null, "code": null, "compLegalPerson": null, "roleType": 1, "groupOrder": 2, "operatorFlag": 0, "phone": "17691225077", "email": "1129801211@qq.com", "name": "白贵勇", "home": "西安", "address": "西安", "idCard": "612429198708193335", "idType": null, "nationality": null, "birth": null, "sex": null, "resName": null }, "applicantAgent": null, "res": { "id": 124, "caseAppliId": 5453163805296176, "userId": null, "applicantDeptId": null, "code": null, "compLegalPerson": null, "roleType": 3, "groupOrder": 2, "operatorFlag": 0, "phone": "18792927508", "email": "1322446236@qq.com", "name": "王琼", "home": "西安", "address": "西安", "idCard": "14050219970814622X", "idType": null, "nationality": null, "birth": null, "sex": null, "resName": null }, "resAgent": null }
|
||||||
|
};
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
submitForm(formName) {
|
||||||
|
this.$refs[formName].validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
alert('submit!');
|
||||||
|
console.log(this.dynamicValidateForm);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
console.log('error submit!!');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
resetForm(formName) {
|
||||||
|
this.$refs[formName].resetFields();
|
||||||
|
},
|
||||||
|
removeDomain(item) {
|
||||||
|
var index = this.dynamicValidateForm.domains.indexOf(item)
|
||||||
|
if (index !== -1) {
|
||||||
|
this.dynamicValidateForm.domains.splice(index, 1)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
addDomain() {
|
||||||
|
this.dynamicValidateForm.domains.push({
|
||||||
|
value: {
|
||||||
|
name: "",
|
||||||
|
key: Date.now()
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -11,13 +11,13 @@ const name = process.env.VUE_APP_TITLE || '调解系统' // 网页标题
|
|||||||
|
|
||||||
const port = process.env.port || process.env.npm_config_port || 80 // 端口
|
const port = process.env.port || process.env.npm_config_port || 80 // 端口
|
||||||
|
|
||||||
// const API = 'http://121.40.189.20:9001' //生产
|
// const API = 'http://121.40.189.20:7001' //生产
|
||||||
const API = 'http://121.40.189.20:6001' //测试
|
const API = 'http://121.40.189.20:6001' //测试
|
||||||
// const API = 'http://192.168.3.18:6001' //B
|
// const API = 'http://192.168.3.18:6001' //B
|
||||||
// const API = 'http://172.16.0.237:6001' //Q
|
// const API = 'http://172.16.0.237:6001' //Q
|
||||||
// const API = 'http://172.16.1.43:6001' //w
|
// const API = 'http://172.16.1.26:6001' //w
|
||||||
|
|
||||||
// vue.config.js 配置说明
|
// vue.config.js 配置说明
|
||||||
//官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions
|
//官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions
|
||||||
// 这里只列一部分,具体配置参考文档
|
// 这里只列一部分,具体配置参考文档
|
||||||
module.exports = {
|
module.exports = {
|
||||||
@@ -39,8 +39,10 @@ module.exports = {
|
|||||||
port: port,
|
port: port,
|
||||||
open: true,
|
open: true,
|
||||||
proxy: {
|
proxy: {
|
||||||
// detail: https://cli.vuejs.org/config/#devserver-proxy
|
// detail: https://cli.vuejs.org/config/#devserver-proxy
|
||||||
[process.env.VUE_APP_BASE_API]: {
|
[process.env.VUE_APP_BASE_API]: {
|
||||||
|
// target: `http://192.168.3.77:8080`,
|
||||||
|
// target: `http://121.40.189.20:9001`,
|
||||||
target: API,
|
target: API,
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
pathRewrite: {
|
pathRewrite: {
|
||||||
@@ -59,7 +61,6 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
configureWebpack: {
|
configureWebpack: {
|
||||||
name: name,
|
name: name,
|
||||||
devtool: '#eval-source-map',
|
|
||||||
resolve: {
|
resolve: {
|
||||||
alias: {
|
alias: {
|
||||||
'@': resolve('src')
|
'@': resolve('src')
|
||||||
|
|||||||