This commit is contained in:
hhl123456789
2024-03-01 18:14:32 +08:00
19 changed files with 944 additions and 955 deletions
+29 -2
View File
@@ -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
```
+5 -2
View File
@@ -2,7 +2,7 @@
"name": "ruoyi", "name": "ruoyi",
"version": "3.8.6", "version": "3.8.6",
"description": "调解系统", "description": "调解系统",
"author": "若依", "author": "智慧仲裁",
"license": "MIT", "license": "MIT",
"scripts": { "scripts": {
"dev": "vue-cli-service serve", "dev": "vue-cli-service serve",
@@ -48,13 +48,16 @@
"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",
"moment": "^2.29.4",
"nprogress": "0.2.0", "nprogress": "0.2.0",
"qrcodejs2": "0.0.2",
"quill": "1.3.7", "quill": "1.3.7",
"screenfull": "5.0.2", "screenfull": "5.0.2",
"sortablejs": "1.10.2", "sortablejs": "1.10.2",
"vue": "2.6.12", "vue": "2.6.12",
"vue-count-to": "1.0.13", "vue-count-to": "1.0.13",
"vue-cropper": "0.5.5", "vue-cropper": "0.5.5",
"vue-esign": "^1.1.4",
"vue-meta": "2.4.0", "vue-meta": "2.4.0",
"vue-router": "3.4.9", "vue-router": "3.4.9",
"vuedraggable": "2.24.3", "vuedraggable": "2.24.3",
@@ -87,4 +90,4 @@
"> 1%", "> 1%",
"last 2 versions" "last 2 versions"
] ]
} }
Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 394 KiB

+2 -2
View File
@@ -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: {
+2 -1
View File
@@ -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: {
+2 -7
View File
@@ -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" />
+6 -3
View File
@@ -4,7 +4,7 @@ import Cookies from 'js-cookie'
import Element from 'element-ui' import Element from 'element-ui'
import './assets/styles/element-variables.scss' import './assets/styles/element-variables.scss'
import './assets/icons' // icon
import '@/assets/styles/index.scss' // global css import '@/assets/styles/index.scss' // global css
import '@/assets/styles/ruoyi.scss' // ruoyi css import '@/assets/styles/ruoyi.scss' // ruoyi css
import App from './App' import App from './App'
@@ -14,6 +14,8 @@ 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 './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";
@@ -37,8 +39,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 +54,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 +67,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()
/** /**
+4 -2
View File
@@ -100,7 +100,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 +115,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' }
} }
+1
View File
@@ -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)
} }
} }
-1
View File
@@ -50,7 +50,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是否是一个非空数组
-40
View File
@@ -24,7 +24,6 @@ export function checkPermi(value) {
return false return false
} }
} }
/** /**
* 角色权限校验 * 角色权限校验
* @param {Array} value 校验值 * @param {Array} value 校验值
@@ -48,43 +47,4 @@ export function checkRole(value) {
console.error(`need roles! Like checkRole="['admin','editor']"`) console.error(`need roles! Like checkRole="['admin','editor']"`)
return false return false
} }
}
/**
* 状态权限校验
* @param {Number} value 校验值
* @returns {Boolean}
*/
export function statusRole(value) {
let caseStatusStr = sessionStorage.getItem('caseStatus');
let caseStatus = [];
caseStatus = JSON.parse(caseStatusStr);
if (caseStatus.length == 0) {
return false
}
// 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
} else {
return false
}
} }
+2 -5
View File
@@ -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,
@@ -1,148 +1,148 @@
<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)
} }
}, },
}, },
methods: { methods: {
submitForm() { submitForm() {
this.$refs["courtReviewform"].validate((valid) => { this.$refs["courtReviewform"].validate((valid) => {
if (valid) { if (valid) {
let paramsdata = { let paramsdata = {
id: this.caseAcceptanceData.id, id: this.caseAcceptanceData.id,
caseFlowId: this.caseAcceptanceData.caseFlowId, caseFlowId: this.caseAcceptanceData.caseFlowId,
batchNumber: "" batchNumber: ""
} }
let mergeValue = Object.assign({}, this.courtReviewform, paramsdata) let mergeValue = Object.assign({}, this.courtReviewform, paramsdata)
accept(mergeValue).then((res) => { accept(mergeValue).then((res) => {
this.$modal.msgSuccess("确认成功"); this.$modal.msgSuccess("确认成功");
this.$emit("getList", this.queryParams) this.$emit("getList", this.queryParams)
this.cancel(); this.cancel();
}) })
.catch((err) => { }); .catch((err) => { });
} }
}); });
}, },
cancel() { cancel() {
this.$emit("cancelAcceptance"); this.$emit("cancelAcceptance");
}, },
}, },
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
::v-deep .el-dialog { ::v-deep .el-dialog {
background: #ffffff; background: #ffffff;
border-radius: 20px; border-radius: 20px;
} }
.el-form-item { .el-form-item {
margin-left: 10%; margin-left: 10%;
} }
.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;
// line-height: 48px; // line-height: 48px;
} }
} }
.nowarbitrator { .nowarbitrator {
margin-left: 10%; margin-left: 10%;
} }
::v-deep .el-form-item__error { ::v-deep .el-form-item__error {
left: 90px; left: 90px;
} }
</style> </style>
@@ -1,366 +1,366 @@
<template> <template>
<div> <div>
<el-dialog title="归档详情" :visible="showarchiveDetails" @close="cancel" :destroy-on-close="true" center> <el-dialog title="归档详情" :visible="showarchiveDetails" @close="cancel" :destroy-on-close="true" center>
<div class="loading" v-if="flagLoadingS"> <div class="loading" v-if="flagLoadingS">
<i class="el-icon-loading"></i> <i class="el-icon-loading"></i>
</div> </div>
<div v-else> <div v-else>
<el-tabs v-model="activeName" @tab-click="handleClick"> <el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="案件信息" name="five"></el-tab-pane> <el-tab-pane label="案件信息" name="five"></el-tab-pane>
<el-tab-pane label="申请人案件证据资料" name="first"></el-tab-pane> <el-tab-pane label="申请人案件证据资料" name="first"></el-tab-pane>
<!-- <el-tab-pane label="被申请人案件证据资料" name="second"></el-tab-pane> --> <!-- <el-tab-pane label="被申请人案件证据资料" name="second"></el-tab-pane> -->
<el-tab-pane label="调解书" name="third"></el-tab-pane> <el-tab-pane label="调解书" name="third"></el-tab-pane>
<el-tab-pane label="案件视频" name="fourth" v-if="caseFilingData.mediationMethod == '1'"></el-tab-pane> <el-tab-pane label="案件视频" name="fourth" v-if="caseFilingData.mediationMethod == '1'"></el-tab-pane>
<el-tab-pane label="庭审笔录" name="six" v-if="caseFilingData.mediationMethod == '1'"></el-tab-pane> <el-tab-pane label="庭审笔录" name="six" v-if="caseFilingData.mediationMethod == '1'"></el-tab-pane>
</el-tabs> </el-tabs>
<div v-show="activeName=='first'"> <div v-show="activeName=='first'">
<div v-for="(item,index) in detailsAwardNum.caseAttachList" :key="index" v-if="item.annexType==2" style="margin-top:10px;"> <div v-for="(item,index) in detailsAwardNum.caseAttachList" :key="index" v-if="item.annexType==2" style="margin-top:10px;">
<el-link target="_blank" type="primary" :href="fileURL+item.annexPath">{{item.annexName}}</el-link> <el-link target="_blank" type="primary" :href="fileURL+item.annexPath">{{item.annexName}}</el-link>
</div> </div>
<el-empty v-if="isNoData(detailsAwardNum.caseAttachList,2) == 0" description="暂无数据"></el-empty> <el-empty v-if="isNoData(detailsAwardNum.caseAttachList,2) == 0" description="暂无数据"></el-empty>
</div> </div>
<!-- <div v-show="activeName=='second'"> <!-- <div v-show="activeName=='second'">
<div v-for="item in detailsAwardNum.caseAttachList" v-if="item.annexType==6" style="margin-top:10px;"> <div v-for="item in detailsAwardNum.caseAttachList" v-if="item.annexType==6" style="margin-top:10px;">
<el-link target="_blank" type="primary" :href="fileURL+item.annexPath">{{item.annexName}}</el-link> <el-link target="_blank" type="primary" :href="fileURL+item.annexPath">{{item.annexName}}</el-link>
</div> </div>
<el-empty v-if="isNoData(detailsAwardNum.caseAttachList,6) == 0" description="暂无数据"></el-empty> <el-empty v-if="isNoData(detailsAwardNum.caseAttachList,6) == 0" description="暂无数据"></el-empty>
</div> --> </div> -->
<div v-show="activeName=='third'"> <div v-show="activeName=='third'">
<div v-for="item in detailsAwardNum.caseAttachList" v-if="item.annexType==7" style="margin-top:10px;"> <div v-for="item in detailsAwardNum.caseAttachList" v-if="item.annexType==7" style="margin-top:10px;">
<el-link target="_blank" type="primary" :href="fileURL+item.annexPath">{{item.annexName}}</el-link> <el-link target="_blank" type="primary" :href="fileURL+item.annexPath">{{item.annexName}}</el-link>
</div> </div>
<el-empty v-if="isNoData(detailsAwardNum.caseAttachList,7) == 0" description="暂无数据"></el-empty> <el-empty v-if="isNoData(detailsAwardNum.caseAttachList,7) == 0" description="暂无数据"></el-empty>
</div> </div>
<div v-show="activeName=='fourth'"> <div v-show="activeName=='fourth'">
<div style="margin-top:10px;" v-for="(item,index) in detailsAwardNum.caseAttachList" v-if="item.annexType==5"> <div style="margin-top:10px;" v-for="(item,index) in detailsAwardNum.caseAttachList" v-if="item.annexType==5">
<video style="background-color: #181717;width: 350px;height: 200px;margin: 10px;" :key="index" :src="fileURL+item.annexPath" controls="controls"></video> <video style="background-color: #181717;width: 350px;height: 200px;margin: 10px;" :key="index" :src="fileURL+item.annexPath" controls="controls"></video>
</div> </div>
<el-empty v-if="isNoData(detailsAwardNum.caseAttachList,5) == 0" description="暂无数据"></el-empty> <el-empty v-if="isNoData(detailsAwardNum.caseAttachList,5) == 0" description="暂无数据"></el-empty>
</div> </div>
<div v-show="activeName=='six'"> <div v-show="activeName=='six'">
<div v-for="item in detailsAwardNum.caseAttachList" v-if="item.annexType==6" style="margin-top:10px;"> <div v-for="item in detailsAwardNum.caseAttachList" v-if="item.annexType==6" style="margin-top:10px;">
<el-link target="_blank" type="primary" :href="fileURL+item.annexPath">{{item.annexName}}</el-link> <el-link target="_blank" type="primary" :href="fileURL+item.annexPath">{{item.annexName}}</el-link>
</div> </div>
<el-empty v-if="isNoData(detailsAwardNum.caseAttachList,6) == 0" description="暂无数据"></el-empty> <el-empty v-if="isNoData(detailsAwardNum.caseAttachList,6) == 0" description="暂无数据"></el-empty>
</div> </div>
<div v-show="activeName=='five'"> <div v-show="activeName=='five'">
<el-form :disabled="true" :model="detailsAwardNum" label-width="130px" <el-form :disabled="true" :model="detailsAwardNum" label-width="130px"
class="demo-ruleForm"> class="demo-ruleForm">
<el-row> <el-row>
<div style="display: inline-flex"> <div style="display: inline-flex">
<div class="infoIcon"></div> <div class="infoIcon"></div>
<div class="caseInfo">案件信息:</div> <div class="caseInfo">案件信息:</div>
</div> </div>
<el-divider></el-divider> <el-divider></el-divider>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="申请人调解请求"> <el-form-item label="申请人调解请求">
<el-input v-model="detailsAwardNum.arbitratClaims" placeholder="请输入申请人调解诉求" type="textarea" <el-input v-model="detailsAwardNum.arbitratClaims" placeholder="请输入申请人调解诉求" type="textarea"
:autosize="{ minRows: 4, maxRows: 8 }" /> :autosize="{ minRows: 4, maxRows: 8 }" />
</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="事实和理由">
<el-input v-model="detailsAwardNum.facts" placeholder="请输入事实和理由" type="textarea" <el-input v-model="detailsAwardNum.facts" placeholder="请输入事实和理由" type="textarea"
:autosize="{ minRows: 4, maxRows: 8 }" /> :autosize="{ minRows: 4, maxRows: 8 }" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="申请人案件证据资料上传:" prop="applicantEvidence"> <el-form-item label="申请人案件证据资料上传:" prop="applicantEvidence">
<el-upload class="upload-demo" ref="fileupload" accept=".png,.jpg,.doc,.docx,.txt,.pdf" <el-upload class="upload-demo" ref="fileupload" accept=".png,.jpg,.doc,.docx,.txt,.pdf"
:action="UploadUrl()" :on-success="handlSuccess" :on-remove="handleRemove" :on-preview="handlePreview" :action="UploadUrl()" :on-success="handlSuccess" :on-remove="handleRemove" :on-preview="handlePreview"
:before-remove="beforeRemove" :data="filedata" :headers="headers" multiple :limit="50" :before-remove="beforeRemove" :data="filedata" :headers="headers" multiple :limit="50"
:on-exceed="handleExceed" :file-list="fileList"> :on-exceed="handleExceed" :file-list="fileList">
<el-button size="small" type="primary">点击上传</el-button> <el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip"> <div slot="tip" class="el-upload__tip">
文件支持上传.jpg,png,.doc,docx,.txt,.pdf文件 文件支持上传.jpg,png,.doc,docx,.txt,.pdf文件
</div> </div>
</el-upload> </el-upload>
</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-for="(item, index) in detailsAwardNum.caseAttachList" :key="index" v-if="item.annexType == 2"> <div v-for="(item, index) in detailsAwardNum.caseAttachList" :key="index" v-if="item.annexType == 2">
<div style="color: blue; cursor: pointer" @click="fileDetil(item.annexPath)"> <div style="color: blue; cursor: pointer" @click="fileDetil(item.annexPath)">
{{ item.annexName }} {{ item.annexName }}
</div> </div>
</div> </div>
</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-for="(item, index) in detailsAwardNum.caseAttachList" :key="index" v-if="item.annexType == 3"> <div v-for="(item, index) in detailsAwardNum.caseAttachList" :key="index" v-if="item.annexType == 3">
<div style="color: blue; cursor: pointer" @click="fileDetil(item.annexPath)"> <div style="color: blue; cursor: pointer" @click="fileDetil(item.annexPath)">
{{ item.annexName }} {{ item.annexName }}
</div> </div>
</div> </div>
</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-for="(item, index) in detailsAwardNum.caseAttachList" :key="index" v-if="item.annexType == 7"> <div v-for="(item, index) in detailsAwardNum.caseAttachList" :key="index" v-if="item.annexType == 7">
<div style="color: blue; cursor: pointer" @click="fileDetil(item.annexPath)"> <div style="color: blue; cursor: pointer" @click="fileDetil(item.annexPath)">
{{ item.annexName }} {{ item.annexName }}
</div> </div>
</div> </div>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<div style="display: inline-flex"> <div style="display: inline-flex">
<div class="infoIcon"></div> <div class="infoIcon"></div>
<div class="caseInfo">双方信息:</div> <div class="caseInfo">双方信息:</div>
</div> </div>
<el-divider></el-divider> <el-divider></el-divider>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="选择机构或自然人" prop="affiliate.organizeFlag"> <el-form-item label="选择机构或自然人" prop="affiliate.organizeFlag">
<el-radio-group v-model="detailsAwardNum.affiliate.organizeFlag"> <el-radio-group v-model="detailsAwardNum.affiliate.organizeFlag">
<el-radio :label="0">自然人</el-radio> <el-radio :label="0">自然人</el-radio>
<el-radio :label="1">机构</el-radio> <el-radio :label="1">机构</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 1"> <el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 1">
<el-form-item label="申请机构名称"> <el-form-item label="申请机构名称">
<el-input v-model="detailsAwardNum.affiliate.applicationName" placeholder="请输入申请机构名称" /> <el-input v-model="detailsAwardNum.affiliate.applicationName" placeholder="请输入申请机构名称" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 0"> <el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 0">
<el-form-item label="申请人"> <el-form-item label="申请人">
<el-input v-model="detailsAwardNum.affiliate.applicationName" placeholder="请输入申请人姓名" /> <el-input v-model="detailsAwardNum.affiliate.applicationName" placeholder="请输入申请人姓名" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 1"> <el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 1">
<el-form-item label="统一社会信用代码"> <el-form-item label="统一社会信用代码">
<el-input v-model="detailsAwardNum.affiliate.code" placeholder="请输入统一社会信用代码" /> <el-input v-model="detailsAwardNum.affiliate.code" placeholder="请输入统一社会信用代码" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 0"> <el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 0">
<el-form-item label="申请人身份证号码"> <el-form-item label="申请人身份证号码">
<el-input v-model="detailsAwardNum.affiliate.code" placeholder="请输入申请人的身份证号" /> <el-input v-model="detailsAwardNum.affiliate.code" placeholder="请输入申请人的身份证号" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 0"> <el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 0">
<el-form-item label="申请人邮箱"> <el-form-item label="申请人邮箱">
<el-input v-model="detailsAwardNum.affiliate.applicationEmail" placeholder="请输入申请人邮箱" /> <el-input v-model="detailsAwardNum.affiliate.applicationEmail" placeholder="请输入申请人邮箱" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 0"> <el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 0">
<el-form-item label="申请人电话"> <el-form-item label="申请人电话">
<el-input v-model="detailsAwardNum.affiliate.applicationPhone" placeholder="请输入申请人联系电话" /> <el-input v-model="detailsAwardNum.affiliate.applicationPhone" placeholder="请输入申请人联系电话" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 1"> <el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 1">
<el-form-item label="法定代表人"> <el-form-item label="法定代表人">
<el-input v-model="detailsAwardNum.affiliate.compLegalPerson" placeholder="请输入法定代表人" /> <el-input v-model="detailsAwardNum.affiliate.compLegalPerson" placeholder="请输入法定代表人" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="申请人住所"> <el-form-item label="申请人住所">
<el-input v-model="detailsAwardNum.affiliate.applicantHome" placeholder="请输入申请人住所" /> <el-input v-model="detailsAwardNum.affiliate.applicantHome" placeholder="请输入申请人住所" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="申请人联系地址"> <el-form-item label="申请人联系地址">
<el-input v-model="detailsAwardNum.affiliate.applicantAddress" placeholder="请输入申请人联系地址" /> <el-input v-model="detailsAwardNum.affiliate.applicantAddress" placeholder="请输入申请人联系地址" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 1"> <el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 1">
<el-form-item label="代理人联系电话"> <el-form-item label="代理人联系电话">
<el-input v-model="detailsAwardNum.affiliate.contactTelphoneAgent" placeholder="请输入代理人联系电话" /> <el-input v-model="detailsAwardNum.affiliate.contactTelphoneAgent" placeholder="请输入代理人联系电话" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 0"> <el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 0">
<el-form-item label="代理人联系电话" prop="affiliate.contactTelphoneAgent"> <el-form-item label="代理人联系电话" prop="affiliate.contactTelphoneAgent">
<el-input v-model="detailsAwardNum.affiliate.contactTelphoneAgent" placeholder="请输入代理人联系电话" /> <el-input v-model="detailsAwardNum.affiliate.contactTelphoneAgent" placeholder="请输入代理人联系电话" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 1"> <el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 1">
<el-form-item label="代理人姓名" prop="affiliate.nameAgent"> <el-form-item label="代理人姓名" prop="affiliate.nameAgent">
<el-input v-model="detailsAwardNum.affiliate.nameAgent" placeholder="请输入代理人姓名" /> <el-input v-model="detailsAwardNum.affiliate.nameAgent" placeholder="请输入代理人姓名" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 0"> <el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 0">
<el-form-item label="代理人姓名" prop="affiliate.nameAgent"> <el-form-item label="代理人姓名" prop="affiliate.nameAgent">
<el-input v-model="detailsAwardNum.affiliate.nameAgent" placeholder="请输入代理人姓名" /> <el-input v-model="detailsAwardNum.affiliate.nameAgent" placeholder="请输入代理人姓名" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 1"> <el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 1">
<el-form-item label="代理人邮箱"> <el-form-item label="代理人邮箱">
<el-input v-model="detailsAwardNum.affiliate.agentEmail" placeholder="请输入代理人邮箱" /> <el-input v-model="detailsAwardNum.affiliate.agentEmail" placeholder="请输入代理人邮箱" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 0"> <el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 0">
<el-form-item label="代理人邮箱"> <el-form-item label="代理人邮箱">
<el-input v-model="detailsAwardNum.affiliate.agentEmail" placeholder="请输入代理人邮箱" /> <el-input v-model="detailsAwardNum.affiliate.agentEmail" placeholder="请输入代理人邮箱" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="被申请人姓名"> <el-form-item label="被申请人姓名">
<el-input v-model="detailsAwardNum.affiliate.respondentName" placeholder="请输入被申请人姓名" /> <el-input v-model="detailsAwardNum.affiliate.respondentName" placeholder="请输入被申请人姓名" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="被申请人联系电话" > <el-form-item label="被申请人联系电话" >
<el-input v-model="detailsAwardNum.affiliate.respondentPhone" placeholder="请输入被申请人联系电话" /> <el-input v-model="detailsAwardNum.affiliate.respondentPhone" placeholder="请输入被申请人联系电话" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="被申请人身份证号"> <el-form-item label="被申请人身份证号">
<el-input v-model="detailsAwardNum.affiliate.respondentIdentityNum" placeholder="请输入被申请人身份证号" /> <el-input v-model="detailsAwardNum.affiliate.respondentIdentityNum" placeholder="请输入被申请人身份证号" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="被申请人性别:"> <el-form-item label="被申请人性别:">
<el-radio-group v-model="detailsAwardNum.affiliate.respondentSex"> <el-radio-group v-model="detailsAwardNum.affiliate.respondentSex">
<el-radio :label="0">男</el-radio> <el-radio :label="0">男</el-radio>
<el-radio :label="1">女</el-radio> <el-radio :label="1">女</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="被申请人出生年月日:" prop="affiliate.respondentBirth"> <el-form-item label="被申请人出生年月日:" prop="affiliate.respondentBirth">
<el-date-picker v-model="detailsAwardNum.affiliate.respondentBirth" type="date" placeholder="被申请人出生年月日"> <el-date-picker v-model="detailsAwardNum.affiliate.respondentBirth" type="date" placeholder="被申请人出生年月日">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="被申请人申请人住所"> <el-form-item label="被申请人申请人住所">
<el-input v-model="detailsAwardNum.affiliate.respondentHome" placeholder="请输入被申请人申请人住所" /> <el-input v-model="detailsAwardNum.affiliate.respondentHome" placeholder="请输入被申请人申请人住所" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="被申请人邮箱"> <el-form-item label="被申请人邮箱">
<el-input v-model="detailsAwardNum.affiliate.respondentEmail" placeholder="请输入被申请人邮箱" /> <el-input v-model="detailsAwardNum.affiliate.respondentEmail" placeholder="请输入被申请人邮箱" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item v-for="item in detailsAwardNum.columnValueList" :label="item.name" :key="item.id"> <el-form-item v-for="item in detailsAwardNum.columnValueList" :label="item.name" :key="item.id">
<el-input type="textarea" v-model="item.value"></el-input> <el-input type="textarea" v-model="item.value"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
</div> </div>
</div> </div>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="cancel">取 消</el-button> <el-button @click="cancel">取 消</el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
export default { export default {
props: ["showarchiveDetails","detailsAwardNum","videoList","flagLoadingS","trialTranscripts","caseFilingData"], props: ["showarchiveDetails","detailsAwardNum","videoList","flagLoadingS","trialTranscripts","caseFilingData"],
components: { components: {
}, },
data() { data() {
return { return {
activeName: 'five', activeName: 'five',
fileURL: window.location.origin + "/API", fileURL: window.location.origin + "/API",
noData: false, noData: false,
filedata: { filedata: {
annexType: 2, annexType: 2,
}, },
fileList: [], fileList: [],
headers: { headers: {
Authorization: "Bearer " + getToken(), Authorization: "Bearer " + getToken(),
}, },
}; };
}, },
watch: { watch: {
showarchiveDetails: { showarchiveDetails: {
handler(val) { handler(val) {
if (val) { if (val) {
this.activeName = 'five' this.activeName = 'five'
// this.detailsAwardNum.affiliate.respondentSex = Number(this.detailsAwardNum.affiliate.respondentSex) // this.detailsAwardNum.affiliate.respondentSex = Number(this.detailsAwardNum.affiliate.respondentSex)
console.log(this.detailsAwardNum) console.log(this.detailsAwardNum)
} }
}, },
}, },
}, },
created(){ created(){
}, },
methods: { methods: {
isNoData(data,type){ isNoData(data,type){
let resNumber = 0 let resNumber = 0
if(data){ if(data){
let list = data.filter(item => item.annexType == type) let list = data.filter(item => item.annexType == type)
if(list){ if(list){
resNumber = list.length resNumber = list.length
} }
} }
return resNumber return resNumber
}, },
/** 查看证据 */ /** 查看证据 */
fileDetil(val) { fileDetil(val) {
window.open(this.fileURL + val); window.open(this.fileURL + val);
}, },
/** 文件上传地址 */ /** 文件上传地址 */
UploadUrl() { UploadUrl() {
return window.location.origin + "/API/common/upload"; return window.location.origin + "/API/common/upload";
}, },
/**文件上传成功*/ /**文件上传成功*/
handlSuccess(res, file) { handlSuccess(res, file) {
this.detailsAwardNum.caseAttachList.push({ this.detailsAwardNum.caseAttachList.push({
annexId: res.annexId, annexId: res.annexId,
}); });
}, },
/**文件超出个数限制时的钩子*/ /**文件超出个数限制时的钩子*/
handleExceed(files, fileList) { handleExceed(files, fileList) {
this.$message.warning( this.$message.warning(
`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length `当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length
} 个文件` } 个文件`
); );
}, },
// 删除文件之前的钩子,参数为上传的文件和文件列表,若返回 false 或者返回 Promise 且被 reject,则停止删除。 // 删除文件之前的钩子,参数为上传的文件和文件列表,若返回 false 或者返回 Promise 且被 reject,则停止删除。
beforeRemove(file, fileList) { beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${file.name}?`); return this.$confirm(`确定移除 ${file.name}?`);
}, },
handleRemove(file, fileList) { handleRemove(file, fileList) {
this.caseAttachListArr = this.caseAttachListArr.filter( this.caseAttachListArr = this.caseAttachListArr.filter(
(item) => item.annexId != file.annexId (item) => item.annexId != file.annexId
); );
}, },
handlePreview(file) { handlePreview(file) {
window.open( window.open(
window.location.origin + "/API" + file.certificatePath, window.location.origin + "/API" + file.certificatePath,
"_blank" "_blank"
); );
}, },
handleClick(tab, event) { handleClick(tab, event) {
}, },
cancel() { cancel() {
this.$emit("cancelDetail"); this.$emit("cancelDetail");
}, },
}, },
} }
</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: 850px; width: 850px;
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>
@@ -200,9 +200,9 @@ export default {
userId: this.userId userId: this.userId
}).then(res => { }).then(res => {
this.isSecretaryRole = res.data.isSecretaryRole; this.isSecretaryRole = res.data.isSecretaryRole;
if(this.recordArrMediate){ // if(this.recordArrMediate){
this.isSecretaryRole = false // this.isSecretaryRole = false
} // }
}) })
}, },
/**上传地址*/ /**上传地址*/
@@ -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>
@@ -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 && form.caseAttachList.length > 0"> <el-form-item label="申请人缴费凭证:" v-if="form.caseAttachList">
<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 && form.resCaseAttachList.length > 0"> <el-form-item label="被申请人缴费凭证:" v-if="form.resCaseAttachList">
<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>
+4 -3
View File
@@ -17,7 +17,7 @@ const API = 'http://121.40.189.20:7001' //测试
// 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.43: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')