Browse Source

Merge branch 'dev' of http://120.46.222.128:10021/elink-star/epmet-work-pc into dataBoard

# Conflicts:
#	src/views/modules/satisfaction/communitySelfInsp/index.vue
feature
mk 2 years ago
parent
commit
694c4e228b
  1. 141
      src/views/modules/communityService/labelConfig/addForm.vue
  2. 131
      src/views/modules/goverhotline/areaNoSameList.vue
  3. 91
      src/views/modules/goverhotline/areaSameList.vue
  4. 20
      src/views/modules/goverhotline/formList.vue
  5. 189
      src/views/modules/goverhotline/index.vue
  6. 90
      src/views/modules/goverhotline/mobileList.vue
  7. 417
      src/views/modules/satisfaction/communitySelfInsp/communityDialog.vue
  8. 5
      src/views/modules/satisfaction/communitySelfInsp/formList.vue
  9. 177
      src/views/modules/satisfaction/communitySelfInsp/index.vue

141
src/views/modules/communityService/labelConfig/addForm.vue

@ -7,12 +7,8 @@
class="div_form"
:rules="rules"
>
<!-- v-if="!formState&& addFormLabel" -->
<el-form-item
label="标签名称"
label-width="100px"
prop="tagName"
>
<!-- v-if="!formState&& addFormLabel" -->
<el-form-item label="标签名称" label-width="100px" prop="tagName">
<el-autocomplete
v-model="formData.tagName"
value-key="tagName"
@ -22,7 +18,10 @@
@select="handleSelect"
></el-autocomplete>
</el-form-item>
<span style="position: relative;top: 10px;">您可以按关键词查找使用已有标签也可以新建标签</span>
<span style="position: relative; top: 10px"
>您可以按关键词查找使用已有标签也可以
<a @click="clearRow" style="cursor: pointer;">新建标签</a> </span
>
<!-- <el-form-item label="标签名称(新增)" label-width="100px" prop="tagName" v-else>
<el-input
v-model="formData.tagName"
@ -32,14 +31,15 @@
></el-input>
</el-form-item> -->
</el-form>
<p style="margin-left: 15px"><b style="color: #f56c6c">*</b> 设置标签查询条件</p>
<p style="margin-left: 15px">
<b style="color: #f56c6c">*</b> 设置标签查询条件
</p>
<el-table border :data="tableData" style="width: 100%" height="200">
<el-table-column label="选择数据源" align="center" width="120">
<template slot-scope="scope">
<el-select
v-model="scope.row.dataSource"
placeholder="请选择"
:disabled="!formState"
@change="handleChangeSource(scope.row, scope.$index)"
clearable
>
@ -55,11 +55,10 @@
</el-table-column>
<el-table-column label="字段类别" align="center" width="120">
<template slot-scope="scope" v-if="scope.row.dataSource == 'resi'">
<template slot-scope="scope" v-if="scope.row.dataSource == 'resi'||scope.row.dataSource == 'house'">
<el-select
v-model="scope.row.itemGroupId"
placeholder="请选择"
:disabled="!formState"
clearable
@change="handleChangeFieldsType(scope.row, scope.$index)"
>
@ -77,7 +76,6 @@
<template slot-scope="scope">
<el-select
v-model="scope.row.itemId"
:disabled="!formState"
placeholder="请选择"
@change="handleChangeFieldsName(scope.row, scope.$index)"
@clear="handleClearItemId(scope.row, scope.$index)"
@ -87,9 +85,9 @@
v-for="item in scope.row.itemIdOpction"
:label="item.label"
:value="
scope.row.dataSource == 'resi' ? item.itemId : item.colKey
scope.row.dataSource == 'resi'|| scope.row.dataSource == 'house'? item.itemId : item.colKey
"
:key="scope.row.dataSource == 'resi' ? item.itemId : item.colKey"
:key="scope.row.dataSource == 'resi'|| scope.row.dataSource == 'house' ? item.itemId : item.colKey"
>
</el-option>
</el-select>
@ -100,8 +98,8 @@
<el-select
v-model="scope.row.queryType"
placeholder="请选择"
:disabled="!formState"
clearable
@change="changeFormState = true"
>
<el-option
v-for="item in queryTypeOpction"
@ -123,7 +121,7 @@
item.itemType == 'checkbox'
"
v-model="scope.row.colVal"
:disabled="!formState"
@change="changeFormState = true"
placeholder="请选择"
clearable
>
@ -140,7 +138,7 @@
item.itemType === 'input' || item.itemType === 'textarea'
"
v-model="scope.row.colVal"
:disabled="!formState"
@change="changeFormState = true"
placeholder="请输入"
clearable
>
@ -149,7 +147,7 @@
v-else-if="item.itemType === 'inputNum'"
class="item_width_2"
v-model="scope.row.colVal"
:disabled="!formState"
@change="changeFormState = true"
:min="0"
size="mini"
label="请输入"
@ -158,9 +156,9 @@
v-else-if="
item.itemType === 'datepicker' || item.itemType === 'date'
"
@change="changeFormState = true"
v-model="scope.row.colVal"
class="item_width_2"
:disabled="!formState"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
value="yyyy-MM-dd HH:mm:ss"
@ -171,9 +169,9 @@
v-else
class="item_width_2"
size="mini"
:disabled="!formState"
placeholder="请输入"
v-model="personItem.colVal"
v-model="scope.row.colVal"
@change="changeFormState = true"
>
</el-input>
</template>
@ -187,7 +185,7 @@
<el-select
v-model="scope.row.nextLogicalRel"
placeholder="请选择"
:disabled="!formState"
@change="changeFormState = true"
clearable
>
<el-option
@ -200,13 +198,7 @@
</el-select>
</template>
</el-table-column>
<el-table-column
fixed="right"
label="操作"
align="center"
width="120"
v-if="formState"
>
<el-table-column fixed="right" label="操作" align="center" width="120">
<template slot-scope="scope">
<el-button
type="primary"
@ -232,6 +224,11 @@
</template>
</el-table-column>
</el-table>
<p v-if="changeFormState && !formState && formData.tagName" style="color: #F56C6C">
您已变更了{{
this.formData.tagName
}}标签的查询条件请按新条件修改原标签名称便于以后再次查找使用
</p>
<div class="div_btn">
<el-button size="small" @click="handleCancle"> </el-button>
<el-button size="small" type="primary" @click="handleComfirm"
@ -284,7 +281,8 @@ export default {
{ label: "并且", value: "and" },
{ label: "或者", value: "or" },
],
formState:true
formState: false,
changeFormState: false,
};
},
created() {},
@ -294,7 +292,7 @@ export default {
methods: {
async initForm(type, row) {
this.formType = type;
if (type == "info") {
await this.getFormEdit(row.tagId);
} else if (type == "edit") {
@ -304,9 +302,9 @@ export default {
this.tagId = row.tagId;
this.tagObj = row;
for (let i in this.tableData) {
await this.handleChangeSource(this.tableData[i], [i], type);
await this.handleChangeFieldsType(this.tableData[i], [i], type);
await this.handleChangeFieldsName(this.tableData[i], [i], type);
await this.handleChangeSource(this.tableData[i], [i], type, true);
await this.handleChangeFieldsType(this.tableData[i], [i], type, true);
await this.handleChangeFieldsName(this.tableData[i], [i], type, true);
}
},
querySearchAsync(val, cb) {
@ -325,9 +323,9 @@ export default {
cb(results);
}, 3000 * Math.random());
},
handelChangeTagName(val){
if(this.formData.tagName.length == 0 ){
this.formType = 'info'
handelChangeTagName(val) {
if (this.formData.tagName.length == 0) {
this.formType = "info";
}
},
createStateFilter(val) {
@ -336,9 +334,8 @@ export default {
};
},
async handleSelect(item) {
console.log(item);
this.formState = item.editable
await this.initForm(item.editable?'edit':'info', item);
this.formState = item.editable;
await this.initForm("edit", item);
},
async getLabelList() {
const url = "/governance/resiSearchTag/listResiSearchTags";
@ -353,11 +350,14 @@ export default {
}
},
//
async handleChangeSource(row, index, type) {
if (row.dataSource == "resi") {
async handleChangeSource(row, index, type, state) {
if (!state) {
this.changeFormState = true;
}
if (row.dataSource == "resi" || row.dataSource == "house") {
let url = "/oper/customize/icformitemgroup/list";
let params = {
formCode: "resident_base_info",
formCode: row.dataSource == 'resi'?"resident_base_info":'community_info',
};
let { data, code, msg } = await requestPost(url, params);
if (code == 0) {
@ -375,24 +375,6 @@ export default {
this.tableData[index].queryType = "";
this.tableData[index].itemIdOpction = [];
}
} else if (row.dataSource == "house") {
let url = "/governance/policy/item-list/house";
let params = {};
let { data, code, msg } = await requestPost(url, params);
if (code == 0) {
this.tableData[index].itemIdOpction = data;
} else {
this.$message.error(msg);
}
this.hadeleClearForm(this.tableData[index], index);
if (!type) {
this.tableData[index].itemGroupId = "";
this.tableData[index].itemId = "";
this.tableData[index].colKey = "";
this.tableData[index].colVal = "";
this.tableData[index].nextLogicalRel = "";
this.tableData[index].queryType = "";
}
} else if (row.dataSource == "stat") {
let url = "/governance/policy/item-list/stat";
let params = {};
@ -426,9 +408,12 @@ export default {
},
//
async handleChangeFieldsType(row, index, type) {
console.log(row, index, "字段类别row");
if (row.dataSource != "resi") return;
async handleChangeFieldsType(row, index, type, state) {
if (!state) {
this.changeFormState = true;
}
// console.log(row, index, "row");
if (row.dataSource == "stat") return;
const url = "/oper/customize/icformitem/getItemListV2";
let params = {
groupId: row.itemGroupId,
@ -451,10 +436,14 @@ export default {
}
},
//
async handleChangeFieldsName(row, index, type) {
async handleChangeFieldsName(row, index, type, state) {
console.log(row);
if (!state) {
this.changeFormState = true;
}
var arr = [];
// colKeycolumnName
if (row.dataSource == "house" || row.dataSource == "stat") {
if ( row.dataSource == "stat") {
arr = row.itemIdOpction.filter((item) => item.colKey == row.itemId);
this.tableData[index].tableName = arr[0].tableName;
this.tableData[index].colKey = arr[0].colKey;
@ -465,7 +454,9 @@ export default {
}
// this.tableData[index].colVal = ''
// this.tableData[index].queryType = ''
} else if (row.dataSource == "resi" && row.itemId != "") {
} else if ((row.dataSource == "resi"||row.dataSource == "house") && row.itemId != "") {
console.log(row);
arr = row.itemIdOpction.filter((item) => item.itemId == row.itemId);
this.tableData[index].tableName = arr[0].tableName;
this.tableData[index].colKey = arr[0].columnName;
@ -499,7 +490,6 @@ export default {
} else {
this.$set(this.tableData[index], "correspondingOpction", arr);
}
},
async getCompareList() {
const url = "/sys/dict/data/dictlist";
@ -536,14 +526,14 @@ export default {
const url = `/governance/resiSearchTag/listResiSearchRulesByTagId?tagId=${id}`;
let { code, msg, data } = await requestGet(url);
if (code == 0) {
console.log(data, "获取到的详情信息");
// console.log(data, "");
this.tableData = data;
} else if (code >= 8000) {
this.$message.error(msg);
}
},
async handleComfirm() {
if (this.formType != "info") {
if (this.changeFormState) {
this.$refs.label_form.validate((flag) => {
if (flag) {
let messageObj = {};
@ -575,14 +565,14 @@ export default {
async addSubmit() {
var url = "";
var params = {};
if (this.formType == "edit") {
if (this.changeFormState && this.formState) {
url = "/governance/resiSearchTag/updateResiSearchTag";
params = {
tagName: this.formData.tagName,
rules: this.tableData,
tagId: this.tagId,
};
} else if (this.formType == "add") {
} else {
url = "/governance/resiSearchTag/addResiSearchTag";
params = {
tagName: this.formData.tagName,
@ -668,12 +658,19 @@ export default {
},
//
handleClickDelete(index) {
this.changeFormState = true;
this.tableData.splice(index, 1);
},
handleClearItemId(row, index) {
this.tableData[index].colVal = "";
this.tableData[index].queryType = "";
},
clearRow() {
this.tableData = [];
this.formData.tagName = "";
this.formState = false
this.handleClickAddRow();
},
},
props: {},
computed: {},

131
src/views/modules/goverhotline/areaNoSameList.vue

@ -0,0 +1,131 @@
<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: 20,
total: 0,
tableData: [],
mergeObj: {},
mergeArr: ['address'],
};
},
//
created() { },
async mounted() {
await this.getTableData()
},
//
methods: {
handleSizeChange(val) {
console.log(`每页 ${val}`);
this.pageSize = val;
this.getTableData();
},
handelSearchAreaSameEvent(row) {
this.$emit('clickAddressMobileData', row);
},
handleCurrentChange(val) {
console.log(`当前页: ${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>

91
src/views/modules/goverhotline/areaSameList.vue

@ -0,0 +1,91 @@
<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: 20,
total: 0,
tableData: [],
};
},
//
created() { },
async mounted() {
await this.getTableData()
},
//
methods: {
handleSizeChange(val) {
console.log(`每页 ${val}`);
this.pageSize = val;
this.getTableData();
},
handelSearchAreaSameEvent(row) {
this.$emit('clickAddressData', row);
},
handleCurrentChange(val) {
console.log(`当前页: ${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>

20
src/views/modules/goverhotline/formList.vue

@ -62,7 +62,9 @@ export default {
firstIdList: [],
secondIdList: [],
workOrderNum: "",
departId:""
departId:"",
content:"",
mobile:""
},
pageNo: 0,
pageSize: 20,
@ -105,6 +107,14 @@ export default {
this.formData.departId = this.departId;
}
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,
@ -131,6 +141,14 @@ export default {
type:String,
default:''
},
address:{
type:String,
default:''
},
mobile:{
type:String,
default:''
},
departId:{
type:String,
default:''

189
src/views/modules/goverhotline/index.vue

@ -105,32 +105,39 @@
<el-table :data="addressData" border class="m-table-item" style="width: 100%" @row-click="clickAddressData">
<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>
<el-button @click="handelMoreAddressData" type="text" size="small">查看更多</el-button>
<div>
<h2 style="font-size: 20px; font-weight: bold;"> (同一人员重复投诉</h2>
</div>
<el-table :data="mobileData" border class="m-table-item" style="width: 100%">
<el-table :data="mobileData" border class="m-table-item" style="width: 100%" @row-click="clickMobileData">
<el-table-column label="序号" fixed="left" type="index" align="center" width="50" />
<el-table-column prop="mobile" 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>
<el-button @click="handelMoreMobileData" type="text" size="small">查看更多</el-button>
<div>
<h2 style="font-size: 20px; font-weight: bold;"> (同一区域不同类型投诉</h2>
</div>
<el-table :data="addressMobileData" border class="m-table-item" style="width: 100%" >
<el-table :data="addressMobileData" border class="m-table-item" style="width: 100%" :span-method="objectSpanMethod" @row-click="clickAddressMobileData">
<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="mobile" 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>
<el-button @click="handelMoreAddressMobileData" type="text" size="small">查看更多</el-button>
</div>
@ -154,6 +161,8 @@
@handleClose="handleClose"
:recId="recId"
:departId="departId"
:address="address"
:mobile="mobile"
@handelClickDetail="handelClickDetail"
></form-list>
<el-dialog
@ -169,6 +178,63 @@
@handleClose="handleClose" @handleOk="handleOk" @dialogOk="handleEditSuccess" />
</el-dialog>
</el-dialog>
<el-dialog
v-if="showAreaSameEventList"
:visible.sync="showAreaSameEventList"
:close-on-click-modal="false"
:close-on-press-escape="false"
title="同地点同类型事件重复投诉"
:modal-append-to-body="false"
width="60%"
top="5vh"
class="dialog-h"
@closed="showAreaSameEventList = false"
>
<area-same-list
ref="ref_area_same_list"
@handleClose="handleClose"
@clickAddressData="clickAddressData"
></area-same-list>
</el-dialog>
<el-dialog
v-if="showMobileEventList"
:visible.sync="showMobileEventList"
:close-on-click-modal="false"
:close-on-press-escape="false"
title="同一人员重复投诉"
:modal-append-to-body="false"
width="60%"
top="5vh"
class="dialog-h"
@closed="showMobileEventList = false"
>
<mobile-list
ref="ref_mobile_list"
@handleClose="handleClose"
@clickMobileData="clickMobileData"
></mobile-list>
</el-dialog>
<el-dialog
v-if="showAreaNoSameEventList"
:visible.sync="showAreaNoSameEventList"
:close-on-click-modal="false"
:close-on-press-escape="false"
title="同一区域不同类型投诉"
:modal-append-to-body="false"
width="60%"
top="5vh"
class="dialog-h"
@closed="showAreaNoSameEventList = false"
>
<area-no-same-list
ref="ref_area_no_same_list"
@handleClose="handleClose"
@clickAddressMobileData="clickAddressMobileData"
></area-no-same-list>
</el-dialog>
</div>
</template>
@ -180,12 +246,15 @@ import axios from "axios";
import * as echarts from "echarts";
import formList from "./formList";
import areaSameList from "./areaSameList";
import areaNoSameList from "./areaNoSameList";
import mobileList from "./mobileList";
import util from "@js/util.js";
import followDetail from "./followDetail";
import eventInfo from "../shequzhili/event/cpts/event-info";
export default {
components: {formList, followDetail,eventInfo},
components: {formList, followDetail,eventInfo,areaSameList,mobileList,areaNoSameList},
data() {
return {
@ -222,6 +291,9 @@ export default {
showFormList: false,
showFormDetail: false,
showAreaSameEventList: false,
showMobileEventList: false,
showAreaNoSameEventList: false,
recId: "",
departId:"",
@ -230,6 +302,9 @@ export default {
eventDetailData: {},
pageType: "info",
mergeObj: {},
mergeArr: ['address'],
categoryChartOption: {
@ -618,13 +693,15 @@ export default {
}
},
handelClickChart(params) {
this.hiddenAllDialog();
this.showFormList = true;
this.departId ='';
this.cleanSearchForm();
this.recId = params.data.id;
},
handelClickDepartChart(params) {
this.hiddenAllDialog();
this.showFormList = true;
this.recId ='';
this.cleanSearchForm();
this.departId = params.data.id;
},
handleClose() {
@ -642,20 +719,21 @@ export default {
} else {
this.eventDetailData = { ...data };
this.pageType = "info";
this.showFormList = true;
this.showFormDetail = true;
}
},
handleClose() {
this.showFormDetail = false;
this.hiddenAllDialog();
this.pageType = "list";
this.eventId = "";
this.cleanSearchForm();
this.getTableData();
},
handleOk() {
this.showFormDetail = false;
this.hiddenAllDialog();
this.pageType = "list";
this.eventId = "";
this.cleanSearchForm();
this.pageNo = 1;
this.getTableData();
},
@ -809,6 +887,9 @@ export default {
})
: [];
//
this.getSpanArr(this.addressMobileData);
if (this.report && this.report.categoryCount && Object.keys(this.report.categoryCount).length > 0) {
this.categoryCountShow = true;
}
@ -827,8 +908,92 @@ export default {
},
clickAddressData(row, column){
console.log("============clickAddressData============");
console.log(row);
this.hiddenAllDialog();
this.showFormList = true;
this.recId = row.categoryId;
this.address = row.address;
},
handelMoreAddressData(){
this.hiddenAllDialog();
this.cleanSearchForm();
this.showAreaSameEventList = true;
},
handelMoreMobileData(){
this.hiddenAllDialog();
this.cleanSearchForm();
this.showMobileEventList = true;
},
handelMoreAddressMobileData(){
this.hiddenAllDialog();
this.cleanSearchForm();
this.showAreaNoSameEventList = true;
},
clickMobileData(row, column){
this.hiddenAllDialog();
this.showFormList = true;
this.cleanSearchForm();
this.mobile = row.mobile;
},
clickAddressMobileData(row, column){
this.hiddenAllDialog();
this.showFormList = true;
this.cleanSearchForm();
this.address = row.address;
},
cleanSearchForm(){
this.departId ='';
this.eventId = "";
this.recId ='';
this.address ='';
this.mobile ='';
},
hiddenAllDialog(){
this.showFormList = false;
this.showFormDetail = false;
this.showAreaSameEventList = false;
this.showMobileEventList = false;
this.showAreaNoSameEventList = false;
},
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];
}
}
}
},

90
src/views/modules/goverhotline/mobileList.vue

@ -0,0 +1,90 @@
<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"></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: 20,
total: 0,
tableData: [],
};
},
//
created() { },
async mounted() {
await this.getTableData()
},
//
methods: {
handleSizeChange(val) {
console.log(`每页 ${val}`);
this.pageSize = val;
this.getTableData();
},
handelSearchAreaSameEvent(row) {
this.$emit('clickMobileData', row);
},
handleCurrentChange(val) {
console.log(`当前页: ${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>

417
src/views/modules/satisfaction/communitySelfInsp/communityDialog.vue

@ -0,0 +1,417 @@
<template>
<div class="">
<el-cascader
v-model="formData.agencyId"
:options="orgOptions"
:props="{
value: 'agencyId',
label: 'agencyName',
children: 'subAgencyList',
}"
:clearable="true"
:change-on-select="true"
:filterable="false"
:multiple="false"
placeholder="请选择"
@change="handleChangeCascader"
class="cascader"
/>
<el-date-picker
v-model="formData.period"
type="month"
value-format="yyyy-MM"
class="cascader"
placeholder="选择日期"
style="width: 202px"
clearable
@change="handleChangePicker"
>
</el-date-picker>
<div style="padding-left: 10px; margin-top: 10px">
本月已参与调研人数 {{ personQty }}
</div>
<section class="content_box">
<div class="left">
<img src="../../../../assets/img/satisfaction/zhdf.png" alt="Image" />
<div class="left_right">
<div>
{{ synthesisScore < 0 ? Math.abs(synthesisScore) : synthesisScore }}
</div>
<div>综合得分</div>
</div>
<div class="right_box">
<div :class="synthesisState ? 'up' : 'down'">
<img
src="@/assets/images/index/up.png"
alt=""
v-if="synthesisState && synthesisScoreBtLastMonth != 0"
/>
<img
src="@/assets/images/index/down.png"
alt=""
v-if="
!synthesisState &&
synthesisScoreBtLastMonth != 0 &&
synthesisScoreBtLastMonth != null
"
/>
<span>{{
synthesisScoreBtLastMonth < 0
? Math.abs(synthesisScoreBtLastMonth)
: synthesisScoreBtLastMonth
}}</span>
</div>
<div style="color: #999">较上月</div>
</div>
</div>
<div class="right">
<div class="box" v-for="(item, index) in score" :key="index">
<div class="card">
<img :src="item.imgUrl" alt="Image" />
<div class="right_right">
<div>{{ item.score }}</div>
<div>{{ item.satisfactionCategoryName }}</div>
</div>
<div class="right_box">
<div>
<img
src="@/assets/images/index/up.png"
alt=""
v-if="item.state && item.scoreDiffBtLastMonth != 0"
/>
<img
src="@/assets/images/index/down.png"
alt=""
v-if="!item.state && item.scoreDiffBtLastMonth != 0"
/>
<span :class="item.state ? 'up' : 'down'">
{{
item.scoreDiffBtLastMonth < 0
? Math.abs(item.scoreDiffBtLastMonth)
: item.scoreDiffBtLastMonth
}}
</span>
</div>
<div style="color: #999">较上月</div>
</div>
</div>
</div>
</div>
</section>
<section class="bto-box">
<div id="myCharts"></div>
</section>
</div>
</template>
<script>
import { requestGet } from "@/js/dai/request";
import * as echarts from "echarts";
export default {
data() {
return {
personQty: "", //
myChart: {},
option: {
tooltip: {
trigger: "axis",
},
legend: {
data: ["满意", "基本满意", "不满意"],
bottom: "10%",
icon: "rect",
itemWidth: 20,
itemHeight: 5,
itemGap: 20,
},
grid: {
left: "3%",
right: "4%",
bottom: "25%",
containLabel: true,
},
toolbox: {},
xAxis: {
type: "category",
boundaryGap: true,
axisLine: {
show: true,
},
axisTick: {
show: false,
},
data: [], // yourDataArrayx
splitLine: {
show: true,
lineStyle: {
width: 60, //
color: "#000",
opacity: 0,
},
// 2
},
},
yAxis: {
type: "value",
name: "单位(个)",
min: 0,
},
series: [
{
name: "满意",
type: "bar",
data: [],
barWidth: 16, //
itemStyle: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{ offset: 0, color: "#2c7cf2" }, //
{ offset: 1, color: "#80b3ff" }, //
]),
},
},
{
name: "基本满意",
type: "bar",
data: [],
barWidth: 16, //
itemStyle: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{ offset: 0, color: "#3ca267" }, //
{ offset: 1, color: "#82cca0" }, //
]),
},
},
{
name: "不满意",
type: "bar",
data: [],
barWidth: 16, //
itemStyle: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{ offset: 0, color: "#edb42d" }, //
{ offset: 1, color: "#ffd981" }, //
]),
},
},
],
},
satisfactionCategory: [], //
satisfactionCategoryName: [],
score: [], //
synthesisScore: "",
synthesisScoreBtLastMonth: "",
synthesisState: false,
formData: {
period: "",
agencyId: "",
},
orgOptions: [],
selectedOptions: "",
};
},
props: {
communityId: {
type: String,
default: "",
},
period: {
type: String,
default: "",
},
satisfaction_category: {
type: Array,
default: () => [],
},
},
created() {},
async mounted() {
this.formData.period = this.period;
this.formData.agencyId = this.communityId;
this.initEcharts();
await this.getCharts(this.communityId);
await this.getOrgTreeList();
},
methods: {
async getCharts() {
let url = "/governance/satisfaction/communitySelfInsp/stats/synthesis";
const { formData } = this;
const { data, code, msg } = await requestGet(url, {
...formData,
});
if (code == 0) {
this.score = [];
this.option.series.forEach((series) => (series.data = []));
this.option.xAxis.data = [];
this.satisfactionCategory = [];
this.synthesisScore = data.synthesisScore;
this.synthesisScoreBtLastMonth = data.synthesisScoreBtLastMonth;
this.synthesisState = this.synthesisScoreBtLastMonth >= 0;
if (this.synthesisScoreBtLastMonth < 0) {
this.synthesisScoreBtLastMonth = Math.abs(
this.synthesisScoreBtLastMonth
);
}
this.personQty = data.personQty;
const allowedCategories = this.satisfaction_category.map(
(item) => item.value
);
for (const item of data.categoryDatas) {
if (allowedCategories.includes(item.satisfactionCategory)) {
this.option.series[0].data.push(item.veryGoodQty);
this.option.series[1].data.push(item.goodQty);
this.option.series[2].data.push(item.badQty);
this.option.xAxis.data.push(item.satisfactionCategoryName);
this.satisfactionCategory.push(item.satisfactionCategory);
this.score.push({
score: item.score,
satisfactionCategoryName: item.satisfactionCategoryName,
imgUrl: require(`@/assets/img/satisfaction/${item.satisfactionCategory}.png`),
scoreDiffBtLastMonth: item.scoreDiffBtLastMonth,
state: item.scoreDiffBtLastMonth >= 0,
});
if (item.scoreDiffBtLastMonth < 0) {
item.scoreDiffBtLastMonth = Math.abs(item.scoreDiffBtLastMonth);
}
}
}
this.myChart.setOption(this.option);
} else {
this.$message.error(msg);
}
},
initEcharts() {
this.myChart = echarts.init(document.getElementById("myCharts"));
this.myChart.setOption(this.option);
let than = this;
this.myChart.on("click", function (params) {
than.handelClickChart(params.name, params.seriesName);
});
},
handelClickChart(name, seriesName) {
this.$emit("handelClickChart", name, seriesName);
},
getOrgTreeList() {
this.$http
.post("/gov/org/customeragency/agencygridtree", {})
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
let rowData = res.data.subAgencyList.map((item) => ({
agencyId: item.agencyId,
agencyName: item.agencyName,
subAgencyList: null,
}));
res.data.subAgencyList = rowData;
this.orgOptions = [res.data];
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
handleChangeCascader(val) {
this.formData.agencyId = val[1];
this.getCharts();
},
handleChangePicker() {
this.getCharts();
},
},
components: {},
computed: {},
watch: {},
};
</script>
<style scoped lang="scss">
.cascader {
margin-left: 10px;
}
.content_box {
display: flex;
height: 160px;
margin-top: 10px;
padding: 0 10px;
box-sizing: border-box;
.left {
background: #f7faff;
margin-right: 10px;
min-width: 300px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 5px;
padding: 10px;
box-sizing: border-box;
img {
margin-right: 8px;
}
}
img {
width: 50px;
height: 50px;
margin-right: 15px;
}
.left_right,
.right_right {
display: flex;
flex-direction: column;
flex: 1;
:nth-child(1) {
font-size: 18px;
font-family: PingFang SC;
font-weight: bold;
color: #333333;
}
:nth-child(2) {
font-size: 14px;
font-family: PingFang SC;
color: #666666;
}
}
.right_box {
img {
margin: 0;
width: 10px;
height: 14px;
}
}
.right {
flex: 1;
display: grid;
grid-template-columns: repeat(4, 1fr);
.box {
height: 75px;
margin: 0 10px 10px 0;
.card {
background: #f7faff;
width: 100%;
height: 100%;
display: flex;
align-items: center;
border-radius: 5px;
padding: 20px;
box-sizing: border-box;
}
}
}
}
#myCharts {
width: 1200px;
height: 400px;
}
</style>

5
src/views/modules/satisfaction/communitySelfInsp/formList.vue

@ -176,6 +176,7 @@ export default {
...this.formData,
pageNo: this.pageNo,
pageSize: this.pageSize,
agencyId: this.communityId
};
let url = '/governance/satisfaction/communitySelfInsp/inspResult/list'
const { data, code, msg } = await requestGet(url, params)
@ -207,6 +208,10 @@ export default {
seriesName: {
type: String,
default: ''
},
communityId:{
type: String,
default: ''
}
},
//

177
src/views/modules/satisfaction/communitySelfInsp/index.vue

@ -62,7 +62,13 @@
alt="Image"
/>
<div class="left_right">
<div>{{ synthesisScore }}</div>
<div>
{{
synthesisScore < 0
? Math.abs(synthesisScore)
: synthesisScore
}}
</div>
<div>综合得分</div>
</div>
<div class="right_box">
@ -81,7 +87,11 @@
synthesisScoreBtLastMonth != null
"
/>
<span>{{ synthesisScoreBtLastMonth }}</span>
<span>{{
synthesisScoreBtLastMonth < 0
? Math.abs(synthesisScoreBtLastMonth)
: synthesisScoreBtLastMonth
}}</span>
</div>
<div style="color: #999">较上月</div>
</div>
@ -106,9 +116,13 @@
alt=""
v-if="!item.state && item.scoreDiffBtLastMonth != 0"
/>
<span :class="item.state ? 'up' : 'down'">{{
item.scoreDiffBtLastMonth
}}</span>
<span :class="item.state ? 'up' : 'down'">
{{
item.scoreDiffBtLastMonth < 0
? Math.abs(item.scoreDiffBtLastMonth)
: item.scoreDiffBtLastMonth
}}
</span>
</div>
<div style="color: #999">较上月</div>
</div>
@ -120,7 +134,12 @@
<section class="bto-box">
<div id="myCharts" v-if="user.level != 'street'"></div>
<div v-else class="f-top16">
<el-table :data="tableList" :height="tabHeight" border align="center">
<el-table
:data="tableList"
:height="tabHeight"
border
align="center"
>
<el-table-column label="序号" type="index" width="80" />
<el-table-column
label="社区"
@ -141,7 +160,7 @@
width="150"
align="center"
>
<template slot-scope="scope">
<template slot-scope="scope">
<div class="f-flex">
<span class="down f-right8">{{
scope.row.synthesisScore
@ -152,8 +171,7 @@
width="10px"
height="14px"
v-if="
scope.row.synthesisScoreDiffBtLastMonth >
0 &&
scope.row.synthesisScoreDiffBtLastMonth > 0 &&
scope.row.synthesisScoreDiffBtLastMonth != 0
"
/>
@ -162,21 +180,18 @@
width="10px"
height="14px"
v-if="
scope.row.synthesisScoreDiffBtLastMonth <
0 &&
scope.row.synthesisScoreDiffBtLastMonth < 0 &&
scope.row.synthesisScoreDiffBtLastMonth != 0
"
/>
<span class="gray">{{
scope.row.synthesisScoreDiffBtLastMonth < 0
? Math.abs(
scope.row.synthesisScoreDiffBtLastMonth
)
? Math.abs(scope.row.synthesisScoreDiffBtLastMonth)
: scope.row.synthesisScoreDiffBtLastMonth
}}</span>
</div>
</div>
</template>
</template>
</el-table-column>
<el-table-column
label="文化设施"
@ -236,8 +251,7 @@
width="10px"
height="14px"
v-if="
scope.row.basicEducationScoreDiffBtLastMonth >
0 &&
scope.row.basicEducationScoreDiffBtLastMonth > 0 &&
scope.row.basicEducationScoreDiffBtLastMonth != 0
"
/>
@ -246,8 +260,7 @@
width="10px"
height="14px"
v-if="
scope.row.basicEducationScoreDiffBtLastMonth <
0 &&
scope.row.basicEducationScoreDiffBtLastMonth < 0 &&
scope.row.basicEducationScoreDiffBtLastMonth != 0
"
/>
@ -278,8 +291,7 @@
width="10px"
height="14px"
v-if="
scope.row.sportsFacilityScoreDiffBtLastMonth >
0 &&
scope.row.sportsFacilityScoreDiffBtLastMonth > 0 &&
scope.row.sportsFacilityScoreDiffBtLastMonth != 0
"
/>
@ -288,8 +300,7 @@
width="10px"
height="14px"
v-if="
scope.row.sportsFacilityScoreDiffBtLastMonth <
0 &&
scope.row.sportsFacilityScoreDiffBtLastMonth < 0 &&
scope.row.sportsFacilityScoreDiffBtLastMonth != 0
"
/>
@ -320,8 +331,7 @@
width="10px"
height="14px"
v-if="
scope.row.ecologicalEnvScoreDiffBtLastMonth >
0 &&
scope.row.ecologicalEnvScoreDiffBtLastMonth > 0 &&
scope.row.ecologicalEnvScoreDiffBtLastMonth != 0
"
/>
@ -330,8 +340,7 @@
width="10px"
height="14px"
v-if="
scope.row.ecologicalEnvScoreDiffBtLastMonth <
0 &&
scope.row.ecologicalEnvScoreDiffBtLastMonth < 0 &&
scope.row.ecologicalEnvScoreDiffBtLastMonth != 0
"
/>
@ -362,8 +371,7 @@
width="10px"
height="14px"
v-if="
scope.row.socialSecurityScoreDiffBtLastMonth >
0 &&
scope.row.socialSecurityScoreDiffBtLastMonth > 0 &&
scope.row.socialSecurityScoreDiffBtLastMonth != 0
"
/>
@ -372,8 +380,7 @@
width="10px"
height="14px"
v-if="
scope.row.socialSecurityScoreDiffBtLastMonth <
0 &&
scope.row.socialSecurityScoreDiffBtLastMonth < 0 &&
scope.row.socialSecurityScoreDiffBtLastMonth != 0
"
/>
@ -472,8 +479,8 @@
</div>
</template>
</el-table-column>
<el-table-column label="病有所医" prop="medical" width="150" >
<template slot-scope="scope">
<el-table-column label="病有所医" prop="medical" width="150">
<template slot-scope="scope">
<div class="f-flex">
<span class="down f-right8">{{
scope.row.medicalScore
@ -484,8 +491,7 @@
width="10px"
height="14px"
v-if="
scope.row.medicalScoreDiffBtLastMonth >
0 &&
scope.row.medicalScoreDiffBtLastMonth > 0 &&
scope.row.medicalScoreDiffBtLastMonth != 0
"
/>
@ -494,16 +500,13 @@
width="10px"
height="14px"
v-if="
scope.row.medicalScoreDiffBtLastMonth <
0 &&
scope.row.medicalScoreDiffBtLastMonth < 0 &&
scope.row.medicalScoreDiffBtLastMonth != 0
"
/>
<span class="gray">{{
scope.row.medicalScoreDiffBtLastMonth < 0
? Math.abs(
scope.row.medicalScoreDiffBtLastMonth
)
? Math.abs(scope.row.medicalScoreDiffBtLastMonth)
: scope.row.medicalScoreDiffBtLastMonth
}}</span>
</div>
@ -542,30 +545,97 @@
</div>
</section>
</div>
<div></div>
</div>
</div>
<el-dialog
v-if="showFormList && user.level == 'community'"
v-if="showCommunitDialog"
:visible.sync="showCommunitDialog"
:title="communitDialogTitle"
:close-on-click-modal="false"
:close-on-press-escape="false"
width="1250px"
top="5vh"
class="dialog-h"
@closed="showCommunitDialog = false"
>
<community-dialog
:communityId="communityId"
:period="formData.period"
:satisfaction_category="dicts.satisfaction_category"
@handelClickChart="handelClickChart"
>
</community-dialog>
<el-dialog
v-if="showFormList"
:visible.sync="showFormList"
:close-on-click-modal="false"
:close-on-press-escape="false"
title="社区自查"
append-to-body
width="820px"
top="5vh"
class="dialog-h"
@closed="showFormList = false"
>
<form-list
@handleClose="handleClose"
@handelDetail="handelDetail"
@handelFollowUpList="handelFollowUpList"
:period="formData.period"
:seriesName="seriesName"
:inspRecordId="inspRecordId"
:communityId="communityId"
></form-list>
<el-dialog
width="920px"
class="dialog-h"
title="社区自查报告详情"
:close-on-click-modal="false"
v-if="showFollowUpDetail"
:visible.sync="showFollowUpDetail"
append-to-body
>
<follow-Detail
:period="formData.period"
:inspResultId="inspResultId"
@handleClose="showFollowUpDetail = false"
></follow-Detail>
</el-dialog>
<el-dialog
width="820px"
class="dialog-h"
title="回访记录"
:close-on-click-modal="false"
v-if="showFollowUpList"
:visible.sync="showFollowUpList"
append-to-body
>
<follow-list :id="inspResultId"></follow-list>
</el-dialog>
</el-dialog>
</el-dialog>
<el-dialog
v-if="showFormList"
:visible.sync="showFormList"
:close-on-click-modal="false"
:close-on-press-escape="false"
title="社区自查"
:modal-append-to-body="false"
append-to-body
width="820px"
top="5vh"
class="dialog-h"
@closed="showFormList = false"
>
<form-list
ref="ref_add_form"
@handleClose="handleClose"
:satisfactionCategoryStr="satisfactionCategoryStr"
@handelDetail="handelDetail"
@handelFollowUpList="handelFollowUpList"
:period="formData.period"
:modal-append-to-body="false"
:seriesName="seriesName"
:inspRecordId="inspRecordId"
:communityId="communityId"
></form-list>
<el-dialog
width="920px"
@ -612,10 +682,12 @@ import * as echarts from "echarts";
import formList from "./formList";
import followList from "./followList";
import followDetail from "./followUpDetail";
import communityDialog from "./communityDialog";
import util from "@js/util.js";
export default {
components: { formList, followList, followDetail },
components: { formList, followList, followDetail, communityDialog },
data() {
return {
@ -747,6 +819,9 @@ export default {
total: 0,
pageNo: 1,
pageSize: 20,
showCommunitDialog: false,
communitDialogTitle: "",
communityId: "",
};
},
computed: {
@ -845,9 +920,6 @@ export default {
},
handelClickChart(name, seriesName) {
this.showFormList = true;
this.satisfactionCategoryStr = this.dicts.satisfaction_category.filter(
(item) => item.label == name
)[0].value;
this.seriesName =
seriesName == "满意"
? "veryGood"
@ -958,7 +1030,7 @@ export default {
}
}
this.tableList = data.childrenAgencyDatas;
this.total = this.tableList.length
this.total = this.tableList.length;
}
},
handleCurrentChange() {
@ -975,6 +1047,11 @@ export default {
this.formData = {};
this.initData();
},
handleView(row) {
this.communityId = row.agencyId;
this.showCommunitDialog = true;
this.communitDialogTitle = `${row.agencyName}满意度自查详情`;
},
},
props: {},

Loading…
Cancel
Save