<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>
|
<!-- <div class="data-item">
|
<el-form-item label="处置方式:">
|
<span class="data-detail">xxxxxxx</span>
|
</el-form-item>
|
</div>
|
<div class="data-item">
|
<el-form-item label="处置手段:">
|
<span class="data-detail">xxxxxxx</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">
|
<MyProcess v-if="activeIndex === 1" :handlePassVo="handlePassVo" :baseCase="baseCase"></MyProcess>
|
<MyFilePicture v-else-if="activeIndex === 2" :filesPictureVo="filesPictureVo" ></MyFilePicture>
|
<MySovleProblem v-else-if="activeIndex === 3" :handlePassVo="handlePassVo" :baseCase="baseCase"></MySovleProblem>
|
<MyScene v-else :currentSitVo="currentSitVo" :baseCase="baseCase"></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(new Error('审核意见不能为空'))
|
}
|
}
|
return {
|
myInfo: {
|
|
},
|
activeIndex: 1,
|
titleList: [
|
{
|
title: '办理经过',
|
index: 1,
|
},
|
{
|
title: '案卷图片',
|
index: 2,
|
},
|
{
|
title: '问题处理',
|
index: 3,
|
},
|
{
|
title: '现场情况',
|
index: 4,
|
},
|
],
|
Rules: {
|
auditOpinion: [
|
{ required: true, trigger: 'blur', validator: checkOpinion }
|
]
|
},
|
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;
|
},
|
// 提交审核意见
|
handleSubmit(mystatus) {
|
// this.getUserLoginInfo();
|
const { baseCase } = this;
|
this.$refs.viewForm.validate((valid) => {
|
if (valid) {
|
this.$axios({
|
method: 'post',
|
url: 'sccg/check_handle/check',
|
data: {
|
baseCaseId: baseCase.id,
|
checkOpinion: baseCase.auditOpinion,
|
currentUser: baseCase.createUser,
|
status: mystatus,
|
}
|
})
|
.then(res => {
|
if (res.code === 200) {
|
this.$message({
|
type: 'success',
|
message: mystatus === 0 ? '驳回成功' : '审核通过'
|
})
|
this.$emit('closeDialog', { flag: false });
|
}
|
|
})
|
.catch(err => { console.log(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;
|
}
|
|
.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: scroll;
|
height: 600px;
|
}
|
}
|
}
|
}
|
</style>
|