Browse Source

bug1830

feature-bug
是小王呀\24601 1 year ago
parent
commit
937a8d932a
  1. 93
      src/views/modules/shequzhili/analysis/addComplainList.vue
  2. 124
      src/views/modules/shequzhili/analysis/areaNoSameList.vue
  3. 86
      src/views/modules/shequzhili/analysis/areaSameList.vue
  4. 189
      src/views/modules/shequzhili/analysis/formList.vue
  5. 12
      src/views/modules/shequzhili/analysis/index.vue
  6. 111
      src/views/modules/shequzhili/analysis/mobileList.vue
  7. 21
      src/views/modules/shequzhili/eventHandling/index.vue
  8. 47
      src/views/modules/shequzhili/workpiece/index.vue

93
src/views/modules/shequzhili/analysis/addComplainList.vue

@ -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>

124
src/views/modules/shequzhili/analysis/areaNoSameList.vue

@ -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>

86
src/views/modules/shequzhili/analysis/areaSameList.vue

@ -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>

189
src/views/modules/shequzhili/analysis/formList.vue

@ -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>

12
src/views/modules/shequzhili/analysis/index.vue

@ -306,6 +306,9 @@
</div>
</template>
<script>
import areaSameList from "./areaSameList.vue";
import formList from "./formList.vue";
import eventInfo from "../../shequzhili/event/cpts/event-info.vue";
import { requestPost, requestGet } from "@/js/dai/request";
import nextTick from "dai-js/tools/nextTick";
import { mapGetters } from "vuex";
@ -313,8 +316,11 @@ import axios from "axios";
import * as echarts from "echarts";
import util from "@js/util.js";
import TableRow from './TableRow.vue';
import mobileList from "./mobileList";
import areaNoSameList from "./areaNoSameList";
import addComplainList from "./addComplainList";
export default {
components: {TableRow},
components: {TableRow,formList,eventInfo,areaSameList,mobileList,areaNoSameList,addComplainList},
data() {
return {
starttime:"",
@ -1099,9 +1105,7 @@ export default {
})
: [];
this.mobileData = this.report.mobileEvent
? this.report.mobileEvent.map(item => {
return item;
})
? this.report.mobileEvent.filter(item =>item.mobile !== '******')
: [];
this.addressMobileData = this.report.addressMobileEvents

111
src/views/modules/shequzhili/analysis/mobileList.vue

@ -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>

21
src/views/modules/shequzhili/eventHandling/index.vue

@ -69,27 +69,6 @@
<div class="div_btn">
<el-button @click="handleExport" class="diy-button--white" size="small">导出</el-button>
<el-button class="diy-button--white" size="small">
<el-upload :headers="$getElUploadHeaders()" ref="upload" class="upload-btn" action="uploadUlr"
:limit="1" :accept="'.xls,.xlsx'" :with-credentials="true" :show-file-list="false"
:auto-upload="true" :on-progress="handleProgress" :on-success="handleExcelSuccess"
:before-upload="beforeExcelUpload" :http-request="uploadHttpRequest">
上传导入
</el-upload>
</el-button>
<!-- <el-dropdown size="small" split-button type="primary" style="margin: 0 10px; height: 30px"
@command="(command) => handleMarkDiffcult(command)">
导入
<el-dropdown-menu slot="dropdown"> -->
<!-- <el-dropdown-item command="0" @click.native="handleExportModule">下载模板</el-dropdown-item> -->
<!-- <el-upload :headers="$getElUploadHeaders()" ref="upload" class="upload-btn" action="uploadUlr"
:limit="1" :accept="'.xls,.xlsx'" :with-credentials="true" :show-file-list="false"
:auto-upload="true" :on-progress="handleProgress" :on-success="handleExcelSuccess"
:before-upload="beforeExcelUpload" :http-request="uploadHttpRequest">
<el-dropdown-item command="1">上传导入</el-dropdown-item>
</el-upload>
</el-dropdown-menu>
</el-dropdown> -->
</div>
<el-table :data="tableData" border class="m-table-item" style="width: 100%"

47
src/views/modules/shequzhili/workpiece/index.vue

@ -90,32 +90,7 @@
<div class="m-table">
<div class="div_btn">
<el-button @click="handleExport" class="diy-button--white" size="small">导出</el-button>
<el-button class="diy-button--white" size="small">
<el-upload :headers="$getElUploadHeaders()" ref="upload" class="upload-btn"
action="uploadUlr" :limit="1" :accept="'.xls,.xlsx'" :with-credentials="true"
:show-file-list="false" :auto-upload="true" :on-progress="handleProgress"
:on-success="handleExcelSuccess" :before-upload="beforeExcelUpload"
:http-request="uploadHttpRequest">
上传导入
</el-upload>
</el-button>
<!-- <el-dropdown size="small" split-button type="primary" style="margin: 0 10px; height: 30px"
@command="(command) => importTypeChange(command)">
导入
<el-dropdown-menu slot="dropdown"> -->
<!-- <el-dropdown-item command="0" @click.native="handleExportModule">下载模板</el-dropdown-item> -->
<!-- <el-upload :headers="$getElUploadHeaders()" ref="upload" class="upload-btn"
action="uploadUlr" :limit="1" :accept="'.xls,.xlsx'" :with-credentials="true"
:show-file-list="false" :auto-upload="true" :on-progress="handleProgress"
:on-success="handleExcelSuccess" :before-upload="beforeExcelUpload"
:http-request="uploadHttpRequest">
<el-dropdown-item command="1">上传导入</el-dropdown-item>
</el-upload>
</el-dropdown-menu> -->
<!-- </el-dropdown> -->
</div>
<el-table :data="tableData" border class="m-table-item" style="width: 100%"
@ -163,10 +138,6 @@
<template slot-scope="scope">
<el-button @click="handleWatch(scope.row)" type="text" size="small" class="">查看</el-button>
<el-button @click="handleDispose(scope.row,'check')" v-if="scope.row.operationType =='12'" type="text" size="small" class="">修改</el-button>
<!-- <el-button @click="handleDispose(scope.row)" type="text" size="small" class="">{{scope.row.deliverystatus==0?"派件":"办理"}}</el-button>
-->
<!-- <el-button @click="handleDispose(scope.row,'dispose')" type="text" size="small"
v-if="(scope.row.status == 'processing'|| scope.row.status === 'assigned') && scope.row.operationType === '5'">处理</el-button> -->
<el-button @click="handleDispose(scope.row,'resetAssign')" type="text" size="small"
v-if="(scope.row.status == 'processing'|| scope.row.status === 'assigned') && (scope.row.operationType === '5'|| scope.row.operationType === '10')">改派</el-button>
<el-button @click="handleDispose(scope.row,'assign')" type="text" size="small"
@ -747,27 +718,9 @@ export default {
}
},
async getTableData() {
const url = "/governance/icEvent/list";
// if (this.eventTypeCheck) {
// this.formData.secondIdList = this.eventTypeCheck
// }
console.log(this.formData);
const { pageSize, pageNo, formData } = this;
// formData
const newFormData = { ...formData };
// // agencyId
// if (Array.isArray(newFormData.agencyId) && newFormData.agencyId.length) {
// if (this.level == "grid") {
// newFormData.gridId = newFormData.agencyId[newFormData.agencyId.length - 1];
// newFormData.agencyId = "";
// } else {
// newFormData.agencyId = newFormData.agencyId[newFormData.agencyId.length - 1];
// newFormData.gridId = "";
// }
// } else {
// newFormData.agencyId = "";
// newFormData.gridId = "";
// }
const { data, code, msg } = await requestPost(url, {
pageSize,
pageNo,

Loading…
Cancel
Save