Files
Arbitrate-Frontend/src/views/caseManagement/components/trialincourtDialog.vue
T

604 lines
21 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<div>
<el-dialog title="开庭审理" :visible="showtrialincourt" @close="cancel" :destroy-on-close="true">
<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="applicantName">
<el-input v-model="adjudicatename.applicantName" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="被申请人:" prop="respondentName">
<el-input v-model="adjudicatename.respondentName" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="借款开始日期:" prop="loanStartDate">
<el-date-picker v-model="formData.loanStartDate" type="datetime" placeholder="借款开始日期" :disabled="true">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="借款结束日期:" prop="loanEndDate">
<el-date-picker v-model="formData.loanEndDate" type="datetime" placeholder="借款结束日期" :disabled="true">
</el-date-picker>
</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="caseSubjectAmount">
<el-input
v-model="formData.caseSubjectAmount"
placeholder="请输入逾期天数"
/>
</el-form-item>
</el-col> -->
<el-col :span="12">
<el-form-item label="仲裁费用:" prop="feePayable">
<el-input v-model="adjudicatename.feePayable" placeholder="请输入仲裁费用" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="申请人主张欠本金:" prop="claimPrinciOwed">
<el-input v-model="formData.claimPrinciOwed" placeholder="请输入" :disabled="true" />
</el-form-item>
</el-col>
<!-- <el-col :span="12">
<el-form-item label="案件顾问:" prop="claimPrinciOwed">
<el-input v-model="formData.claimPrinciOwed" placeholder="请输入" />
</el-form-item>
</el-col> -->
<el-col :span="12">
<el-form-item label="案件状态:" prop="caseStatus">
<el-input v-model="formData.caseStatusName" placeholder="请输入" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="仲裁员:" prop="arbitratorName">
<el-input v-model="adjudicatename.arbitratorName" placeholder="请输入" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="开庭日期:" prop="hearDate">
<el-date-picker v-model="adjudicatename.hearDate" type="datetime" placeholder="开庭日期" :disabled="true">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<!-- <el-col :span="24">
<el-form-item label="案件资料:" prop="claimPrinciOwed">
<el-input v-model="formData.claimPrinciOwed" placeholder="请输入" />
</el-form-item>
</el-col> -->
<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>{{ startTime }}</div>
</el-form-item>
</el-col>
<!-- </el-form> -->
</el-form>
<el-button @click="openmeeting" type="primary">发起会议</el-button>
<el-button @click="openArbitrationresults" type="primary" v-if="this.recordArr.length <= 0">确认会议结果</el-button>
<div style="margin-top:20px;width:250px">
<el-upload
class="upload-demo"
ref="fileupload"
accept=".doc,.docx"
:action="UploadUrl()"
:on-success="handlSuccess"
:on-remove="handleRemove"
:on-preview="handlePreview"
:before-remove="beforeRemove"
:headers="headers"
:data="filedata"
multiple
:limit="3"
:on-exceed="handleExceed"
:before-upload="beforeAvatarUpload"
:file-list="fileList"
>
<el-button type="primary">上传案件笔录</el-button>
<div slot="tip" class="el-upload__tip">
文件支持上传.doc,docx文件
</div>
</el-upload>
</div>
<div slot="footer" class="dialog-footer">
<el-button class="endbutton" :disabled="(showsubmit && recordArr.length == 0) || form2.isAbsence==1" @click="submitResults">提交</el-button>
<el-button @click="cancel" class="endbutton1"><span>关 闭</span></el-button>
</div>
</el-dialog>
<el-dialog title="庭审笔录" :visible="showArbitrationresults" @close="closeArbitrationresults" center>
<el-form ref="form2" :model="form2" label-width="150px">
<!-- <el-col :span="12">
<el-form-item label="申请人是否缺席:" prop="isAbsence" :rules="[
{
required: true,
message: '请输入',
},
]">
<el-radio-group v-model="form2.isAbsence">
<el-radio :label="1">是</el-radio>
<el-radio :label="0">否</el-radio>
</el-radio-group>
</el-form-item>
</el-col> -->
<el-col :span="24">
<el-form-item label="被申请人是否缺席:" prop="appliIsAbsen" :rules="[
{
required: true,
message: '请输入',
},
]">
<el-radio-group v-model="form2.appliIsAbsen">
<el-radio :label="1">是</el-radio>
<el-radio :label="0">否</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="申请人是否缺席:" prop="isAbsence" :rules="[
{
required: true,
message: '请输入',
},
]">
<el-radio-group v-model="form2.isAbsence">
<el-radio :label="1">是</el-radio>
<el-radio :label="0">否</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="被申请人对上述材料的质证意见" prop="respondentOpinion">
<el-input type="textarea" :autosize="{ minRows: 6 }" v-model="form2.respondentOpinion" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="申请人对上述材料的质证意见" prop="applicantOpinion">
<el-input type="textarea" :autosize="{ minRows: 6 }" v-model="form2.applicantOpinion" placeholder="请输入" />
</el-form-item>
</el-col>
<!-- <el-col :span="24">
<el-form-item label="查明本案事实" prop="caseFacts">
<el-input type="textarea" :autosize="{ minRows: 6 }" v-model="form2.caseFacts" placeholder="请输入" />
</el-form-item>
</el-col> -->
<!-- <el-col :span="24">
<el-form-item label="本案争议焦点" prop="caseFocus">
<el-input type="textarea" :autosize="{ minRows: 6 }" v-model="form2.caseFocus" placeholder="请输入" />
</el-form-item>
</el-col> -->
<!-- <el-col :span="12">
<el-form-item label="被申请人质证意见:" prop="responCrossOpin" :rules="[
{
required: true,
message: '请输入',
trigger: 'blur',
},
]">
<el-input type="textarea" v-model="form2.responCrossOpin" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="申请人质证意见:" prop="applicaCrossOpin" :rules="[
{
required: true,
message: '请输入',
trigger: 'blur',
},
]">
<el-input type="textarea" v-model="form2.applicaCrossOpin" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="被申请人的答辩意见:" prop="responDefenOpini" :rules="[
{
required: true,
message: '请输入',
trigger: 'blur',
},
]">
<el-input type="textarea" v-model="form2.responDefenOpini" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="经庭审质证,对各方提供的证据认定如下:" prop="evidenDetermi" :rules="[
{
required: true,
message: '请输入',
trigger: 'blur',
},
]">
<el-input type="textarea" :autosize="{ minRows: 4 }" placeholder="请输入" v-model="form2.evidenDetermi">
</el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="仲裁庭经审理查明(写明仲裁庭认定的事实):" prop="factDetermi" :rules="[
{
required: true,
message: '请输入',
trigger: 'blur',
},
]">
<el-input type="textarea" :autosize="{ minRows: 4 }" placeholder="请输入" v-model="form2.factDetermi">
</el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="综上所述:" prop="caseSketch" :rules="[
{
required: true,
message: '请输入',
trigger: 'blur',
},
]">
<el-input type="textarea" autosize placeholder="请输入" v-model="form2.caseSketch">
</el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="本庭认为:" prop="arbitrateThink" :rules="[
{
required: true,
message: '请输入',
trigger: 'blur',
},
]">
<el-input type="textarea" autosize placeholder="请输入" v-model="form2.arbitrateThink">
</el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="裁决如下:" prop="rulingFollows" :rules="[
{
required: true,
message: '请输入',
trigger: 'blur',
},
]">
<el-input type="textarea" autosize placeholder="请输入" v-model="form2.rulingFollows">
</el-input>
</el-form-item>
</el-col> -->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="submitForm" class="endbutton">
<span>确定</span></el-button>
<el-button @click="closeArbitrationresults" class="endbutton1"><span>取 消</span></el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { getToken } from "@/utils/auth";
import { getUserProfile } from "@/api/system/user";
import {
writtenHear,
creatTrialRecord,
creatTrialRecordnew,
document,
} from "@/api/caseManagement/caseManagement.js";
import { reserveConferenceList } from '@/api/meeting/index.js'
export default {
props: ["showtrialincourt", "adjudicatename", "form", "queryParams"],
data() {
return {
formData: {},
headers: {
Authorization: "Bearer " + getToken(),
},
filedata: {
annexType: 7,
id:0
},
upLife:'',
user: "",
userId: 1,
showArbitrationresults: false,
form2: {
isAbsence:0,
appliIsAbsen:0
},
applicateArr: [], //申请人案件资料
quiltArr: [], //被申请人案件资料
recordArr: [], //笔录附件
showsubmit: true, //生成庭审笔录,方可提交
annexName: "", //笔录文件名
annexPath: "", //笔录文件地址
roomId:null,
startTime:"",
fileList:[]
};
},
watch: {
showtrialincourt: {
handler(val) {
if (val) {
this.reserveConferenceListFn({caseId:this.form.id});
this.getUser();
this.formData = this.form;
console.log(this.formData)
this.applicateArr = [];
this.quiltArr = [];
this.recordArr = [];
setTimeout(() => {
if (this.adjudicatename.caseAttachList.length > 0) {
this.adjudicatename.caseAttachList.forEach((item) => {
// 申请人案件附件
if (item.annexType == 2) {
this.applicateArr.push({
annexName: item.annexName,
annexPath: item.annexPath,
});
}
// 被申请人案件附件
if (item.annexType == 6) {
this.quiltArr.push({
annexName: item.annexName,
annexPath: item.annexPath,
});
}
// 笔录生成附件
if (item.annexType == 7) {
this.recordArr.push({
annexName: item.annexName,
annexPath: item.annexPath,
});
}
});
}
}, 1000);
}
},
},
},
created() {
},
methods: {
// 根据案件id查询会议号
reserveConferenceListFn(data){
reserveConferenceList(data).then(res=>{
this.roomId = res.data[0].roomId;
this.startTime = res.data[0].scheduleStartTime;
})
},
// 详情显示,展示申请人案件文件
toFile(item, index) {
window.open(
window.location.origin + "/API" + this.applicateArr[index].annexPath,
"_black"
);
},
// 被申请人文件
toFile1(item, index) {
window.open(
window.location.origin + "/API" + this.quiltArr[index].annexPath,
"_black"
);
},
// 庭审笔录附件
toFile2(item, index) {
window.open(
window.location.origin + "/API" + this.recordArr[index].annexPath,
"_black"
);
},
getUser() {
getUserProfile().then((response) => {
this.user = response.data.userName;
this.userId = response.data.userId;
});
},
// 打开会议
openmeeting() {
window.open(
// `http://localhost:8081/#/home?name=${this.user}&id=${this.formData.id}&userId=${this.userId}`
`https://txroom.xayunmei.com/#/home?name=${this.user}&id=${this.formData.id}&userId=${this.userId}&roomId=${this.roomId}`
);
},
// 提交仲裁结果
openArbitrationresults() {
this.showArbitrationresults = true;
},
closeArbitrationresults() {
this.showArbitrationresults = false;
},
// 提交庭审笔录弹框结果
submitForm() {
this.$refs["form2"].validate((valid) => {
if (valid) {
creatTrialRecordnew({
caseAppliId: this.formData.id,
// evidenDetermi: this.form2.evidenDetermi,
// factDetermi: this.form2.factDetermi,
// caseSketch: this.form2.caseSketch,
// arbitrateThink: this.form2.arbitrateThink,
// rulingFollows: this.form2.rulingFollows,
// isAbsence: this.form2.isAbsence,
// appliIsAbsen: this.form2.appliIsAbsen,
// responCrossOpin: this.form2.responCrossOpin,
// applicaCrossOpin: this.form2.applicaCrossOpin,
// responDefenOpini: this.form2.responDefenOpini,
isAbsence: this.form2.isAbsence,
appliIsAbsen: this.form2.appliIsAbsen,
respondentOpinion: this.form2.respondentOpinion,
applicantOpinion: this.form2.applicantOpinion,
// caseFacts: this.form2.caseFacts,
// caseFocus: this.form2.caseFocus
})
.then((res) => {
// console.log(res);
// res.data.caseAttachList.forEach((item) => {
// if (item.annexType == 7) {
// this.recordArr.push({
// annexName: item.annexName,
// annexPath: item.annexPath,
// });
// }
// });
this.$modal.msgSuccess("提交成功");
this.showsubmit = false;
this.closeArbitrationresults();
console.log(this.form2)
this.form2.respondentOpinion ="";
this.form2.applicantOpinion = "";
})
.catch((err) => { });
}
});
},
cancel() {
this.$emit("canceltrialincourt");
},
// 提交开庭审理结果
submitResults() {
if(this.fileList.length==0){
this.$message({
showClose: true,
message: '请先上传案件笔录',
type:'warning'
});
}else{
let id = this.formData.id;
document({
id: id,
}).then((res) => {
if (res.code == 200) {
this.$emit("getcaseApply", this.queryParams);
this.cancel();
this.fileList =[]
}
});
}
},
// 上传庭审笔录
UploadUrl() {
return window.location.origin + "/API/evidence/uploadRecord";
},
// 文件上传成功
handlSuccess(res, file) {
this.fileList.push(file)
},
// 文件列表移除文件时的钩子
handleRemove(file, fileList) {
},
handlePreview(file) {
},
// 删除文件之前的钩子,参数为上传的文件和文件列表,若返回 false 或者返回 Promise 且被 reject,则停止删除。
beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${file.name}?`);
},
// 文件超出个数限制时的钩子
handleExceed(files, fileList) {
this.$message.warning(
`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length
} 个文件`
);
},
beforeAvatarUpload(file){
this.filedata.id =this.formData.id
}
},
};
</script>
<style lang="scss" scoped>
::v-deep .el-dialog {
width: 900px;
background: #ffffff;
border-radius: 20px;
}
.endbutton {
width: 154px;
height: 37px;
background: #488de2;
border-radius: 19px;
color: #ffffff;
span {
width: 96px;
height: 15px;
font-size: 16px;
font-family: Microsoft YaHei;
font-weight: 400;
color: #ffffff;
}
}
.endbutton1 {
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;
// }
}
.caseInfo {
font-size: 17px;
font-weight: 600;
}
</style>