8 changed files with 611 additions and 72 deletions
@ -0,0 +1,93 @@ |
|||
<template> |
|||
<div style="margin-top:10px"> |
|||
<el-table :data="tableData" :span-method="objectSpanMethod" border class="m-table-item" height="600" style="width: 100%"> |
|||
<el-table-column align="center" fixed="left" label="序号" type="index" width="50"/> |
|||
<el-table-column :show-overflow-tooltip="true" align="center" label="类型" prop="categoryName"/> |
|||
<el-table-column :show-overflow-tooltip="true" align="center" label="追加内容次数" prop="awoNum"/> |
|||
<el-table-column :show-overflow-tooltip="true" align="center" label="投诉内容" prop="eventContent"/> |
|||
<el-table-column label="操作" align="center" width="100"> |
|||
<template slot-scope="scope"> |
|||
<el-button @click="handelSearchAreaSameEvent(scope.row)" type="text" size="small">查看</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<div> |
|||
<el-pagination |
|||
:current-page.sync="pageNo" |
|||
:page-size="pageSize" |
|||
:page-sizes="[10, 20, 50]" |
|||
:total="total" |
|||
layout="sizes, prev, pager, next, total" |
|||
@size-change="handleSizeChange" |
|||
@current-change="handleCurrentChange"/> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import {requestPost, requestGet} from "@/js/dai/request"; |
|||
import {completeList} from "@/js/columns/constants"; |
|||
export default { |
|||
//数据 |
|||
data() { |
|||
return { |
|||
formData: { |
|||
startTime: "", |
|||
endTime: "", |
|||
awoFlag: 1 |
|||
}, |
|||
pageNo: 0, |
|||
pageSize: window.localStorage.getItem('pageSize') || 20, |
|||
total: 0, |
|||
tableData: [], |
|||
mergeObj: {}, |
|||
mergeArr: ['address'], |
|||
}; |
|||
}, |
|||
//创建前 |
|||
created() { |
|||
}, |
|||
async mounted() { |
|||
await this.getTableData() |
|||
}, |
|||
//方法 |
|||
methods: { |
|||
handelSearchAreaSameEvent(row) { |
|||
this.$emit('clickAwoFlagData',row) |
|||
}, |
|||
handleSizeChange(val) { |
|||
this.pageSize = val; |
|||
this.getTableData(); |
|||
}, |
|||
handleCurrentChange(val) { |
|||
this.pageNo = val; |
|||
this.getTableData(); |
|||
}, |
|||
async getTableData() { |
|||
try { |
|||
const url = "/governance/dwdEvent/list"; |
|||
const {pageSize, pageNo, formData} = this; |
|||
const {data, code, msg} = await requestPost(url, { |
|||
pageSize, |
|||
pageNo, |
|||
...formData, |
|||
}); |
|||
if (code == 0) { |
|||
this.tableData = data.list; |
|||
this.total = data.total; |
|||
} else { |
|||
console.log(err); |
|||
} |
|||
} catch (err) { |
|||
console.log(err); |
|||
} |
|||
}, |
|||
}, |
|||
//子组件注册 |
|||
components: {}, |
|||
//计算 |
|||
computed: {}, |
|||
//监听 |
|||
watch: {}, |
|||
} |
|||
</script> |
|||
<style lang="scss"></style> |
|||
@ -0,0 +1,124 @@ |
|||
<template> |
|||
<div style="margin-top:10px"> |
|||
<el-table :data="tableData" border class="m-table-item" style="width: 100%" :span-method="objectSpanMethod"> |
|||
<el-table-column label="序号" fixed="left" type="index" align="center" width="50" /> |
|||
<el-table-column prop="address" align="center" label="地点" :show-overflow-tooltip="true"></el-table-column> |
|||
<el-table-column prop="categoryName" align="center" label="类型" :show-overflow-tooltip="true"></el-table-column> |
|||
<el-table-column prop="amount" align="center" label="投诉次数" :show-overflow-tooltip="true"></el-table-column> |
|||
<el-table-column prop="content" align="center" label="投诉内容" :show-overflow-tooltip="true"></el-table-column> |
|||
<el-table-column label="操作" align="center" width="100"> |
|||
<template slot-scope="scope"> |
|||
<el-button @click="handelSearchAreaSameEvent(scope.row)" type="text" size="small">查看</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<div> |
|||
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page.sync="pageNo" |
|||
:page-sizes="[10, 20, 50]" :page-size="pageSize" layout="sizes, prev, pager, next, total" |
|||
:total="total"></el-pagination> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import { requestPost, requestGet } from "@/js/dai/request"; |
|||
import { completeList } from "@/js/columns/constants"; |
|||
export default { |
|||
//数据 |
|||
data() { |
|||
return { |
|||
formData: { |
|||
startTime: "", |
|||
endTime: "", |
|||
type: "3" |
|||
}, |
|||
pageNo: 0, |
|||
pageSize:window.localStorage.getItem('pageSize') || 20, |
|||
total: 0, |
|||
tableData: [], |
|||
mergeObj: {}, |
|||
mergeArr: ['address'], |
|||
}; |
|||
}, |
|||
//创建前 |
|||
created() { }, |
|||
async mounted() { |
|||
await this.getTableData() |
|||
}, |
|||
//方法 |
|||
methods: { |
|||
handleSizeChange(val) { |
|||
this.pageSize = val; |
|||
this.getTableData(); |
|||
}, |
|||
handelSearchAreaSameEvent(row) { |
|||
this.$emit('clickAddressMobileData', row); |
|||
}, |
|||
handleCurrentChange(val) { |
|||
this.pageNo = val; |
|||
this.getTableData(); |
|||
}, |
|||
async getTableData() { |
|||
try { |
|||
const url = "/governance/dwdEvent/eventList"; |
|||
const { pageSize, pageNo, formData } = this; |
|||
const { data, code, msg } = await requestPost(url, { |
|||
pageSize, |
|||
pageNo, |
|||
...formData, |
|||
}); |
|||
if (code == 0) { |
|||
this.tableData = data.list; |
|||
this.total = data.total; |
|||
this.getSpanArr(this.tableData); |
|||
} else { |
|||
console.log(err); |
|||
} |
|||
} catch (err) { |
|||
console.log(err); |
|||
} |
|||
}, |
|||
getSpanArr(data) { |
|||
this.mergeArr.forEach((key, index1) => { |
|||
let count = 0; // 用来记录需要合并行的起始位置 |
|||
this.mergeObj[key] = []; // 记录每一列的合并信息 |
|||
data.forEach((item, index) => { |
|||
// index == 0表示数据为第一行,直接 push 一个 1 |
|||
if(index === 0) { |
|||
this.mergeObj[key].push(1); |
|||
} else { |
|||
// 判断当前行是否与上一行其值相等 如果相等 在 count 记录的位置其值 +1 表示当前行需要合并 并push 一个 0 作为占位 |
|||
if(item[key] === data[index - 1][key]) { |
|||
this.mergeObj[key][count] += 1; |
|||
this.mergeObj[key].push(0); |
|||
} else { |
|||
// 如果当前行和上一行其值不相等 |
|||
count = index; // 记录当前位置 |
|||
this.mergeObj[key].push(1); // 重新push 一个 1 |
|||
} |
|||
} |
|||
}) |
|||
}) |
|||
}, |
|||
// 默认接受四个值 { 当前行的值, 当前列的值, 行的下标, 列的下标 } |
|||
objectSpanMethod({ row, column, rowIndex, columnIndex }) { |
|||
// 判断列的属性 |
|||
if(this.mergeArr.indexOf(column.property) !== -1) { |
|||
// 判断其值是不是为0 |
|||
if(this.mergeObj[column.property][rowIndex]) { |
|||
return [this.mergeObj[column.property][rowIndex], 1] |
|||
} else { |
|||
// 如果为0则为需要合并的行 |
|||
return [0, 0]; |
|||
} |
|||
} |
|||
} |
|||
}, |
|||
//子组件注册 |
|||
components: {}, |
|||
//计算 |
|||
computed: {}, |
|||
//监听 |
|||
watch: {}, |
|||
} |
|||
</script> |
|||
<style lang="scss"></style> |
|||
@ -0,0 +1,86 @@ |
|||
<template> |
|||
<div style="margin-top:10px"> |
|||
<el-table :data="tableData" border class="m-table-item" style="width: 100%"> |
|||
<el-table-column label="序号" fixed="left" type="index" align="center" width="50" /> |
|||
<el-table-column prop="address" align="center" label="地点" :show-overflow-tooltip="true"></el-table-column> |
|||
<el-table-column prop="categoryName" align="center" label="类型" :show-overflow-tooltip="true"></el-table-column> |
|||
<el-table-column prop="amount" align="center" label="投诉次数" :show-overflow-tooltip="true"></el-table-column> |
|||
<el-table-column prop="content" align="center" label="投诉内容" :show-overflow-tooltip="true"></el-table-column> |
|||
<el-table-column label="操作" align="center" width="100"> |
|||
<template slot-scope="scope"> |
|||
<el-button @click="handelSearchAreaSameEvent(scope.row)" type="text" size="small">查看</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<div> |
|||
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page.sync="pageNo" |
|||
:page-sizes="[10, 20, 50]" :page-size="pageSize" layout="sizes, prev, pager, next, total" |
|||
:total="total"></el-pagination> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import { requestPost, requestGet } from "@/js/dai/request"; |
|||
import { completeList } from "@/js/columns/constants"; |
|||
export default { |
|||
//数据 |
|||
data() { |
|||
return { |
|||
formData: { |
|||
startTime: "", |
|||
endTime: "", |
|||
type: "1" |
|||
}, |
|||
pageNo: 0, |
|||
pageSize:window.localStorage.getItem('pageSize') || 20, |
|||
total: 0, |
|||
tableData: [], |
|||
}; |
|||
}, |
|||
//创建前 |
|||
created() { }, |
|||
async mounted() { |
|||
await this.getTableData() |
|||
}, |
|||
//方法 |
|||
methods: { |
|||
handleSizeChange(val) { |
|||
this.pageSize = val; |
|||
this.getTableData(); |
|||
}, |
|||
handelSearchAreaSameEvent(row) { |
|||
this.$emit('clickAddressData', row); |
|||
}, |
|||
handleCurrentChange(val) { |
|||
this.pageNo = val; |
|||
this.getTableData(); |
|||
}, |
|||
async getTableData() { |
|||
try { |
|||
const url = "/governance/dwdEvent/eventList"; |
|||
const { pageSize, pageNo, formData } = this; |
|||
const { data, code, msg } = await requestPost(url, { |
|||
pageSize, |
|||
pageNo, |
|||
...formData, |
|||
}); |
|||
if (code == 0) { |
|||
this.tableData = data.list; |
|||
this.total = data.total; |
|||
} else { |
|||
console.log(err); |
|||
} |
|||
} catch (err) { |
|||
console.log(err); |
|||
} |
|||
}, |
|||
}, |
|||
//子组件注册 |
|||
components: {}, |
|||
//计算 |
|||
computed: {}, |
|||
//监听 |
|||
watch: {}, |
|||
} |
|||
</script> |
|||
<style lang="scss"></style> |
|||
@ -0,0 +1,189 @@ |
|||
<template> |
|||
<div style="margin-top:10px"> |
|||
<el-table class="m-table-item" :data="tableData" style="width: 100%" border> |
|||
<el-table-column label="序号" header-align="center" align="center" type="index" width="50"></el-table-column> |
|||
<el-table-column label="所属网格" prop="gridName" header-align="center" align="center" show-overflow-tooltip |
|||
width="150"></el-table-column> |
|||
<el-table-column label="接收时间" prop="happenTime" header-align="center" align="center" show-overflow-tooltip |
|||
width="150"></el-table-column> |
|||
<el-table-column label="问题描述" prop="eventContent" header-align="center" align="center" :show-overflow-tooltip="true" width="200"></el-table-column> |
|||
<el-table-column prop="voiceList" align="center" width="80" label="语音"> |
|||
<template slot-scope="scope"> |
|||
<img @click="handleShowVoice(scope.row.voiceList[0].url)" class="img-voice" |
|||
v-if="scope.row.voiceList && scope.row.voiceList.length > 0" |
|||
src="@/assets/img/icon-voice.png" /> |
|||
<span v-else></span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column label="办结时限" prop="timeLimit" header-align="center" align="center" width="150" |
|||
show-overflow-tooltip></el-table-column> |
|||
<el-table-column label="联系人" prop="name" header-align="center" align="center" show-overflow-tooltip |
|||
width="100"></el-table-column> |
|||
<el-table-column label="联系电话" prop="mobile" header-align="center" align="center" show-overflow-tooltip |
|||
width="100"> |
|||
<template slot-scope="scope"> |
|||
<el-button |
|||
v-if="scope.row.reportUserId !== null && scope.row.reportUserId !== ''" |
|||
@click="handleLook(scope.row)" |
|||
type="text" |
|||
size="small" |
|||
> |
|||
{{ scope.row.mobile }} |
|||
</el-button> |
|||
<span v-else> |
|||
{{ scope.row.mobile }} |
|||
</span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="status" align="center" label="状态" width="80" :show-overflow-tooltip="true"> |
|||
<template slot-scope="scope"> |
|||
<span v-if="scope.row.status === 'processing'">处理中</span> |
|||
<span v-else-if="scope.row.status === 'closed_case'">已完成</span> |
|||
<span v-else>--</span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column label="操作" align="center" width="100"> |
|||
<template slot-scope="scope"> |
|||
<el-button @click="handelClickDetail(scope.row)" type="text" size="small">查看</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<div> |
|||
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page.sync="pageNo" |
|||
:page-sizes="[10, 20, 50]" :page-size="pageSize" layout="sizes, prev, pager, next, total" |
|||
:total="total"></el-pagination> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import { requestPost, requestGet } from "@/js/dai/request"; |
|||
import { completeList } from "@/js/columns/constants"; |
|||
export default { |
|||
//数据 |
|||
data() { |
|||
return { |
|||
formData: { |
|||
agencyId:"", |
|||
gridId: "", |
|||
sourceType: "", |
|||
eventContent: "", |
|||
name: "", |
|||
mobile: "", |
|||
startTime: "", |
|||
endTime: "", |
|||
limitStartTime: "", |
|||
limitEndTime: "", |
|||
status: "", |
|||
firstIdList: [], |
|||
secondIdList: [], |
|||
workOrderNum: "", |
|||
departId:"", |
|||
content:"", |
|||
mobile:"" |
|||
}, |
|||
pageNo: 0, |
|||
pageSize:window.localStorage.getItem('pageSize') || 20, |
|||
total: 0, |
|||
tableData: [], |
|||
}; |
|||
}, |
|||
//创建前 |
|||
created() { }, |
|||
async mounted() { |
|||
await this.getTableData() |
|||
}, |
|||
//方法 |
|||
methods: { |
|||
handleSizeChange(val) { |
|||
this.pageSize = val; |
|||
this.getTableData(); |
|||
}, |
|||
handelClickDetail(row) { |
|||
this.$emit('handelClickDetail', row); |
|||
}, |
|||
handlClickEdit(row){ |
|||
this.$emit('handelClickEdit', row); |
|||
}, |
|||
handleCurrentChange(val) { |
|||
this.pageNo = val; |
|||
this.getTableData(); |
|||
}, |
|||
// 查看 |
|||
handleLook(row) { |
|||
let { name,reportUserId } = row |
|||
const resiId = reportUserId; |
|||
this.$store.dispatch('saveData', { name,resiId }); |
|||
this.$router.push({ name: 'jumin-huaxiang' }); |
|||
this.$store.state.contentTabs = this.$store.state.contentTabs.map(item => { |
|||
if (item.name === "jumin-huaxiang") { |
|||
return {...item, title: name }; |
|||
} |
|||
return item; |
|||
}); |
|||
}, |
|||
async getTableData() { |
|||
try { |
|||
const url = "/governance/dwdEvent/list"; |
|||
if(this.recId){ |
|||
this.formData.secondIdList = [this.recId]; |
|||
} |
|||
if(this.departId){ |
|||
this.formData.departId = this.departId; |
|||
} |
|||
if(this.communityId){ |
|||
this.formData.agencyId = this.communityId; |
|||
} |
|||
if(this.address){ |
|||
this.formData.content = this.address; |
|||
} |
|||
if(this.mobile){ |
|||
this.formData.mobile = this.mobile; |
|||
} |
|||
const { pageSize, pageNo, formData } = this; |
|||
const { data, code, msg } = await requestPost(url, { |
|||
pageSize, |
|||
pageNo, |
|||
...formData, |
|||
}); |
|||
if (code == 0) { |
|||
this.tableData = data.list; |
|||
this.total = data.total; |
|||
} else { |
|||
console.log(err); |
|||
} |
|||
} catch (err) { |
|||
console.log(err); |
|||
} |
|||
}, |
|||
}, |
|||
//子组件注册 |
|||
components: {}, |
|||
//计算 |
|||
computed: {}, |
|||
props: { |
|||
recId:{ |
|||
type:String, |
|||
default:'' |
|||
}, |
|||
communityId:{ |
|||
type:String, |
|||
default:'' |
|||
}, |
|||
address:{ |
|||
type:String, |
|||
default:'' |
|||
}, |
|||
mobile:{ |
|||
type:String, |
|||
default:'' |
|||
}, |
|||
departId:{ |
|||
type:String, |
|||
default:'' |
|||
} |
|||
}, |
|||
//监听 |
|||
watch: {}, |
|||
} |
|||
</script> |
|||
<style lang="scss"></style> |
|||
@ -0,0 +1,111 @@ |
|||
<template> |
|||
<div style="margin-top:10px"> |
|||
<el-table :data="tableData" border class="m-table-item" style="width: 100%"> |
|||
<el-table-column label="序号" fixed="left" type="index" align="center" width="50" /> |
|||
<el-table-column prop="mobile" align="center" label="联系方式" :show-overflow-tooltip="true"> |
|||
<template slot-scope="scope"> |
|||
<el-button |
|||
v-if="scope.row.resiId !== null && scope.row.resiId !== ''" |
|||
@click="handleLook(scope.row)" |
|||
type="text" |
|||
size="small" |
|||
> |
|||
{{ scope.row.mobile }} |
|||
</el-button> |
|||
<span v-else> |
|||
{{ scope.row.mobile }} |
|||
</span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="amount" align="center" label="投诉次数" :show-overflow-tooltip="true"></el-table-column> |
|||
<el-table-column prop="content" align="center" label="投诉内容" :show-overflow-tooltip="true"></el-table-column> |
|||
<el-table-column label="操作" align="center" width="100"> |
|||
<template slot-scope="scope"> |
|||
<el-button @click="handelSearchAreaSameEvent(scope.row)" type="text" size="small">查看</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<div> |
|||
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page.sync="pageNo" |
|||
:page-sizes="[10, 20, 50]" :page-size="pageSize" layout="sizes, prev, pager, next, total" |
|||
:total="total"></el-pagination> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import { requestPost, requestGet } from "@/js/dai/request"; |
|||
import { completeList } from "@/js/columns/constants"; |
|||
export default { |
|||
//数据 |
|||
data() { |
|||
return { |
|||
formData: { |
|||
startTime: "", |
|||
endTime: "", |
|||
type: "2" |
|||
}, |
|||
pageNo: 0, |
|||
pageSize:window.localStorage.getItem('pageSize') || 20, |
|||
total: 0, |
|||
tableData: [], |
|||
}; |
|||
}, |
|||
//创建前 |
|||
created() { }, |
|||
async mounted() { |
|||
await this.getTableData() |
|||
}, |
|||
//方法 |
|||
methods: { |
|||
handleSizeChange(val) { |
|||
this.pageSize = val; |
|||
this.getTableData(); |
|||
}, |
|||
handelSearchAreaSameEvent(row) { |
|||
this.$emit('clickMobileData', row); |
|||
}, |
|||
handleCurrentChange(val) { |
|||
this.pageNo = val; |
|||
this.getTableData(); |
|||
}, |
|||
// 查看 |
|||
handleLook(row) { |
|||
let { name,resiId } = row |
|||
this.$store.dispatch('saveData', { name,resiId }); |
|||
this.$router.push({ name: 'jumin-huaxiang' }); |
|||
this.$store.state.contentTabs = this.$store.state.contentTabs.map(item => { |
|||
if (item.name === "jumin-huaxiang") { |
|||
return {...item, title: name }; |
|||
} |
|||
return item; |
|||
}); |
|||
}, |
|||
async getTableData() { |
|||
try { |
|||
const url = "/governance/dwdEvent/eventList"; |
|||
const { pageSize, pageNo, formData } = this; |
|||
const { data, code, msg } = await requestPost(url, { |
|||
pageSize, |
|||
pageNo, |
|||
...formData, |
|||
}); |
|||
if (code == 0) { |
|||
this.tableData = data.list; |
|||
this.total = data.total; |
|||
} else { |
|||
console.log(err); |
|||
} |
|||
} catch (err) { |
|||
console.log(err); |
|||
} |
|||
}, |
|||
}, |
|||
//子组件注册 |
|||
components: {}, |
|||
//计算 |
|||
computed: {}, |
|||
//监听 |
|||
watch: {}, |
|||
} |
|||
</script> |
|||
<style lang="scss"></style> |
|||
Loading…
Reference in new issue