123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- <template>
- <!-- 地区定位 -->
- <view>
- <u-navbar title="选择地区" autoBack placeholder></u-navbar>
- <view class="card_address">
- <view class="add_title">{{address || '定位中...'}}</view>
- <view class="anew_title" @click="reposition"><u-icon name="map" size="24" color="#f9ae3d"></u-icon>重新定位
- </view>
- </view>
- <view style="margin-top: 20rpx;">
- <view class="item_city" v-for="(item,index) in areaData" @click="selectArea(item,'area')">
- <view class="city_title">{{item.label}}</view>
- <view class="item_district" v-for="(item1,index1) in item.children"
- @click.stop="selectArea(item1,'district')">
- {{item1.label}}
- </view>
- </view>
- </view>
- </view>
- </template>
- <script>
- import {
- urbanArea
- } from '@/static/js/districtCode.js'
- export default {
- data() {
- return {
- address: '',
- areaData: urbanArea(), //原始数据
- }
- },
- mounted() {
- var city1 = this.$cache.getCache('city')
- var district2 = this.$cache.getCache('district')
- if (city1) {
- this.address = city1
- } else {
- this.address = district2
- }
- },
- methods: {
- selectArea(value, type) {
- this.$cache.setCache('city', '')
- this.$cache.setCache('district', '')
- if (type == 'area') {
- this.$cache.setCache('city', value.label)
- } else if (type == 'district') {
- this.$cache.setCache('district', value.label)
- }
- uni.$emit('selectArea');
- uni.redirectTo({
- url: '/pages/indexRouter'
- })
- },
- // 重新定位
- reposition() {
- uni.getLocation({
- type: 'gcj02', //返回可以用于uni.openLocation的经纬度
- geocode: true,
- success: (res) => {
- this.$cache.setCache('longitude', res)
- this.$cache.setCache('district', res.address.district)
- this.address = res.address.district
- uni.$emit('selectArea');
- uni.redirectTo({
- url: '/pages/indexRouter'
- })
- },
- });
- }
- }
- }
- </script>
- <style lang="scss" scoped>
- .card_address {
- padding: 30rpx 20rpx;
- display: flex;
- justify-content: space-between;
- align-items: center;
- border-bottom: 2rpx solid transparent;
- border-image: linear-gradient(to bottom, transparent 50%, #e7e6e4 50%) 0 0 100% 0;
- background-color: #fff;
- }
- .add_title {
- font-size: 30rpx;
- font-weight: 600;
- }
- .anew_title {
- display: flex;
- align-items: center;
- font-size: 30rpx;
- color: #f9ae3d;
- }
- .item_city {
- margin: 0rpx 20rpx;
- }
- .city_title {
- font-size: 30rpx;
- font-weight: 600;
- padding-top: 30rpx;
- padding-bottom: 30rpx;
- border-bottom: 2rpx solid transparent;
- border-image: linear-gradient(to bottom, transparent 50%, #e7e6e4 50%) 0 0 100% 0;
- }
- .item_district {
- font-size: 30rpx;
- font-weight: 600;
- padding: 30rpx 20rpx;
- border-bottom: 2rpx solid transparent;
- border-image: linear-gradient(to bottom, transparent 50%, #e7e6e4 50%) 0 0 100% 0;
- }
- </style>
|