Merge branch 'dev' into gyj

This commit is contained in:
gyj
2024-01-20 18:15:27 +08:00
7 changed files with 463 additions and 140 deletions
+2 -1
View File
@@ -9,7 +9,8 @@
"build:prod": "vue-cli-service build",
"build:stage": "vue-cli-service build --mode staging",
"preview": "node build/index.js --preview",
"lint": "eslint --ext .js,.vue src"
"lint": "eslint --ext .js,.vue src",
"dev_t": "set NODE_OPTIONS=\"--openssl-legacy-provider\" & npm run dev\n"
},
"husky": {
"hooks": {
+16
View File
@@ -151,6 +151,14 @@ export function msCaseFile(data) {
data: data,
})
}
//生成调解书
export function mediation(data) {
return request({
url: "/caseApplication/mediation",
method: "post",
data: data,
})
}
//申请人和被申请人签收调解书
export function msCaseSign(data) {
return request({
@@ -159,3 +167,11 @@ export function msCaseSign(data) {
data: data,
})
}
//确认调解书
export function confirmMediation(data) {
return request({
url: "/caseApplication/confirmMediation",
method: "post",
data: data,
})
}
+18 -2
View File
@@ -129,7 +129,9 @@
:timeConfirmData="timeConfirmData" @getList="getList" :queryParams="queryParams"></timeConfirm>
<!-- 待调解 -->
<mediation @cancelMediation="cancelMediation" :mediationVisable="mediationVisable"
:mediationData="mediationData" @getList="getList" :queryParams="queryParams"></mediation>
:mediationData="mediationData" @getList="getList" :queryParams="queryParams"></mediation>
<confirmMediation @cancelConfirmTion="cancelConfirmTion" :confirmTionVisable="confirmTionVisable"
:confirmTionData="confirmTionData" @getList="getList" :queryParams="queryParams"></confirmMediation>
</div>
</template>
@@ -151,6 +153,7 @@ import confirmMediator from './components/confirmMediator.vue'
import departmentMediator from './components/departmentMediator.vue'
import timeConfirm from './components/timeConfirm.vue'
import mediation from './components/mediation.vue'
import confirmMediation from './components/confirmMediation.vue'
export default {
name: "caseList",
dicts: ["case_flow_node"],
@@ -167,7 +170,8 @@ export default {
confirmMediator,
departmentMediator,
timeConfirm,
mediation
mediation,
confirmMediation
},
data() {
return {
@@ -207,6 +211,7 @@ export default {
caseFlowNumber:{},//案件流程数据
caselogDataArr:[],//案件日志数据
flagLoading: true, //案件日志弹框loading
confirmTionVisable:false,//确认调解书弹窗
mediatorData:{},
flag: null,
caseData: {},
@@ -221,6 +226,7 @@ export default {
departmentData: {},
timeConfirmVisable: false,
timeConfirmData: {},
confirmTionData:{},
buttonList: []
};
},
@@ -261,6 +267,7 @@ export default {
this.mediationClick(val)
}else if(type == 10){
// 确认调解书
this.confirmMediation(val)
}else if(type == 11){
// 签名
}else if(type == 12){
@@ -349,6 +356,11 @@ export default {
this.mediationVisable = true;
this.mediationData = val;
},
/** 确认调解书 */
confirmMediation(val){
this.confirmTionVisable = true;
this.confirmTionData = val;
},
getDetail(parms) {
caseApplicationSelectById(parms).then((res) => {
this.formPayDetail = res.data;
@@ -425,6 +437,10 @@ export default {
cancelMediation(){
this.timeConfirmVisable = false;
},
/** 取消确认调解弹窗 */
cancelConfirmTion(){
this.confirmTionVisable = false;
},
cancelMediation(){
this.mediationVisable = false;
},
@@ -0,0 +1,218 @@
<template>
<div>
<el-dialog
title="确认调解书"
v-if="confirmTionVisable"
:visible="confirmTionVisable"
@close="cancel"
width="800px"
append-to-body
:destroy-on-close="true"
center
>
<el-form ref="form" :model="formData" label-width="180px">
<div class="caseInfo">案件信息:</div>
<el-row>
<el-col :span="12">
<el-form-item label="案件编号:" prop="caseNum">
<el-input v-model="formData.caseNum" placeholder="请输入案件编号" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="申请人:" prop="affiliate.applicationOrganName">
<el-input v-model="formData.affiliate.applicationOrganName" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="被申请人:" prop="respondentName">
<el-input v-model="formData.affiliate.respondentName" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="案件标的:" prop="caseSubjectAmount">
<el-input
v-model="formData.caseSubjectAmount"
placeholder="请输入案件标的"
:disabled="true"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="调解费用:" prop="feePayable">
<el-input v-model="formData.feePayable" placeholder="请输入仲裁费用" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="调解员:" prop="mediatorName">
<el-input v-model="formData.mediatorName" placeholder="请输入" :disabled="true" />
</el-form-item>
</el-col>
</el-row>
<div class="payupload">
<span>上传修改后调解书</span>
<div class="uploadBtn">
<el-upload
class="upload-demo"
ref="upload"
:action="UploadUrl()"
:headers="headers"
:data="filedata"
:on-preview="handlePreview"
:on-remove="handleRemove"
:on-change="beforeUpload"
:on-success="handlSuccess"
:file-list="fileList"
>
<el-button slot="trigger" size="small" type="primary">选取文件</el-button>
<!-- <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传到服务器</el-button> -->
<div slot="tip" class="el-upload__tip">只能上传word文件</div>
</el-upload>
</div>
</div>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel" class="endbutton1">
<span>取 消</span>
</el-button>
<el-button @click="submitMediator" class="endbutton1">
<span>确 认</span>
</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { casePay, confirmPayDig } from "@/api/pay/pay";
import { caseApplicationSelectById,confirmMediation } from "@/api/caseManagement/caseManagement.js";
import { getToken } from "@/utils/auth";
export default {
props: ["confirmTionVisable", "queryParams", "confirmTionData"],
data() {
return {
fileList: [],
formData: {
affiliate: {}
},
annexId:null,
headers: {
Authorization: "Bearer " + getToken()
},
filedata: {
annexType: 7
}
};
},
methods: {
/** 获取案件详情信息 */
caseApplicationSelectByIdFn(data) {
caseApplicationSelectById(data).then(res => {
this.formData = res.data;
});
},
UploadUrl() {
return window.location.origin + "/API/common/upload";
},
beforeUpload(flie, fileList) {
this.fileList = fileList;
},
// 文件上传成功
handlSuccess(res, file) {
this.annexId = res.annexId;
},
submitMediator() {
confirmMediation({
caseAppliId: this.confirmTionData.id,
caseFlowId: this.confirmTionData.caseFlowId,
annexId: this.annexId
}).then(res => {
this.$modal.msgSuccess("成功");
this.cancel();
this.$emit("getList", this.queryParams);
});
},
handleRemove(file, fileList) {},
handlePreview(file) {},
cancel() {
this.$emit("cancelConfirmTion");
}
},
watch: {
confirmTionVisable(val) {
if (val) {
this.annexId = '';
this.caseApplicationSelectByIdFn({
id: this.confirmTionData.id
});
}
}
}
};
</script>
<style lang="scss" scoped>
.payType {
height: 80px;
line-height: 80px;
display: flex;
.icon-weixinzhifu {
font-size: 24px;
color: #27a56f;
margin-right: 15px;
}
.icon-zhifubao {
font-size: 24px;
color: #1d76cc;
}
}
.paySelectType {
margin-top: 20px;
margin-bottom: 20px;
}
.payupload {
display: flex;
.uploadBtn {
margin-left: 20px;
}
}
.payImg {
width: 100%;
display: flex;
justify-content: center;
}
.payTitle {
margin-top: 20px;
width: 100%;
text-align: center;
}
::v-deep .el-dialog {
width: 800px;
background: #ffffff;
border-radius: 20px;
}
.endbutton {
width: 154px;
height: 37px;
background: #ffffff;
border: 1px solid #d0d0d0;
border-radius: 19px;
span {
width: 31px;
height: 13px;
font-size: 16px;
font-family: Microsoft YaHei;
font-weight: 400;
color: #959595;
}
}
</style>
+206 -134
View File
@@ -1,149 +1,221 @@
<template>
<div>
<el-dialog :title="title" :visible="mediationVisable" @close="cancel" center :distroy-on-close="true" width="1000px">
<el-form ref="form" :model="formData" label-width="180px">
<div class="caseInfo">案件信息:</div>
<el-divider></el-divider>
<el-row>
<el-col :span="12">
<el-form-item label="案件编号:" prop="caseNum">
<el-input v-model="formData.caseNum" placeholder="请输入案件编号" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="申请人:" prop="applicationOrganName">
<el-input v-model="formData.affiliate.applicationOrganName" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="被申请人:" prop="respondentName">
<el-input v-model="mediationData.respondentName" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="案件标的:" prop="caseSubjectAmount">
<el-input v-model="formData.caseSubjectAmount" placeholder="请输入案件标的" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="调解费用:" prop="feePayable">
<el-input v-model="formData.feePayable" placeholder="请输入仲裁费用" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="调解员:" prop="mediatorName">
<el-input v-model="formData.mediatorName" placeholder="请输入" :disabled="true" />
</el-form-item>
</el-col>
</el-row>
<el-col :span="24">
<el-form-item label="申请人案件证据:">
<div v-if="applicateArr.length == 0">申请人暂未提供证据!</div>
<div v-else v-for="(item, index) in applicateArr" :key="index">
<a href="#" @click="toFile(item, index)" style="color: blue">
{{ item.annexName }}
</a>
</div>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="被申请人案件证据:">
<div v-if="quiltArr.length == 0">被申请人暂未提供证据!</div>
<div v-for="(item, index) in quiltArr" :key="index">
<a href="#" @click="toFile1(item, index)" style="color: blue">
{{ item.annexName }}
</a>
</div>
</el-form-item>
</el-col>
<el-col :span="24" v-if="recordArr.length > 0">
<el-form-item label="庭审笔录:">
<div v-for="(item, index) in recordArr" :key="index" style="color: blue">
<a href="#" @click="toFile2(item, index)">{{ item.annexName }}</a>
</div>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="预约会议房间号:">
<div>{{ roomId }}</div>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="开庭时间:">
<div>{{ formData.hearDate }}</div>
</el-form-item>
</el-col>
<!-- </el-form> -->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel" class="endbutton1"><span>取 消</span></el-button>
<el-button @click="submitMediation" class="endbutton1"><span>提 交</span></el-button>
<div>
<el-dialog
:title="title"
:visible="mediationVisable"
@close="cancel"
center
:distroy-on-close="true"
width="1000px"
>
<el-form ref="form" :model="formData" label-width="180px">
<div class="caseInfo">案件信息:</div>
<el-divider></el-divider>
<el-row>
<el-col :span="12">
<el-form-item label="案件编号:" prop="caseNum">
<el-input v-model="formData.caseNum" placeholder="请输入案件编号" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="申请人:" prop="affiliate.applicationOrganName">
<el-input v-model="formData.affiliate.applicationOrganName" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="被申请人:" prop="respondentName">
<el-input v-model="mediationData.respondentName" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="案件标的:" prop="caseSubjectAmount">
<el-input
v-model="formData.caseSubjectAmount"
placeholder="请输入案件标的"
:disabled="true"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="调解费用:" prop="feePayable">
<el-input v-model="formData.feePayable" placeholder="请输入仲裁费用" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="调解员:" prop="mediatorName">
<el-input v-model="formData.mediatorName" placeholder="请输入" :disabled="true" />
</el-form-item>
</el-col>
</el-row>
<el-col :span="24">
<el-form-item label="申请人案件证据:">
<div v-if="applicateArr.length == 0">申请人暂未提供证据!</div>
<div v-else v-for="(item, index) in applicateArr" :key="index">
<a href="#" @click="toFile(item, index)" style="color: blue">{{ item.annexName }}</a>
</div>
</el-dialog>
</div>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="被申请人案件证据:">
<div v-if="quiltArr.length == 0">被申请人暂未提供证据!</div>
<div v-for="(item, index) in quiltArr" :key="index">
<a href="#" @click="toFile1(item, index)" style="color: blue">{{ item.annexName }}</a>
</div>
</el-form-item>
</el-col>
<el-col :span="24" v-if="recordArr.length > 0">
<el-form-item label="庭审笔录:">
<div v-for="(item, index) in recordArr" :key="index" style="color: blue">
<a href="#" @click="toFile2(item.annexPath)">{{ item.annexName }}</a>
</div>
</el-form-item>
</el-col>
<el-col :span="24" v-if="mediationType">
<el-form-item label="预约会议房间号:">
<div>{{ formData.roomId }}</div>
</el-form-item>
</el-col>
<el-col :span="24" v-if="mediationType">
<el-form-item label="开庭时间:">
<div>{{ formData.hearDate }}</div>
</el-form-item>
</el-col>
<!-- </el-form> -->
</el-form>
<el-button @click="openmeeting" type="primary" v-if="mediationType">发起会议</el-button>
<el-button
@click="openArbitrationresults"
type="primary"
v-if="this.recordArr.length <= 0"
>确认会议结果</el-button>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel" class="endbutton1">
<span>取 消</span>
</el-button>
<el-button
@click="submitMediation"
:disabled="this.recordArr.length <= 0"
class="endbutton1"
>
<span>提 交</span>
</el-button>
</div>
</el-dialog>
</div>
</template>
<!-- hearDate -->
<script>
import { caseApplicationSelectById } from '@/api/caseManagement/caseManagement.js'
import { reserveConferenceList } from '@/api/metting/metting.js'
import {
caseApplicationSelectById,
mediation
} from "@/api/caseManagement/caseManagement.js";
import { getUserProfile } from "@/api/system/user";
import { reserveConferenceList } from "@/api/metting/metting.js";
export default {
props: ["mediationVisable", "mediationData", "queryParams"],
data() {
return {
loanStartDate: "",
title: "开庭调解",
applicateArr:[],
quiltArr:[],
recordArr:[],
roomId:null,
startTime:null,
formData:{}
};
props: ["mediationVisable", "mediationData", "queryParams"],
data() {
return {
loanStartDate: "",
title: "开庭调解",
applicateArr: [],
quiltArr: [],
recordArr: [],
roomId: null,
startTime: null,
formData: {
affiliate: {}
},
user: "",
userId: null,
flieList: [],
mediationType: true
};
},
watch: {
mediationVisable(val) {
this.recordArr = [];
if (this.mediationData.mediationMethod == "1") {
this.title = "开庭调解";
this.mediationType = true;
} else if (this.mediationData.mediationMethod == "2") {
this.title = "书面调解";
this.mediationType = false;
}
if (val) {
this.caseApplicationSelectByIdFn({
id: this.mediationData.id
});
this.getUser();
}
}
},
created() {},
methods: {
/** 获取案件详情信息 */
caseApplicationSelectByIdFn(data) {
caseApplicationSelectById(data).then(res => {
this.formData = res.data;
res.data.caseAttachList.forEach(item => {
if (item.annexType == 6) {
this.recordArr.push(item);
}
});
});
},
watch: {
mediationVisable(val) {
if (val) {
this.caseApplicationSelectByIdFn({
id:this.mediationData.id
})
this.reserveConferenceListFn({
caseId:this.mediationData.id
})
}
},
/** 获取用户信息 */
getUser() {
getUserProfile().then(response => {
this.user = response.data.userName;
this.userId = response.data.userId;
});
},
created() {
if(this.mediationData.mediationMethod == '1'){
this.title = '开庭调解'
}else{
this.title = '书面调解'
}
/** 发起会议 */
openmeeting() {
window.open(
`http://localhost:8080/#/home?name=${this.user}&id=${this.formData.id}&userId=${this.userId}&roomId=${this.formData.roomId}`
// `https://txroom.xayunmei.com/#/home?name=${this.user}&id=${this.formData.id}&userId=${this.userId}&roomId=${this.roomId}`
);
},
methods: {
/** 获取案件详情信息 */
caseApplicationSelectByIdFn(data){
caseApplicationSelectById(data).then(res=>{
this.formData = res.data;
})
},
/** 获取已经预约的会议 */
reserveConferenceListFn(data){
reserveConferenceList(data).then(res=>{
console.log(res,"LLLLLLLLLLLLLLLLLLLLLLLLLLL");
})
},
cancel() {
this.$emit("cancelMediation");
},
submitMediation() {
}
/**提交仲裁结果 */
openArbitrationresults() {
caseApplicationSelectById({
id: this.mediationData.id
}).then(res => {
res.data.caseAttachList.forEach(item => {
if (item.annexType == 6) {
this.recordArr.push(item);
}
});
});
},
/** 庭审笔录附件 */
toFile2(annexPath) {
window.open(window.location.origin + "/API" + annexPath, "_black");
},
/** 生成调解书 */
mediationFn(data) {
mediation(data).then(res => {
this.$modal.msgSuccess("成功");
this.$emit("cancelMediation");
this.$emit("getList", this.queryParams);
});
},
cancel() {
this.$emit("cancelMediation");
},
submitMediation() {
this.mediationFn({
id: this.mediationData.id,
caseFlowId: this.mediationData.caseFlowId
});
}
}
};
</script>
<style lang="scss" scoped>
.steps {
display: flex;
flex-wrap: wrap;
}</style>
display: flex;
flex-wrap: wrap;
}
</style>
@@ -77,7 +77,7 @@ export default {
Authorization: "Bearer " + getToken(),
},
filedata: {
annexType: 8,
annexType: 4,
},
submitForm:{
payType:1,
+2 -2
View File
@@ -12,10 +12,10 @@ const name = process.env.VUE_APP_TITLE || '调解系统' // 网页标题
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:6001' //测试
const API = 'http://121.40.189.20:6001' //测试
// const API = 'http://192.168.3.18:6001' //B
// const API = 'http://192.168.3.77:9001' //Q
const API = 'http://172.16.1.14:6001' //w
// const API = 'http://172.16.1.14:6001' //w
// vue.config.js 配置说明
//官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions