|
|
|
@ -3,45 +3,57 @@ |
|
|
|
<Breadcrumb :list="breadcrumbList"/> |
|
|
|
<div class="screen"> |
|
|
|
<el-form :model="queryParams" inline> |
|
|
|
<el-date-picker |
|
|
|
size="small" |
|
|
|
popper-class="selectPopClass" |
|
|
|
v-model="queryParams.month" |
|
|
|
type="month" |
|
|
|
value-format="yyyy-MM" |
|
|
|
placeholder="按月度"> |
|
|
|
</el-date-picker> |
|
|
|
|
|
|
|
<el-select popper-class="selectPopClass" v-model="queryParams.month" size="small" placeholder="按月度"> |
|
|
|
<el-select popper-class="selectPopClass" v-model="queryParams.agencyId" size="small" placeholder="按组织"> |
|
|
|
<el-option |
|
|
|
v-for="item in monthOptions" |
|
|
|
v-for="item in orgOptions" |
|
|
|
:key="item.value" |
|
|
|
:label="item.label" |
|
|
|
:value="item.value"> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
|
|
|
|
<el-select popper-class="selectPopClass" v-model="queryParams.org" size="small" placeholder="按组织"> |
|
|
|
<el-select |
|
|
|
popper-class="selectPopClass" |
|
|
|
clearable |
|
|
|
v-model="queryParams.satisfactionSource" |
|
|
|
size="small" |
|
|
|
placeholder="按不满意事项来源" |
|
|
|
@change="getSatisfactionCategoryOptions" |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="item in monthOptions" |
|
|
|
v-for="item in satisfactionSourceOptions" |
|
|
|
:key="item.value" |
|
|
|
:label="item.label" |
|
|
|
:value="item.value"> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
|
|
|
|
<el-select popper-class="selectPopClass" v-model="queryParams.matterSource" size="small" placeholder="按不满意事项来源"> |
|
|
|
<el-select |
|
|
|
popper-class="selectPopClass" |
|
|
|
clearable |
|
|
|
v-model="queryParams.satisfactionCategory" |
|
|
|
size="small" |
|
|
|
placeholder="按不满意事项类型" |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="item in monthOptions" |
|
|
|
:key="item.value" |
|
|
|
:label="item.label" |
|
|
|
:value="item.value"> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
|
|
|
|
<el-select popper-class="selectPopClass" v-model="queryParams.matterType" size="small" placeholder="按不满意事项类型"> |
|
|
|
<el-option |
|
|
|
v-for="item in monthOptions" |
|
|
|
v-for="item in satisfactionCategoryOptions" |
|
|
|
:key="item.value" |
|
|
|
:label="item.label" |
|
|
|
:value="item.value"> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
<el-input v-model="queryParams.name" size="small" placeholder="按人员姓名"></el-input> |
|
|
|
<el-input v-model="queryParams.tel" size="small" placeholder="按人员电话"></el-input> |
|
|
|
<el-button size="small" class="btn" type="primary">查询</el-button> |
|
|
|
<el-input v-model="queryParams.mobile" size="small" placeholder="按人员电话"></el-input> |
|
|
|
<el-button size="small" class="btn" type="primary" @click="search">查询</el-button> |
|
|
|
</el-form> |
|
|
|
</div> |
|
|
|
|
|
|
|
@ -53,71 +65,90 @@ |
|
|
|
width="80"/> |
|
|
|
|
|
|
|
<el-table-column |
|
|
|
prop="name" |
|
|
|
prop="month" |
|
|
|
label="月度" |
|
|
|
width="114"/> |
|
|
|
|
|
|
|
<el-table-column |
|
|
|
prop="address" |
|
|
|
prop="organizationName" |
|
|
|
width="118" |
|
|
|
label="所属社区"/> |
|
|
|
|
|
|
|
<el-table-column |
|
|
|
prop="address" |
|
|
|
prop="satisfactionSource" |
|
|
|
width="168" |
|
|
|
label="事项来源"> |
|
|
|
<template slot-scope="data"></template> |
|
|
|
<template slot-scope="{row}"> |
|
|
|
<span :style="{color: satisfactionSourceFormat(row.satisfactionSource).color}"> |
|
|
|
{{ satisfactionSourceFormat(row.satisfactionSource).label }} |
|
|
|
</span> |
|
|
|
|
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
|
|
|
|
<el-table-column |
|
|
|
prop="address" |
|
|
|
width="118" |
|
|
|
prop="satisfactionCategoryName" |
|
|
|
width="150" |
|
|
|
label="事项类型"/> |
|
|
|
|
|
|
|
<el-table-column |
|
|
|
prop="address" |
|
|
|
prop="reason" |
|
|
|
show-overflow-tooltip |
|
|
|
label="事项描述"/> |
|
|
|
|
|
|
|
<el-table-column |
|
|
|
prop="address" |
|
|
|
prop="createTime" |
|
|
|
width="197" |
|
|
|
label="提交时间"/> |
|
|
|
|
|
|
|
<el-table-column |
|
|
|
prop="address" |
|
|
|
prop="name" |
|
|
|
width="119" |
|
|
|
label="姓名"/> |
|
|
|
|
|
|
|
<el-table-column |
|
|
|
prop="address" |
|
|
|
prop="mobile" |
|
|
|
width="153" |
|
|
|
label="电话"/> |
|
|
|
|
|
|
|
<el-table-column |
|
|
|
prop="address" |
|
|
|
prop="completeFlag" |
|
|
|
width="118px" |
|
|
|
label="是否完成"> |
|
|
|
<template slot-scope="data"></template> |
|
|
|
<template slot-scope="{row}"> |
|
|
|
<span :class="row.completeFlag==='是'?'light':'red'"> |
|
|
|
{{ row.completeFlag }} |
|
|
|
</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
|
|
|
|
|
|
|
|
<el-table-column |
|
|
|
prop="address" |
|
|
|
prop="followUpStatus" |
|
|
|
width="118px" |
|
|
|
label="是否回访"> |
|
|
|
<template slot-scope="data"></template> |
|
|
|
<template slot-scope="{row}"> |
|
|
|
<span :class="row.followUpStatus==='是'?'light':'red'"> |
|
|
|
{{ row.followUpStatus }} |
|
|
|
</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
|
|
|
|
<el-table-column |
|
|
|
prop="address" |
|
|
|
prop="dangerFlag" |
|
|
|
width="118px" |
|
|
|
label="消除风险"> |
|
|
|
<template slot-scope="data"></template> |
|
|
|
<template slot-scope="{row}"> |
|
|
|
<span :class="row.dangerFlag==='是'?'light':'red'"> |
|
|
|
{{ row.dangerFlag }} |
|
|
|
</span> |
|
|
|
|
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
|
|
|
|
<el-table-column label="操作" width="90" align="center"> |
|
|
|
<template slot-scope="data"> |
|
|
|
<el-button type="text" @click="handleView">查看</el-button> |
|
|
|
<el-button type="text" @click="handleView(data.row)">查看</el-button> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
|
|
|
|
@ -127,11 +158,11 @@ |
|
|
|
<Pagination |
|
|
|
v-show="total>0" |
|
|
|
:total="total" |
|
|
|
:page.sync="queryParams.pageNum" |
|
|
|
:page.sync="queryParams.pageNo" |
|
|
|
:limit.sync="queryParams.pageSize" |
|
|
|
@pagination="getList" |
|
|
|
/> |
|
|
|
<DissatisfiedDetail ref="detail"/> |
|
|
|
<DissatisfiedDetail ref="detail" :id="id"/> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
|
|
|
|
@ -146,15 +177,16 @@ export default { |
|
|
|
data() { |
|
|
|
return { |
|
|
|
queryParams: { |
|
|
|
month: '', |
|
|
|
org: '', |
|
|
|
matterSource: '', |
|
|
|
matterType: '', |
|
|
|
name: '', |
|
|
|
tel: '', |
|
|
|
pageNum: 1, |
|
|
|
month: this.$moment().format('YYYY-MM'), |
|
|
|
agencyId: "", |
|
|
|
satisfactionSource: "", |
|
|
|
satisfactionCategory: "", |
|
|
|
name: "", |
|
|
|
mobile: "", |
|
|
|
pageNo: 1, |
|
|
|
pageSize: 10, |
|
|
|
}, |
|
|
|
id: {}, |
|
|
|
total: 0, |
|
|
|
breadcrumbList: [{ |
|
|
|
path: '/dataBoard/satisfactionEval/index', |
|
|
|
@ -163,18 +195,80 @@ export default { |
|
|
|
path: '', |
|
|
|
name: '不满意事项列表' |
|
|
|
}], |
|
|
|
monthOptions: new Array(12).fill(0).map((_, index) => { |
|
|
|
return {label: (index - 0 + 1) + '月', value: (index - 0 + 1)} |
|
|
|
}), |
|
|
|
list: [{}, {}, {}] |
|
|
|
orgOptions: [], |
|
|
|
satisfactionCategoryOptions: [], |
|
|
|
list: [], |
|
|
|
satisfactionSourceOptions: [{ |
|
|
|
value: 'satisfaction_12345', |
|
|
|
label: '12345投诉', |
|
|
|
color: '#FFB73C', |
|
|
|
}, { |
|
|
|
value: 'satisfaction_province', |
|
|
|
label: '省满意度调查', |
|
|
|
color: '#64C1FF' |
|
|
|
}, { |
|
|
|
value: 'satisfaction_community', |
|
|
|
label: '社区满意度自查', |
|
|
|
color: '#08EBAE' |
|
|
|
}] |
|
|
|
} |
|
|
|
}, |
|
|
|
mounted() { |
|
|
|
this.getOrg() |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
getSatisfactionCategoryOptions() { |
|
|
|
this.queryParams.satisfactionCategory = '' |
|
|
|
if(!this.queryParams.satisfactionSource) { |
|
|
|
this.satisfactionCategoryOptions = [] |
|
|
|
return |
|
|
|
} |
|
|
|
this.$http.get('/governance/satisfactionDetailList/getUnsatisfiedCategory?satisfactionSource=' + this.queryParams.satisfactionSource).then(({data: {data}}) => { |
|
|
|
this.satisfactionCategoryOptions = data.map(item => { |
|
|
|
return { |
|
|
|
label: item.categoryName, |
|
|
|
value: item.categoryCode |
|
|
|
} |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
}, |
|
|
|
satisfactionSourceFormat(val) { |
|
|
|
let satisfactionSource = this.satisfactionSourceOptions.filter(item => item.value === val)[0] |
|
|
|
return satisfactionSource ? satisfactionSource : '' |
|
|
|
}, |
|
|
|
search() { |
|
|
|
this.queryParams.pageNo = 1 |
|
|
|
this.getList(); |
|
|
|
}, |
|
|
|
getList() { |
|
|
|
this.$http.get('/governance/satisfactionDetailList/getUnsatisfiedMattersList?' + this.$paramsFormat(this.queryParams)).then(({data: {data}}) => { |
|
|
|
this.total = data.total |
|
|
|
this.list = data.list |
|
|
|
}) |
|
|
|
}, |
|
|
|
getOrg() { |
|
|
|
let params = { |
|
|
|
orgId: this.$store.state.chooseArea.chooseName.orgId, |
|
|
|
level: this.$store.state.chooseArea.chooseName.level |
|
|
|
} |
|
|
|
|
|
|
|
this.$http.post(`/gov/org/agency/maporg`, params).then(async ({data: {data}}) => { |
|
|
|
this.queryParams.agencyId = this.$store.state.chooseArea.chooseName.orgId |
|
|
|
let parent = {value: data.id, label: data.name} |
|
|
|
this.orgOptions = [parent, ...data.children.map(item => { |
|
|
|
return { |
|
|
|
value: item.id, |
|
|
|
label: item.name |
|
|
|
} |
|
|
|
})] |
|
|
|
this.getList() |
|
|
|
}) |
|
|
|
}, |
|
|
|
handleView() { |
|
|
|
this.$refs.detail.open() |
|
|
|
handleView(id) { |
|
|
|
console.log(id) |
|
|
|
this.id = id |
|
|
|
this.$refs.detail.open(id) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@ -204,18 +298,23 @@ export default { |
|
|
|
height: 32px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.orange { |
|
|
|
color: #FFB73C; |
|
|
|
} |
|
|
|
|
|
|
|
.blue { |
|
|
|
color: #64C1FF; |
|
|
|
} |
|
|
|
|
|
|
|
.green { |
|
|
|
color: #08EBAE; |
|
|
|
} |
|
|
|
|
|
|
|
.light { |
|
|
|
color: #3CF5FF; |
|
|
|
} |
|
|
|
|
|
|
|
.red { |
|
|
|
color: #F95619; |
|
|
|
} |
|
|
|
|