Преглед на файлове

Merge branch 'master' of http://git.dgtis.com/hanchaolong/jd_logistics

yinxiangke преди 12 часа
родител
ревизия
800a9a99a9

+ 13 - 7
jd_logistics-app/api/order.js

@@ -2,22 +2,28 @@ import request from "@/utils/request.js";
 
 /**
  * 创建订单
- * "payMethod":"1",  //支付方式 0微信 1余额
-    "productType":"1",//商品类型 0购买会员 1充值
-    "productId":2,//充值规则id
-    "orderNum":1,//订单数量
-    "orderAmt":1000//订单金额
  * 
  */
 export function createOrder(data) {
-  return request.post('mini/order/createOrder', data);
+  return request.post('system/front/order', data);
 }
+
+
+/**
+ * 获取数据字典
+ * @param {Object} data
+ */
+export function dictList(data) {
+  return request.get('system/dict/data/type/'+ data);
+}
+
+
 /**
  * 支付结果
  * 
  */
 export function payResult(data) {
-  return request.post('mini/order/payResult/'+data.orderId, data);
+  return request.post('mini/order/payResult/'+ data.orderId, data);
 }
 /**
  * 查询订单列表

+ 4 - 4
jd_logistics-app/components/AddressInfo.vue

@@ -1,10 +1,11 @@
 <template>
 	<view class="address-info">
 		<view class="name-phone">
-			<text class="name">{{ address.name }}</text>
-			<text class="phone">{{ address.phone }}</text>
+			<text class="name">{{ address.contactName }}</text>
+			<text class="phone">{{ address.contactPhone }}</text>
 		</view>
-		<view class="address-detail">{{ address.address }}</view>
+		<view class="address-detail">
+			{{ address.provinceName }}{{ address.cityName }}{{ address.countyName }}{{ address.detailedAddress }}</view>
 	</view>
 </template>
 
@@ -26,7 +27,6 @@
 </script>
 
 <style scoped lang="less">
-	
 	.address-info {
 		display: flex;
 		flex-direction: column;

+ 5 - 5
jd_logistics-app/components/AddressItem.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="address-item">
-		<view class="address-content">
+		<view class="address-content" @click="$emit('click', address)">
 			<!-- 地址信息 -->
 			<view class="address-info">
 				<view class="name-phone">
@@ -13,7 +13,7 @@
 			<!-- 操作区域 -->
 			<view class="actions" v-if="isSowAction">
 				<!-- 设为默认 -->
-				<view class="set-default" @click="$emit('set-default')">
+				<view class="set-default" @click.stop="$emit('set-default')">
 					<view class="default-checkbox" :class="{ 'checked': address.defaultFlag == 1 }">
 						<text v-if="address.defaultFlag == 1" class="checkmark">✓</text>
 					</view>
@@ -22,11 +22,11 @@
 
 				<!-- 删除和编辑按钮 -->
 				<view class="edit-delete">
-					<view class="action-text"  @click="$emit('delete')">
+					<view class="action-text"  @click.stop="$emit('delete')">
 						<image src="/static/img/address-delete.png" />
 						<text class=" delete">删除</text>
 					</view>
-					<view class="action-text" @click="$emit('edit')">
+					<view class="action-text" @click.stop="$emit('edit')">
 						<image src="/static/img/address-edit.png" />
 						<text class=" edit" >编辑</text>
 					</view>
@@ -52,7 +52,7 @@
 		}
 	})
 
-	defineEmits(['set-default', 'edit', 'delete'])
+	defineEmits(['set-default', 'edit', 'delete','click'])
 </script>
 
 <style scoped lang="less">

+ 82 - 55
jd_logistics-app/pages/address/address_list.vue

@@ -2,27 +2,27 @@
 	<view class="address-page">
 		<!-- 地址列表 -->
 		<view class="address-list">
-			
-		
+
+
 			<!-- 地址项组件 -->
-			<address-item v-if="addressList.length > 0" v-for="(item, index) in addressList" :key="item.id" :address="item"
-				:is-default="item.isDefault" @set-default="handleSetDefault(index)" @edit="handleEdit(index)"
-				@delete="handleDelete(index)" />
-				
-				<!-- 空状态 -->
-				<view class="empty-state" v-if="addressList.length === 0 && !loadState">
-					<u-icon class="empty-icon" name="list" size="60" color="#ccc"></u-icon>
-					<text class="empty-text">暂无数据</text>
-				</view>
-				
-				<!-- 加载状态提示 -->
-				<view class="load-more-status" v-if="loadState">
-					<text>加载中...</text>
-				</view>
-				
-				<view class="load-more-status" v-if="loadFinished && addressList.length !== 0">
-					<text>没有更多数据了</text>
-				</view>
+			<address-item v-if="addressList.length > 0" v-for="(item, index) in addressList" :key="item.id"
+				:address="item" :is-default="item.isDefault" @set-default="handleSetDefault(index)"
+				@edit="handleEdit(index)" @delete="handleDelete(index)" @click="onSelectAddress(item)" />
+
+			<!-- 空状态 -->
+			<view class="empty-state" v-if="addressList.length === 0 && !loadState">
+				<u-icon class="empty-icon" name="list" size="60" color="#ccc"></u-icon>
+				<text class="empty-text">暂无数据</text>
+			</view>
+
+			<!-- 加载状态提示 -->
+			<view class="load-more-status" v-if="loadState">
+				<text>加载中...</text>
+			</view>
+
+			<view class="load-more-status" v-if="loadFinished && addressList.length !== 0">
+				<text>没有更多数据了</text>
+			</view>
 		</view>
 
 		<!-- 添加新地址按钮 -->
@@ -39,11 +39,19 @@
 	import {
 		ref
 	} from 'vue'
-	import { onShow,onPullDownRefresh,onReachBottom } from '@dcloudio/uni-app'
+	import {
+		onLoad,
+		onShow,
+		onPullDownRefresh,
+		onReachBottom
+	} from '@dcloudio/uni-app'
 	import AddressItem from '@/components/AddressItem.vue'
-	import { listBook,delBook } from '../../api/address'
-	
-	
+	import {
+		listBook,
+		delBook
+	} from '../../api/address'
+
+
 	const pageNum = ref(1)
 	const pageSize = ref(10)
 	const recordTotal = ref(0)
@@ -52,30 +60,47 @@
 
 	// 模拟地址数据
 	const addressList = ref([])
-	const pages = ref(0)//数据总条数
+	const pages = ref(0) //数据总条数
 
 	// 当前要操作的地址索引
 	const currentIndex = ref(-1)
-	
-	
+
+	const addType = ref('')
+
+	onLoad((option) => {
+		addType.value = option.addType
+	})
+
 	onShow(() => {
 		pageNum.value = 1
 		getAddressList()
 	})
 	// 下拉刷新
-	onPullDownRefresh(()=>{
+	onPullDownRefresh(() => {
 		pageNum.value = 1
 		getAddressList()
 	})
-	
+
 	// 触底加载更多
-	onReachBottom(()=>{
+	onReachBottom(() => {
 		if (pageNum.value < pages.value) {
 			pageNum.value++;
 			getAddressList()
 		}
 	})
 
+	const onSelectAddress = (address) => {
+		console.log('-------address---',address)
+		if (!addType.value) {
+			return
+		}
+		uni.$emit('addressSelected', {
+			type:addType.value, // 'sender' 或 'receiver'
+			address // 选中的地址对象
+		})
+		uni.navigateBack() // 返回上一页
+	}
+
 	// 设置默认地址
 	const handleSetDefault = (index) => {
 		addressList.value.forEach((item, i) => {
@@ -86,7 +111,9 @@
 	// 编辑地址
 	const handleEdit = (index) => {
 		// 这里可以跳转到编辑页面
-		uni.navigateTo({ url: '/pages/address/edit?id=' + addressList.value[index].addressId })
+		uni.navigateTo({
+			url: '/pages/address/edit?id=' + addressList.value[index].addressId
+		})
 	}
 
 	// 删除地址
@@ -98,18 +125,18 @@
 			// showCancel:false,
 			success: async (res) => {
 				if (res.confirm) {
-					
+
 					let res = await delBook(addressList.value[index].addressId)
-					
+
 					if (res.code == 200) {
 						addressList.value.splice(currentIndex.value, 1)
 						currentIndex.value = -1
 						uni.showToast({
-							title:'删除成功',
-							icon:'success'
+							title: '删除成功',
+							icon: 'success'
 						})
 					}
-					
+
 				} else if (res.cancel) {
 					console.log('用户点击取消');
 				}
@@ -123,40 +150,40 @@
 			url: '/pages/address/edit'
 		})
 	}
-	
+
 	const loadMore = () => {
 		pageNum.value++
 		getAddressList(true)
 	}
-	
-	
-	
+
+
+
 	// 获取地址列表
 	const getAddressList = () => {
 		const params = {
 			pageNum: pageNum.value,
 			pageSize: pageSize.value
 		}
-	
-		uni.showLoading({mask:true})
+
+		uni.showLoading({
+			mask: true
+		})
 		listBook(params).then(res => {
 			uni.hideLoading()
 			uni.stopPullDownRefresh()
-			
+
 			if (res.code === 200) {
 				const list = res.rows || []
-				addressList.value = pageNum.value == 1 ? list : [...addressList.value,...list]
+				addressList.value = pageNum.value == 1 ? list : [...addressList.value, ...list]
 				pages.value = Math.ceil(res.total / pageSize.value) || 0
-				
-	
-				
+
+
+
 			}
 		}, err => {
 			uni.hideLoading()
 		})
 	}
-	
-	
 </script>
 
 <style scoped>
@@ -168,19 +195,19 @@
 	}
 
 	.address-list {
-		
-		padding: 20rpx 30rpx 152rpx ;
+
+		padding: 20rpx 30rpx 152rpx;
 		box-sizing: border-box;
 	}
-	
+
 	.load-more-status {
 		text-align: center;
 		padding: 20rpx;
 		font-size: 24rpx;
 		color: #999;
 	}
-	
-	
+
+
 	.empty-state {
 		display: flex;
 		flex-direction: column;
@@ -189,7 +216,7 @@
 		padding: 120rpx 40rpx;
 		color: #999999;
 	}
-	
+
 	.empty-text {
 		margin-top: 20rpx;
 		font-size: 28rpx;

+ 26 - 23
jd_logistics-app/pages/address/edit.vue

@@ -51,28 +51,13 @@
 		<!-- 最近使用地址 -->
 		<view class="recent-address" v-if="false">
 			<!-- 地址项1 -->
-			<view class="address-item" @tap="selectAddress(0)">
+			<view class="address-item" @click="onSelectAddress(addressItem)">
 
 				<AddressInfo v-if="formData.id" :address="addressSend" />
-				<view class="address-info">
-					<view class="address-name">袁添昊 13344642161</view>
-					<view class="address-detail">湖北省荆州市新石南路747号</view>
-				</view>
-				<!-- 	<view class="address-select">
-					
-				</view> -->
+				
 			</view>
 
-			<!-- 地址项2 -->
-			<view class="address-item" @tap="selectAddress(1)">
-				<view class="address-info">
-					<view class="address-name">袁添昊 13344642161</view>
-					<view class="address-detail">湖北省荆州市新石南路747号</view>
-				</view>
-				<!-- <view class="address-select">
-					
-				</view> -->
-			</view>
+		
 		</view>
 		<!-- 下单按钮 -->
 		<view class="submit-btn" @click="onConfirm">
@@ -100,7 +85,7 @@
 		getBook
 	} from '@/api/address.js'
 
-	const addType = ref('1') //1 表示从创建订单过来  2 表示编辑  3表示创建
+	const addType = ref('') //1 表示从创建订单过来  2 表示编辑  3表示创建
 
 	// 表单数据
 	const formData = reactive({
@@ -136,6 +121,8 @@
 			})
 		}
 		
+		addType.value = option.addType
+		
 	})
 	const getAddress = async () => {
 		let res = await getBook(formData.addressId);
@@ -217,11 +204,27 @@
 			title: '提交成功',
 			icon: 'success'
 		})
+		
+		if(res.code == 200){
+			setTimeout(() => {
+				// 返回上一页或执行其他操作
+				formData.addressId = '-1'
+				onSelectAddress(formData)				
+				uni.navigateBack() // 返回上一页
+			}, 400)
+		}
 
-		setTimeout(() => {
-			// 返回上一页或执行其他操作
-			uni.navigateBack()
-		}, 800)
+	}
+	
+	const onSelectAddress = (address) => {
+		console.log('-------address---',address)
+		if (addType.value != 'sender' && addType.value != 'receiver') {
+			return
+		}
+		uni.$emit('addressSelected', {
+			type:addType.value, // 'sender' 或 'receiver'
+			address
+		})
 	}
 </script>