Browse Source

bug#444,通讯录坐标问题

feature
mk 2 years ago
parent
commit
48a14c2d3d
  1. 352
      src/views/modules/base/organization/organization.vue

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

@ -21,7 +21,7 @@
color: #3e8ef7; color: #3e8ef7;
cursor: pointer; cursor: pointer;
" "
icon="el-icon-edit">修改</el-link> icon="el-icon-edit">编辑</el-link>
</el-breadcrumb-item> </el-breadcrumb-item>
</el-breadcrumb> </el-breadcrumb>
</el-col> </el-col>
@ -275,7 +275,7 @@
<el-dialog title="新增部门" <el-dialog title="新增部门"
:visible.sync="dialogVisible" :visible.sync="dialogVisible"
width="850" width="850"
:before-close="handleClose"> :before-close="handleClose" destroy-on-close>
<el-form label-width="120px" <el-form label-width="120px"
:rules="rules"> :rules="rules">
<el-form-item label="部门名称" <el-form-item label="部门名称"
@ -311,7 +311,7 @@
<el-dialog title="新增网格" <el-dialog title="新增网格"
:visible.sync="dialogVisibleGrid" :visible.sync="dialogVisibleGrid"
width="850" width="850"
:before-close="handleClose"> :before-close="handleClose" destroy-on-close>
<el-form label-width="120px" <el-form label-width="120px"
:rules="rules"> :rules="rules">
<el-form-item label="网格名称" <el-form-item label="网格名称"
@ -351,9 +351,35 @@
</el-form-item> </el-form-item>
<!-- 组织位置 --> <!-- 组织位置 -->
<el-form-item label="坐标"> <el-form-item
<div id="con"></div> label="坐标"
</el-form-item> prop="longitude"
label-width="120px"
style="display: block"
>
<div style="width: 500px">
<el-select
v-model="searchValue"
filterable
style="width: 500px"
remote
:reserve-keyword="true"
placeholder="请输入关键词"
:remote-method="remoteMethod"
:loading="loading"
>
<el-option
v-for="(item, index) in searchOptions"
@click.native="handleClickKey(index)"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<div id="wangge" class="div_map"></div>
</div>
</el-form-item>
</el-form> </el-form>
<div slot="footer"> <div slot="footer">
@ -369,7 +395,7 @@
<el-dialog title="新增人员" <el-dialog title="新增人员"
:visible.sync="dialogVisiblePeo" :visible.sync="dialogVisiblePeo"
width="850" width="850"
:before-close="handleClose"> :before-close="handleClose" destroy-on-close>
<el-form :model="peoForm" <el-form :model="peoForm"
label-width="120px" label-width="120px"
ref="addPeoForm" ref="addPeoForm"
@ -456,7 +482,7 @@
title="人员修改" title="人员修改"
:visible.sync="modifyPeo" :visible.sync="modifyPeo"
width="850" width="850"
:before-close="handleClose"> :before-close="handleClose" destroy-on-close>
<el-form :model="peoForm" <el-form :model="peoForm"
label-width="120px" label-width="120px"
ref="editPeoForm" ref="editPeoForm"
@ -552,7 +578,7 @@
title="人员详情" title="人员详情"
:visible.sync="details" :visible.sync="details"
width="850" width="850"
:before-close="handleClosePeoView"> :before-close="handleClosePeoView" destroy-on-close>
<el-form label-width="120px"> <el-form label-width="120px">
<el-form-item label="姓名"> <el-form-item label="姓名">
<el-input v-model="peoForm.name" <el-input v-model="peoForm.name"
@ -602,7 +628,7 @@
title="人员调动" title="人员调动"
:visible.sync="transferPeo" :visible.sync="transferPeo"
width="850" width="850"
:before-close="handleClose"> :before-close="handleClose" destroy-on-close>
<el-form label-width="120px" <el-form label-width="120px"
:model="agencyForm"> :model="agencyForm">
<el-form-item label="姓名"> <el-form-item label="姓名">
@ -646,7 +672,7 @@
title="新增组织" title="新增组织"
:visible.sync="createAgencyDialogFlag" :visible.sync="createAgencyDialogFlag"
width="850" width="850"
:before-close="handleClose"> :before-close="handleClose" destroy-on-close>
<el-form label-width="120px"> <el-form label-width="120px">
<el-form-item label="组织名称"> <el-form-item label="组织名称">
<el-input v-model="agencyForm.agencyName" <el-input v-model="agencyForm.agencyName"
@ -678,8 +704,34 @@
<el-input v-model="agencyForm.mobile" <el-input v-model="agencyForm.mobile"
placeholder="请输入联系电话"></el-input> placeholder="请输入联系电话"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="坐标"> <el-form-item
<div id="con"></div> label="坐标"
prop="longitude"
label-width="120px"
style="display: block"
>
<div style="width: 500px">
<el-select
v-model="searchValue"
filterable
style="width: 500px"
remote
:reserve-keyword="true"
placeholder="请输入关键词"
:remote-method="remoteMethod"
:loading="loading"
>
<el-option
v-for="(item, index) in searchOptions"
@click.native="handleClickKey(index)"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<div id="jiedao" class="div_map"></div>
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer"> <div slot="footer">
@ -694,7 +746,7 @@
title="修改组织" title="修改组织"
:visible.sync="modifyCityOrgPop" :visible.sync="modifyCityOrgPop"
width="850" width="850"
:before-close="handleClose"> :before-close="handleClose" destroy-on-close>
<el-form label-width="120px"> <el-form label-width="120px">
<el-form-item label="组织名称"> <el-form-item label="组织名称">
<el-input v-model="OrgDetailsForm.agencyName" <el-input v-model="OrgDetailsForm.agencyName"
@ -713,8 +765,34 @@
<el-input v-model="OrgDetailsForm.mobile" <el-input v-model="OrgDetailsForm.mobile"
placeholder="请输入联系电话"></el-input> placeholder="请输入联系电话"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="坐标"> <el-form-item
<div id="con"></div> label="坐标"
prop="longitude"
label-width="120px"
style="display: block"
>
<div style="width: 500px">
<el-select
v-model="searchValue"
filterable
style="width: 500px"
remote
:reserve-keyword="true"
placeholder="请输入关键词"
:remote-method="remoteMethod"
:loading="loading"
>
<el-option
v-for="(item, index) in searchOptions"
@click.native="handleClickKey(index)"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<div id="shiqu" class="div_map"></div>
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer"> <div slot="footer">
@ -729,7 +807,7 @@
title="修改组织" title="修改组织"
:visible.sync="streetOrCommunity" :visible.sync="streetOrCommunity"
width="850" width="850"
:before-close="handleClose"> :before-close="handleClose" destroy-on-close>
<el-form label-width="120px"> <el-form label-width="120px">
<el-form-item label="组织名称"> <el-form-item label="组织名称">
<el-input v-model="OrgDetailsForm.agencyName" <el-input v-model="OrgDetailsForm.agencyName"
@ -761,8 +839,34 @@
<el-input v-model="OrgDetailsForm.mobile" <el-input v-model="OrgDetailsForm.mobile"
placeholder="请输入联系电话"></el-input> placeholder="请输入联系电话"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="坐标"> <el-form-item
<div id="con"></div> label="坐标"
prop="longitude"
label-width="120px"
style="display: block"
>
<div style="width: 500px">
<el-select
v-model="searchValue"
filterable
style="width: 500px"
remote
:reserve-keyword="true"
placeholder="请输入关键词"
:remote-method="remoteMethod"
:loading="loading"
>
<el-option
v-for="(item, index) in searchOptions"
@click.native="handleClickKey(index)"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<div id="jiedao" class="div_map"></div>
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer"> <div slot="footer">
@ -777,7 +881,7 @@
title="修改部门" title="修改部门"
:visible.sync="OrgUnitPop" :visible.sync="OrgUnitPop"
width="850" width="850"
:before-close="handleClose"> :before-close="handleClose" destroy-on-close>
<el-form label-width="120px"> <el-form label-width="120px">
<el-form-item label="部门名称"> <el-form-item label="部门名称">
<el-input v-model="OrgUnitDetailsForm.departmentName" <el-input v-model="OrgUnitDetailsForm.departmentName"
@ -809,7 +913,7 @@
title="修改网格" title="修改网格"
:visible.sync="modifyGridPop" :visible.sync="modifyGridPop"
width="850" width="850"
:before-close="handleClose"> :before-close="handleClose" destroy-on-close>
<el-form label-width="120px"> <el-form label-width="120px">
<el-form-item label="网格名称"> <el-form-item label="网格名称">
<el-input v-model="modifyGridFrom.gridName" <el-input v-model="modifyGridFrom.gridName"
@ -852,8 +956,34 @@
</el-form-item> </el-form-item>
<!-- 组织位置,地图 --> <!-- 组织位置,地图 -->
<el-form-item label="坐标"> <el-form-item
<div id="con"></div> label="坐标"
prop="longitude"
label-width="120px"
style="display: block"
>
<div style="width: 500px">
<el-select
v-model="searchValue"
filterable
style="width: 500px"
remote
:reserve-keyword="true"
placeholder="请输入关键词"
:remote-method="remoteMethod"
:loading="loading"
>
<el-option
v-for="(item, index) in searchOptions"
@click.native="handleClickKey(index)"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<div id="wangge" class="div_map"></div>
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer"> <div slot="footer">
@ -868,7 +998,7 @@
<script> <script>
import { requestPost, requestGet } from "@/js/dai/request"; import { requestPost, requestGet } from "@/js/dai/request";
import daiMap from "@/utils/dai-map"; import daiMap from "@/utils/dai-map";
var map
export default { export default {
data () { data () {
return { return {
@ -934,6 +1064,9 @@ export default {
latitude: "", latitude: "",
longitude: "", longitude: "",
Navigation: "", Navigation: "",
searchValue:"",
searchOptions:[],
resultList:[],
// //
queryParams: { queryParams: {
deptName: undefined, deptName: undefined,
@ -1133,41 +1266,43 @@ export default {
dialogVisibleGrid (val) { dialogVisibleGrid (val) {
if (val) { if (val) {
setTimeout(() => { setTimeout(() => {
this.createMap(); this.initMap('wangge');
}, 1000); }, 1000);
} }
}, },
createAgencyDialogFlag (val) { createAgencyDialogFlag (val) {
if (val) { if (val) {
setTimeout(() => { setTimeout(() => {
this.createMap(); this.initMap('jiedao');
}, 1000); }, 1000);
} }
}, },
modifyCityOrgPop (val) { modifyCityOrgPop (val) {
if (val) { if (val) {
setTimeout(() => { setTimeout(() => {
this.createMap(); this.initMap('shiqu');
}, 1000); }, 1000);
} }
}, },
streetOrCommunity (val) { streetOrCommunity (val) {
if (val) { if (val) {
setTimeout(() => { setTimeout(() => {
this.createMap(); this.initMap('jiedao');
}, 1000); }, 1000);
} }
}, },
modifyGridPop (val) { modifyGridPop (val) {
if (val) { if (val) {
setTimeout(() => { setTimeout(() => {
this.createMap(); this.initMap('wangge');
}, 1000); }, 1000);
} }
}, },
"latitude":function(val){
console.log(val);
}
}, },
mounted () { mounted () {
// this.initMap()
}, },
methods: { methods: {
// id // id
@ -2326,6 +2461,7 @@ export default {
modifyOrgInfo () { modifyOrgInfo () {
this.judgeOrgInfoLevel = this.judgeOrgInfoLevel =
this.breadcrumbArr[this.breadcrumbArr.length - 1]; this.breadcrumbArr[this.breadcrumbArr.length - 1];
console.log(this.judgeOrgInfoLevel.type);
if (this.judgeOrgInfoLevel.type === "agency") { if (this.judgeOrgInfoLevel.type === "agency") {
this.getOrgDetailsById(); this.getOrgDetailsById();
setTimeout(() => { setTimeout(() => {
@ -2519,108 +2655,90 @@ export default {
} }
}, },
/** 地图初始化 */ // init
createMap () { initMap(id) {
let { latitude, longitude } = this; let { latitude, longitude } = this;
if ( console.log(latitude,longitude);
latitude === null || let storeLatitude = this.$store.state.user.latitude
latitude === "" || let storeLongitude = this.$store.state.user.longitude
longitude === null || let lat = latitude || storeLatitude
longitude === "" let lng = longitude || storeLongitude
) { console.log( document.getElementById(id));
let { latitude: latitude2, longitude: longitude2 } = console.log(lat,lng);
this.$store.state.user; map = new daiMap(
if (!latitude2 || latitude2 == "" || latitude2 == "0") { document.getElementById(id),
latitude = 39.9088810666821; { lat , lng },
longitude = 116.39743841556731;
} else {
latitude = latitude2;
longitude = longitude2;
}
}
// var center = new window.TMap.LatLng(latitude, longitude); //
var map = new daiMap(
document.getElementById("con"),
{ latitude, longitude },
{ {
zoom: 16.2, // zoom: 16.2, //
pitch: 43.5, // pitch: 43.5, //
rotation: 45, // rotation: 45, //
} }
); );
// //
// var map = new window.TMap.Map("con", {
// center: center,
// zoom: 13, //
// pitch: 43.5, //
// rotation: 45, //
// });
// //
// let markers = new window.TMap.MultiMarker({
// map: map,
// geometries: [],
// });
// map.on("panend", (e) => {
// handleMoveCenter(e);
// });
// //
map.on("dragend", (e) => { map.on("dragend", (e) => {
handleMoveCenter(e, (lng, lat) => { this.handleMoveCenter(e);
this.longitude = lng;
this.latitude = lat;
});
}); });
// map.setCenter(latitude, longitude); map.setCenter(latitude, longitude);
map.setMarker(latitude, longitude); map.setMarker(latitude, longitude);
},
async handleMoveCenter() {
//
const { lat, lng } = map.getCenter();
this.latitude = lat;
this.longitude = lng;
map.setMarker(lat, lng);
let { msg, data } = await map.getAddress(lat, lng);
if (msg == "success") {
this.address = data.address;
this.searchValue = data.address;
this.searchOptions = [];
}
},
// setMarker(latitude, longitude); async remoteMethod(query) {
console.log(query);
// function setMarker(lat, lng) { if (query !== "") {
// console.log("setMarker", lat, lng); this.loading = true;
// markers.setGeometries([]);
const { msg, data } = await map.searchNearby(query);
// markers.add([ this.loading = false;
// { this.resultList = [];
// id: "4",
// styleId: "marker", if (msg == "success" && data.resultList && data.resultList.length > 0) {
// position: new window.TMap.LatLng(lat, lng), if (data.resultList && data.resultList.length > 0) {
// properties: { this.resultList = data.resultList;
// title: "marker4", this.searchOptions = this.resultList.map((item) => {
// }, return {
// }, value: `${item.hotPointID}`,
// ]); label: `${item.address + item.name}`,
// } };
});
function handleMoveCenter (e, callback) { }
// } else {
const { lat, lng } = map.getCenter(); this.searchOptions = [
// const lat = lat; {
// const lng = lng; value: "0",
map.setMarker(lat, lng); label: "未检索到结果",
},
// this ];
callback(lng, lat) }
} else {
// let { msg, data } = await map.getAddress(lat, lng); this.searchOptions = [];
// if (msg == "success") {
// this.formData.address = data.address
// this.searchValue = data.address
// this.searchOptions = []
// }
//
// const center = map.getCenter();
// const lat = center.getLat();
// const lng = center.getLng();
// setMarker(lat, lng);
} }
}, },
handleClickKey(index) {
let selPosition = this.resultList[index];
let lonlat = selPosition.lonlat.split(" ");
map.setCenter(lonlat[1], lonlat[0]);
map.setMarker(lonlat[1], lonlat[0]);
this.latitude = lonlat[1];
this.longitude = lonlat[0];
// this.formData.address = selPosition.address + selPosition.name;
},
}, },
}; };
</script> </script>

Loading…
Cancel
Save