39 Commits
Author SHA1 Message Date
gyj 06cd25c936 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Frontend into gyj 2024-05-31 08:56:48 +08:00
gyj b7fd6444b1 修改ip 2024-05-31 08:56:32 +08:00
hanchaoboandGitea d58fb3582c Merge branch 'hcb' of SH-Arbitrate/Arbitrate-Frontend into dev 2024-05-30 18:06:43 +08:00
hanchaobo 027fadfd36 bug修改 2024-05-30 18:06:12 +08:00
hanchaobo 377c33c6b5 bug修改 2024-05-30 18:00:30 +08:00
gaogaoyujieandGitea a15fffb8b1 Merge branch 'gyj' of SH-Arbitrate/Arbitrate-Frontend into dev 2024-05-30 16:18:06 +08:00
gyj 26e8b30555 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Frontend into gyj 2024-05-30 16:17:02 +08:00
gyj 7d8c96071d 修改短信bug 2024-05-30 16:16:41 +08:00
gaogaoyujieandGitea 9ab4d87e21 Merge branch 'gyj' of SH-Arbitrate/Arbitrate-Frontend into dev 2024-05-29 10:07:24 +08:00
gyj 59b8773ce0 修改冲突 2024-05-29 10:05:42 +08:00
gyj f4cec02f6e 短信修改 2024-05-29 10:01:34 +08:00
hanchaoboandGitea 002893cf07 Merge branch 'hcb' of SH-Arbitrate/Arbitrate-Frontend into dev 2024-05-29 09:56:19 +08:00
hanchaobo 1e85a8b4e8 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Frontend into hcb 2024-05-29 09:55:38 +08:00
hanchaobo 7c9d7010e1 邮箱界面 2024-05-29 09:55:27 +08:00
hanchaoboandGitea f291bda89e Merge branch 'hcb' of SH-Arbitrate/Arbitrate-Frontend into dev 2024-05-28 09:01:40 +08:00
hanchaobo e5390e9721 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Frontend into hcb 2024-05-28 09:00:35 +08:00
hanchaobo fea5e406b6 bug修改 2024-05-28 09:00:23 +08:00
hanchaoboandGitea b275c86bde Merge branch 'hcb' of SH-Arbitrate/Arbitrate-Frontend into dev 2024-05-24 11:13:25 +08:00
hanchaobo 28663c1341 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Frontend into hcb 2024-05-24 11:12:08 +08:00
hanchaobo 44d5f97807 案件新增,多人多机构 2024-05-24 11:11:58 +08:00
hanchaoboandGitea 5d9919fbfa Merge branch 'hcb' of SH-Arbitrate/Arbitrate-Frontend into dev 2024-05-20 16:58:15 +08:00
hanchaobo fb5f88710a Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Frontend into hcb 2024-05-20 16:56:48 +08:00
hanchaobo 7cf0427b56 裁决书上传无法更新问题 2024-05-20 16:56:38 +08:00
gaogaoyujieandGitea bede7d0dc2 Merge branch 'gyj' of SH-Arbitrate/Arbitrate-Frontend into dev 2024-05-17 15:56:20 +08:00
gyj dd8c361b67 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Frontend into gyj 2024-05-17 15:53:16 +08:00
gyj f7c098940b 修改新增页面样式 2024-05-17 15:52:46 +08:00
hanchaoboandGitea 240ee96a33 Merge branch 'hcb' of SH-Arbitrate/Arbitrate-Frontend into dev 2024-05-16 16:18:09 +08:00
hanchaobo d4c5610f53 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Frontend into hcb 2024-05-16 16:17:14 +08:00
hanchaobo 8b147a46f3 bug修改 2024-05-16 16:17:04 +08:00
gaogaoyujieandGitea f846f5bce2 Merge branch 'gyj' of SH-Arbitrate/Arbitrate-Frontend into dev 2024-05-16 16:12:03 +08:00
gyj 25f13bbbe9 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Frontend into gyj 2024-05-16 16:11:03 +08:00
gyj 5e8091a164 bug修改 2024-05-16 16:10:49 +08:00
hanchaobo b79b8520c1 禅道bug515 2024-05-15 18:07:08 +08:00
hanchaoboandGitea 0f27b71dce Merge branch 'hcb' of SH-Arbitrate/Arbitrate-Frontend into dev 2024-05-14 15:47:14 +08:00
hanchaobo fe5e2497a2 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Frontend into hcb 2024-05-14 15:45:59 +08:00
hanchaobo 8424561111 视频会议,onlyoffice 2024-05-14 15:45:47 +08:00
gaogaoyujieandGitea 349eed537c Merge branch 'gyj' of SH-Arbitrate/Arbitrate-Frontend into dev 2024-05-14 15:39:37 +08:00
gyj 421a8fded4 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Frontend into gyj 2024-05-14 15:38:01 +08:00
gyj 95ab58c156 修改测试bug 2024-05-14 15:37:44 +08:00
22 changed files with 1942 additions and 1159 deletions
+1
View File
@@ -7,6 +7,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<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]-->
<style>
html,
+8
View File
@@ -164,3 +164,11 @@ export function caseApplicationList(data) {
params: data
})
}
// 根据案件id查询当前登陆人是否为仲裁员
export function secretaryRoleByUserId(data) {
return request({
url: '/video/secretaryRoleByUserId',
method: 'get',
params: data
})
}
+31
View File
@@ -18,3 +18,34 @@ export function smsList(data,params) {
params:params
})
}
// 更新邮件发送记录
export function update(data) {
return request({
url: 'sendMailRecord/update',
})
}
// 分页查询短信
export function recordList(data) {
return request({
url: '/shortMessage/recordList',
method: 'get',
params: data
})
}
//更新短信内容
export function updateSendContent(data) {
return request({
url: 'shortMessage/updateSendContent',
method: 'post',
data: data,
})
}
// 重新发送短信
export function reSendShortMessage(data) {
return request({
url: 'shortMessage/reSendShortMessage',
method: 'post',
data: data,
})
}
+20
View File
@@ -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
})
}
+5
View File
@@ -61,6 +61,11 @@ export const constantRoutes = [
component: () => import('@/views/error/401'),
hidden: true
},
{
path: '/onlyoffice',
component: () => import('@/views/onlyoffice/onlyoffice'),
hidden: true
},
{
path: '',
component: Layout,
+1
View File
@@ -15,5 +15,6 @@ const getters = {
topbarRouters:state => state.permission.topbarRouters,
defaultRoutes:state => state.permission.defaultRoutes,
sidebarRouters:state => state.permission.sidebarRouters,
userId:state => state.user.userId,
}
export default getters
+4
View File
@@ -11,6 +11,9 @@ const user = {
},
mutations: {
SET_USERID:(state,userId) => {
state.userId = userId
},
SET_TOKEN: (state, token) => {
state.token = token
},
@@ -60,6 +63,7 @@ const user = {
}
commit('SET_NAME', user.userName)
commit('SET_AVATAR', avatar)
commit('SET_USERID',user.userId)
resolve(res)
}).catch(error => {
reject(error)
+16 -10
View File
@@ -5,7 +5,7 @@
<el-input style="width:180px" v-model="queryParams.caseNum" placeholder="请输入案件编号" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="案件批号" prop="caseNum">
<el-input style="width:180px" v-model="queryParams.batchNumber" placeholder="请输入案件批号" clearable @keyup.enter.native="handleQuery" />
<el-input style="width:180px" @input="handleInput" v-model="queryParams.batchNumber" placeholder="请输入案件批号" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<!-- <el-form-item label="申请人" prop="applicantName"> -->
<!-- <el-input
@@ -130,7 +130,7 @@
checkPermi(['caseManagement:list:pay']) && btnStatus
">缴费</el-button>
<el-button size="mini" type="text" icon="el-icon-zoom-in" @click="paymentconfirmationRow(scope.row)" v-if="checkPermi(['caseManagement:list:payconfirm']) && btnStatus&&scope.row.caseStatus==3">确认缴费</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="viewpaymentformRow(scope.row)" v-if="checkPermi(['caseManagement:list:detail'])">查看缴费单</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="viewpaymentformRow(scope.row)" v-if="checkPermi(['caseManagement:list:detail'])&&scope.row.caseStatus>2">查看缴费单</el-button>
<el-button size="mini" type="text" icon="el-icon-tickets" @click="evidenceListS(scope.row)" >证据清单</el-button>
<!-- <el-button
size="mini"
@@ -203,7 +203,7 @@
<el-button size="mini" type="text" icon="el-icon-edit"
v-if="scope.row.caseStatus == 16 && checkPermi(['caseManagement:list:archive']) && btnStatus"
@click="showCasefilingModel(scope.row, 6)">案件归档</el-button>
<el-button size="mini" type="text" icon="el-icon-tickets" @click="detailsAwardList(scope.row)">案件详情</el-button>
<!-- <el-button size="mini" type="text" icon="el-icon-tickets" @click="detailsAwardList(scope.row)">案件详情</el-button> -->
<!-- 暂时隐藏后期可能会放其他地方 -->
<!-- <el-button v-if="checkPermi(['caseManagement:list:listEvidence']) && scope.row.caseStatus <= 1 && btnStatus"
size="mini" type="text" icon="el-icon-upload" @click="uploadCase(scope.row)">上传证据目录</el-button> -->
@@ -225,7 +225,7 @@
@pagination="getcaseApply(queryParams)" />
<!-- 立案申请弹框 -->
<caseentryDialog :visible="visible" @cancel="cancel" :form="form" :queryParams="queryParams"
<caseentryDialog :visible="visible" @cancel="cancel" :form="form" :detailsAwardForm="detailsAwardForm" :queryParams="queryParams"
:dialogtitle="dialogtitle" :getcaseApply="getcaseApply" :flag="flag" :caseAttachList="caseAttachList"
:initpaymentArr="initpaymentArr" :initpaymentArr1="initpaymentArr1" :columnValues="columnValues"></caseentryDialog>
<!-- 批量申请弹框 openbatch-->
@@ -305,9 +305,9 @@
<!-- 送达裁决书页面 -->
<mailawardDialog :openMailawardDialog="openMailawardDialog" @closeMailaward="closeMailaward" :mailawardata="mailawardata" :emailobj="emailobj" @getcaseApply="getcaseApply" :queryParams="queryParams"></mailawardDialog>
<!-- 裁决书案件详情 -->
<detailsAward :showarchiveDetails="showarchiveDetails" @cancelDetail="cancelDetail" :detailsAwardNum="detailsAwardNum" :videoList="videoList"
<!-- <detailsAward :showarchiveDetails="showarchiveDetails" @cancelDetail="cancelDetail" :detailsAwardNum="detailsAwardNum" :videoList="videoList"
:flagLoadingS="flagLoadingS" :trialTranscripts="trialTranscripts"
></detailsAward>
></detailsAward> -->
</div>
</template>
@@ -398,6 +398,7 @@ export default {
},
data() {
return {
detailsAwardForm: {},
// 遮罩层
loading: true,
// 总条数
@@ -519,6 +520,10 @@ export default {
this.getInstitution();
},
methods: {
handleInput(event) {
const value = event;
this.queryParams.batchNumber = value.replace(/[^\d]/g, ''); // 去除非数字字符
},
cancel() {
this.visible = false;
},
@@ -733,7 +738,7 @@ export default {
this.form = row;
this.visible = true;
this.dialogtitle = "立案详情";
this.getInfo(row);
// this.getInfo(row);
},
// 案件日志
caselogRow(row) {
@@ -772,10 +777,10 @@ export default {
editRow(row) {
this.flag = "1";
this.form = row;
console.log(this.form)
// console.log(this.form)
this.visible = true;
this.dialogtitle = "立案修改";
this.getInfo(row);
// this.getInfo(row);
},
// 列表提交立案
onsubmitRow(row) {
@@ -927,7 +932,7 @@ export default {
console.log(row, "开庭审理");
this.showtrialincourt = true;
this.form = row;
this.getInfo(row);
// this.getInfo(row);
},
canceltrialincourt() {
this.showtrialincourt = false;
@@ -959,6 +964,7 @@ export default {
version: row.version
}
selectCaseApply(params).then((res) => {
this.detailsAwardForm = res.data;
// 证据清单
this.caseAttachListR = res.data.caseAttachList;
// this.visible = true;
@@ -31,7 +31,7 @@
</el-row>
<el-row>
<el-form-item :span="24" label="案件压缩包上传:" prop="upload">
<el-upload class="upload-demo" ref="uploadZipBatch" :limit="1" accept=".zip" :headers="upload.headers"
<el-upload class="upload-demo" ref="uploadZipBatch" :limit="1" accept=".zip" :headers="upload.headers" :on-error="onError"
:action="upload.url" :disabled="upload.isUploading" :on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess" :auto-upload="false" :data="paramsData" drag>
<i class="el-icon-upload"></i>
@@ -47,10 +47,20 @@
<el-option v-for="dict in templateList" :key="dict.id" :label="dict.temName" :value="dict.id"></el-option>
</el-select>
</el-form-item>
<el-form-item :span="24" label="申请人类型" prop="applicantType">
<el-select v-model="form.applicantType" placeholder="请选择">
<el-option v-for="item in appList" :key="item.id" :label="item.temName" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item :span="24" label="被申请人类型" prop="resType">
<el-select v-model="form.resType" placeholder="请选择">
<el-option v-for="item in resList" :key="item.id" :label="item.temName" :value="item.id"></el-option>
</el-select>
</el-form-item>
</el-row>
</el-form>
<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" :loading="loadingSubmit"><span>确 定</span></el-button>
<el-button @click="cancel" class="endbutton1"><span>取 消</span></el-button>
</div>
</el-dialog>
@@ -69,14 +79,26 @@ export default {
// key: value,
form: {},
fileList: [],
appList: [
{ id: 1, temName: "自然人" },
{ id: 2, temName: "机构" },
],
resList: [
{ id: 1, temName: "自然人" },
{ id: 2, temName: "机构" },
],
templateList: [],
loadingSubmit:false,
rules: {
// upload: [
// { required: true, message: "案件压缩包不能为空", trigger: "blur" },
// ],
templateId: [
{ required: true, message: "裁决书模板不能为空", trigger: "blur" },
],
applicantType: [
{ required: true, message: "申请人类型不能为空", trigger: "blur" },
],
resType: [
{ required: true, message: "被申请人类型不能为空", trigger: "blur" },
],
},
paramsData:{
// templateId:this.form.templateId
@@ -112,16 +134,20 @@ export default {
methods: {
submitForm() {
this.paramsData.templateId = this.form.templateId;
this.paramsData.applicantType = this.form.applicantType;
this.paramsData.resType = this.form.resType;
this.$refs["form"].validate((valid) => {
this.loadingSubmit = true
if (valid) {
this.$refs.uploadZipBatch.submit();
}
})
},
// 获取裁决书模板
getTemplateFn(data) {
getTemplate(data).then(res => {
console.log(res.rows, "KKKKKKKKKKKKKKKKKKKKKKK");
this.templateList = res.rows;
})
},
@@ -141,7 +167,6 @@ export default {
},
// 下载模板 importTemplate
downloadTemplate() {
// console.log("下载模板");
this.download(
"caseApplication/uploadCaseZipFile",
{},
@@ -154,11 +179,11 @@ export default {
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
// this.upload.open = false;
this.$emit("cancelCompreess");
this.upload.isUploading = false;
this.$refs.uploadZipBatch.clearFiles();
if (response.code == 200) {
this.loadingSubmit = false
this.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
response.msg +
@@ -166,7 +191,9 @@ export default {
"导入结果",
{ dangerouslyUseHTMLString: true }
)
this.$emit("getcaseApply", this.queryParams);
} else {
this.loadingSubmit = false
this.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
"导入压缩失败" +
@@ -175,9 +202,10 @@ export default {
{ dangerouslyUseHTMLString: true }
)
}
this.getcaseApply(this.queryParams);
},
onError(){
this.loadingSubmit = false
}
},
};
</script>
File diff suppressed because it is too large Load Diff
@@ -8,11 +8,11 @@
@close="cancel"
:destroy-on-close="true"
>
<div v-show="choosetrialmethodata.arbitraMethodIssame!=2">
<div v-show="formData.arbitraMethodIssame!=2">
<el-descriptions>
<el-descriptions-item label="当前仲裁方式:">
<el-tag size="small">{{
choosetrialmethodata.arbitratMethodName
formData.arbitratMethodName
}}</el-tag>
</el-descriptions-item>
</el-descriptions>
@@ -41,10 +41,8 @@
>
</div>
</div>
<div v-show="choosetrialmethodata.arbitraMethodIssame==2">
<el-descriptions>
<el-descriptions-item label="当前案件开庭方式">{{choosetrialmethodata.arbitratMethodIllustrate}}</el-descriptions-item>
</el-descriptions>
<div v-show="formData.arbitraMethodIssame==2">
<div>{{formData.arbitratMethodIllustrate}}</div>
<el-form :model="form" :rules="rules" ref="form">
<el-form-item label="选择开庭方式" prop="arbitratMethod">
<el-radio-group v-model="form.arbitratMethod">
@@ -64,6 +62,7 @@
<script>
import { arbitrateMethod } from "@/api/caseManagement/caseManagement.js";
import { selectCaseApply } from "@/api/caseAccess/caseEntry";
export default {
name: "showchoosetrialmethodDialog",
props: ["showchoosetrialmethod", "choosetrialmethodata", "queryParams"],
@@ -75,9 +74,24 @@ export default {
arbitratMethod: [
{ required: true, message: '请选择开庭方式', trigger: 'change' }
]
}
},
formData:{}
};
},
watch:{
showchoosetrialmethod(val){
if(val){
let params = {
id: this.choosetrialmethodata.id,
version: this.choosetrialmethodata.version
}
selectCaseApply(params).then(res=>{
console.log(res,"PPPPPPPPPPPPPPPPPPPPPPPPPPPPP");
this.formData = res.data;
})
}
}
},
methods: {
// 审核仲裁方式 arbitrateMethod
submitForm(val) {
@@ -85,8 +99,8 @@ export default {
opinion: val
};
let id = {
id: this.choosetrialmethodata.id,
arbitratMethod:this.choosetrialmethodata.arbitratMethod
id: this.formData.id,
arbitratMethod:this.formData.arbitratMethod
};
arbitrateMethod(paramsdata,id)
.then((res) => {
@@ -2,7 +2,7 @@
<div>
<!-- 组庭界面 -->
<el-dialog
title="组庭建议"
title="组庭审核"
:visible="showformateCourt"
v-if="showformateCourt"
@close="cancel"
@@ -15,16 +15,16 @@
label-width="110px"
label-position="left"
>
<el-form-item label="是否同意组庭:">
<!-- <el-form-item label="是否同意组庭:">
<el-radio-group v-model="isAgreePendTral" @change="radioValue">
<el-radio :label="1">是</el-radio>
<el-radio :label="0">否</el-radio>
</el-radio-group>
</el-form-item>
<el-tag type="warning" v-if="noArbitrator"
</el-form-item> -->
<!-- <el-tag type="warning" v-if="noArbitrator"
>当前案件未指定仲裁员,请先指定仲裁员!</el-tag
>
<p></p>
> -->
<!-- <p></p> -->
<!-- <el-form ref="form"> -->
<!-- v-if="isAgreePendTral == 0 || noArbitrator" -->
<div style="display: inline-flex; margin-bottom: 8px">
@@ -77,6 +77,31 @@
<el-input type="textarea" :autosize="{ minRows: 6 }" v-model="arbitrateRecordt.responCrossOpin"
placeholder="请输入" />
</el-form-item> -->
<el-col :span="24">
<el-form-item label="上传裁决书:" label-width="100px" v-if="flag==1|| flag==4">
<el-upload
class="upload-demo"
accept=".doc,.docx"
ref="upload"
:action="UploadUrls()"
:headers="headers"
:data="filedatas"
:before-remove="beforeRemoves"
:limit="2"
:on-change="beforeUpload"
:on-success="handlSuccessAw"
:file-list="fileListAw"
:before-upload="beforeAvatarUploads"
>
<el-button slot="trigger" size="small" type="primary"
>选取文件</el-button
>
<div slot="tip" class="el-upload__tip">
只能上传.doc,docx文件
</div>
</el-upload>
</el-form-item>
</el-col>
<el-form-item label="驳回原因:" label-width="100px" v-if="flag==1 && awardDetailform.arbitrateReject">
<div style="width:800px;">{{awardDetailform.arbitrateReject}}</div>
</el-form-item>
@@ -99,7 +124,7 @@
]">
<el-input type="textarea" :rows="2" placeholder="请输入驳回原因" v-model.trim="arbitrateRecord.arbitrateReject"></el-input>
</el-form-item>
<el-form-item label-width="100px" label="bmz驳回原因" v-if="agreeOrNotCheck==2 && flag ==2" prop="deptorReject"
<el-form-item label-width="100px" label="驳回原因" v-if="agreeOrNotCheck==2 && flag ==2" prop="deptorReject"
:rules="[
{ required: true, message: '请输入驳回原因', trigger: 'blur' }
]">
@@ -115,7 +140,7 @@
<div slot="footer" class="dialog-footer">
<!-- <el-button type="danger" @click="submitForm(4)" v-if="flag == 1">重新生成裁决书</el-button> -->
<el-button type="primary" @click="submitForm(0)" v-if="flag == 1">提 交</el-button>
<el-button type="primary" @click="submitForm(1)" v-if="flag == 2">5提交</el-button>
<el-button type="primary" @click="submitForm(1)" v-if="flag == 2">提交</el-button>
<!-- <el-button type="danger" @click="submitForm(2)" v-if="flag == 2">驳 回</el-button> -->
<!-- <el-button type="primary" @click="submitForm(3)" v-if="flag == 3">提 交</el-button> -->
<!-- <el-button type="primary" @click="submitForm(5)" v-if="flag == 4">同 意</el-button> -->
@@ -134,6 +159,7 @@ import {
regenerationDocument,
arbitratorCheckArbitrateRecord
} from "@/api/awardManagement/awardManagement";
import { getToken } from "@/utils/auth";
export default {
props: ["openDialogInfor", "title", "flag", "awardDetailform","queryParams"],
data() {
@@ -142,6 +168,14 @@ export default {
arbitrateRecordt: {},
agreeOrNotCheck:1,
form: {},
headers: {
Authorization: "Bearer " + getToken(),
},
filedatas: {
annexType: 3,
id:null
},
fileListAw:[],
arbitrateRecord: {
// checkOpinion:"同意"
checkOpinion: ""
@@ -331,15 +365,22 @@ export default {
this.$message("成功");
})
},
// 重新生成裁决书
getRegenerationDocument(params) {
regenerationDocument(params).then(res => {
console.log(res.data, "重新生成裁决书");
this.awardFileArr = [];
this.awardPathArr = [];
this.awardFileArr[0] = res.data.annexName;
this.awardPathArr[0] = res.data.annexPath;
})
// 上传裁决书
UploadUrls() {
return window.location.origin + "/API/evidence/uploadRecord";
},
beforeRemoves(file,fileList){
return this.$confirm(`确定移除 ${file.name}?`);
},
beforeUpload(flie, fileList) {
// this.fileList = fileList;
},
// 上传文件成功
handlSuccessAw(res, file) {
// this.fileListAw.push(file);
},
beforeAvatarUploads(){
this.filedatas.id = this.awardDetailform.id;
},
submitForm(parms) {
let that = this;
@@ -1,12 +1,6 @@
<template>
<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="120px">
<el-form-item label="案件编号:" prop="caseNum">
<el-input v-model="form.caseNum" placeholder="" :disabled="true" />
@@ -15,11 +9,7 @@
<el-input v-model="form.caseSubjectAmount" :disabled="true" />
</el-form-item>
<el-form-item label="缴费人:" prop="applicantName">
<el-input
v-model="form.applicantName"
placeholder=""
:disabled="true"
/>
<el-input v-model="form.applicantName" placeholder="" :disabled="true" />
</el-form-item>
<el-form-item label="缴费金额:" prop="feePayable">
<el-input v-model="form.feePayable" :disabled="true" />
@@ -37,13 +27,9 @@
</el-tag>
</el-form-item> -->
<el-form-item label="缴费凭证:" prop="caseStatusName">
<div
style="color: #104fad; cursor: pointer"
v-for="(item, index) in form.caseAttachList"
:key="index"
@click="preview(item.annexPath)"
>
<span v-if="item.annexType==8">{{ item.annexName }}</span>
<div style="color: #104fad; cursor: pointer" v-for="(item, index) in form.caseAttachList" :key="index"
@click="preview(item.annexPath)">
<span v-if="item.annexType == 8">{{ item.annexName }}</span>
</div>
<!-- <el-tag>{{ form.caseStatusName }}</el-tag> -->
</el-form-item>
@@ -55,31 +41,15 @@
</el-radio-group>
</el-form-item>
<!-- 缴费驳回原因-->
<el-form-item
label="拒绝原因:"
v-if="agreeOrNotCheck == 0"
prop="caseCheckReject"
:rules="[
<el-form-item label="拒绝原因:" v-if="agreeOrNotCheck == 0" prop="caseCheckReject" :rules="[
{ required: true, message: '请输入驳回原因', trigger: 'blur' },
]"
>
<el-input
type="textarea"
:rows="2"
placeholder="请输入驳回原因"
v-model="form.caseCheckReject"
></el-input>
]">
<el-input type="textarea" :rows="2" placeholder="请输入驳回原因" v-model="form.caseCheckReject"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button
type="primary"
@click="submitForm"
v-if="flag == 0"
class="endbutton"
:loading="loadingSubmit"
>确认已缴费</el-button
>
<el-button type="primary" @click="submitForm" v-if="flag == 0" class="endbutton"
:loading="loadingSubmit">确认已缴费</el-button>
<el-button @click="cancel" class="endbutton1">取 消</el-button>
</div>
</el-dialog>
@@ -89,7 +59,7 @@
<script>
import { confirmPay } from "@/api/pay/pay";
export default {
props: ["openDialog", "title", "flag", "detailform", "queryParams","getcaseApply"],
props: ["openDialog", "title", "flag", "detailform", "queryParams", "getcaseApply"],
data() {
return {
// key: value
@@ -123,9 +93,9 @@ export default {
// 确认缴费
submitForm() {
let paramsVal = {
ids:[this.form.id],
agreeOrNotCheck:this.agreeOrNotCheck,
caseCheckReject:this.form.caseCheckReject
ids: [this.form.id],
agreeOrNotCheck: this.agreeOrNotCheck,
caseCheckReject: this.form.caseCheckReject
}
this.$refs["form"].validate((valid) => {
if (valid) {
@@ -136,10 +106,7 @@ export default {
type: "success",
});
this.loadingSubmit = false;
if (res.code == 200) {
this.getcaseApply(this.queryParams)
// this.getList();
}
this.$emit("getcaseApply", this.queryParams);
}).catch((err) => {
this.loadingSubmit = false;
});
@@ -1,69 +1,40 @@
<template>
<div>
<el-dialog
title="开庭审理"
:visible="showtrialincourt"
@close="cancel"
:destroy-on-close="true"
>
<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-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-input v-model="formData.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-input v-model="formData.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 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 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-input v-model="formData.caseSubjectAmount" placeholder="请输入案件标的" :disabled="true" />
</el-form-item>
</el-col>
<!-- <el-col :span="12">
@@ -76,20 +47,12 @@
</el-col> -->
<el-col :span="12">
<el-form-item label="仲裁费用:" prop="feePayable">
<el-input
v-model="adjudicatename.feePayable"
placeholder="请输入仲裁费用"
:disabled="true"
/>
<el-input v-model="formData.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-input v-model="formData.claimPrinciOwed" placeholder="请输入" :disabled="true" />
</el-form-item>
</el-col>
<!-- <el-col :span="12">
@@ -99,31 +62,18 @@
</el-col> -->
<el-col :span="12">
<el-form-item label="案件状态:" prop="caseStatus">
<el-input
v-model="formData.caseStatusName"
placeholder="请输入"
:disabled="true"
/>
<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-input v-model="formData.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 v-model="formData.hearDate" type="datetime" placeholder="开庭日期" :disabled="true">
</el-date-picker>
</el-form-item>
</el-col>
@@ -157,7 +107,7 @@
<el-form-item label="裁决书:">
<div v-if="awardArr.length == 0">裁决书暂未提供!</div>
<div v-for="(item, index) in awardArr" :key="index">
<a href="#" @click="awardToFile(item, index)" style="color: blue">
<a href="#" @click="awardToFile(item.onlyOfficeFileId)" style="color: blue">
{{ item.annexName }}
</a>
</div>
@@ -165,11 +115,7 @@
</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"
>
<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>
@@ -184,25 +130,12 @@
<div>{{ startTime }}</div>
</el-form-item>
</el-col>
<el-col :span="24">
<el-col :span="24" v-if="submitFlag">
<el-form-item label="上传裁决书:">
<el-upload
class="upload-demo"
accept=".doc,.docx"
ref="upload"
:action="UploadUrls()"
:headers="headers"
:data="filedatas"
:before-remove="beforeRemoves"
:limit="2"
:on-change="beforeUpload"
:on-success="handlSuccessAw"
:file-list="fileListAw"
:before-upload="beforeAvatarUploads"
>
<el-button slot="trigger" size="small" type="primary"
>选取文件</el-button
>
<el-upload class="upload-demo" accept=".doc,.docx" ref="upload" :action="UploadUrls()" :headers="headers"
:data="filedatas" :before-remove="beforeRemoves" :limit="2" :on-change="beforeUpload"
:on-success="handlSuccessAw" :file-list="fileListAw" :before-upload="beforeAvatarUploads">
<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">
只能上传.doc,docx文件
@@ -210,25 +143,12 @@
</el-upload>
</el-form-item>
</el-col>
<el-col :span="24">
<el-col :span="24" v-if="submitFlag">
<el-form-item label="上传庭审笔录:">
<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-upload class="upload-demo" ref="fileupload" accept=".doc,.docx" :action="UploadUrlsT()"
: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" size="small">选择文件</el-button>
<div slot="tip" class="el-upload__tip">
文件支持上传.doc,docx文件
@@ -239,32 +159,15 @@
<!-- </el-form> -->
</el-form>
<el-button @click="openmeeting" type="primary">发起会议</el-button>
<el-button
@click="openArbitrationresults"
type="primary"
v-if="this.awardArr.length <= 0"
>确认会议结果</el-button>
<el-button @click="openArbitrationresults" type="primary"
v-if="this.awardArr.length <= 0 && submitFlag">确认会议结果</el-button>
<div slot="footer" class="dialog-footer">
<el-button
class="endbutton"
:disabled="
(showsubmit && recordArr.length == 0) || form2.isAbsence == 1
"
@click="submitResults"
:loading="loadingSub"
>提交</el-button
>
<el-button @click="cancel" class="endbutton1"
><span>关 闭</span></el-button
>
<el-button class="endbutton" :disabled="(showsubmit && recordArr.length == 0) || form2.isAbsence == 1
" @click="submitResults" :loading="loadingSub" v-if="submitFlag">提交</el-button>
<el-button @click="cancel" class="endbutton1"><span>关 闭</span></el-button>
</div>
</el-dialog>
<el-dialog
title="庭审笔录"
:visible="showArbitrationresults"
@close="closeArbitrationresults"
center
>
<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="[
@@ -280,16 +183,12 @@
</el-form-item>
</el-col> -->
<el-col :span="24">
<el-form-item
label="被申请人是否缺席:"
prop="appliIsAbsen"
:rules="[
<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>
@@ -297,16 +196,12 @@
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item
label="申请人是否缺席:"
prop="isAbsence"
:rules="[
<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>
@@ -314,29 +209,13 @@
</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 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 label="申请人对上述材料的质证意见" prop="applicantOpinion">
<el-input type="textarea" :autosize="{ minRows: 6 }" v-model="form2.applicantOpinion" placeholder="请输入" />
</el-form-item>
</el-col>
<!-- <el-col :span="24">
@@ -444,16 +323,9 @@
</el-col> -->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button
@click="submitForm"
class="endbutton"
:loading="loadingSubmit"
>
<span>确定</span></el-button
>
<el-button @click="closeArbitrationresults" class="endbutton1"
><span>取 消</span></el-button
>
<el-button @click="submitForm" class="endbutton" :loading="loadingSubmit">
<span>确定</span></el-button>
<el-button @click="closeArbitrationresults" class="endbutton1"><span>取 消</span></el-button>
</div>
</el-dialog>
</div>
@@ -468,24 +340,27 @@ import {
creatTrialRecord,
creatTrialRecordnew,
document,
changeCaseStatus
changeCaseStatus,
secretaryRoleByUserId
} from "@/api/caseManagement/caseManagement.js";
import { reserveConferenceList } from "@/api/meeting/index.js";
export default {
props: ["showtrialincourt", "adjudicatename", "form", "queryParams"],
data() {
return {
submitFlag: false,
formData: {},
headers: {
Authorization: "Bearer " + getToken(),
},
filedata: {
annexType: 7,
id: 0,
id: null,
},
filedatas: {
annexType: 3,
id:null
officeFlag: 1,
caseId: null
},
upLife: "",
user: "",
@@ -505,27 +380,34 @@ export default {
roomId: null,
startTime: "",
fileList: [],
fileListAw:[],
fileListAw: [],
loadingSubmit: false,
loadingSub:false,
loadingSub: false,
};
},
watch: {
showtrialincourt: {
handler(val) {
if (val) {
let val = {
id: this.form.id,
version: this.form.version,
};
selectCaseApply(val).then(res => {
this.formData = res.data;
})
this.reserveConferenceListFn({ caseId: this.form.id });
this.getUser();
this.formData = this.form;
// this.formData = this.form;
console.log(this.formData);
this.applicateArr = [];
this.quiltArr = [];
this.awardArr = [];
this.recordArr = [];
setTimeout(() => {
console.log(this.adjudicatename);
if (this.adjudicatename.caseAttachList.length > 0) {
this.adjudicatename.caseAttachList.forEach((item) => {
console.log(this.formData);
if (this.formData.caseAttachList.length > 0) {
this.formData.caseAttachList.forEach((item) => {
// 申请人案件附件
if (item.annexType == 2) {
this.applicateArr.push({
@@ -549,10 +431,7 @@ export default {
}
//裁决书附件
if (item.annexType == 3) {
this.awardArr.push({
annexName: item.annexName,
annexPath: item.annexPath,
});
this.awardArr.push(item);
}
});
}
@@ -561,8 +440,14 @@ export default {
},
},
},
created() {},
created() { },
methods: {
// 根据案件id和用户id查询当前登陆人是否为仲裁员
secretaryRoleByUserIdFn(data) {
secretaryRoleByUserId(data).then(res => {
this.submitFlag = res.data.isSecretaryRole;
})
},
// 根据案件id查询会议号
reserveConferenceListFn(data) {
reserveConferenceList(data).then((res) => {
@@ -585,11 +470,16 @@ export default {
);
},
//裁决书文件
awardToFile(item, index) {
window.open(
window.location.origin + "/API" + this.awardArr[index].annexPath,
"_black"
);
awardToFile(item) {
// window.open(
// window.location.origin + "/API" + this.awardArr[index].annexPath,
// "_black"
// );
if (this.checkPermi(['caseManagement:list:editOffice'])) {
this.$router.push({ path: '/onlyoffice', query: { id: item, flag: 1 } })
} else {
this.$router.push({ path: '/onlyoffice', query: { id: item, flag: 0 } })
}
},
// 庭审笔录附件
toFile2(item, index) {
@@ -602,6 +492,7 @@ export default {
getUserProfile().then((response) => {
this.user = response.data.userName;
this.userId = response.data.userId;
this.secretaryRoleByUserIdFn({ caseId: this.form.id, userId: this.userId })
});
},
// 打开会议
@@ -627,33 +518,12 @@ export default {
this.loadingSubmit = true;
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();
@@ -665,15 +535,12 @@ export default {
id: this.form.id,
version: this.form.version,
};
this.awardArr =[];
this.awardArr = [];
selectCaseApply(val).then((res) => {
this.adjudicatename.caseAttachList = res.data.caseAttachList;
this.adjudicatename.caseAttachList.forEach(item=>{
if(item.annexType==3){
this.awardArr.push({
annexName: item.annexName,
annexPath: item.annexPath,
});
this.formData.caseAttachList = res.data.caseAttachList;
this.formData.caseAttachList.forEach(item => {
if (item.annexType == 3) {
this.awardArr.push(item);
}
})
@@ -691,14 +558,14 @@ export default {
},
// 提交开庭审理结果
submitResults() {
if (this.fileList.length == 0&&this.recordArr.length==0) {
if (this.fileList.length == 0 && this.recordArr.length == 0) {
this.$message({
showClose: true,
message: "请先上传案件笔录",
type: "warning",
});
} else {
this.loadingSub=true;
this.loadingSub = true;
let id = this.formData.id;
changeCaseStatus({
id: id,
@@ -709,15 +576,11 @@ export default {
this.loadingSub = false
this.fileList = [];
}
}).catch((err)=>{
}).catch((err) => {
this.loadingSub = false
});
}
},
// 上传庭审笔录
UploadUrl() {
return window.location.origin + "/API/evidence/uploadRecord";
},
// 文件上传成功
handlSuccess(res, file) {
// this.fileList.push(file);
@@ -725,11 +588,11 @@ export default {
id: this.form.id,
version: this.form.version,
};
this.recordArr =[];
this.recordArr = [];
selectCaseApply(val).then((res) => {
this.adjudicatename.caseAttachList = res.data.caseAttachList;
this.adjudicatename.caseAttachList.forEach(item=>{
if(item.annexType==7){
this.formData.caseAttachList = res.data.caseAttachList;
this.formData.caseAttachList.forEach(item => {
if (item.annexType == 7) {
this.recordArr.push({
annexName: item.annexName,
annexPath: item.annexPath,
@@ -741,8 +604,8 @@ export default {
},
// 文件列表移除文件时的钩子
handleRemove(file, fileList) {},
handlePreview(file) {},
handleRemove(file, fileList) { },
handlePreview(file) { },
// 删除文件之前的钩子,参数为上传的文件和文件列表,若返回 false 或者返回 Promise 且被 reject,则停止删除。
beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${file.name}?`);
@@ -750,8 +613,7 @@ export default {
// 文件超出个数限制时的钩子
handleExceed(files, fileList) {
this.$message.warning(
`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
files.length + fileList.length
`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length
} 个文件`
);
},
@@ -760,9 +622,12 @@ export default {
},
// 上传裁决书
UploadUrls() {
return window.location.origin + "/API/video/upload";
},
UploadUrlsT() {
return window.location.origin + "/API/evidence/uploadRecord";
},
beforeRemoves(file,fileList){
beforeRemoves(file, fileList) {
return this.$confirm(`确定移除 ${file.name}?`);
},
beforeUpload(flie, fileList) {
@@ -775,22 +640,19 @@ export default {
id: this.form.id,
version: this.form.version,
};
this.awardArr =[];
this.awardArr = [];
selectCaseApply(val).then((res) => {
this.adjudicatename.caseAttachList = res.data.caseAttachList;
this.adjudicatename.caseAttachList.forEach(item=>{
if(item.annexType==3){
this.awardArr.push({
annexName: item.annexName,
annexPath: item.annexPath,
});
this.formData.caseAttachList = res.data.caseAttachList;
this.formData.caseAttachList.forEach(item => {
if (item.annexType == 3) {
this.awardArr.push(item);
}
})
});
},
beforeAvatarUploads(){
this.filedatas.id = this.formData.id;
beforeAvatarUploads() {
this.filedatas.caseId = this.formData.id;
}
},
};
@@ -7,6 +7,7 @@
<el-step :title="item.caseNodeName || item.content" v-for="(item,index) in pageData.allCasenode" :key="index">
<template slot="description">
<p>{{item.createNickName || ''}}{{item.caseNodeTime || ''}}</p>
<p>{{item.currentRoleName}}</p>
<p>{{item.nextRoleName || ''}}</p>
</template>
</el-step>
@@ -0,0 +1,140 @@
<template>
<div>
<el-dialog title="邮件内容" :visible="emailVidable" @close="cancel" center :distroy-on-close="true">
<div>
<el-form>
<el-col :span="24">
<el-form-item label="邮件主题:" label-width="100px">
<div>{{ emailRow.mailSubject }}</div>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="收件人:" label-width="100px">
<div>{{ emailRow.mailAddress }}</div>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="发件人:" label-width="100px">
<div>{{ emailRow.mailFromAddress }}</div>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="邮件附件:" label-width="100px">
<div style="color: blue; cursor: pointer" v-for="(item, index) in emailRow.caseAttachList"
:key="index" @click="viewAttachments(item.annexPath)">
{{ item.annexName }}
</div>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="附件上传:" label-width="100px">
<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" :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>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="邮件正文:" label-width="100px">
<el-input type="textarea" :rows="4" placeholder="请输入内容" v-model="sendData"></el-input>
</el-form-item>
</el-col>
</el-form>
</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";
import { getToken } from "@/utils/auth";
export default {
props: ["emailVidable", "emailRow", "queryParams"],
data() {
return {
sendData: "",
fileURL: window.location.origin + "/API",
headers: {
Authorization: "Bearer " + getToken(),
},
filedata: {
annexType: 13,
},
fileList: [],
files: [],
};
},
watch: {
emailVidable(val) {
if (val) {
console.log(this.emailRow);
this.sendData = this.emailRow.mailContent;
}
},
},
methods: {
cancel() {
this.$emit("cancelEmail");
},
submitSend() {
console.log(this.emailRow.mailContent);
let caseAttachListParms = {};
if (this.files.annexId) {
caseAttachListParms = {
id: this.emailRow.id,
mailContent: this.sendData,
caseAttachList: [{ annexId: this.files.annexId }],
}
} else{
caseAttachListParms = {
id: this.emailRow.id,
mailContent: this.sendData,
caseAttachList: [],
}
}
this.updateSendContentFn(caseAttachListParms);
},
updateSendContentFn(data) {
update(data).then((res) => {
this.$message.success("更新成功");
this.$emit("cancelEmail");
this.$emit("getList", this.queryParams);
this.$refs.upload.clearFiles(); // 清除文件列表
});
},
// 查看附件下载附件
viewAttachments(val) {
window.open(this.fileURL + val);
},
/**上传地址*/
UploadUrl() {
return window.location.origin + "/API/evidence/upload";
},
handlePreview(file) { },
handleRemove(file, fileList) { },
beforeUpload(flie, fileList) {
},
handlSuccess(res, file) {
const fileSuccess = [{ annexId: res.annexId, annexType: res.annexType, annexName: res.newFileName, annexPath: res.fileName, onlyOfficeFileId: res.onlyOfficeFileId }]
// this.emailRow.caseAttachList = fileSuccess
this.files = res
console.log(res)
},
},
};
</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>
+35 -2
View File
@@ -27,7 +27,14 @@
<!-- 缴费人 -->
<!-- <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">
<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>
<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="getList(queryParams)" />
@@ -38,12 +45,12 @@
import {
emailList,
} from "@/api/deliveryRecord/deliveryRecord.js";
import emailEdits from "./components/emailEdits.vue";
import { getDicts } from '@/api/system/dict/data.js'
export default {
name: "paymentList",
dicts: ["case_status"],
components: {},
components: {emailEdits},
data() {
return {
queryParams: {
@@ -60,6 +67,8 @@ export default {
// 校验表单
rules: {},
dataList: [],
emailVidable:false,
emailRow:{},
};
},
created() {
@@ -69,6 +78,30 @@ export default {
})
},
methods: {
// 邮箱编辑内容
emailEditing(data){
this.emailVidable = true
this.emailRow = data;
console.log(data)
},
// 重新发送
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);
})
},
// 关闭弹窗
cancelEmail(){
this.emailVidable = false
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
+65 -14
View File
@@ -22,29 +22,40 @@
<el-table-column label="发送时间" align="center" prop="sendTime" />
<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" 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>
<resend :resendVidable="resendVidable" :rowData="rowData" @getList="getList" @cancelSend="cancelSend" :queryParams="queryParams"></resend>
<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})" />
@pagination="getList({caseNum:queryParams.caseNum,pageNum:queryParams.pageNum,pageSize:queryParams.pageSize})" />
</div>
</template>
<script>
import {
smsList,
recordList,reSendShortMessage
} from "@/api/deliveryRecord/deliveryRecord.js";
import resend from "./components/resend.vue";
import { getDicts } from '@/api/system/dict/data.js'
export default {
name: "paymentList",
dicts: ["case_status"],
components: { },
components: {resend },
data() {
return {
queryParams: {
pageNum: 1,
pageSize: 10,
},
resendVidable:false,
rowData:{},
caseStatus: [],
// 遮罩层
loading: false,
@@ -59,14 +70,14 @@ export default {
},
created() {
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: {
/** 搜索按钮操作 */
handleQuery() {
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() {
@@ -74,18 +85,19 @@ export default {
this.handleQuery();
},
// 查询列表数据
getList(data,params) {
getList(data) {
console.log(data)
this.loading = true;
smsList(data,params).then((response) => {
recordList(data).then((response) => {
this.dataList = response.rows;
console.log(this.dataList)
this.dataList.forEach(item=>{
if(item.sendStatus == 0){
item.sendStatus = "发送失败"
}else if(item.sendStatus == 1){
item.sendStatus = "已送达"
console.log(item)
if(item.sendStatus == 1){
item.sendStatus = "发送成功"
}else if(item.sendStatus == 2){
item.sendStatus = "已读取"
}else{
item.sendStatus = "发送中"
}else if(item.sendStatus == 3){
item.sendStatus = "发送失败"
}
})
@@ -93,6 +105,45 @@ export default {
this.loading = false;
});
},
/** 复制内容 */
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){
console.log(row)
this.resendVidable = true;
this.rowData = row;
},
/**关闭弹窗 */
cancelSend(){
this.resendVidable = 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>
+108
View File
@@ -0,0 +1,108 @@
<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/zhongcai`
)
.then((res) => {
this.config = res.data;
this.config.editorConfig.callbackUrl = this.config.editorConfig.callbackUrl + "/" + id;
// 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 -1
View File
@@ -15,7 +15,7 @@ const port = process.env.port || process.env.npm_config_port || 80 // 端口
const API = 'http://121.40.189.20:8001' //测试
// const API = 'http://172.16.1.26:8001' //Bs
// const API = 'http://192.168.3.77:9001' //Q
// const API = 'http://172.16.1.26:8001' //W
// const API = 'http://172.16.0.241:8001' //W
// vue.config.js 配置说明
//官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions