Browse Source

解决情况

release/epdc
tianq 2 years ago
parent
commit
d9e4efbe8f
  1. 264
      src/views/modules/events/appeal-detail-view.vue

264
src/views/modules/events/appeal-detail-view.vue

@ -6,17 +6,16 @@
<el-form label-position="right" class="projectDetail-left-appeal">
<el-form-item label="诉求内容:">
<div>{{ dataForm.itemContent }}</div>
<el-image v-for="url in dataForm.images"
<el-image
v-for="url in dataForm.images"
style="width: 100px; height: 100px; margin-right: 10px"
:key="url"
:src="url"
:preview-src-list="previewImgList"
@click="clickImg(url)">
</el-image>
@click="clickImg(url)"
></el-image>
<div v-if="dataForm.itemVoice">
<audio controls style="height: 30px;">
<source :src="dataForm.itemVoice" >
</audio>
<audio controls style="height: 30px;"><source :src="dataForm.itemVoice" /></audio>
</div>
</el-form-item>
<el-form-item v-if="dataForm.groupName && dataForm.groupName.length > 0" label="项目来源:" prop="ownGrid">
@ -122,6 +121,11 @@
<el-form-item label="用户满意度评价内容:" v-if="dataForm.itemState == 10">
<div>{{ dataForm.evaluationContent }}</div>
</el-form-item>
<el-form-item label="解决情况:" v-if="dataForm.solutionInfo">
<div v-if="dataForm.solutionInfo == '01'">解决</div>
<div v-if="dataForm.solutionInfo == '02'">基本解决</div>
<div v-if="dataForm.solutionInfo == '03'">未解决</div>
</el-form-item>
</el-form>
<div class="container">
<!-- <div class="location"><span style="font-weight: bold;color: #606266">上报位置:</span> {{dataForm.issueAddress}}</div> -->
@ -130,65 +134,91 @@
</div>
<div class="project-progress">
<div class="project-progress-tip">处理进展</div>
<div class="refresh"><el-button type="text" @click="refreshProgress"> <i class="el-icon-refresh"></i></el-button></div>
<div class="refresh">
<el-button type="text" @click="refreshProgress"><i class="el-icon-refresh"></i></el-button>
</div>
<el-timeline v-loading="timeloading" style="padding-top: 12px;">
<el-timeline-item
v-for="(item, index) in timeLineList"
:key="item.id"
:color="item.type === 'init' ? 'red' : item.type === 'project' ? '#009688' : '#ffa546'">
<el-timeline-item v-for="(item, index) in timeLineList" :key="item.id" :color="item.type === 'init' ? 'red' : item.type === 'project' ? '#009688' : '#ffa546'">
<div :id="`content${index}`" style="line-height:25px; ">
<div
:style="{ marginBottom: '10px', width: '35px', height: '20px', fontSize: '12px', borderRadius: '4px', background: item.type === 'project' ? '#009688': item.type === 'issue' || item.type === 'issue-project' ? '#ffa546' : '', color: '#fff', textAlign: 'center', lineHeight: '20px'}"
v-if="item.type !== 'init'">
:style="{
marginBottom: '10px',
width: '35px',
height: '20px',
fontSize: '12px',
borderRadius: '4px',
background: item.type === 'project' ? '#009688' : item.type === 'issue' || item.type === 'issue-project' ? '#ffa546' : '',
color: '#fff',
textAlign: 'center',
lineHeight: '20px'
}"
v-if="item.type !== 'init'"
>
{{ item.type === 'project' ? '项目' : item.type === 'issue' || item.type === 'issue-project' ? '议题' : '' }}
</div>
<div><span style="font-weight: bold; color: rgb(96, 98, 102);">[{{item | formatState}}]</span> {{item.createdTime}}</div>
<div>
<span style="font-weight: bold; color: rgb(96, 98, 102);">[{{ item | formatState }}]</span>
{{ item.createdTime }}
</div>
<div v-if="item.state === 3">
<div><span style="font-weight: bold; color: rgb(96, 98, 102);">来源社群</span>{{item.groupName}}</div>
<div><span style="font-weight: bold; color: rgb(96, 98, 102);">处理人</span>{{item.handlerDept}}</div>
<div><span style="font-weight: bold; color: rgb(96, 98, 102);">处理人电话</span>{{item.mobile}}</div>
<div>
<span style="font-weight: bold; color: rgb(96, 98, 102);">来源社群</span>
{{ item.groupName }}
</div>
<div>
<span style="font-weight: bold; color: rgb(96, 98, 102);">处理人</span>
{{ item.handlerDept }}
</div>
<div>
<span style="font-weight: bold; color: rgb(96, 98, 102);">处理人电话</span>
{{ item.mobile }}
</div>
</div>
<div v-if="item.state !== 3">
<div><span style="font-weight: bold; color: rgb(96, 98, 102);">处理部门</span>{{item.handlerDept}}</div>
<div>
<span style="font-weight: bold; color: rgb(96, 98, 102);">处理部门</span>
{{ item.handlerDept }}
</div>
</div>
<div v-if="item.itemDeptDTOS && item.itemDeptDTOS.length > 0" style="width: 100%; display: flex;">
<div><span style="font-weight: bold; color: rgb(96, 98, 102);">被吹哨部门</span></div>
<div>
<span v-for="(csDept, index1) in item.itemDeptDTOS" :key="index1">
{{ csDept.deptName }}<br/>
{{ csDept.deptName }}
<br />
</span>
</div>
</div>
<div><span style="font-weight: bold; color: rgb(96, 98, 102);">处理意见</span> {{item.advice}}</div>
<div>
<span style="font-weight: bold; color: rgb(96, 98, 102);">处理意见</span>
{{ item.advice }}
</div>
<div style="display: flex;">
<el-image v-for="url in item.images"
<el-image
v-for="url in item.images"
style="width: 60px; height: 60px; object-fit: cover; margin-right: 8px; border-radius: 2px;"
:key="url"
:src="url"
:preview-src-list="previewImgList"
alt="处理图片"
@click="clickImg(url)">
</el-image>
@click="clickImg(url)"
></el-image>
</div>
</div>
</el-timeline-item>
</el-timeline>
</div>
<div style="width: 100%; text-align:center; float:left;">
<el-button size="medium" style="width: 95px" type="primary" @click="back">返回</el-button>
</div>
<div style="width: 100%; text-align:center; float:left;"><el-button size="medium" style="width: 95px" type="primary" @click="back">返回</el-button></div>
</el-form>
</div>
</template>
<script>
import BMap from 'BMap'
import 'element-ui/lib/theme-chalk/timeline.css'
import 'element-ui/lib/theme-chalk/timeline-item.css'
import 'element-ui/lib/theme-chalk/image.css'
import { gcj02tobd09 } from '../../../utils/gcj02tobd09'
import BMap from 'BMap';
import 'element-ui/lib/theme-chalk/timeline.css';
import 'element-ui/lib/theme-chalk/timeline-item.css';
import 'element-ui/lib/theme-chalk/image.css';
import { gcj02tobd09 } from '../../../utils/gcj02tobd09';
export default {
name: 'itemCloseDetailView',
data() {
@ -210,186 +240,189 @@ export default {
orderField: '',
timeLineList: []
}
};
},
mounted() {
this.dataForm.id = this.$route.query.id
this.init()
this.dataForm.id = this.$route.query.id;
this.init();
},
filters: {
formatState(item) {
if (item.type === 'project') {
if (item.state === 0 && item.itemDeptDTOS && item.itemDeptDTOS.length > 0
) {
return '网格吹哨'
if (item.state === 0 && item.itemDeptDTOS && item.itemDeptDTOS.length > 0) {
return '网格吹哨';
} else if (item.state === 0 && item.itemDeptDTOS && item.itemDeptDTOS.length === 0) {
return '回应'
return '回应';
} else if (item.state === 1) {
return '社区吹哨'
return '社区吹哨';
} else if (item.state === 5) {
return '不予受理'
return '不予受理';
} else if (item.state === 10) {
return '结案'
return '结案';
} else if (item.state === 11) {
return '结案申请'
return '结案申请';
} else if (item.state === 12 || item.state === 1001) {
return '响应拟办'
return '响应拟办';
} else if (item.state === 13) {
return '直接办理'
return '直接办理';
} else if (item.state === 14) {
return '社区驳回'
return '社区驳回';
} else if (item.state === 15) {
return '社区吹哨'
return '社区吹哨';
} else if (item.state === 16) {
return '吹哨市平台'
return '吹哨市平台';
} else if (item.state === 2018) {
return '市平台-诉求督办'
return '市平台-诉求督办';
} else if (item.state === 2020) {
return '市平台-吹哨驳回'
return '市平台-吹哨驳回';
} else if (item.state === 2021) {
return '市平台-吹哨反馈'
return '市平台-吹哨反馈';
} else if (item.state === 20) {
return '网格化平台-受理'
return '网格化平台-受理';
} else if (item.state === 25) {
return '网格化平台-立案'
return '网格化平台-立案';
} else if (item.state === 30) {
return '网格化平台-派遣'
return '网格化平台-派遣';
} else if (item.state === 35) {
return '网格化平台-中间再派'
return '网格化平台-中间再派';
} else if (item.state === 40) {
return '网格化平台-接单'
return '网格化平台-接单';
} else if (item.state === 45) {
return '网格化平台-处置完成'
return '网格化平台-处置完成';
} else if (item.state === 50) {
return '网格化平台-中间督办'
return '网格化平台-中间督办';
} else if (item.state === 55) {
return '网格化平台-催办'
return '网格化平台-催办';
} else if (item.state === 60) {
return '网格化平台-结案'
return '网格化平台-结案';
} else if (item.state === 65) {
return '网格化平台-办理'
return '网格化平台-办理';
} else if (item.state === 70) {
return '网格化平台-批转'
return '网格化平台-批转';
} else if (item.state === 75) {
return '网格化平台-退单'
return '网格化平台-退单';
} else if (item.state === 80) {
return '网格化平台-办结'
return '网格化平台-办结';
} else if (item.state === 85) {
return '项目延期-审核通过'
return '项目延期-审核通过';
} else if (item.state === 90) {
return '项目熔断-审核通过'
return '项目熔断-审核通过';
} else if (item.state === 1002) {
return '诉求初验'
return '诉求初验';
} else if (item.state === 1003) {
return '诉求终验'
return '诉求终验';
} else if (item.state === 1004) {
return '诉求终验'
return '诉求终验';
} else if (item.state === 1005) {
return '诉求初验'
return '诉求初验';
} else if (item.state === 1105) {
return '下发评价'
return '下发评价';
} else if (item.state === 1106) {
return '初验申请'
return '初验申请';
} else {
return '网格化平台-派遣中'
return '网格化平台-派遣中';
}
} else if (item.type === 'issue' || item.type === 'init') {
if (item.state === 0) {
return '审核通过'
return '审核通过';
} else if (item.state === 1) {
return '回应'
return '回应';
} else if (item.state === 2) {
return '关闭'
return '关闭';
} else if (item.state === 3) {
return '转议题'
return '转议题';
}
} else if (item.type === 'issue-project') {
return '转项目'
return '转项目';
}
}
},
methods: {
refreshProgress() {
this.timeloading = true
this.timeloading = true;
this.$http
.get(`/events/platform/item/get/${this.dataForm.id}`)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
return this.$message.error(res.msg);
}
this.getInfo()
this.getInfo();
// console.log(res)
})
.catch(() => {})
.catch(() => {});
},
back() {
this.$parent.init()
this.$parent.init();
// this.$router.push({ path: this.$route.path })
},
initBmap(latitude, longitude) {
this.map = new BMap.Map('map')
const point = new BMap.Point(longitude, latitude)
var marker = new BMap.Marker(point)
this.map.addOverlay(marker)
this.map.centerAndZoom(point, 13)
this.map.enableScrollWheelZoom(true)
this.map = new BMap.Map('map');
const point = new BMap.Point(longitude, latitude);
var marker = new BMap.Marker(point);
this.map.addOverlay(marker);
this.map.centerAndZoom(point, 13);
this.map.enableScrollWheelZoom(true);
},
init() {
this.$nextTick(() => {
if (this.dataForm.id) {
this.getInfo()
this.getInfo();
}
})
});
},
clickImg(url) {
this.previewImgList = []
this.previewImgList.push(url)
this.previewImgList = [];
this.previewImgList.push(url);
},
getInfo() {
this.$http.get(`/events/item/getItemAppealDetail/${this.dataForm.id}`).then(({ data: res }) => {
this.$http
.get(`/events/item/getItemAppealDetail/${this.dataForm.id}`)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
return this.$message.error(res.msg);
}
this.timeloading = false
this.timeloading = false;
this.dataForm = {
...this.dataForm,
...res.data
}
};
console.log(' this.dataForm', this.dataForm.solutionInfo);
this.dataForm.handleProgressResultDTOS.forEach((item, index, arr) => {
if (index === arr.length - 1) {
// item.type = 'issue-project'
item.type = 'project'
item.type = 'project';
} else {
item.type = 'project'
item.type = 'project';
}
})
});
this.dataForm.issueProgressResultDTOS.forEach((item, index, arr) => {
if (index === arr.length - 1) {
item.type = 'init'
item.type = 'init';
} else {
item.type = 'issue'
item.type = 'issue';
}
})
this.timeLineList = [...this.dataForm.handleProgressResultDTOS, ...this.dataForm.issueProgressResultDTOS]
});
this.timeLineList = [...this.dataForm.handleProgressResultDTOS, ...this.dataForm.issueProgressResultDTOS];
this.$nextTick(() => {
this.timeLineList.forEach((item, index) => {
const oDiv = document.getElementById(`content${index}`)
const oBorder = oDiv.parentNode.parentNode.parentNode.firstChild
const oDiv = document.getElementById(`content${index}`);
const oBorder = oDiv.parentNode.parentNode.parentNode.firstChild;
if (item.type === 'issue' || item.type === 'issue-project') {
oBorder.style.borderLeft = '1px solid #ffa546'
oBorder.style.borderLeft = '1px solid #ffa546';
} else if (item.type === 'project') {
oBorder.style.borderLeft = '1px solid #009688'
oBorder.style.borderLeft = '1px solid #009688';
}
});
});
this.dataForm.issueLongitude = gcj02tobd09(this.dataForm.issueLongitude, this.dataForm.issueLatitude)[0];
this.dataForm.issueLatitude = gcj02tobd09(this.dataForm.issueLongitude, this.dataForm.issueLatitude)[1];
this.initBmap(this.dataForm.issueLatitude, this.dataForm.issueLongitude);
})
})
this.dataForm.issueLongitude = gcj02tobd09(this.dataForm.issueLongitude, this.dataForm.issueLatitude)[0]
this.dataForm.issueLatitude = gcj02tobd09(this.dataForm.issueLongitude, this.dataForm.issueLatitude)[1]
this.initBmap(this.dataForm.issueLatitude, this.dataForm.issueLongitude)
}).catch(() => {})
}
.catch(() => {});
}
}
};
</script>
<style lang="scss">
@ -468,7 +501,6 @@ export default {
border-radius: 10px;
background: #fff;
}
}
.container {
width: 48%;

Loading…
Cancel
Save