Browse Source

Merge branch 'dev-fivelayer0725'

feature
dai 3 years ago
parent
commit
5810657ca6
  1. 1528
      src/views/modules/communityService/fuwujilu/addForm.vue
  2. 2
      src/views/modules/cpts/base/cpts/edit.vue
  3. 117
      src/views/modules/visual/command/cpts/map.vue
  4. 76
      src/views/modules/visual/command/cpts/popup.vue
  5. 45
      src/views/modules/visual/command/cpts/serviceInfo.vue
  6. 14
      src/views/modules/visual/command/cpts/sidemenu-left.vue
  7. 23
      src/views/modules/visual/command/index.vue

1528
src/views/modules/communityService/fuwujilu/addForm.vue

File diff suppressed because it is too large

2
src/views/modules/cpts/base/cpts/edit.vue

@ -628,7 +628,7 @@ export default {
// map TMap.Map()
map = new window.TMap.Map(document.getElementById("app"), {
center: center, //
zoom: 15, //
zoom: 13, //
pitch: 43.5, //
rotation: 45, //
});

117
src/views/modules/visual/command/cpts/map.vue

@ -48,6 +48,7 @@ let dotLayer2;
let countTextLayer;
let countTextBgLayer;
let searchMarker;
let searchBgLayer;
export default {
name: "l7",
@ -146,25 +147,12 @@ export default {
},
},
computed: {},
components: {
cptCard,
cptTb,
cptPopup,
},
watch: {},
async mounted() {
//
window._AMapSecurityConfig = {
securityJsCode: "92ea2c965c6cf1ba7ee3a8fe01449ef2",
};
this.iniMap();
},
computed: {
polygonData() {
const { srcGridData } = this;
@ -313,6 +301,20 @@ export default {
},
},
async mounted() {
console.log("指挥调度map初始化啦");
//
window._AMapSecurityConfig = {
securityJsCode: "92ea2c965c6cf1ba7ee3a8fe01449ef2",
};
this.iniMap();
//
searchMarker = null;
searchBgLayer = null;
},
methods: {
iniMap() {
const { darkStyle, lightStyle, srcGridData } = this;
@ -627,8 +629,83 @@ export default {
}
},
drawSearchBg(lng, lat) {
function getPoints(lng, lat) {
// lng lat dis
let r = 6371; //
let dis = 1.5; //3
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; //
//
for (let sides = 1; sides <= 360; sides++) {
var angle = Math.PI * (1 / sides - 1 / 2);
var rotatedAngle, x, y;
var points = [];
for (var i = 0; i < sides; ++i) {
rotatedAngle = angle + (i * 2 * Math.PI) / sides;
x = lng + dlng * Math.cos(rotatedAngle);
y = lat + dlat * Math.sin(rotatedAngle);
points.push([x, y]);
}
}
console.log("points=======", points);
return points;
}
let sourceData;
if (lng) {
sourceData = {
type: "FeatureCollection",
features: [
{
type: "Feature",
properties: {
center: [lng, lat],
},
geometry: {
type: "Polygon",
coordinates: [getPoints(lng, lat)],
},
},
],
};
} else {
sourceData = {
type: "FeatureCollection",
features: [],
};
}
if (searchBgLayer) {
console.log("searchBgLayer已经存在了", searchBgLayer);
searchBgLayer.setData(sourceData);
} else {
searchBgLayer = new PolygonLayer({
// autoFit: true,
})
.source(sourceData)
.color("#f0f")
.shape("fill")
.style({
opacityLinear: {
enable: true, // true - false
dir: "out", // in - out
},
opacity: 0.3,
raisingHeight: 0,
});
scene.addLayer(searchBgLayer);
}
},
async setDotMarker(item, posArr) {
this.removeDotMarker();
this.drawSearchBg(...posArr);
const marker = new Marker({
offsets: [0, -20],
}).setLnglat(posArr);
@ -652,15 +729,20 @@ export default {
});
scene.addMarker(marker);
scene.setZoomAndCenter(18, posArr);
scene.setZoomAndCenter(14, posArr);
marker.openPopup();
searchMarker = marker;
},
removeDotMarker() {
console.log("removeDotMarker");
if (searchMarker) {
searchMarker.remove();
}
if (searchBgLayer) {
console.log("removeDotMarker-----searchBgLayer");
this.drawSearchBg();
}
},
//
@ -743,6 +825,13 @@ export default {
border-radius: 10px;
overflow: hidden;
/deep/ .l7-popup-content {
background: rgba(#020340, 0.58);
}
/deep/ .l7-popup-close-button {
color: #fff;
}
#app {
width: 100%;
height: 100%;

76
src/views/modules/visual/command/cpts/popup.vue

@ -1,7 +1,13 @@
<template>
<div class="m-pop" v-show="!hidden">
<div class="info">
<div v-if="placeType === 'resi' || placeType === 'special_resi'">
<div
v-if="
placeType === 'resi' ||
placeType === 'special_resi' ||
placeType === 'volunteer'
"
>
<div class="info-title">居民信息</div>
<div class="item">
姓名
@ -47,13 +53,25 @@
</div>
<div class="operate">
<div @click="handleClickBtn('watch-resi')" class="btn">查看更多</div>
<div
@click="handleClickBtn('create-demand')"
v-if="info.agencyId == $store.state.user.agencyId"
class="btn"
class="btn z-blue"
>
发布需求
</div>
<div
v-if="
info.agencyId == $store.state.user.agencyId &&
placeType === 'volunteer'
"
@click="handleClickBtn('create-service')"
class="btn z-yellow"
>
发起服务
</div>
</div>
</div>
@ -239,6 +257,14 @@
创建时间
<span>{{ info.organizationCreatedTime || "--" }}</span>
</div>
<div
v-if="info.agencyId == $store.state.user.agencyId"
@click="handleClickBtn('create-service')"
class="btn z-yellow"
>
发起服务
</div>
</div>
<div v-if="placeType === 'group_rent'">
@ -350,11 +376,19 @@
地理位置
<span>{{ info.address || "--" }}</span>
</div>
<div
v-if="info.agencyId == $store.state.user.agencyId"
@click="handleClickBtn('create-service')"
class="btn z-yellow"
>
发起服务
</div>
</div>
<div v-if="placeType === 'grid'">
<div class="operate">
<div @click="handleClickBtn('create-service')" class="btn">
<div @click="handleClickBtn('create-service')" class="btn z-yellow">
发起服务
</div>
</div>
@ -394,6 +428,7 @@ export default {
return {
hidden: true,
placeType: "",
srcItem: {},
info: {},
list: [],
};
@ -406,7 +441,11 @@ export default {
methods: {
handleClickBtn(type) {
this.$emit("operate", type, this.info);
this.$emit("operate", type, {
placeType: this.placeType,
id: this.srcItem.id,
...this.info,
});
},
handleClickListItem(item) {
@ -415,7 +454,7 @@ export default {
},
async show(item) {
console.log("-----------------show");
console.log("-----------------show:", item);
const { placeType, latitude, longitude } = item;
if (!placeType) {
return false;
@ -429,7 +468,15 @@ export default {
this.list = item.dataList;
}
if (placeType === "resi" || placeType === "special_resi") {
if (placeType === "grid") {
this.info = { ...item };
}
if (
placeType === "resi" ||
placeType === "special_resi" ||
placeType === "volunteer"
) {
await this.loadResi(item);
}
if (placeType === "public_service") {
@ -477,6 +524,7 @@ export default {
await this.loadEnterprisePartrol(item);
}
this.placeType = item.placeType;
this.srcItem = item;
this.hidden = false;
return true;
},
@ -795,7 +843,7 @@ export default {
.m-pop {
@include scrollBar2;
max-width: 380px;
color: #333;
color: #fff;
font-size: 14px;
line-height: 20px;
max-height: 600px;
@ -831,10 +879,20 @@ export default {
.btn {
margin-top: 20px;
margin-right: 20px;
width: 100px;
line-height: 30px;
width: 80px;
line-height: 24px;
border: 1px solid #eee;
text-align: center;
font-size: 14px;
border-radius: 2px;
&.z-blue {
background: #09a5ff;
border-color: #09a5ff;
}
&.z-yellow {
background: #fe6b53;
border-color: #fe6b53;
}
}
}
</style>

45
src/views/modules/visual/command/cpts/serviceInfo.vue

@ -15,6 +15,7 @@
ref="demandEditForm"
:source="'visiual'"
:formType="'add'"
:defaultData="defaultData"
@close="handleClose"
@handleClose="handleClose"
@handleOk="handleOk"
@ -27,14 +28,17 @@
<script>
import cptCard from "@/views/modules/visual/cpts/card";
import { requestPost } from "@/js/dai/request";
import addForm from "@/views/modules/communityService/fuwujilu/addForm";
export default {
name: "dialogInfo",
props: {},
props: {
defaultData: {
type: Object,
default: null,
},
},
components: {
cptCard,
@ -42,47 +46,18 @@ export default {
},
data() {
return {
loading: false,
pageType: "dispose",
eventId: "1529724450524061698",
eventDetailData: {},
};
return {};
},
async mounted() {
this.loading = false;
await this.handleSearch();
this.loading = true;
console.log('初始化serviceInfo', this.defaultData)
},
methods: {
async handleSearch() {
const url = "/gov/project/icEvent/detail";
// const url = "http://yapi.elinkservice.cn/mock/245/gov/project/icEvent/detail";
const { data, code, msg } = await requestPost(url, {
icEventId: this.eventId,
});
if (code === 0) {
this.eventDetailData = { ...data };
this.pageType = "dispose";
} else {
this.$message.error(msg);
}
},
handleClose() {
this.pageType = "";
this.$emit("handleClose");
// this.eventId = ""
},
handleOk() {
this.pageType = "";
// this.eventId = ""
this.pageNo = 1;
this.handleClose();
},

14
src/views/modules/visual/command/cpts/sidemenu-left.vue

@ -145,9 +145,19 @@ export default {
},
handleClickItem(item) {
console.log("handleClickItem", item);
if (item.categoryKey) {
this.currentKey = item.categoryKey;
this.currentItem = { ...item };
if (item.categoryKey != this.currentKey) {
this.currentKey = item.categoryKey;
this.currentItem = { ...item };
} else {
this.currentKey = "";
this.currentItem = {
categoryKey: "",
coverageType: "",
placeType: "",
};
}
} else {
this.currentUnfolded =
this.currentUnfolded == item.placeType ? "" : item.placeType;

23
src/views/modules/visual/command/index.vue

@ -51,6 +51,7 @@
v-model="searchName"
/>
<img
v-show="searchName"
class="i-close"
@click="clearSearch"
src="@/assets/img/shuju/command/close.png"
@ -187,6 +188,7 @@
<service-info
v-if="pageType === 'create-service'"
ref="ref_service"
:default-data="serviceDefaultData"
@handleClose="handleClose"
/>
@ -429,6 +431,7 @@ export default {
selGridId: "",
eventId: "",
enterpriseId: "",
serviceDefaultData: null,
};
},
@ -454,9 +457,23 @@ export default {
methods: {
handleClickDotBtn(type, info) {
this.pageType = type;
if (type == "create-service") {
//
if (
info.placeType == "volunteer" ||
info.placeType == "community_org" ||
info.placeType == "party_unit"
) {
this.serviceDefaultData = {
serviceOrgType:
info.placeType == "ic_user_volunteer" ? "" : info.placeType,
serviceOrgId: info.id,
};
} else if (info.placeType == "grid") {
this.serviceDefaultData = {
scopeIdArray: [info.id],
};
}
} else if (type == "watch-resi") {
this.toSubAgency("people", info.icResiUserId);
this.icResiUserId = info.icResiUserId;
@ -471,6 +488,7 @@ export default {
} else if (type == "watch-xuncha") {
this.enterpriseId = info.enterpriseId;
}
this.pageType = type;
},
handleClose() {
@ -600,6 +618,9 @@ export default {
},
async requestMapDot2Count() {
if (!this.placeType2) {
return (this.gridCountData = []);
}
const url = "/data/aggregator/coverage/dataList-left-subtotal";
let params = {
orgId: this.orgId,

Loading…
Cancel
Save