liukang 1 year ago
parent
commit
07d2ee7d7f
100 changed files with 1200 additions and 289 deletions
  1. 13 4
      App.vue
  2. 14 17
      manifest.json
  3. 16 4
      pages.json
  4. 156 37
      pages/good/add.vue
  5. 18 14
      pages/good/setting.vue
  6. 8 5
      pages/good/spec.vue
  7. 28 14
      pages/mine/message/index.vue
  8. 6 5
      pages/mine/service/address/add.vue
  9. 11 4
      pages/mine/service/feed/feed.vue
  10. 32 11
      pages/mine/service/purOrder/detail.vue
  11. 13 6
      pages/mine/service/purOrder/list.vue
  12. 28 0
      pages/mine/service/purOrder/msg.vue
  13. 1 1
      pages/mine/service/setting/account_info.vue
  14. 5 1
      pages/mine/service/setting/edit_pwd.vue
  15. 320 0
      pages/mine/service/setting/log_off.vue
  16. 29 1
      pages/mine/service/setting/setting.vue
  17. 4 11
      pages/mine/wallet/withdraw.vue
  18. 22 4
      pages/order/list.vue
  19. 5 1
      pages/order/refund.vue
  20. 9 3
      pages/order/refundDetail.vue
  21. 33 17
      pages/release/ocean/ocean.vue
  22. 32 16
      pages/release/production/production.vue
  23. 29 16
      pages/release/purchase/purchase.vue
  24. 35 17
      pages/release/waixie/waixie.vue
  25. 133 71
      pages/tabbar/index/index.vue
  26. 145 4
      pages/tabbar/mine/mine.vue
  27. BIN
      static/images/mine/icon_detele.png
  28. BIN
      static/images/mine/icon_edit.png
  29. BIN
      static/images/mine/logo.png
  30. BIN
      static/images/no_list.png
  31. 1 1
      static/js/api.js
  32. BIN
      static/logo.png
  33. 1 1
      unpackage/cache/app-ios-debug.json
  34. 13 0
      unpackage/cache/appleConfig.ini
  35. 3 3
      unpackage/cache/certdataios
  36. 1 0
      unpackage/cache/uts_custom_ios/app-ios-debug.json
  37. BIN
      unpackage/cache/wgt/__UNI__82416DD/.manifest/apple-mobileprovision.mobileprovision
  38. BIN
      unpackage/cache/wgt/__UNI__82416DD/.manifest/apple-private.p12
  39. BIN
      unpackage/cache/wgt/__UNI__82416DD/.manifest/appstore.png
  40. BIN
      unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-ipad-app.png
  41. BIN
      unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-ipad-app@2x.png
  42. BIN
      unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-ipad-notification.png
  43. BIN
      unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-ipad-notification@2x.png
  44. BIN
      unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-ipad-proapp@2x.png
  45. BIN
      unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-ipad-settings.png
  46. BIN
      unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-ipad-settings@2x.png
  47. BIN
      unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-ipad-spotlight.png
  48. BIN
      unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-ipad-spotlight@2x.png
  49. BIN
      unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-iphone-app@2x.png
  50. BIN
      unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-iphone-app@3x.png
  51. BIN
      unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-iphone-notification@2x.png
  52. BIN
      unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-iphone-notification@3x.png
  53. BIN
      unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-iphone-settings@2x.png
  54. BIN
      unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-iphone-settings@3x.png
  55. BIN
      unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-iphone-spotlight@2x.png
  56. BIN
      unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-iphone-spotlight@3x.png
  57. 0 0
      unpackage/cache/wgt/__UNI__82416DD/__uniappchooselocation.js
  58. BIN
      unpackage/cache/wgt/__UNI__82416DD/__uniapperror.png
  59. 0 0
      unpackage/cache/wgt/__UNI__82416DD/__uniappes6.js
  60. 0 0
      unpackage/cache/wgt/__UNI__82416DD/__uniappopenlocation.js
  61. 0 0
      unpackage/cache/wgt/__UNI__82416DD/__uniapppicker.js
  62. 6 0
      unpackage/cache/wgt/__UNI__82416DD/__uniappquill.js
  63. 0 0
      unpackage/cache/wgt/__UNI__82416DD/__uniappquillimageresize.js
  64. 0 0
      unpackage/cache/wgt/__UNI__82416DD/__uniappscan.js
  65. BIN
      unpackage/cache/wgt/__UNI__82416DD/__uniappsuccess.png
  66. 25 0
      unpackage/cache/wgt/__UNI__82416DD/__uniappview.html
  67. 4 0
      unpackage/cache/wgt/__UNI__82416DD/app-config-service.js
  68. 1 0
      unpackage/cache/wgt/__UNI__82416DD/app-config.js
  69. 0 0
      unpackage/cache/wgt/__UNI__82416DD/app-service.js
  70. 0 0
      unpackage/cache/wgt/__UNI__82416DD/app-view.js
  71. 0 0
      unpackage/cache/wgt/__UNI__82416DD/manifest.json
  72. BIN
      unpackage/cache/wgt/__UNI__82416DD/static/images/Camera.png
  73. BIN
      unpackage/cache/wgt/__UNI__82416DD/static/images/Emoji.png
  74. BIN
      unpackage/cache/wgt/__UNI__82416DD/static/images/ad.png
  75. BIN
      unpackage/cache/wgt/__UNI__82416DD/static/images/camora.png
  76. BIN
      unpackage/cache/wgt/__UNI__82416DD/static/images/common/add_icon.png
  77. BIN
      unpackage/cache/wgt/__UNI__82416DD/static/images/common/add_icon2.png
  78. BIN
      unpackage/cache/wgt/__UNI__82416DD/static/images/common/biyanjing.png
  79. BIN
      unpackage/cache/wgt/__UNI__82416DD/static/images/common/check.png
  80. BIN
      unpackage/cache/wgt/__UNI__82416DD/static/images/common/close.png
  81. BIN
      unpackage/cache/wgt/__UNI__82416DD/static/images/common/close_icon.png
  82. BIN
      unpackage/cache/wgt/__UNI__82416DD/static/images/common/copy.png
  83. BIN
      unpackage/cache/wgt/__UNI__82416DD/static/images/common/delete.png
  84. BIN
      unpackage/cache/wgt/__UNI__82416DD/static/images/common/down2.png
  85. BIN
      unpackage/cache/wgt/__UNI__82416DD/static/images/common/down_icon.png
  86. BIN
      unpackage/cache/wgt/__UNI__82416DD/static/images/common/edit_icon.png
  87. BIN
      unpackage/cache/wgt/__UNI__82416DD/static/images/common/image_add.png
  88. BIN
      unpackage/cache/wgt/__UNI__82416DD/static/images/common/img_bq1.png
  89. BIN
      unpackage/cache/wgt/__UNI__82416DD/static/images/common/img_bq2.png
  90. BIN
      unpackage/cache/wgt/__UNI__82416DD/static/images/common/logo.png
  91. BIN
      unpackage/cache/wgt/__UNI__82416DD/static/images/common/order1.png
  92. BIN
      unpackage/cache/wgt/__UNI__82416DD/static/images/common/order2.png
  93. BIN
      unpackage/cache/wgt/__UNI__82416DD/static/images/common/order3.png
  94. BIN
      unpackage/cache/wgt/__UNI__82416DD/static/images/common/order4.png
  95. BIN
      unpackage/cache/wgt/__UNI__82416DD/static/images/common/popu_close.png
  96. BIN
      unpackage/cache/wgt/__UNI__82416DD/static/images/common/saoyisao.png
  97. BIN
      unpackage/cache/wgt/__UNI__82416DD/static/images/common/select1.png
  98. BIN
      unpackage/cache/wgt/__UNI__82416DD/static/images/common/select2.png
  99. BIN
      unpackage/cache/wgt/__UNI__82416DD/static/images/common/sort_icon.png
  100. BIN
      unpackage/cache/wgt/__UNI__82416DD/static/images/common/tele.png

+ 13 - 4
App.vue

@@ -198,14 +198,14 @@
 				},
 			
 				onClosed() {
-					uni.showToast({
+					/* uni.showToast({
 						title: "网络已断开",
 						icon: "none",
 						duration: 2000,
 					});
 					uni.redirectTo({
 						url: "/pages/login/codeLogin/codeLogin",
-					});
+					}); */
 					me.globalData.conn.closed = true;
 					WebIM.conn.close();
 				},
@@ -456,11 +456,11 @@
 					if (error.type == "socket_error") {
 						///sendMsgError
 						console.log("socket_errorsocket_error", error);
-						uni.showToast({
+						/* uni.showToast({
 							title: "网络已断开",
 							icon: "none",
 							duration: 2000,
-						});
+						}); */
 						disp.fire("em.error.sendMsgErr", error);
 					}
 				},
@@ -552,4 +552,13 @@
 		white-space: nowrap;
 		text-overflow: ellipsis;
 	}
+	.text_hide2 {
+		text-overflow: -o-ellipsis-lastline;
+		overflow: hidden;				//溢出内容隐藏
+		text-overflow: ellipsis;		//文本溢出部分用省略号表示
+		display: -webkit-box;			//特别显示模式
+		-webkit-line-clamp: 2;			//行数
+		line-clamp: 2;					
+		-webkit-box-orient: vertical;	//盒子中内容竖直排列
+	}
 </style>

+ 14 - 17
manifest.json

@@ -2,8 +2,8 @@
     "name" : "船百知商家端",
     "appid" : "__UNI__82416DD",
     "description" : "",
-    "versionName" : "1.0.1",
-    "versionCode" : 100030900,
+    "versionName" : "1.7.9",
+    "versionCode" : 1,
     "transformPx" : false,
     /* 5+App特有相关 */
     "app-plus" : {
@@ -55,8 +55,8 @@
                 "dSYMs" : false,
                 "idfa" : false,
                 "privacyDescription" : {
-                    "NSPhotoLibraryUsageDescription" : "注册时选择图片作为头像",
-                    "NSCameraUsageDescription" : "拍照反馈问题"
+                    "NSPhotoLibraryUsageDescription" : "注册时选择图片作为头像,发布信息等",
+                    "NSCameraUsageDescription" : "拍照反馈问题,更换用户头像等"
                 },
                 "urlschemewhitelist" : [ "baidumap", "iosamap", "qqmap" ]
             },
@@ -78,9 +78,6 @@
                         "UniversalLinks" : ""
                     }
                 },
-                "push" : {
-                    "unipush" : {}
-                },
                 "ad" : {}
             },
             "icons" : {
@@ -92,6 +89,16 @@
                 },
                 "ios" : {
                     "appstore" : "unpackage/res/icons/1024x1024.png",
+                    "iphone" : {
+                        "app@2x" : "unpackage/res/icons/120x120.png",
+                        "app@3x" : "unpackage/res/icons/180x180.png",
+                        "notification@2x" : "unpackage/res/icons/40x40.png",
+                        "notification@3x" : "unpackage/res/icons/60x60.png",
+                        "settings@2x" : "unpackage/res/icons/58x58.png",
+                        "settings@3x" : "unpackage/res/icons/87x87.png",
+                        "spotlight@2x" : "unpackage/res/icons/80x80.png",
+                        "spotlight@3x" : "unpackage/res/icons/120x120.png"
+                    },
                     "ipad" : {
                         "app" : "unpackage/res/icons/76x76.png",
                         "app@2x" : "unpackage/res/icons/152x152.png",
@@ -102,16 +109,6 @@
                         "settings@2x" : "unpackage/res/icons/58x58.png",
                         "spotlight" : "unpackage/res/icons/40x40.png",
                         "spotlight@2x" : "unpackage/res/icons/80x80.png"
-                    },
-                    "iphone" : {
-                        "app@2x" : "unpackage/res/icons/120x120.png",
-                        "app@3x" : "unpackage/res/icons/180x180.png",
-                        "notification@2x" : "unpackage/res/icons/40x40.png",
-                        "notification@3x" : "unpackage/res/icons/60x60.png",
-                        "settings@2x" : "unpackage/res/icons/58x58.png",
-                        "settings@3x" : "unpackage/res/icons/87x87.png",
-                        "spotlight@2x" : "unpackage/res/icons/80x80.png",
-                        "spotlight@3x" : "unpackage/res/icons/120x120.png"
                     }
                 }
             }

+ 16 - 4
pages.json

@@ -7,15 +7,16 @@
 			"path": "pages/tabbar/index/index",
 			"style": {
 				"navigationBarTitleText": "商城",
-				"navigationStyle": "custom",
-				"enablePullDownRefresh": true
+				"navigationStyle": "custom"
+				// "enablePullDownRefresh": true
 			}
 		},
 		{
 			"path": "pages/tabbar/mine/mine",
 			"style": {
 				"navigationBarTitleText": "我的",
-				"navigationStyle": "custom"
+				"navigationStyle": "custom",
+				"enablePullDownRefresh": true
 			}
 		}
 	    ,{
@@ -195,7 +196,8 @@
 		    "style" :                                                                                    
 		    {
 		        "navigationBarTitleText": "采购订单",
-				"navigationBarBackgroundColor": "#fff"
+				"navigationBarBackgroundColor": "#fff",
+				"enablePullDownRefresh": true
 		    }
 		    
 		},
