liukang 1 year ago
parent
commit
f3068a181d
100 changed files with 4307 additions and 1258 deletions
  1. 1 1
      .hbuilderx/launch.json
  2. 37 16
      App.vue
  3. 1 1
      components/chat/emediaInvite/emediaInvite.vue
  4. 8 2
      components/my-order/my-order.vue
  5. 2 2
      components/news-module/news-module.vue
  6. 40 4
      components/order-top/order-top.vue
  7. 5 5
      components/share-model/share-model.vue
  8. 3 1
      manifest.json
  9. 20 20
      page_index/pages/bidding/bidDetail.vue
  10. 18 17
      page_index/pages/bidding/bidding.vue
  11. 3 1
      page_index/pages/demand/collect.vue
  12. 66 27
      page_index/pages/demand/demand.vue
  13. 152 85
      page_index/pages/demand/perfect.vue
  14. 62 18
      page_index/pages/demand/publish.vue
  15. 43 23
      page_index/pages/demand/recruitDetail.vue
  16. 8 8
      page_index/pages/demand/wantedDetail.vue
  17. 33 6
      page_index/pages/index/changeCity.vue
  18. 501 0
      page_index/pages/index/ggDetail.vue
  19. 68 13
      page_index/pages/index/newDetail.vue
  20. 11 9
      page_index/pages/index/noticeList.vue
  21. 80 56
      page_index/pages/purchase/orderDetail.vue
  22. 158 89
      page_index/pages/purchase/purchase.vue
  23. 1 1
      page_index/pages/purchase/receivingDetail.vue
  24. 94 10
      page_index/pages/purchase/release.vue
  25. 310 5
      page_index/pages/repair/orderDetail.vue
  26. 132 24
      page_index/pages/repair/receivingOrder.vue
  27. 230 88
      page_index/pages/repair/repair.vue
  28. 9 3
      page_index/pages/repair/repairDetail.vue
  29. 2 2
      page_index/pages/repair/repairOrder.vue
  30. 3 3
      page_index/pages/resources/resourDetail.vue
  31. 27 7
      page_index/pages/resources/resources.vue
  32. 6 6
      page_shop/pages/address/add.vue
  33. 24 10
      page_shop/pages/base/base.vue
  34. 6 6
      page_shop/pages/collect/collect.vue
  35. 49 39
      page_shop/pages/good/detail.vue
  36. 17 6
      page_shop/pages/good/shop.vue
  37. 1 1
      page_shop/pages/good/shopDetail.vue
  38. 15 20
      page_shop/pages/good/submit.vue
  39. 3 3
      page_shop/pages/good/submit2.vue
  40. 1 1
      page_shop/pages/member/index.vue
  41. 43 7
      page_shop/pages/mine/cart.vue
  42. 43 6
      page_shop/pages/mine/mine.vue
  43. 6 5
      page_shop/pages/order/apply.vue
  44. 23 26
      page_shop/pages/order/detail.vue
  45. 7 6
      page_shop/pages/order/list.vue
  46. 30 14
      page_shop/pages/order/offer.vue
  47. 6 3
      page_shop/pages/order/offer2.vue
  48. 45 9
      page_shop/pages/order/orderdetail.vue
  49. 4 2
      page_shop/pages/order/refund.vue
  50. 88 7
      page_shop/pages/order/refundDetail.vue
  51. 14 2
      page_shop/pages/order/repair.vue
  52. 5 5
      page_shop/pages/order/repairDetail.vue
  53. 3 3
      page_shop/pages/order/repairDetail2.vue
  54. 148 68
      page_shop/pages/service/applyMaintenance.vue
  55. 183 31
      page_shop/pages/service/demand.vue
  56. 15 1
      page_shop/pages/service/feed/detail.vue
  57. 178 71
      page_shop/pages/service/joinPerson.vue
  58. 3 3
      page_shop/pages/service/release.vue
  59. 203 45
      page_shop/pages/service/settledMerchants.vue
  60. 213 40
      page_shop/pages/service/settledShipyard.vue
  61. 3 3
      page_shop/pages/setting/about.vue
  62. 2 2
      page_shop/pages/setting/accountinfo.vue
  63. 2 1
      page_shop/pages/setting/bindeMail.vue
  64. 5 1
      page_shop/pages/setting/editpwd.vue
  65. 319 0
      page_shop/pages/setting/log_off.vue
  66. 1 1
      page_shop/pages/setting/personal.vue
  67. 28 6
      page_shop/pages/setting/realname.vue
  68. 2 2
      page_shop/pages/wallet/wallet.vue
  69. 19 2
      pages.json
  70. 5 5
      pages/login/code_login.vue
  71. 80 72
      pages/login/password_login.vue
  72. 63 37
      pages/login/register.vue
  73. 63 23
      pages/tabbar/index/index.vue
  74. 84 39
      pages/tabbar/mine/mine.vue
  75. 37 14
      pages/tabbar/shipyard/detail.vue
  76. 1 1
      pages/tabbar/shipyard/news.vue
  77. 16 14
      pages/tabbar/shipyard/shipyard.vue
  78. 67 42
      pages/tabbar/shop/shop.vue
  79. BIN
      static/images/comment/sp_call_phone.png
  80. BIN
      static/images/index/demand/birthday.png
  81. BIN
      static/images/index/demand/detele.png
  82. BIN
      static/images/index/demand/edution.png
  83. BIN
      static/images/index/demand/email.png
  84. BIN
      static/images/index/demand/icon1.png
  85. BIN
      static/images/index/demand/icon2.png
  86. BIN
      static/images/index/demand/icon3.png
  87. BIN
      static/images/index/demand/icon4.png
  88. BIN
      static/images/index/demand/icon5.png
  89. BIN
      static/images/index/demand/sex.png
  90. BIN
      static/images/index/demand/tab1.png
  91. BIN
      static/images/index/demand/tab3.png
  92. BIN
      static/images/index/demand/work.png
  93. BIN
      static/images/index/logo.png
  94. BIN
      static/images/index/upload-back.png
  95. BIN
      static/images/index/upload_img.png
  96. BIN
      static/images/info_img.png
  97. BIN
      static/images/mine/btn_right.png
  98. BIN
      static/images/mine/message.png
  99. BIN
      static/images/mine/real_bg.png
  100. BIN
      static/images/mine/upload_center.png

+ 1 - 1
.hbuilderx/launch.json

@@ -14,7 +14,7 @@
         	},
         	"mp-weixin" : 
         	{
-        		"launchtype" : "local"
+        		"launchtype" : "remote"
         	},
         	"type" : "uniCloud"
         },

+ 37 - 16
App.vue

@@ -155,7 +155,7 @@
 						uni.authorize({
 						    scope: 'scope.userLocation',
 						    success() {
-						        wx.getLocation({
+						        uni.getLocation({
 						        	type: 'wgs84',
 						        	success(res) {
 						        		amapPlugin.getRegeo({
@@ -175,7 +175,19 @@
 						        })
 						    },
 							fail(err) {
-								closeLoading('error',err)
+								console.log('error',err)
+								uni.showModal({
+								  title: '提示',
+								  content: '需要获取用户位置信息权限',
+								  confirmText: '前往设置',
+								  confirmColor: '#3CC51F',
+								  success(res) {
+								    if (res.confirm) {
+								      uni.openSetting(); // 打开小程序设置页面,可以让用户开启需要的权限
+									  
+								    }
+								  }
+								})
 							}
 						})
 					}
@@ -219,25 +231,25 @@
 				},
 			
 				onReconnect() {
-					uni.showToast({
+					/* uni.showToast({
 						title: "重连中...",
 						duration: 2000,
-					});
+					}); */
 				},
 			
 				onSocketConnected() {
-					uni.showToast({
+					/* uni.showToast({
 						title: "socket连接成功",
 						duration: 2000,
-					});
+					}); */
 				},
 			
 				onClosed() {
-					uni.showToast({
+					/* uni.showToast({
 						title: "网络已断开",
 						icon: "none",
 						duration: 2000,
-					});
+					}); */
 					uni.redirectTo({
 						url: "/pages/login/codeLogin/codeLogin",
 					});
@@ -284,10 +296,10 @@
 							break;
 			
 						case "subscribed":
-							uni.showToast({
+							/* uni.showToast({
 								title: "添加成功",
 								duration: 1000,
-							});
+							}); */
 							disp.fire("em.subscribed");
 							break;
 			
@@ -296,17 +308,17 @@
 							break;
 						case "direct_joined":
 							saveGroups();
-							uni.showToast({
+							/* uni.showToast({
 								title: "已进群",
 								duration: 1000,
-							});
+							}); */
 							break;
 						case "memberJoinPublicGroupSuccess":
 							saveGroups();
-							uni.showToast({
+							/* uni.showToast({
 								title: "已进群",
 								duration: 1000,
-							});
+							}); */
 							break;
 						case "invite":
 							// 防止重复添加
@@ -491,11 +503,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);
 					}
 				},
@@ -682,4 +694,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>

+ 1 - 1
components/chat/emediaInvite/emediaInvite.vue

@@ -36,7 +36,7 @@
 	
 			<view class="tap_mask" @tap="into_room" :data-username="item.member||item.owner">
 	          	<view class="address_bottom" :data-username="item.member||item.owner" @tap="into_room">
-					<image src="../../../static/images/theme2x.png" @tap="into_room" :data-username="item.member||item.owner"></image>
+					<image src="@/static/images/theme2x.png" @tap="into_room" :data-username="item.member||item.owner"></image>
 		          	<text @tap="into_room" :data-username="item.member||item.owner">{{item.member||item.owner}}</text>
 		          	<checkbox :value="item.member||item.owner" :checked="item.checked" :disabled="item.disabled"/>
 	      		</view>

+ 8 - 2
components/my-order/my-order.vue

@@ -1,7 +1,7 @@
 <template>
 	<view>
-		<block v-for="(item,index) in list" :key="index">
-			<view class="my-order"  @click="toDetail(item.id)">
+		<block v-if="list.length > 0">
+			<view class="my-order" v-for="(item,index) in list" :key="index"  @click="toDetail(item.id)">
 				<view class="top hflex acenter jbetween">
 					<view class="order_no">订单编号:{{item.order_no}}</view>
 					<view class="type" v-if="item.status== 1">未报价</view>
@@ -47,6 +47,12 @@
 				</view>
 			</view>
 		</block>
+		<block 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>
+		</block>
 	</view>
 </template>
 

+ 2 - 2
components/news-module/news-module.vue

@@ -51,7 +51,7 @@
 				
 			</view>
 		</block>
-		<!-- <u-empty icon="https://ship-expert.zhousi.hdlkeji.com/common/zhan.png" text="暂时没有数据哦"> -->
+		<!-- <u-empty icon="https://ship.shipcc.cn/common/zhan.png" text="暂时没有数据哦"> -->
 	</view>
 </template>
 
@@ -99,7 +99,7 @@
 	
 	
 	.news_box {
-		margin-top: 20rpx;
+		// margin-top: 20rpx;
 		padding-bottom: 20rpx;
 		border-bottom: 1rpx solid #f3f3f3;
 		.news_title {

+ 40 - 4
components/order-top/order-top.vue

@@ -1,19 +1,33 @@
 <template>
 	<view class="order-top">
 		<view class="hflex acenter jbetween">
-			<view class="title">客户信息</view>
+			<view class="title">商家信息</view>
 			<view class="type1" v-if="type == 1">未报价</view>
 			<view class="type1" v-if="type == 2 && amount == ''">未报价</view>
 			<view class="type1 type2" v-if="type == 2 && amount !== ''">已报价</view>
 			<view class="type1 type3" v-if="type == 3">已匹配</view>
 		</view>
 		<view class="hflex acenter cell">
+			<view class="left">商家名称:</view>
+			<view class="right">{{merchant.name}}</view>
+		</view>
+		<view class="hflex acenter jbetween cell">
+			<view class="hflex acenter">
+				<view class="left">商家地址:</view>
+				<view class="right">{{merchant.full_address}}</view>
+			</view>
+			<u-icon name="map-fill" color="#2979ff" size="18" @click="getMap"></u-icon>
+		</view>
+		<view class="hflex acenter cell">
 			<view class="left">联系人:</view>
 			<view class="right">{{name}}</view>
 		</view>
-		<view class="hflex acenter">
-			<view class="left">手机号:</view>
-			<view class="right">{{phone}}</view>
+		<view class="hflex acenter jbetween">
+			<view class="hflex acenter">
+				<view class="left">手机号:</view>
+				<view class="right">{{phone}}</view>
+			</view>
+			<u-icon name="phone-fill" color="#2979ff" size="18" @click="take"></u-icon>
 		</view>
 	</view>
 </template>
@@ -38,10 +52,31 @@
 				type: String,
 				value: '' 
 			},
+			merchant: {
+				typeof: Object,
+				value: {}
+			}
 		},
 		data() {
 			return {
 			};
+		},
+		methods: {
+			getMap() {
+				uni.openLocation({
+					latitude: Number(this.merchant.latitude),
+					longitude: Number(this.merchant.longitude),
+					scale: 18,
+					success: function () {
+						console.log('success');
+					}
+				});
+			},
+			take() {
+				uni.makePhoneCall({
+					phoneNumber: this.phone
+				});
+			}
 		}
 	}
 </script>
@@ -84,6 +119,7 @@
 			font-size: 26rpx;
 			font-weight: 400;
 			color: #222222;
+			white-space: nowrap;
 		}
 		.right {
 			font-size: 26rpx;

+ 5 - 5
components/share-model/share-model.vue

@@ -11,7 +11,7 @@
 		<u-parse :content="pageData.content" style="box-sizing: border-box;padding: 0 30rpx;"></u-parse>
 		<view class="box hflex acenter jbetween">
 			<view class="hflex acenter ">
-				<image class="box_icon" src="https://ship-expert.zhousi.hdlkeji.com/common/icon_pdf.png"></image>
+				<image class="box_icon" src="https://ship.shipcc.cn/common/icon_pdf.png"></image>
 				<view class="text_style1">{{pageData.fujian}}</view>
 			</view>
 			<view class="down hflex acenter jcenter">
@@ -32,15 +32,15 @@
 			<view class="share_bottom">
 				<view class="hflex acenter jbetween">
 					<button class="vflex acenter jcenter bottom_item" open-type="share">
-						<image src="https://ship-expert.zhousi.hdlkeji.com/common/wx.png" class="item_icon"></image>
+						<image src="https://ship.shipcc.cn/common/wx.png" class="item_icon"></image>
 						<view class="item_text">微信好友</view>
 					</button>
 					<!-- <button class="vflex acenter jcenter bottom_item" open-type="share">
-						<image src="https://ship-expert.zhousi.hdlkeji.com/common/moments.png" class="item_icon"></image>
+						<image src="https://ship.shipcc.cn/common/moments.png" class="item_icon"></image>
 						<view class="item_text">朋友圈</view>
 					</button> -->
 					<view class="vflex acenter jcenter bottom_item" @click="saveImg">
-						<image src="https://ship-expert.zhousi.hdlkeji.com/common/download.png" class="item_icon"></image>
+						<image src="https://ship.shipcc.cn/common/download.png" class="item_icon"></image>
 						<view class="item_text">保存图片</view>
 					</view>
 				</view>
@@ -58,7 +58,7 @@
 			return {
 				pageData: {
 					title: '在高质量发展中扎实推动共同富裕!',
-					src: 'https://ship-expert.zhousi.hdlkeji.com/common/avatar1.jpg',
+					src: 'https://ship.shipcc.cn/common/avatar1.jpg',
 					name: '船百知官方账号',
 					is_collect: 0,
 					

+ 3 - 1
manifest.json

@@ -57,7 +57,9 @@
         "appid" : "wxa5033cf91977e574",
         "setting" : {
             "urlCheck" : false,
-            "minified" : true
+            "minified" : true,
+            "postcss" : true,
+            "es6" : true
         },
         "usingComponents" : true,
         "optimization" : {

+ 20 - 20
page_index/pages/bidding/bidDetail.vue

@@ -48,8 +48,8 @@
 				<view class="hflex acenter cell">
 					<view class="text2">附件:</view>
 					<u-icon name="attach" color="#cacaca" size="14"></u-icon>
-					<view class="blue">{{item.filename}}</view>
-					<image src="https://ship-expert.zhousi.hdlkeji.com/common/down.png" class="down_img" @click="down(item.fileurl)"></image>
+					<view class="blue" @click="down(item.fileurl)">{{item.filename}}</view>
+					<image src="https://ship.shipcc.cn/common/down.png" class="down_img" @click="down(item.fileurl)"></image>
 				</view>
 			</block>
 		</view>
@@ -86,15 +86,15 @@
 			<view class="share_bottom">
 				<view class="hflex acenter jcenter">
 					<button class="vflex acenter jcenter bottom_item" open-type="share">
-						<image src="https://ship-expert.zhousi.hdlkeji.com/common/wx.png" class="item_icon"></image>
+						<image src="https://ship.shipcc.cn/common/wx.png" class="item_icon"></image>
 						<view class="item_text">微信好友</view>
 					</button>
 					<!-- <button class="vflex acenter jcenter bottom_item" open-type="share">
-						<image src="https://ship-expert.zhousi.hdlkeji.com/common/moments.png" class="item_icon"></image>
+						<image src="https://ship.shipcc.cn/common/moments.png" class="item_icon"></image>
 						<view class="item_text">朋友圈</view>
 					</button> -->
 					<view class="vflex acenter jcenter bottom_item" @click="saveImg">
-						<image src="https://ship-expert.zhousi.hdlkeji.com/common/download.png" class="item_icon"></image>
+						<image src="https://ship.shipcc.cn/common/download.png" class="item_icon"></image>
 						<view class="item_text">保存图片</view>
 					</view>
 				</view>
@@ -116,9 +116,9 @@
 				share_show: false,
 				list: {},
 				style: {
-					img1: 'https://ship-expert.zhousi.hdlkeji.com/common/down2.png',
-					img2: 'https://ship-expert.zhousi.hdlkeji.com/common/line.png',
-					code: 'https://ship-expert.zhousi.hdlkeji.com/common/code.jpg'
+					img1: 'https://ship.shipcc.cn/common/down2.png',
+					img2: 'https://ship.shipcc.cn/common/line.png',
+					code: 'https://ship.shipcc.cn/common/code.jpg'
 				},
 				
 			}
@@ -167,28 +167,28 @@
 				})
 			},
 			down(url) {
-				$api.info('开始下载')
+				// $api.info('开始下载')
 				uni.downloadFile({
 					url: url, //仅为示例,并非真实的资源
 					success: (res) => {
 						console.log(res);
 						if (res.statusCode === 200) {
-							uni.saveFile({
-								tempFilePath: res.tempFilePath, //临时路径
+							console.log(res.tempFilePath);
+							uni.openDocument({
+								filePath: res.tempFilePath, //临时路径
+								showMenu: true,
 								success: function(res2) {
-									uni.showToast({
-										icon: 'none',
-										mask: true,
-										title: '文件已保存:' + res2.savedFilePath, //保存路径
-										duration: 3000,
-									});
+									// uni.showToast({
+									// 	icon: 'none',
+									// 	mask: true,
+									// 	title: '文件已保存:' + res2.savedFilePath, //保存路径
+									// 	duration: 3000,
+									// });
 								}
 							});
 						}
 					},
 					fail: (err) => {
-						console.log(err);
-						$api.info('下载超时,请重试')
 					}
 				});
 			},
@@ -363,7 +363,7 @@
 			.text {
 				width: 100%;
 				margin: 28rpx 0;
-				height: 760rpx;
+				// height: 760rpx;
 				border: 1px solid #C6C6C6;
 				box-sizing: border-box;
 				padding: 20rpx;

+ 18 - 17
page_index/pages/bidding/bidding.vue

@@ -27,8 +27,8 @@
 				</view>
 				<view class="hflex acenter " @click="screen">
 					<view class="tabs_item" :class="screen_show? 'tab_active' : ''">筛选</view>
-					<image src="https://ship-expert.zhousi.hdlkeji.com/common/screen.png" class="screen_icon" v-show="!screen_show"></image>
-					<image src="https://ship-expert.zhousi.hdlkeji.com/common/screen_active.png" class="screen_icon" v-show="screen_show"></image>
+					<image src="https://ship.shipcc.cn/common/screen.png" class="screen_icon" v-show="!screen_show"></image>
+					<image src="https://ship.shipcc.cn/common/screen_active.png" class="screen_icon" v-show="screen_show"></image>
 				</view>
 			</view>
 			<view class="drop" v-show="screen_show">
@@ -121,7 +121,7 @@
 					</view>
 				</view>
 			</view>
-			<view class="list" v-if="pageList.length>0">
+			<scroll-view class="list" :scroll-y="true" v-if="pageList.length>0"  @scrolltolower="scrolltolower">
 				<block v-for="(item,index) in pageList" :key="index">
 					<view class="list_item" @click="toDetail(item.id)">
 						<view class="top">
@@ -130,7 +130,7 @@
 							<view class="item_name">{{item.title}}</view>
 						</view>
 						<view class="hflex acenter cell">
-							<image src="https://ship-expert.zhousi.hdlkeji.com/common/company.png" class="item_icon"></image>
+							<image src="https://ship.shipcc.cn/common/company.png" class="item_icon"></image>
 							<view class="text_style1">招标单位</view>
 							<view class="text_style1">{{item.com_name}}</view>
 						</view>
@@ -141,8 +141,9 @@
 						</view>
 					</view>
 				</block>
-			</view>
+			</scroll-view>
 		</view>
+		<view class="" style="height: 100rpx"></view>
 	</view>
 </template>
 
@@ -242,13 +243,7 @@
 			that.getCity()
 		},
 		onShow() {
-			var token = uni.getStorageSync('token') 
-			if(!token) {
-				$api.info('请先登录')
-				setTimeout(() =>{
-					$api.jump('/pages/login/code_login')
-				}, 1000)
-			}
+			
 		},
 		methods: {
 			// 返回
@@ -396,21 +391,26 @@
 				that.screen_show = false
 				that.getList()
 			},
-			onReachBottom() {
+			scrolltolower() {
 				if (Number(that.page) * Number(that.limit) >= Number(that.total)) {
 					$api.info("没有更多了")
 				} else {
 					that.page++
 					that.getList()
 				}
-				
-			}
+			},
 		},
+		onReachBottom() {
+			
+			
+		}
 	}
 </script>
 
 <style lang="scss" scoped>
 	.content::v-deep {
+		max-height: 100vh;
+		overflow: hidden;
 		background-color: #e8eff5;
 		.navbar {
 			
@@ -554,6 +554,7 @@
 				}
 			}
 			.list {
+				height: calc(100vh - 23vh);
 				margin-bottom: 60rpx;
 				.list_item {
 					margin: 20rpx auto 0;
@@ -580,7 +581,7 @@
 							height: 28rpx;
 							float: left;
 							margin: 7rpx 10rpx 0 0;
-							background: url('https://ship-expert.zhousi.hdlkeji.com/common/green_bg.png') no-repeat;
+							background: url('https://ship.shipcc.cn/common/green_bg.png') no-repeat;
 							background-size: 100%;
 							font-size: 16rpx;
 							font-weight: normal;
@@ -593,7 +594,7 @@
 							height: 28rpx;
 							float: left;
 							margin: 7rpx 10rpx 0 0;
-							background: url('https://ship-expert.zhousi.hdlkeji.com/common/blue_bg.png') no-repeat;
+							background: url('https://ship.shipcc.cn/common/blue_bg.png') no-repeat;
 							background-size: 100%;
 							font-size: 16rpx;
 							font-weight: normal;

+ 3 - 1
page_index/pages/demand/collect.vue

@@ -10,7 +10,9 @@
 				<view class="list_item" @click="toDetail(item.recruitment.id)">
 					<view class="hflex acenter jbetween">
 						<view class="item_title">{{item.recruitment.title}}</view>
-						<view class="item_blue">{{item.recruitment.salary_start}}-{{item.recruitment.salary_end}}</view>
+						<view class="item_blue">{{item.recruitment.salary_start}}
+						{{(item.recruitment.salary_start + '').indexOf('k') != -1 && (item.recruitment.salary_start + '').indexOf('K') != -1 ? '' : 'k'}}-{{item.recruitment.salary_end}}
+						{{(item.recruitment.salary_end + '').indexOf('k') != -1 && (item.recruitment.salary_end + '').indexOf('K') != -1 ? '' : 'k'}}</view>
 					</view>
 					<view class="item_name">{{item.recruitment.shipyard.name}}</view>
 					<view class="hflex acenter" style="padding: 0 0 28rpx;">

+ 66 - 27
page_index/pages/demand/demand.vue

@@ -28,17 +28,19 @@
 					<u-icon name="arrow-down-fill" color="#666666" size="6"></u-icon>
 				</view>
 			</view>
-			<view class="list" v-if="tab_active == 0">
+			<scroll-view class="list" :scroll-y="true" v-if="tab_active == 0" @scrolltolower="scrolltolower">
 				<block v-for="(item,index) in pageList" :key="index">
 					<view class="list_item" @click="toDetail(item.id)">
 						<view class="hflex acenter jbetween">
 							<view class="item_title">{{item.title}}</view>
-							<view class="item_blue">{{item.salary_start}}-{{item.salary_end}}薪</view>
+							<view class="item_blue">{{item.salary_start}}-{{item.salary_end}}
+							<!-- {{(item.salary_start + '').indexOf('k') && (item.salary_start + '').indexOf('K') != -1 ? '' : 'k'}}-{{item.salary_end}}
+							{{(item.salary_end + '').indexOf('k') && (item.salary_end + '').indexOf('K') != -1 ? '' : 'k'}} --></view>
 						</view>
 						<view class="hflex acenter" style="padding: 20rpx 0 24rpx;">
-							<view class="item_box">{{item.city}}</view>
-							<view class="item_box">{{item.schooling}}</view>
-							<view class="item_box">{{item.experience}}</view>
+							<view class="item_box" v-if="item.city">{{item.city}}</view>
+							<view class="item_box" v-if="item.schooling">{{item.schooling}}</view>
+							<view class="item_box" v-if="item.experience">{{item.experience}}</view>
 						</view>
 						<view class="item_name">{{item.shipyard.name}}</view>
 						<view class="hflex acenter jbetween" style="padding-top: 16rpx;">
@@ -50,8 +52,8 @@
 						</view>
 					</view>
 				</block>
-			</view>
-			<view class="list" v-if="tab_active == 1 && pageList.length > 0">
+			</scroll-view>
+			<scroll-view class="list" :scroll-y="true" v-if="tab_active == 1 && pageList.length > 0" @scrolltolower="scrolltolower">
 				<block v-for="(item,index) in pageList" :key="index">
 					<view class="list_item hflex jbetween" @click="toDetail2(item.id)">
 						<view class="hflex">
@@ -74,9 +76,9 @@
 						<view class="item_btn1" @click.stop="into_chatroom(index)">打招呼</view>
 					</view>
 				</block>
-			</view>
+			</scroll-view>
 			<!-- <view class="list" v-if="tab_active == 1 && pageList.length <= 0">
-				<u-empty icon="https://ship-expert.zhousi.hdlkeji.com/common/zhan.png" text="暂时没有数据哦">
+				<u-empty icon="https://ship.shipcc.cn/common/zhan.png" text="暂时没有数据哦">
 			</view> -->
 			
 		</view>
@@ -110,7 +112,7 @@
 				<view class="popup1_btn" @click="close">我知道了</view>
 			</view>
 		</u-modal>
-		<!-- <u-empty icon="https://ship-expert.zhousi.hdlkeji.com/common/zhan.png" text="暂时没有数据哦"> -->
+		<!-- <u-empty icon="https://ship.shipcc.cn/common/zhan.png" text="暂时没有数据哦"> -->
 	</view>
 </template>
 
@@ -226,13 +228,13 @@
 			that.getList()
 		},
 		onShow() {
-			var token = uni.getStorageSync('token') 
+			/* var token = uni.getStorageSync('token') 
 			if(!token) {
 				$api.info('请先登录')
 				setTimeout(() =>{
-					$api.jump('/pages/login/code_login')
+					// $api.jump('/pages/login/password_login')
 				}, 1000)
-			}
+			} */
 		},
 		methods: {
 			getList() {
@@ -243,7 +245,8 @@
 						type: that.tab_active + 1,
 						keyword: that.serach_value,
 						salary: that.salary_active + 1,
-						page: that.page
+						page: that.page,
+						schooling: that.education_active != -1 ? that.educationList[that.education_active].value : '',
 					}
 				}, function(res) {
 					if(res.code == 1) {
@@ -264,7 +267,15 @@
 			},
 			// 点击tabs
 			toTab(url) {
-				$api.jump(url)
+				var token = uni.getStorageSync('token')
+				if(!token) {
+					$api.info('请先登录')
+					setTimeout(() =>{
+						$api.jump('/pages/login/password_login')
+					}, 1000)
+				} else {
+					$api.jump(url)
+				}
 				
 			},
 			// 切换tabs
@@ -307,20 +318,45 @@
 				that.getList()
 			},
 			toDetail(id) {
-				$api.jump('/page_index/pages/demand/recruitDetail?id='+id)
+				var token = uni.getStorageSync('token')
+				if(!token) {
+					$api.info('请先登录')
+					setTimeout(() =>{
+						$api.jump('/pages/login/password_login')
+					}, 1000)
+				} else {
+					$api.jump('/page_index/pages/demand/recruitDetail?id='+id)
+				}
 			},
 			toDetail2(id) {
-				$api.jump('/page_index/pages/demand/wantedDetail?id='+id)
+				var token = uni.getStorageSync('token')
+				if(!token) {
+					$api.info('请先登录')
+					setTimeout(() =>{
+						$api.jump('/pages/login/password_login')
+					}, 1000)
+				} else {
+					$api.jump('/page_index/pages/demand/wantedDetail?id='+id)
+				}
 			},
 			into_chatroom(index) {
-				var my = uni.getStorageSync("myUsername");
-				var nameList = {
-				  myName: my,
-				  your: that.pageList[index].huanxinID,
-				};
-				uni.navigateTo({
-				  url: "/pages/chatroom/chatroom?username=" + JSON.stringify(nameList),
-				});
+				var token = uni.getStorageSync('token')
+				if(!token) {
+					$api.info('请先登录')
+					setTimeout(() =>{
+						$api.jump('/pages/login/password_login')
+					}, 1000)
+				} else {
+					var my = uni.getStorageSync("myUsername");
+					var nameList = {
+					  myName: my,
+					  your: that.pageList[index].huanxinID,
+					};
+					uni.navigateTo({
+					  url: "/pages/chatroom/chatroom?username=" + JSON.stringify(nameList),
+					});
+				}
+				
 			},
 			search() {
 				that.getList()
@@ -331,7 +367,7 @@
 					that.getList()
 				}
 			}, 
-			onReachBottom() {
+			scrolltolower() {
 				if (that.page * that.limit >= that.total) {
 					$api.info("没有更多了")
 				} else {
@@ -346,6 +382,8 @@
 
 <style lang="scss" scoped>
 	.content::v-deep {
+		max-height: 100vh;
+		overflow: hidden;
 		position: relative;
 		background: #EEF1F8;
 		padding: 0 30rpx;
@@ -446,6 +484,7 @@
 			}
 			.list {
 				width: 100%;
+				height: calc(100vh - 424rpx);;
 				.list_item {
 					width: 100%;
 					padding: 28rpx 0 20rpx;
@@ -648,7 +687,7 @@
 		}
 		.u-modal {
 			width: 530rpx !important;
-			background: url('https://ship-expert.zhousi.hdlkeji.com/common/eject.png') no-repeat;
+			background: url('https://ship.shipcc.cn/common/eject.png') no-repeat;
 			background-size: 100%;
 		}
 	}

+ 152 - 85
page_index/pages/demand/perfect.vue

@@ -1,4 +1,4 @@
-<template>
+1<template>
 	<view class="content vflex jbetween">
 		<view >
 			<view class="box" v-show="index == '1'">
@@ -23,7 +23,7 @@
 					<view @click="open('birthday')">
 						<u-input v-model="base_info.date_birth" disabled disabledColor="#fff" border="none" placeholder="请选择你的出生年月" suffixIcon="arrow-right"></u-input>
 					</view>
-					<u-datetime-picker :minDate="minDate" title="生日" :show="birthday_show" v-model="newDate" ref="datetimePicker" @confirm="confirmAge" @cancel="cancel" :formatter="formatter" mode="date"></u-datetime-picker>
+					<u-datetime-picker :minDate="minDate" :maxDate="maxDate" title="生日" :show="birthday_show" v-model="newDate" ref="datetimePicker" @confirm="confirmAge" @cancel="cancel" :formatter="formatter" mode="date"></u-datetime-picker>
 				</view>
 				<view class="cell">
 					<view class="label">学历</view>
@@ -91,28 +91,28 @@
 						<view @click="open('time1')">
 							<u-input v-model="experience.content.on_job_start" disabled disabledColor="#fff" border="none" placeholder="入职时间"></u-input>
 						</view>
-						<u-datetime-picker :minDate="minDate" title="入职时间" :show="show_time1" v-model="newDate" ref="datetimePicker" @confirm="confirmTime1" @cancel="cancel" :formatter="formatter" mode="year-month"></u-datetime-picker>
+						<u-datetime-picker :minDate="minDate" :maxDate="maxDate2" title="入职时间" :show="show_time1" v-model="newDate" ref="datetimePicker" @confirm="confirmTime1" @cancel="cancel" :formatter="formatter" mode="year-month"></u-datetime-picker>
 						<view style="margin: 0 20rpx;">-</view>
 						<view @click="open('time2')">
 							<u-input v-model="experience.content.on_job_end" disabled disabledColor="#fff" border="none" placeholder="离职时间"></u-input>
 						</view>
-						<u-datetime-picker :minDate="minDate" title="离职时间" :show="show_time2" v-model="newDate" ref="datetimePicker" @confirm="confirmTime2" @cancel="cancel" :formatter="formatter" mode="year-month"></u-datetime-picker>
+						<u-datetime-picker :maxDate="maxDate2" title="离职时间" :show="show_time2" v-model="newDate" ref="datetimePicker" @confirm="confirmTime2" @cancel="cancel" :formatter="formatter" mode="year-month"></u-datetime-picker>
 					</view>
 				</view>
 				<view class="cell">
 					<view class="label">工作内容</view>
-					<u-input v-model="experience.content.job_description" border="none" placeholder="请详细描述你在公司的主要工作内容以及…" suffixIcon="arrow-right"></u-input>
+					<u-input v-model="experience.content.job_description" border="none" placeholder="请详细描述你在公司的主要工作内容以及…"></u-input>
 				</view>
 			</view>
 			<view class="box" v-if="index == '4'">
 				<view class="cell">
 					<view class="label">技能名称</view>
-					<u-input v-model="skills.skills_name" border="none" placeholder="掌握的技能名称"></u-input>
+					<u-input v-model="skills.skill_name" border="none" placeholder="掌握的技能名称"></u-input>
 				</view>
 				<view class="cell">
 					<view class="label">掌握程度</view>
-					<view @click="open('skills_degree')">
-						<u-input v-model="skills.skills_degree" disabled disabledColor="#fff" border="none" placeholder="如:精通" suffixIcon="arrow-right"></u-input>
+					<view @click="open('degree')">
+						<u-input v-model="skills.degree" disabled disabledColor="#fff" border="none" placeholder="如:精通" suffixIcon="arrow-right"></u-input>
 					</view>
 					<u-picker :show="degree_show" title="掌握程度" ref="uPicker" :columns="degreeList" @confirm="confirmSkill" @cancel="cancel"></u-picker>
 				</view>	
@@ -124,10 +124,10 @@
 				</view>
 				<view class="cell">
 					<view class="label">获得时间</view>
-					<view @click="open('certificate_date')">
-						<u-input v-model="certificate.certificate_date" disabled disabledColor="#fff" border="none" placeholder="年/月" suffixIcon="arrow-right"></u-input>
+					<view @click="open('gain_time')">
+						<u-input v-model="certificate.gain_time" disabled disabledColor="#fff" border="none" placeholder="年/月" suffixIcon="arrow-right"></u-input>
 					</view>
-					<u-datetime-picker :minDate="minDate" title="获得时间" :show="certificate_show" v-model="newDate" ref="datetimePicker" @confirm="confirmDate" @cancel="cancel" :formatter="formatter" mode="year-month"></u-datetime-picker>
+					<u-datetime-picker :minDate="minDate" :maxDate="maxDate2" title="获得时间" :show="certificate_show" v-model="newDate" ref="datetimePicker" @confirm="confirmDate" @cancel="cancel" :formatter="formatter" mode="year-month"></u-datetime-picker>
 				</view>
 				<view class="cell">
 					<view class="hflex acenter">
@@ -137,15 +137,21 @@
 							<view class="label2">只能上传一张</view>
 						</view>
 					</view>
-					<u-upload :fileList="certificate.certificate_img" @afterRead="afterRead" @delete="deletePic" :maxCount="1" name="1" multiple :previewFullImage="true" width="100" height="100">
-						<image src="https://ship-expert.zhousi.hdlkeji.com/common/upload.png" style="width: 200rpx;height: 200rpx;"></image>
+					<u-upload :fileList="certificate.img" @afterRead="afterRead" @delete="deletePic" :maxCount="1" name="1" :previewFullImage="true" width="100" height="100">
+						<!-- <image src="https://ship.shipcc.cn/common/upload.png" style="width: 200rpx;height: 200rpx;"></image> -->
+						<view class="vflex acenter jcenter upload_bg" style="background: #F4F4F4;border-radius: 16rpx;width: 200rpx;height: 200rpx;">
+							<u-icon name="plus" color="#ADADAD" size="32"></u-icon>
+							<view class="" style="font-size: 26rpx;padding-top: 8px;color: #ADADAD;">
+								上传图片
+							</view>
+						</view>
 					</u-upload>
-					<!-- <view class="upload vflex acenter jcenter" @click="uploadImg" v-if="certificate.certificate_img == ''">
+					<!-- <view class="upload vflex acenter jcenter" @click="uploadImg" v-if="certificate.img == ''">
 						<u-icon name="plus" color="#CACACA" size="25"></u-icon>
 						<view class="text_style1">添加图片</view>
 					</view>
 					<view v-else>
-						<image :src="certificate.certificate_img" mode="aspectFill" class="upload"></image>
+						<image :src="certificate.img" mode="aspectFill" class="upload"></image>
 					</view> -->
 				</view>
 			</view>
@@ -191,10 +197,7 @@
 					work_time: '',
 					work_nature: '',
 				},
-				salaryList: [
-					['1k','2k','3k','4k','5k','6k','7k','8k'],
-					['3k','4k','5k','6k','7k','8k','9k','10k']
-				],
+				salaryList: [],
 				natureList: [
 					['兼职','全职']
 				],
@@ -210,12 +213,12 @@
 				},
 				certificate: {
 					certificate_name: '',
-					certificate_date: '',
-					certificate_img: [],
+					gain_time: '',
+					img: [],
 				},
 				skills: {
-					skills_name: '',
-					skills_degree:'',
+					skill_name: '',
+					degree:'',
 				},
 				degreeList: [
 					['熟悉','掌握','精通']
@@ -230,7 +233,9 @@
 				education_show: false,
 				certificate_show: false,
 				newDate: Number(new Date()),
-				minDate: new Date('1980-01-01'),
+				minDate: 0,
+				maxDate: 0,
+				maxDate2: 0,
 				id: ''
 			}
 		},
@@ -239,16 +244,35 @@
 			if(options.id) {
 				that.id = options.id
 			}
-			console.log(that.id);
 			that.index = options.index
+			let date = new Date().getTime()
+			that.getTime()
 			that.isInfo(options.index)
 			that.getData()
+			that.getsalary()
 		},
 		onReady() {
 			// 微信小程序需要用此写法
 			this.$refs.datetimePicker.setFormatter(this.formatter)
 		},
 		methods: {
+			getsalary() {
+				var list1 = []
+				for(var i = 1;i<= 100 ;i++) {
+					list1.push(i+'k')
+				}
+				that.salaryList.push(list1)
+				that.salaryList.push(list1)
+			},
+			getTime() {
+				let date = new Date()
+				let year = date.getFullYear()
+				let month = date.getMonth() + 1;
+				let day = date.getDate();
+				that.maxDate = (new Date((year-18) + '-' + month + '-' + day) ).getTime()
+				that.minDate = (new Date((year-65) + '-' + month + '-' + day) ).getTime()
+				that.maxDate2 = new Date().getTime()
+			},
 			// 判断要修改的信息
 			isInfo(index) {
 				var text = ''
@@ -285,11 +309,32 @@
 				for(var i=0;i<experienceList.length;i++) {
 					if(that.id == experienceList[i].id) {
 						that.experience =experienceList[i]
+						console.log(that.experience);
+					}
+				}
+				var skillsList = prePage.$vm.skills
+				for(var i=0;i<skillsList.length;i++) {
+					if(that.id == skillsList[i].id) {
+						that.skills =skillsList[i].content
+						console.log(that.skills);
 					}
 				}
-				console.log(that.experience);
-				var skills = prePage.$vm.skills
-				var certificate = prePage.$vm.certificate
+				var img = ''
+				var certificateList = prePage.$vm.certificate
+				for(var i=0;i<certificateList.length;i++) {
+					if(that.id == certificateList[i].id) {
+						that.certificate = certificateList[i].content
+						img = certificateList[i].content.img
+					}
+				}
+				if(that.certificate.img) {
+					that.certificate.img = []
+					that.certificate.img.push({
+						url: img
+					})
+				} else {
+					that.certificate.img = []
+				}
 			},
 			// 保存
 			save() {
@@ -324,27 +369,48 @@
 					}
 				}
 				if(that.index == '2') {
-					if($api.formCheck(that.job_inte.post,"required") && $api.formCheck(that.job_inte.work_address,"required") && $api.formCheck(that.job_inte.salary,"required")
-					 && $api.formCheck(that.job_inte.work_time,"required") && $api.formCheck(that.job_inte.work_nature,"required")) {
-						$api.req({
-							url: '/data/api.auth.DemandLabor/applyjob',
-							method: 'POST',
-							data: {
-								type: that.index,
-								job_application: that.job_inte.post,
-								scope_work_area: that.job_inte.work_address,
-								monthly_salary: that.job_inte.salary,
-								working_time: that.job_inte.work_time,
-								work_nature: that.job_inte.work_nature,
-							}
-						}, function(res) {
-							uni.hideLoading()
-							if(res.code == 1) {
-								$api.info(res.info)
-								$api.jump(-1)
-							}
-						})
+					if(!that.job_inte.post) {
+						$api.info('请填写你应聘的岗位')
+						return
+					}
+					if(!that.job_inte.work_address) {
+						$api.info('请填写工作范围')
+						return
+					}
+					if(!that.job_inte.salary) {
+						$api.info('请选择期望薪资')
+						return
 					}
+					if(!that.job_inte.work_time) {
+						$api.info('请输入工作时间')
+						return
+					}
+					if(!that.job_inte.work_nature) {
+						$api.info('请选择用工性质')
+						return
+					}
+					$api.req({
+						url: '/data/api.auth.DemandLabor/applyjob',
+						method: 'POST',
+						data: {
+							type: that.index,
+							job_application: that.job_inte.post,
+							scope_work_area: that.job_inte.work_address,
+							monthly_salary: that.job_inte.salary,
+							working_time: that.job_inte.work_time,
+							work_nature: that.job_inte.work_nature,
+						}
+					}, function(res) {
+						uni.hideLoading()
+						if(res.code == 1) {
+							$api.info(res.info)
+							$api.jump(-1)
+						}
+					})
+					/* if($api.formCheck(that.job_inte.post,"required") && $api.formCheck(that.job_inte.work_address,"required") && $api.formCheck(that.job_inte.salary,"required")
+					 && $api.formCheck(that.job_inte.work_time,"required") && $api.formCheck(that.job_inte.work_nature,"required")) {
+						
+					} */
 				}
 				if(that.index == '3') {
 					if($api.formCheck(that.experience.content.company_name,"required") && $api.formCheck(that.experience.content.position_name,"required") && $api.formCheck(that.experience.content.on_job_start,"required")
@@ -376,10 +442,10 @@
 					}
 				}
 				if(that.index == '4') {
-					if($api.formCheck(that.skills.skills_name,"required") && $api.formCheck(that.skills.skills_degree,"required")) {
+					if($api.formCheck(that.skills.skill_name,"required") && $api.formCheck(that.skills.degree,"required")) {
 						var professional_skills = {
-							skill_name: that.skills.skills_name,
-							degree: that.skills.skills_degree
+							skill_name: that.skills.skill_name,
+							degree: that.skills.degree
 						}
 						professional_skills = JSON.stringify(professional_skills)
 						$api.req({
@@ -400,29 +466,27 @@
 					}
 				}
 				if(that.index == '5') {
-					if($api.formCheck(that.certificate.certificate_name,"required") && $api.formCheck(that.certificate.certificate_date,"required")) {
-						var certificate = {
-							certificate_name: that.certificate.certificate_name,
-							gain_time: that.certificate.certificate_date,
-							img: that.certificate.certificate_img[0].url
-						}
-						certificate = JSON.stringify(certificate)
-						$api.req({
-							url: '/data/api.auth.DemandLabor/applyjob',
-							method: 'POST',
-							data: {
-								type: that.index,
-								child_id: that.id,
-								certificate: certificate
-							}
-						}, function(res) {
-							uni.hideLoading()
-							if(res.code == 1) {
-								$api.info(res.info)
-								$api.jump(-1)
-							}
-						})
+					var certificate = {
+						certificate_name: that.certificate.certificate_name,
+						gain_time: that.certificate.gain_time,
+						img: that.certificate.img.length>0 ? that.certificate.img[0].url : null
 					}
+					certificate = JSON.stringify(certificate)
+					$api.req({
+						url: '/data/api.auth.DemandLabor/applyjob',
+						method: 'POST',
+						data: {
+							type: that.index,
+							child_id: that.id,
+							certificate: certificate
+						}
+					}, function(res) {
+						uni.hideLoading()
+						if(res.code == 1) {
+							$api.info(res.info)
+							$api.jump(-1)
+						}
+					})
 				}
 				// $api.jump(-1)
 			},
@@ -465,7 +529,7 @@
 			},
 			// 删除图片
 			deletePic(event) {
-				that.certificate.certificate_img.splice(event.index, 1)
+				that.certificate.img.splice(event.index, 1)
 			},
 			// 新增图片
 			async afterRead(event) {
@@ -475,9 +539,10 @@
 				})
 				// 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
 				let lists = [].concat(event.file)
-				let imgListLen = that.certificate.certificate_img.length
+				// that.certificate.img = []
+				let imgListLen = that.certificate.img.length
 				lists.map((item) => {
-					that.certificate.certificate_img.push({
+					that.certificate.img.push({
 						...item,
 						status: 'uploading',
 						message: '上传中'
@@ -485,8 +550,8 @@
 				})
 				for (let i = 0; i < lists.length; i++) {
 					const result = await that.uploadFilePromise(lists[i].url)
-					let item = that.certificate.certificate_img[imgListLen]
-					that.certificate.certificate_img.splice(imgListLen, 1, Object.assign(item, {
+					let item = that.certificate.img[imgListLen]
+					that.certificate.img.splice(imgListLen, 1, Object.assign(item, {
 						status: 'success',
 						message: '',
 						url: result.url
@@ -495,6 +560,7 @@
 					if(lists.length - 1 == i) {
 						uni.hideLoading()
 					}
+					console.log(that.certificate.img);
 				}
 			},
 			// 上传图片
@@ -529,7 +595,7 @@
 					sourceType: ['album'], //从相册选择
 					success: function (res) {
 						console.log(res.tempFilePaths);
-						that.certificate.certificate_img = res.tempFilePaths[0]
+						that.certificate.img = res.tempFilePaths[0]
 					},
 				})
 			}, */
@@ -560,10 +626,10 @@
 					case 'time2' :
 						that.show_time2 = true;
 						break;
-					case 'skills_degree' :
+					case 'degree' :
 						that.degree_show = true;
 						break;
-					case 'certificate_date' :
+					case 'gain_time' :
 						that.certificate_show = true;
 						break;
 					case 'education' :
@@ -598,8 +664,9 @@
 				console.log(e);
 				var index1 = e.indexs[0]
 				var index2 = e.indexs[1]
-				if (index1 - index2 > 2) {
-					$api.info('请选择正确的薪资范围')
+				if (index1 > index2) {
+					that.job_inte.salary = e.value[1] + '-' + e.value[0]
+					that.cancel()
 				} else {
 					that.job_inte.salary = e.value[0] + '-' + e.value[1]
 					that.cancel()
@@ -624,12 +691,12 @@
 			},
 			// 选择技能掌握程度
 			confirmSkill(e) {
-				that.skills.skills_degree = e.value[0]
+				that.skills.degree = e.value[0]
 				that.cancel()
 			},
 			// 选择证书获得时间
 			confirmDate(e) {
-				that.certificate.certificate_date = $api.formatDate(e)
+				that.certificate.gain_time = $api.formatDate(e)
 				that.cancel()
 			},
 			/* // 选择学历

+ 62 - 18
page_index/pages/demand/publish.vue

@@ -1,10 +1,10 @@
 <template>
 	<view class="content">
 		<view class="box" v-if="JSON.stringify(base_info) === '{}'">
-			<view class="box_title">基本信息</view>
+			<view class="box_title required ">基本信息</view>
 			<view class="hflex acenter jbetween box_info">
 				<view class="hflex acenter">
-					<image src="/static/images/index/demand/icon1.png" class="box_icon"></image>
+					<image src="@/static/images/index/demand/icon1.png" class="box_icon"></image>
 					<view class="vflex">
 						<view class="box_title">完善个人信息</view>
 						<view class="box_subTitle">让更多人更好的了解你</view>
@@ -49,10 +49,10 @@
 			<image :src="base_info.avatar" mode="aspectFill" class="avatar"></image>
 		</view>
 		<view class="box" v-if="JSON.stringify(job_inte) == '{}'">
-			<view class="box_title">求职意向</view>
+			<view class="box_title required">求职意向</view>
 			<view class="hflex acenter jbetween box_info">
 				<view class="hflex acenter">
-					<image src="/static/images/index/demand/icon1.png" class="box_icon"></image>
+					<image src="@/static/images/index/demand/icon2.png" class="box_icon"></image>
 					<view class="vflex">
 						<view class="box_title">完善求职意向</view>
 						<view class="box_subTitle">我们会更精准的为你推荐</view>
@@ -84,10 +84,10 @@
 			</view>
 		</view>
 		<view class="box" v-if="experience.length == 0">
-			<view class="box_title">工作经历</view>
+			<view class="box_title required">工作经历</view>
 			<view class="hflex acenter jbetween box_info">
 				<view class="hflex acenter">
-					<image src="/static/images/index/demand/icon1.png" class="box_icon"></image>
+					<image src="@/static/images/index/demand/icon3.png" class="box_icon"></image>
 					<view class="vflex">
 						<view class="box_title">完善工作经历</view>
 						<view class="box_subTitle">我们会跟精准的为你推荐</view>
@@ -105,7 +105,7 @@
 				</view>
 			</view>
 			<block v-for="(item,index) in experience" :key="index">
-				<view class="padT-26" @click="editInfo(item.id)">
+				<view class="padT-26" @click="editInfo(item.id,3)">
 					<view class="hflex acenter jbetween">
 						<view class="box_title">{{item.content.company_name}}</view>
 						<u-icon name="arrow-right" color="#555555" size="12"></u-icon>
@@ -114,7 +114,10 @@
 						<view class="text_style1 padR-24">{{item.content.on_job_start}}-{{item.content.on_job_end}}</view>
 						<view class="text_style1">{{item.content.position_name}}</view>
 					</view>
-					<view class="hflex fwrap padT-26 text_style2">工作内容:{{item.content.job_description}}</view>
+					<view class="hflex acenter jbetween">
+						<view class="hflex fwrap padT-26 text_style2">工作内容:{{item.content.job_description}}</view>
+						<u-icon name="trash-fill" size="18" @tap.stop="del_item(index)"></u-icon>
+					</view>
 				</view>
 			</block>
 		</view>
@@ -122,7 +125,7 @@
 			<view class="box_title">专业技能</view>
 			<view class="hflex acenter jbetween box_info">
 				<view class="hflex acenter">
-					<image src="/static/images/index/demand/icon1.png" class="box_icon"></image>
+					<image src="@/static/images/index/demand/icon4.png" class="box_icon"></image>
 					<view class="vflex">
 						<view class="box_title">添加专业技能</view>
 						<view class="box_subTitle">把你的强项展示一下吧</view>
@@ -141,7 +144,7 @@
 			</view>
 			<view class="hflex acenter fwrap">
 				<block v-for="(item,index) in skills" :key="index">
-					<view class="hflex acenter jbetween item_box2">
+					<view class="hflex acenter jbetween item_box2" @click="editInfo(item.id,4)">
 						<view class="text_style1">{{item.content.skill_name}}</view>
 						<view class="text_style1">{{item.content.degree}}</view>
 						<image src="/static/images/index/demand/detele.png" class="detele" @click="deleteOpen(item.id)"></image>
@@ -153,7 +156,7 @@
 			<view class="box_title">资质证书</view>
 			<view class="hflex acenter jbetween box_info">
 				<view class="hflex acenter">
-					<image src="/static/images/index/demand/icon1.png" class="box_icon"></image>
+					<image src="@/static/images/index/demand/icon5.png" class="box_icon"></image>
 					<view class="vflex">
 						<view class="box_title">添加资质证书</view>
 						<view class="box_subTitle">把你的强项展示一下吧</view>
@@ -172,10 +175,10 @@
 			</view>
 			<view class="">
 				<block v-for="(item,index) in certificate" :key="index">
-					<view class="hflex aend item_box3">
-						<view class="box_title padR-24">{{item.content.certificate_name}}</view>
+					<view class="hflex aend fwrap item_box3" @click="editInfo(item.id,5)">
+						<view style="width: 150px;" class="box_title text_hide padR-24">{{item.content.certificate_name}}</view>
 						<view class="text_style1">{{item.content.gain_time}}</view>
-						<image src="/static/images/index/demand/detele.png" class="detele" @click="deleteSure(item.id)"></image>
+						<image src="/static/images/index/demand/detele.png" class="detele" @click.stop="deleteSure(item.id)"></image>
 					</view>
 				</block>
 			</view>
@@ -197,7 +200,7 @@
 				<view class="popu_label">身份证号</view>
 				<u-input v-model="IDNumber" placeholder="请输入身份证号" border="bottom"></u-input>
 				<view class="popu_label">手机号码</view>
-				<u-input v-model="phone" placeholder="请输入手机号码" border="bottom"></u-input>
+				<u-input v-model="phone" disabled placeholder="请输入手机号码" border="bottom"></u-input>
 				<view class="popu_label">验证码</view>
 				<view class="hflex acenter jbetween">
 					<u-input v-model="code" placeholder="请输入验证码" border="none"></u-input>
@@ -236,7 +239,7 @@
 				certificate: [],
 				show: false,
 				IDNumber: '',
-				phone: '',
+				phone: uni.getStorageSync('phone'),
 				code: '',
 				tips: '',
 				seconds: 60,
@@ -352,6 +355,19 @@
 			},
 			// 打开弹窗
 			open() {
+				if(JSON.stringify(that.base_info) == '{}') {
+					$api.info('请先完善基本信息')
+					return
+				}
+				if(JSON.stringify(that.job_inte) == '{}') {
+					$api.info('请先完善求职意向')
+					return
+				}
+				if(that.experience.length == 0) {
+					$api.info('请先完善工作经历')
+					return
+				}
+				
 				// console.log(uni);
 				that.show = true
 				
@@ -366,8 +382,23 @@
 				$api.jump('/page_index/pages/demand/perfect?index='+index)
 			},
 			// 修改工作经历
-			editInfo(id) {
-				$api.jump('/page_index/pages/demand/perfect?index=3&id='+ id)
+			editInfo(id,index) {
+				$api.jump('/page_index/pages/demand/perfect?index=3&id='+ id + '&index=' + index)
+			},
+			// 删除工作经历
+			del_item(index) {
+				
+				$api.req({
+					url: '/data/api.auth.DemandLabor/delapplyjobchild',
+					method: 'POST',
+					data: {
+						id: that.experience[index].id
+					}
+				}, function(res) {
+					if(res.code == 1) {
+						that.getData()
+					}
+				})
 			},
 			// 复制
 			copy(value) {
@@ -455,6 +486,19 @@
 				color: #222222;
 				padding-right: 24rpx;
 			}
+			.required {
+				position: relative;
+				padding-left: 15rpx;
+			}
+			.required::after {
+				content: '*';
+				position: absolute;
+				top: 5rpx;
+				left: 0;
+				font-size: 26rpx;
+				font-weight: 400;
+				color: #FF3232;
+			}
 			.name {
 				font-size: 40rpx;
 				font-weight: 500;

+ 43 - 23
page_index/pages/demand/recruitDetail.vue

@@ -3,11 +3,13 @@
 		<view class="box">
 			<view class="hflex acenter jbetween">
 				<view class="top">{{pageData.title}}</view>
-				<view class="text_blue">{{pageData.salary_start}}-{{pageData.salary_end}}</view>
+				<view class="text_blue">{{pageData.salary_start}}
+				{{(pageData.salary_start + '').indexOf('k') != -1 || (pageData.salary_start + '').indexOf('K') != -1 ? '' : 'k'}}-{{pageData.salary_end}}
+				{{(pageData.salary_end + '').indexOf('k') != -1 || (pageData.salary_end + '').indexOf('K') != -1 ? '' : 'k'}}</view>
 			</view>
 			<view class="hflex acenter fwrap">
 				<view class="box_item" v-if="pageData.number_person">招{{pageData.number_person}}人</view>
-				<view class="box_item" v-if="pageData.experience">{{pageData.experience}}</view>
+				<!-- <view class="box_item" v-if="pageData.experience">{{pageData.experience}}</view> -->
 				<view class="box_item" v-if="pageData.schooling">{{pageData.schooling}}</view>
 				<view class="box_item" v-if="pageData.age">{{pageData.age}}</view>
 				<view class="box_item" v-if="pageData.sex">{{pageData.sex}}性</view>
@@ -44,7 +46,7 @@
 				</view>
 			</view>
 		</view>
-		<view class="box">
+		<view class="box" v-if="pageData.necessary_skills">
 			<view class="box_title">必备技能</view>
 			<view class="">
 				<view class="text2">{{pageData.necessary_skills}}</view>
@@ -52,6 +54,17 @@
 					<view class="text2">{{index+1}}.{{item.name}}</view>
 				</block> -->
 			</view>
+		</view>
+		<view class="box" v-if="pageData.experience">
+			<view class="box_title">经验</view>
+			<view class="">
+				<view class="text2">{{pageData.experience}}</view>
+				<!-- <block v-for="(item,index) in pageData.necessary_skills" :key="index">
+					<view class="text2">{{index+1}}.{{item.name}}</view>
+				</block> -->
+			</view>
+		</view>
+		<view class="box" v-if="pageData.certificate">
 			<view class="box_title" style="padding-top: 20rpx;">证书</view>
 			<view class="hflex acenter">
 				<view class="text2">{{pageData.certificate}}</view>
@@ -60,11 +73,11 @@
 				</block> -->
 			</view>
 		</view>
-		<view class="box">
+		<view class="box" v-if="pageData.welfare_benefits">
 			<view class="box_title">福利待遇</view>
 			<view class="text2">{{pageData.welfare_benefits}}</view>
 		</view>
-		<view class="box" style="margin-bottom: 186rpx;">
+		<view class="box" v-if="pageData.remark" style="margin-bottom: 186rpx;">
 			<view class="box_title">备注</view>
 			<view class="text2">{{pageData.remark}}</view>
 		</view>
@@ -76,18 +89,20 @@
 					<view class="text_style1">收藏</view>	
 				</view>	
 				<view class="vflex acenter" @click="share('Poster1')">
-					<image src="https://ship-expert.zhousi.hdlkeji.com/common/share.png" mode="" class="bottom_img"></image>	
+					<image src="https://ship.shipcc.cn/common/share.png" mode="" class="bottom_img"></image>	
 					<view class="text_style1">分享</view>	
 				</view>	
 			</view>
-			<view class="left_btn hflex acenter jcenter" @click="like">
-				<u-icon name="heart" color="#506DFF" size="20" v-if="pageData.is_like == 0"></u-icon>
-				<u-icon name="heart-fill" color="#506DFF" size="20" v-else></u-icon>
-				<view class="btn_text">感兴趣</view>
-			</view>
-			<view class="right_btn hflex acenter jcenter" @click="into_chatroom" v-if="pageData.huanxinID">
-				<image src="https://ship-expert.zhousi.hdlkeji.com/common/chat.png" class="btn_icon"></image>
-				<view class="btn_text2">立即沟通</view>
+			<view class="hflex acenter">
+				<view class="left_btn hflex acenter jcenter" :class="pageData.huanxinID ? '' : 'left_btn1'" @click="like">
+					<u-icon name="heart" color="#506DFF" size="20" v-if="pageData.is_like == 0"></u-icon>
+					<u-icon name="heart-fill" color="#506DFF" size="20" v-else></u-icon>
+					<view class="btn_text">感兴趣</view>
+				</view>
+				<view class="right_btn hflex acenter jcenter" @click="into_chatroom" v-if="pageData.huanxinID">
+					<image src="https://ship.shipcc.cn/common/chat.png" class="btn_icon"></image>
+					<view class="btn_text2">立即沟通</view>
+				</view>
 			</view>
 		</view>
 		<view class="share_content" :class="share_show?'':'share_content1'">
@@ -97,7 +112,9 @@
 					<image class="Poster1 pos_img" data-etype="image" :data-enode="posImg" :src="posImg"></image>
 					<view class="vflex">
 						<view class="Poster1 pos_title" :data-enode="pageData.title">{{pageData.title}}</view>
-						<view class="Poster1 pos_subtitle" :data-enode="pageData.salary_start+'-'+pageData.salary_end">{{pageData.salary_start}}-{{pageData.salary_end}}</view>
+						<view class="Poster1 pos_subtitle" :data-enode="pageData.salary_start + (pageData.salary_start + '').indexOf('k') && (pageData.salary_start + '').indexOf('K') != -1 ? '' : 'k'+'-'+pageData.salary_end + (pageData.salary_end + '').indexOf('k') && (pageData.salary_end + '').indexOf('K') != -1 ? '' : 'k'">{{pageData.salary_start}}
+						{{(pageData.salary_start + '').indexOf('k') && (pageData.salary_start + '').indexOf('K') != -1 ? '' : 'k'}}-{{pageData.salary_end}}
+						{{(pageData.salary_end + '').indexOf('k') && (pageData.salary_end + '').indexOf('K') != -1 ? '' : 'k'}}</view>
 					</view>
 				</view>
 				<view class="Poster1 pos_title2" data-enode="职位描述">职位描述</view>
@@ -131,15 +148,15 @@
 			<view class="share_bottom">
 				<view class="hflex acenter jcenter">
 					<button class="vflex acenter jcenter bottom_item" open-type="share">
-						<image src="https://ship-expert.zhousi.hdlkeji.com/common/wx.png" class="item_icon"></image>
+						<image src="https://ship.shipcc.cn/common/wx.png" class="item_icon"></image>
 						<view class="item_text">微信好友</view>
 					</button>
 					<!-- <button class="vflex acenter jcenter bottom_item" open-type="share">
-						<image src="https://ship-expert.zhousi.hdlkeji.com/common/moments.png" class="item_icon"></image>
+						<image src="https://ship.shipcc.cn/common/moments.png" class="item_icon"></image>
 						<view class="item_text">朋友圈</view>
 					</button> -->
 					<view class="vflex acenter jcenter bottom_item" @click="saveImg">
-						<image src="https://ship-expert.zhousi.hdlkeji.com/common/download.png" class="item_icon"></image>
+						<image src="https://ship.shipcc.cn/common/download.png" class="item_icon"></image>
 						<view class="item_text">保存图片</view>
 					</view>
 				</view>
@@ -158,12 +175,12 @@
 				pageData: {},
 				id: '',
 				share_show: false,
-				posImg: 'https://ship-expert.zhousi.hdlkeji.com/common/company2.png',
+				posImg: 'https://ship.shipcc.cn/common/company2.png',
 				list: {},
 				style: {
-					img1: 'https://ship-expert.zhousi.hdlkeji.com/common/down2.png',
-					img2: 'https://ship-expert.zhousi.hdlkeji.com/common/line.png',
-					code: 'https://ship-expert.zhousi.hdlkeji.com/common/code.jpg'
+					img1: 'https://ship.shipcc.cn/common/down2.png',
+					img2: 'https://ship.shipcc.cn/common/line.png',
+					code: 'https://ship.shipcc.cn/common/code.jpg'
 				},
 			}
 		},
@@ -425,6 +442,9 @@
 				background: #F1F6FF;
 				border-radius: 42rpx;
 			}
+			.left_btn1 {
+				width: 500rpx;
+			}
 			.btn_text {
 				font-size: 32rpx;
 				font-weight: 500;
@@ -433,7 +453,7 @@
 				padding-left: 10rpx;
 			}
 			.right_btn {
-				width: 270rpx;
+				width: 230rpx;
 				height: 80rpx;
 				background: #506DFF;
 				border-radius: 42rpx;

+ 8 - 8
page_index/pages/demand/wantedDetail.vue

@@ -115,7 +115,7 @@
 					<view class="text_style1">收藏</view>	
 				</view>	
 				<view class="vflex acenter" @click="share('Poster1')">
-					<image src="https://ship-expert.zhousi.hdlkeji.com/common/share.png" mode="" class="bottom_img"></image>	
+					<image src="https://ship.shipcc.cn/common/share.png" mode="" class="bottom_img"></image>	
 					<view class="text_style1">分享</view>	
 				</view>	
 			</view>
@@ -125,7 +125,7 @@
 				<view class="btn_text">感兴趣</view>
 			</view> 
 			<view class="right_btn hflex acenter jcenter" @click="into_chatroom" v-if="pageData.huanxinID">
-				<image src="https://ship-expert.zhousi.hdlkeji.com/common/chat.png" class="btn_icon"></image>
+				<image src="https://ship.shipcc.cn/common/chat.png" class="btn_icon"></image>
 				<view class="btn_text2">立即沟通</view>
 			</view>
 		</view>
@@ -168,15 +168,15 @@
 			<view class="share_bottom">
 				<view class="hflex acenter jcenter">
 					<button class="vflex acenter jcenter bottom_item" open-type="share">
-						<image src="https://ship-expert.zhousi.hdlkeji.com/common/wx.png" class="item_icon"></image>
+						<image src="https://ship.shipcc.cn/common/wx.png" class="item_icon"></image>
 						<view class="item_text">微信好友</view>
 					</button>
 					<!-- <button class="vflex acenter jcenter bottom_item" open-type="share">
-						<image src="https://ship-expert.zhousi.hdlkeji.com/common/moments.png" class="item_icon"></image>
+						<image src="https://ship.shipcc.cn/common/moments.png" class="item_icon"></image>
 						<view class="item_text">朋友圈</view>
 					</button> -->
 					<view class="vflex acenter jcenter bottom_item" @click="saveImg">
-						<image src="https://ship-expert.zhousi.hdlkeji.com/common/download.png" class="item_icon"></image>
+						<image src="https://ship.shipcc.cn/common/download.png" class="item_icon"></image>
 						<view class="item_text">保存图片</view>
 					</view>
 				</view>
@@ -215,9 +215,9 @@
 				share_show: false,
 				list: {},
 				style: {
-					img1: 'https://ship-expert.zhousi.hdlkeji.com/common/down2.png',
-					img2: 'https://ship-expert.zhousi.hdlkeji.com/common/line.png',
-					code: 'https://ship-expert.zhousi.hdlkeji.com/common/code.jpg'
+					img1: 'https://ship.shipcc.cn/common/down2.png',
+					img2: 'https://ship.shipcc.cn/common/line.png',
+					code: 'https://ship.shipcc.cn/common/code.jpg'
 				},
 				pageData: {}
 			}

+ 33 - 6
page_index/pages/index/changeCity.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="content">
-		<u-index-list @select="select">
+		<u-index-list @select="selectList">
 			<view class="top">
 				<u-search placeholder="请输入城市名" v-model="searchCity" :showAction="false" @change="search"></u-search>
 				<view class="result" v-show="show">
@@ -10,9 +10,16 @@
 			
 			<view class="title">
 				<view class="title_text">定位城市</view>
-				<view class="hflex acenter jcenter city_box active" @click="selectCity(city)">
-					<u-icon name="map-fill" color="#fff" size="14"></u-icon>
-					<view style="margin-left: 8rpx;">{{city}}</view>
+				<view class=" hflex acenter">
+					<view class="hflex acenter jcenter city_box " :class="select ? 'active' : ''" @click="selectCity(city)">
+						<u-icon name="map-fill" color="#fff" size="14" v-if="select"></u-icon>
+						<u-icon name="map-fill" color="#506DFF" size="14" v-else></u-icon>
+						<view style="margin-left: 8rpx;">{{city}}</view>
+					</view>
+					<view class="hflex acenter jcenter city_box" :class="select ? '' : 'active'" @click="selectCity('全国')">
+						<!-- <u-icon name="map-fill" color="#fff" size="14"></u-icon> -->
+						<view style="margin-left: 8rpx;">全国</view>
+					</view>
 				</view>
 			</view>
 			<view class="title vflex fwrap" v-if="history.length > 0">
@@ -49,6 +56,7 @@
 
 <script>
 	import $api from '@/static/js/api.js'
+	const app = getApp().globalData
 	var that = ''
 	export default {
 		data() {
@@ -60,16 +68,25 @@
 				indexList: ["A", "B", "C","D","E","F","G","H","I","J","K","L","M","N","O","P",'Q','R','S','T',"U","V",'W','X','Y','Z'],
 				itemArr: [],
 				show: false,
-				result: {}
+				result: {},
+				select: true,
 			}
 		},
 		onLoad(options) {
 			that = this
 			that.city = uni.getStorageSync('locationCity')
+			if(uni.getStorageSync('city') == '全国') {
+				that.select = false
+			} else {
+				that.select = true
+			}
 			that.history = uni.getStorageSync('historyCity')
 			if(that.history == '') {
 				that.history = []
 			}
+			if(!uni.getStorageSync('locationCity')) {
+				this.getLocation()
+			}
 			this.getCity()
 		},
 		onPageScroll(e) {
@@ -77,6 +94,16 @@
 			// this.scrollTop = e.scrollTop;
 		},
 		methods: {
+			getLocation() {
+				return new Promise((resolve, reject) => {
+					app.getLoca().then(res=> {
+						console.log('getLoaction',res);
+						that.city = res[0].regeocodeData.addressComponent.city
+						uni.setStorageSync('city',that.city)
+						uni.setStorageSync('locationCity',that.city)
+					})
+				})
+			},
 			// 获取城市信息
 			getCity() {
 				$api.req({
@@ -120,7 +147,7 @@
 				}) */
 			},
 			// 选择索引
-			select(e) {
+			selectList(e) {
 				console.log("select",e);
 			},
 			// 选择城市

+ 501 - 0
page_index/pages/index/ggDetail.vue

@@ -0,0 +1,501 @@
+<template>
+	<view class="content">
+		<view class="tile">{{pageData.title}}</view>
+		<view class="hflex acenter " style="box-sizing: border-box;padding: 0 30rpx;">
+			<view class="img_box" v-if="pageData.user">
+				<image :src="pageData.user.avatar" mode="aspectFill" class="avatar"></image>
+				<view class="type">V</view>
+			</view>
+			<!-- <view class="text_style1">{{pageData.source}}</view> -->
+		</view>
+		<!-- <image :src="pageData.img" class="img" v-if="pageData.image"></image> -->
+		<u-parse :content="pageData.content" style="box-sizing: border-box;padding: 0 30rpx;"></u-parse>
+		<!-- <video :src="pageData.video" play-btn-position="center" class="video" v-if="pageData.video"></video> -->
+		<view class="date">发布于{{pageData.create_time}}</view>
+		<view class="comment" v-if="false">
+			<view class="comment_title">评论{{comment.total?comment.total:''}}</view>
+			<view v-if="comment.total == 0" class="hflex acenter jcenter comment_none">暂无评论</view>
+			<view v-else>
+				<block v-for="(item,index) in comment.data" :key="index">
+					<view class="hflex">
+						<image :src="item.user.headimg" class="headimg"></image>
+						<view class="comment_right">
+							<view class="hflex acenter jbetween">
+								<view class="comment_name">{{item.user.nickname}}</view>
+								<view class="hflex acenter" style="padding-top: 16rpx;" v-if="login && item.user.id == userId" @click="del(index)">
+									<u-icon name="trash" size="16"></u-icon>
+									<view class="del">删除</view>
+								</view>
+							</view>
+							<view class="comment_content">{{item.content}}</view>
+							<view class="comment_date">{{item.create_time}}</view>
+						</view>
+					</view>
+				</block>
+			</view>
+		</view>
+		<view class="" style="height: 166rpx;">
+			
+		</view>
+		<view class="bottom hflex acenter jbetween">
+			<button open-type="share" class="btn">分享</button>
+		</view>
+		<view class="bottom hflex acenter jbetween" v-if="false">
+			<view class="hflex acenter" @click="getLike">
+				<image src="https://ship.shipcc.cn/common/dianzan1.png" class="dianzan" v-if="!pageData.is_liked"></image>
+				<image src="https://ship.shipcc.cn/common/dianzan2.png" class="dianzan" v-else></image>
+				<view class="dz_text">{{!pageData.is_liked?'点赞':pageData.likes_count}}</view>
+			</view>
+			<view class="hflex acenter ">
+				<u-input v-model="message" border="none" placeholder="我来说两句" shape="circle" confirmType="send" @confirm="send"></u-input>
+				<image src="https://ship.shipcc.cn/common/comment.png" class="comment_icon" @click="send"></image>
+				<view class="dz_text">{{comment.total == 0?'评论':comment.total}}</view>
+				<view class="btn2" @click="send">发送</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import $api from '@/static/js/api.js'
+	var that = ''
+	export default {
+		data() {
+			return {
+				pageData: {
+				},
+				message: '',
+				name: '船百知官方账号',
+				comment: [],
+				id: '',
+				page: 1,
+				limit: 10,
+				total: 10,
+				login: false,
+				userId: '',
+			}
+		},
+		onLoad(options) {
+			that = this
+			that.id = options.id
+			that.getData()
+			// if(uni.getStorageSync('id')) {
+			// 	that.userId = uni.getStorageSync('id')
+			// }
+			// if(uni.getStorageSync('token')) {
+			// 	that.login = true
+			// }
+		},
+		onShareAppMessage(res) {
+		    if (res.from === 'button') {// 来自页面内分享按钮
+		      
+		    }
+		    return {
+		      title: '新闻广告详情',
+		      path: "/page_index/pages/index/ggDetail?id=" + this.id
+		    }
+		  },
+		methods: {
+			getData() {
+				$api.req({
+					url: '/data/api.Xw/ad_show',
+					data: {
+						id: that.id
+					}
+				}, function(res) {
+					if(res.code == 1) {
+						that.pageData = res.data
+						// that.getComment()
+					}
+				})
+			},
+			getComment() {
+				$api.req({
+					url: '/data/api.Xw/comments',
+					data: {
+						id: that.id,
+						page: that.page,
+						limit: that.limit
+					}
+				}, function(res) {
+					if(res.code == 1) {
+						that.comment = res.data
+						that.total = res.data.total
+					}
+				})
+			},
+			getLike() {
+				var token = uni.getStorageSync('token')
+				if(!token) {
+					$api.info('请先登录')
+					setTimeout(() =>{
+						$api.jump('/pages/login/password_login')
+					}, 1000)
+					return
+				}
+				if(that.pageData.is_liked) {
+					that.pageData.is_liked = 0
+					that.pageData.likes_count -=1
+				} else {
+					that.pageData.is_liked = 1
+					that.pageData.likes_count +=1
+				}
+				$api.req({
+					url: '/data/api.Xw/like',
+					data: {
+						id: that.id
+					}
+				}, function(res) {
+					if(res.code == 1) {
+						$api.info(res.info)
+					}
+				})
+			},
+			send() {
+				var token = uni.getStorageSync('token')
+				if(!token) {
+					$api.info('请先登录')
+					setTimeout(() =>{
+						$api.jump('/pages/login/password_login')
+					}, 1000)
+					return
+				}
+				$api.req({
+					url: '/data/api.Xw/comment',
+					method: 'POST',
+					data: {
+						id: that.id,
+						content: that.message
+					}
+				}, function(res) {
+					if(res.code == 1) {
+						that.message = ""
+						$api.info(res.info)
+						that.getComment()
+					} else if(res.code == 0) {
+						$api.info('请先登录')
+						setTimeout(() => {
+							$api.jump('/pages/login/password_login')
+						}, 1000)
+					}
+				})
+			},
+			del(index) {
+				$api.req({
+					url: '/data/api.Xw/del_comment',
+					method: 'POST',
+					data: {
+						id: that.comment.data[index].id
+					}
+				}, function(res) {
+					if(res.code == 1) {
+						$api.info('删除成功')
+						that.getComment()
+					} else {
+						$api.info(res.message)
+					}
+				})
+			},
+			onReachBottom() {
+				if (Number(that.page) * Number(that.limit) >= Number(that.total)) {
+					$api.info("没有更多了")
+				} else {
+					that.page++
+					that.getComment()
+				}
+				
+			}
+		},
+	}
+</script>
+
+<style lang="scss" scoped>
+	.content::v-deep {
+		position: relative;
+		background: url('https://ship.shipcc.cn/common/background.png');
+		background-size: 100%;
+		.tile {
+			box-sizing: border-box;
+			padding: 24rpx 30rpx;
+			font-size: 40rpx;
+			font-weight: 500;
+			color: #333333;
+			line-height: 56rpx;
+		}
+		.img_box {
+			width: 56rpx;
+			height: 56rpx;
+			position: relative;
+			.avatar {
+				width: 56rpx;
+				height: 56rpx;
+				border-radius: 50%;
+			}
+			.type {
+				position: absolute;
+				right: 0rpx;
+				bottom: 0rpx;
+				width: 28rpx;
+				height: 28rpx;
+				background: #506DFF;
+				border-radius: 12rpx 4rpx 12rpx 4rpx;
+				font-size: 20rpx;
+				color: #fff;
+				text-align: center;
+				line-height: 28rpx;
+			}
+		}
+		.text_style1 {
+			margin-left: 16rpx;
+			font-size: 26rpx;
+			font-weight: 400;
+			color: #222222;
+			line-height: 36rpx;
+		}
+		.box {
+			margin: 24rpx 30rpx;
+			height: 116rpx;
+			background: #F4F4F4;
+			border-radius: 16rpx;
+			box-sizing: border-box;
+			padding: 24rpx 28rpx;
+			.box_icon {
+				width: 56rpx;
+				height: 68rpx;
+			}
+			.down {
+				width: 48rpx;
+				height: 48rpx;
+				border-radius: 50%;
+				background: #506DFF;
+			}
+		}
+		.date {
+			// margin-bottom: 186rpx;
+			box-sizing: border-box;
+			padding: 0 30rpx 40rpx;
+			border-bottom: 1rpx solid #F5F5F5;
+			font-size: 26rpx;
+			font-weight: 400;
+			color: #989898;
+			line-height: 18px;
+		}
+		.comment {
+			width: 100%;
+			box-sizing: border-box;
+			padding: 40rpx 30rpx;
+			margin-bottom: 186rpx;
+			.comment_title {
+				font-size: 32rpx;
+				font-weight: 500;
+				color: #222222;
+				line-height: 44rpx;
+				padding-bottom: 24rpx;
+			}
+			.comment_none {
+				width: 100%;
+				font-size: 32rpx;
+				font-weight: 400;
+				color: #AFAFAF;
+				line-height: 44rpx;
+				// padding-top: 24rpx;
+			}
+			.headimg {
+				width: 68rpx;
+				height: 68rpx;
+				border-radius: 50%;
+			}
+			.comment_right {
+				width: calc(100% - 88rpx);
+				margin-left: 20rpx;
+				padding: 0 0 20rpx;
+				border-bottom: 1rpx solid #F2F2F2;
+			}
+			.comment_name {
+				font-size: 24rpx;
+				font-weight: 500;
+				color: #222222;
+				line-height: 34rpx;
+			}
+			.del {
+				padding-left: 5rpx;
+			}
+			.comment_content {
+				font-size: 24rpx;
+				font-weight: 400;
+				color: #222222;
+				line-height: 34rpx;
+				padding: 16rpx 0 12rpx;
+			}
+			.comment_date {
+				font-size: 20rpx;
+				font-weight: 400;
+				color: #999999;
+				line-height: 28rpx;
+			}
+		}
+		.bottom {
+			width: 100%;
+			z-index: 9;
+			position: fixed;
+			bottom: 0;
+			height: 166rpx;
+			background: #FFFFFF;
+			box-sizing: border-box;
+			padding: 8rpx 20rpx 74rpx;
+			.dianzan {
+				width: 48rpx;
+				height: 48rpx;
+			}
+			.u-input {
+				background: #F4F4F4 !important;
+				width: 350rpx;
+				height: 72rpx;
+				margin-right: 16rpx;
+				padding: 0 32rpx !important;
+			}
+			.dz_text {
+				font-size: 26rpx;
+				font-weight: 400;
+				color: #333333;
+				line-height: 36rpx;
+				padding-left: 8rpx;
+			}
+			.btn2{
+				
+				box-sizing: border-box;
+				padding: 10rpx 20rpx;
+				background: #506DFF;
+				border-radius: 42rpx;
+				font-size: 32rpx;
+				font-weight: 500;
+				color: #FFFFFF;
+				text-align: center;
+			}
+			.comment_icon {
+				width: 48rpx;
+				height: 48rpx;
+			}
+			.btn {
+				width: 100%;
+				height: 80rpx;
+				background: #506DFF;
+				border-radius: 42rpx;
+				font-size: 32rpx;
+				font-weight: 500;
+				color: #FFFFFF;
+				line-height: 80rpx;
+				text-align: center;
+			}
+		}
+		.cCanvas {
+			position: absolute;
+			top: 188rpx;
+			left: 50rpx;
+			background-color: #fff;
+			z-index: 100;
+			border-radius: 20rpx;
+		}
+		.share_content {
+			position: absolute;
+			top: 0;
+			left: 0;
+			z-index: 99;
+			width: 100vw;
+			height: 100vh;
+			background: rgba(0,0,0,0.5);
+			backdrop-filter: blur(5px);
+			.share_box {
+				margin: 148rpx auto;
+				width: 650rpx;
+				background: #FFFFFF;
+				border-radius: 20rpx;
+				box-sizing: border-box;
+				padding: 0 40rpx;
+				.box_bottom {
+					width: 100%;
+					padding: 34rpx 0 16rpx;
+					border-top: 1rpx dashed #C3C3C3;
+					
+					.bottom_left1 {
+						font-size: 32rpx;
+						font-weight: 500;
+						color: #222222;
+						line-height: 44rpx;
+						padding-bottom: 20rpx;
+						
+					}
+					.bottom_left2 {
+						font-size: 22rpx;
+						font-weight: 400;
+						color: #999999;
+						line-height: 32rpx;
+					}
+					.bottom_right {
+						width: 136rpx;
+						height: 136rpx;
+					}
+				}
+			}
+			.canvas {
+				position: absolute;
+				top: 188rpx;
+				left: 50rpx;
+				width: 650rpx;
+				min-height: 494rpx;
+				background: #FFFFFF;
+				border-radius: 20rpx;
+			}
+			.share_bottom {
+				position: fixed;
+				bottom: 0;
+				width: 100%;
+				height: 388rpx;
+				background: #F5F7FF;
+				border-radius: 40rpx 40rpx 0px 0px;
+				.bottom_item {
+					width: 33%;
+					margin: 50rpx 0 90rpx;
+					border: none !important;
+					background-color: #F5F7FF !important;
+					
+					
+					.item_icon {
+						width: 76rpx;
+						height: 76rpx;
+					}
+					.item_text {
+						font-size: 26rpx;
+						font-weight: 400;
+						color: #333333;
+						line-height: 36rpx;
+						margin-top: 12rpx;
+					}
+				}
+				button::after {
+					border: none !important;
+				}
+				.share_cancel {
+					width: 100%;
+					text-align: center;
+					font-size: 32rpx;
+					font-weight: 400;
+					color: #333333;
+					line-height: 44rpx;
+				}
+			}
+		}
+		.img {
+			width: 100%;
+			height: 320rpx;
+			border-radius: 24rpx;
+			margin: 40rpx 0 32rpx;
+		}
+		.video {
+			width: 100%;
+			height: 400rpx;
+			border-radius: 28rpx;
+			margin: 20rpx 0;
+		}
+	}
+</style>

+ 68 - 13
page_index/pages/index/newDetail.vue

@@ -20,7 +20,13 @@
 					<view class="hflex">
 						<image :src="item.user.headimg" class="headimg"></image>
 						<view class="comment_right">
-							<view class="comment_name">{{item.user.nickname}}</view>
+							<view class="hflex acenter jbetween">
+								<view class="comment_name">{{item.user.nickname}}</view>
+								<view class="hflex acenter" style="padding-top: 16rpx;" v-if="login && item.user.id == userId" @click="del(index)">
+									<u-icon name="trash" size="16"></u-icon>
+									<view class="del">删除</view>
+								</view>
+							</view>
 							<view class="comment_content">{{item.content}}</view>
 							<view class="comment_date">{{item.create_time}}</view>
 						</view>
@@ -30,14 +36,15 @@
 		</view>
 		<view class="bottom hflex acenter jbetween">
 			<view class="hflex acenter" @click="getLike">
-				<image src="https://ship-expert.zhousi.hdlkeji.com/common/dianzan1.png" class="dianzan" v-if="!pageData.is_liked"></image>
-				<image src="https://ship-expert.zhousi.hdlkeji.com/common/dianzan2.png" class="dianzan" v-else></image>
+				<image src="https://ship.shipcc.cn/common/dianzan1.png" class="dianzan" v-if="!pageData.is_liked"></image>
+				<image src="https://ship.shipcc.cn/common/dianzan2.png" class="dianzan" v-else></image>
 				<view class="dz_text">{{!pageData.is_liked?'点赞':pageData.likes_count}}</view>
 			</view>
 			<view class="hflex acenter ">
-				<u-input v-model="message" border="none" placeholder="我来说两句" shape="circle"></u-input>
-				<image src="https://ship-expert.zhousi.hdlkeji.com/common/comment.png" class="comment_icon" @click="send"></image>
+				<u-input v-model="message" border="none" placeholder="我来说两句" shape="circle" confirmType="send" @confirm="send"></u-input>
+				<image src="https://ship.shipcc.cn/common/comment.png" class="comment_icon" @click="send"></image>
 				<view class="dz_text">{{comment.total == 0?'评论':comment.total}}</view>
+				<view class="btn2" @click="send">发送</view>
 			</view>
 		</view>
 	</view>
@@ -57,13 +64,21 @@
 				id: '',
 				page: 1,
 				limit: 10,
-				total: 10
+				total: 10,
+				login: false,
+				userId: '',
 			}
 		},
 		onLoad(options) {
 			that = this
 			that.id = options.id
 			that.getData()
+			if(uni.getStorageSync('id')) {
+				that.userId = uni.getStorageSync('id')
+			}
+			if(uni.getStorageSync('token')) {
+				that.login = true
+			}
 		},
 		
 		methods: {
@@ -99,6 +114,9 @@
 				var token = uni.getStorageSync('token')
 				if(!token) {
 					$api.info('请先登录')
+					setTimeout(() =>{
+						$api.jump('/pages/login/password_login')
+					}, 1000)
 					return
 				}
 				if(that.pageData.is_liked) {
@@ -120,6 +138,18 @@
 				})
 			},
 			send() {
+				var token = uni.getStorageSync('token')
+				if(!token) {
+					$api.info('请先登录')
+					setTimeout(() =>{
+						$api.jump('/pages/login/password_login')
+					}, 1000)
+					return
+				}
+				if(that.message == '') {
+					$api.info('请先输入评论内容')
+					return
+				}
 				$api.req({
 					url: '/data/api.Xw/comment',
 					method: 'POST',
@@ -132,11 +162,22 @@
 						that.message = ""
 						$api.info(res.info)
 						that.getComment()
-					} else if(res.code == 0) {
-						$api.info('请先登录')
-						setTimeout(() => {
-							$api.jump('/pages/login/code_login')
-						}, 1000)
+					}
+				})
+			},
+			del(index) {
+				$api.req({
+					url: '/data/api.Xw/del_comment',
+					method: 'POST',
+					data: {
+						id: that.comment.data[index].id
+					}
+				}, function(res) {
+					if(res.code == 1) {
+						$api.info('删除成功')
+						that.getComment()
+					} else {
+						$api.info(res.message)
 					}
 				})
 			},
@@ -156,7 +197,7 @@
 <style lang="scss" scoped>
 	.content::v-deep {
 		position: relative;
-		background: url('https://ship-expert.zhousi.hdlkeji.com/common/background.png') no-repeat;
+		background: url('https://ship.shipcc.cn/common/background.png');
 		background-size: 100%;
 		.tile {
 			box-sizing: border-box;
@@ -261,6 +302,9 @@
 				color: #222222;
 				line-height: 34rpx;
 			}
+			.del {
+				padding-left: 5rpx;
+			}
 			.comment_content {
 				font-size: 24rpx;
 				font-weight: 400;
@@ -290,7 +334,7 @@
 			}
 			.u-input {
 				background: #F4F4F4 !important;
-				width: 410rpx;
+				width: 350rpx;
 				height: 72rpx;
 				margin-right: 16rpx;
 				padding: 0 32rpx !important;
@@ -302,6 +346,17 @@
 				line-height: 36rpx;
 				padding-left: 8rpx;
 			}
+			.btn2{
+				
+				box-sizing: border-box;
+				padding: 10rpx 20rpx;
+				background: #506DFF;
+				border-radius: 42rpx;
+				font-size: 32rpx;
+				font-weight: 500;
+				color: #FFFFFF;
+				text-align: center;
+			}
 			.comment_icon {
 				width: 48rpx;
 				height: 48rpx;

+ 11 - 9
page_index/pages/index/noticeList.vue

@@ -12,7 +12,7 @@
 						<view class="text_style1">{{item.create_time}}</view>
 						<view class="hflex acenter" @click="toDetail(item.id)">
 							<view class="text_style2">查看详情</view>
-							<image src="https://ship-expert.zhousi.hdlkeji.com/common/right.png" mode="widthFix" style="width: 28rpx;"></image>
+							<image src="https://ship.shipcc.cn/common/right.png" mode="widthFix" style="width: 28rpx;"></image>
 						</view>
 					</view>
 				</view>
@@ -38,13 +38,7 @@
 			that = this
 		},
 		onShow() {
-			var token = uni.getStorageSync('token')
-			if(!token) {
-				$api.info('请先登录')
-				setTimeout(() =>{
-					$api.jump('/pages/login/code_login')
-				}, 1000)
-			}
+			
 			that.getList()
 		},
 		methods: {
@@ -68,7 +62,15 @@
 			},
 			// 打开详情
 			toDetail(id) {
-				$api.jump('/page_index/pages/index/noticeDetail?id=' + id)
+				var token = uni.getStorageSync('token')
+				if(!token) {
+					$api.info('请先登录')
+					setTimeout(() =>{
+						$api.jump('/pages/login/password_login')
+					}, 1000)
+				} else {
+					$api.jump('/page_index/pages/index/noticeDetail?id=' + id)
+				}
 			},
 			onReachBottom() {
 				if (Number(that.page) * Number(that.limit) >= Number(that.total)) {

+ 80 - 56
page_index/pages/purchase/orderDetail.vue

@@ -137,16 +137,16 @@
 					<view class="text_style1">收藏</view>	
 				</view>	
 				<view class="vflex acenter" @click="share('Poster1')">
-					<image src="https://ship-expert.zhousi.hdlkeji.com/common/share.png" mode="" class="bottom_img"></image>	
+					<image src="https://ship.shipcc.cn/common/share.png" mode="" class="bottom_img"></image>	
 					<view class="text_style1">分享</view>	
 				</view>	
 			</view>
 			<view v-if="tab == 0">
 				<view class="bottom_btn" v-if="pageData.type == 2" @click="chat">私信聊聊</view>
 			</view>
-			<view class="hflex acenter" v-if="tab != 0">
+			<view class="hflex acenter jbetween" style="flex: 1;padding-left: 20rpx;" v-if="tab != 0">
 				<view class="bottom_btn1" @click="chat" v-if="pageData.type == 2">私信聊聊</view>
-				<view class="bottom_btn2" @click="start(pageData.id)" v-if="pageData.status == 1">开始接单</view>
+				<view class="bottom_btn2" @click="start(pageData.id)" v-if="pageData.status == 1">立即接单</view>
 				<view class="bottom_btn2 bottom_btn2_alear" @click="see(index)" v-if="pageData.status == 2">已接单,立即查看</view>
 				<view class="bottom_btn2" v-if="pageData.status == 3">已匹配</view>
 			</view>
@@ -159,7 +159,7 @@
 					<u-input v-model="offer" placeholder="填写你的报价" border="none"></u-input>
 				</view>
 				<view class="hflex acenter">
-					<image src="https://ship-expert.zhousi.hdlkeji.com/common/icon_tips.png" style="width: 24rpx;height: 24rpx;padding-right: 6rpx"></image>
+					<image src="https://ship.shipcc.cn/common/icon_tips.png" style="width: 24rpx;height: 24rpx;padding-right: 6rpx"></image>
 					<view class="popup_info">报价可先不填,可等评估后再填写</view>
 				</view>
 				<view class="input_bg hflex acenter" v-if="tab == 2 || tab == 3">
@@ -176,11 +176,11 @@
 				</view>
 				<view class="hflex acenter jbetween" v-if="tab == 0">
 					<view class="price">是否现货</view>
-					<u-switch v-model="is_stock" activeColor="#506dff" @change="change"></u-switch>
+					<u-switch v-model="is_stock" inactiveColor="rgb(230, 230, 230)" activeColor="#506dff" @change="change"></u-switch>
 				</view>
 				<view class="hflex acenter" style="padding-bottom: 20rpx;">
 					<view class="price">上传图片及资质证明图片</view>
-					<image src="https://ship-expert.zhousi.hdlkeji.com/common/icon_tips.png" style="width: 24rpx;height: 24rpx;padding-right: 6rpx"></image>
+					<image src="https://ship.shipcc.cn/common/icon_tips.png" style="width: 24rpx;height: 24rpx;padding-right: 6rpx"></image>
 					<view class="popup_info">最多上传9张图片</view>
 				</view>
 				<u-upload :fileList="fileList1" @afterRead="afterRead" @delete="deletePic" name="1" multiple :maxCount="9"></u-upload>
@@ -229,56 +229,67 @@
 		<view class="share_content" :class="share_show?'':'share_content1'">
 			<!-- <view style="width: 100%;height: 168rpx;"></view> -->
 			<view class="share_box vflex">
-				<text class="share_name Poster1" style="margin: 40rpx 0 28rpx;" :data-enode="pageData.merchant.company">{{pageData.merchant.company}}</text>
-				<view class="share_boxbg Poster1">
-					<view class="Poster1 share_cell" data-enode="商品明细">商品明细</view>
-					<block v-if="tab !== 4">
-						<!-- <block v-for="(item,index) in pageData.items" :key="index"> -->
-						<view class="item_title Poster1" :data-enode="pageData.items[0].name">{{pageData.items[0].name}}</view>
-						<view class="hflex acenter">
-							<view class="text_style2 padR-20 Poster1" :data-enode="'规格:'+pageData.items[0].spec">规格:{{pageData.items[0].spec}}</view>
-							<view class="text_style2 Poster1" :data-enode="'数量:'+pageData.items[0].number">数量:{{pageData.items[0].number}}</view>
-						</view>
-						<!-- </block> -->
-					</block>
-					<block v-if="tab == 4">
-						<!-- <block v-for="(item,index) in pageData.items" :key="index"> -->
-						<view class="item_title Poster1" :data-enode="pageData.items[0].name">{{pageData.items[0].name}}</view>
-						<view class="hflex acenter cell">
-							<view class="text_style2 padR-20 Poster1" :data-enode="'数量/吨位:'+pageData.items[0].weight">数量/吨位:{{pageData.items[0].weight}}</view>
+				<view class="vflex share1" id="share1" ref="share1">
+					<text class="share_name Poster1" style="margin: 20rpx 0 28rpx;" :data-enode="pageData.merchant.company">{{pageData.merchant.company}}</text>
+					<view class="share_boxbg Poster1">
+						<view class="Poster1 share_cell" data-enode="商品明细">商品明细</view>
+						<block v-if="tab !== 4">
+							<block v-for="(item,index) in pageData.items" :key="index">
+								<view class="item_title Poster1" :data-enode="item.name">{{item.name}}</view>
+								<view class="hflex acenter">
+									<view class="text_style2 padR-20 Poster1" :data-enode="'规格:'+item.spec">规格:{{item.spec}}</view>
+									<view class="text_style2 Poster1" :data-enode="'数量:'+item.number">数量:{{item.number}}</view>
+								</view>
+							</block>
+						</block>
+						<block v-if="tab == 4">
+							<!-- <block v-for="(item,index) in pageData.items" :key="index"> -->
+							<view class="item_title Poster1" :data-enode="pageData.items[0].name">{{pageData.items[0].name}}</view>
+							<view class="hflex acenter cell">
+								<view class="text_style2 padR-20 Poster1" :data-enode="'数量/吨位:'+pageData.items[0].weight">数量/吨位:{{pageData.items[0].weight}}</view>
+							</view>
+							<!-- </block> -->
+						</block>
+					</view>
+					<view class="Poster1">
+						<block v-for="(item,index) in pageData.images" :key="index">
+							<image data-etype="image" v-if="item.type == 'image'" :data-enode="item.src" :src="item.src" style="width:180rpx;height: 180rpx;margin: 16rpx 10rpx 0 0" class="img Poster1" mode="aspectFill"  shape="10"></image>
+							<!-- <video class="img Poster1" v-else data-etype="image" :data-enode="style.code" :src="item.src"></video> -->
+						</block>
+					</view>
+					<view class="share_label Poster1" style="margin: 20rpx 0;" :data-enode="'联系人' + pageData.real_name">联系人:{{pageData.real_name}}</view>
+					<view class="share_label Poster1" style="margin: 20rpx 0;" :data-enode="'联系方式' + pageData.mobile">联系方式:{{pageData.mobile}}</view>
+					<view class="share_label Poster1" :data-enode="'交货日期' + pageData.post_time" v-if="tab !== 3">交货日期:{{pageData.post_time}}</view>
+					<!-- <view class="share_label Poster1" :data-enode="'交货地址' + pageData.post_time" v-if="tab !== 3">交货日期:{{pageData.post_address}}</view> -->
+					<view class="Poster1 share_label" :data-enode="'包装形式' + pageData.form" v-else>包装形式:{{pageData.form}}</view>
+					<view class="hflex acenter share_text jcenter Poster1" style=" margin: 0 190rpx 12rpx;" data-enode="扫码查看订单详情">扫码查看订单详情</view>
+					<view style="width: 100%;" class="vflex acenter jcenter">
+						<image class="Poster1" style="width: 25rpx;height: 20rpx;" :data-enode="style.img1" data-etype="image" :src="style.img1"></image>
+						<image class="Poster1" style="width: 100%;height: 2rpx;margin: 30rpx 0;" :data-enode="style.img2" data-etype="image" :src="style.img2"></image>
+					</view>
+					<view class="hflex acenter jbetween">
+						<view class="vflex">
+							<view class="share_name Poster1" style="margin: 54rpx 0 20rpx;" data-enode="船百知">船百知</view>
+							<view class="share_text Poster1" style="margin: 0 0 36rpx;" data-enode="船百知伴你一起杨帆启航,驶向成功彼岸">船百知伴你一起杨帆启航,驶向成功彼岸</view>
 						</view>
-						<!-- </block> -->
-					</block>
-				</view>
-				<view class="share_label Poster1" :data-enode="'交货日期' + pageData.post_time" v-if="tab !== 3">交货日期:{{pageData.post_time}}</view>
-				<view class="Poster1 share_label" :data-enode="'包装形式' + pageData.form" v-else>包装形式:{{pageData.form}}</view>
-				<view class="hflex acenter share_text jcenter Poster1" style=" margin: 0 190rpx 12rpx;" data-enode="扫码查看订单详情">扫码查看订单详情</view>
-				<view style="width: 100%;" class="vflex acenter jcenter">
-					<image class="Poster1" style="width: 25rpx;height: 20rpx;" :data-enode="style.img1" data-etype="image" :src="style.img1"></image>
-					<image class="Poster1" style="width: 100%;height: 2rpx;margin: 30rpx 0;" :data-enode="style.img2" data-etype="image" :src="style.img2"></image>
-				</view>
-				<view class="hflex acenter jbetween">
-					<view class="vflex">
-						<view class="share_name Poster1" style="margin: 54rpx 0 20rpx;" data-enode="船百知">船百知</view>
-						<view class="share_text Poster1" style="margin: 0 0 36rpx;" data-enode="船百知伴你一起杨帆启航,驶向成功彼岸">船百知伴你一起杨帆启航,驶向成功彼岸</view>
+						<image class="Poster1" data-etype="image" :data-enode="style.code" :src="style.code" style="width: 136rpx;height: 136rpx;"></image>
+						<!-- <image class="Poster1" data-etype="image" :data-enode="share_img" :src="share_img" style="width: 136rpx;height: 136rpx;"></image> -->
 					</view>
-					<image class="Poster1" data-etype="image" :data-enode="style.code" :src="style.code" style="width: 136rpx;height: 136rpx;" shape="10"></image>
-					<!-- <image class="Poster1" data-etype="image" :data-enode="share_img" :src="share_img" style="width: 136rpx;height: 136rpx;"></image> -->
 				</view>
 			</view>
-			<evils-el-poster width="325" height="467" @on-error="onError" :list="list" backgroundColor="rgb(255, 255, 255)" @on-success="onSuccess" ref="Eposter"></evils-el-poster>
+			<evils-el-poster width="325" :height="height" @on-error="onError" :list="list" backgroundColor="rgb(255, 255, 255)" @on-success="onSuccess" ref="Eposter"></evils-el-poster>
 			<view class="share_bottom">
 				<view class="hflex acenter jcenter">
 					<button class="vflex acenter jcenter bottom_item" open-type="share">
-						<image src="https://ship-expert.zhousi.hdlkeji.com/common/wx.png" class="item_icon"></image>
+						<image src="https://ship.shipcc.cn/common/wx.png" class="item_icon"></image>
 						<view class="item_text">微信好友</view>
 					</button>
 					<!-- <button class="vflex acenter jcenter bottom_item" open-type="share">
-						<image src="https://ship-expert.zhousi.hdlkeji.com/common/moments.png" class="item_icon"></image>
+						<image src="https://ship.shipcc.cn/common/moments.png" class="item_icon"></image>
 						<view class="item_text">朋友圈</view>
 					</button> -->
 					<view class="vflex acenter jcenter bottom_item" @click="saveImg">
-						<image src="https://ship-expert.zhousi.hdlkeji.com/common/download.png" class="item_icon"></image>
+						<image src="https://ship.shipcc.cn/common/download.png" class="item_icon"></image>
 						<view class="item_text">保存图片</view>
 					</view>
 				</view>
@@ -290,7 +301,7 @@
 				<view class="popu_top hflex acenter jbetween">
 					<view></view>
 					<view class="popu_title">下载文件</view>
-					<image src="https://ship-expert.zhousi.hdlkeji.com/common/close.png" style="width: 32rpx;height: 32rpx;" @click="close"></image>
+					<image src="https://ship.shipcc.cn/common/close.png" style="width: 32rpx;height: 32rpx;" @click="close"></image>
 				</view>
 				<view class="file_bg hflex acenter">
 					<image :src="pageData.items[index1].enclosure[index2].icon" class="file_icon"></image>
@@ -298,7 +309,7 @@
 				</view>
 				<view class="btn_group hflex acenter jbetween">
 					<view class="left_btn hflex acenter jcenter" @click="copy(pageData.items[index1].enclosure[index2].fileurl)">复制链接</view>
-					<view class="right_btn hflex acenter jcenter" @click="privince(pageData.items[index1].enclosure[index2].fileurl)">预览文件</view>
+					<!-- <view class="right_btn hflex acenter jcenter" @click="privince(pageData.items[index1].enclosure[index2].fileurl)">预览文件</view> -->
 				</view>
 				<!-- <view class="hflex acenter jcenter text_blue" @click="privince(pageData.items[index1].enclosure[index2].fileurl)">预览文件></view> -->
 			</view>
@@ -328,15 +339,16 @@
 				id2: '',
 				list: [],
 				style: {
-					img1: 'https://ship-expert.zhousi.hdlkeji.com/common/down2.png',
-					img2: 'https://ship-expert.zhousi.hdlkeji.com/common/line.png',
-					code: 'https://ship-expert.zhousi.hdlkeji.com/common/code.jpg'
+					img1: 'https://ship.shipcc.cn/common/down2.png',
+					img2: 'https://ship.shipcc.cn/common/line.png',
+					code: 'https://ship.shipcc.cn/common/code.jpg'
 				},
 				tempImage:'',
 				down_show:false,
 				index1: 0,
 				index2: 0,
 				share_img: '',
+				height: 0
 			}
 		},
 		onLoad(options) {
@@ -345,6 +357,7 @@
 			that.tab = options.tab
 			that.getData()
 			that.getShareimg()
+			
 		},
 		onShareAppMessage(res) {
 			console.log(res);
@@ -356,16 +369,17 @@
 		    }
 		},
 		onShareTimeline(res) {
-			console.log(res);
 		    return {
 		        title: '船百知',
 		        type: 0,
 		        summary: "",
 		    }
 		},
+		mounted() {
+			
+		},
 		methods: {
 			getData() {
-				console.log(that.tab);
 				var url = ''
 				switch(that.tab) {
 					case '0' : 
@@ -389,6 +403,7 @@
 				}, function(res) {
 					if(res.code == 1) {
 						that.pageData = res.data
+						
 					}
 				})
 			},
@@ -470,7 +485,6 @@
 						uni.saveFile({
 							tempFilePath: filePath,
 							success: function(res) {
-								console.log(res);
 								that.close()
 								// $api.info("下载成功")
 								uni.setClipboardData({
@@ -595,10 +609,10 @@
 					$api.info('请填写报价说明')
 					return
 				}
-				if(imgsList == "") {
+				/* if(imgsList == "") {
 					$api.info('请上传图片资质')
 					return
-				}
+				} */
 				switch(that.tab) {
 					case '0': 
 						url = '/data/api.auth.Purchase/purchase_create';
@@ -653,6 +667,10 @@
 				})
 			},
 			share(elClass) {
+				uni.createSelectorQuery().in(this).select('#share1').boundingClientRect((res) => {
+					that.height = res.height
+					console.log(res);
+				}).exec()
 				let view = uni.createSelectorQuery().in(this).select(".Poster1");
 				
 				view.fields({
@@ -660,8 +678,10 @@
 				  rect: true,
 				  scrollOffset: true
 				}, data => {
+					console.log('data=',data);
 				}).exec();
 				that.share_show = true
+				
 				that.$refs.Eposter.createForElRect(elClass,false)
 			},
 			onSuccess(e) {
@@ -694,7 +714,7 @@
 
 <style lang="scss" scoped>
 	.content::v-deep {
-		background: url('https://ship-expert.zhousi.hdlkeji.com/common/background.png') #f4f4f4 no-repeat;
+		background: url('https://ship.shipcc.cn/common/background.png') #f4f4f4 no-repeat;
 		background-size: 100%;
 		.box {
 			margin: 20rpx auto 0;
@@ -853,7 +873,8 @@
 				line-height: 84rpx;
 			}
 			.bottom_btn1 {
-				width: 204rpx;
+				flex: 1;
+				// width: 204rpx;
 				height: 84rpx;
 				border-radius: 21px;
 				border: 1px solid #506DFF;
@@ -864,6 +885,7 @@
 				line-height: 84rpx;
 			}
 			.bottom_btn2 {
+				flex: 1;
 				// width: 300rpx;
 				height: 84rpx;
 				border-radius: 21px;
@@ -966,10 +988,12 @@
 			.share_box {
 				margin: 100rpx auto 0;
 				width: 650rpx;
+				height: 800rpx;
+				overflow: auto;
 				background: #FFFFFF;
 				border-radius: 20rpx;
 				box-sizing: border-box;
-				padding: 48rpx 35rpx 0;
+				padding: 32rpx 35rpx;
 				.share_name {
 					width: 100%;
 					font-size: 32rpx;

+ 158 - 89
page_index/pages/purchase/purchase.vue

@@ -12,52 +12,54 @@
 			</view>
 			<view class="box1">
 				<view class="box1_top hflex acenter">
-					<view class="top_item" :class="sort_index == 1 ? 'top_active' : ''" @click="changeSort(sort_index)">按照距离</view>
-					<view class="top_item" :class="sort_index == 2 ? 'top_active' : ''" @click="changeSort(sort_index)">价格高低</view>
+					<view class="top_item" :class="sort_index == 1 ? 'top_active' : ''" @click="changeSort('1')">按照距离</view>
+					<view class="top_item" :class="sort_index == 2 ? 'top_active' : ''" @click="changeSort('2')">价格高低</view>
 				</view>
-				<block v-for="(item,index) in pageList" :key="index">
-					<view class="order_box">
-						<view class="order_top hflex acenter">
-							<image src="https://ship-expert.zhousi.hdlkeji.com/common/order_type1.png"  v-if="item.tab == 1" class="order_img"></image>
-							<image src="https://ship-expert.zhousi.hdlkeji.com/common/order_type2.png"  v-if="item.tab == 2" class="order_img"></image>
-							<image src="https://ship-expert.zhousi.hdlkeji.com/common/order_type3.png"  v-if="item.tab == 3" class="order_img"></image>
-							<image src="https://ship-expert.zhousi.hdlkeji.com/common/order_type4.png"  v-if="item.tab == 4" class="order_img"></image>
-							<view class="order_title">{{item.merchant.company}}</view>
-						</view>
-						<view class="" v-if="item.items.length < 3">
-							<block v-for="(item2,inx) in item.items" :key="inx">
-								<view class="order_item">
-									<view class="item_name text_hide">{{item2.name}}</view>
-									<view class="hflex acenter " v-if="item.tab !== 4">
-										<view class="text_style1 padR-20" >规格:{{item2.spec}}</view>
-										<view class="text_style1">数量:{{item2.number}}</view>
-									</view>
-									<view class="hflex acenter " v-else>
-										<view class="text_style1 padR-20" >数量/吨位:{{item2.weight}}</view>
-									</view>
-								</view>
-							</block>
-						</view>
-						<view v-else>
-							<block v-for="(item2,inx) in item.items.slice(0,2)" :key="inx">
-								<view class="order_item">
-									<view class="item_name text_hide">{{item2.name}}</view>
-									<view class="hflex acenter " v-if="item.tab !== 4">
-										<view class="text_style1 padR-20" >规格:{{item2.spec}}</view>
-										<view class="text_style1">数量:{{item2.number}}</view>
+				<scroll-view :scroll-y="true" style="height: calc(100vh - 440rpx);" @scrolltolower="scrolltolower">
+					<block v-for="(item,index) in pageList" :key="index">
+						<view class="order_box" @click="toDetail(item.id)">
+							<view class="order_top hflex acenter">
+								<image src="https://ship.shipcc.cn/common/order_type1.png"  v-if="item.tab == 1" class="order_img"></image>
+								<image src="https://ship.shipcc.cn/common/order_type2.png"  v-if="item.tab == 2" class="order_img"></image>
+								<image src="https://ship.shipcc.cn/common/order_type3.png"  v-if="item.tab == 3" class="order_img"></image>
+								<image src="https://ship.shipcc.cn/common/order_type4.png"  v-if="item.tab == 4" class="order_img"></image>
+								<view class="order_title">{{item.merchant.company}}</view>
+							</view>
+							<view class="" v-if="item.items.length < 3">
+								<block v-for="(item2,inx) in item.items" :key="inx">
+									<view class="order_item">
+										<view class="item_name text_hide">{{item2.name}}</view>
+										<view class="hflex acenter " v-if="item.tab !== 4">
+											<view class="text_style1 padR-20">规格:{{item2.spec}}</view>
+											<view class="text_style1">数量:{{item2.number}}</view>
+										</view>
+										<view class="hflex acenter " v-else>
+											<view class="text_style1 padR-20">数量/吨位:{{item2.weight}}</view>
+										</view>
 									</view>
-									<view class="hflex acenter " v-else>
-										<view class="text_style1 padR-20" >数量/吨位:{{item2.weight}}</view>
+								</block>
+							</view>
+							<view v-else>
+								<block v-for="(item2,inx) in item.items.slice(0,2)" :key="inx">
+									<view class="order_item">
+										<view class="item_name text_hide">{{item2.name}}</view>
+										<view class="hflex acenter " v-if="item.tab !== 4">
+											<view class="text_style1 padR-20" >规格:{{item2.spec}}</view>
+											<view class="text_style1">数量:{{item2.number}}</view>
+										</view>
+										<view class="hflex acenter " v-else>
+											<view class="text_style1 padR-20" >数量/吨位:{{item2.weight}}</view>
+										</view>
 									</view>
-								</view>
-							</block>
+								</block>
+							</view>
+							<view class="hflex acenter jbetween order_bottom">
+								<view class="text_style1">发布于{{item.create_time.slice(0,16)}}</view>
+								<view class="more">查看更多 》</view>
+							</view>
 						</view>
-						<view class="hflex acenter jbetween order_bottom">
-							<view class="text_style1">发布于{{item.create_time.slice(0,16)}}</view>
-							<view class="more" @click="toDetail(item.id)">查看更多 》</view>
-						</view>
-					</view>
-				</block>
+					</block>
+				</scroll-view>
 			</view>
 			
 		</view>
@@ -67,24 +69,28 @@
 					prefixIcon="search" prefixIconStyle="font-size: 22px;color: #909399">
 				</u-input>
 			</view>
-			<block v-for="(item,index) in pageList2" :key="index">
-				<view class="box hflex" @click="toDetail2(item.id)">
-					<image :src="item.user.headimg"  mode="aspectFill" class="item_avatar"></image>
-					<view class="vflex" style="margin-left: 20rpx;">
-						<view class="item_name text_hide">{{item.username}}</view>
-						<view class="hflex acenter cell">
-							<u-icon name="phone-fill" color="#b8b8b8" size="14"></u-icon>
-							<view class="text_style1" style="padding-left: 16rpx;">{{item.user.phone}}</view>
-						</view>
-						<view class="hflex astart cell">
-							<u-icon name="map-fill" color="#b8b8b8" size="14"></u-icon>
-							<view class="text_style1" style="padding-left: 16rpx;">{{item.addr}}</view>
+			<scroll-view :scroll-y="true" style="height: calc(100vh - 350rpx);" @scrolltolower="scrolltolower">
+				<block  v-for="(item,index) in pageList2" :key="index">
+					<view class="box hflex acenter" @click="toDetail2(item.id)">
+						<image :src="item.user.headimg"  mode="aspectFill" class="item_avatar"></image>
+						<view class="vflex img-right" style="margin-left: 20rpx;">
+							<view class="item_name text_hide">{{item.username}}</view>
+							<view class="hflex acenter cell">
+								<u-icon name="phone-fill" color="#b8b8b8" size="14"></u-icon>
+								<view class="text_style1" style="padding-left: 16rpx;">{{item.user.phone}}</view>
+							</view>
+							<view class="hflex astart cell">
+								<u-icon name="map-fill" color="#b8b8b8" size="14"></u-icon>
+								<text>{{item.addr}}</text>
+								<!-- <view class="text_style1" style="padding-left: 16rpx;">{{item.addr}}</view> -->
+							</view>
 						</view>
 					</view>
-				</view>
-			</block>
+				</block>
+				
+			</scroll-view>
 			<view class="add">
-				<image src="https://ship-expert.zhousi.hdlkeji.com/common/add.png" class="add_img" @click="release"></image>
+				<image src="https://ship.shipcc.cn/common/add.png" class="add_img" @click="release"></image>
 			</view>
 		</view>
 	</view>
@@ -133,17 +139,44 @@
 			
 		},
 		onShow() {
-			var token = uni.getStorageSync('token') 
+			/* var token = uni.getStorageSync('token') 
 			if(!token) {
 				$api.info('请先登录')
 				setTimeout(() =>{
-					$api.jump('/pages/login/code_login')
+					$api.jump('/pages/login/password_login')
 				}, 1000)
-			}
+			} */
 			that.getList()
-			that.getList2()
+			// that.getList2()
+		},
+		onReachBottom() {
+			console.log('滑到底部');
+			if (Number(that.page) * Number(that.limit) >= Number(that.total)) {
+				$api.info("没有更多了")
+			} else {
+				that.page++
+				if(that.nav_index == 1) {
+					that.getList()
+				}else {
+					that.getList2()
+				}
+			} 
+			
 		},
 		methods: {
+			scrolltolower() {
+				console.log('滑到底部');
+				if (Number(that.page) * Number(that.limit) >= Number(that.total)) {
+					$api.info("没有更多了")
+				} else {
+					that.page++
+					if(that.nav_index == 1) {
+						that.getList()
+					}else {
+						that.getList2()
+					}
+				} 
+			},
 			// 返回
 			leftClick() {
 				console.log('返回');
@@ -156,12 +189,13 @@
 						page: that.page,
 						limit: that.limit,
 						tab: Number(that.tab_active) + 1,
-						sort: that.sort_index,
+						sort: that.sort_index == 0 ? '' : that.sort_index,
 						sort_dir: 'asc',
-						longitude: uni.getStorageSync('userLocation').split(',')[0],
-						latitude: uni.getStorageSync('userLocation').split(',')[1]
+						longitude: uni.getStorageSync('userLocation').split(',')[0] ? uni.getStorageSync('userLocation').split(',')[0] : null,
+						latitude:uni.getStorageSync('userLocation').split(',')[1] ? uni.getStorageSync('userLocation').split(',')[1] : null
 					}
 				}, function(res) {
+					console.log('经纬度================',uni.getStorageSync('userLocation').split(',')[0],uni.getStorageSync('userLocation').split(',')[1]);
 					if(res.code == 1) {
 						if(that.page == 1) {
 							that.pageList = res.data.data
@@ -204,19 +238,28 @@
 			},
 			// 切换tabs
 			changeTabs(e) {
-				console.log(e);
-				that.tab_active = e.index
-				that.sort_index = 0
-				that.page = 1
-				that.pageList = []
-				that.getList()
+				var token = uni.getStorageSync('token')
+				if(!token) {
+					$api.info('请先登录')
+					setTimeout(() =>{
+						$api.jump('/pages/login/password_login')
+					}, 1000)
+				} else {
+					console.log(e);
+					that.tab_active = e.index
+					that.sort_index = 0
+					that.page = 1
+					that.pageList = []
+					that.getList()
+				}
+				
 			},
 			// 切换排序
 			changeSort(index) {
-				if (index == 1) {
-					that.sort_index = 2
+				if(that.sort_index == index) {
+					that.sort_index = 0
 				} else {
-					that.sort_index = 1
+					that.sort_index = index
 				}
 				that.page = 1
 				that.pageList = []
@@ -224,29 +267,41 @@
 			},
 			// 查看订单详情
 			toDetail(id) {
-				$api.jump('/page_index/pages/purchase/orderDetail?id=' + id + '&tab=' + that.tab_active)
+				var token = uni.getStorageSync('token')
+				if(!token) {
+					$api.info('请先登录')
+					setTimeout(() =>{
+						$api.jump('/pages/login/password_login')
+					}, 1000)
+				} else {
+					$api.jump('/page_index/pages/purchase/orderDetail?id=' + id + '&tab=' + that.tab_active)
+				}
 			},
 			// 发布
 			release() {
-				$api.jump('/page_index/pages/purchase/release')
+				var token = uni.getStorageSync('token')
+				if(!token) {
+					$api.info('请先登录')
+					setTimeout(() =>{
+						$api.jump('/pages/login/password_login')
+					}, 1000)
+				} else {
+					$api.jump('/page_index/pages/purchase/release')
+				}
 			},
 			// 查看接单详情
 			toDetail2(id) {
-				$api.jump('/page_index/pages/purchase/receivingDetail?id=' + id)
-			},
-			onReachBottom() {
-				if (Number(that.page) * Number(that.limit) >= Number(that.total)) {
-					$api.info("没有更多了")
+				var token = uni.getStorageSync('token')
+				if(!token) {
+					$api.info('请先登录')
+					setTimeout(() =>{
+						$api.jump('/pages/login/password_login')
+					}, 1000)
 				} else {
-					that.page++
-					if(that.nav_index == 1) {
-						that.getList()
-					}else {
-						that.getList2()
-					}
-				} 
-				
-			}
+					$api.jump('/page_index/pages/purchase/receivingDetail?id=' + id)
+				}
+			},
+			
 		},
 	}
 </script>
@@ -254,6 +309,8 @@
 <style lang="scss" scoped>
 	.content::v-deep {
 		background: #F4F4F4;
+		overflow: hidden;
+		max-height: 100vh;
 		.nav {
 			width: 350rpx;
 			height: 60rpx;
@@ -381,6 +438,7 @@
 			font-size: 24rpx;
 			font-weight: 400;
 			color: #888888;
+			word-wrap: break-word;
 		}
 		.box2 {
 			width: 100%;
@@ -405,8 +463,19 @@
 					height: 84rpx;
 					border-radius: 50%;
 				}
+				.img-right {
+					width: calc(100% - 100rpx);
+					box-sizing: border-box;
+				}
 				.cell {
 					margin-top: 20rpx;
+					text {
+						font-size: 24rpx;
+						font-weight: 400;
+						color: #888888;
+						padding-left: 16rpx;
+						box-sizing: border-box;
+					}
 				}
 				.item_name {
 					max-width: 500rpx;

+ 1 - 1
page_index/pages/purchase/receivingDetail.vue

@@ -66,7 +66,7 @@
 
 <style lang="scss" scoped>
 	.content {
-		background: url('https://ship-expert.zhousi.hdlkeji.com/common/background.png') #f4f4f4 no-repeat;
+		background: url('https://ship.shipcc.cn/common/background.png') #f4f4f4 no-repeat;
 		background-size: 100%;
 		padding: 0 30rpx;
 		.box {

+ 94 - 10
page_index/pages/purchase/release.vue

@@ -2,16 +2,30 @@
 	<view class="content">
 		<view class="box">
 			<view class="title">需求说明</view>
-			<u--textarea v-model="purchase.description" placeholder="请详细描述你的采购需求" border="none"></u--textarea>
+			<u--textarea v-model="description" placeholder="请详细描述你的采购需求" border="none"></u--textarea>
 			<view class="title">上传营业执照或者身份证件照</view>
-			<u-upload :fileList="fileList1" @afterRead="afterRead" @delete="deletePic" name="1" multiple :maxCount="1" width="200rpx" height="200rpx"></u-upload>
+			<u-upload :fileList="fileList1" @afterRead="afterRead" @delete="deletePic" name="1" multiple :maxCount="1" width="200rpx" height="200rpx">
+				<image src="@/static/images/index/upload_img.png" mode="" style="width: 200rpx;height: 200rpx"></image>
+			</u-upload>
 		</view>
-		<view class="box" style="margin-bottom: 186rpx;">
+		<view class="box">
 			<view class="title">上传图片以及资质证件照片</view>
-			<u-upload :fileList="fileList2" @afterRead="afterRead" @delete="deletePic" name="2" multiple :maxCount="9" width="200rpx" height="200rpx"></u-upload>
+			<u-upload :fileList="fileList2" @afterRead="afterRead" @delete="deletePic" name="2" multiple :maxCount="9" width="200rpx" height="200rpx">
+				<image src="@/static/images/index/upload_img.png" mode="" style="width: 200rpx;height: 200rpx"></image>
+			</u-upload>
+		</view>
+		<view class="box" style="margin-bottom: 186rpx;">
+			<view class="hflex acenter jbetween">
+				<view class="title">是否隐藏需求</view>
+				<u-switch v-model="hidden" @change="changeHide1" inactiveColor="rgb(230, 230, 230)"></u-switch>
+			</view>
+			<view class="text">
+				说明:灰色开关为显示需求,蓝色开关为隐藏需求,默认为显示需求
+			</view>
 		</view>
 		<view class="bottom">
-			<view class="bottom_btn" @click="open">立即发布</view>
+			<view class="bottom_btn" @click="open" v-if="!purchase">立即发布</view>
+			<view class="bottom_btn" @click="open" v-if="purchase">立即修改</view>
 		</view>
 	</view>
 </template>
@@ -22,6 +36,8 @@
 	export default {
 		data() {
 			return {
+				hidden: false,
+				description: '',
 				purchase: {
 				},
 				fileList1: [],
@@ -30,8 +46,44 @@
 		},
 		onLoad() {
 			that = this
+			that.getData()
 		},
 		methods: {
+			getData() {
+				$api.req({
+					url: '/data/api.auth.Center/myneed',
+					method: 'POST',
+					data: {
+						type: 1
+					}
+				}, function(res) {
+					if(res.code == 1) {
+						that.purchase = res.data
+						if(!that.purchase) {
+							return
+						}
+						that.description = res.data.description
+						if(res.data.hidden == 2) {
+							that.hidden = true
+						} else {
+							that.hidden = false
+						}
+						that.fileList1 = []
+						that.fileList1.push({
+							url:res.data.business_img
+						})
+						var imgs = res.data.imgs
+						let obj = {}
+						for(let key in imgs) {
+							obj[key] = imgs[key]
+						}
+						var fileList2 = Object.keys(obj).map(item => ({
+							url: obj[item]
+						}))
+						that.fileList2 = fileList2
+					}
+				})
+			},
 			// 删除图片
 			deletePic(event) {
 				this[`fileList${event.name}`].splice(event.index, 1)
@@ -90,6 +142,19 @@
 			},
 			// 立即发布
 			open() {
+				if(that.description == '') {
+					$api.info('请先输入需求说明')
+					return
+				}
+				if(that.fileList1 == '') {
+					$api.info('请先上传营业执照或者身份证照')
+					return
+				}
+				if(that.fileList2 == '') {
+					$api.info('请先上传图片以及资质证书照片')
+					return
+				}
+				
 				var imgs = ''
 				if(that.fileList2.length == 1) {
 					imgs = that.fileList2[0].url
@@ -106,13 +171,14 @@
 					url: '/data/api.auth.Center/subpurchaseacceptance',
 					method: 'POST',
 					data: {
-						description	: that.purchase.description,
+						description	: that.description,
 						business_img: that.fileList1[0].url,
 						imgs: imgs,
-						province: uni.getStorageSync('location').province,
-						city: uni.getStorageSync('location').city,
-						area: uni.getStorageSync('location').district,
-						id: that.purchase.id?that.purchase.id:''
+						hidden: that.hidden ? 2 : 1, 
+						province: uni.getStorageSync('location').province ?uni.getStorageSync('location').province : null ,
+						city: uni.getStorageSync('location').city ?uni.getStorageSync('location').city : null,
+						area: uni.getStorageSync('location').district ?uni.getStorageSync('location').district : null,	
+						id: that.purchase?that.purchase.id:''
 					}
 				}, function(res) {
 					if(res.code == 1) {
@@ -121,6 +187,9 @@
 					}
 				})
 			},
+			changeHide1(e) {
+				console.log(e);
+			},
 		},
 	}
 </script>
@@ -140,10 +209,25 @@
 				font-weight: 400;
 				color: #222222;
 				margin: 20rpx 0;
+				position: relative;
+				padding-left: 10rpx;
+			}
+			.title::before{
+				content: '*';
+				position: absolute;
+				top: 20%;
+				left: -10rpx;
+				color: #ff0000;
 			}
 			.u-textarea {
 				background: #F5F5F5;
 			}
+			.text {
+				font-size: 24rpx;
+				font-weight: 400;
+				color: #d75a59;
+				margin: 16rpx 0;
+			}
 		}
 		.bottom {
 			width: 100%;

+ 310 - 5
page_index/pages/repair/orderDetail.vue

@@ -35,10 +35,83 @@
 			<view class="title">订单类型</view>
 			<view class="right">{{pageData.quick == 1 ? '普修' : '快修'}}</view>
 		</view>
-		<view class="bottom">
+		<view class="bottom hflex acenter jbetween">
+			<view class="vflex acenter jcenter" @click="share('Poster1')">
+				<image src="https://ship.shipcc.cn/common/share.png" mode="" class="bottom_img"></image>	
+				<view class="" style="font-size: 20rpx;margin-right: 30rpx;">分享</view>	
+			</view>	
 			<view class="bottom_btn" @click="openOffer" v-if="pageData.status == 1 ">立即接单</view>
 			<view class="bottom_btn bottom_btn2" @click="openSee" v-else>已报价,立即查看</view>
 		</view>
+		<view class="share_content" :class="share_show?'':'share_content1'">
+			<!-- <view style="width: 100%;height: 168rpx;"></view> -->
+			<view class="share_box vflex">
+				<view class="vflex share1" id="share1" ref="share1">
+					<view class="hflex acenter jbetween user">
+						<view class="hflex acenter">
+							<image data-etype="image" :data-enode="pageData.user.headimg" :src="pageData.user.headimg" style="width:48rpx;height: 48rpx;border-radius: 50%;: 16rpx 10rpx 0 0" class="img Poster1" mode="aspectFill"  shape="10"></image>
+							<view class="Poster1 user_name" :data-enode="pageData.user.nickname">{{pageData.user.nickname}}</view>
+							<view class="Poster1 user_text" :data-enode="'|' + pageData.city">| {{pageData.city}}</view>
+						</view>
+						<!-- <view class="Poster1 user_text" :data-enode="pageData.create_at + '发布'">{{pageData.create_at}}发布</view> -->
+					</view>
+					<!-- <text class="share_name Poster1" style="margin: 20rpx 0 28rpx;" :data-enode="pageData.merchant.company">{{pageData.merchant.company}}</text> -->
+					<view class="Poster1 share_cell" style="width: 600rpx;"  data-etype="textarea" :data-enode="pageData.describe">{{pageData.describe}}</view>
+					<view class="hflex acenter jbetween">
+						<view class="share_label Poster1" style="margin: 20rpx 0;" data-enode="维修时间">维修时间</view>
+						<view class="share_label Poster1" style="margin: 20rpx 0;" :data-enode="pageData.start_time + '至' + pageData.end_time">{{pageData.start_time}}至{{pageData.end_time}}</view>
+					</view>
+					<view class="hflex acenter jbetween">
+						<view class="share_label Poster1" style="margin: 20rpx 0;" data-enode="维修地点">维修地点</view>
+						<view class="share_label Poster1" data-etype="textarea" style="margin: 20rpx 0;width: 480rpx;" :data-enode="pageData.address">{{pageData.address}}</view>
+					</view>
+					<view class="hflex acenter jbetween">
+						<view class="share_label Poster1" style="margin: 20rpx 0;" data-enode="联系方式">联系方式</view>
+						<view class="share_label Poster1" style="margin: 20rpx 0;" :data-enode="pageData.user.phone">{{pageData.user.phone}}</view>
+					</view>
+					<!-- <view class="share_label Poster1" style="margin: 20rpx 0;" :data-enode="'维修地点' + pageData.address">维修地点:{{pageData.address}}</view>
+					<view class="share_label Poster1" :data-enode="'联系方式' + pageData.user.phone">联系方式:{{pageData.user.phone}}</view> -->
+					<view class="Poster1">
+						<block v-for="(item,index) in pageData.imgs" :key="index">
+							<image data-etype="image" :data-enode="item" :src="item" style="width:180rpx;height: 180rpx;margin: 16rpx 10rpx 0 0" class="img Poster1" mode="aspectFill"  shape="10"></image>
+							<!-- <video class="img Poster1" v-else data-etype="image" :data-enode="style.code" :src="item.src"></video> -->
+						</block>
+					</view>
+					
+					<view class="hflex acenter share_text jcenter Poster1" style=" margin: 0 190rpx 12rpx;" data-enode="长按或扫码查看">长按或扫码查看</view>
+					<view style="width: 100%;" class="vflex acenter jcenter">
+						<image class="Poster1" style="width: 25rpx;height: 20rpx;" :data-enode="style.img1" data-etype="image" :src="style.img1"></image>
+						<image class="Poster1" style="width: 100%;height: 2rpx;margin: 30rpx 0;" :data-enode="style.img2" data-etype="image" :src="style.img2"></image>
+					</view>
+					<view class="hflex acenter jbetween">
+						<view class="vflex">
+							<view class="share_name Poster1" style="margin: 54rpx 0 20rpx;" data-enode="船百知">船百知</view>
+							<view class="share_text Poster1" style="margin: 0 0 36rpx;" data-enode="船百知伴你一起杨帆启航,驶向成功彼岸">船百知伴你一起杨帆启航,驶向成功彼岸</view>
+						</view>
+						<image class="Poster1" data-etype="image" :data-enode="style.code" :src="style.code" style="width: 136rpx;height: 136rpx;"></image>
+						<!-- <image class="Poster1" data-etype="image" :data-enode="share_img" :src="share_img" style="width: 136rpx;height: 136rpx;"></image> -->
+					</view>
+				</view>
+			</view>
+			<evils-el-poster width="325" :height="height" @on-error="onError" :list="list2" backgroundColor="rgb(255, 255, 255)" @on-success="onSuccess" ref="Eposter"></evils-el-poster>
+			<view class="share_bottom">
+				<view class="hflex acenter jcenter">
+					<button class="vflex acenter jcenter bottom_item" open-type="share">
+						<image src="https://ship.shipcc.cn/common/wx.png" class="item_icon"></image>
+						<view class="item_text">微信好友</view>
+					</button>
+					<!-- <button class="vflex acenter jcenter bottom_item" open-type="share">
+						<image src="https://ship.shipcc.cn/common/moments.png" class="item_icon"></image>
+						<view class="item_text">朋友圈</view>
+					</button> -->
+					<view class="vflex acenter jcenter bottom_item" @click="saveImg">
+						<image src="https://ship.shipcc.cn/common/download.png" class="item_icon"></image>
+						<view class="item_text">保存图片</view>
+					</view>
+				</view>
+				<view class="share_cancel" @click="close">取消</view>
+			</view>
+		</view>
 		<u-popup :show="quotation_show" mode="center" :round="10" :closeable="true" :safeAreaInsetBottom="false" @close="close">
 			<view class="popup">
 				<view class="popup_title">立即报价</view>
@@ -47,7 +120,7 @@
 					<u-input v-model="offer" placeholder="填写你的报价" border="none"></u-input>
 				</view>
 				<view class="hflex acenter">
-					<image src="https://ship-expert.zhousi.hdlkeji.com/common/icon_tips.png" style="width: 24rpx;height: 24rpx;padding-right: 6rpx"></image>
+					<image src="https://ship.shipcc.cn/common/icon_tips.png" style="width: 24rpx;height: 24rpx;padding-right: 6rpx"></image>
 					<view class="popup_info">报价可先不填,可等评估后再填写</view>
 				</view>
 				<view class="hflex acenter" style="padding:30rpx 0 20rpx;">
@@ -62,10 +135,10 @@
 				<view class="popup_title">报价信息</view>
 				<view class="popup_name">当前报价</view>
 				<view class="">
-					<block v-for="(item,index) in offer_info.list" :key="index">
+					<block v-for="(item,index) in list" :key="index">
 						<view class="hflex acenter input_bg">
-							<view class="popup_text">第{{index + 1}}次报价</view>
-							<view class="red">{{item.price == 0 ? '暂无报价' : item.price}}</view>
+							<view class="popup_text">第{{list.length - index}}次报价</view>
+							<view class="red">{{item.price == 0 ? '报价' : item.price}}</view>
 						</view>
 					</block>
 				</view>
@@ -109,6 +182,17 @@
 				offer_info: {
 				},
 				id: '',
+				list: [],
+				list2: [],
+				share_show: false,
+				style: {
+					img1: 'https://ship.shipcc.cn/common/down2.png',
+					img2: 'https://ship.shipcc.cn/common/line.png',
+					code: 'https://ship.shipcc.cn/common/code.jpg'
+				},
+				tempImage:'',
+				share_img: '',
+				height: 0
 			}
 		},
 		onLoad(options) {
@@ -142,6 +226,13 @@
 				}, function(res) {
 					if(res.code == 1) {
 						that.offer_info = res.data
+						let length = res.data.list.length
+						let index = 0
+						that.list = []
+						for(var i=length-1;i>=0;i--) {
+							that.list.push(that.info.list[i])
+						}
+						console.log(that.list);
 					}
 				})
 			},
@@ -188,6 +279,7 @@
 			close() {
 				that.quotation_show = false
 				that.detail_show = false
+				that.share_show = false
 			},
 			// 删除图片
 			deletePic(event) {
@@ -258,6 +350,49 @@
 			toDetail() {
 				$api.jump('/page_shop/pages/order/offer2?id=' + that.id + '&status=' + that.pageData.status)
 			},
+			share(elClass) {
+				uni.createSelectorQuery().in(this).select('#share1').boundingClientRect((res) => {
+					that.height = res.height
+					console.log(res);
+				}).exec()
+				let view = uni.createSelectorQuery().in(this).select(".Poster1");
+				
+				view.fields({
+				  size: true,
+				  rect: true,
+				  scrollOffset: true
+				}, data => {
+					console.log('data=',data);
+				}).exec();
+				that.share_show = true
+				
+				that.$refs.Eposter.createForElRect(elClass,false)
+			},
+			
+			onSuccess(e) {
+				console.log(e);
+				that.tempImage = e
+			},
+			onError(err) {
+				console.log('发生错误');
+				console.log(err);
+			},
+			saveImg() {
+				console.log(that.tempImage);
+				uni.authorize({
+				    scope: 'scope.writePhotosAlbum',
+				    success() {
+				        uni.saveImageToPhotosAlbum({
+				        	filePath: that.tempImage,
+				        	success: function () {
+				        		console.log('save success');
+								$api.info('保存成功')
+								that.close()
+				        	}
+				        });
+				    }
+				})
+			},
 		},
 	}
 </script>
@@ -336,6 +471,15 @@
 			background: #FFFFFF;
 			box-sizing: border-box;
 			padding: 8rpx 40rpx 74rpx;
+			.bottom_img {
+				width: 40rpx;
+				height: 40rpx;
+				margin-right: 30rpx;
+			}
+			.text_style1 {
+				white-space: nowrap;
+				padding-right: 30rpx;
+			}
 			.bottom_btn {
 				width: 100%;
 				height: 84rpx;
@@ -417,5 +561,166 @@
 				margin: 20rpx 0;
 			}
 		}
+		.share_content {
+			position: fixed;
+			top: 0;
+			left: 0;
+			z-index: 99;
+			width: 100vw;
+			height: 100vh;
+			background: rgba(0,0,0,0.5);
+			backdrop-filter: blur(5px);
+			padding: 0 0 0;
+			.share_box {
+				margin: 100rpx auto 0;
+				width: 650rpx;
+				height: 800rpx;
+				overflow: auto;
+				background: #FFFFFF;
+				border-radius: 20rpx;
+				box-sizing: border-box;
+				padding: 32rpx 35rpx;
+				.user {
+					padding-bottom: 24rpx;
+					.user_text {
+						font-size: 24rpx;
+						font-family: SFPro-Regular, SFPro;
+						font-weight: 400;
+						color: #888888;
+						line-height: 28rpx;
+					}
+					.user_name {
+						font-size: 24rpx;
+						font-family: PingFangSC-Regular, PingFang SC;
+						font-weight: 400;
+						color: #222222;
+						line-height: 34rpx;
+					}
+				}
+				.share_name {
+					width: 100%;
+					font-size: 32rpx;
+					font-weight: 500;
+					color: #222222;
+					line-height: 44rpx;
+				}
+				.share_boxbg {
+					background: #F4F4F4;
+					border-radius: 8px;
+					box-sizing: border-box;
+					padding: 0 20rpx;
+					.share_cell {
+						font-size: 32rpx;
+						font-family: PingFangSC-Medium, PingFang SC;
+						font-weight: 600;
+						color: #222222;
+						line-height: 44rpx;
+						margin: 0 0 36rpx;
+					}
+					.item_title {
+						font-size: 28rpx;
+						font-weight: 400;
+						color: #222222;
+						line-height: 40rpx;
+						padding: 20rpx 0 16rpx;
+					}
+					.text_style2 {
+						font-size: 24rpx;
+						font-weight: 400;
+						color: #888888;
+						line-height: 34rpx;
+					}
+					.padR-20 {
+						padding-right: 20rpx;
+					}
+				}
+				.share_label {
+					font-size: 26rpx;
+					font-weight: 400;
+					color: #444444;
+					line-height: 36rpx;
+					margin: 20rpx 0 54rpx;
+				}
+				.share_text {
+					font-size: 20rpx;
+					font-weight: 400;
+					color: #BEBEBE;
+					line-height: 28rpx;
+					margin: 20rpx 136rpx 18rpx;
+				}
+				.box_bottom {
+					width: 100%;
+					padding: 34rpx 0 16rpx;
+					border-top: 1rpx dashed #C3C3C3;
+					
+					.bottom_left1 {
+						font-size: 32rpx;
+						font-weight: 500;
+						color: #222222;
+						line-height: 44rpx;
+						padding-bottom: 20rpx;
+						
+					}
+					.bottom_left2 {
+						font-size: 22rpx;
+						font-weight: 400;
+						color: #999999;
+						line-height: 32rpx;
+					}
+					.bottom_right {
+						width: 136rpx;
+						height: 136rpx;
+					}
+				}
+			}
+			/* .canvas {
+				position: absolute;
+				top: 128rpx;
+				left: 50rpx;
+				width: 650rpx;
+				min-height: 494rpx;
+				background: #FFFFFF;
+				border-radius: 20rpx;
+			} */
+			.share_bottom {
+				position: fixed;
+				bottom: 0;
+				width: 100%;
+				height: 388rpx;
+				background: #F5F7FF;
+				border-radius: 40rpx 40rpx 0px 0px;
+				.bottom_item {
+					width: 33%;
+					margin: 50rpx 0 90rpx;
+					border: none !important;
+					background-color: #F5F7FF !important;
+					.item_icon {
+						width: 76rpx;
+						height: 76rpx;
+					}
+					.item_text {
+						font-size: 26rpx;
+						font-weight: 400;
+						color: #333333;
+						line-height: 36rpx;
+						margin-top: 12rpx;
+					}
+				}
+				button::after {
+					border: none !important;
+				}
+				.share_cancel {
+					width: 100%;
+					text-align: center;
+					font-size: 32rpx;
+					font-weight: 400;
+					color: #333333;
+					line-height: 44rpx;
+				}
+			}
+		}
+		.share_content1 {
+			z-index: -99 !important;
+		}
 	}
 </style>

+ 132 - 24
page_index/pages/repair/receivingOrder.vue

@@ -2,52 +2,59 @@
 	<view class="content">
 		<view class="box">
 			<view class="hflex acenter jbetween cell">
-				<view class="label">姓名</view>
+				<view class="label required">姓名</view>
 				<u-input v-model="name" placeholder="请填写姓名" inputAlign="right" border="none"></u-input>
 			</view>
 			<view class="hflex acenter jbetween cell">
-				<view class="label">所在单位</view>
+				<view class="label required">所在单位</view>
 				<u-input v-model="work" placeholder="请填写所在单位名称" inputAlign="right" border="none"></u-input>
 			</view>
 			<view class="cell">
-				<view class="label">营业执照照片</view>
+				<view class="label required">营业执照照片</view>
 				<view class="upload hflex acenter jcenter">
 					<u-upload :fileList="fileList1" @afterRead="afterRead" @delete="deletePic" :maxCount="1" name="1" multiple :previewFullImage="true" width="530rpx" height="324rpx">
-						<image src="https://ship-expert.zhousi.hdlkeji.com/common/upload-business.png" style="width: 530rpx;height: 324rpx;"></image>
-						<image class="upload_img" src="https://ship-expert.zhousi.hdlkeji.com/common/upload-top.png"></image>
+						<view class="" style="position: relative;">
+							<image src="https://ship.shipcc.cn/common/upload-business.png" style="width: 530rpx;height: 324rpx;"></image>
+							<image src="@/static/images/mine/upload_center.png" style="position: absolute;top:102rpx;left: 216rpx; width: 120rpx;height: 120rpx;"></image>
+						</view>
 					</u-upload>
 				</view>
 			</view>
 			<view class="cell" style="border: none;">
-				<view class="label">身份证正反面</view>
+				<view class="label required">身份证正反面</view>
 				<view class="hflex acenter jbetween" style="margin-top: 28rpx;">
 					<u-upload :fileList="fileList2" @afterRead="afterRead" @delete="deletePic" :maxCount="1" name="2" multiple :previewFullImage="true" width="310rpx" height="188rpx">
-						<image src="https://ship-expert.zhousi.hdlkeji.com/common/upload-just.png" style="width: 310rpx;height: 188rpx;"></image>
+						<view class="" style="position: relative;">
+							<image src="@/static/images/index/upload-back.png" style="width: 310rpx;height: 188rpx;"></image>
+							<image src="@/static/images/mine/upload_center.png" style="position: absolute;top:40rpx;left: 116rpx; width: 80rpx;height: 80rpx;"></image>
+							<view style="position: absolute;bottom: 16rpx;left: 70rpx;font-size: 16rpx;color: #506DFF;">上传身份证人像面照片</view>
+						</view>
+					</u-upload>
+					<u-upload :fileList="fileList3" @afterRead="afterRead" @delete="deletePic" :maxCount="1" name="3" multiple :previewFullImage="true" width="310rpx" height="188rpx">
+						<view class="" style="position: relative;">
+							<image src="https://ship.shipcc.cn/common/upload-back.png" style="width: 310rpx;height: 188rpx;"></image>
+							<image src="@/static/images/mine/upload_center.png" style="position: absolute;top:40rpx;left: 116rpx; width: 80rpx;height: 80rpx;"></image>
+							<view style="position: absolute;bottom: 16rpx;left: 70rpx;font-size: 16rpx;color: #506DFF;">上传身份证国徽面图片</view>
+						</view>
 					</u-upload>
-					<view class="upload2">
-						<u-upload :fileList="fileList3" @afterRead="afterRead" @delete="deletePic" :maxCount="1" name="3" multiple :previewFullImage="true" width="310rpx" height="188rpx">
-							<image src="https://ship-expert.zhousi.hdlkeji.com/common/upload-back.png" style="width: 310rpx;height: 188rpx;"></image>
-							<image class="upload_img2" src="https://ship-expert.zhousi.hdlkeji.com/common/upload-top.png"></image>
-						</u-upload>
-					</view>
 				</view>
 			</view>
 		</view>
 		<view class="box">
 			<view class="hflex acenter jbetween cell">
-				<view class="label">手机号</view>
+				<view class="label required">手机号</view>
 				<u-input v-model="phone" placeholder="请填写你的手机号" inputAlign="right" border="none"></u-input>
 			</view>
 			<view class="hflex acenter jbetween cell">
-				<view class="label">邮箱</view>
+				<view class="label required">邮箱</view>
 				<u-input v-model="email" placeholder="请填写你的邮箱" inputAlign="right" border="none"></u-input>
 			</view>
 			<view class="hflex acenter jbetween cell" style="border: none;">
-				<view class="label">地址</view>
+				<view class="label required">地址</view>
 				<u-input v-model="address" placeholder="请填写你的详细地址" inputAlign="right" border="none"></u-input>
 			</view>
 		</view>
-		<view class="box" style="margin-bottom: 186rpx;">
+		<view class="box">
 			<view class="cell vflex jbetween">
 				<view class="label">工作简历</view>
 				<u-input v-model="resume" placeholder="请详细描述你的工作经历" border="none"></u-input>
@@ -57,9 +64,20 @@
 				<u-input v-model="speciality" placeholder="请简单叙述一下你的优点及特长" border="none"></u-input>
 			</view>
 		</view>
+		<view class="box" style="margin-bottom: 186rpx;">
+			<view class="hflex acenter jbetween">
+				<view class="title">是否隐藏需求</view>
+				<u-switch v-model="hidden" inactiveColor="rgb(230, 230, 230)" @change="changeHide1"></u-switch>
+			</view>
+			<view class="text">
+				说明:灰色开关为显示需求,蓝色开关为隐藏需求,默认为显示需求
+			</view>
+		</view>
 		<view class="bottom">
-			<view class="bottom_btn" @click="open">立即发布</view>
+			<view class="bottom_btn" @click="open" v-if="id == ''">立即发布</view>
+			<view class="bottom_btn" @click="open" v-if="id != ''">立即修改</view>
 		</view>
+		
 	</view>
 </template>
 
@@ -79,21 +97,87 @@
 				address: '',
 				resume: '',
 				speciality: '',
-				id: ''
+				id: '',
+				hidden: false
 			}
 		},
 		onLoad() {
 			that = this
+			that.getData()
 		},
 		methods: {
+			getData() {
+				$api.req({
+					url: '/data/api.auth.Center/myneed',
+					method: 'POST',
+					data: {
+						type: '2'
+					}
+				},function(res) {
+					if(res.code == 1) {
+						console.log(res);
+						if(res.data) {
+							that.name = res.data.name
+							that.work = res.data.company_name
+							that.fileList1.push({
+								url:res.data.business_img
+							})
+							that.fileList2.push({
+								url:res.data.id_card_zheng
+							})
+							that.fileList3.push({
+								url:res.data.id_card_fan
+							})
+							that.id = res.data.id
+							// that.fileList1[0].url = res.data.business_img
+							// that.fileList2[0].url = res.data.id_card_zheng
+							// that.fileList3[0].url = res.data.id_card_fan
+							that.phone = res.data.phone
+							that.email = res.data.email
+							that.address = res.data.address
+							that.resume = res.data.job_resume
+							that.speciality = res.data.specialty
+							that.hidden = res.data.hidden == 2 ? true: false
+						}
+					}
+				})
+			},
 			// 立即发布
 			open() {
+				if(that.name == '') {
+					$api.info('请填写姓名')
+					return
+				}
+				if(that.work == '') {
+					$api.info('请填写所在单位')
+					return
+				}
+				if(that.fileList1 == '') {
+					$api.info('请上传营业执照')
+					return
+				}
+				if(that.fileList2 == '' || that.fileList3 == '') {
+					$api.info('请上传身份证照片')
+					return
+				}
+				if(that.phone == '') {
+					$api.info('请填写你的手机号')
+					return
+				}
+				if(that.email == '') {
+					$api.info('请填写你的邮箱')
+					return
+				}
+				if(that.address == '' ) {
+					$api.info('请填写你的详细地址')
+					return
+				}
 				uni.showLoading({
 					title: '发布中',
 					mask: true
 				})
 				if($api.formCheck(that.name,'required') && $api.formCheck(that.work,'required') && $api.formCheck(that.fileList1,'required') && $api.formCheck(that.fileList2,'required') && $api.formCheck(that.fileList3,'required')
-					 && $api.formCheck(that.phone,'mobile') && $api.formCheck(that.email,'required') && $api.formCheck(that.address,'required')&& $api.formCheck(that.resume,'required')&& $api.formCheck(that.speciality,'required')) {
+					 && $api.formCheck(that.phone,'mobile') && $api.formCheck(that.email,'required') && $api.formCheck(that.address,'required')) {
 					$api.req({
 						url: '/data/api.auth.ShipEngineMaintenance/subacceptance',
 						method: 'POST',
@@ -108,19 +192,24 @@
 							address: that.address,
 							job_resume: that.resume,
 							specialty: that.speciality,
-							province: uni.getStorageSync('location').province,
-							city: uni.getStorageSync('location').city,
-							area: uni.getStorageSync('location').district,
-							id: that.id
+							hidden: that.hidden? '2' : '1',
+							// province: uni.getStorageSync('location').province,
+							// city: uni.getStorageSync('location').city,
+							// area: uni.getStorageSync('location').district,
+							id: that.id,
 						}
 					}, function(res) {
 						uni.hideLoading()
 						if(res.code == 1) {
 							$api.info(res.info)
+							$api.jump(-1)
 						}
 					})	 
 				}
 			},
+			changeHide1(e) {
+				console.log(e);
+			},
 			// 删除图片
 			deletePic(event) {
 				this[`fileList${event.name}`].splice(event.index, 1)
@@ -191,6 +280,25 @@
 			border-radius: 10px;
 			box-sizing: border-box;
 			padding: 20rpx;
+			.required {
+				position: relative;
+				padding-left: 15rpx;
+			}
+			.required::after {
+				content: '*';
+				position: absolute;
+				top: 5rpx;
+				left: 0;
+				font-size: 26rpx;
+				font-weight: 400;
+				color: #FF3232;
+			}
+			.text {
+				font-size: 24rpx;
+				font-weight: 400;
+				color: #d75a59;
+				margin: 16rpx 0;
+			}
 			.cell {
 				width: 100%;
 				padding: 32rpx 0 24rpx;

+ 230 - 88
page_index/pages/repair/repair.vue

@@ -7,7 +7,15 @@
 			</view>
 		</u-navbar>
 		<view  v-if="nav_index == 1">
-			<view class="top">
+			<view class="search">
+				<u-input v-model="serach_value" type="text" :border="true" placeholder="输入搜索关键词" shape="circle"
+					prefixIcon="search" prefixIconStyle="font-size: 22px;color: #909399" @confirm="search">
+					<template slot="suffix">
+						<view @click="search">搜索</view>
+					</template>
+				</u-input>
+			</view>
+			<view class="top" style="margin-top: 120rpx;">
 				<view class="top_title">快修订单</view>
 				<view class="vflex dm_box">
 					<block v-if="domWidth == 0">
@@ -89,15 +97,15 @@
 						<view class="list_item" @tap.stop="orderDetail(item.id)">
 							<view class="item_top hflex acenter jbetween">
 								<view class="hflex acenter" v-if="item.quick == 1">
-									<image src="https://ship-expert.zhousi.hdlkeji.com/common/repair1.png" class="top_img"></image>
+									<image src="https://ship.shipcc.cn/common/repair1.png" class="top_img"></image>
 									<view class="top_text">普修</view>
 								</view>
 								<view class="hflex acenter" v-if="item.quick == 2">
-									<image src="https://ship-expert.zhousi.hdlkeji.com/common/repair2.png" class="top_img"></image>
+									<image src="https://ship.shipcc.cn/common/repair2.png" class="top_img"></image>
 									<view class="">快修</view>
 								</view>
-								<view class="top_btn" @click.stop="meetOrder(item.id,index)" v-if="item.status == 1">接单</view>
-								<view class="top_btn top_btn1" @click.stop="seeOffer(item.id,index)" v-if="item.status == 2">已接单</view>
+								<view class="top_btn top_btn1" @click.stop="seeOffer(item.id,index)" v-if="item.offer && item.offer.length > 0">已接单</view>
+								<view class="top_btn" @click.stop="meetOrder(item.id,index)" v-else>接单</view>
 							</view>
 							<view class="item_name cell text_hide">{{item.describe}}</view>
 							<view class="hflex acenter cell">
@@ -132,7 +140,7 @@
 			
 		</view>
 		<view class="" v-if="nav_index == 2">
-			<view class="search">
+			<view class="search2">
 				<u-input v-model="serach_value" type="text" :border="true" placeholder="输入搜索关键词" shape="circle"
 					prefixIcon="search" prefixIconStyle="font-size: 22px;color: #909399" @confirm="search">
 					<template slot="suffix">
@@ -149,36 +157,36 @@
 							<view class="text_style1"style="padding-left: 8rpx;">{{item.phone}}</view>
 						</view>
 						<view class="hflex acenter cell">
-							<image src="https://ship-expert.zhousi.hdlkeji.com/common/company.png" class="item_icon"></image>
+							<image src="https://ship.shipcc.cn/common/company.png" class="item_icon"></image>
 							<view class="text_style1" style="padding-left: 16rpx;">{{item.company_name}}</view>
 						</view>
-						<view class="hflex astart cell">
+						<view class="hflex astart cell" v-if="item.address">
 							<u-icon name="map-fill" color="#b8b8b8" size="14"></u-icon>
-							<view class="text_style1" style="padding-left: 16rpx;">{{item.city}} {{item.area}}</view>
+							<view class="text_style1" style="padding-left: 16rpx;">{{item.address}}</view>
 						</view>
 					</view>
 				</view>
 			</block>
 		</view>
 		<view class="add" v-show="!repair_show">
-			<image src="https://ship-expert.zhousi.hdlkeji.com/common/add.png" @click="openRelease" class="add_img"></image>
+			<image src="https://ship.shipcc.cn/common/add.png" @click="openRelease" class="add_img"></image>
 		</view>
 		<view class="add2" v-show="repair_show">
 			<view class="add vflex aend">
 				<view class="hflex acenter jcenter release_box" @click="receivingOrder">
-					<image src="https://ship-expert.zhousi.hdlkeji.com/common/repair_icon1.png" class="box_img"></image>
+					<image src="https://ship.shipcc.cn/common/repair_icon1.png" class="box_img"></image>
 					<view class="box_text">维修工发布接单需求</view>
 				</view>
 				<view class="hflex acenter jcenter release_box" @click="repairOrder">
-					<image src="https://ship-expert.zhousi.hdlkeji.com/common/repair_icon2.png" class="box_img"></image>
+					<image src="https://ship.shipcc.cn/common/repair_icon2.png" class="box_img"></image>
 					<view class="box_text">船老板发布维修订单</view>
 				</view>
-				<image src="https://ship-expert.zhousi.hdlkeji.com/common/close.png" @click="close" class="add_img"></image>
+				<image src="https://ship.shipcc.cn/common/close.png" @click="close" class="add_img"></image>
 			</view>
 		</view>
 		<u-modal :show="show_tips" :closeOnClickOverlay="true" :showConfirmButton="false">
 			<view class="popup1">
-				<image src="https://ship-expert.zhousi.hdlkeji.com/common/small-bell.png" class="popup_img"></image>
+				<image src="https://ship.shipcc.cn/common/small-bell.png" class="popup_img"></image>
 				<view class="popup1_title">温馨提示</view>
 				<view class="popup1_text">您还不是维修工,不能参与报价,可立即申请成为维修工</view>
 				<view class="popup1_btn" @click="toApply">立即申请</view>
@@ -193,7 +201,7 @@
 					<u-input v-model="offer" placeholder="填写你的报价" border="none"></u-input>
 				</view>
 				<view class="hflex acenter">
-					<image src="https://ship-expert.zhousi.hdlkeji.com/common/icon_tips.png" style="width: 24rpx;height: 24rpx;padding-right: 6rpx"></image>
+					<image src="https://ship.shipcc.cn/common/icon_tips.png" style="width: 24rpx;height: 24rpx;padding-right: 6rpx"></image>
 					<view class="popup_info">报价可先不填,可等评估后再填写</view>
 				</view>
 				<view class="hflex acenter" style="padding:30rpx 0 20rpx;">
@@ -208,10 +216,10 @@
 				<view class="popup_title">报价信息</view>
 				<view class="popup_name">当前报价</view>
 				<view class="">
-					<block v-for="(item,index) in info.list" :key="index">
+					<block v-for="(item,index) in list.slice(0,3)" :key="index">
 						<view class="hflex acenter input_bg">
-							<view class="popup_text">第{{index + 1}}次报价</view>
-							<view class="red">{{item.price == 0 ? '暂无报价' : item.price}}</view>
+							<view class="popup_text">第{{list.length - index}}次报价</view>
+							<view class="red">{{item.price == 0 ? '报价' : item.price}}</view>
 						</view>
 					</block>
 				</view>
@@ -278,7 +286,8 @@
 				id: '',
 				info: {},
 				see_offer: false,
-				index: ''
+				index: '',
+				list: []
 			}
 		},
 		onLoad() {
@@ -286,34 +295,47 @@
 			that.maintenance = uni.getStorageSync('maintenance')
 		},
 		onShow() {
-			var token = uni.getStorageSync('token')
+			/* var token = uni.getStorageSync('token')
 			if(!token) {
 				$api.info('请先登录')
 				setTimeout(() =>{
-					$api.jump('/pages/login/code_login')
+					$api.jump('/pages/login/password_login')
 				}, 1000)
-			}
+			} */
 			that.getchatList()
 			that.getList()
-			that.getList2()
+			// that.getList2()
 		},
 		mounted() {
 			
 			
 		},
+		onReachBottom() {
+			if (that.page * that.limit >= that.total) {
+				$api.info("没有更多了")
+			} else {
+				this.page++
+				console.log(this.page,that.nav_index);
+				if(that.nav_index == 1) {
+					that.getList()
+					console.log('1111111111');
+				} else {
+					that.getList2()
+					console.log('222222222222');
+				}
+			}
+			
+		},
 		methods: {
 			// 返回
 			leftClick() {
-				console.log('返回');
 				$api.jump(-1)
 			},
 			getWidth() {
 				const query = uni.createSelectorQuery().in(this);
 				query.select('#dm1').boundingClientRect(data => {
-					console.log("data: ",data);
 				  that.domWidth = `-${data.width}px`
 				  that.temp = `${that.domWidth};`
-				  console.log("temp:",that.temp);
 				}).exec();
 			},
 			getchatList() {
@@ -322,7 +344,6 @@
 					method: 'POST'
 				}, function(res) {
 					if(res.code == 1) {
-						console.log(res);
 						that.bullet_chat = res.data
 						setTimeout(() => {
 							that.getWidth()
@@ -336,11 +357,11 @@
 					method: 'POST',
 					data: {
 						type: that.tabs_active + 1,
-						page: that.page
+						page: that.page,
+						describe: that.serach_value
 					}
 				}, function(res) {
 					if(res.code == 1) {
-						console.log(res);
 						if(that.page !== 1) {
 							that.pageList = that.pageList.concat(res.data.data)
 						} else {
@@ -384,13 +405,30 @@
 			},
 			// 切换tabs
 			changeTab(index) {
-				that.tabs_active = index
-				that.page = 1
-				that.getList()
+				var token = uni.getStorageSync('token')
+				if(!token) {
+					$api.info('请先登录')
+					setTimeout(() =>{
+						$api.jump('/pages/login/password_login')
+					}, 1000)
+				} else {
+					that.tabs_active = index
+					that.page = 1
+					that.getList()
+				}
+				
 			},
 			// 点击加号
 			openRelease() {
-				that.repair_show = true
+				var token = uni.getStorageSync('token')
+				if(!token) {
+					$api.info('请先登录')
+					setTimeout(() =>{
+						$api.jump('/pages/login/password_login')
+					}, 1000)
+				} else {
+					that.repair_show = true
+				}
 			},
 			// 关闭
 			close() {
@@ -406,60 +444,120 @@
 			},
 			// 发布接单需求
 			receivingOrder() {
-				if(that.maintenance) {
-					$api.jump('/page_index/pages/repair/receivingOrder')
-					that.close()
+				var token = uni.getStorageSync('token')
+				if(!token) {
+					$api.info('请先登录')
+					setTimeout(() =>{
+						$api.jump('/pages/login/password_login')
+					}, 1000)
 				} else {
-					that.show_tips = true
+					if(that.maintenance) {
+						$api.jump('/page_index/pages/repair/receivingOrder')
+						that.close()
+					} else {
+						that.show_tips = true
+					}
 				}
 				
+				
 			},
 			// 去申请
 			toApply() {
-				that.close()
-				$api.jump('/page_shop/pages/service/applyMaintenance')
+				var token = uni.getStorageSync('token')
+				if(!token) {
+					$api.info('请先登录')
+					setTimeout(() =>{
+						$api.jump('/pages/login/password_login')
+					}, 1000)
+				} else {
+					that.close()
+					$api.jump('/page_shop/pages/service/applyMaintenance')
+				}
+				
 			},
 			// 发布维修订单
 			repairOrder() {
-				$api.jump('/page_index/pages/repair/repairOrder')
-				that.close()
+				var token = uni.getStorageSync('token')
+				if(!token) {
+					$api.info('请先登录')
+					setTimeout(() =>{
+						$api.jump('/pages/login/password_login')
+					}, 1000)
+				} else {
+					$api.jump('/page_index/pages/repair/repairOrder')
+					that.close()
+				}
+				
 			},
 			// 接单
 			meetOrder(id,index) {
-				that.index = index
-				if(that.maintenance) {
-					that.show_offer = true
-					that.id = id
+				var token = uni.getStorageSync('token')
+				if(!token) {
+					$api.info('请先登录')
+					setTimeout(() =>{
+						$api.jump('/pages/login/password_login')
+					}, 1000)
 				} else {
-					that.show_tips = true
+					that.index = index
+					if(that.maintenance) {
+						that.show_offer = true
+						that.id = id
+					} else {
+						that.show_tips = true
+					}
 				}
+				
 				// that.show_tips = true
 				// that.show_offer = true
 				// that.id = id
 			},
 			seeOffer(id,index) {
-				that.index = index
-				if(!that.maintenance) {
-					that.show_tips = true
-					return
-				}
-				$api.req({
-					url: '/data/api.auth.ShipEngineMaintenance/offerinfo',
-					method: 'POST',
-					data: {
-						id: id
-					}
-				}, function(res) {
-					if(res.code == 1) {
-						that.see_offer = true
-						that.id = id
-						that.info = res.data
+				var token = uni.getStorageSync('token')
+				if(!token) {
+					$api.info('请先登录')
+					setTimeout(() =>{
+						$api.jump('/pages/login/password_login')
+					}, 1000)
+				} else {
+					that.index = index
+					if(!that.maintenance) {
+						that.show_tips = true
+						return
 					}
-				})
+					$api.req({
+						url: '/data/api.auth.ShipEngineMaintenance/offerinfo',
+						method: 'POST',
+						data: {
+							id: id
+						}
+					}, function(res) {
+						if(res.code == 1) {
+							that.see_offer = true
+							that.id = id
+							that.info = res.data
+							let length = res.data.list.length
+							let index = 0
+							that.list = []
+							for(var i=length-1;i>=0;i--) {
+								that.list.push(that.info.list[i])
+							}
+						}
+					})
+				}
+				
 			},
 			tooffer() {
-				$api.jump('/page_shop/pages/order/offer2?id=' + that.id + '&status=' + that.pageList[that.index].status)
-				that.close()
+				var token = uni.getStorageSync('token')
+				if(!token) {
+					$api.info('请先登录')
+					setTimeout(() =>{
+						$api.jump('/pages/login/password_login')
+					}, 1000)
+				} else {
+					$api.jump('/page_shop/pages/order/offer2?id=' + that.id + '&status=' + that.pageList[that.index].status)
+					that.close()
+				}
+				
 			},
 			submit() {
 				$api.req({
@@ -484,11 +582,27 @@
 			},
 			// 订单详情
 			orderDetail(id) {
-				$api.jump('/page_index/pages/repair/orderDetail?id=' + id)
+				var token = uni.getStorageSync('token')
+				if(!token) {
+					$api.info('请先登录')
+					setTimeout(() =>{
+						$api.jump('/pages/login/password_login')
+					}, 1000)
+				} else {
+					$api.jump('/page_index/pages/repair/orderDetail?id=' + id)
+				}
 			},
 			// 维修工详情
 			toDetail2(id) {
-				$api.jump('/page_index/pages/repair/repairDetail?id=' + id)
+				var token = uni.getStorageSync('token')
+				if(!token) {
+					$api.info('请先登录')
+					setTimeout(() =>{
+						$api.jump('/pages/login/password_login')
+					}, 1000)
+				} else {
+					$api.jump('/page_index/pages/repair/repairDetail?id=' + id)
+				}
 			},
 			// 删除图片
 			deletePic(event) {
@@ -557,25 +671,18 @@
 				})
 			},
 			search() {
-				console.log(that.serach_value);
-				that.page = 1
-				that.pageList2 = []
-				that.getList2()
-			},
-			onReachBottom() {
-				console.log("到底了");
-				if (that.page * that.limit >= that.total) {
-					$api("没有更多了")
+				if(that.nav_index == 1) {
+					that.page = 1
+					that.pageList = []
+					that.getList()
 				} else {
-					this.page++
-					if(that.nav_index = 1) {
-						that.getList()
-					} else {
-						that.getList2()
-					}
+					that.page = 1
+					that.pageList2 = []
+					that.getList2()
 				}
 				
-			}
+			},
+			
 		},
 	}
 </script>
@@ -664,7 +771,8 @@
 			margin-top: 20rpx;
 			width: 100%;
 			box-sizing: border-box;
-			background: linear-gradient(180deg, #FFFFFF 0%, #F4F4F4 100%);
+			background: linear-gradient(65deg, #FFFFFF 0%, #F4F4F4 100%);
+			
 			padding: 20rpx 30rpx 88rpx;
 			.tabs_item {
 				width: 33%;
@@ -821,11 +929,45 @@
 			}
 		}
 		.search {
+			position: fixed;
+			// top: 170rpx;
 			// background: #fff;
 			width: 100%;
-			height: 88rpx;
+			height: 100rpx;
 			box-sizing: border-box;
 			padding: 12rpx 30rpx;
+			background: #fff;
+			z-index: 99;
+			margin: 0 0 20rpx 0;
+			.u-input {
+				background-color: #fff;
+				height: 64rpx;
+				padding: 0 0 0 18rpx !important;
+				border: 1rpx solid #506Dff;
+				margin-bottom: 12rpx;
+			}
+			.u-input__content__subfix-icon {
+				width: 128rpx;
+				height: 64rpx;
+				background-color: #506Dff;
+				border-radius: 32rpx;
+				color: #fff;
+				font-size: 28rpx;
+				text-align: center;
+				line-height: 64rpx;
+			}
+		}
+		.search2 {
+			position: sticky;
+			top: 170rpx;
+			// background: #fff;
+			width: 100%;
+			height: 100rpx;
+			box-sizing: border-box;
+			padding: 12rpx 30rpx;
+			// background: #fff;
+			z-index: 99;
+			margin: 20rpx 0;
 			.u-input {
 				background-color: #fff;
 				height: 64rpx;
@@ -882,7 +1024,7 @@
 		}
 		.u-modal {
 			width: 530rpx !important;
-			background: url('https://ship-expert.zhousi.hdlkeji.com/common/eject.png') no-repeat;
+			background: url('https://ship.shipcc.cn/common/eject.png') no-repeat;
 			background-size: 100%;
 			overflow: unset !important; 
 		}
@@ -1002,13 +1144,13 @@
 		position:absolute;
 		top: 24rpx;
 		left: 0%;
-		animation: rowScrollTest 10s linear infinite;
+		animation: rowScrollTest 22s linear infinite;
 	}
 	.dm_scroll1 {
 		position:absolute;
 		top: 96rpx;
 		left: 0%;
-		animation: rowScrollTest 12s linear infinite;
+		animation: rowScrollTest 25s linear infinite;
 	}
 	
 	@keyframes rowScrollTest {

+ 9 - 3
page_index/pages/repair/repairDetail.vue

@@ -8,18 +8,19 @@
 			<view class="hflex acenter cell">
 				<u-icon name="phone-fill" color="#666666" size="14"></u-icon>
 				<view class="text_style1">{{pageData.phone}}</view>
+				<image src="@/static/images/comment/sp_call_phone.png" mode="aspectFill" style="width: 28rpx;height: 28rpx;margin-left: 20rpx;"@click="tell"></image>
 			</view>
 			<view class="hflex acenter cell">
 				<u-icon name="email-fill" color="#666666" size="14"></u-icon>
 				<view class="text_style1">{{pageData.email}}<span class="copy" @click="copy"> | 复制</span></view>
 			</view>
 			<view class="hflex acenter cell">
-				<image src="https://ship-expert.zhousi.hdlkeji.com/common/company.png" class="icon"></image>
+				<image src="https://ship.shipcc.cn/common/company.png" class="icon"></image>
 				<view class="text_style1">{{pageData.company_name}}</view>
 			</view>
 			<view class="hflex acenter cell">
 				<u-icon name="map-fill" color="#666666" size="14"></u-icon>
-				<view class="text_style1">{{pageData.city}}{{pageData.area}}{{pageData.address}}</view>
+				<view class="text_style1">{{pageData.address}}</view>
 			</view>
 		</view>
 		<view class="box">
@@ -73,6 +74,11 @@
 					}
 				})
 			},
+			tell() {
+				uni.makePhoneCall({
+					phoneNumber: that.pageData.phone //仅为示例
+				});
+			},
 			copy() {
 				uni.setClipboardData({
 					data: that.pageData.email,
@@ -87,7 +93,7 @@
 
 <style lang="scss" scoped>
 	.content {
-		background: url('https://ship-expert.zhousi.hdlkeji.com/common/background.png') #F4F4F4 no-repeat;
+		background: url('https://ship.shipcc.cn/common/background.png') #F4F4F4 no-repeat;
 		background-size: 100%;
 		padding: 0 30rpx;
 		.box {

+ 2 - 2
page_index/pages/repair/repairOrder.vue

@@ -5,7 +5,7 @@
 				<view class="label required">产品图片</view>
 				<view>
 					<u-upload :fileList="fileList1" @afterRead="afterRead" @delete="deletePic" :maxCount="9" name="1" multiple :previewFullImage="true" width="200rpx" height="200rpx">
-						<image src="https://ship-expert.zhousi.hdlkeji.com/common/add-img.png" style="width: 200rpx;height: 200rpx;"></image>
+						<image src="https://ship.shipcc.cn/common/add-img.png" style="width: 200rpx;height: 200rpx;"></image>
 					</u-upload>
 				</view>
 			</view>
@@ -39,7 +39,7 @@
 		<view class="box">
 			<view class="hflex acenter jbetween">
 				<view class="label">是否快修</view>
-				<u-switch v-model="is_quick" activeColor="#506dff" @change="change"></u-switch>
+				<u-switch v-model="is_quick" activeColor="#506dff" inactiveColor="rgb(230, 230, 230)" @change="change"></u-switch>
 			</view>
 		</view> 
 		<view class="bottom">

+ 3 - 3
page_index/pages/resources/resourDetail.vue

@@ -1,7 +1,7 @@
 <template>
 	<view class="content">
-		<view class="top hflex acenter">
-			<image src="https://ship-expert.zhousi.hdlkeji.com/common/company1.png" class="top_img"></image>
+		<view class="top hflex">
+			<image src="https://ship.shipcc.cn/common/company1.png" class="top_img"></image>
 			<view class="top_text">{{pageData.title}}</view>
 		</view>
 		<view class="box">
@@ -66,7 +66,6 @@
 		background: #F4F4F4;
 		.top {
 			width: 100%;
-			height: 120rpx;
 			background: #FFFFFF;
 			box-sizing: border-box;
 			padding: 36rpx 30rpx;
@@ -75,6 +74,7 @@
 				height: 48rpx;
 			}
 			.top_text {
+				max-width: calc(100% - 60rpx);
 				font-size: 36rpx;
 				font-weight: 500;
 				color: #222222;

+ 27 - 7
page_index/pages/resources/resources.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="content">
-		<view class="hflex acenter jbetween">
+		<view class="hflex acenter jbetween fixed">
 			<view class="top_bg">
 				<view class="top" @click="toRule(1)">规则</view>
 			</view>
@@ -11,7 +11,7 @@
 				<view class="top" @click="toRule(3)">供方认可机构清单</view>
 			</view>
 		</view>
-		<view class="">
+		<view class="" style="margin-top: 64rpx;">
 			<block v-for="(item,index) in pageList" :key="index">
 				<view class="box">
 					<view class="box_name">{{item.title}}</view>
@@ -44,13 +44,13 @@
 			that.getList()
 		},
 		onShow() {
-			var token = uni.getStorageSync('token') 
+			/* var token = uni.getStorageSync('token') 
 			if(!token) {
 				$api.info('请先登录')
 				setTimeout(() =>{
-					$api.jump('/pages/login/code_login')
+					$api.jump('/pages/login/password_login')
 				}, 1000)
-			}
+			} */
 		},
 		methods: {
 			getList() {
@@ -73,11 +73,27 @@
 			},
 			// 查看详情
 			toDetail(id) {
-				$api.jump('/page_index/pages/resources/resourDetail?id=' + id)
+				var token = uni.getStorageSync('token')
+				if(!token) {
+					$api.info('请先登录')
+					setTimeout(() =>{
+						$api.jump('/pages/login/password_login')
+					}, 1000)
+				} else {
+					$api.jump('/page_index/pages/resources/resourDetail?id=' + id)
+				}
 			},
 			// 规则
 			toRule(index) {
-				$api.jump('/page_index/pages/resources/rule?index=' + index)
+				var token = uni.getStorageSync('token')
+				if(!token) {
+					$api.info('请先登录')
+					setTimeout(() =>{
+						$api.jump('/pages/login/password_login')
+					}, 1000)
+				} else {
+					$api.jump('/page_index/pages/resources/rule?index=' + index)
+				}
 			},
 			onReachBottom() {
 				if (Number(that.page) * Number(that.limit) >= Number(that.total)) {
@@ -96,7 +112,11 @@
 	.content {
 		padding: 20rpx 30rpx;
 		background: #F4F4F4;
+		.fixed {
+			position: fixed;
+		}
 		.top_bg {
+			margin: 0 10rpx 0 0;
 			height: 64rpx;
 			box-sizing: border-box;
 			padding: 0 60rpx;

+ 6 - 6
page_shop/pages/address/add.vue

@@ -20,7 +20,7 @@
 			</view>
 			<view class="hflex acenter jbetween item">
 				<view class="left">设为默认地址</view>
-				<u-switch v-model="is_active" activeColor="#506dff" @change="change"></u-switch>
+				<u-switch v-model="is_active" activeColor="#506dff" inactiveColor="rgb(230, 230, 230)" @change="change"></u-switch>
 			</view>
 		</view>
 		<view class="btn" v-if="is_edit == 0" @click="addAddress">保存</view>
@@ -65,11 +65,11 @@
 				var data = prePage.$vm.pageList[index]
 				that.name = data.name
 				that.phone = data.phone
-				that.province = data.province
-				that.city = data.city
-				that.area = data.area
-				that.areas = data.province + that.city + that.area
-				that.address = data.address
+				that.addressObj.province = data.province
+				that.addressObj.city = data.city
+				that.addressObj.area = data.area
+				that.addressObj.areas = data.province + that.city + that.area
+				that.addressObj.address = data.address
 				
 				that.id = data.id
 				if(data.type) {

+ 24 - 10
page_shop/pages/base/base.vue

@@ -6,8 +6,8 @@
 					<view class="hflex acenter" style="padding-right: 68rpx;">
 						<view class="tab_item" :class="tab_active == index ? 'tab_active': ''" @click="changeTab(index)">{{item.name}}</view>
 						<view class="vflex acenter jcenter" v-if="index == 2">
-							<u-icon name="arrow-up-fill" :color="color" size="4"></u-icon>
-							<u-icon name="arrow-down-fill" :color="color2" size="4"></u-icon>
+							<u-icon name="arrow-up-fill" :color="color" size="10"></u-icon>
+							<u-icon name="arrow-down-fill" :color="color2" size="10"></u-icon>
 						</view>
 					</view>
 				</block>
@@ -110,19 +110,20 @@
 				type1: false,
 				type2: false,
 				id: '',
-				left_active: 0,
+				left_active: -1,
 			}
 		},
 	 	onLoad(options) {
 			that = this
+			console.log('options===',options);
 			if(options.data) {
 				var option = JSON.parse(options.data)
-				console.log(option);
 				that.titleList = option
 				// that.id = option[0].id
 				// that.getDate()
 			}
 			that.id = options.id
+			that.pageList = []
 			that.getDate()
 			that.bartitle = options.name
 		},
@@ -131,24 +132,33 @@
 				title: that.bartitle
 			});
 		},
+		onReachBottom() {
+			if (Number(that.page) * Number(that.limit) >= Number(that.total)) {
+				$api.info("没有更多了")
+			} else {
+				that.page++
+				that.getDate()
+			} 
+		},
 		methods: {
 			// 获取产品数据
 			getDate() {
 				$api.req({
 					url: '/data/api.Goods/getGoods',
 					data: {
-						cateids: that.titleList[that.left_active].id? that.titleList[that.left_active].id :that.id,
+						page: that.page,
+						cateids: that.left_active != -1? that.titleList[that.left_active].id : that.id,
 						admin_id: '',
 						name: '',
-						sales_order: !that.type1?'asc':'desc',
-						price_order: !that.type2?'asc':'desc',
+						sales_order: that.tab_active == 1 ? !that.type1 ? 'asc' : 'desc' : '',
+						price_order: that.tab_active != 2 ? '' : !that.type2 ? 'asc' : 'desc',
 					}
 				}, function(res) {
 					if(res.code == 1) {
 						// that.$set(that.pageList[index],'goods',res.data.list)
 						// that.pageList[index].goods = res.data
-						
-						that.pageList = res.data.list
+						that.total = res.data.page.total
+						that.pageList = that.pageList.concat(res.data.list)
 						for(var i=0;i<that.pageList.length;i++) {
 							that.pageList[i].cover = that.pageList[i].cover.split('|')
 						}
@@ -185,16 +195,20 @@
 					that.type2 = !that.type2
 					if(that.type2) {
 						that.color = '#506dff'
+						that.color2 = '#7D7D7D'
 					} else {
 						that.color = '#7D7D7D'
 						that.color2 = '#506dff'
 					}
 				}
+				that.page = 1
+				that.pageList = []
 				that.getDate()
 			},
 			clickTab1(e) {
 				that.left_active = e
-				// that.id = that.titleList[that.left_active].id
+				that.page = 1
+				that.pageList = []
 				that.getDate()
 			},
 			close() {

+ 6 - 6
page_shop/pages/collect/collect.vue

@@ -10,10 +10,10 @@
 				<block v-for="(item,index) in pageList" :key="index">
 					<view class="order_box">
 						<view class="order_top hflex acenter" @click.stop="toDetail(index)">
-							<image src="https://ship-expert.zhousi.hdlkeji.com/common/order_type1.png"  v-if="item.info.tab == 1" class="order_img"></image>
-							<image src="https://ship-expert.zhousi.hdlkeji.com/common/order_type2.png"  v-if="item.info.tab == 2" class="order_img"></image>
-							<image src="https://ship-expert.zhousi.hdlkeji.com/common/order_type3.png"  v-if="item.info.tab == 3" class="order_img"></image>
-							<image src="https://ship-expert.zhousi.hdlkeji.com/common/order_type4.png"  v-if="item.info.tab == 4" class="order_img"></image>
+							<image src="https://ship.shipcc.cn/common/order_type1.png"  v-if="item.info.tab == 1" class="order_img"></image>
+							<image src="https://ship.shipcc.cn/common/order_type2.png"  v-if="item.info.tab == 2" class="order_img"></image>
+							<image src="https://ship.shipcc.cn/common/order_type3.png"  v-if="item.info.tab == 3" class="order_img"></image>
+							<image src="https://ship.shipcc.cn/common/order_type4.png"  v-if="item.info.tab == 4" class="order_img"></image>
 							<view class="order_title">{{item.info.merchant.company}}</view>
 						</view>
 						<view class="">
@@ -106,8 +106,8 @@
 					data: {
 						page: that.page,
 						type: type,
-						longitude: uni.getStorageSync('userLocation').split(',')[0],
-						latitude: uni.getStorageSync('userLocation').split(',')[1]
+						longitude: uni.getStorageSync('userLocation') ? uni.getStorageSync('userLocation').split(',')[0] : 116.39966000531004,
+						latitude: uni.getStorageSync('userLocation') ? uni.getStorageSync('userLocation').split(',')[1] : 39.87879577658584
 					}
 				}, function(res) {
 					if(res.code == 1) {

+ 49 - 39
page_shop/pages/good/detail.vue

@@ -23,12 +23,17 @@
 						<view class="text_style1">收藏</view>	
 					</view>	
 					<view class="vflex acenter" style="margin-left: 42rpx;"  @click="share('Poster1')">
-						<image src="https://ship-expert.zhousi.hdlkeji.com/common/share.png" class="bottom_img"></image>	
+						<image src="https://ship.shipcc.cn/common/share.png" class="bottom_img"></image>	
 						<view class="text_style1">分享</view>	
 					</view>	
 				</view>
 			</view>
-			<view class="name">{{pageData.name}}</view>
+			<span class="" :class="more_show ? 'hflex aend' : ''">
+				<text class="name" :class="more_show ? 'text_hide2' : ''">{{pageData.name}}</text>
+				<u-icon name="arrow-down" color="#000" size="16" v-if="more_show" @click="changeShow"></u-icon>
+				<image src="@/static/images/shop/arrow-up.png" alt=""  @click="changeShow" v-if="!more_show && length > 32" style="width: 28rpx;height: 28rpx" />
+				<!-- <u-icon name="arrow-up" color="#000" size="16" v-if="!more_show && length > 32" @click="changeShow"></u-icon> -->
+			</span>
 		</view>
 		<view class="box">
 			<view class="hflex acenter jbetween" @click="openNorm">
@@ -54,7 +59,7 @@
 			<u-parse :content="pageData.content"></u-parse>
 			<view class="vflex acenter jcenter">
 				<view v-for="(item,index) in pageData.slider" :key="index" class="cell">
-					<image :src="item.url" style="width: 100%;" mode="aspectFit" v-if="item.type == 'img'"></image>
+					<image :src="item.url" style="width: 100%;" mode="widthFix" v-if="item.type == 'img'"></image>
 					<video :src="item.url" v-else></video>
 				</view>
 			</view>
@@ -73,10 +78,13 @@
 				<image src="/static/images/shop/cart_icon.png" class="bottom_img"></image>	
 				<view class="text_style1">购物车</view>	
 			</view>	
-			<view class="hflex acenter">
+			<view class="hflex acenter" v-if="pageData.status != 0">
 				<view class="btn1" @click="addCart">加入购物车</view>
 				<view class="btn2" @click="buy">立即购买</view>
 			</view>
+			<view class="" v-if="pageData.status == 0">
+				<view class="btn3">已下架</view>
+			</view>
 		</view>
 		<u-popup :show="norm_show" @close="close" mode="bottom" :round="20" :closeable="true">
 			<view class="popu">
@@ -150,15 +158,15 @@
 			<view class="share_bottom">
 				<view class="hflex acenter jcenter">
 					<button class="vflex acenter jcenter bottom_item" open-type="share">
-						<image src="https://ship-expert.zhousi.hdlkeji.com/common/wx.png" class="item_icon"></image>
+						<image src="https://ship.shipcc.cn/common/wx.png" class="item_icon"></image>
 						<view class="item_text">微信好友</view>
 					</button>
 					<!-- <button class="vflex acenter jcenter bottom_item" open-type="share">
-						<image src="https://ship-expert.zhousi.hdlkeji.com/common/moments.png" class="item_icon"></image>
+						<image src="https://ship.shipcc.cn/common/moments.png" class="item_icon"></image>
 						<view class="item_text">朋友圈</view>
 					</button> -->
 					<view class="vflex acenter jcenter bottom_item" @click="saveImg">
-						<image src="https://ship-expert.zhousi.hdlkeji.com/common/download.png" class="item_icon"></image>
+						<image src="https://ship.shipcc.cn/common/download.png" class="item_icon"></image>
 						<view class="item_text">保存图片</view>
 					</view>
 				</view>
@@ -176,9 +184,7 @@
 			return {
 				nav_active: 1,
 				currentNum: 0,
-				pageData: {
-					
-				},
+				pageData: {},
 				normStr: '',
 				norm: '',
 				color: '',
@@ -194,16 +200,18 @@
 				order_no: '',
 				list: [],
 				style: {
-					img1: 'https://ship-expert.zhousi.hdlkeji.com/common/down2.png',
-					img2: 'https://ship-expert.zhousi.hdlkeji.com/common/line.png',
-					code: 'https://ship-expert.zhousi.hdlkeji.com/common/code.jpg'
+					img1: 'https://ship.shipcc.cn/common/down2.png',
+					img2: 'https://ship.shipcc.cn/common/line.png',
+					code: 'https://ship.shipcc.cn/common/code.jpg'
 				},
 				share_show: false,
 				tempImage:'',
 				item_id: '',
 				normType: 0,
 				len: 0,
-				max_num: 1
+				max_num: 1,
+				more_show: false,
+				length: 0
 			}
 		},
 		onLoad(options) {
@@ -267,6 +275,11 @@
 							}
 							slider.push(data)
 						}
+						that.length = that.pageData.name.length
+						console.log('字符长度',that.length);
+						if(that.pageData.name.length > 32) {
+							that.more_show = true
+						}
 						that.pageData.slider = slider
 						console.log(that.pageData);
 						that.$set(that.pageData,'num',1)
@@ -312,6 +325,9 @@
 					});
 				}
 			},
+			changeShow() {
+				that.more_show = !that.more_show
+			},
 			// 收藏
 			collect() {
 				if(that.pageData.is_collection == 0) {
@@ -489,28 +505,14 @@
 						url = '/page_shop/pages/good/submit?pageData=' + JSON.stringify(data) + '&item_id=' + that.norm_active + '&buy_num=' + that.pageData.num
 					}
 					$api.jump(url)
-					/* $api.req({
-						url: '/data/api.Order/order_create',
-						method: 'POST',
-						data: {
-							admin_id: that.pageData.admin_id,
-							item_id: that.pageData.items[that.norm_active].id,
-							num: that.pageData.num,
-							address_id: that.deliveryList[that.address_active].id
-						}
-					}, function(res) {
-						if(res.code == 1) {
-							$api.info(res.info)
-							that.close()
-							var order_id = res.data.order_id
-							var pay_no = res.data.pay_no
-							$api.jump('/page_shop/pages/good/submit?order_id=' + order_id + '&address_id=' + that.deliveryList[that.address_active].id + '&pay_no=' +pay_no)
-						}
-					}) */
 				}
 			},
 			// 确定选择规格
 			sure() {
+				if(that.norm_active == -1) {
+					$api.info('请先选择规格')
+					return
+				}
 				if(that.max_num < that.pageData.num) {
 					$api.info("商品库存不足")
 					return
@@ -525,10 +527,7 @@
 				}
 				
 				console.log(that.norm_active);
-				if(that.norm_active == -1) {
-					$api.info('请选择规格')
-					return
-				}
+				
 				
 				if(that.normType == 1) {
 					that.close()
@@ -547,7 +546,7 @@
 					}, function(res) {
 						if(res.code == 1) {
 							$api.info('加入购物车成功')
-							that.norm_active = -1
+							// that.norm_active = -1
 							that.close()
 						}
 					})
@@ -726,7 +725,6 @@
 				font-size: 36rpx;
 				font-weight: 500;
 				color: #222222;
-				line-height: 50rpx;
 			}
 			.bottom_img {
 				width: 40rpx;
@@ -767,7 +765,7 @@
 			}
 			.cell {
 				width: 100%;
-				margin-top: 20rpx;
+				margin-top: 5rpx;
 			}
 			.detail_img {
 				width: 100%;
@@ -818,6 +816,18 @@
 				text-align: center;
 				line-height: 72rpx;
 			}
+			.btn3 {
+				background: #CFCFCF;
+				border-radius: 36rpx;
+				font-size: 28rpx;
+				font-family: PingFangSC-Medium, PingFang SC;
+				font-weight: 500;
+				color: #FFFFFF;
+				text-align: center;
+				line-height: 72rpx;
+				width: 440rpx;
+				height: 72rpx;
+			}
 			.bottom_img {
 				width: 40rpx;
 				height: 40rpx;

+ 17 - 6
page_shop/pages/good/shop.vue

@@ -21,8 +21,8 @@
 					<view class="hflex acenter" style="padding-right: 68rpx;">
 						<view class="tab_item" :class="tab_active == index ? 'tab_active': ''" @click="changeTab(index)">{{item.name}}</view>
 						<view class="vflex acenter jcenter" v-if="index == 2">
-							<u-icon name="arrow-up-fill" :color="color" size="4"></u-icon>
-							<u-icon name="arrow-down-fill" :color="color2" size="4"></u-icon>
+							<u-icon name="arrow-up-fill" :color="color" size="10"></u-icon>
+							<u-icon name="arrow-down-fill" :color="color2" size="10"></u-icon>
 						</view>
 					</view>
 				</block>
@@ -59,7 +59,7 @@
 					<u-icon name="phone-fill" color="#506dff" size="20"></u-icon>
 					<view class="text_style1">打电话</view>	
 				</view>	
-				<view class="hflex acenter jcenter btn">
+				<view class="hflex acenter jcenter btn" @click="contact">
 					<image class="btn_icon" src="/static/images/shop/consulting.png"></image>
 					<view class="btn_text">咨询客服</view>
 				</view>
@@ -178,8 +178,8 @@
 						cateids: that.left_active == -1 ? '' : that.cateList[that.left_active].id,
 						admin_id: that.admin_id,
 						name: that.keyword,
-						sales_order: that.type1?'asc':'desc',
-						price_order: that.type2?'asc':'desc'
+						sales_order: that.tab_active == 1 ? !that.type1 ? 'asc' : 'desc' : '',
+						price_order: that.tab_active != 2 ? '' : !that.type2 ? 'asc' : 'desc',
 					}
 				}, function(res) {
 					if(res.code == 1) {
@@ -222,6 +222,7 @@
 					that.type2 = !that.type2
 					if(that.type2) {
 						that.color = '#506dff'
+						that.color2 = '#7D7D7D'
 					} else {
 						that.color = '#7D7D7D'
 						that.color2 = '#506dff'
@@ -241,6 +242,16 @@
 					phoneNumber: value //仅为示例
 				});
 			},
+			contact() {
+				var my = uni.getStorageSync("myUsername");
+				var nameList = {
+				  myName: my,
+				  your: that.shop.huanxinID,
+				};
+				uni.navigateTo({
+				  url: "/pages/chatroom/chatroom?username=" + JSON.stringify(nameList),
+				});
+			},
 			// 选择规格
 			selectNorm(index,index2) {
 				for(var i=0;i<that.pageList[that.good_index].specs[index].list.length;i++) {
@@ -307,7 +318,7 @@
 	.content {
 		position: relative;
 		.top {
-			background: url('https://ship-expert.zhousi.hdlkeji.com/common/nav_bg.png') no-repeat;
+			background: url('https://ship.shipcc.cn/common/nav_bg.png') no-repeat;
 			background-size: 100%;
 			box-sizing: border-box;
 			padding: 30rpx;

+ 1 - 1
page_shop/pages/good/shopDetail.vue

@@ -71,7 +71,7 @@
 		background: #F4F4F4;
 		position: relative;
 		.top {
-			background: url('https://ship-expert.zhousi.hdlkeji.com/common/nav_bg.png') no-repeat;
+			background: url('https://ship.shipcc.cn/common/nav_bg.png') no-repeat;
 			background-size: 100%;
 			box-sizing: border-box;
 			padding: 30rpx;

+ 15 - 20
page_shop/pages/good/submit.vue

@@ -1,7 +1,7 @@
 <template>
 	<view class="content">
 		<view class="box">
-			<block v-if="address_id == ''">
+			<block v-if="JSON.stringify(address) == '{}'">
 				<view class="hflex acenter jbetween" @click="addAddr">
 					<view class="title">新增收货地址</view>
 					<u-icon name="arrow-right" color="#ABABAB" size="11"></u-icon>
@@ -34,7 +34,7 @@
 							<view class="item_name">¥{{pageData.items[item_id].price_selling}}</view>
 						</view>
 						<view class="hflex jbetween" style="padding: 2rpx 0 0;">
-							<view class="norm">{{pageData.items[item_id].goods_spec}}</view>
+							<view class="norm">{{pageData.items[item_id].goods_spec || ''}}</view>
 							<view class="left_text">X{{buy_num}}</view>
 						</view>
 					</view>
@@ -140,14 +140,14 @@
 			that = this
 			console.log(options);
 			// that.address_id = uni.getStorageSync('address_id')
-			if(options.address_id) {
+			/* if(options.address_id) {
 				that.address_id = options.address_id
-			}
+			} */
 			if(options.pageData) {
 				that.pageData = JSON.parse(options.pageData)
 				console.log('that.pageData',that.pageData);
 				that.item_id = options.item_id
-				that.buy_num = Number(options.buy_num)
+				that.buy_num = Number(options.buy_num)?Number(options.buy_num):1
 				// pageData.items[item_id].goods_spec = $api.resetspec(pageData.items[item_id].goods_spec)
 				that.total = (Number(that.pageData.items[that.item_id].price_selling) * that.buy_num).toFixed(2)
 				that.pageData.items[that.item_id].goods_spec = $api.resetspec(that.pageData.items[that.item_id].goods_spec)
@@ -197,18 +197,17 @@
 				that.total = that.total.toFixed(2)
 			},
 			getAddr() {
-				that.address_id = uni.getStorageSync('address_id')
-				if(that.address_id == '') {
-					return
-				}
+				// that.address_id = uni.getStorageSync('address_id')
+				// if(that.address_id == '') {
+				// 	return
+				// }
 				$api.req({
 					url: '/data/api.User/address_list'
 				}, function(res) {
 					if(res.code == 1) {
 						for(var i=0;i<res.data.data.length;i++) {
-							if(res.data.data[i].id == that.address_id) {
-								that.address = res.data.data[i]
-							}
+							that.address = res.data.data[0]
+							that.address_id = that.address.id
 						}
 					}
 				})
@@ -217,7 +216,7 @@
 				$api.jump('/page_shop/pages/address/list?select=true')
 			},
 			submit() {
-				if(!that.address_id) {
+				if(JSON.stringify(that.address) == '{}') {
 					$api.info("请先选择地址")
 					return
 				}
@@ -225,11 +224,6 @@
 					$api.info("请先选择地址")
 					return
 				}
-				var openid = uni.getStorageSync('openid1')
-				if(!openid) {
-					$api.info("登录验证有误,请重新登录")
-					return
-				}
 				if(that.item_id) {
 					$api.req({
 						url: '/data/api.Order/order_create',
@@ -274,7 +268,9 @@
 											  success (res) { 
 												$api.jump('/page_shop/pages/order/paySuccess?id=' +that.order_id ,2)
 											  },
-											  fail (res) { }
+											  fail (res) { 
+												  console.log(res);
+											  }
 											})
 										}
 									})
@@ -332,7 +328,6 @@
 						}
 					})
 				}
-				
 			}
 		},
 	}

+ 3 - 3
page_shop/pages/good/submit2.vue

@@ -34,7 +34,7 @@
 						<view class="price">¥{{pageData.goods_item[0].price_selling}}</view>
 					</view>
 					<view class="hflex jbetween" style="padding-top: 12rpx;">
-						<view class="norm text_hide">{{pageData.goods_item[0].goods_spec}}</view>
+						<view class="norm text_hide">{{pageData.goods_item[0].goods_spec || ''}}</view>
 						<view class="vflex">
 							<view class="num">X{{pageData.goods_item[0].stock_sales}}</view>
 						</view>
@@ -176,10 +176,10 @@
 					return
 				}
 				var openid = uni.getStorageSync('openid1')
-				if(!openid) {
+				/* if(!openid) {
 					$api.info("登录验证有误,请重新登录")
 					return
-				}
+				} */
 				if(that.item_id) {
 					$api.req({
 						url: '/data/api.Order/order_create',

+ 1 - 1
page_shop/pages/member/index.vue

@@ -262,7 +262,7 @@
 	.content {
 		background-color: #e4e8f4;
 		.top {
-			background: url('https://ship-expert.zhousi.hdlkeji.com/common/member_bg.png') no-repeat;
+			background: url('https://ship.shipcc.cn/common/member_bg.png') no-repeat;
 			background-size: 100%;
 			width: 100%;
 			height: 480rpx;

+ 43 - 7
page_shop/pages/mine/cart.vue

@@ -24,10 +24,15 @@
 						<u-checkbox-group placement="column" @change="checkboxChange(index,index2)">
 							<u-swipe-action :key="item2.id" :autoClose="true">
 								<u-swipe-action-item :options="options2" @click="deleteCart(index,index2)" :autoClose="true">
-									<view class="hflex acenter cell">
-										<u-checkbox v-model="item2.id" :value="item2.id" :checked="item2.checked" shape="circle"></u-checkbox>
-										<image :src="item2.show_image" mode="aspectFill" class="img"></image>
-										<view class="vflex img_right">
+									<view class="hflex acenter cell" @click="toDetail(item2.goods_id)">
+										<u-checkbox :disabled="item2.status == 0 && is_manager == 0 ? true : false" v-model="item2.id" :value="item2.id" :checked="item2.checked" shape="circle"></u-checkbox>
+										<view class="img_box">
+											<image :src="item2.show_image" mode="aspectFill" class="img" :class="item2.status == 0 ? 'cell2' : ''"></image>
+											<view class="item_status" v-if="item2.status == 0">
+												已下架
+											</view>
+										</view>
+										<view class="vflex img_right" :class="item2.status == 0 ? 'cell2' : ''">
 											<view class="item_name text_hide" style="max-width: 450rpx;">{{item2.name}}</view>
 											<view class="norm">{{item2.goods_spec}}</view>
 											<view class="hflex acenter jbetween">
@@ -100,7 +105,7 @@
 			if(!token) {
 				$api.info('请先登录')
 				setTimeout(() =>{
-					$api.jump('/pages/login/code_login')
+					$api.jump('/pages/login/password_login')
 				}, 1000)
 			}
 		},
@@ -141,7 +146,9 @@
 				that.pageList[index].isAllSelected = !that.pageList[index].isAllSelected
 				if(that.pageList[index].isAllSelected) {
 					for(var i = 0;i<that.pageList[index].goods_item.length;i++) {
-						that.$set(that.pageList[index].goods_item[i],'checked',true)
+						if(that.pageList[index].goods_item[i].status != 0) {
+							that.$set(that.pageList[index].goods_item[i],'checked',true)
+						}
 						// that.pageList[index].isAllSelected = true
 					}
 				} else {
@@ -168,7 +175,12 @@
 					for(var i = 0;i<that.pageList.length;i++) {
 						that.pageList[i].isAllSelected = true
 						for (var j=0;j<that.pageList[i].goods_item.length;j++) {
-							that.$set(that.pageList[i].goods_item[j],'checked',true)
+							if(that.is_manager != 0) {
+								that.$set(that.pageList[i].goods_item[j],'checked',true)
+							}
+							 else if(that.pageList[i].goods_item[j].status != 0) {
+								that.$set(that.pageList[i].goods_item[j],'checked',true)
+							}
 						}
 					}
 					
@@ -325,6 +337,9 @@
 					}
 				}) */
 			},
+			toDetail(id) {
+				$api.jump('/page_shop/pages/good/detail?id=' + id)
+			},
 			onReachBottom() {
 				if (Number(that.page) * Number(that.limit) >= Number(that.total)) {
 					// $api.info("没有更多了")
@@ -370,6 +385,9 @@
 				.cell {
 					padding: 10rpx 0;
 				}
+				.cell2 {
+					opacity: 0.4;
+				}
 				.title {
 					font-size: 30rpx;
 					font-weight: 500;
@@ -393,6 +411,24 @@
 					border-radius: 12rpx;
 					margin: 0 20rpx 0 16rpx;
 				}
+				.img_box {
+					position: relative;
+					
+					.item_status {
+						position: absolute;
+						left: 32rpx;
+						top: 46rpx;
+						background: rgba(0, 0, 0, 0.5);
+						border-radius: 18rpx;
+						font-size: 22rpx;
+						font-family: PingFangSC-Regular, PingFang SC;
+						font-weight: 400;
+						color: #FFFFFF;
+						line-height: 32rpx;
+						box-sizing: border-box;
+						padding: 2rpx 16rpx;
+					}
+				}
 				.img_right {
 					width: calc(100% - 188rpx);
 				}

+ 43 - 6
page_shop/pages/mine/mine.vue

@@ -22,7 +22,10 @@
 				<view class="hflex acenter jbetween" style="margin-top: 32rpx;">
 					<block v-for="(item,index) in orderList" :key="index">
 						<view class="vflex acenter order_item" @click="toOrder(item.id)">
-							<image :src="item.src" mode="aspectFill" class="order_icon"></image>
+							<view class="order_icon">
+								<image :src="item.src" mode="aspectFill" style="width: 100%;height: 100%;"></image>
+								<view class="num" v-if="item.num > 0">{{item.num}}</view>
+							</view>
 							<view class="order_text">{{item.name}}</view>
 						</view>
 					</block>
@@ -58,23 +61,27 @@
 				],
 				orderList: [
 					{
-						src: 'https://ship-expert.zhousi.hdlkeji.com/common/order_icon1.png',
+						src: 'https://ship.shipcc.cn/common/order_icon1.png',
 						name: '待付款',
+						num: 0,
 						id: 1,
 					},
 					{
-						src: 'https://ship-expert.zhousi.hdlkeji.com/common/order_icon2.png',
+						src: 'https://ship.shipcc.cn/common/order_icon2.png',
 						name: '待发货',
+						num: 0,
 						id: 2,
 					},
 					{
-						src: 'https://ship-expert.zhousi.hdlkeji.com/common/order_icon3.png',
+						src: 'https://ship.shipcc.cn/common/order_icon3.png',
 						name: '待收货',
+						num: 0,
 						id: 3,
 					},
 					{
-						src: 'https://ship-expert.zhousi.hdlkeji.com/common/order_icon4.png',
+						src: 'https://ship.shipcc.cn/common/order_icon4.png',
 						name: '退款/售后',
+						num: 0,
 						id: 4,
 					}
 				]
@@ -89,9 +96,13 @@
 			if(!token) {
 				$api.info('请先登录')
 				setTimeout(() =>{
-					$api.jump('/pages/login/code_login')
+					$api.jump('/pages/login/password_login')
 				}, 1000)
 			}
+			that.getNum()
+		},
+		onPullDownRefresh() {
+			that.getNum()
 		},
 		methods: {
 			// 返回
@@ -109,6 +120,19 @@
 					}
 				})
 			},
+			getNum() {
+				$api.req({
+					url: '/data/api.Order/order_num'
+				}, function(res) {
+					uni.stopPullDownRefresh();
+					if(res.code == 1) {
+						for(var i=0;i<that.orderList.length;i++) {
+							console.log(res.data[i]);
+							that.$set(that.orderList[i],'num',res.data[i])
+						}
+					}
+				})
+			},
 			// 进入详情页面
 			toDetail(url) {
 				$api.jump(url)
@@ -193,6 +217,19 @@
 					.order_icon {
 						width: 52rpx;
 						height: 52rpx;
+						position: relative;
+						.num {
+							position: absolute;
+							right: -10rpx;
+							top: 0;
+							width: 26rpx;
+							height: 24rpx;
+							background-color: #fb3e32;
+							border-radius: 12rpx 12rpx 12rpx 4rpx;
+							font-size: 20rpx;
+							color: #fff;
+							text-align: center;
+						}
 					}
 					.order_text {
 						padding-top: 24rpx;

+ 6 - 5
page_shop/pages/order/apply.vue

@@ -53,7 +53,7 @@
 				<view class="title">补充描述和凭证</view>
 				<view class="bg">
 					<u-textarea autoHeight  v-model="remarks" placeholder="补充描述,便于商家更好的处理售后问题" border="none"></u-textarea>
-					<u-upload :fileList="fileList1" @afterRead="afterRead" @delete="deletePic" name="1" multiple :maxCount="9" width="132rpx" height="132rpx">
+					<u-upload :fileList="fileList1" @afterRead="afterRead" @delete="deletePic" name="1" multiple :maxCount="3" width="132rpx" height="132rpx">
 						<view class="upload vflex acenter jcenter">
 							<u-icon name="camera" color="#B5B5B5" size="18"></u-icon>
 							<view class="text">上传凭证</view>
@@ -124,13 +124,13 @@
 				typeList: [
 					{
 						name: '仅退款',
-						icon1: 'https://ship-expert.zhousi.hdlkeji.com/common/select2.png',
-						icon2: 'https://ship-expert.zhousi.hdlkeji.com/common/select1.png',
+						icon1: 'https://ship.shipcc.cn/common/select2.png',
+						icon2: 'https://ship.shipcc.cn/common/select1.png',
 					},
 					{
 						name: '退货退款',
-						icon1: 'https://ship-expert.zhousi.hdlkeji.com/common/select2.png',
-						icon2: 'https://ship-expert.zhousi.hdlkeji.com/common/select1.png',
+						icon1: 'https://ship.shipcc.cn/common/select2.png',
+						icon2: 'https://ship.shipcc.cn/common/select1.png',
 					}
 				],
 				stateList: [
@@ -147,6 +147,7 @@
 				active: 0,
 				state_show: false,
 				id: '',
+				remarks: ''
 			}
 		},
 		onLoad(options) {

+ 23 - 26
page_shop/pages/order/detail.vue

@@ -1,10 +1,10 @@
 <template>
 	<view class="content">
 		<view class="box" v-if="pageData.tab == 1">
-			<order-top :name="pageData.real_name" :phone="pageData.mobile" :type="pageData.status" :amount="amount"></order-top>
+			<order-top :merchant="pageData.merchant" :name="pageData.real_name" :phone="pageData.mobile" :type="pageData.status" :amount="amount"></order-top>
 		</view>
 		<view class="box" v-if="pageData.tab != 1">
-			<order-top :name="pageData.real_name" :phone="pageData.mobile" :type="pageData.status" :amount="pageData.user_order.amount"></order-top>
+			<order-top :merchant="pageData.merchant" :name="pageData.real_name" :phone="pageData.mobile" :type="pageData.status" :amount="pageData.user_order.amount"></order-top>
 		</view>
 		<view class="box" style="margin-bottom: 186rpx;">
 			<view class="box1">
@@ -42,7 +42,7 @@
 						<view class="hflex acenter jbetween offer" v-if="item.status == 1 && pageData.tab == 1">
 							<view class="hflex acenter">
 								<view class="offer_title">订单报价:</view>
-								<view class="offer_text2">暂未报价</view>
+								<view class="offer_text2">未接单</view>
 							</view>
 							<view class="offer_btn" v-if="!item.user_order && item.status == 1" @click="receiv(index)">立即接单</view>
 						</view>
@@ -65,8 +65,7 @@
 							</view>
 							<view class="hflex acenter">
 								<view class="offer_btn" v-if="item.offer_id == item.user_order.id" @click="toOffer(index)">查看详情</view>
-								<view class="offer_btn offer_btn1" v-if="item.offer_id != item.user_order.id">已匹配</view>
-								<view class="offer_btn" v-if="item.offer_id == item.user_order.id" @click="open(index,-1)">下载文件</view>
+								<view class="offer_btn" v-if="item.offer_id == item.user_order.id" @click="open(index,-1)">下载订单</view>
 							</view>
 						</view>
 						<view class="hflex acenter jbetween offer" v-if="item.offer_id != item.user_order.id && pageData.tab == 1 && item.user_order &&item.status == 3">
@@ -77,8 +76,7 @@
 							</view>
 							<view class="hflex acenter">
 								<view class="offer_btn" @click="toOffer(index)">查看详情</view>
-								<!-- <view class="offer_btn offer_btn1" v-if="item.offer_id != item.user_order.id">已匹配</view>
-								<view class="offer_btn" v-if="item.offer_id == item.user_order.id" @click="open(index,-1)">下载文件</view> -->
+								<view class="offer_btn offer_btn1" v-if="item.offer_id != item.user_order.id">已匹配</view>
 							</view>
 						</view>
 						<view class="hflex acenter jbetween offer" v-if="item.status == 3 && pageData.tab == 1 && !item.user_order">
@@ -91,11 +89,11 @@
 								<view class="offer_btn offer_btn1" v-if="item.offer_id != item.user_order.id">已匹配</view>
 							</view>
 								<!-- <view class="offer_btn offer_btn1" v-if="item.offer_id != item.user_order.id">已匹配</view>
-								<view class="offer_btn" v-if="item.offer_id == item.user_order.id" @click="open(index,-1)">下载文件</view>
+								<view class="offer_btn" v-if="item.offer_id == item.user_order.id" @click="open(index,-1)">下载订单</view>
 							</view>
 						</view>
 						<!-- <view class="hflex acenter jend offer" v-if="!item.user_order && item.status==3">
-							<view class="offer_btn" v-if="item.status==3" @click="open(index,-1)">下载文件</view>
+							<view class="offer_btn" v-if="item.status==3" @click="open(index,-1)">下载订单</view>
 						</view> -->
 						</view>
 					</block>
@@ -134,8 +132,8 @@
 		<view class="" v-if="pageData.type == 2">
 			<view class="bottom hflex acenter jbetween" v-if="pageData.tab != 1 && pageData.status == 3">
 				<view class="left_btn hflex acenter jcenter" @click="open(index1,-1)">
-					<image src="https://ship-expert.zhousi.hdlkeji.com/common/down-blue.png" style="width: 44rpx;height: 44rpx;margin-right: 8rpx;"></image>
-					<view>下载文件</view>
+					<image src="https://ship.shipcc.cn/common/down-blue.png" style="width: 44rpx;height: 44rpx;margin-right: 8rpx;"></image>
+					<view>下载订单</view>
 				</view>
 				<view class="right_btn hflex acenter jcenter" @click="chat">查看回复</view>
 			</view>
@@ -143,8 +141,8 @@
 		<view v-else>
 			<view class="bottom hflex acenter jbetween" v-if="pageData.tab != 1 && pageData.status == 3">
 				<view class="left_btn hflex acenter jcenter" style="width: 100%;" @click="open(index1,-1)">
-					<image src="https://ship-expert.zhousi.hdlkeji.com/common/down-blue.png" style="width: 44rpx;height: 44rpx;margin-right: 8rpx;"></image>
-					<view>下载文件</view>
+					<image src="https://ship.shipcc.cn/common/down-blue.png" style="width: 44rpx;height: 44rpx;margin-right: 8rpx;"></image>
+					<view>下载订单</view>
 				</view>
 			</view>
 		</view>
@@ -152,8 +150,8 @@
 			<view class="popu">
 				<view class="popu_top hflex acenter jbetween">
 					<view></view>
-					<view class="popu_title">下载文件</view>
-					<image src="https://ship-expert.zhousi.hdlkeji.com/common/close.png" style="width: 32rpx;height: 32rpx;" @click="close"></image>
+					<view class="popu_title">下载订单</view>
+					<image src="https://ship.shipcc.cn/common/close.png" style="width: 32rpx;height: 32rpx;" @click="close"></image>
 				</view>
 				<view class="file_bg hflex acenter" v-if="index2 != -1">
 					<image :src="pageData.items[index1].enclosure[index2].icon" class="file_icon"></image>
@@ -162,13 +160,13 @@
 				<view class="file_bg hflex acenter" v-else>
 					<view class="file_name text_hide">{{pageData.down_word?pageData.down_word:pageData.items[index1].down_word}}</view>
 				</view>
-				<view class="btn_group hflex acenter jbetween" v-if="index2 != -1">
+				<view class="btn_group hflex acenter jcenter" v-if="index2 != -1">
 					<view class="left_btn hflex acenter jcenter" @click="copy(pageData.items[index1].enclosure[index2].fileurl)">复制链接</view>
-					<view class="right_btn hflex acenter jcenter" @click="see(pageData.items[index1].enclosure[index2].fileurl)">预览文件</view>
+					<!-- <view class="right_btn hflex acenter jcenter" @click="see(pageData.items[index1].enclosure[index2].fileurl)">预览文件</view> -->
 				</view>
-				<view class="btn_group hflex acenter jbetween" v-else>
+				<view class="btn_group hflex acenter jcenter" v-else>
 					<view class="left_btn hflex acenter jcenter" @click="copy(pageData.down_word?pageData.down_word:pageData.items[index1].down_word)">复制链接</view>
-					<view class="right_btn hflex acenter jcenter" @click="see(pageData.down_word?pageData.down_word:pageData.items[index1].down_word)">预览文件</view>
+					<!-- <view class="right_btn hflex acenter jcenter" @click="see(pageData.down_word?pageData.down_word:pageData.items[index1].down_word)">预览文件</view> -->
 				</view>
 				<!-- <view class="hflex acenter jcenter text_blue" @click="see(pageData.items[index1].enclosure[index2].fileurl)">预览文件></view> -->
 			</view>
@@ -181,7 +179,7 @@
 					<u-input v-model="offer" placeholder="填写你的报价" border="none"></u-input>
 				</view>
 				<view class="hflex acenter">
-					<image src="https://ship-expert.zhousi.hdlkeji.com/common/icon_tips.png" style="width: 24rpx;height: 24rpx;padding-right: 6rpx"></image>
+					<image src="https://ship.shipcc.cn/common/icon_tips.png" style="width: 24rpx;height: 24rpx;padding-right: 6rpx"></image>
 					<view class="popup_info">报价可先不填,可等评估后再填写</view>
 				</view>
 				<view class="input_bg hflex acenter" v-if="tab == 2 || tab == 3">
@@ -198,11 +196,11 @@
 				</view>
 				<view class="hflex acenter jbetween" v-if="tab == 0">
 					<view class="price">是否现货</view>
-					<u-switch v-model="is_stock" activeColor="#506dff" @change="change"></u-switch>
+					<u-switch v-model="is_stock" activeColor="#506dff" inactiveColor="rgb(230, 230, 230)" @change="change"></u-switch>
 				</view>
 				<view class="hflex acenter" style="padding-bottom: 20rpx;">
 					<view class="price">上传图片及资质证明图片</view>
-					<image src="https://ship-expert.zhousi.hdlkeji.com/common/icon_tips.png" style="width: 24rpx;height: 24rpx;padding-right: 6rpx"></image>
+					<image src="https://ship.shipcc.cn/common/icon_tips.png" style="width: 24rpx;height: 24rpx;padding-right: 6rpx"></image>
 					<view class="popup_info">最多上传9张图片</view>
 				</view>
 				<u-upload :fileList="fileList1" @afterRead="afterRead" @delete="deletePic" name="1" multiple :maxCount="9"></u-upload>
@@ -330,13 +328,12 @@
 				})
 			},
 			see(url) {
-				wx.downloadFile({
+				uni.downloadFile({
 				  // 示例 url,并非真实存在
 				  url: url,
-				  showMenu: true,
 				  success: function (res) {
 				    const filePath = res.tempFilePath
-				    wx.openDocument({
+				    uni.openDocument({
 				      filePath: filePath,
 				      success: function (res) {
 				        console.log('打开文档成功')
@@ -648,7 +645,7 @@
 				color: #FFFFFF;
 			}
 			.left_btn {
-				width: 300rpx;
+				width: 350rpx;
 				height: 88rpx;
 				background: #ECEFFE;
 				border-radius: 44rpx;

+ 7 - 6
page_shop/pages/order/list.vue

@@ -16,7 +16,7 @@
 			<block v-for="(item,index) in pageList" :key="index">
 				<view class="box_item">
 					<view class="hflex acenter jbetween cell">
-						<view class="hflex acenter" @click="toShop(item.id)">
+						<view class="hflex acenter">
 							<view class="title">{{item.admin_name}}</view>
 							<u-icon color="#B5B5B5" name="arrow-right" size="10"></u-icon>
 						</view>
@@ -47,6 +47,7 @@
 									<view class="norm text_hide">{{item.goods_item[0].goods_spec}}</view>
 									<view class="vflex">
 										<view class="num">X{{item.goods_item[0].stock_sales}}</view>
+										<view class="text_red" v-if="item.refund_status == 1">退款中</view>
 										<view class="text_red" v-if="item.refund_status == 2">退款成功</view>
 										<view class="text_red" v-if="item.refund_status == 3">退款关闭</view>
 									</view>
@@ -64,7 +65,7 @@
 							<view class="img_leng">共{{item.goods_item.length}}件</view>
 						</view>
 					</view>
-					<view class="hflex acenter jend cell" v-if="item.payment_status == 2">
+					<view class="hflex acenter jend cell">
 						<view class="price">实付款:¥{{item.payment_amount}}</view>
 					</view>
 					<view class="hflex acenter jend cell">
@@ -81,11 +82,11 @@
 						</block>
 						<block v-if="item.status == 6 || item.refund_status == 2">
 							<!-- <view class="btn1">发表评价</view> -->
-							<view class="btn1 btn2" @click="toBuy(index)">再次购买</view>
+							<!-- <view class="btn1 btn2" @click="toBuy(index)">再次购买</view> -->
 						</block>
 						<block v-if="item.refund_status == 1 && item.status != 6">
 							<!-- <view class="btn1">发表评价</view> -->
-							<view class="btn1" @click="remind(item.id)">提醒发货</view>
+							<!-- <view class="btn1" @click="remind(item.id)">提醒发货</view> -->
 							<view class="btn1 btn2" @click="cancel(item.id)">撤销申请</view>
 						</block>
 					</view>
@@ -268,10 +269,10 @@
 			},
 			pay(index) {
 				var openid = uni.getStorageSync('openid1')
-				if(!openid) {
+				/* if(!openid) {
 					$api.info("登录验证有误,请重新登录")
 					return
-				}
+				} */
 				$api.req({
 					url: '/data/api.auth.Center/channel',
 					method: 'POST',

+ 30 - 14
page_shop/pages/order/offer.vue

@@ -1,9 +1,13 @@
 <template>
 	<view class="content">
-		<view v-if="pageData.user_order && pageData.statue != 3">
+		<view v-if="pageData.tab !== 1 && pageData.statue != 3">
 			<view class="box">
 				<view class="title">报价记录</view>
+				<view class="offer_detail" v-if="pageData.user_order.amount == '' || !pageData.user_order.amount">
+					<view class="offer_money">未填写报价</view>
+				</view>
 				<block v-for="(item,index) in pageData.user_order.amounts" :key="index">
+					
 					<view class="offer_detail hflex acenter" v-if="item.user_id == userId">
 						<view class="offer_left">第{{index + 1}}次报价</view>
 						<view class="offer_money">{{item.amount?item.amount:'暂无报价'}}</view>
@@ -11,10 +15,14 @@
 				</block>
 			</view>
 		</view>
-		<view v-else-if="!pageData.user_order && pageData.item[index].statue != 3">
+		<view v-else-if="pageData.tab == 1 && pageData.item[index].statue != 3">
 			<view class="box">
 				<view class="title">报价记录</view>
+				<view class="offer_detail" v-if="pageData.items[index].user_order.amount == '' || !pageData.items[index].user_order.amount">
+					<view class="offer_money">未填写报价</view>
+				</view>
 				<block v-for="(item,index1) in pageData.items[index].user_order.amounts" :key="index1">
+					
 					<view class="offer_detail hflex acenter" v-if="item.user_id == userId">
 						<view class="offer_left">第{{index1 + 1}}次报价</view>
 						<view class="offer_money">{{item.amount?item.amount:'暂无报价'}}</view>
@@ -43,7 +51,7 @@
 			</view>
 			<view class="hflex acenter jbetween" v-if="tab == 1">
 				<view class="price">是否现货</view>
-				<u-switch v-model="is_stock" activeColor="#506dff" @change="change"></u-switch>
+				<u-switch v-model="is_stock" activeColor="#506dff" inactiveColor="rgb(230, 230, 230)" @change="change"></u-switch>
 			</view>
 			<view class="text_style1">上传图片及资质证明图片</view>
 			<view class="upload">
@@ -71,7 +79,7 @@
 			</view>
 			<view class="hflex acenter jbetween" v-if="tab == 1">
 				<view class="price">是否现货</view>
-				<u-switch v-model="is_stock" activeColor="#506dff" @change="change"></u-switch>
+				<u-switch v-model="is_stock" activeColor="#506dff" inactiveColor="rgb(230, 230, 230)" @change="change"></u-switch>
 			</view>
 			<view class="text_style1">上传图片及资质证明图片</view>
 			<view class="upload">
@@ -84,7 +92,7 @@
 				<view class="title">报价信息</view>
 				<view class="hflex acenter cell" >
 					<view class="left">价格</view>
-					<view class="right" style="font-size: 32rpx;color: #222222;">{{money?money:'暂无报价'}}</view>
+					<view class="right" style="font-size: 32rpx;color: #222222;">{{money2?money2:'暂无报价'}}</view>
 				</view>
 				<view class="hflex acenter cell" v-if="lead_time">
 					<view class="left">货期</view>
@@ -121,7 +129,7 @@
 				<view class="title">报价信息</view>
 				<view class="hflex acenter cell" >
 					<view class="left">价格</view>
-					<view class="right" style="font-size: 32rpx;color: #222222;">{{money?money:'暂无报价'}}</view>
+					<view class="right" style="font-size: 32rpx;color: #222222;">{{money2?money2:'暂无报价'}}</view>
 				</view>
 				<view class="hflex acenter cell" v-if="lead_time">
 					<view class="left">货期</view>
@@ -171,6 +179,7 @@
 				tab: '',
 				fileList1: [],
 				money: '',
+				money2: '',
 				index: '',
 				is_stock: '',
 				description: '',
@@ -214,19 +223,22 @@
 					if(res.code == 1) {
 						that.pageData = res.data
 						if(that.tab == '1') {
-							that.money = that.pageData.items[that.index].user_order.amount
+							that.money2 = that.pageData.items[that.index].user_order.amount
 							that.lead_time = that.pageData.items[that.index].user_order.date
 							that.description = that.pageData.items[that.index].user_order.desc
 							that.is_stock = that.pageData.items[that.index].user_order.is_have == 1 ? true : false
-							for(var i=0;i<that.pageData.items[that.index].user_order.images.length;i++) {
-								var img = {
-									url: that.pageData.items[that.index].user_order.images[i]
+							if(JSON.stringify(that.pageData.items[that.index].user_order.images) !== '{}') {
+								for(var i=0;i<that.pageData.items[that.index].user_order.images.length;i++) {
+									var img = {
+										url: that.pageData.items[that.index].user_order.images[i]
+									}
+									that.fileList1.push(img)
 								}
-								that.fileList1.push(img)
 							}
+							
 							// that.fileList1 = that.pageData.items[that.index].user_order.images
 						} else {
-							that.money = that.pageData.user_order.amount
+							that.money2 = that.pageData.user_order.amount
 							that.lead_time = that.pageData.user_order.date
 							that.description = that.pageData.user_order.desc
 							that.is_stock = that.pageData.user_order.is_have == 1 ? true : false
@@ -313,10 +325,14 @@
 					$api.info('请填写报价说明')
 					return
 				}
-				if(images.length == 0) {
-					$api.info('请上传图片资质')
+				if(that.money == '') {
+					$api.info('请填写报价')
 					return
 				}
+				/* if(images.length == 0) {
+					$api.info('请上传图片资质')
+					return
+				} */
 				var data = {}
 				switch(that.pageData.tab) {
 					case 1: 

+ 6 - 3
page_shop/pages/order/offer2.vue

@@ -3,11 +3,13 @@
 		<view v-if="pageData.list">
 			<view class="box">
 				<view class="title">报价记录</view>
+				<!-- <view class="offer_detail hflex acenter">
+					<view class="offer_money" v-if="pageData.list.length == 0">未填写报价</view>
+				</view> -->
 				<block v-for="(item,index) in pageData.list" :key="index">
 					<view class="offer_detail hflex acenter">
 						<view class="offer_left">第{{index + 1}}次报价</view>
 						<view class="offer_money" v-if="item.price != 0">{{item.price}}</view>
-						<view class="offer_money" v-if="item.price == 0">未填写报价</view>
 					</view>
 				</block>
 				<view class="text_style1" style="padding: 20rpx 0;" v-if="status == 3">图片及资质证明图片</view>
@@ -143,8 +145,9 @@
 			create() {
 				var url = ""
 				var images = ''
-				if(that.fileList1.length == 0) {
-					$api.info('请上传图片资质')
+				console.log(that.money);
+				if(!that.money) {
+					$api.info('请填写报价')
 					return
 				}
 				for(var i=0;i<that.fileList1.length;i++) {

+ 45 - 9
page_shop/pages/order/orderdetail.vue

@@ -10,7 +10,7 @@
 				<view class="state" v-if="pageData.status == 4">待发货</view>
 				<view class="state" v-if="pageData.status == 5">待收货</view>
 				<view class="state" v-if="pageData.status == 6">已完成</view>
-				<!-- <view class="state" v-if="pageData.status == 7">退款中</view> -->
+				<view class="state" v-if="pageData.status == 7">待审核</view>
 				<view class="state" v-if="pageData.status == 8">已取消</view>
 				<view class="hflex acenter blue_bg2" v-if="pageData.status == 2">
 					<view class="blue_bg">剩余付款时间</view>
@@ -24,12 +24,26 @@
 						</u-count-down>
 					</view>
 				</view>
+				<view class="hflex acenter blue_bg2" v-if="pageData.status == 5">
+					<view class="blue_bg">剩余自动收货时间</view>
+					<view class="">
+						<u-count-down autoStart :time="time2" format="mm:ss" @change="onChange2">
+							<view class="time">
+								<text class="time__item">{{ timeData2.days }}&nbsp;天</text>
+								<text class="time__item">{{ timeData2.hours>10?timeData2.hours:'0'+timeData2.hours}}&nbsp;小时</text>
+								<text class="time__item">{{ timeData2.minutes>10?timeData2.minutes:'0'+timeData2.minutes }}&nbsp;分钟</text>
+								<text class="time__item">{{ timeData2.seconds>10?timeData2.seconds:'0'+timeData2.seconds }}&nbsp;秒</text>
+							</view>
+						</u-count-down>
+					</view>
+				</view>
 			</view>
 			<view class="subTitle" v-if="pageData.status == 0">{{pageData.cancel_remark}}</view>
 			<view class="subTitle" v-if="pageData.status == 2">等待买家付款</view>
 			<view class="subTitle" v-if="pageData.status == 4">已付款,等待商家发货</view>
 			<view class="subTitle" v-if="pageData.status == 5">商家已发货,请耐心等待收货</view>
 			<view class="subTitle" v-if="pageData.status == 6">感谢惠顾,期待您的再次光临</view>
+			<view class="subTitle" v-if="pageData.status == 7">申请中,等待商家审核</view>
 		</view>
 		<view>
 			<view class="box">
@@ -47,7 +61,7 @@
 			<view class="box">
 				<block v-for="(item,index) in pageData.goods_item" :key="index">
 					<view class="cell">
-						<view class="cell2 hflex acenter ">
+						<view class="cell2 hflex acenter " @click="toGoodDetail(item.goods_id)">
 							<image :src="item.goods_cover" mode="aspectFill" class="img"></image>
 							<view class="img_right">
 								<view class="hflex acenter jbetween">
@@ -76,7 +90,7 @@
 				</view>
 				<view class="hflex acenter jbetween cell">
 					<view class="title">备注</view>
-					<view class="text_style2">{{pageData.order_remark}}</view>
+					<view class="text_style2">{{pageData.order_remark?pageData.order_remark:'-'}}</view>
 				</view>
 				<view class="line"></view>
 				<view class="hflex acenter jbetween cell">
@@ -111,7 +125,7 @@
 			<view class="btn btn2" @click="openPay">立即支付</view>
 		</view>
 		<view class="bottom hflex acenter jend" v-if="pageData.status == 4">
-			<view class="btn" @click="remind">提醒发货</view>
+			<view class="btn" @click="remind" v-if="pageData.refund_status !== 1">提醒发货</view>
 			<view class="btn" v-if="pageData.refund_status == 1" @click="cancel">撤销申请</view>
 			<view class="btn btn2" v-else @click="apply">申请退款</view>
 		</view>
@@ -162,7 +176,9 @@
 		data() {
 			return {
 				time: 0,
+				time2: 0,
 				timeData: {},
+				timeData2: {},
 				pageData: {
 				},
 				address: {
@@ -213,7 +229,11 @@
 						for(var i=0;i<that.pageData.goods_item.length;i++) {
 							that.pageData.goods_item[i].goods_spec = $api.resetspec(that.pageData.goods_item[0].goods_spec)
 						}
-						that.computTime()
+						if(that.pageData.status == 2) {
+							that.computTime()
+						} else if(that.pageData.status == 5) {
+							that.computTime2()
+						}
 					}
 				})
 			},
@@ -221,12 +241,20 @@
 			onChange(e) {
 				that.timeData = e
 			},
+			onChange2(e) {
+				that.timeData2 = e
+			},
 			// 计算倒计时
 			computTime() {
 				var date = new Date(that.pageData.create_at).getTime() + ( that.pageData.time * 1000);
 				var nowDate = new Date().getTime()
 				that.time = date - nowDate
 			},
+			computTime2() {
+				var date = ( that.pageData.order_timeout_end_time * 1000);
+				var nowDate = new Date().getTime()
+				that.time2 = that.pageData.order_timeout_end_time * 1000
+			},
 			// 复制订单号
 			copy() {
 				uni.setClipboardData({
@@ -303,10 +331,10 @@
 			// 确认付款
 			payOrder() {
 				var openid = uni.getStorageSync('openid1')
-				if(!openid) {
+				/* if(!openid) {
 					$api.info("登录验证有误,请重新登录")
 					return
-				}
+				} */
 				$api.req({
 					url: '/data/api.auth.Center/channel',
 					method: 'POST',
@@ -346,6 +374,9 @@
 			},
 			apply() {
 				$api.jump('/page_shop/pages/order/apply?id=' + that.id)
+			},
+			toGoodDetail(id) {
+				$api.jump('/page_shop/pages/good/detail?id=' + id)
 			}
 		},
 	}
@@ -366,7 +397,7 @@
 				padding-right: 24rpx;
 			}
 			.blue_bg {
-				width: 124rpx;
+				// width: 124rpx;
 				height: 32rpx;
 				background: #506DFF;
 				border-radius: 18rpx 0px 18rpx 18rpx;
@@ -375,9 +406,11 @@
 				font-weight: 400;
 				color: #FFFFFF;
 				line-height: 32rpx;
+				box-sizing: border-box;
+				padding: 0 10rpx;
 			}
 			.blue_bg2 {
-				width: 256rpx;
+				// width: 256rpx;
 				height: 32rpx;
 				background: #E7EBFF;
 				border-radius: 18rpx;
@@ -385,6 +418,9 @@
 				font-weight: bold;
 				color: #222222;
 				line-height: 32rpx;
+				box-sizing: border-box;
+				padding: 0 10rpx;
+				white-space: nowrap;
 			}
 			.time {
 				padding-left: 16rpx;

+ 4 - 2
page_shop/pages/order/refund.vue

@@ -8,7 +8,7 @@
 							<view class="title">{{item.admin_name}}</view>
 							<u-icon color="#B5B5B5" name="arrow-right" size="10"></u-icon>
 						</view>
-						<view class="top_name">{{item.refund_type}}</view>
+						<view class="top_name">{{item.refund_type || ''}}</view>
 					</view>
 					<view>
 						<view class="hflex acenter" v-if="item.goods_item.length == 1">
@@ -36,6 +36,7 @@
 						<view class="price">退款:¥{{item.rebate_amount}}</view>
 					</view> -->
 					<view class="box_bg hflex acenter">
+						<view class="status" v-if="item.refund_status == 0">已撤销退款</view>
 						<view class="status" v-if="item.refund_status == 1">申请中</view>
 						<view class="status2" v-if="item.refund_status == 1">等待卖家同意退款</view>
 						<view class="status" v-if="item.refund_status == 2">退款成功</view>
@@ -44,7 +45,7 @@
 						<view class="status2" v-if="item.refund_status == 3">退款已关闭</view>
 					</view>
 					<view class="hflex acenter jend cell">
-						<view class="btn1" @click="delhis(item.id)">删除记录</view>
+						<view class="btn1" @click="delhis(item.id)" v-if="item.refund_status != 1">删除记录</view>
 						<view class="btn1 btn2" @click="toOrderDetail(item.id)">查看详情</view>
 					</view>
 				</view>
@@ -188,6 +189,7 @@
 				.box_bg {
 					width: 100%;
 					height: 80rpx;
+					box-sizing: border-box;
 					background: #F4F4F4;
 					border-radius: 16rpx;
 					margin: 28rpx 0;

+ 88 - 7
page_shop/pages/order/refundDetail.vue

@@ -5,7 +5,20 @@
 				<view class="box_title" v-if="pageData.refund_status == 2">退款成功</view>
 				<view class="box_title" v-if="pageData.refund_status == 3">退款关闭</view>
 				<view class="box_title" v-if="pageData.refund_status == 1">申请中,等待商家审核</view>
+				<view class="box_title" v-if="pageData.refund_status == 0">撤销退款申请</view>
 				<view class="box_title" v-if="pageData.refund_status == 2">¥{{pageData.refund_money}}</view>
+				<view class="hflex acenter blue_bg2" v-if="pageData.refund_status == 1">
+					<view class="blue_bg">剩余审核时间</view>
+					<view class="">
+						<u-count-down autoStart :time="time" format="mm:ss" @change="onChange">
+							<view class="time">
+								<!-- <text class="time__item">{{ timeData.hours>10?timeData.hours:'0'+timeData.hours}}&nbsp;小时</text> -->
+								<text class="time__item">{{ timeData.minutes>10?timeData.minutes:'0'+timeData.minutes }}&nbsp;分钟</text>
+								<text class="time__item">{{ timeData.seconds>10?timeData.seconds:'0'+timeData.seconds }}&nbsp;秒</text>
+							</view>
+						</u-count-down>
+					</view>
+				</view>
 			</view>
 			<view class="box_subtitle">{{pageData.refund_time}}</view>
 			<view class="hflex acenter jbetween" style="padding-top: 32rpx;" v-if="pageData.refund_status == 2">
@@ -19,18 +32,18 @@
 		</view>
 		<view class="box">
 			<view class="title">退款信息</view>
-			<view class="hflex acenter jbetween">
+			<view class="hflex acenter jbetween" v-for="(item,index) in pageData.goods_item" :key="index">
 				<view class="img_box">
-					<image class="img" :src="pageData.goods_item[0].goods_cover" mode="aspectFill"></image>
+					<image class="img" :src="item.goods_cover" mode="aspectFill"></image>
 				</view>
 				<view class="vflex img_right">
 					<view class="hflex acenter">
-						<view class="name text_hide">{{pageData.goods_item[0].goods_name}}</view>
-						<view class="name">¥{{pageData.goods_item[0].price_selling}}</view>
+						<view class="name text_hide">{{item.goods_name}}</view>
+						<view class="name">¥{{item.price_selling}}</view>
 					</view>
 					<view class="hflex jbetween" style="padding: 20rpx 0 0;">
-						<view class="norm">{{pageData.goods_item[0].goods_spec}}</view>
-						<view class="left_text">X{{pageData.goods_item[0].stock_sales}}</view>
+						<view class="norm">{{item.goods_spec}}</view>
+						<view class="left_text">X{{item.stock_sales}}</view>
 					</view>
 				</view>
 			</view>
@@ -39,6 +52,10 @@
 				<view class="right">{{pageData.refund_reason}}</view>
 			</view>
 			<view class="hflex acenter jbetween cell">
+				<view class="left">退款备注</view>
+				<view class="right">{{pageData.refund_desc ? pageData.refund_desc : '-'}}</view>
+			</view>
+			<view class="hflex acenter jbetween cell">
 				<view class="left">退款金额</view>
 				<view class="right">¥{{pageData.refund_money}}</view>
 			</view>
@@ -54,13 +71,21 @@
 					<view class="text_red" @click="copy(pageData.order_no)">复制</view>
 				</view>
 			</view>
+			<view class="vflex cell">
+				<view class="left">退款凭证</view>
+				<view class="hflex acenter">
+					<block v-for="(item,index) in pageData.refund_nr" :key="index">
+						<image :src="item" class="img" mode="aspectFill"></image>
+					</block>
+				</view>
+			</view>
 		</view>
 		<u-popup :show="show" :round="10" mode="center" @close="close">
 			<view class="popu">
 				<view class="hflex acenter jbetween popu_top">
 					<view></view>
 					<view class="popu_title">填写快递信息</view>
-					<image src="https://ship-expert.zhousi.hdlkeji.com/common/close.png" style="width: 48rpx;height: 48rpx;"></image>
+					<image src="https://ship.shipcc.cn/common/close.png" style="width: 48rpx;height: 48rpx;"></image>
 				</view>
 				<u-input v-model="company.express_name" border="none" placeholder="请填写快递公司名称"></u-input>
 				<u-input v-model="company.express_no" border="none" placeholder="请填写快递单号"></u-input>
@@ -79,6 +104,8 @@
 				id: '',
 				pageData: {
 				},
+				timeData: {},
+				time: 0,
 				show: false,
 				company: {
 					express_name: '',
@@ -105,9 +132,24 @@
 						for(var i=0;i<that.pageData.goods_item.length;i++) {
 							that.pageData.goods_item[i].goods_spec = $api.resetspec(that.pageData.goods_item[0].goods_spec)
 						}
+						 that.pageData.refund_nr = that.pageData.refund_nr.split("|")
+						that.computTime()
 					}
 				})
 			},
+			// 倒计时
+			onChange(e) {
+				that.timeData = e
+			},
+			// 计算倒计时
+			computTime() {
+				var date = new Date(that.pageData.refund_time).getTime() + ( that.pageData.refund_time_ing * 1000);
+				console.log(date);
+				var nowDate = new Date().getTime()
+				console.log(nowDate);
+				that.time = date - nowDate
+				console.log(that.time);
+			},
 			// 复制订单号
 			copy(value) {
 				uni.setClipboardData({
@@ -174,6 +216,38 @@
 				color: #222222;
 				line-height: 44rpx;
 			}
+			.blue_bg {
+				width: 124rpx;
+				height: 32rpx;
+				background: #506DFF;
+				border-radius: 18rpx 0px 18rpx 18rpx;
+				font-size: 16rpx;
+				text-align: center;
+				font-weight: 400;
+				color: #FFFFFF;
+				line-height: 32rpx;
+			}
+			.blue_bg2 {
+				/* width: 256rpx;
+				height: 32rpx; */
+				background: #E7EBFF;
+				border-radius: 18rpx;
+				font-size: 16rpx;
+				font-weight: bold;
+				color: #222222;
+				line-height: 32rpx;
+				box-sizing: border-box;
+				padding: 10rpx 24rpx 0 0;
+			}
+			.time {
+				padding-left: 16rpx;
+			}
+			.subTitle {
+				font-size: 24rpx;
+				font-weight: 400;
+				color: #888888;
+				line-height: 34rpx;
+			}
 			.box_subtitle {
 				font-size: 22rpx;
 				font-weight: 400;
@@ -246,6 +320,7 @@
 					font-weight: 400;
 					color: #232323;
 					line-height: 36rpx;
+					white-space: nowrap;
 				}
 				.right {
 					font-size: 26rpx;
@@ -257,6 +332,12 @@
 					
 					color: #EE5850;
 				}
+				.img {
+					width: 180rpx;
+					height: 180rpx;
+					border-radius: 16rpx;
+					margin: 0 18rpx 18rpx 0;
+				}
 			}
 			.box_bg {
 				background: #F4F4F4;

+ 14 - 2
page_shop/pages/order/repair.vue

@@ -10,7 +10,7 @@
 					<view class="tabs_item" :class="active == index + 1? 'active': ''" @click="changeTabs(index + 1)">{{item.text}}</view>
 				</block>
 			</view>
-			<view class="box_list" v-if="active1 == 1">
+			<view class="box_list" v-if="active1 == 1 && pageList.length > 0">
 				<block v-for="(item,index) in pageList" :key="index">
 					<view class="box_item">
 						<view class="box_top hflex acenter jbetween" @click="toDetail(item.order_no)">
@@ -37,7 +37,13 @@
 				</block>
 				<!-- <my-order @toDetail="toDetail" :active1="active" :list="pageList" order_type="5" @toEdit="toEdit"></my-order> -->
 			</view>
-			<view class="box_list" v-if="active1 == 2">
+			<block v-if="active1 == 1 && pageList.length == 0">
+				<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>
+			</block>
+			<view class="box_list" v-if="active1 == 2 && pageList.length > 0">
 				<block v-for="(item,index) in pageList" :key="index">
 					<view class="box_item">
 						<view class="box_top hflex acenter jbetween" @click="toDetail(item.repair.order_no)">
@@ -62,6 +68,12 @@
 				</block>
 				<!-- <my-order @toDetail="toDetail" :active1="active" :list="pageList" order_type="5" @toEdit="toEdit"></my-order> -->
 			</view>
+			<block v-if="active1 == 2 && pageList.length == 0">
+				<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>
+			</block>
 			<view class="add vflex acenter jcenter" v-show="active1 == 1" @click="toPublish">
 				<u-icon name="plus" color='#fff' size="16"></u-icon>
 				<view class="add_text">发布维修单</view>

+ 5 - 5
page_shop/pages/order/repairDetail.vue

@@ -120,14 +120,14 @@
 		</view>
 		<view class="bottom" v-if="pageData.status !== 1">
 			<view class="btn hflex acenter jcenter" v-if="type == 1 && pageData.status == 3"  @click="openDown">
-				<image src="https://ship-expert.zhousi.hdlkeji.com/common/down-fff.png" style="width: 33rpx; height: 33rpx;"></image>
-				<view>下载文件</view>
+				<image src="https://ship.shipcc.cn/common/down-fff.png" style="width: 33rpx; height: 33rpx;"></image>
+				<view>下载维修单</view>
 			</view>
 			<view class="btn hflex acenter jcenter" :class="active == -1 ? 'btn1' : ''" v-if="type == 1 && pageData.status == 2" @click="match">匹配维修工</view>
 			<view class="hflex acenter jcenter" v-if="type == 2">
 				<view class="left_btn hflex acenter jcenter" @click="openDown">
-					<image src="https://ship-expert.zhousi.hdlkeji.com/common/down-blue.png" style="width: 33rpx; height: 33rpx;"></image>
-					<view>下载文件</view>
+					<image src="https://ship.shipcc.cn/common/down-blue.png" style="width: 33rpx; height: 33rpx;"></image>
+					<view>下载维修单</view>
 				</view>
 				<view class="right_btn hflex acenter jcenter" @click="toChat(item.repair_id,index)">查看回复</view>
 			</view>
@@ -145,7 +145,7 @@
 			<view class="popu">
 				<view class="popu_top hflex acenter jbetween">
 					<view></view>
-					<view class="popu_title">下载文件</view>
+					<view class="popu_title">下载维修单</view>
 					<view></view>
 				</view>
 				<view class="file_bg hflex acenter">

+ 3 - 3
page_shop/pages/order/repairDetail2.vue

@@ -96,8 +96,8 @@
 		<view class="bottom">
 			<view class="hflex acenter jcenter" v-if="pageData.repair.status == 3">
 				<view class="left_btn hflex acenter jcenter" @click="openDown">
-					<image src="https://ship-expert.zhousi.hdlkeji.com/common/down-blue.png" style="width: 33rpx; height: 33rpx;"></image>
-					<view>下载文件</view>
+					<image src="https://ship.shipcc.cn/common/down-blue.png" style="width: 33rpx; height: 33rpx;"></image>
+					<view>下载维修单</view>
 				</view>
 				<view class="right_btn hflex acenter jcenter" @click="toChat(pageData.repair.id)">查看回复</view>
 			</view>
@@ -109,7 +109,7 @@
 			<view class="popu">
 				<view class="popu_top hflex acenter jbetween">
 					<view></view>
-					<view class="popu_title">下载文件</view>
+					<view class="popu_title">下载维修单</view>
 					<view></view>
 				</view>
 				<view class="file_bg hflex acenter">

+ 148 - 68
page_shop/pages/service/applyMaintenance.vue

@@ -11,55 +11,64 @@
 			<view v-if="current == 0">
 				<view class="title">个人信息</view>
 				<view class="hflex acenter jbetween cell">
-					<view class="left">姓名</view>
+					<view class="left required">姓名</view>
 					<u-input v-model="userInfo.name" placeholder="请输入您的姓名" inputAlign="right" border="none"></u-input>
 				</view>
 				<view class="hflex acenter jbetween cell">
-					<view class="left">身份证号</view>
+					<view class="left required">身份证号</view>
 					<u-input v-model="userInfo.idNumber" placeholder="请输入您的身份证号" inputAlign="right" border="none"></u-input>
 				</view>
 				<view class="hflex acenter jbetween cell">
-					<view class="left">邮箱</view>
+					<view class="left required">邮箱</view>
 					<u-input v-model="userInfo.eamil" placeholder="请输入您的邮箱" inputAlign="right" border="none"></u-input>
 				</view>
-				<picker mode="region" @change="changeAddress" :value="index" >
+				<!-- <picker mode="region" @change="changeAddress" :value="index" >
 					<view class="hflex acenter jbetween cell">
-						<view class="left">所在地区</view>
+						<view class="left required">所在地区</view>
 						<u-input border="none" inputAlign="right" disabled disabledColor="#fff" v-model="userInfo.region" placeholder="请选择省市区" suffixIcon="arrow-right" suffixIconStyle="color: #b7b7b7"></u-input>
 					</view>
-				</picker>
+				</picker> -->
 				<view class="hflex acenter jbetween cell">
-					<view class="left">地址</view>
+					<view class="left required">地址</view>
 					<u-input v-model="userInfo.address" placeholder="请输入您的地址" inputAlign="right" border="none"></u-input>
 				</view>
 				<view class="line"></view>
 				<view class="cell">
-					<view class="img_title">身份证人像面照片</view>
+					<view class="img_title required">身份证人像面照片</view>
 					<view class="upload_img hflex acenter jcenter">
 						<u-upload :fileList="userInfo.fileList1" @afterRead="afterRead" @delete="deletePic" :maxCount="1" name="1" multiple :previewFullImage="true" width="550rpx" height="324rpx">
-							<image src="https://ship-expert.zhousi.hdlkeji.com/common/upload-just.png" style="width: 550rpx;height: 324rpx;"></image>
+							<view class="" style="position: relative;">
+								<image src="https://ship.shipcc.cn/common/upload-just.png" style="width: 550rpx;height: 324rpx;"></image>
+							</view>
 						</u-upload>
 					</view>
 				</view>
 				<view class="cell">
-					<view class="img_title">身份证国徽面照片</view>
+					<view class="img_title required">身份证国徽面照片</view>
 					<view class="upload_img hflex acenter jcenter">
 						<u-upload :fileList="userInfo.fileList2" @afterRead="afterRead" @delete="deletePic" :maxCount="1" name="2" multiple :previewFullImage="true" width="550rpx" height="324rpx">
-							<image src="https://ship-expert.zhousi.hdlkeji.com/common/upload-back.png" style="width: 550rpx;height: 324rpx;"></image>
+							<view class="" style="position: relative;">
+								<image src="https://ship.shipcc.cn/common/upload-back.png" style="width: 550rpx;height: 324rpx;"></image>
+								<image src="@/static/images/mine/upload_center.png" style="position: absolute;top:102rpx;left: 216rpx; width: 120rpx;height: 120rpx;"></image>
+							</view>
 						</u-upload>
 					</view>
 				</view>
 				<view class="bottom">
-					<view class="btn" v-if="state != 2" @click="next">下一步</view>
+					<view class="btn2" v-if="state != 2" @click="next">下一步</view>
 				</view>
 			</view>
 			<view v-if="current == 1">
 				<view class="title">工作信息</view>
 				<view class="cell">
-					<view class="img_title">营业执照(必填)</view>
+					<view class="img_title required">营业执照(必填)</view>
 					<view class="upload_img hflex acenter jcenter">
 						<u-upload :fileList="userInfo.fileList3" @afterRead="afterRead" @delete="deletePic" :maxCount="1" name="3" multiple :previewFullImage="true" width="550rpx" height="324rpx">
-							<image src="https://ship-expert.zhousi.hdlkeji.com/common/upload-business.png" style="width: 550rpx;height: 324rpx;"></image>
+							<!-- <image src="https://ship.shipcc.cn/common/upload-business.png" style="width: 550rpx;height: 324rpx;"></image> -->
+							<view class="" style="position: relative;">
+								<image src="https://ship.shipcc.cn/common/upload-business.png" style="width: 550rpx;height: 324rpx;"></image>
+								<image src="@/static/images/mine/upload_center.png" style="position: absolute;top:102rpx;left: 216rpx; width: 120rpx;height: 120rpx;"></image>
+							</view>
 						</u-upload>
 					</view>
 				</view>
@@ -67,7 +76,11 @@
 					<view class="img_title">厂家授权(非必填)</view>
 					<view class="upload_img hflex acenter jcenter">
 						<u-upload :fileList="userInfo.fileList4" @afterRead="afterRead" @delete="deletePic" :maxCount="1" name="4" multiple :previewFullImage="true" width="550rpx" height="324rpx">
-							<image src="https://ship-expert.zhousi.hdlkeji.com/common/upload-business.png" style="width: 550rpx;height: 324rpx;"></image>
+							<!-- <image src="https://ship.shipcc.cn/common/upload-business.png" style="width: 550rpx;height: 324rpx;"></image> -->
+							<view class="" style="position: relative;">
+								<image src="https://ship.shipcc.cn/common/upload-business.png" style="width: 550rpx;height: 324rpx;"></image>
+								<image src="@/static/images/mine/upload_center.png" style="position: absolute;top:102rpx;left: 216rpx; width: 120rpx;height: 120rpx;"></image>
+							</view>
 						</u-upload>
 					</view>
 				</view>
@@ -76,25 +89,26 @@
 					<view class="img_subtitle">请详细描述您的以往业绩</view>
 					<u-input v-model="userInfo.achievement" border="bottom"></u-input>
 				</view>
-				<view class="bottom">
+				<view class="bottom hflex acenter jbetween">
+					<view class="btn1" @click="pro">上一步</view>
 					<view class="btn" @click="submit">提交</view>
 				</view>
 			</view>
 			<view v-if="current == 2" class="box vflex acenter jcenter">
 				<view v-if="state == 1" class="vflex acenter jcenter">
-					<image src="https://ship-expert.zhousi.hdlkeji.com/common/wait.png" class="box1_img"></image>
+					<image src="https://ship.shipcc.cn/common/wait.png" class="box1_img"></image>
 					<view class="box1_title">审核中</view>
 					<view class="box1_subTitle">预计审核时间3个工作日</view>
 					<view class="box1_subTitle">请留意当前页面变动</view>
 					<view class="btn" @click="result">返回</view>
 				</view>
 				<view v-if="state == 2" class="vflex acenter jcenter">
-					<image src="https://ship-expert.zhousi.hdlkeji.com/common/wait.png" class="box1_img"></image>
+					<image src="https://ship.shipcc.cn/common/wait.png" class="box1_img"></image>
 					<view class="box1_title">已通过</view>
 					<view class="btn" @click="result">返回</view>
 				</view>
 				<view v-if="state == 3" class="vflex acenter jcenter">
-					<image src="https://ship-expert.zhousi.hdlkeji.com/common/error.png" class="box1_img"></image>
+					<image src="https://ship.shipcc.cn/common/error.png" class="box1_img"></image>
 					<view class="box1_title">审核失败</view>
 					<view class="box1_subTitle">驳回原因</view>
 					<view class="box1_subTitle">{{reason}}<span style="color: #506dff;margin-left: 8rpx;" @click="edit">立即修改></span></view>
@@ -117,11 +131,11 @@
 					name: '',
 					idNumber: '',
 					eamil: '',
-					region: '',
+					// region: '',
 					address: '',
-					province: '',
+					/* province: '',
 					city:'',
-					area: '',
+					area: '', */
 					fileList1: [],
 					fileList2: [],
 					fileList3: [],
@@ -150,11 +164,11 @@
 						name: maintenance.name,
 						idNumber: maintenance.id_card,
 						eamil: maintenance.email,
-						region: maintenance.province + maintenance.city + maintenance.area,
-						address: maintenance.results,
-						province: maintenance.province,
-						city:maintenance.city,
-						area: maintenance.area,
+						// region: maintenance.province + maintenance.city + maintenance.area,
+						address: maintenance.address,
+						// province: maintenance.province,
+						// city:maintenance.city,
+						// area: maintenance.area,
 						fileList1: [],
 						fileList2: [],
 						fileList3: [],
@@ -171,13 +185,18 @@
 					that.userInfo.fileList3.push({
 						url: maintenance.business_img
 					})
-					that.userInfo.fileList4.push({
-						url: maintenance.authorization_img
-					})
+					if(maintenance.authorization_img != '') {
+						that.userInfo.fileList4.push({
+							url: maintenance.authorization_img
+						})
+					}
+					
 					that.fileList1 = maintenance.id_card_img1
 					that.fileList2 = maintenance.id_card_img2
 					that.fileList3 = maintenance.business_img
-					that.fileList4 = maintenance.authorization_img
+					if(maintenance.authorization_img != '') {
+						that.fileList4 = maintenance.authorization_img
+					}
 					/* var imgs2 = maintenance.id_card_img2
 					that.userInfo.fileList2 = {
 						url: imgs2
@@ -291,49 +310,76 @@
 				})
 			},
 			next() {
-				// that.current = that.current + 1
-				console.log(that.fileList2);
+				if(that.userInfo.name == '') {
+					$api.info('请先输入姓名')
+					return
+				}
+				if(that.userInfo.idNumber == '') {
+					$api.info('请先输入身份证号')
+					return
+				}
+				if(that.userInfo.eamil == '') {
+					$api.info('请先输入邮箱')
+					return
+				}
+				/* if(that.userInfo.region == '') {
+					$api.info('请选择所在地区')
+					return
+				} */
+				if(that.userInfo.address == '') {
+					$api.info('请先输入地址')
+					return
+				}
+				if(that.fileList1 == '') {
+					$api.info('请先上传身份证人像面照片')
+					return
+				}
+				if(that.fileList2 == '') {
+					$api.info('请先上传身份证国徽面照片')
+					return
+				}
+				
+				that.current = that.current + 1
+				/* console.log(that.fileList2);
 				if ($api.formCheck(that.userInfo.name,'truename') && $api.formCheck(that.userInfo.idNumber,'identity') && $api.formCheck(that.userInfo.eamil,'email') && $api.formCheck(that.fileList1,'required') && $api.formCheck(that.fileList2,'required')) {
 					that.current = that.current + 1
-				}
+				} */
+			},
+			pro() {
+				that.current = that.current - 1
 			},
 			submit() {
-				uni.showLoading({
-					title: '上传中',
-					mask: true
-				})
+				if(that.fileList3 == '') {
+					$api.info('请先上传营业执照')
+					return
+				}
 				var u = that.userInfo
 				// that.current = that.current + 1
-				if ($api.formCheck(that.fileList3,'required') && $api.formCheck(that.userInfo.achievement,'required')) {
-					$api.req({
-						url: '/data/api.auth.Center/addupmaintenance',
-						method: 'POST',
-						data: {
-							id: u.id?u.id: '',
-							name: u.name,
-							id_card: u.idNumber,
-							email: u.eamil,
-							province: u.province,
-							city: u.city,
-							area: u.area,
-							address: u.address,
-							id_card_img1: that.fileList1,
-							id_card_img2: that.fileList2,
-							business_img: that.fileList3,
-							authorization_img: that.fileList4,
-							results: u.achievement,
-						}
-					}, function(res) {
-						if(res.code == 1) {
-							$api.info(res.info)
-							that.current = that.current + 1
-						}
-						uni.hideLoading()
-					})
-					
-				} else {
-					uni.hideLoading()
-				}
+				$api.req({
+					url: '/data/api.auth.Center/addupmaintenance',
+					method: 'POST',
+					data: {
+						id: u.id?u.id: '',
+						name: u.name,
+						id_card: u.idNumber,
+						email: u.eamil,
+						// province: u.province,
+						// city: u.city,
+						// area: u.area,
+						address: u.address,
+						id_card_img1: that.fileList1,
+						id_card_img2: that.fileList2,
+						business_img: that.fileList3,
+						authorization_img: that.fileList4,
+						results: u.achievement,
+					}
+				}, function(res) {
+					$api.info(res.info)
+					if(res.code == 1) {
+						that.current = that.current + 1
+						that.state = 1
+					}
+				})
 			},
 			edit() {
 				that.state = 0
@@ -349,6 +395,19 @@
 <style lang="scss" scoped>
 	.content::v-deep {
 		padding: 0 40rpx;
+		.required {
+			position: relative;
+			padding-left: 15rpx;
+		}
+		.required::after {
+			content: '*';
+			position: absolute;
+			top: 5rpx;
+			left: 0;
+			font-size: 26rpx;
+			font-weight: 400;
+			color: #FF3232;
+		}
 		.box1 {
 			.steps {
 				width: 100%;
@@ -421,7 +480,28 @@
 			.bottom {
 				width: 100%;
 				margin: 40rpx 0 64rpx;
+				.btn1 {
+					width: 330rpx;
+					height: 88rpx;
+					text-align: center;
+					line-height: 88rpx;
+					border-radius: 44rpx;
+					border: 1px solid #eee;
+					background-color: #eee;
+					color: #000;
+					font-size: 36rpx;
+				}
 				.btn {
+					width: 330rpx;
+					height: 88rpx;
+					text-align: center;
+					line-height: 88rpx;
+					border-radius: 44rpx;
+					background-color: #506dff;
+					color: #fff;
+					font-size: 36rpx;
+				}
+				.btn2 {
 					width: 690rpx;
 					height: 88rpx;
 					text-align: center;

+ 183 - 31
page_shop/pages/service/demand.vue

@@ -25,18 +25,27 @@
 		<block v-if="tab_active == 0 && is_write1 == 1">
 			<view class="box">
 				<view class="box1">
-					<view class="title">需求说明</view>
+					<view class="title requied">需求说明</view>
 					<u--textarea v-model="purchase.description" placeholder="请详细描述你的采购需求" border="none"></u--textarea>
-					<view class="title">上传营业执照或者身份证件照</view>
-					<u-upload :fileList="fileList1" @afterRead="afterRead" @delete="deletePic" name="1" multiple :maxCount="1" width="200rpx" height="200rpx"></u-upload>
+					<view class="title requied">上传营业执照或者身份证件照</view>
+					<u-upload :fileList="fileList1" @afterRead="afterRead" @delete="deletePic" name="1" multiple :maxCount="1" width="200rpx" height="200rpx">
+						<image src="@/static/images/index/upload_img.png" mode="" style="width: 200rpx;height: 200rpx"></image>
+					</u-upload>
 				</view>
 				<view class="box1">
-					<view class="title">上传图片以及资质证件照片</view>
-					<u-upload :fileList="fileList2" @afterRead="afterRead" @delete="deletePic" name="2" multiple :maxCount="9" width="200rpx" height="200rpx"></u-upload>
+					<view class="title requied">上传图片以及资质证件照片</view>
+					<u-upload :fileList="fileList2" @afterRead="afterRead" @delete="deletePic" name="2" multiple :maxCount="9" width="200rpx" height="200rpx">
+						<image src="@/static/images/index/upload_img.png" mode="" style="width: 200rpx;height: 200rpx"></image>
+					</u-upload>
 				</view>
-				<view class="box1 hflex acenter jbetween" style="margin-bottom: 186rpx;padding: 0 20rpx;">
-					<view class="title">是否隐藏需求</view>
-					<u-switch v-model="purchase.hidden" @change="changeHide1"></u-switch>
+				<view class="box1" style="margin-bottom: 186rpx;padding: 0 20rpx;">
+					<view class="hflex acenter jbetween">
+						<view class="title requied">是否隐藏需求</view>
+						<u-switch v-model="purchase.hidden" inactiveColor="rgb(230, 230, 230)" @change="changeHide1"></u-switch>
+					</view>
+					<view class="text">
+						说明:灰色开关为显示需求,蓝色开关为隐藏需求,默认为显示需求
+					</view>
 				</view>
 			</view>
 			<view class="bottom">
@@ -48,32 +57,42 @@
 			<view class="box">
 				<view class="box1">
 					<view class="hflex acenter jbetween cell">
-						<view class="label">姓名</view>
+						<view class="label requied">姓名</view>
 						<u-input v-model="repair.name" placeholder="请填写姓名" inputAlign="right" border="none"></u-input>
 					</view>
 					<view class="hflex acenter jbetween cell">
-						<view class="label">所在单位</view>
+						<view class="label requied">所在单位</view>
 						<u-input v-model="repair.company_name" placeholder="请填写所在单位名称" inputAlign="right" border="none"></u-input>
 					</view>
 					<view class="cell">
-						<view class="label">营业执照照片</view>
+						<view class="label requied">营业执照照片</view>
 						<view class="upload hflex acenter jcenter">
 							<u-upload :fileList="fileList3" @afterRead="afterRead" @delete="deletePic" :maxCount="1" name="3" multiple :previewFullImage="true" width="530rpx" height="324rpx">
-								<image src="https://ship-expert.zhousi.hdlkeji.com/common/upload-business.png" style="width: 530rpx;height: 324rpx;"></image>
-								<image class="upload_img" src="https://ship-expert.zhousi.hdlkeji.com/common/upload-top.png"></image>
+								<image src="https://ship.shipcc.cn/common/upload-business.png" style="width: 530rpx;height: 324rpx;"></image>
+								<image class="upload_img" src="https://ship.shipcc.cn/common/upload-top.png"></image>
 							</u-upload>
 						</view>
 					</view>
 					<view class="cell" style="border: none;">
-						<view class="label">身份证正反面</view>
+						<view class="label requied">身份证正反面</view>
 						<view class="hflex acenter jbetween" style="margin-top: 28rpx;">
 							<u-upload :fileList="fileList4" @afterRead="afterRead" @delete="deletePic" :maxCount="1" name="4" multiple :previewFullImage="true" width="310rpx" height="188rpx">
-								<image src="https://ship-expert.zhousi.hdlkeji.com/common/upload-just.png" style="width: 310rpx;height: 188rpx;"></image>
+								<!-- <image src="https://ship.shipcc.cn/common/upload-just.png" style="width: 310rpx;height: 188rpx;"></image> -->
+								<view class="" style="position: relative;">
+									<image src="@/static/images/index/upload-back.png" style="width: 310rpx;height: 188rpx;"></image>
+									<image src="@/static/images/mine/upload_center.png" style="position: absolute;top:40rpx;left: 116rpx; width: 80rpx;height: 80rpx;"></image>
+									<view style="position: absolute;bottom: 16rpx;left: 70rpx;font-size: 16rpx;color: #506DFF;">上传身份证人像面照片</view>
+								</view>
 							</u-upload>
 							<view class="upload2">
 								<u-upload :fileList="fileList5" @afterRead="afterRead" @delete="deletePic" :maxCount="1" name="5" multiple :previewFullImage="true" width="310rpx" height="188rpx">
-									<image src="https://ship-expert.zhousi.hdlkeji.com/common/upload-back.png" style="width: 310rpx;height: 188rpx;"></image>
-									<image class="upload_img2" src="https://ship-expert.zhousi.hdlkeji.com/common/upload-top.png"></image>
+									<!-- <image src="https://ship.shipcc.cn/common/upload-back.png" style="width: 310rpx;height: 188rpx;"></image>
+									<image class="upload_img2" src="https://ship.shipcc.cn/common/upload-top.png"></image> -->
+									<view class="" style="position: relative;">
+										<image src="https://ship.shipcc.cn/common/upload-back.png" style="width: 310rpx;height: 188rpx;"></image>
+										<image src="@/static/images/mine/upload_center.png" style="position: absolute;top:40rpx;left: 116rpx; width: 80rpx;height: 80rpx;"></image>
+										<view style="position: absolute;bottom: 16rpx;left: 70rpx;font-size: 16rpx;color: #506DFF;">上传身份证国徽面图片</view>
+									</view>
 								</u-upload>
 							</view>
 						</view>
@@ -81,15 +100,15 @@
 				</view>
 				<view class="box1" style="padding: 0 20rpx;">
 					<view class="hflex acenter jbetween cell">
-						<view class="label">手机号</view>
+						<view class="label requied">手机号</view>
 						<u-input v-model="repair.phone" placeholder="请填写你的手机号" inputAlign="right" border="none"></u-input>
 					</view>
 					<view class="hflex acenter jbetween cell">
-						<view class="label">邮箱</view>
+						<view class="label requied">邮箱</view>
 						<u-input v-model="repair.email" placeholder="请填写你的邮箱" inputAlign="right" border="none"></u-input>
 					</view>
 					<view class="hflex acenter jbetween cell" style="border: none;">
-						<view class="label">地址</view>
+						<view class="label requied">地址</view>
 						<u-input v-model="repair.address" placeholder="请填写你的详细地址" inputAlign="right" border="none"></u-input>
 					</view>
 				</view>
@@ -103,9 +122,14 @@
 						<u-input v-model="repair.specialty" placeholder="请简单叙述一下你的优点及特长" border="none"></u-input>
 					</view>
 				</view>
-				<view class="box1 hflex acenter jbetween" style="margin-bottom: 186rpx;padding: 0 20rpx;">
-					<view class="title">是否隐藏需求</view>
-					<u-switch v-model="repair.hidden == 2?true:false" @change="changeHide2"></u-switch>
+				<view class="box1" style="margin-bottom: 186rpx;padding: 0 20rpx;">
+					<view class="hflex acenter jbetween">
+						<view class="title">是否隐藏需求</view>
+						<u-switch v-model="repair.hidden" inactiveColor="rgb(230, 230, 230)" @change="changeHide2"></u-switch>
+					</view>
+					<view class="text">
+						说明:灰色开关为显示需求,蓝色开关为隐藏需求,默认为显示需求
+					</view>
 				</view>
 			</view>
 			
@@ -114,6 +138,15 @@
 				<view class="btn" v-else @click="submit">立即修改</view>
 			</view>
 		</block>
+		<u-modal :show="show_tips" :closeOnClickOverlay="true" :showConfirmButton="false">
+			<view class="popup1">
+				<image src="https://ship.shipcc.cn/common/small-bell.png" class="popup_img"></image>
+				<view class="popup1_title">温馨提示</view>
+				<view class="popup1_text">您还不是维修工,不能参与报价,可立即申请成为维修工</view>
+				<view class="popup1_btn" @click="toApply">立即申请</view>
+				<view class="popup1_text" style="margin: 36rpx 0 0;" @click="close">暂不</view>
+			</view>
+		</u-modal>
 	</view>
 </template>
 
@@ -136,6 +169,7 @@
 				fileList3: [],
 				fileList4: [],
 				fileList5: [],
+				show_tips: false
 			}
 		},
 		onLoad() {
@@ -161,9 +195,9 @@
 							that.is_write1 = 1
 							that.purchase = res.data
 							if(res.data.hidden == 2) {
-								that.purchase.hidden = false
-							} else {
 								that.purchase.hidden = true
+							} else {
+								that.purchase.hidden = false
 							}
 							that.fileList1 = []
 							that.fileList1.push({
@@ -179,12 +213,17 @@
 							}))
 							that.fileList2 = fileList2
 						}
-						if(JSON.stringify(res.data) == "[]" &&that.tab_active == 1) {
+						if(!res.data &&that.tab_active == 1) {
 							that.is_write2 = 0
 						} 
-						if(JSON.stringify(res.data) !== "[]" &&that.tab_active == 1) {
+						if(res.data &&that.tab_active == 1) {
 							that.is_write2 = 1
 							that.repair = res.data
+							if(res.data.hidden == 2) {
+								that.repair.hidden = true
+							} else {
+								that.repair.hidden = false
+							}
 							that.fileList3 = []
 							that.fileList3.push({
 								url:res.data.business_img
@@ -211,8 +250,14 @@
 			release(index) {
 				if(index == 1) {
 					that.is_write1 = 1
+					that.purchase.description = ''
 				} else {
-					that.is_write2 = 1
+					console.log('是否是维修工',uni.getStorageSync('maintenance'));
+					if(uni.getStorageSync('maintenance')) {
+						that.is_write2 = 1
+					} else {
+						that.show_tips = true
+					}
 				}
 			},
 			// 删除图片
@@ -278,6 +323,34 @@
 				that.repair.hidden = e
 			},
 			submit() {
+				if(!that.repair.name) {
+					$api.info('请填写姓名')
+					return
+				}
+				if(!that.repair.company_name) {
+					$api.info('请填写所在单位')
+					return
+				}
+				if(that.fileList3 == '') {
+					$api.info('请上传营业执照')
+					return
+				}
+				if(that.fileList4 == '' || that.fileList5 == '') {
+					$api.info('请上传身份证照片')
+					return
+				}
+				if(that.repair.phone == '') {
+					$api.info('请填写你的手机号')
+					return
+				}
+				if(that.repair.email == '') {
+					$api.info('请填写你的邮箱')
+					return
+				}
+				if(that.repair.address == '' ) {
+					$api.info('请填写你的详细地址')
+					return
+				}
 				$api.req({
 					url: '/data/api.auth.ShipEngineMaintenance/subacceptance',
 					method: 'POST',
@@ -305,6 +378,10 @@
 				})	 
 			},
 			publish() {
+				if(that.purchase.description == '') {
+					$api.info('请先输入需求说明')
+					return
+				}
 				
 				var imgs = ''
 				var imgs2 = ''
@@ -346,7 +423,18 @@
 						$api.info(res.info)
 					}
 				})
-			}
+			},
+			// 去申请
+			toApply() {
+				that.close()
+				$api.jump('/page_shop/pages/service/applyMaintenance')
+			},
+			// 关闭
+			close() {
+				
+				that.show_tips = false
+				
+			},
 		},
 	}
 </script>
@@ -412,15 +500,33 @@
 				box-sizing: border-box;
 				padding: 0 20rpx 36rpx;
 				.title {
-					padding: 24rpx 0 20rpx;
-					font-size: 28rpx;
+					margin: 24rpx 0 20rpx 10rpx; 
+					font-size: 28rpx; 
 					font-weight: 400;
 					color: #222222;
 					line-height: 40rpx;
+					
+				}
+				.requied {
+					position: relative;
+					padding-left: 10rpx;
+				}
+				.requied::before{
+					content: '*';
+					position: absolute;
+					top: 10rpx;
+					left: -10rpx;
+					color: #ff0000;
 				}
 				.u-textarea {
 					background-color: #F5F5F5;
 				}
+				.text {
+					font-size: 24rpx;
+					font-weight: 400;
+					color: #d75a59;
+					margin: 16rpx 0;
+				}
 			}
 			.cell {
 				width: 100%;
@@ -483,5 +589,51 @@
 				line-height: 84rpx;
 			}
 		}
+		
+	}
+	.popup1 {
+		width: 530rpx;
+		// height: 520rpx;
+		border-radius: 40rpx;
+		position: relative;
+		box-sizing: border-box;
+		padding: 0 40rpx 40rpx;
+		.popup_img {
+			width: 174rpx;
+			height: 172rpx;
+			position: absolute;
+			top: -50rpx;
+			left: 178rpx;
+			z-index: 99;
+		}
+		.popup1_title {
+			margin-top: 134rpx;
+			text-align: center;
+			font-size: 48rpx;
+			font-weight: 400;
+			color: #222222;
+		}
+		
+		.popup1_text {
+			width: 100%;
+			text-align: center;
+			font-size: 28rpx;
+			font-weight: 400;
+			color: #666666;
+			margin: 44rpx auto 52rpx;
+		}
+		.popup1_btn {
+			margin: 0 auto;
+			width: 310rpx;
+			height: 84rpx;
+			background: linear-gradient(90deg, #506DFF 0%, #88A6FF 100%);
+			box-shadow: 0px 4rpx 24rpx 0px rgba(90,119,255,0.36);
+			border-radius: 42rpx;
+			text-align: center;
+			line-height: 84rpx;
+			font-size: 32rpx;
+			font-weight: 500;
+			color: #FFFFFF;
+		}
 	}
 </style>

+ 15 - 1
page_shop/pages/service/feed/detail.vue

@@ -8,7 +8,7 @@
 			<view class="text">{{detail.content}}</view>
 			<view class="hflex acenter">
 				<block v-for="(item,index) in detail.imgs" :key="index">
-					<image mode="aspectFill" :src="item" class="img"></image>
+					<image mode="aspectFill" :src="item" class="img" @click="perImgs"></image>
 				</block>
 			</view>
 		</view>
@@ -52,6 +52,20 @@
 					}
 				}
 			},
+			perImgs() {
+				uni.previewImage({
+					urls: that.detail.imgs,
+					longPressActions: {
+						itemList: ['发送给朋友', '保存图片', '收藏'],
+						success: function(data) {
+							console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片');
+						},
+						fail: function(err) {
+							console.log(err.errMsg);
+						}
+					}
+				});
+			},
 		},
 	}
 </script>

+ 178 - 71
page_shop/pages/service/joinPerson.vue

@@ -2,87 +2,102 @@
 	<view class="content">
 		<view class="" v-if="state == 0 || state == 2">
 			<view class="top hflex acenter" v-if="state == 2">
-				<image src="https://ship-expert.zhousi.hdlkeji.com/common/person.png" class="top_img"></image>
+				<image src="https://ship.shipcc.cn/common/person.png" class="top_img"></image>
 				<view class="top_text">你已成功加入人才库</view>
 			</view>
 			<view class="box" style="margin-top: 20rpx;">
 				<view class="box_title">基本信息</view>
 				<view class="hflex acenter jbetween cell">
-					<view class="left">姓名</view>
-					<u-input v-model="userInfo.name" placeholder="请输入您的姓名" inputAlign="right" border="none"></u-input>
+					<view class="left" :class="state != 2 ? 'required' : ''">姓名</view>
+					<view class="left" v-if="state == 2">{{userInfo.name}}</view>
+					<u-input v-model="userInfo.name" v-if="state != 2" placeholder="请输入您的姓名" inputAlign="right" border="none"></u-input>
 				</view>
-				<picker @change="bindSexChange" :value="index" :range="sexList">
+				<picker @change="bindSexChange" :value="index" :range="sexList" :disabled="state == 2 ? true: false">
 					<view class="hflex acenter jbetween cell">
-						<view class="left">性别</view>
-						<u-input border="none" v-model="userInfo.sex" disabled disabledColor="#fff" placeholder="请选择您的性别" suffixIcon="arrow-right" suffixIconStyle="color: #b7b7b7" inputAlign="right"></u-input>
+						<view class="left " :class="state != 2 ? 'required' : ''">性别</view>
+						<view class="left" v-if="state == 2">{{userInfo.sex}}</view>
+						<u-input border="none" v-model="userInfo.sex" v-if="state != 2" disabled disabledColor="#fff" placeholder="请选择您的性别" suffixIcon="arrow-right" suffixIconStyle="color: #b7b7b7" inputAlign="right"></u-input>
 					</view>
 				</picker>
-				<picker @change="bindAgeChange" :value="index" :range="ageList">
+				<picker @change="bindAgeChange" :value="index" :range="ageList" :disabled="state == 2 ? true: false">
 					<view class="hflex acenter jbetween cell">
-						<view class="left">年龄</view>
-						<u-input border="none" v-model="userInfo.age" disabled disabledColor="#fff" placeholder="请选择您的年龄" suffixIcon="arrow-right" suffixIconStyle="color: #b7b7b7" inputAlign="right"></u-input>
+						<view class="left " :class="state != 2 ? 'required' : ''">年龄</view>
+						<view class="left" v-if="state == 2">{{userInfo.age}}</view>
+						<u-input border="none" v-model="userInfo.age" v-if="state != 2" disabled disabledColor="#fff" placeholder="请选择您的年龄" suffixIcon="arrow-right" suffixIconStyle="color: #b7b7b7" inputAlign="right"></u-input>
 					</view>
 				</picker>
 				<view class="hflex acenter jbetween cell">
-					<view class="left">籍贯</view>
-					<u-input v-model="userInfo.place" placeholder="请输入您的籍贯" inputAlign="right" border="none"></u-input>
+					<view class="left " :class="state != 2 ? 'required' : ''">籍贯</view>
+					<view class="left" v-if="state == 2">{{userInfo.place}}</view>
+					<u-input v-model="userInfo.place" v-if="state != 2" placeholder="请输入您的籍贯" inputAlign="right" border="none"></u-input>
 				</view>
 				<view class="hflex acenter jbetween cell">
-					<view class="left">电话</view>
-					<u-input v-model="userInfo.phone" placeholder="请输入您的电话" inputAlign="right" border="none"></u-input>
+					<view class="left " :class="state != 2 ? 'required' : ''">电话</view>
+					<view class="left" v-if="state == 2">{{userInfo.phone}}</view>
+					<u-input v-model="userInfo.phone" v-if="state != 2" placeholder="请输入您的电话" inputAlign="right" border="none"></u-input>
 				</view>
 				<view class="hflex acenter jbetween cell">
-					<view class="left">邮箱</view>
-					<u-input v-model="userInfo.email" placeholder="请输入您的邮箱" inputAlign="right" border="none"></u-input>
+					<view class="left " :class="state != 2 ? 'required' : ''">邮箱</view>
+					<view class="left" v-if="state == 2">{{userInfo.email}}</view>
+					<u-input v-model="userInfo.email" v-if="state != 2" placeholder="请输入您的邮箱" inputAlign="right" border="none"></u-input>
 				</view>
-				<picker mode="region" @change="changeAddress" :value="index" >
+				<picker mode="region" @change="changeAddress" :value="index"  :disabled="state == 2 ? true: false">
 					<view class="hflex acenter jbetween cell">
-						<view class="left">所在地区</view>
-						<u-input border="none" inputAlign="right" disabled disabledColor="#fff" v-model="userInfo.region" placeholder="请选择省市区" suffixIcon="arrow-right" suffixIconStyle="color: #b7b7b7"></u-input>
+						<view class="left " :class="state != 2 ? 'required' : ''">所在地区</view>
+						<view class="left" v-if="state == 2">{{userInfo.region}}</view>
+						<u-input border="none" v-if="state != 2" inputAlign="right" disabled disabledColor="#fff" v-model="userInfo.region" placeholder="请选择省市区" suffixIcon="arrow-right" suffixIconStyle="color: #b7b7b7"></u-input>
 					</view>
 				</picker>
 				<view class="hflex acenter jbetween cell">
-					<view class="left">详细地址</view>
-					<u-input v-model="userInfo.address" placeholder="街道,楼牌号等" inputAlign="right" border="none"></u-input>
+					<view class="left " :class="state != 2 ? 'required' : ''">详细地址</view>
+					<view class="left" v-if="state == 2">{{userInfo.address}}</view>
+					<u-input v-model="userInfo.address" v-if="state != 2" placeholder="街道,楼牌号等" inputAlign="right" border="none"></u-input>
 				</view>
 				<view class="hflex acenter jbetween cell">
-					<view class="left">毕业院校</view>
-					<u-input v-model="userInfo.school" placeholder="请输入您的毕业院校" inputAlign="right" border="none"></u-input>
+					<view class="left " :class="state != 2 ? 'required' : ''">毕业院校</view>
+					<view class="left" v-if="state == 2">{{userInfo.school}}</view>
+					<u-input v-model="userInfo.school" v-if="state != 2" placeholder="请输入您的毕业院校" inputAlign="right" border="none"></u-input>
 				</view>
-				<picker @change="bindEduChange" :value="index" :range="educationList">
+				<picker @change="bindEduChange" :value="index" :range="educationList" :disabled="state == 2 ? true: false">
 					<view class="hflex acenter jbetween cell">
-						<view class="left">学历</view>
-						<u-input border="none" v-model="userInfo.education" disabled disabledColor="#fff" placeholder="请选择您的学历" suffixIcon="arrow-right" suffixIconStyle="color: #b7b7b7" inputAlign="right"></u-input>
+						<view class="left " :class="state != 2 ? 'required' : ''">学历</view>
+						<view class="left" v-if="state == 2">{{userInfo.education}}</view>
+						<u-input border="none" v-if="state != 2" v-model="userInfo.education" disabled disabledColor="#fff" placeholder="请选择您的学历" suffixIcon="arrow-right" suffixIconStyle="color: #b7b7b7" inputAlign="right"></u-input>
 					</view>
 				</picker>
 				<view class="hflex acenter jbetween cell">
-					<view class="left">专业</view>
-					<u-input v-model="userInfo.major" placeholder="请输入您的专业" inputAlign="right" border="none"></u-input>
+					<view class="left " :class="state != 2 ? 'required' : ''">专业</view>
+					<view class="left" v-if="state == 2">{{userInfo.major}}</view>
+					<u-input v-model="userInfo.major" v-if="state != 2" placeholder="请输入您的专业" inputAlign="right" border="none"></u-input>
 				</view>
 				<view class="hflex acenter jbetween cell">
-					<view class="left">工作年限</view>
-					<u-input v-model="userInfo.year" placeholder="请输入您的工作年限" inputAlign="right" border="none"></u-input>
+					<view class="left " :class="state != 2 ? 'required' : ''">工作年限</view>
+					<view class="left" v-if="state == 2">{{userInfo.year}}</view>
+					<u-input v-model="userInfo.year" v-if="state != 2" placeholder="请输入您的工作年限" inputAlign="right" border="none"></u-input>
 				</view>
 				<view class="hflex acenter jbetween cell">
 					<view class="left">个人特长</view>
-					<u-input v-model="userInfo.specialty" placeholder="请输入您的特长" inputAlign="right" border="none"></u-input>
+					<view class="left" v-if="state == 2">{{userInfo.specialty?userInfo.specialty: '-'}}</view>
+					<u-input v-model="userInfo.specialty" v-if="state != 2" placeholder="请输入您的特长" inputAlign="right" border="none"></u-input>
 				</view>
 				<view class="hflex acenter jbetween cell">
 					<view class="left">专业技能</view>
-					<u-input v-model="userInfo.skill" placeholder="请输入您的技能描述" inputAlign="right" border="none"></u-input>
+					<view class="left" v-if="state == 2">{{userInfo.skill?userInfo.skill: '-'}}</view>
+					<u-input v-model="userInfo.skill" v-if="state != 2" placeholder="请输入您的技能描述" inputAlign="right" border="none"></u-input>
 				</view>
-				<picker @change="bindTitleChange" :value="index" :range="titleList" range-key="name">
+				<picker @change="bindTitleChange" :value="index" :range="titleList" range-key="name" :disabled="state == 2 ? true: false">
 					<view class="hflex acenter jbetween cell">
 						<view class="left">职称选择</view>
-						<u-input border="none" disabled disabledColor="#fff" v-model="userInfo.title" placeholder="请选择您的职称" suffixIcon="arrow-right" suffixIconStyle="color: #b7b7b7" inputAlign="right"></u-input>
+						<view class="left" v-if="state == 2">{{userInfo.title?userInfo.title: '-'}}</view>
+						<u-input border="none" v-if="state != 2" disabled disabledColor="#fff" v-model="userInfo.title" placeholder="请选择您的职称" suffixIcon="arrow-right" suffixIconStyle="color: #b7b7b7" inputAlign="right"></u-input>
 					</view>
 				</picker>
 			</view>
-			<view class="box">
+			<view class="box" style="margin-bottom: 108rpx;">
 				<view class="box_title">简历及相关信息</view>
 				<view class="hflex acenter jbetween">
-					<view class="box_title">工作经历</view>
-					<view class="hflex acenter" @click="perfect(3)">
+					<view class="box_title " :class="state != 2 ? 'required' : ''">工作经历</view>
+					<view class="hflex acenter" @click="perfect(3)" v-if="state != 2">
 						<u-icon name="plus-circle-fill" color="#555555" size="12"></u-icon>
 						<view class="text_style1">添加</view>
 					</view>
@@ -91,7 +106,7 @@
 					<view class="padT-26" @click="editInfo(item.id)">
 						<view class="hflex acenter jbetween">
 							<view class="box_title">{{item.content.company_name}}</view>
-							<u-icon name="arrow-right" color="#555555" size="12"></u-icon>
+							<u-icon name="arrow-right" color="#555555" size="12" v-if="state != 2"></u-icon>
 						</view>
 						<view class="hflex acenter padT-26">
 							<view class="box_subTitle padR-24" style="padding-right: 24rpx;">{{item.content.on_job_start}}-{{item.content.on_job_end}}</view>
@@ -100,30 +115,41 @@
 						<view class="hflex fwrap padT-26 box_subTitle">工作内容:{{item.content.job_description}}</view>
 					</view>
 				</block>
-				<view class="box_title">培训经历</view>
-				<view class="box_subTitle">请详细描述您的培训经历</view>
-				<u-input v-model="userInfo.train" border="bottom"></u-input>
-				<view class="box_title">资质证书</view>
-				<view class="box_subTitle">至少上传一张专业证书(包含毕业证书),证书请完整展示姓名,证书名称,证书日期及有效期</view>
+				<view class="box_title" :class="state == 2 ? 'line' : ''">培训经历</view>
+				<view class="box_subTitle"  v-if="state != 2">请详细描述您的培训经历</view>
+				<view class="box_subTitle" v-if="state == 2">{{userInfo.train?userInfo.train:'-'}}</view>
+				<u-input v-model="userInfo.train" v-if="state != 2" border="bottom"></u-input>
+				<view class="box_title" :class="state == 2 ? 'line' : ''">资质证书</view>
+				<view class="box_subTitle" v-if="state != 2">至少上传一张专业证书(包含毕业证书),证书请完整展示姓名,证书名称,证书日期及有效期</view>
 				<view class="upload">
-					<u-upload :fileList="userInfo.fileList1" @afterRead="afterRead" @delete="deletePic" :maxCount="9" name="1" multiple width="100" height="100">
-						<image src="https://ship-expert.zhousi.hdlkeji.com/common/upload.png" style="width: 200rpx;height: 200rpx;"></image>
+					<view class="hflex acenter fwrap" v-if="state == 2">
+						<image :src="item.url" v-for="(item,index) in userInfo.fileList1" style="width: 200rpx;height: 200rpx;margin: 0 20rpx 20rpx 0;" :key="index"></image>
+					</view>
+					<u-upload v-if="state != 2" :fileList="userInfo.fileList1" @afterRead="afterRead" @delete="deletePic" :maxCount="9" name="1" multiple width="100" height="100">
+						<!-- <image src="https://ship.shipcc.cn/common/upload.png" style="width: 200rpx;height: 200rpx;"></image> -->
+						<view class="vflex acenter jcenter upload_bg" style="background: #F4F4F4;border-radius: 16rpx;width: 200rpx;height: 200rpx;">
+							<u-icon name="plus" color="#ADADAD" size="32"></u-icon>
+							<view class="" style="font-size: 26rpx;padding-top: 8px;color: #ADADAD;">
+								上传图片
+							</view>
+						</view>
 					</u-upload>
 				</view>
-				<view class="bottom" v-if="state == 0">
-					<view class="btn" @click="submit">提交</view>
-				</view>
+				
+			</view>
+			<view class="bottom" v-if="state == 0">
+				<view class="btn" @click="submit">提交</view>
 			</view>
 		</view>
 		<view class="box1 vflex acenter" v-if="state == 1">
-			<image src="https://ship-expert.zhousi.hdlkeji.com/common/wait.png" class="box1_img"></image>
+			<image src="https://ship.shipcc.cn/common/wait.png" class="box1_img"></image>
 			<view class="box1_title">审核中</view>
 			<view class="box1_subTitle">预计审核时间3个工作日</view>
 			<view class="box1_subTitle">请留意当前页面变动</view>
 			<view class="btn" @click="result">返回</view>
 		</view>
 		<view class="box1 vflex acenter" v-if="state == 3">
-			<image src="https://ship-expert.zhousi.hdlkeji.com/common/error.png" class="box1_img"></image>
+			<image src="https://ship.shipcc.cn/common/error.png" class="box1_img"></image>
 			<view class="box1_title">审核失败</view>
 			<view class="box1_subTitle">驳回原因</view>
 			<view class="box1_subTitle">{{reason}}<span style="color: #506dff;margin-left: 8rpx;" @click="edit">立即修改></span></view>
@@ -223,7 +249,6 @@
 								url: obj[item]
 							}))
 							for(let i in fileList1) {
-								console.log(fileList1[i].url.length);
 								if(fileList1[i].url.length <= 1) {
 									console.log(fileList1[i]);
 									fileList1.splice(i, 1)
@@ -261,7 +286,7 @@
 				uni.removeStorageSync('work_experience')
 			},
 			getageList() {
-				for(var i=18;i<=60;i++) {
+				for(var i=18;i<=65;i++) {
 					that.ageList.push(i)
 				}
 			},
@@ -356,10 +381,16 @@
 			},
 			// 添加或完善
 			perfect(index) {
+				if(that.state == 2) {
+					return
+				}
 				$api.jump('/page_shop/pages/service/perfect')
 			},
 			// 修改工作经历
 			editInfo(id) {
+				if(that.state == 2) {
+					return
+				}
 				$api.jump('/page_shop/pages/service/perfect?id='+ id)
 			},
 			// 返回
@@ -368,16 +399,68 @@
 			},
 			// 提交
 			submit() {
-				uni.showLoading({
-					title: '上传中',
-					mask: true
-				})
 				var u = that.userInfo
 				var zz_imgs = ""
-				
+				if(u.name == '') {
+					$api.info('请输入真实姓名')
+					return
+				}
+				if(u.sex == '') {
+					$api.info('请选择性别')
+					return
+				}
+				if(u.age == '') {
+					$api.info('请选择年龄')
+					return
+				}
+				if(u.place == '') {
+					$api.info('请输入籍贯')
+					return
+				}
+				if(u.phone == '') {
+					$api.info('请输入电话')
+					return
+				}
+				if(u.email == '') {
+					$api.info('请输入邮箱')
+					return
+				}
+				if(u.city == '') {
+					$api.info('请选择所在地区')
+					return
+				}
+				if(u.address == '') {
+					$api.info('请输入详细地址')
+					return
+				}
+				if(u.school == '') {
+					$api.info('请输入毕业院校')
+					return
+				}
+				if(u.education == '') {
+					$api.info('请选择学历')
+					return
+				}
+				if(u.major == '') {
+					$api.info('请输入专业')
+					return
+				}
+				if(u.year == '') {
+					$api.info('请输入工作年限')
+					return
+				}
+				if(u.work.length == 0) {
+					$api.info('请添加工作经历')
+					return
+				}
  				if ($api.formCheck(u.name,'truename') && $api.formCheck(u.sex,'required') && $api.formCheck(u.age,'required') && $api.formCheck(u.phone,'mobile') && $api.formCheck(u.email,'email')) {
+					/* uni.showLoading({
+						title: '上传中',
+						mask: true
+					}) */
 					if(u.fileList1.length == 0) {
 						$api.info('请上传资质证书!')
+						
 						return
 					}
 					if(u.fileList1.length > 0) {
@@ -416,15 +499,13 @@
 							pxjl: u.train
 						}
 					}, function(res) {
+						$api.info(res.info)
 						if(res.code == 1) {
-							$api.info(res.info)
 							that.state = 1
 							// $api.jump('/pages/tabbar/mine/mine',3)
 						}
-						uni.hideLoading()
 					})
 				} else {
-					uni.hideLoading()
 				}
 			}
 		},
@@ -451,6 +532,19 @@
 				color: #330e00;
 			}
 		}
+		.required {
+			position: relative;
+			padding-left: 15rpx;
+		}
+		.required::after {
+			content: '*';
+			position: absolute;
+			top: 5rpx;
+			left: 0;
+			font-size: 26rpx;
+			font-weight: 400;
+			color: #FF3232;
+		}
 		.box {
 			width: 100%;
 			background-color: #fff;
@@ -462,6 +556,10 @@
 				color: #222;
 				margin: 20rpx 0 32rpx;
 			}
+			.line {
+				padding-top: 20rpx;
+				border-top: 1px solid #F4F4F4;
+			}
 			.box_subTitle {
 				font-size: 26rpx;
 				color: #b7b7b7;
@@ -489,18 +587,27 @@
 					color: #222;
 				}
 			}
-			.bottom {
-				margin: 80rpx 0 50rpx;
-				.btn {
-					width: 100%;
-					height: 88rpx;
-					border-radius: 44rpx;
-					text-align: center;
-					line-height: 88rpx;
-					background-color: #506dff;
-					font-size: 36rpx;
-					color: #fff;
-				}
+			
+		}
+		.bottom {
+			position: fixed;
+			bottom: 0;
+			left: 0;
+			width: 100%;
+			background: #fff;
+			box-sizing: border-box;
+			padding: 24rpx;
+			z-index: 99;
+			// margin: 80rpx 0 50rpx;
+			.btn {
+				width: 100%;
+				height: 88rpx;
+				border-radius: 44rpx;
+				text-align: center;
+				line-height: 88rpx;
+				background-color: #506dff;
+				font-size: 36rpx;
+				color: #fff;
 			}
 		}
 		.box1 {

+ 3 - 3
page_shop/pages/service/release.vue

@@ -136,13 +136,13 @@
 			</view>
 			<view class="box hflex acenter jbetween">
 				<view class="text_style3">隐藏该应聘</view>
-				<u-switch v-model="hidden" @change="changeHide"></u-switch>
+				<u-switch v-model="hidden" inactiveColor="rgb(230, 230, 230)" @change="changeHide"></u-switch>
 			</view>
 			<view class="btn" @click="open">{{state == 0?'立即发布':'立即修改'}}</view>
 		</block>
 		<block v-if="state == 1">
 			<view class="box1 vflex acenter">
-				<image src="https://ship-expert.zhousi.hdlkeji.com/common/wait.png" class="box1_img"></image>
+				<image src="https://ship.shipcc.cn/common/wait.png" class="box1_img"></image>
 				<view class="box1_title">审核中</view>
 				<view class="box1_subTitle">预计审核时间3个工作日</view>
 				<view class="box1_subTitle">请留意当前页面变动</view>
@@ -151,7 +151,7 @@
 		</block>
 		<block v-if="state == 3">
 			<view class="box1 vflex acenter">
-				<image src="https://ship-expert.zhousi.hdlkeji.com/common/wait.png" class="box1_img"></image>
+				<image src="https://ship.shipcc.cn/common/wait.png" class="box1_img"></image>
 				<view class="box1_title">审核失败</view>
 				<view class="box1_subTitle">驳回原因:</view>
 				<view class="box1_subTitle">{{why}}</view>

+ 203 - 45
page_shop/pages/service/settledMerchants.vue

@@ -1,10 +1,10 @@
 <template>
 	<view class="content">
-		<view v-if="state == 0 || state == 2">
+		<view v-if="state == 0">
 			<view class="box">
 				<view class="title">商家信息</view>	
 				<view class="cell vflex">
-					<view class="img_title">商家头像</view>
+					<view class="img_title left">商家头像</view>
 					<view style="width: 220rpx;height: 220rpx;padding-top: 28rpx;">
 						<u-upload :fileList="info.fileList1" @afterRead="afterRead" @delete="deletePic" :maxCount="1" name="1" multiple :previewFullImage="true" width="220rpx" height="220rpx">
 							<view class="vflex acenter jcenter upload_bg">
@@ -31,11 +31,11 @@
 					<u-input v-model="info.phone" border="none" placeholder="请输入联系电话" inputAlign="right"></u-input>
 				</view>
 				<view class="vflex cell" style="border: none;">
-					<view class="img_title">商家简介</view>
+					<view class="img_title left">商家简介</view>
 					<u--textarea v-model="info.introduction" placeholder="在此输入商家简介内容" ></u--textarea>
 				</view>
 				<view class="vflex">
-					<view class="img_title">图片及视频</view>
+					<view class="img_title left">图片及视频</view>
 					<view class="hflex fwrap" style="padding-top: 28rpx;">
 						<u-upload :fileList="info.fileList2" accept="media" @afterRead="afterRead" @delete="deletePic" :maxCount="9" name="2" multiple :previewFullImage="true" width="200rpx" height="200rpx">
 							<view class="vflex acenter jcenter upload_bg">
@@ -51,7 +51,11 @@
 					<view class="left" style="width: 60%;">上传营业执照</view>
 					<view class="upload_img vflex acenter jcenter">
 						<u-upload :fileList="info.fileList3" @afterRead="afterRead" @delete="deletePic" :maxCount="1" name="3" multiple :previewFullImage="true" width="550rpx" height="324rpx">
-							<image src="https://ship-expert.zhousi.hdlkeji.com/common//upload-business.png" style="width: 550rpx;height: 324rpx;"></image>
+							<!-- <image src="https://ship.shipcc.cn/common//upload-business.png" style="width: 550rpx;height: 324rpx;"></image> -->
+							<view class="" style="position: relative;">
+								<image src="https://ship.shipcc.cn/common/upload-business.png" style="width: 550rpx;height: 324rpx;"></image>
+								<image src="@/static/images/mine/upload_center.png" style="position: absolute;top:102rpx;left: 216rpx; width: 120rpx;height: 120rpx;"></image>
+							</view>
 						</u-upload>
 						<view class="hflex acenter ">
 							<u-icon name="camera" color="#999999" size="16"></u-icon>
@@ -72,16 +76,51 @@
 		</view>
 		<view v-if="state == 1">
 			<view class="box1 vflex acenter jcenter">
-				<image src="https://ship-expert.zhousi.hdlkeji.com/common/wait.png" class="box1_img"></image>
+				<image src="https://ship.shipcc.cn/common/wait.png" class="box1_img"></image>
 				<view class="box1_title">审核中</view>
 				<view class="box1_subTitle">预计审核时间3个工作日</view>
 				<view class="box1_subTitle">请留意当前页面变动</view>
 				<view class="btn" @click="result">返回</view>
 			</view>
 		</view>
+		<view v-if="state == 2">
+			<view class="box1 vflex acenter jcenter">
+				<u-icon name="checkmark-circle-fill" color="#65B85D" size="62"></u-icon>
+				<view class="box1_title">您已入驻成功</view>
+				<view class="box1_text">请访问以下pc端地址进行店铺信息维护以及</view>
+				<view class="box1_text">商品信息的发布;或至应用商店下载“船</view>
+				<view class="box1_text">百知商家端APP”进行操作</view>
+				<view class="hflex acenter jbetween lianjie">
+					<view class="lj_text text_hide">{{login_url}}</view>
+					<view class="text_blue"@click="copy(login_url)">复制链接</view>
+				</view>
+				<view class="hflex acenter" style="width: 570rpx;padding-top: 36rpx;">
+					<view class="label">
+						账号:
+					</view>
+					<view class="text_blue">{{phone}}</view>
+				</view>
+				<view class="hflex acenter" style="width: 570rpx;padding-top: 36rpx;">
+					<view class="label">
+						密码:
+					</view>
+					<view class="text_blue">123456</view>
+				</view>
+				<view class="card hflex">
+					<image src="@/static/images/info_img.png" mode="aspectFill" class="icon"></image>
+					<!-- <u-icon name="checkmark-circle-fill" color="#FE5201" size="12"></u-icon> -->
+					<view class="card_text">
+						该密码为系统默认密码,登录后<span style="color: #FE5201;">请及时修改密码</span>,以防账号内<span style="color: #FE5201;">数据丢失</span>。
+					</view>
+				</view>
+				<view class="btn" @click="result">返回</view>
+				<view class="box1_text">请去手机对应的应用商店</view>
+				<view class="box1_text">搜索“船百知商家端”下载</view>
+			</view>
+		</view>
 		<view v-if="state == 3">
 			<view class="box1 vflex acenter jcenter">
-				<image src="https://ship-expert.zhousi.hdlkeji.com/common/error.png" class="box1_img"></image>
+				<image src="https://ship.shipcc.cn/common/error.png" class="box1_img"></image>
 				<view class="box1_title">审核失败</view>
 				<view class="box1_subTitle">驳回原因</view>
 				<view class="box1_subTitle">{{reason}}<span style="color: #506dff;margin-left: 8rpx;" @click="edit">立即修改></span></view>
@@ -123,6 +162,8 @@
 				fileList1: '',
 				fileList2: '',
 				fileList3: '',
+				login_url: '',
+				phone: '',
 			}
 		},
 		onLoad() {
@@ -134,6 +175,7 @@
 				var pages = getCurrentPages()
 				var prePage = pages[pages.length - 2]
 				var merchants = prePage.$vm.user.merchants
+				that.phone = prePage.$vm.user.phone
 				if (merchants) {
 					that.info = {
 						name: merchants.name,
@@ -178,6 +220,7 @@
 					}
 					that.state = merchants.audit
 					that.reason = merchants.why
+					that.login_url = merchants.login_url
 				}
 			},
 			selectmap() {
@@ -336,50 +379,79 @@
 				that.agree = !that.agree
 			},
 			settled() {
+				if(!that.info.name) {
+					$api.info('请输入商家名称')
+					return
+				}
+				if(!that.fileList1) {
+					$api.info('请上传商家头像')
+					return
+				}
+				if(!that.addressObj.province) {
+					$api.info('请选择商家地址')
+					return
+				}
+				if(!that.info.contacts) {
+					$api.info('请输入联系人')
+					return
+				}
+				if(!that.info.phone) {
+					$api.info('请输入联系电话')
+					return
+				}
+				if(!that.info.introduction) {
+					$api.info('请输入商家简介')
+					return
+				}
+				if(!that.fileList2) {
+					$api.info('请上传图片')
+					return
+				}
+				if(!that.fileList3) {
+					$api.info('请上传营业执照')
+					return
+				}
 				uni.showLoading({
 					title: '上传中',
 					mask: true
 				})
 				var business_img = ""
-				if ($api.formCheck(that.info.name,'required')&&$api.formCheck(that.addressObj.address,'required')&&$api.formCheck(that.info.contacts,'required')&&$api.formCheck(that.info.phone,'phone')&&$api.formCheck(that.info.introduction,'required')) {
-					if(that.agree) {
-						/* if(that.info.fileList3.length > 0) {
-							for(var i=0;i<that.info.fileList1.length;i++) {
-								business_img += that.info.fileList1[i].url
-							}
-						} */
-						$api.req({
-							url: '/data/api.auth.Center/addupmerchants',
-							method: 'POST',
-							data: {
-								name: that.info.name,
-								province: that.addressObj.province,
-								city: that.addressObj.city,
-								area: that.addressObj.area,
-								address: that.addressObj.address,
-								longitude: that.addressObj.longitude,
-								latitude: that.addressObj.latitude,
-								contact_name: that.info.contacts,
-								contact_phone: that.info.phone,
-								intro: that.info.introduction,
-								head_img: that.fileList1,
-								imgs_videos: that.fileList2,
-								business_img: that.fileList3,
-								id: that.info.id?that.info.id: ''
-							}
-						}, function(res) {
-							uni.hideLoading()
-							if(res.code == 1) {
-								$api.info(res.info)
-								that.state = 1
-							}
-						})
-					}else {
-						$api.info('请先阅读并同意《商家入驻规则》')
+				if(that.agree) {
+					/* if(that.info.fileList3.length > 0) {
+						for(var i=0;i<that.info.fileList1.length;i++) {
+							business_img += that.info.fileList1[i].url
+						}
+					} */
+					$api.req({
+						url: '/data/api.auth.Center/addupmerchants',
+						method: 'POST',
+						data: {
+							name: that.info.name,
+							province: that.addressObj.province,
+							city: that.addressObj.city,
+							area: that.addressObj.area,
+							address: that.addressObj.address,
+							longitude: that.addressObj.longitude,
+							latitude: that.addressObj.latitude,
+							contact_name: that.info.contacts,
+							contact_phone: that.info.phone,
+							intro: that.info.introduction,
+							head_img: that.fileList1,
+							imgs_videos: that.fileList2,
+							business_img: that.fileList3,
+							id: that.info.id?that.info.id: ''
+						}
+					}, function(res) {
 						uni.hideLoading()
-					}
-				} else {
+						// $api.info(res.info)
+						if(res.code == 1) {
+							that.state = 1
+						}
+					})
+				}else {
 					uni.hideLoading()
+					$api.info('请先阅读并同意《商家入驻规则》')
+					
 				}
 			},
 			edit() {
@@ -403,6 +475,14 @@
 				that.showProtocol = false
 				that.agree = true
 			},
+			copy(val) {
+				uni.setClipboardData({
+					data: val,
+					success: function () {
+						$api.info('复制成功')
+					}
+				});
+			},
 		},
 	}
 </script>
@@ -488,6 +568,20 @@
 					width: 610rpx;
 				}
 			}
+			.img_title {
+				font-size: 28rpx;
+				color: #444;
+				padding-left: 10rpx;
+				position: relative;
+			}
+			.img_title::before {
+				content: "*";
+				position: absolute;
+				top: 0rpx;
+				left: -5rpx;
+				color: #FF0D0D;
+				font-size: 20rpx;
+			}
 		}
 		.text {
 			font-size: 24rpx;
@@ -511,6 +605,9 @@
 			// height: 100vh;
 			background-color: #fff;
 			padding-bottom: 80rpx;
+			.u-icon {
+				margin-top: 120rpx;
+			}
 			.box1_img {
 				width: 124rpx;
 				height: 124rpx;
@@ -520,6 +617,67 @@
 				font-size: 32rpx;
 				color: #222;
 				margin-bottom: 24rpx;
+				padding-top: 40rpx;
+			}
+			.box1_text {
+				font-size: 28rpx;
+				font-family: PingFangSC-Regular, PingFang SC;
+				font-weight: 400;
+				color: #666666;
+				line-height: 40rpx;
+				text-align: center;
+			}
+			.lianjie {
+				width: 570rpx;
+				height: 68rpx;
+				margin: 46rpx 0 0;
+				background: #F7F7F7;
+				border-radius: 6rpx;
+				border: 1rpx solid #C3C3C3;
+				box-sizing: border-box;
+				padding: 18rpx 22rpx;
+				.lj_text {
+					width: 418rpx;
+					font-size: 28rpx;
+					font-family: SFPro-Regular, SFPro;
+					font-weight: 400;
+					color: #333333;
+					line-height: 32rpx;
+				}
+				
+			}
+			.text_blue {
+				font-size: 26rpx;
+				font-family: PingFangSC-Regular, PingFang SC;
+				font-weight: 400;
+				color: #506DFF;
+				line-height: 36rpx;
+			}
+			.card {
+				width: 570rpx;
+				margin: 24rpx 0 60rpx;
+				background: linear-gradient(270deg, rgba(255,248,245,0) 0%, #FFEFE7 100%);
+				box-sizing: border-box;
+				padding: 20rpx;
+				.icon {
+					width: 30rpx;
+					height: 24rpx;
+					margin-right: 14rpx;
+				}
+				.card_text {
+					font-size: 22rpx;
+					font-family: PingFangSC-Regular, PingFang SC;
+					font-weight: 400;
+					color: #444444;
+					line-height: 32rpx;
+				}
+			}
+			.label {
+				font-size: 28rpx;
+				font-family: PingFangSC-Regular, PingFang SC;
+				font-weight: 400;
+				color: #666666;
+				line-height: 40rpx;
 			}
 			.box1_subTitle {
 				margin: 12rpx 0;
@@ -535,7 +693,7 @@
 				line-height: 88rpx;
 				border-radius: 44rpx;
 				font-size: 36rpx;
-				margin-top: 122rpx;
+				margin-bottom: 60rpx;
 			}
 		}
 	}

+ 213 - 40
page_shop/pages/service/settledShipyard.vue

@@ -1,10 +1,10 @@
 <template>
 	<view class="content">
-		<view v-if="state == 0 || state == 2">
+		<view v-if="state == 0">
 			<view class="box">
 				<view class="title">船厂信息</view>	
 				<view class="cell vflex">
-					<view class="img_title">船厂头像</view>
+					<view class="img_title left">船厂头像</view>
 					<view style="width: 220rpx;height: 220rpx;padding-top: 28rpx;">
 						<u-upload :fileList="info.fileList1" @afterRead="afterRead" @delete="deletePic" :maxCount="1" name="1" multiple :previewFullImage="true" width="220rpx" height="220rpx">
 							<view class="vflex acenter jcenter upload_bg">
@@ -59,7 +59,11 @@
 					<view class="img_title">上传营业执照</view>
 					<view class="upload_img vflex acenter jcenter">
 						<u-upload :fileList="info.fileList3" @afterRead="afterRead" @delete="deletePic" :maxCount="1" name="3" multiple :previewFullImage="true" width="550rpx" height="324rpx">
-							<image src="https://ship-expert.zhousi.hdlkeji.com/common/upload-business.png" style="width: 550rpx;height: 324rpx;"></image>
+							<view class="" style="position: relative;">
+								<image src="https://ship.shipcc.cn/common/upload-business.png" style="width: 550rpx;height: 324rpx;"></image>
+								<image src="@/static/images/mine/upload_center.png" style="position: absolute;top:102rpx;left: 216rpx; width: 120rpx;height: 120rpx;"></image>
+							</view>
+							<!-- <image src="https://ship.shipcc.cn/common/upload-business.png" style="width: 550rpx;height: 324rpx;"></image> -->
 						</u-upload>
 						<view class="hflex acenter ">
 							<u-icon name="camera" color="#999999" size="16"></u-icon>
@@ -80,16 +84,49 @@
 		</view>
 		<view v-if="state == 1">
 			<view class="box1 vflex acenter jcenter">
-				<image src="https://ship-expert.zhousi.hdlkeji.com/common/wait.png" class="box1_img"></image>
+				<image src="https://ship.shipcc.cn/common/wait.png" class="box1_img"></image>
 				<view class="box1_title">审核中</view>
 				<view class="box1_subTitle">预计审核时间3个工作日</view>
 				<view class="box1_subTitle">请留意当前页面变动</view>
 				<view class="btn" @click="result">返回</view>
 			</view>
 		</view>
+		<view v-if="state == 2">
+			<view class="box1 vflex acenter jcenter">
+				<u-icon name="checkmark-circle-fill" color="#65B85D" size="62"></u-icon>
+				<view class="box1_title">您已入驻成功</view>
+				<view class="box1_text">请访问以下pc端地址进行船厂信息维护以及</view>
+				<view class="box1_text">招聘信息的发布</view>
+				<view class="hflex acenter jbetween lianjie">
+					<view class="lj_text text_hide">{{login_url}}</view>
+					<view class="text_blue"@click="copy(login_url)">复制链接</view>
+				</view>
+				<view class="hflex acenter" style="width: 570rpx;padding-top: 36rpx;">
+					<view class="label">
+						账号:
+					</view>
+					<view class="text_blue">{{phone}}</view>
+				</view>
+				<view class="hflex acenter" style="width: 570rpx;padding-top: 36rpx;">
+					<view class="label">
+						密码:
+					</view>
+					<view class="text_blue">123456</view>
+				</view>
+				<view class="card hflex">
+					<image src="@/static/images/info_img.png" mode="aspectFill" class="icon"></image>
+					<!-- <u-icon name="checkmark-circle-fill" color="#FE5201" size="12"></u-icon> -->
+					<view class="card_text">
+						该密码为系统默认密码,登录后<span style="color: #FE5201;">请及时修改密码</span>,以防账号内<span style="color: #FE5201;">数据丢失</span>。
+					</view>
+				</view>
+				
+				<view class="btn" @click="result">返回</view>
+			</view>
+		</view>
 		<view v-if="state == 3">
 			<view class="box1 vflex acenter jcenter">
-				<image src="https://ship-expert.zhousi.hdlkeji.com/common/error.png" class="box1_img"></image>
+				<image src="https://ship.shipcc.cn/common/error.png" class="box1_img"></image>
 				<view class="box1_title">审核失败</view>
 				<view class="box1_subTitle">驳回原因</view>
 				<view class="box1_subTitle">{{reason}}<span style="color: #506dff;margin-left: 8rpx;" @click="edit">立即修改></span></view>
@@ -132,6 +169,8 @@
 				fileList1: '',
 				fileList2: '',
 				fileList3: '',
+				login_url: '',
+				phone: '',
 			}
 		},
 		onLoad() {
@@ -143,6 +182,7 @@
 				var pages = getCurrentPages()
 				var prePage = pages[pages.length - 2]
 				var shipyard = prePage.$vm.user.shipyard
+				that.phone = prePage.$vm.user.phone
 				if (shipyard) {
 					that.info = {
 						name: shipyard.name,
@@ -186,6 +226,7 @@
 					}
 					that.state = shipyard.audit
 					that.reason = shipyard.why
+					that.login_url = shipyard.login_url
 				}
 			},
 			selectmap() {
@@ -354,44 +395,82 @@
 					title: '提交中',
 					mask: true
 				})
+				if(!that.info.name) {
+					$api.info('请输入船厂名称')
+					return
+				}
+				if(!that.fileList1) {
+					$api.info('请上传船厂头像')
+					return
+				}
+				if(!that.addressObj.address) {
+					$api.info('请输入船厂地址')
+					return
+				}
+				if(!that.info.contacts) {
+					$api.info('请输入联系人')
+					return
+				}
+				if(!that.info.phone) {
+					$api.info('请输入联系电话')
+					return
+				}
+				if(!that.info.num_staff) {
+					$api.info('请输入船厂人数')
+					return
+				}
+				if(!that.info.introduction) {
+					$api.info('请输入船厂简介')
+					return
+				}
+				
+				if(!that.fileList2) {
+					$api.info('请上传船厂环境')
+					return
+				}
+				if(!that.fileList3) {
+					$api.info('请上传营业执照')
+					return
+				}
+				if(!that.info.product_intro) {
+					$api.info('请输入产品简介')
+					return
+				}
 				var business_img = ""
-				console.log(that.fileList2);
-				if ($api.formCheck(that.info.name,'required')&&$api.formCheck(that.addressObj.address,'required')&&$api.formCheck(that.info.fileList1,'required')&&$api.formCheck(that.info.contacts,'required')&&$api.formCheck(that.info.phone,'phone')&&$api.formCheck(that.info.introduction,'required')) {
-					if(that.agree) {
-						$api.req({
-							url: '/data/api.auth.Center/addupshipyard',
-							method: 'POST',
-							data: {
-								name: that.info.name,
-								province: that.addressObj.province,
-								city: that.addressObj.city,
-								area: that.addressObj.area,
-								address: that.addressObj.address,
-								contact_name: that.info.contacts,
-								contact_phone: that.info.phone,
-								intro: that.info.introduction,
-								longitude: that.addressObj.longitude,
-								latitude: that.addressObj.latitude,
-								head_img: that.fileList1,
-								environment_imgs: that.fileList2,
-								business_img: that.fileList3,
-								product_intro: that.info.product_intro,
-								num_staff: that.info.num_staff,
-								id: that.info.id?that.info.id: ''
-							}
-						}, function(res) {
-							uni.hideLoading()
-							if(res.code == 1) {
-								$api.info(res.info)
-								that.state = 1
-							}
-						})
-					}else {
-						$api.info('请先阅读并同意《船厂入驻规则》')
+				
+				if(that.agree) {
+					$api.req({
+						url: '/data/api.auth.Center/addupshipyard',
+						method: 'POST',
+						data: {
+							name: that.info.name,
+							province: that.addressObj.province,
+							city: that.addressObj.city,
+							area: that.addressObj.area,
+							address: that.addressObj.address,
+							contact_name: that.info.contacts,
+							contact_phone: that.info.phone,
+							intro: that.info.introduction,
+							longitude: that.addressObj.longitude,
+							latitude: that.addressObj.latitude,
+							head_img: that.fileList1,
+							environment_imgs: that.fileList2,
+							business_img: that.fileList3,
+							product_intro: that.info.product_intro,
+							num_staff: that.info.num_staff,
+							id: that.info.id?that.info.id: ''
+						}
+					}, function(res) {
 						uni.hideLoading()
-					}
-				} else {
+						// $api.info(res.info)
+						if(res.code == 1) {
+							that.state = 1
+						}
+					})
+				}else {
 					uni.hideLoading()
+					$api.info('请先阅读并同意《船厂入驻规则》')
+					
 				}
 			},
 			edit() {
@@ -415,6 +494,14 @@
 				that.showProtocol = false
 				that.agree = true
 			},
+			copy(val) {
+				uni.setClipboardData({
+					data: val,
+					success: function () {
+						$api.info('复制成功')
+					}
+				});
+			},
 		},
 	}
 </script>
@@ -476,6 +563,14 @@
 					font-size: 28rpx;
 					color: #444;
 				}
+				.img_title::before {
+					content: "*";
+					position: absolute;
+					top: 0rpx;
+					left: -5rpx;
+					color: #FF0D0D;
+					font-size: 20rpx;
+				}
 				.upload_img {
 					width: 670rpx;
 					height: 404rpx;
@@ -499,6 +594,20 @@
 					width: 610rpx;
 				}
 			}
+			.img_title {
+				font-size: 28rpx;
+				color: #444;
+				padding-left: 10rpx;
+				position: relative;
+			}
+			.img_title::before {
+				content: "*";
+				position: absolute;
+				top: 0rpx;
+				left: -5rpx;
+				color: #FF0D0D;
+				font-size: 20rpx;
+			}
 		}
 		.text {
 			font-size: 24rpx;
@@ -522,6 +631,9 @@
 			// height: 100vh;
 			background-color: #fff;
 			padding-bottom: 80rpx;
+			.u-icon {
+				margin-top: 120rpx;
+			}
 			.box1_img {
 				width: 124rpx;
 				height: 124rpx;
@@ -531,6 +643,67 @@
 				font-size: 32rpx;
 				color: #222;
 				margin-bottom: 24rpx;
+				padding-top: 40rpx;
+			}
+			.box1_text {
+				font-size: 28rpx;
+				font-family: PingFangSC-Regular, PingFang SC;
+				font-weight: 400;
+				color: #666666;
+				line-height: 40rpx;
+				text-align: center;
+			}
+			.lianjie {
+				width: 570rpx;
+				height: 68rpx;
+				margin: 46rpx 0 0;
+				background: #F7F7F7;
+				border-radius: 6rpx;
+				border: 1rpx solid #C3C3C3;
+				box-sizing: border-box;
+				padding: 18rpx 22rpx;
+				.lj_text {
+					width: 418rpx;
+					font-size: 28rpx;
+					font-family: SFPro-Regular, SFPro;
+					font-weight: 400;
+					color: #333333;
+					line-height: 32rpx;
+				}
+				
+			}
+			.text_blue {
+				font-size: 26rpx;
+				font-family: PingFangSC-Regular, PingFang SC;
+				font-weight: 400;
+				color: #506DFF;
+				line-height: 36rpx;
+			}
+			.card {
+				width: 570rpx;
+				margin: 24rpx 0 60rpx;
+				background: linear-gradient(270deg, rgba(255,248,245,0) 0%, #FFEFE7 100%);
+				box-sizing: border-box;
+				padding: 20rpx;
+				.icon {
+					width: 30rpx;
+					height: 24rpx;
+					margin-right: 14rpx;
+				}
+				.card_text {
+					font-size: 22rpx;
+					font-family: PingFangSC-Regular, PingFang SC;
+					font-weight: 400;
+					color: #444444;
+					line-height: 32rpx;
+				}
+			}
+			.label {
+				font-size: 28rpx;
+				font-family: PingFangSC-Regular, PingFang SC;
+				font-weight: 400;
+				color: #666666;
+				line-height: 40rpx;
 			}
 			.box1_subTitle {
 				margin: 12rpx 0;

+ 3 - 3
page_shop/pages/setting/about.vue

@@ -2,7 +2,7 @@
 	<view class="content">
 		<view class="box vflex acenter jcenter">
 			<view class="logo hflex acenter jcenter">
-				<image src="/static/images/index/logo.png" class="logo_image"></image>
+				<image src="/static/logo.png" class="logo_image"></image>
 			</view>
 			<view class="text_style1">船百知</view>
 			<view class="text_style2">1.0.0</view>
@@ -43,8 +43,8 @@
 				background-color: #eef1ff;
 				border-radius: 40rpx;
 				.logo_image {
-					width: 136rpx;
-					height: 52rpx;
+					width: 156rpx;
+					height: 156rpx;
 				}
 			}
 			.text_style1 {

+ 2 - 2
page_shop/pages/setting/accountinfo.vue

@@ -5,7 +5,7 @@
 				<view class="left">手机号码</view>
 				<view class="hflex acenter">
 					<view class="right">{{user.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">
@@ -72,7 +72,7 @@
 				$api.jump('/page_shop/pages/setting/editpwd')
 			},
 			cancellation() {
-				that.show = true
+				$api.jump('/page_shop/pages/setting/log_off')
 			},
 			close() {
 				that.show = false

+ 2 - 1
page_shop/pages/setting/bindeMail.vue

@@ -71,6 +71,7 @@
 				}, function(res) {
 					if(res.code == 1) {
 						$api.info(res.info)
+						$api.jump(1,-1)
 						if(!that.username) {
 							return
 						}
@@ -79,7 +80,7 @@
 						}
 						uni.WebIM.conn.updateOwnUserInfo(options).then((res) => {
 						    console.log(res)
-							$api.jump(1,-1)
+							
 						})
 						
 					}

+ 5 - 1
page_shop/pages/setting/editpwd.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="newPwd2" 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: '',
+				newPwd2: '',
 			}
 		},
 		onLoad() {
@@ -31,12 +33,14 @@
 							method: 'POST',
 							data: {
 								password: that.oldPwd,
-								newpassword: that.newPwd
+								newpassword: that.newPwd,
+								again_new_password: that.newPwd2
 							}
 						}, function(res) {
 							if(res.code == 1) {
 								console.log(res);
 								$api.info('修改成功')
+								$api.jump(-1)
 							}
 						})
 					} else {

+ 319 - 0
page_shop/pages/setting/log_off.vue

@@ -0,0 +1,319 @@
+<template>
+	<view class="web_box">
+		<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> -->
+			<view class="list">
+				<view class="item" v-for="(item,index) in list" :key="index">
+					<u-parse :content="item"></u-parse>
+				</view>
+			</view>
+			<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>
+				<view class="next_btn" @click="next">下一步</view>
+			</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.Login/logout_prompt',
+					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: 7
+						}
+					}, 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.auth.Center/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>
+	.web_box::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 {
+						font-size: 28rpx !important;
+						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>

+ 1 - 1
page_shop/pages/setting/personal.vue

@@ -123,7 +123,7 @@
 				if(that.user.is_auth == 1) {
 					$api.jump('/page_shop/pages/setting/realname')
 				} else {
-					url = '/page_shop/pages/setting/webview?url=' + encodeURIComponent('https://ship-expert.zhousi.hdlkeji.com/h5/#/?token=' + uni.getStorageSync('token').token)
+					url = '/page_shop/pages/setting/webview?url=' + encodeURIComponent('https://ship.shipcc.cn/h5/#/?token=' + uni.getStorageSync('token').token)
 				}
 			}
 		},

+ 28 - 6
page_shop/pages/setting/realname.vue

@@ -2,11 +2,14 @@
 	<view class="content">
 		<view class="">
 			<view class="box">
-				<view class="vflex jcenter box_top">
-					<view class="text_style1">{{name}}</view>
-					<view class="text_style1">{{idNumber}}</view>
+				<image src="@/static/images/mine/real_bg.png" mode="aspectFill" class="box_bg"></image>
+				<view class="text">
+					<view class="vflex jcenter box_top">
+						<view class="text_style1">{{name}}</view>
+						<view class="text_style1">{{idNumber}}</view>
+					</view>
+					<view class="text_style2">个人隐私信息安全保障中</view>
 				</view>
-				<view class="text_style2">个人隐私信息安全保障中</view>
 			</view>
 		</view>
 		<!-- <view class="" v-else>
@@ -140,10 +143,27 @@
 		}
 		.box {
 			margin-top: 40rpx;
-			background: url('/static/images/mine/real-bg.png') no-repeat;
-			background-size: 100%;
+			// background: url('../../../static/images/mine/real_bg.png') no-repeat;
+			// background-size: 100%;
 			width: 100%;
 			height: 268rpx;
+			position: relative;
+			.box_bg {
+				position: absolute;
+				top: 0;
+				left: 0;
+				width: 100%;
+				height: 268rpx;
+				// z-index: 1;
+			}
+			.text {
+				position: absolute;
+				top: 0;
+				left: 0;
+				width: 100%;
+				height: 100%;
+				z-index: 99;
+			}
 			.box_top {
 				width: 100%;
 				box-sizing: border-box;
@@ -153,6 +173,7 @@
 				font-size: 36rpx;
 				color: #fff;
 				margin-top: 18rpx;
+				z-index: 99;
 			}
 			.text_style2 {
 				width: 100%;
@@ -160,6 +181,7 @@
 				padding: 0 0 0 60rpx;
 				font-size: 20rpx;
 				color: #fff;
+				z-index: 99;
 			}
 		}
 	}

+ 2 - 2
page_shop/pages/wallet/wallet.vue

@@ -19,7 +19,7 @@
 						<view class="text_style1">{{item.title}}</view>
 						<view class="text_style2">{{item.create_at}}</view>
 					</view>
-					<view class="text_style3">-{{item.change}}</view>
+					<view class="text_style3">{{item.pm == 1 ? '+' : '-'}}{{item.change}}</view>
 				</view>
 			</block>
 		</view>
@@ -79,7 +79,7 @@
 			height: 284rpx;
 			box-sizing: border-box;
 			padding: 25rpx 0;
-			background: url('https://ship-expert.zhousi.hdlkeji.com/common/bg1.png') no-repeat;
+			background: url('https://ship.shipcc.cn/common/bg1.png') no-repeat;
 			background-size: 100%;
 			.text1 {
 				box-sizing: border-box;

+ 19 - 2
pages.json

@@ -307,6 +307,14 @@
 						"navigationBarTitleText": "规则",
 						"navigationBarBackgroundColor": "#ffffff"
 					}
+				},
+				{
+					"path" : "pages/index/ggDetail",
+					"style" : 
+					{
+						"navigationBarTitleText" : "",
+						"enablePullDownRefresh" : false
+					}
 				}
 				
             ]
@@ -381,7 +389,8 @@
 					"path": "pages/mine/mine",
 					"style": {
 						"navigationBarTitleText": "我的",
-						"navigationStyle": "custom" // 隐藏系统导航栏
+						"navigationStyle": "custom", // 隐藏系统导航栏
+						"enablePullDownRefresh": true
 					}
 				},
 				{
@@ -499,6 +508,13 @@
 					}
 				},
 				{
+					"path": "pages/setting/log_off",
+					"style": {
+						"navigationBarTitleText": "注销账户",
+						"navigationBarBackgroundColor": "#fff"
+					}
+				},
+				{
 					"path": "pages/setting/bindeMail",
 					"style": {
 						"navigationBarTitleText": "绑定邮箱",
@@ -796,5 +812,6 @@
 		"onLocationChange",
 		"startLocationUpdateBackground",
 		"chooseAddress"
-	]
+	],
+	"__usePrivacyCheck__": true
 }

+ 5 - 5
pages/login/code_login.vue

@@ -11,8 +11,8 @@
 			</u-input>
 		</view>
 		<view class="hflex acenter">
-			<u-checkbox-group @change="checkboxChange">
-				<u-checkbox v-model="agree" shape="circle"></u-checkbox>
+			<u-checkbox-group @change="checkboxChange" iconSize="20">
+				<u-checkbox v-model="agree" shape="circle" iconSize="20"></u-checkbox>
 			</u-checkbox-group>
 			<view class="text">阅读并同意<span class="read" @click="open(0)">《用户服务协议》</span>、<span class="read" @click="open(1)">《个人信息保护政策》</span></view>
 		</view>
@@ -144,8 +144,8 @@
 														}, function(res) {
 															console.log(res)
 															if(res.code == 1) {
-																wx.setStorageSync("token",res.data.token)
-																wx.setStorageSync("id",res.data.id)
+																uni.setStorageSync("token",res.data.token)
+																uni.setStorageSync("id",res.data.id)
 																// var options = {
 																//   user: res.data.id.toString(),
 																//   pwd: '123456',
@@ -165,7 +165,7 @@
 																	appKey: uni.WebIM.config.appkey
 																  }).then((res2) => {
 																    console.log("login success",res2);
-																    wx.setStorageSync("myUsername",res.data.huanxinID)
+																    uni.setStorageSync("myUsername",res.data.huanxinID)
 																  }).catch((reason) => {
 																    console.log("login fail", reason);
 																  });

+ 80 - 72
pages/login/password_login.vue

@@ -3,20 +3,27 @@
 		<view class="title">密码登录</view>
 		<view class="form vflex">
 			<u-input v-model="userInfo.name" placeholder="用户名/手机号"></u-input>
-			<u-input :type="pwd_type" v-model="userInfo.password" placeholder="请输入密码">
+			<u-input type="password"  v-if="pwd_type" v-model="userInfo.password" placeholder="请输入密码">
 				<template slot="suffix">
-					<view @click="show_pwd" v-if="pwd_type == 'password'">
+					<view @click="show_pwd" class="icon_box">
 						<image src="/static/images/login/biyanjing.png" class="pwd_icon"></image>
 					</view>
-					<view @click="show_pwd" v-if="pwd_type == 'text'">
+					<!-- <view @click="show_pwd" v-else class="icon_box">
+						<image src="/static/images/login/yanjing.png" class="pwd_icon"></image>
+					</view> -->
+				</template>
+			</u-input>
+			<u-input type="text" v-else v-model="userInfo.password" placeholder="请输入密码">
+				<template slot="suffix">
+					<view @click="show_pwd" class="icon_box">
 						<image src="/static/images/login/yanjing.png" class="pwd_icon"></image>
 					</view>
 				</template>
 			</u-input>
 		</view>
 		<view class="hflex acenter">
-			<u-checkbox-group @change="checkboxChange">
-				<u-checkbox v-model="agree" shape="circle"></u-checkbox>
+			<u-checkbox-group @change="checkboxChange" iconSize="20">
+				<u-checkbox v-model="agree" shape="circle"  iconSize="20"></u-checkbox>
 			</u-checkbox-group>
 			<view class="text">阅读并同意<span class="read" @click="open(0)">《用户服务协议》</span>、<span class="read" @click="open(1)">《个人信息保护政策》</span></view>
 		</view>
@@ -47,7 +54,7 @@
 					name: '',
 					password: ''
 				},
-				pwd_type: 'password',
+				pwd_type: true,
 				agree: false,
 				showProtocol: false,
 				protocolTitle: '',
@@ -60,10 +67,10 @@
 		methods: {
 			// 查看密码
 			show_pwd() {
-				if(that.pwd_type == 'text') {
-					that.pwd_type = 'password'
+				if(that.pwd_type) {
+					that.pwd_type = false
 				} else {
-					that.pwd_type = 'text'
+					that.pwd_type = true
 				}
 			},
 			// 阅读并同意
@@ -92,70 +99,68 @@
 			// },
 			// 登录
 			login() {
-				if ($api.formCheck(that.userInfo.name,"required") && $api.formCheck(that.userInfo.password, "password")) {
-					if (!that.agree) {
-						$api.info('请先阅读并同意用户协议和隐私协议')
-					} else {
-						wx.getSetting({
-							success (res){
-						        if (res.authSetting['scope.userInfo']) {
-						          // 已经授权,可以直接调用 getUserInfo 获取头像昵称
-									wx.login({
-										success: function(res) {
-											console.log("getUserInfo:",res);
-											uni.request({
-												url: $api.config.baseUrl + '/data/api.Login/getOpenid',
-												method: 'POST',
-												data: {
-													code: res.code
-												},
-												header: {
-													'content-type': 'application/json',
-													'api-name': 'wxapp'
-												},
-												success: (res) => {
-													if(res.data.code == 1) {
-														$api.req({
-															url: '/data/api.Login/in',
-															method: 'POST',
-															data: {
-																phone: that.userInfo.name,
-																password: that.userInfo.password,
-																openid: res.data.data.openid
-															}
-														}, function(res) {
-															console.log(res)
-															if(res.code == 1) {
-																wx.setStorageSync("token",res.data.token)
-																wx.setStorageSync("id",res.data.id)
-																var options = { 
-																  user: res.data.huanxinID,
-																  pwd: '12345678',
-																  appKey: uni.WebIM.config.appkey,
-																  success: function (res2) {
-																	wx.setStorageSync("myUsername",res.data.huanxinID)
-																  },
-																  error: function(){
-																  }
-																};
-																uni.WebIM.conn.open(options);
-																$api.jump('/pages/tabbar/mine/mine',3)
-															} else {
-																$api.info(res.info)
-															}
-														})
-													}
+				if (!that.agree) {
+					$api.info('请先阅读并同意用户协议和隐私协议')
+				} else {
+					wx.getSetting({
+						success (res){
+					        if (res.authSetting['scope.userInfo']) {
+					          // 已经授权,可以直接调用 getUserInfo 获取头像昵称
+								wx.login({
+									success: function(res) {
+										console.log("getUserInfo:",res);
+										uni.request({
+											url: $api.config.baseUrl + '/data/api.Login/getOpenid',
+											method: 'POST',
+											data: {
+												code: res.code
+											},
+											header: {
+												'content-type': 'application/json',
+												'api-name': 'wxapp'
+											},
+											success: (res) => {
+												if(res.data.code == 1) {
+													$api.req({
+														url: '/data/api.Login/in',
+														method: 'POST',
+														data: {
+															phone: that.userInfo.name,
+															password: that.userInfo.password,
+															openid: res.data.data.openid
+														}
+													}, function(res) {
+														console.log(res)
+														if(res.code == 1) {
+															uni.setStorageSync("token",res.data.token)
+															uni.setStorageSync("id",res.data.id)
+															var options = { 
+															  user: res.data.huanxinID,
+															  pwd: '12345678',
+															  appKey: uni.WebIM.config.appkey,
+															  success: function (res2) {
+																uni.setStorageSync("myUsername",res.data.huanxinID)
+															  },
+															  error: function(){
+															  }
+															};
+															uni.WebIM.conn.open(options);
+															$api.jump('/pages/tabbar/mine/mine',3)
+														} else {
+															$api.info(res.info)
+														}
+													})
 												}
-												
-											})
-										  
-										}
-									})
-						        }
-							}
-						})
-						
-					}
+											}
+											
+										})
+									  
+									}
+								})
+					        }
+						}
+					})
+					
 				}
 			},
 			// 已阅读
@@ -195,6 +200,9 @@
 				padding: 30rpx 48rpx !important;
 				margin: 26rpx 0;
 			}
+			.icon_box {
+				
+			}
 			.pwd_icon {
 				width: 40rpx;
 				height: 40rpx;

+ 63 - 37
pages/login/register.vue

@@ -131,44 +131,70 @@
 			},
 			// 提交
 			submit() {
-				if ($api.formCheck(that.userInfo.name,"required") && $api.formCheck(that.userInfo.phone,"phone") && $api.formCheck(that.userInfo.code, "code6") && $api.formCheck(that.userInfo.password,"password")) {
-					if (!that.agree) {
-						$api.info('请先阅读并同意用户协议和隐私协议')
-					} else {
-						$api.req({
-							url: '/data/api.Login/register',
-							method: 'POST',
-							data: {
-								nickname: that.userInfo.name,
-								phone: that.userInfo.phone,
-								verify: that.userInfo.code,
-								password: that.userInfo.password,
-							}
-						}, function(res) {
-							console.log(res)
-							if(res.code == 1) {
-								wx.setStorageSync("token",res.data.token)
-								wx.setStorageSync("id",res.data.id)
-								$api.jump('/pages/tabbar/mine/mine',3)
-								// uni.WebIM.conn.registerUser({
-								// 	/** 用户 ID。 */
-								// 	username: res.data.id,
-								// 	/** 密码。 */
-								// 	password: '123456',
-								// 	/** 显示昵称。用于移动端推送的时候通知栏显示。 */
-								// 	nickname:res.data.nickname,
-								// 	appKey: uni.WebIM.config.appkey
-								// }).then((res2) => {
-								//   console.log(res2)
-								  
-								//   $api.jump('/pages/tabbar/mine/mine',3)
-								// })
-								
+				if (!that.agree) {
+					$api.info('请先阅读并同意用户协议和隐私协议')
+				} else {
+					wx.getSetting({
+						success(res) {
+							if (res.authSetting['scope.userInfo']) {
+								wx.login({
+									success: function(res) {
+										uni.request({
+											url: $api.config.baseUrl + '/data/api.Login/getOpenid',
+											method: 'POST',
+											data: {
+												code: res.code
+											},
+											header: {
+												'content-type': 'application/json',
+												'api-name': 'wxapp'
+											},
+											success:(res)=> {
+												console.log(res);
+												if(res.data.code == 1) {
+													$api.req({
+														url: '/data/api.Login/register',
+														method: 'POST',
+														data: {
+															nickname: that.userInfo.name,
+															phone: that.userInfo.phone,
+															verify: that.userInfo.code,
+															password: that.userInfo.password,
+															openid1: res.data.data.openid
+														}
+													}, function(res) {
+														console.log(res)
+														if(res.code == 1) {
+															wx.setStorageSync("token",res.data.token)
+															wx.setStorageSync("id",res.data.id)
+															$api.jump('/pages/tabbar/index/index',3)
+															// uni.WebIM.conn.registerUser({
+															// 	/** 用户 ID。 */
+															// 	username: res.data.id,
+															// 	/** 密码。 */
+															// 	password: '123456',
+															// 	/** 显示昵称。用于移动端推送的时候通知栏显示。 */
+															// 	nickname:res.data.nickname,
+															// 	appKey: uni.WebIM.config.appkey
+															// }).then((res2) => {
+															//   console.log(res2)
+															  
+															//   $api.jump('/pages/tabbar/mine/mine',3)
+															// })
+															
+														}
+													})
+												}
+											}
+										})
+									}
+								})
 							}
-						})
-						// wx.setStorageSync("token",true)
-						// $api.jump('/pages/tabbar/mine/mine',3)
-					}
+						}
+					})
+					
+					// wx.setStorageSync("token",true)
+					// $api.jump('/pages/tabbar/mine/mine',3)
 				}
 			}
 		},

+ 63 - 23
pages/tabbar/index/index.vue

@@ -4,16 +4,16 @@
 			<u-navbar leftText="" height="44px" :bgColor="bgColor" :placeholder="true">
 				<view class="navbar_left hflex acenter" slot="left">
 					<image src="../../../static/images/index/logo.png" style="width: 160rpx;height: 60rpx;"></image>
-					<view class="dian"></view>
-					<view class="hflex acenter" @click="toWeather">
+					<view class="dian" v-if="city != '全国'"></view>
+					<view class="hflex acenter" v-if="city && city != '全国'">
 						<image :src="weather.icon" style="width: 32rpx;height: 32rpx;margin-right: 8rpx;"></image>
 						<view class="text_style1">{{weather.min}}&deg;~{{weather.max}}&deg;</view>
 					</view>
 				</view>
 			</u-navbar>
-			<view class="search hflex acenter">
+			<view class="search hflex acenter" :class="scrollHeight > 0 ? 'bg_white' : ''">
 				<view class="hflex acenter" @click="changeCity">
-					<view class="city">{{city}}</view>
+					<view class="city">{{city ? city : '全国'}}</view>
 					<u-icon name="arrow-down-fill" color="#000" size="10"></u-icon>
 				</view>
 				<u-search v-model="serach_value" borderColor="#506dff" placeholder="搜索关键词" shape="round" :showAction="false"
@@ -42,20 +42,21 @@
 			<image :src="class_img4" mode="widthFix" style="width: 220rpx;" @click="toDetail(4)"></image>
 			<image :src="class_img5" mode="widthFix" style="width: 220rpx;" @click="toDetail(5)"></image>
 		</view>
-		<view class="boxs">
-			<u-tabs :list="tabs" @click="changeTaaba"
-				:scrollable = "true"
+		<view class="boxs fixed" :style="'top:' + height + 'px'">
+			<u-tabs :list="tabs" @click="changeTaaba" :scrollable = "true"
 				:activeStyle="{
+					fontSize: '30rpx',
 					color: '#000',
 				}" :inactiveStyle="{
+					fontSize: '30rpx',
 					color: '#888888'
 				}"></u-tabs>
 		</view>
-		<view class="boxs" v-if="pageList.length > 0">
+		<view class="boxs" style="margin: 0;" v-if="pageList.length > 0">
 			<news-module :pageList="pageList" @toDetail="toNews"></news-module>
 		</view>
 		<!-- <view class="boxs" v-else>
-			<u-empty icon="https://ship-expert.zhousi.hdlkeji.com/common/zhan.png" text="暂时没有数据哦">
+			<u-empty icon="https://ship.shipcc.cn/common/zhan.png" text="暂时没有数据哦">
 		</view> -->
 	</view>
 </template>
@@ -94,17 +95,26 @@
 				page: 1,
 				total: 1,
 				cid: '',
+				scrollHeight: 0,
+				height: 0
 			}
 		},
-		async onLoad() {
+		onLoad() {
 			that = this
-			await this.getCity()
-			that.getCate()
-			that.getBanner()
+			let res = uni.getSystemInfoSync()
+			that.height = res.statusBarHeight + 92 
+			console.log('getSystemInfoSync',res);
+			// this.getCity()
+			// that.getCate()
+			// that.getBanner()
 			// that.HXlogin()
 		},
 		onShow() {
+			that.exad = []
+			that.getCity()
+			that.getCate()
 			that.getNotice()
+			that.getBanner()
 		},
 		onPullDownRefresh() {
 			that.getNotice()
@@ -116,6 +126,7 @@
 			}
 		},
 		onPageScroll(e) {
+			that.scrollHeight = e.scrollTop
 			if(e.scrollTop != 0) {
 				that.bgColor = "#fff"
 			} else {
@@ -155,8 +166,10 @@
 			},
 			// 获取当前位置
 			getCity() {
-				that.city = uni.getStorageSync('city')
+				that.city = uni.getStorageSync('city') ? uni.getStorageSync('city') : '全国'
+				console.log(that.city);
 				if(!that.city) {
+					// that.city = '全国'
 					return new Promise((resolve, reject) => {
 						app.getLoca().then(res=> {
 							console.log('getLoaction',res);
@@ -173,6 +186,9 @@
 			},
 			// 获取当前城市天气
 			getWeather() {
+				if(that.city == '全国') {
+					return
+				}
 				uni.request({
 					url: 'https://geoapi.qweather.com/v2/city/lookup',
 					data: {
@@ -239,6 +255,7 @@
 				$api.jump('/page_index/pages/index/noticeList')
 			},
 			toDetail(index) {
+				
 				var url = ''
 				switch(index) {
 					case 1: 
@@ -257,14 +274,16 @@
 						url = '/page_index/pages/resources/resources';
 						break;
 				}
-				console.log(url);
+				
 				$api.jump(url)
 			},
 			// 切换tabs
 			changeTaaba(e) {
+				
 				that.page = 1
 				that.cid = e.id
-				that.pageList = []
+				// that.pageList = []
+				that.exad = []
 				that.getList(that.cid)
 			},
 			getCate() {
@@ -295,6 +314,9 @@
 							}else {
 								res.data.data[i].images = res.data.data[i].images.split('|')
 							}
+							if(res.data.data[i].ctype == 2) {
+								that.exad += res.data.data[i].id+ ','
+							}
 						}
 						if(that.page == 1) {
 							that.pageList = res.data.data
@@ -310,6 +332,8 @@
 			toNews(index) {
 				if(that.pageList[index].ctype == 1) {
 					$api.jump('/page_index/pages/index/newDetail?id=' + that.pageList[index].id)
+				} else if(that.pageList[index].ctype == 2){
+					$api.jump('/page_index/pages/index/ggDetail?id=' + that.pageList[index].id)
 				}
 			},
 			onReachBottom() {
@@ -330,10 +354,11 @@
 		// padding: 0 30rpx;
 		background: #fff;
 		.content_top {
+			position: relative;
 			background: url('../../../static/images/index/bg.png') no-repeat;
 			background-size: 100%;
 			box-sizing: border-box;
-			padding: 0 30rpx;
+			padding: 0 30rpx 120rpx;
 			.navbar_left {
 				
 				.dian {
@@ -345,10 +370,12 @@
 				}
 			}
 			.search {
-				width: 100%;
+				position: fixed;
+				width: 691rpx;
 				box-sizing: border-box;
-				padding: 20rpx;
-				margin-top: 36rpx;
+				z-index: 999;
+				padding: 20rpx 0;
+				/* margin-top: 36rpx; */
 				.city {
 					color: #222222;
 					font-size: 32rpx;
@@ -364,19 +391,23 @@
 			}
 		}
 		.swiper {
+			
 			width: 690rpx;
 			// box-sizing: border-box;
 			// padding: 0 30rpx;
-			height: 340rpx;
-			margin: 24rpx 30rpx 20rpx;
+			height: 170px;
+			margin: 0rpx auto 20rpx;
 			border-radius: 20rpx;
+			.u-swiper__wrapper__item__wrapper {
+				height: 170px;
+			}
 		}
 		.notice {
 			width: 690rpx;
 			box-sizing: border-box;
 			padding: 15rpx 30rpx 15rpx 0;
 			background-color: #f3f7ff;
-			margin: 0 20rpx 0;
+			margin: 0 30rpx 0;
 			border-radius: 20rpx;
 			
 			.u-notice-bar {
@@ -407,6 +438,15 @@
 			padding: 0 30rpx;
 			margin: 24rpx 0 0;
 		}
+		.fixed {
+			background-color: #fff;
+			position: sticky;
+			top: 256rpx;
+			z-index: 99;
+		}
+		.bg_white {
+			background-color: #fff !important;
+		}
 		.text1 {
 			font-size: 25rpx;
 			color: #8f8f90;

+ 84 - 39
pages/tabbar/mine/mine.vue

@@ -3,7 +3,7 @@
 		<view class="hflex acenter jbetween user">
 			<view class="hflex acenter" v-if="!login">
 				<view class="avatar_box">
-					<image src="https://ship-expert.zhousi.hdlkeji.com/common/avatar1.png" mode="aspectFill" class="avatar"></image>
+					<image src="https://ship.shipcc.cn/common/avatar1.png" mode="aspectFill" class="avatar"></image>
 				</view>
 				<view class="hflex acenter" @click="toLogin">
 					<view class="text_style1">立即登录</view>
@@ -12,7 +12,7 @@
 			</view>
 			<view class="hflex acenter" v-else>
 				<view class="avatar_box">
-					<image :src="user.headimg" mode="widthFix" class="avatar"></image>
+					<image :src="user.headimg" mode="aspectFill" class="avatar"></image>
 					<view class="auth">{{user.is_auth?'已实名':'未实名'}}</view>
 				</view>
 				<view class="vflex">
@@ -69,7 +69,12 @@
 			<view class=" hflex acenter jbetween">
 				<block v-for="(item,index) in order" :key="index">
 					<view class="list_item vflex acenter" @click="toOrder(item.url)">
-						<image :src="item.img" mode="widthFix" style="width: 56rpx;margin-bottom: 20rpx;"></image>
+						<view class="img_box">
+							<image :src="item.img" mode="widthFix" style="width: 56rpx;margin-bottom: 20rpx;"></image>
+							<view class="img_num" v-if="item.num > 0">
+								{{item.num}}
+							</view>
+						</view>
 						<view>{{item.text}}</view>
 					</view>
 				</block>
@@ -101,74 +106,79 @@
 				order: [
 					{
 						id: 1,
-						img: 'https://ship-expert.zhousi.hdlkeji.com/common/order1.png',
+						img: 'https://ship.shipcc.cn/common/order1.png',
 						text: '生产订单',
-						url: '/page_shop/pages/order/production'
+						url: '/page_shop/pages/order/production',
+						num: 0,
 					},
 					{
 						id: 2,
-						img: 'https://ship-expert.zhousi.hdlkeji.com/common/order2.png',
+						img: 'https://ship.shipcc.cn/common/order2.png',
 						text: '外协订单',
-						url: '/page_shop/pages/order/outsourcing'
+						url: '/page_shop/pages/order/outsourcing',
+						num: 0,
 					},
 					{
 						id: 3,
-						img: 'https://ship-expert.zhousi.hdlkeji.com/common/order3.png',
+						img: 'https://ship.shipcc.cn/common/order3.png',
 						text: '采购订单',
-						url: '/page_shop/pages/order/purchase'
+						url: '/page_shop/pages/order/purchase',
+						num: 0,
 					},
 					{
 						id: 4,
-						img: 'https://ship-expert.zhousi.hdlkeji.com/common/order4.png',
+						img: 'https://ship.shipcc.cn/common/order4.png',
 						text: '海运订单',
+						num: 0,
 						url: '/page_shop/pages/order/oceanShipping'
 					},
 					{
 						id: 5,
-						img: 'https://ship-expert.zhousi.hdlkeji.com/common/order5.png',
+						img: 'https://ship.shipcc.cn/common/order5.png',
 						text: '维修订单',
+						num: 0,
 						url: '/page_shop/pages/order/repair'
 					},
 				],
 				serviceList: [
 					{
-						img: 'https://ship-expert.zhousi.hdlkeji.com/common/service1.png',
+						img: 'https://ship.shipcc.cn/common/service1.png',
 						text: '加入人才库',
 						url: '/page_shop/pages/service/joinPerson'
 					},
 					{
-						img: 'https://ship-expert.zhousi.hdlkeji.com/common/service2.png',
+						img: 'https://ship.shipcc.cn/common/service2.png',
 						text: '成为维修工',
 						url: '/page_shop/pages/service/applyMaintenance'
 					},
 					{
 						url: '/page_shop/pages/service/settledShipyard',
-						img: 'https://ship-expert.zhousi.hdlkeji.com/common/service3.png',
+						img: 'https://ship.shipcc.cn/common/service3.png',
 						text: '入驻船厂',
 					},
 					{
 						url: '/page_shop/pages/service/settledMerchants',
-						img: 'https://ship-expert.zhousi.hdlkeji.com/common/service4.png',
+						img: 'https://ship.shipcc.cn/common/service4.png',
 						text: '入驻商家',
 					},
 					{
 						url: '/page_shop/pages/setting/realname',
-						img: 'https://ship-expert.zhousi.hdlkeji.com/common/service5.png',
+						img: 'https://ship.shipcc.cn/common/service5.png',
 						text: '实名认证',
 					},
-					{
+					/* {
 						url: '/page_shop/pages/service/release',
-						img: 'https://ship-expert.zhousi.hdlkeji.com/common/service6.png',
+						img: 'https://ship.shipcc.cn/common/service6.png',
 						text: '我的发布',
-					},
+					}, */
 					{
 						url: '/page_shop/pages/service/demand',
-						img: 'https://ship-expert.zhousi.hdlkeji.com/common/service7.png',
+						img: 'https://ship.shipcc.cn/common/service7.png',
 						text: '我的需求',
 					},
 					{
 						url: '/page_shop/pages/service/feed/feedback',
-						img: 'https://ship-expert.zhousi.hdlkeji.com/common/service8.png',
+						img: 'https://ship.shipcc.cn/common/service8.png',
 						text: '意见反馈',
 					},
 				],
@@ -181,13 +191,13 @@
 		},
 		onShow() {
 			that.isLogin()
-			that.getUser()
-			that.getNum()
+			
 		},
 		onPullDownRefresh() {
 			that.isLogin()
-			that.getUser()
+			/* that.getUser()
 			that.getNum()
+			that.getTotal() */
 		},
 		methods: {
 			// 判断登录
@@ -195,6 +205,9 @@
 				var token = uni.getStorageSync("token")
 				if (token) {
 					that.login = true
+					that.getUser()
+					that.getNum()
+					that.getTotal()
 				} else {
 					that.login = false
 					that.user = {}
@@ -211,6 +224,7 @@
 						uni.setStorageSync('maintenance', false)
 						uni.setStorageSync('myUsername', res.data.huanxinID)
 						uni.setStorageSync('openid1', res.data.openid1)
+						uni.setStorageSync('phone', res.data.phone)
 						if(that.user.maintenance) {
 							if(that.user.maintenance.audit == 2) {
 								uni.setStorageSync('maintenance', true)
@@ -240,9 +254,24 @@
 					}
 				})
 			},
+			getTotal() {
+				$api.req({
+					url: '/data/api.auth.UserPurchase/listNum',
+					method: 'POST'
+				}, function(res) {
+					if(res.code == 1) {
+						console.log(res);
+						that.order[0].num = res.data.shengchan
+						that.order[1].num = res.data.waixie
+						that.order[2].num = res.data.caigou
+						that.order[3].num = res.data.haiwai
+						that.order[4].num = res.data.weixiu
+					}
+				})
+			},
 			// 去登陆
 			toLogin() {
-				$api.jump('/pages/login/code_login')
+				$api.jump('/pages/login/password_login')
 			},
 			// 去设置
 			toSetting() {
@@ -254,7 +283,7 @@
 					$api.jump('/page_shop/pages/message/message')
 				} else {
 					$api.info('请先登录')
-					$api.jump('/pages/login/code_login')
+					$api.jump('/pages/login/password_login')
 				}
 			},
 			// 去会员中心
@@ -263,7 +292,7 @@
 					$api.jump('/page_shop/pages/member/index')
 				} else {
 					$api.info('请先登录')
-					$api.jump('/pages/login/code_login')
+					$api.jump('/pages/login/password_login')
 				}
 				
 			},
@@ -273,7 +302,7 @@
 					$api.jump('/page_shop/pages/wallet/wallet')
 				} else {
 					$api.info('请先登录')
-					$api.jump('/pages/login/code_login')
+					$api.jump('/pages/login/password_login')
 				}
 				
 			},
@@ -283,7 +312,7 @@
 					$api.jump('/page_shop/pages/collect/collect')
 				} else {
 					$api.info('请先登录')
-					$api.jump('/pages/login/code_login')
+					$api.jump('/pages/login/password_login')
 				}
 			},
 			// 我的订单
@@ -292,7 +321,7 @@
 					$api.jump(url)
 				} else {
 					$api.info('请先登录')
-					$api.jump('/pages/login/code_login')
+					$api.jump('/pages/login/password_login')
 				}
 			},
 			// 我的服务
@@ -316,7 +345,7 @@
 							if(that.user.is_auth == 1) {
 								url = that.serviceList[index].url
 							} else {
-								url = '/page_shop/pages/setting/webview?url=' + encodeURIComponent('https://ship-expert.zhousi.hdlkeji.com/aliH5/h5/#/?token=' + uni.getStorageSync('token').token)
+								url = '/page_shop/pages/setting/webview?url=' + encodeURIComponent('https://ship.shipcc.cn/aliH5/h5/#/?token=' + uni.getStorageSync('token').token)
 							}
 						 break;
 						case 5:
@@ -333,7 +362,7 @@
 					$api.jump(url)
 				} else {
 					$api.info('请先登录')
-					$api.jump('/pages/login/code_login')
+					$api.jump('/pages/login/password_login')
 				}
 			}
 		},
@@ -342,7 +371,7 @@
 
 <style lang="scss" scoped>
 	.content {
-		background:url('https://ship-expert.zhousi.hdlkeji.com/common/bg.png') no-repeat;
+		background:url('https://ship.shipcc.cn/common/bg.png') no-repeat;
 		background-size: 100%;
 		padding: 0 30rpx;
 		.user {
@@ -350,14 +379,14 @@
 			width: 100%;
 			margin: 24rpx 0;
 			.avatar_box {
-				width: 130rpx;
+				width: 120rpx;
 				height: 120rpx;
 				border-radius: 50%;
 				overflow: hidden;
 				position: relative;
 				.avatar {
-					box-shadow: 0 8rpx 20rpx 0 #c4d8df;
-					border: 4rpx solid #fff;
+					// box-shadow: 0 8rpx 20rpx 0 #c4d8df;
+					// border: 4rpx solid #fff;
 					width: 120rpx;
 					height: 120rpx;
 					border-radius: 50%;
@@ -365,7 +394,7 @@
 				.auth {
 					position: absolute;
 					bottom: 0;
-					width: 130rpx;
+					width: 120rpx;
 					height: 30rpx;
 					background: rgba(0,0,0,0.4);
 					font-size: 20rpx;
@@ -459,7 +488,7 @@
 			width: 100%;
 			margin-bottom: 20rpx;
 			.box_left {
-				background: url('https://ship-expert.zhousi.hdlkeji.com/common/balance.png') no-repeat;
+				background: url('https://ship.shipcc.cn/common/balance.png') no-repeat;
 				background-size: 100%;
 				box-sizing: border-box;
 				padding: 16rpx 24rpx;
@@ -476,7 +505,7 @@
 				}
 			}
 			.box_right {
-				background: url('https://ship-expert.zhousi.hdlkeji.com/common/collect.png') no-repeat;
+				background: url('https://ship.shipcc.cn/common/collect.png') no-repeat;
 				background-size: 100%;
 				box-sizing: border-box;
 				padding: 16rpx 24rpx;
@@ -520,6 +549,22 @@
 				width: 20%;
 				font-size: 22rpx;
 				color: #333;
+				.img_box {
+					position: relative;
+					
+					.img_num {
+						position: absolute;
+						top: -10rpx;
+						right: -15rpx;
+						width: 36rpx;
+						height: 24rpx;
+						background-color: #fb3e32;
+						border-radius: 12rpx 12rpx 12rpx 4rpx;
+						font-size: 20rpx;
+						color: #fff;
+						text-align: center;
+					}
+				}
 			}
 			.list_item1 {
 				width: 25%;

+ 37 - 14
pages/tabbar/shipyard/detail.vue

@@ -30,7 +30,7 @@
 				<view class="title cell">船厂环境</view>
 				<view class="cell">
 					<block v-for="(item,index) in pageData.environment_imgs" :key="index">
-						<image :src="item" mode="aspectFill" class="img"></image>
+						<image :src="item" mode="aspectFill" class="img" @click="prvImgs"></image>
 					</block>
 				</view>
 				<view class="title cell">产品介绍</view>
@@ -39,8 +39,13 @@
 				</view>
 			</view>
 			<view class="list" v-if="tab_active == 2">
-				<block v-for="(item,index) in pageList.position" :key="index">
-					<view class="list_item">
+				<view v-if="pageList.length == 0" class="vflex acenter jcenter" style="margin-top: 100rpx;">
+					<u-empty mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png" text="暂时没有数据哦^^">
+					</u-empty>
+				</view>
+				<block v-else v-for="(item,index) in pageList" :key="index">
+					
+					<view class="list_item" @click="toinfo(item)">
 						<view class="hflex acenter jbetween">
 							<view class="item_title">{{item.job_name}}</view>
 							<view class="item_blue">{{item.salary}}·{{item.salary_month}}薪</view>
@@ -71,7 +76,7 @@
 				<view class="text_style1">收藏</view>	
 			</view>	
 			<view class="vflex acenter" @click="share('Poster1')">
-				<image src="https://ship-expert.zhousi.hdlkeji.com/common/share.png" mode="" class="bottom_img"></image>	
+				<image src="https://ship.shipcc.cn/common/share.png" mode="" class="bottom_img"></image>	
 				<view class="text_style1">分享</view>	
 			</view>	
 			<view class="bottom_btn" @click="into_chatroom">私信聊聊</view>
@@ -101,15 +106,15 @@
 			<view class="share_bottom">
 				<view class="hflex acenter jcenter">
 					<button class="vflex acenter jcenter bottom_item" open-type="share">
-						<image src="https://ship-expert.zhousi.hdlkeji.com/common/wx.png" class="item_icon"></image>
+						<image src="https://ship.shipcc.cn/common/wx.png" class="item_icon"></image>
 						<view class="item_text">微信好友</view>
 					</button>
 					<!-- <button class="vflex acenter jcenter bottom_item" open-type="share">
-						<image src="https://ship-expert.zhousi.hdlkeji.com/common/moments.png" class="item_icon"></image>
+						<image src="https://ship.shipcc.cn/common/moments.png" class="item_icon"></image>
 						<view class="item_text">朋友圈</view>
 					</button> -->
 					<view class="vflex acenter jcenter bottom_item" @click="saveImg">
-						<image src="https://ship-expert.zhousi.hdlkeji.com/common/download.png" class="item_icon"></image>
+						<image src="https://ship.shipcc.cn/common/download.png" class="item_icon"></image>
 						<view class="item_text">保存图片</view>
 					</view>
 				</view>
@@ -127,9 +132,9 @@
 			return {
 				list: [],
 				style: {
-					img1: 'https://ship-expert.zhousi.hdlkeji.com/common/down2.png',
-					img2: 'https://ship-expert.zhousi.hdlkeji.com/common/line.png',
-					code: 'https://ship-expert.zhousi.hdlkeji.com/common/code.jpg'
+					img1: 'https://ship.shipcc.cn/common/down2.png',
+					img2: 'https://ship.shipcc.cn/common/line.png',
+					code: 'https://ship.shipcc.cn/common/code.jpg'
 				},
 				pageData: {
 				},
@@ -182,6 +187,9 @@
 		    }
 		},
 		methods: {
+			toinfo(item) {
+				$api.jump('/page_index/pages/demand/recruitDetail?id='+item.id)
+			},
 			// 返回
 			leftClick() {
 				console.log('返回');
@@ -206,7 +214,8 @@
 						shipyard_id: that.id
 					}
 				}, function(res) {
-					that.pageList = res.data.data
+					console.log(res);
+					that.pageList = res.data
 				})
 			},
 			// 切换tabs
@@ -296,7 +305,21 @@
 					}
 				})
 			},
-			
+			// 放大图片
+			prvImgs() {
+				uni.previewImage({
+					urls: that.pageData.environment_imgs,
+					longPressActions: {
+						itemList: ['发送给朋友', '保存图片', '收藏'],
+						success: function(data) {
+							console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片');
+						},
+						fail: function(err) {
+							console.log(err.errMsg);
+						}
+					}
+				});
+			}
 		},
 	}
 </script>
@@ -305,7 +328,7 @@
 	.content {
 		position: relative;
 		.top {
-			background: url('https://ship-expert.zhousi.hdlkeji.com/common/nav_bg.png') no-repeat;
+			background: url('https://ship.shipcc.cn/common/nav_bg.png') no-repeat;
 			background-size: 100%;
 			box-sizing: border-box;
 			padding: 30rpx;
@@ -399,7 +422,7 @@
 				.list_item {
 					width: 100%;
 					padding: 28rpx 0 20rpx;
-					border-top: 1rpx solid #F4F4F4;
+					border-bottom: 1rpx solid #F4F4F4;
 					.item_title {
 						font-size: 32rpx;
 						font-weight: 600;

+ 1 - 1
pages/tabbar/shipyard/news.vue

@@ -25,7 +25,7 @@
 			<news-module :pageList="pageList" @toDetail="toDetail"></news-module>
 		</view>
 		<!-- <view class="boxs" v-else>
-			<u-empty icon="https://ship-expert.zhousi.hdlkeji.com/common/zhan.png" text="暂时没有数据哦">
+			<u-empty icon="https://ship.shipcc.cn/common/zhan.png" text="暂时没有数据哦">
 		</view> -->
 	</view>
 </template>

+ 16 - 14
pages/tabbar/shipyard/shipyard.vue

@@ -32,7 +32,7 @@
 				</block>
 			</view>
 			<!-- <view  v-else>
-				<u-empty icon="https://ship-expert.zhousi.hdlkeji.com/common/zhan.png" text="暂时没有数据哦">
+				<u-empty icon="https://ship.shipcc.cn/common/zhan.png" text="暂时没有数据哦">
 			</view> -->
 		</view>
 	</view>
@@ -63,19 +63,14 @@
 				page: 1,
 				limit: 10,
 				total: 1,
+				token: '',
 			}
 		},
 		onLoad() {
 			that = this
 			that.getBanner()
-			var token = uni.getStorageSync('token')
-			console.log(token);
-			if(!token) {
-				$api.info("请先登录")
-				setTimeout(() => {
-					$api.jump('/pages/login/code_login')
-				},1000)
-			}
+			that.token = uni.getStorageSync('token')
+			
 		},
 		onShow() {
 			
@@ -85,7 +80,7 @@
 			var token = uni.getStorageSync('token')
 			console.log(token);
 			if(!token) {
-				$api.jump('/pages/login/code_login')
+				$api.jump('/pages/login/password_login')
 			}
 			that.getList()
 		},
@@ -133,7 +128,7 @@
 					}else if (res.code == 401) {
 						$api.info("请先登录")
 						setTimeout(() => {
-							$api.jump('/pages/login/code_login')
+							$api.jump('/pages/login/password_login')
 						},1000)
 					}
 					uni.stopPullDownRefresh();
@@ -147,7 +142,11 @@
 				that.getList()
 			},
 			toDetail(id) {
-				$api.jump('/pages/tabbar/shipyard/detail?id=' + id)
+				if(!that.token) {
+					$api.jump('/pages/login/password_login')
+				} else {
+					$api.jump('/pages/tabbar/shipyard/detail?id=' + id)
+				}
 			},
 			search() {
 				that.getList()
@@ -171,7 +170,9 @@
 		background-color: #f6f6f6;
 		
 		.search {
-			// background: #fff;
+			position: fixed;
+			z-index: 999;
+			background: #fff;
 			width: 100%;
 			height: 88rpx;
 			box-sizing: border-box;
@@ -195,8 +196,9 @@
 			}
 		}
 		.swiper {
+			
 			width: 100%;
-			margin-top: 20rpx;
+			margin-top: 108rpx;
 			box-sizing: border-box;
 			padding: 0 30rpx;
 		}

+ 67 - 42
pages/tabbar/shop/shop.vue

@@ -1,18 +1,20 @@
 <template>
 	<view class="content">
-		<u-navbar title=" " height="44px" :bgColor="bgColor" :placeholder="true">
-			<view class="navbar_left hflex acenter"  @click="changeCity" slot="left">
-				<view class="city">{{city}}</view>
-				<u-icon name="arrow-down-fill" color="#000" size="10"></u-icon>
+		<view class="" style="position: relative;">
+			<u-navbar title=" " height="44px" :bgColor="bgColor" :placeholder="true">
+				<view class="navbar_left hflex acenter"  @click="changeCity" slot="left">
+					<view class="city">{{city}}</view>
+					<u-icon name="arrow-down-fill" color="#000" size="10"></u-icon>
+				</view>
+			</u-navbar>
+			<view class="search" @click="search" :style="scrollHeight > 0 ? 'background: #fff' : ''">
+				<u-input v-model="serach_value" type="text" :border="true" placeholder="热搜榜单" shape="circle"
+					prefixIcon="search" prefixIconStyle="font-size: 22px;color: #909399" bgColor="#fff">
+					<template slot="suffix">
+						<view @click.stop="search">搜索</view>
+					</template>
+				</u-input>
 			</view>
-		</u-navbar>
-		<view class="search" @click="search">
-			<u-input v-model="serach_value" type="text" :border="true" placeholder="热搜榜单" shape="circle"
-				prefixIcon="search" prefixIconStyle="font-size: 22px;color: #909399" disabled bgColor="#fff">
-				<template slot="suffix">
-					<view @click.stop="search">搜索</view>
-				</template>
-			</u-input>
 		</view>
 		<view class="swiper">
 			<u-swiper :indicator="true" indicatorActiveColor="#506dff" height="160" :list="bannerList" keyName="img" radius="20rpx" @click="toBanner"></u-swiper>
@@ -47,10 +49,10 @@
 		<view class="suspension">
 			<view @click="toCart" class="img_box">
 				<u-badge numberType="overflow" max="99" :value="cart_num"></u-badge>
-				<image src="https://ship-expert.zhousi.hdlkeji.com/common/cart.png" class="susp_icon"></image>
+				<image src="https://ship.shipcc.cn/common/cart.png" class="susp_icon"></image>
 			</view>
 			<view @click="toCenter">
-				<image src="https://ship-expert.zhousi.hdlkeji.com/common/center.png" class="susp_icon"></image>
+				<image src="https://ship.shipcc.cn/common/center.png" class="susp_icon"></image>
 			</view>
 		</view>
 	</view>
@@ -74,28 +76,27 @@
 				page: 1,
 				limit: 10,
 				total: 1,
+				token: '',
+				scrollHeight: 0
 			}
 		},
 		onLoad() {
 			that = this
 			var city = uni.getStorageSync('city')
-			var token = uni.getStorageSync("token")
+			
+			
 			if(city) {
 				that.city = city
 			}
-			if(token) {
-				that.getNum()
-			} else {
-				$api.info("去登录")
-				setTimeout(()=> {
-					$api.jump('/pages/login/code_login')
-				},1000)
-			}
+			
 			
 			that.getBanner()
 		},
 		onShow() {
-			
+			that.token = uni.getStorageSync("token")
+			if(that.token) {
+				that.getNum()
+			}
 			that.page = 1
 			that.pageList = []
 			that.getCate()
@@ -113,6 +114,7 @@
 			}
 		},
 		onPageScroll(e) {
+			that.scrollHeight = e.scrollTop
 			if(e.scrollTop != 0) {
 				that.bgColor = "#fff"
 			} else {
@@ -154,7 +156,7 @@
 					} else if(res.code == 401) {
 						$api.info("去登录")
 						setTimeout(()=> {
-							$api.jump('/pages/login/code_login')
+							$api.jump('/pages/login/password_login')
 						},1000)
 					}
 					uni.stopPullDownRefresh();
@@ -191,25 +193,42 @@
 			},
 			// 点击base
 			clickBase(e) {
-				if(!that.baseList[e].sub) {
-					var url = '/page_shop/pages/base/base?name='+ that.baseList[e].name + '&id=' + that.baseList[e].id
+				if(!that.token) {
+					$api.jump('/pages/login/password_login')
 				} else {
-					var url = '/page_shop/pages/base/base?name='+ that.baseList[e].name + '&id=' + that.baseList[e].id + '&data=' + JSON.stringify(that.baseList[e].sub)
+					if(!that.baseList[e].sub) {
+						var url = '/page_shop/pages/base/base?name='+ that.baseList[e].name + '&id=' + that.baseList[e].id
+					} else {
+						var url = '/page_shop/pages/base/base?name='+ that.baseList[e].name + '&id=' + that.baseList[e].id + '&data=' + JSON.stringify(that.baseList[e].sub)
+					}
+					
+					$api.jump(url)
 				}
-				
-				$api.jump(url)
 			},
 			// 商品详情
 			toDetail(id) {
-				$api.jump('/page_shop/pages/good/detail?id=' + id)
-			},
+				if(!that.token) {
+					$api.jump('/pages/login/password_login')
+				} else {
+					$api.jump('/page_shop/pages/good/detail?id=' + id)
+				}
+			},	
 			// 去购物车
 			toCart() {
-				$api.jump('/page_shop/pages/mine/cart')
+				console.log(that.token);
+				if(!that.token) {
+					$api.jump('/pages/login/password_login')
+				} else {
+					$api.jump('/page_shop/pages/mine/cart')
+				}
 			},
 			// 去个人中心
 			toCenter() {
-				$api.jump('/page_shop/pages/mine/mine')
+				if(!that.token) {
+					$api.jump('/pages/login/password_login')
+				} else {
+					$api.jump('/page_shop/pages/mine/mine')
+				}
 			},
 			search() {
 				$api.jump('/page_shop/pages/mine/search?value=' + that.serach_value)
@@ -229,9 +248,9 @@
 
 <style lang="scss" scoped>
 	.content::v-deep {
-		background: url('https://ship-expert.zhousi.hdlkeji.com/common/shop_bg.png') #F5F5F5 no-repeat;
+		background: url('https://ship.shipcc.cn/common/shop_bg.png') #F5F5F5 no-repeat;
 		background-size: 100%;
-		padding: 0 30rpx;
+		// padding: 0 30rpx;
 		position: relative;
 		.navbar_left {
 			
@@ -242,11 +261,14 @@
 			}
 		}
 		.search {
+			position: fixed;
+			
+			z-index: 999;
 			// background: #fff;
 			width: 100%;
 			height: 88rpx;
 			box-sizing: border-box;
-			padding: 12rpx 0;
+			padding: 0 42rpx 0;
 			.u-input {
 				background-color: #fff;
 				height: 64rpx;
@@ -267,14 +289,17 @@
 		}
 		.swiper {
 			width: 100%;
-			margin-top: 20rpx;
+			margin-top: 108rpx;
 			height: 320rpx;
+			padding: 0 30rpx;
+			box-sizing: border-box;
 		}
 		.grid {
-			margin-top: 20rpx;
+			margin: 20rpx auto 0;
 			background: #FFFFFF;
 			border-radius: 10px;
-			width: 100%;
+			width: 690rpx;
+			
 			box-sizing: border-box;
 			padding: 14rpx 0;
 			.u-grid-item {
@@ -299,8 +324,8 @@
 			}
 		}
 		.list {
-			width: 100%;
-			margin-top: 20rpx;
+			width: 690rpx;
+			margin: 20rpx auto;
 			.list_item {
 				width: 334rpx;
 				background: #FFFFFF;

BIN
static/images/comment/sp_call_phone.png


BIN
static/images/index/demand/birthday.png


BIN
static/images/index/demand/detele.png


BIN
static/images/index/demand/edution.png


BIN
static/images/index/demand/email.png


BIN
static/images/index/demand/icon1.png


BIN
static/images/index/demand/icon2.png


BIN
static/images/index/demand/icon3.png


BIN
static/images/index/demand/icon4.png


BIN
static/images/index/demand/icon5.png


BIN
static/images/index/demand/sex.png


BIN
static/images/index/demand/tab1.png


BIN
static/images/index/demand/tab3.png


BIN
static/images/index/demand/work.png


BIN
static/images/index/logo.png


BIN
static/images/index/upload-back.png


BIN
static/images/index/upload_img.png


BIN
static/images/info_img.png


BIN
static/images/mine/btn_right.png


BIN
static/images/mine/message.png


BIN
static/images/mine/real_bg.png


BIN
static/images/mine/upload_center.png


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