Browse Source

Merge branch 'jw_feature_dev' into dev

V1.0
mk 2 years ago
parent
commit
f49b4db1d9
  1. BIN
      src/assets/images/gailan/tag_blue.png
  2. BIN
      src/assets/images/gailan/tag_orange.png
  3. BIN
      src/assets/images/gailan/yuan_bg.png
  4. BIN
      src/assets/images/gailan/zq_bg.png
  5. 6
      src/assets/scss/dataBoard/overview/index.scss
  6. 3
      src/components/GridTree/nodeWrap.vue
  7. 4
      src/components/Tree/nodeWrap.vue
  8. 5
      src/main.js
  9. 16
      src/router/index.js
  10. 10
      src/utils/jwTool.js
  11. 187
      src/views/dataBoard/cpts/map/index.vue
  12. 0
      src/views/dataBoard/cpts/personnel/components/Breadcrumb/index.vue
  13. 0
      src/views/dataBoard/cpts/personnel/components/Pagination/index.vue
  14. 0
      src/views/dataBoard/cpts/personnel/components/Tabs/index.vue
  15. 0
      src/views/dataBoard/cpts/personnel/components/Title/index.vue
  16. 50
      src/views/dataBoard/cpts/personnel/index.vue
  17. 160
      src/views/dataBoard/cpts/personnel/modules/BusinessRecords.vue
  18. 213
      src/views/dataBoard/cpts/personnel/modules/EnjoyService.vue
  19. 113
      src/views/dataBoard/cpts/personnel/modules/Family.vue
  20. 62
      src/views/dataBoard/cpts/personnel/modules/MatterDetails.vue
  21. 67
      src/views/dataBoard/cpts/personnel/modules/PointsRecord.vue
  22. 120
      src/views/dataBoard/cpts/personnel/modules/businessTables/community.vue
  23. 127
      src/views/dataBoard/cpts/personnel/modules/businessTables/complaint.vue
  24. 105
      src/views/dataBoard/cpts/personnel/modules/businessTables/economize.vue
  25. 109
      src/views/dataBoard/cpts/personnel/modules/businessTables/give-service.vue
  26. 125
      src/views/dataBoard/cpts/personnel/modules/businessTables/reporting-events.vue
  27. 112
      src/views/dataBoard/cpts/personnel/modules/businessTables/resident.vue
  28. 2
      src/views/dataBoard/cpts/resi-details.vue
  29. 26
      src/views/dataBoard/organizational/dangTree/index.vue
  30. 26
      src/views/dataBoard/organizational/gridTree/index.vue
  31. 26
      src/views/dataBoard/organizational/jwTree/index.vue
  32. 2
      src/views/dataBoard/organizational/microgrid/components/popDetails.vue
  33. 38
      src/views/dataBoard/organizational/microgrid/components/reportAnEvent.vue
  34. 88
      src/views/dataBoard/organizational/microgrid/index.vue
  35. 0
      src/views/dataBoard/organizational/personalPage/index.vue
  36. 128
      src/views/dataBoard/organizational/personnel/modules/BusinessRecords.vue
  37. 188
      src/views/dataBoard/organizational/personnel/modules/EnjoyService.vue
  38. 76
      src/views/dataBoard/organizational/personnel/modules/Family.vue
  39. 51
      src/views/dataBoard/organizational/personnel/modules/PointsRecord.vue
  40. 148
      src/views/dataBoard/overview/components/CommunityResult.vue
  41. 103
      src/views/dataBoard/overview/components/DynamicHumanRoomData.vue
  42. 194
      src/views/dataBoard/overview/components/EventAndFollowUp.vue
  43. 99
      src/views/dataBoard/overview/components/RankingGridData.vue
  44. 45
      src/views/dataBoard/overview/components/jdjs.vue
  45. 114
      src/views/dataBoard/overview/components/jdtphx.vue
  46. 4
      src/views/dataBoard/overview/components/map-top.vue
  47. 78
      src/views/dataBoard/overview/components/rfsjtj.vue
  48. 89
      src/views/dataBoard/overview/components/sq12345.vue
  49. 89
      src/views/dataBoard/overview/components/sqrfph.vue
  50. 273
      src/views/dataBoard/overview/index.vue
  51. 15
      src/views/dataBoard/renfang/index.vue
  52. 484
      src/views/dataBoard/renfang/resi/analyze.vue
  53. 38
      src/views/dataBoard/renfang/resi/class.vue
  54. 93
      src/views/dataBoard/renfang/resident/index.vue
  55. 1
      src/views/dataBoard/renfang/visualizing/components/dataTitle.vue
  56. 5
      src/views/dataBoard/renfang/visualizing/index.vue
  57. 44
      src/views/dataBoard/satisfactionEval/components/Tabs/index.vue
  58. 2
      src/views/dataBoard/satisfactionEval/dissatisfied/detail.vue
  59. 468
      yarn.lock

BIN
src/assets/images/gailan/tag_blue.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 390 B

BIN
src/assets/images/gailan/tag_orange.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 432 B

BIN
src/assets/images/gailan/yuan_bg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
src/assets/images/gailan/zq_bg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

6
src/assets/scss/dataBoard/overview/index.scss

@ -494,7 +494,6 @@
height: 40px;
line-height: 40px;
font-size: 14px;
font-family: PingFang SC;
font-weight: 400;
color: #A3B9DA;
}
@ -508,11 +507,12 @@
height: 40px;
line-height: 40px;
width: 110px;
height: 14px;
overflow: hidden;
font-size: 14px;
font-family: PingFang SC;
font-weight: 400;
color: #FFFFFF;
text-overflow: ellipsis;
white-space: nowrap;
// padding: 0 8px;
// overflow: hidden;
// white-space: nowrap;

3
src/components/GridTree/nodeWrap.vue

@ -96,7 +96,8 @@ export default {
},
gotoPersonnel(item) {
const grandPid = this.findParentParentId(this.nodeConfig, item.pid);
this.$router.push(`/organizational/microgrid/${item.id}/${grandPid}`);
const name = item.name ? item.name : "恭喜发财";
this.$router.push(`/organizational/microgrid/${item.id}/${grandPid}/${name}`);
},
},
};

4
src/components/Tree/nodeWrap.vue