@@ -257,6 +259,16 @@
 		    
 		},
 		{
+		    "path" : "pages/mine/service/setting/log_off",
+		    "style" :                                                                                    
+		    {
+		        "navigationBarTitleText": "账号注销",
+				// "navigationStyle": "custom" 
+				"navigationBarBackgroundColor": "#fff"
+		    }
+		    
+		},
+		{
 		    "path" : "pages/mine/service/setting/about",
 		    "style" :                                                                                    
 		    {

+ 156 - 37
pages/good/add.vue

@@ -1,12 +1,16 @@
 <template>
 	<view class="content">
+		<view class="top hflex acenter jcenter" v-if="data.examine ==0 || data.examine == 2">
+			<view class="info" v-if="data.examine == 0">审核中</view>
+			<view class="info" v-if="data.examine == 2">{{data.examine_cause}}</view>
+		</view>
 		<view class="box">
 			<view class="title requ">图片和标题</view>
 			<view class="upload">
-				<u-upload :fileList="fileList1" @afterRead="afterRead" @delete="deletePic" name="1" multiple :maxCount="1" width="166rpx" height="166rpx">
+				<u-upload :fileList="fileList1" @afterRead="afterRead" @delete="deletePic" name="1" multiple :maxCount="9" width="166rpx" height="166rpx">
 				</u-upload>
 			</view>
-			<u-textarea v-model="name" border="none" confirmType="done" placeholder="标题示例:【现货】夏季新款 韩版碎花雪纺连衣裙" count maxlength="100"></u-textarea>
+			<u-textarea v-model="name" border="none" confirmType="done" placeholder="请输入商品名称" count maxlength="100"></u-textarea>
 		</view>
 		<view class="box">
 			<view class="box_item hflex acenter jbetween">
@@ -35,12 +39,17 @@
 			</view>
 		</view>
 		<view class="box">
-			<view class="box_item hflex acenter jbetween">
-				<view class="box_left">物流配送</view>
-				<view class="hflex acenter">
-					<view class="box_right">快递发货</view>
-					<u-icon name="arrow-right" size="12" color="#ACACAC"></u-icon>
-				</view>
+			<view class="box_item hflex acenter jbetween" @click="show_delivery = true">
+				<view class="box_left requ">物流配送</view>
+				<picker mode="selector" :range="array" :value="delivery_index" :range-key="name" @cancel="close" @change="selectDelivery">
+					<view class="hflex acenter">
+					<!-- <view class="box_right">快递发货</view>
+					 -->
+					<!-- <u-picker :show="show_delivery" :columns="deliveryList" :keyName="name" @cancel="close" @confirm="selectDelivery"></u-picker> -->
+						<span class="box_right">{{delivery_name ? delivery_name :'请选择'}}</span>
+						<u-icon name="arrow-right" size="12" color="#ACACAC"></u-icon>
+					</view>
+				</picker>
 			</view>
 		</view>
 		<view class="box">
@@ -57,12 +66,7 @@
 						<video :src="item.url" direction="0" class="img" v-if="item.type == 'video'"></video>
 						<image src="/static/images/common/popu_close.png" class="close_icon" @click="deletePic2(index)"></image>
 					</view>
-					<!-- <image :src="item.url" class="img" mode="aspectFill" v-if="item.type == 'image'"></image>
-					<video :src="item.url" direction="0" class="img" v-if="item.type == 'video'"></video> -->
 				</block>
-				<!-- <u-upload :fileList="fileList2" @afterRead="afterRead" @delete="deletePic" name="2" multiple :maxCount="9" width="200rpx" height="200rpx">
-					<image src="/static/images/common/upload_img.png" class="upload_img2"></image>
-				</u-upload> -->
 				<image src="/static/images/common/upload_img.png" class="img"  @click="choose"></image>
 			</view>
 		</view>
@@ -152,6 +156,11 @@
 				right_active: -1,
 				name: '',
 				content: '',
+				deliveryList: [],
+				show_delivery: false,
+				delivery_index: -1,
+				delivery_id: '',
+				delivery_name: '',
 				radioList: [
 					{
 						name: '上架售卖'
@@ -164,7 +173,7 @@
 				items: '',
 				cover: '',
 				slider: '',
-				content: '',
+				// content: '',
 				status: 1,
 				cateids: '',
 				cate: '',
@@ -176,7 +185,9 @@
 				data: [],
 				spect: '',
 				data_specs: '',
-				show_choose: false
+				show_choose: false,
+				data: {},
+				array: [],
 			}
 		},
 		onLoad(options) {
@@ -184,12 +195,16 @@
 			if(options.id) {
 				that.id = options.id
 				that.getData()
+				uni.setNavigationBarTitle({
+					title: '编辑商品'
+				})
 			}
 			if(options.data) {
 				that.data = JSON.parse(options.data)
 				that.spect = options.spec
 				that.items = that.data
 				that.spec = that.spect
+				that.stock_total = 0
 				for(var i=0;i<that.items.length;i++) {
 					that.stock_total += Number(that.items[i].stock_total)
 					if(that.items[i].status) {
@@ -202,6 +217,7 @@
 			}
 			
 			that.getCate()
+			that.getDelivery()
 		},
 		onShow() {
 			var data = uni.getStorageSync('specData')
@@ -232,7 +248,8 @@
 					}
 				}, function(res) {
 					if(res.code == 1) {
-						console.log(res);
+						// console.log('商品详情',res);
+						that.data = res.data
 						that.data_specs = res.data.data_specs
 						that.cover = res.data.cover
 						var imgList = res.data.cover.split('|')
@@ -244,33 +261,64 @@
 						}
 						that.name = res.data.name
 						that.items = res.data.item
+						// console.log('----------------',that.items.length);
 						that.cateids = res.data.cateids
 						that.cate = res.data.cate_name[0].name
 						that.content = res.data.content
 						that.slider = res.data.slider
-						imgList = res.data.slider.split('|')
-						for(var i=0;i<imgList.length;i++) {
+						if(that.slider && that.slider.includes('|')) {
+							imgList = res.data.slider.split('|')
+							for(var i=0;i<imgList.length;i++) {
+								let type = ''
+								let temp = imgList[i].substring(imgList[i].length - 3,imgList[i].length)
+								if(type[1] == 'mp4') {
+									type='video'
+								} else {
+									type='image'
+								}
+								var data = {
+									url: imgList[i],
+									type:type
+								}
+								that.fileList2.push(data)
+							}
+							// console.log(that.fileList2);
+						} else if(that.slider && !that.slider.includes('|')) {
+							let type = ''
+							if(that.slider == 'mp4') {
+								type='video'
+							} else {
+								type='image'
+							}
 							var data = {
-								url: imgList[i]
+								url: that.slider,
+								type:type
 							}
 							that.fileList2.push(data)
 						}
+						
 						that.status = res.data.status
 						that.stock_total = res.data.stock_total
-						that.price_selling = res.data.price_selling
+						if(res.data.postagetype) {
+							that.delivery_name = res.data.postagetype.name
+							that.delivery_id = res.data.postagetype.id
+						}
+						// console.log('配送方式',that.delivery_name);
+						// that.price_selling = res.data.price_selling
 						if(that.status == 1) {
 							that.active = 0
 						} else {
 							that.active = 1
 						}
+						that.spec = JSON.parse(that.data.data_specs)
 						if(that.data.length!==0) {
-							that.items = that.data
-							that.spec = that.spect
+							// that.items = that.data
 							for(var i=0;i<that.items.length;i++) {
 								that.stock_total += Number(that.items[i].stock_total)
 							}
 							that.price_selling = that.items[0].price_selling
 						}
+						
 					}
 				})
 			},
@@ -283,6 +331,21 @@
 					}
 				})
 			},
+			getDelivery() {
+				$api.req({
+					url: '/data/api.PostageType/postagetype',
+				}, function(res) {
+					if(res.code == 1) {
+						that.array = []
+						for(var i=0;i<res.data.length;i++) {
+							that.array.push(res.data[i].name)
+						}
+						that.deliveryList = res.data
+						// that.deliveryList = 
+						console.log(that.deliveryList);
+					}
+				})
+			},
 			// 删除图片
 			deletePic(event) {
 				this[`fileList${event.name}`].splice(event.index, 1)
@@ -358,16 +421,21 @@
 				}
 			},
 			addSpec() {
-				if(that.id) {
+				/* if(that.id) {
 					return
-				}
-				$api.jump('/pages/good/spec?items=' + that.data_specs+'&good_id=' + that.id)
+				} */
+				console.log('that.data_specs',that.data_specs);
+				var list = uni.getStorageSync('spectitle') ? uni.getStorageSync('spectitle') : that.data_specs
+				console.log('list = ',list);
+				$api.jump('/pages/good/spec?items=' + list +'&good_id=' + that.id)
 			},
 			toSetting() {
-				var data = uni.getStorageSync('specData')
-				var list = uni.getStorageSync('spectitle')
+				var data = uni.getStorageSync('specData') ? uni.getStorageSync('specData') : JSON.stringify(that.items)
+				console.log('data = ',data);
+				var list = uni.getStorageSync('spectitle') ? uni.getStorageSync('spectitle') : that.data_specs
+				
 				if(that.id) {
-					$api.jump('/pages/good/setting?good_id=' + that.id + '&list=' + JSON.stringify(that.items) + '&data=' +that.data_specs)
+					$api.jump('/pages/good/setting?good_id=' + that.id + '&list=' + data + '&data=' + list)
 				} else {
 					$api.jump('/pages/good/setting?list=' + data + '&data=' +list)
 				}
@@ -382,6 +450,16 @@
 			selectItem(index) {
 				that.right_active = index
 			},
+			selectDelivery(e) {
+				that.delivery_index = e.detail.value
+				that.delivery_name = that.deliveryList[that.delivery_index].name
+				that.delivery_id = that.deliveryList[that.delivery_index].id
+				/* that.delivery_index = e.indexs[0]
+				console.log(that.deliveryList[0][that.delivery_index].name);
+				that.delivery_name = that.deliveryList[0][that.delivery_index].name
+				that.delivery_id = that.deliveryList[] */
+				that.close()
+			}, 
 			sure() {
 				if(that.left_active == -1 && that.right_active == -1) {
 					$api.info("请先选择类目")
@@ -397,13 +475,23 @@
 				that.close()
 			},
 			close() {
+				that.show_delivery = false
 				that.cate_show = false
 				that.show_choose = false
 			},
 			create() {
+				console.log(that.spec);
+				if(!that.spec) {
+					$api.info('请先填写规格')
+					return
+				}
+				if(that.delivery_name == '') {
+					$api.info('请选择物流配送')
+					return
+				}
+				
 				uni.removeStorageSync("specData")
 				uni.removeStorageSync("spectitle")
-				console.log('总库存',that.stock_total);
 				for(var i=0;i<that.fileList1.length;i++) {
 					that.cover += that.fileList1[i].url + '|'
 				}
@@ -412,7 +500,6 @@
 				}
 				that.cover = that.cover.substr(0,that.cover.length - 1)
 				that.slider = that.slider.substr(0,that.slider.length - 1)
-				console.log(that.spec);
 				$api.req({
 					url: '/data/api.business.Goods/goods_add',
 					method: 'POST',
@@ -426,17 +513,25 @@
 						price_selling: that.price_selling,
 						status: that.status,
 						spec: JSON.stringify(that.spec),
-						items: JSON.stringify(that.items)
+						items: JSON.stringify(that.items),
+						postagetype: that.delivery_id
 					}
 				}, function(res) {
 					if(res.code == 1) {
-						$api,info(res.info)
+						$api.info('商品发布成功,请耐心等待后端审核')
 						
-						$api.jump('/pages/tabbar/index/index',2)
+						setTimeout(() => {
+							$api.jump('/pages/tabbar/index/index',2)
+						},1000)
 					}
 				})
 			},
 			save() {
+				
+				if(that.delivery_name == '') {
+					$api.info('请选择物流配送')
+					return
+				}
 				that.cover = ""
 				that.slider = ""
 				uni.removeStorageSync("specData")
@@ -462,6 +557,12 @@
 				}
 				that.cover = that.cover.substr(0,that.cover.length - 1)
 				that.slider = that.slider.substr(0,that.slider.length - 1)
+				
+				// that.spec = JSON.parse(that.data.data_specs)
+				if(!that.spec) {
+					$api.info('请先填写规格')
+					return
+				}
 				$api.req({
 					url: '/data/api.business.Goods/goods_edit',
 					method: 'POST',
@@ -475,13 +576,21 @@
 						stock_total: that.stock_total,
 						price_selling: that.price_selling,
 						status: that.status,
-						items: JSON.stringify(items)
+						items: JSON.stringify(items),
+						spec: JSON.stringify(that.spec),
+						postagetype: that.delivery_id
 					}
 				}, function(res) {
+					console.log(res,that.id,'=====================');
 					if(res.code == 1) {
-						$api,info(res.info)
-						
-						$api.jump('/pages/tabbar/index/index',2)
+						if(that.id) {
+							$api.info('商品编辑成功,请耐心等待后端审核')
+						} else {
+							$api.info('商品发布成功,请耐心等待后端审核')
+						}
+						setTimeout(() => {
+							$api.jump('/pages/tabbar/index/index',2)
+						},1000)
 					}
 				})
 			},
