提交: 项目管理 详情也添加 项目地址 地图展示效果
This commit is contained in:
parent
27330fba94
commit
d647200020
|
@ -54,9 +54,67 @@
|
||||||
<el-descriptions-item label="联系人3:">
|
<el-descriptions-item label="联系人3:">
|
||||||
{{ infoData["contacts3"] || "--" }}
|
{{ infoData["contacts3"] || "--" }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="项目地址:">{{
|
<el-descriptions-item label="项目地址:">
|
||||||
infoData.projectAddress
|
<div class="e-descriptions-address">
|
||||||
}}</el-descriptions-item>
|
<span class="e-address-span" :title="infoData.projectAddress">
|
||||||
|
{{ infoData.projectAddress }}
|
||||||
|
</span>
|
||||||
|
<i
|
||||||
|
class="el-icon-map-location e-i-custom"
|
||||||
|
@click="mapClick"
|
||||||
|
></i>
|
||||||
|
<el-popover
|
||||||
|
placement="bottom"
|
||||||
|
title="项目地址坐标"
|
||||||
|
width="1080"
|
||||||
|
trigger="manual"
|
||||||
|
v-model="visible"
|
||||||
|
style="top: 30px; left: -85%; position: relative"
|
||||||
|
>
|
||||||
|
<!-- 地图模块选择和设置 -->
|
||||||
|
<slot>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="10">
|
||||||
|
<span>经度:{{ mapForm.lng }}</span>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="10">
|
||||||
|
<span>纬度:{{ mapForm.lat }}</span>
|
||||||
|
</el-col>
|
||||||
|
<!-- <el-col :span="10">
|
||||||
|
<span>地址:{{ mapForm.address }}</span>
|
||||||
|
</el-col> -->
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<shop-location
|
||||||
|
v-if="visible === true"
|
||||||
|
style="height: 450px; margin-top: 10px"
|
||||||
|
:mapCenter="mapCenter"
|
||||||
|
:draggable="false"
|
||||||
|
@mapEvent="mapEvent"
|
||||||
|
:zoom="zoom"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<div
|
||||||
|
style="
|
||||||
|
width: 100%;
|
||||||
|
height: 35px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: flex-end;
|
||||||
|
margin-top: 5px;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
size="mini"
|
||||||
|
@click="visible = false"
|
||||||
|
>确 定</el-button
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</slot>
|
||||||
|
</el-popover>
|
||||||
|
</div>
|
||||||
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
</div>
|
</div>
|
||||||
<div class="info-divider"></div>
|
<div class="info-divider"></div>
|
||||||
|
@ -73,9 +131,11 @@
|
||||||
<e-nav-menu
|
<e-nav-menu
|
||||||
v-model="activeType"
|
v-model="activeType"
|
||||||
:activeList="activeList"
|
:activeList="activeList"
|
||||||
@eventShrink="(data) => {
|
@eventShrink="
|
||||||
isShrink = data ? true : false
|
(data) => {
|
||||||
}"
|
isShrink = data ? true : false;
|
||||||
|
}
|
||||||
|
"
|
||||||
@input="
|
@input="
|
||||||
(data) => {
|
(data) => {
|
||||||
activeName = data['template'];
|
activeName = data['template'];
|
||||||
|
@ -83,7 +143,10 @@
|
||||||
}
|
}
|
||||||
"
|
"
|
||||||
/>
|
/>
|
||||||
<div class="main-block" :style="isShrink ? 'width: 100%;':'width: calc(100% - 150px);'">
|
<div
|
||||||
|
class="main-block"
|
||||||
|
:style="isShrink ? 'width: 100%;' : 'width: calc(100% - 150px);'"
|
||||||
|
>
|
||||||
<component
|
<component
|
||||||
:is="activeName"
|
:is="activeName"
|
||||||
:projectInfo="infoData"
|
:projectInfo="infoData"
|
||||||
|
@ -150,6 +213,9 @@ import EDeviceSwitchWarning from "./SafetyTemplate/EDeviceSwitchWarning";
|
||||||
import EElectricity from "./EnergyManage/EElectricity";
|
import EElectricity from "./EnergyManage/EElectricity";
|
||||||
import EEnergyLoad from "./EnergyManage/EEnergyLoad";
|
import EEnergyLoad from "./EnergyManage/EEnergyLoad";
|
||||||
|
|
||||||
|
import { initMap, gjzCode } from "@/utils/latlngFromAddress";
|
||||||
|
import ShopLocation from "@/components/Amap/components/shopLocation/index";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "projectDetailV2",
|
name: "projectDetailV2",
|
||||||
components: {
|
components: {
|
||||||
|
@ -171,6 +237,7 @@ export default {
|
||||||
EDeviceSwitchWarning,
|
EDeviceSwitchWarning,
|
||||||
EElectricity,
|
EElectricity,
|
||||||
EEnergyLoad,
|
EEnergyLoad,
|
||||||
|
ShopLocation,
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
sourceId: {
|
sourceId: {
|
||||||
|
@ -180,6 +247,16 @@ export default {
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
// 地图 弹窗
|
||||||
|
visible: false,
|
||||||
|
BMap: null,
|
||||||
|
mapCenter: {
|
||||||
|
lng: 119.459889,
|
||||||
|
lat: 25.98974,
|
||||||
|
},
|
||||||
|
zoom: 15,
|
||||||
|
mapForm: {},
|
||||||
|
// 行政划分树选项
|
||||||
stateSourceId: null,
|
stateSourceId: null,
|
||||||
resultInfo: {},
|
resultInfo: {},
|
||||||
activeName: "EObjectContainer",
|
activeName: "EObjectContainer",
|
||||||
|
@ -338,6 +415,7 @@ export default {
|
||||||
},
|
},
|
||||||
stateSourceId(val) {
|
stateSourceId(val) {
|
||||||
this.init();
|
this.init();
|
||||||
|
this.visible = false;
|
||||||
},
|
},
|
||||||
opened: {
|
opened: {
|
||||||
handler() {
|
handler() {
|
||||||
|
@ -363,6 +441,31 @@ export default {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
mapEvent(data) {
|
||||||
|
this.mapForm.lng = data.lng;
|
||||||
|
this.mapForm.lat = data.lat;
|
||||||
|
this.mapForm.address = data.address;
|
||||||
|
this.$forceUpdate();
|
||||||
|
},
|
||||||
|
// 使用地图方式定位
|
||||||
|
mapClick() {
|
||||||
|
if (this.infoData.projectLng && this.infoData.projectLat) {
|
||||||
|
this.mapCenter.lng = this.infoData.projectLng;
|
||||||
|
this.mapCenter.lat = this.infoData.projectLat;
|
||||||
|
this.mapForm.lng = this.infoData.projectLng;
|
||||||
|
this.mapForm.lat = this.infoData.projectLat;
|
||||||
|
this.mapForm.address = this.infoData.projectAddress;
|
||||||
|
} else {
|
||||||
|
this.mapCenter = {
|
||||||
|
lng: 119.459889,
|
||||||
|
lat: 25.98974,
|
||||||
|
};
|
||||||
|
this.mapForm.lng = 119.459889;
|
||||||
|
this.mapForm.lat = 25.98974;
|
||||||
|
this.mapForm.address = "";
|
||||||
|
}
|
||||||
|
this.visible = !this.visible;
|
||||||
|
},
|
||||||
init() {
|
init() {
|
||||||
this.getInfoByProjectId();
|
this.getInfoByProjectId();
|
||||||
this.getProjectCount();
|
this.getProjectCount();
|
||||||
|
@ -647,5 +750,24 @@ export default {
|
||||||
color: #1890ff !important;
|
color: #1890ff !important;
|
||||||
font-size: 20px !important;
|
font-size: 20px !important;
|
||||||
}
|
}
|
||||||
|
.e-descriptions-address {
|
||||||
|
display: flex;
|
||||||
|
width: 100%;
|
||||||
|
.e-address-span {
|
||||||
|
display: block;
|
||||||
|
max-width: calc(500px - 100px);
|
||||||
|
display: block;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.e-i-custom {
|
||||||
|
margin-left: 5px;
|
||||||
|
margin-top: 3px;
|
||||||
|
}
|
||||||
|
.e-i-custom:hover {
|
||||||
|
color: #1890ff;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -470,9 +470,9 @@ import { listSite, getSite, delSite, addSite, updateSite } from "@/api/iot/site"
|
||||||
import {
|
import {
|
||||||
listProject
|
listProject
|
||||||
} from "@/api/iot/project";
|
} from "@/api/iot/project";
|
||||||
import { initMap, gjzCode } from "@/utils/latlngFromAddress";
|
|
||||||
import Treeselect from "@riophae/vue-treeselect";
|
import Treeselect from "@riophae/vue-treeselect";
|
||||||
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
||||||
|
import { initMap, gjzCode } from "@/utils/latlngFromAddress";
|
||||||
import ShopLocation from "@/components/Amap/components/shopLocation/index";
|
import ShopLocation from "@/components/Amap/components/shopLocation/index";
|
||||||
import SelectTableWrap from "@/components/SelectTable/index";
|
import SelectTableWrap from "@/components/SelectTable/index";
|
||||||
import { serviceApiDesc } from '@/config/dvr.config'
|
import { serviceApiDesc } from '@/config/dvr.config'
|
||||||
|
@ -922,7 +922,6 @@ export default {
|
||||||
},
|
},
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
submitForm: function () {
|
submitForm: function () {
|
||||||
console.log(this.form);
|
|
||||||
this.$refs["form"].validate((valid) => {
|
this.$refs["form"].validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
if (this.form.recordId != undefined) {
|
if (this.form.recordId != undefined) {
|
||||||
|
|
Loading…
Reference in New Issue