Selaa lähdekoodia

供应商发货

zhengjinyi 5 vuotta sitten
vanhempi
commit
0d46ef78ad

+ 2 - 2
common/config/config.js

@@ -2,9 +2,9 @@ let URL_CONFIG = ""
 if(process.env.NODE_ENV === 'development'){
 if(process.env.NODE_ENV === 'development'){
     // 开发环境
     // 开发环境
 	// URL_CONFIG = 'http://192.168.1.24:8008'	 //俊俊联调地址
 	// URL_CONFIG = 'http://192.168.1.24:8008'	 //俊俊联调地址
-	URL_CONFIG = 'http://192.168.1.22:8008'	 //裴裴联调地址
+	// URL_CONFIG = 'http://192.168.1.22:8008'	 //裴裴联调地址
 	// URL_CONFIG = 'http://192.168.1.26:8008'	 //超超联调地址
 	// URL_CONFIG = 'http://192.168.1.26:8008'	 //超超联调地址
-    // URL_CONFIG = 'https://spi-b.caimei365.com'	 //采美测试地址
+    URL_CONFIG = 'https://spi-b.caimei365.com'	 //采美测试地址
 	// URL_CONFIG = 'https://spi.caimei365.com'
 	// URL_CONFIG = 'https://spi.caimei365.com'
 }else{
 }else{
     // 生产环境
     // 生产环境

+ 7 - 10
components/cm-custom/custom-d.vue

@@ -1,14 +1,13 @@
 <template name="headerNavbar">
 <template name="headerNavbar">
-	<!-- 自定义导航栏 -->
+	<!-- 发货记录自定义导航栏 -->
 	<view class='navbar-wrap' :style="{height:navbarHeight+'px',paddingTop:statusBarHeight+'px'}"> 
 	<view class='navbar-wrap' :style="{height:navbarHeight+'px',paddingTop:statusBarHeight+'px'}"> 
 	  	<view class="navbar-text" :style="{lineHeight:(navbarHeight - statusBarHeight)+'px;',fontSize:fontSizeSetting+'px;'}">
 	  	<view class="navbar-text" :style="{lineHeight:(navbarHeight - statusBarHeight)+'px;',fontSize:fontSizeSetting+'px;'}">
 	    	{{navbarData.title ? navbarData.title : " "}}
 	    	{{navbarData.title ? navbarData.title : " "}}
 	  	</view>
 	  	</view>
-	  	<view class="navbar-icon" v-if="navbarData.showCapsule ? navbarData.showCapsule : true" 
-			  :style="{width:headerBtnPosi.width+'px;',lineHeight:(navbarBtn.height)+'px',top:navbarBtn.top + statusBarHeight+'px;',left:navbarBtn.right+'px;',height:(navbarBtn.height)+'px;'}">
-			  <text v-if='haveBack' @click="_goBack" class="iconfont icon-shangyibu" :style="{width:headerBtnPosi.width/2+'px',height:navbarBtn.height+'px'}"></text>
-	      	  <text  v-if='haveBack' class="iconfont icon-vertical_line" :style="{borderColor:navbarData.borderColor ? navbarData.borderColor : 'rgba(0,0,0,0.4)'}"></text>
-			  <text @click="_goHome" class="iconfont icon-shouye" :style="{width:headerBtnPosi.width/2+'px',height:navbarBtn.height+'px'}"></text>
+	  	<view class="navbar-icon" :style="{width:headerBtnPosi.width+'px',lineHeight:(navbarBtn.height)+'px',top:navbarBtn.top + statusBarHeight+'px',left:navbarBtn.right+'px',height:(navbarBtn.height)+'px'}">
+			  <text @click="_goBack" class="iconfont icon-shangyibu" :style="{width:headerBtnPosi.width/2+'px',height:navbarBtn.height+'px'}"></text>
+	      	  <text class="iconfont icon-vertical_line" :style="{borderColor:navbarData.borderColor ? navbarData.borderColor : 'rgba(0,0,0,0.4)'}"></text>
+			  <text @click="_goDetails" class="iconfont icon-shouye" :style="{width:headerBtnPosi.width/2+'px',height:navbarBtn.height+'px'}"></text>
 	  	</view>
 	  	</view>
 	</view>
 	</view>
 </template>
 </template>
@@ -91,10 +90,8 @@
 		        	delta: this.page
 		        	delta: this.page
 		      	});
 		      	});
 		    },
 		    },