@@ -593,6 +702,16 @@
 <style lang="scss" scoped>
 	.content::v-deep {
 		background: #F5F5F5;
+		.top {
+			width: 100%;
+			padding: 20rpx;
+			// height: 60rpx;
+			background: #ffaf1a;
+			.info {
+				font-size: 24rpx;
+				color: #fff;
+			}
+		}
 		.box {
 			width: 100%;
 			background: #FFFFFF;

+ 18 - 14
pages/good/setting.vue

@@ -4,7 +4,7 @@
 			<view class="title">共{{pageList.length}}个型号:{{title}}</view>
 			<block v-for="(item,index) in pageList" :key="index">
 				<view class="box">
-					<view class="box_title cell">{{titleList[index].title}}</view>
+					<view class="box_title cell" v-if="titleList.length > 0">{{titleList[index].title}}</view>
 					<view class="hflex acenter jbetween cell">
 						<view class="left">价格</view>
 						<u-input v-model="item.price_selling" type="digit" border="none" placeholder="请填写商品价格" @blur="moneyinput(index)"></u-input>
@@ -51,6 +51,7 @@
 		},
 		onLoad(options) {
 			that = this
+			console.log('options',options);
 			if(options.data) {
 				that.specList = JSON.parse(options.data)
 				console.log('that.specList',that.specList);
@@ -69,18 +70,20 @@
 				var list = []
 				var list2 = []
 				console.log(that.pageList);
-				for(var i=0;i<that.specList.length;i++) {
-					that.title += that.specList[i].name + '、'
-					for(var j=0;j<that.specList[i].list.length;j++) {
-						var data = {
-							type: i,
-							name: that.specList[i].list[j].name,
-							group: that.specList[i].list[j].group,
+				if(that.specList.length > 0) {
+					for(var i=0;i<that.specList.length;i++) {
+						that.title += that.specList[i].name + '、'
+						for(var j=0;j<that.specList[i].list.length;j++) {
+							var data = {
+								type: i,
+								name: that.specList[i].list[j].name,
+								group: that.specList[i].list[j].group,
+							}
+							list.push(data)
 						}
-						list.push(data)
 					}
+					that.title = that.title.substr(0,that.title.length - 1)
 				}
-				that.title = that.title.substr(0,that.title.length - 1)
 				if(that.specList.length == 2) {
 					for(var i=0;i<list.length;i++) {
 						for(var j=i+1;j<list.length;j++) {
@@ -94,7 +97,7 @@
 									stock_total : '',
 									price_selling : '',
 									sku_image : '',
-									status : false
+									status : true
 								}
 								list2.push(data)
 							}
@@ -112,7 +115,7 @@
 							stock_total : '',
 							price_selling : '',
 							sku_image : '',
-							status : false
+							status : true
 						}
 						list2.push(data)
 					}
@@ -130,7 +133,7 @@
 									stock_total : '',
 									price_selling : '',
 									sku_image : '',
-									status : false
+									status : true
 								}
 								list2.push(data)
 							}
@@ -155,6 +158,7 @@
 					}
 					that.pageList = plist
 				}
+				console.log('titleList:',that.titleList);
 			},
 			uploadImg(index) {
 				uni.chooseImage({
@@ -199,7 +203,7 @@
 			save() {
 				console.log(that.pageList);
 				for(var i=0;i<that.pageList.length;i++) {
-					if(!that.pageList[i].price_selling || !that.pageList[i].stock_total || !that.pageList[i].sku_image) {
+					if(!that.pageList[i].price_selling || !that.pageList[i].stock_total) {
 						$api.info("必填项不能为空")
 						return
 					}

+ 8 - 5
pages/good/spec.vue

@@ -38,7 +38,7 @@
 		</view>	
 		<u-popup :show="show" round="10" mode="center" @close="close" :safeAreaInsetBottom="false">
 			<view class="popu">
-				<view class="popu_title">添加规格分类</view>	
+				<view class="popu_title">{{ editIndex == -1 ? '添加' : '修改'}}规格分类</view>	
 				<u-input v-model="name" border="none" maxlength="15" shape="circle" placeholder="请输入"></u-input>
 				<view class="hflex acenter jcenter btn_group">
 					<view class="left_btn" @click="close">取消</view>	
@@ -60,7 +60,7 @@
 				show: false,
 				name: '',
 				edit: false,
-				editIndex: 0,
+				editIndex: -1,
 				good_id: '',
 			}
 		},
@@ -76,8 +76,6 @@
 		methods: {
 			getData(data) {
 				var data = JSON.parse(data)
-				console.log(data);
-				
 				that.specList = data
 			},
 			open(index) {
@@ -86,6 +84,7 @@
 				} else {
 					that.edit = true
 					that.editIndex = index
+					that.name = that.specList[that.editIndex].name
 				}
 				that.show = true
 			},
@@ -125,6 +124,10 @@
 				$api.jump(url)
 			},
 			next() {
+				if(that.specList.length <= 0) {
+					$api.info('请先填写至少一个规格')
+					return
+				}
 				$api.jump('/pages/good/setting?data=' + JSON.stringify(that.specList) + '&good_id=' + that.good_id,1)
 			}
 		},
@@ -153,7 +156,7 @@
 					padding: 24rpx 0;
 					border-bottom: 1rpx solid #F5F5F5;
 					.name {
-						width: 500rpx;
+						max-width: 500rpx;
 						font-size: 30rpx;
 						font-weight: 500;
 						color: #222222;

+ 28 - 14
pages/mine/message/index.vue

@@ -2,8 +2,12 @@
 	<view class="content">
 		<view class="list">
 			<view class="list_item hflex acenter" @click="toList(1)">
-				<image class="item_img" src="/static/images/mine/notice.png" mode="aspectFill"></image>
-				<view class="number" v-if="notice_num > 0">{{notice_num}}</view>
+				<div class="item_img">
+					<image src="/static/images/mine/notice.png" mode="aspectFill" style="width: 100%;height: 100%;"></image>
+					<u-badge max="99" :absolute="true" :offset="[1,1]" :value="message_count" v-if="message_count>0"></u-badge>
+				</div>
+				
+				<!-- <view class="number" v-if="message_count > 0">{{message_count}}</view> -->
 				<view class="item_right">
 					<view class="hflex acenter jbetween">
 						<view class="hflex acenter">
@@ -13,8 +17,13 @@
 				</view>
 			</view>
 			<view class="list_item hflex acenter" @click="toList(2)">
-				<image class="item_img" src="/static/images/mine/order_msg.png" mode="aspectFill"></image>
-				<!-- <view class="number" v-if="message_num > 0">{{message_num}}</view> -->
+				<div class="item_img">
+					<image src="/static/images/mine/order_msg.png" mode="aspectFill" style="width: 100%;height: 100%;"></image>
+					<u-badge max="99" :absolute="true" :offset="[1,1]" :value="order_count" v-if="order_count>0"></u-badge>
+				</div>
+				<!-- <image class="item_img" src="/static/images/mine/order_msg.png" mode="aspectFill"></image>
+				<u-badge max="99" :absolute="true" :offset="[1,1]" :value="order_count" v-if="order_count>0"></u-badge> -->
+				<!-- <view class="number" v-if="order_count > 0">{{order_count>99?'99+': order_count}}</view> -->
 				<view class="item_right">
 					<view class="hflex acenter jbetween">
 						<view class="hflex acenter">
@@ -180,8 +189,8 @@
 				showPop: false,
 				popStyle: "",
 				currentVal: '',
-				notice_num: 0,
-				message_num: 0
+				message_count: 100,
+				order_count: 100
 			}
 		},
 		components: {
@@ -193,7 +202,7 @@
 		onLoad() {
 			that = this
 			this.getWindowSize();
-			that.getNum()
+			
 			let me = this;
 			//监听加好友申请
 			disp.on("em.subscribe", function() {
@@ -236,9 +245,9 @@
 			this.getRoster();
 		},
 		onShow: function() {
+			that.getNum()
 			// uni.hideHomeButton();
 			this.getChatList();
-			console.log(uni.getStorageSync('rendered_cbz_46admin-10010'))
 			console.log('111111111',this.arr)
 			this.unReadSpotNum =
 				getApp().globalData.unReadMessageNum > 99 ?
@@ -266,8 +275,8 @@
 				}, function(res) {
 					if(res.code == 1) {
 						console.log(res)
-						that.notice_num = res.data.message_count
-						that.message_num = res.data.order_count
+						that.message_count = res.data.message_count
+						that.order_count = res.data.order_count
 					}
 				})
 			},
@@ -740,7 +749,7 @@
 
 <style lang="scss" scoped>
 	@import "./chat.css";
-	.content {
+	.content::v-deep {
 		padding: 0 30rpx;
 		background-color: #fff;
 		.list {
@@ -753,14 +762,19 @@
 					width: 88rpx;
 					height: 88rpx;
 					border-radius: 50%;
-					
+					position: relative;
+					.u-badge {
+						right: -20rpx !important;
+					}
 				}
 				.number {
 					position: absolute;
 					top: 5rpx;
 					left: 70rpx;
-					width: 32rpx;
-					height: 32rpx;
+					/* width: 32rpx;
+					height: 32rpx; */
+					box-sizing: border-box;
+					padding: 3px 5px;
 					background-color: #ff4b4b;
 					border: 1rpx solid #fff;
 					border-radius: 50%;

+ 6 - 5
pages/mine/service/address/add.vue

@@ -85,7 +85,7 @@
 				// }
 			},
 			selectAddress(e) {
-				console.log(e);
+				console.log('地图地址',e);
 				that.province = e[0]
 				that.city = e[1]
 				that.area = e[2]
@@ -186,12 +186,13 @@
 							url:'https://restapi.amap.com/v3/geocode/regeo?output=JSON&location='+res.longitude+','+ res.latitude +'&key=' + that.mapKey + '&radius=1000&extensions=all',
 							method: 'GET',
 							success(res) {
-								console.log(res)
 								let data = res.data.regeocode.addressComponent
-								console.log(data);
-								// this_.city=data.city
 								that.province = data.province
-								that.city = data.city
+								if(typeof(data.city) == 'string') {
+									that.city = data.city
+								} else {
+									that.city = data.province
+								}
 								that.area = data.district
 								that.areas = that.province + that.city + that.area
 							},

+ 11 - 4
pages/mine/service/feed/feed.vue

@@ -174,8 +174,12 @@
 						}, function(res) {
 							if(res.code == 1) {
 								console.log(res);
-								$api.info(res.info)
-								$api.jump('/pages/tabbar/mine/mine',2)
+								$api.info('提交成功')
+								setTimeout(() => {
+									uni.navigateTo({
+										url: '/pages/mine/service/feed/history'
+									})
+								},1000)
 							}
 						})
 					} else {
@@ -192,8 +196,11 @@
 						}, function(res) {
 							if(res.code == 1) {
 								console.log(res);
-								$api.info(res.info)
-								$api.jump(-1)
+								$api.info('修改成功')
+								
+								setTimeout(() => {
+									$api.jump(-1)
+								},1000)
 							}
 						})
 					}

+ 32 - 11
pages/mine/service/purOrder/detail.vue

@@ -16,6 +16,10 @@
 		<view class="center">
 			<view class="box">
 				<view class="title">商品明细</view>
+				<view class="hflex acenter">
+					<view class="title">订单号:{{pageData.order_no}}</view>
+					<image src="@/static/images/common/copy.png" mode="" class="copy_icon" @click="copy(pageData.order_no)"></image>
+				</view>
 				<block v-for="(item,index) in pageData.items" :key="index">
 					<view class="item_bg">
 						<view class="item_name">{{item.name}}</view>
@@ -73,7 +77,7 @@
 						</view>
 						<view class="offer_bg" v-if="item.is_matched && tab == '1'">
 							<block v-for="(item1,index1) in item.offers" :key="index1">
-								<view class="">
+								<view class="" v-if="item.offer_id == item1.id">
 									<view class="hflex acenter jbetween">
 										<view class="offer-user hflex acenter">
 											<image :src="item1.user.headimg" class="offer_avatar"></image>
@@ -90,9 +94,9 @@
 										<image src="/static/images/common/tele.png" style="width: 32rpx; height: 32rpx;" @click="tele(item1.user.phone)"></image>
 									</view>
 									<view class="hflex acenter jend offer_bottom" v-if="item.offer_id == item1.id">
-										<view class="bottom_btn1 hflex acenter jcenter" @click="open(item.down_word)">下载文件</view>
+										<view class="bottom_btn1 hflex acenter jcenter" @click="open(item.down_word)">下载订单</view>
 										<view class="bottom_btn1 hflex acenter jcenter" @click="toDetail(index,index1)">查看详情</view>
-										<view class="bottom_btn1 hflex acenter jcenter" @click="toDetail(index,index1)">联系接单人</view>
+										<view class="bottom_btn1 hflex acenter jcenter" @click="toDetail(index,index1)">私信聊聊</view>
 										<view class="bottom_btn1 bottom_btn2 hflex acenter jcenter" @click="remind(item1.user_id)">提醒完成</view>
 									</view>
 								</view>
@@ -204,7 +208,7 @@
 							</view>
 							<view class="hflex acenter jend offer_bottom" v-if="item1.id == pageData.offer_id">
 								<view class="bottom_btn1 hflex acenter jcenter" @click="toDetail1(index1)">查看详情</view>
-								<view class="bottom_btn1 hflex acenter jcenter" @click="toDetail1(index1)">联系接单人</view>
+								<view class="bottom_btn1 hflex acenter jcenter" @click="toDetail1(index1)">私信聊聊</view>
 								<view class="bottom_btn1 bottom_btn2 hflex acenter jcenter" @click="remind(item1.user_id)">提醒完成</view>
 							</view>
 						</view>
@@ -218,13 +222,13 @@
 			<view class="btn1 btn2 hflex acenter jcenter" v-if="pageData.status == 1" @click="edit(pageData.id)">编辑订单</view>
 		</view>
 		<view class="bottom hflex jend" v-if="pageData.status == 3 && pageData.tab != 1">
-			<view class="btn1 btn2 hflex acenter jcenter" v-if="pageData.status == 3 && pageData.tab != 1" @click="open(pageData.down_word)">下载文件</view>
+			<view class="btn1 btn2 hflex acenter jcenter" v-if="pageData.status == 3 && pageData.tab != 1" @click="open(pageData.down_word)">下载订单</view>
 		</view>
 		<u-popup :show="down_show" mode="center" round="10" @close="close" :safeAreaInsetBottom="false">
 			<view class="popu">
 				<view class="popu_top hflex acenter jbetween">
 					<view></view>
-					<view class="popu_title">下载文件</view>
+					<view class="popu_title">下载订单</view>
 					<image src="/static/images/common/close_icon.png" style="width: 32rpx;height: 32rpx;" @click="close"></image>
 				</view>
 				<view class="file_bg hflex acenter">
@@ -261,6 +265,7 @@
 				<view class="btn_next hflex acenter jcenter" @click="next">下一步</view>
 			</view>
 		</u-popup>
+		<u-modal :show="show_match" content='是否确认匹配订单' :showCancelButton="true" @confirm="match2" @cancel="close"></u-modal>
 	</view>
 </template>
 
@@ -283,6 +288,9 @@
 				index2: 0,
 				select_show: false,
 				down_word: '',
