<template>
|
<div class="view">
|
<div class="view-data">
|
<el-form :model="baseCase" label-position="right" ref="viewForm" :rules="Rules" label-width="160px">
|
<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.illegalBuilding.categoryId}}</span>
|
</el-form-item>
|
</div>
|
<div class="data-item">
|
<el-form-item label="事件等级:">
|
<span class="data-detail">{{baseCase.illegalBuilding.baseCaseId}}</span>
|
</el-form-item>
|
</div>
|
<div class="data-item">
|
<el-form-item label="案由:">
|
<span class="data-detail">{{baseCase.illegalBuilding.actionCause}}</span>
|
</el-form-item>
|
</div>
|
<div class="data-item">
|
<el-form-item label="违法建设长、宽、高:">
|
<span class="data-detail">{{baseCase.illegalBuilding.buildingLength+'m、'+baseCase.illegalBuilding.buildingWidth+'m、'+ baseCase.illegalBuilding.buildingHigh + 'm '}}</span>
|
</el-form-item>
|
</div>
|
<div class="data-item">
|
<el-form-item label="违法建设面积:">
|
<span class="data-detail">{{baseCase.illegalBuilding.buildingArea+'㎡ '}}</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>
|
</div>
|
<div class="data-item">
|
<el-form-item label="问题描述:">
|
<span class="data-detail">{{baseCase.illegalBuilding.description}}</span>
|
</el-form-item>
|
</div>
|
<!-- 审核意见 -->
|
<el-form-item label="审核意见" prop="auditOpinion">
|
<el-input type="textarea" placeholder="请输入审核意见" v-model="baseCase.auditOpinion"></el-input>
|
</el-form-item>
|
<div class="el-form-footer">
|
<el-button @click.native.prevent="handleSubmit(0)">驳回</el-button>
|
<el-button type="primary" @click.native.prevent="handleSubmit(1)">通过</el-button>
|
</div>
|
</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;
|
}
|
})
|
},
|
// 获取当前用户登录信息
|
getUserLoginInfo() {
|
// 获取登录名;
|
const username = sessionStorage.getItem('name');
|
this.$axios({
|
method: 'get',
|
url: 'sccg/admin/info',
|
data: {
|
name: 'username'
|
}
|
})
|
.then(res => {
|
})
|
}
|
},
|
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>
|