diff --git a/src/App.vue b/src/App.vue index 7583b33f3..ebfaf85ee 100644 --- a/src/App.vue +++ b/src/App.vue @@ -241,7 +241,12 @@ export default { .selectPopClass { border: none !important; background: linear-gradient(180deg, #05326e 0%, #032a5d 100%) !important; - + .el-autocomplete-suggestion li{ + color: #fff!important; + &:hover { + background: rgba(#409eff, .5)!important; + } + } .el-select-dropdown__item { color: #fff !important; background: #05326e !important; diff --git a/src/views/dataBoard/cpts/sjkb-map/index.vue b/src/views/dataBoard/cpts/sjkb-map/index.vue index f35b08bc9..947cc5f94 100644 --- a/src/views/dataBoard/cpts/sjkb-map/index.vue +++ b/src/views/dataBoard/cpts/sjkb-map/index.vue @@ -34,6 +34,8 @@ let searchBgLayer; let numMarker; let pointMarker; let numPointMarker; +let numPointMarker2; +let numPointMarker1; export default { name: "l7", @@ -342,7 +344,6 @@ export default { } else if (mapType == "tdzw") { this.iniMapBase2(scene); } - this.iniMapGrid(scene); // this.iniMapDot(scene); // this.iniMapDot2(scene); @@ -418,7 +419,6 @@ export default { iniMapGrid(scene) { const {darkStyle, lightStyle, polygonData, polygonDotData} = this; - let styleConfig = darkStyle; if (this.mapStyleType == "light") { styleConfig = lightStyle; @@ -586,6 +586,13 @@ export default { if (numPointMarker) { scene.removeMarkerLayer(numPointMarker); } + if (numPointMarker1) { + scene.removeLayer(numPointMarker1); + } + if (numPointMarker2) { + scene.removeLayer(numPointMarker2); + } + }, iniMapDot(scene) { @@ -681,8 +688,10 @@ export default { // 把地图缩放等级在原来基础上大一点 zoomInABit() { - let current = scene.getZoom(); - scene.setZoomAndCenter(current + 0.5); + if (scene) { + let current = scene.getZoom(); + scene.setZoomAndCenter(current + 0.5); + } }, shiftMapStyle(type) { @@ -876,28 +885,93 @@ export default { scene.addMarkerLayer(numMarker); }, + /* setNumpoint(data) { + this.clearMarkert(); + numPointMarker = new MarkerLayer({ + name: "numpoinMarker", + }); + for (let i in data) { + for (let j in data[i].data) { + if (data[i].data[j].num > 0) { + var el = document.createElement("div"); + el.innerText = data[i].data[j].num + el.className = "label-number-point-class"; + el.classList.add(data[i].data[j].type); + el.onclick= + function(e) { + e.stopPropagation() + } + // el.textContent = data[i].peopleType+':'+data[i].personnelNum; + console.log(data[i].data[j]) + const numPointMarkerItem = new Marker({ + offsets: data[i].data[j].offsets, + element: el, + }).setLnglat([data[i].data[j].longitude * 1, data[i].data[j].latitude * 1]); + + numPointMarkerItem.on("click", (e) => { + console.log(e,'sssddeeee') + this.$emit('showMapDialog',e) + // this.$router.push(`/homeDetails/index?id=${data[i].id}&typeB=${peopleType}`); + }); + numPointMarker.addMarker(numPointMarkerItem); + } + } + } + scene.addMarkerLayer(numPointMarker); + },*/ setNumpoint(data) { this.clearMarkert(); - numPointMarker = new MarkerLayer({ - name: "numpoinMarker", - }); - for (let i in data) { - var el = document.createElement("div"); - el.className = "label-number-point-class"; - el.classList.add(data[i].type); - // el.textContent = data[i].peopleType+':'+data[i].personnelNum; - const numPointMarkerItem = new Marker({ - offsets: [0, 0], - element: el, - }).setLnglat([data[i].longitude * 1, data[i].latitude * 1]); - let popup; - numPointMarkerItem.on("click", () => { - this.$router.push(`/homeDetails/index?id=${data[i].id}&typeB=${peopleType}`); - }); - - numPointMarker.addMarker(numPointMarkerItem); + if (!scene.hasImage('rsources')) { + scene.addImage('rsources', require('@/assets/images/overview/map_num_green.png')); + scene.addImage('services', require('@/assets/images/overview/map_num_red.png')); + scene.addImage('events', require('@/assets/images/overview/map_num_blue.png')); + scene.addImage('problems', require('@/assets/images/overview/map_num_orange.png')); } - scene.addMarkerLayer(numPointMarker); + + let pointData = data.map(item => item.data) + pointData = pointData.reduce((a, b) => a.concat(b), []); + pointData = pointData.filter(item => item.num > 0) + console.log(pointData, 'pointData') + numPointMarker1 = new PointLayer({ + name: 'numPointMarker1', + zIndex: 20, + }) + .source(pointData, { + parser: { + type: 'json', + x: 'longitude', + y: 'latitude' + } + }) + .shape('type', (type) => { + console.log(type,'type') + return type + }) + .size(36); + scene.addLayer(numPointMarker1); + numPointMarker2 = new PointLayer({ + name: 'numPointMarker2', + zIndex: 21, + }).source(pointData, { + parser: { + type: 'json', + x: 'longitude', + y: 'latitude' + } + }) + .shape('num', 'text') + .color('#fff') + .size(24) + .style({ + textOffset: [0, 7], + fontWeight: "bold" + }) + scene.addLayer(numPointMarker2); + numPointMarker1.on("click", (e) => { + console.log(e, 'imageLayer') + this.$emit('showMapDialog',e.feature) + }) + // scene.addMarkerLayer(numPointMarker); }, async setDotMarker(item, posArr) { @@ -1148,24 +1222,32 @@ export default { } /deep/ .label-number-point-class { + font-size: 24px; + font-weight: bold; + display: flex !important; + align-items: center; + justify-content: center; width: 50px; height: 76px; - background-repeat: no-repeat; + padding-bottom: 30px; text-align: center; - font-size: 24px; - font-weight: bold; color: #FFFFFF; - &.green { + background-repeat: no-repeat; + + &.rsources { background-image: url("@/assets/images/overview/map_num_green.png"); } - &.blue { + + &.services { background-image: url("@/assets/images/overview/map_num_blue.png"); } - &.red { + + &.events { background-image: url("@/assets/images/overview/map_num_red.png"); } - &.orange { - background-image: url("@/assets/images/overview/map_num_blue.png"); + + &.problems { + background-image: url("@/assets/images/overview/map_num_orange.png"); } } diff --git a/src/views/dataBoard/overview/components/DemandCharts.vue b/src/views/dataBoard/overview/components/DemandCharts.vue index 216a6d054..5c30a5199 100644 --- a/src/views/dataBoard/overview/components/DemandCharts.vue +++ b/src/views/dataBoard/overview/components/DemandCharts.vue @@ -45,94 +45,97 @@ export default { }, initChart() { - let div = document.getElementById('DemandCharts'); - this.myChart = echarts.init(div); - var getname = ['健康知识专业讲座', '未成年人兴趣培养', '老年人现代智能···', '老年群体的心理···', '配合社区安全巡···', '其他']; // 课程名 - var getNum = [8, 9, 16, 21, 26, 62]; + this.$http.post('/governance/userdemand/countByCategory').then(({data:{data}}) => { + let div = document.getElementById('DemandCharts'); + this.myChart = echarts.init(div); + var getname = data.map(item => item.categoryName); // 课程名 + var getNum = data.map(item => item.cateTotal); + var totals = eval(getNum.join('+')) + var data = []; + for (var i = 0; i < getname.length; i++) { + data.push({name: getname[i], value: getNum[i]}) + } + const color = ['#16A7EB', '#5974FF', '#04C790', '#FFAA01', '#FF6701', '#EF3B00'] - var data = []; - for (var i = 0; i < getname.length; i++) { - data.push({name: getname[i], value: getNum[i]}) - } - const color = ['#16A7EB', '#5974FF', '#04C790', '#FFAA01', '#FF6701', '#EF3B00'] - - var option = { - color, - tooltip: { - trigger: "item" - }, - legend: { - type: "plain", - orient: "vertical", - right: 0, - top: "center", - align: "left", - itemGap: 10, - itemWidth: 8, - itemHeight: 8, - symbolKeepAspect: false, - selectedMode: false, - formatter: function (name) { - for (var i = 0; i < getname.length; i++) { - if (name == data[i].name) { - return '{name|' + name + '}{num|' + getNum[i] + '人}' - } - } + var option = { + color, + tooltip: { + trigger: "item" }, - textStyle: { - rich: { - name: { - fontSize: 12, - width: 96, - overflow: 'hidden', - textOverflow: 'ellipsis', - padding: [0, 29, 0, 5], - color: '#A3B9DA', - }, - num: { - fontSize: 12, - fontWeight: 500, - align: 'right', - color: '#FFFFFF', + legend: { + type: "plain", + orient: "vertical", + right: 0, + top: "center", + align: "left", + itemGap: 10, + itemWidth: 8, + itemHeight: 8, + symbolKeepAspect: false, + selectedMode: false, + formatter: function (name) { + for (var i = 0; i < getname.length; i++) { + if (name == data[i].name) { + name = name.length > 8?name.slice(0,7)+'...':name; + return '{name|' + name + '}{num|' + getNum[i] + '人}' + } } - } - } - }, - series: [{ - name: '', - type: "pie", - radius: ["65%", "90%"], - center: ["20%", "50%"], - avoidLabelOverlap: false, - - label: { - show: true, - position: "center", - color: "rgba(13, 17, 29,0)", - formatter: `{primary|${3289}}\n{point|总数}`, - rich: { - primary: { - fontSize: 24, - color: '#7FCEFF', - align: 'center' - }, - point: { - fontSize: 12, - fontWeight: 400, - color: "#A3B9DA", - align: 'center' + }, + textStyle: { + rich: { + name: { + fontSize: 12, + width: 96, + overflow: 'hidden', + textOverflow: 'ellipsis', + padding: [0, 29, 0, 5], + color: '#A3B9DA', + }, + num: { + fontSize: 12, + fontWeight: 500, + align: 'right', + color: '#FFFFFF', + } } } }, - labelLine: { - show: false - }, - data: data, - zlevel: 30 - }] - }; - this.myChart.setOption(option, true); - window.addEventListener("resize", () => this.myChart.resize()); + series: [{ + name: '', + type: "pie", + radius: ["65%", "90%"], + center: ["20%", "50%"], + avoidLabelOverlap: false, + + label: { + show: true, + position: "center", + color: "rgba(13, 17, 29,0)", + formatter: `{primary|${totals}}\n{point|总数}`, + rich: { + primary: { + fontSize: 24, + color: '#7FCEFF', + align: 'center' + }, + point: { + fontSize: 12, + fontWeight: 400, + color: "#A3B9DA", + align: 'center' + } + } + }, + labelLine: { + show: false + }, + data: data, + zlevel: 30 + }] + }; + this.myChart.setOption(option, true); + window.addEventListener("resize", () => this.myChart.resize()); + }) } } } diff --git a/src/views/dataBoard/overview/components/DemandCharts2.vue b/src/views/dataBoard/overview/components/DemandCharts2.vue new file mode 100644 index 000000000..84adcef77 --- /dev/null +++ b/src/views/dataBoard/overview/components/DemandCharts2.vue @@ -0,0 +1,169 @@ + + + + + \ No newline at end of file diff --git a/src/views/dataBoard/overview/components/EventDetail.vue b/src/views/dataBoard/overview/components/EventDetail.vue index d7938e8f3..4e83a0e8e 100644 --- a/src/views/dataBoard/overview/components/EventDetail.vue +++ b/src/views/dataBoard/overview/components/EventDetail.vue @@ -191,9 +191,14 @@ - + - + @@ -205,7 +210,6 @@ import Supervision from "@/views/dataBoard/overview/components/Supervision.vue"; import EventDispatchOrder from "@/views/dataBoard/overview/components/EventDispatchOrder.vue"; - export default { name: "EventDetail", components: { diff --git a/src/views/dataBoard/overview/components/MapDialog/CommunityList.vue b/src/views/dataBoard/overview/components/MapDialog/CommunityList.vue index da09c29c7..c5b4b85c1 100644 --- a/src/views/dataBoard/overview/components/MapDialog/CommunityList.vue +++ b/src/views/dataBoard/overview/components/MapDialog/CommunityList.vue @@ -3,29 +3,39 @@
+ - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - + diff --git a/src/views/dataBoard/satisfactionEval/dissatisfieReason/index.vue b/src/views/dataBoard/satisfactionEval/dissatisfieReason/index.vue index d91070f54..066aa07f0 100644 --- a/src/views/dataBoard/satisfactionEval/dissatisfieReason/index.vue +++ b/src/views/dataBoard/satisfactionEval/dissatisfieReason/index.vue @@ -45,18 +45,22 @@ {{ $sensitive(scope.row.mobile, 3, 7) }} - - - - - - - - - - - - + + + + + + + +