+				show_match: false,
+				match_index1: '',
+				match_index2: '',
 			}
 		},
 		onLoad(options) {
@@ -328,6 +336,7 @@
 			close() {
 				that.down_show = false
 				that.select_show = false
+				that.show_match = false
 			},
 			/* select() {
 				that.select_show = true
@@ -398,7 +407,8 @@
 				$api.req({
 					url: '/data/api.business.Purchase/reminder',
 					data: {
-						user_id: id
+						user_id: id,
+						order_no: that.pageData.order_no
 					}
 				}, function(res) {
 					if(res.code == 1) {
@@ -408,18 +418,23 @@
 				})
 			},
 			match(index,index2) {
-				console.log('匹配');
+				that.show_match = true
+				that.match_index1 = index
+				that.match_index2 = index2
+			},
+			match2() {
 				if(that.pageData.tab == 1) {
 					$api.req({
 						url: '/data/api.business.Purchase/match',
 						method: 'POST',
 						data: {
 							tab: that.tab,
-							id: that.pageData.items[index].id,
-							offer_id: that.pageData.items[index].offers[index2].id
+							id: that.pageData.items[that.match_index1].id,
+							offer_id: that.pageData.items[that.match_index1].offers[that.match_index2].id
 						}
 					}, function(res) {
 						console.log('匹配',res);
+						that.close()
 						if(res.code == 1) {
 							console.log(res);
 							$api.info(res.info)
@@ -433,7 +448,7 @@
 						data: {
 							tab: that.tab,
 							id: that.pageData.id,
-							offer_id: that.pageData.offers[index2].id
+							offer_id: that.pageData.offers[that.match_index2].id
 						}
 					}, function(res) {
 						console.log('匹配',res);
@@ -499,6 +514,7 @@
 				color: #FFFFFF;
 				line-height: 60rpx;
 			}
+			
 			.top_down {
 				padding: 0 16rpx;
 				height: 52rpx;
@@ -531,6 +547,11 @@
 					line-height: 42rpx;
 					padding: 28rpx 0;
 				}
+				.copy_icon {
+					width: 36rpx;
+					height: 36rpx;
+					margin-left: 24rpx;
+				}
 				.item_bg {
 					width: 100%;
 					background: #F4F4F4;

+ 13 - 6
pages/mine/service/purOrder/list.vue

@@ -12,19 +12,19 @@
 					<view class="top hflex acenter jbetween">
 						<view class="hflex acenter" v-if="item.tab == 1">
 							<image src="/static/images/mine/orderType1.png" class="icon_type"></image>
-							<view class="top_title">采购订单</view>
+							<view class="top_title">{{item.order_no}}</view>
 						</view>
 						<view class="hflex acenter" v-if="item.tab == 2">
 							<image src="/static/images/mine/orderType2.png" class="icon_type"></image>
-							<view class="top_title">生产订单</view>
+							<view class="top_title">{{item.order_no}}</view>
 						</view>
 						<view class="hflex acenter" v-if="item.tab == 3">
 							<image src="/static/images/mine/orderType3.png" class="icon_type"></image>
-							<view class="top_title">外协订单</view>
+							<view class="top_title">{{item.order_no}}</view>
 						</view>
 						<view class="hflex acenter" v-if="item.tab == 4">
 							<image src="/static/images/mine/orderType4.png" class="icon_type"></image>
-							<view class="top_title">海运订单</view>
+							<view class="top_title">{{item.order_no}}</view>
 						</view>
 						
 						<view class="top_right1 hflex acenter jcenter" v-if="item.status == 1">未报价</view>
@@ -135,6 +135,9 @@
 		onShow() {
 			that.getList()
 		},
+		onPullDownRefresh() {
+			that.getList()
+		},
 		methods: {
 			
 			getList() {
@@ -147,6 +150,7 @@
 						tab: that.tab
 					}
 				}, function(res) {
+					uni.stopPullDownRefresh()
 					if(res.code == 1) {
 						if(that.page == 1) {
 							that.pageList = res.data.data
@@ -154,6 +158,7 @@
 							that.pageList = that.pageList.concat(res.data.data)
 						}
 						that.total = res.data.total
+						console.log('订单列表',that.pageList);
 					}
 				})
 			},
@@ -214,7 +219,8 @@
 									$api.req({
 										url: '/data/api.business.Purchase/reminder',
 										data: {
-											user_id: user_id
+											user_id: user_id,
+											order_no: that.pageData.order_no
 										}
 									}, function(res) {
 										if(res.code == 1) {
@@ -233,7 +239,8 @@
 								$api.req({
 									url: '/data/api.business.Purchase/reminder',
 									data: {
-										user_id: user_id
+										user_id: user_id,
+										order_no: that.pageData.order_no
 									}
 								}, function(res) {
 									if(res.code == 1) {

+ 28 - 0
pages/mine/service/purOrder/msg.vue

@@ -16,6 +16,18 @@
 					<view class="text_red">{{offer.amount}}</view>
 				</view>
 			</view>
+			<view class="hflex acenter cell" v-if="offer.date">
+				<view class="left">货期:</view>
+				<view class="right">{{offer.date}}</view>
+			</view>
+			<view class="hflex acenter fwrap cell">
+				<view class="left">产品介绍以及报价说明:</view>
+				<view class="right">{{offer.desc}}</view>
+			</view>
+			<view class="hflex acenter cell">
+				<view class="left">是否现货:</view>
+				<view class="right">{{offer.is_have==0?'否':'是'}}</view>
+			</view>
 			<view class="top_title">图片及资质证明图片</view>
 			<view class="hflex acenter fwrap">
 				<block v-for="(item,index) in offer.images" :key="index">
@@ -165,6 +177,22 @@
 					line-height: 34rpx;
 				}
 			}
+			.cell {
+				padding: 18rpx 0;
+			}
+			.left {
+				font-size: 26rpx;
+				font-weight: 400;
+				color: #222222;
+				line-height: 36rpx;
+				padding-right: 20rpx;
+			}
+			.right {
+				font-size: 26rpx;
+				font-weight: 400;
+				color: #222222;
+				line-height: 36rpx;
+			}
 			.img {
 				width: 200rpx;
 				height: 200rpx;

+ 1 - 1
pages/mine/service/setting/account_info.vue

@@ -5,7 +5,7 @@
 				<view class="left">手机号码</view>
 				<view class="hflex acenter">
 					<view class="right">{{user.contact_phone}}</view>
-					<u-icon name="arrow-right" color="#000" size="10"></u-icon>
+					<!-- <u-icon name="arrow-right" color="#000" size="10"></u-icon> -->
 				</view>
 			</view>
 			<view class="hflex acenter jbetween cell" @click="bindEmail">

+ 5 - 1
pages/mine/service/setting/edit_pwd.vue

@@ -3,6 +3,7 @@
 		<view class="">
 			<u-input v-model="oldPwd" type="password" border="bottom" placeholder="请输入原密码"></u-input>
 			<u-input v-model="newPwd" type="password" border="bottom" placeholder="请输入新密码"></u-input>
+			<u-input v-model="again_new_password" type="password" border="bottom" placeholder="请再次输入新密码"></u-input>
 			<view class="text_style1">密码格式为6-16位数字,字母或符号</view>
 		</view>
 		<view class="btn" @click="save">完成</view>
@@ -17,6 +18,7 @@
 			return {
 				oldPwd: '',
 				newPwd: '',
+				again_new_password: '',
 			}
 		},
 		onLoad() {
@@ -31,12 +33,14 @@
 							method: 'POST',
 							data: {
 								old_password: that.oldPwd,
-								new_password: that.newPwd
+								new_password: that.newPwd,
+								again_new_password: that.again_new_password
 							}
 						}, function(res) {
 							if(res.code == 1) {
 								console.log(res);
 								$api.info('修改成功')
+								$api.jump('/pages/login/login/login')
 							}
 						})
 					} else {

+ 320 - 0
pages/mine/service/setting/log_off.vue

@@ -0,0 +1,320 @@
+<template>
+	<view class="content">
+		<view class="vflex acenter jcenter top" v-if="left_active == 1">
+			<u-icon name="error-circle-fill" color="#F35635" size="52"></u-icon>
+			<view class="title">温馨提示</view>
+			<view class="info">
+				<u-parse :content="data"></u-parse>
+			</view>
+		</view>
+		<view class="bottom vflex acenter jcenter" v-if="left_active == 1">
+			<u-checkbox v-model="check" shape="circle" label="我已知晓并接受,注销账号后的权益处理结果" @change="handleChange"></u-checkbox>
+			<view class="btn" @click="apply">申请注销账号</view>
+		</view>
+		<view class="vflex acenter jcenter top" v-if="left_active == 2">
+			<u-icon name="checkmark-circle-fill" color="#52c41a" size="52"></u-icon>
+			<view class="title">注销成功</view>
+			<view class="text">船百知账号已注销</view>
+			<view class="btn" @click="sure">确认</view>
+		</view>
+		<view class="vflex acenter jcenter top" v-if="left_active == 3">
+			<u-icon name="error-circle-fill" color="#F35635" size="52"></u-icon>
+			<view class="title">抱歉,由于以下原因,账号无法注销</view>
+			<!-- <view class="text">船百知账号已注销</view> -->
+			<div class="list">
+				<div class="item" v-for="(item,index) in list" :key="index">
+					<u-parse :content="item"></u-parse>
+				</div>
+			</div>
+			<view class="btn" @click="sure2">确认</view>
+		</view>
+		<u-popup :show="openVisible" mode="center"  @close="close">
+			<view class="popu vflex acenter jcenter">
+				<view class="top hflex acenter jbetween">
+					<view></view>
+					<view class="top_title">
+						短信验证码
+					</view>
+					<u-icon name="close" color="#000" size="16" @click="close"></u-icon>
+				</view>
+				<view class="info">
+					我们已向手机号{{phone}}发送验证码短信请查看并输入
+				</view>
+				<u-input placeholder="填写验证码" v-model="code">
+					<template slot="suffix">
+						<u-code
+							ref="uCode"
+							@change="codeChange"
+							seconds="60"
+							changeText="X秒重新获取"
+						></u-code>
+						<u-button
+							@tap="getCode"
+							:text="tips"
+							type="text"
+							
+						></u-button>
+					</template>
+				</u-input>
+				<div class="next_btn" @click="next">下一步</div>
+			</view>
+		</u-popup>
+	</view>
+</template>
+
+<script>
+	import $api from '@/static/js/api.js'
+	var that = ''
+	export default {
+		data() {
+			return {
+				data: '',
+				left_active: 1,
+				check: false,
+				openVisible: false,
+				phone: '',
+				tips: '',
+				value: '',
+				code: '',
+				list: [],
+			}
+		},
+		onLoad() {
+			that = this
+			that.phone = uni.getStorageSync('phone')
+			that.getData()
+		},
+		watch: {
+		  value(newValue, oldValue) {
+			console.log('v-model', newValue);
+		  }
+		},
+		methods: {
+			/* 获取提示信息 */
+			getData() {
+				$api.req({
+					url: '/data/api.business.User/logout_prompt_ship',
+					method: 'GET',
+				},function(res) {
+					console.log(res);
+					that.data = res.data
+				})
+			},
+			handleChange(e) {
+				that.check = e
+			},
+			/* 打开验证码弹窗 */
+			apply() {
+				if(that.check) {
+					that.openVisible = true
+				} else {
+					$api.info('请先同意处理通知')
+					return
+				}
+			},
+			/* 关闭弹窗 */
+			close() {
+				that.openVisible = false
+			},
+			codeChange(text) {
+				this.tips = text;
+			},
+			getCode() {
+				if(this.$refs.uCode.canGetCode) {
+					// 模拟向后端请求验证码
+					uni.showLoading({
+						title: '正在获取验证码'
+					})
+					$api.req({
+						url: '/data/api.Login/sendsms',
+						method: 'POST',
+						data: {
+							phone: that.phone,
+							type: 8
+						}
+					}, function(res) {
+						uni.hideLoading();
+						if(res.code == 1) {
+							uni.$u.toast('验证码已发送')
+							that.$refs.uCode.start()
+						} else {
+							uni.$u.toast('验证码发送失败')
+						}
+					})
+				} else {
+					uni.$u.toast('倒计时结束后再发送');
+				}
+			},
+			change(e) {
+				console.log('change', e);
+			},
+			next() {
+				if(that.code == '') {
+					$api.info('请先填写验证码')
+					return
+				}
+				$api.req({
+					url: '/data/api.business.User/cancellation',
+					method: 'POST',
+					data: {
+						code: that.code,
+						phone: that.phone
+					}
+				}, function(res) {
+					console.log(res);
+					if(res.code == 1) {
+						that.close()
+						if(res.data.type == 1) {
+							that.left_active = 2
+						} else {
+							that.left_active = 3
+							that.list = res.data.failReason
+						}
+					}
+				})
+			},
+			sure() {
+				$api.jump('/pages/tabbar/index/index',3)
+			},
+			sure2() {
+				$api.jump('/pages/tabbar/mine/mine',3)
+			},
+		},
+	}
+</script>
+
+<style lang="scss" scoped>
+	.content::v-deep {
+		background: #fff;
+		.top {
+			padding-top: 56rpx;
+			.title {
+				padding: 48rpx 0 32rpx;
+				font-size: 36rpx;
+				font-family: PingFangSC-Medium, PingFang SC;
+				font-weight: 600;
+				color: #222222;
+				line-height: 50rpx;
+			}
+			.info {
+				font-size: 28rpx;
+				font-family: PingFangSC-Regular, PingFang SC;
+				font-weight: 400;
+				color: #222222;
+				line-height: 40rpx;
+			}
+			.text {
+				font-size: 28rpx;
+				font-family: PingFangSC-Regular, PingFang SC;
+				font-weight: 400;
+				color: #222222;
+				line-height: 40rpx;
+			}
+			.btn {
+				width: 630rpx;
+				height: 92rpx;
+				background: #506DFF;
+				border-radius: 50rpx;
+				font-size: 36rpx;
+				font-family: PingFangSC-Medium, PingFang SC;
+				font-weight: 500;
+				color: #FFFFFF;
+				line-height: 92rpx;
+				text-align: center;
+				margin-top: 64rpx;
+			}
+			.list {
+				background: #F5F5F5;
+				border-radius: 20rpx;
+				width: 100%;
+				.item {
+					box-sizing: border-box;
+					padding: 32rpx 34rpx 28rpx 34rpx;
+					font-size: 28rpx;
+					font-family: PingFangSC-Regular, PingFang SC;
+					font-weight: 400;
+					color: #222222;
+					line-height: 40rpx;
+				}
+			}
+		}
+		.bottom {
+			position: absolute;
+			left: 0;
+			bottom: 0;
+			width: 100%;
+			box-sizing: border-box;
+			padding: 72rpx 60rpx;
+			.btn {
+				width: 630rpx;
+				height: 92rpx;
+				background: #506DFF;
+				border-radius: 50rpx;
+				font-size: 36rpx;
+				font-family: PingFangSC-Medium, PingFang SC;
+				font-weight: 500;
+				color: #FFFFFF;
+				line-height: 92rpx;
+				text-align: center;
+				margin-top: 28rpx;
+			}
+		}
+		.u-popup__content {
+			width: 522rpx;
+			border-radius: 20rpx;
+			.popu {
+				width: 522rpx;
+				border-radius: 20rpx;
+				box-sizing: border-box;
+				padding: 20rpx;
+				.top {
+					width: 100%;
+					box-sizing: border-box;
+					padding: 16rpx 0 24rpx;
+					.top_title {
+						font-size: 32rpx;
+						font-family: PingFangSC-Medium, PingFang SC;
+						font-weight: 600;
+						color: #222222;
+						line-height: 44rpx;
+					}
+				}
+				.info {
+					width: 364rpx;
+					font-size: 24rpx;
+					font-family: PingFangSC-Regular, PingFang SC;
+					font-weight: 400;
+					color: #666666;
+					line-height: 34rpx;
+					text-align: center;
+					padding-bottom: 44rpx;
+				}
+				.u-input {
+					border: none;
+					width: 100%;
+					box-sizing: border-box;
+					padding: 0 20rpx;
+					.u-button {
+						width: 200rpx;
+						// font-size: 28rpx ;
+						color: #506DFF !important;
+					}
+				}
+				
+				.next_btn {
+					width: 322rpx;
+					height: 76rpx;
+					background: #506DFF;
+					border-radius: 38rpx;
+					font-size: 32rpx;
+					font-family: PingFangSC-Medium, PingFang SC;
+					font-weight: 500;
+					color: #FFFFFF;
+					line-height: 76rpx;
+					text-align: center;
+					margin-top: 48rpx;
+				}
+			}
+		}
+	}
+</style>

