Browse Source

修改地图加载方式;

feature
luyan 3 years ago
parent
commit
4e4e0ce593
  1. 174
      src/views/modules/base/community/buildForm.vue

174
src/views/modules/base/community/buildForm.vue

@ -2,46 +2,24 @@
<div> <div>
<div class="dialog-h-content scroll-h"> <div class="dialog-h-content scroll-h">
<el-form ref="ref_form" <el-form ref="ref_form" :inline="true" :model="dataForm" :rules="dataRule" label-width="150px" class="g-edit-form">
:inline="true" <el-form-item label="所属小区" style="display: block">
:model="dataForm"
:rules="dataRule"
label-width="150px"
class="g-edit-form">
<el-form-item label="所属小区"
style="display: block">
<span>{{ agencyObj.agencyName }}{{ agencyObj.gridName }}{{ agencyObj.label }}</span> <span>{{ agencyObj.agencyName }}{{ agencyObj.gridName }}{{ agencyObj.label }}</span>
</el-form-item> </el-form-item>
<el-form-item label="楼栋名称" <el-form-item label="楼栋名称" prop="buildingName" style="display: block">
prop="buildingName" <el-input class="u-edit-width-normal" maxlength="10" placeholder="请输入楼栋名称" v-model="dataForm.buildingName">
style="display: block">
<el-input class="u-edit-width-normal"
maxlength="10"
placeholder="请输入楼栋名称"
v-model="dataForm.buildingName">
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="楼栋编码" <el-form-item label="楼栋编码" prop="coding" style="display: block">
prop="coding" <el-input class="u-edit-width-normal" maxlength="50" placeholder="请输入楼栋编码" v-model="dataForm.coding">
style="display: block">
<el-input class="u-edit-width-normal"
maxlength="50"
placeholder="请输入楼栋编码"
v-model="dataForm.coding">
</el-input> </el-input>
<el-button style="margin-left: 10px" <el-button style="margin-left: 10px" type="text" class="div-table-button--blue" icon="el-icon-upload2"
type="text" size="small" @click="handleCode">生成</el-button>
class="div-table-button--blue"
icon="el-icon-upload2"
size="small"
@click="handleCode">生成</el-button>
</el-form-item> </el-form-item>
<el-form-item label="楼栋类型" <el-form-item label="楼栋类型" prop="type" style="display: block">
prop="type"
style="display: block">
<el-radio-group v-model="buildType"> <el-radio-group v-model="buildType">
<el-radio :label="'1'">商品房</el-radio> <el-radio :label="'1'">商品房</el-radio>
@ -57,103 +35,55 @@
v-model="dataForm.sort" v-model="dataForm.sort"
label="排序"></el-input-number> label="排序"></el-input-number>
</el-form-item> --> </el-form-item> -->
<el-form-item label="单元数" <el-form-item label="单元数" style="display: block" prop="totalUnitNum">
style="display: block" <el-input-number class="item_width_4" v-model="dataForm.totalUnitNum" :min="1" :max="9999"
prop="totalUnitNum">
<el-input-number class="item_width_4"
v-model="dataForm.totalUnitNum"
:min="1"
:max="9999"
label="单元数"></el-input-number> label="单元数"></el-input-number>
</el-form-item> </el-form-item>
<el-form-item label="层数" <el-form-item label="层数" style="display: block" prop="totalFloorNum">
style="display: block" <el-input-number class="item_width_4" v-model="dataForm.totalFloorNum" :min="0" :max="9999"
prop="totalFloorNum">
<el-input-number class="item_width_4"
v-model="dataForm.totalFloorNum"
:min="0"
:max="9999"
label="层数"></el-input-number> label="层数"></el-input-number>
</el-form-item> </el-form-item>
<el-form-item label="总户数" <el-form-item label="总户数" style="display: block" prop="totalHouseNum">
style="display: block" <el-input-number class="item_width_4" v-model="dataForm.totalHouseNum" :min="0" :max="9999"
prop="totalHouseNum">
<el-input-number class="item_width_4"
v-model="dataForm.totalHouseNum"
:min="0"
:max="9999"
label="总户数"></el-input-number> label="总户数"></el-input-number>
</el-form-item> </el-form-item>
<el-form-item label="人口数" <el-form-item label="人口数" style="display: block" prop="realPerson">
style="display: block" <el-input-number class="item_width_4" v-model="dataForm.realPerson" :min="0" :max="9999"
prop="realPerson">
<el-input-number class="item_width_4"
v-model="dataForm.realPerson"
:min="0"
:max="9999"
label="人口数"></el-input-number> label="人口数"></el-input-number>
</el-form-item> </el-form-item>
<el-form-item label="楼长姓名" <el-form-item label="楼长姓名" prop="buildingLeaderName" style="display: block">
prop="buildingLeaderName" <el-input class="u-edit-width-normal" placeholder="请输入楼长姓名" v-model="dataForm.buildingLeaderName">
style="display: block">
<el-input class="u-edit-width-normal"
placeholder="请输入楼长姓名"
v-model="dataForm.buildingLeaderName">
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="楼长电话" <el-form-item label="楼长电话" prop="buildingLeaderMobile" style="display: block">
prop="buildingLeaderMobile" <el-input class="u-edit-width-normal" type='number' placeholder="请输入楼长电话"
style="display: block">
<el-input class="u-edit-width-normal"
type='number'
placeholder="请输入楼长电话"
v-model="dataForm.buildingLeaderMobile"> v-model="dataForm.buildingLeaderMobile">
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="地图位置" <el-form-item label="地图位置" prop="longitude" style="display: block">
prop="longitude"
style="display: block">
<div class="u-edit-width-normal m-edit-map"> <div class="u-edit-width-normal m-edit-map">
<el-select v-model="searchValue" <el-select v-model="searchValue" filterable class="u-edit-width-normal m-edit-map-search" remote
filterable :reserve-keyword="true" placeholder="请输入关键词" :remote-method="remoteMethod" :loading="loading">
class="u-edit-width-normal m-edit-map-search" <el-option v-for="(item, index) in searchOptions" @click.native="handleClickKey(index)" :key="item.value"
remote :label="item.label" :value="item.value">
: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-option>
</el-select> </el-select>
<div id="app_build" <div id="app_build" class="m-map-item"></div>
class="m-map-item"></div>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="楼栋地址" <el-form-item label="楼栋地址" prop="coordinatePosition" style="display: block">
prop="coordinatePosition"
style="display: block">
<!-- <span>{{ dataForm.coordinatePosition }}</span> --> <!-- <span>{{ dataForm.coordinatePosition }}</span> -->
<el-input class="u-edit-width-normal" <el-input class="u-edit-width-normal" placeholder="请选择楼栋地址" v-model="dataForm.coordinatePosition" />
placeholder="请选择楼栋地址"
v-model="dataForm.coordinatePosition" />
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<div class="m-edit-btn"> <div class="m-edit-btn">
<el-button size="small" <el-button size="small" @click="handleCancle"> </el-button>
@click="handleCancle"> </el-button> <el-button size="small" type="primary" class="diy-button--blue" :disabled="btnDisable" @click="handleComfirm">
<el-button size="small" </el-button>
type="primary"
class="diy-button--blue"
:disabled="btnDisable"
@click="handleComfirm"> </el-button>
</div> </div>
</div> </div>
</template> </template>
@ -169,7 +99,7 @@ var markers
var infoWindowList var infoWindowList
let loading // let loading //
export default { export default {
data () { data() {
return { return {
formType: 'add', // addeditdetail formType: 'add', // addeditdetail
searchOptions: [], searchOptions: [],
@ -208,12 +138,12 @@ export default {
} }
}, },
components: {}, components: {},
mounted () { mounted() {
}, },
methods: { methods: {
async initForm (type, row, agencyObj) { async initForm(type, row, agencyObj) {
this.$refs.ref_form.resetFields(); this.$refs.ref_form.resetFields();
let { latitude, longitude } = this.$store.state.user; let { latitude, longitude } = this.$store.state.user;
this.agencyObj = agencyObj this.agencyObj = agencyObj
@ -233,16 +163,11 @@ export default {
this.dataForm.longitude = longitude this.dataForm.longitude = longitude
} }
this.$nextTick(() => { this.$nextTick(() => {
if (!map) {
this.initMap(this.dataForm.latitude, this.dataForm.longitude); this.initMap(this.dataForm.latitude, this.dataForm.longitude);
} else {
map.setCenter(this.dataForm.latitude, this.dataForm.longitude);
map.setMarker(this.dataForm.latitude, this.dataForm.longitude);
}
}) })
}, },
async handleComfirm () { async handleComfirm() {
this.btnDisable = true this.btnDisable = true
setTimeout(() => { setTimeout(() => {
this.btnDisable = false this.btnDisable = false
@ -258,19 +183,16 @@ export default {
}) })
}, },
async handleCode () { async handleCode() {
const { data, code, msg } = await requestPost( const { data, code, msg } = await requestPost(
"/actual/base/communityBuilding/getBuildingCoding/" + this.dataForm.neighborHoodId); "/actual/base/communityBuilding/getBuildingCoding/" + this.dataForm.neighborHoodId);
console.log('data----', data)
console.log('code----', code)
console.log('msg----', msg)
if (msg == "success" && code == 0) { if (msg == "success" && code == 0) {
this.dataForm.coding = data.coding this.dataForm.coding = data.coding
this.dataForm.sysCoding = data.sysCoding this.dataForm.sysCoding = data.sysCoding
} }
}, },
async addBuild () { async addBuild() {
if (this.dataForm.buildingLeaderMobile) { if (this.dataForm.buildingLeaderMobile) {
const regPhone = /^1(3|4|5|6|7|8|9)\d{9}$/; // const regPhone = /^1(3|4|5|6|7|8|9)\d{9}$/; //
if (this.dataForm.buildingLeaderMobile && regPhone.test(this.dataForm.buildingLeaderMobile) === false) { if (this.dataForm.buildingLeaderMobile && regPhone.test(this.dataForm.buildingLeaderMobile) === false) {
@ -288,7 +210,6 @@ export default {
url = '/actual/base/communityBuilding/saveCommunityBuilding' url = '/actual/base/communityBuilding/saveCommunityBuilding'
} else { } else {
url = '/actual/base/communityBuilding/updateCommunityBuilding' url = '/actual/base/communityBuilding/updateCommunityBuilding'
this.dataForm.buildingId = this.buildingId this.dataForm.buildingId = this.buildingId
} }
@ -310,14 +231,13 @@ export default {
}, },
handleCancle () { handleCancle() {
this.resetData() this.resetData()
this.$emit('dialogCancle') this.$emit('dialogCancle')
}, },
// init // init
initMap (latitude, longitude) { initMap(latitude, longitude) {
map = new daiMap( map = new daiMap(
document.getElementById("app_build"), document.getElementById("app_build"),
{ latitude, longitude }, { latitude, longitude },
@ -339,7 +259,7 @@ export default {
}, },
async handleMoveCenter () { async handleMoveCenter() {
// //
const { lat, lng } = map.getCenter(); const { lat, lng } = map.getCenter();
this.dataForm.latitude = lat; this.dataForm.latitude = lat;
@ -355,7 +275,7 @@ export default {
} }
}, },
async remoteMethod (query) { async remoteMethod(query) {
if (query !== '') { if (query !== '') {
this.loading = true; this.loading = true;
@ -386,7 +306,7 @@ export default {
} }
}, },
handleClickKey (index) { handleClickKey(index) {
let selPosition = this.resultList[index] let selPosition = this.resultList[index]
let lonlat = selPosition.lonlat.split(" ") let lonlat = selPosition.lonlat.split(" ")
map.setCenter(lonlat[1], lonlat[0]); map.setCenter(lonlat[1], lonlat[0]);
@ -397,7 +317,7 @@ export default {
}, },
resetData () { resetData() {
this.searchValue = '' this.searchValue = ''
this.searchOptions = [] this.searchOptions = []
this.resultList = [] this.resultList = []
@ -426,7 +346,7 @@ export default {
} }
}, },
// //
startLoading () { startLoading() {
loading = Loading.service({ loading = Loading.service({
lock: true, // lock: true, //
text: '正在加载……', // text: '正在加载……', //
@ -434,7 +354,7 @@ export default {
}) })
}, },
// //
endLoading () { endLoading() {
// clearTimeout(timer); // clearTimeout(timer);
if (loading) { if (loading) {
loading.close() loading.close()
@ -442,7 +362,7 @@ export default {
} }
}, },
computed: { computed: {
dataRule () { dataRule() {
return { return {
buildingName: [ buildingName: [
{ required: true, message: '楼栋名称不能为空', trigger: 'blur' }, { required: true, message: '楼栋名称不能为空', trigger: 'blur' },

Loading…
Cancel
Save