@ -134,11 +134,13 @@ export default {
getHomeTypes(id) {
this.$http.get(`/actual/base/organizational/structure/getResidentCategoryByHouseId?houseId=${"1495582904602800129"}`).then((res) => {
const { code, data } = res.data;
const { code, msg, data } = res.data;
if (code === 0) {
const newItem = data[0];
const itemNumOne = Object.keys(newItem).filter((key) => newItem[key] === 1);
this.homeTypeArr = itemNumOne;
} else {
this.$message.error(msg);
}
});
},

5
src/main.js

@ -22,7 +22,8 @@ import { message } from "@/utils/message.js";
import http from "@/utils/request";
import cloneDeep from "lodash/cloneDeep";
// 引入工具类
import './utils/jwTool'
// axios封装
import ajax from "@/js/ajax";
// service
@ -32,6 +33,7 @@ import store from "@/js/store";
//系统工具
import util from "@js/util";
// import Cookies from "js-cookie";
import Moment from "moment";
import getQueryPara from "dai-js/modules/getQueryPara";
import NodeWrap from "@/components/Tree/nodeWrap.vue";
@ -103,6 +105,7 @@ window.SITE_CONFIG["storeState"] = cloneDeep(store.state);
Vue.prototype.tableHeaderStyle = { background: "linear-gradient(0deg, #005EB3 0%, #0083F0 100%)", color: "#FFFFFF", padding: "6px 0px" };
new Vue({
i18n,
router,

16
src/router/index.js

@ -236,7 +236,17 @@ export const dataBoardRoutes = {
meta: {
title: "可视化数据",
isTab: false,
keepAlive:false
keepAlive: false,
},
},
{
path: "renfang/resident",
props: true,
component: () => import("@/views/dataBoard/renfang/resident/index"),
name: "dataBoard-renfang-resident",
meta: {
title: "居民画像",
isTab: false,
},
},
{
@ -414,7 +424,7 @@ export const dataBoardRoutes = {
{
path: "/organizational/orgPersonnel",
props: true,
component: () => import("@/views/dataBoard/organizational/personnel/index"),
component: () => import("@/views/dataBoard/cpts/personnel/index"),
name: "OrgPersonnel",
meta: {
title: "居民画像",
@ -422,7 +432,7 @@ export const dataBoardRoutes = {
},
},
{
path: "/organizational/microgrid/:id/:pid",
path: "/organizational/microgrid/:id/:pid/:name",
props: true,
component: () => import("@/views/dataBoard/organizational/microgrid/index"),
name: "Microgrid",

10
src/utils/jwTool.js

@ -0,0 +1,10 @@
import Vue from "vue";
const paramsFormat = function (params) {
let strArray = []
for(let key in params) {
strArray.push(key+'='+params[key])
}
return strArray.join('&')
}
Vue.prototype.$paramsFormat = paramsFormat

187
src/views/dataBoard/cpts/map/index.vue

@ -1,38 +1,17 @@
<template>
<div class="m-map" :class="{ 'z-td': mapType == 'td' }">
<div id="map"></div>
<div
class="btn"
v-if="mapStyleType == 'light'"
v-show="false"
@click="shiftMapStyle('dark')"
>
切换深色模式
</div>
<div class="btn" v-show="false" v-else @click="shiftMapStyle('light')">
切换浅色模式
</div>
<cpt-popup
ref="popup"
@clickListItem="handleClickDotListItem"
@operate="handleClickDotBtn"
/>
<div class="btn" v-if="mapStyleType == 'light'" v-show="false" @click="shiftMapStyle('dark')">切换深色模式</div>
<div class="btn" v-show="false" v-else @click="shiftMapStyle('light')">切换浅色模式</div>
<cpt-popup ref="popup" @clickListItem="handleClickDotListItem" @operate="handleClickDotBtn" />
</div>
</template>
<script>
import { requestPost } from "@/js/dai/request";
import nextTick from "dai-js/tools/nextTick";
import {
Scene,
PolygonLayer,
LineLayer,
RasterLayer,
PointLayer,
Marker,
Popup,
} from "@antv/l7";
import { Scene, PolygonLayer, LineLayer, RasterLayer, PointLayer, Marker, Popup } from "@antv/l7";
import { GaodeMap, Map } from "@antv/l7-maps";
import { spliceIntoChunks } from "@/utils/index";
import { mapType, searchNearby } from "@/utils/dai-map";
@ -67,22 +46,26 @@ export default {
style: "amap://styles/blue",
polygonColor: [
// "rgba(255, 100, 60, 0.5)",
"rgba(43, 231, 253, 0.35)",
// "rgba(43, 231, 253, 0.35)",
"rgba(0, 127, 241, .3)",
// "rgba(255, 255, 50, 0.35)",
],
lineColor: [
// "rgba(255, 180, 150, 0.9)",
"rgba(43, 231, 253, 0.7)",
// "rgba(43, 231, 253, 0.7)",
"rgba(0, 127, 241, .6)",
// "rgba(255, 255, 50, 0.7)",
],
circleColor: [
// "rgba(255, 180, 150, 0.99)",
"rgba(43, 231, 253, 0.99)",
// "rgba(43, 231, 253, 0.99)",
"rgba(0, 127, 241, 0.99)",
// "rgba(255, 255, 50, 0.99)",
],
textColor: [
// "rgba(255, 100, 60, 0.99)",
"rgba(43, 231, 253, 0.99)",
// "rgba(43, 231, 253, 0.99)",
"rgba(126, 187, 255, 1)",
// "rgba(255, 255, 50, 0.99)",
],
textStrokeColor: "#fff",
@ -146,15 +129,9 @@ export default {
default: () => ({}),
},
},
computed: {},
components: {
cptPopup,
},
watch: {},
async mounted() {
//
window._AMapSecurityConfig = {
@ -167,11 +144,7 @@ export default {
computed: {
polygonData() {
const { srcGridData } = this;
if (
!srcGridData ||
!srcGridData.children ||
!Array.isArray(srcGridData.children)
) {
if (!srcGridData || !srcGridData.children || !Array.isArray(srcGridData.children)) {
return { type: "FeatureCollection", features: [] };
}
const polygon = [
@ -202,11 +175,7 @@ export default {
polygonDotData() {
const { srcGridData } = this;
if (
!srcGridData ||
!srcGridData.children ||
!Array.isArray(srcGridData.children)
) {
if (!srcGridData || !srcGridData.children || !Array.isArray(srcGridData.children)) {
return { type: "FeatureCollection", features: [] };
}
const polygon = [
@ -227,9 +196,7 @@ export default {
item.latitude
? [[item.longitude, item.latitude]]
: spliceIntoChunks(
item.coordinates
.split(",")
.map((item) => parseFloat(item)),
item.coordinates.split(",").map((item) => parseFloat(item)),
2
).filter((item) => item.length == 2),
],
@ -253,10 +220,7 @@ export default {
},
geometry: {
type: "Point",
coordinates: [
parseFloat(item.longitude),
parseFloat(item.latitude),
],
coordinates: [parseFloat(item.longitude), parseFloat(item.latitude)],
},
})),
],
@ -277,10 +241,7 @@ export default {
},
geometry: {
type: "Point",
coordinates: [
parseFloat(item.longitude),
parseFloat(item.latitude),
],
coordinates: [parseFloat(item.longitude), parseFloat(item.latitude)],
},
})),
],
@ -315,24 +276,19 @@ export default {
styleConfig = lightStyle;
}
const iniCenter = [
srcGridData.longitude ||
this.$store.state.user.longitude ||
116.39743841556731,
srcGridData.latitude ||
this.$store.state.user.latitude ||
39.9088810666821,
];
const iniCenter = [srcGridData.longitude || this.$store.state.user.longitude || 116.39743841556731, srcGridData.latitude || this.$store.state.user.latitude || 39.9088810666821];
if (mapType != "qq") {
myMap = new Map({
center: iniCenter,
mapStyle: "amap://styles/darkblue",
zoom: 18,
});
} else {
myMap = new GaodeMap({
// pitch: this.pitch,
style: styleConfig.style,
mapStyle: "amap://styles/darkblue",
// style: styleConfig.style,
center: iniCenter,
token: "fc14b42e0ca18387866d68ebd4f150c1",
zoom: 18,
@ -356,9 +312,9 @@ export default {
}
this.iniMapGrid(scene);
this.iniMapDot(scene);
this.iniMapDot2(scene);
await nextTick(0);
// this.iniMapDot(scene);
// this.iniMapDot2(scene);
// await nextTick(0);
this.zoomInABit();
});
},
@ -371,18 +327,15 @@ export default {
zIndex: 1,
});
baseLayer
.source(
"http://t7.tianditu.com/DataServer?T=vec_w&tk=8a08c117ab9ee45d508686b01cc8d397&x={x}&y={y}&l={z}",
{
parser: {
type: "rasterTile",
tileSize: 256,
// minZoom: 6,
// maxZoom: 15,
zoomOffset: 0,
},
}
)
.source("http://t7.tianditu.com/DataServer?T=vec_w&tk=8a08c117ab9ee45d508686b01cc8d397&x={x}&y={y}&l={z}", {
parser: {
type: "rasterTile",
tileSize: 256,
// minZoom: 6,
// maxZoom: 15,
zoomOffset: 0,
},
})
.style({
opacity: 0.7,
});
@ -392,18 +345,15 @@ export default {
zIndex: 2,
});
annotionLayer
.source(
"http://t7.tianditu.com/DataServer?T=cva_w&tk=8a08c117ab9ee45d508686b01cc8d397&x={x}&y={y}&l={z}",
{
parser: {
type: "rasterTile",
tileSize: 256,
// minZoom: 6,
// maxZoom: 15,
zoomOffset: 0,
},
}
)
.source("http://t7.tianditu.com/DataServer?T=cva_w&tk=8a08c117ab9ee45d508686b01cc8d397&x={x}&y={y}&l={z}", {
parser: {
type: "rasterTile",
tileSize: 256,
// minZoom: 6,
// maxZoom: 15,
zoomOffset: 0,
},
})
.style({
opacity: 0.5,
});
@ -504,14 +454,8 @@ export default {
// scene.addLayer(circleLayer);
scene.addImage("pos-red", require("@/assets/img/shuju/grid/pos-red.png"));
scene.addImage(
"pos-green",
require("@/assets/img/shuju/grid/pos-green.png")
);
scene.addImage(
"pos-yellow",
require("@/assets/img/shuju/grid/pos-yellow.png")
);
scene.addImage("pos-green", require("@/assets/img/shuju/grid/pos-green.png"));
scene.addImage("pos-yellow", require("@/assets/img/shuju/grid/pos-yellow.png"));
posLayer = new PolygonLayer({
zIndex: 4,
})
@ -549,7 +493,8 @@ export default {
.active(true);
scene.addLayer(textLayer);
// polygonLayer.on("mouseenter", (e) => {
polygonLayer.on("mouseenter", (e) => {
console.log("e", e);
// const { lng, lat } = e.lngLat;
// const popup = new Popup({
// title: e.feature.properties.name,
@ -559,9 +504,16 @@ export default {
// lat,
// },
// });
// scene.addPopup(layerPopup);
// });
// scene.addPopup(popup);
const popup = new Popup({
offsets: [0, 0],
closeButton: false,
maxWidth: 400,
})
.setLnglat(e.lngLat)
.setHTML(`<span>街道: ${e.feature.properties.name}</span><br><span>网格: ${e.feature.properties.center_addre}</span>`);
scene.addPopup(popup);
});
polygonLayer.on("mousemove", (e) => {
polygonLayer.style({
@ -569,6 +521,7 @@ export default {
});
});
polygonLayer.on("click", (e) => {
console.log("e", e);
this.$emit("clickAgency", e.feature.properties);
});
@ -721,9 +674,7 @@ export default {
// lng lat dis
let r = 6371; //
let dis = 0.25; //3
let dlng =
2 *
Math.asin(Math.sin(dis / (2 * r)) / Math.cos((lat * Math.PI) / 180));
let dlng = 2 * Math.asin(Math.sin(dis / (2 * r)) / Math.cos((lat * Math.PI) / 180));
dlng = (dlng * 180) / Math.PI; //
let dlat = dis / r;
dlat = (dlat * 180) / Math.PI; //
@ -854,10 +805,7 @@ export default {
handleClickDotListItem(item) {
console.log("handleClickDotListItem", item);
this.handleClickDot(item, [
parseFloat(item.longitude),
parseFloat(item.latitude),
]);
this.handleClickDot(item, [parseFloat(item.longitude), parseFloat(item.latitude)]);
},
},
};
@ -880,12 +828,7 @@ export default {
right: 0;
bottom: 0;
pointer-events: none;
background: radial-gradient(
rgba(#020c38, 0) 0%,
rgba(#020c38, 0) 60%,
rgba(#020c38, 1) 85%,
rgba(#020c38, 1) 100%
);
background: radial-gradient(rgba(#020c38, 0) 0%, rgba(#020c38, 0) 60%, rgba(#020c38, 1) 85%, rgba(#020c38, 1) 100%);
}
&.z-td {
@ -893,11 +836,7 @@ export default {
/deep/ .l7-scene {
canvas {
background-color: rgba(43, 51, 73, 0.82);
background-image: radial-gradient(
rgba(0, 0, 0, 0),
rgba(0, 0, 0, 0.3),
#000
);
background-image: radial-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.3), #000);
}
.gray {
-webkit-filter: grayscale(100%);
@ -912,7 +851,7 @@ export default {
z-index: 100;
}
/deep/ .l7-popup-content {
background: rgba(#020340, 0.58);
background: rgba(#fff, 1);
box-shadow: 0 0 20px 3px inset rgba(#22f, 0.1);
}
/deep/ .l7-popup-close-button {

0
src/views/dataBoard/organizational/personnel/components/Breadcrumb/index.vue → src/views/dataBoard/cpts/personnel/components/Breadcrumb/index.vue

0
src/views/dataBoard/organizational/personnel/components/Pagination/index.vue → src/views/dataBoard/cpts/personnel/components/Pagination/index.vue

0
src/views/dataBoard/organizational/personnel/components/Tabs/index.vue → src/views/dataBoard/cpts/personnel/components/Tabs/index.vue

0
src/views/dataBoard/organizational/personnel/components/Title/index.vue → src/views/dataBoard/cpts/personnel/components/Title/index.vue

50
src/views/dataBoard/organizational/personnel/index.vue → src/views/dataBoard/cpts/personnel/index.vue

@ -1,71 +1,68 @@
<template>
<div>
<div class="breadcrumb">
<Breadcrumb :list="breadcrumbList" />
</div>
<el-row>
<el-col :span="10">
<div class="sub-title">事项详情</div>
<data-title title="事项详情">
<div style="width: 53%; text-align: right">
<a @click="popupShow = true">更多></a>
</div>
</data-title>
<MatterDetails />
<div class="sub-title">家庭关系</div>
<data-title title="家庭关系" />
<Family />
</el-col>
<el-col :span="13" :offset="1">
<div class="sub-title">居民各项业务记录</div>
<data-title title="居民各项业务记录" />
<BusinessRecords />
<el-row>
<el-col :span="12">
<div class="sub-title">享受服务次数统计</div>
<data-title title="享受服务次数统计" />
<EnjoyService />
</el-col>
<el-col :span="11" :offset="1">
<div class="sub-title">积分记录</div>
<data-title title="积分记录" />
<PointsRecord />
</el-col>
</el-row>
</el-col>
</el-row>
<resi-details
@close="popupShow = false"
:resi-id="resId"
v-if="popupShow"
/>
</div>
</template>
<script>
import Breadcrumb from "./components/Breadcrumb/index.vue";
import dataTitle from "@/views/dataBoard/renfang/visualizing/components/dataTitle.vue";
import MatterDetails from "./modules/MatterDetails";
import Family from "./modules/Family";
import BusinessRecords from "./modules/BusinessRecords";
import EnjoyService from "./modules/EnjoyService";
import PointsRecord from "./modules/PointsRecord";
import resiDetails from "@/views/dataBoard/cpts/resi-details";
export default {
name: "OrgPersonnel",
components: {
Breadcrumb,
MatterDetails,
Family,
BusinessRecords,
EnjoyService,
PointsRecord,
dataTitle,
resiDetails,
},
data() {
return {
breadcrumbList: [
{
path: "/organizational/dangTree",
name: "党组织架构",
},
{
path: "",
name: "居民画像",
},
],
popupShow: false,
resId: "",
};
},
mounted() {
console.log(this.breadcrumbList, this.$route);
this.$set(this.breadcrumbList[2], "name", this.$route.query.name);
this.breadcrumbList[2].name = this.$route.query.name;
const query = this.$route.query;
this.resId = query.user_id;
},
};
</script>
@ -83,4 +80,7 @@ export default {
.breadcrumb {
margin-bottom: 25px;
}
a:hover {
cursor: pointer;
}
</style>

160
src/views/dataBoard/cpts/personnel/modules/BusinessRecords.vue

@ -0,0 +1,160 @@
<template>
<div class="business-records">
<Tabs v-model="type" :list="typeList" @changeVal="typeChange" />
<complaint @changeTotal="changeTotal" v-show="type == 1" />
<economize @changeTotal="changeTotal" v-show="type == 2" />
<community @changeTotal="changeTotal" v-show="type == 3" />
<reporting-events @changeTotal="changeTotal" v-show="type == 4" />
<resident @changeTotal="changeTotal" v-show="type == 5" />
<giveService @changeTotal="changeTotal" v-show="type == 6" />
</div>
</template>
<script>
import Tabs from "@/views/dataBoard/satisfactionEval/components/Tabs/index.vue";
import complaint from "./businessTables/complaint.vue";
import economize from "./businessTables/economize.vue";
import community from "./businessTables/community.vue";
import reportingEvents from "./businessTables/reporting-events.vue";
import resident from "./businessTables/resident.vue";
import giveService from "./businessTables/give-service.vue";
export default {
name: "BusinessRecords",
components: {
Tabs,
complaint,
reportingEvents,
economize,
community,
resident,
giveService,
},
data() {
return {
type: 1,
typeList: [
{
label: "12345投诉",
value: 1,
},
{
label: "省满意度调查",
value: 2,
},
{
label: "社区满意度自查",
value: 3,
},
{
label: "上报事件",
value: 4,
},
{
label: "居民需求",
value: 5,
},
{
label: "社区服务",
value: 6,
},
],
typeLists: [
{
label: "12345投诉",
value: 1,
},
{
label: "省满意度调查",
value: 2,
},
{
label: "社区满意度自查",
value: 3,
},
{
label: "上报事件",
value: 4,
},
{
label: "居民需求",
value: 5,
},
{
label: "社区服务",
value: 6,
},
],
};
},
created() {
},
methods: {
typeChange(e) {
this.type = e;
},
changeTotal(item) {
this.typeList[item.name].label = item.total
? `${this.typeLists[item.name].label}${item.total}`
: this.typeLists[item.name].label;
},
},
};
</script>
<style scoped lang="scss">
.business-records {
margin-top: 12px;
margin-bottom: 25px;
}
.table {
/deep/ .el-table td,
/deep/ .el-table th,
/deep/ .el-table tr {
padding: 14px !important;
border: none !important;
min-height: 52px;
}
/deep/ .el-table td,
/deep/ .el-table th {
background: none !important;
}
/deep/ .el-table td {
font-size: 14px;
font-weight: 400;
color: #ffffff;
text-shadow: 1px 2px 4px rgba(10, 32, 60, 0.51);
}
/deep/ .el-table tr {
background: none;
&:hover {
background-color: rgba(26, 149, 255, 0.3) !important;
}
}
/deep/ .el-table__body-wrapper tr:nth-of-type(odd) {
background: rgba(14, 56, 115, 0.4);
}
/deep/ .el-table {
background: none !important;
&:before {
background: none;
}
}
/deep/ .el-table__header-wrapper tr {
color: #a3b9da !important;
font-size: 14px;
font-weight: 400;
opacity: 0.76;
background: none;
&:hover {
background: none !important;
}
}
/deep/ .el-table__header-wrapper {
background: none !important;
}
}
</style>

213
src/views/dataBoard/cpts/personnel/modules/EnjoyService.vue

@ -0,0 +1,213 @@
<template>
<div className="event-statistics">
<div id="enjoyServiceChart" style="height: 350px"></div>
</div>
</template>
<script>
import * as echarts from "echarts";
function dataFormatter(arr) {
return arr.map((item) => {
return Number(item.classificationNum);
});
}
function dataFormatter1(arr) {
return arr.map((item) => {
return item.classification;
});
}
export default {
name: "EnjoyService",
data() {
return {
dataArr: [],
nameArr: ["岗位找人", "技能找人", "温暖找人", "服务找人"],
};
},
created() {
this.getData();
},
mounted() {},
methods: {
getData() {
this.$http
.get("/actual/base/peopleRoomOverview/serviceNumber")
.then(({ data: res }) => {
this.dataArr = dataFormatter(res.data);
this.nameArr = dataFormatter1(res.data);
this.initCharts();
});
},
initCharts() {
let div = document.getElementById("enjoyServiceChart");
this.myChart = echarts.init(div);
let xData = this.nameArr;
let tq = this.dataArr;
const max = Math.max(...tq);
let barArray = new Array(xData.length).fill(
(parseInt(max / 100) + 1) * 100
);
var option = {
title: {
show: false,
text: "",
x: "center",
top: "15px",
textStyle: {
color: "#333333",
fontWeight: 500,
fontSize: 18,
},
},
tooltip: {
trigger: "axis",
backgroundColor: "rgba(13, 64, 71, 0.50)",
borderColor: "rgba(143, 225, 252, 0.60)",
padding: 8,
textStyle: {
color: "#fff",
},
formatter: function (params) {
var res = "";
for (var i = 0; i < params.length; i++) {
if (params[i].seriesName != "") {
res += "<p>" + params[0].name + ":" + params[i].value + "</p>";
}
}
return res;
},
},
grid: {
top: "0",
left: "1%",
right: "2%",
bottom: "0",
containLabel: true,
},
yAxis: [
{
type: "category",
axisTick: {
show: false,
},
splitLine: {
show: false,
},
axisLine: {
lineStyle: {
color: "#323c41",
},
},
axisLabel: {
align: "right",
textStyle: {
fontSize: 12,
color: "#A3B9DA",
},
},
boundaryGap: true,
data: xData,
},
{
type: "category",
data: xData,
axisTick: {
show: false,
},
axisLine: { show: false },
axisLabel: {
show: false,
},
boundaryGap: true,
},
],
xAxis: [
{
type: "value",
splitLine: {
show: true,
lineStyle: {
color: "rgba(4,187,255,0.18)",
type: "dashed",
},
},
nameTextStyle: {
color: "#A3B9DA",
textStyle: {
fontSize: 12,
},
align: "center",
},
axisLabel: {
show: true,
color: "#A3B9DA",
textStyle: {
fontSize: 12,
},
},
axisTick: {
show: false,
},
},
],
series: [
{
type: "bar",
barWidth: 16,
itemStyle: {
// lenged
opacity: 1, //
color: new echarts.graphic.LinearGradient(
1,
0,
0,
0,
[
{
offset: 0,
color: "#6EDDFE", // 0%
},
{
offset: 1,
color: "#0B1F57", // 100%
},
],
false
),
},
data: tq, //data.values
},
{
name: "",
type: "bar",
barWidth: 66,
barGap: "-60%",
data: barArray,
itemStyle: {
normal: {
color: "rgba(89,130,194,0.12)",
},
},
zlevel: -1,
yAxisIndex: 1,
},
],
};
this.myChart.setOption(option);
window.addEventListener("resize", () => this.myChart.resize());
},
},
};
</script>
<style scoped lang="scss">
.event-statistics {
padding: 16px 16px;
margin-top: 12px;
}
</style>

113
src/views/dataBoard/cpts/personnel/modules/Family.vue

@ -0,0 +1,113 @@
<template>
<div class="family">
<div class="tag" v-for="item in data" :key="item.id">
<div>
{{ item.name }}
<span v-if="item.houseHolderRel"
>({{ item.houseHolderRel == "本人" ? "户主" : item.houseHolderRel }})
</span>
</div>
<div v-if="item.householdSituation">
入户状态{{ item.householdSituation }}
</div>
<div>居民分类{{ getType(item.classificationOfInhabitantsList) }}</div>
</div>
</div>
</template>
<script>
export default {
name: "Family",
data() {
return {
data: [],
queryParam: {
type: "0",
},
};
},
computed: {
getType() {
return (arr) => {
let txt = "";
arr.forEach((item, index) => {
if (arr.length == index + 1) {
txt = txt + item;
} else {
txt = txt + item + ",";
}
});
return txt;
};
},
},
created() {
const query = this.$route.query;
this.queryParam.resid = query.user_id;
this.getDatas();
},
methods: {
getDatas() {
this.$http
.post(
"/actual/base/peopleRoomOverview/getFamilyRelationshipList?type=0&resid=" +
this.queryParam.resid,
this.queryParam
)
.then(({ data: res }) => {
this.data = res.data;
});
},
},
};
</script>
<style scoped lang="scss">
.family {
width: 464px;
height: 340px;
background: url("@/assets/images/manyidu/gx_bg.png") no-repeat center;
position: relative;
margin: 40px auto;
}
.tag {
font-size: 14px;
font-weight: 400;
color: #ffffff;
line-height: 22px;
padding: 18px 24px;
box-sizing: border-box;
position: absolute;
&:nth-of-type(1),
&:nth-of-type(2) {
background: url("@/assets/images/manyidu/gx_big.png") no-repeat center;
background-size: 100% 100%;
width: 180px;
min-height: 100px;
}
&:nth-of-type(3),
&:nth-of-type(4) {
background: url("@/assets/images/manyidu/gx_small.png") no-repeat center;
background-size: 100% 100%;
width: 180px;
min-height: 100px;
padding: 15px 24px;
}
&:nth-of-type(1) {
left: -98px;
top: 34px;
}
&:nth-of-type(2) {
right: -68px;
top: 34px;
}
&:nth-of-type(3) {
left: -91px;
bottom: 41px;
}
&:nth-of-type(4) {
right: -44px;
bottom: 41px;
}
}
</style>

62
src/views/dataBoard/organizational/personnel/modules/MatterDetails.vue → src/views/dataBoard/cpts/personnel/modules/MatterDetails.vue

@ -1,23 +1,60 @@
<template>
<div class="matter-details">
<div class="user-img">
<img src="@/assets/images/manyidu/dn_bg1.png" alt="">
<img src="@/assets/images/manyidu/dn_bg1.png" alt="" />
</div>
<div class="tags">
<div class="tag red">满意度风险人员</div>
<div class="tag small">与子女同住</div>
<div class="tag">第三网格</div>
<div class="tag small">入户一致</div>
<div class="tag">13343999999</div>
<div class="tag">四季景园1号楼1单元101</div>
<div class="tag" v-if="data.name">{{ data.name }}</div>
<div class="tag red" v-if="data.riskyFlag == '1'">满意度风险人员</div>
<div class="tag small" v-if="data.gender">
{{ genderArr[data.gender] }}
</div>
<div class="tag" v-if="data.gridName">{{ data.gridName }}</div>
<div class="tag small" v-if="data.idNum">
{{ data.idNum }}
</div>
<div class="tag" v-if="data.mobile">{{ data.mobile }}</div>
<div class="tag small" v-if="data.householdSituation">
{{ data.householdSituation }}
</div>
<div class="tag" v-if="data.birthday">
{{ data.birthday }}
</div>
<div class="tag" v-if="data.fullName">{{ data.fullName }}</div>
</div>
</div>
</template>
<script>
export default {
name: "MatterDetails"
}
name: "MatterDetails",
data() {
return {
data: {},
queryParams: {},
genderArr: ["未知", "男", "女"],
};
},
created() {
const query = this.$route.query;
this.queryParams.resid = query.user_id;
this.getDatas();
},
methods: {
getDatas() {
this.$http
.post(
"/actual/base/peopleRoomOverview/getPersonalFile?resid=" +
this.queryParams.resid,
this.queryParams
)
.then(({ data: res }) => {
this.data = res.data;
});
},
},
};
</script>
<style scoped lang="scss">
@ -43,7 +80,7 @@ export default {
justify-content: center;
font-size: 14px;
font-weight: 400;
color: #FFFFFF;
color: #ffffff;
line-height: 16px;
box-sizing: border-box;
padding: 24px;
@ -57,7 +94,7 @@ export default {
}
&.red {
background: url("@/assets/images/manyidu/dn_red.png") center no-repeat;
color: #FE0000;
color: #fe0000;
}
&:nth-of-type(1) {
left: 0;
@ -89,5 +126,4 @@ export default {
bottom: 10px;
}
}
</style>
</style>

67
src/views/dataBoard/cpts/personnel/modules/PointsRecord.vue

@ -0,0 +1,67 @@
<template>
<div>
<div class="enjoy-service">
<div class="enjoy-service-item" v-for="(item, index) in data">
<div class="num">+{{ item.classificationNum }}</div>
<div class="info">
<div class="title">{{ item.classification }}</div>
<div class="time">{{ item.recordTime }}</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: "PointsRecord",
data() {
return {
data:[],
};
},
created() {
this.getData();
},
methods: {
getData() {
this.$http
.get("/actual/base/peopleRoomOverview/recorHistory")
.then(({ data: res }) => {
this.data = res.data;
});
},
},
};
</script>
<style scoped lang="scss">
.enjoy-service {
padding-left: 26px;
margin-top: 12px;
}
.enjoy-service-item {
color: #ffffff;
display: flex;
padding: 14px 16px 14px;
margin-bottom: 8px;
background: #07266b;
.num {
font-size: 24px;
font-weight: 500;
line-height: 22px;
}
.info {
font-size: 14px;
margin-left: 40px;
.title {
font-weight: 500;
margin-bottom: 10px;
}
.time {
font-weight: 400;
color: #a3b9da;
}
}
}
</style>

120
src/views/dataBoard/cpts/personnel/modules/businessTables/community.vue

@ -0,0 +1,120 @@
<template>
<div class="table">
<el-table :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="" />
<el-table-column label="办理状态" prop="completeFlag" width="120" />
<el-table-column label="是否回访" prop="isReturn" width="120" />
<el-table-column label="操作" width="90" align="center">
<template slot-scope="data">
<el-button type="text" @click="handleView">查看</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
name: "community",
data() {
return {
queryParams: {
residList: [],
},
list: [],
total: 0,
};
},
created() {
const query = this.$route.query;
this.queryParams.residList[0] = query.user_id;
this.getList();
},
mounted() {},
methods: {
getList() {
// (-2-1访0访/访1访)
const completeFlags = {
"-2": "未知",
"-1": "不接受回访",
0: "接受回访/待回访",
1: "已回访",
};
//
this.$http
.post(
"/actual/base/peopleRoomOverview/communitySatisfactionPageList",
this.queryParams
)
.then(({ data: res }) => {
this.list = res.data.map((item) => {
return {
...item,
completeFlag: completeFlags[item.completeFlag],
};
});
this.total = res.data.length;
this.$emit("changeTotal", { name: 2, total: this.total });
});
},
},
};
</script>
<style scoped lang="scss">
.business-records {
margin-bottom: 25px;
}
.table {
/deep/ .el-table td,
/deep/ .el-table th,
/deep/ .el-table tr {
padding: 14px !important;
border: none !important;
min-height: 52px;
}
/deep/ .el-table td,
/deep/ .el-table th {
background: none !important;
}
/deep/ .el-table td {
font-size: 14px;
font-weight: 400;
color: #ffffff;
text-shadow: 1px 2px 4px rgba(10, 32, 60, 0.51);
}
/deep/ .el-table tr {
background: none;
&:hover {
background-color: rgba(26, 149, 255, 0.3) !important;
}
}
/deep/ .el-table__body-wrapper tr:nth-of-type(odd) {
background: rgba(14, 56, 115, 0.4);
}
/deep/ .el-table {
background: none !important;
&:before {
background: none;
}
}
/deep/ .el-table__header-wrapper tr {
color: #a3b9da !important;
font-size: 14px;
font-weight: 400;
opacity: 0.76;
background: none;
&:hover {
background: none !important;
}
}
/deep/ .el-table__header-wrapper {
background: none !important;
}
}
</style>

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

@ -0,0 +1,127 @@
<template>
<div class="table">
<el-table :data="list" max-height="363px" height="363px">
<el-table-column label="序号" type="index" width="80" />
<el-table-column label="事件类型" prop="categorycode" width="" />
<el-table-column label="事件描述" prop="eventcontent" width="" />
<el-table-column label="办理状态" prop="status" width="" />
<el-table-column label="接收时间" prop="happentime" width="180" />
<el-table-column label="标记" prop="marktype" width="" />
<el-table-column label="操作" width="90" align="center">
<template slot-scope="data">
<el-button type="text" @click="handleView">查看</el-button>
</template>
</el-table-column>
</el-table>
<Pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNo"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script>
export default {
name: "complaint",
data() {
return {
queryParams: {
pageNo: 1,
pageSize: 10,
eventType: "3",
residList: [],
},
list: [],
total: 0,
};
},
created() {},
mounted() {
const query = this.$route.query;
this.queryParams.residList[0] = query.user_id;
this.getList();
},
methods: {
getList() {
//
const statusArr = {
processing: "处理中",
closed_case: "已办结",
};
const marktypes = ["普通事件", "难点读点", "矛盾纠纷", "自身问题"];
this.$http
.post("/actual/base/peopleRoomOverview/eventPageList", this.queryParams)
.then(({ data: res }) => {
this.list = res.data.list.map((item) => {
return {
...item,
status: item.status?statusArr[item.status]:null,
marktype: marktypes[item.marktype],
};
});
this.total = res.data.total;
this.$emit("changeTotal", { name: 0, total: this.total });
});
},
},
};
</script>
<style scoped lang="scss">
.business-records {
margin-bottom: 25px;
}
.table {
/deep/ .el-table td,
/deep/ .el-table th,
/deep/ .el-table tr {
padding: 14px !important;
border: none !important;
min-height: 52px;
}
/deep/ .el-table td,
/deep/ .el-table th {
background: none !important;
}
/deep/ .el-table td {
font-size: 14px;
font-weight: 400;
color: #ffffff;
text-shadow: 1px 2px 4px rgba(10, 32, 60, 0.51);
}
/deep/ .el-table tr {
background: none;
&:hover {
background-color: rgba(26, 149, 255, 0.3) !important;
}
}
/deep/ .el-table__body-wrapper tr:nth-of-type(odd) {
background: rgba(14, 56, 115, 0.4);
}
/deep/ .el-table {
background: none !important;
&:before {
background: none;
}
}
/deep/ .el-table__header-wrapper tr {
color: #a3b9da !important;
font-size: 14px;
font-weight: 400;
opacity: 0.76;
background: none;
&:hover {
background: none !important;
}
}
/deep/ .el-table__header-wrapper {
background: none !important;
}
}
</style>

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

@ -0,0 +1,105 @@
<template>
<div class="table">
<el-table :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="" />
<el-table-column label="办理状态" prop="completeFlag" width="120" />
<el-table-column label="是否回访" prop="isReturn" width="120" />
<el-table-column label="操作" width="90" align="center">
<template slot-scope="data">
<el-button type="text" @click="handleView">查看</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
name: "economize",
data() {
return {
queryParams: {
residList: [],
},
list: [],
total: 0,
};
},
created() {},
mounted() {
const query = this.$route.query;
this.queryParams.residList[0] = query.user_id;
this.getList();
},
methods: {
getList() {
//
this.$http
.post("/actual/base/peopleRoomOverview/provincialSatisfactionPageList", this.queryParams)
.then(({ data: res }) => {
this.list = res.data;
this.total = res.data.length;
this.$emit("changeTotal", { name: 1, total: this.total });
});
},
},
};
</script>
<style scoped lang="scss">
.business-records {
margin-bottom: 25px;
}
.table {
/deep/ .el-table td,
/deep/ .el-table th,
/deep/ .el-table tr {
padding: 14px !important;
border: none !important;
min-height: 52px;
}
/deep/ .el-table td,
/deep/ .el-table th {
background: none !important;
}
/deep/ .el-table td {
font-size: 14px;
font-weight: 400;
color: #ffffff;
text-shadow: 1px 2px 4px rgba(10, 32, 60, 0.51);
}
/deep/ .el-table tr {
background: none;
&:hover {
background-color: rgba(26, 149, 255, 0.3) !important;
}
}
/deep/ .el-table__body-wrapper tr:nth-of-type(odd) {
background: rgba(14, 56, 115, 0.4);
}
/deep/ .el-table {
background: none !important;
&:before {
background: none;
}
}
/deep/ .el-table__header-wrapper tr {
color: #a3b9da !important;
font-size: 14px;
font-weight: 400;
opacity: 0.76;
background: none;
&:hover {
background: none !important;
}
}
/deep/ .el-table__header-wrapper {
background: none !important;
}
}
</style>

109
src/views/dataBoard/cpts/personnel/modules/businessTables/give-service.vue

@ -0,0 +1,109 @@
<template>
<div class="table">
<el-table :data="list" max-height="363px" height="363px">
<el-table-column label="序号" type="index" width="80" />
<el-table-column label="需求类型" prop="serviceCategoryKey" width="" />
<el-table-column label="事件描述" prop="serviceName" width="" />
<el-table-column label="服务情况" prop="state" width="" />
<el-table-column label="创建时间" prop="serviceTimeStart" width="180" />
<el-table-column label="操作" width="90" align="center">
<template slot-scope="data">
<el-button type="text" @click="handleView">查看</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
name: "give-service",
data() {
return {
queryParams: {
residList: [],
},
list: [],
total: 0,
};
},
created() {},
mounted() {
const query = this.$route.query;
this.queryParams.residList[0] = query.user_id;
this.getList();
},
methods: {
getList() {
//
this.$http
.post("/actual/base/peopleRoomOverview/communityServicePageList", this.queryParams)
.then(({ data: res }) => {
this.list = res.data.map((item) => {
return {
...item,
};
});
this.total = res.data.length;
this.$emit("changeTotal", { name: 5, total: this.total });
});
},
},
};
</script>
<style scoped lang="scss">
.business-records {
margin-bottom: 25px;
}
.table {
/deep/ .el-table td,
/deep/ .el-table th,
/deep/ .el-table tr {
padding: 14px !important;
border: none !important;
min-height: 52px;
}
/deep/ .el-table td,
/deep/ .el-table th {
background: none !important;
}
/deep/ .el-table td {
font-size: 14px;
font-weight: 400;
color: #ffffff;
text-shadow: 1px 2px 4px rgba(10, 32, 60, 0.51);
}
/deep/ .el-table tr {
background: none;
&:hover {
background-color: rgba(26, 149, 255, 0.3) !important;
}
}
/deep/ .el-table__body-wrapper tr:nth-of-type(odd) {
background: rgba(14, 56, 115, 0.4);
}
/deep/ .el-table {
background: none !important;
&:before {
background: none;
}
}
/deep/ .el-table__header-wrapper tr {
color: #a3b9da !important;
font-size: 14px;
font-weight: 400;
opacity: 0.76;
background: none;
&:hover {
background: none !important;
}
}
/deep/ .el-table__header-wrapper {
background: none !important;
}
}
</style>

125
src/views/dataBoard/cpts/personnel/modules/businessTables/reporting-events.vue

@ -0,0 +1,125 @@
<template>
<div class="table">
<el-table :data="list" max-height="363px" height="363px">
<el-table-column label="序号" type="index" width="80" />
<el-table-column label="事件类型" prop="categorycode" width="" />
<el-table-column label="事件描述" prop="eventcontent" width="" />
<el-table-column label="办理状态" prop="status" width="" />
<el-table-column label="接收时间" prop="happentime" width="180" />
<el-table-column label="操作" width="90" align="center">
<template slot-scope="data">
<el-button type="text" @click="handleView">查看</el-button>
</template>
</el-table-column>
</el-table>
<Pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNo"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script>
export default {
name: "reporting-events",
data() {
return {
queryParams: {
pageNo: 1,
pageSize: 10,
residList: [],
},
list: [],
total: 0,
};
},
created() {},
mounted() {
const query = this.$route.query;
this.queryParams.residList[0] = query.user_id;
this.getList();
},
methods: {
getList() {
//
const statusArr = {
processing: "处理中",
closed_case: "已办结",
};
const marktypes = ["普通事件", "难点读点", "矛盾纠纷", "自身问题"];
this.$http
.post("/actual/base/peopleRoomOverview/eventPageList", this.queryParams)
.then(({ data: res }) => {
this.list = res.data.list.map((item) => {
return {
...item,
status: item.status?statusArr[item.status]:null,
marktype: marktypes[item.marktype],
};
});
this.total = res.data.total;
this.$emit("changeTotal", { name: 3, total: this.total });
});
},
},
};
</script>
<style scoped lang="scss">
.business-records {
margin-bottom: 25px;
}
.table {
/deep/ .el-table td,
/deep/ .el-table th,
/deep/ .el-table tr {
padding: 14px !important;
border: none !important;
min-height: 52px;
}
/deep/ .el-table td,
/deep/ .el-table th {
background: none !important;
}
/deep/ .el-table td {
font-size: 14px;
font-weight: 400;
color: #ffffff;
text-shadow: 1px 2px 4px rgba(10, 32, 60, 0.51);
}
/deep/ .el-table tr {
background: none;
&:hover {
background-color: rgba(26, 149, 255, 0.3) !important;
}
}
/deep/ .el-table__body-wrapper tr:nth-of-type(odd) {
background: rgba(14, 56, 115, 0.4);
}
/deep/ .el-table {
background: none !important;
&:before {
background: none;
}
}
/deep/ .el-table__header-wrapper tr {
color: #a3b9da !important;
font-size: 14px;
font-weight: 400;
opacity: 0.76;
background: none;
&:hover {
background: none !important;
}
}
/deep/ .el-table__header-wrapper {
background: none !important;
}
}
</style>

112
src/views/dataBoard/cpts/personnel/modules/businessTables/resident.vue

@ -0,0 +1,112 @@
<template>
<div class="table">
<el-table :data="list" max-height="363px" height="363px">
<el-table-column label="序号" type="index" width="80" />
<el-table-column label="需求类型" prop="categoryName" width="" />
<el-table-column label="需求描述" prop="content" width="" />
<el-table-column label="办理情况" prop="status" width="" />
<el-table-column label="上报时间" prop="reportTime" width="180" />
<el-table-column label="操作" width="90" align="center">
<template slot-scope="data">
<el-button type="text" @click="handleView">查看</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
name: "complaint",
data() {
return {
queryParams: {
residList: [],
},
list: [],
total: 0,
};
},
created() {
const query = this.$route.query;
this.queryParams.residList[0] = query.user_id;
this.getList();
},
mounted() {},
methods: {
getList() {
//
this.$http
.post(
"/actual/base/peopleRoomOverview/demandOfResidentsPageList",
this.queryParams
)
.then(({ data: res }) => {
this.list = res.data.map((item) => {
return {
...item,
};
});
this.total = res.data.length;
this.$emit("changeTotal", { name: 4, total: this.total });
});
},
},
};
</script>
<style scoped lang="scss">
.business-records {
margin-bottom: 25px;
}
.table {
/deep/ .el-table td,
/deep/ .el-table th,
/deep/ .el-table tr {
padding: 14px !important;
border: none !important;
min-height: 52px;
}
/deep/ .el-table td,
/deep/ .el-table th {
background: none !important;
}
/deep/ .el-table td {
font-size: 14px;
font-weight: 400;
color: #ffffff;
text-shadow: 1px 2px 4px rgba(10, 32, 60, 0.51);
}
/deep/ .el-table tr {
background: none;
&:hover {
background-color: rgba(26, 149, 255, 0.3) !important;
}
}
/deep/ .el-table__body-wrapper tr:nth-of-type(odd) {
background: rgba(14, 56, 115, 0.4);
}
/deep/ .el-table {
background: none !important;
&:before {
background: none;
}
}
/deep/ .el-table__header-wrapper tr {
color: #a3b9da !important;
font-size: 14px;
font-weight: 400;
opacity: 0.76;
background: none;
&:hover {
background: none !important;
}
}
/deep/ .el-table__header-wrapper {
background: none !important;
}
}
</style>

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

@ -964,7 +964,6 @@ export default {
if (code === 0) {
this.srcTableData = data;
console.log('this.srcTableData ', this.srcTableData);
// this.total = data.total;
// service_num avg_satisfaction
this.list = data.map((item, index) => {
@ -981,7 +980,6 @@ export default {
];
});
console.log('this.list', this.list);
} else {
this.$message.error(msg);
}

26
src/views/dataBoard/organizational/dangTree/index.vue

@ -68,21 +68,19 @@ export default {
//
getTreeData() {
this.loading = true;
this.$http
.get(`/actual/base/organizational/structure/partyCommitteeOrg?agencyId=${this.$store.state.chooseArea.chooseName.orgId}`)
.then((res) => {
const {
data: { code, data },
} = res;
if (code === 0) {
this.nodeConfig = data[0];
this.getDataPLevel(data);
this.loading = false;
}
})
.catch(() => {
this.$http.get(`/actual/base/organizational/structure/partyCommitteeOrg?agencyId=${this.$store.state.chooseArea.chooseName.orgId}`).then((res) => {
const {
data: { code, msg, data },
} = res;
if (code === 0) {
this.nodeConfig = data[0];
this.getDataPLevel(data);
this.loading = false;
});
} else {
this.loading = false;
this.$message.error(msg);
}
});
},
getTitleNameMapFun(i) {

26
src/views/dataBoard/organizational/gridTree/index.vue

@ -72,21 +72,19 @@ export default {
//
getTreeData() {
this.loading = true;
this.$http
.get(`/gov/org/organizational/neighborhood/getGridCommitteeOrgTreeList?agencyId=${this.$store.state.chooseArea.chooseName.orgId}`)
.then((res) => {
const {
data: { code, data },
} = res;
if (code === 0) {
this.nodeConfig = data[0];
this.getDataPLevel(data);
this.loading = false;
}
})
.catch(() => {
this.$http.get(`/gov/org/organizational/neighborhood/getGridCommitteeOrgTreeList?agencyId=${this.$store.state.chooseArea.chooseName.orgId}`).then((res) => {
const {
data: { code, msg, data },
} = res;
if (code === 0) {
this.nodeConfig = data[0];
this.getDataPLevel(data);
this.loading = false;
});
} else {
this.loading = false;
this.$message.error(msg);
}
});
},
getTitleNameMapFun(i) {

26
src/views/dataBoard/organizational/jwTree/index.vue

@ -74,21 +74,19 @@ export default {
//
getTreeData() {
this.loading = true;
this.$http
.get(`/gov/org/organizational/neighborhood/getNeighborhoodCommitteeOrgTreeList?agencyId=${this.$store.state.chooseArea.chooseName.orgId}`)
.then((res) => {
const {
data: { code, data },
} = res;
if (code === 0) {
this.nodeConfig = data[0];
this.getDataPLevel(data);
this.loading = false;
}
})
.catch(() => {
this.$http.get(`/gov/org/organizational/neighborhood/getNeighborhoodCommitteeOrgTreeList?agencyId=${this.$store.state.chooseArea.chooseName.orgId}`).then((res) => {
const {
data: { code, msg, data },
} = res;
if (code === 0) {
this.nodeConfig = data[0];
this.getDataPLevel(data);
this.loading = false;
});
} else {
this.loading = false;
this.$message.error(msg);
}
});
},
getTitleNameMapFun(i) {

2
src/views/dataBoard/organizational/microgrid/components/popDetails.vue

@ -794,7 +794,6 @@ export default {
if (code === 0) {
this.srcTableData = data;
console.log("this.srcTableData ", this.srcTableData);
// this.total = data.total;
// service_num avg_satisfaction
this.list = data.map((item, index) => {
@ -811,7 +810,6 @@ export default {
];
});
console.log("this.list", this.list);
} else {
this.$message.error(msg);
}

38
src/views/dataBoard/organizational/microgrid/components/reportAnEvent.vue

@ -191,32 +191,28 @@ export default {
getDetailsData(id) {
this.loading = true;
this.$http
.post("/governance/icEvent/detail", { icEventId: id })
.then((res) => {
const { code, data } = res.data;
if (code === 0) {
this.item = data;
}
})
.catch((res) => {
this.$http.post("/governance/icEvent/detail", { icEventId: id }).then((res) => {
const { code, data, msg } = res.data;
if (code === 0) {
this.item = data;
} else {
this.loading = false;
});
this.$message.error(msg);
}
});
},
getProcessData(id) {
this.$http
.post("/governance/icEvent/process", { icEventId: id })
.then((res) => {
const { code, data } = res.data;
if (code === 0) {
this.activities = data;
this.loading = false;
}
})
.catch((err) => {
this.$http.post("/governance/icEvent/process", { icEventId: id }).then((res) => {
const { code, data, msg } = res.data;
if (code === 0) {
this.activities = data;
this.loading = false;
} else {
this.loading = false;
});
this.$message.error(msg);
}
});
},
// /governance/icEvent/detail

88
src/views/dataBoard/organizational/microgrid/index.vue

@ -9,45 +9,44 @@
</div>
</div>
<div class="table">
<el-table :data="list" :loading="loading">
<el-table :data="list" v-loading="loading" 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" />
<!-- 上报事件 -->
<template v-if="otherTabel === 'sbsj'">
<el-table-column prop="categoryName" label="事件类型" />
<el-table-column prop="addeventContentress" label="事件描述" />
<el-table-column prop="status" label="办理情况" />
<el-table-column prop="happenTime" label="上报时间" />
</template>
<el-table-column v-if="otherTabel === 'sbsj'" prop="categoryName" label="事件类型" />
<el-table-column v-if="otherTabel === 'sbsj'" prop="addeventContentress" label="事件描述" />
<el-table-column v-if="otherTabel === 'sbsj'" prop="status" label="办理情况">
<template slot-scope="scope">
{{ getStatusMap(scope.row.status) }}
</template>
</el-table-column>
<el-table-column v-if="otherTabel === 'sbsj'" prop="happenTime" label="上报时间" />
<!-- 居民需求 -->
<template v-if="otherTabel === 'jmxq'">
<el-table-column prop="categoryName" label="需求类型" />
<el-table-column prop="content" label="需求描述" />
<el-table-column prop="status" label="办理情况" />
<el-table-column prop="reportTime" label="上报时间" />
</template>
<el-table-column v-if="otherTabel === 'jmxq'" prop="categoryName" label="需求类型" />
<el-table-column v-if="otherTabel === 'jmxq'" prop="content" label="需求描述" />
<el-table-column v-if="otherTabel === 'jmxq'" prop="status" label="办理情况">
<template slot-scope="scope">
{{ getStatusMap(scope.row.status) }}
</template>
</el-table-column>
<el-table-column v-if="otherTabel === 'jmxq'" prop="reportTime" label="上报时间" />
<!-- 统治人群 -->
<template v-if="otherTabel === 'tzrq'">
<el-table-column prop="organizationName" label="所属组织" />
<el-table-column prop="gridName" label="所属网格" />
<el-table-column prop="familyName" label="所属家庭" />
<el-table-column prop="name" label="姓名" />
<el-table-column prop="mobile" label="联系电话" />
<el-table-column prop="gender" label="性别" />
<el-table-column prop="idNum" label="证件号" />
<el-table-column prop="categoryType" label="人员类别" />
<el-table-column prop="remark" label="备注" />
</template>
<el-table-column v-if="otherTabel === 'tzrq'" prop="organizationName" label="所属组织" />
<el-table-column v-if="otherTabel === 'tzrq'" prop="gridName" label="所属网格" />
<el-table-column v-if="otherTabel === 'tzrq'" prop="familyName" label="所属家庭" />
<el-table-column v-if="otherTabel === 'tzrq'" prop="name" label="姓名" />
<el-table-column v-if="otherTabel === 'tzrq'" prop="mobile" label="联系电话" />
<el-table-column v-if="otherTabel === 'tzrq'" prop="gender" label="性别" />
<el-table-column v-if="otherTabel === 'tzrq'" prop="idNum" label="证件号" />
<el-table-column v-if="otherTabel === 'tzrq'" prop="categoryType" label="人员类别" />
<el-table-column v-if="otherTabel === 'tzrq'" prop="remark" label="备注" />
<!-- 安全隐患 -->
<template v-if="otherTabel === 'aqyh'">
<el-table-column prop="placeOrgName" label="场所名称" />
<el-table-column prop="patrolTime" label="巡查时间" />
<el-table-column prop="staffName" label="巡查人员" />
<el-table-column prop="mobile" label="联系电话" />
<el-table-column prop="detailed" label="隐患明细" />
<el-table-column prop="attachmentUrl" label="图片" />
<el-table-column prop="reviewTime" label="拟复查时间" />
</template>
<el-table-column v-if="otherTabel === 'aqyh'" prop="placeOrgName" label="场所名称" />
<el-table-column v-if="otherTabel === 'aqyh'" prop="patrolTime" label="巡查时间" />
<el-table-column v-if="otherTabel === 'aqyh'" prop="staffName" label="巡查人员" />
<el-table-column v-if="otherTabel === 'aqyh'" prop="mobile" label="联系电话" />
<el-table-column v-if="otherTabel === 'aqyh'" prop="detailed" label="隐患明细" />
<el-table-column v-if="otherTabel === 'aqyh'" prop="attachmentUrl" label="图片" />
<el-table-column v-if="otherTabel === 'aqyh'" prop="reviewTime" label="拟复查时间" />
<el-table-column label="操作" width="90" align="center">
<template slot-scope="scope">
<el-button type="text" @click="handleView(scope.row)">查看</el-button>
@ -74,6 +73,7 @@ import Pagination from "@/views/dataBoard/satisfactionEval/components/Pagination
import SameDialog from "./components/popDetails.vue";
import ReportAnEvent from "./components/reportAnEvent.vue";
import Safetyhazard from "./components/safetyhazard.vue";
import { get } from "sortablejs";
export default {
name: "Microgrid",
components: { Breadcrumb, Pagination, SameDialog, ReportAnEvent, Safetyhazard },
@ -108,7 +108,7 @@ export default {
breadcrumbList: [
{
path: "/organizational/gridTree",
name: "组织架构",
name: "网格架构",
},
{
path: "",
@ -140,6 +140,7 @@ export default {
},
mounted() {
this.getList();
this.breadcrumbList[1].name = this.paramsData.name + "(" + "微网格" + ")";
},
methods: {
getList() {
@ -166,6 +167,7 @@ export default {
},
chooseNav(item) {
this.list = [];
this.itemNav = item.key;
this.otherTabel = item.key === 1 ? "sbsj" : item.key === 2 ? "jmxq" : item.key === 3 ? "tzrq" : "aqyh";
this.navList.forEach((d) => {
@ -178,16 +180,19 @@ export default {
},
close(flag) {
this.showDialog = flag;
this.rowId = null;
},
closeEvent(flag) {
this.showDialogEvent = flag;
this.rowId = null;
},
closeSaft(flag) {
this.showDialogSaft = flag;
this.rowId = null;
},
handleView(row) {
this.rowId = row.id;
if (this.itemNav === 1) {
if (this.itemNav === 1 || this.itemNav === 2) {
this.showDialogEvent = true;
}
if (this.itemNav === 3) {
@ -197,6 +202,17 @@ export default {
this.showDialogSaft = true;
}
},
getStatusMap(s) {
const statusMap = new Map([
["pending", "待处理"],
["canceled", "已取消"],
["assigned", "已派单"],
["have_order", "已接单"],
["finished", "已完成"],
]);
return statusMap.get(s);
},
},
};
</script>

0
src/views/dataBoard/organizational/personalPage/index.vue

128
src/views/dataBoard/organizational/personnel/modules/BusinessRecords.vue

@ -1,128 +0,0 @@
<template>
<div class="business-records">
<Tabs v-model="type" :list="typeList" @changeVal="typeChange" />
<div class="table">
<el-table :data="list">
<el-table-column label="序号" type="index" width="80" />
<el-table-column label="评价周期" prop="key" width="" />
<el-table-column label="姓名" prop="key" width="" />
<el-table-column label="电话" prop="key" width="" />
<el-table-column label="不满意类型" prop="key" width="" />
<el-table-column label="不满意原因" prop="key" width="" />
<el-table-column label="操作" width="90" align="center">
<template slot-scope="data">
<el-button type="text" @click="handleView">查看</el-button>
</template>
</el-table-column>
</el-table>
<Pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
</div>
</div>
</template>
<script>
import Tabs from "@/views/dataBoard/satisfactionEval/components/Tabs/index.vue";
export default {
name: "BusinessRecords",
components: { Tabs },
data() {
return {
total: 10,
queryParams: {
pageNum: 0,
pageSize: 10,
},
type: 1,
typeList: [
{
label: " 满意度",
value: 1,
},
{
label: "居民需求",
value: 2,
},
{
label: "上报事件",
value: 3,
},
// {
// label: '',
// value: 4
// }, {
// label: '',
// value: 5
// }, {
// label: '',
// value: 6
// }, {
// label: '访',
// value: 7
// }
],
list: [{}, {}, {}, {}, {}],
};
},
methods: {
typeChange() {},
getList() {},
},
};
</script>
<style scoped lang="scss">
.business-records {
margin-bottom: 25px;
}
.table {
/deep/ .el-table td,
/deep/ .el-table th,
/deep/ .el-table tr {
padding: 14px !important;
border: none !important;
min-height: 52px;
}
/deep/ .el-table td,
/deep/ .el-table th {
background: none !important;
}
/deep/ .el-table td {
font-size: 14px;
font-weight: 400;
color: #ffffff;
text-shadow: 1px 2px 4px rgba(10, 32, 60, 0.51);
}
/deep/ .el-table tr {
background: none;
&:hover {
background-color: rgba(26, 149, 255, 0.3) !important;
}
}
/deep/ .el-table__body-wrapper tr:nth-of-type(odd) {
background: rgba(14, 56, 115, 0.4);
}
/deep/ .el-table {
background: none !important;
&:before {
background: none;
}
}
/deep/ .el-table__header-wrapper tr {
color: #a3b9da !important;
font-size: 14px;
font-weight: 400;
opacity: 0.76;
background: none;
&:hover {
background: none !important;
}
}
/deep/ .el-table__header-wrapper {
background: none !important;
}
}
</style>

188
src/views/dataBoard/organizational/personnel/modules/EnjoyService.vue

@ -1,188 +0,0 @@
<template>
<div className="event-statistics">
<div id="enjoyServiceChart" style="height: 360px;"></div>
</div>
</template>
<script>
import * as echarts from "echarts";
export default {
name: "EnjoyService",
data() {
return {}
},
mounted() {
this.initCharts()
},
methods: {
initCharts() {
let div = document.getElementById('enjoyServiceChart');
this.myChart = echarts.init(div);
let xData = ['岗位找人', '技能找人', '温暖找人', '服务找人'];
let tq = [300, 90, 48, 39];
const max = Math.max(...tq)
let barArray = new Array(xData.length).fill((parseInt(max / 100) + 1) * 100)
var option = {
title: {
show: false,
text: '',
x: 'center',
top: '15px',
textStyle: {
color: '#333333',
fontWeight: 500,
fontSize: 18,
},
},
tooltip: {
trigger: 'axis',
backgroundColor: 'rgba(13, 64, 71, 0.50)',
borderColor: 'rgba(143, 225, 252, 0.60)',
padding: 8,
textStyle: {
color: '#fff',
},
formatter: function (params) {
console.log(params)
var res = ''
for (var i = 0; i < params.length; i++) {
if (params[i].seriesName != "") {
res += '<p>' + params[0].name + ':' + params[i].data + '</p>'
}
}
return res;
},
},
grid: {
top: '0',
left: '1%',
right: '2%',
bottom: '0',
containLabel: true
},
yAxis: [
{
type: 'category',
axisTick: {
show: false,
},
splitLine: {
show: false,
},
axisLine: {
lineStyle: {
color: '#323c41'
}
},
axisLabel: {
align: 'right',
textStyle: {
fontSize: 12,
color: '#A3B9DA'
}
},
boundaryGap: true,
data: xData,
}, {
type: 'category',
data: xData,
axisTick: {
show: false,
},
axisLine: {show: false},
axisLabel: {
show: false,
},
boundaryGap: true,
}
],
xAxis: [
{
type: 'value',
splitLine: {
show: true,
lineStyle: {
color: 'rgba(4,187,255,0.18)',
type: 'dashed'
},
},
nameTextStyle: {
color: '#A3B9DA',
textStyle: {
fontSize: 12
},
align: 'center'
},
axisLabel: {
show: true,
color: '#A3B9DA',
textStyle: {
fontSize: 12
}
},
axisTick: {
show: false
}
}
],
series: [
{
type: 'bar',
barWidth: 16,
itemStyle: {
// lenged
opacity: 1, //
color: new echarts.graphic.LinearGradient(
1,
0,
0,
0,
[
{
offset: 0,
color: '#6EDDFE' // 0%
},
{
offset: 1,
color: '#0B1F57' // 100%
}
],
false
)
},
data: tq, //data.values
},
{
name: '',
type: 'bar',
barWidth: 66,
barGap: '-60%',
data: barArray,
itemStyle: {
normal: {
color: 'rgba(89,130,194,0.12)'
}
},
zlevel: -1,
yAxisIndex: 1,
}
],
};
this.myChart.setOption(option);
window.addEventListener("resize", () => this.myChart.resize());
},
}
}
</script>
<style scoped lang="scss">
.event-statistics {
padding: 16px 16px;
}
</style>

76
src/views/dataBoard/organizational/personnel/modules/Family.vue

@ -1,76 +0,0 @@
<template>
<div class="family">
<div class="tag">
<div>张三(户主)</div>
<div>入户状态入户一致</div>
<div>居民分类老年人</div>
</div>
<div class="tag">
<div>张三(户主)</div>
<div>入户状态入户一致</div>
<div>居民分类老年人</div>
</div>
<div class="tag">
<div>张三(户主)</div>
<div>入户状态入户一致</div>
</div>
<div class="tag">
<div>张三(户主)</div>
<div>入户状态入户一致</div>
</div>
</div>
</template>
<script>
export default {
name: "Family"
}
</script>
<style scoped lang="scss">
.family {
width: 464px;
height: 340px;
background: url('@/assets/images/manyidu/gx_bg.png') no-repeat center;
position: relative;
margin: 40px auto;
}
.tag {
font-size: 14px;
font-weight: 400;
color: #FFFFFF;
line-height: 22px;
padding: 18px 24px;
box-sizing: border-box;
position: absolute;
&:nth-of-type(1),
&:nth-of-type(2) {
background: url("@/assets/images/manyidu/gx_big.png") no-repeat center;
width: 180px;
height: 100px;
}
&:nth-of-type(3),
&:nth-of-type(4) {
background: url("@/assets/images/manyidu/gx_small.png") no-repeat center;
width: 180px;
height: 70px;
padding: 15px 24px;
}
&:nth-of-type(1) {
left: -98px;
top: 34px;
}
&:nth-of-type(2) {
right: -68px;
top: 34px;
}
&:nth-of-type(3) {
left: -91px;
bottom: 41px;
}
&:nth-of-type(4) {
right: -44px;
bottom: 41px;
}
}
</style>

51
src/views/dataBoard/organizational/personnel/modules/PointsRecord.vue

@ -1,51 +0,0 @@
<template>
<div>
<div class="enjoy-service">
<div class="enjoy-service-item" v-for="(item,index) in 5">
<div class="num">+10</div>
<div class="info">
<div class="title">便民服务-配餐服务</div>
<div class="time">2023-07-15 15:30:30</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: "PointsRecord"
}
</script>
<style scoped lang="scss">
.enjoy-service {
padding-left: 26px;
}
.enjoy-service-item {
color: #FFFFFF;
display: flex;
padding: 14px 16px 14px;
margin-bottom: 8px;
background: #07266B;
.num {
font-size: 24px;
font-weight: 500;
line-height: 22px;
}
.info {
font-size: 14px;
margin-left: 40px;
.title {
font-weight: 500;
margin-bottom: 10px;
}
.time {
font-weight: 400;
color: #A3B9DA;
}
}
}
</style>

148
src/views/dataBoard/overview/components/CommunityResult.vue

@ -0,0 +1,148 @@
<template>
<div class="result">
<div class="score">
<div class="tit">当前得分</div>
<div class="branch">
<span>{{synthesisScore?synthesisScore:'0'}}</span>
</div>
</div>
<div class="submit-num">
<div class="tit">总提交人数</div>
<div class="data">
<div class="people">
<span>{{sumNum?sumNum:'0'}}</span>
</div>
<div>
<div class="today day"><span>今日</span> +{{todayNum?todayNum:0}}</div>
<div class="yesterday day"><span>昨日</span> +{{lastDayNum?lastDayNum:0}}</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: "CommunityResult",
props: {
date: {
type: String,
default: ''
}
},
data() {
return {
org: this.$store.state.chooseArea.chooseName,
lastDayNum: 0,
sumNum: 0,
synthesisScore: 0,
todayNum: 0,
};
},
watch: {
"$store.state.chooseArea.chooseName"(val) {
if (val.orgId) {
this.getData()
}
},
date() {
this.getData()
}
},
mounted() {
if (this.org.orgId) {
this.getData()
}
},
methods: {
getData() {
this.$http.get('/actual/base/streetOverview/satisfactionCommunitySelfGroup?month='+this.date+'&level='+this.$store.state.chooseArea.chooseName.level+'&orgId='+this.$store.state.chooseArea.chooseName.orgId).then(({data: {data}}) => {
this.lastDayNum = data.lastDayNum
this.sumNum = data.sumNum
this.synthesisScore = data.synthesisScore
this.todayNum = data.todayNum
})
}
}
}
</script>
<style scoped lang="scss">
.result {
display: flex;
align-items: center;
justify-content: space-between;
padding: 20px 30px 30px;
.tit {
font-size: 16px;
font-weight: 400;
color: #FFFFFF;
}
.score {
.branch {
font-size: 14px;
font-weight: 500;
color: #A3B9DA;
margin-top: 20px;
span {
font-size: 36px;
font-weight: bold;
font-style: italic;
color: #08EBAE;
}
}
}
.submit-num {
.data {
display: flex;
align-items: flex-end;
.people {
font-size: 14px;
font-weight: 500;
color: #A3B9DA;
margin-right: 21px;
span {
font-size: 36px;
font-weight: bold;
font-style: italic;
color: #7FCEFF;
}
}
.day {
display: flex;
align-items: center;
margin-top: 8px;
font-size: 18px;
font-weight: bold;
font-style: italic;
color: #00D6D9;
span {
display: block;
text-align: center;
font-style: normal;
font-size: 12px;
font-weight: 500;
color: #FFFFFF;
width: 36px;
height: 18px;
line-height: 18px;
}
&.today span {
background: url("@/assets/images/gailan/tag_blue.png") no-repeat;
}
&.yesterday span {
background: url("@/assets/images/gailan/tag_orange.png") no-repeat;
}
}
}
}
}
</style>

103
src/views/dataBoard/overview/components/DynamicHumanRoomData.vue

@ -0,0 +1,103 @@
<template>
<div class="dhrd">
<div class="dhrd-list">
<!-- <div class="dhrd-item">
<div class="time blue">
刚刚
</div>
<div class="title ">XX社区第一网格</div>
<div class="name ">杨波</div>
<div class="address ">
修改了新苑小区**的居民信息的居民信息的居民信息
</div>
</div>-->
<div class="dhrd-item" v-for="(item,index) in list" :key="index">
<div class="time">
{{$moment(item.changeTime).format('HH:mm')}}
</div>
<div class="title">{{item.orgName}}</div>
<!-- <div class="name">{{item.orgName}}</div>-->
<div class="address">{{item.content}}</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: "DynamicHumanRoomData",
data() {
return {
org: this.$store.state.chooseArea.chooseName,
list: []
}
},
watch: {
"$store.state.chooseArea.chooseName"(val) {
if (val.orgId) {
this.getList()
}
},
},
mounted() {
if (this.org.orgId) {
this.getList()
}
},
methods: {
getList() {
this.$http.get('/actual/base/streetOverview/residentHouseUpdateRecord?level='+this.$store.state.chooseArea.chooseName.level+'&orgId='+this.$store.state.chooseArea.chooseName.orgId).then(({data: {data}}) => {
this.list = data
})
}
}
}
</script>
<style scoped lang="scss">
@import "@/assets/scss/dataBoard/c/common.scss";
.dhrd {
padding: 20px 16px;
}
.dhrd-list {
height: 200px;
overflow-y: auto;
@include scrollBar
.dhrd-item {
display: flex;
font-size: 14px;
font-weight: 400;
color: #FFFFFF;
height: 40px;
align-items: center;
padding: 0 16px;
&:nth-of-type(odd) {
background: rgba(14, 56, 115, 0.4);
}
.time {
flex: 1;
}
.title {
flex: 2;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.name {
flex: 1;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.address {
flex: 3;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
}
.blue {
color: #0DEEEF;
}
</style>

194
src/views/dataBoard/overview/components/EventAndFollowUp.vue

@ -0,0 +1,194 @@
<template>
<div class="event">
<div class="tabs">
<Tabs v-model="type" :list="typeList" @changeVal="typeChange"/>
</div>
<div class="content">
<div class="total">
<div class="tit">事件总数</div>
<div class="num orange">{{sumNum?sumNum:0}}</div>
<div class="desc"><span>较上月</span>-{{lastSumNum?lastSumNum:0}}</div>
</div>
<div class="processing">
<div class="bg">
<div class="bg-1">
</div>
<div class="num">
{{processNum?processNum:0}}
</div>
<div class="name">处理中</div>
</div>
</div>
<div class="total">
<div class="tit">已办结</div>
<div class="num blue">{{closedNum?closedNum:0}}</div>
<div class="desc white"><span>办结率</span>{{closedRatio?closedRatio:0}}%</div>
</div>
</div>
</div>
</template>
<script>
import Tabs from "@/views/dataBoard/satisfactionEval/components/Tabs/index.vue";
export default {
name: "EventAndFollowUp",
components: {Tabs},
props: {
date: {
type: String,
default: ''
}
},
data() {
return {
org: this.$store.state.chooseArea.chooseName,
typeList: [{
label: '12345事件',
value: '12345'
}, {
label: '事件回访',
value: 'follow'
}],
type: '12345',
sumNum: 0,
lastSumNum: 0,
processNum: 0,
closedNum: 0,
}
},
watch: {
"$store.state.chooseArea.chooseName"(val) {
if (val.orgId) {
this.getData()
}
},
date() {
this.getData()
}
},
mounted() {
if (this.org.orgId) {
this.getData()
}
},
methods: {
getData() {
this.$http.get('/actual/base/streetOverview/eventAndFollowGroup?month=' + this.date + '&level=' + this.$store.state.chooseArea.chooseName.level + '&orgId=' + this.$store.state.chooseArea.chooseName.orgId + '&queryType=' + this.type).then(({data: {data}}) => {
this.sumNum = data.sumNum
this.lastSumNum = data.lastSumNum
this.processNum = data.processNum
this.closedNum = data.closedNum
this.closedRatio = data.closedRatio
})
},
typeChange(val) {
console.log(val,'val')
this.type = val
this.getData()
}
}
}
</script>
<style scoped lang="scss">
.event {
padding: 10px 16px;
}
.tabs {
margin: 10px 0;
}
.content {
background: linear-gradient(90deg, rgba(1, 94, 234, 0.1) 0%, rgba(16, 50, 103, 0) 50%, rgba(1, 94, 234, 0.1) 100%);
padding: 20px 19px;
display: flex;
justify-content: space-between;
align-items: center;
}
.total {
.tit {
font-size: 16px;
font-weight: 400;
color: #FFFFFF;
}
.num {
height: 24px;
font-size: 32px;
font-weight: bold;
font-style: italic;
margin: 20px 0 15px;
}
.orange {
color: #FF7845;
}
.blue {
color: #76C0EF;
}
.desc {
font-size: 18px;
font-weight: bold;
font-style: italic;
color: #00D6D9;
span {
font-style: normal;
font-size: 14px;
font-weight: 500;
color: #A3B9DA;
}
}
.white {
color: #fff;
}
}
.processing {
.bg {
background: url("@/assets/images/gailan/yuan_bg.png") no-repeat center;
flex: 0 0 150px;
width: 150px;
height: 150px;
display: flex;
align-items: center;
justify-content: center;
position: relative;
.bg-1 {
background: url("@/assets/images/gailan/zq_bg.png") no-repeat center;
width: 146px;
height: 136px;
position: absolute;
left: 9px;
top: 9px;
}
.num {
font-size: 32px;
font-weight: bold;
font-style: italic;
color: #64C1FF;
}
.name {
position: absolute;
bottom: 10px;
font-size: 16px;
font-weight: 400;
color: #FFFFFF;
}
}
}
</style>

99
src/views/dataBoard/overview/components/RankingGridData.vue

@ -0,0 +1,99 @@
<template>
<div class="m-subbox m-sqrfph">
<div class="rank">
<div class="tit">{{ self.orgName }}</div>
<div class="num"><span>{{ self.rank }}</span></div>
</div>
<div class="table">
<div class="tr">
<div class="th">排名</div>
<div class="th">网格</div>
<div class="th">房屋更新数</div>
<div class="th">人口更新数</div>
<div class="th">人房更新总数</div>
</div>
<div class="tr" v-for="item in pmList" :key="item.rank">
<div :class="item.rank < 4 ? `td tdbg${item.rank}` : 'td'">
{{ item.rank }}
</div>
<div class="td">{{ item.orgName }}</div>
<div class="td">{{ item.houseNum }}</div>
<div class="td">{{ item.residentNum }}</div>
<div class="td">{{ item.sumNum }}</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: "RankingGridData",
props: {
date: {
type: String,
default: ''
}
},
data() {
return {
org: this.$store.state.chooseArea.chooseName,
pmList: [],
self: {}
};
},
watch: {
"$store.state.chooseArea.chooseName"(val) {
if (val.orgId) {
this.getList()
}
},
date() {
this.getList()
}
},
mounted() {
if (this.org.orgId) {
this.getList()
}
},
methods: {
getList() {
this.$http.get('/actual/base/streetOverview/residentHouseUpdateGroupByGrid?month=' + this.date + '&level=' + this.$store.state.chooseArea.chooseName.level + '&orgId=' + this.$store.state.chooseArea.chooseName.orgId).then(({data: {data}}) => {
if (data) {
data = data.map((item, index) => {
return {
...item,
rank: index - 0 + 1
}
})
this.pmList = data.filter(item => !item.self)
this.self = data.filter(item => item.self)[0]
}
})
}
}
};
</script>
<style lang="scss" src="@/assets/scss/dataBoard/overview/index.scss" scoped/>
<style scoped lang="scss">
.rank {
font-size: 16px;
font-weight: 400;
color: #FFFFFF;
padding: 0 15px 20px;
.num {
font-size: 14px;
font-weight: 500;
color: #A3B9DA;
margin-top: 20px;
span {
font-size: 36px;
font-weight: bold;
font-style: italic;
color: #FFB73C;
}
}
}
</style>

45
src/views/dataBoard/overview/components/jdjs.vue

@ -5,8 +5,7 @@
<img src="../linshi/jiedaotu.jpg" />
</div>
<div class="m-jdjs-js-txt">
XX街道现有房屋4600间 住房屋3800间出租房屋600
置房屋200现有居民4000户 8400
{{overview}}
</div>
</div>
<div class="m-jdjs-bg">
@ -17,8 +16,7 @@
<div class="m-jdjs-bg-title-txt">总结报告</div>
</div>
<div class="m-jdjs-bg-txt">
根据数据分析结果建议重点关注租户党员保障房人员三类
群体开展相关的社区服务和活动
{{report}}
</div>
</div>
</div>
@ -26,12 +24,39 @@
<script>
export default {
name: "jdjs",
data() {},
data() {
return {
orgId: this.$store.state.chooseArea.chooseName,
report: "",
overview: ""
}
},
watch: {
"$store.state.chooseArea.chooseName"(val) {
console.log(val,'val')
console.log(123)
if(val.orgId) {
this.getReport(val)
}
}
},
mounted() {
console.log(this.orgId.orgId)
if(this.orgId.orgId) {
this.getReport(this.orgId)
}
},
methods: {
getReport({orgId,level}) {
this.$http.get('/actual/base/streetOverview/communityOverview?orgId='+orgId+'&level='+level).then(({data: {data}}) => {
this.overview = data
})
this.$http.get('/actual/base/streetOverview/summaryReport?orgId='+orgId+'&level='+level).then(({data: {data}}) => {
this.report = data
})
}
}
};
</script>
<style
lang="scss"
src="@/assets/scss/dataBoard/overview/index.scss"
scoped
></style>
<style lang="scss" src="@/assets/scss/dataBoard/overview/index.scss" scoped/>

114
src/views/dataBoard/overview/components/jdtphx.vue

@ -5,23 +5,15 @@
<div class="m-jdhx-card-title">
<div class="m-jdhx-card-title-icon">
<img
src="../../../../assets/images/shuju/overview/jumin-icon.png"
src="@/assets/images/shuju/overview/jumin-icon.png"
/>
</div>
<div class="m-jdhx-card-title-txt">主要居民类型</div>
</div>
<div class="m-jdhx-card-content">
<div class="m-jdhx-card-content-item">
<div class="m-jdhx-card-content-item-lable">老年人</div>
<div class="m-jdhx-card-content-item-value">21%</div>
</div>
<div class="m-jdhx-card-content-item">
<div class="m-jdhx-card-content-item-lable">租户</div>
<div class="m-jdhx-card-content-item-value">17%</div>
</div>
<div class="m-jdhx-card-content-item">
<div class="m-jdhx-card-content-item-lable">低保人员</div>
<div class="m-jdhx-card-content-item-value">9%</div>
<div class="m-jdhx-card-content-item" v-for="(item,index) in categoryList" :key="index">
<div class="m-jdhx-card-content-item-lable">{{item.categoryName}}</div>
<div class="m-jdhx-card-content-item-value">{{item.categoryRatio?item.categoryRatio:'0%'}}</div>
</div>
</div>
</div>
@ -29,27 +21,15 @@
<div class="m-jdhx-card-title">
<div class="m-jdhx-card-title-icon">
<img
src="../../../../assets/images/shuju/overview/fangwu-icon.png"
src="@/assets/images/shuju/overview/fangwu-icon.png"
/>
</div>
<div class="m-jdhx-card-title-txt">房屋性质/用途</div>
</div>
<div class="m-jdhx-card-content">
<div class="m-jdhx-card-content-item">
<div class="m-jdhx-card-content-item-lable">自助</div>
<div class="m-jdhx-card-content-item-value">60%</div>
</div>
<div class="m-jdhx-card-content-item">
<div class="m-jdhx-card-content-item-lable">出租</div>
<div class="m-jdhx-card-content-item-value">18%</div>
</div>
<div class="m-jdhx-card-content-item">
<div class="m-jdhx-card-content-item-lable">办公</div>
<div class="m-jdhx-card-content-item-value">10%</div>
</div>
<div class="m-jdhx-card-content-item">
<div class="m-jdhx-card-content-item-lable">仓储</div>
<div class="m-jdhx-card-content-item-value">12%</div>
<div class="m-jdhx-card-content-item" v-for="(item,index) in houseList" :key="index">
<div class="m-jdhx-card-content-item-lable">{{item.name}}</div>
<div class="m-jdhx-card-content-item-value">{{item.num}}</div>
</div>
</div>
</div>
@ -61,7 +41,7 @@
<div class="m-jdhx-center-content-item-jumin">
<div class="m-jdhx-center-content-item-jumin-icon">
<img
src="../../../../assets/images/shuju/overview/renkou-icon.png"
src="@/assets/images/shuju/overview/renkou-icon.png"
/>
</div>
<div class="m-jdhx-center-content-item-jumin-txt">人口</div>
@ -69,7 +49,7 @@
<div class="m-jdhx-center-content-item-fangwu">
<div class="m-jdhx-center-content-item-fangwu-icon">
<img
src="../../../../assets/images/shuju/overview/fangwu2-icon.png"
src="@/assets/images/shuju/overview/fangwu2-icon.png"
/>
</div>
<div class="m-jdhx-center-content-item-fangwu-txt">房屋</div>
@ -79,7 +59,7 @@
<div class="m-jdhx-center-content-item-manyi">
<div class="m-jdhx-center-content-item-manyi-icon">
<img
src="../../../../assets/images/shuju/overview/manyidu-icon.png"
src="@/assets/images/shuju/overview/manyidu-icon.png"
/>
</div>
<div class="m-jdhx-center-content-item-manyi-txt">满意度</div>
@ -87,7 +67,7 @@
<div class="m-jdhx-center-content-item-fengxian">
<div class="m-jdhx-center-content-item-fengxian-icon">
<img
src="../../../../assets/images/shuju/overview/fengxianry-icon.png"
src="@/assets/images/shuju/overview/fengxianry-icon.png"
/>
</div>
<div class="m-jdhx-center-content-item-fengxian-txt">风险人员</div>
@ -101,23 +81,15 @@
<div class="m-jdhx-card-title">
<div class="m-jdhx-card-title-icon">
<img
src="../../../../assets/images/shuju/overview/manyi-icon.png"
src="@/assets/images/shuju/overview/manyi-icon.png"
/>
</div>
<div class="m-jdhx-card-title-txt">主要不满意事项</div>
</div>
<div class="m-jdhx-card-content">
<div class="m-jdhx-card-content-item">
<div class="m-jdhx-card-content-item-lable">楼院卫生</div>
<div class="m-jdhx-card-content-item-value">67%</div>
</div>
<div class="m-jdhx-card-content-item">
<div class="m-jdhx-card-content-item-lable">医护人员态度</div>
<div class="m-jdhx-card-content-item-value">13%</div>
</div>
<div class="m-jdhx-card-content-item">
<div class="m-jdhx-card-content-item-lable">基础教育便利</div>
<div class="m-jdhx-card-content-item-value">20%</div>
<div class="m-jdhx-card-content-item" v-for="(item,index) in notSatisfactionList" :key="index">
<div class="m-jdhx-card-content-item-lable">{{item.name}}</div>
<div class="m-jdhx-card-content-item-value">{{item.ratio?item.ratio:'0%'}}</div>
</div>
</div>
</div>
@ -125,23 +97,15 @@
<div class="m-jdhx-card-title">
<div class="m-jdhx-card-title-icon">
<img
src="../../../../assets/images/shuju/overview/fengxian-icon.png"
src="@/assets/images/shuju/overview/fengxian-icon.png"
/>
</div>
<div class="m-jdhx-card-title-txt">风险人员</div>
</div>
<div class="m-jdhx-card-content">
<div class="m-jdhx-card-content-item">
<div class="m-jdhx-card-content-item-lable">12345</div>
<div class="m-jdhx-card-content-item-value">78</div>
</div>
<div class="m-jdhx-card-content-item">
<div class="m-jdhx-card-content-item-lable">生意满意度</div>
<div class="m-jdhx-card-content-item-value">96</div>
</div>
<div class="m-jdhx-card-content-item">
<div class="m-jdhx-card-content-item-lable">社区满意度自查</div>
<div class="m-jdhx-card-content-item-value">122</div>
<div class="m-jdhx-card-content-item" v-for="(item,index) in riskList" :key="index">
<div class="m-jdhx-card-content-item-lable">{{item.riskName}}</div>
<div class="m-jdhx-card-content-item-value">{{item.riskNum}}</div>
</div>
</div>
</div>
@ -152,11 +116,41 @@
<script>
export default {
name: "jdtphx",
data() {},
data() {
return {
org: this.$store.state.chooseArea.chooseName,
categoryList: [],
houseList: [],
notSatisfactionList: [],
riskList: [],
}
},
watch: {
"$store.state.chooseArea.chooseName"(val) {
if(val.orgId) {
this.getData(this.$store.state.chooseArea.chooseName)
}
}
},
mounted() {
if (this.org.orgId) {
this.getData(this.org)
}
},
methods: {
getData({orgId, level}) {
this.$http.get('/actual/base/streetOverview/overviewPortrait?orgId=' + orgId + '&level=' + level).then(({data: {data}}) => {
this.categoryList = data.categoryList
this.houseList = data.houseList
this.notSatisfactionList = data.notSatisfactionList
this.riskList = data.riskList
})
}
}
};
</script>
<style
lang="scss"
src="@/assets/scss/dataBoard/overview/index.scss"
scoped
lang="scss"
src="@/assets/scss/dataBoard/overview/index.scss"
scoped
></style>

4
src/views/dataBoard/overview/components/map-top.vue

@ -72,7 +72,9 @@
<script>
export default {
name: "map-top",
data() {},
data() {
return {}
},
};
</script>

78
src/views/dataBoard/overview/components/rfsjtj.vue

@ -3,33 +3,74 @@
<div class="m-rfsjtj-item">
<div class="m-rfsjtj-item-des">采集房屋数</div>
<div class="m-rfsjtj-item-jian">
<span>{{ numFormat(2317) }}</span>
<span>{{ numFormat(house.sumNum) }}</span>
</div>
<div class="m-rfsjtj-item-change">
<div class="m-rfsjtj-item-change-today">今日</div>
<div class="m-rfsjtj-item-change-new">新增<span>31</span></div>
<div class="m-rfsjtj-item-change-update">更新<span>217</span></div>
<div class="m-rfsjtj-item-change-new">新增<span>{{ house.dayAddNum }}</span></div>
<div class="m-rfsjtj-item-change-update">更新<span>{{ house.dayUpdateNum }}</span></div>
</div>
</div>
<div class="m-rfsjtj-item">
<div class="m-rfsjtj-item-des">采集人口数</div>
<div class="m-rfsjtj-item-ren">
<span>{{ numFormat(6302) }}</span>
<span>{{ numFormat(resident.sumNum) }}</span>
</div>
<div class="m-rfsjtj-item-change">
<div class="m-rfsjtj-item-change-today">今日</div>
<div class="m-rfsjtj-item-change-new">新增<span>24</span></div>
<div class="m-rfsjtj-item-change-update">更新<span>466</span></div>
<div class="m-rfsjtj-item-change-new">新增<span>{{ resident.dayAddNum }}</span></div>
<div class="m-rfsjtj-item-change-update">更新<span>{{ resident.dayUpdateNum }}</span></div>
</div>
</div>
</div>
</template>
<script>
var timer
export default {
name: "rfsjtj",
data() {},
data() {
return {
org: this.$store.state.chooseArea.chooseName,
house: {
dayAddNum: 0,
dayUpdateNum: 0,
sumNum: 0,
},
resident: {
dayAddNum: 0,
dayUpdateNum: 0,
sumNum: 0,
},
}
},
watch: {
"$store.state.chooseArea.chooseName"(val) {
if (val.orgId) {
this.getData(this.$store.state.chooseArea.chooseName)
}
}
},
mounted() {
if (this.org.orgId) {
this.getData(this.org)
}
},
activated() {
if (this.$store.state.chooseArea.chooseName.orgId) {
this.getData(this.$store.state.chooseArea.chooseName)
}
},
destroyed() {
clearInterval(timer)
console.log('xiaohui')
},
deactivated() {
clearInterval(timer)
console.log('xiaohui1')
},
methods: {
numFormat(num) {
num = num.toString().split("."); //
@ -50,12 +91,29 @@ export default {
}
return res;
},
getData({orgId, level}) {
clearInterval(timer)
this.$http.get('/actual/base/streetOverview/residentHouseGroup?orgId=' + orgId + '&level=' + level).then(({data: {data}}) => {
data.forEach(item => {
if (item.type === 'house') {
this.house = item
}
if (item.type === 'resident') {
this.resident = item
}
});
})
timer = setInterval(() => {
this.getData({orgId, level})
},1000 * 60)
}
},
};
</script>
<style
lang="scss"
src="@/assets/scss/dataBoard/overview/index.scss"
scoped
lang="scss"
src="@/assets/scss/dataBoard/overview/index.scss"
scoped
></style>

89
src/views/dataBoard/overview/components/sq12345.vue

@ -8,14 +8,14 @@
<div class="th">处理中</div>
<div class="th">已办结</div>
</div>
<div class="tr" v-for="item in pmList" :key="item.num">
<div :class="item.num < 4 ? `td tdbg${item.num}` : 'td'">
{{ item.num }}
<div class="tr" v-for="(item,index) in pmList" :key="index">
<div :class="index - 0 + 1 < 4 ? `td tdbg${index-0+1}` : 'td'">
{{ index - 0 + 1 }}
</div>
<div class="td">{{ item.shequ }}</div>
<div class="td">{{ item.fwgxs }}</div>
<div class="td td-or">{{ item.rkgxs }}</div>
<div class="td td-gr">{{ item.rfgxzs }}</div>
<div class="td">{{ item.orgName }}</div>
<div class="td">{{ item.sumNum }}</div>
<div class="td td-or">{{ item.processNum }}</div>
<div class="td td-gr">{{ item.closedNum }}</div>
</div>
</div>
</div>
@ -23,55 +23,40 @@
<script>
export default {
name: "sq12345",
props: {
date: {
type: String,
default: ''
}
},
data() {
return {
value2: "2023-02",
pmList: [
{
num: "1",
shequ: "XX社区",
fwgxs: "350",
rkgxs: "12",
rfgxzs: "410",
},
{
num: "2",
shequ: "XX社区",
fwgxs: "350",
rkgxs: "12",
rfgxzs: "410",
},
{
num: "3",
shequ: "XX社区",
fwgxs: "350",
rkgxs: "12",
rfgxzs: "410",
},
{
num: "4",
shequ: "XX社区",
fwgxs: "350",
rkgxs: "12",
rfgxzs: "410",
},
{
num: "5",
shequ: "XX社区",
fwgxs: "350",
rkgxs: "12",
rfgxzs: "410",
},
{
num: "6",
shequ: "XX社区",
fwgxs: "350",
rkgxs: "12",
rfgxzs: "410",
},
],
org: this.$store.state.chooseArea.chooseName,
pmList: [],
};
},
watch: {
"$store.state.chooseArea.chooseName"(val) {
if (val.orgId) {
this.getList()
}
},
date() {
this.getList()
}
},
mounted() {
if (this.org.orgId) {
this.getList()
}
},
methods: {
getList() {
this.$http.get('/actual/base/streetOverview/eventAgencyGroup?month='+this.date+'&level='+this.$store.state.chooseArea.chooseName.level+'&orgId='+this.$store.state.chooseArea.chooseName.orgId).then(({data: {data}}) => {
this.pmList = data
})
}
}
};
</script>

89
src/views/dataBoard/overview/components/sqrfph.vue

@ -8,14 +8,14 @@
<div class="th">人口更新数</div>
<div class="th">人房更新总数</div>
</div>
<div class="tr" v-for="item in pmList" :key="item.num">
<div :class="item.num < 4 ? `td tdbg${item.num}` : 'td'">
{{ item.num }}
<div class="tr" v-for="(item,index) in pmList" :key="index">
<div :class="index - 0 + 1 < 4 ? `td tdbg${index-0+1}` : 'td'">
{{ index - 0 + 1 }}
</div>
<div class="td">{{ item.shequ }}</div>
<div class="td">{{ item.fwgxs }}</div>
<div class="td">{{ item.rkgxs }}</div>
<div class="td">{{ item.rfgxzs }}</div>
<div class="td">{{ item.orgName }}</div>
<div class="td">{{ item.houseNum }}</div>
<div class="td">{{ item.residentNum }}</div>
<div class="td">{{ item.sumNum }}</div>
</div>
</div>
</div>
@ -23,55 +23,40 @@
<script>
export default {
name: "sqrfph",
props: {
date: {
type: String,
default: ''
}
},
data() {
return {
value2: "2023-02",
pmList: [
{
num: "1",
shequ: "XX社区",
fwgxs: "350",
rkgxs: "1720",
rfgxzs: "2070",
},
{
num: "2",
shequ: "XX社区",
fwgxs: "350",
rkgxs: "1720",
rfgxzs: "2070",
},
{
num: "3",
shequ: "XX社区",
fwgxs: "350",
rkgxs: "1720",
rfgxzs: "2070",
},
{
num: "4",
shequ: "XX社区",
fwgxs: "350",
rkgxs: "1720",
rfgxzs: "2070",
},
{
num: "5",
shequ: "XX社区",
fwgxs: "350",
rkgxs: "1720",
rfgxzs: "2070",
},
{
num: "6",
shequ: "XX社区",
fwgxs: "350",
rkgxs: "1720",
rfgxzs: "2070",
},
],
org: this.$store.state.chooseArea.chooseName,
pmList: [],
};
},
watch: {
"$store.state.chooseArea.chooseName"(val) {
if (val.orgId) {
this.getList()
}
},
date() {
this.getList()
}
},
mounted() {
if (this.org.orgId) {
this.getList()
}
},
methods: {
getList() {
this.$http.get('/actual/base/streetOverview/residentHouseUpdateGroup?month='+this.date+'&level='+this.$store.state.chooseArea.chooseName.level+'&orgId='+this.$store.state.chooseArea.chooseName.orgId).then(({data: {data}}) => {
this.pmList = data
})
}
}
};
</script>

273
src/views/dataBoard/overview/index.vue

@ -1,83 +1,147 @@
<template>
<div>
<cpt-bread
@tap="clickBreadItem"
v-if="breadList.length > 1"
:bread-list="breadList"
@tap="clickBreadItem"
v-if="breadList.length > 1"
:bread-list="breadList"
/>
<div class="g-row">
<div class="g-left">
<div class="m-box">
<title-box text="街道介绍" />
<jdjs />
<title-box :text="`${
currentLevel === 'district'?'区':
currentLevel === 'street'?'街道':
currentLevel === 'community'?'社区':
currentLevel === 'grid'?'网格':''
}介绍`"/>
<jdjs/>
</div>
<div class="m-box">vervie
<title-box text="街道图谱画像" />
<jdtphx />
<div class="m-box">
<title-box :text="`${
currentLevel === 'district'?'区':
currentLevel === 'street'?'街道':
currentLevel === 'community'?'社区':
currentLevel === 'grid'?'网格':''
}图谱画像`"/>
<jdtphx :id="orgId"/>
</div>
</div>
<div class="g-center">
<div class="m-map">
<map-top />
<map-top/>
<grid-map
ref="map"
@clickAgency="clickAgencyItem"
:srcGridData="orgData"
@clickDotBtn="handleClickDotBtn"
ref="map"
@clickAgency="clickAgencyItem"
:srcGridData="orgData"
@clickDotBtn="handleClickDotBtn"
/>
</div>
<div class="m-box m-rybox">
<title-box text="XX街道网格员" />
<jdwgy />
<title-box text="XX街道网格员"/>
<jdwgy/>
</div>
</div>
<div class="g-right">
<div class="m-box">
<title-box text="人房数据统计" />
<rfsjtj />
<title-box text="人房数据统计"/>
<rfsjtj/>
</div>
<div class="m-box">
<!-- 街道概览 -->
<div v-if="currentLevel === 'street' || currentLevel === 'district'" class="m-box">
<title-box text="各社区人房数据更新排行">
<span class="date-span">
<el-date-picker
v-model="rfphDate"
format="yyyy-MM"
value-format="yyyy-MM"
@change="changeDate"
type="month"
:clearable="false"
placeholder="选择月"
v-model="rfphDate"
format="yyyy-MM"
value-format="yyyy-MM"
@change="changeDate"
type="month"
:clearable="false"
placeholder="选择月"
>
</el-date-picker>
</span>
</title-box>
<sqrfph />
<sqrfph :date="rfphDate"/>
</div>
<div class="m-box">
<div v-if="currentLevel === 'street' || currentLevel === 'district'" class="m-box">
<title-box text="各社区12345投诉事件统计">
<span class="date-span">
<el-date-picker
v-model="rfphDate"
format="yyyy-MM"
value-format="yyyy-MM"
@change="changeDate"
type="month"
:clearable="false"
placeholder="选择月"
>
</el-date-picker>
v-model="sq12345Date"
format="yyyy-MM"
value-format="yyyy-MM"
type="month"
:clearable="false"
placeholder="选择月"
/>
</span>
</title-box>
<sq12345 />
<sq12345 :date="sq12345Date"/>
</div>
<!-- 社区&网格-->
<div v-if="currentLevel === 'community' || currentLevel === 'grid'" class="m-box">
<title-box text="人房数据动态更新"/>
<DynamicHumanRoomData/>
</div>
<!-- 社区概览-->
<div v-if="currentLevel === 'community'" class="m-box">
<title-box text="社区满意度自查结果">
<span class="date-span">
<el-date-picker
v-model="sqzcDate"
format="yyyy-MM"
value-format="yyyy-MM"
type="month"
:clearable="false"
placeholder="选择月"
/>
</span>
</title-box>
<CommunityResult :date="sqzcDate"/>
</div>
<div v-if="currentLevel === 'community'" class="m-box">
<title-box text="事件&回访">
<span class="date-span">
<el-date-picker
v-model="sjhfDate"
format="yyyy-MM"
value-format="yyyy-MM"
@change="changeDate"
type="month"
:clearable="false"
placeholder="选择月"
/>
</span>
</title-box>
<EventAndFollowUp :date="sjhfDate"/>
</div>
<!-- 网格 -->
<div v-if="currentLevel === 'grid'" class="m-box">
<title-box text="社区网格数据更新情况排行">
<span class="date-span">
<el-date-picker
v-model="sqwggxDate"
format="yyyy-MM"
value-format="yyyy-MM"
@change="changeDate"
type="month"
:clearable="false"
placeholder="选择月"
/>
</span>
</title-box>
<RankingGridData :date="sqwggxDate"/>
</div>
</div>
<cpt-loading v-show="false" />
</div>
</div>
<cpt-loading v-show="false"/>
</div>
</template>
@ -93,8 +157,15 @@ import jdwgy from "@/views/dataBoard/overview/components/jdwgy.vue";
import rfsjtj from "@/views/dataBoard/overview/components/rfsjtj.vue";
import sqrfph from "@/views/dataBoard/overview/components/sqrfph.vue";
import sq12345 from "@/views/dataBoard/overview/components/sq12345.vue";
import { requestPostBi } from "@/js/dai/request-bipass";
import { requestPost } from "@/js/dai/request";
import DynamicHumanRoomData from "@/views/dataBoard/overview/components/DynamicHumanRoomData.vue";
import CommunityResult from "@/views/dataBoard/overview/components/CommunityResult.vue";
import EventAndFollowUp from "@/views/dataBoard/overview/components/EventAndFollowUp.vue";
import RankingGridData from "@/views/dataBoard/overview/components/RankingGridData.vue";
import {requestPostBi} from "@/js/dai/request-bipass";
import {requestPost} from "@/js/dai/request";
import getQueryPara from "dai-js/modules/getQueryPara";
export default {
@ -112,22 +183,31 @@ export default {
rfsjtj,
sqrfph,
sq12345,
DynamicHumanRoomData,
CommunityResult,
EventAndFollowUp,
RankingGridData
},
data() {
return {
loading: false,
rfphDate: "2023-03",
rfphDate: this.$moment().format('YYYY-MM'),
sq12345Date: this.$moment().format('YYYY-MM'),
sqzcDate: this.$moment().format('YYYY-MM'),
sjhfDate: this.$moment().format('YYYY-MM'),
sqwggxDate: this.$moment().format('YYYY-MM'),
orgData: {
children: [],
}, //
orgId: "",
orgLevel: "",
currentLevel: "",
breadList: [
{
orgId: "",
orgLevel: "",
meta: { title: "人房总览" },
meta: {title: "人房总览"},
},
],
@ -137,12 +217,21 @@ export default {
},
mounted() {
const queryOrgId = getQueryPara("orgId");
const queryOrgLevel = getQueryPara("orgLevel");
this.init(queryOrgId, queryOrgLevel);
// const queryOrgId = getQueryPara("orgId");
// const queryOrgLevel = getQueryPara("orgLevel");
// this.init(queryOrgId, queryOrgLevel);
if(this.$store.state.chooseArea.chooseName.orgId) {
this.getMapData()
}
},
watch: {},
watch: {
"$store.state.chooseArea.chooseName"(val){
if(val.orgId) {
this.getMapData()
}
}
},
methods: {
async init(queryOrgId, queryOrgLevel) {
@ -157,15 +246,14 @@ export default {
//
this.loading = false;
await this.getMapData();
await this.getSubMapData();
// await this.getSubMapData();
this.loading = true;
},
changeDate(e){
this.rfphDate=e;
changeDate(e) {
this.rfphDate = e;
},
handleClickDotBtn(type, info) {
console.log("handleClickDotBtn", type, info);
if (type == "watch-resi") {
this.displayedResiId = info.user_id;
} else if (type == "watch-house") {
@ -173,7 +261,7 @@ export default {
}
},
clickBreadItem({ item }) {
clickBreadItem({item}) {
this.toBread(item);
},
@ -181,13 +269,13 @@ export default {
this.toBread({
orgId: item.id,
orgLevel: item.level,
meta: { title: item.name },
meta: {title: item.name},
});
},
toBread(item) {
const { orgId } = item;
const { breadList } = this;
const {orgId} = item;
const {breadList} = this;
let index = breadList.findIndex((val) => val.orgId === orgId);
// return console.log(item, breadList, index);
if (index >= 0) {
@ -196,12 +284,11 @@ export default {
breadList.push(item);
this.breadList = breadList;
}
this.init(item.orgId, item.orgLevel);
this.getMapData(item.orgId,item.orgLevel)
},
//
handleClickSearchItem(item) {
console.log("handleClickSearchItem", item);
if (!item.longitude) {
return this.$message.error("请先设置坐标");
}
@ -212,60 +299,34 @@ export default {
},
//
async getMapData() {
console.log("=========================getMapData");
async getMapData(orgId=this.$store.state.chooseArea.chooseName.orgId,level=this.$store.state.chooseArea.chooseName.level) {
const url = "org_map";
const { data, code, msg } = await requestPostBi(
url,
{
queryParam: {
org_id: this.orgId,
},
},
{
// mockId: 60810589,
}
);
if (code === 0) {
console.log("data::", data);
let info = data[0];
this.orgData = {
...info,
id: info.org_id,
name: info.org_name,
latitude: parseFloat(info.latitude),
longitude: parseFloat(info.longitude),
coordinates: info.coordinates || "",
children: [],
};
this.$http.post(`/gov/org/agency/maporg`, {orgId, level}).then(({data: {data}}) => {
this.orgData = data;
this.orgId = this.orgData.org_id;
this.orgLevel = this.orgData.level;
} else {
this.$message.error(msg);
}
this.currentLevel = this.orgData.agencyLevel;
})
},
//
async getSubMapData() {
console.log("=========================getSubMapData");
const url = "sub_org_map";
const { data, code, msg } = await requestPostBi(
url,
{
queryParam: {
org_id: this.orgId,
const {data, code, msg} = await requestPostBi(
url,
{
queryParam: {
org_id: this.orgId,
},
},
},
{
// mockId: 61831860,
}
{
// mockId: 61831860,
}
);
if (code === 0) {
const { orgData } = this;
const {orgData} = this;
orgData.children = data.map((item) => {
return {
...item,
@ -276,11 +337,7 @@ export default {
coordinates: item.coordinates || "",
};
});
this.orgData = { ...orgData };
console.log(
"==========================getSubMapData:result",
this.orgData
);
this.orgData = {...orgData};
} else {
this.$message.error(msg);
}
@ -294,7 +351,7 @@ export default {
level: this.orgLevel,
};
const { data, code, msg } = await requestPost(url, params);
const {data, code, msg} = await requestPost(url, params);
if (code === 0) {
this.orgData = data;
this.orgId = this.orgId;
@ -311,7 +368,7 @@ export default {
</script>
<style
lang="scss"
src="@/assets/scss/dataBoard/overview/index.scss"
scoped
lang="scss"
src="@/assets/scss/dataBoard/overview/index.scss"
scoped
></style>

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

@ -583,7 +583,6 @@ export default {
const { orgId } = item;
const { breadList } = this;
let index = breadList.findIndex((val) => val.orgId === orgId);
// return console.log(item, breadList, index);
if (index >= 0) {
this.breadList = breadList.slice(0, index + 1);
} else {
@ -607,7 +606,6 @@ export default {
//
async handleSearch() {
this.searchModule.result = [];
console.log(this.searchModule);
const { searchModule } = this;
const url = [
@ -662,10 +660,6 @@ export default {
...detailJson,
};
});
console.log(
"==========this.searchModule.result",
this.searchModule.result
);
} else {
this.$message.error(msg);
}
@ -673,7 +667,6 @@ export default {
// ps:
async getPerInfo() {
console.log("=========================getPerInfo");
const url = "resident_ratio";
const { data, code, msg } = await requestPostBi(
@ -700,7 +693,6 @@ export default {
//
async getResiCategoryData() {
console.log("=========================getResiCategoryData");
const url = "resident_class_statics";
const { data, code, msg } = await requestPostBi(
@ -733,7 +725,6 @@ export default {
//
async getResiCategoryForecastData() {
console.log("=========================getResiCategoryForecastData");
const url = "resident_class_predict";
const { data, code, msg } = await requestPostBi(
@ -766,7 +757,6 @@ export default {
//
async getMapData() {
console.log("=========================getMapData");
const url = "org_map";
const { data, code, msg } = await requestPostBi(
@ -801,7 +791,6 @@ export default {
//
async getSubMapData() {
console.log("=========================getSubMapData");
const url = "sub_org_map";
const { data, code, msg } = await requestPostBi(
@ -829,10 +818,6 @@ export default {
};
});
this.orgData = { ...orgData };
console.log(
"==========================getSubMapData:result",
this.orgData
);
} else {
this.$message.error(msg);
}

484
src/views/dataBoard/renfang/resi/analyze.vue

@ -1,41 +1,37 @@
<template>
<div class="g-pgi">
<!-- 组织路由 -->
<cpt-bread
:separator="'/'"
@tap="handleClickBreadItem"
:breadList="breadList"
></cpt-bread>
<div class="m-title">
<img
class="title_img"
src="@/assets/images/index/list-logo.png"
alt
/>
<div class="tip_title">{{ tableTitle }}</div>
<div class="title_line"></div>
</div>
<div class="g-listbox">
<cpt-tb
:col-list="colList"
:loading="loading"
:header="header"
:list="list"
:total="total"
@handleSizeChange="handleSizeChange"
@handlePageNoChange="handlePageNoChange"
@operate="showInfo"
></cpt-tb>
</div>
<resi-details
@close="displayedResiId = ''"
:resi-id="displayedResiId"
v-if="displayedResiId"
/>
</div>
<div class="g-pgi">
<!-- 组织路由 -->
<cpt-bread
:separator="'/'"
@tap="handleClickBreadItem"
:breadList="breadList"
></cpt-bread>
<div class="m-title">
<img class="title_img" src="@/assets/images/index/list-logo.png" alt />
<div class="tip_title">{{ tableTitle }}</div>
<div class="title_line"></div>
</div>
<div class="g-listbox">
<cpt-tb
:col-list="colList"
:loading="loading"
:header="header"
:list="list"
:total="total"
@handleSizeChange="handleSizeChange"
@handlePageNoChange="handlePageNoChange"
@operate="showInfo"
></cpt-tb>
</div>
<resi-details
@close="displayedResiId = ''"
:resi-id="displayedResiId"
v-if="displayedResiId"
/>
</div>
</template>
<script>
@ -46,213 +42,213 @@ import { requestPostBi } from "@/js/dai/request-bipass";
import getQueryPara from "dai-js/modules/getQueryPara";
export default {
name: "resi-list",
components: {
cptTb,
cptBread,
resiDetails,
},
data() {
return {
breadList: [
{
type: "back",
meta: {
title: "人房总览",
},
},
{
meta: {
title: "居民列表",
},
},
],
tableTitle: "居民列表",
searchName: "",
orgLevel: "",
org_id: "",
resiType: "", //
loading: true,
pageSize: parseInt(localStorage.getItem("dataBoard_PageSize")) || 20,
pageNo: 1,
total: 0,
srcTableData: [],
list: [],
colList: [
{
align: "left",
width: "5%",
},
{
align: "left",
width: "10%",
},
{
align: "left",
width: "20%",
},
{
align: "left",
width: "20%",
},
{
align: "left",
width: "15%",
},
{
align: "left",
width: "10%",
},
{
align: "left",
width: "5%",
},
{
align: "left",
width: "10%",
},
{
align: "left",
width: "10%",
},
],
header: [
"序号",
"姓名",
"所属网格",
"所属房屋",
"联系电话",
"证件号",
"性别",
"出生日期",
"操作",
],
displayedResiId: "",
};
},
activated() {
this.org_id = getQueryPara("org_id");
this.resiType = getQueryPara("type");
const type_name = getQueryPara("type_name");
this.breadList[1].meta.title = type_name + "居民列表";
this.tableTitle = type_name + "居民列表";
this.pageNo = 1;
this.getList();
this.getCount();
},
methods: {
handleClickBreadItem({ item }) {
if (item.type == "back") {
this.$router.back();
}
},
handleSearch() {},
showInfo(index) {
let item = this.srcTableData[index];
this.displayedResiId = item.user_id;
},
handlePageNoChange(pageNo) {
this.pageNo = pageNo;
this.getList();
},
handleSizeChange(pageSize) {
localStorage.setItem('dataBoard_PageSize', pageSize);
this.pageSize = pageSize;
this.getList();
},
async getList() {
const { org_id, resiType, pageNo, pageSize } = this;
this.loading = true;
const url = "resident_analyze_list";
const { data, code, msg } = await requestPostBi(
url,
{
queryParam: {
org_id,
type: resiType,
pageNo,
pageSize,
},
},
{
// mockId: 60069169,
}
);
this.loading = false;
if (code === 0) {
this.srcTableData = data;
// this.total = data.total;
this.list = data.map((item, index) => {
return [
index + 1,
item.user_name ? item.user_name : "--",
item.grid ? item.grid : "--",
item.house ? item.house : "--",
item.telephone ? item.telephone : "--",
item.idcard ? item.idcard : "--",
item.gender ? item.gender : "--",
item.birthday ? item.birthday : "--",
{ type: "operate", list: ["查看"] },
];
});
} else {
this.$message.error(msg);
}
},
async getCount() {
const { org_id, resiType, pageNo, pageSize } = this;
const url = "resident_analyze_list_total";
const { data, code, msg } = await requestPostBi(
url,
{
queryParam: {
org_id,
type: resiType,
pageNo,
pageSize,
},
},
{
// mockId: 63070408,
}
);
if (code === 0) {
this.total = parseInt(data[0].count);
} else {
this.$message.error(msg);
}
},
},
destroyed() {
console.log("我已经离开了!");
},
name: "resi-list",
components: {
cptTb,
cptBread,
resiDetails,
},
data() {
return {
breadList: [
{
type: "back",
meta: {
title: "人房总览",
},
},
{
meta: {
title: "居民列表",
},
},
],
tableTitle: "居民列表",
searchName: "",
orgLevel: "",
org_id: "",
resiType: "", //
loading: true,
pageSize: parseInt(localStorage.getItem("dataBoard_PageSize")) || 20,
pageNo: 1,
total: 0,
srcTableData: [],
list: [],
colList: [
{
align: "left",
width: "5%",
},
{
align: "left",
width: "10%",
},
{
align: "left",
width: "20%",
},
{
align: "left",
width: "20%",
},
{
align: "left",
width: "15%",
},
{
align: "left",
width: "10%",
},
{
align: "left",
width: "5%",
},
{
align: "left",
width: "10%",
},
{
align: "left",
width: "10%",
},
],
header: [
"序号",
"姓名",
"所属网格",
"所属房屋",
"联系电话",
"证件号",
"性别",
"出生日期",
"操作",
],
displayedResiId: "",
};
},
activated() {
this.org_id = getQueryPara("org_id");
this.resiType = getQueryPara("type");
const type_name = getQueryPara("type_name");
this.breadList[1].meta.title = type_name + "居民列表";
this.tableTitle = type_name + "居民列表";
this.pageNo = 1;
this.getList();
this.getCount();
},
methods: {
handleClickBreadItem({ item }) {
if (item.type == "back") {
this.$router.back();
}
},
handleSearch() {},
showInfo(index) {
let item = this.srcTableData[index];
this.displayedResiId = item.user_id;
},
handlePageNoChange(pageNo) {
this.pageNo = pageNo;
this.getList();
},
handleSizeChange(pageSize) {
localStorage.setItem("dataBoard_PageSize", pageSize);
this.pageSize = pageSize;
this.getList();
},
async getList() {
const { org_id, resiType, pageNo, pageSize } = this;
this.loading = true;
const url = "resident_analyze_list";
const { data, code, msg } = await requestPostBi(
url,
{
queryParam: {
org_id,
type: resiType,
pageNo,
pageSize,
},
},
{
// mockId: 60069169,
}
);
this.loading = false;
if (code === 0) {
this.srcTableData = data;
// this.total = data.total;
this.list = data.map((item, index) => {
return [
index + 1,
item.user_name ? item.user_name : "--",
item.grid ? item.grid : "--",
item.house ? item.house : "--",
item.telephone ? item.telephone : "--",
item.idcard ? item.idcard : "--",
item.gender ? item.gender : "--",
item.birthday ? item.birthday : "--",
{ type: "operate", list: ["查看"] },
];
});
} else {
this.$message.error(msg);
}
},
async getCount() {
const { org_id, resiType, pageNo, pageSize } = this;
const url = "resident_analyze_list_total";
const { data, code, msg } = await requestPostBi(
url,
{
queryParam: {
org_id,
type: resiType,
pageNo,
pageSize,
},
},
{
// mockId: 63070408,
}
);
if (code === 0) {
this.total = parseInt(data[0].count);
} else {
this.$message.error(msg);
}
},
},
destroyed() {
console.log("我已经离开了!");
},
};
</script>

38
src/views/dataBoard/renfang/resi/class.vue

@ -223,6 +223,12 @@ export default {
title: "人房总览",
},
},
{
path: "/dataBoard/renfang/visualizing",
meta: {
title: "",
},
},
{
meta: {
title: "居民列表",
@ -418,13 +424,22 @@ export default {
},
activated() {
this.org_id = getQueryPara("org_id");
this.type = getQueryPara("type");
this.type_id = getQueryPara("type_id");
this.pageType = getQueryPara("pageType");
this.type_name = getQueryPara("type_name");
const type_name = getQueryPara("type_name");
this.breadList[1].meta.title = type_name + "居民列表";
const query = this.$route.query;
this.org_id = query.org_id;
this.type = query.type;
this.type_id = query.type_id;
this.pageType = query.pageType;
this.type_name = query.type_name;
const type_name = query.type_name;
let title = type_name;
if (this.type == "jineng" || this.type == "gangwei") {
title = "失业人员";
}
if (this.type == "wennuan" || this.type == "fuwu") {
title = "低保人员";
}
this.type_name1 = title;
this.breadList[1].meta.title = title;
this.tableTitle = type_name + "居民列表";
this.pageNo = 1;
const type = this.type;
@ -467,7 +482,6 @@ export default {
};
}
this.getList();
// this.getCount();
if (this.pageType != "normal") {
this.colList = [
{
@ -555,6 +569,8 @@ export default {
type_id: this.type_id,
type_name: item.meta.title,
pageType: this.pageType,
type: this.type,
pageType: this.pageType,
},
});
},
@ -569,13 +585,15 @@ export default {
},
jumpPage(index) {
let item = this.listData[index];
console.log("item::", item);
this.$router.push({
path: "/organizational/orgPersonnel",
path: "/dataBoard/renfang/resident",
query: {
org_id: this.org_id,
type_id: this.type_id,
user_id: item.id,
type: this.type,
pageType: this.pageType,
type_name: this.type_name,
},
});
},

93
src/views/dataBoard/renfang/resident/index.vue

@ -0,0 +1,93 @@
<template>
<div>
<cpt-bread
@tap="clickBreadItem"
v-if="breadList.length > 1"
:bread-list="breadList"
/>
<personnel />
</div>
</template>
<script>
import cptBread from "@/views/dataBoard/renfang/cpts/bread";
import personnel from "@/views/dataBoard/cpts/personnel"
export default {
name: "renfang",
components: {
cptBread,
personnel,
},
data() {
return {
breadList: [
{
path: "/dataBoard/renfang/index",
meta: {
title: "人房总览",
},
},
{
path: "/dataBoard/renfang/visualizing",
meta: {
title: "",
},
},
{
path: "/dataBoard/renfang/resi-class",
meta: {
title: "居民列表",
},
},
{
path: "/dataBoard/renfang/resident",
meta: {
title: "居民画像",
},
},
],
};
},
mounted() {
const query = this.$route.query;
this.org_id = query.org_id;
this.type = query.type;
this.type_id = query.type_id;
this.pageType = query.pageType;
this.type_name = query.type_name;
let title = query.type_name;
if (this.type == "jineng" || this.type == "gangwei") {
title = "失业人员";
}
if (this.type == "wennuan" || this.type == "fuwu") {
title = "低保人员";
}
this.breadList[1].meta.title = title;
},
watch: {},
methods: {
clickBreadItem({ item }) {
this.$router.push({
path: item.path,
query: {
org_id: this.org_id,
type_id: this.type_id,
type: this.type,
type_name: this.type_name,
pageType: this.pageType,
},
});
}
},
};
</script>
<style
lang="scss"
src="@/assets/scss/dataBoard/renfang/index.scss"
scoped
></style>

1
src/views/dataBoard/renfang/visualizing/components/dataTitle.vue

@ -3,6 +3,7 @@
<img class="title_img" src="@/assets/images/index/list-logo.png" alt />
<div class="tip_title">{{ title }}</div>
<div class="title_line"></div>
<slot></slot>
</div>
</template>
<script>

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

@ -65,11 +65,6 @@ export default {
];
this.pageName = query.type_name;
this.breadList[1].meta.title = query.type_name;
// this.toBread({
// orgId: query.org_id,
// orgLevel: query.type_id,
// meta: { title: query.type_name },
// });
},
mounted() {},
methods: {

44
src/views/dataBoard/satisfactionEval/components/Tabs/index.vue

@ -1,7 +1,13 @@
<template>
<div class="tabs">
<div class="tab" :class="value2 === item.value?'cur':''" v-for="(item,index) in list" @click="tabClick(index)" :key="index">
{{item.label}}
<div
class="tab"
:class="value2 === item.value ? 'cur' : ''"
v-for="(item, index) in list"
@click="tabClick(index)"
:key="item.value"
>
{{ item.label }}
</div>
</div>
</template>
@ -10,31 +16,31 @@
export default {
name: "Tabs",
props: {
list:{
list: {
type: Array,
default: () => []
default: () => [],
},
value: {
type: [String, Number],
default: "",
},
value:{
type: [String,Number],
default: ''
}
},
data() {
return {
value2: this.value,
}
};
},
mounted() {
this.value2 = this.value
this.value2 = this.value;
},
methods: {
tabClick(index) {
this.value2 = this.list[index].value
this.$emit('changeVal',this.value)
this.$emit('changeLabel',this.list[index].label)
}
}
}
this.value2 = this.list[index].value;
this.$emit("changeVal", this.value2);
this.$emit("changeLabel", this.list[index].label);
},
},
};
</script>
<style scoped lang="scss">
@ -45,15 +51,15 @@ export default {
padding: 10px 11px;
font-size: 14px;
font-weight: 400;
color: #96B1CE;
color: #96b1ce;
min-width: 120px;
background: url("@/assets/images/manyidu/tab.png") repeat-x top left;
margin-right: 4px;
text-align: center;
&.cur {
color: #FFFFFF;
color: #ffffff;
background: url("@/assets/images/manyidu/tab_cur.png") repeat-x top left;
}
}
}
</style>
</style>

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

@ -1,8 +1,8 @@
<template>
<el-dialog
append-to-body
class="dissatisfied-detail"
title=""
:modal="false"
:visible.sync="dialogVisible"
width="1118px"
:before-close="handleClose">

468
yarn.lock

@ -2441,9 +2441,9 @@
"@types/node" "*"
"@types/hammerjs@^2.0.36":
version "2.0.41"
resolved "https://registry.npmmirror.com/@types/hammerjs/-/hammerjs-2.0.41.tgz#f6ecf57d1b12d2befcce00e928a6a097c22980aa"
integrity sha512-ewXv/ceBaJprikMcxCmWU1FKyMAQ2X7a9Gtmzw8fcg2kIePI1crERDM818W+XYrxqdBBOdlf2rm137bU+BltCA==
version "2.0.42"
resolved "https://registry.npmmirror.com/@types/hammerjs/-/hammerjs-2.0.42.tgz#d7a53edbc51b2c13a9a759c45d7b5e61243d7dba"
integrity sha512-Xxk14BrwHnGi0xlURPRb+Y0UNn2w3cTkeFm7pKMsYOaNgH/kabbJLhcBoNIodwsbTz7Z8KcWjtDvlGH0nc0U9w==
"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8":
version "7.0.12"
@ -3120,6 +3120,14 @@ any-promise@^1.0.0:
resolved "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==
anymatch@^1.3.0:
version "1.3.2"
resolved "https://registry.npmmirror.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a"
integrity sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==
dependencies:
micromatch "^2.1.5"
normalize-path "^2.0.0"
anymatch@^2.0.0:
version "2.0.0"
resolved "https://registry.npmmirror.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
@ -3146,6 +3154,35 @@ arch@^2.1.1:
resolved "https://registry.npmmirror.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11"
integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==
archiver-utils@^2.1.0:
version "2.1.0"
resolved "https://registry.npmmirror.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2"
integrity sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==
dependencies:
glob "^7.1.4"
graceful-fs "^4.2.0"
lazystream "^1.0.0"
lodash.defaults "^4.2.0"
lodash.difference "^4.5.0"
lodash.flatten "^4.4.0"
lodash.isplainobject "^4.0.6"
lodash.union "^4.6.0"
normalize-path "^3.0.0"
readable-stream "^2.0.0"
archiver@^3.0.0:
version "3.1.1"
resolved "https://registry.npmmirror.com/archiver/-/archiver-3.1.1.tgz#9db7819d4daf60aec10fe86b16cb9258ced66ea0"
integrity sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==
dependencies:
archiver-utils "^2.1.0"
async "^2.6.3"
buffer-crc32 "^0.2.1"
glob "^7.1.4"
readable-stream "^3.4.0"
tar-stream "^2.1.0"
zip-stream "^2.1.2"
archy@^1.0.0:
version "1.0.0"
resolved "https://registry.npmmirror.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40"
@ -3174,6 +3211,13 @@ arr-diff@^1.0.1:
arr-flatten "^1.0.1"
array-slice "^0.2.3"
arr-diff@^2.0.0:
version "2.0.0"
resolved "https://registry.npmmirror.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
integrity sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==
dependencies:
arr-flatten "^1.0.1"
arr-diff@^4.0.0:
version "4.0.0"
resolved "https://registry.npmmirror.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
@ -3260,6 +3304,11 @@ array-uniq@^1.0.1, array-uniq@^1.0.2:
resolved "https://registry.npmmirror.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==
array-unique@^0.2.1:
version "0.2.1"
resolved "https://registry.npmmirror.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
integrity sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg==
array-unique@^0.3.2:
version "0.3.2"
resolved "https://registry.npmmirror.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
@ -3360,7 +3409,7 @@ assign-symbols@^1.0.0:
resolved "https://registry.npmmirror.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==
async-each@^1.0.1:
async-each@^1.0.0, async-each@^1.0.1:
version "1.0.6"
resolved "https://registry.npmmirror.com/async-each/-/async-each-1.0.6.tgz#52f1d9403818c179b7561e11a5d1b77eb2160e77"
integrity sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==
@ -3387,7 +3436,7 @@ async-validator@~1.8.1:
dependencies:
babel-runtime "6.x"
async@^2.6.4:
async@^2.6.3, async@^2.6.4:
version "2.6.4"
resolved "https://registry.npmmirror.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221"
integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==
@ -3553,7 +3602,7 @@ babel-plugin-polyfill-regenerator@^0.5.2:
dependencies:
"@babel/helper-define-polyfill-provider" "^0.4.2"
babel-runtime@6.x, babel-runtime@^6.11.6:
babel-runtime@6.x, babel-runtime@^6.11.6, babel-runtime@^6.9.2:
version "6.26.0"
resolved "https://registry.npmmirror.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==
@ -3571,7 +3620,7 @@ balanced-match@^1.0.0:
resolved "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
base64-js@^1.0.2:
base64-js@^1.0.2, base64-js@^1.3.1:
version "1.5.1"
resolved "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
@ -3648,6 +3697,15 @@ bit-twiddle@^1.0.0:
resolved "https://registry.npmmirror.com/bit-twiddle/-/bit-twiddle-1.0.2.tgz#0c6c1fabe2b23d17173d9a61b7b7093eb9e1769e"
integrity sha512-B9UhK0DKFZhoTFcfvAzhqsjStvGJp9vYWf3+6SNTtdSQnvIgfkHbgHrg/e4+TH71N2GDu8tpmCVoyfrL1d7ntA==
bl@^4.0.3:
version "4.1.0"
resolved "https://registry.npmmirror.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==
dependencies:
buffer "^5.5.0"
inherits "^2.0.4"
readable-stream "^3.4.0"
block-stream@*:
version "0.0.9"
resolved "https://registry.npmmirror.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
@ -3740,6 +3798,15 @@ brace-expansion@^1.0.0, brace-expansion@^1.1.7:
balanced-match "^1.0.0"
concat-map "0.0.1"
braces@^1.8.2:
version "1.8.5"
resolved "https://registry.npmmirror.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7"
integrity sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==
dependencies:
expand-range "^1.8.1"
preserve "^0.2.0"
repeat-element "^1.1.2"
braces@^2.2.2, braces@^2.3.1, braces@^2.3.2:
version "2.3.2"
resolved "https://registry.npmmirror.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
@ -3847,6 +3914,11 @@ browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.21.10, browserslist@^
node-releases "^2.0.13"
update-browserslist-db "^1.0.11"
buffer-crc32@^0.2.1, buffer-crc32@^0.2.13:
version "0.2.13"
resolved "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==
buffer-from@^1.0.0:
version "1.1.2"
resolved "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
@ -3871,6 +3943,14 @@ buffer@^4.3.0:
ieee754 "^1.1.4"
isarray "^1.0.0"
buffer@^5.1.0, buffer@^5.5.0:
version "5.7.1"
resolved "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
dependencies:
base64-js "^1.3.1"
ieee754 "^1.1.13"
builtin-status-codes@^3.0.0:
version "3.0.0"
resolved "https://registry.npmmirror.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
@ -4125,6 +4205,22 @@ check-types@^8.0.3:
resolved "https://registry.npmmirror.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552"
integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==
chokidar@^1.6.0:
version "1.7.0"
resolved "https://registry.npmmirror.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
integrity sha512-mk8fAWcRUOxY7btlLtitj3A45jOwSAxH4tOFOoEGbVsl6cL6pPMWUy7dwZ/canfj3QEdP6FHSnf/l1c6/WkzVg==
dependencies:
anymatch "^1.3.0"
async-each "^1.0.0"
glob-parent "^2.0.0"
inherits "^2.0.1"
is-binary-path "^1.0.0"
is-glob "^2.0.0"
path-is-absolute "^1.0.0"
readdirp "^2.0.0"
optionalDependencies:
fsevents "^1.0.0"
chokidar@^2.1.8:
version "2.1.8"
resolved "https://registry.npmmirror.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917"
@ -4437,6 +4533,16 @@ component-emitter@^1.2.1:
resolved "https://registry.npmmirror.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
compress-commons@^2.1.1:
version "2.1.1"
resolved "https://registry.npmmirror.com/compress-commons/-/compress-commons-2.1.1.tgz#9410d9a534cf8435e3fbbb7c6ce48de2dc2f0610"
integrity sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==
dependencies:
buffer-crc32 "^0.2.13"
crc32-stream "^3.0.1"
normalize-path "^3.0.0"
readable-stream "^2.3.6"
compressible@~2.0.16:
version "2.0.18"
resolved "https://registry.npmmirror.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba"
@ -4608,11 +4714,43 @@ cosmiconfig@^5.0.0:
js-yaml "^3.13.1"
parse-json "^4.0.0"
cpx@^1.5.0:
version "1.5.0"
resolved "https://registry.npmmirror.com/cpx/-/cpx-1.5.0.tgz#185be018511d87270dedccc293171e37655ab88f"
integrity sha512-jHTjZhsbg9xWgsP2vuNW2jnnzBX+p4T+vNI9Lbjzs1n4KhOfa22bQppiFYLsWQKd8TzmL5aSP/Me3yfsCwXbDA==
dependencies:
babel-runtime "^6.9.2"
chokidar "^1.6.0"
duplexer "^0.1.1"
glob "^7.0.5"
glob2base "^0.0.12"
minimatch "^3.0.2"
mkdirp "^0.5.1"
resolve "^1.1.7"
safe-buffer "^5.0.1"
shell-quote "^1.6.1"
subarg "^1.0.0"
crc-32@~1.2.0:
version "1.2.2"
resolved "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff"
integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==
crc32-stream@^3.0.1:
version "3.0.1"
resolved "https://registry.npmmirror.com/crc32-stream/-/crc32-stream-3.0.1.tgz#cae6eeed003b0e44d739d279de5ae63b171b4e85"
integrity sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==
dependencies:
crc "^3.4.4"
readable-stream "^3.4.0"
crc@^3.4.4:
version "3.8.0"
resolved "https://registry.npmmirror.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6"
integrity sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==
dependencies:
buffer "^5.1.0"
create-ecdh@^4.0.0:
version "4.0.4"
resolved "https://registry.npmmirror.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e"
@ -5503,7 +5641,7 @@ encodeurl@~1.0.2:
resolved "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
end-of-stream@^1.0.0, end-of-stream@^1.1.0:
end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1:
version "1.4.4"
resolved "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
@ -5956,6 +6094,13 @@ exit-on-epipe@~1.0.1:
resolved "https://registry.npmmirror.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz#0bdd92e87d5285d267daa8171d0eb06159689692"
integrity sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==
expand-brackets@^0.1.4:
version "0.1.5"
resolved "https://registry.npmmirror.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
integrity sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==
dependencies:
is-posix-bracket "^0.1.0"
expand-brackets@^2.1.4:
version "2.1.4"
resolved "https://registry.npmmirror.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
@ -5969,6 +6114,13 @@ expand-brackets@^2.1.4:
snapdragon "^0.8.1"
to-regex "^3.0.1"
expand-range@^1.8.1:
version "1.8.2"
resolved "https://registry.npmmirror.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
integrity sha512-AFASGfIlnIbkKPQwX1yHaDjFvh/1gyKJODme52V6IORh69uEYgZp0o9C+qsIGNVEiuuhQU0CSSl++Rlegg1qvA==
dependencies:
fill-range "^2.1.0"
expand-tilde@^2.0.0, expand-tilde@^2.0.2:
version "2.0.2"
resolved "https://registry.npmmirror.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502"
@ -6049,6 +6201,13 @@ external-editor@^2.0.4:
iconv-lite "^0.4.17"
tmp "^0.0.33"
extglob@^0.3.1:
version "0.3.2"
resolved "https://registry.npmmirror.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
integrity sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==
dependencies:
is-extglob "^1.0.0"
extglob@^2.0.2, extglob@^2.0.4:
version "2.0.4"
resolved "https://registry.npmmirror.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
@ -6199,6 +6358,23 @@ file-uri-to-path@1.0.0:
resolved "https://registry.npmmirror.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
filemanager-webpack-plugin@^2.0.5:
version "2.0.5"
resolved "https://registry.npmmirror.com/filemanager-webpack-plugin/-/filemanager-webpack-plugin-2.0.5.tgz#6cec3a2a02d429abca64ed6c0c1c46ae54b1846b"
integrity sha512-Yj5XIdKI2AN2r66uZc4MZ/n18SMqe2KKlkAqHHMW1OwveDs2Vc5129CpbFcI73rq/rjqso+2HsxieS7u5sx6XA==
dependencies:
archiver "^3.0.0"
cpx "^1.5.0"
fs-extra "^7.0.0"
make-dir "^1.1.0"
mv "^2.1.1"
rimraf "^2.6.2"
filename-regex@^2.0.0:
version "2.0.1"
resolved "https://registry.npmmirror.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
integrity sha512-BTCqyBaWBTsauvnHiE8i562+EdJj+oUpkqWp2R1iCoR8f6oo8STRu3of7WJJ0TqWtxN50a5YFpzYK4Jj9esYfQ==
filesize@^3.6.1:
version "3.6.1"
resolved "https://registry.npmmirror.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317"
@ -6209,6 +6385,17 @@ filesize@~2.0.0:
resolved "https://registry.npmmirror.com/filesize/-/filesize-2.0.4.tgz#7805941c60fcdfe63f46d7ea358c59ade11c1325"
integrity sha512-XyVEXpwElavSK0SKn51E3960lTRfglsQA9goJN4QR+oyqStts1Wygs1FW3TFQrxJoGm4mcq3hTxDMN3Vs1cYwg==
fill-range@^2.1.0:
version "2.2.4"
resolved "https://registry.npmmirror.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565"
integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==
dependencies:
is-number "^2.1.0"
isobject "^2.0.0"
randomatic "^3.0.0"
repeat-element "^1.1.2"
repeat-string "^1.5.2"
fill-range@^4.0.0:
version "4.0.0"
resolved "https://registry.npmmirror.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
@ -6401,6 +6588,13 @@ for-in@^1.0.1, for-in@^1.0.2:
resolved "https://registry.npmmirror.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==
for-own@^0.1.4:
version "0.1.5"
resolved "https://registry.npmmirror.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce"
integrity sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==
dependencies:
for-in "^1.0.1"
for-own@^1.0.0:
version "1.0.0"
resolved "https://registry.npmmirror.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b"
@ -6452,7 +6646,12 @@ from2@^2.1.0:
inherits "^2.0.1"
readable-stream "^2.0.0"
fs-extra@^7.0.1:
fs-constants@^1.0.0:
version "1.0.0"
resolved "https://registry.npmmirror.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
fs-extra@^7.0.0, fs-extra@^7.0.1:
version "7.0.1"
resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9"
integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==
@ -6476,7 +6675,7 @@ fs.realpath@^1.0.0:
resolved "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
fsevents@^1.2.7:
fsevents@^1.0.0, fsevents@^1.2.7:
version "1.2.13"
resolved "https://registry.npmmirror.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38"
integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==
@ -6689,6 +6888,21 @@ gl-vec2@^1.0.0, gl-vec2@^1.3.0:
resolved "https://registry.npmmirror.com/gl-vec2/-/gl-vec2-1.3.0.tgz#83d472ed46034de8e09cbc857123fb6c81c51199"
integrity sha512-YiqaAuNsheWmUV0Sa8k94kBB0D6RWjwZztyO+trEYS8KzJ6OQB/4686gdrf59wld4hHFIvaxynO3nRxpk1Ij/A==
glob-base@^0.3.0:
version "0.3.0"
resolved "https://registry.npmmirror.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
integrity sha512-ab1S1g1EbO7YzauaJLkgLp7DZVAqj9M/dvKlTt8DkXA2tiOIcSMrlVI2J1RZyB5iJVccEscjGn+kpOG9788MHA==
dependencies:
glob-parent "^2.0.0"
is-glob "^2.0.0"
glob-parent@^2.0.0:
version "2.0.0"
resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
integrity sha512-JDYOvfxio/t42HKdxkAYaCiBN7oYiuxykOxKxdaUW5Qn0zaYN3gRQWolrwdnf0shM9/EP0ebuuTmyoXNr1cC5w==
dependencies:
is-glob "^2.0.0"
glob-parent@^3.1.0:
version "3.1.0"
resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
@ -6745,7 +6959,18 @@ glob@^4.3.1:
minimatch "^2.0.1"
once "^1.3.0"
glob@^7.0.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
glob@^6.0.1:
version "6.0.4"
resolved "https://registry.npmmirror.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22"
integrity sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==
dependencies:
inflight "^1.0.4"
inherits "2"
minimatch "2 || 3"
once "^1.3.0"
path-is-absolute "^1.0.0"
glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
version "7.2.3"
resolved "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
@ -6893,7 +7118,7 @@ graceful-fs@^3.0.0:
dependencies:
natives "^1.1.3"
graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6:
graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0:
version "4.2.11"
resolved "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
@ -7474,7 +7699,7 @@ icss-utils@^5.0.0, icss-utils@^5.1.0:
resolved "https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae"
integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==
ieee754@^1.1.12, ieee754@^1.1.4:
ieee754@^1.1.12, ieee754@^1.1.13, ieee754@^1.1.4:
version "1.2.1"
resolved "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
@ -7844,6 +8069,18 @@ is-docker@^2.0.0:
resolved "https://registry.npmmirror.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
is-dotfile@^1.0.0:
version "1.0.3"
resolved "https://registry.npmmirror.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
integrity sha512-9YclgOGtN/f8zx0Pr4FQYMdibBiTaH3sn52vjYip4ZSf6C4/6RfTEZ+MR4GvKhCxdPh21Bg42/WL55f6KSnKpg==
is-equal-shallow@^0.1.3:
version "0.1.3"
resolved "https://registry.npmmirror.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
integrity sha512-0EygVC5qPvIyb+gSz7zdD5/AAoS6Qrx1e//6N4yv4oNm30kqvdmG66oZFWVlQHUWe5OjP08FuTw2IdT0EOTcYA==
dependencies:
is-primitive "^2.0.0"
is-extendable@^0.1.0, is-extendable@^0.1.1:
version "0.1.1"
resolved "https://registry.npmmirror.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
@ -7856,6 +8093,11 @@ is-extendable@^1.0.1:
dependencies:
is-plain-object "^2.0.4"
is-extglob@^1.0.0:
version "1.0.0"
resolved "https://registry.npmmirror.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
integrity sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==
is-extglob@^2.1.0, is-extglob@^2.1.1:
version "2.1.1"
resolved "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
@ -7883,6 +8125,13 @@ is-fullwidth-code-point@^3.0.0:
resolved "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
is-glob@^2.0.0, is-glob@^2.0.1:
version "2.0.1"
resolved "https://registry.npmmirror.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
integrity sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==
dependencies:
is-extglob "^1.0.0"
is-glob@^3.1.0:
version "3.1.0"
resolved "https://registry.npmmirror.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"
@ -7909,6 +8158,13 @@ is-number-object@^1.0.4:
dependencies:
has-tostringtag "^1.0.0"
is-number@^2.1.0:
version "2.1.0"
resolved "https://registry.npmmirror.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
integrity sha512-QUzH43Gfb9+5yckcrSA0VBDwEtDUchrk4F6tfJZQuNzDJbEDB9cZNzSfXGQ1jqmdDY/kl41lUOWM9syA8z8jlg==
dependencies:
kind-of "^3.0.2"
is-number@^3.0.0:
version "3.0.0"
resolved "https://registry.npmmirror.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
@ -7916,6 +8172,11 @@ is-number@^3.0.0:
dependencies:
kind-of "^3.0.2"
is-number@^4.0.0:
version "4.0.0"
resolved "https://registry.npmmirror.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff"
integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==
is-number@^7.0.0:
version "7.0.0"
resolved "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
@ -7957,6 +8218,16 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4:
dependencies:
isobject "^3.0.1"
is-posix-bracket@^0.1.0:
version "0.1.1"
resolved "https://registry.npmmirror.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
integrity sha512-Yu68oeXJ7LeWNmZ3Zov/xg/oDBnBK2RNxwYY1ilNJX+tKKZqgPK+qOn/Gs9jEu66KDY9Netf5XLKNGzas/vPfQ==
is-primitive@^2.0.0:
version "2.0.0"
resolved "https://registry.npmmirror.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
integrity sha512-N3w1tFaRfk3UrPfqeRyD+GYDASU3W5VinKhlORy8EWVf/sIdDL9GAcew85XmktCfH+ngG7SRXEVDoO18WMdB/Q==
is-promise@^2.1.0:
version "2.2.2"
resolved "https://registry.npmmirror.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1"
@ -8329,6 +8600,13 @@ launch-editor@^2.2.1, launch-editor@^2.6.0:
picocolors "^1.0.0"
shell-quote "^1.7.3"
lazystream@^1.0.0:
version "1.0.1"
resolved "https://registry.npmmirror.com/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638"
integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==
dependencies:
readable-stream "^2.0.5"
lerc@^3.0.0:
version "3.0.0"
resolved "https://registry.npmmirror.com/lerc/-/lerc-3.0.0.tgz#36f36fbd4ba46f0abf4833799fff2e7d6865f5cb"
@ -8545,6 +8823,11 @@ lodash.debounce@^4.0.8:
resolved "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==
lodash.defaults@^4.2.0:
version "4.2.0"
resolved "https://registry.npmmirror.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c"
integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==
lodash.defaults@~2.4.1:
version "2.4.1"
resolved "https://registry.npmmirror.com/lodash.defaults/-/lodash.defaults-2.4.1.tgz#a7e8885f05e68851144b6e12a8f3678026bc4c54"
@ -8558,6 +8841,11 @@ lodash.defaultsdeep@^4.6.1:
resolved "https://registry.npmmirror.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz#512e9bd721d272d94e3d3a63653fa17516741ca6"
integrity sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==
lodash.difference@^4.5.0:
version "4.5.0"
resolved "https://registry.npmmirror.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c"
integrity sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==
lodash.escape@^3.0.0:
version "3.2.0"
resolved "https://registry.npmmirror.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698"
@ -8574,6 +8862,11 @@ lodash.escape@~2.4.1:
lodash._reunescapedhtml "~2.4.1"
lodash.keys "~2.4.1"
lodash.flatten@^4.4.0:
version "4.4.0"
resolved "https://registry.npmmirror.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f"
integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==
lodash.isarguments@^3.0.0:
version "3.1.0"
resolved "https://registry.npmmirror.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
@ -8698,6 +8991,11 @@ lodash.transform@^4.6.0:
resolved "https://registry.npmmirror.com/lodash.transform/-/lodash.transform-4.6.0.tgz#12306422f63324aed8483d3f38332b5f670547a0"
integrity sha512-LO37ZnhmBVx0GvOU/caQuipEh4GN82TcWv3yHlebGDgOxbxiwwzW5Pcx2AcvpIv2WmvmSMoC492yQFNhy/l/UQ==
lodash.union@^4.6.0:
version "4.6.0"
resolved "https://registry.npmmirror.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88"
integrity sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==
lodash.uniq@^4.5.0:
version "4.5.0"
resolved "https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
@ -8786,7 +9084,7 @@ lru-cache@^6.0.0:
dependencies:
yallist "^4.0.0"
make-dir@^1.0.0:
make-dir@^1.0.0, make-dir@^1.1.0:
version "1.3.0"
resolved "https://registry.npmmirror.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==
@ -8891,6 +9189,11 @@ material-colors@^1.2.6:
resolved "https://registry.npmmirror.com/material-colors/-/material-colors-1.2.6.tgz#6d1958871126992ceecc72f4bcc4d8f010865f46"
integrity sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==
math-random@^1.0.1:
version "1.0.4"
resolved "https://registry.npmmirror.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c"
integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==
md5.js@^1.3.4:
version "1.3.5"
resolved "https://registry.npmmirror.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"
@ -9021,6 +9324,25 @@ micromatch@3.1.0:
snapdragon "^0.8.1"
to-regex "^3.0.1"
micromatch@^2.1.5:
version "2.3.11"
resolved "https://registry.npmmirror.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
integrity sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==
dependencies:
arr-diff "^2.0.0"
array-unique "^0.2.1"
braces "^1.8.2"
expand-brackets "^0.1.4"
extglob "^0.3.1"
filename-regex "^2.0.0"
is-extglob "^1.0.0"
is-glob "^2.0.1"
kind-of "^3.0.2"
normalize-path "^2.0.1"
object.omit "^2.0.0"
parse-glob "^3.0.4"
regex-cache "^0.4.2"
micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4:
version "3.1.10"
resolved "https://registry.npmmirror.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
@ -9108,6 +9430,13 @@ minimalistic-crypto-utils@^1.0.1:
resolved "https://registry.npmmirror.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==
"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2:
version "3.1.2"
resolved "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
dependencies:
brace-expansion "^1.1.7"
minimatch@^2.0.1:
version "2.0.10"
resolved "https://registry.npmmirror.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7"
@ -9115,13 +9444,6 @@ minimatch@^2.0.1:
dependencies:
brace-expansion "^1.0.0"
minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2:
version "3.1.2"
resolved "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
dependencies:
brace-expansion "^1.1.7"
minimatch@~0.2.11:
version "0.2.14"
resolved "https://registry.npmmirror.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a"
@ -9213,6 +9535,11 @@ mixin-deep@^1.2.0:
dependencies:
minimist "^1.2.6"
moment@^2.29.4:
version "2.29.4"
resolved "https://registry.npmmirror.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108"
integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==
monotone-convex-hull-2d@^1.0.1:
version "1.0.1"
resolved "https://registry.npmmirror.com/monotone-convex-hull-2d/-/monotone-convex-hull-2d-1.0.1.tgz#47f5daeadf3c4afd37764baa1aa8787a40eee08c"
@ -9282,6 +9609,15 @@ mute-stream@0.0.7:
resolved "https://registry.npmmirror.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
integrity sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==
mv@^2.1.1:
version "2.1.1"
resolved "https://registry.npmmirror.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2"
integrity sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==
dependencies:
mkdirp "~0.5.1"
ncp "~2.0.0"
rimraf "~2.4.0"
mz@^2.4.0:
version "2.7.0"
resolved "https://registry.npmmirror.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
@ -9328,6 +9664,11 @@ natural-compare@^1.4.0:
resolved "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
ncp@~2.0.0:
version "2.0.0"
resolved "https://registry.npmmirror.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3"
integrity sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==
negotiator@0.6.3:
version "0.6.3"
resolved "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
@ -9466,7 +9807,7 @@ normalize-path@^1.0.0:
resolved "https://registry.npmmirror.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379"
integrity sha512-7WyT0w8jhpDStXRq5836AMmihQwq2nrUVQrgjvUo/p/NZf9uy/MeJ246lBJVmWuYXMlJuG9BNZHF0hWjfTbQUA==
normalize-path@^2.1.1:
normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1:
version "2.1.1"
resolved "https://registry.npmmirror.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==
@ -9663,6 +10004,14 @@ object.map@^1.0.0:
for-own "^1.0.0"
make-iterator "^1.0.0"
object.omit@^2.0.0:
version "2.0.1"
resolved "https://registry.npmmirror.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
integrity sha512-UiAM5mhmIuKLsOvrL+B0U2d1hXHF3bFYWIuH1LMpuV2EJEHG1Ntz06PgLEHjm6VFd87NpH8rastvPoyv6UW2fA==
dependencies:
for-own "^0.1.4"
is-extendable "^0.1.1"
object.pick@^1.2.0, object.pick@^1.3.0:
version "1.3.0"
resolved "https://registry.npmmirror.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
@ -9956,6 +10305,16 @@ parse-filepath@^1.0.1:
map-cache "^0.2.0"
path-root "^0.1.1"
parse-glob@^3.0.4:
version "3.0.4"
resolved "https://registry.npmmirror.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
integrity sha512-FC5TeK0AwXzq3tUBFtH74naWkPQCEWs4K+xMxWZBlKDWu0bVHXGZa+KKqxKidd7xwhdZ19ZNuF2uO1M/r196HA==
dependencies:
glob-base "^0.3.0"
is-dotfile "^1.0.0"
is-extglob "^1.0.0"
is-glob "^2.0.0"
parse-headers@^2.0.2:
version "2.0.5"
resolved "https://registry.npmmirror.com/parse-headers/-/parse-headers-2.0.5.tgz#069793f9356a54008571eb7f9761153e6c770da9"
@ -10712,6 +11071,11 @@ prepend-http@^1.0.0:
resolved "https://registry.npmmirror.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
integrity sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==
preserve@^0.2.0:
version "0.2.0"
resolved "https://registry.npmmirror.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
integrity sha512-s/46sYeylUfHNjI+sA/78FAHlmIuKqI9wNnzEOGehAlUUYeObv5C2mOinXBjyUyWmJ2SfcS2/ydApH4hTF4WXQ==
"prettier@^1.18.2 || ^2.0.0":
version "2.8.8"
resolved "https://registry.npmmirror.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da"
@ -10921,6 +11285,15 @@ raf.js@0.0.4:
resolved "https://registry.npmmirror.com/raf.js/-/raf.js-0.0.4.tgz#f15af445d241b27fa7131a57450b67ef9c402fec"
integrity sha512-1239iw+nLUd8xbAQFQlbNEONJGAe6JQpMnSp0HTqODymjE4rGLXx+c9KaOlIldSoryVGU522NaqMn8GGBex+ZA==
randomatic@^3.0.0:
version "3.1.1"
resolved "https://registry.npmmirror.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed"
integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==
dependencies:
is-number "^4.0.0"
kind-of "^6.0.0"
math-random "^1.0.1"
randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0:
version "2.1.0"
resolved "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
@ -11005,7 +11378,7 @@ read-pkg@^5.0.0:
parse-json "^5.0.0"
type-fest "^0.6.0"
"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6:
"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6:
version "2.3.8"
resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b"
integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==
@ -11018,7 +11391,7 @@ read-pkg@^5.0.0:
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
"readable-stream@2 || 3", readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.6.0:
"readable-stream@2 || 3", readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
version "3.6.2"
resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
@ -11047,7 +11420,7 @@ readable-stream@~1.1.9:
isarray "0.0.1"
string_decoder "~0.10.x"
readdirp@^2.2.1:
readdirp@^2.0.0, readdirp@^2.2.1:
version "2.2.1"
resolved "https://registry.npmmirror.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==
@ -11119,6 +11492,13 @@ regenerator-transform@^0.15.2:
dependencies:
"@babel/runtime" "^7.8.4"
regex-cache@^0.4.2:
version "0.4.4"
resolved "https://registry.npmmirror.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd"
integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==
dependencies:
is-equal-shallow "^0.1.3"
regex-not@^1.0.0, regex-not@^1.0.2:
version "1.0.2"
resolved "https://registry.npmmirror.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
@ -11191,7 +11571,7 @@ repeat-element@^1.1.2:
resolved "https://registry.npmmirror.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9"
integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==
repeat-string@^1.6.1:
repeat-string@^1.5.2, repeat-string@^1.6.1:
version "1.6.1"
resolved "https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==
@ -11377,6 +11757,13 @@ rimraf@2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3:
dependencies:
glob "^7.1.3"
rimraf@~2.4.0:
version "2.4.5"
resolved "https://registry.npmmirror.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da"
integrity sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==
dependencies:
glob "^6.0.1"
rimraf@~2.6.2:
version "2.6.3"
resolved "https://registry.npmmirror.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
@ -11752,7 +12139,7 @@ shebang-regex@^3.0.0:
resolved "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
shell-quote@^1.7.3:
shell-quote@^1.6.1, shell-quote@^1.7.3:
version "1.8.1"
resolved "https://registry.npmmirror.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680"
integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==
@ -12345,6 +12732,13 @@ stylehacks@^4.0.0:
postcss "^7.0.0"
postcss-selector-parser "^3.0.0"
subarg@^1.0.0:
version "1.0.0"
resolved "https://registry.npmmirror.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2"
integrity sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==
dependencies:
minimist "^1.1.0"
supercluster@^7.0.0, supercluster@^7.1.0:
version "7.1.5"
resolved "https://registry.npmmirror.com/supercluster/-/supercluster-7.1.5.tgz#65a6ce4a037a972767740614c19051b64b8be5a3"
@ -12479,6 +12873,17 @@ tapable@^1.0.0, tapable@^1.1.3:
resolved "https://registry.npmmirror.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==
tar-stream@^2.1.0:
version "2.2.0"
resolved "https://registry.npmmirror.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287"
integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==
dependencies:
bl "^4.0.3"
end-of-stream "^1.4.1"
fs-constants "^1.0.0"
inherits "^2.0.3"
readable-stream "^3.1.1"
tar@^2.0.0:
version "2.2.2"
resolved "https://registry.npmmirror.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40"
@ -14186,6 +14591,15 @@ yorkie@^2.0.0:
normalize-path "^1.0.0"
strip-indent "^2.0.0"
zip-stream@^2.1.2:
version "2.1.3"
resolved "https://registry.npmmirror.com/zip-stream/-/zip-stream-2.1.3.tgz#26cc4bdb93641a8590dd07112e1f77af1758865b"
integrity sha512-EkXc2JGcKhO5N5aZ7TmuNo45budRaFGHOmz24wtJR7znbNqDPmdZtUauKX6et8KAVseAMBOyWJqEpXcHTBsh7Q==
dependencies:
archiver-utils "^2.1.0"
compress-commons "^2.1.1"
readable-stream "^3.4.0"
zrender@5.4.4, zrender@^5.1.1:
version "5.4.4"
resolved "https://registry.npmmirror.com/zrender/-/zrender-5.4.4.tgz#8854f1d95ecc82cf8912f5a11f86657cb8c9e261"

Loading…
Cancel
Save