Browse Source

解决情况

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

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

@ -5,122 +5,126 @@
<div class="project-detail-tip">诉求详情</div>
<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"
<div>{{ dataForm.itemContent }}</div>
<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">
<div>{{dataForm.groupName}}</div>
<div>{{ dataForm.groupName }}</div>
</el-form-item>
<el-form-item v-if="dataForm.enterpriseName" label="企业名称:">
<div>{{dataForm.enterpriseName}}</div>
<div>{{ dataForm.enterpriseName }}</div>
</el-form-item>
<el-form-item v-if="dataForm.uniformSocialCreditCode" label="社会信用代码:">
<div>{{dataForm.uniformSocialCreditCode}}</div>
<div>{{ dataForm.uniformSocialCreditCode }}</div>
</el-form-item>
<el-form-item label="上报时间:">
<div>{{dataForm.distributeTime}}</div>
<div>{{ dataForm.distributeTime }}</div>
</el-form-item>
<el-form-item label="联系人姓名:">
<div>{{dataForm.nickName}}</div>
<div>{{ dataForm.nickName }}</div>
</el-form-item>
<el-form-item label="手机号:" prop="mobile">
<div>{{dataForm.mobile}}</div>
<div>{{ dataForm.mobile }}</div>
</el-form-item>
<!-- <el-form-item label="所属类别:" prop="categoryName">
<div>{{dataForm.categoryName}}</div>
</el-form-item> -->
<el-form-item label="事件位置:" prop="issueAddress">
<div>{{dataForm.issueAddress}}</div>
<div>{{ dataForm.issueAddress }}</div>
</el-form-item>
<el-form-item label="分类:" prop="categoryName">
<div>{{dataForm.peopleFlag == '0' ? '民生诉求' : dataForm.peopleFlag == '1' ? '发展诉求' : '执法诉求'}}</div>
<div>{{ dataForm.peopleFlag == '0' ? '民生诉求' : dataForm.peopleFlag == '1' ? '发展诉求' : '执法诉求' }}</div>
</el-form-item>
<el-form-item label="诉求编码:" prop="serialNum">
<div>{{dataForm.serialNum}}</div>
<div>{{ dataForm.serialNum }}</div>
</el-form-item>
<el-form-item v-if="dataForm.lawDetail && dataForm.lawDetail.lawName" label="事项名称:" prop="lawName">
<div>{{dataForm.lawDetail.lawName}}</div>
<div>{{ dataForm.lawDetail.lawName }}</div>
</el-form-item>
<el-form-item v-if="dataForm.lawDetail && dataForm.lawDetail.lawContent" label="诉求详情:" prop="lawContent">
<div>{{dataForm.lawDetail.lawContent}}</div>
<div>{{ dataForm.lawDetail.lawContent }}</div>
</el-form-item>
<el-form-item v-if="dataForm.lawDetail && dataForm.lawDetail.hostUnit" label="建议主办单位:" prop="hostUnit">
<div>{{dataForm.lawDetail.hostUnit}}</div>
<div>{{ dataForm.lawDetail.hostUnit }}</div>
</el-form-item>
<el-form-item v-if="dataForm.lawDetail && dataForm.lawDetail.assistUnit" label="建议协办单位:" prop="assistUnit">
<div>{{dataForm.lawDetail.assistUnit}}</div>
<div>{{ dataForm.lawDetail.assistUnit }}</div>
</el-form-item>
<el-form-item v-if="dataForm.lawDetail && dataForm.lawDetail.demand" label="有关需求:" prop="demand">
<div>{{dataForm.lawDetail.demand}}</div>
<div>{{ dataForm.lawDetail.demand }}</div>
</el-form-item>
<el-form-item v-if="dataForm.lawDetail && dataForm.lawDetail.lawType" label="事项类型:" prop="lawType">
<div>{{dataForm.lawDetail.lawType == '0' ? '计划事项' : '临时事项'}}</div>
<div>{{ dataForm.lawDetail.lawType == '0' ? '计划事项' : '临时事项' }}</div>
</el-form-item>
<el-form-item v-if="dataForm.lawDetail && dataForm.lawDetail.isExchange" label="与部门是否沟通:" prop="isExchange">
<div>{{dataForm.lawDetail.isExchange == '0' ? '已经沟通' : '尚未沟通'}}</div>
<div>{{ dataForm.lawDetail.isExchange == '0' ? '已经沟通' : '尚未沟通' }}</div>
</el-form-item>
<el-form-item v-if="dataForm.lawDetail && dataForm.lawDetail.convenerName" label="召集人姓名:" prop="convenerName">
<div>{{dataForm.lawDetail.convenerName}}</div>
<div>{{ dataForm.lawDetail.convenerName }}</div>
</el-form-item>
<el-form-item v-if="dataForm.lawDetail && dataForm.lawDetail.convenerJob" label="召集人职务:" prop="convenerJob">
<div>{{dataForm.lawDetail.convenerJob}}</div>
<div>{{ dataForm.lawDetail.convenerJob }}</div>
</el-form-item>
<el-form-item v-if="dataForm.lawDetail && dataForm.lawDetail.convenerMobile" label="召集人电话:" prop="convenerMobile">
<div>{{dataForm.lawDetail.convenerMobile}}</div>
<div>{{ dataForm.lawDetail.convenerMobile }}</div>
</el-form-item>
<el-form-item v-if="dataForm.lawDetail && dataForm.lawDetail.contactName" label="联系人姓名:" prop="contactName">
<div>{{dataForm.lawDetail.contactName}}</div>
<div>{{ dataForm.lawDetail.contactName }}</div>
</el-form-item>
<el-form-item v-if="dataForm.lawDetail && dataForm.lawDetail.contactJob" label="联系人职务:" prop="contactJob">
<div>{{dataForm.lawDetail.contactJob}}</div>
<div>{{ dataForm.lawDetail.contactJob }}</div>
</el-form-item>
<el-form-item v-if="dataForm.lawDetail && dataForm.lawDetail.contactMobile" label="联系人电话:" prop="contactMobile">
<div>{{dataForm.lawDetail.contactMobile}}</div>
<div>{{ dataForm.lawDetail.contactMobile }}</div>
</el-form-item>
<el-form-item v-if="dataForm.lawDetail && dataForm.lawDetail.reportTime" label="报到时间:" prop="reportTime">
<div>{{dataForm.lawDetail.reportTime}}</div>
<div>{{ dataForm.lawDetail.reportTime }}</div>
</el-form-item>
<el-form-item v-if="dataForm.lawDetail && dataForm.lawDetail.reportAddress" label="报到地点:" prop="reportAddress">
<div>{{dataForm.lawDetail.reportAddress}}</div>
<div>{{ dataForm.lawDetail.reportAddress }}</div>
</el-form-item>
<el-form-item v-if="dataForm.lawDetail && dataForm.lawDetail.meetingName" label="会议名称:" prop="meetingName">
<div>{{dataForm.lawDetail.meetingName}}</div>
<div>{{ dataForm.lawDetail.meetingName }}</div>
</el-form-item>
<el-form-item label="用户满意度评价:" v-if="dataForm.itemState == 10">
<div>{{dataForm.evaluationScoreName}}</div>
<div>{{ dataForm.evaluationScoreName }}</div>
</el-form-item>
<el-form-item label="用户满意度评价内容:" v-if="dataForm.itemState == 10">
<div>{{dataForm.evaluationContent}}</div>
<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">
@ -130,68 +134,94 @@
</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'">
{{item.type === 'project' ? '项目': item.type === 'issue' || item.type === 'issue-project' ? '议题' : ''}}
: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 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 () {
data() {
return {
timeloading: true,
map: '',
@ -210,202 +240,205 @@ export default {
orderField: '',
timeLineList: []
}
};
},
mounted () {
this.dataForm.id = this.$route.query.id
this.init()
mounted() {
this.dataForm.id = this.$route.query.id;
this.init();
},
filters: {
formatState (item) {
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
refreshProgress() {
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()
back() {
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)
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);
},
init () {
init() {
this.$nextTick(() => {
if (this.dataForm.id) {
this.getInfo()
this.getInfo();
}
})
});
},
clickImg (url) {
this.previewImgList = []
this.previewImgList.push(url)
clickImg(url) {
this.previewImgList = [];
this.previewImgList.push(url);
},
getInfo () {
this.$http.get(`/events/item/getItemAppealDetail/${this.dataForm.id}`).then(({ data: res }) => {
getInfo() {
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">
.project-handle {
.project-handle {
.el-timeline {
padding-left: 9px;
font-size: 13px;
}
}
.el-form-item__label {
}
.el-form-item__label {
font-weight: bold;
}
}
</style>
<style lang="scss" scoped>
.project-handle {
.project-handle {
width: 100%;
height: calc(100vh - 120px);
background: #ffffff;
@ -417,45 +450,45 @@ export default {
border: 2px solid #ccc;
box-sizing: border-box;
// padding: 10px;
float:left;
float: left;
margin-bottom: 1%;
position: relative;
padding: 20px 85px;
box-sizing: border-box;
.projectDetail-left-appeal{
.image-list{
.projectDetail-left-appeal {
.image-list {
width: 100%;
height: auto;
padding: 0px 45px;
box-sizing: border-box;
}
.el-form-item{
.el-form-item__label{
.el-form-item {
.el-form-item__label {
width: auto;
padding-left: 48px;
text-align: left !important;
}
}
.el-form-item{
.el-form-item {
margin-bottom: 0px;
}
}
.project-detail-tip {
position: absolute;
top: 0;
left:0;
left: 0;
width: 80px;
height: 30px;
line-height: 30px;
color: #ffffff;
background: #4ac38b;
text-align:center;
text-align: center;
}
.el-form {
width: 50%;
height: 100%;
float:left;
overflow-y:auto;
float: left;
overflow-y: auto;
&::-webkit-scrollbar {
width: 5px;
height: 1px;
@ -468,7 +501,6 @@ export default {
border-radius: 10px;
background: #fff;
}
}
.container {
width: 48%;
@ -492,19 +524,19 @@ export default {
box-sizing: border-box;
margin-left: 1%;
padding-top: 20px;
overflow-y:auto;
overflow-y: auto;
position: relative;
padding-top: 40px;
.project-progress-tip {
position: absolute;
top: 0;
left:0;
left: 0;
width: 80px;
height: 30px;
line-height: 30px;
color: #ffffff;
background: #0098ff;
text-align:center;
text-align: center;
}
&::-webkit-scrollbar {
width: 5px;
@ -524,11 +556,11 @@ export default {
height: 49%;
box-sizing: border-box;
border: 2px solid #ccc;
float:left;
}
float: left;
}
}
.refresh {
.refresh {
position: absolute;
top: -10px;
right: 0;
@ -539,5 +571,5 @@ export default {
.el-icon-refresh {
font-size: 20px;
}
}
}
</style>

Loading…
Cancel
Save