Browse Source

Merge remote-tracking branch 'origin/dev' into dev

V1.0
wxz 2 years ago
parent
commit
8f47565cb5
  1. BIN
      src/assets/images/home/dangerHome.png
  2. BIN
      src/assets/images/home/dangerHomeBg.png
  3. BIN
      src/assets/images/home/dangerPeople.png
  4. BIN
      src/assets/images/home/freeHome.png
  5. BIN
      src/assets/images/home/hasPeople.png
  6. BIN
      src/assets/images/home/homeBottom.png
  7. BIN
      src/assets/images/home/homeTop.png
  8. 7
      src/js/store/modules/chooseArea.js
  9. 130
      src/views/dataBoard/cpts/details/xqwmz.vue
  10. 2
      src/views/dataBoard/cpts/family/modules/businessTables/complaint.vue
  11. 1
      src/views/dataBoard/cpts/family/modules/businessTables/economize.vue
  12. 59
      src/views/dataBoard/cpts/homeDetails/PeopleMount/index.vue
  13. 294
      src/views/dataBoard/cpts/homeDetails/index.vue
  14. 2
      src/views/dataBoard/cpts/personnel/modules/businessTables/complaint.vue
  15. 24
      src/views/dataBoard/cpts/personnel/modules/businessTables/economize.vue
  16. 2073
      src/views/dataBoard/cpts/resi-details.vue
  17. 2
      src/views/dataBoard/overview/components/jdwgy.vue
  18. 1
      src/views/dataBoard/renfang/cpts/fwgl.vue
  19. 32
      src/views/dataBoard/renfang/cpts/jmgl.vue
  20. 5
      src/views/dataBoard/renfang/index.vue
  21. 2
      src/views/dataBoard/satisfactionEval/dissatisfied/index.vue
  22. 40
      src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/index.vue
  23. 24
      src/views/dataBoard/satisfactionEval/modules/PotentialPeople/index.vue
  24. 2
      src/views/dataBoardMain/main-content.vue
  25. 103
      src/views/modules/base/organization/organization.vue
  26. 232
      src/views/modules/home/index.vue

BIN
src/assets/images/home/dangerHome.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 622 B

After

Width:  |  Height:  |  Size: 584 B

BIN
src/assets/images/home/dangerHomeBg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 B

BIN
src/assets/images/home/dangerPeople.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 565 B

BIN
src/assets/images/home/freeHome.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 646 B

After

Width:  |  Height:  |  Size: 575 B

BIN
src/assets/images/home/hasPeople.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 736 B

After

Width:  |  Height:  |  Size: 530 B

BIN
src/assets/images/home/homeBottom.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 869 B

BIN
src/assets/images/home/homeTop.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

7
src/js/store/modules/chooseArea.js

