陶杰
2024-12-23 d39644872fa6f9499fc2c1651bced631a9e96b19
1.高德地图未开发完成版本(可能废弃)
已修改3个文件
已添加2个文件
1619 ■■■■■ 文件已修改
environments/index.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
map/amap-wx.130.js 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/user/address/address.vue 1217 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/user/address/gaode-address.vue 359 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
environments/index.js
@@ -1,10 +1,14 @@
export default {
    
    httpBaseUri: 'https://www.hmyxianhua.com/flower',
    // httpBaseUri: 'https://www.hmyxianhua.com/flower',
    // httpBaseUri: 'http://47.99.58.211/flower',
    // httpBaseUri: 'http://192.168.1.198:8080/flower',
    // httpBaseUri: 'http://192.168.1.213:8080/flower',
    // httpBaseUri: 'http://localhost:8080/flower',
    httpBaseUri: 'http://192.168.1.7:8080/flower',
    clientId: '',
    secret: '',
    tenantId: '',
    type: 'dev'
}
map/amap-wx.130.js
对比新文件
@@ -0,0 +1,31 @@
function AMapWX(a){this.key=a.key;this.requestConfig={key:a.key,s:"rsx",platform:"WXJS",appname:a.key,sdkversion:"1.2.0",logversion:"2.0"};this.MeRequestConfig={key:a.key,serviceName:"https://restapi.amap.com/rest/me"}}
AMapWX.prototype.getWxLocation=function(a,b){wx.getLocation({type:"gcj02",success:function(c){c=c.longitude+","+c.latitude;wx.setStorage({key:"userLocation",data:c});b(c)},fail:function(c){wx.getStorage({key:"userLocation",success:function(d){d.data&&b(d.data)}});a.fail({errCode:"0",errMsg:c.errMsg||""})}})};
AMapWX.prototype.getMEKeywordsSearch=function(a){if(!a.options)return a.fail({errCode:"0",errMsg:"\u7f3a\u5c11\u5fc5\u8981\u53c2\u6570"});var b=a.options,c=this.MeRequestConfig,d={key:c.key,s:"rsx",platform:"WXJS",appname:a.key,sdkversion:"1.2.0",logversion:"2.0"};b.layerId&&(d.layerId=b.layerId);b.keywords&&(d.keywords=b.keywords);b.city&&(d.city=b.city);b.filter&&(d.filter=b.filter);b.sortrule&&(d.sortrule=b.sortrule);b.pageNum&&(d.pageNum=b.pageNum);b.pageSize&&(d.pageSize=b.pageSize);b.sig&&(d.sig=
b.sig);wx.request({url:c.serviceName+"/cpoint/datasearch/local",data:d,method:"GET",header:{"content-type":"application/json"},success:function(e){(e=e.data)&&e.status&&"1"===e.status&&0===e.code?a.success(e.data):a.fail({errCode:"0",errMsg:e})},fail:function(e){a.fail({errCode:"0",errMsg:e.errMsg||""})}})};
AMapWX.prototype.getMEIdSearch=function(a){if(!a.options)return a.fail({errCode:"0",errMsg:"\u7f3a\u5c11\u5fc5\u8981\u53c2\u6570"});var b=a.options,c=this.MeRequestConfig,d={key:c.key,s:"rsx",platform:"WXJS",appname:a.key,sdkversion:"1.2.0",logversion:"2.0"};b.layerId&&(d.layerId=b.layerId);b.id&&(d.id=b.id);b.sig&&(d.sig=b.sig);wx.request({url:c.serviceName+"/cpoint/datasearch/id",data:d,method:"GET",header:{"content-type":"application/json"},success:function(e){(e=e.data)&&e.status&&"1"===e.status&&
0===e.code?a.success(e.data):a.fail({errCode:"0",errMsg:e})},fail:function(e){a.fail({errCode:"0",errMsg:e.errMsg||""})}})};
AMapWX.prototype.getMEPolygonSearch=function(a){if(!a.options)return a.fail({errCode:"0",errMsg:"\u7f3a\u5c11\u5fc5\u8981\u53c2\u6570"});var b=a.options,c=this.MeRequestConfig,d={key:c.key,s:"rsx",platform:"WXJS",appname:a.key,sdkversion:"1.2.0",logversion:"2.0"};b.layerId&&(d.layerId=b.layerId);b.keywords&&(d.keywords=b.keywords);b.polygon&&(d.polygon=b.polygon);b.filter&&(d.filter=b.filter);b.sortrule&&(d.sortrule=b.sortrule);b.pageNum&&(d.pageNum=b.pageNum);b.pageSize&&(d.pageSize=b.pageSize);
b.sig&&(d.sig=b.sig);wx.request({url:c.serviceName+"/cpoint/datasearch/polygon",data:d,method:"GET",header:{"content-type":"application/json"},success:function(e){(e=e.data)&&e.status&&"1"===e.status&&0===e.code?a.success(e.data):a.fail({errCode:"0",errMsg:e})},fail:function(e){a.fail({errCode:"0",errMsg:e.errMsg||""})}})};
AMapWX.prototype.getMEaroundSearch=function(a){if(!a.options)return a.fail({errCode:"0",errMsg:"\u7f3a\u5c11\u5fc5\u8981\u53c2\u6570"});var b=a.options,c=this.MeRequestConfig,d={key:c.key,s:"rsx",platform:"WXJS",appname:a.key,sdkversion:"1.2.0",logversion:"2.0"};b.layerId&&(d.layerId=b.layerId);b.keywords&&(d.keywords=b.keywords);b.center&&(d.center=b.center);b.radius&&(d.radius=b.radius);b.filter&&(d.filter=b.filter);b.sortrule&&(d.sortrule=b.sortrule);b.pageNum&&(d.pageNum=b.pageNum);b.pageSize&&
(d.pageSize=b.pageSize);b.sig&&(d.sig=b.sig);wx.request({url:c.serviceName+"/cpoint/datasearch/around",data:d,method:"GET",header:{"content-type":"application/json"},success:function(e){(e=e.data)&&e.status&&"1"===e.status&&0===e.code?a.success(e.data):a.fail({errCode:"0",errMsg:e})},fail:function(e){a.fail({errCode:"0",errMsg:e.errMsg||""})}})};
AMapWX.prototype.getGeo=function(a){var b=this.requestConfig,c=a.options;b={key:this.key,extensions:"all",s:b.s,platform:b.platform,appname:this.key,sdkversion:b.sdkversion,logversion:b.logversion};c.address&&(b.address=c.address);c.city&&(b.city=c.city);c.batch&&(b.batch=c.batch);c.sig&&(b.sig=c.sig);wx.request({url:"https://restapi.amap.com/v3/geocode/geo",data:b,method:"GET",header:{"content-type":"application/json"},success:function(d){(d=d.data)&&d.status&&"1"===d.status?a.success(d):a.fail({errCode:"0",
errMsg:d})},fail:function(d){a.fail({errCode:"0",errMsg:d.errMsg||""})}})};
AMapWX.prototype.getRegeo=function(a){function b(d){var e=c.requestConfig;wx.request({url:"https://restapi.amap.com/v3/geocode/regeo",data:{key:c.key,location:d,extensions:"all",s:e.s,platform:e.platform,appname:c.key,sdkversion:e.sdkversion,logversion:e.logversion},method:"GET",header:{"content-type":"application/json"},success:function(g){if(g.data.status&&"1"==g.data.status){g=g.data.regeocode;var h=g.addressComponent,f=[],k=g.roads[0].name+"\u9644\u8fd1",m=d.split(",")[0],n=d.split(",")[1];if(g.pois&&
g.pois[0]){k=g.pois[0].name+"\u9644\u8fd1";var l=g.pois[0].location;l&&(m=parseFloat(l.split(",")[0]),n=parseFloat(l.split(",")[1]))}h.provice&&f.push(h.provice);h.city&&f.push(h.city);h.district&&f.push(h.district);h.streetNumber&&h.streetNumber.street&&h.streetNumber.number?(f.push(h.streetNumber.street),f.push(h.streetNumber.number)):f.push(g.roads[0].name);f=f.join("");a.success([{iconPath:a.iconPath,width:a.iconWidth,height:a.iconHeight,name:f,desc:k,longitude:m,latitude:n,id:0,regeocodeData:g}])}else a.fail({errCode:g.data.infocode,
errMsg:g.data.info})},fail:function(g){a.fail({errCode:"0",errMsg:g.errMsg||""})}})}var c=this;a.location?b(a.location):c.getWxLocation(a,function(d){b(d)})};
AMapWX.prototype.getWeather=function(a){function b(g){var h="base";a.type&&"forecast"==a.type&&(h="all");wx.request({url:"https://restapi.amap.com/v3/weather/weatherInfo",data:{key:d.key,city:g,extensions:h,s:e.s,platform:e.platform,appname:d.key,sdkversion:e.sdkversion,logversion:e.logversion},method:"GET",header:{"content-type":"application/json"},success:function(f){if(f.data.status&&"1"==f.data.status)if(f.data.lives){if((f=f.data.lives)&&0<f.length){f=f[0];var k={city:{text:"\u57ce\u5e02",data:f.city},
weather:{text:"\u5929\u6c14",data:f.weather},temperature:{text:"\u6e29\u5ea6",data:f.temperature},winddirection:{text:"\u98ce\u5411",data:f.winddirection+"\u98ce"},windpower:{text:"\u98ce\u529b",data:f.windpower+"\u7ea7"},humidity:{text:"\u6e7f\u5ea6",data:f.humidity+"%"}};k.liveData=f;a.success(k)}}else f.data.forecasts&&f.data.forecasts[0]&&a.success({forecast:f.data.forecasts[0]});else a.fail({errCode:f.data.infocode,errMsg:f.data.info})},fail:function(f){a.fail({errCode:"0",errMsg:f.errMsg||""})}})}
function c(g){wx.request({url:"https://restapi.amap.com/v3/geocode/regeo",data:{key:d.key,location:g,extensions:"all",s:e.s,platform:e.platform,appname:d.key,sdkversion:e.sdkversion,logversion:e.logversion},method:"GET",header:{"content-type":"application/json"},success:function(h){if(h.data.status&&"1"==h.data.status){h=h.data.regeocode;if(h.addressComponent)var f=h.addressComponent.adcode;else h.aois&&0<h.aois.length&&(f=h.aois[0].adcode);b(f)}else a.fail({errCode:h.data.infocode,errMsg:h.data.info})},
fail:function(h){a.fail({errCode:"0",errMsg:h.errMsg||""})}})}var d=this,e=d.requestConfig;a.city?b(a.city):d.getWxLocation(a,function(g){c(g)})};
AMapWX.prototype.getPoiAround=function(a){function b(e){e={key:c.key,location:e,s:d.s,platform:d.platform,appname:c.key,sdkversion:d.sdkversion,logversion:d.logversion};a.querytypes&&(e.types=a.querytypes);a.querykeywords&&(e.keywords=a.querykeywords);wx.request({url:"https://restapi.amap.com/v3/place/around",data:e,method:"GET",header:{"content-type":"application/json"},success:function(g){if(g.data.status&&"1"==g.data.status){if((g=g.data)&&g.pois){for(var h=[],f=0;f<g.pois.length;f++){var k=0==
f?a.iconPathSelected:a.iconPath;h.push({latitude:parseFloat(g.pois[f].location.split(",")[1]),longitude:parseFloat(g.pois[f].location.split(",")[0]),iconPath:k,width:22,height:32,id:f,name:g.pois[f].name,address:g.pois[f].address})}a.success({markers:h,poisData:g.pois})}}else a.fail({errCode:g.data.infocode,errMsg:g.data.info})},fail:function(g){a.fail({errCode:"0",errMsg:g.errMsg||""})}})}var c=this,d=c.requestConfig;a.location?b(a.location):c.getWxLocation(a,function(e){b(e)})};
AMapWX.prototype.getStaticmap=function(a){function b(e){c.push("location="+e);a.zoom&&c.push("zoom="+a.zoom);a.size&&c.push("size="+a.size);a.scale&&c.push("scale="+a.scale);a.markers&&c.push("markers="+a.markers);a.labels&&c.push("labels="+a.labels);a.paths&&c.push("paths="+a.paths);a.traffic&&c.push("traffic="+a.traffic);e="https://restapi.amap.com/v3/staticmap?"+c.join("&");a.success({url:e})}var c=[];c.push("key="+this.key);var d=this.requestConfig;c.push("s="+d.s);c.push("platform="+d.platform);
c.push("appname="+d.appname);c.push("sdkversion="+d.sdkversion);c.push("logversion="+d.logversion);a.location?b(a.location):this.getWxLocation(a,function(e){b(e)})};
AMapWX.prototype.getInputtips=function(a){var b=Object.assign({},this.requestConfig);a.location&&(b.location=a.location);a.keywords&&(b.keywords=a.keywords);a.type&&(b.type=a.type);a.city&&(b.city=a.city);a.citylimit&&(b.citylimit=a.citylimit);wx.request({url:"https://restapi.amap.com/v3/assistant/inputtips",data:b,method:"GET",header:{"content-type":"application/json"},success:function(c){c&&c.data&&c.data.tips&&a.success({tips:c.data.tips})},fail:function(c){a.fail({errCode:"0",errMsg:c.errMsg||
""})}})};
AMapWX.prototype.getDrivingRoute=function(a){var b=Object.assign({},this.requestConfig);a.origin&&(b.origin=a.origin);a.destination&&(b.destination=a.destination);a.strategy&&(b.strategy=a.strategy);a.waypoints&&(b.waypoints=a.waypoints);a.avoidpolygons&&(b.avoidpolygons=a.avoidpolygons);a.avoidroad&&(b.avoidroad=a.avoidroad);wx.request({url:"https://restapi.amap.com/v3/direction/driving",data:b,method:"GET",header:{"content-type":"application/json"},success:function(c){c&&c.data&&c.data.route&&a.success({paths:c.data.route.paths,
taxi_cost:c.data.route.taxi_cost||""})},fail:function(c){a.fail({errCode:"0",errMsg:c.errMsg||""})}})};
AMapWX.prototype.getWalkingRoute=function(a){var b=Object.assign({},this.requestConfig);a.origin&&(b.origin=a.origin);a.destination&&(b.destination=a.destination);wx.request({url:"https://restapi.amap.com/v3/direction/walking",data:b,method:"GET",header:{"content-type":"application/json"},success:function(c){c&&c.data&&c.data.route&&a.success({paths:c.data.route.paths})},fail:function(c){a.fail({errCode:"0",errMsg:c.errMsg||""})}})};
AMapWX.prototype.getTransitRoute=function(a){var b=Object.assign({},this.requestConfig);a.origin&&(b.origin=a.origin);a.destination&&(b.destination=a.destination);a.strategy&&(b.strategy=a.strategy);a.city&&(b.city=a.city);a.cityd&&(b.cityd=a.cityd);wx.request({url:"https://restapi.amap.com/v3/direction/transit/integrated",data:b,method:"GET",header:{"content-type":"application/json"},success:function(c){c&&c.data&&c.data.route&&(c=c.data.route,a.success({distance:c.distance||"",taxi_cost:c.taxi_cost||
"",transits:c.transits}))},fail:function(c){a.fail({errCode:"0",errMsg:c.errMsg||""})}})};
AMapWX.prototype.getRidingRoute=function(a){var b=Object.assign({},this.requestConfig);a.origin&&(b.origin=a.origin);a.destination&&(b.destination=a.destination);wx.request({url:"https://restapi.amap.com/v3/direction/riding",data:b,method:"GET",header:{"content-type":"application/json"},success:function(c){c&&c.data&&c.data.route&&a.success({paths:c.data.route.paths})},fail:function(c){a.fail({errCode:"0",errMsg:c.errMsg||""})}})};module.exports.AMapWX=AMapWX;
pages.json
@@ -19,6 +19,12 @@
                "navigationBarTitleText": "收货地址"
            }
        },
        {
            "path": "pages/user/address/gaode-address",
            "style": {
                "navigationBarTitleText": "高德地图"
            }
        },
        // #endif
        {
            "path": "pages/login/supplier-login",
pages/user/address/address.vue
@@ -2,7 +2,8 @@
    <!-- 收货地址列表 -->
    <view class="p15 container-address">
        <view class="search-container m-t-12 flex">
            <view class="flex1 input" @click="selectWxAddress('input')">
            <!-- <view class="flex1 input" @click="selectWxAddress('input')"> -->
            <view class="flex1 input" @click="selectGaodeAddress('input')">
                <u-input placeholder="小区名/店铺名/写字楼/街道名等" disabled v-model="search_flow">
                    <template slot="suffix">
                        <uni-icons color="#20613D" type="search" size="24"></uni-icons>
@@ -14,7 +15,7 @@
            <view class="desc-gray">当前位置</view>
            <view class="flex current-address">
                <view class="flex1">
                    {{ addressDesc || (address&&address.id?address.address: '选择地址')  }}
                    {{ addressDesc || (address && address.id ? address.address : '选择地址') }}
                </view>
                <view class="flex" @click="changeCurrentAddress">
@@ -31,10 +32,10 @@
            <view class="desc-gray">我的收货地址</view>
        </view>
        <no-data v-if="!list||list.length==0" style="width: 100%;"></no-data>
        <no-data v-if="!list || list.length == 0" style="width: 100%;"></no-data>
        <!-- 循环 -->
        <view v-for="(item,index) of list" :key="index" class="location-each m-t-12">
        <view v-for="(item, index) of list" :key="index" class="location-each m-t-12">
            <view class="flex">
                <view class="container-info">
                    <view class="flex">
@@ -43,7 +44,7 @@
                    </view>
                    <view class="address">
                        {{ item['province'] || '' }}{{ item['city'] && ('/' + item['city']) || '' }}{{
                          item['region'] && ('/' + item['region']) || ''
                            item['region'] && ('/' + item['region']) || ''
                        }}
                    </view>
                    <view class="address">
@@ -51,7 +52,7 @@
                    </view>
                </view>
                <!-- <view class="h-line"></view> -->
                <view class="edit" @click="()=>{
                <view class="edit" @click="() => {
                    this.submitForm = {
                        ...item
                    }
@@ -64,8 +65,8 @@
            <view class="flex">
                <!--        -->
                <view class="flex">
                    <view class="radio m-t-2 m-r-10" :class="[item.isDefault?'select':'']"
                        @click="changeDefaultAddress(item,index)">
                    <view class="radio m-t-2 m-r-10" :class="[item.isDefault ? 'select' : '']"
                        @click="changeDefaultAddress(item, index)">
                    </view>
                    <span class="desc" style="word-break: break-all;">{{ item.isDefault ? '默认地址:' : '当前地址:' }}</span>
@@ -74,10 +75,10 @@
                <view class="desc del t-red" @click="deleteAddress(item)">
                    删除
                </view>
                <view class="desc del t-green m-l-10" v-if="source==='select'" @click="selectAddress(item)">
                <view class="desc del t-green m-l-10" v-if="source === 'select'" @click="selectAddress(item)">
                    选择此地址
                </view>
                <view class="desc del t-green m-l-10" v-if="source==='home'" @click="selectAddress(item)">
                <view class="desc del t-green m-l-10" v-if="source === 'home'" @click="selectAddress(item)">
                    按此地址定位
                </view>
            </view>
@@ -119,12 +120,14 @@
                        <view class="form-item-label require">
                            收货地址
                        </view>
                        <view class="m-l-a m-r-0 flex " :class="[!dto['province']?'desc-gray':'']">
                            <uni-data-picker :area="true" @change="(e)=>{PickArea(submitForm,e)}" placeholder=""
                        <view class="m-l-a m-r-0 flex " :class="[!dto['province'] ? 'desc-gray' : '']">
                            <uni-data-picker :area="true" @change="(e) => { PickArea(submitForm, e) }" placeholder=""
                                :localdata="regionDataPlus">
                                {{ submitForm['province'] || '请选择' }}{{ submitForm['city'] && ('/' + submitForm['city']) || '' }}{{
                  submitForm['region'] && ('/' + submitForm['region']) || ''
                }}
                                {{ submitForm['province'] || '请选择' }}{{ submitForm['city'] && ('/' + submitForm['city'])
                                    || ''
                                }}{{
                                    submitForm['region'] && ('/' + submitForm['region']) || ''
                                }}
                            </uni-data-picker>
                            <u-icon class="m-l-a" name="arrow-right"></u-icon>
                        </view>
@@ -154,7 +157,7 @@
                        </view>
                        <view class="form-item-value">
                            <radio value="r1" :checked="submitForm.isDefault"
                                @click="submitForm.isDefault=!submitForm.isDefault"
                                @click="submitForm.isDefault = !submitForm.isDefault"
                                style="transform:scale(0.6);margin-top: -8rpx;" />
                        </view>
                    </view>
@@ -168,80 +171,443 @@
</template>
<script>
    // #ifdef PUB_CUSTOMER
    // import qqmapwx from '@/plugins/qqmap-wx-jssdk.min.js';
    // const lockey = 'GSBBZ-CJA3U-NNDVH-GE65N-6FIF6-ZGBCU'; //使用在腾讯位置服务申请的key
    // const chooseLocation = requirePlugin('chooseLocation');
    // #endif
// #ifdef PUB_CUSTOMER
// import qqmapwx from '@/plugins/qqmap-wx-jssdk.min.js';
// const lockey = 'GSBBZ-CJA3U-NNDVH-GE65N-6FIF6-ZGBCU'; //使用在腾讯位置服务申请的key
// const chooseLocation = requirePlugin('chooseLocation');
// #endif
    import {
        mapState
    } from 'vuex'
    export default {
        async onPullDownRefresh() {
            this.page.current = 0
import amapFile from '@/map/amap-wx.130.js';
import {
    mapState
} from 'vuex'
export default {
    async onPullDownRefresh() {
        this.page.current = 0
        await this.getList()
        uni.stopPullDownRefresh()
    },
    async onLoad(options) {
        // debugger;
        // 引入高德地图的组件
        const myAmapFun = new amapFile.AMapWX({ key: '75d7da3feb329cd5ae997975b953abb6' });
        myAmapFun.getRegeo({
            success: (data) => {
                console.log('当前位置:', data[0]);
                console.log(data)
                // this.setData({
                //     longitude: data[0].longitude,
                //     latitude: data[0].latitude,
                //     locationName: data[0].name,
                // });
            },
            fail(err) {
                console.error(err);
            },
        });
        // this.list = [{}, {}]
        this.source = options.source || ''
        this.listApi = '/api/address/list'
        if (!this.currentInfo.id) {
        } else {
            await this.getList()
            uni.stopPullDownRefresh()
        }
    },
    onShow() {
    },
    computed: {
        ...mapState({
            address: state => {
                return state.defaultaddress || {}
            },
            addressDesc: state => {
                return state.addressDesc || ''
            },
            // search_flow() {
            //     return this.addressDesc || ''
            // }
        }),
    },
    data() {
        return {
            source: '',
            submitForm: {
                name: '',
                tel: '',
                address: '',
                isDefault: false,
                province: '',
                city: '',
                region: '',
                latitude: 0,
                longitude: 0,
            },
            regionDataPlus: [],
            list: [],
            search_flow: '',
        };
    },
    methods: {
        selectGaodeAddress(){
            uni.navigateTo({
                url: '/pages/user/address/gaode-address'
            })
        },
        async onLoad(options) {
            // this.list = [{}, {}]
            this.source = options.source || ''
            this.listApi = '/api/address/list'
            if (!this.currentInfo.id) {
        selectWxAddress(source) {
            let that = this
            } else {
                await this.getList()
            {
                //表单选择了地址
                wx.chooseLocation({
                    success: location => {
                        console.log('success loc', location, source)
                        console.log(location)
                        // address: "江苏省苏州市吴中区太湖东路288号"
                        // errMsg: "chooseLocation:ok"
                        // latitude: 31.26249
                        // longitude: 120.63212
                        // name: "苏州市吴中区人民政府"
                        if (source === 'form') {
                            // (location.address || '') +
                            that.submitForm.address = (location.name || location.address || '')
                            that.submitForm.latitude = location.latitude || 0
                            that.submitForm.longitude = location.longitude || 0
                        } else if (source === 'input') {
                            // (location.address || '') +
                            // that.search_flow =   (location.name || '')
                            that.$store.commit('setAddressDesc', (location.name || location.address || ''))
                            that.$forceUpdate()
                            that.backpage()
                        }
                        // if (!that.submitForm.province && location.provinceName) {
                        //     that.submitForm.province = location.provinceName
                        //     if (!that.submitForm.city && location.cityName) {
                        //         that.submitForm.city = location.cityName
                        //     }
                        //     if (!that.submitForm.region && location.countyName) {
                        //         that.submitForm.region = location.countyName
                        //     }
                        //     if (!that.submitForm.region && location.cityName) {
                        //         that.submitForm.region = location.cityName
                        //     }
                        // }
                        // success loc
                        // {errMsg: "chooseAddress:ok", userName: "张三", nationalCode: "510000", telNumber: "020-81167888", postalCode: "510000", …}
                        // cityName: "广州市"
                        // countyName: "海珠区"
                        // detailInfo: "新港中路397号"
                        // errMsg: "chooseAddress:ok"
                        // nationalCode: "510000"
                        // postalCode: "510000"
                        // provinceName: "广东省"
                        // telNumber: "020-81167888"
                        // userName: "张三"
                    },
                    fail: e => {
                        console.log('fail loc', e)
                        // that.$message.showToast('定位失败')
                    }
                })
                // uni.getLocation({
                //     type: 'wgs84',
                //     success(res) {
                //         //得到经纬度
                //         console.log(res);
                //         const referer = '花满芫'; //调用插件的app的名称
                //         const location = JSON.stringify({
                //             latitude: res.latitude,
                //             longitude: res.longitude
                //         });
                //         const category = '生活服务,娱乐休闲';
                //         // &category=${category}
                //         wx.navigateTo({
                //             url: `plugin://chooseLocation/index?key=${lockey}&referer=${referer}&location=${location}`
                //         });
                //     }
                // })
            }
        },
        validatePhoneNumber() {
            // 手机号码正则表达式,可以根据需要调整
            const phoneRegex = /^[1][3-9][0-9]{9}$/;
            if (!phoneRegex.test(this.submitForm['tel'])) {
                this.$message.showToast('请填写正确手机号码')
            }
        },
        onShow() {
            // const location = chooseLocation.getLocation(); // 如果点击确认选点按钮,则返回选点结果对象,否则返回null
            // // console.log('onshow location', location, this.tmp_picker_lock_index, this.formcodes["LOC_ONE"])
            // // address: "江苏省苏州市吴中区太湖东路280号"
            // // city: "苏州市"
            // // district: "吴中区"
            // // latitude: 31.262438
            // // longitude: 120.633985
            // // name: "太湖东路280号小区"
            // // province: "江苏省"
            // if (location && location.address) {
            //     this.submitForm.address = location.address
            //     this.submitForm.latitude = location.latitude
            //     this.submitForm.longitude = location.longitude
            //     if (!this.submitForm.province && location.province) {
            //         this.submitForm.province = location.province
            //         if (!this.submitForm.city && location.city) {
            //             this.submitForm.city = location.city
            //         }
            //         if (!this.submitForm.region && location.district) {
            //             this.submitForm.region = location.district
            //         }
            //         if (!this.submitForm.region && location.city) {
            //             this.submitForm.region = location.city
            //         }
            //     }
            //     this.$forceUpdate()
            // }
        addAddress() {
            delete this.submitForm.id
            this.submitForm['name'] = ''
            this.submitForm['tel'] = ''
            this.submitForm['address'] = ''
            this.submitForm['province'] = ''
            this.submitForm['city'] = ''
            this.submitForm['region'] = ''
            this.submitForm['isDefault'] = false
            this.openAddressForm()
        },
        computed: {
            ...mapState({
                address: state => {
                    return state.defaultaddress || {}
        changeCurrentAddress() {
            // if(!this.addressDesc){
            // }
            let that = this
            this.$message.showLoading()
            uni.getLocation({
                type: 'gcj02',
                geocode: true,
                success: async (res) => {
                    //  this.location = {
                    // latitude: res.latitude,
                    // longitude: res.longitude,
                    // speed: res.speed,
                    // accuracy: res.accuracy,
                    // address: res.address,
                    //  };
                    const {
                        code, data
                    } = await that.$http.request('get', '/api/pub/customer/home/address/parse', {
                        data: {},
                        params: {
                            // https://apis.map.qq.com/ws/geocoder/v1/?location=39.984154,116.307490&key=[你的key]&get_poi=1
                            location: `${res.latitude},${res.longitude}`
                        }
                    })
                    console.log('定位成功:', data);
                    if (data) {
                        var address = data.result && data.result.address || ''
                        that.$store.commit('setAddressDesc', (address || ''))
                        that.$forceUpdate()
                        that.backpage()
                    }
                },
                addressDesc: state => {
                    return state.addressDesc || ''
                fail: (err) => {
                    that.error = err;
                    console.error('定位失败:', err);
                },
                // search_flow() {
                //     return this.addressDesc || ''
                // }
            }),
                complete() {
                    that.$message.hideLoading()
                }
            });
        },
        PickArea(item, e) {
            console.log('PickArea', item, e)
            if (e.detail.value) {
                this.submitForm.province = ''
                this.submitForm.city = ''
                this.submitForm.region = ''
                if (e.detail.value.length == 2) {
                    if (!!e.detail.value[0])
                        this.submitForm.province = e.detail.value[0].value
                    if (!!e.detail.value[0])
                        this.submitForm.city = e.detail.value[0].value
                    if (!!e.detail.value[1])
                        this.submitForm.region = e.detail.value[1].value
                } else if (e.detail.value.length <= 3) {
                    if (!!e.detail.value[0])
                        this.submitForm.province = e.detail.value[0].value
                    if (!!e.detail.value[1])
                        this.submitForm.city = e.detail.value[1].value
                    if (!!e.detail.value[2])
                        this.submitForm.region = e.detail.value[2].value
                } else {
                    //说明有重复的
                    var plusnum = e.detail.value.length - 3
                    if (!!e.detail.value[plusnum + 0])
                        this.submitForm.province = e.detail.value[plusnum + 0].value
                    if (!!e.detail.value[plusnum + 1])
                        this.submitForm.city = e.detail.value[plusnum + 1].value
                    if (!!e.detail.value[plusnum + 2])
                        this.submitForm.region = e.detail.value[plusnum + 2].value
                }
                this.$forceUpdate()
                console.log('submit forn', this.submitForm)
            }
        },
        async init_area() {
            // debugger;
            // if (this.regionDataPlus && this.regionDataPlus.length > 0) {
            // } else {
            // var a = this.$storage.getItem('cache_area')
            var a = false
            if (a) {
                this.regionDataPlus = JSON.parse(a) || []
            } else {
                await this.$http.request('get', '/api/pub/china/area/json/refresh')
                const res = await this.$http.request('get', '/api/pub/china/area/json')
                // console.log('area', JSON.parse(res.data))
                this.regionDataPlus = res.data && JSON.parse(res.data.replaceAll('code', 'value').replaceAll(
                    'name',
                    'text')) || []
                this.$storage.setItem('cache_area', JSON.stringify(this.regionDataPlus))
            }
            // }
        },
        data() {
            return {
                source: '',
                submitForm: {
        chooseLocation() {
            //前往接口挑选位置
            const qqmapsdk = new qqmapwx({
                // 使用你在腾讯地图应用生成的key
                key: lockey
            });
            uni.getLocation({
                type: 'wgs84',
                success(res) {
                    //得到经纬度
                    console.log(res);
                    qqmapsdk.reverseGeocoder({
                        location: {
                            latitude: res.latitude,
                            longitude: res.longitude
                        },
                        //成功后的回调
                        success: (r) => {
                            // console.log('地址信息', r.result.address_component);
                            // result: {location: {lat: 31.26249, lng: 120.63212}, address: "江苏省苏州市吴中区太湖东路288号",…}
                            // ad_info: {nation_code: "156", adcode: "320506", phone_area_code: "0512", city_code: "156320500",…}
                            // address: "江苏省苏州市吴中区太湖东路288号"
                            // address_component: {nation: "中国", province: "江苏省", city: "苏州市", district: "吴中区", street: "太湖东路",…}
                            // address_reference: {,…}
                            // formatted_addresses: {recommend: "长桥苏州市吴中区人民政府(太湖东路北)", rough: "长桥苏州市吴中区人民政府(太湖东路北)"}
                            // location: {lat: 31.26249, lng: 120.63212}
                            // status: 0
                            tmp.formcodes['LOC_ONE'][tmp.tmp_picker_lock_index].longitude = r
                                .result.location.lng
                            tmp.formcodes['LOC_ONE'][tmp.tmp_picker_lock_index].latitude = r
                                .result.location.lat
                            tmp.formcodes['LOC_ONE'][tmp.tmp_picker_lock_index].loc_desc = r
                                .result.address
                            tmp.formcodes['LOC_ONE'][tmp.tmp_picker_lock_index]._show = false
                            tmp.$forceUpdate()
                            tmp.tmp_picker_lock_index = -1
                        },
                        fail: function (res) {
                            console.log(res);
                            tmp.tmp_picker_lock_index = -1
                        },
                    });
                }
            });
        },
        async changeDefaultAddress(item, index) {
            if (item.isDefault) {
                return
            }
            this.$nextTick(() => {
                this.$message.confirm('确定设置此地址为默认地址吗').then(async res => {
                    this.$message.showLoading()
                    var {
                        code
                    } = await this.$http.request('post', '/api/address/set/default/' + item
                        .id, {
                        data: {
                            id: item.id
                        },
                        params: {
                            id: item.id
                        }
                    })
                    this.$message.hideLoading()
                    if (code === 0) {
                        for (var dto of this.list) {
                            dto.isDefault = false
                        }
                        this.$message.showToast('设置成功')
                        item.isDefault = true
                        this.$store.commit('setDefaultAddress', {
                            ...item
                        })
                    }
                }, err => {
                    this.$nextTick(() => {
                        this.list[index].isDefault = false
                        this.$forceUpdate()
                        console.log('err', err, this.list[index])
                    })
                })
            })
        },
        async selectAddress(item) {
            //携带,然后返回
            if (this.source === 'home') {
                this.$store.commit('setAddressDesc', '')
                this.$store.commit('setDefaultAddress', {
                    ...item
                })
            } else {
                await this.$message.confirm('确定选择此地址作为收货地址吗')
                this.$store.commit('setDefaultAddress', {
                    ...item
                })
            }
            this.backpage()
        },
        async deleteAddress(item) {
            await this.$message.confirm('确定删除此地址吗')
            this.$message.showLoading()
            var {
                code
            } = await this.$http.request('get', '/api/address/delete?id=' + item.id, {})
            this.$message.hideLoading()
            if (code === 0) {
                this.$message.showToast('删除成功')
                if (this.address.id === item.id) {
                    //要清空地址了
                    this.$store.commit('setDefaultAddress', {})
                }
                setTimeout(() => {
                    this.page.current = 1
                    this.getList()
                }, 500)
            }
        },
        async openAddressForm() {
            this.init_area()
            if (this.submitForm.id) {
                this.$message.showLoading()
                var {
                    data
                } = await this.$http.request('get', '/api/address/list/detail?id=' + this.submitForm.id, {})
                if (data) {
                    this.submitForm = {
                        ...this.submitForm,
                        ...data
                    }
                }
                this.$message.hideLoading()
            } else {
                this.submitForm = {
                    // name: this.currentInfo && this.currentInfo.nickName || '',
                    // tel: this.currentInfo && this.currentInfo.tel || '',
                    name: '',
                    tel: '',
                    address: '',
@@ -249,554 +615,191 @@
                    province: '',
                    city: '',
                    region: '',
                    latitude: 0,
                    longitude: 0,
                },
                regionDataPlus: [],
                list: [],
                search_flow: '',
            };
                }
            }
            this.$refs.popup_form.open()
        },
        methods: {
            selectWxAddress(source) {
                let that = this
        closeAddressForm() {
            this.$refs.popup_form.close()
                {
                    //表单选择了地址
                    wx.chooseLocation({
                        success: location => {
                            console.log('success loc', location,source)
                            // address: "江苏省苏州市吴中区太湖东路288号"
                            // errMsg: "chooseLocation:ok"
                            // latitude: 31.26249
                            // longitude: 120.63212
                            // name: "苏州市吴中区人民政府"
                            if (source === 'form') {
                                // (location.address || '') +
                                that.submitForm.address = (location.name || location.address || '')
                                that.submitForm.latitude = location.latitude || 0
                                that.submitForm.longitude = location.longitude || 0
                            } else if (source === 'input') {
                                // (location.address || '') +
                                // that.search_flow =   (location.name || '')
                                that.$store.commit('setAddressDesc', (location.name || location.address || ''))
                                that.$forceUpdate()
                                that.backpage()
                            }
        },
        async saveOrUpdateAddress() {
            if (!this.checkFormValues(this.submitForm, ['tel', 'name', 'address'])) {
                this.$message.showToast('字段未填写完整')
                return
            }
            if (!this.submitForm['province'] || !this.submitForm['province'] || !this.submitForm['province']) {
                this.$message.showToast('省市区未选择完整')
                return
            }
                            // if (!that.submitForm.province && location.provinceName) {
                            //     that.submitForm.province = location.provinceName
                            //     if (!that.submitForm.city && location.cityName) {
                            //         that.submitForm.city = location.cityName
                            //     }
                            //     if (!that.submitForm.region && location.countyName) {
                            //         that.submitForm.region = location.countyName
                            //     }
                            //     if (!that.submitForm.region && location.cityName) {
                            //         that.submitForm.region = location.cityName
                            //     }
                            // }
                            // success loc
                            // {errMsg: "chooseAddress:ok", userName: "张三", nationalCode: "510000", telNumber: "020-81167888", postalCode: "510000", …}
                            // cityName: "广州市"
                            // countyName: "海珠区"
                            // detailInfo: "新港中路397号"
                            // errMsg: "chooseAddress:ok"
                            // nationalCode: "510000"
                            // postalCode: "510000"
                            // provinceName: "广东省"
                            // telNumber: "020-81167888"
                            // userName: "张三"
                        },
                        fail: e => {
                            console.log('fail loc', e)
                            // that.$message.showToast('定位失败')
                        }
                    })
                    // uni.getLocation({
                    //     type: 'wgs84',
                    //     success(res) {
                    //         //得到经纬度
                    //         console.log(res);
                    //         const referer = '花满芫'; //调用插件的app的名称
                    //         const location = JSON.stringify({
                    //             latitude: res.latitude,
                    //             longitude: res.longitude
                    //         });
                    //         const category = '生活服务,娱乐休闲';
                    //         // &category=${category}
                    //         wx.navigateTo({
                    //             url: `plugin://chooseLocation/index?key=${lockey}&referer=${referer}&location=${location}`
                    //         });
                    //     }
                    // })
                }
            },
            validatePhoneNumber() {
                // 手机号码正则表达式,可以根据需要调整
                const phoneRegex = /^[1][3-9][0-9]{9}$/;
                if (!phoneRegex.test(this.submitForm['tel'])) {
                    this.$message.showToast('请填写正确手机号码')
                }
            },
            addAddress() {
                delete this.submitForm.id
                this.submitForm['name'] = ''
                this.submitForm['tel'] = ''
                this.submitForm['address'] = ''
                this.submitForm['province'] = ''
                this.submitForm['city'] = ''
                this.submitForm['region'] = ''
                this.submitForm['isDefault'] = false
                this.openAddressForm()
            },
            changeCurrentAddress() {
                // if(!this.addressDesc){
                // }
                let that = this
                this.$message.showLoading()
                uni.getLocation({
                    type: 'gcj02',
                    geocode: true,
                    success: async (res) => {
                        //  this.location = {
                        // latitude: res.latitude,
                        // longitude: res.longitude,
                        // speed: res.speed,
                        // accuracy: res.accuracy,
                        // address: res.address,
                        //  };
                        const {
                            code,data
                        } = await that.$http.request('get', '/api/pub/customer/home/address/parse', {
                            data: {},
                            params: {
                                // https://apis.map.qq.com/ws/geocoder/v1/?location=39.984154,116.307490&key=[你的key]&get_poi=1
                                location:`${res.latitude},${res.longitude}`
                            }
                        })
                        console.log('定位成功:', data);
                        if(data){
                            var address = data.result&&data.result.address || ''
                            that.$store.commit('setAddressDesc', (address || ''))
                            that.$forceUpdate()
                            that.backpage()
                        }
                    },
                    fail: (err) => {
                        that.error = err;
                        console.error('定位失败:', err);
                    },
                    complete() {
                        that.$message.hideLoading()
                    }
                });
            },
            PickArea(item, e) {
                console.log('PickArea', item, e)
                if (e.detail.value) {
                    this.submitForm.province = ''
                    this.submitForm.city = ''
                    this.submitForm.region = ''
                    if (e.detail.value.length == 2) {
                        if (!!e.detail.value[0])
                            this.submitForm.province = e.detail.value[0].value
                        if (!!e.detail.value[0])
                            this.submitForm.city = e.detail.value[0].value
                        if (!!e.detail.value[1])
                            this.submitForm.region = e.detail.value[1].value
                    } else if (e.detail.value.length <= 3) {
                        if (!!e.detail.value[0])
                            this.submitForm.province = e.detail.value[0].value
                        if (!!e.detail.value[1])
                            this.submitForm.city = e.detail.value[1].value
                        if (!!e.detail.value[2])
                            this.submitForm.region = e.detail.value[2].value
                    } else {
                        //说明有重复的
                        var plusnum = e.detail.value.length - 3
                        if (!!e.detail.value[plusnum + 0])
                            this.submitForm.province = e.detail.value[plusnum + 0].value
                        if (!!e.detail.value[plusnum + 1])
                            this.submitForm.city = e.detail.value[plusnum + 1].value
                        if (!!e.detail.value[plusnum + 2])
                            this.submitForm.region = e.detail.value[plusnum + 2].value
                    }
                    this.$forceUpdate()
                    console.log('submit forn', this.submitForm)
                }
            },
            async init_area() {
                // debugger;
                // if (this.regionDataPlus && this.regionDataPlus.length > 0) {
                // } else {
                    // var a = this.$storage.getItem('cache_area')
                    var a =false
                    if (a) {
                        this.regionDataPlus = JSON.parse(a) || []
                    } else {
                        await this.$http.request('get', '/api/pub/china/area/json/refresh')
                        const res = await this.$http.request('get', '/api/pub/china/area/json')
                        // console.log('area', JSON.parse(res.data))
                        this.regionDataPlus = res.data && JSON.parse(res.data.replaceAll('code', 'value').replaceAll(
                            'name',
                            'text')) || []
                        this.$storage.setItem('cache_area', JSON.stringify(this.regionDataPlus))
                    }
                // }
            },
            chooseLocation() {
                //前往接口挑选位置
                const qqmapsdk = new qqmapwx({
                    // 使用你在腾讯地图应用生成的key
                    key: lockey
                });
                uni.getLocation({
                    type: 'wgs84',
                    success(res) {
                        //得到经纬度
                        console.log(res);
                        qqmapsdk.reverseGeocoder({
                            location: {
                                latitude: res.latitude,
                                longitude: res.longitude
                            },
                            //成功后的回调
                            success: (r) => {
                                // console.log('地址信息', r.result.address_component);
                                // result: {location: {lat: 31.26249, lng: 120.63212}, address: "江苏省苏州市吴中区太湖东路288号",…}
                                // ad_info: {nation_code: "156", adcode: "320506", phone_area_code: "0512", city_code: "156320500",…}
                                // address: "江苏省苏州市吴中区太湖东路288号"
                                // address_component: {nation: "中国", province: "江苏省", city: "苏州市", district: "吴中区", street: "太湖东路",…}
                                // address_reference: {,…}
                                // formatted_addresses: {recommend: "长桥苏州市吴中区人民政府(太湖东路北)", rough: "长桥苏州市吴中区人民政府(太湖东路北)"}
                                // location: {lat: 31.26249, lng: 120.63212}
                                // status: 0
                                tmp.formcodes['LOC_ONE'][tmp.tmp_picker_lock_index].longitude = r
                                    .result.location.lng
                                tmp.formcodes['LOC_ONE'][tmp.tmp_picker_lock_index].latitude = r
                                    .result.location.lat
                                tmp.formcodes['LOC_ONE'][tmp.tmp_picker_lock_index].loc_desc = r
                                    .result.address
                                tmp.formcodes['LOC_ONE'][tmp.tmp_picker_lock_index]._show = false
                                tmp.$forceUpdate()
                                tmp.tmp_picker_lock_index = -1
                            },
                            fail: function(res) {
                                console.log(res);
                                tmp.tmp_picker_lock_index = -1
                            },
                        });
                    }
                });
            },
            async changeDefaultAddress(item, index) {
                if (item.isDefault) {
                    return
                }
                this.$nextTick(() => {
                    this.$message.confirm('确定设置此地址为默认地址吗').then(async res => {
                        this.$message.showLoading()
                        var {
                            code
                        } = await this.$http.request('post', '/api/address/set/default/' + item
                            .id, {
                                data: {
                                    id: item.id
                                },
                                params: {
                                    id: item.id
                                }
                            })
                        this.$message.hideLoading()
                        if (code === 0) {
                            for (var dto of this.list) {
                                dto.isDefault = false
                            }
                            this.$message.showToast('设置成功')
                            item.isDefault = true
                            this.$store.commit('setDefaultAddress', {
                                ...item
                            })
                        }
                    }, err => {
                        this.$nextTick(() => {
                            this.list[index].isDefault = false
                            this.$forceUpdate()
                            console.log('err', err, this.list[index])
                        })
            // 手机号码正则表达式,可以根据需要调整
            const phoneRegex = /^[1][3-9][0-9]{9}$/;
            if (!phoneRegex.test(this.submitForm['tel'])) {
                this.$message.showToast('请填写正确手机号码')
                return
            }
                    })
                })
            },
            async selectAddress(item) {
                //携带,然后返回
                if(this.source==='home'){
                    this.$store.commit('setAddressDesc', '')
                    this.$store.commit('setDefaultAddress', {
                        ...item
                    })
                }else{
                    await this.$message.confirm('确定选择此地址作为收货地址吗')
                    this.$store.commit('setDefaultAddress', {
                        ...item
                    })
                }
                this.backpage()
            },
            async deleteAddress(item) {
                await this.$message.confirm('确定删除此地址吗')
                this.$message.showLoading()
                var {
                    code
                } = await this.$http.request('get', '/api/address/delete?id=' + item.id, {})
                this.$message.hideLoading()
                if (code === 0) {
                    this.$message.showToast('删除成功')
                    if (this.address.id === item.id) {
                        //要清空地址了
                        this.$store.commit('setDefaultAddress', {})
                    }
                    setTimeout(() => {
                        this.page.current = 1
                        this.getList()
                    }, 500)
                }
            },
            async openAddressForm() {
                this.init_area()
                if (this.submitForm.id) {
                    this.$message.showLoading()
                    var {
                        data
                    } = await this.$http.request('get', '/api/address/list/detail?id=' + this.submitForm.id, {})
                    if (data) {
                        this.submitForm = {
                            ...this.submitForm,
                            ...data
                        }
                    }
                    this.$message.hideLoading()
                } else {
                    this.submitForm = {
                        // name: this.currentInfo && this.currentInfo.nickName || '',
                        // tel: this.currentInfo && this.currentInfo.tel || '',
                        name: '',
                        tel: '',
                        address: '',
                        isDefault: false,
                        province: '',
                        city: '',
                        region: '',
                    }
                }
                this.$refs.popup_form.open()
            },
            closeAddressForm() {
            this.$message.showLoading()
            const {
                code
            } = await this.$http.request('post', '/api/address/' + (this.submitForm.id ? 'update' :
                'add'), {
                data: this.submitForm
            })
            this.$message.hideLoading()
            if (code === 0) {
                this.$refs.popup_form.close()
                this.$message.showToast(this.submitForm.id ? '修改成功' : '新增成功')
            },
            async saveOrUpdateAddress() {
                if (!this.checkFormValues(this.submitForm, ['tel', 'name', 'address'])) {
                    this.$message.showToast('字段未填写完整')
                    return
                let tmp = this
                setTimeout(() => {
                    tmp.page.current = 1
                    tmp.refreshList()
                }, 300)
                //如果当前选择的地址是这个,需要更新一下数据
                if (this.address.id && this.submitForm.id === this.address.id) {
                    this.$store.commit('setDefaultAddress', {
                        ...this.submitForm
                    })
                }
                if (!this.submitForm['province'] || !this.submitForm['province'] || !this.submitForm['province']) {
                    this.$message.showToast('省市区未选择完整')
                    return
                }
            }
        },
                // 手机号码正则表达式,可以根据需要调整
                const phoneRegex = /^[1][3-9][0-9]{9}$/;
                if (!phoneRegex.test(this.submitForm['tel'])) {
                    this.$message.showToast('请填写正确手机号码')
                    return
                }
                this.$message.showLoading()
                const {
                    code
                } = await this.$http.request('post', '/api/address/' + (this.submitForm.id ? 'update' :
                    'add'), {
                    data: this.submitForm
                })
                this.$message.hideLoading()
                if (code === 0) {
                    this.$refs.popup_form.close()
                    this.$message.showToast(this.submitForm.id ? '修改成功' : '新增成功')
                    let tmp = this
                    setTimeout(() => {
                        tmp.page.current = 1
                        tmp.refreshList()
                    }, 300)
                    //如果当前选择的地址是这个,需要更新一下数据
                    if (this.address.id && this.submitForm.id === this.address.id) {
                        this.$store.commit('setDefaultAddress', {
                            ...this.submitForm
                        })
                    }
                }
            },
        }
    }
}
</script>
<style lang="scss" scoped>
    .container-address {
        .current-address {
            padding: 20rpx;
            background-color: #FFFFFF;
            border-radius: 16rpx;
            margin-top: 16rpx;
            margin-bottom: 20rpx;
        }
.container-address {
    .current-address {
        padding: 20rpx;
        background-color: #FFFFFF;
        border-radius: 16rpx;
        margin-top: 16rpx;
        margin-bottom: 20rpx;
    }
        .popup-address-form {
            background: #FFFFFF;
            border-radius: 16rpx;
            // width: 690rpx;
            height: 882rpx;
            margin-top: 120rpx;
            margin-left: 30rpx;
            margin-right: 30rpx;
            padding: 24rpx 36rpx;
    .popup-address-form {
        background: #FFFFFF;
        border-radius: 16rpx;
        // width: 690rpx;
        height: 882rpx;
        margin-top: 120rpx;
        margin-left: 30rpx;
        margin-right: 30rpx;
        padding: 24rpx 36rpx;
            .submit {
                margin-top: 30rpx;
        .submit {
            margin-top: 30rpx;
                .form-input {
                    height: 36rpx;
                    line-height: 36rpx;
                }
            }
        }
        .location-each {
            background: #FFFFFF;
            border-radius: 16rpx;
            margin-bottom: 24rpx;
            padding: 36rpx;
            .name {
                font-size: 32rpx;
                color: #000000;
                line-height: 44rpx;
                text-align: left;
                font-style: normal;
            }
            .tel {
                font-size: 28rpx;
                color: #666666;
                line-height: 40rpx;
                text-align: left;
                font-style: normal;
                padding-top: 4rpx;
                margin-left: 20rpx;
            }
            .address {
                font-size: 24rpx;
                color: #000000;
                line-height: 34rpx;
                text-align: left;
                font-style: normal;
            }
            .desc {
                font-size: 24rpx;
                color: #666666;
                line-height: 34rpx;
                text-align: left;
                font-style: normal;
            }
            .del {
                // vertical-align: baseline;
                margin-left: auto;
                margin-right: 6rpx;
                margin-top: 4rpx;
            }
            .container-info {
                max-width: 540rpx;
            }
            .h-line {
                width: 2rpx;
                height: 46rpx;
                background-color: #EEEEEE;
                margin-left: 28rpx;
                margin-right: 24rpx;
            }
            .v-line {
                width: 638rpx;
                height: 2rpx;
                // border: 2rpx solid #EEEEEE;
                background-color: #EEEEEE;
                margin-top: 24rpx;
                margin-bottom: 24rpx;
            }
            .edit {
                // min-width: 80rpx;
                width: fit-content;
                margin-left: auto;
                margin-right: 0rpx;
                display: flex;
                position: relative;
                .icon {
                    // margin: 0 auto;
                    // mar
                    margin-left: auto;
                    margin-right: auto;
                    margin-top: 20rpx;
                    display: block;
                }
            }
            .edit::before {
                content: " ";
                width: 2rpx;
                height: 46rpx;
                background-color: #EEEEEE;
                position: absolute;
                left: -24rpx;
                top: 20rpx;
            .form-input {
                height: 36rpx;
                line-height: 36rpx;
            }
        }
    }
    .location-each {
        background: #FFFFFF;
        border-radius: 16rpx;
        margin-bottom: 24rpx;
        padding: 36rpx;
        .name {
            font-size: 32rpx;
            color: #000000;
            line-height: 44rpx;
            text-align: left;
            font-style: normal;
        }
        .tel {
            font-size: 28rpx;
            color: #666666;
            line-height: 40rpx;
            text-align: left;
            font-style: normal;
            padding-top: 4rpx;
            margin-left: 20rpx;
        }
        .address {
            font-size: 24rpx;
            color: #000000;
            line-height: 34rpx;
            text-align: left;
            font-style: normal;
        }
        .desc {
            font-size: 24rpx;
            color: #666666;
            line-height: 34rpx;
            text-align: left;
            font-style: normal;
        }
        .del {
            // vertical-align: baseline;
            margin-left: auto;
            margin-right: 6rpx;
            margin-top: 4rpx;
        }
        .container-info {
            max-width: 540rpx;
        }
        .h-line {
            width: 2rpx;
            height: 46rpx;
            background-color: #EEEEEE;
            margin-left: 28rpx;
            margin-right: 24rpx;
        }
        .v-line {
            width: 638rpx;
            height: 2rpx;
            // border: 2rpx solid #EEEEEE;
            background-color: #EEEEEE;
            margin-top: 24rpx;
            margin-bottom: 24rpx;
        }
        .edit {
            // min-width: 80rpx;
            width: fit-content;
            margin-left: auto;
            margin-right: 0rpx;
            display: flex;
            position: relative;
            .icon {
                // margin: 0 auto;
                // mar
                margin-left: auto;
                margin-right: auto;
                margin-top: 20rpx;
                display: block;
            }
        }
        .edit::before {
            content: " ";
            width: 2rpx;
            height: 46rpx;
            background-color: #EEEEEE;
            position: absolute;
            left: -24rpx;
            top: 20rpx;
        }
    }
}
</style>
pages/user/address/gaode-address.vue
对比新文件
@@ -0,0 +1,359 @@
<template>
    <view class="content">
        <!--     <view class="btns">
            <view @click="back">取 消</view>
            <view @click="getCurrentLocation">获取当前地址</view>
        </view> -->
        <view class="inputCon">
            <view class="searchView">
                <text class="iconfont icon-sousuo"  @click="searchFn"></text>
                <input type="text" placeholder="搜索地点" v-model="searchWords" confirm-type="search" @confirm="searchFn" />
                <text @click="cancel">取消</text>
            </view>
        </view>
        <!-- 地图部分 -->
        <view class="content-map">
            <map style="width: 100%;height: 100%;" v-if="mapFlafg" :latitude="latitude" :longitude="longitude" :markers="markers"
                @tap="tap"  :scale="16"  :title="title"/>
        </view>
        <!-- <view id="container"></view> -->
        <!--  搜索框 -->
        <!--  地点列表部分 -->
        <view class="list">
            <view class="item" v-for="(add,index) in dataTips" :key="add.id" @click="select(add,index)"
                :class="selectIndex==index?'active':''">
                <view class="name">{{add.name}}</view>
                <view class="address">{{add.district || ''}}{{add.address || ''}}</view>
            </view>
        </view>
    </view>
</template>
<script>
    // 引入高德地图api提供的微信小程序的接口
    import amapFile from '@/map/amap-wx.130.js';
    // 创建地图
    var myAmapFun = new amapFile.AMapWX({
        key: '75d7da3feb329cd5ae997975b953abb6'
    }); //key值要申请为 去高德地图申请微信小程序的key
    // var myAmapFun = new amapFile.AMapWX({key: ''}); //key我的
    export default {
        data() {
            return {
                mapFlafg:false,
                selectIndex: undefined,
                selectAddr: {},
                searchWords: "",
                id: 1, // 使用 marker点击事件 需要填写id
                title: 'map',
                latitude: 39.91667, // 纬度
                longitude: 116.41667, // 经度
                markers: [{
                    latitude: 39.91667, // 纬度
                    longitude: 116.41667, // 经度
                    width: 30,
                    height: 30,
                    iconPath: ''
                    // iconPath: '../../static/ditu.png'
                }],
                dataTips: []
            }
        },
        onLoad() {
            var self = this;
            uni.getLocation({
                type: 'gcj02',
                success: function(res) {
                    console.log(res, '当前地址定位');
                    if (res.errMsg == "getLocation:ok") {
                        console.log(self.mark, 'onload里面看看');
                        self.longitude = res.longitude;
                        self.latitude = res.latitude;
                        self.$set(self.markers[0],"longitude",res.longitude);
                        self.$set(self.markers[0],"latitude",res.latitude);
                        self.mapFlafg=true;
                        console.log(self.markers,"markers")
                        // self.markers[0].longitude = res.longitude;
                        // self.markers[0].latitude = res.latitude;
                    }
                },
                complete: () => {
                    // 获取当前位置的地点列表
                    myAmapFun.getPoiAround({
                        location: self.longitude + ',' + self.latitude,
                        success: (data) => {
                            console.log("获取当前的列表", data);
                            this.dataTips = data.poisData;
                        },
                        fail: (info) => {
                            console.log(info, '点击地图错误信息1')
                        }
                    })
                }
            });
        },
        methods: {
            cancel() {
                if (this.searchWords) {
                    this.searchWords = "";
                    myAmapFun.getPoiAround({
                        location: this.markers[0].longitude + ',' + this.markers[0].latitude,
                        success: (data) => {
                            console.log("获取当前的列表", data);
                            this.$nextTick(() => {
                                this.dataTips = data.poisData;
                            })
                        },
                        fail: (info) => {
                            console.log(info)
                        }
                    })
                }
            },
            reserGeo() {
                myAmapFun.getRegeo({
                    success: (data) => {
                        console.log("getRegeo", data);
                    },
                    fail: (info) => {
                        console.log(info)
                    }
                })
            },
            // 根据地址列表中选择某一个地点
            select(add, index) {
                if (!add) {
                    return;
                }
                this.selectIndex = index;
                var location = add.location.split(",");
                console.log(location, add, '列表地点的经纬度');
                this.selectAddr = {
                    address: add.pname ? (add.pname + add.cityname + add.adname) : (add.district + add
                        .address),
                    detailAddress: add.address,
                    latitude: location[1],
                    longitude: location[0]
                };
                this.markers[0].latitude = +location[1];
                this.markers[0].longitude = +location[0];
                uni.setStorageSync("address", this.selectAddr.address);
                // 选择地点后,将选取的地点传递到前一个页面中
                // var pages = getCurrentPages(); // 获取所有的页面栈
                // var prevPage = pages[pages.length - 2]; // 找到上一个页面,注意是页面,如果是页面中有组件,则需要通过页面接受到数据后,再次往组件中传递
                // prevPage.$vm.userAddress.locationAddress = this.selectAddr.address; //在上一个页面中就可以用userAddress进行接收
                // prevPage.$vm.userAddress.detail = this.selectAddr.detailAddress; //在上一个页面中就可以用userAddress进行接收
                // prevPage.$vm.selectAddr = this.selectAddr;
                // prevPage.$vm.address = {
                //     province: add.pname,
                //     city: add.cityname,
                //     district: add.adname,
                // }
                uni.navigateBack({
                    delta: 1
                });
            },
            // 在地图上点击进行选点,这个选点在地图缩放比例较大时无效,因为精读的问题。
            tap(e) {
                console.log(e, '点击了地图');
                var location = e.detail.longitude + ',' + e.detail.latitude
                myAmapFun.getRegeo({
                    location: location,
                    success: (data) => {
                        console.log("获取指定定位信息", data);
                        this.selectAddr = {
                            address: data[0].regeocodeData.formatted_address,
                            latitude: e.detail.latitude,
                            longitude: e.detail.longitude
                        };
                        this.markers[0].latitude = data[0].latitude;
                        this.markers[0].longitude = data[0].longitude;
                        myAmapFun.getPoiAround({
                            location: data[0].longitude + ',' + data[0].latitude,
                            success: (data) => {
                                console.log("获取当前的列表", data);
                                this.dataTips = data.poisData;
                            },
                            fail: (info) => {
                                console.log(info, '点击地图错误信息1')
                            }
                        })
                    },
                    fail: (info) => {
                        console.log(info, '点击地图错误信息2');
                    }
                })
            },
            // 根据内容进行检索
            searchFn() {
                console.log("根据地址检索", this.searchWords);
                myAmapFun.getInputtips({
                    keywords: this.searchWords,
                    location: '',
                    success: (data) => {
                        console.log(111, data);
                        if (data && data.tips) {
                            this.dataTips = data.tips;
                        }
                    },
                    fail: data => {
                        console.log(222, data);
                    }
                })
            },
            // getCurrentLocation() {
            //     let that = this
            //     uni.getLocation({
            //         type: 'wgs84',
            //         success: function(res) {
            //             console.log(res, '当前地址定位');
            //             if (res.errMsg == "getLocation:ok") {
            //                 console.log(that.mark, 'onload里面看看');
            //                 this.longitude = res.longitude;
            //                 this.latitude = res.latitude;
            //                 this.markers[0].longitude = res.longitude;
            //                 this.markers[0].latitude = res.latitude;
            //             }
            //         }
            //     });
            // },
        }
    }
</script>
<style lang="scss" scoped>
    .btns {
        position: fixed;
        top: 0;
        left: 0;
        height: 260upx;
        width: 100%;
        background: linear-gradient(to bottom, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0));
        display: flex;
        align-items: center;
        justify-content: space-between;
        z-index: 10 !important;
        view {
            border-radius: 10%;
            margin: 100upx 24upx 0;
            font-size: 30upx;
            &:first-child {
                color: #fff;
            }
            &:last-child {
                width: 100upx;
                height: 60upx;
                line-height: 60upx;
                text-align: center;
                border-radius: 10upx;
                background: #20c295;
                color: #fff;
            }
        }
    }
    .content {
        // position: relative;
        height: 100vh;
        display: flex;
        flex-direction: column;
        .content-map {
            width: 100%;
            height: 50vh;
        }
        .list {
            // flex: 0 1 calc(50vh - 10upx);
            border-radius: 30rpx;
            background-color: #fff;
            // position: absolute;
            // bottom:-660rpx;
            height: calc(50vh - 10upx);
            overflow-y: auto;
            width: 100%;
            margin: 0upx auto 0;
            padding-bottom: 20upx;
            .item {
                border-bottom: 2upx solid #f3f3f3;
                padding: 0 30rpx;
                &:last-child {
                    border: none;
                }
                .address {
                    font-size: 22upx;
                    color: #666;
                    margin: 10upx 0;
                }
                .name {
                    font-size: 30upx;
                    color: #333;
                    margin-top: 10upx;
                }
                &.active {
                    .name {
                        font-weight: bold;
                        color: #E13500;
                    }
                    .address {
                        color: #E13500;
                    }
                }
            }
        }
        .inputCon {
            flex: 0 1 108rpx;
            width: 100%;
            background: #fff;
            // top: -60upx;
            // position: relative;
            z-index: 20;
            // height: 100upx;
            display: flex;
            align-items: center;
            justify-content: center;
            .searchView {
                width: 702upx;
                height: 60upx;
                display: flex;
                align-items: center;
                line-height: 60upx;
                border-radius: 40upx;
                padding: 0 30upx;
                box-sizing: border-box;
                background: #f3f3f3;
                font-size: 26upx;
                .iconfont {
                    color: #666;
                    margin-right: 20upx;
                }
                input {
                    flex: 1;
                }
                view {
                    flex-shrink: 0;
                }
            }
        }
    }
</style>