+ 29 - 1
pages/mine/service/setting/setting.vue

@@ -23,10 +23,15 @@
 				<view class="left">关于我们</view>
 				<u-icon name="arrow-right" color="#000" size="10"></u-icon>
 			</view>
+			<view class="hflex acenter jbetween cell" @click="open">
+				<view class="left">账号注销</view>
+				<u-icon name="arrow-right" color="#000" size="10"></u-icon>
+			</view>
 		</view>
 		<view class="cell-group hflex acenter jcenter">
 			<view class="button" @click="quit">退出登录</view>
 		</view>
+		<u-modal :show="show" :title="title" :content='content' :showCancelButton="true" :closeOnClickOverlay="true" @confirm="cancelaccount" @cancel="close"></u-modal>
 	</view>
 </template>
 
@@ -36,7 +41,9 @@
 	export default {
 		data() {
 			return {
-				
+				show: false,
+				title: '是否注销账号',
+				content: '注销后,账号所有信息将全部清空,此操作不可逆!'
 			}
 		},
 		onLoad() {
@@ -61,6 +68,27 @@
 			about() {
 				$api.jump('/pages/mine/service/setting/about')
 			},
+			open() {
+				$api.jump('/pages/mine/service/setting/log_off')
+			},
+			close() {
+				that.show = false
+			},
+			// 账号注销
+			cancelaccount() {
+				$api.req({
+					url: '/data/api.business.User/cancellation',
+					method: 'POST',
+				}, function(res) {
+					if(res.code == 1) {
+						uni.removeStorageSync("token")
+						uni.removeStorageSync("myUsername")
+						uni.removeStorageSync("id")
+						uni.WebIM.conn.close();
+						$api.jump('/pages/login/login/index',2)
+					}
+				})
+			},
 			// 平台规则
 			rules() {
 				$api.jump('/pages/mine/setting/rules')

+ 4 - 11
pages/mine/wallet/withdraw.vue

@@ -84,9 +84,7 @@
 			that = this 
 			that.money = options.money
 			var ser = Number(options.service)
-			console.log('ser',ser);
 			that.service = ser / 100
-			console.log('service',that.service);
 			that.getList()
 			// that.getData()
 		},
@@ -98,13 +96,13 @@
 				}, function(res) {
 					if(res.code == 1) {
 						that.bank = res.data.list
-						/* var c = ''
+						that.active = 0
+						
 						if(that.bank.length > 0) {
 							for(var i=0;i<that.bank.length;i++) {
-								c = that.bank[i].number.substr(-4)
-								that.$set(that.bank[i],'number',c)
+								that.bank[i].number = that.bank[i].number.substr(-4)
 							}
-						} */
+						}
 					}
 				})
 			},
@@ -132,13 +130,8 @@
 			// 输入框发生改变
 			change(e) {
 				that.value = e
-				console.log('1',Number(that.value));
-				console.log('2',that.service);
-				console.log((Number(that.value) * that.service));
 				that.service_money = (Number(that.value) * that.service).toFixed(2)
 				that.amount = (that.value - that.service_money).toFixed(2)
-				console.log(that.service_money);
-				console.log(that.amount);
 			},
 			// 立即提现
 			withdraw() {

+ 22 - 4
pages/order/list.vue

@@ -6,13 +6,13 @@
 			</view>
 		</u-navbar>
 		<view class="tabs">
-			<u-tabs :list="tabList" @click="changeTab" :scrollable="false" :current="status - 1" lineWidth="0" :activeStyle="{
+			<u-tabs :list="tabList" @click="changeTab" :scrollable="true" :current="status - 1" lineWidth="0" :activeStyle="{
 				fontSize: '30rpx',color: '#222222'
 			}" :inactiveStyle="{
 				fontSize: '30rpx',color: '#888888'
 			}"></u-tabs>
 		</view>
-		<view class="center">
+		<view class="center" v-if="pageList.length>0">
 			<block v-for="(item,index) in pageList" :key="index">
 				<view class="box" @click="toDetail(item.id)">
 					<view class="top hflex acenter jbetween">
@@ -51,6 +51,12 @@
 				</view>
 			</block>
 		</view>
+		<view class="center" v-else>
+			<view class="vflex acenter jcenter" style="height: 80vh;">
+				<image src="@/static/images/no_list.png" mode="widthFix" style="width: 350rpx;"></image>
+				<view class="text">暂时没有数据^^</view>
+			</view>
+		</view>
 	</view>
 </template>
 
@@ -72,7 +78,7 @@
 						}
 					},
 					{
-						name: '待付',
+						name: '待付',
 						status: 2,
 						badge: {
 							value: 0,
@@ -94,6 +100,14 @@
 							value: 0,
 							shape: 'horn',
 						}
+					},
+					{
+						name: '已完成',
+						status: 5,
+						badge: {
+							value: 0,
+							shape: 'horn',
+						}
 					}
 				],
 				page: 1,
@@ -109,11 +123,13 @@
 			uni.startPullDownRefresh();
 		},
 		onShow() {
+			that.getNum()
 			that.getList()
 		},
 		onPullDownRefresh() {
 			that.page = 1
 			that.pageList = []
+			that.getNum()
 			that.getList()
 		},
 		methods: {
@@ -212,8 +228,10 @@
 			width: 500rpx;
 		}
 		.tabs {
-			.u-tabs__wrapper__nav__item[data-v-0de61367] {
+			.u-tabs__wrapper__nav__item {
+				min-width: 20%;
 				position: relative;
+				white-space: nowrap;
 				.u-badge {
 					position: absolute;
 					top: 18rpx;

+ 5 - 1
pages/order/refund.vue

@@ -168,7 +168,11 @@
 				}, function(res) {
 					if(res.code == 1) {
 						that.page = 1
-						that.getList()
+						$api.info('已同意退款,支付金额原路返回。')
+						setTimeout(() => {
+							that.getList()
+						}, 1000)
+						
 						that.close()
 					}
 				})

+ 9 - 3
pages/order/refundDetail.vue

@@ -157,6 +157,7 @@
 							res.data.goods_item[i].goods_cover = temp[0]
 						}
 						that.pageData = res.data
+						console.log('jujueyuany ',that.pageData);
 						for(var i=0;i<that.pageData.goods_item.length;i++) {
 							that.pageData.goods_item[i].goods_spec = $api.resetspec(that.pageData.goods_item[i].goods_spec)
 						}
@@ -190,7 +191,8 @@
 					method: 'POST',
 					data: {
 						order_id: that.id,
-						type: 2
+						type: 2,
+						reason: that.reason
 					}
 				}, function(res) {
 					if(res.code == 1) {
@@ -200,17 +202,21 @@
 				})
 			},
 			agree() {
+				
 				$api.req({
 					url: '/data/api.business.Order/examine_refund',
 					method: 'POST',
 					data: {
 						order_id: that.id,
 						type: 1,
-						reason: that.reason
+						
 					}
 				}, function(res) {
 					if(res.code == 1) {
-						that.getData()
+						$api.info('已同意退款,支付金额原路返回。')
+						setTimeout(() => {
+							that.getData()
+						}, 1000)
 						that.close()
 					}
 				})

+ 33 - 17
pages/release/ocean/ocean.vue

@@ -3,11 +3,11 @@
 		<view class="title">订单信息</view>
 		<view class="box">
 			<view class="box_item hflex acenter">
-				<view class="left">联系人</view>
+				<view class="left left_red">联系人</view>
 				<u-input v-model="name" border="none" placeholder="请输入联系人姓名"></u-input>
 			</view>
 			<view class="box_item hflex acenter">
-				<view class="left">联系电话</view>
+				<view class="left left_red">联系电话</view>
 				<u-input v-model="phone" border="none" placeholder="请输入手机号"></u-input>
 			</view>
 		</view>
@@ -21,12 +21,12 @@
 		<block v-for="(item,index) in items" :key="index">
 			<view class="box">
 				<view class="box_item hflex acenter">
-					<view class="left">商品{{index + 1}}</view>
+					<view class="left left_red">商品{{index + 1}}</view>
 					<u-input v-model="item.name" border="none" placeholder="请输入标题"></u-input>
 				</view>
 				<view class="box_item hflex acenter">
-					<view class="left">数量/吨位</view>
-					<u-input v-model="item.weight" border="none" placeholder="请输入商品数量"></u-input>
+					<view class="left left_red">数量/吨位</view>
+					<u-input v-model="item.weight" type="number" border="none" placeholder="请输入商品数量"></u-input>
 				</view>
 				
 				<view class="hflex acenter jend">
@@ -37,15 +37,15 @@
 		
 		<view class="box">
 			<view class="box_item hflex acenter" @click="showTime">
-				<view class="left">包装形式</view>
+				<view class="left left_red">包装形式</view>
 				<u-input v-model="form" border="none" disabled disabledColor="#fff" placeholder="去选择" suffixIcon="arrow-right"></u-input>
 			</view>
 			<view class="box_item hflex acenter">
-				<view class="left">到货码头</view>
+				<view class="left left_red">到货码头</view>
 				<u-input v-model="wharf_to" border="none" placeholder="请输入装货码头"></u-input>
 			</view>
 			<view class="box_item hflex acenter">
-				<view class="left">到港码头</view>
+				<view class="left left_red">到港码头</view>
 				<u-input v-model="wharf_for" border="none" placeholder="请输入到港码头"></u-input>
 			</view>
 		</view>
@@ -186,6 +186,7 @@
 				that.active.push(index)
 			},
 			sure() {
+				that.form = ''
 				for(var i=0;i<that.active.length;i++) {
 					that.form += that.formList[that.active[i]] + ','
 				}
@@ -281,10 +282,10 @@
 						return
 					}
 				}
-				if(images.length <=0) {
+				/* if(images.length <=0) {
 					$api.info('请选择图片')
 					return
-				}
+				} */
 				$api.req({
 					url: '/data/api.business.Purchase/ocean_order',
 					method: 'POST',
@@ -300,12 +301,14 @@
 					}
 				}, function(res) {
 					if(res.code == 1) {
-						$api.info(res.info)
-						if(that.back) {
-							$api.jump(-1)
-						} else {
-							$api.jump('/pages/tabbar/index/index',2)
-						}
+						$api.info('发布成功')
+						setTimeout(() => {
+							if(that.back) {
+								$api.jump(-1)
+							} else {
+								$api.jump('/pages/tabbar/index/index',2)
+							}
+						},2000)
 					}
 				})
 			},
@@ -458,6 +461,17 @@
 					color: #222222;
 					line-height: 42rpx;
 				}
+				.left_red {
+					position: relative;
+				}
+				.left_red::after {
+					position: absolute;
+					content: "*";
+					color: #ff0000;
+					font-size: 30rpx;
+					left: -15rpx;
+					top: 0;
+				}
 				.center {
 					width: calc(100% - 276rpx);
 				}
@@ -547,6 +561,8 @@
 				color: #5471FF;
 			}
 		}
-		
+		.choose {
+			padding: 20rpx 0;
+		}
 	}
 </style>

+ 32 - 16
pages/release/production/production.vue

@@ -3,11 +3,11 @@
 		<view class="title">订单信息</view>
 		<view class="box">
 			<view class="box_item hflex acenter">
-				<view class="left">联系人</view>
+				<view class="left left_red">联系人</view>
 				<u-input v-model="name" border="none" placeholder="请输入联系人姓名"></u-input>
 			</view>
 			<view class="box_item hflex acenter">
-				<view class="left">联系电话</view>
+				<view class="left left_red">联系电话</view>
 				<u-input v-model="phone" border="none" placeholder="请输入手机号"></u-input>
 			</view>
 		</view>
@@ -21,16 +21,16 @@
 		<block v-for="(item,index) in items" :key="index">
 			<view class="box">
 				<view class="box_item hflex acenter">
-					<view class="left">商品{{index + 1}}</view>
+					<view class="left left_red">商品{{index + 1}}</view>
 					<u-input v-model="item.name" border="none" placeholder="请输入标题"></u-input>
 				</view>
 				<view class="box_item hflex acenter">
-					<view class="left">规格</view>
+					<view class="left left_red">规格</view>
 					<u-input v-model="item.spec" border="none" placeholder="如颜色/尺寸等"></u-input>
 				</view>
 				<view class="box_item hflex acenter">
