diff --git a/src/assets/scss/modules/visual/heart.scss b/src/assets/scss/modules/visual/heart.scss
index 0e12e1b7..f0c964cb 100644
--- a/src/assets/scss/modules/visual/heart.scss
+++ b/src/assets/scss/modules/visual/heart.scss
@@ -8,6 +8,42 @@
justify-content: space-between;
margin-top: 5px;
}
+
+.m-sizer {
+ width: 195px;
+ margin: 10px 0;
+ margin-left: auto;
+
+ > span {
+ font-size: 16px;
+ font-family: PingFang SC;
+ font-weight: 400;
+ color: #ffffff;
+ }
+
+ ::v-deep .el-input {
+ width: 140px;
+ height: 36px;
+ .el-input__inner {
+ height: 100%;
+ padding: 0 10px;
+ color: #fff;
+ line-height: 36px;
+ background: #06186d;
+ border: 1px solid #1a64cc;
+ }
+ .el-icon-arrow-up:before {
+ content: "\e78f";
+ }
+ }
+ ::v-deep .el-date-editor {
+ .el-input__prefix {
+ left: unset;
+ right: 5px;
+ }
+ }
+}
+
.m-tb {
width: 33%;
.title {
@@ -28,7 +64,7 @@
}
}
.tb {
- height: calc(100vh - 180px);
+ height: calc(100vh - 230px);
overflow-y: auto;
@include scrollBar;
}
diff --git a/src/assets/scss/modules/visual/incident-info.scss b/src/assets/scss/modules/visual/incident-info.scss
index a8fa9ff2..1ca5a43a 100644
--- a/src/assets/scss/modules/visual/incident-info.scss
+++ b/src/assets/scss/modules/visual/incident-info.scss
@@ -120,6 +120,11 @@
margin: 10px 0;
display: flex;
padding-left: 15px;
+ .info-title-2 {
+ width: 70px;
+ flex: 0 0 1;
+ font-size: 14px;
+ }
> span,
> div {
diff --git a/src/assets/scss/modules/visual/issue-info.scss b/src/assets/scss/modules/visual/issue-info.scss
index da6031fb..43f77201 100644
--- a/src/assets/scss/modules/visual/issue-info.scss
+++ b/src/assets/scss/modules/visual/issue-info.scss
@@ -73,10 +73,14 @@
margin: 10px 0;
display: flex;
padding-left: 15px;
-
+ .info-title-2 {
+ width: 90px;
+ flex: 0 0 1;
+ font-size: 14px;
+ }
.info-pics {
display: flex;
- margin: 20px 0;
+ margin: 10px 0;
img {
display: block;
width: 32%;
diff --git a/src/assets/scss/modules/visual/processAnalyze.scss b/src/assets/scss/modules/visual/processAnalyze.scss
index 07c430f5..098753e0 100644
--- a/src/assets/scss/modules/visual/processAnalyze.scss
+++ b/src/assets/scss/modules/visual/processAnalyze.scss
@@ -122,6 +122,7 @@
}
.echart-line {
margin-top: 10px;
+ height: 100%;
}
}
.g-count {
@@ -244,7 +245,7 @@
text-align: center;
position: relative;
width: 500px;
- // height: 100%;
+ height: 100%;
box-sizing: border-box;
}
diff --git a/src/views/modules/visual/communityGovern/cpt/issue-info.vue b/src/views/modules/visual/communityGovern/cpt/issue-info.vue
index 61df9568..0cc0f2fb 100644
--- a/src/views/modules/visual/communityGovern/cpt/issue-info.vue
+++ b/src/views/modules/visual/communityGovern/cpt/issue-info.vue
@@ -15,46 +15,48 @@
- 议题标题:
+ 议题标题:
{{ info.issueTitle }}
- 议题建议:
+ 议题建议:
{{ info.issueSuggestion }}
-
话题内容:
-
{{ info.topicInfo.topicContent }}
-
-
![]()
+
话题内容:
+
+
{{ info.topicInfo.topicContent }}
+
+
![]()
+
- 转议题时间:
+ 转议题时间:
{{ info.shiftIssueTime}}
- 所属网格:
+ 所属网格:
{{ info.belongsGridName}}
- 话题发表人:
+ 话题发表人:
{{ info.topicInfo.publishedUser}}
- 议题发起人:
+ 议题发起人:
{{ info.issueInitiator}}
- 话题来源:
+ 话题来源:
{{ info.topicInfo.groupName}}
- 话题发表时间:
+ 话题发表时间:
{{ info.topicInfo.publishedTimeShow}}
diff --git a/src/views/modules/visual/communityGovern/cpt/project-info.vue b/src/views/modules/visual/communityGovern/cpt/project-info.vue
index 30e768c6..2810747b 100644
--- a/src/views/modules/visual/communityGovern/cpt/project-info.vue
+++ b/src/views/modules/visual/communityGovern/cpt/project-info.vue
@@ -193,20 +193,25 @@
@click="watchImg(src)" />
-
-
+
加载中
@@ -92,7 +91,6 @@ export default {
data () {
return {
dataLoading: true,
- pieNoData: false,
pieChartS: null,
pieChart: '',
@@ -365,7 +363,7 @@ export default {
this.pieTotal = 0
if (this.pieData.length > 0) {
- this.pieNoData = false
+ this.$refs.pieChart.setNoData(false)
const _that = this
let maxIndex = 0
let maxValue = this.pieData[0].count
@@ -402,7 +400,7 @@ export default {
}
this.$refs.pieChart.handleClick(fun)
} else {
- this.pieNoData = true
+ this.$refs.pieChart.setNoData(true)
}
},
diff --git a/src/views/modules/visual/communityGovern/typeAnalyze.vue b/src/views/modules/visual/communityGovern/typeAnalyze.vue
index c807e563..a1b3f1b0 100644
--- a/src/views/modules/visual/communityGovern/typeAnalyze.vue
+++ b/src/views/modules/visual/communityGovern/typeAnalyze.vue
@@ -247,8 +247,9 @@ export default {
},
- handleChangeDate (value) {
+ async handleChangeDate (value) {
this.dateIdShow = value
+ await this.getPieChart()
this.getPie()
},
@@ -267,7 +268,6 @@ export default {
}
-
const url = "/data/aggregator/project/projectcategorylist";
// const url = "http://yapi.elinkservice.cn/mock/245/data/aggregator/project/projectcategorylist";
let params = {
@@ -340,7 +340,6 @@ export default {
}
}
-
let fun = function (params) {
_that.clickPie(params.dataIndex)
@@ -392,10 +391,11 @@ export default {
this.getTable()
},
- handleChangeAgency (value) {
+ async handleChangeAgency (value) {
this.agencyName = this.$refs["myCascader"].getCheckedNodes()[0].label
this.agencyId = this.agencyIdArray.length > 0 ? this.agencyIdArray[this.agencyIdArray.length - 1] : ''
+ await this.getPieChart()
this.getPie()
console.log(this.agencyIdArray)
},
@@ -419,7 +419,7 @@ export default {
if (code === 0) {
this.demand.total = data.total;
this.tableList = data.list
- if (data.list.length > 0) {
+ if (data.list && data.list.length > 0) {
this.demand.list = data.list.map((item) => {
//楼院小组:issue; 项目立项:agency 事件上报:resi_event【也可控制点击查看时里边三个按钮的显示】
item.originShow = item.origin === 'issue' ? '楼院小组' : item.origin === 'agency' ? '项目立项' : '事件上报'
diff --git a/src/views/modules/visual/components/screen-echarts-frame/index.vue b/src/views/modules/visual/components/screen-echarts-frame/index.vue
index e34d34df..9d97c8fb 100644
--- a/src/views/modules/visual/components/screen-echarts-frame/index.vue
+++ b/src/views/modules/visual/components/screen-echarts-frame/index.vue
@@ -3,7 +3,7 @@
-
@@ -56,6 +56,7 @@ export default {
},
//没有数据
setNoData (nodata) {
+
this.noData = nodata
},
diff --git a/src/views/modules/visual/components/screen-map/index.vue b/src/views/modules/visual/components/screen-map/index.vue
index 3e593ed5..eba9be98 100644
--- a/src/views/modules/visual/components/screen-map/index.vue
+++ b/src/views/modules/visual/components/screen-map/index.vue
@@ -3,8 +3,15 @@
-
+
+
@@ -28,6 +35,7 @@ import { getDistance } from 'ol/sphere';
import { mapGetters } from "vuex";
import { Loading } from 'element-ui'; //引入Loading服务
+
import { requestPost } from "@/js/dai/request";
@@ -81,7 +89,8 @@ const vueGis = {
centerPoint: [],//中心点位置
zoom: 14,//缩放范围:区14
minZoom: 1,//最小缩放
-
+ overlay: null,
+ showPopup: false,
mapInfo: {
},
@@ -172,6 +181,13 @@ const vueGis = {
this.loadIcon()
}
+ if (this.isAddOpenlay) {
+ //初始化icon图层
+ this.addOverlay()
+ }
+
+
+ this.addMapClick()
},
@@ -365,8 +381,6 @@ const vueGis = {
return (distance < max || distance === max)
-
-
// debugger
// return
// var wgs84Sphere = new ol.Sphere(6378137);
@@ -405,21 +419,8 @@ const vueGis = {
//目标加载到map中
})
- let that = this
- map.on('singleclick', function (e) {
- const feature = map.forEachFeatureAtPixel(e.pixel, function (feature) {
- return feature;
- });
- if (feature) {
- console.log(feature)
- that.$emit('clickFeature', feature)
-
- }
-
- })
-
//去除双击放大效果
const dblClickInteraction = map
.getInteractions()
@@ -454,7 +455,6 @@ const vueGis = {
},
-
//初始化多边形标注图层
initPolygonLayer () {
polygonSource = new VectorSource({
@@ -542,6 +542,83 @@ const vueGis = {
// });
},
+ //添加覆盖层
+ addOverlay () {
+ // 使用变量存储弹窗所需的 DOM 对象
+ var container = document.getElementById("popup");
+ var closer = document.getElementById("popup-closer");
+ var content = document.getElementById("popup-content");
+
+ // 创建一个弹窗 Overlay 对象
+ this.overlay = new Overlay({
+ element: container, //绑定 Overlay 对象和 DOM 对象的
+ autoPan: true, // 定义弹出窗口在边缘点击时候可能不完整 设置自动平移效果
+ autoPanAnimation: {
+ duration: 250 //自动平移效果的动画时间 9毫秒
+ },
+ zIndex: 100
+ });
+ // 将弹窗添加到 map 地图中
+ map.addOverlay(this.overlay);
+ let _that = this;
+
+ /**
+ * 为弹窗添加一个响应关闭的函数
+ */
+ closer.onclick = function () {
+ _that.overlay.setPosition(undefined);
+ closer.blur();
+ return false;
+ };
+ },
+
+ //注册地图点击事件
+ addMapClick () {
+ let _that = this
+
+
+ map.on("click", function (evt) {
+ const feature = map.forEachFeatureAtPixel(evt.pixel, function (feature) {
+ return feature;
+ });
+ if (feature) {
+ console.log(feature)
+ if (_that.clickType === 'back') {
+
+ _that.$emit('clickFeature', feature)
+
+
+ } else if (_that.clickType === 'popup') {
+ _that.$emit('clickFeature', feature)
+ // _that.overlay.getElement().parentNode.style.display = 'block'
+ // _that.overlay.getElement().parentNode.parentNode.style.display = 'block'
+
+ // content.innerHTML = `
+ //
你点击了这里:
+ //
经纬度:
+ //
坐标:
X: Y: `;
+ // _that.overlay.setPosition(evt.coordinate); //把 overlay 显示到指定的 x,y坐标
+
+
+ } else {
+ console.log('此处没有标注')
+ }
+
+ }
+
+ });
+ },
+
+ handleShowPopup (showData, coordinate) {
+ console.log(this.overlay.getElement())
+ this.overlay.getElement().style.display = 'block'
+ this.overlay.getElement().parentNode.style.display = 'block'
+ this.overlay.getElement().parentNode.parentNode.style.display = 'block'
+ var content = document.getElementById("popup-content");
+
+ content.innerHTML = showData;
+ this.overlay.setPosition(coordinate); //把 overlay 显示到指定的 x,y坐标
+ },
//取随机数
getRndBetween (lowerLimit, upperLimit) {
@@ -582,6 +659,17 @@ const vueGis = {
showIconLayer: {
type: Boolean,
default: false
+ },
+ //是否添加弹出框图层
+ isAddOpenlay: {
+ type: Boolean,
+ default: false
+ },
+
+ //点击地图事件类型,back:返回,popup:弹出层
+ clickType: {
+ type: String,
+ default: 'back'
}
},
@@ -623,4 +711,51 @@ export default vueGis;
.ol-overlaycontainer-stopevent {
display: none;
}
+.ol-popup {
+ position: absolute;
+ background-color: #1257c9;
+ -webkit-filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.2));
+ filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.2));
+ padding: 15px;
+ border-radius: 10px;
+ border: 1px solid #1257c9;
+ bottom: 12px;
+ left: -50px;
+ text-align: left;
+}
+.ol-popup:after,
+.ol-popup:before {
+ top: 100%;
+ border: solid transparent;
+ content: " ";
+ height: 0;
+ width: 0;
+ position: absolute;
+ pointer-events: none;
+}
+.ol-popup:after {
+ border-top-color: 1257c9;
+ border-width: 10px;
+ left: 48px;
+ margin-left: -10px;
+}
+.ol-popup:before {
+ border-top-color: #1257c9;
+ border-width: 11px;
+ left: 48px;
+ margin-left: -11px;
+}
+.ol-popup-closer {
+ text-decoration: none;
+ position: absolute;
+ top: 2px;
+ right: 8px;
+}
+.popup-content {
+ width: 300px;
+}
+.ol-popup-closer:after {
+ content: "✖";
+ color: rgba(1, 17, 104, 1);
+}
\ No newline at end of file
diff --git a/src/views/modules/visual/cpts/analyse.vue b/src/views/modules/visual/cpts/analyse.vue
index 43777c25..6292ddc5 100644
--- a/src/views/modules/visual/cpts/analyse.vue
+++ b/src/views/modules/visual/cpts/analyse.vue
@@ -297,6 +297,7 @@ export default {