| | |
| | | <ReportLocationSection></ReportLocationSection> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="经纬度定位" name="third"> |
| | | <el-row class="place-box"> |
| | | <div class="place-left"> |
| | | <el-form :model="LongLatPos" label-width="90px"> |
| | | <el-form-item label="经度:"> |
| | | <el-input v-model="LongLatPos.longPos"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="纬度:"> |
| | | <el-input v-model="LongLatPos.latPos"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <div class="place-right"> |
| | | <el-button type="primary" size="small" @click="mapPoints">点击定位</el-button> |
| | | <el-button type="primary" size="small" @click="dataPoints">数据定位</el-button> |
| | | </div> |
| | | </el-row> |
| | | <div class="place-bottom" style="text-align: center;margin: 5px"> |
| | | <el-button type="primary" @click="confirm">确认</el-button> |
| | | </div> |
| | | <ReportLocationPoint></ReportLocationPoint> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | // import eventBus from '../../../../eventBus' |
| | | |
| | | // 管段定位组件 |
| | | import ReportLocationSection from './ReportLocationSection' |
| | | import ReportLocationSearch from './ReportLocationSearch' |
| | | |
| | | import { pulseEffect } from '../../../../utils/utils' |
| | | |
| | | import iconUrl from '../../../../../public/assets/images/map/loc.png' |
| | | import ReportLocationPoint from './ReportLocationPoint' |
| | | |
| | | export default { |
| | | name: 'ReportLocation', |
| | | components: { |
| | | ReportLocationSearch, |
| | | ReportLocationSection |
| | | ReportLocationSection, |
| | | ReportLocationPoint |
| | | }, |
| | | data () { |
| | | return { |
| | | // active tab切换 |
| | | activeName: 'first', |
| | | // 经纬度定位 |
| | | LongLatPos: { |
| | | longPos: '', |
| | | latPos: '' |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | // 点击定位 |
| | | mapPoints () { |
| | | window.map.on('click', (e) => { |
| | | this.LongLatPos.longPos = parseFloat(e.latlng.lng).toFixed(6) |
| | | this.LongLatPos.latPos = parseFloat(e.latlng.lat).toFixed(6) |
| | | const as = [this.LongLatPos.latPos, this.LongLatPos.longPos] |
| | | // console.log(as) |
| | | window.map.setView(as, 17) |
| | | pulseEffect(as) |
| | | const marker = window.L.marker(as, { |
| | | icon: window.L.icon({ |
| | | iconUrl: iconUrl, |
| | | iconSize: [30, 30], |
| | | iconAnchor: [15, 15] |
| | | }) |
| | | }) |
| | | window.map.addLayer(marker) |
| | | window.map.off('click') |
| | | }) |
| | | }, |
| | | // 通过数据定位 |
| | | dataPoints () { |
| | | const as = [this.LongLatPos.latPos, this.LongLatPos.longPos] |
| | | // console.log(as) |
| | | window.map.setView(as, 17) |
| | | pulseEffect(as) |
| | | const marker = window.L.marker(as, { |
| | | icon: window.L.icon({ |
| | | iconUrl: iconUrl, |
| | | iconSize: [30, 30], |
| | | iconAnchor: [15, 15] |
| | | }) |
| | | }) |
| | | window.map.addLayer(marker) |
| | | this.LongLatPos.latPos = '' |
| | | this.LongLatPos.longPos = '' |
| | | }, |
| | | // 点击确认按钮事件 |
| | | confirm () { |
| | | // 通过子组件向父组件传递数据 |
| | | this.$emit('locationClick', this.LongLatPos) |
| | | this.clickLocation = '' |
| | | this.LongLatPos.longPos = '' |
| | | this.LongLatPos.latPos = '' |
| | | activeName: 'first' |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .place-box { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-around; |
| | | } |
| | | |
| | | .place { |
| | | text-align: center; |
| | | |
| | | .place-top { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-around; |
| | | |
| | | .place-right { |
| | | .el-button { |
| | | margin: 15px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .place-bottom { |
| | | .el-button { |
| | | /*margin: 15px;*/ |
| | | } |
| | | } |
| | | } |
| | | </style> |