<template>
|
<div class="view">
|
<div class="view-data">
|
<el-form
|
:model="baseCase"
|
label-position="right"
|
ref="viewForm"
|
:rules="Rules"
|
label-width="100px"
|
>
|
<div class="data-item">
|
<el-form-item label="问题来源:">
|
<span class="data-detail">{{
|
baseCase.eventSource === 2 ? "网格巡查" : "视频巡查"
|
}}</span>
|
</el-form-item>
|
<el-form-item label="登记人员:">
|
<span class="data-detail">{{ baseCase.createUser }}</span>
|
</el-form-item>
|
</div>
|
<div class="data-item">
|
<el-form-item label="问题类型:">
|
<span class="data-detail">{{
|
baseCase.category === 1 ? "违规" : "违建"
|
}}</span>
|
</el-form-item>
|
<el-form-item label="事件等级:">
|
<span class="data-detail">{{ baseCase.violationsVO.gradeText }}</span>
|
</el-form-item>
|
</div>
|
<div class="data-item">
|
<el-form-item label="大类名称:">
|
<span class="data-detail">{{
|
baseCase.violationsVO.categoryText
|
}}</span>
|
</el-form-item>
|
<el-form-item label="小类名称:">
|
<span class="data-detail">{{
|
baseCase.violationsVO.categoryText
|
}}</span>
|
</el-form-item>
|
</div>
|
<div class="data-item">
|
<el-form-item label="所属区县:">
|
<span class="data-detail"></span>
|
</el-form-item>
|
<el-form-item label="所属街道:">
|
<span class="data-detail">{{ baseCase.streetText }}</span>
|
</el-form-item>
|
</div>
|
<div class="data-item">
|
<el-form-item label="所属社区:">
|
<span class="data-detail">{{ baseCase.communityText }}</span>
|
</el-form-item>
|
</div>
|
<div class="data-item">
|
<el-form-item label="事发地点:">
|
<span class="data-detail">{{ baseCase.site }}</span>
|
</el-form-item>
|
<el-form-item label="车牌号:">
|
<span class="data-detail">{{ baseCase.violationsVO.carNumber }}</span>
|
</el-form-item>
|
</div>
|
<div class="data-item">
|
<el-form-item label="关联商铺名称:">
|
<span class="data-detail">{{ baseCase.violationsVO.shopName }}</span>
|
</el-form-item>
|
</div>
|
<div class="data-item">
|
<el-form-item label="问题描述:">
|
<span class="data-detail">{{
|
baseCase.violationsVO.description
|
}}</span>
|
</el-form-item>
|
</div>
|
<div class="data-item">
|
<el-form-item label="反映人:">
|
<span class="data-detail">{{ baseCase.violationsVO.informant }}</span>
|
</el-form-item>
|
<el-form-item label="联系方式:">
|
<span class="data-detail">{{
|
baseCase.violationsVO.informantPhoneCode
|
}}</span>
|
</el-form-item>
|
</div>
|
<el-form-item label="审核意见" prop="auditOpinion">
|
<span class="data-detail">{{ baseCase.auditOpinion }}</span>
|
</el-form-item>
|
</el-form>
|
</div>
|
<div class="view-process">
|
<div class="process-header">
|
<div
|
class="process-title-item"
|
v-for="item in titleList"
|
:key="item.title"
|
@click="changeComponent(item.index)"
|
>
|
<div
|
:class="[
|
'process-title',
|
activeIndex === item.index ? 'title-active' : '',
|
]"
|
>
|
{{ item.title }}
|
</div>
|
<div
|
:class="[
|
'under-line',
|
activeIndex === item.index ? 'line-active' : '',
|
]"
|
></div>
|
</div>
|
</div>
|
<div class="show-item">
|
<div class="show-wrap">
|
<div class="closure-info" v-if="activeIndex === 0">
|
<el-form
|
:model="baseCase"
|
label-position="right"
|
ref="opinionForm"
|
:rules="Rules"
|
label-width="100px"
|
>
|
<el-form-item
|
label="审核意见"
|
class="op-item"
|
prop="auditOpinion"
|
>
|
<el-input
|
type="textarea"
|
placeholder="请输入审核意见"
|
v-model="baseCase.auditOpinion"
|
disabled
|
>
|
</el-input>
|
</el-form-item>
|
<el-form-item
|
label="结案意见"
|
class="op-item"
|
prop="finalOpinion"
|
>
|
<el-input
|
type="textarea"
|
placeholder="请输入结案意见"
|
v-model="baseCase.finalOpinion"
|
>
|
</el-input>
|
</el-form-item>
|
</el-form>
|
<div class="form-footer">
|
<el-button type="primary" @click.native.prevent="handleSubmit"
|
>结案</el-button
|
>
|
<el-button @click.native.prevent="handleBack">返回</el-button>
|
</div>
|
</div>
|
<MyProcess
|
v-else-if="activeIndex === 1"
|
:handlePassVo="handlePassVo"
|
:baseCase="baseCase"
|
></MyProcess>
|
<MyFilePicture
|
v-else-if="activeIndex === 2"
|
:baseCase="baseCase"
|
:filesPictureVo="filesPictureVo"
|
></MyFilePicture>
|
<MySovleProblem
|
v-else-if="activeIndex === 3"
|
:handlePassVo="handlePassVo"
|
:baseCase="baseCase"
|
></MySovleProblem>
|
<MyScene
|
v-else
|
:baseCase="baseCase"
|
:currentSitVo="currentSitVo"
|
></MyScene>
|
</div>
|
</div>
|
</div>
|
</div>
|
</template>
|
<script>
|
import MyProcess from "@/components/process";
|
import MyFilePicture from "@/components/filePictrue";
|
import MySovleProblem from "@/components/solveProblem";
|
import MyScene from "@/components/scene";
|
export default {
|
components: {
|
MyProcess,
|
MyFilePicture,
|
MySovleProblem,
|
MyScene,
|
},
|
data() {
|
const checkOpinion = (rule, value, callback) => {
|
if (value) {
|
callback();
|
} else {
|
callback();
|
}
|
};
|
const checkFinal = (rule, value, callback) => {
|
if (value) {
|
callback();
|
} else {
|
callback(new Error("结案意见不能为空"));
|
}
|
};
|
return {
|
myInfo: {},
|
activeIndex: 0,
|
titleList: [
|
{
|
title: "结案信息",
|
index: 0,
|
},
|
{
|
title: "办理经过",
|
index: 1,
|
},
|
{
|
title: "案卷图片",
|
index: 2,
|
},
|
{
|
title: "问题处理",
|
index: 3,
|
},
|
{
|
title: "现场情况",
|
index: 4,
|
},
|
],
|
Rules: {
|
auditOpinion: [{ trigger: "blur", validator: checkOpinion }],
|
finalOpinion: [
|
{
|
trigger: "blur",
|
validator: checkFinal,
|
},
|
],
|
},
|
baseCase: {},
|
handlePassVo: {},
|
currentSitVo: {},
|
problemProVo: {},
|
filesPictureVo: {},
|
};
|
},
|
created() {
|
const { info } = this;
|
this.baseCase = info.baseCase;
|
this.handlePassVo = info.handlePassVo;
|
this.currentSitVo = info.currentSitVo;
|
this.problemProVo = info.problemProVo;
|
this.filesPictureVo = info.filesPictureVo;
|
},
|
methods: {
|
changeComponent(index) {
|
this.activeIndex = index;
|
},
|
handleBack() {
|
this.$emit("closeDialog", { flag: false });
|
},
|
// 提交审核意见
|
handleSubmit() {
|
const { baseCase } = this;
|
this.$refs.opinionForm.validate((valid) => {
|
if (valid) {
|
this.$axios({
|
method: "put",
|
url:
|
"sccg/base_case/end_case?caseId=" +
|
baseCase.id +
|
"&opinion=" +
|
baseCase.finalOpinion +
|
"&result=" +
|
"结案成功",
|
})
|
.then((res) => {
|
if (res.code === 200) {
|
this.$message({
|
type: "success",
|
message: "结案成功",
|
});
|
this.$emit("closeDialog", { flag: false });
|
} else {
|
this.$message({
|
type: "error",
|
message: "结案失败",
|
});
|
}
|
})
|
.catch((err) => {
|
});
|
} else {
|
return false;
|
}
|
});
|
},
|
},
|
props: ["info", "closeDialog"],
|
};
|
</script>
|
<style lang="scss" scoped>
|
.view {
|
display: flex;
|
padding: 20px;
|
|
.view-data {
|
color: #4b9bb7;
|
flex: 4;
|
padding: 20px;
|
|
.data-item {
|
display: flex;
|
justify-content: space-between;
|
line-height: 40px;
|
}
|
|
// :deep(.el-form-item__label) {
|
// color: #4b9bb7;
|
// }
|
|
// :deep(.el-textarea__inner) {
|
// background-color: #17324c;
|
// color: #4b9bb7;
|
// }
|
|
.el-form-footer {
|
display: flex;
|
justify-content: flex-end;
|
}
|
|
// border: 1px solid #17324c;
|
}
|
// :deep(.el-textarea__inner) {
|
// background-color: #17324c;
|
// color: #4b9bb7;
|
// }
|
.closure-info {
|
padding: 20px;
|
.op-item {
|
padding-top: 20px;
|
}
|
.form-footer {
|
display: flex;
|
margin-top: 50px;
|
justify-content: flex-end;
|
}
|
}
|
.view-process {
|
flex: 6;
|
margin-left: 20px;
|
|
.process-header {
|
display: flex;
|
line-height: 40px;
|
|
.process-title-item {
|
width: 120px;
|
text-align: center;
|
|
.under-line {
|
height: 2px;
|
width: 100%;
|
}
|
|
.title-active {
|
color: #4b9bb7;
|
}
|
|
.line-active {
|
background-color: #4b9bb7;
|
border-radius: 20px;
|
}
|
}
|
}
|
|
.show-item {
|
overflow: hidden;
|
height: 600px;
|
position: relative;
|
|
.show-wrap {
|
overflow: auto;
|
height: 600px;
|
}
|
}
|
}
|
}
|
</style>
|