|
|
@ -1,25 +1,49 @@ |
|
|
|
<template> |
|
|
|
<el-card shadow="never" class="aui-card--fill"> |
|
|
|
<el-card shadow="never" |
|
|
|
class="aui-card--fill"> |
|
|
|
<div class="mod-item__item}"> |
|
|
|
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataListSearch()"> |
|
|
|
<el-form-item label="诉求类型" prop="peopleFlag" label-width="100px"> |
|
|
|
<el-select v-model="dataForm.peopleFlag" placeholder="请选择" clearable> |
|
|
|
<el-option label="民生" value="0"> </el-option> |
|
|
|
<el-option label="发展" value="1"> </el-option> |
|
|
|
<el-option label="执法" value="2"> </el-option> |
|
|
|
<el-form :inline="true" |
|
|
|
:model="dataForm" |
|
|
|
@keyup.enter.native="getDataListSearch()"> |
|
|
|
<el-form-item label="诉求类型" |
|
|
|
prop="peopleFlag" |
|
|
|
label-width="100px"> |
|
|
|
<el-select v-model="dataForm.peopleFlag" |
|
|
|
placeholder="请选择" |
|
|
|
clearable> |
|
|
|
<el-option label="民生" |
|
|
|
value="0"> </el-option> |
|
|
|
<el-option label="发展" |
|
|
|
value="1"> </el-option> |
|
|
|
<el-option label="执法" |
|
|
|
value="2"> </el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="所属机构" label-width="100px"> |
|
|
|
<el-cascader v-model="ids" :options="options" :props="{ checkStrictly: true }" clearable |
|
|
|
<el-form-item label="所属机构" |
|
|
|
label-width="100px"> |
|
|
|
<el-cascader v-model="ids" |
|
|
|
:options="options" |
|
|
|
:props="{ checkStrictly: true }" |
|
|
|
clearable |
|
|
|
style="width:250px;"> |
|
|
|
</el-cascader> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="诉求内容" prop="itemCode" label-width="100px"> |
|
|
|
<el-input v-model="dataForm.itemContent" placeholder="请输入诉求内容" clearable |
|
|
|
@keyup.native="btKeyUpItemContent" style="width:200px;"></el-input> |
|
|
|
<el-form-item label="诉求内容" |
|
|
|
prop="itemCode" |
|
|
|
label-width="100px"> |
|
|
|
<el-input v-model="dataForm.itemContent" |
|
|
|
placeholder="请输入诉求内容" |
|
|
|
clearable |
|
|
|
@keyup.native="btKeyUpItemContent" |
|
|
|
style="width:200px;"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="诉求编码" prop="serialNum" label-width="100px"> |
|
|
|
<el-input v-model="dataForm.serialNum" placeholder="诉求编码" clearable style="width:200px;"></el-input> |
|
|
|
<el-form-item label="诉求编码" |
|
|
|
prop="serialNum" |
|
|
|
label-width="100px"> |
|
|
|
<el-input v-model="dataForm.serialNum" |
|
|
|
placeholder="诉求编码" |
|
|
|
clearable |
|
|
|
style="width:200px;"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<!-- <el-form-item label="满意度" prop="evaluationScoreType" label-width="100px">--> |
|
|
|
<!-- <el-select v-model="dataForm.evaluationScore" placeholder="请选择" clearable>--> |
|
|
@ -35,20 +59,35 @@ |
|
|
|
<!-- </el-select>--> |
|
|
|
<!-- </el-form-item>--> |
|
|
|
<br /> |
|
|
|
<el-form-item label="上报起始时间" prop="startTime" label-width="100px"> |
|
|
|
<el-date-picker v-model="dataForm.startTime" type="date" :picker-options="pickerBeginDateBefore" |
|
|
|
value-format="yyyy-MM-dd" format="yyyy-MM-dd" placeholder="选择日期时间" style="width:250px;" |
|
|
|
<el-form-item label="上报起始时间" |
|
|
|
prop="startTime" |
|
|
|
label-width="100px"> |
|
|
|
<el-date-picker v-model="dataForm.startTime" |
|
|
|
type="date" |
|
|
|
:picker-options="pickerBeginDateBefore" |
|
|
|
value-format="yyyy-MM-dd" |
|
|
|
format="yyyy-MM-dd" |
|
|
|
placeholder="选择日期时间" |
|
|
|
style="width:250px;" |
|
|
|
@change="changeTime"> |
|
|
|
</el-date-picker> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="至" label-width="25px" prop="endTime"> |
|
|
|
<el-date-picker v-model="dataForm.endTime" type="date" :picker-options="pickerBeginDateAfter" |
|
|
|
value-format="yyyy-MM-dd" format="yyyy-MM-dd" placeholder="选择日期时间" style="width:250px;" |
|
|
|
<el-form-item label="至" |
|
|
|
label-width="25px" |
|
|
|
prop="endTime"> |
|
|
|
<el-date-picker v-model="dataForm.endTime" |
|
|
|
type="date" |
|
|
|
:picker-options="pickerBeginDateAfter" |
|
|
|
value-format="yyyy-MM-dd" |
|
|
|
format="yyyy-MM-dd" |
|
|
|
placeholder="选择日期时间" |
|
|
|
style="width:250px;" |
|
|
|
@change="changeTime"> |
|
|
|
</el-date-picker> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item> |
|
|
|
<el-button type="success" @click="getDataListSearch()" |
|
|
|
<el-button type="success" |
|
|
|
@click="getDataListSearch()" |
|
|
|
class="custom-button-default">{{ $t('query') }}</el-button> |
|
|
|
</el-form-item> |
|
|
|
<!-- <el-form-item> |
|
|
@ -56,24 +95,46 @@ |
|
|
|
@click="exportHandle()" class="custom-button-modify">{{ $t('export') }}</el-button> |
|
|
|
</el-form-item> --> |
|
|
|
</el-form> |
|
|
|
<el-table v-loading="dataListLoading" :data="dataList" border |
|
|
|
@selection-change="dataListSelectionChangeHandle" style="width: 100%;"> |
|
|
|
<el-table-column label=" " align="center" width="50"> |
|
|
|
<el-table v-loading="dataListLoading" |
|
|
|
:data="dataList" |
|
|
|
border |
|
|
|
@selection-change="dataListSelectionChangeHandle" |
|
|
|
style="width: 100%;"> |
|
|
|
<el-table-column label=" " |
|
|
|
align="center" |
|
|
|
width="50"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<img :src="red" width="25" height="25" |
|
|
|
<img :src="red" |
|
|
|
width="25" |
|
|
|
height="25" |
|
|
|
v-if="scope.row.itemState === 0 && scope.row.isRemind === '1'" /> |
|
|
|
<img :src="yellow" width="25" height="25" |
|
|
|
<img :src="yellow" |
|
|
|
width="25" |
|
|
|
height="25" |
|
|
|
v-if="scope.row.itemState === 0 && scope.row.isRemind === '2'" /> |
|
|
|
<img :src="green" width="25" height="25" |
|
|
|
<img :src="green" |
|
|
|
width="25" |
|
|
|
height="25" |
|
|
|
v-if="scope.row.itemState === 0 && scope.row.isRemind === '3'" /> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="序号" type="index" show-overflow-tooltip align="center" |
|
|
|
<el-table-column label="序号" |
|
|
|
type="index" |
|
|
|
show-overflow-tooltip |
|
|
|
align="center" |
|
|
|
width="50"></el-table-column> |
|
|
|
<el-table-column prop="gridName" label="属事街道" header-align="center" width="120" align="center" |
|
|
|
<el-table-column prop="gridName" |
|
|
|
label="属事街道" |
|
|
|
header-align="center" |
|
|
|
width="120" |
|
|
|
align="center" |
|
|
|
show-overflow-tooltip> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="itemContent" label="诉求内容" header-align="center" min-width="300" align="left" |
|
|
|
<el-table-column prop="itemContent" |
|
|
|
label="诉求内容" |
|
|
|
header-align="center" |
|
|
|
min-width="300" |
|
|
|
align="left" |
|
|
|
show-overflow-tooltip></el-table-column> |
|
|
|
<!--<el-table-column--> |
|
|
|
<!--prop="serialNum"--> |
|
|
@ -82,23 +143,41 @@ |
|
|
|
<!--min-width="200"--> |
|
|
|
<!--align="center"--> |
|
|
|
<!--></el-table-column>--> |
|
|
|
<el-table-column prop="peopleFlagName" label="诉求类型" header-align="center" min-width="120" |
|
|
|
<el-table-column prop="peopleFlagName" |
|
|
|
label="诉求类型" |
|
|
|
header-align="center" |
|
|
|
min-width="120" |
|
|
|
align="center"></el-table-column> |
|
|
|
<el-table-column prop="itemStateName" label="处理状态" header-align="center" min-width="120" align="center"> |
|
|
|
<el-table-column prop="itemStateName" |
|
|
|
label="处理状态" |
|
|
|
header-align="center" |
|
|
|
min-width="120" |
|
|
|
align="center"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<span v-if="scope.row.processState === '16'">市区处理中</span> |
|
|
|
<span v-else>{{scope.row.itemStateName}}</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="createdTime" label="上报时间" header-align="center" width="180" |
|
|
|
<el-table-column prop="createdTime" |
|
|
|
label="上报时间" |
|
|
|
header-align="center" |
|
|
|
width="180" |
|
|
|
align="center"></el-table-column> |
|
|
|
<el-table-column prop="remainTime" label="事件时间" header-align="center" min-width="120" align="center" |
|
|
|
<el-table-column prop="remainTime" |
|
|
|
label="事件时间" |
|
|
|
header-align="center" |
|
|
|
min-width="120" |
|
|
|
align="center" |
|
|
|
show-overflow-tooltip> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<span v-if="scope.row.itemState === 0">{{scope.row.remainTime}}</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="nickName" label="联系人姓名" header-align="center" min-width="100" align="center" |
|
|
|
<el-table-column prop="nickName" |
|
|
|
label="联系人姓名" |
|
|
|
header-align="center" |
|
|
|
min-width="100" |
|
|
|
align="center" |
|
|
|
show-overflow-tooltip></el-table-column> |
|
|
|
<!-- <el-table-column--> |
|
|
|
<!-- prop="evaluationScoreName"--> |
|
|
@ -106,37 +185,71 @@ |
|
|
|
<!-- header-align="center"--> |
|
|
|
<!-- align="center"--> |
|
|
|
<!-- ></el-table-column>--> |
|
|
|
<el-table-column :label="$t('handle')" fixed="right" min-width="150" header-align="center" |
|
|
|
<el-table-column :label="$t('handle')" |
|
|
|
fixed="right" |
|
|
|
min-width="150" |
|
|
|
header-align="center" |
|
|
|
align="center"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-button type="text" size="small" class="custom-table-button-default" |
|
|
|
<el-button type="text" |
|
|
|
size="small" |
|
|
|
class="custom-table-button-default" |
|
|
|
@click="dealAction(scope.row.id)">详情 </el-button> |
|
|
|
<el-button type="text" size="small" |
|
|
|
<!-- 吹哨上报@click="cssbAction(scope.row.id)"吹哨上报,再次上报dealAction --> |
|
|
|
<el-button type="text" |
|
|
|
size="small" |
|
|
|
v-if="!(scope.row.processState == '16'||scope.row.processState == '2021'||scope.row.processState == '1105' )" |
|
|
|
class="custom-table-button-default" @click="cssbAction(scope.row.id)">吹哨上报 </el-button> |
|
|
|
<el-button type="text" size="small" v-if="scope.row.processState == '2021'" |
|
|
|
class="custom-table-button-default" @click="evaluationIssue(scope.row.id)">下发评价 </el-button> |
|
|
|
class="custom-table-button-default" |
|
|
|
@click="goShowCssbActionPopup(scope.row.id,scope.row.itemHandleDeptId)">再处理</el-button> |
|
|
|
<el-button type="text" |
|
|
|
size="small" |
|
|
|
v-if="scope.row.processState == '2021'" |
|
|
|
class="custom-table-button-default" |
|
|
|
@click="evaluationIssue(scope.row.id)">下发评价 </el-button> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
<el-pagination :current-page="page" :page-sizes="[10, 20, 50, 100]" :page-size="limit" :total="total" |
|
|
|
layout="total, sizes, prev, pager, next, jumper" @size-change="pageSizeChangeHandle" |
|
|
|
<el-pagination :current-page="page" |
|
|
|
:page-sizes="[10, 20, 50, 100]" |
|
|
|
:page-size="limit" |
|
|
|
:total="total" |
|
|
|
layout="total, sizes, prev, pager, next, jumper" |
|
|
|
@size-change="pageSizeChangeHandle" |
|
|
|
@current-change="pageCurrentChangeHandle"> |
|
|
|
</el-pagination> |
|
|
|
</div> |
|
|
|
<!-- 弹窗, 新增 / 修改 --> |
|
|
|
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update> |
|
|
|
<cssb-reason v-if="cssbReasonVisible" ref="cssbReason" @refreshDataList="getDataList"></cssb-reason> |
|
|
|
<add-or-update v-if="addOrUpdateVisible" |
|
|
|
ref="addOrUpdate" |
|
|
|
@refreshDataList="getDataList"></add-or-update> |
|
|
|
<cssb-reason v-if="cssbReasonVisible" |
|
|
|
ref="cssbReason" |
|
|
|
@refreshDataList="getDataList"></cssb-reason> |
|
|
|
<el-dialog title="再处理" |
|
|
|
:visible.sync="ifShowCssbAction" |
|
|
|
width="30%" |
|
|
|
:modal="false"> |
|
|
|
<div class="popupButton"> |
|
|
|
<div> |
|
|
|
<el-button type="primary" |
|
|
|
@click="cssbAction()">吹哨上报</el-button> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<el-button type="primary" |
|
|
|
@click="reportAgain()">再次上报</el-button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</el-dialog> |
|
|
|
</el-card> |
|
|
|
</template> |
|
|
|
<script> |
|
|
|
import green from '@/assets/img/green_img.png' |
|
|
|
import red from '@/assets/img/red_img.png' |
|
|
|
import yellow from '@/assets/img/yellow_img.png' |
|
|
|
import mixinViewModule from '@/mixins/view-module' |
|
|
|
import AddOrUpdate from './appeal-cssb-add' |
|
|
|
import CssbReason from './appeal-cssb-reason' |
|
|
|
export default { |
|
|
|
import green from '@/assets/img/green_img.png' |
|
|
|
import red from '@/assets/img/red_img.png' |
|
|
|
import yellow from '@/assets/img/yellow_img.png' |
|
|
|
import mixinViewModule from '@/mixins/view-module' |
|
|
|
import AddOrUpdate from './appeal-cssb-add' |
|
|
|
import CssbReason from './appeal-cssb-reason' |
|
|
|
export default { |
|
|
|
mixins: [mixinViewModule], |
|
|
|
name: 'AppealList', |
|
|
|
data() { |
|
|
@ -183,19 +296,22 @@ |
|
|
|
return time.getTime() < new Date(EndDateVal + ' 00:00:00').getTime() |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
ifShowCssbAction: false, |
|
|
|
againEscalationId: null, |
|
|
|
itemHandleDeptId: null |
|
|
|
} |
|
|
|
}, |
|
|
|
components: { |
|
|
|
AddOrUpdate, |
|
|
|
CssbReason |
|
|
|
}, |
|
|
|
created: function() { |
|
|
|
created: function () { |
|
|
|
this.getPeoList() |
|
|
|
this.getOptions() |
|
|
|
}, |
|
|
|
watch: { |
|
|
|
ids: function(val) { |
|
|
|
ids: function (val) { |
|
|
|
if (val.length === 0) { |
|
|
|
this.dataForm.streetId = '' |
|
|
|
this.dataForm.communityId = '' |
|
|
@ -227,7 +343,7 @@ |
|
|
|
return this.$message.error(res.msg) |
|
|
|
} |
|
|
|
this.options = res.data.options |
|
|
|
}).catch(() => {}) |
|
|
|
}).catch(() => { }) |
|
|
|
}, |
|
|
|
getPeoList() { |
|
|
|
console.log(this.dataList) |
|
|
@ -241,11 +357,12 @@ |
|
|
|
} |
|
|
|
}) |
|
|
|
}, |
|
|
|
cssbAction(id) { |
|
|
|
cssbAction() { |
|
|
|
this.cssbReasonVisible = true |
|
|
|
this.$nextTick(() => { |
|
|
|
this.$refs.cssbReason.dataForm.id = id |
|
|
|
this.$refs.cssbReason.dataForm.id = this.againEscalationId; |
|
|
|
this.$refs.cssbReason.init() |
|
|
|
this.ifShowCssbAction = false |
|
|
|
}) |
|
|
|
}, |
|
|
|
evaluationIssue(id) { |
|
|
@ -255,7 +372,7 @@ |
|
|
|
type: 'warning' |
|
|
|
}).then(() => { |
|
|
|
|
|
|
|
this.$http['post']('events/item/evaluationIssue', {itemId:id}).then(({ |
|
|
|
this.$http['post']('events/item/evaluationIssue', { itemId: id }).then(({ |
|
|
|
data: res |
|
|
|
}) => { |
|
|
|
console.log(res) |
|
|
@ -264,6 +381,7 @@ |
|
|
|
message: '下发评价成功' |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
this.getDataList() |
|
|
|
// if (res.code !== 0) { |
|
|
|
// return this.$message.error(res.msg) |
|
|
@ -277,7 +395,7 @@ |
|
|
|
// this.$emit('refreshDataList') |
|
|
|
// } |
|
|
|
// }) |
|
|
|
}).catch(() => {}) |
|
|
|
}).catch(() => { }) |
|
|
|
|
|
|
|
}).catch(() => { |
|
|
|
this.$message({ |
|
|
@ -297,7 +415,57 @@ |
|
|
|
e.target.value = e.target.value.replace(/[`~!#$%^&*()_\+=<>?:"{}|~!#¥%……&*()={}|《》?:“”【】\\[\]、;‘’,。、\s+]/g, |
|
|
|
'') |
|
|
|
this.dataForm.itemContent = e.target.value |
|
|
|
}, |
|
|
|
goShowCssbActionPopup(id, itemHandleDeptId) { |
|
|
|
this.ifShowCssbAction = true; |
|
|
|
this.againEscalationId = id |
|
|
|
this.itemHandleDeptId = itemHandleDeptId |
|
|
|
}, |
|
|
|
reportAgain() { |
|
|
|
this.$confirm('确认要再次上报吗么?', '提示', { |
|
|
|
confirmButtonText: '确定', |
|
|
|
cancelButtonText: '取消', |
|
|
|
type: 'warning' |
|
|
|
}).then(() => { |
|
|
|
const condition = { |
|
|
|
id: this.againEscalationId || null, |
|
|
|
handleCategory: 3000, |
|
|
|
handlerDept: this.itemHandleDeptId, |
|
|
|
handlerDeptId: this.itemHandleDeptId |
|
|
|
} |
|
|
|
this.$http['post']('events/item/reportWGH', condition).then(({ |
|
|
|
data: res |
|
|
|
}) => { |
|
|
|
if (res && res.code == 0) { |
|
|
|
this.$message({ |
|
|
|
type: 'success', |
|
|
|
message: '再次上报成功' |
|
|
|
}); |
|
|
|
} else { |
|
|
|
this.$message({ |
|
|
|
type: 'success', |
|
|
|
message: res.msg |
|
|
|
}); |
|
|
|
} |
|
|
|
this.ifShowCssbAction = false |
|
|
|
}).catch(() => { }) |
|
|
|
|
|
|
|
}).catch(() => { |
|
|
|
this.$message({ |
|
|
|
type: 'info', |
|
|
|
message: '已取消' |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
</script> |
|
|
|
|
|
|
|
<style> |
|
|
|
.popupButton { |
|
|
|
display: flex; |
|
|
|
flex-direction: row; |
|
|
|
justify-content: space-around; |
|
|
|
} |
|
|
|
</style> |