@ -3,6 +3,7 @@ const state = {
orgId: "",
level: "",
},
commonLoading: false,
realScale: null,
};
@ -13,6 +14,9 @@ const mutations = {
CHOOSE_REAL_SCALE: (state, name) => {
state.realScale = name;
},
COMMON_LOADING: (state, flag) => {
state.commonLoading = flag;
},
};
const actions = {
@ -22,6 +26,9 @@ const actions = {
chooseScale({ commit }, name) {
commit("CHOOSE_REAL_SCALE", name);
},
chooseLoading({ commit }, flag) {
commit("COMMON_LOADING", flag);
},
};
export default {

130
src/views/dataBoard/cpts/details/xqwmz.vue

@ -28,27 +28,27 @@
src="@/assets/images/manyidu/tc-title-icon.png"
/>
</div>
<div class="eventItem">
<!-- <div class="eventItem">
<span>所属组织</span>
<span>{{ item.agencyName }}</span>
</div>
</div> -->
<div class="eventItem">
<span>不满意事项来源</span>
<span>社区意度自查</span>
</div>
<div class="eventItem">
<span>不满意事项类型</span>
<span>{{ item.scopeId && getSxType(item.scopeId) }}</span>
<span>{{ getSxType(item) }}</span>
</div>
<div class="eventItem">
<!-- <div class="eventItem">
<span>所属月份</span>
<span>{{
item.createdTime && getMonthData(item.createdTime)
}}</span>
</div>
</div> -->
<div class="eventItem">
<div>不满意事项描述</div>
<div style="margin-top: 20px">{{ item.problemDesc }}</div>
<div style="margin-top: 20px">{{ getSxReason(item) }}</div>
</div>
<div class="eventItem">
<span>提交人姓名</span>
@ -58,10 +58,10 @@
<span>提交人电话</span>
<span> {{ $sensitive(item.reporterMobile, 3, 7) }}</span>
</div>
<div class="eventItem">
<!-- <div class="eventItem">
<span>完成时限</span>
<span>{{ item.completeTime }}</span>
</div>
</div> -->
</div>
</el-col>
</el-row>
@ -94,10 +94,51 @@ export default {
logList: [],
},
loading: false,
loading1: false,
activities: [],
//
satisfactionCategoryOptions: [],
satisfactionCategoryOptions: [
{
key: "evaCulturalFacility",
value: "文化设施",
},
{
key: "evaSportsFacility",
value: "体育设施",
},
{
key: "evaEcologicalEnv",
value: "生态环境",
},
{
key: "evaSocialSecurity",
value: "社会治安",
},
{
key: "evaocialAssistance",
value: "社会救助",
},
{
key: "evaOldPeopleProvide",
value: "老有所养",
},
{
key: "evaBasicEducation",
value: "基础教育",
},
{
key: "evaMedical",
value: "病有所医",
},
],
reason: [
"basicEducationReason",
"culturalFacilityReason",
"ecologicalEnvReason",
"medicalReason",
"oldPeopleProvideReason",
"socialAssistanceReason",
"socialSecurityReason",
"sportsFacilityReason",
],
};
},
@ -128,13 +169,41 @@ export default {
return this.$moment(time * 1000).format("YYYY-MM-DD hh:mm");
},
getSxType(value) {
if (this.satisfactionCategoryOptions.length > 0 && value) {
return this.satisfactionCategoryOptions.filter(
(item) => item.value == value
)[0].label;
getSxType(row) {
let arr = [];
let text = "";
for (let k in row) {
if (row[k] == "bad") {
arr.push(k);
}
}
return "";
this.satisfactionCategoryOptions.forEach((item) => {
arr.forEach((item1) => {
if (item1 == item.key) {
if (text == "") {
text = item.value;
} else {
text = text + ", " + item.value;
}
}
});
});
return text;
},
getSxReason(row) {
let text = "";
this.reason.forEach((item) => {
for (let key in row) {
if (item == key && row[key]) {
if (text == "") {
text = row[key];
} else {
text = text + ";" + row[key];
}
}
}
});
return text;
},
getMonthData(time) {
if (time) {
@ -152,7 +221,7 @@ export default {
this.loading = false;
const { code, data, msg } = res.data;
if (code === 0) {
this.item = {...data.reporter,...data.satisfaction};
this.item = { ...data.reporter, ...data.satisfaction };
} else {
this.$message.error(msg);
}
@ -168,18 +237,19 @@ export default {
// this.$message.error(msg);
// }
// });
this.$http
.get(
"/governance/satisfactionDetailList/getUnsatisfiedCategory?satisfactionSource="
)
.then(({ data: { data } }) => {
this.satisfactionCategoryOptions = data.map((item) => {
return {
label: item.categoryName,
value: item.categoryCode,
};
});
});
// this.$http
// .get(
// "/governance/satisfactionDetailList/getUnsatisfiedCategory?satisfactionSource="
// )
// .then(({ data: { data } }) => {
// console.log('data::', data);
// this.satisfactionCategoryOptions = data.map((item) => {
// return {
// label: item.categoryName,
// value: item.categoryCode,
// };
// });
// });
},
},
};

2
src/views/dataBoard/cpts/family/modules/businessTables/complaint.vue

@ -18,7 +18,7 @@
<div style="color: #fff">暂无数据</div>
</div>
<Pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" @pagination="getList" />
<eventDetails :showDialog="showDialog" :resiId="this.rowId" @close="close" />
<eventDetails :showDialog="showDialog" :resiId="rowId" @close="close" />
</div>
</template>

1
src/views/dataBoard/cpts/family/modules/businessTables/economize.vue

@ -16,6 +16,7 @@
<img width="268px" height="128px" src="~@/assets/images/overview/zanwu.png" />
<div style="color: #fff">暂无数据</div>
</div>
<smyd :showDialog="showDialog" :id="rowId" @close="close" />
</div>
</template>

59
src/views/dataBoard/cpts/homeDetails/PeopleMount/index.vue

@ -0,0 +1,59 @@
<template>
<div class="peopleMount">
<div v-for="item in peopleList" :key="item.name" class="content">
<span class="fontStyleLable">{{ item.name }}</span>
<span class="fontStyle" :style="{ color: item.color }">{{ item.value }}</span>
</div>
</div>
</template>
<script>
export default {
name: "PeopleMount",
props: {},
data() {
return {
peopleList: [
{
name: "老年人数",
value: "42",
color: "#3CF5FF",
},
{
name: "残疾人数",
value: "28",
color: "#08EBAE",
},
{
name: "满意度风险家庭",
value: "13",
color: "#FFC100",
},
],
};
},
};
</script>
<style scoped lang="scss">
.peopleMount {
display: flex;
.content {
&:not(:last-child) {
margin-right: 40px;
}
.fontStyleLable {
font-size: 16px;
font-family: PingFang SC;
font-weight: 400;
color: #ffffff;
margin-right: 10px;
}
.fontStyle {
font-size: 24px;
font-family: DIN Alternate;
font-weight: bold;
}
}
}
</style>

294
src/views/dataBoard/cpts/homeDetails/index.vue

@ -22,52 +22,100 @@
<span v-if="homeMsg && homeMsg.type" :class="[homeMsg.type === 'red' ? 'miniGrid_red' : homeMsg.type === 'yellow' ? 'miniGrid_yellow' : 'miniGrid_green']">{{ homeMsg.type === "red" ? "" : homeMsg.type === "yellow" ? "" : "绿" }}色微网格</span>
</Title>
</div>
<!-- <div class="mount">
<people-mount />
</div> -->
<div class="apartment">
<div class="apar_comtent">
<div class="apar_top">
<img src="@/assets/images/home/homeTop.png" alt="/" />
</div>
<div class="apar_center">
<div class="apar_center_flex" :style="{ width: flexWidth + 'px' }">
<div v-for="(item, index) in houseMountArr" :key="index" class="floor">
<div class="households" v-for="itm in item" :key="itm.id">{{ itm.doorName }}</div>
<div style="min-width: 284px; max-width: 488px; padding: 0 20px">
<div class="apar_center">
<div class="apar_center_flex" :style="{ width: flexWidth + 'px' }">
<div v-for="(item, index) in houseMountArr" :key="index" class="floor">
<div v-for="itm in item" :key="itm.id" :class="[itm.riskyNum === 0 && itm.importanceNum === 0 ? 'households' : '', itm.riskyNum > 0 ? 'dangerHome' : '', itm.importanceNum > 0 ? 'dangerPeople' : '', itm.rentFlag === '2' ? 'freeHome' : '']">
<div v-if="itm.riskyNum === 0 && itm.importanceNum === 0 && itm.rentFlag != '2'">{{ itm.doorName }}</div>
<div v-if="itm.riskyNum > 0" class="dangerClass">
<div>{{ itm.doorName }}</div>
<img :src="require('@/assets/images/home/dangerHome.png')" alt="" />
</div>
<div v-if="itm.importanceNum > 0" class="dangerClass">
<div>{{ itm.doorName }}</div>
<img :src="require('@/assets/images/home/dangerPeople.png')" alt="" />
</div>
<div v-if="itm.rentFlag === '2'" class="dangerClass">
<div>闲置</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- <div class="apar_bottom">
<div class="apar_bottom">
<img src="@/assets/images/home/homeBottom.png" alt="/" />
</div> -->
</div>
</div>
<div class="apar_right">
<!-- <div class="apar_right">
<img src="@/assets/images/home/homeRight.png" alt="" />
</div>
</div> -->
</div>
</el-col>
<el-col :span="16">
<div class="screen">
<el-form :model="queryParams" inline>
<el-input v-model.trim="queryParams.ownerName" size="small" placeholder="按房主姓名"></el-input>
<el-input v-model.trim="queryParams.ownerPhone" size="small" placeholder="按房主电话"></el-input>
<el-input v-model.trim="queryParams.ownerIdCard" size="small" placeholder="按房主身份证号"></el-input>
<el-select popper-class="selectPopClass" clearable v-model="queryParams.residentTag" size="small" placeholder="居民类型">
<el-option v-for="item in peopleTypeList" :key="item.value" :label="item.label" :value="item.value"> </el-option>
</el-select>
<el-select popper-class="selectPopClass" clearable v-model="queryParams.riskyFlag" size="small" placeholder="满意度风险家庭">
<el-option v-for="item in riskHomeList" :key="item.value" :label="item.label" :value="item.value"> </el-option>
</el-select>
<el-button size="small" class="btn" type="primary" @click="search">查询</el-button>
</el-form>
</div>
<div class="table">
<el-table :data="list" v-loading="loading" height="500" element-loading-text="加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 21, 64, 0.3)">
<el-table-column label="序号" type="index" width="80" />
<el-table-column prop="doorName" label="门牌号" />
<el-table-column prop="fullName" show-overflow-tooltip label="所属小区" />
<el-table-column prop="buildingId" show-overflow-tooltip label="所属楼栋" />
<el-table-column prop="buildingUnitId" show-overflow-tooltip label="所属单元" />
<el-table-column prop="houseCode" label="房屋编码" />
<el-table-column prop="rentFlag" label="房屋状态">
<el-table-column prop="doorName" width="100" label="门牌号" />
<el-table-column prop="quartersName" width="120" show-overflow-tooltip label="所属小区" />
<el-table-column prop="buildingName" width="120" show-overflow-tooltip label="所属楼栋" />
<el-table-column prop="buildingUnitName" width="120" show-overflow-tooltip label="所属单元" />
<el-table-column prop="houseCode" width="120" label="房屋编码" />
<el-table-column prop="rentFlag" width="120" label="房屋状态">
<template slot-scope="scope">
<!-- 1出租 0自住 2闲置 3未售出 -->
<span>{{ getRentFlag(scope.row.rentFlag) }}</span>
</template>
</el-table-column>
<el-table-column prop="houseType" label="房屋类型">
<!-- <el-table-column prop="houseType" width="120" label="房屋类型">
<template slot-scope="scope"> -->
<!-- 1楼房2平房3别墅 -->
<!-- <span>{{ getHouseType(scope.row.houseType) }}</span>
</template>
</el-table-column> -->
<el-table-column prop="ownerName" width="120" label="房主姓名" />
<el-table-column prop="ownerPhone" width="120" show-overflow-tooltip label="房主电话">
<template slot-scope="scope">
<!-- 1楼房2平房3别墅 -->
<span>{{ getHouseType(scope.row.houseType) }}</span>
{{ $sensitive(scope.row.ownerPhone, 3, 7) }}
</template>
</el-table-column>
<el-table-column prop="ownerName" label="房主姓名" />
<el-table-column prop="ownerPhone" label="房主电话">
<el-table-column prop="riskyNum" width="170" label="满意度风险家庭">
<template slot="header"> <img :src="require('@/assets/images/home/dangerHome.png')" alt="" /> 满意度风险家庭 </template>
<template slot-scope="scope">
{{ $sensitive(scope.row.ownerPhone, 3, 7) }}
<span style="color: #f95619" v-if="+scope.row.riskyNum > 0"></span>
<span style="color: #3cf5ff" v-else></span>
</template>
</el-table-column>
<el-table-column prop="importanceNum" width="140" label="重点人员">
<template slot="header"> <img :src="require('@/assets/images/home/dangerPeople.png')" alt="" /> 重点人员 </template>
<template slot-scope="scope">
<span style="color: #f95619" v-if="+scope.row.importanceNum > 0"></span>
<span style="color: #3cf5ff" v-else></span>
</template>
</el-table-column>
<el-table-column label="操作" width="90" align="center">
@ -77,9 +125,9 @@
</el-table-column>
</el-table>
</div>
<!-- <div>
<Pagination v-show="total > 0" :total="total" :page.sync="pageNum" :limit.sync="pageSize" @pagination="getList" />
</div> -->
<div>
<Pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" @pagination="getTableData" />
</div>
</el-col>
</el-row>
</div>
@ -89,6 +137,7 @@
import Pagination from "@/views/dataBoard/satisfactionEval/components/Pagination";
import Title from "./Title/index.vue";
import BreadCrumb from "@/views/dataBoard/cpts/personnel/components/Breadcrumb/index.vue";
import PeopleMount from "./PeopleMount/index.vue";
export default {
name: "homeDetails",
@ -96,43 +145,55 @@ export default {
Pagination,
Title,
BreadCrumb,
PeopleMount,
},
data() {
return {
// total: 0,
// pageNum: 1,
// pageSize: 10,
total: 0,
queryParams: {
pageNo: 1,
pageSize: 10,
unitId: "",
ownerName: "",
ownerPhone: "",
ownerIdCard: "",
riskyFlag: "",
residentTag: "",
},
orgOptions: [],
peopleTypeList: [],
riskHomeList: [
{
label: "风险",
value: "1",
},
{
label: "无风险",
value: "0",
},
],
flexWidth: 0,
loading: false,
homeMsg: {},
list: [],
homeText: "",
buildingList: [],
houseMountArr: [],
houseMountArr: [
// [
// { doorName: 101, riskyNum: 0, importanceNum: 0, rentFlag: "0" },
// { doorName: 102, riskyNum: 1, importanceNum: 0, rentFlag: "0" },
// { doorName: 103, riskyNum: 0, importanceNum: 1, rentFlag: "0" },
// { doorName: 104, riskyNum: 0, importanceNum: 0, rentFlag: "2" },
// ],
],
};
},
watch: {
// "$route.query.buIding": {
// handler(val) {
// if (val) {
// this.getList(val);
// }
// },
// immediate: true,
// },
// "$route.query.typeB": {
// handler(val) {
// console.log("jhjkbhkjhkjhkjhkjhkj");
// if (val) {
// this.getList();
// }
// },
// immediate: true,
// },
},
watch: {},
mounted() {
const buId = this.$route.query.buId || null;
this.getList(buId);
// this.getTableData(this.$route.query.id);
this.getPeopleTypeList();
},
methods: {
getDoorNameList(list) {
@ -166,8 +227,20 @@ export default {
return doorNameList;
},
getPeopleTypeList() {
this.$http
.post("sys/dict/data/dictlist", {
dictType: "resident_category",
})
.then((res) => {
const { code, data } = res.data;
if (code === 0) {
this.peopleTypeList = data;
}
});
},
getUnitList(id) {
this.loading = true;
this.$http.get(`/actual/base/streetOverview/getUnitHouseList?unitId=` + id).then((res) => {
const {
code,
@ -175,13 +248,27 @@ export default {
} = res.data;
if (code === 0) {
let unitInfos = unitInfo || {};
this.list = houseList;
this.homeMsg = unitInfos;
this.homeText = (unitInfos.quartersName ? unitInfos.quartersName : "") + (unitInfos.buildingName ? unitInfos.buildingName : "") + (unitInfos.unitNum ? unitInfos.unitNum + "单元" : "");
this.houseMountArr = this.getDoorNameList(this.list);
this.houseMountArr = this.getDoorNameList(houseList);
if (this.houseMountArr.length > 0) {
this.flexWidth = this.houseMountArr[0].length * 58;
}
}
});
},
getTableData(id) {
this.queryParams.unitId = id;
this.loading = true;
this.$http.get("/actual/base/streetOverview/getUnitHouseOverviewList?" + this.$paramsFormat(this.queryParams)).then((res) => {
const {
code,
data: { list, total },
} = res.data;
if (code === 0) {
this.list = list;
this.total = total;
this.loading = false;
} else {
this.loading = false;
@ -189,6 +276,11 @@ export default {
});
},
search() {
this.queryParams.pageNo = 1;
this.getTableData();
},
getList(buid) {
const homeType = this.$route.query.typeB;
if (homeType === "building") {
@ -201,10 +293,10 @@ export default {
if (this.buildingList && this.buildingList.length > 0) {
if (buid) {
this.buildingList.forEach((item, i) => {
console.log(item);
if (item.id === buid) {
item.ifActive = true;
this.getUnitList(item.id);
this.getTableData(item.id);
} else {
item.ifActive = false;
}
@ -214,6 +306,7 @@ export default {
if (i === 0) {
item.ifActive = true;
this.getUnitList(item.id);
this.getTableData(item.id);
} else {
item.ifActive = false;
}
@ -227,6 +320,7 @@ export default {
});
} else {
this.getUnitList(this.$route.query.id);
this.getTableData(this.$route.query.id);
}
},
@ -256,6 +350,7 @@ export default {
if (item.id === d.id) {
d.ifActive = true;
this.getUnitList(item.id);
this.getTableData(item.id);
} else {
d.ifActive = false;
}
@ -295,6 +390,22 @@ export default {
cursor: pointer;
}
@mixin homeCommon {
height: 58px;
background-size: 100% 100%;
display: flex;
flex: 0 0 48px;
align-items: center;
justify-content: center;
font-size: 14px;
font-family: PingFang SC;
font-weight: 500;
color: #fff;
&:not(:last-child) {
margin-right: 10px;
}
}
.top-nav-list {
display: flex;
margin-bottom: 16px;
@ -327,7 +438,7 @@ export default {
display: flex;
align-items: flex-end;
justify-content: center;
margin-top: 100px;
margin-top: 60px;
.apar_comtent {
display: flex;
@ -338,10 +449,9 @@ export default {
.apar_center {
min-width: 244px;
max-width: 488px;
height: 584px;
height: 578px;
overflow: auto;
background: url("@/assets/images/home/homeCenter.png") no-repeat;
background-size: 100% 100%;
background: #caab93;
padding: 30px 30px 10px 30px;
display: flex;
// align-items: flex-end;
@ -362,26 +472,34 @@ export default {
margin-bottom: 20px;
.households {
height: 58px;
@include homeCommon;
background: url("@/assets/images/home/hasPeople.png") no-repeat;
background-size: 100% 100%;
display: flex;
flex: 0 0 48px;
align-items: center;
justify-content: center;
font-size: 14px;
font-family: PingFang SC;
font-weight: 500;
color: #7fceff;
&:not(:last-child) {
margin-right: 10px;
}
}
.dangerHome,
.dangerPeople {
@include homeCommon;
background: url("@/assets/images/home/dangerHomeBg.png") no-repeat;
}
.freeHome {
@include homeCommon;
background: url("@/assets/images/home/freeHome.png") no-repeat;
}
}
}
.dangerClass {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
div:first-child {
margin-bottom: 5px;
font-weight: bold;
}
}
.apar_bottom {
width: 244px;
width: 100%;
margin-top: -1px;
img {
@ -390,9 +508,9 @@ export default {
}
}
.apar_right {
margin-left: -3px;
}
// .apar_right {
// margin-left: -3px;
// }
}
.more {
@ -427,5 +545,39 @@ export default {
color: yellow;
}
}
.mount {
margin-top: 25px;
}
.screen {
margin: 5px 0 40px;
.el-select,
.el-input {
width: 150px;
margin-right: 4px;
border: 1px solid #126ac5;
border-radius: 2px;
/deep/ .el-input__inner {
background: none;
border: none;
color: #fff;
}
}
.searchSelect {
width: 200px;
/deep/ .el-select__tags {
width: 200px !important;
max-width: 200px !important;
}
}
.btn {
margin-left: 46px;
height: 32px;
}
}
}
</style>

2
src/views/dataBoard/cpts/personnel/modules/businessTables/complaint.vue

@ -17,7 +17,7 @@
<img width="268px" height="128px" src="~@/assets/images/overview/zanwu.png" />
<div style="color: #fff">暂无数据</div>
</div>
<eventDetails :showDialog="showDialog" :id="this.rowId" @close="close" />
<eventDetails :showDialog="showDialog" :id="rowId" @close="close" />
<Pagination
v-show="total > 0"
:total="total"

24
src/views/dataBoard/cpts/personnel/modules/businessTables/economize.vue

@ -1,6 +1,11 @@
<template>
<div class="table">
<el-table v-if="list.length > 0" :data="list" max-height="363px" height="363px">
<el-table
v-if="list.length > 0"
:data="list"
max-height="363px"
height="363px"
>
<el-table-column label="序号" type="index" width="80" />
<el-table-column label="不满意事项类型" prop="scope" width="190" />
<el-table-column label="不满意事项描述" prop="problemDesc" width="" />
@ -12,20 +17,27 @@
</template>
</el-table-column>
</el-table>
<div v-else style="width: 100%; height: 100%; text-align: center; padding-top: 120px">
<img width="268px" height="128px" src="~@/assets/images/overview/zanwu.png" />
<div
v-else
style="width: 100%; height: 100%; text-align: center; padding-top: 120px"
>
<img
width="268px"
height="128px"
src="~@/assets/images/overview/zanwu.png"
/>
<div style="color: #fff">暂无数据</div>
</div>
<smyd :showDialog="showDialog" :id="rowId" @close="close" />
<Smyd :showDialog="showDialog" :id="rowId" @close="close" />
</div>
</template>
<script>
import smyd from "@/views/dataBoard/cpts/details/smyd.vue";
import Smyd from "@/views/dataBoard/cpts/details/smyd.vue";
export default {
name: "economize",
components: {
smyd,
Smyd,
},
data() {
return {

2073
src/views/dataBoard/cpts/resi-details.vue

File diff suppressed because it is too large

2
src/views/dataBoard/overview/components/jdwgy.vue

@ -126,9 +126,11 @@ export default {
getData() {
this.loading = true;
if (this.currentLevelData.orgLevel == "grid") {
this.$store.dispatch("chooseArea/chooseLoading", true);
const personType = this.ifUnit && this.peopleType === "unit" ? "unit" : this.peopleType;
this.$http.get("/actual/base/streetOverview/queryPersonnelGridGroup?personnelType=" + personType + "&level=" + this.currentLevelData.orgLevel + "&orgId=" + this.currentLevelData.orgId).then(({ data: { data } }) => {
this.loading = false;
this.$store.dispatch("chooseArea/chooseLoading", false);
this.wglist = data;
this.$emit(
"setPoint",

1
src/views/dataBoard/renfang/cpts/fwgl.vue

@ -261,7 +261,6 @@ export default {
// pieChart
this.pieOption = pieOption();
const {pandectData} = this
console.log(pandectData);
//
this.pieOption.title.text =
(pandectData.homeCount != 0

32
src/views/dataBoard/renfang/cpts/jmgl.vue

@ -7,6 +7,7 @@
class=""
@myChartMethod="pieInitOk"
ref="pieChart"
v-if="pandectData.totalResidents"
></screen-echarts-frame>
</div>
<div class="pie-legend">
@ -31,7 +32,7 @@
<div class="title">居民总数</div>
</div>
<div class="item-two">
<div class="num">{{ info.resident_count }}</div>
<div class="num">{{ pandectData.totalResidents }}</div>
<div class="unit"></div>
</div>
</div>
@ -50,7 +51,7 @@
</div>
<div class="item-two">
<div class="num">
{{ info.inhabitant_count }}
{{ pandectData.permanentResiCount }}
</div>
<div class="unit"></div>
</div>
@ -70,7 +71,7 @@
<div class="title">流动人口</div>
</div>
<div class="item-two">
<div class="num">{{ info.floating_count }}</div>
<div class="num">{{ pandectData.floatingResiCount }}</div>
<div class="unit"></div>
</div>
</div>
@ -145,6 +146,7 @@ export default {
inhabitant_count: 0,
floating_count: 0,
},
pandectData:{}
};
},
watch: {
@ -153,7 +155,9 @@ export default {
},
},
mounted() {
this.getData();
this.$nextTick(()=>{
this.getData();
})
},
methods: {
toListPage(type = "", type_name = "") {
@ -233,21 +237,19 @@ export default {
async iniPieChart() {
this.$refs.pieChart.clear();
// this.$refs.pieChart.showLoading()
// pieChart
this.pieOption = pieOption();
const { info } = this;
const { pandectData } = this;
//
this.pieOption.title.text =
(info.resident_count != 0
(pandectData.totalResidents != 0
? parseInt(
(100 * info.inhabitant_count) / info.resident_count
(100 * pandectData.permanentResiCount) / pandectData.totalResidents
)
: "--") + "%";
this.pieData = [
{ value: info.inhabitant_count, name: "常住人口" },
{ value: info.floating_count, name: "流动人口" },
{ value: pandectData.permanentResiCount, name: "常住人口" },
{ value: pandectData.floatingResiCount, name: "流动人口" },
];
this.pieOption.series[0].data = this.pieData;
this.$refs.pieChart.setOption(this.pieOption);
@ -260,14 +262,14 @@ export default {
fromActionPayload: { dataIndexInside },
} = params;
this.pieOption.title.text =
(info.resident_count != 0
(pandectData.totalResidents != 0
? parseInt(
(100 *
[
info.inhabitant_count,
info.floating_count,
pandectData.permanentResiCount,
pandectData.floatingResiCount,
][dataIndexInside]) /
info.resident_count
pandectData.totalResidents
)
: "--") + "%";
this.$refs.pieChart.myChart.setOption(this.pieOption);

5
src/views/dataBoard/renfang/index.vue

@ -17,7 +17,7 @@
</div>
<div class="m-subbox">
<fwgl ref="fwgl" :orgId="orgData.org_id" :pandectData="pandectData"></fwgl>
<fwgl ref="fwgl" :orgId="orgData.org_id"></fwgl>
</div>
</div>
@ -31,7 +31,7 @@
</div>
<div class="m-subbox">
<jmgl :orgId="orgData.org_id" :pandectData="pandectData"></jmgl>
<jmgl :orgId="orgData.org_id" ref="jmgl"></jmgl>
</div>
</div>
</div>
@ -553,6 +553,7 @@ export default {
if (data) {
this.$nextTick(()=>{
this.$refs['fwgl'].pandectData = data
this.$refs['jmgl'].pandectData = data
}
)
}

2
src/views/dataBoard/satisfactionEval/dissatisfied/index.vue

@ -91,7 +91,7 @@ import Pagination from "@/views/dataBoard/satisfactionEval/components/Pagination
import DissatisfiedDetail from "./detail.vue";
export default {
name: "dissatisfied",
name: "dissatisfiedPage",
components: { Breadcrumb, DissatisfiedDetail, Pagination },
data() {
return {

40
src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/index.vue

@ -1,19 +1,14 @@
<template>
<div>
<Breadcrumb :list="breadcrumbList"/>
<Breadcrumb :list="breadcrumbList" />
<!-- <div class="main-title">
<Title :text="`“${title}”画像匹配同类潜在不满意人员 `" noBg/>
</div>-->
<div class="table">
<el-table :data="list"
v-loading="loading"
element-loading-text="加载中..."
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0,0,0,0.5)"
>
<el-table-column label="序号" type="index" width="80"/>
<el-table :data="list" v-loading="loading" element-loading-text="加载中..." element-loading-spinner="el-icon-loading" element-loading-background="rgba(0,0,0,0.5)">
<el-table-column label="序号" type="index" width="80" />
<el-table-column prop="gridName" width="118" label="所属组织"/>
<el-table-column prop="gridName" width="118" label="所属组织" />
<el-table-column prop="restName" label="姓名"></el-table-column>
@ -23,7 +18,7 @@
</template>
</el-table-column>
<el-table-column prop="categoryNames" label="人员性质"/>
<el-table-column prop="categoryNames" label="人员性质" />
<el-table-column prop="gender" label="性别">
<template slot-scope="{ row }">
@ -31,13 +26,13 @@
</template>
</el-table-column>
<el-table-column prop="age" label="年龄"/>
<el-table-column prop="age" label="年龄" />
<el-table-column prop="cultureName" label="学历"/>
<el-table-column prop="cultureName" label="学历" />
<el-table-column prop="marriageName" label="婚姻"/>
<el-table-column prop="marriageName" label="婚姻" />
<el-table-column prop="monthIncomeLevel" label="月收入"/>
<el-table-column prop="monthIncomeLevel" label="月收入" />
<el-table-column label="详情" width="90" align="center">
<template slot-scope="data">
@ -47,8 +42,7 @@
</el-table>
</div>
<Pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
@pagination="getList"/>
<Pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" @pagination="getList" />
</div>
</template>
@ -59,7 +53,7 @@ import Title from "@/views/dataBoard/satisfactionEval/components/Title";
export default {
name: "dissatisfied",
components: {Breadcrumb, Pagination, Title},
components: { Breadcrumb, Pagination, Title },
data() {
return {
queryParams: {
@ -78,11 +72,11 @@ export default {
},
],
monthOptions: new Array(12).fill(0).map((_, index) => {
return {label: index - 0 + 1 + "月", value: index - 0 + 1};
return { label: index - 0 + 1 + "月", value: index - 0 + 1 };
}),
list: [],
title: "",
loading: true
loading: true,
};
},
activated() {
@ -97,14 +91,14 @@ export default {
},
methods: {
getList() {
this.loading = true
this.$http.get("/governance/satisfactionOverview/satisfactionCrowdList?" + this.$paramsFormat(this.queryParams)).then(({data: {data}}) => {
this.loading = true;
this.$http.get("/governance/satisfactionOverview/satisfactionCrowdList?" + this.$paramsFormat(this.queryParams)).then(({ data: { data } }) => {
this.list = data.list;
this.total = data.total;
this.loading = false
this.loading = false;
});
},
handleView({restName, restId}) {
handleView({ restName, restId }) {
this.$router.push("/dataBoard/satisfactionEval/dissatisfiedPersonnel/detail?name=" + restName + "&user_id=" + restId);
},
},

24
src/views/dataBoard/satisfactionEval/modules/PotentialPeople/index.vue

@ -26,7 +26,12 @@
事件未解决 <br />
上报人数
</div>
<div class="num"><span style="margin-right: 4px;" class="orange">{{ unSolvedNum ? unSolvedNum : 0 }}</span></div>
<div class="num">
<span style="margin-right: 4px" class="orange">{{
unSolvedNum ? unSolvedNum : 0
}}</span
>
</div>
</div>
<div
class="potential-people-item"
@ -48,7 +53,12 @@
需求未满足 <br />
人数
</div>
<div class="num"><span style="margin-right: 4px" class="green">{{ unFinishNum ? unFinishNum : 0 }}</span></div>
<div class="num">
<span style="margin-right: 4px" class="green">{{
unFinishNum ? unFinishNum : 0
}}</span
>
</div>
</div>
<div
class="potential-people-item"
@ -70,7 +80,12 @@
应享未享 <br />
服务人数
</div>
<div class="num"><span style="margin-right: 4px" class="light">{{ noServiceNum ? noServiceNum : 0 }}</span></div>
<div class="num">
<span style="margin-right: 4px" class="light">{{
noServiceNum ? noServiceNum : 0
}}</span
>
</div>
</div>
</div>
</template>
@ -174,7 +189,8 @@ export default {
.imgIcon {
width: 30px;
height: 30px;
margin-top: -100px;
position: relative;
top: -58px;
}
.imgBg {
display: block;

2
src/views/dataBoardMain/main-content.vue

@ -5,7 +5,7 @@
<template v-if="tabIsIframe($router.currentRoute.meta.iframeURL)">
<iframe :src="$router.currentRoute.meta.iframeURL + '?token=' + token + '&customerId=' + customerId" ref="iframe" class="m-iframe" id="iframe" width="100%" height="100%" frameborder="0" scrolling="yes" :style="{ height: $store.state.fixed1920.height - 100 + 'px' }" />
</template>
<keep-alive v-show="!tabIsIframe($router.currentRoute.meta.iframeURL)" :exclude="['homeDetails', 'dissatisfied']">
<keep-alive v-show="!tabIsIframe($router.currentRoute.meta.iframeURL)" :exclude="['homeDetails', 'dissatisfiedPage', 'Microgrid']">
<router-view ref="reloadPage" @changeCustomerName="changeCustomerName" />
</keep-alive>
</template>

103
src/views/modules/base/organization/organization.vue

@ -225,7 +225,8 @@
<el-table v-show="gridStaffTableFlag"
:data="gridStaffTableListData"
style="width: 100%"
height="350">
height="350"
>
<el-table-column prop="name"
label="网格工作人员名字"
width="260"></el-table-column>
@ -245,10 +246,19 @@
class-name="small-padding fixed-width">
<template slot="header"
slot-scope="scope">
<el-button size="mini"
<!-- <el-button size="mini"
type="primary"
icon="el-icon-plus"
@click="addGridPeo(scope.row)">新增</el-button>
@click="addGridPeo(scope.row)">新增</el-button> -->
<el-dropdown @command="handleCommand">
<el-button type="primary" >
新增 <i class="el-icon-arrow-down el-icon--right"></i>
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="newAdd" >新添加</el-dropdown-item>
<el-dropdown-item command="fromOrg">从组织添加</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
<template slot-scope="scope">
<el-button size="mini"
@ -488,7 +498,37 @@
</div>
</el-dialog>
</div>
<div v-if="dialogVisiblePeoAgency">
<el-dialog title="新增人员ccccc"
:visible.sync="dialogVisiblePeoAgency"
width="850"
>
<el-form :model="peoFormAgency"
label-width="120px"
ref="addPeoAgencyForm"
:rules="rulesAgencyPeo">
<el-form-item label="工作人员" prop="selectedList">
<el-select v-model="peoFormAgency.selectedList"
multiple
placeholder="请选择"
>
<el-option v-for="item in agencyStaffTableListData"
:key="item.staffId"
:value="item.staffId"
:label="item.name"
>
</el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer">
<el-button @click="cancelPeoAgency"> </el-button>
<el-button type="primary"
@click="submitPeoAgency"> </el-button>
</div>
</el-dialog>
</div>
<!-- 人员修改 -->
<el-dialog v-if="modifyPeo"
title="人员修改"
@ -1293,7 +1333,16 @@ export default {
label: 'agencyName',
children: 'subAgencyList',
checkStrictly: true
}
},
dialogVisiblePeoAgency:false,//
peoFormAgency:{
gridId:"",
selectedList:[]
},
rulesAgencyPeo:{
selectedList:[{required:true,message:"请选择人员",trigger:"blur"}]
},
tableKey:""
};
},
created () {
@ -1761,6 +1810,9 @@ export default {
disableFlag: "",
newRoles: [],
};
this.peoFormAgency = {
selectedList:[]
}
},
//
GridFormRest () {
@ -1978,11 +2030,16 @@ export default {
},
//
async addGridPeo () {
async addGridPeo (command) {
if (command === 'newAdd') {
this.dialogVisiblePeo = true;
this.peoForm.orgType = "grid";
} else if (command === 'fromOrg') {
await this.getAgencyStaffListData()
console.log(this.agencyStaffTableListData);
this.peoForm.orgType = "grid";
this.dialogVisiblePeoAgency = true;
}
},
//
async xiuGridPeo (row) {
@ -2625,7 +2682,6 @@ export default {
// id
async getGridDetailsById () {
const url = "/gov/org/grid/griddetail";
let params = {
gridId: this.judgeOrgInfoLevel.id,
};
@ -2816,6 +2872,37 @@ export default {
this.longitude = lonlat[0];
// this.formData.address = selPosition.address + selPosition.name;
},
handleCommand(command) {
this.addGridPeo(command);
},
cancelPeoAgency(){
this.dialogVisiblePeoAgency = false
this.peoFormAgency.selectedList = []; //
},
submitPeoAgency(){
this.$refs["addPeoAgencyForm"].validate((valid, err) => {
if (valid) {
this.submitPeoAgencyDo();
} else {
app.util.validateRule(err);
return console.log("error submit!!", valid, err);
}
});
},
async submitPeoAgencyDo(){
let url = "/gov/org/grid/addgridstaffs"
this.peoFormAgency.gridId = this.currentGridOrgId
const {data,code,msg} = await requestPost(url,this.peoFormAgency)
if(code == 0){
this.$message.success('添加成功')
this.dialogVisiblePeoAgency = false
this.getGridStaffListData();
this.peoFormAgency.selectedList = []
} else{
this.$message.err(msg)
}
},
},
};
</script>

232
src/views/modules/home/index.vue

@ -9,43 +9,27 @@
</div>
<div class="tabs">
<div :class="{ 'z-on': searchData.type == 'jumin' }"
@click="searchDataTab('jumin')">
查居民
</div>
<div :class="{ 'z-on': searchData.type == 'fangwu' }"
@click="searchDataTab('fangwu')">
查房屋
</div>
<div :class="{ 'z-on': searchData.type == 'jumin' }" @click="searchDataTab('jumin')">查居民</div>
<div :class="{ 'z-on': searchData.type == 'fangwu' }" @click="searchDataTab('fangwu')">查房屋</div>
</div>
<div class="search">
<div class="search-input">
<div class="input">
<input type="text"
:placeholder="typePlaceholder[searchData.type]
"
v-model="searchData.searchKey"
@keyup.enter="handleClickSearchBtn"/>
<div class="close-btn"
v-if="searchData.searchKey != ''"
@click="searchData.searchKey = ''">
<img src="@/assets/img/shequ/close.png"/>
<input type="text" :placeholder="typePlaceholder[searchData.type]" v-model="searchData.searchKey" @keyup.enter="handleClickSearchBtn" />
<div class="close-btn" v-if="searchData.searchKey != ''" @click="searchData.searchKey = ''">
<img src="@/assets/img/shequ/close.png" />
</div>
</div>
<div class="btn"
@click="handleClickSearchBtn">
查一下
</div>
<div class="btn" @click="handleClickSearchBtn">查一下</div>
</div>
</div>
</div>
</div>
<div class=" m-pan m-box">
<div class="m-pan m-box">
<div class="header">
<img src="@/assets/images/index/title-icon-sqzl.png"/>
<img src="@/assets/images/index/title-icon-sqzl.png" />
<span>组织总览</span>
</div>
<div class="flex_box">
@ -74,51 +58,34 @@
</p>
<div class="subtitle">
<img src="@/assets/images/index/i-fxjg.png"/>
<img src="@/assets/images/index/i-fxjg.png" />
<span>分析结果</span>
</div>
<p class="hint"
v-if="resiCategory.list.length > 0">
<p class="hint" v-if="resiCategory.list.length > 0">
根据数据分析结果建议重点关注
<b>{{ resiCategory.list[0].name }}{{
resiCategory.list[1].name
}}{{ resiCategory.list[2].name }}</b>
<b>{{ resiCategory.list[0].name }}{{ resiCategory.list[1].name }}{{ resiCategory.list[2].name }}</b>
三类群体开展相关的社区服务和活动
</p>
</div>
<el-tabs v-model="activeName"
style="width: calc(100% - 240px - 40px);margin-left: auto;">
<el-tab-pane label="居民分类统计"
name="resi">
<el-tabs v-model="activeName" style="width: calc(100% - 240px - 40px); margin-left: auto">
<el-tab-pane label="居民分类统计" name="resi">
<div class="cnt-right">
<div class="list">
<div class="item"
@click="handleClickCategory(item)"
:key="item.code"
v-for="(
item, index
) in resiCategory.list">
<div>
{{
("0" + (index + 1)).substr(-2)
}}.
</div>
<div class="item" @click="handleClickCategory(item)" :key="item.code" v-for="(item, index) in resiCategory.list">
<div>{{ ("0" + (index + 1)).substr(-2) }}.</div>
<div class="item-name">
{{ item.name }}
</div>
<div class="item-div"></div>
<div class="item-count">
{{ item.count }}
</div>
<div class="item-count">{{ item.count }}</div>
<div class="item-progress">
<b :style="{
width: item.per + '%',
}"></b>
</div>
<div class="item-per">
{{ item.per }} %
<b
:style="{
width: item.per + '%',
}"></b>
</div>
<div class="item-per">{{ item.per }} %</div>
</div>
</div>
</div>
@ -127,31 +94,20 @@
name="zhineng">
<div class="cnt-right">
<div class="list">
<div class="item"
:key="item.code"
v-for="(
item, index
) in znycCategory.list">
<div>
{{
("0" + (index + 1)).substr(-2)
}}.
</div>
<div class="item" :key="item.code" v-for="(item, index) in znycCategory.list">
<div>{{ ("0" + (index + 1)).substr(-2) }}.</div>
<div class="item-name">
{{ item.name }}
</div>
<div class="item-div"></div>
<div class="item-count">
{{ item.count }}
</div>
<div class="item-count">{{ item.count }}</div>
<div class="item-progress">
<b :style="{
width: item.per + '%',
}"></b>
</div>
<div class="item-per">
{{ item.per }} %
<b
:style="{
width: item.per + '%',
}"></b>
</div>
<div class="item-per">{{ item.per }} %</div>
</div>
</div>
</div>
@ -164,23 +120,15 @@
<div class="g-row-right">
<div class="m-box m-tx">
<div class="header">
<img src="@/assets/images/index/title-icon-zntx.png"/>
<img src="@/assets/images/index/title-icon-zntx.png" />
<span>智能提醒</span>
</div>
<div class="more"
@click="toNoticePage">更多>
</div>
<div class="cnt"
v-if="noticeData.length > 0">
<div @click="handleClickNotice(item)"
class="item"
:key="'notice' + item.targetId + index"
v-for="(item, index) in noticeData">
<div class="more" @click="toNoticePage">更多></div>
<div class="cnt" v-if="noticeData.length > 0">
<div @click="handleClickNotice(item)" class="item" :key="'notice' + item.targetId + index" v-for="(item, index) in noticeData">
<div class="item_left">
<i class="i-tag"
v-if="item.readFlag == 1">已读</i>
<i class="i-tag"
v-else>未读</i>
<i class="i-tag" v-if="item.readFlag == 1">已读</i>
<i class="i-tag" v-else>未读</i>
</div>
<div class="item_right">
<div class="item-date">
@ -193,10 +141,9 @@
</div>
</div>
<div class="cnt"
v-else>
<div class="cnt" v-else>
<div class="empty">
<img src="~@/assets/images/shuju/renfang/index/empty.png"/>
<img src="~@/assets/images/shuju/renfang/index/empty.png" />
<span>暂无提醒</span>
</div>
</div>
@ -204,31 +151,30 @@
<div class="m-box m-tb">
<div class="wrap">
<div class="header">
<img src="@/assets/images/index/title-icon-zntb.png"/>
<img src="@/assets/images/index/title-icon-zntb.png" />
<span>不满意事项月度趋势分析</span>
</div>
</div>
<!-- <div class="more">更多></div> -->
<div class="cnt">
<div id="my_chart"
style="width: 100%;height: 230px; position: relative;top:-10px"></div>
<div id="my_chart" style="width: 100%; height: 230px; position: relative; top: -10px"></div>
</div>
</div>
</div>
</div>
<fastcall ref="fastcall"/>
<fastcall ref="fastcall" />
</div>
</template>
<script>
import {requestPost, requestGet} from "@/js/dai/request";
import { requestPost, requestGet } from "@/js/dai/request";
import resiCategoryMap from "@/views/business/resi-category-map.js";
import {mapGetters} from "vuex";
import { mapGetters } from "vuex";
import nextTick from "dai-js/tools/nextTick";
import fastcall from "@/views/modules/cpts/fastcall";
import * as echarts from 'echarts';
import * as echarts from "echarts";
export default {
components: {fastcall},
components: { fastcall },
data() {
return {
@ -272,7 +218,7 @@ export default {
noticeData: [],
activeName: 'resi',
activeName: "resi",
myChart: {},
agencyLevel:'',
@ -314,31 +260,31 @@ export default {
},
methods: {
initChart() {
this.$http.get('/governance/satisfactionOverview/notSatisfactionTrend').then(({data: {data}}) => {
this.myChart = echarts.init(document.getElementById('my_chart'));
this.$http.get("/governance/satisfactionOverview/notSatisfactionTrend").then(({ data: { data } }) => {
this.myChart = echarts.init(document.getElementById("my_chart"));
let series = data.series.map((item, index) => {
return {
...item,
type: 'line',
}
})
type: "line",
};
});
let option = {
tooltip: {
trigger: 'axis'
trigger: "axis",
},
legend: {
data: data.series.map(item => item.name),
bottom: '10%',
icon: 'rect',
data: data.series.map((item) => item.name),
bottom: "10%",
icon: "rect",
itemWidth: 20,
itemHeight: 5,
itemGap: 20,
},
grid: {
left: '3%',
right: '4%',
bottom: '25%',
containLabel: true
left: "3%",
right: "4%",
bottom: "25%",
containLabel: true,
},
toolbox: {
// feature: {
@ -346,19 +292,18 @@ export default {
// }
},
xAxis: {
type: 'category',
type: "category",
boundaryGap: false,
data: data.monthTimes.map(item => this.$moment(item).format('M') + '月')
data: data.monthTimes.map((item) => this.$moment(item).format("M") + "月"),
},
yAxis: {
type: 'value'
type: "value",
},
series
}
this.myChart.setOption(option, true)
window.addEventListener('resize', this.handleWindowResize);
})
series,
};
this.myChart.setOption(option, true);
window.addEventListener("resize", this.handleWindowResize);
});
},
handleWindowResize() {
if (this.myChart) {
@ -372,24 +317,23 @@ export default {
this.$router.push({
name: "base-resi",
params: {
category: item.code
}
category: item.code,
},
});
},
async readClearOne(item) {
console.log("item", item)
const url = `/message/intelligentMessage/msg/clearOne/?msgId=${item.id}`
const {data, code, msg} = await requestPost(url)
console.log("item", item);
const url = `/message/intelligentMessage/msg/clearOne/?msgId=${item.id}`;
const { data, code, msg } = await requestPost(url);
if (code == 0) {
this.getNoticeData()
this.getNoticeData();
} else if (code >= 8000) {
this.$message.error(msg)
this.$message.error(msg);
}
},
handleClickNotice(item) {
const {msgType, targetId} = item;
this.readClearOne(item)
const { msgType, targetId } = item;
this.readClearOne(item);
if (msgType == "community_house") {
this.$refs.fastcall.showHouseInfo(targetId);
} else if (msgType == "resident_base_info") {
@ -405,19 +349,19 @@ export default {
toSearchPage(type, searchKey) {
this.$router.push({
path: "/main/shequ-chaxun"
path: "/main/shequ-chaxun",
});
localStorage.setItem('homeSearchType', type)
localStorage.setItem('homeSearchKey', searchKey)
localStorage.setItem("homeSearchType", type);
localStorage.setItem("homeSearchKey", searchKey);
},
handleClickSearchBtn(str) {
const {
searchData: {type, searchKey},
searchData: { type, searchKey },
} = this;
if (str) {
this.toSearchPage(type, searchKey);
return
return;
}
if (!searchKey) return this.$message.error("请输入搜索条件");
this.toSearchPage(type, searchKey);
@ -439,7 +383,7 @@ export default {
level: "",
};
const {data, code, msg} = await requestPost(url, params);
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.orgData = data;
@ -456,7 +400,7 @@ export default {
// level: "",
};
const {data, code, msg} = await requestGet(url, params);
const { data, code, msg } = await requestGet(url, params);
if (code === 0) {
if (data) {
@ -474,7 +418,7 @@ export default {
last: "10",
};
const {data, code, msg} = await requestGet(url, params);
const { data, code, msg } = await requestGet(url, params);
if (code === 0) {
if (data) {
@ -494,7 +438,7 @@ export default {
};
this.resiCategory.loading = true;
const {data, code, msg} = await requestGet(url, params);
const { data, code, msg } = await requestGet(url, params);
this.resiCategory.loading = false;
if (code === 0) {
@ -505,9 +449,7 @@ export default {
code: item.categoryName,
name: resiCategoryMap[item.categoryName] || "",
count: item.categoryCount,
per: parseInt(
(100 * item.categoryCount) / data.resiCount
),
per: ((100 * item.categoryCount) / data.resiCount).toFixed(0),
const: "const",
};
});
@ -526,7 +468,7 @@ export default {
};
this.znycCategory.loading = true;
const {data, code, msg} = await requestGet(url, params);
const { data, code, msg } = await requestGet(url, params);
this.znycCategory.loading = false;
if (code === 0) {

Loading…
Cancel
Save