-					<view class="left">数量</view>
-					<u-input v-model="item.number" border="none" placeholder="请输入数量"></u-input>
+					<view class="left left_red">数量</view>
+					<u-input v-model="item.number" type="number" border="none" placeholder="请输入数量"></u-input>
 				</view>
 				<view class="box_item hflex">
 					<view class="left">附件</view>
@@ -57,11 +57,11 @@
 				<u-textarea v-model="standard_check" confirmType="done" placeholder="请填写生产验收的标准"></u-textarea>
 			</view>
 			<view class="box_item hflex acenter">
-				<view class="left">交货地址</view>
+				<view class="left left_red">交货地址</view>
 				<u-input v-model="post_address" border="none" placeholder="请填写交货地址"></u-input>
 			</view>
 			<view class="box_item hflex acenter" @click="showTime">
-				<view class="left">交货时间</view>
+				<view class="left left_red">交货时间</view>
 				<u-input v-model="post_time" border="none" disabled disabledColor="#fff" placeholder="请选择交货时间" suffixIcon="arrow-right"></u-input>
 			</view>
 			<u-datetime-picker :show="show_time"  :minDate="Number(new Date())"  mode="date" @cancel="close" @confirm="selectTime"></u-datetime-picker>
@@ -332,10 +332,10 @@
 					}
 					images.push(image)
 				}
-				if(images.length <=0) {
+				/* if(images.length <=0) {
 					$api.info('请选择图片')
 					return
-				}
+				} */
 				$api.req({
 					url: '/data/api.business.Purchase/production_order',
 					method: 'POST',
@@ -353,12 +353,14 @@
 				}, function(res) {
 					console.log(res);
 					if(res.code == 1) {
-						$api.info(res.info)
-						if(that.back) {
-							$api.jump(-1)
-						} else {
-							$api.jump('/pages/tabbar/index/index',2)
-						}
+						$api.info('发布成功')
+						setTimeout(() => {
+							if(that.back) {
+								$api.jump(-1)
+							} else {
+								$api.jump('/pages/tabbar/index/index',2)
+							}
+						},2000)
 					}
 				})
 			},
@@ -514,6 +516,17 @@
 					color: #222222;
 					line-height: 42rpx;
 				}
+				.left_red {
+					position: relative;
+				}
+				.left_red::after {
+					position: absolute;
+					content: "*";
+					color: #ff0000;
+					font-size: 30rpx;
+					left: -15rpx;
+					top: 0;
+				}
 				.center {
 					width: calc(100% - 276rpx);
 				}
@@ -570,5 +583,8 @@
 			color: #222222;
 			line-height: 50rpx;
 		}
+		.choose {
+			padding: 20rpx 0;
+		}
 	}
 </style>

+ 29 - 16
pages/release/purchase/purchase.vue

@@ -3,11 +3,11 @@
 		<view class="title">订单信息</view>
 		<view class="box">
 			<view class="box_item hflex acenter">
-				<view class="left">联系人</view>
+				<view class="left left_red">联系人</view>
 				<u-input v-model="name" border="none" placeholder="请输入联系人姓名"></u-input>
 			</view>
 			<view class="box_item hflex acenter">
-				<view class="left">联系电话</view>
+				<view class="left left_red">联系电话</view>
 				<u-input v-model="phone" border="none" placeholder="请输入手机号"></u-input>
 			</view>
 		</view>
@@ -21,16 +21,16 @@
 		<block v-for="(item,index) in items" :key="index">
 			<view class="box">
 				<view class="box_item hflex acenter">
-					<view class="left">商品{{index + 1}}</view>
+					<view class="left left_red">商品{{index + 1}}</view>
 					<u-input v-model="item.name" border="none" placeholder="请输入标题"></u-input>
 				</view>
 				<view class="box_item hflex acenter">
-					<view class="left">规格</view>
+					<view class="left left_red">规格</view>
 					<u-input v-model="item.spec" border="none" placeholder="如颜色/尺寸等"></u-input>
 				</view>
 				<view class="box_item hflex acenter">
-					<view class="left">数量</view>
-					<u-input v-model="item.number" border="none" placeholder="请输入数量"></u-input>
+					<view class="left left_red">数量</view>
+					<u-input v-model="item.number" type="number" border="none" placeholder="请输入数量"></u-input>
 				</view>
 				<view class="box_item1">
 					<view class="left">质量标准</view>
@@ -66,11 +66,11 @@
 		</view>
 		<view class="box">
 			<view class="box_item hflex acenter">
-				<view class="left">交货地址</view>
+				<view class="left left_red">交货地址</view>
 				<u-input v-model="post_address" border="none" placeholder="请填写交货地址"></u-input>
 			</view>
 			<view class="box_item hflex acenter" @click="showTime">
-				<view class="left">交货时间</view>
+				<view class="left left_red">交货时间</view>
 				<u-input v-model="post_time" border="none" disabled disabledColor="#fff" placeholder="请选择交货时间" suffixIcon="arrow-right"></u-input>
 			</view>
 			<u-datetime-picker :show="show_time" :minDate="Number(new Date())" mode="date" @cancel="close" @confirm="selectTime"></u-datetime-picker>
@@ -275,10 +275,10 @@
 						return
 					}
 				}
-				if(images.length <=0) {
+				/* if(images.length <=0) {
 					$api.info('请选择图片')
 					return
-				}
+				} */
 				$api.req({
 					url: '/data/api.business.Purchase/purchase_order',
 					method: 'POST',
@@ -293,12 +293,14 @@
 					}
 				}, function(res) {
 					if(res.code == 1) {
-						$api.info(res.info)
-						if(that.back) {
-							$api.jump(-1)
-						} else {
-							$api.jump('/pages/tabbar/index/index',2)
-						}
+						$api.info('发布成功')
+						setTimeout(() => {
+							if(that.back) {
+								$api.jump(-1)
+							} else {
+								$api.jump('/pages/tabbar/index/index',2)
+							}
+						},2000)
 					}
 				})
 			},
@@ -464,6 +466,17 @@
 					color: #222222;
 					line-height: 42rpx;
 				}
+				.left_red {
+					position: relative;
+				}
+				.left_red::after {
+					position: absolute;
+					content: "*";
+					color: #ff0000;
+					font-size: 30rpx;
+					left: -15rpx;
+					top: 0;
+				}
 				
 			}
 			.box_item1 {

+ 35 - 17
pages/release/waixie/waixie.vue

@@ -3,11 +3,11 @@
 		<view class="title">订单信息</view>
 		<view class="box">
 			<view class="box_item hflex acenter">
-				<view class="left">联系人</view>
+				<view class="left left_red">联系人</view>
 				<u-input v-model="name" border="none" placeholder="请输入联系人姓名"></u-input>
 			</view>
 			<view class="box_item hflex acenter">
-				<view class="left">联系电话</view>
+				<view class="left left_red">联系电话</view>
 				<u-input v-model="phone" border="none" placeholder="请输入手机号"></u-input>
 			</view>
 		</view>
@@ -21,16 +21,16 @@
 		<block v-for="(item,index) in items" :key="index">
 			<view class="box">
 				<view class="box_item hflex acenter">
-					<view class="left">商品{{index + 1}}</view>
+					<view class="left left_red">商品{{index + 1}}</view>
 					<u-input v-model="item.name" border="none" placeholder="请输入标题"></u-input>
 				</view>
 				<view class="box_item hflex acenter">
-					<view class="left">规格</view>
+					<view class="lef left_redt">规格</view>
 					<u-input v-model="item.spec" border="none" placeholder="如颜色/尺寸等"></u-input>
 				</view>
 				<view class="box_item hflex acenter">
-					<view class="left">数量</view>
-					<u-input v-model="item.number" border="none" placeholder="请输入数量"></u-input>
+					<view class="left left_red">数量</view>
+					<u-input v-model="item.number"  type="number" border="none" placeholder="请输入数量"></u-input>
 				</view>
 				<view class="box_item hflex acenter jbetween">
 					<view class="left">附件</view>
@@ -57,11 +57,11 @@
 				<u-textarea v-model="standard_check" confirmType="done" placeholder="请填写生产验收的标准"></u-textarea>
 			</view>
 			<view class="box_item hflex acenter">
-				<view class="left">交货地址</view>
+				<view class="left left_red">交货地址</view>
 				<u-input v-model="post_address" border="none" placeholder="请填写交货地址"></u-input>
 			</view>
 			<view class="box_item hflex acenter" @click="showTime">
-				<view class="left">交货时间</view>
+				<view class="left left_red">交货时间</view>
 				<u-input v-model="post_time" border="none" disabled disabledColor="#fff" placeholder="请选择交货时间" suffixIcon="arrow-right"></u-input>
 			</view>
 			<u-datetime-picker :show="show_time"  :minDate="Number(new Date())"  mode="date" @cancel="close" @confirm="selectTime"></u-datetime-picker>
@@ -202,7 +202,7 @@
 				        let status = parseInt(result.status); 
 				        // 状态200选取成功
 				        if(status == 200){ 
-							console.log(result);
+							console.log('result====',result);
 				            let url = result.url; 
 				            uni.downloadFile({ url:url, success:function(res){ 
 				                if(res.statusCode == 200){ 
@@ -221,6 +221,7 @@
 											},
 											success: (uploadFileRes) => {
 												var data = JSON.parse(uploadFileRes.data)
+												console.log('data====',data);
 												var enclosure = {
 													filename: result.lastName,
 													fileurl: data.data.url
@@ -333,10 +334,10 @@
 						}
 					}
 				}
-				if(images.length <=0) {
+				/* if(images.length <=0) {
 					$api.info('请选择图片')
 					return
-				}
+				} */
 				$api.req({
 					url: '/data/api.business.Purchase/coordination_order',
 					method: 'POST',
@@ -353,12 +354,15 @@
 					}
 				}, function(res) {
 					if(res.code == 1) {
-						$api.info(res.info)
-						if(that.back) {
-							$api.jump(-1)
-						} else {
-							$api.jump('/pages/tabbar/index/index',2)
-						}
+						$api.info('发布成功')
+						setTimeout(() => {
+							if(that.back) {
+								$api.jump(-1)
+							} else {
+								$api.jump('/pages/tabbar/index/index',2)
+							}
+						},2000)
+						
 					}
 				})
 			},
@@ -514,6 +518,17 @@
 					color: #222222;
 					line-height: 42rpx;
 				}
+				.left_red {
+					position: relative;
+				}
+				.left_red::after {
+					position: absolute;
+					content: "*";
+					color: #ff0000;
+					font-size: 30rpx;
+					left: -15rpx;
+					top: 0;
+				}
 				.center {
 					width: calc(100% - 276rpx);
 				}
@@ -569,5 +584,8 @@
 			color: #222222;
 			line-height: 50rpx;
 		}
+		.choose {
+			padding: 20rpx 0;
+		}
 	}
 </style>

+ 133 - 71
pages/tabbar/index/index.vue

@@ -1,7 +1,7 @@
 <template>
 	<view class="content">
 		<view class="top hflex acenter">
-			<u-navbar :placeholder="true">
+			<u-navbar :placeholder="true" height="44">
 				<view class="u-nav-slot" slot="left">
 					<image src="/static/images/common/logo.png" class="logo"></image>
 				</view>
@@ -10,72 +10,80 @@
 				</view>
 			</u-navbar>
 		</view>
-		<view class="tabs">
-			<u-tabs :list="tabs" @click="clickTab" lineWidth="0" :activeStyle="{color:'#222222',fontSize: '30rpx'}" :inactiveStyle="{color: '#888888'}">
-			</u-tabs>
-		</view>
-		<view class="menuList hflex acenter jbetween">
-			<scroll-view scroll-y="true" class="menu_left">
-				<view class="vflex">
-					<block v-for="(item,index) in cateList" :key="index">
-						<view class="left_item text_hide hflex acenter" :class="index == left_active? 'left_active':''" @click="clickTab1(index)">
-							<text class="text_hide" style="width:100%; text-align: center;">{{item.name}}</text>
-						</view>
-					</block>
-				</view>
-			</scroll-view>
-			<scroll-view scroll-y="true" class="menu_right">
-				<!-- <u-tabs :list="cateList[left_active].sub" @click="clickTab2" lineWidth="0" :activeStyle="{
-					background: '#E7EBFF',borderRadius: '24rpx',border: '1rpx solid #5471FF',color: '#5B77FF',padding: '0 24rpx'
-				}" :inactiveStyle="{
-					color: '#393939',background: '#F3F3F7',borderRadius: '24rpx',padding: '0 24rpx'}"  :current="right_active">
-					<view slot="right" style="padding-left: 4rpx;" @tap="open">
-						<view class="tabs_text hflex acenter jcenter">全部</view>
-					</view>
-				</u-tabs> -->
-				<scroll-view scroll-x="true" style="white-space: nowrap;position: relative;margin-bottom: 20rpx;width: 470rpx; height: 48rpx;">
-					<view class="hflex acenter" v-if="cateList[left_active] && !cate_show">
-						<view v-for="(item,index) in cateList[left_active].sub" :key="index" class="right_tab" :class="index == right_active? 'right_tab_active' : ''" @click="clickTab2(index)">{{item.name}}</view>
+		
+		<scroll-view scroll-y="true" refresher-enabled="true" :refresher-triggered="triggered"
+			    :refresher-threshold="100" refresher-background="white"
+			    @refresherrefresh="onRefresh" @refresherrestore="onRestore" @refresherabort="onAbort" >
+			<view class="tabs">
+				<u-tabs :list="tabs" scrollable @click="clickTab" lineWidth="0" :activeStyle="{color:'#222222',fontSize: '30rpx'}" :inactiveStyle="{color: '#888888'}">
+				</u-tabs>
+			</view>
+			<view class="menuList hflex acenter jbetween">
+				<scroll-view scroll-y="true" class="menu_left">
+					<view class="vflex">
+						<block v-for="(item,index) in cateList" :key="index">
+							<view class="left_item text_hide hflex acenter" :class="index == left_active? 'left_active':''" @click="clickTab1(index)">
+								<text class="text_hide" style="width:100%; text-align: center;">{{item.name}}</text>
+							</view>
+						</block>
 					</view>
 				</scroll-view>
