From c754e1304799c932b1aabe7a85960d29274791b7 Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期三, 18 十二月 2024 09:50:28 +0800
Subject: [PATCH] 1.售后图片可以选择多张,并发向服务器请求上传功能,避免响应过长服务器假死
---
pages/user/address/address.vue | 154 +++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 129 insertions(+), 25 deletions(-)
diff --git a/pages/user/address/address.vue b/pages/user/address/address.vue
index d539375..cee367b 100644
--- a/pages/user/address/address.vue
+++ b/pages/user/address/address.vue
@@ -1,8 +1,8 @@
<template>
<!-- 收货地址列表 -->
<view class="p15 container-address">
- <!-- <view class="search-container m-t-12 flex">
- <view class="flex1 input">
+ <view class="search-container m-t-12 flex">
+ <view class="flex1 input" @click="selectWxAddress('input')">
<u-input placeholder="小区名/店铺名/写字楼/街道名等" disabled v-model="search_flow">
<template slot="suffix">
<uni-icons color="#20613D" type="search" size="24"></uni-icons>
@@ -12,19 +12,29 @@
</view>
<view class="m-t-12 ">
<view class="desc-gray">当前位置</view>
- <view class="flex">
- <view class="flex1"></view>
- <view @click="selectWxAddress('input')">
- <image src="@/static/images/customer/address/icon-address.jpg"></image>
- 重新定位
+ <view class="flex current-address">
+ <view class="flex1">
+ {{ addressDesc || (address&&address.id?address.address: '选择地址') }}
+
+ </view>
+ <view class="flex" @click="changeCurrentAddress">
+ <view>
+ <image style="width: 30rpx;height: 30rpx;margin-top: 6rpx;margin-right: 10rpx;" class="m-t-2"
+ src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/a2/a248385d4fe748ca81ee058ea5bf8c47icon-address.jpg">
+ </image>
+ </view>
+ <view>重新定位</view>
</view>
</view>
</view>
- -->
+ <view class="m-t-12 ">
+ <view class="desc-gray">我的收货地址</view>
+
+ </view>
<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">
+ <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">
@@ -67,14 +77,17 @@
<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>
</view>
</view>
<view style="height: 92rpx;width: 690rpx;">
</view>
- <view class="button-green button-fixed-bottom" style="width: 690rpx;line-height: 92rpx;height: 92rpx;"
- @click="addAddress">添加收货地址
+ <view class="button-green button-fixed-bottom" v-if="currentInfo.id"
+ style="width: 690rpx;line-height: 92rpx;height: 92rpx;" @click="addAddress">添加收货地址
</view>
<uni-popup ref="popup_form" type="top" :mask-click="false">
@@ -174,7 +187,12 @@
// this.list = [{}, {}]
this.source = options.source || ''
this.listApi = '/api/address/list'
- await this.getList()
+ if (!this.currentInfo.id) {
+
+ } else {
+ await this.getList()
+
+ }
},
onShow() {
@@ -211,6 +229,12 @@
address: state => {
return state.defaultaddress || {}
},
+ addressDesc: state => {
+ return state.addressDesc || ''
+ },
+ // search_flow() {
+ // return this.addressDesc || ''
+ // }
}),
},
@@ -230,25 +254,36 @@
},
regionDataPlus: [],
list: [],
+ search_flow: '',
};
},
methods: {
selectWxAddress(source) {
let that = this
- if (source === 'form') {
+ {
//表单选择了地址
wx.chooseLocation({
success: location => {
- console.log('success loc', location)
+ console.log('success loc', location,source)
// address: "江苏省苏州市吴中区太湖东路288号"
// errMsg: "chooseLocation:ok"
// latitude: 31.26249
// longitude: 120.63212
// name: "苏州市吴中区人民政府"
- that.submitForm.address = (location.address || '') + (location.name || '')
- that.submitForm.latitude = location.latitude || 0
- that.submitForm.longitude = location.longitude || 0
+ 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) {
@@ -320,6 +355,54 @@
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) {
@@ -356,13 +439,16 @@
}
},
async init_area() {
- if (this.regionDataPlus && this.regionDataPlus.length > 0) {
+ // debugger;
+ // if (this.regionDataPlus && this.regionDataPlus.length > 0) {
- } else {
- var a = this.$storage.getItem('cache_area')
+ // } 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(
@@ -370,7 +456,7 @@
'text')) || []
this.$storage.setItem('cache_area', JSON.stringify(this.regionDataPlus))
}
- }
+ // }
},
chooseLocation() {
@@ -449,6 +535,7 @@
this.$store.commit('setDefaultAddress', {
...item
})
+
}
}, err => {
@@ -463,11 +550,20 @@
})
},
async selectAddress(item) {
- await this.$message.confirm('确定选择此地址作为收货地址吗')
//携带,然后返回
- this.$store.commit('setDefaultAddress', {
- ...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) {
@@ -577,6 +673,14 @@
<style lang="scss" scoped>
.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;
--
Gitblit v1.9.3