Browse Source

满意度调查页面,居民党组织隐藏键头,新增小区级联框最多选中网格

V1.0
mk 2 years ago
parent
commit
2a483f4030
  1. 20
      src/views/components/resiForm.vue
  2. 14
      src/views/modules/base/community/communityForm.vue
  3. 653
      src/views/modules/portrayal/jumin/cpts/rightTop.vue
  4. 2
      src/views/modules/satisfaction/communitySelfInsp/index.vue
  5. 9
      src/views/modules/satisfaction/satisfactionProvince/formList.vue
  6. 947
      src/views/modules/satisfaction/satisfactionProvince/index.vue

20
src/views/components/resiForm.vue

@ -436,7 +436,7 @@ export default {
this.handleNextOrgTreeClick(node, resolve)
},
checkStrictly: true,
multiple: false
multiple: false,
},
activeName: 'groupeduInfoDto',
validateFlag: null,
@ -1721,25 +1721,22 @@ export default {
})
},
async handleNextOrgTreeClick (node,resolve) {
console.log(node,resolve);
await this.getTreeChildenList(node,resolve)
},
async getTreeChildenList (node, resolve) {
if (node.data.partyOrgLevel === 7) {
resolve([]); //
if (node.data.partyOrgLevel === 7 ) {
resolve(null);
return;
}
}
const url = "/actual/base/party/org/listNextLevelPartyOrgTreeNodesByPid"
console.log('级联', node.value)
let params = {
partyOrgPid: node.data.id
}
const { data, code, msg } = await requestGet(url, params)
if (code === 0) {
data.forEach(item => {
if (item.partyOrgLevel === 7) {
item.children = null; // item.children = [];
}
item.children = null;
item.leaf = item.partyOrgLevel === 7 || item.childrenQty === 0
});
resolve(data)
} else {
@ -2943,7 +2940,7 @@ export default {
this.newForm.specialSupportDto = this.form.specialSupportDto
}
}
},
}
}
</script>
@ -2986,4 +2983,7 @@ export default {
.item-agency {
width: 400px;
}
::v-deep .no-expand>:nth-child(1) .cell .el-table__expand-icon{
display: none;
}
</style>

14
src/views/modules/base/community/communityForm.vue

@ -168,7 +168,9 @@ export default {
// label: 'agencyName',
// value: 'agencyId',
lazy: true,
lazyLoad: this.lazyLoadAgency
lazyLoad:(node, resolve) => {
this.lazyLoadAgency(node, resolve)
},
},
userAgencyId: '',
}
@ -182,12 +184,11 @@ export default {
},
methods: {
lazyLoadAgency(node, resolve) {
setTimeout(() => {
this.getAgency(node, resolve)
}, 200)
async lazyLoadAgency(node, resolve) {
await this.getAgency(node, resolve)
},
async getAgency(node, resolve) {
console.log(node);
const url = "/gov/org/agency/dynamicOrgTreeWithDepth"
let params = {
rootOrgId: node.value ? node.value : '',
@ -206,8 +207,9 @@ export default {
label: item.name,
level: item.agencyLevel,
orgType: item.orgType,
leaf: node.level >= 4 // 5
leaf: item.orgType == 'grid' // 5
}))
console.log(nodes);
resolve(nodes)
} else {
this.$message.error(msg)

653
src/views/modules/portrayal/jumin/cpts/rightTop.vue

@ -1,90 +1,128 @@
<template>
<div class=''>
<el-tabs v-model="topTabs" @tab-click="tabClick">
<el-tab-pane :label="complainLabel" name="12345">
<complain :tableData="complainList" :key="resiId[0]" />
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px;">{{ complainTotal }}</div>
</el-col>
<el-col :span="12" align="right">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page.sync="pageNo" :page-size="pageSize" layout="prev, pager, next, jumper"
:total="complainTotal">
</el-pagination></el-col>
</el-row>
</el-tab-pane>
<el-tab-pane :label="shengLabel" name="sheng">
<sheng :tableData="shengList" :key="resiId[0]" />
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px;">{{ shengTotal }}</div>
</el-col>
<el-col :span="12" align="right">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page.sync="pageNo" :page-size="pageSize" layout="prev, pager, next, jumper"
:total="shengTotal">
</el-pagination></el-col>
</el-row>
</el-tab-pane>
<el-tab-pane :label="shequLabel" name="shequ">
<shequ :tableData="shequList" :key="resiId[0]" />
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px;">{{ shequTotal }}</div>
</el-col>
<el-col :span="12" align="right">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page.sync="pageNo" :page-size="pageSize" layout="prev, pager, next, jumper"
:total="shequTotal">
</el-pagination></el-col>
</el-row>
</el-tab-pane>
<el-tab-pane :label="shijianLabel" name="shijian">
<shijian :tableData="shijianList" :key="resiId[0]" />
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px;">{{ shijianTotal }}</div>
</el-col>
<el-col :span="12" align="right">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page.sync="pageNo" :page-size="pageSize" layout="prev, pager, next, jumper"
:total="shijianTotal">
</el-pagination></el-col>
</el-row>
</el-tab-pane>
<el-tab-pane :label="xuqiuLabel" name="xuqiu">
<xuqiu :tableData="xuqiuList" :key="resiId[0]" />
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px;">{{ xuqiuTotal }}</div>
</el-col>
<el-col :span="12" align="right">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page.sync="pageNo" :page-size="pageSize" layout="prev, pager, next, jumper"
:total="xuqiuTotal">
</el-pagination></el-col>
</el-row>
</el-tab-pane>
<el-tab-pane :label="fuwuLabel" name="fuwu">
<div style="display: flex; flex-direction: column; height: 100%;">
<fuwu :tableData="fuwuList" :key="resiId[0]" style="flex: 1; overflow: auto;" />
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px;">{{ fuwuTotal }}</div>
</el-col>
<el-col :span="12" align="right">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page.sync="pageNo" :page-size="pageSize" layout="prev, pager, next, jumper"
:total="fuwuTotal">
</el-pagination>
</el-col>
</el-row>
</div>
</el-tab-pane>
</el-tabs>
</div>
<div class="">
<el-tabs v-model="topTabs" @tab-click="tabClick">
<el-tab-pane :label="complainLabel" name="12345">
<complain :tableData="complainList" :key="resiId[0]" />
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px">{{ complainTotal }}</div>
</el-col>
<el-col :span="12" align="right">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pageNo"
:page-size="pageSize"
layout="prev, pager, next, jumper"
:total="complainTotal"
>
</el-pagination
></el-col>
</el-row>
</el-tab-pane>
<el-tab-pane :label="shengLabel" name="sheng">
<sheng :tableData="shengList" :key="resiId[0]" />
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px">{{ shengTotal }}</div>
</el-col>
<el-col :span="12" align="right">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pageNo"
:page-size="pageSize"
layout="prev, pager, next,jumper"
:total="shengTotal"
>
</el-pagination
></el-col>
</el-row>
</el-tab-pane>
<el-tab-pane :label="shequLabel" name="shequ">
<shequ :tableData="shequList" :key="resiId[0]" />
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px">{{ shequTotal }}</div>
</el-col>
<el-col :span="12" align="right">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pageNo"
:page-size="pageSize"
layout="prev, pager, next, jumper"
:total="shequTotal"
>
</el-pagination
></el-col>
</el-row>
</el-tab-pane>
<el-tab-pane :label="shijianLabel" name="shijian">
<shijian :tableData="shijianList" :key="resiId[0]" />
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px">{{ shijianTotal }}</div>
</el-col>
<el-col :span="12" align="right">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pageNo"
:page-size="pageSize"
layout="prev, pager, next, jumper"
:total="shijianTotal"
>
</el-pagination
></el-col>
</el-row>
</el-tab-pane>
<el-tab-pane :label="xuqiuLabel" name="xuqiu">
<xuqiu :tableData="xuqiuList" :key="resiId[0]" />
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px">{{ xuqiuTotal }}</div>
</el-col>
<el-col :span="12" align="right">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pageNo"
:page-size="pageSize"
layout="prev, pager, next, jumper"
:total="xuqiuTotal"
>
</el-pagination
></el-col>
</el-row>
</el-tab-pane>
<el-tab-pane :label="fuwuLabel" name="fuwu">
<div style="display: flex; flex-direction: column; height: 100%">
<fuwu
:tableData="fuwuList"
:key="resiId[0]"
style="flex: 1; overflow: auto"
/>
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px">{{ fuwuTotal }}</div>
</el-col>
<el-col :span="12" align="right">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pageNo"
:page-size="pageSize"
layout="prev, pager, next, jumper"
:total="fuwuTotal"
>
</el-pagination>
</el-col>
</el-row>
</div>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
@ -95,238 +133,249 @@ import shijian from "./table/shijian";
import xuqiu from "./table/xuqiu";
import fuwu from "./table/fuwu";
export default {
//
data() {
return {
topTabs: '12345',
//
data() {
return {
topTabs: "12345",
complainTotal: 0,
complainList: [],
complainLabel: '',
complainTotal: 0,
complainList: [],
complainLabel: "",
shengLabel: '',
shengList: [],
shengTotal: 0,
shengLabel: "",
shengList: [],
shengTotal: 0,
shequLabel: '',
shequList: [],
shequTotal: 0,
shequLabel: "",
shequList: [],
shequTotal: 0,
shijianLabel: '',
shijianList: [],
shijianTotal: 0,
shijianLabel: "",
shijianList: [],
shijianTotal: 0,
xuqiuLabel: '',
xuqiuList: [],
xuqiuTotal: 0,
xuqiuLabel: "",
xuqiuList: [],
xuqiuTotal: 0,
fuwuLabel: '',
fuwuList: [],
fuwuTotal: 0,
fuwuLabel: "",
fuwuList: [],
fuwuTotal: 0,
pageNo: 1,
pageSize: 20
};
},
//
created() {
if (this.type == '0') {
this.resiId = [this.userInfo.resiId]
} else if (this.type == '1') {
this.resiId = this.familyResiList
}
pageNo: 1,
pageSize: 20,
};
},
//
created() {
if (this.type == "0") {
this.resiId = [this.userInfo.resiId];
} else if (this.type == "1") {
this.resiId = this.familyResiList;
}
},
async mounted() {
await this.getComplainList();
await this.getShengList();
await this.getShequList();
await this.getshijianList();
await this.getxuqiuList();
await this.getfuwuList();
},
props: {
userInfo: {
type: Object,
default: () => {},
},
async mounted() {
await this.getComplainList()
await this.getShengList()
await this.getShequList()
await this.getshijianList()
await this.getxuqiuList()
await this.getfuwuList()
familyResiList: {
type: Array,
default: () => [],
},
props: {
userInfo: {
type: Object,
default: () => { }
},
familyResiList: {
type: Array,
default: () => []
},
type: {
type: String,
default: '0'
}
type: {
type: String,
default: "0",
},
//
methods: {
tabClick(index) {
},
handleSizeChange() {
},
handleCurrentChange() {
},
//
methods: {
tabClick(index) {},
handleSizeChange() {},
handleCurrentChange() {},
getComplainList() {
if (this.resiId.length == 0) {
this.complainList = [];
this.complainLabel = `12345投诉(0)`;
return;
}
let parm = {
residList: this.resiId,
pageNo: this.pageNo,
pageSize: this.pageSize,
eventType: "3",
};
const statusArr = {
processing: "处理中",
closed_case: "已办结",
};
const marktypes = ["普通事件", "难点读点", "矛盾纠纷", "自身问题"];
},
getComplainList() {
if (this.resiId.length == 0) {
this.complainList = []
this.complainLabel = `12345投诉(0)`
return
}
let parm = {
residList: this.resiId,
pageNo: this.pageNo,
pageSize: this.pageSize,
eventType: "3",
}
const statusArr = {
processing: "处理中",
closed_case: "已办结",
//
this.$http
.post("/actual/base/peopleRoomOverview/eventPageList", parm)
.then(({ data: res }) => {
this.complainList = res.data.list.map((item) => {
return {
...item,
status: item.status ? statusArr[item.status] : null,
marktype: marktypes[item.marktype],
};
const marktypes = ["普通事件", "难点读点", "矛盾纠纷", "自身问题"];
//
this.$http.post("/actual/base/peopleRoomOverview/eventPageList", parm).then(({ data: res }) => {
this.complainList = res.data.list.map((item) => {
return {
...item,
status: item.status ? statusArr[item.status] : null,
marktype: marktypes[item.marktype],
};
});
this.complainTotal = res.data.total;
});
this.complainTotal = res.data.total;
this.complainLabel = `12345投诉(${this.complainTotal}`
});
},
getShengList() {
if (this.resiId.length == 0) {
this.shengList = []
this.shengLabel = `省满意度调查(0)`
return
}
let parm = {
residList: this.resiId,
pageNo: this.pageNo,
pageSize: this.pageSize
}
//
this.$http.post("/actual/base/peopleRoomOverview/provincialSatisfactionPageList", parm).then(({ data: res }) => {
this.shengList = res.data;
this.shengTotal = res.data.length;
this.shengLabel = `省满意度调查(${this.shengTotal}`
});
},
getShequList() {
if (this.resiId.length == 0) {
this.shequList = []
this.shequLabel = `社区满意度自查(0)`
return
}
let parm = {
residList: this.resiId,
pageNo: this.pageNo,
pageSize: this.pageSize
}
const completeFlags = {
"-2": "未知",
"-1": "不接受回访",
0: "接受回访/待回访",
1: "已回访",
this.complainLabel = `12345投诉(${this.complainTotal}`;
});
},
getShengList() {
if (this.resiId.length == 0) {
this.shengList = [];
this.shengLabel = `省满意度调查(0)`;
return;
}
let parm = {
residList: this.resiId,
pageNo: this.pageNo,
pageSize: this.pageSize,
};
//
this.$http
.post(
"/actual/base/peopleRoomOverview/provincialSatisfactionPageList",
parm
)
.then(({ data: res }) => {
this.shengList = res.data;
this.shengTotal = res.data.length;
this.shengLabel = `省满意度调查(${this.shengTotal}`;
});
},
getShequList() {
if (this.resiId.length == 0) {
this.shequList = [];
this.shequLabel = `社区满意度自查(0)`;
return;
}
let parm = {
residList: this.resiId,
pageNo: this.pageNo,
pageSize: this.pageSize,
};
const completeFlags = {
"-2": "未知",
"-1": "不接受回访",
0: "接受回访/待回访",
1: "已回访",
};
this.$http
.post(
"/actual/base/peopleRoomOverview/communitySatisfactionPageList",
parm
)
.then(({ data: res }) => {
this.shequList = res.data.map((item) => {
return {
...item,
completeFlag: completeFlags[item.completeFlag],
};
});
this.shequTotal = this.shequList.length;
this.shequLabel = `社区满意度自查(${this.shequTotal}`;
});
},
getshijianList() {
if (this.resiId.length == 0) {
this.shijianList = [];
this.shijianLabel = `上报事件(0)`;
return;
}
let parm = {
residList: this.resiId,
pageNo: this.pageNo,
pageSize: this.pageSize,
};
const statusArr = {
processing: "处理中",
closed_case: "已办结",
};
const marktypes = ["普通事件", "难点读点", "矛盾纠纷", "自身问题"];
this.$http
.post("/actual/base/peopleRoomOverview/eventPageList", parm)
.then(({ data: res }) => {
this.shijianList = res.data.list.map((item) => {
return {
...item,
status: item.status ? statusArr[item.status] : null,
marktype: marktypes[item.marktype],
};
this.$http.post("/actual/base/peopleRoomOverview/communitySatisfactionPageList", parm).then(({ data: res }) => {
this.shequList = res.data.map((item) => {
return {
...item,
completeFlag: completeFlags[item.completeFlag],
};
});
this.shequTotal = this.shequList.length;
this.shequLabel = `社区满意度自查(${this.shequTotal}`
});
},
getshijianList() {
if (this.resiId.length == 0) {
this.shijianList = []
this.shijianLabel = `上报事件(0)`
return
}
let parm = {
residList: this.resiId,
pageNo: this.pageNo,
pageSize: this.pageSize
}
const statusArr = {
processing: "处理中",
closed_case: "已办结",
});
this.shijianTotal = this.shijianList.length;
this.shijianLabel = `上报事件(${this.shijianTotal}`;
});
},
getxuqiuList() {
if (this.resiId.length == 0) {
this.xuqiuList = [];
this.xuqiuLabel = `居民需求(0)`;
return;
}
let parm = {
residList: this.resiId,
pageNo: this.pageNo,
pageSize: this.pageSize,
};
//
this.$http
.post("/actual/base/peopleRoomOverview/demandOfResidentsPageList", parm)
.then(({ data: res }) => {
this.xuqiuList = res.data.map((item) => {
return {
...item,
};
});
this.xuqiuTotal = this.xuqiuList.length;
this.xuqiuLabel = `居民需求(${this.xuqiuTotal}`;
});
},
getfuwuList() {
if (this.resiId.length == 0) {
this.fuwuList = [];
this.fuwuLabel = `社区服务(0)`;
return;
}
let parm = {
residList: this.resiId,
pageNo: this.pageNo,
pageSize: this.pageSize,
};
this.$http
.post("/actual/base/peopleRoomOverview/communityServicePageList", parm)
.then(({ data: res }) => {
this.fuwuList = res.data.map((item) => {
return {
...item,
};
const marktypes = ["普通事件", "难点读点", "矛盾纠纷", "自身问题"];
this.$http.post("/actual/base/peopleRoomOverview/eventPageList", parm).then(({ data: res }) => {
this.shijianList = res.data.list.map((item) => {
return {
...item,
status: item.status ? statusArr[item.status] : null,
marktype: marktypes[item.marktype],
};
});
this.shijianTotal = this.shijianList.length;
this.shijianLabel = `上报事件(${this.shijianTotal}`
});
},
getxuqiuList() {
if (this.resiId.length == 0) {
this.xuqiuList = []
this.xuqiuLabel = `居民需求(0)`
return
}
let parm = {
residList: this.resiId,
pageNo: this.pageNo,
pageSize: this.pageSize
}
//
this.$http.post("/actual/base/peopleRoomOverview/demandOfResidentsPageList", parm).then(({ data: res }) => {
this.xuqiuList = res.data.map((item) => {
return {
...item,
};
});
this.xuqiuTotal = this.xuqiuList.length;
this.xuqiuLabel = `居民需求(${this.xuqiuTotal}`
});
},
getfuwuList() {
if (this.resiId.length == 0) {
this.fuwuList = []
this.fuwuLabel = `社区服务(0)`
return
}
let parm = {
residList: this.resiId,
pageNo: this.pageNo,
pageSize: this.pageSize
}
this.$http.post("/actual/base/peopleRoomOverview/communityServicePageList", parm).then(({ data: res }) => {
this.fuwuList = res.data.map((item) => {
return {
...item,
};
});
this.fuwuTotal = this.fuwuList.length;
this.fuwuLabel = `社区服务(${this.fuwuTotal}`
});
},
});
this.fuwuTotal = this.fuwuList.length;
this.fuwuLabel = `社区服务(${this.fuwuTotal}`;
});
},
//
components: { complain, sheng, fuwu, shijian, xuqiu, shequ },
//
computed: {},
//
watch: {},
}
},
//
components: { complain, sheng, fuwu, shijian, xuqiu, shequ },
//
computed: {},
//
watch: {},
};
</script>
<style lang="less" scoped></style>

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

@ -344,7 +344,7 @@ export default {
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`) });
this.score.push({ score: item.score, satisfactionCategoryName: item.satisfactionCategoryName, imgUrl: require(`@/assets/img/satisfaction/${item.satisfactionCategory}.png`) });
}
});
this.myChart.setOption(this.option);

9
src/views/modules/satisfaction/satisfactionProvince/formList.vue

@ -96,11 +96,9 @@ export default {
//
created() { },
async mounted() {
if (this.satisfactionCategoryStr) {
this.formData.scopeId = this.satisfactionCategoryStr
this.formData.scopeId = this.formObj.scopeId
this.formData.periodStart = this.formObj.periodStart
this.formData.orgCategoryCode = this.formObj.orgCategoryCode
}
await this.loadAgency();
await this.getDicts()
await this.getTableData()
@ -215,10 +213,7 @@ export default {
//
computed: {},
props: {
satisfactionCategoryStr: {
type: String,
default: ''
},
formObj: {
type: Object,
default: () => {}

947
src/views/modules/satisfaction/satisfactionProvince/index.vue

File diff suppressed because it is too large
Loading…
Cancel
Save