-		    _goHome: function () {
-		      	uni.switchTab({
-		        	url: '/pages/tabBar/home/home'
-		      	})
+		    _goDetails: function () {
+		      this.$emit('pageDetails')
 		    }
 		    }
 		},
 		},
 		onShow(){
 		onShow(){

+ 101 - 108
components/cm-module/orderDetails/supplierDetaileButton.vue

@@ -1,14 +1,12 @@
 <template name="button">
 <template name="button">
 	<view class="button-template" :style="{paddingBottom :isIphoneX ? '68rpx' : '0rpx'}">
 	<view class="button-template" :style="{paddingBottom :isIphoneX ? '68rpx' : '0rpx'}">
 		<!-- 底部按钮 -->
 		<!-- 底部按钮 -->
-		<view class="button-content">
-			<view class="btn btn-color" @click.stop="onShareCode">
-				<view class="tips" v-if="shareCode">分享码:{{shareCode}}</view>
-				分享订单
-			</view>	
-			<view class="btn btn-color" @click.stop="btnConfirm('record')">发货记录</view>
-			<view class="btn btn-color" v-if="btnState.isDeliver"  @click.stop="btnConfirm('deliver')">发货</view>
-		</view>
+		<view class="btn btn-color" @click.stop="onShareCode">
+			<view class="tips" v-if="shareCode">分享码:{{shareCode}}</view>
+			分享订单
+		</view>	
+		<view class="btn btn-color" @click.stop="btnConfirm('record')">发货记录</view>
+		<view class="btn btn-color" v-if="btnState.isDeliver"  @click.stop="btnConfirm('deliver')">发货</view>
 	</view>
 	</view>
 </template>
 </template>
 
 
@@ -89,116 +87,111 @@
 
 
 <style lang="scss">
 <style lang="scss">
 	.button-template{
 	.button-template{
-		width: 100%;
+		width: 702rpx;
+		padding:0 24rpx;
 		height: auto;
 		height: auto;
-		position: fixed;
-		bottom: 0;
-		left: 0;
-		background: #FFFFFF;
-		.button-content{
-			width: 702rpx;
-			padding:0 24rpx;
-			height: auto;
-			float: left;
-			position: relative;
-			.share-code{
-				width: 200rpx;
-				height:  64rpx;
-				line-height: 64rpx;
-				color: #2A45FF;
-				text-align: left;
-				position: absolute;
-				font-size: $font-size-28;
-				font-weight: bold;
-				left: 24rpx;
-				top: 24rpx;
-			}
-			.btn{
+		background-color: #FFF;
+		-webkit-box-shadow: 0px 3px 10px rgba(51, 51, 51, 0.5);
+		box-shadow: 0px 3px 10px rgba(51, 51, 51, 0.5);
+		padding-bottom: 24rpx;
+		z-index: 999;
+		.share-code{
+			width: 200rpx;
+			height:  64rpx;
+			line-height: 64rpx;
+			color: #2A45FF;
+			text-align: left;
+			position: absolute;
+			font-size: $font-size-28;
+			font-weight: bold;
+			left: 24rpx;
+			top: 24rpx;
+		}
+		.btn{
+			width: 160rpx;
+			height:  64rpx;
+			margin:22rpx;
+			line-height: 64rpx;
+			font-size:$font-size-26;
+			color: #FFFFFF;
+			text-align: center;
+			border-radius: 10rpx;
+			float: right;
+		}
+		.btn-color{
+			background: $btn-confirm;
+			margin: 22rpx 0 22rpx 22rpx;
+			.tips{
 				width: 160rpx;
 				width: 160rpx;
-				height:  64rpx;
-				margin:22rpx;
-				line-height: 64rpx;
-				font-size:$font-size-26;
+				height: 34rpx;
+				padding: 10rpx 10rpx;
+				background:linear-gradient(45deg,rgba(0,0,0,1) 0%,rgba(87,87,87,1) 100%);
+				box-shadow:0px 2px 4px 0px rgba(0,0,0,0.2);
+				border-radius: 8rpx;
+				position: absolute;
 				color: #FFFFFF;
 				color: #FFFFFF;
-				text-align: center;
-				border-radius: 10rpx;
-				float: right;
-			}
-			.btn-color{
-				background: $btn-confirm;
-				margin: 22rpx 0 22rpx 22rpx;
-				.tips{
-					width: 160rpx;
-					height: 34rpx;
-					padding: 10rpx 10rpx;
+				line-height: 34rpx;
+				font-size: $font-size-24;
+				text-align: left;
+				right: 24rpx;
+				top: -45rpx;
+				&:before{
+					content: "";
+					width: 25rpx;
+					height: 25rpx;
 					background:linear-gradient(45deg,rgba(0,0,0,1) 0%,rgba(87,87,87,1) 100%);
 					background:linear-gradient(45deg,rgba(0,0,0,1) 0%,rgba(87,87,87,1) 100%);
-					box-shadow:0px 2px 4px 0px rgba(0,0,0,0.2);
-					border-radius: 8rpx;
 					position: absolute;
 					position: absolute;
-					color: #FFFFFF;
-					line-height: 34rpx;
-					font-size: $font-size-24;
-					text-align: left;
-					right: 24rpx;
-					top: -45rpx;
-					&:before{
-						content: "";
-						width: 25rpx;
-						height: 25rpx;
-						background:linear-gradient(45deg,rgba(0,0,0,1) 0%,rgba(87,87,87,1) 100%);
-						position: absolute;
-						bottom: -8rpx;
-						right: 30rpx;
-						z-index: -1;
-						transform:rotate(45deg);
-					}
+					bottom: -8rpx;
+					right: 30rpx;
+					z-index: -1;
+					transform:rotate(45deg);
 				}
 				}
 			}
 			}
-			.btn-cancel{
-				background:#FFFFFF;
-				color: #999999;
-				float: left;
-				margin: 22rpx 0;
+		}
+		.btn-cancel{
+			background:#FFFFFF;
+			color: #999999;
+			float: left;
+			margin: 22rpx 0;
+			text-align: left;
+		}
+		.btn-delete{
+			background:linear-gradient(315deg,rgba(255,163,3,1) 0%,rgba(255,53,1,1) 100%);
+		}
+		.btn-query{
+			background:linear-gradient(135deg,rgba(255,212,129,1) 0%,rgba(198,129,0,1) 100%);
+		}
+		.btn-confirm{
+			background:linear-gradient(315deg,rgba(231,0,0,1) 0%,rgba(255,104,1,1) 100%);
+		}
+		.btn-share{
+			background:linear-gradient(315deg,rgba(0,212,150,1) 0%,rgba(126,243,174,1) 100%);
+			margin-right: 0;
+			position: relative;
+			.tips{
+				width: 160rpx;
+				height: 34rpx;
+				padding: 10rpx 10rpx;
+				background:linear-gradient(45deg,rgba(0,0,0,1) 0%,rgba(87,87,87,1) 100%);
+				box-shadow:0px 2px 4px 0px rgba(0,0,0,0.2);
+				border-radius: 8rpx;
+				position: absolute;
+				color: #FFFFFF;
+				line-height: 34rpx;
+				font-size: $font-size-24;
 				text-align: left;
 				text-align: left;
-			}
-			.btn-delete{
-				background:linear-gradient(315deg,rgba(255,163,3,1) 0%,rgba(255,53,1,1) 100%);
-			}
-			.btn-query{
-				background:linear-gradient(135deg,rgba(255,212,129,1) 0%,rgba(198,129,0,1) 100%);
-			}
-			.btn-confirm{
-				background:linear-gradient(315deg,rgba(231,0,0,1) 0%,rgba(255,104,1,1) 100%);
-			}
-			.btn-share{
-				background:linear-gradient(315deg,rgba(0,212,150,1) 0%,rgba(126,243,174,1) 100%);
-				margin-right: 0;
-				position: relative;
-				.tips{
-					width: 160rpx;
-					height: 34rpx;
-					padding: 10rpx 10rpx;
+				right: 0;
+				top: -65rpx;
+				&:before{
+					content: "";
+					width: 25rpx;
+					height: 25rpx;
 					background:linear-gradient(45deg,rgba(0,0,0,1) 0%,rgba(87,87,87,1) 100%);
 					background:linear-gradient(45deg,rgba(0,0,0,1) 0%,rgba(87,87,87,1) 100%);
-					box-shadow:0px 2px 4px 0px rgba(0,0,0,0.2);
-					border-radius: 8rpx;
 					position: absolute;
 					position: absolute;
-					color: #FFFFFF;
-					line-height: 34rpx;
-					font-size: $font-size-24;
-					text-align: left;
-					right: 0;
-					top: -65rpx;
-					&:before{
-						content: "";
-						width: 25rpx;
-						height: 25rpx;
-						background:linear-gradient(45deg,rgba(0,0,0,1) 0%,rgba(87,87,87,1) 100%);
-						position: absolute;
-						bottom: -8rpx;
-						right: 30rpx;
-						z-index: -1;
-						transform:rotate(45deg);
-					}
+					bottom: -8rpx;
+					right: 30rpx;
+					z-index: -1;
+					transform:rotate(45deg);
 				}
 				}
 			}
 			}
 		}
 		}

+ 6 - 6
components/cm-module/orderDetails/supplierRecorgButton.vue

@@ -2,8 +2,8 @@
 	<view class="button-template">
 	<view class="button-template">
 		<!-- 底部按钮 -->
 		<!-- 底部按钮 -->
 		<view class="button-content">
 		<view class="button-content">
-			<view class="btn btn-color" @click.stop="btnConfirm('cancel',orderID)">撤销发货</view>
-			<view class="btn btn-color" @click.stop="btnConfirm('add',orderID)">添加物流</view>
+			<view class="btn btn-color" @click.stop="btnConfirm('cancel',hanldData)">撤销发货</view>
+			<view class="btn btn-color" @click.stop="btnConfirm('add',hanldData)">添加物流</view>
 		</view>
 		</view>
 	</view>
 	</view>
 </template>
 </template>
@@ -12,8 +12,8 @@
 	export default{
 	export default{
 		name:"button",
 		name:"button",
 		props:{
 		props:{
-			orderID: {
-				type:Number
+			hanldData: {
+				type:Object
 			}
 			}
 		},
 		},
 		data() {
 		data() {
@@ -28,8 +28,8 @@
 			
 			
 		},
 		},
 		methods:{
 		methods:{
-			btnConfirm(type,id){
-				let data = { type:type,orderId:id }
+			btnConfirm(type,hanldData){
+				let data = { hanldType:type,hanldData:hanldData }
 				this.$emit('buttonConfirm',data)
 				this.$emit('buttonConfirm',data)
 			}
 			}
 		}
 		}

+ 2 - 1
pages.json

@@ -460,7 +460,8 @@
 				},{
 				},{
 					"path": "pages/deliver/deliver-record",
 					"path": "pages/deliver/deliver-record",
 					"style": {
 					"style": {
-						"navigationBarTitleText": "发货记录"
+						"navigationBarTitleText": "发货记录",
+						"navigationStyle":"custom"
 					}
 					}
 				},{
 				},{
 					"path": "pages/deliver/logistics-list",
 					"path": "pages/deliver/logistics-list",

+ 2 - 3
pages/tabBar/home/home.vue

@@ -231,9 +231,6 @@
 							uni.setStorageSync('sessionid','JSESSIONID='+response.data.sessionId)
 							uni.setStorageSync('sessionid','JSESSIONID='+response.data.sessionId)
 							if(response.data.userIdentity ==1){
 							if(response.data.userIdentity ==1){
 								this.$api.navigateTo('/seller/pages/index/index')
 								this.$api.navigateTo('/seller/pages/index/index')
-							}else{
-								this.getHomeInformation()
-								this.getOrganizeProducts()
 							}
 							}
 						}).catch(error =>{
 						}).catch(error =>{
 							this.isLogin = false;
 							this.isLogin = false;
@@ -242,6 +239,8 @@
 							uni.setStorageSync('sessionid','JSESSIONID='+error.data)
 							uni.setStorageSync('sessionid','JSESSIONID='+error.data)
 							this.$store.commit('updateStatus',error.data)
 							this.$store.commit('updateStatus',error.data)
 						})
 						})
+						this.getHomeInformation()
+						this.getOrganizeProducts()
 					})
 					})
 				})
 				})
 			},		
 			},		