-				<view class="tabs_text hflex jcenter" @tap="open" v-if="!cate_show && left_active != -1">全部</view>
-				<view class="cate_bg" v-if="cate_show" @click="open">
-					<view class="cate_top" @click.stop="">
-						<view class="hflex acenter jbetween">
-							<view class="top_left">选择分类</view>
-							<view class="top_text" @click="open">收起</view>
+				<scroll-view scroll-y="true" class="menu_right">
+					<!-- <u-tabs :list="cateList[left_active].sub" @click="clickTab2" lineWidth="0" :activeStyle="{
+						background: '#E7EBFF',borderRadius: '24rpx',border: '1rpx solid #5471FF',color: '#5B77FF',padding: '0 24rpx'
+					}" :inactiveStyle="{
+						color: '#393939',background: '#F3F3F7',borderRadius: '24rpx',padding: '0 24rpx'}"  :current="right_active">
+						<view slot="right" style="padding-left: 4rpx;" @tap="open">
+							<view class="tabs_text hflex acenter jcenter">全部</view>
 						</view>
-						<view class="hflex acenter fwrap" v-if="cateList[left_active]">
-							<block v-for="(item2,index2) in cateList[left_active].sub" :key="index2">
-								<view class="cate hflex acenter jcenter" :class="right_active == index2?'cate_active':''" @click="clickcate(index2)">{{item2.name}}</view>
-							</block>
+					</u-tabs> -->
+					<scroll-view scroll-x="true" style="white-space: nowrap;position: relative;margin-bottom: 20rpx;width: 470rpx; height: 48rpx;">
+						<view class="hflex acenter" v-if="cateList[left_active] && !cate_show">
+							<view v-for="(item,index) in cateList[left_active].sub" :key="index" class="right_tab" :class="index == right_active? 'right_tab_active' : ''" @click="clickTab2(index)">{{item.name}}</view>
+						</view>
+					</scroll-view>
+					<view class="tabs_text hflex jcenter" @tap="open" v-if="!cate_show && left_active != -1">全部</view>
+					<view class="cate_bg" v-if="cate_show" @click="open">
+						<view class="cate_top" @click.stop="">
+							<view class="hflex acenter jbetween">
+								<view class="top_left">选择分类</view>
+								<view class="top_text" @click="open">收起</view>
+							</view>
+							<view class="hflex acenter fwrap" v-if="cateList[left_active]">
+								<block v-for="(item2,index2) in cateList[left_active].sub" :key="index2">
+									<view class="cate hflex acenter jcenter" :class="right_active == index2?'cate_active':''" @click="clickcate(index2)">{{item2.name}}</view>
+								</block>
+							</view>
 						</view>
 					</view>
-				</view>
-				<view class="vflex">
-					<block v-for="(item,index) in pageList" :key="index">
-						<view class="right_item">
-							<view class="hflex acenter">
-								<view class="item_left">
-									<image :src="item.cover" class="item_cover"></image>
-									<image src="/static/images/common/img_bq1.png" v-if="item.status == 1" class="bq1"></image>
-									<image src="/static/images/common/img_bq2.png" v-if="item.status == 0" class="bq1"></image>
+					<view class="vflex">
+						<block v-for="(item,index) in pageList" :key="index">
+							<view class="right_item">
+								<view class="hflex acenter">
+									<view class="item_left">
+										<image :src="item.cover" class="item_cover"></image>
+										<image src="/static/images/common/img_bq1.png" v-if="item.status == 1 && item.examine == 1" class="bq1"></image>
+										<image src="/static/images/common/img_bq2.png" v-if="item.status == 0 && item.examine == 1" class="bq1"></image>
+									</view>
+									<view class="vflex" style="width: calc(100% - 168rpx);">
+										<view class="hflex acenter jbetween" style="width: 100%;">
+											<view class="item_title text_hide2">{{item.name}}</view>
+											<view class="item_price text_red" v-if="item.examine!=1">{{item.examine == 0?'审核中':'审核失败'}}</view>
+										</view>
+										<view class="item_price">¥{{item.price_selling}}</view>
+									</view>
 								</view>
-								<view class="vflex">
-									<view class="item_title">{{item.name}}</view>
-									<view class="item_price">¥{{item.price_selling}}</view>
+								<view class="item_bottom hflex acenter jend">
+									<view class="btn1 hflex acenter jcenter" @click="toEdit(item.id)">编辑</view>
+									<view class="btn1 btn2 hflex acenter jcenter" v-if="item.status == 1 && item.examine == 1" @click="lower(item.id)">下架</view>
+									<view class="btn1 btn2 hflex acenter jcenter" v-if="item.status == 0 && item.examine == 1" @click="shelves(item.id)">上架</view>
 								</view>
 							</view>
-							<view class="item_bottom hflex acenter jend">
-								<view class="btn1 hflex acenter jcenter" @click="toEdit(item.id)">编辑</view>
-								<view class="btn1 btn2 hflex acenter jcenter" v-if="item.status == 1" @click="lower(item.id)">下架</view>
-								<view class="btn1 btn2 hflex acenter jcenter" v-if="item.status == 0" @click="shelves(item.id)">上架</view>
-							</view>
-						</view>
-					</block>
-				</view>
-			</scroll-view>
-		</view>
+						</block>
+					</view>
+				</scroll-view>
+			</view>
+		</scroll-view>
 		<view class="hover hflex acenter jbetween">
 			<view class="hflex acenter" @click="toManager">
 				<image src="/static/images/common/sort_icon.png" class="hover_icon"></image>