+ 2 - 2
services/ajax.env.js

@@ -2,9 +2,9 @@ let URL_CONFIG = ""
 if(process.env.NODE_ENV === 'development'){
 if(process.env.NODE_ENV === 'development'){
     // 开发环境
     // 开发环境
 	// URL_CONFIG = 'http://192.168.1.24:8008'	 //俊俊联调地址
 	// URL_CONFIG = 'http://192.168.1.24:8008'	 //俊俊联调地址
-	URL_CONFIG = 'http://192.168.1.22:8008'	 //裴裴联调地址
+	// URL_CONFIG = 'http://192.168.1.22:8008'	 //裴裴联调地址
 	// URL_CONFIG = 'http://192.168.1.26:8008'	 //超超联调地址
 	// URL_CONFIG = 'http://192.168.1.26:8008'	 //超超联调地址
-    // URL_CONFIG = 'https://spi-b.caimei365.com'	 //采美测试地址
+    URL_CONFIG = 'https://spi-b.caimei365.com'	 //采美测试地址
 	// URL_CONFIG = 'https://spi.caimei365.com'
 	// URL_CONFIG = 'https://spi.caimei365.com'
 }else{
 }else{
     // 生产环境
     // 生产环境

+ 17 - 1
services/shop.service.js

@@ -30,12 +30,28 @@ export default class ShopService {
 	GetLogisticsCompany (data = {}) {
 	GetLogisticsCompany (data = {}) {
 		return this.AjaxService.get({ url:'/supplier/logisticsCompany', data, isLoading: true })
 		return this.AjaxService.get({ url:'/supplier/logisticsCompany', data, isLoading: true })
 	}
 	}
+	/* 小程序发货-查看发货记录物流信息 */
+	GetLogisticsInfo (data = {}) {
+		return this.AjaxService.get({ url:'/supplier/logisticsInfo', data, isLoading: true })
+	}
+	/* 小程序发货-查看发货记录-添加物流 */
+	ShopAddLogisticsInfo (data = {}) {
+		return this.AjaxService.post({ url:'/supplier/addLogisticsInfo', data, isLoading: true })
+	}
 	/* 小程序发货-扫码获取物流公司信息 */
 	/* 小程序发货-扫码获取物流公司信息 */
 	GetExpressInformation (data = {}) {
 	GetExpressInformation (data = {}) {
 		return this.AjaxService.get({ url:'/supplier/scanLogistics', data, isLoading: false })
 		return this.AjaxService.get({ url:'/supplier/scanLogistics', data, isLoading: false })
 	}
 	}
 	/* 小程序发货-确认发货 */
 	/* 小程序发货-确认发货 */
 	ShopAddLogistics (data = {}) {
 	ShopAddLogistics (data = {}) {
-		return this.AjaxService.post({ url:'/supplier/addLogistics', data, isLoading: false })
+		return this.AjaxService.post({ url:'/supplier/addLogistics', data, isLoading: true })
+	}
+	/* 小程序发货-发货记录 */
+	ShopShipmentsRecord (data = {}) {
+		return this.AjaxService.get({ url:'/supplier/shipmentsRecord', data, isLoading: true })
+	}
+	/* 小程序发货-撤销发货 */
+	ShopCancelShipment (data = {}) {
+		return this.AjaxService.post({ url:'/supplier/cancelShipment', data, isLoading: true })
 	}
 	}
 }
 }

+ 98 - 30
supplier/pages/deliver/add-logistics.vue

@@ -60,7 +60,7 @@
 	export default{
 	export default{
 		data() {
 		data() {
 			return{
 			return{
-				userID:'',
+				logisticsBatchId:'',
 				isIphoneX:this.$store.state.isIphoneX,
 				isIphoneX:this.$store.state.isIphoneX,
 				isChange:true,
 				isChange:true,
 				isShowRemarks:false,
 				isShowRemarks:false,
@@ -68,6 +68,7 @@
 				photoLists:[],
 				photoLists:[],
 				checkLogicsIndex:0,
 				checkLogicsIndex:0,
 				selectID:0,
 				selectID:0,
+				addLogisticsType:'',
 				info:{
 				info:{
 					image:'',
 					image:'',
 					note:'',
 					note:'',
@@ -86,29 +87,42 @@
 		watch: {
 		watch: {
 			logisticsList: {
 			logisticsList: {
 				handler: function (el) {//监听对象的变换使用 function,箭头函数容易出现this指向不正确
 				handler: function (el) {//监听对象的变换使用 function,箭头函数容易出现this指向不正确
-				console.log(el)
 					this.logisticsList = el
 					this.logisticsList = el
 				},
 				},
 				deep: true
 				deep: true
 			}
 			}
 		},
 		},
 		onLoad(option) {
 		onLoad(option) {
-			// console.log(option)
-			this.info.shopOrderId = option.shopOrderId;
-			this.record = JSON.parse(option.data)
-			// console.log(this.record)
+			if(option.type == 'add'){
+				this.addLogisticsType = option.type
+				this.info.shopOrderId = option.shopOrderId;
+				this.record = JSON.parse(option.data)
+			}else{
+				let queryData = JSON.parse(option.data);
+				this.addLogisticsType = option.type
+				this.logisticsBatchId = queryData.logisticsBatchId
+				this.info.shopOrderId = option.shopOrderId;
+				this.initGetLogisticsInfo()
+			}
 		},
 		},
 		methods:{
 		methods:{
 			...mapMutations(['login']),
 			...mapMutations(['login']),
+			initGetLogisticsInfo(){
+				this.ShopService.GetLogisticsInfo({ logisticsBatchId : this.logisticsBatchId, shopOrderId:this.info.shopOrderId }).then(response =>{
+					const data = response.data.logisticsBatch
+					this.photoLists = data.remarkImages
+					this.info.note = data.remark
+				}).catch(error =>{
+					this.$util.msg(error.msg,2000);
+				})
+			},
 			AddScanCode(item){
 			AddScanCode(item){
 				let self = this;
 				let self = this;
 				uni.scanCode({
 				uni.scanCode({
 				    onlyFromCamera: true,
 				    onlyFromCamera: true,
 				    success: function (res) {
 				    success: function (res) {
-				        // console.log('条码内容:' + res.result); 
 						item.number= res.result
 						item.number= res.result
 						self.ShopService.GetExpressInformation({number:res.result}).then(response =>{
 						self.ShopService.GetExpressInformation({number:res.result}).then(response =>{
-							console.log(response)
 							item.label= response.data.label
 							item.label= response.data.label
 							item.value= response.data.value
 							item.value= response.data.value
 							self.selectID = response.data.id
 							self.selectID = response.data.id
@@ -118,7 +132,7 @@
 				    }
 				    }
 				});
 				});
 			},
 			},
-			addListFn(){
+			addListFn(){//添加
 				this.isShowRemarks = false
 				this.isShowRemarks = false
 				let obj ={name:'',number:'',value:''};
 				let obj ={name:'',number:'',value:''};
 				this.logisticsList.push(obj)
 				this.logisticsList.push(obj)
@@ -131,7 +145,6 @@
 			pageNavigateTo(index){//选择物流公司
 			pageNavigateTo(index){//选择物流公司
 				this.isChange = false
 				this.isChange = false
 				this.checkLogicsIndex = index
 				this.checkLogicsIndex = index
-				console.log(this.checkLogicsIndex)
 				this.$api.navigateTo(`/supplier/pages/deliver/logistics-list?selectID=${this.selectID}`)
 				this.$api.navigateTo(`/supplier/pages/deliver/logistics-list?selectID=${this.selectID}`)
 			},
 			},
 			showShowRemarksFn(){//显示发货备注
 			showShowRemarksFn(){//显示发货备注
@@ -151,7 +164,58 @@
 				this.photoLists.splice(index, 1);
 				this.photoLists.splice(index, 1);
 			},
 			},
 			confirmDeliverFn(){//确认发货
 			confirmDeliverFn(){//确认发货
-				console.log(this.logisticsList)
+				switch(this.addLogisticsType){
+					case 'add':
+						this.isNewAddLogisticsFn()
+						break;
+					case 'reple':
+						this.isRepleAddLogisticsFn()
+						break;
+				}
+			},
+			isRepleAddLogisticsFn(){//重新添加物流信息
+				//统一处理物流单号
+				let logisticsArray = []
+				let checkRepeat = false
+				for (const el of this.logisticsList) {
+					 // 检查缓存中是否已经存在
+					if (logisticsArray.find(c => c.number === el.number && c.number === el.number)) {
+					   // 已经存在
+					  checkRepeat = true
+					}else{
+						// 不存在就说明以前没遇到过,把它记录下来
+						let logisticsObj = {
+								number:el.number,
+								logisticsCompanyName:el.label,
+								logisticsCompanyCode:el.value 
+							}
+						logisticsArray.push(logisticsObj)
+					}
+				}
+				if(checkRepeat){
+					this.$util.msg('物流单号重复',2000);
+					return
+				}
+				//统一处理备注图片
+				this.photoLists.forEach(el =>{
+					this.info.image += el+'##'
+				})
+				let params = {
+						logistics:logisticsArray,
+						remarkImage:this.info.image,
+						remark:this.info.note,
+						logisticsBatchID:this.logisticsBatchId
+					}
+				this.ShopService.ShopAddLogisticsInfo({params:JSON.stringify(params)}).then(response =>{
+					this.$util.msg('添加物流成功',2000,true,'success')
+					setTimeout(()=>{
+						this.$api.navigateTo(`/supplier/pages/deliver/deliver-record?shopOrderId=${this.info.shopOrderId}`)
+					},2000)
+				}).catch(error =>{
+					this.$util.msg(error.msg,2000);
+				})
+			},
+			isNewAddLogisticsFn(){//第一次添加发货物流信息
 				if(this.logisticsList[0].label == ''){
 				if(this.logisticsList[0].label == ''){
 					this.$util.msg('请选择物流公司',2000);
 					this.$util.msg('请选择物流公司',2000);
 					return
 					return
@@ -161,37 +225,40 @@
 					return
 					return
 				}
 				}
 				//统一处理物流单号
 				//统一处理物流单号
-				let logisticsObj = {}
 				let logisticsArray = []
 				let logisticsArray = []
-				let map = new Map()
-				this.logisticsList.forEach(el =>{
-					if(map.get(el.number)!== el.number){
-						logisticsObj = {
-							number:el.number,
-							logisticsCompanyName:el.label,
-							logisticsCompanyCode:el.value
-						}
-						logisticsArray.push(logisticsObj)
+				let checkRepeat = false
+				for (const el of this.logisticsList) {
+					 // 检查缓存中是否已经存在
+					if (logisticsArray.find(c => c.number === el.number && c.number === el.number)) {
+					   // 已经存在
+					  checkRepeat = true
 					}else{
 					}else{
-						this.$util.msg('物流单号重复',2000);
-						return
+						// 不存在就说明以前没遇到过,把它记录下来
+						let logisticsObj = {
+								number:el.number,
+								logisticsCompanyName:el.label,
+								logisticsCompanyCode:el.value 
+							}
+						logisticsArray.push(logisticsObj)
 					}
 					}
-				})
+				}
+				if(checkRepeat){
+					this.$util.msg('物流单号重复',2000);
+					return
+				}
 				//统一处理备注图片
 				//统一处理备注图片
 				this.photoLists.forEach(el =>{
 				this.photoLists.forEach(el =>{
-					this.info.image+=el+'##'
+					this.info.image += el+'##'
 				})
 				})
 				let params = {
 				let params = {
 						logistics:logisticsArray,
 						logistics:logisticsArray,
 						record:this.record,
 						record:this.record,
 						info:this.info
 						info:this.info
 					}
 					}
-				console.log(params)
 				this.ShopService.ShopAddLogistics({params:JSON.stringify(params)}).then(response =>{
 				this.ShopService.ShopAddLogistics({params:JSON.stringify(params)}).then(response =>{
-					console.log(response)
 					this.$util.msg('发货成功',2000,true,'success')
 					this.$util.msg('发货成功',2000,true,'success')
 					setTimeout(()=>{
 					setTimeout(()=>{
-						this.$api.navigateTo(`/supplier/pages/deliver/deliver-record`)
+						this.$api.navigateTo(`/supplier/pages/deliver/deliver-record?shopOrderId=${this.info.shopOrderId}`)
 					},2000)
 					},2000)
 				}).catch(error =>{
 				}).catch(error =>{
 					this.$util.msg(error.msg,2000);
 					this.$util.msg(error.msg,2000);
@@ -206,17 +273,18 @@
 					longPressActions:''
 					longPressActions:''
 				})
 				})
 			},
 			},
-			conInput(e){
+			conInput(e){//备注文字字数限制
 				let value = e.detail.value;
 				let value = e.detail.value;
 				let len = parseInt(value.length);
 				let len = parseInt(value.length);
 				if (len > this.max) return;
 				if (len > this.max) return;
 				this.min = len;
 				this.min = len;
 				if(this.min == 200){
 				if(this.min == 200){
-					this.$util.msg('您输入的数已达上限',2000);
+					this.$util.msg('您输入的数已达上限',2000);
 				}
 				}
 			}
 			}
 		},
 		},
 		onShow() {
 		onShow() {
+			//处理选择物流公司
 			let pages = getCurrentPages();
 			let pages = getCurrentPages();
 			let currPage = pages[pages.length-1];
 			let currPage = pages[pages.length-1];
 			if(currPage.data.select =='select'){
 			if(currPage.data.select =='select'){

+ 1 - 7
supplier/pages/deliver/deliver-goods.vue

@@ -69,15 +69,9 @@
 			return{
 			return{
 				CustomBar:this.CustomBar,// 顶部导航栏高度
 				CustomBar:this.CustomBar,// 顶部导航栏高度
 				isIphoneX:this.$store.state.isIphoneX,
 				isIphoneX:this.$store.state.isIphoneX,
-				userID:'',
 				shopOrderId:'',
 				shopOrderId:'',
-				alertType:'',
 				productsList:[],//发货的商品
 				productsList:[],//发货的商品
-				setGoodData:'', //提交发货的商品
 				isCheckAll:false,//是否全选
 				isCheckAll:false,//是否全选
-				isModallayer:false,
-				isDisabled: false, // 供应商/店铺全选是否禁用状态
-				isNoConfim:false,
 			}
 			}
 		},
 		},
 		onLoad(option){
 		onLoad(option){
@@ -182,7 +176,7 @@
 					this.$util.msg("请先选择商品~",2000);
 					this.$util.msg("请先选择商品~",2000);
 					return
 					return
 				}else{
 				}else{
-					this.$api.navigateTo(`/supplier/pages/deliver/add-logistics?shopOrderId=${this.shopOrderId}&data=${JSON.stringify(setProductList)}`)
+					this.$api.navigateTo(`/supplier/pages/deliver/add-logistics?type=add&shopOrderId=${this.shopOrderId}&data=${JSON.stringify(setProductList)}`)
 				}
 				}
 			},
 			},
 		},
 		},

+ 231 - 136
supplier/pages/deliver/deliver-record.vue

@@ -1,166 +1,198 @@
 <template>
 <template>
-	<view class="container record clearfix"> 
-		<view class="record-content">
-			<view class="record-list clearfix"  v-for="(pros,index) in productsList" :key="index" >
-				<view class="record-top clearfix">
-					<view class="top-view">
-						<view class="top-viewlabel">发货时间:</view>
-						<view class="top-viewtext">2019-07-11 13:52:23</view>
-					</view>
-					<view class="top-view">
-						<view class="top-viewlabel">申通快递:</view>
-						<view class="top-viewtext">
-							<text v-for="(item,idx) in lgisList" :key="idx">{{item}}</text>
+	<view class="container record clearfix" :style="{paddingTop:CustomBar+'px'}"> 
+		<cd-custom :systeminfo='systeminfo' :navbar-data='nvabarData' :headerBtnPosi ="headerBtnPosi" :page='1' @pageDetails="hanldPageDetails"></cd-custom>
+		<view class="record-content-empty" v-if="isEmpty" :style="{'height': windowHeight ? windowHeight+'px' : 'auto'}">
+			<view class="record-container clearfix">
+				<image class="club-empty-image" src="https://img.caimei365.com/group1/M00/03/B7/Cmis2178OfaAEjhLAABqsz9OXM0847.png" mode="aspectFit"></image>
+				<view class="txt">此订单暂无发货记录~</view>
+				<view class="btn" @click="pageGoLink">去发货</view>
+			</view>
+		</view>
+		<view class="record-content" v-else>
+			<scroll-view scroll-y="true" >
+				<view class="record-list clearfix"  v-for="(item,index) in RecordList" :key="index">
+					<view class="record-top clearfix">
+						<view class="top-view">
+							<view class="top-viewlabel">发货时间:</view>
+							<view class="top-viewtext">{{item.deliveryTime}}</view>
 						</view>
 						</view>
-					</view>
-				</view>
-				<view class="goods-pros">
-					<view class="goods-pros-t">
-						<view class="pros-img"><image :src="pros.mainImage ? pros.mainImage:''" alt="" /></view>
-						<view class="pros-product">
-							<view class="producttitle">{{pros.name}}</view>
-							<view class="productspec">规格:{{pros.productUnit ? pros.productUnit : ''}}</view>
-							<view class="productspec">商品编码:{{pros.productCode ? pros.productCode : ''}}</view>
-							<view class="product-view">
-								<view class="view-num">数量:{{pros.num}}</view>
+						<view class="top-view">
+							<view class="top-viewlabel">申通快递:</view>
+							<view class="top-viewtext">
+								<text v-for="(logist,idx) in item.logisticsInformationList" :key="logist.id">{{logist.nu}}</text>
 							</view>
 							</view>
-							<view class="product-view">
-								<view class="view-num">本次发货:{{pros.taxRate}}</view>
-								<view class="view-num">已发货:{{pros.discount == null ? '0' : pros.discount}}</view>
-							</view>
-							<view class="product-view">
-								<view class="view-num">未发货:{{pros.discountPrice}}</view>
-								<view class="view-num">已退货:{{pros.discountPrice}}</view>
-							</view>
-						</view>	
+						</view>
 					</view>
 					</view>
-					<view class="goods-pros-b clearfix">
-						<view class="b-label">拍照备注</view>
-						<view class="b-photo">
-							<view class="b-imageView" v-for="(imgItem,imgIdx) in ramkesList" :key="imgIdx" >
-								<image :src="imgItem" mode="widthFix"  @click="previewImg(imgIdx)"></image>
+					<view class="goods-pros">
+						<view class="goods-pros-t" v-for="(pros,idx) in item.logisticsRecordList" :key="pros.id">
+							<view class="pros-img"><image :src="pros.image ? pros.image:''" alt="" mode="aspectFill"/></view>
+							<view class="pros-product">
+								<view class="producttitle">{{pros.productName}}</view>
+								<view class="productspec">规格:{{pros.unit ? pros.unit : ''}}</view>
+								<view class="productspec">商品编码:{{pros.productCode ? pros.productCode : ''}}</view>
+								<view class="product-view">
+									<view class="view-num">数量:{{pros.buyNum}}</view>
+								</view>
+								<view class="product-view">
+									<view class="view-num">本次发货:{{pros.num}}</view>
+									<view class="view-num">已发货:{{pros.shipmentsNum}}</view>
+								</view>
+								<view class="product-view">
+									<view class="view-num">未发货:{{pros.notShippedNum}}</view>
+									<view class="view-num">已退货:{{pros.returnedNum}}</view>
+								</view>
+							</view>	
+						</view>
+						<view class="goods-pros-b clearfix">
+							<view class="b-label">拍照备注</view>
+							<view class="b-photo">
+								<view class="b-imageView" v-for="(imgItem,imgIdx) in item.remarkImages" :key="imgIdx" >
+									<image :src="imgItem" mode="aspectFill"  @click="previewImg(imgIdx,item.remarkImages)"></image>
+								</view>
 							</view>
 							</view>
 						</view>
 						</view>
-					</view>
-					<view class="goods-pros-b clearfix">
-						<view class="b-label">拍照备注</view>
-						<view class="b-photo">
-							<view class="text">{{pros.note ? pros.note : ''}}</view>
+						<view class="goods-pros-b clearfix" v-if="item.remark!=''">
+							<view class="b-label">拍照备注</view>
+							<view class="b-photo">
+								<view class="text">{{item.remark ? item.remark : ''}}</view>
+							</view>
 						</view>
 						</view>
 					</view>
 					</view>
+					<!-- 底部button -->
+					<order-button ref="orderButton" 
+								  :hanldData="item" 
+								  @buttonConfirm="handButtonConfirm">
+					</order-button>
 				</view>
 				</view>
-				<!-- 底部button -->
-				<order-button ref="orderButton" 
-							  :orderID="item.id" 
-							  @buttonConfirm="handButtonConfirm">
-				</order-button>
-			</view>
+				<!--加载loadding-->
+				<tui-loadmore :visible="loadding" :index="3" type="black"></tui-loadmore>
+				<tui-nomore :visible="!pullUpOn" bgcolor="#F7F7F7" :text='nomoreText'></tui-nomore>
+				<!--加载loadding-->
+			</scroll-view>	
 		</view>
 		</view>
 	</view>
 	</view>
 </template>
 </template>
 <script>
 <script>
-	import authorize from '@/common/config/authorize.js'
 	import { mapState,mapMutations } from 'vuex';
 	import { mapState,mapMutations } from 'vuex';
 	import orderButton from '@/components/cm-module/orderDetails/supplierRecorgButton.vue'	//底部按钮
 	import orderButton from '@/components/cm-module/orderDetails/supplierRecorgButton.vue'	//底部按钮
-	import { queryShoppingCartList,shoppingCartUpdate,shoppingCartDelete } from "@/api/cart.js" 
-	var isPreviewImg;
+	import tuiLoadmore from "@/components/tui-components/loadmore/loadmore"
+	import tuiNomore from "@/components/tui-components/nomore/nomore"
+	import cdCustom from "@/components/cm-custom/custom-d"
+	
+	var isPreviewImg 
 	export default{
 	export default{
 		components:{
 		components:{
-			orderButton
+			orderButton,
+			tuiLoadmore,
+			tuiNomore,
+			cdCustom
 		},
 		},
 		data(){
 		data(){
 			return{
 			return{
+				nvabarData: {//顶部自定义导航
+					showCapsule: 1, // 是否显示左上角图标   1表示显示    0表示不显示
+					title: '发货记录', // 导航栏 中间的标题
+				},
+				headerBtnPosi:	this.setHeaderBtnPosi(),//获取设备顶部胶囊高度
+				systeminfo:this.setSysteminfo(),		 //获取设备信息
 				CustomBar:this.CustomBar,// 顶部导航栏高度
 				CustomBar:this.CustomBar,// 顶部导航栏高度
 				isIphoneX:this.$store.state.isIphoneX,
 				isIphoneX:this.$store.state.isIphoneX,
-				userID:'',
 				shopOrderId:'',
 				shopOrderId:'',
-				alertType:'',
-				isStock:'',
-				lgisList:['ST465464646','SF656565656','YD12541545454'],
-				ramkesList:[
-					'https://img14.360buyimg.com/n7/jfs/t1/114670/38/7458/171560/5ec3b80fE5c5f15f9/549ceeeca82f0d02.jpg',
-					'https://img14.360buyimg.com/n7/jfs/t1/114670/38/7458/171560/5ec3b80fE5c5f15f9/549ceeeca82f0d02.jpg',
-					'https://img14.360buyimg.com/n7/jfs/t1/114670/38/7458/171560/5ec3b80fE5c5f15f9/549ceeeca82f0d02.jpg',
-					'https://img14.360buyimg.com/n7/jfs/t1/114670/38/7458/171560/5ec3b80fE5c5f15f9/549ceeeca82f0d02.jpg',
-					'https://img14.360buyimg.com/n7/jfs/t1/114670/38/7458/171560/5ec3b80fE5c5f15f9/549ceeeca82f0d02.jpg',
-					'https://img14.360buyimg.com/n7/jfs/t1/114670/38/7458/171560/5ec3b80fE5c5f15f9/549ceeeca82f0d02.jpg',
-					'https://img14.360buyimg.com/n7/jfs/t1/114670/38/7458/171560/5ec3b80fE5c5f15f9/549ceeeca82f0d02.jpg',
-					'https://img14.360buyimg.com/n7/jfs/t1/114670/38/7458/171560/5ec3b80fE5c5f15f9/549ceeeca82f0d02.jpg',
-					'https://img14.360buyimg.com/n7/jfs/t1/114670/38/7458/171560/5ec3b80fE5c5f15f9/549ceeeca82f0d02.jpg',
-					'https://img14.360buyimg.com/n7/jfs/t1/114670/38/7458/171560/5ec3b80fE5c5f15f9/549ceeeca82f0d02.jpg'
-				],
-				productsList:[
-					{
-						mainImage:'https://img14.360buyimg.com/n7/jfs/t1/114670/38/7458/171560/5ec3b80fE5c5f15f9/549ceeeca82f0d02.jpg',
-						name:'华西生物奥斯卡等级阿奥术大师大所打撒大啊萨达时代萨德',
-						productUnit:'盒',
-						productCode:'FXSW2131231231',
-						num:20,
-						id:233,
-						taxRate:5,
-						discount:5,
-						discountPrice:3,
-						productCount:6,
-						price:'200.00',
-						checked:false,
-						note:'华西生物奥斯卡等级阿奥术大师大所打撒大啊萨达时代萨德华西生物奥斯卡等级阿奥术大师大所打撒大啊萨达时代萨德'
-					},{
-						mainImage:'https://img14.360buyimg.com/n7/jfs/t1/114670/38/7458/171560/5ec3b80fE5c5f15f9/549ceeeca82f0d02.jpg',
-						name:'华西生物奥斯卡等级阿奥术大师大所打撒大啊萨达时代萨德',
-						productUnit:'盒',
-						productCode:'FXSW2131231231',
-						num:20,
-						id:255,
-						taxRate:5,
-						discount:5,
-						productCount:6,
-						discountPrice:3,
-						price:'200.00',
-						checked:false,
-						note:'华西生物奥斯卡等级阿奥术大师大所打撒大啊萨达时代萨德华西生物奥斯卡等级阿奥术大师大所打撒大啊萨达时代萨德'
-					}
-				],	//购物车的商品
-				setGoodData:'', //确认订单的商品
-				isCheckAll:false,//是否全选
-				isModallayer:false,
-				isDisabled: false, // 供应商/店铺全选是否禁用状态
-				isNoConfim:false,
+				lgisList:[],
+				ramkesList:[],
+				RecordList:[],	//发货记录
+				pageNum:1,
+				pageSize:10,
+				hasNextPage:false,
+				loadding: false,
+				pullUpOn: true,
+				pullFlag: true,
+				isEmpty:false,
+				nomoreText: '上拉显示更多',
+				scrollHeight: '',
+				windowHeight: '',
 			}
 			}
 		},
 		},
 		onLoad(option){
 		onLoad(option){
-			console.log(option)
-			// this.initGetCartGoodsList();
+			this.shopOrderId = option.shopOrderId
+			this.setScrollHeight()
+			this.initShopShipmentsRecord();
 		},
 		},
 		computed: {
 		computed: {
 			...mapState(['hasLogin','userInfo'])
 			...mapState(['hasLogin','userInfo'])
 		},
 		},
 		methods:{
 		methods:{
-			initGetCartGoodsList(){//初始化购物车 index:1
-				let params = {userID:this.userID}
-				queryShoppingCartList(params).then(response =>{
-					this.$store.commit('updateAllNum',response.data.cartQuantity)
-					const responseData = response.data
-					if(responseData.pageDate && responseData.pageDate.length > 0 ){
-						this.productsList = responseData.pageDate;
-						this.productsList.forEach((item,index) => {
-							let productsListLength = item.productsList.length,
-								invalidLength = 0;
-							item.productsList.forEach(pros => {
-								pros.shopID = item.shopID;
-								if(pros.validFlag == '3' ) {invalidLength++;}
-							})
-							item.isDisabled = invalidLength === productsListLength;
-						})
-					} else {
-						this.productsList = [];
+			initShopShipmentsRecord(){//初始化发货记录 index:1
+				this.ShopService.ShopShipmentsRecord({ shopOrderId : this.shopOrderId,pageSize:this.pageSize,pageNum:this.pageNum }).then(response =>{
+					console.log(response)
+					let responseData = response.data.logisticsBatchPage
+					if(responseData.results&&responseData.results.length > 0){
+						this.isEmpty = false
+						this.hasNextPage = responseData.hasNextPage
+						this.RecordList =responseData.results
+						this.pullFlag = false;
+						setTimeout(()=>{this.pullFlag = true;},500)
+						if(this.hasNextPage){
+							this.pullUpOn = false
+							this.nomoreText = '上拉显示更多'
+						}else{
+							if(this.RecordList.length < 2){
+								this.pullUpOn = true
+								this.loadding = false
+							}else{
+								this.pullUpOn = false
+								this.loadding = false
+								this.nomoreText = '已至底部'
+							}
+						}
+					}else{
+						this.isEmpty = true
 					}
 					}
 				}).catch(error =>{
 				}).catch(error =>{
 					this.$util.msg(error.msg,2000);
 					this.$util.msg(error.msg,2000);
 				})
 				})
 			},	
 			},	
-			previewImg (index) {//顶部商品图片预览
+			getOnReachBottomData(){
+				this.ShopService.ShopShipmentsRecord({ shopOrderId : this.shopOrderId,pageSize:this.pageSize,pageNum:this.pageNum+=1 }).then(response =>{
+					let responseData = response.data.logisticsBatchPage
+					if(responseData.results&&responseData.results.length > 0){
+						this.hasNextPage = responseData.hasNextPage
+						this.RecordList = this.RecordList.concat(responseData.results) 
+						this.pullFlag = false;// 防上拉暴滑
+						setTimeout(()=>{this.pullFlag = true;},500)
+						if(this.hasNextPage){
+							this.pullUpOn = false
+							this.nomoreText = '上拉显示更多'
+						}else{
+							this.pullUpOn = false
+							this.loadding = false
+							this.nomoreText = '已至底部'
+						}
+					}
+				}).catch(error =>{
+					this.$util.msg(error.msg,2000)
+				})
+			},
+			setHeaderBtnPosi(){// 获得胶囊按钮位置信息
+				let headerBtnPosi = uni.getMenuButtonBoundingClientRect();
+				return headerBtnPosi
+			},
+			setSysteminfo(){ // 获取设备信息
+				let systeminfo;
+				uni.getSystemInfo({
+					success: (res) => {
+						systeminfo = res
+					},
+				})
+				return systeminfo
+			},
+			setScrollHeight() {
+				const {windowHeight, pixelRatio} = wx.getSystemInfoSync();
+				this.windowHeight = windowHeight - 1;
+				this.scrollHeight = windowHeight - 1;
+			},
+			previewImg (index,previewUrls) {//顶部商品图片预览
 				isPreviewImg = true
 				isPreviewImg = true
-				let previewUrls = this.ramkesList
 				uni.previewImage({
 				uni.previewImage({
 					current: index, 	//图片索引
 					current: index, 	//图片索引
 					urls: previewUrls, //必须是http图片,本地图片无效
 					urls: previewUrls, //必须是http图片,本地图片无效
@@ -168,32 +200,63 @@
 				})
 				})
 			},
 			},
 			handButtonConfirm(data){//监听点击时间的按钮类型并执行...
 			handButtonConfirm(data){//监听点击时间的按钮类型并执行...
+				// console.log(data)
 				this.handShowAlert(data)
 				this.handShowAlert(data)
 			},
 			},
 			handShowAlert(data){//判断点击的按钮类型并执行...
 			handShowAlert(data){//判断点击的按钮类型并执行...
-				switch(data.type){
+				let hanldType = data.hanldType
+				let hanldData = data.hanldData
+				switch(hanldType){
 					case 'cancel':
 					case 'cancel':
-						this.handCenceConfirm()
+						this.handCenceConfirm(hanldData)
 						break
 						break
 					case 'add':
 					case 'add':
-						this.$api.navigateTo('/supplier/pages/deliver/add-logistics?orderID='+this.orderID)
+						let setProductList =[]
+						let repleArray =hanldData.logisticsRecordList
+						repleArray.forEach(el=>{
+							let elObject = {
+									orderProductId:el.orderProductID.toString(),
+									num:el.num.toString()
+							}
+							setProductList.push(elObject)
+						})
+						let data = {
+								logisticsBatchId:hanldData.id,
+								logisticsBatchData:setProductList
+							}
+						this.$api.navigateTo(`/supplier/pages/deliver/add-logistics?type=reple&shopOrderId=${this.shopOrderId}&data=${JSON.stringify(data)}`)
 						break
 						break
 				}
 				}
 			},
 			},
-			handCenceConfirm(){//取消订单
+			handCenceConfirm(data){//取消订单
 				this.$util.modal('提示','确定要撤销本次发货吗?撤销后需重新发货','确定','取消',true,() =>{
 				this.$util.modal('提示','确定要撤销本次发货吗?撤销后需重新发货','确定','取消',true,() =>{
-					cancelOrder({orderID:this.orderID}).then(response =>{
-						this.$util.msg(response.msg,2000,true,'success');
-						this.initOrderDetaileData()
+					this.ShopService.ShopCancelShipment({ logisticsBatchId : data.id }).then(response =>{
+						this.$util.msg('撤销成功',2000,true,'success');
+						setTimeout(()=>{
+							this.initShopShipmentsRecord()
+						},2000)
 					}).catch(error =>{
 					}).catch(error =>{
 						this.$util.msg(error.msg,2000)
 						this.$util.msg(error.msg,2000)
 					})
 					})
 				})
 				})
 			},
 			},
+			pageGoLink(){
+				this.$api.navigateTo('/supplier/pages/deliver/deliver-goods?shopOrderId='+this.shopOrderId)
+			},
+			hanldPageDetails(){
+				this.$api.navigateTo('/supplier/pages/order/order-details?shopOrderId='+this.shopOrderId)
+			}
 		},
 		},
 		onPullDownRefresh() {//下拉刷新
 		onPullDownRefresh() {//下拉刷新
-			// this.initGetCartGoodsList()
-			// uni.stopPullDownRefresh()
+			this.initShopShipmentsRecord()
+			uni.stopPullDownRefresh()
+		},
+		onReachBottom() {
+			if(this.hasNextPage){
+				this.loadding = true
+				this.pullUpOn = true
+				this.getOnReachBottomData()
+			}	
 		},
 		},
 		onShow(){
 		onShow(){
 			
 			
@@ -210,6 +273,39 @@
 		position: relative;
 		position: relative;
 		border-top: 1px solid #EBEBEB;
 		border-top: 1px solid #EBEBEB;
 	}
 	}
+	.record-content-empty{
+		width: 100%;
+		height: 100%;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		.record-container{
+			width: 400rpx;
+			height: auto;
+			image{
+				width: 400rpx;
+				height: 400rpx;
+				display: block;
+			}
+			.txt{
+				font-size: $font-size-28;
+				text-align: center;
+				color: #333;
+				line-height: 30rpx;
+				margin-bottom: 20rpx;
+			}
+			.btn{
+				width: 400rpx;
+				height: 80rpx;
+				background: $btn-confirm;
+				border-radius: 10rpx;
+				line-height: 80rpx;
+				font-size: $font-size-28;
+				text-align: center;
+				color: #FFFFFF;
+			}
+		}
+	}
 	.record-list{
 	.record-list{
 		width: 100%;
 		width: 100%;
 		height: auto;
 		height: auto;
@@ -376,6 +472,5 @@
 				}
 				}
 			}
 			}
 		}
 		}
-		
 	}
 	}
 </style>
 </style>

+ 1 - 1
supplier/pages/deliver/logistics-list.vue

@@ -2,7 +2,7 @@
 	<view class="container logistics clearfix"> 
 	<view class="container logistics clearfix"> 
 		<view class="list-cell-item" :class="selectID == item.id  ? 'active' : ''" v-for="(item,index) in companyList" :key="item.id" @click="checkLogics(item)">
 		<view class="list-cell-item" :class="selectID == item.id  ? 'active' : ''" v-for="(item,index) in companyList" :key="item.id" @click="checkLogics(item)">
 			<view class="item-name">{{item.label}}</view>
 			<view class="item-name">{{item.label}}</view>
-			<view class="item-icon"><text class="iconfont icon-gou"></text></view>
+			<view class="item-icon" v-show="selectID == item.id"><text class="iconfont icon-gou"></text></view>
 		</view>
 		</view>
 	</view>
 	</view>
 </template>
 </template>

+ 1 - 2
supplier/pages/order/order-details.vue

@@ -27,7 +27,7 @@
 					<view class="productlist" v-for="(pros,idx) in orderInfo.orderProductList" :key="idx">
 					<view class="productlist" v-for="(pros,idx) in orderInfo.orderProductList" :key="idx">
 						<view class="goods-pros-t" @click="hanldOperationConfim(pros)">
 						<view class="goods-pros-t" @click="hanldOperationConfim(pros)">
 							<view class="pros-left">
 							<view class="pros-left">
-								<view class="pros-img"><image :src="pros.productImage" alt="" /></view>
+								<view class="pros-img"><image :src="pros.productImage" alt="" mode="aspectFill"/></view>
 							</view>
 							</view>
 							<view class="pros-product">
 							<view class="pros-product">
 								<view class="producttitle">{{pros.aliasName ? pros.aliasName : ''}}</view>
 								<view class="producttitle">{{pros.aliasName ? pros.aliasName : ''}}</view>
@@ -228,7 +228,6 @@
 
 
 <style lang="scss">
 <style lang="scss">
 	page {
 	page {
-		height: 100%;
 		background:#F7F7F7;
 		background:#F7F7F7;
 	}
 	}
 	.details{
 	.details{

+ 6 - 2
supplier/pages/order/order-service-details.vue

@@ -1,5 +1,5 @@
 <template>
 <template>
-	<view class="container details clearfix" :style="{paddingBottom :isIphoneX ? (130+68)+'rpx' : '130rpx'}">
+	<view class="details clearfix" :style="{paddingBottom :isIphoneX ? (130+68)+'rpx' : '130rpx'}">
 		<cu-custom :navbar-data='nvabarData'></cu-custom>
 		<cu-custom :navbar-data='nvabarData'></cu-custom>
 		<view class="container-details" :style="{paddingTop:CustomBar+'px'}" v-show="isRequest">
 		<view class="container-details" :style="{paddingTop:CustomBar+'px'}" v-show="isRequest">
 			<!-- 订单信息 -->
 			<!-- 订单信息 -->
@@ -27,7 +27,7 @@
 					<view class="productlist" v-for="(pros,idx) in orderInfo.orderProductList" :key="idx">
 					<view class="productlist" v-for="(pros,idx) in orderInfo.orderProductList" :key="idx">
 						<view class="goods-pros-t" @click="hanldOperationConfim(pros)">
 						<view class="goods-pros-t" @click="hanldOperationConfim(pros)">
 							<view class="pros-left">
 							<view class="pros-left">
-								<view class="pros-img"><image :src="pros.productImage" alt="" /></view>
+								<view class="pros-img"><image :src="pros.productImage" alt="" mode="aspectFill" /></view>
 							</view>
 							</view>
 							<view class="pros-product">
 							<view class="pros-product">
 								<view class="producttitle">{{pros.aliasName ? pros.aliasName : ''}}</view>
 								<view class="producttitle">{{pros.aliasName ? pros.aliasName : ''}}</view>
@@ -448,6 +448,10 @@
 		bottom: 0;
 		bottom: 0;
 		left: 0;
 		left: 0;
 		background: #FFFFFF;
 		background: #FFFFFF;
+		-webkit-border-radius: 20rpx 20rpx 0 0;
+		border-radius: 20rpx 20rpx 0 0;
+		-webkit-box-shadow: 0px 3px 10px rgba(51, 51, 51, 0.5);
+		box-shadow: 0px 3px 10px rgba(51, 51, 51, 0.5);
 		.button-content{
 		.button-content{
 			width: 702rpx;
 			width: 702rpx;
 			padding:0 24rpx;
 			padding:0 24rpx;