@@ -110,6 +118,17 @@
 					},
 					{
 						index: 1,
+						status: '',
+						examine: '0,2',
+						name: '审核中',
+						badge: {
+							value: 0,
+							bgColor: '#EDEDED',
+							color: '#888888'
+						}
+					},
+					{
+						index: 2,
 						status: '1',
 						name: '售卖中',
 						badge: {
@@ -119,7 +138,7 @@
 						}
 					},
 					{
-						index: 2,
+						index: 3,
 						status: '0',
 						name: '已下架',
 						badge: {
@@ -129,7 +148,7 @@
 						}
 					},
 					{
-						index: 3,
+						index: 4,
 						status: '2',
 						name: '已售罄',
 						badge: {
@@ -156,25 +175,55 @@
 		onLoad() {
 			that = this
 			that.isLogin()
+			this._freshing = false;
+			/* setTimeout(() => {
+				this.triggered = true;
+			}, 1000) */
 			// uni.startPullDownRefresh();
 		},
 		onShow() {
 			that.getCate()
+			if(uni.getStorageSync('spectitle')) {
+				uni.removeStorageSync('spectitle')
+			}
+			if(uni.getStorageSync('specData')) {
+				uni.removeStorageSync('specData')
+			}
 		},
-		onPullDownRefresh() {
+		/* onPullDownRefresh() {
 			that.getCate()
-		},
+		}, */
 		methods: {
+			onPulling(e) {
+				// console.log("onpulling", e);
+			},
+			onRefresh() {
+				that.getCate()
+				if (this._freshing) return;
+				this._freshing = true;
+				setTimeout(() => {
+					this.triggered = false;
+					this._freshing = false;
+				}, 1000)
+			},
+			onRestore() {
+				this.triggered = 'restore'; // 需要重置
+				// console.log("onRestore");
+			},
+			onAbort() {
+				// console.log("onAbort");
+			},
 			isLogin() {
 				var token = uni.getStorageSync('token')
 				if(!token) {
-					$api.jump('/pages/login/codeLogin/codeLogin')
+					$api.jump('/pages/login/login/login')
 				}
 			},
 			getCate() {
 				$api.req({
 					url: '/data/api.business.Goods/getCate'
 				}, function(res) {
+					// uni.stopPullDownRefresh();
 					if(res.code == 1) {
 						that.cateList = res.data
 						that.getList()
@@ -195,18 +244,24 @@
 					data: {
 						name: that.search,
 						status: that.tabs[that.tab_active].status,
+						examine: that.tab_active == '1' ? '0,2' : '',
 						cateids: cateids,
 						page: that.page
 					}
 				}, function(res) {
+					that.onRestore()
 					if(res.code == 1) {
+						console.log('商品列表:',res);
 						for(var i=0;i<res.data.list.list.length;i++) {
 							var temp = res.data.list.list[i].cover.split('|')
 							res.data.list.list[i].cover = temp[0]
 						}
-						for (var i=0;i<that.tabs.length;i++) {
-							that.$set(that.tabs[i].badge,'value',res.data.count[i])
-						}
+						that.$set(that.tabs[0].badge,'value',res.data.count[0])
+						that.$set(that.tabs[1].badge,'value',res.data.count[4])
+						that.$set(that.tabs[2].badge,'value',res.data.count[1])
+						that.$set(that.tabs[3].badge,'value',res.data.count[2])
+						that.$set(that.tabs[4].badge,'value',res.data.count[3])
+						console.log('--------',that.tabs);
 						if(that.page == 1) {
 							that.pageList = res.data.list.list
 						} else {
@@ -215,7 +270,6 @@
 						that.total = res.data.list.page.total
 						that.limit = res.data.list.page.limit
 					}
-					uni.stopPullDownRefresh();
 				})
 				
 			},
@@ -252,7 +306,7 @@
 			},
 			clickcate(index) {
 				that.right_active = index
-				console.log(that.right_active);
+				// console.log(that.right_active);
 				that.page = 1
 				that.pageList = []
 				that.getList()
@@ -332,11 +386,15 @@
 			}
 		}
 		.tabs {
-			
+			position: fixed;
+			top: 166rpx;
+			background: #FFF;
+			z-index: 99;
 		}
 		.menuList {
 			width: 100%;
-			margin-bottom: 328rpx;
+			padding: 10rpx 0 0;
+			margin: 88rpx 0 328rpx;
 			.menu_left {
 				width: 200rpx;
 				height: 1078rpx;
@@ -470,12 +528,16 @@
 						line-clamp: 2;
 						-webkit-line-clamp: 2;
 					}
+					.text_red {
+						color: #FF2626;
+					}
 					.item_price {
 						margin-top: 22rpx;
 						font-size: 28rpx;
 						font-weight: bold;
 						color: #FF2626;
 						line-height: 32rpx;
+						white-space: nowrap;
 					}
 					.item_bottom {
 						width: 100%;

+ 145 - 4
pages/tabbar/mine/mine.vue

@@ -7,7 +7,7 @@
 			</view>
 			<view class="message hflex acenter jcenter" @click="toMessage">
 				<image src="/static/images/mine/message.png" style="width: 48rpx;height: 48rpx;"></image>
-				<u-badge max="99" :absolute="true" :offset="[1,1]" :value="user.message_num" v-if="user.message_num>0"></u-badge>
+				<u-badge max="99" :absolute="true" :offset="[1,1]" :value="message_num" v-if="message_num>0"></u-badge>
 			</view>
 		</view>
 		<view class="box">
@@ -74,13 +74,17 @@
 
 <script>
 	import $api from '@/static/js/api.js'
+	let disp = require("@/utils/broadcast");
+	var WebIM = require("@/utils/WebIM")["default"];
+	let isfirstTime = true;
 	var that = ''
 	export default {
 		data() {
 			return {
 				user: {
-					message_num: 0
+					
 				},
+				message_num: 0,
 				login: false,
 				orderList: [
 					{
@@ -112,17 +116,24 @@
 		},
 		onLoad() {
 			that = this
-			that.getNum()
 		},
 		onShow() {
 			that.isLogin()
 			that.getUser()
+			if(that.login) {
+				that.getChatList()
+			}
+			that.getNum()
+		},
+		onPullDownRefresh() {
+			that.getUser()
 		},
 		methods: {
 			getUser() {
 				$api.req({
 					url: '/data/api.business.User/user_info'
 				}, function(res) {
+					uni.stopPullDownRefresh()
 					if(res.code == 1) {
 						that.user = res.data
 						uni.setStorageSync('id',res.data.id)
@@ -159,13 +170,143 @@
 					url: '/data/api.business.Order/order_statistics'
 				}, function(res) {
 					if(res.code == 1) {
+						console.log('怎么可能',res);
 						for(var i=0;i<that.orderList.length;i++) {
 							that.$set(that.orderList[i],'number',res.data[i])
 						}
 					}
 				})
 			},
-			isLogin() {
+			getMessage() {
+				
+			},
+			getChatList() {
+				var myName = uni.getStorageSync("myUsername");
+				var array = [];
+				const me = this;
+				uni.getStorageInfo({
+					success: function(res) {
+						let storageKeys = res.keys;
+						let newChatMsgKeys = [];
+						let historyChatMsgKeys = [];
+						let len = myName.length;
+						storageKeys.forEach((item) => {
+							if (item.slice(-len) == myName && item.indexOf("rendered_") == -1) {
+								newChatMsgKeys.push(item);
+							} else if (
+								item.slice(-len) == myName &&
+								item.indexOf("rendered_") > -1
+							) {
+								historyChatMsgKeys.push(item);
+							} else if (item === "INFORM") {
+								newChatMsgKeys.push(item);
+							}
+						});
+			
+						cul.call(me, newChatMsgKeys, historyChatMsgKeys);
+					},
+				});
+			
+				function cul(newChatMsgKeys, historyChatMsgKeys) {
+					let array = [];
+					let lastChatMsg;
+			
+					for (let i = historyChatMsgKeys.length; i > 0, i--;) {
+						let index = newChatMsgKeys.indexOf(historyChatMsgKeys[i].slice(9));
+						if (index > -1) {
+							let newChatMsgs = uni.getStorageSync(newChatMsgKeys[index]) || [];
+							if (newChatMsgKeys.includes()) {}
+							if (newChatMsgs.length) {
+								lastChatMsg = newChatMsgs[newChatMsgs.length - 1];
+								lastChatMsg.unReadCount = newChatMsgs.length;
+								if (lastChatMsg.unReadCount > 99) {
+									lastChatMsg.unReadCount = "99+";
+								}
+								let dateArr = lastChatMsg.time.split(" ")[0].split("-");
+								let timeArr = lastChatMsg.time.split(" ")[1].split(":");
+								let month = dateArr[2] < 10 ? "0" + dateArr[2] : dateArr[2];
+								lastChatMsg.dateTimeNum = `${dateArr[1]}${month}${timeArr[0]}${timeArr[1]}${timeArr[2]}`;
+								lastChatMsg.time = `${dateArr[1]}月${dateArr[2]}日 ${timeArr[0]}:${timeArr[1]}`;
+								newChatMsgKeys.splice(index, 1);
+							} else {
+								let historyChatMsgs = uni.getStorageSync(historyChatMsgKeys[i]);
+								if (historyChatMsgs.length) {
+									lastChatMsg = historyChatMsgs[historyChatMsgs.length - 1];
+									let dateArr = lastChatMsg.time.split(" ")[0].split("-");
+									let timeArr = lastChatMsg.time.split(" ")[1].split(":");
+									let month = dateArr[2] < 10 ? "0" + dateArr[2] : dateArr[2];
+									lastChatMsg.dateTimeNum =
+										`${dateArr[1]}${month}${timeArr[0]}${timeArr[1]}${timeArr[2]}`;
+									lastChatMsg.time = `${dateArr[1]}月${dateArr[2]}日 ${timeArr[0]}:${timeArr[1]}`;
+								}
+							}
+						} else {
+							let historyChatMsgs = uni.getStorageSync(historyChatMsgKeys[i]);
+							if (historyChatMsgs.length) {
+								lastChatMsg = historyChatMsgs[historyChatMsgs.length - 1];
+								let dateArr = lastChatMsg.time.split(" ")[0].split("-");
+								let timeArr = lastChatMsg.time.split(" ")[1].split(":");
+								let month = dateArr[2] < 10 ? "0" + dateArr[2] : dateArr[2];
+								lastChatMsg.dateTimeNum = `${dateArr[1]}${month}${timeArr[0]}${timeArr[1]}${timeArr[2]}`;
+								lastChatMsg.time = `${dateArr[1]}月${dateArr[2]}日 ${timeArr[0]}:${timeArr[1]}`;
+							}
+						}
+						if (
+							lastChatMsg &&
+							(lastChatMsg.chatType == "groupchat" ||
+								lastChatMsg.chatType == "chatRoom")
+						) {
+							lastChatMsg.groupName = me.groupName[lastChatMsg.info.to];
+						}
+						lastChatMsg && lastChatMsg.username != myName &&
+							array.push(lastChatMsg);
+					}
+			
+					for (let i = newChatMsgKeys.length; i > 0, i--;) {
+						let newChatMsgs = uni.getStorageSync(newChatMsgKeys[i]) || [];
+						if (newChatMsgs.length) {
+							lastChatMsg = newChatMsgs[newChatMsgs.length - 1];
+							lastChatMsg.unReadCount = newChatMsgs.length;
+							if (lastChatMsg.unReadCount > 99) {
+								lastChatMsg.unReadCount = "99+";
+							}
+							let dateArr = lastChatMsg.time.split(" ")[0].split("-");
+							let timeArr = lastChatMsg.time.split(" ")[1].split(":");
+							let month = dateArr[2] < 10 ? "0" + dateArr[2] : dateArr[2];
+							lastChatMsg.dateTimeNum = `${dateArr[1]}${month}${timeArr[0]}${timeArr[1]}${timeArr[2]}`;
+							lastChatMsg.time = `${dateArr[1]}月${dateArr[2]}日 ${timeArr[0]}:${timeArr[1]}`;
+							if (
+								lastChatMsg.chatType == "groupchat" ||
+								lastChatMsg.chatType == "chatRoom"
+							) {
+								lastChatMsg.groupName = me.groupName[lastChatMsg.info.to];
+							}
+							lastChatMsg.username != myName && array.push(lastChatMsg);
+						}
+					}
+			
+					array.sort((a, b) => {
+						return b.dateTimeNum - a.dateTimeNum;
+					});
+					that.message_num = 0
+					for(var i=0;i<array.length;i++) {
+						that.message_num += array[i].unReadCount
+					}
+					$api.req({
+						url: '/data/api.business.User/messagenoread',
+						method: 'POST',
+					}, function(res) {
+						if(res.code == 1) {
+							console.log(res)
+							let message_count = res.data.message_count
+							let order_count = res.data.order_count
+							that.message_num += message_count + order_count
+						}
+					})
+					console.log('未读消息数量',that.message_num);
+				}
+			},
+ 			isLogin() {
 				var token = uni.getStorageSync('token')
 				if(token) {
 					that.login = true

BIN
static/images/mine/icon_detele.png


BIN
static/images/mine/icon_edit.png


BIN
static/images/mine/logo.png


BIN
static/images/no_list.png


+ 1 - 1
static/js/api.js

@@ -18,7 +18,7 @@ module.exports = {
 		name: '船百知-商家端',
 		debug: false, //开发模式true,生产环境改为false;
 		version: 'xcx',
-		baseUrl: 'https://ship-expert.zhousi.hdlkeji.com',
+		baseUrl: 'https://ship.shipcc.cn',
 		qqMap: false,
 		loading: false
 	},

BIN
static/logo.png


+ 1 - 1
unpackage/cache/app-ios-debug.json

@@ -1 +1 @@
-{"dir":"/Users/seaman/srv/bdserver.dcloud.net.cn/service/storage/app/package/IOS/queue/90a291c0-c2f6-11ed-97dc-19231e3262bf/wgtRoot/__UNI__82416DD/"}
+{"dir":"/Users/seaman/srv/bdserver.dcloud.net.cn/service/storage/app/package/IOS/queue/3bc8fdf0-06a2-11ee-9ab5-9f289f464680/wgtRoot/__UNI__82416DD/"}

+ 13 - 0
unpackage/cache/appleConfig.ini

@@ -15,3 +15,16 @@ spaceid_qq=
 [universalLinks_weibo]
 universalLinks_weibo=
 spaceid_weibo=
+
+[appstore]
+appstore=3b18a6b19d17f2addc97fa2576c9219e
+
+[iphone]
+app%402x=5e235f56d517cbe16ede62b5935b8a14
+app%403x=069ce950c557f11190a64e018a9aafd9
+notification%402x=58e13669f18e0327657accd16fcc0b7c
+notification%403x=c59a7bf5c5ed2610f8f3c0459bc0e508
+settings%402x=15105ebb30d553ad251268290ac5a211
+settings%403x=077d040a16d7fbe0c1a32de4f3450de4
+spotlight%402x=b09e6566bfd6e912eac6ecf469dcde9e
+spotlight%403x=5e235f56d517cbe16ede62b5935b8a14

+ 3 - 3
unpackage/cache/certdataios

@@ -1,3 +1,3 @@
-iosProfile=D:/其他/船百知/ios/BusinessDevelopment.mobileprovision
-ioscertFile=D:/其他/船百知/ios/证书.p12
-ioscertPassword=ep/Tdjka4Y7WYqDB6/S7dw==
+iosProfile=D:/其他/船百知/ios/证书/businiss.mobileprovision
+ioscertFile=D:/其他/船百知/ios/证书/船百知发布证书.p12
+ioscertPassword=50aKoo+HPKZtxrJ3Qqstsw==

+ 1 - 0
unpackage/cache/uts_custom_ios/app-ios-debug.json

@@ -0,0 +1 @@
+{"dir":"/Users/seaman/srv/bdserver.dcloud.net.cn/service/storage/app/package/IOS/queue/e1a2f600-b4e4-11ee-a9f8-0fe46dabe48b/wgtRoot/__UNI__82416DD/"}

BIN
unpackage/cache/wgt/__UNI__82416DD/.manifest/apple-mobileprovision.mobileprovision


BIN
unpackage/cache/wgt/__UNI__82416DD/.manifest/apple-private.p12


BIN
unpackage/cache/wgt/__UNI__82416DD/.manifest/appstore.png


BIN
unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-ipad-app.png


BIN
unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-ipad-app@2x.png


BIN
unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-ipad-notification.png


BIN
unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-ipad-notification@2x.png


BIN
unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-ipad-proapp@2x.png


BIN
unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-ipad-settings.png


BIN
unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-ipad-settings@2x.png


BIN
unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-ipad-spotlight.png


BIN
unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-ipad-spotlight@2x.png


BIN
unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-iphone-app@2x.png


BIN
unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-iphone-app@3x.png


BIN
unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-iphone-notification@2x.png


BIN
unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-iphone-notification@3x.png


BIN
unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-iphone-settings@2x.png


BIN
unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-iphone-settings@3x.png


BIN
unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-iphone-spotlight@2x.png


BIN
unpackage/cache/wgt/__UNI__82416DD/.manifest/icon-iphone-spotlight@3x.png


File diff suppressed because it is too large
+ 0 - 0
unpackage/cache/wgt/__UNI__82416DD/__uniappchooselocation.js


BIN
unpackage/cache/wgt/__UNI__82416DD/__uniapperror.png


File diff suppressed because it is too large
+ 0 - 0
unpackage/cache/wgt/__UNI__82416DD/__uniappes6.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/cache/wgt/__UNI__82416DD/__uniappopenlocation.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/cache/wgt/__UNI__82416DD/__uniapppicker.js


File diff suppressed because it is too large
+ 6 - 0
unpackage/cache/wgt/__UNI__82416DD/__uniappquill.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/cache/wgt/__UNI__82416DD/__uniappquillimageresize.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/cache/wgt/__UNI__82416DD/__uniappscan.js


BIN
unpackage/cache/wgt/__UNI__82416DD/__uniappsuccess.png


+ 25 - 0
unpackage/cache/wgt/__UNI__82416DD/__uniappview.html

@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+
+  <head>
+    <meta charset="UTF-8" />
+    <script>
+      var __UniViewStartTime__ = Date.now();
+      var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
+        CSS.supports('top: constant(a)'))
+      document.write(
+        '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
+        (coverSupport ? ', viewport-fit=cover' : '') + '" />')
+    </script>
+    <title>View</title>
+    <link rel="stylesheet" href="view.css" />
+  </head>
+
+  <body>
+    <div id="app"></div>
+    <script src="__uniappes6.js"></script>
+    <script src="view.umd.min.js"></script>
+    <script src="app-view.js"></script>
+  </body>
+
+</html>

File diff suppressed because it is too large
+ 4 - 0
unpackage/cache/wgt/__UNI__82416DD/app-config-service.js


+ 1 - 0
unpackage/cache/wgt/__UNI__82416DD/app-config.js

@@ -0,0 +1 @@
+(function(e){function r(r){for(var n,l,i=r[0],p=r[1],a=r[2],c=0,s=[];c<i.length;c++)l=i[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in p)Object.prototype.hasOwnProperty.call(p,n)&&(e[n]=p[n]);f&&f(r);while(s.length)s.shift()();return u.push.apply(u,a||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++){var p=t[i];0!==o[p]&&(n=!1)}n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={"app-config":0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"===typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e["default"]}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="/";var i=this["webpackJsonp"]=this["webpackJsonp"]||[],p=i.push.bind(i);i.push=r,i=i.slice();for(var a=0;a<i.length;a++)r(i[a]);var f=p;t()})([]);

File diff suppressed because it is too large
+ 0 - 0
unpackage/cache/wgt/__UNI__82416DD/app-service.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/cache/wgt/__UNI__82416DD/app-view.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/cache/wgt/__UNI__82416DD/manifest.json


BIN
unpackage/cache/wgt/__UNI__82416DD/static/images/Camera.png


BIN
unpackage/cache/wgt/__UNI__82416DD/static/images/Emoji.png


BIN
unpackage/cache/wgt/__UNI__82416DD/static/images/ad.png


BIN
unpackage/cache/wgt/__UNI__82416DD/static/images/camora.png


BIN
unpackage/cache/wgt/__UNI__82416DD/static/images/common/add_icon.png


BIN
unpackage/cache/wgt/__UNI__82416DD/static/images/common/add_icon2.png


BIN
unpackage/cache/wgt/__UNI__82416DD/static/images/common/biyanjing.png


BIN
unpackage/cache/wgt/__UNI__82416DD/static/images/common/check.png


BIN
unpackage/cache/wgt/__UNI__82416DD/static/images/common/close.png


BIN
unpackage/cache/wgt/__UNI__82416DD/static/images/common/close_icon.png


BIN
unpackage/cache/wgt/__UNI__82416DD/static/images/common/copy.png


BIN
unpackage/cache/wgt/__UNI__82416DD/static/images/common/delete.png


BIN
unpackage/cache/wgt/__UNI__82416DD/static/images/common/down2.png


BIN
unpackage/cache/wgt/__UNI__82416DD/static/images/common/down_icon.png


BIN
unpackage/cache/wgt/__UNI__82416DD/static/images/common/edit_icon.png


BIN
unpackage/cache/wgt/__UNI__82416DD/static/images/common/image_add.png


BIN
unpackage/cache/wgt/__UNI__82416DD/static/images/common/img_bq1.png


BIN
unpackage/cache/wgt/__UNI__82416DD/static/images/common/img_bq2.png


BIN
unpackage/cache/wgt/__UNI__82416DD/static/images/common/logo.png


BIN
unpackage/cache/wgt/__UNI__82416DD/static/images/common/order1.png


BIN
unpackage/cache/wgt/__UNI__82416DD/static/images/common/order2.png


BIN
unpackage/cache/wgt/__UNI__82416DD/static/images/common/order3.png


BIN
unpackage/cache/wgt/__UNI__82416DD/static/images/common/order4.png


BIN
unpackage/cache/wgt/__UNI__82416DD/static/images/common/popu_close.png


BIN
unpackage/cache/wgt/__UNI__82416DD/static/images/common/saoyisao.png


BIN
unpackage/cache/wgt/__UNI__82416DD/static/images/common/select1.png


BIN
unpackage/cache/wgt/__UNI__82416DD/static/images/common/select2.png


BIN
unpackage/cache/wgt/__UNI__82416DD/static/images/common/sort_icon.png


BIN
unpackage/cache/wgt/__UNI__82416DD/static/images/common/tele.png


Some files were not shown because too many files changed in this diff