liujiaxin 9 godzin temu
rodzic
commit
a48a7e8b9a
100 zmienionych plików z 5062 dodań i 2217 usunięć
  1. 21 18
      api/coupon.js
  2. 20 6
      api/index.js
  3. 3 0
      api/integral.js
  4. 7 3
      api/life.js
  5. 57 7
      api/product.js
  6. 93 84
      api/user.js
  7. 10 2
      assets/style/global.scss
  8. 1 1
      assets/style/index.scss
  9. 12 16
      common/request.js
  10. 113 33
      components/channel.vue
  11. 1 1
      components/chengpeng-audio/redme.md
  12. 510 0
      components/coupon-popup/coupon-popup.vue
  13. 1 1
      components/likeProduct.vue
  14. 432 0
      components/product-spec-popup/product-spec-popup.vue
  15. 106 0
      components/public/scs-helang-waterfall.vue
  16. 1 1
      components/public/scs-scroll-navbar.vue
  17. 2 2
      components/px-popup-bottom/px-popup-bottom.vue
  18. 7 7
      components/task.vue
  19. 1 1
      components/tuiProduct.vue
  20. 1 1
      manifest.json
  21. 49 158
      pages.json
  22. 1 1
      pages/auth/login.vue
  23. 1 1
      pages/common/launch.vue
  24. 4 4
      pages/healthy/detail.vue
  25. 4 4
      pages/healthy/index.vue
  26. 2 2
      pages/healthy/readUsers.vue
  27. 4 3
      pages/home/components/home-discount.vue
  28. 72 0
      pages/home/components/home-goods-item-test.vue
  29. 152 0
      pages/home/components/home-goods-item.vue
  30. 0 89
      pages/home/components/home-goods.vue
  31. 18 3
      pages/home/components/home-hot.vue
  32. 39 10
      pages/home/components/home-menu.vue
  33. 42 0
      pages/home/components/home-more-item.vue
  34. 7 7
      pages/home/components/home-product.vue
  35. 0 72
      pages/home/components/home-sales-rank.vue
  36. 9 6
      pages/home/components/home-search.vue
  37. 0 65
      pages/home/components/home-waterfall.vue
  38. 6 6
      pages/home/doctorCase.vue
  39. 35 35
      pages/home/index copy.vue
  40. 1214 245
      pages/home/index.vue
  41. 12 12
      pages/home/productList.vue
  42. 9 9
      pages/home/productSearch.vue
  43. 16 16
      pages/life/life.vue
  44. 12 16
      pages/live/list.vue
  45. 4 4
      pages/shopping/cart.vue
  46. 166 160
      pages/shopping/index.vue
  47. 199 174
      pages/user/index.vue
  48. 0 9
      pages/user/test.vue
  49. 3 3
      pages_company/coupon.vue
  50. 1 1
      pages_company/couponDetails.vue
  51. 8 8
      pages_company/index.vue
  52. 3 3
      pages_company/order/cart.vue
  53. 1 1
      pages_company/order/confirmOrder.vue
  54. 3 3
      pages_company/order/coupon.vue
  55. 9 9
      pages_company/order/productDetails.vue
  56. 13 13
      pages_company/order/productList.vue
  57. 3 3
      pages_company/order/productShowDetails.vue
  58. 2 2
      pages_company/shareLive.vue
  59. 3 3
      pages_company/storeOrder.vue
  60. 11 11
      pages_company/storeOrderDetail.vue
  61. 3 3
      pages_company/storeProductPackage.vue
  62. 4 4
      pages_company/storeProductPackageDetails.vue
  63. 6 6
      pages_course/components/Invitation.vue
  64. 2 2
      pages_course/components/chatInput.vue
  65. 4 4
      pages_course/components/giftPopup.vue
  66. 2 2
      pages_course/components/like.vue
  67. 2 2
      pages_course/components/liveGoods.vue
  68. 4 4
      pages_course/components/liveVideo.vue
  69. 3 3
      pages_course/components/lotteryPopup.vue
  70. 5 5
      pages_course/components/shopPopup.vue
  71. 2 2
      pages_course/components/winningPopup.vue
  72. 560 0
      pages_course/integral.vue
  73. 31 31
      pages_course/living.vue
  74. 38 38
      pages_course/living1.vue
  75. 38 38
      pages_course/livingmy.vue
  76. 40 40
      pages_course/livingold.vue
  77. 36 36
      pages_course/livingweek.vue
  78. 85 40
      pages_shopping/live/article.vue
  79. 1 1
      pages_shopping/live/complaint.vue
  80. 1 1
      pages_shopping/live/complaintList.vue
  81. 0 113
      pages_shopping/live/components/emoji-picker.vue
  82. 6 6
      pages_shopping/live/confirmCreateOrder.vue
  83. 78 33
      pages_shopping/live/expert.vue
  84. 2 2
      pages_shopping/live/goods.vue
  85. 2 2
      pages_shopping/live/order.vue
  86. 3 3
      pages_shopping/live/paymentOrder.vue
  87. 26 26
      pages_shopping/live/points.vue
  88. 1 1
      pages_shopping/live/refundOrder.vue
  89. 6 6
      pages_shopping/live/refundOrderDetail.vue
  90. 215 212
      pages_shopping/live/salesRanking.vue
  91. 179 94
      pages_shopping/live/shop.vue
  92. 4 4
      pages_shopping/live/storeOrderDelivery.vue
  93. 12 12
      pages_shopping/live/storeOrderDetail.vue
  94. 2 2
      pages_shopping/live/storeOrderRefundList.vue
  95. 2 2
      pages_shopping/live/storeOrderRefundSubmit.vue
  96. 1 1
      pages_shopping/live/success.vue
  97. 3 3
      pages_shopping/live/trailer.vue
  98. 1 1
      pages_shopping/shopping/components/filter.vue
  99. 108 69
      pages_shopping/shopping/confirmCreateOrder.vue
  100. 8 8
      pages_shopping/shopping/confirmOrder.vue

+ 21 - 18
api/coupon.js

@@ -1,35 +1,38 @@
 import Request from '../common/request.js';
 let request = new Request().http
-
- export function getCouponIssueList(data) {
- 	 return request('/app/coupon/getCouponIssueList',data,'GET');
+// 领取
+export function companyReceive(data) {
+ 	return request('/app/coupon/companyReceive',data,'POST','application/json;charset=UTF-8');
  }
  
- 
+ // 获取销售可用套餐卷列表
  export function getCompanyCouponIssueList(data) {
  	 return request('/app/coupon/getCompanyCouponIssueList',data,'GET');
  }
+ // 获取销售可用套餐卷
+ export function getCouponIssueById(data) {
+ 	 return request(`/app/coupon/getCouponIssueById?id=${data}`,data,'GET');
+
+ }
+ // 获取优惠券列表
+ export function getCouponIssueList(data) {
+ 	 return request('/app/coupon/getCouponIssueList',data,'GET');
+ }
+ // 获取我的优惠券列表
+ export function getMyCouponList(data) {
+ 	 return request('/app/coupon/getMyCouponList',data,'GET');
+ }
+ // 根据最低消费金额获取我的优惠券列表
  export function getMyEnableCouponList(data) {
  	 return request('/app/coupon/getMyEnableCouponList',data,'GET');
  }
- 
- 
- export function getCouponIssueById(data) {
- 	 return request('/app/coupon/getCouponIssueById',data,'GET');
- }
- 
- 
- 
+ // 领取
  export function receive(data) {
  	return request('/app/coupon/receive',data,'POST','application/json;charset=UTF-8');
  }
- export function companyReceive(data) {
- 	return request('/app/coupon/companyReceive',data,'POST','application/json;charset=UTF-8');
- }
  
- export function getMyCouponList(data) {
- 	 return request('/app/coupon/getMyCouponList',data,'GET');
- }
+ 
+
  
  
  

+ 20 - 6
api/index.js

@@ -30,10 +30,6 @@ export function getTuiDoctorOrder(data) {
 	return request('/app/index/getTuiDoctorOrder', data, 'GET');
 }
 
-export function getCartCount() {
-	return request('/app/index/getCartCount', null, 'GET');
-}
-
 // 商品搜索瀑布流
 export function productWaterfall(data) {
 	return request('/app/product/getProductWaterfall', data, 'POST');
@@ -56,10 +52,28 @@ export function cartNum(data) {
 	return request('/app/product/cartNum', data, 'POST');
 }
 // 获取商品购物车数量
-export function cartCount() {
-	return request('/app/product/cartCount', null, 'GET');
+export function getCartCount() {
+	return request('/app/product/getCartCount', null, 'GET');
 }
 // 获取购物车列表
 export function getCarts() {
 	return request('/app/product/getCarts', null, 'GET');
+}
+
+// 获取我的频道
+export function getMyProductCate() {
+	return request('/app/product/getMyProductCate', null, 'GET');
+}
+// 添加我的频道
+export function channelAdd(data) {
+	return request(`/app/product/channelAdd/${data}`, data, 'POST');
+}
+// 移除我的频道
+export function channelDelete(data) {
+	return request(`/app/product/channelDelete/${data}`, data, 'POST');
+}
+
+// 获取商品规格列表
+export function getProductValues(data) {
+	return request(`/app/product/getProductValues?productId=${data}`, data, 'GET');
 }

+ 3 - 0
api/integral.js

@@ -0,0 +1,3 @@
+import Request from '../common/request.js';
+let request = new Request().http
+

+ 7 - 3
api/life.js

@@ -4,13 +4,13 @@ let request = new Request().http
 // expertId 达人id
 
 // 达人主页
-export function expertHomePage(data) {
-	return request(`/app/store/life/expertHomePage/${expertId}`, data, 'POST');
+export function expertHomePage(expertId) {
+	return request(`/app/store/life/expertHomePage/${expertId}`, {}, 'POST');
 }
 
 //关注用户/取消关注
 export function follow(data) {
-	return request(`/app/store/life/follow/${expertId}`, data, 'POST');
+	return request('/app/store/life/follow', data, 'POST');
 }
 
 // 内容详情
@@ -81,4 +81,8 @@ export function reply(data) {
 // 查询店铺评价汇总
 export function summary(storeId) {
 	return request(`/app/store/productComment/store/summary/${storeId}`, data, 'GET');
+}
+//达人排行榜
+export function listCreatorRank(data) {
+	return request('/app/store/life/listCreatorRank', data, 'POST');
 }

+ 57 - 7
api/product.js

@@ -1,15 +1,15 @@
 import Request from '../common/request.js';
 let request = new Request().http
  
-
+// 获取商品页一级分类
  export function getProductCate(data) {
  	 return request('/app/product/getProductCate',data,'GET');
  }
- 
+ // 根据一级分类获取子分类
  export function getProductCateByPid(data) {
  	 return request('/app/product/getProductCateByPid',data,'GET');
  }
- 
+ // 获取商品列表
  export function getProducts(data) {
  	 return request('/app/product/getProducts',data,'GET');
  }
@@ -49,16 +49,66 @@ let request = new Request().http
  export function todayAndHot(data) {
  	 return request('/app/product/getTodayHotAndThirtyDaysNewProductHot',data,'GET');
  }
- 
- 
- 
- 
 
+ //查询当前商品最近的购买记录10条
+ export function productHistoryOrderList(data) {
+ 	 return request(`/app/product/productHistoryOrderList/${data}`,data,'POST');
+ }
+  // 商品好评榜单
+ export function productGoodProductList(data) {
+ 	 return request('/app/product/productGoodProductList',data,'POST');
+ }
+  // 获取商品规格列表
+  export function getProductValues(data) {
+ 	 return request('/app/product/getProductValues',data,'GET');
+ }
+// 当天商品实时销量榜单
+ export function productSalesRanking(data) {
+ 	 return request('/app/product/productSalesRanking',data,'POST');
+ }
+
+
+
+//  商品评价
+// 新增一级评论
+ export function productCommentAdd(data) {
+ 	 return request('/app/store/productComment/add',data,'POST');
+ }
+ // 点赞/取消点赞
+ export function productLike(data) {
+ 	 return request('/app/store/productComment/like',data,'POST');
+ }
+//查询评论列表
+ export function productCommentPage(data) {
+ 	 return request('/app/store/productComment/page',data,'POST');
+ }
+ //回复评论
+ export function productCommentReply(data) {
+ 	 return request('/app/store/productComment/reply',data,'POST');
+ }
+  // 查询店铺评价汇总
+  export function summary(data) {
+ 	 return request(`/app/store/productComment/store/summary/${data}`,data,'GET');
+ }
+ 
  
  
  
+ //店铺
  
+ //店铺查询
+ export function getStore(data) {
+ 	 return request(`/app/store/store/getStore/${data}`,data,'POST');
+ }
  
+ //店铺商品查询
+ export function getStoreProduct(data) {
+ 	 return request('/app/store/store/getStoreProduct',data,'POST');
+ }
+ //关注店铺/取消关注
+ export function follow(data) {
+ 	 return request('/app/store/store/follow',data,'POST');
+ }
  
  
  

+ 93 - 84
api/user.js

@@ -1,86 +1,95 @@
 import Request from '../common/request.js';
 let request = new Request().http
- 
- export function loginByMiniApp(data) {
- 	 return request('/app/wx/loginByMiniApp',data,'POST','application/json;charset=UTF-8');
- }
- export function loginByMp(data) {
- 	 return request('/app/wx/loginByMp',data,'POST','application/json;charset=UTF-8');
- }
- export function getUserInfo() {
- 	 return request('/app/user/getUserInfo',null,'GET');
- }
- 
- export function editUser(data) {
- 	return request('/app/user/editUser',data,'POST','application/json;charset=UTF-8');
- }
- 
- export function getWeixinInfo(data) {
- 	return request('/app/wx/getWeixinInfo',data,'POST','application/json;charset=UTF-8');
- }
- export function checkLogin() {
- 	 return request('/app/user/checkLogin',null,'GET');
- }
- export function getTuiImg() {
- 	 return request('/app/user/getTuiImg',null,'GET');
- }
- export function getMyTuiOrderList(data) {
- 	 return request('/app/user/getMyTuiOrderList',data,'GET');
- }
- export function getTuiMoney() {
- 	 return request('/app/user/getTuiMoney',null,'GET');
- }
- export function getMyTuiList(data) {
- 	 return request('/app/user/getMyTuiList',data,'GET');
- }
- export function getTuiMoneyLogs(data) {
- 	 return request('/app/user/getTuiMoneyLogs',data,'GET');
- }
- 
- export function getProductFoots(data) {
- 	 return request('/app/user/getProductFoots',data,'GET');
- }
- export function delProductFoots(data) {
- 	 return request('/app/user/delProductFoots',data,'POST','application/json;charset=UTF-8');
- }
- 
- export function doExtract(data) {
- 	 return request('/app/user/doExtract',data,'POST','application/json;charset=UTF-8');
- }
- export function getExtractList(data) {
- 	 return request('/app/user/getExtractList',data,'GET');
- }
- export function applyPromoter(data) {
- 	 return request('/app/user/applyPromoter',data,'POST','application/json;charset=UTF-8');
- }
- export function bindPromoter(data) {
- 	 return request('/app/user/bindPromoter',data,'POST','application/json;charset=UTF-8');
- }
- 
- export function getUserShareList(data) {
- 	 return request('/app/user/getUserShareList',data,'GET');
- }
- //隐私保护
- export function getyingsi(data) {
- 	 return request('/h5/privacyPolicyNew',data,'GET');
- }
- //用户协议
- export function getxieyi(data) {
- 	 return request('/h5/userAgreementNew',data,'GET');
- }
- export function getConfigByKey(data) {
- 	 return request('/app/common/getConfigByKey',data,'GET');
- } 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
+
+export function loginByMiniApp(data) {
+	return request('/app/wx/loginByMiniApp', data, 'POST', 'application/json;charset=UTF-8');
+}
+export function loginByMp(data) {
+	return request('/app/wx/loginByMp', data, 'POST', 'application/json;charset=UTF-8');
+}
+export function getUserInfo() {
+	return request('/app/user/getUserInfo', null, 'GET');
+}
+
+export function editUser(data) {
+	return request('/app/user/editUser', data, 'POST', 'application/json;charset=UTF-8');
+}
+
+export function getWeixinInfo(data) {
+	return request('/app/wx/getWeixinInfo', data, 'POST', 'application/json;charset=UTF-8');
+}
+export function checkLogin() {
+	return request('/app/user/checkLogin', null, 'GET');
+}
+export function getTuiImg() {
+	return request('/app/user/getTuiImg', null, 'GET');
+}
+export function getMyTuiOrderList(data) {
+	return request('/app/user/getMyTuiOrderList', data, 'GET');
+}
+export function getTuiMoney() {
+	return request('/app/user/getTuiMoney', null, 'GET');
+}
+export function getMyTuiList(data) {
+	return request('/app/user/getMyTuiList', data, 'GET');
+}
+export function getTuiMoneyLogs(data) {
+	return request('/app/user/getTuiMoneyLogs', data, 'GET');
+}
+
+export function getProductFoots(data) {
+	return request('/app/user/getProductFoots', data, 'GET');
+}
+export function delProductFoots(data) {
+	return request('/app/user/delProductFoots', data, 'POST', 'application/json;charset=UTF-8');
+}
+
+export function doExtract(data) {
+	return request('/app/user/doExtract', data, 'POST', 'application/json;charset=UTF-8');
+}
+export function getExtractList(data) {
+	return request('/app/user/getExtractList', data, 'GET');
+}
+export function applyPromoter(data) {
+	return request('/app/user/applyPromoter', data, 'POST', 'application/json;charset=UTF-8');
+}
+export function bindPromoter(data) {
+	return request('/app/user/bindPromoter', data, 'POST', 'application/json;charset=UTF-8');
+}
+
+export function getUserShareList(data) {
+	return request('/app/user/getUserShareList', data, 'GET');
+}
+//隐私保护
+export function getyingsi(data) {
+	return request('/h5/privacyPolicyNew', data, 'GET');
+}
+//用户协议
+export function getxieyi(data) {
+	return request('/h5/userAgreementNew', data, 'GET');
+}
+export function getConfigByKey(data) {
+	return request('/app/common/getConfigByKey', data, 'GET');
+}
+
+//  签到
+export function sign(data) {
+	return request('/app/sign/sign', data, 'POST');
+}
+// 获取用户签到记录
+export function getUserSign(data) {
+	return request('/app/sign/getUserSign', data, 'GET');
+}
+// 获取积分记录
+export function getIntegral(data) {
+	return request('/app/sign/getIntegral', data, 'GET');
+}
+
+
+
+
+
+
+
+
+

+ 10 - 2
assets/style/global.scss

@@ -257,6 +257,7 @@ view{
 .h-all {
   height: 100%;
 }
+
 .relative {
   position: relative;
 }
@@ -318,7 +319,9 @@ view{
 .inline-block {
   display: inline-block;
 }
-
+.m-auto {
+  margin:0 auto;
+}
 
 
 /*  (-500 to 1000px, all numbers, auto convert to rpx: px * 2 = rpx) */
@@ -633,7 +636,8 @@ $colors: (
   'A71E2A', '6E001D', 'FFC107', 'E0A800', 'D39E00', 'B8860B',
   '6C5600', '17A2B8', '138496', '117A8B', '0C5460', '062B36',
   'F5F7FA', 'EEEEEE', '02B176', 'FA341E', 'D46C0D', 'FFA599',
-  'FF4B33', '38D97D',
+  'FF4B33', '38D97D', 'C39760', 'ED4B17', 'F9B71B', 'FFE600',
+  'FFF4E8'
 );
 
 // 文字颜色类 - 标准化格式
@@ -721,6 +725,10 @@ $colors: (
 .bg-white {
   background-color: #ffffff;
 }
+.bg-img{
+  background-color: rgba(0, 0, 0, 0.1);
+  transition: opacity 0.3s ease-in-out;// 图片加载过渡效果
+}
 
 /* 透明度类 */
 @for $i from 1 through 9 {

+ 1 - 1
assets/style/index.scss

@@ -53,7 +53,7 @@
 }
 
 //文本2行
-.text-two-line {
+.text-ellipsis-2 {
     -webkit-line-clamp: 2;
     display: -webkit-box;
     -webkit-box-orient: vertical;

+ 12 - 16
common/request.js

@@ -4,16 +4,11 @@ export default class Request {
 	http(router, data = {}, method, contentType, url) {
 		let that = this;
 		// let path = 'https://api.fhhx.runtzh.com';
-		// let path ='http://t8467d6f.natappfree.cc'//刘欣
-		// let path ='http://hee96674.natappfree.cc'//张秦
+		// let path ='http://n9373a29.natappfree.cc'//刘欣
+		// let path = 'http://e6a9b738.natappfree.cc'//张秦
 		let path ='http://129.28.77.198:7014'//张秦
-		
-		// let path = 'http://x5d7cc68.natappfree.cc';//刘明欣
-		// let path =  'http://192.168.10.122:7014';
-		// let path = 'http://192.168.10.126:7014';
-		// let path = 'https://live.test.ylrztop.com/live-api'; // 余红奇
-		// let path = 'http://192.168.10.166:7014'; // 余红奇
 
+		
 		let token = "";
 		let type = 0
 		if (url != null) {
@@ -37,8 +32,8 @@ export default class Request {
 		if (router.indexOf("/live/liveData/like") != -1) {
 			path = 'https://im.fhhx.runtzh.com';
 		}
-		
-		
+
+
 		// uni.showLoading({
 		// 	title: '加载中'
 		// });
@@ -68,12 +63,12 @@ export default class Request {
 				method: method,
 				success: (res) => {
 					//收到开发者服务器成功返回的回调函数
-					if(type !==0&&(res.data.code == 401 || res.data.code == 4001||res.data.code == 4004)) {
+					if (type !== 0 && (res.data.code == 401 || res.data.code == 4001 || res.data.code == 4004)) {
 						store.commit('setCoureLogin', 2);
 						uni.removeStorageSync("userinfos")
 						uni.removeStorageSync('userInfo');
 						uni.removeStorageSync('TOKEN_WEXIN');
-						if(type==1) {
+						if (type == 1) {
 							uni.removeStorageSync('AppTokenmini_MYCourse')
 						}
 						resolve({ code: 401, data: null });
@@ -81,17 +76,17 @@ export default class Request {
 					}
 					if (res.data.code == 401) { //没有权限直接退出到登录界面
 						let pages = getCurrentPages();
-						pages.forEach(function(element) {
+						pages.forEach(function (element) {
 							if (element != undefined && element.route ==
 								"pages/auth/login") {
 								resolve(res.data)
 								return;
 							}
 						});
-						let url = pages[ pages.length - 1]; //当前页页面实例
+						let url = pages[pages.length - 1]; //当前页页面实例
 						//如果登录界面已打开,自动关闭
-						if(url!=undefined&&url.route=="pages/auth/login"){
-						 	resolve(res.data)
+						if (url != undefined && url.route == "pages/auth/login") {
+							resolve(res.data)
 							return;
 						}
 						uni.navigateTo({
@@ -113,6 +108,7 @@ export default class Request {
 				},
 				fail: (res) => {
 					//接口调用失败的回调函数
+					reject(res);
 				},
 				complete: (res) => {
 					//接口调用结束的回调函数(调用成功、失败都会执行)

+ 113 - 33
components/channel.vue

@@ -8,7 +8,7 @@
 						<text class="section-title">我的频道</text>
 						<text class="txt">拖拽可以排序</text>
 					</view>
-					<image class="w40 h40" src="/static/images/pop_close_icon.png" @click="show=false"></image>
+					<image class="w40 h40" src="https://cdn.his.cdwjyyh.com/images/pop_close_icon.png" @click="$emit('close')"></image>
 				</view>
 				<!-- 拖拽容器 -->
 				<view class="channel-list" id="channelList">
@@ -17,20 +17,19 @@
 						@touchmove="(e) => handleMove(e, index)" @touchend="handleEnd" @touchcancel="handleEnd">
 						<!-- 拖拽中的元素特殊样式 -->
 						<view class="channel-content" :class="{ 
-              'drag-item': isDragging && dragIndex === index 
-            }" :style="{
-              transform: isDragging && dragIndex === index 
-                ? `translate(${dragOffsetX}px, ${dragOffsetY}px) scale(1.05)` 
-                : 'none',
-              zIndex: isDragging && dragIndex === index ? 999 : 1,
-              opacity: isDragging && dragIndex === index ? 0.9 : 1,
-              transition: isDragging && dragIndex === index ? 'none' : 'all 0.15s ease-out'
-            }" @tap="handleChannelTap(item)">
+					      'drag-item': isDragging && dragIndex === index 
+					    }" :style="{
+					      transform: isDragging && dragIndex === index 
+					        ? `translate(${dragOffsetX}px, ${dragOffsetY}px) scale(1.05)` 
+					        : 'none',
+					      zIndex: isDragging && dragIndex === index ? 999 : 1,
+					      opacity: isDragging && dragIndex === index ? 0.9 : 1,
+					      transition: isDragging && dragIndex === index ? 'none' : 'all 0.15s ease-out'
+					    }" @tap="handleChannelTap(item)">
 							<text>{{ item.name }}</text>
-							<!-- 保留删除图标 -->
-							<image v-if="index !== 0" class="delete-icon" src="/static/images/remove_icon.png"
-								@tap.stop="removeFromMyChannels(index)">
-						</view>
+							<image v-if="index !== 0" class="delete-icon" src="https://cdn.his.cdwjyyh.com/images/remove_icon.png"
+								@tap.stop="removeFromMyChannels(index)"/>
+							</view>
 
 						<!-- 拖拽占位符-->
 						<!-- <view v-if="isDragging && placeholderIndex === index" class="channel-placeholder"></view> -->
@@ -49,19 +48,23 @@
 						<view class="channel-content" :class="isChannelInMyList(item.id)?'active':''">
 							<text>{{ item.name }}</text>
 							<!-- 保留添加图标 -->
-							<image v-if="!isChannelInMyList(item.id)" class="add-icon" src="/static/images/add_icon.png"
+							<image v-if="!isChannelInMyList(item.id)" class="add-icon" src="https://cdn.his.cdwjyyh.com/images/add_icon.png"
 								@tap="addToMyChannels(item)">
 							</image>
 						</view>
 					</view>
 				</view>
 			</view>
-			<view class="success">完成</view>
+			<view class="success" @click="handleClose">完成</view>
 		</view>
 	</u-popup>
 </template>
-
 <script>
+	import {
+		getMyProductCate,
+		channelAdd,
+		channelDelete
+	} from "@/api/index.js"
 	export default {
 		props: {
 			show: {
@@ -138,11 +141,45 @@
 		},
 		mounted() {
 			this.$nextTick(() => this.calcItemRects());
+			// 组件挂载时获取我的频道
+			this.getMyChannels();
 		},
 		methods: {
-			handleClose() {
-				this.$emit('update:show', false); // 通知父组件关闭
-				this.$emit('close');
+			// 获取我的频道
+			getMyChannels() {
+				getMyProductCate().then(
+					res => {
+						if (res.code == 200) {
+							console.log("获取我的频道", res.data);
+							// 更新我的频道列表
+							if (res.data && res.data.length > 0) {
+								// 将返回的数据转换为频道需要的格式
+								const channels = res.data.map(item => ({
+									id: item.cateId,
+									name: item.cateName,
+									pic: item.pic,
+									isSelect: item.isSelect
+								}));
+								// 更新全部频道列表
+								this.allChannels = channels;
+								// 保持我的频道列表不变,使用父组件传递的初始值
+								// 或者根据 isSelect 字段过滤我的频道
+								const myChannels = channels.filter(item => item.isSelect === 1);
+								if (myChannels.length > 0) {
+									this.myChannels = myChannels;
+								}
+								this.$nextTick(() => this.calcItemRects());
+								this.$emit('channels-change', {
+									myChannels: this.myChannels,
+									allChannels: this.allChannels
+								});
+							}
+						}
+					},
+					rej => {
+						console.error("获取我的频道失败", rej);
+					}
+				);
 			},
 			// 计算所有频道项的位置信息(保留原有逻辑,优化计算精度)
 			calcItemRects() {
@@ -178,24 +215,67 @@
 			addToMyChannels(channel) {
 				if (this.isChannelInMyList(channel.id)) return;
 
-				this.myChannels = [...this.myChannels, channel];
-				this.$nextTick(() => this.calcItemRects());
-				this.$emit('channels-change', {
-					myChannels: this.myChannels,
-					allChannels: this.allChannels
-				});
+				// 调用添加频道API
+				channelAdd(channel.id).then(
+					res => {
+						if (res.code == 200) {
+							console.log("添加频道成功", channel);
+							this.myChannels = [...this.myChannels, channel];
+							this.$nextTick(() => this.calcItemRects());
+							this.$emit('channels-change', {
+								myChannels: this.myChannels,
+								allChannels: this.allChannels
+							});
+						} else {
+							console.error("添加频道失败", res.msg);
+							uni.showToast({
+								title: res.msg || '添加频道失败',
+								icon: 'none'
+							});
+						}
+					},
+					rej => {
+						console.error("添加频道失败", rej);
+						uni.showToast({
+							title: '网络错误,请重试',
+							icon: 'none'
+						});
+					}
+				);
 			},
 
 			// 从我的频道中移除(保留原有功能)
 			removeFromMyChannels(index) {
 				if (index === 0 || this.isDragging) return;
 
-				this.myChannels.splice(index, 1);
-				this.$nextTick(() => this.calcItemRects());
-				this.$emit('channels-change', {
-					myChannels: this.myChannels,
-					allChannels: this.allChannels
-				});
+				const channel = this.myChannels[index];
+				// 调用删除频道API
+				channelDelete(channel.id).then(
+					res => {
+						if (res.code == 200) {
+							console.log("删除频道成功", channel);
+							this.myChannels.splice(index, 1);
+							this.$nextTick(() => this.calcItemRects());
+							this.$emit('channels-change', {
+								myChannels: this.myChannels,
+								allChannels: this.allChannels
+							});
+						} else {
+							console.error("删除频道失败", res.msg);
+							uni.showToast({
+								title: res.msg || '删除频道失败',
+								icon: 'none'
+							});
+						}
+					},
+					rej => {
+						console.error("删除频道失败", rej);
+						uni.showToast({
+							title: '网络错误,请重试',
+							icon: 'none'
+						});
+					}
+				);
 			},
 
 			// 点击频道(保留原有功能)
@@ -343,7 +423,7 @@
 
 			// 关闭弹窗(保留原有功能)
 			handleClose() {
-				this.show = false;
+				this.$emit('update:show', false); // 通知父组件关闭
 				this.$emit('close');
 			}
 		}

+ 1 - 1
components/chengpeng-audio/redme.md

@@ -9,7 +9,7 @@
 ```javascript
 //html
 <template>
-  <free-audio startPic='/static/images/icon/play.png' endPic='/static/images/icon/stop.png' :audioId='audio1' :url='path'></free-audio>
+  <free-audio startPic='https://cdn.his.cdwjyyh.com/images/icon/play.png' endPic='https://cdn.his.cdwjyyh.com/images/icon/stop.png' :audioId='audio1' :url='path'></free-audio>
 </template>
 
 //js

+ 510 - 0
components/coupon-popup/coupon-popup.vue

@@ -0,0 +1,510 @@
+<template>
+	<view v-if="value" class="coupon-popup-overlay" @click="close">
+		<view class="coupon-popup" @click.stop>
+			<view class="coupon-popup-header">
+				<view class="coupon-popup-title">领取优惠券</view>
+				<view class="coupon-popup-close" @click="close">×</view>
+			</view>
+			<view class="coupon-popup-content">
+				<view v-if="couponsList.length > 0" class="tui-coupon-list">
+					<view class="tui-coupon-item tui-top20" v-for="(item, index) in couponsList" :key="index">
+						<image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/bg_coupon_3x.png" class="tui-coupon-bg" mode="widthFix"></image>
+						<view class="tui-coupon-item-left">
+							<view class="tui-coupon-price-box" :class="{ 'tui-color-grey': item.receiveCount>0 }">
+								<view class="tui-coupon-price-sign">¥</view>
+								<view class="tui-coupon-price">{{ item.couponPrice }}</view>
+							</view>
+							<view class="tui-coupon-intro">满{{ item.useMinPrice }}元可用</view>
+						</view>
+						<view class="tui-coupon-item-right">
+							<view class="tui-coupon-content">
+								<view class="tui-coupon-title-box">
+									<view class="tui-coupon-title">{{ item.couponName }}</view>
+								</view>
+								<view class="tui-coupon-rule">
+									<view class="tui-rule-box tui-padding-btm">
+										<view class="tui-coupon-circle"></view>
+										<view class="tui-coupon-text">不可叠加使用</view>
+									</view>
+									<view class="tui-rule-box">
+										<view class="tui-coupon-circle"></view>
+										<view class="tui-coupon-text">{{ item.limitTime }} 到期</view>
+									</view>
+								</view>
+							</view>
+						</view>
+						<view class="tui-btn-box">
+							<view 
+								class="btn receive" 
+								@click="getCouponIssueById(item)"
+								:class="{ 'btn-received': item.receiveCount > 0 }"
+							>
+								{{ item.receiveCount > 0 ? '已领取' : '领取' }}
+							</view>
+						</view>
+					</view>
+				</view>
+				<view v-else class="no-data-box">
+					<image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/no_data.png" mode="aspectFit"></image>
+					<view class="empty-title">暂无优惠券</view>
+					<view class="empty-desc">更多优惠敬请期待</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+import { getCompanyCouponIssueList, receive, getCouponIssueById as apiGetCouponIssueById } from '@/api/coupon'
+
+export default {
+	name: 'CouponPopup',
+	props: {
+		value: {
+			type: Boolean,
+			default: false
+		}
+	},
+	data() {
+		return {
+			couponsList: [],
+			loading: false,
+			loadend: false,
+			page: 1,
+			limit: 10
+		}
+	},
+	watch: {
+		value: {
+			immediate: true,
+			handler(newVal) {
+				if (newVal) {
+					this.loadCoupons()
+				}
+			}
+		}
+	},
+	methods: {
+		// 关闭弹窗
+		close() {
+			this.$emit('input', false)
+		},
+
+		// 加载优惠券列表
+		loadCoupons() {
+			this.page = 1
+			this.couponsList = []
+			this.loadend = false
+			this.getCouponsList()
+		},
+
+		// 获取优惠券列表
+		getCouponsList() {
+			if (this.loadend) return
+			this.loading = true
+			getCompanyCouponIssueList().then(res => {
+				this.loading = false
+				if (res.code == 200) {
+					this.couponsList.push.apply(this.couponsList, res.data.list)
+					this.loadend = res.data.list.length < this.limit
+					this.page++
+				}
+			}).catch(err => {
+				this.loading = false
+				console.error('获取优惠券列表失败:', err)
+			})
+		},
+		
+	// 获取销售可用套餐卷
+		getCouponIssueById(item) {
+			console.log('获取销售可用套餐卷item:', item)
+			if (this.loading) return
+			if (item.receiveCount > 0) return
+			this.loading = true
+			// 调用接口获取优惠券信息
+			const data = { id: item.id };
+			console.log('API参数:', data)
+			apiGetCouponIssueById(data).then(res => {
+				this.loading = false
+				console.log('获取销售可用套餐卷接口返回:', res)
+				if (res && (res.code == 200 || res.msg == "success")) {
+					console.log('获取销售可用套餐卷成功,准备调用领取方法')
+					// 调用领取优惠券方法,传递完整的item对象
+					this.receiveCoupon(item, res.code)
+				} else {
+					console.error('获取销售可用套餐卷失败:', res.message || '接口返回错误')
+					uni.showToast({
+						title: res.message || '获取优惠券信息失败',
+						icon: 'none'
+					})
+				}
+			}).catch(err => {
+				this.loading = false
+				console.error('获取销售可用套餐卷异常:', err)
+				uni.showToast({
+					title: '获取优惠券信息失败',
+					icon: 'none'
+				})
+			})
+		},
+		// 领取优惠券
+		receiveCoupon(item, code) {
+			console.log('领取优惠券item:', item)
+			console.log('领取优惠券code:', code)
+			if (!item) {
+				console.error('领取优惠券失败:item 参数未定义')
+				return
+			}
+			if (item.receiveCount > 0) return
+			receive({ couponIssueId: item.id, code: code }).then(res => {
+				if (res.code == 200) {
+					uni.showToast({
+						title: '领取成功',
+						icon: 'success'
+					})
+					// 更新优惠券状态
+					item.receiveCount = 1
+				} else {
+					uni.showToast({
+						title: res.message || '领取失败',
+						icon: 'none'
+					})
+				}
+			}).catch(err => {
+				console.error('领取优惠券失败:', err)
+				uni.showToast({
+					title: '领取失败',
+					icon: 'none'
+				})
+			})
+		}
+	}
+}
+</script>
+
+<style scoped lang="scss">
+/* 优惠券弹窗样式 */
+.coupon-popup-overlay {
+	position: fixed;
+	top: 0;
+	left: 0;
+	right: 0;
+	bottom: 0;
+	background: rgba(0, 0, 0, 0.5);
+	display: flex;
+	align-items: center;
+	justify-content: center;
+	z-index: 9999;
+}
+
+.coupon-popup {
+	width: 100%;
+	max-height: 80vh;
+	background: #fff;
+	border-radius: 16rpx 16rpx 0 0;
+	overflow: hidden;
+	position: fixed;
+	bottom: 0;
+}
+
+.coupon-popup-header {
+	display: flex;
+	justify-content: space-between;
+	align-items: center;
+	padding: 30rpx;
+	border-bottom: 1rpx solid #EEEEEE;
+}
+
+.coupon-popup-title {
+	font-size: 32rpx;
+	font-weight: 500;
+	color: #333333;
+}
+
+.coupon-popup-close {
+	font-size: 40rpx;
+	color: #999999;
+}
+
+.coupon-popup-content {
+	padding: 20rpx;
+	max-height: 60vh;
+	overflow-y: auto;
+}
+
+/* 优惠券列表样式,参考 coupon.vue */
+.tui-coupon-list {
+	width: 100%;
+	padding: 0 10rpx;
+}
+
+.tui-coupon-item {
+	width: 100%;
+	height: 210rpx;
+	position: relative;
+	display: flex;
+	align-items: center;
+	padding-right: 30rpx;
+	box-sizing: border-box;
+	overflow: hidden;
+	margin-top: 20rpx;
+}
+
+.tui-coupon-bg {
+	width: 100%;
+	height: 210rpx;
+	position: absolute;
+	left: 0;
+	top: 0;
+	z-index: 1;
+}
+
+.tui-coupon-item-left {
+	width: 218rpx;
+	height: 210rpx;
+	position: relative;
+	z-index: 2;
+	display: flex;
+	align-items: center;
+	justify-content: center;
+	flex-direction: column;
+	flex-shrink: 0;
+}
+
+.tui-coupon-price-box {
+	display: flex;
+	color: #e41f19;
+	align-items: flex-end;
+}
+
+.tui-coupon-price-sign {
+	font-size: 30rpx;
+}
+
+.tui-coupon-price {
+	font-size: 32rpx;
+	line-height: 68rpx;
+	font-weight: bold;
+}
+
+.tui-color-grey {
+	color: #888 !important;
+}
+
+.tui-coupon-intro {
+	background: #f7f7f7;
+	padding: 8rpx 10rpx;
+	font-size: 26rpx;
+	line-height: 26rpx;
+	font-weight: 400;
+	color: #666;
+	margin-top: 18rpx;
+}
+
+.tui-coupon-item-right {
+	flex: 1;
+	height: 210rpx;
+	position: relative;
+	z-index: 2;
+	display: flex;
+	align-items: center;
+	justify-content: space-between;
+	padding-left: 24rpx;
+	box-sizing: border-box;
+	overflow: hidden;
+}
+
+.tui-coupon-content {
+	width: 82%;
+	display: flex;
+	flex-direction: column;
+	justify-content: center;
+}
+
+.tui-coupon-title-box {
+	display: flex;
+	align-items: center;
+}
+
+.tui-coupon-title {
+	width: 100%;
+	font-size: 26rpx;
+	color: #333;
+	white-space: nowrap;
+	overflow: hidden;
+	text-overflow: ellipsis;
+}
+
+.tui-coupon-rule {
+	padding-top: 52rpx;
+}
+
+.tui-rule-box {
+	display: flex;
+	align-items: center;
+	transform: scale(0.8);
+	transform-origin: 0 100%;
+}
+
+.tui-padding-btm {
+	padding-bottom: 6rpx;
+}
+
+.tui-coupon-circle {
+	width: 8rpx;
+	height: 8rpx;
+	background: rgb(160, 160, 160);
+	border-radius: 50%;
+}
+
+.tui-coupon-text {
+	font-size: 28rpx;
+	line-height: 28rpx;
+	font-weight: 400;
+	color: #666;
+	padding-left: 8rpx;
+	white-space: nowrap;
+}
+
+.tui-btn-box {
+			position: absolute;
+			right: 20rpx;
+			bottom: 40rpx;
+			z-index: 10;
+			.btn {
+				width: 155upx;
+				height: 64upx;
+				line-height: 64upx;
+				font-size: 26upx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				text-align: center;
+				border-radius: 32upx;
+				margin-left: 15upx;
+				transition: all 0.3s ease;
+
+				&.receive {
+					background: linear-gradient(135deg, #FF6B6B 0%, #FF4757 100%);
+					color: #FFFFFF;
+					box-shadow: 0 4rpx 12rpx rgba(255, 107, 107, 0.3);
+					
+					&:hover {
+						transform: translateY(-2rpx);
+						box-shadow: 0 6rpx 16rpx rgba(255, 107, 107, 0.4);
+					}
+					
+					&:active {
+						transform: translateY(0);
+						box-shadow: 0 2rpx 8rpx rgba(255, 107, 107, 0.3);
+					}
+				}
+
+				&.btn-received {
+					background: #F5F5F5;
+					color: #999999;
+					border: 1rpx solid #E0E0E0;
+				}
+			}
+		}
+
+		.no-data-box {
+			display: flex;
+			flex-direction: column;
+			align-items: center;
+			justify-content: center;
+			padding: 120rpx 0;
+			background: linear-gradient(135deg, #FAFAFA 0%, #F5F5F5 100%);
+			margin: 20rpx;
+			border-radius: 16rpx;
+			box-shadow: inset 0 2rpx 8rpx rgba(0, 0, 0, 0.05);
+		}
+
+		.no-data-box image {
+			width: 200rpx;
+			height: 200rpx;
+			margin-bottom: 30rpx;
+			opacity: 0.7;
+		}
+
+		.empty-title {
+			font-size: 30rpx;
+			color: #666666;
+			font-weight: 500;
+			margin-bottom: 16rpx;
+		}
+
+		.empty-desc {
+			font-size: 24rpx;
+			color: #999999;
+			line-height: 36rpx;
+			text-align: center;
+			padding: 0 40rpx;
+		}
+
+		/* 优惠券项美化 */
+		.tui-coupon-item {
+			transition: all 0.3s ease;
+			transform-origin: center;
+			
+			&:hover {
+				transform: translateY(-4rpx);
+				box-shadow: 0 8rpx 24rpx rgba(0, 0, 0, 0.1);
+			}
+		}
+
+		/* 价格样式优化 */
+		.tui-coupon-price {
+			font-size: 40rpx;
+			line-height: 68rpx;
+			font-weight: bold;
+			background: linear-gradient(135deg, #FF6B6B 0%, #FF4757 100%);
+			-webkit-background-clip: text;
+			-webkit-text-fill-color: transparent;
+			background-clip: text;
+		}
+
+		.tui-color-grey .tui-coupon-price {
+			background: linear-gradient(135deg, #999999 0%, #777777 100%);
+			-webkit-background-clip: text;
+			-webkit-text-fill-color: transparent;
+			background-clip: text;
+		}
+
+		/* 标题样式优化 */
+		.tui-coupon-title {
+			width: 100%;
+			font-size: 28rpx;
+			color: #333;
+			font-weight: 500;
+			white-space: nowrap;
+			overflow: hidden;
+			text-overflow: ellipsis;
+		}
+
+		/* 规则样式优化 */
+		.tui-coupon-rule {
+			padding-top: 40rpx;
+		}
+
+		.tui-coupon-text {
+			font-size: 24rpx;
+			line-height: 28rpx;
+			font-weight: 400;
+			color: #888;
+			padding-left: 8rpx;
+			white-space: nowrap;
+		}
+
+		/* 分隔线美化 */
+		.tui-coupon-item-left::after {
+			content: '';
+			position: absolute;
+			right: 0;
+			top: 50%;
+			transform: translateY(-50%);
+			width: 1rpx;
+			height: 120rpx;
+			background: linear-gradient(180deg, transparent 0%, rgba(255, 255, 255, 0.6) 50%, transparent 100%);
+			z-index: 1;
+		}
+</style>

+ 1 - 1
components/likeProduct.vue

@@ -1,7 +1,7 @@
 <template>
    <view>
 		<view class="like-title">
-			<image src="/static/images/like.png" mode=""></image>
+			<image src="https://cdn.his.cdwjyyh.com/images/like.png" mode=""></image>
 			<text class="text">猜你喜欢</text>
 		</view>
 		<view class="like-list">

+ 432 - 0
components/product-spec-popup/product-spec-popup.vue

@@ -0,0 +1,432 @@
+<template>
+	<px-popup-bottom ref="popup" :visible.sync="localVisible" title=" " radius="32" maxHeight="1024" @close="handleClose">
+		<view class="product-spec">
+			<!-- 商品信息 -->
+			<view class="pro-info">
+				<view class="img-box" @click="showImg(productValueSelect.image)">
+					<image
+						:src="productValueSelect.image==null||productValueSelect.image==''?product.image:productValueSelect.image"
+						mode="aspectFill"></image>
+				</view>
+				<view class="info-text">
+					<view class="product-name">{{(product.productName || product.title) || '产品名称'}}</view>
+					<view class="price">
+						<text class="title">会员价</text>
+						<text class="unit">¥</text><text
+							class="bold">{{splitPrice(productValueSelect.price).integer}}</text>.{{splitPrice(productValueSelect.price).decimal}}
+					</view>
+					<view class="desc-box">
+						<text class="text">月售{{product.sales || '0'}}件</text>
+						<text v-if="selectedSpec" class="text">库存{{selectedSpec.stock || 0}}件</text>
+					</view>
+				</view>
+			</view>
+			<!-- 规格 -->
+			<view v-if="productSpecs && productSpecs.length > 0" class="spec-box">
+				<view class="title">规格</view>
+				<view class="spec-list">
+					<view v-for="(spec, index) in productSpecs" :key="index"
+						:class="selectedSpec && selectedSpec.id == spec.id ? 'item active':'item'" @click="selectSpec(spec)">
+						{{ spec.sku || '默认规格' }}
+					</view>
+				</view>
+			</view>
+			<!-- 数量 -->
+			<view class="price-num">
+				<view class="label">数量</view>
+				<view class="num-box">
+					<view class="img-box" @click="lessNum()">
+						<image v-if="specNum <= 1" src="https://cdn.his.cdwjyyh.com/images/jian.png" mode=""></image>
+						<image v-else src="https://cdn.his.cdwjyyh.com/images/jian2.png" mode=""></image>
+					</view>
+					<input type="number" @change="changeNum" v-model="specNum" />
+					<view class="img-box" @click="addNum()">
+						<image src="https://cdn.his.cdwjyyh.com/images/add.png" mode=""></image>
+					</view>
+				</view>
+			</view>
+			<button :class="isSubmitting?'btnsel sub-btn':'sub-btn'" :disabled="isSubmitting"
+				@click="submit">{{ isSubmitting ? (isBuyMode ? '正在跳转...' : '订单生成中...') : (isBuyMode ? '立即购买' : '确定') }}</button>
+		</view>
+	</px-popup-bottom>
+</template>
+
+<script>
+	import PxPopupBottom from '@/components/px-popup-bottom/px-popup-bottom.vue'
+	import { addCart, getProductValues } from '@/api/index'
+
+export default {
+	name: 'ProductSpecPopup',
+	components: {
+		PxPopupBottom
+	},
+	props: {
+		visible: {
+			type: Boolean,
+			default: false
+		},
+		product: {
+			type: Object,
+			default: () => ({})
+		},
+		isBuyMode: {
+			type: Boolean,
+			default: false
+		}
+	},
+	data() {
+		return {
+			localVisible: false,
+			productValueSelect: {
+				image: '',
+				price: 0
+			},
+			specNum: 1,
+			isSubmitting: false,
+			productSpecs: [],
+			selectedSpec: null
+		}
+	},
+	watch: {
+		visible: {
+			handler(newVal) {
+				this.localVisible = newVal
+				if (newVal && this.product) {
+					this.initData()
+					this.getProductValuesList()
+				}
+			},
+			immediate: true
+		},
+		localVisible: {
+			handler(newVal) {
+				if (!newVal) {
+					this.$emit('update:visible', false)
+				}
+			}
+		},
+		product: {
+			handler(newVal) {
+				if (newVal && this.localVisible) {
+					this.initData()
+					this.getProductValuesList()
+				}
+			},
+			deep: true
+		}
+	},  
+	methods: {
+		// 处理弹窗关闭
+		handleClose() {
+			this.localVisible = false
+			this.$emit('update:visible', false)
+		},
+		initData() {
+			this.specNum = 1
+			this.isSubmitting = false
+			this.selectedSpec = null
+			this.productValueSelect = {
+				image: this.product.image || this.product.firstImage || '',
+				price: this.product.price || 0
+			}
+		},
+		// 获取商品规格列表
+		getProductValuesList() {
+			const productId = this.product.id || this.product.productId
+			if (!productId) return
+
+			getProductValues(productId).then(
+				res => {
+					if (res.code == 200) {
+						console.log("获取商品规格列表", res.data)
+						// 保存商品规格列表
+						this.productSpecs = res.data || []
+						// 默认选择第一个规格
+						if (res.data && res.data.length > 0) {
+							this.selectedSpec = res.data[0]
+							this.productValueSelect = {
+								image: res.data[0].image || this.product.image || this.product.firstImage || '',
+								price: res.data[0].price || 0
+							}
+						}
+					}
+				},
+				rej => {
+					console.error("获取商品规格列表失败", rej)
+				}
+			)
+		},
+		// 分割价格
+		splitPrice(price) {
+			const priceStr = parseFloat(price).toFixed(2).toString()
+			return {
+				integer: priceStr.split('.')[0],
+				decimal: priceStr.split('.')[1]
+			}
+		},
+		// 显示图片
+		showImg(image) {
+			console.log('显示图片:', image)
+			// 可以实现图片预览功能
+		},
+		// 减少数量
+		lessNum() {
+			if (this.specNum > 1) {
+				this.specNum--
+			}
+		},
+		// 增加数量
+		addNum() {
+			this.specNum++
+		},
+		// 改变数量
+		changeNum(e) {
+			let value = parseInt(e.target.value)
+			if (isNaN(value) || value < 1) {
+				value = 1
+			}
+			this.specNum = value
+		},
+		// 选择规格
+		selectSpec(spec) {
+			console.log('选择商品规格:', spec)
+			this.selectedSpec = spec
+			this.productValueSelect = {
+				image: spec.image || this.product.image || this.product.firstImage || '',
+				price: spec.price || 0,
+				sales: spec.sales || 0
+			}
+		},
+		// 提交
+		submit() {
+			console.log('提交订单')
+			this.isSubmitting = true
+			
+			if (this.isBuyMode) {
+				// 购买模式:跳转到订单确认页面
+				console.log('立即购买:', this.product, this.specNum)
+				this.isSubmitting = false
+				this.localVisible = false
+				this.$emit('update:visible', false)
+				// 跳转到订单确认页面,传递商品信息和数量
+				uni.navigateTo({
+					url: `/pages_shopping/shopping/confirmCreateOrder?productId=${this.product.productId}&buyNum=${this.specNum}&attrValueId=${this.selectedSpec ? this.selectedSpec.id : ''}&indexBuy=true`
+				})
+			} else {
+				// 添加购物车模式:调用添加购物车接口
+				addCart({
+					productId: this.product.id || this.product.productId,
+					cartNum: this.specNum,
+					attrValueId: this.selectedSpec ? this.selectedSpec.id : '' // 使用选中的规格ID
+				}).then(res => {
+					if (res.code == 200) {
+						uni.showToast({
+							title: '添加购物车成功',
+							icon: 'success'
+						})
+						// 通知父组件更新购物车数量
+						this.$emit('cart-updated')
+						this.localVisible = false
+						this.$emit('update:visible', false)
+					} else {
+						uni.showToast({
+							title: res.msg || '添加购物车失败',
+							icon: 'none'
+						})
+					}
+					this.isSubmitting = false
+				}).catch(error => {
+					console.error('添加购物车失败:', error)
+					uni.showToast({
+						title: '网络错误,请重试',
+						icon: 'none'
+					})
+					this.isSubmitting = false
+				})
+			}
+		}
+	}
+}
+</script>
+
+<style lang="scss" scoped>
+	.product-spec {
+		padding: 40rpx 30rpx;
+		.pro-info {
+			display: flex;
+			align-items: center;
+
+			.img-box {
+				width: 200rpx;
+				height: 200rpx;
+				background: #FFFFFF;
+				border-radius: 16rpx;
+				overflow: hidden;
+				margin-right: 30rpx;
+
+				image {
+					width: 100%;
+					height: 100%;
+				}
+			}
+
+			.product-name {
+				font-weight: 600;
+				font-size: 32rpx;
+				color: #333333;
+			}
+
+			.info-text {
+				height: 200rpx;
+				display: flex;
+				flex-direction: column;
+
+				.price {
+					margin-top: 16rpx;
+					font-weight: 600;
+					font-size: 26rpx;
+					color: #FA341E;
+
+					.title {
+						font-weight: 500;
+						font-size: 24rpx;
+						color: #FF5030;
+						margin-right: 8rpx;
+					}
+
+					.unit {
+						font-size: 20rpx;
+						color: #FA341E;
+					}
+
+					.bold {
+						font-size: 48upx;
+						font-weight: 600;
+						color: #FA341E;
+					}
+				}
+
+				.desc-box {
+					margin-top: 16rpx;
+					display: flex;
+					flex-direction: column;
+					padding-bottom: 9rpx;
+
+					.text {
+						font-size: 26rpx;
+						font-family: PingFang SC;
+						font-weight: 500;
+						color: #999999;
+						margin-top: 27rpx;
+						line-height: 1;
+
+						&:first-child {
+							margin-top: 0;
+						}
+					}
+				}
+			}
+		}
+
+		.spec-box {
+			padding-top: 50rpx;
+
+			.title {
+				font-size: 34rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #111111;
+				line-height: 1;
+			}
+
+			.spec-list {
+				display: flex;
+				flex-wrap: wrap;
+				margin-top: 30rpx;
+
+				.item {
+					box-sizing: border-box;
+					padding: 12rpx 24rpx;
+					font-size: 28rpx;
+					color: #333333;
+					background: #F5F7FA;
+					border-radius: 28rpx 28rpx 28rpx 28rpx;
+					margin-right: 24rpx;
+					margin-bottom: 30rpx;
+
+					&.active {
+						font-size: 24rpx;
+						color: #02B176;
+						background: #EBFAF6;
+						border: 2rpx solid #02B176;
+					}
+				}
+			}
+		}
+
+		.price-num {
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+			margin-top: 14rpx;
+
+			.label {
+				font-size: 34rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #111111;
+			}
+
+			.num-box {
+				display: flex;
+				align-items: center;
+
+				.img-box {
+					width: 60rpx;
+					height: 60rpx;
+
+					display: flex;
+					align-items: center;
+					justify-content: center;
+
+					image {
+						width: 25rpx;
+						height: 25rpx;
+					}
+				}
+
+				input {
+					width: 60rpx;
+					height: 60rpx;
+					line-height: 60rpx;
+					font-size: 28rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #111111;
+					background: #F5F7FA;
+					text-align: center;
+					border: none;
+				}
+			}
+		}
+
+		.sub-btn {
+			width: 100%;
+			height: 88rpx;
+			line-height: 88rpx;
+			text-align: center;
+			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #FFFFFF;
+			border-radius: 44rpx;
+			margin-top: 30rpx;
+			background: linear-gradient(136deg, #38D97D 0%, #02B176 100%);
+			border: none;
+			
+			&.btnsel {
+				opacity: 0.6;
+			}
+		}
+	}
+</style>

+ 106 - 0
components/public/scs-helang-waterfall.vue

@@ -0,0 +1,106 @@
+<template>
+    <!--
+ * @Author: jmy
+ * @Date: 2026-01-09 12:02:41
+ * @LastEditors: Please set LastEditors
+ * @LastEditTime: 2026-01-09 15:02:20
+ * @Description: helang瀑布流组件
+-->
+    <view class="px-12 mt-14 flex  justify-between gap-11">
+        <view class="flex-1" :style="{ gap: gapValue + 'px' }" v-for="(column, columnIndex) in columnCount"
+            :key="columnIndex">
+            <view v-for="(item, index) in getColumnwaterfallList(columnIndex)" :key="item.id || index"
+                class="w-all relative rounded-8 overflow-hidden prodoct-item mb-11">
+                <slot name="special"></slot>
+                <view class="w-all h-171 relative rounded-t-8 overflow-hidden">
+                    <image class="w-all h-171 bg-img" :src="item.image" lazy-load @load="handleImageLoad(item.id)"
+                        :class="{ 'opacity-10': isImageLoaded(item.id), 'opacity-0': !isImageLoaded(item.id) }"
+                        mode="aspectFill"></image>
+                    <!-- 加载中显示占位符 -->
+                    <view v-if="!isImageLoaded(item.id)"
+                        class="w-all h-171 absolute top-0 left-0 flex items-center justify-center bg-gray-100">
+                        <text class="scroll-loading scroll-rotate"></text>
+                    </view>
+                </view>
+                <slot name="default" :item="item"></slot>
+            </view>
+        </view>
+    </view>
+</template>
+
+<script>
+export default {
+    props: {
+        waterfallList: {
+            type: Array,
+            default: () => [
+                {
+                    id: 1,
+                    image: 'https://img1.baidu.com/it/u=2172818577,3783888802&fm=253&app=138&f=JPEG?w=800&h=1422',
+                    title: '云南白药EGER每瓶重50g保险液每测试',
+                },
+                {
+                    id: 2,
+                    image: 'https://img1.baidu.com/it/u=2172818577,3783888802&fm=253&app=138&f=JPEG?w=800&h=1422',
+                    title: '云南白药EGER每瓶重50g保险液每测试',
+                },
+            ]
+        },
+        calcGap: {
+            type: Number,
+            default: 11
+        },
+        columnCount: {
+            type: Number,
+            default: 2
+        }
+    },
+    data() {
+        return {
+            // 默认示例数据
+            defaultwaterfallList: [
+
+            ],
+            // 图片加载状态管理
+            imageLoadingStatus: {}
+        }
+    },
+    computed: {
+        gapValue() {
+            return this.calcGap / this.columnCount
+        }
+    },
+    methods: {
+        // 检查图片是否已加载
+        isImageLoaded(id) {
+            // 特殊项(本地图片)默认已加载
+            if (!id) return true;
+            return this.imageLoadingStatus[id] === true;
+        },
+
+        // 处理图片加载完成事件
+        handleImageLoad(id) {
+            if (id) {
+                this.$set(this.imageLoadingStatus, id, true);
+            }
+        },
+
+        // 按列分配数据项
+        getColumnwaterfallList(columnIndex) {
+            const waterfallList = [];
+            const columnCount = 2;
+
+            // 将数据项分配到不同列
+            this.waterfallList.forEach((item, index) => {
+                if (index % columnCount === columnIndex) {
+                    waterfallList.push(item);
+                }
+            });
+
+            return waterfallList;
+        }
+    }
+}
+</script>
+
+<style lang="scss" scoped></style>

+ 1 - 1
components/public/scs-scroll-navbar.vue

@@ -63,7 +63,7 @@ export default {
     // 选中导航项的图片
     activeImage: {
       type: String,
-      default: '/static/images/home/tj_tab_hover_icon20@2x.png',
+      default: 'https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/tj_tab_hover.png',
     },
     // 是否使用选中导航项的图片
     isUseActImg: {

+ 2 - 2
components/px-popup-bottom/px-popup-bottom.vue

@@ -24,7 +24,6 @@
 </template>
 
 <script>
-	import iconClose from '@/static/images/close40.png'
 	export default {
 		props: {
 			title: { //标题
@@ -82,7 +81,7 @@
 				isAnimaStart: false,
 				rpxRate: "",
 				cotRadius: 0,
-				closeIcon: iconClose
+				closeIcon: 'https://cdn.his.cdwjyyh.com/images/close40.png'
 			}
 		},
 		watch: {
@@ -144,6 +143,7 @@
 		},
 		methods: {
 			onClose() {
+				console.log("关闭弹窗");
 				this.$emit("update:visible", false);
 				this.$emit('close')
 			},

+ 7 - 7
components/task.vue

@@ -4,10 +4,10 @@
 			<!-- 头部 -->
 			<view class="header">
 				<view class="row bg">
-					<image class="w40 h40" src="/static/images/answer_icon.png"></image>
-					<image class="w428 h64" src="/static/images/collecting_coins_title.png"></image>
+					<image class="w40 h40" src="https://cdn.his.cdwjyyh.com/images/answer_icon.png"></image>
+					<image class="w428 h64" src="https://cdn.his.cdwjyyh.com/images/collecting_coins_title.png"></image>
 					<!-- 修改这里:改为调用 handleClose 方法 -->
-					<image class="w40 h40" src="/static/images/pop_close_icon.png" @click="handleClose"></image>
+					<image class="w40 h40" src="https://cdn.his.cdwjyyh.com/images/pop_close_icon.png" @click="handleClose"></image>
 				</view>
 				<!-- 积分信息 -->
 				<view class="row mtb48 plr24">
@@ -16,9 +16,9 @@
 						<text class="num">3688</text>
 					</view>
 					<view class="shop row">
-						<image class="w48 h48" src="/static/images/fanghua_coin_icon.png"></image>
+						<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/fanghua_coin_icon.png"></image>
 						<text class="shop-txt">芳华币商城</text>
-						<image class="w24 h24" src="/static/images/coin_arrow.png"></image>
+						<image class="w24 h24" src="https://cdn.his.cdwjyyh.com/images/coin_arrow.png"></image>
 					</view>
 				</view>
 			</view>
@@ -29,11 +29,11 @@
 				<view v-for="(item, index) in taskList" :key="index" class="list-item">
 					<view class="row">
 						<view class="left">
-							<image class="w88 h88 mr24" src="/static/images/img.png"></image>
+							<image class="w88 h88 mr24" src="https://cdn.his.cdwjyyh.com/images/img.png"></image>
 							<view>
 								<view class="mb8 row">
 									<text class="title">{{ item.title }}({{ item.current }}/{{ item.total }})</text>
-									<image class="w40 h40 mr4 ml8" src="/static/images/fanghua_coin_icon.png"></image>
+									<image class="w40 h40 mr4 ml8" src="https://cdn.his.cdwjyyh.com/images/fanghua_coin_icon.png"></image>
 									<text class="num">+{{ item.points }}</text>
 								</view>
 								<view class="txt">{{ item.desc }}</view>

+ 1 - 1
components/tuiProduct.vue

@@ -1,7 +1,7 @@
 <template>
    <view>
 		<view class="like-title">
-			<image src="/static/images/tui.png" mode=""></image>
+			<image src="https://cdn.his.cdwjyyh.com/images/tui.png" mode=""></image>
 			<text class="text">精选药品</text>
 		</view>
 		<view class="like-list">

+ 1 - 1
manifest.json

@@ -1,6 +1,6 @@
 {
     "name" : "芳华悦选",
-    "appid" : "__UNI__D138114",
+    "appid" : "__UNI__2D7007F",
     "description" : "",
     "versionName" : "1.0.0",
     "versionCode" : "100",

+ 49 - 158
pages.json

@@ -56,27 +56,7 @@
 				}
 			}
 		},
-		{
-			"path": "pages/user/test",
-			"style": {
-				"navigationBarTitleText": "test",
-				"app-plus": {
-					"titleNView": false
-				}
-			}
-
-		},
-		// {
-		//           "path" : "pages/home/doctorCase",
-		//           "style" :                                                                                    
-		//           {
-		//               "navigationBarTitleText": "问诊案例",
-		// 		"app-plus": {
-		// 			"titleNView": false
-		// 		}
-		//           }
-
-		//       },
+		
 		{
 			"path": "pages/doctor/doctorQr",
 			"style": {
@@ -143,44 +123,7 @@
 			}
 
 		},
-		// {
-		//           "path" : "pages/doctor/index",
-		//           "style" :                                                                                    
-		//           {
-		//               "navigationBarTitleText": "问诊",
-		//               "navigationStyle": "custom",
-		//               "enablePullDownRefresh": false
-		//           }
-
-		//       },
-		// {
-		//           "path" : "pages/doctor/doctorList",
-		//           "style" :                                                                                    
-		//           {
-		//               "navigationBarTitleText": "医生列表",
-		//               "enablePullDownRefresh": false
-		//           }
-
-		//       },
-		// {
-		//           "path" : "pages/doctor/doctorDetail",
-		//           "style" :                                                                                    
-		//           {
-		//               "navigationBarTitleText": "医生详情",
-		//               "navigationStyle": "custom",
-		//               "enablePullDownRefresh": false
-		//           }
-
-		//       },
-		// {
-		//           "path" : "pages/doctor/submitOrder",
-		//           "style" :                                                                                    
-		//           {
-		//               "navigationBarTitleText": "发布问诊",
-		//               "enablePullDownRefresh": false
-		//           }
-
-		//       },
+	
 		{
 			"path": "pages/shopping/index",
 			"style": {
@@ -215,34 +158,7 @@
 			}
 
 		}
-		// ,{
-		//     "path" : "pages/doctor/doctorIm",
-		//     "style" :                                                                                    
-		//     {
-		//         "navigationBarTitleText": "问诊会话",
-		//         "enablePullDownRefresh": false
-		//     }
-
-		// }
-
-		// ,{
-		//     "path" : "pages/doctor/paymentOrder",
-		//     "style" :                                                                                    
-		//     {
-		//         "navigationBarTitleText": "支付订单",
-		//         "enablePullDownRefresh": false
-		//     }
-
-		// }
-		// ,{
-		//     "path" : "pages/doctor/doctorOrderIM",
-		//     "style" :                                                                                    
-		//     {
-		//         "navigationBarTitleText": "问诊会话",
-		//         "enablePullDownRefresh": false
-		//     }
-
-		// }
+	
 		, {
 			"path": "pages/home/content",
 			"style": {
@@ -751,6 +667,21 @@
 					}
 
 				}, {
+					"path": "shopping/qualification",
+					"style": {
+						"navigationBarTitleText": "经营执照",
+						"enablePullDownRefresh": false
+					}
+
+				},
+				{
+					"path": "shopping/productEvaluation",
+					"style": {
+						"navigationBarTitleText": "商品评价",
+						"enablePullDownRefresh": false
+					}
+
+				},{
 					"path": "shopping/paymentOrder",
 					"style": {
 						"navigationBarTitleText": "支付订单",
@@ -1000,19 +931,7 @@
 						}
 					}
 				},
-				// {
-				// 	// 直播预告和直播中列表
-				// 	"path": "live/list",
-				// 	"style": {
-				// 		"navigationBarTitleText": "",
-				// 		"navigationStyle": "custom",
-				// 		"scrollIndicator": "none",
-				// 		"navigationBarTextStyle": "black",
-				// 		"app-plus": {
-				// 			"bounce": "none"
-				// 		}
-				// 	}
-				// }, 
+			
 				{
 					// 实时销售榜
 					"path": "live/salesRanking",
@@ -1026,19 +945,6 @@
 						}
 					}
 				},
-				// {
-				// 	// 生活号
-				// 	"path": "live/life",
-				// 	"style": {
-				// 		"navigationBarTitleText": "",
-				// 		"navigationStyle": "custom",
-				// 		"scrollIndicator": "none",
-				// 		"navigationBarTextStyle": "black",
-				// 		"app-plus": {
-				// 			"bounce": "none"
-				// 		}
-				// 	}
-				// },
 
 				{
 					"path": "live/trailer",
@@ -1167,26 +1073,37 @@
 						}
 					}
 				}, {
-					"path": "living",
-					"style": {
-						"navigationBarTitleText": "",
-						"navigationBarTextStyle": "black",
-						"enablePullDownRefresh": true,
-						"navigationStyle": "custom",
-						"softinputMode": "adjustResize", // 必须配置这个才能正常获取高度
-						"app-plus": {
-							"bounce": "none",
-							"videoFullscreen": true,
-							"videoAutoFullscreen": false,
-							"videoObjectFit": "contain"
-						},
-						"h5": {
-							"videoFullscreen": true
-						}
+				"path": "living",
+				"style": {
+					"navigationBarTitleText": "",
+					"navigationBarTextStyle": "black",
+					"enablePullDownRefresh": true,
+					"navigationStyle": "custom",
+					"softinputMode": "adjustResize", // 必须配置这个才能正常获取高度
+					"app-plus": {
+						"bounce": "none",
+						"videoFullscreen": true,
+						"videoAutoFullscreen": false,
+						"videoObjectFit": "contain"
+					},
+					"h5": {
+						"videoFullscreen": true
 					}
 				}
-			]
-		}
+			},
+			{
+				"path": "integral",
+				"style": {
+					"navigationBarTitleText": "我的芳华币",
+					"navigationStyle": "custom",
+					"enablePullDownRefresh": false,
+					"app-plus": {
+						"bounce": "none"
+					}
+				}
+			}
+		]
+	}
 	],
 	"globalStyle": {
 		"navigationBarTextStyle": "black",
@@ -1214,37 +1131,11 @@
 				"iconPath": "/static/images/life.png",
 				"selectedIconPath": "/static/images/life_sel.png",
 				"text": "生活号"
-			},{
-				"pagePath": "pages/live/list",
+			},{"pagePath": "pages/live/list",
 				"iconPath": "/static/images/live.png",
 				"selectedIconPath": "/static/images/live_sel.png",
 				"text": "直播"
 			},
-			
-			// {
-			// 	"pagePath": "pages/home/companyInfo",
-			// 	"iconPath": "/static/images/health.png",
-			// 	"selectedIconPath": "/static/images/health_sel.png",
-			// 	"text": "企业理念"
-			// },
-			// {
-			// 	"pagePath": "pages/shopping/cart",
-			// 	"iconPath": "/static/images/cart.png",
-			// 	"selectedIconPath": "/static/images/cart_sel.png",
-			// 	"text": "购物车"
-			// },
-			// {
-			// 	"pagePath": "pages/doctor/index",
-			// 	"iconPath": "/static/images/see_doctor.png",
-			// 	"selectedIconPath": "/static/images/see_doctor_sel.png",
-			// 	"text": "问诊"
-			// },
-			// {
-			// 	"pagePath": "pages/shopping/index",
-			// 	"iconPath": "/static/images/shop_mall.png",
-			// 	"selectedIconPath": "/static/images/shop_mall_sel.png",
-			// 	"text": "健康商城"
-			// },
 			{
 				"pagePath": "pages/user/index",
 				"iconPath": "/static/images/my.png",

+ 1 - 1
pages/auth/login.vue

@@ -6,7 +6,7 @@
 				<view class="logo">
 					<view class="logo-img">
 						<image
-							src="/static/images/logo.png">
+							src="https://cdn.his.cdwjyyh.com/images/logo.png">
 						</image>
 					</view>
 					<view class="title">芳华悦选</view>

+ 1 - 1
pages/common/launch.vue

@@ -1,7 +1,7 @@
 <template>
 	<view class="content">
 		<view class="loadding" v-if="loadding==true">
-			<image src="/static/images/logo.png"></image>
+			<image src="https://cdn.his.cdwjyyh.com/images/logo.png"></image>
 			<text class="text">芳华悦选</text>
 		</view>
 	</view>

+ 4 - 4
pages/healthy/detail.vue

@@ -18,14 +18,14 @@
 				<view class="peop-box" @click="showUsers">
 					<view class="head-box">
 						<view class="head" v-for="(subitem,j) in views" :key="j">
-							<image :src="subitem.avatar==null?'../../static/images/detault_head.jpg':subitem.avatar" mode=""></image>
+							<image :src="subitem.avatar==null?'https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/detault_head.jpg':subitem.avatar" mode=""></image>
 						</view>
 					</view>
-					<image class="arrow" src="../../static/images/arrow_gray.png" mode=""></image>
+					<image class="arrow" src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/arrow_gray.png" mode=""></image>
 				</view>
 			</view>
 			<view class="share-btn">
-				<image src="../../static/images/share.png" mode=""></image>
+				<image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/share.png" mode=""></image>
 				<text>分享</text>
 				<button  class="share" data-name="shareBtn" open-type="share">分享</button>
 			</view>
@@ -33,7 +33,7 @@
 		<!-- 咨询按钮 -->
 		<view class="inquiry">
 			<view class="content">
-				<image src="../../static/images/consult.png" mode=""></image>
+				<image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/consult.png" mode=""></image>
 				<text class="text">咨询</text>
 				<button class="contact-btn" open-type="contact"></button>
 			</view>

+ 4 - 4
pages/healthy/index.vue

@@ -7,7 +7,7 @@
 			<!-- 搜索框 -->
 			<view class="search-cont">
 				<view class="inner">
-					<image class="icon-search" src="../../static/images/search.png" mode=""></image>
+					<image class="icon-search" src="https://cdn.his.cdwjyyh.com/images/search.png" mode=""></image>
 					<input type="text" v-model="searchValue" placeholder="输入关键字搜索" confirm-type="search" @confirm="doSearch" placeholder-style="font-size:28rpx;color:#BBBBBB;font-family: PingFang SC;" />
 				</view>
 			</view>
@@ -32,11 +32,11 @@
 							<view class="readers">
 								<view class="head-box" v-if="item.viewsList!=null&&item.viewsList.length>0">
 									<view class="head" v-for="(subitem,j) in item.viewsList" :key="j">
-										<image v-if="subitem!=null" :src="subitem.avatar==null?'../../static/images/detault_head.jpg':subitem.avatar" mode=""></image>
+										<image v-if="subitem!=null" :src="subitem.avatar==null?'https://cdn.his.cdwjyyh.com/images/detault_head.jpg':subitem.avatar" mode=""></image>
 									</view>
 								</view>
 								<view class="readings">
-									<image class="eye" src="../../static/images/eye.png" ></image>
+									<image class="eye" src="https://cdn.his.cdwjyyh.com/images/eye.png" ></image>
 									<text class="num">{{item.views}}</text>
 								</view>
 							</view>
@@ -80,7 +80,7 @@
 					},
 					noMoreSize: 10, // 配置列表的总数量要大于等于5条才显示'-- END --'的提示
 					empty: {
-						icon:'/static/images/no_data.png',
+						icon:'https://cdn.his.cdwjyyh.com/images/no_data.png',
 						tip: '暂无数据'
 					},
 					textNoMore:'已经到底了'

+ 2 - 2
pages/healthy/readUsers.vue

@@ -4,7 +4,7 @@
 		<view class="user-list">
 			<view class="item" v-for="(item,index) in dataList" :key="index">
 				<view class="img-box">
-					<image :src="item.avatar==null?'../../static/images/detault_head.jpg':item.avatar" mode=""></image>
+					<image :src="item.avatar==null?'https://cdn.his.cdwjyyh.com/images/detault_head.jpg':item.avatar" mode=""></image>
 				</view>
 				<text class="name">{{item.nickname}}</text>
 			</view>
@@ -32,7 +32,7 @@
 					},
 					noMoreSize: 10, // 配置列表的总数量要大于等于5条才显示'-- END --'的提示
 					empty: {
-						icon:'/static/images/no_data.png',
+						icon:'https://cdn.his.cdwjyyh.com/images/no_data.png',
 						tip: '暂无数据'
 					}
 				},

+ 4 - 3
pages/home/components/home-discount.vue

@@ -15,12 +15,12 @@
 			<swiper-item class="flex flex-wrap h-all" v-for="(item, index) in list" :key="index">
 				<view class="w-74 h-82 bg-white flex items-center justify-center">
 					<view class="w-64 h-82 flex flex-column items-center justify-center">
-						<image :src="item.image || '/static/images/img.png'" class="w-35 h-44" />
+						<image :src="item.image || 'https://cdn.his.cdwjyyh.com/images/img.png'" class="w-35 h-44" />
 						<view class="h-15 text-ellipsis fw-400 fs-11 my-3">{{ item.productName || '商品名称' }}</view>
 						<view class="w-54 h-16 rounded-16 bg-FA341E text-white text-center fs-9 relative">
 							¥<text class="fs-13">{{ splitPrice(item.price).integer || '00' }}</text>
 							<text class="fs-9">{{ splitPrice(item.price).decimal || '00' }}</text>
-							<image src="/static/images/home/sdyhzq_arrow_icon16@2x.png"
+							<image src="https://cdn.his.cdwjyyh.com/images/sdyhzq_arrow_icon.png"
 								class="w-16 h-16 absolute top-0 left--6 zi-10" />
 						</view>
 					</view>
@@ -89,7 +89,8 @@ export default {
 	},
 	mounted() {
 		console.log("首单优惠专区", this.swiperList);
-		this.list = this.swiperList[0].productList || [];
+		// 添加存在性检查
+		this.list = this.swiperList && this.swiperList[0] && this.swiperList[0].productList ? this.swiperList[0].productList : [];
 		console.log("数据", this.swiperList);
 	},
 	methods: {

+ 72 - 0
pages/home/components/home-goods-item-test.vue

@@ -0,0 +1,72 @@
+<template>
+	<view class="px-12 mt-14">
+		<view v-for="(product, index) in productList" :key="index" class="bg-white pb-10 rounded-8 overflow-hidden mb-14">
+			<image class="w-all h-195" :src="product.firstImage || 'https://cdn.his.cdwjyyh.com/images/img.png'"></image>
+			<view class="goods-count px-12 flex items-center justify-between text-white w-all h-32 rounded-6 mt--15 zi-2 relative">
+				<view class="fw-500 fs-18">热卖爆品</view>
+				<view class="fw-400 fs-13">已售{{ product.sales || '0' }}件</view>
+			</view>
+			<view class="fw-500 fs-13 text-333333 mt-11 px-12">
+				{{ product.title || '产品名称' }}
+			</view>
+			<view class="flex items-center justify-between mt-8 px-12">
+				<view class="flex items-end gap-8">
+					<view class="text-FA341E">
+						<text class="fs-12 fw-600">¥</text>
+						<text class="fs-24 fw-600">{{ splitPrice(product.price).integer || '0' }}</text>
+						<text class="fs-15 fw-600">{{ splitPrice(product.price).decimal || '0' }}</text>
+					</view>
+				</view>
+				<view class="flex items-center w-110 h-34 rounded-34 overflow-hidden">
+					<view class="w-44 h-all flex items-center justify-center bg-38D97D">
+						<image class="w-20 h-20" src="https://cdn.his.cdwjyyh.com/images/shopping_car_icon.png"></image>
+					</view>
+					<view class="flex-1 h-all flex items-center justify-center bg-02B176 fw-500 text-white fs-14">
+						去购买
+					</view>
+				</view>
+			</view>
+		</view>
+		<view v-if="productList.length === 0" class="bg-white pb-10 rounded-8 overflow-hidden mb-14 p-12">
+			<view class="fw-500 fs-13 text-333333">暂无商品数据</view>
+		</view>
+	</view>
+</template>
+<script>
+export default {
+	props: {
+		productList: {
+			type: Array,
+			default: () => []
+		}
+	},
+	mounted() {
+		console.log("测试组件 - 商品列表", this.productList);
+		console.log("测试组件 - 商品列表长度", this.productList.length);
+	},
+	watch: {
+		productList: {
+			immediate: true,
+			handler(newVal) {
+				console.log("测试组件 - 商品列表变化", newVal);
+				console.log("测试组件 - 商品列表长度变化", newVal.length);
+			}
+		}
+	},
+	methods: {
+		// 分割价格
+		splitPrice(price) {
+			const priceStr = parseFloat(price).toFixed(2).toString();
+			return {
+				integer: priceStr.split('.')[0],
+				decimal: priceStr.split('.')[1]
+			};
+		}
+	}
+};
+</script>
+<style scoped lang="scss">
+.goods-count {
+	background: linear-gradient(to right, #FA341E, #F4A007);
+}
+</style>

+ 152 - 0
pages/home/components/home-goods-item.vue

@@ -0,0 +1,152 @@
+<template>
+	<view class=" mt-14 m24">
+		<view v-if="productList.length > 0">
+			<view v-for="(product, index) in productList" :key="index" class="bg-white pb-10 rounded-8 overflow-hidden mb-14" @click="toDetail(product)">
+				<image class="w-all h-195" :src="(product.image || product.firstImage) || 'https://cdn.his.cdwjyyh.com/images/img.png'"></image>
+				<view class="goods-count px-12 flex items-center justify-between text-white w-all h-32 rounded-6 mt--15 zi-2 relative">
+					<view class="fw-500 fs-18">热卖爆品</view>
+					<view class="fw-400 fs-13">已售{{ product.sales || '0' }}件</view>
+				</view>
+				<view class="fw-500 fs-13 text-333333 mt-11 px-12">
+					{{ (product.productName || product.title) || '产品名称' }}
+				</view>
+				<view class="fw-400 fs-12 text-D46C0D mt-7 px-12">
+					处方药须凭处方在药师指导下购买和使用
+				</view>
+				<view class="flex items-center justify-between mt-7 px-12">
+					<view class="flex items-center gap-4 text-FF4B33 fs-11" >
+						<view class="lable">9.5折</view>
+						<view class="lable">限购一份</view>
+					</view>
+					<view class="flex items-center gap-2" @click.stop="showCouponPopup">
+						<view class="fs-12 text-FA341E fw-400">领券</view>
+						<image class="w-12 h-12" src="https://cdn.his.cdwjyyh.com/images/right_red.png"></image>
+					</view>
+				</view>
+				<view class="flex items-center justify-between mt-8 px-12">
+					<view class="flex items-end gap-8">
+						<view class="text-FA341E">
+							<text class="fs-12 fw-600">¥</text>
+							<text class="fs-24 fw-600">{{ splitPrice(product.price).integer || '0' }}</text>
+							<text class="fs-15 fw-600">.{{ splitPrice(product.price).decimal || '0' }}</text>
+						</view>
+						<view class="text-999999 fs-13 fw-400 text-line-through pb-3 line-through" v-if="product.otPrice">
+							¥{{ product.otPrice }}
+						</view>
+					</view>
+					<view class="flex items-center w-110 h-34 rounded-34 overflow-hidden">
+						<view class="w-44 h-all flex items-center justify-center bg-38D97D" @click.stop="addToCart(product)">
+							<image class="w-20 h-20" src="https://cdn.his.cdwjyyh.com/images/shopping_white.png"></image>
+						</view>
+						<view class="flex-1 h-all flex items-center justify-center bg-02B176 fw-500 text-white fs-14" @click.stop="goToBuy(product)">
+							去购买
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<view v-else class="bg-white pb-10 rounded-8 overflow-hidden mb-14 p-12">
+			<view class="fw-500 fs-13 text-333333">暂无商品数据</view>
+		</view>
+
+		<!-- 优惠券弹窗组件 -->
+		<CouponPopup v-model="showCoupon" />
+	</view>
+</template>
+<script>
+import{addCart} from "@/api/product.js"
+import CouponPopup from '@/components/coupon-popup/coupon-popup.vue'
+
+export default {
+	name: 'HomeGoodsItem',
+	components: {
+		CouponPopup
+	},
+	props: {
+		productList: {
+			type: Array,
+			default: () => []
+		}
+	},
+	data() {
+		return {
+			showCoupon: false
+		}
+	},
+	mounted() {
+		console.log("商品列表22", this.productList);
+		console.log("商品列表长度", this.productList.length);
+	},
+	watch: {
+		productList: {
+			immediate: true,
+			handler(newVal) {
+				console.log("商品列表变化", newVal);
+				console.log("商品列表长度变化", newVal.length);
+			}
+		}
+	},
+	methods: {
+		toDetail(product){
+			uni.navigateTo({
+				url: '/pages_shopping/shopping/productDetails?productId=' + product.productId
+			});
+		},
+		addCart() {
+				addCart(data).then(
+					res => {
+						if (res.code == 200) {
+							console.log("加购物车", res);
+						} else {
+
+						}
+
+					},
+					rej => {
+
+					}
+				);
+			},
+		// 分割价格
+		splitPrice(price) {
+			const priceStr = parseFloat(price).toFixed(2).toString();
+			return {
+				integer: priceStr.split('.')[0],
+				decimal: priceStr.split('.')[1]
+			};
+		},
+
+		// 添加到购物车
+		addToCart(product) {
+			console.log('添加到购物车:', product);
+			// 触发父组件的添加购物车事件
+			this.$emit('addToCart', product);
+		},
+
+		// 去购买
+		goToBuy(product) {
+			console.log('去购买:', product);
+			// 触发父组件的去购买事件
+			this.$emit('goToBuy', product);
+		},
+
+		// 显示优惠券弹窗
+		showCouponPopup() {
+			this.showCoupon = true;
+		}
+	}
+};
+</script>
+<style scoped lang="scss">
+.goods-count {
+	background: linear-gradient(to right, #FA341E, #F4A007);
+}
+.lable{
+	border-radius: 4rpx 4rpx 4rpx 4rpx;
+border: 1rpx solid #FFA599;
+padding: 2rpx 8rpx;
+}
+.through{
+	text-decoration: line-through;
+}
+</style>

+ 0 - 89
pages/home/components/home-goods.vue

@@ -1,89 +0,0 @@
-<template>
-    <view class="px-12 mt-14">
-        <view v-for="(product, index) in productList" :key="index" class="bg-white  pb-10 rounded-8 overflow-hidden mb-14">
-            <image class="w-all h-195"
-                :src="product.image|| '/static/images/img.png'">
-            </image>
-            <view
-                class="goods-count px-12 flex items-center justify-between text-white w-all h-32 rounded-6 mt--15 zi-2 relative">
-                <view class="fw-500 fs-18">{{ product.tag || '热卖爆品' }}</view>
-                <view class="fw-400 fs-13">已售{{ product.sales || '0' }}件</view>
-            </view>
-            <view class="fw-500 fs-13 text-333333 mt-11 px-12">
-                {{ product.name || product.productName || '产品名称' }}
-            </view>
-            <view class="fw-400 fs-12 text-D46C0D mt-7 px-12" v-if="product.warning">
-                {{ product.warning }}
-            </view>
-            <view class="flex items-center justify-between mt-7 px-12">
-                <view class="flex items-center gap-4 text-FF4B33 fs-11" v-if="product.discounts && product.discounts.length">
-                    <view v-for="(discount, i) in product.discounts" :key="i" class="px-4 ph-2 border border-FFA599 rounded-2 ">
-                        {{ discount }}
-                    </view>
-                </view>
-                <view class="flex items-center gap-2" v-if="product.coupon">
-                    <view class="fs-12 text-FA341E fw-400">领卷</view>
-                    <image class="w-12 h-12" src="/static/images/home/sdyhzq_bg@2x.png"></image>
-                </view>
-            </view>
-            <view class="flex items-center justify-between mt-8 px-12">
-                <view class="flex items-end gap-8">
-                    <view class="text-FA341E ">
-                        <text class="fs-12 fw-600">¥</text>
-                        <text class="fs-24 fw-600">{{splitPrice(product.price).integer||'0'}}</text>
-                        <text class="fs-15 fw-600">{{ splitPrice(product.price).decimal|| '0' }}</text>
-                    </view>
-                    <view class="text-999999 fs-13 fw-400 text-line-through pb-3" v-if="product.originalPrice">
-                        ¥{{ product.originalPrice }}
-                    </view>
-                </view>
-                <view class="flex items-center w-110 h-34 rounded-34 overflow-hidden">
-                    <view class="w-44 h-all flex items-center justify-center bg-38D97D" @click="addToCart(product)">
-                        <image class="w-20 h-20" src="/static/images/home/shopping_car_icon24@2x.png">
-                        </image>
-                    </view>
-                    <view class="flex-1 h-all flex items-center justify-center bg-02B176 fw-500 text-white fs-14" @click="goToBuy(product)">
-                        去购买</view>
-                </view>
-            </view>
-        </view>
-    </view>
-</template>
-<script>
-export default {
-    props: {
-        productList: {
-            type: Array,
-            default: () => []
-        },
-    },
-    mounted() {
-        console.log("商品列表", this.productList);
-    },
-    methods: {splitPrice(price) {
-				const priceStr = parseFloat(price).toFixed(2).toString();
-				return {
-					integer: priceStr.split('.')[0],
-					decimal: priceStr.split('.')[1]
-				};
-			},
-        // 添加到购物车
-        addToCart(product) {
-            console.log('添加到购物车:', product);
-            // 触发父组件的添加购物车事件
-            this.$emit('addToCart', product);
-        },
-        // 去购买
-        goToBuy(product) {
-            console.log('去购买:', product);
-            // 触发父组件的去购买事件
-            this.$emit('goToBuy', product);
-        },
-    }
-}
-</script>
-<style scoped lang="scss">
-.goods-count {
-    background: linear-gradient(to right, #FA341E, #F4A007)
-}
-</style>

+ 18 - 3
pages/home/components/home-hot.vue

@@ -15,16 +15,21 @@
             <swiper-item class="flex flex-wrap h-all " v-for="(item, index) in swiperList" :key="index">
                 <view class="w-74 h-82 bg-white flex items-center justify-center">
                     <view class="w-64 h-82 flex flex-column items-center  justify-center">
+                            <view class="box">
+
                         <image style="border: 1px solid #ffffff;"
                             :src="item.imageUrl || item.img || 'https://img1.baidu.com/it/u=2172818577,3783888802&fm=253&app=138&f=JPEG?w=800&h=1422'"
                             class="image" />
+                                </view>
+
                         <view class="fs20 fw-500 text-D46C0D mt14">{{ item.rankText || '营养保健Top1' }}</view>
                         <view class="w-54 h-16 rounded-16  text-D46C0D text-center fs-10 fw-400 relative">
-                            热销{{ item.sales || '234' }}件
-                            <image src="/static/images/home/hot_selling_list_img@2x.png"
+                            热销{{ item.sales || '0' }}件
+                            <image src="https://cdn.his.cdwjyyh.com/images/hot_selling_list_img.png"
                                 class="w-8 h-12 absolute top-0 left--4 zi-10 rotateY-180" />
-                            <image src="/static/images/home/hot_selling_list_img@2x.png"
+                            <image src="https://cdn.his.cdwjyyh.com/images/hot_selling_list_img.png"
                                 class="w-8 h-12  absolute top-0 right--4 zi-10" />
+
                         </view>
                     </view>
                 </view>
@@ -128,5 +133,15 @@ export default {
 		height: 92rpx;
 		flex-shrink: 0;
 	}
+    .box{
+        width: 96rpx;
+height: 96rpx;
+background: #FFFFFF;
+box-shadow: 0rpx 0rpx 13rpx 0rpx rgba(0,0,0,0.1);
+border-radius: 12rpx 12rpx 12rpx 12rpx;
+border: 2rpx solid #FFFFFF;
+overflow: hidden;
+
+    }
 	
 </style>

+ 39 - 10
pages/home/components/home-menu.vue

@@ -6,16 +6,16 @@
  * @Description: 自定义轮播图组件
 -->
 <template>
-    <swiper class="scs-swiper  flex flex-nowrap mt-5" :style="{ height: height * 2 + 'rpx', }" :circular="circular"
+    <swiper class="menu-swiper" :style="{ height: height * 2 + 'rpx', }" :circular="circular"
          :indicator-dots="indicatorDots" indicator-active-color=""
         indicator-color="" :autoplay="autoplay" :interval="interval" :duration="duration" :current="current"
         :display-multiple-items='displayMultipleItems' :next-margin="nextMargin" @change="change"
         @transition="transition" @animationfinish="animationfinish">
-        <swiper-item class="flex flex-wrap h-all w-all ml-4" v-for="(item, i) in swiperList" :key="i">
-            <view class="item-navbar mr-22 w-52 flex flex-column items-center" @click="handleNavTo(value)"
+        <swiper-item class="menu-swiper__item" v-for="(item, i) in swiperList" :key="i">
+            <view class="menu-item" @click="handleNavTo(value)"
                 v-for="(value, i) in item" :key="i">
-                <image class="w-44 h-44" :src="value.icon"> </image>
-                <view class=" fs-13 fw-400 text-ellipsis mt-8">{{ value.menuName }}</view>
+                <image class="menu-item__icon" :src="value.icon" > </image>
+                <view class="menu-item__name">{{ value.menuName }}</view>
             </view>
         </swiper-item>
     </swiper>
@@ -97,12 +97,41 @@ export default {
 }
 </script>
 <style lang="scss" scoped>
-.scs-swiper {
+.menu-swiper {
     width: 100%;
-    .item-navbar {
-        &:nth-child(5n) {
-            margin-right: 0;
-        }
+    display: flex;
+    flex-wrap: nowrap;
+    margin-top: 5rpx;
+    .menu-swiper__item {
+        display: flex;
+        flex-wrap: wrap;
+        width: 100%;
+        height: 100%;
+        margin-left: 4rpx;
+    }
+}
+
+.menu-item {
+    margin-right: 22rpx;
+    width: 104rpx;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    &:nth-child(5n) {
+        margin-right: 0;
+    }
+    .menu-item__icon {
+        width: 88rpx;
+        height: 88rpx;
+        border-radius: 50%;
+    }
+    .menu-item__name {
+        font-size: 26rpx;
+        font-weight: 400;
+        color: #333333;
+        text-overflow: ellipsis;
+        white-space: nowrap;
+        margin-top: 8rpx;
     }
 }
 </style>

+ 42 - 0
pages/home/components/home-more-item.vue

@@ -0,0 +1,42 @@
+<template>
+    <view class="bg-white py-6 px-10">
+        <view class="fw-400 fs-14 text-333333 text-ellipsis-2">{{ item.title }}</view>
+        <view class="fw-400 fs-11 text-D46C0D mt-4">肌肉酸疼、扭伤拉伤</view>
+        <view class="fw-400 fs-11 text-999999 flex items-center gap-5 mt-4">
+            <text>已售 5485</text>
+            <text class="inline-block w-1 h-9 bg-CCCCCC"></text>
+            <text>惊艳度 98%</text>
+        </view>
+        <view class="flex items-center gap-4 text-FF4B33 fs-11 mt-5">
+            <view class="px-4 ph-2 border border-FFA599 rounded-2 ">9.5折</view>
+            <view class="px-4 ph-2 border border-FFA599 rounded-2 ">限购1份</view>
+        </view>
+        <view class="flex items-center justify-between mt-8">
+            <view class="text-FA341E">
+                <text class="fs-10 fw-600">¥</text>
+                <text class="fs-18 fw-600">10</text>
+                <text class="fs-13 fw-600">.36</text>
+            </view>
+            <image class="w-20 h-20" src="https://cdn.his.cdwjyyh.com/images/add_car_icon.png"></image>
+        </view>
+        <view class="w-all h-18 bg-FFF4E8 flex items-center justify-between mt-10 py-3 px-5">
+            <view class="flex items-center gap-2">
+                <image class="w-12 h-12" src="https://cdn.his.cdwjyyh.com/images/ranking_icon.png">
+                </image>
+                <text class="text-4D4D4D fs-10 fw-400">健康新品热销榜</text>
+                <image class="w-34 h-11" src="https://cdn.his.cdwjyyh.com/images/TOP.2@2x.png"></image>
+            </view>
+            <image class="w-8 h-8" src="https://cdn.his.cdwjyyh.com/images/purple_right_arrow_right.png"></image>
+        </view>
+    </view>
+</template>
+<script>
+export default {
+    props: {
+        itemData: {
+            type: Object,
+            default: () => ({})
+        }
+    }
+}
+</script>

+ 7 - 7
pages/home/components/home-product.vue

@@ -1,12 +1,12 @@
 <template>
     <view class="flex justify-between px-12 mt-21">
         <view class="w-170 h-265 relative px-11 rounded-8 overflow-hidden">
-            <image class="w-all h-all absolute top-0 left-0 bg-white zi-1" src="/static/images/home/zbgc_bg@2x.png">
+            <image class="w-all h-all absolute top-0 left-0 bg-white zi-1" src="https://cdn.his.cdwjyyh.com/images/zbgc_bg.png">
             </image>
             <view class="flex justify-between items-center h-20 relative zi-2 mt-13">
-                <image class="w-64 h-15" src="/static/images/home/live_square_title@2x.png"></image>
+                <image class="w-64 h-15" src="https://cdn.his.cdwjyyh.com/images/live_square_title.png"></image>
                 <view class="fs-12 fw-400 text-666666 flex items-center">
-                    全部 <image class="w-12 h-12" src="/static/images/home/zbgc_arrow_right_icon12.svg"></image>
+                    全部 <image class="w-12 h-12" src="https://cdn.his.cdwjyyh.com/images/zbgc_arrow_right_icon12.svg"></image>
                 </view>
 
             </view>
@@ -15,17 +15,17 @@
         </view>
         <view class="w-171 h-265 flex flex-column justify-between">
             <view class="w-all h-128 bg-white relative p-11 rounded-8 overflow-hidden">
-                <image class="w-all h-all absolute top-0 left-0 zi-1" src="/static/images/home/sdyhzq_bg@2x.png">
+                <image class="w-all h-all absolute top-0 left-0 zi-1" src="https://cdn.his.cdwjyyh.com/images/sdyhzq_bg.png">
                 </image>
                 <view class="relative zi-2">
-                    <image class="w-95 h-18 " src="/static/images/home/sdyhzq_title@2x.png"></image>
+                    <image class="w-95 h-18 " src="https://cdn.his.cdwjyyh.com/images/sdyhzq_title.png"></image>
                     <HomeDiscount  :swiperList="recommendList"  />
                 </view>
             </view>
             <view class="w-all h-128 bg-white relative p-11 rounded-8 overflow-hidden">
-                <image class="w-all h-all absolute top-0 left-0 " src="/static/images/home/jrrm_bg@2x.png"></image>
+                <image class="w-all h-all absolute top-0 left-0 " src="https://cdn.his.cdwjyyh.com/images/jrrm_bg@2x.png"></image>
                 <view class="relative zi-2">
-                    <image class="w-64 h-18 " src="/static/images/home/jrrm_title@2x.png"></image>
+                    <image class="w-64 h-18 " src="https://cdn.his.cdwjyyh.com/images/jrrm_title.png"></image>
                     <HomeHot :swiperList="recommendList"/>
                 </view>
             </view>

+ 0 - 72
pages/home/components/home-sales-rank.vue

@@ -1,72 +0,0 @@
-<!--
- * @Author: jmy
- * @Date: 2026-01-20 12:00:00
- * @Description: 实时销量榜组件
--->
-<template>
-    <view class="sales-rank-container mt-14">
-        <view class="rank-bg" style="background-image: url('/static/sales_ranking_bg.png');">
-            <view class="rank-title flex items-center justify-between mb-10 px-12 pt-12">
-                <view class="fs-18 fw-500 text-333333">实时销量榜</view>
-                <view class="fs-12 fw-400 text-999999 flex items-center">
-                    更多 <image class="w-12 h-12 ml-4" src="/static/right1.png"></image>
-                </view>
-            </view>
-            <view class="rank-list px-12 pb-12">
-                <view v-for="(item, index) in rankList" :key="index" class="rank-item flex items-center justify-between p-12 bg-white rounded-8 mb-10">
-                    <view class="flex items-center">
-                        <view class="rank-number w-24 h-24 rounded-full flex items-center justify-center text-white fs-12 fw-600 mr-10" :class="{
-                            'bg-FA341E': index === 0,
-                            'bg-F4A007': index === 1,
-                            'bg-FFA599': index === 2,
-                            'bg-999999': index >= 3
-                        }">
-                            {{ index + 1 }}
-                        </view>
-                        <image :src="item.imageUrl || item.img || 'https://img1.baidu.com/it/u=2172818577,3783888802&fm=253&app=138&f=JPEG?w=800&h=1422'" class="w-72 h-72 rounded-4 mr-12"></image>
-                        <view class="flex-1">
-                            <view class="fs-13 fw-500 text-333333 text-ellipsis">{{ item.name || item.productName || '商品名称' }}</view>
-                            <view class="fs-11 fw-400 text-999999 mt-4">已售{{ item.sales || 0 }}件</view>
-                            <view class="fs-14 fw-600 text-FA341E mt-4">¥{{ item.price || '0.00' }}</view>
-                        </view>
-                    </view>
-                    <view class="add-to-cart w-36 h-36 bg-02B176 rounded-full flex items-center justify-center" @click="$emit('addToCart', item)">
-                        <image class="w-20 h-20" src="/static/images/home/shopping_car_icon24@2x.png"></image>
-                    </view>
-                </view>
-            </view>
-        </view>
-    </view>
-</template>
-<script>
-export default {
-    props: {
-        rankList: {
-            type: Array,
-            default: () => []
-        }
-    },
-    mounted() {},
-
-
-    methods: {
-        // 方法可以在这里添加
-    }
-}
-</script>
-<style lang="scss" scoped>
-.sales-rank-container {
-    .rank-bg {
-        background-size: cover;
-        background-repeat: no-repeat;
-        background-position: center;
-        border-radius: 8px;
-        overflow: hidden;
-    }
-    .rank-item {
-        &:last-child {
-            margin-bottom: 0;
-        }
-    }
-}
-</style>

+ 9 - 6
pages/home/components/home-search.vue

@@ -1,19 +1,19 @@
 <template>
-    <view class="flex items-center justify-between px-12 mt-11 relative zi-10">
+    <view class="flex items-center justify-between px-12 mt-11 relative zi-10 mb-10">
         <view class="scs-search w-283 h-34">
-            <view class="search-input">
-                <image class="icon-search" src="/static/images/search.png" mode="aspectFit"></image>
+            <view class="search-input" @click="onSearchClick">
+                <image class="icon-search" src="https://cdn.his.cdwjyyh.com/images/search.png" mode="aspectFit"></image>
                 <input class="input-value" type="text" v-model="keyword" placeholder="搜索商品" confirm-type="search"
                     @confirm="onSearch" />
-                <button class="w-60 h-30 rounded-15 fs-14 colorf lh-30" @click="onSearch">搜索</button>
+                <button class="w-60 h-30 rounded-15 fs-14 colorf lh-30" @click.stop="onSearch">搜索</button>
             </view>
         </view>
         <view class="w-24 h-24 relative">
-            <image class="w-all h-all" src="/static/images/share_icon.png" mode=""></image>
+            <image class="w-all h-all" src="https://cdn.his.cdwjyyh.com/images/share_icon.png" mode=""></image>
             <button class="w-all h-all absolute top-0 left-0 opacity-0" open-type="contact"></button>
         </view>
         <view class="w-24 h-24 relative">
-            <image class="w-all h-all" src="/static/images/new_hall_icon.png" mode=""></image>
+            <image class="w-all h-all" src="https://cdn.his.cdwjyyh.com/images/new_hall_icon.png" mode=""></image>
             <button class="w-all h-all absolute top-0 left-0 opacity-0" open-type="contact"></button>
         </view>
     </view>
@@ -28,6 +28,9 @@
         methods: {
             onSearch() {
                this.$emit('onSearch', this.keyword)
+            },
+            onSearchClick() {
+                this.$emit('onSearchClick')
             }
         }
     }

+ 0 - 65
pages/home/components/home-waterfall.vue

@@ -1,65 +0,0 @@
-<!--
- * @Author: jmy
- * @Date: 2026-01-20 12:00:00
- * @Description: 瀑布流商品组件
--->
-<template>
-    <view class="waterfall-container mt-14">
-        <view class="waterfall-title flex items-center justify-between mb-10 px-12">
-            <view class="fs-18 fw-500 text-333333">瀑布流商品</view>
-        </view>
-        <view class="waterfall-list flex justify-between px-12">
-            <view class="waterfall-column" v-for="(column, index) in waterfallColumns" :key="index">
-                <view v-for="(item, idx) in column" :key="idx" class="waterfall-item bg-white rounded-8 mb-10 overflow-hidden">
-                    <image :src="item.firstImage || 'https://img1.baidu.com/it/u=2172818577,3783888802&fm=253&app=138&f=JPEG?w=800&h=1422'" class="w-all"></image>
-                    <view class="p-12">
-                        <view class="fs-13 fw-500 text-333333 text-ellipsis">{{item.title || '商品名称' }}</view>
-                        <view class="fs-11 fw-400 text-999999 mt-4 line-2">{{ item.intro || '商品描述' }}</view>
-                        <view class="flex items-end justify-between mt-10">
-                            <view class="fs-16 fw-600 text-FA341E">¥{{ item.price || '0.00' }}</view>
-                            <view class="add-to-cart w-36 h-36 bg-02B176 rounded-full flex items-center justify-center" @click="$emit('addToCart', item)">
-                                <image class="w-20 h-20" src="/static/images/home/shopping_car_icon24@2x.png"></image>
-                            </view>
-                        </view>
-                    </view>
-                </view>
-            </view>
-        </view>
-    </view>
-</template>
-<script>
-export default {
-    props: {
-        productList: {
-            type: Array,
-            default: () => []
-        },
-        columns: {
-            type: Number,
-            default: 2
-        }
-    },
-    computed: {
-        waterfallColumns() {
-            // 将商品列表分割成指定列数的瀑布流
-            const columns = [];
-            for (let i = 0; i < this.columns; i++) {
-                columns[i] = [];
-            }
-            this.productList.forEach((item, index) => {
-                columns[index % this.columns].push(item);
-            });
-            return columns;
-        }
-    }
-}
-</script>
-<style lang="scss" scoped>
-.waterfall-container {
-    .waterfall-list {
-        .waterfall-column {
-            width: calc((100% - 10px) / 2);
-        }
-    }
-}
-</style>

+ 6 - 6
pages/home/doctorCase.vue

@@ -4,7 +4,7 @@
 			<!-- 搜索框 -->
 			<view class="search-cont">
 				<view class="inner">
-					<image class="icon-search" src="../../static/images/search.png" mode=""></image>
+					<image class="icon-search" src="https://cdn.his.cdwjyyh.com/images/search.png" mode=""></image>
 					<input type="text"  v-model="searchVal" placeholder="输入关键字搜索"  confirm-type="搜索" @confirm="goSearch" placeholder-style="font-size:28rpx;color:#BBBBBB;font-family: PingFang SC;" />
 				</view>
 			</view>
@@ -19,7 +19,7 @@
 					>
 						<view class="text">
 							{{ item.departmentName }}
-							<image v-show="deptId == item.departmentId" class="tab-bg" src="../../static/images/tab_bg.png" mode=""></image>
+							<image v-show="deptId == item.departmentId" class="tab-bg" src="https://cdn.his.cdwjyyh.com/images/tab_bg.png" mode=""></image>
 						</view>
 					</view>
 				</view>
@@ -56,8 +56,8 @@
 						<!-- 语音回答 -->
 						<view class="voice-inner" v-if="item.orderType == '2'">
 							<free-audio 
-								startPic='/static/images/play.png' 
-								endPic='/static/images/pause.png'
+								startPic='https://cdn.his.cdwjyyh.com/images/play.png' 
+								endPic='https://cdn.his.cdwjyyh.com/images/pause.png'
 								activeColor="#2BC7B9"
 								:audioId="'audio'+index"
 								:url='item.replyAudioUrl'
@@ -65,7 +65,7 @@
 						</view>
 					</view>
 					<view class="read-box">
-						<image src="../../static/images/eye.png" mode=""></image>
+						<image src="https://cdn.his.cdwjyyh.com/images/eye.png" mode=""></image>
 						<text class="text">{{item.views}}人看过</text>
 					</view>
 				</view>
@@ -101,7 +101,7 @@
 					},
 					noMoreSize: 10, // 配置列表的总数量要大于等于5条才显示'-- END --'的提示
 					empty: {
-						icon:'/static/images/no_data.png',
+						icon:'https://cdn.his.cdwjyyh.com/images/no_data.png',
 						tip: '暂无数据'
 					}
 				},

+ 35 - 35
pages/home/index copy.vue

@@ -1,7 +1,7 @@
 <template>
 	<view class="content">
 		<!-- 背景图片 -->
-		<image class="bg" src="../../static/images/yuexuan_home_top_bg.png" mode=""></image>
+		<image class="bg" src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/yuexuan_home_top_bg.png" mode=""></image>
 		<view>
 			<view class="top-inner">
 				<view class="fixed-top-box" :style="{ background: bg }">
@@ -9,7 +9,7 @@
 					<view class="status_bar" :style="{height: statusBarHeight}"></view>
 					<view class="shop-block">
 						<view class="shop">
-							<image class="w40 h40" src="/static/images/shopping_car_icon.png"></image>
+							<image class="w40 h40" src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/shopping_car_icon.png"></image>
 						</view>
 					</view>
 					<view class="top-title">
@@ -19,7 +19,7 @@
 					<!-- 搜索框、购物车、客服 -->
 					<view class="func-cont">
 						<view class="search-cont">
-							<image class="icon-search" src="../../static/images/search.png" mode=""></image>
+							<image class="icon-search" src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/search.png" mode=""></image>
 							<input type="text" disabled value="" placeholder="搜索商品"
 								placeholder-style="font-size:28rpx;color:#BBBBBB;font-family: PingFang SC;"
 								@click="toSearch" />
@@ -28,16 +28,16 @@
 						<!-- 购物车 -->
 						<!-- <uni-badge size="small" :text="cartCount" absolute="rightTop" type="error">
 							<view class="img-item" @click="goAuthUrl('../shopping/cart')">
-								<image src="../../static/images/cart_wihte.png" mode=""></image>
+								<image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/cart_wihte.png" mode=""></image>
 							</view>
 						</uni-badge> -->
 						<view class="img-item" style="position: relative;">
-							<image src="../../static/images/share_icon.png" mode=""></image>
+							<image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/share_icon.png" mode=""></image>
 							<button class="contact-btn" open-type="contact"></button>
 						</view>
 
 						<view class="img-item" style="position: relative;">
-							<image src="../../static/images/new_hall_icon.png" mode=""></image>
+							<image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/new_hall_icon.png" mode=""></image>
 							<button class="contact-btn" open-type="contact"></button>
 						</view>
 					</view>
@@ -73,14 +73,14 @@
 						<view class="text">
 							{{ item.name }}
 							<view class="tab-bg" v-show="status ==item.value"></view>
-							<!-- <image v-show="status ==item.value" class="tab-bg" src="/static/images/tab_bg.png" mode=""> -->
+							<!-- <image v-show="status ==item.value" class="tab-bg" src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/tab_bg.png" mode=""> -->
 							</image>
 						</view>
 					</view>
-					<image class="white-gradient" src="/static/images/white_gradient_bg.png"></image>
+					<image class="white-gradient" src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/white_gradient_bg.png"></image>
 				</view>
-				<image class="icon mr24" src="/static/images/product_section_icon.png"></image>
-				<image class="icon" src="/static/images/home_filter_icon.png"></image>
+				<image class="icon mr24" src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/product_section_icon.png" @click="navTo('/pages/shopping/index')"></image>
+				<image class="icon" src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/home_filter_icon.png"></image>
 			</view>
 			<!-- 菜单 -->
 			<view class="menu-content">
@@ -94,7 +94,7 @@
 		<!-- 在线问诊、处方查询 -->
 		<view class="online-inquiry">
 			<view class="item" @click="navTo('/pages_shopping/shopping/productSalesList')">
-				<!-- <image  class="bg-img" src="../../static/images/banner1.png" mode=""></image> -->
+				<!-- <image  class="bg-img" src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/banner1.png" mode=""></image> -->
 				<image class="bg-img"
 					src="https://hos-1309931967.cos.ap-chongqing.myqcloud.com/fs/20250320/f2d3ba32a9344dc79b4df7c228189243.png"
 					mode=""></image>
@@ -105,7 +105,7 @@
 				</view> -->
 			</view>
 			<view class="item" @click="navTo('/pages_course/livingList')">
-				<image class="bg-img" src="/static/images/banner2.png" mode=""></image>
+				<image class="bg-img" src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/banner2.png" mode=""></image>
 			</view>
 		</view>
 		<view class="index-cont">
@@ -115,7 +115,7 @@
 					<text class="left">医生团队</text>
 					<view class="right" @click="navTo('../doctor/doctorList')">
 						<text class="text">全部医生</text>
-						<image src="../../static/images/arrow_gray.png" mode=""></image>
+						<image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/arrow_gray.png" mode=""></image>
 					</view>
 				</view>
 				<view class="doc-cont">
@@ -135,19 +135,19 @@
 			<!-- <view class="pub-item">
 				<view class="tabs">
 					<view class="tab" @click="docTabChange(1)">
-						<image v-if="docTab==1" class="img" src="../../static/images/tab1.png" mode=""></image>
+						<image v-if="docTab==1" class="img" src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/tab1.png" mode=""></image>
 						<view class="inner">
 							<text :class="docTab == 1?'title active':'title'" >推荐医生</text>
 						</view>
 					</view>
 					<view class="tab" @click="docTabChange(2)">
-						<image v-if="docTab==2" class="img" src="../../static/images/tab2.png" mode=""></image>
+						<image v-if="docTab==2" class="img" src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/tab2.png" mode=""></image>
 						<view class="inner">
 							<text :class="docTab == 2?'title active':'title'" >推荐药师</text>
 						</view>
 					</view>
 					<view class="tab" @click="docTabChange(3)">
-						<image v-if="docTab==3" class="img" src="../../static/images/tab3.png" mode=""></image>
+						<image v-if="docTab==3" class="img" src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/tab3.png" mode=""></image>
 						<view class="inner">
 							<text  :class="docTab == 3?'title active':'title'" >推荐营养师</text>
 						</view>
@@ -163,11 +163,11 @@
 						>
 							<view class="text">
 								{{ item.departmentName }}
-								<image v-show="item.departmentId == deptId" class="tab-bg" src="../../static/images/tab_bg.png" mode=""></image>
+								<image v-show="item.departmentId == deptId" class="tab-bg" src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/tab_bg.png" mode=""></image>
 							</view>
 						</view>
 					</view>
-					<image class="right-mask" src="../../static/images/mask.png" mode=""></image>
+					<image class="right-mask" src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/mask.png" mode=""></image>
 				</view>
 				<view class="doc-list">
 					<view class="item" v-for="(item,index) in doctorList" :key="index" @click="shopDoctor(item)"> -->
@@ -197,7 +197,7 @@
 			<!-- 评分 -->
 			<!-- <view class="rate-box">
 								<view class="star">
-									<image src="../../static/images/star.png" mode=""></image>
+									<image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/star.png" mode=""></image>
 									<text>{{ item.pings }}</text>
 								</view>
 								<view class="line"></view>
@@ -222,7 +222,7 @@
 					</view>
 					<view class="bottom-title" @click="navTo('../doctor/doctorList?doctorType='+docTab)">
 						<text >{{allDoctorTitle}}</text>
-						<image src="../../static/images/arrow3.png" mode=""></image>
+						<image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/arrow3.png" mode=""></image>
 					</view>
 					 
 				</view>
@@ -247,7 +247,7 @@
 					<text class="left">问诊案例</text>
 					<view class="right" @click="viewAll('doctorCase')">
 						<text class="text">全部案例</text>
-						<image src="../../static/images/arrow_gray.png" mode=""></image>
+						<image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/arrow_gray.png" mode=""></image>
 					</view>
 				</view>
 				<view class="inner">
@@ -261,11 +261,11 @@
 							>
 								<view class="text">
 									{{ item.name }}
-									<image v-show="item.id == orderType" class="tab-bg" src="../../static/images/tab_bg.png" mode=""></image>
+									<image v-show="item.id == orderType" class="tab-bg" src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/tab_bg.png" mode=""></image>
 								</view>
 							</view>
 						</view>
-						<image class="right-mask" src="../../static/images/mask.png" mode=""></image>
+						<image class="right-mask" src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/mask.png" mode=""></image>
 					</view>
 					<view class="cases-list">
 						<view class="item" v-for="(item,index) in doctorOrderList" :key="index">
@@ -291,8 +291,8 @@
 								<text class="text-inner" v-if="item.orderType == '1' ">{{item.replyContent}}</text>
 								<view class="voice-inner" v-if="item.orderType == '2'">
 									<free-audio 
-										startPic='/static/images/play.png' 
-										endPic='/static/images/pause.png'
+										startPic='https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/play.png' 
+										endPic='https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/pause.png'
 										activeColor="#2BC7B9"
 										:audioId="'audio'+index"
 										:url='item.replyAudioUrl'
@@ -300,7 +300,7 @@
 								</view>
 							</view>
 							<view class="read-box">
-								<image src="../../static/images/eye.png" mode=""></image>
+								<image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/eye.png" mode=""></image>
 								<text class="text">{{item.views}}人看过</text>
 							</view>
 						</view>
@@ -316,7 +316,7 @@
 					<text class="left">健康百科</text>
 					<view class="right" @click="switchTo('../healthy/index')">
 						<text class="text">更多</text>
-						<image src="../../static/images/arrow_gray.png" mode=""></image>
+						<image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/arrow_gray.png" mode=""></image>
 					</view>
 				</view>
 				<view class="inner">
@@ -331,11 +331,11 @@
 							>
 								<view class="text">
 									{{ item.cateName }}
-									<image v-show="item.cateId == cateId" class="tab-bg" src="../../static/images/tab_bg.png" mode=""></image>
+									<image v-show="item.cateId == cateId" class="tab-bg" src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/tab_bg.png" mode=""></image>
 								</view>
 							</view>
 						</view>
-						<image class="right-mask" src="../../static/images/mask.png" mode=""></image>
+						<image class="right-mask" src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/mask.png" mode=""></image>
 					</view>
 					 
 					<view class="know-list">
@@ -346,11 +346,11 @@
 									<view class="readers">
 										<view class="head-box" v-if="item.viewsList!=null&&item.viewsList.length>0">
 											<view class="head" v-for="(subitem,j) in item.viewsList" :key="j">
-												<image v-if="subitem!=null" :src="subitem.avatar==null?'/static/images/detault_head.jpg':subitem.avatar" mode=""></image>
+												<image v-if="subitem!=null" :src="subitem.avatar==null?'https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/detault_head.jpg':subitem.avatar" mode=""></image>
 											</view>
 										</view>
 										<view class="readings">
-											<image class="eye" src="../../static/images/eye.png" mode=""></image>
+											<image class="eye" src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/eye.png" mode=""></image>
 											<text class="num">{{item.views}}</text>
 										</view>
 									</view>
@@ -367,7 +367,7 @@
 			<!-- 精选药品 -->
 			<TuiProduct ref="tuiProduct" />
 			<!-- <view class="feat-title">
-				<image src="../../static/images/tui.png" mode=""></image>
+				<image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/tui.png" mode=""></image>
 				<text>精选药品</text>
 			</view>
 			<view class="drug-list">
@@ -396,7 +396,7 @@
 		<!-- 限时消息 -->
 		<!-- <view class="message-box" >
 			<view class="left">
-				<image src="../../static/images/close24.png" mode="" @click="closeMsg"></image>
+				<image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/close24.png" mode="" @click="closeMsg"></image>
 				<view class="text ellipsis">关注公众号了解更新</view>
 			</view>
 			<view class="btn">查看</view>
@@ -438,7 +438,7 @@
 	import {
 		getStoreConfig
 	} from '@/api/common'
-	import tabBg from "@/static/images/tab_bg.png"
+	import tabBg from "@https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/tab_bg.png"
 	import freeAudio from '@/components/chengpeng-audio/free-audio.vue'
 	import Menu from '@/components/Menu.vue'
 	import HotProduct from './components/HotProduct.vue'
@@ -576,7 +576,7 @@
 			return {
 				title: '芳华悦选',
 				path: `/pages/common/launch`,
-				imageUrl: '/static/images/logo.png' //分享图标,路径可以是本地文件路径、代码包文件路径或者网络图片路径.支持PNG及JPG。显示图片长宽比是 5:4
+				imageUrl: 'https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/logo.png' //分享图标,路径可以是本地文件路径、代码包文件路径或者网络图片路径.支持PNG及JPG。显示图片长宽比是 5:4
 			}
 		},
 		onReachBottom() {

Plik diff jest za duży
+ 1214 - 245
pages/home/index.vue


+ 12 - 12
pages/home/productList.vue

@@ -4,12 +4,12 @@
 			<!-- 搜索框 -->
 			<view class="search-cont">
 				<view class="inner">
-					<image class="icon-search" src="../../static/images/search.png" mode=""></image>
+					<image class="icon-search" src="https://cdn.his.cdwjyyh.com/images/search.png" mode=""></image>
 					<input type="text" @confirm="goSearch"   :value="form.productName" placeholder="输入药品名称" placeholder-style="font-size:28rpx;color:#BBBBBB;font-family: PingFang SC;" />
 				</view>
 				<view class="icon-search">
-					<image @click="showChange(2)" v-if="showType==1"  src="../../static/images/search1.png" mode=""></image>
-					<image @click="showChange(1)" v-if="showType==2"  src="../../static/images/search2.png" mode=""></image>
+					<image @click="showChange(2)" v-if="showType==1"  src="https://cdn.his.cdwjyyh.com/images/search1.png" mode=""></image>
+					<image @click="showChange(1)" v-if="showType==2"  src="https://cdn.his.cdwjyyh.com/images/search2.png" mode=""></image>
 				</view>
 			</view>
 			<!-- 排序框 -->
@@ -20,19 +20,19 @@
 				<view class="item" @click="searchChange('2')">
 					<text class="label">价格</text>
 					<view class="sort-img">
-						<image v-if="form.priceOrder==null||form.priceOrder=='desc'" src="../../static/images/price_arrow_up.png" mode="" @click="priceUp(true)"></image>
-						<image v-if="form.priceOrder=='asc'" src="../../static/images/price_arrow_up2.png" mode="" @click="priceUp(false)"></image>
-						<image v-if="form.priceOrder==null||form.priceOrder=='asc'" src="../../static/images/price_arrow_down.png" mode="" @click="priceDown(true)"></image>
-						<image v-if="form.priceOrder=='desc'" src="../../static/images/price_arrow_down2.png" mode="" @click="priceDown(false)"></image>
+						<image v-if="form.priceOrder==null||form.priceOrder=='desc'" src="https://cdn.his.cdwjyyh.com/images/price_arrow_up.png" mode="" @click="priceUp(true)"></image>
+						<image v-if="form.priceOrder=='asc'" src="https://cdn.his.cdwjyyh.com/images/price_arrow_up2.png" mode="" @click="priceUp(false)"></image>
+						<image v-if="form.priceOrder==null||form.priceOrder=='asc'" src="https://cdn.his.cdwjyyh.com/images/price_arrow_down.png" mode="" @click="priceDown(true)"></image>
+						<image v-if="form.priceOrder=='desc'" src="https://cdn.his.cdwjyyh.com/images/price_arrow_down2.png" mode="" @click="priceDown(false)"></image>
 					</view>
 				</view>
 				<view class="item" @click="searchChange('3')">
 					<text class="label">销量</text>
 					<view class="sort-img">
-						<image v-if="form.salesOrder==null||form.salesOrder=='desc'" src="../../static/images/price_arrow_up.png" mode="" @click="saleUp(true)"></image>
-						<image v-if="form.salesOrder=='asc'" src="../../static/images/price_arrow_up2.png" mode="" @click="saleUp(false)"></image>
-						<image v-if="form.salesOrder==null||form.salesOrder=='asc'" src="../../static/images/price_arrow_down.png" mode="" @click="saleDown(true)"></image>
-						<image v-if="form.salesOrder=='desc'" src="../../static/images/price_arrow_down2.png" mode="" @click="saleDown(false)"></image>
+						<image v-if="form.salesOrder==null||form.salesOrder=='desc'" src="https://cdn.his.cdwjyyh.com/images/price_arrow_up.png" mode="" @click="saleUp(true)"></image>
+						<image v-if="form.salesOrder=='asc'" src="https://cdn.his.cdwjyyh.com/images/price_arrow_up2.png" mode="" @click="saleUp(false)"></image>
+						<image v-if="form.salesOrder==null||form.salesOrder=='asc'" src="https://cdn.his.cdwjyyh.com/images/price_arrow_down.png" mode="" @click="saleDown(true)"></image>
+						<image v-if="form.salesOrder=='desc'" src="https://cdn.his.cdwjyyh.com/images/price_arrow_down2.png" mode="" @click="saleDown(false)"></image>
 					</view>
 				</view>
 				<view class="item" :class="form.newOrder=='desc'?'active':''" @click="searchChange('4')">
@@ -110,7 +110,7 @@
 					},
 					noMoreSize: 10, // 配置列表的总数量要大于等于5条才显示'-- END --'的提示
 					empty: {
-						icon:'/static/images/no_data.png',
+						icon:'https://cdn.his.cdwjyyh.com/images/no_data.png',
 						tip: '暂无数据'
 					},
 					textNoMore:"已经到底了",

+ 9 - 9
pages/home/productSearch.vue

@@ -3,13 +3,13 @@
 		<view class="status_bar" :style="{height: statusBarHeight}"></view>
 		<!-- 搜索框 -->
 		<view class="search-cont">
-			<image @click="goBack" class="w64 h64" src="/static/images/back_black.png"></image>
+			<image @click="goBack" class="w64 h64" src="https://cdn.his.cdwjyyh.com/images/back_black.png"></image>
 			<view class="inner">
 				<input v-model="searchValue" type="text" value="" placeholder="城口腊肉/香肠" confirm-type="搜索"
 					@confirm="handleSearch" @input="handleInput" :focus='setFocus'
 					placeholder-style="font-size:28rpx;color:#BBBBBB;font-family: PingFang SC;" />
 				<image @click="clearInput" v-if="searchValue" class="w32 h32"
-					src="/static/images/search_close_gray.png">
+					src="https://cdn.his.cdwjyyh.com/images/search_close_gray.png">
 				</image>
 				<view class="line"></view>
 				<view class="search" @click="handleSearch">搜索</view>
@@ -19,7 +19,7 @@
 		<!-- 热门搜索 -->
 		<view class="title-box">
 			<text class="title">热门搜索</text>
-			<image class="w32 h32" src="/static/images/delete_icon.png"></image>
+			<image class="w32 h32" src="https://cdn.his.cdwjyyh.com/images/delete_icon.png"></image>
 		</view>
 		<view class="popular-list">
 			<view class="item" v-for="(item,index) in topSearch" :key="index" @click="doSearch(item)">
@@ -29,21 +29,21 @@
 		<!-- 推荐搜索 -->
 		<view class="title-box">
 			<text class="title">大家都在搜</text>
-			<image class="w32 h32" src="/static/images/refresh_icon.png"></image>
+			<image class="w32 h32" src="https://cdn.his.cdwjyyh.com/images/refresh_icon.png"></image>
 		</view>
 		<view class="data-list">
 			<view class="item" v-for="(item,index) in topSearch" :key="index" @click="doSearch(item)">
 				<text> {{ item }}</text>
-				<image class="w40 h40 ml8" src="/static/images/hot.png"></image>
+				<image class="w40 h40 ml8" src="https://cdn.his.cdwjyyh.com/images/hot.png"></image>
 			</view>
 		</view>
 
 		<scroll-view class="card-group" scroll-x="true" show-scrollbar="false" enhanced="true" enable-flex="true">
 			<!-- 今日热卖榜 -->
 			<view class="card border1">
-				<image class="card-bg" src="/static/images/hot_selling.png"></image>
+				<image class="card-bg" src="https://cdn.his.cdwjyyh.com/images/hot_selling.png"></image>
 				<view class="card-title">
-					<image class="w40 h40 ml8" src="/static/images/hot.png"></image>
+					<image class="w40 h40 ml8" src="https://cdn.his.cdwjyyh.com/images/hot.png"></image>
 					<text class="title1">今日热卖榜</text>
 				</view>
 				<view class="product-list">
@@ -67,9 +67,9 @@
 
 			<!-- 30天新品热销榜单 -->
 			<view class="card ml24 border2">
-				<image class="card-bg" src="/static/images/new_hot.png"></image>
+				<image class="card-bg" src="https://cdn.his.cdwjyyh.com/images/new_hot.png"></image>
 				<view class="card-title">
-					<image class="w40 h40 ml8" src="/static/images/new_product.png"></image>
+					<image class="w40 h40 ml8" src="https://cdn.his.cdwjyyh.com/images/new_product.png"></image>
 					<text class="title1">30天新品热销榜单</text>
 				</view>
 				<view class="product-list">

+ 16 - 16
pages/life/life.vue

@@ -1,19 +1,19 @@
 <template>
 	<view class="content">
 		<view class="info">
-			<image class="info-bg" src="/static/images/live_broadcast_bg.png"></image>
+			<image class="info-bg" src="https://cdn.his.cdwjyyh.com/images/live_broadcast_bg.png"></image>
 			<view class="status_bar" :style="{height: statusBarHeight}"></view>
 			<view class="shop-block">
 				<view class="title-box">
 					<view class="title">生活号</view>
-					<image class="line" src="/static/images/header_tabs_icon.png"></image>
+					<image class="line" src="https://cdn.his.cdwjyyh.com/images/header_tabs_icon.png"></image>
 				</view>
 				<view class="shop">
-					<image class="w40 h40" src="/static/images/shopping_car.png"></image>
+					<image class="w40 h40" src="https://cdn.his.cdwjyyh.com/images/shopping_car.png"></image>
 				</view>
 			</view>
 			<view class="search-cont">
-				<image class="icon-search" src="/static/images/search.png" mode=""></image>
+				<image class="icon-search" src="https://cdn.his.cdwjyyh.com/images/search.png" mode=""></image>
 				<input type="text" v-model="searchKeyword" placeholder="输入关键词搜索"
 					placeholder-style="font-size:28rpx;color:#BBBBBB;font-family: PingFang SC;" @confirm="handleSearch" />
 			</view>
@@ -34,26 +34,26 @@
 				<view class="zone-box">
 					<view class="zone-item green-bg" >
 						<view class="title-item">
-							<image class="icon" src="/static/images/hdzx_icon.png" mode=""></image>
-							<image class="title" src="/static/images/hdzx_title.png" mode=""></image>
+							<image class="icon" src="https://cdn.his.cdwjyyh.com/images/hdzx_icon.png" mode=""></image>
+							<image class="title" src="https://cdn.his.cdwjyyh.com/images/hdzx_title.png" mode=""></image>
 						</view>
 						<view class="entrance-item">
 							<text class="txt">#活动中心标题</text>
-							<image class="icon" src="/static/images/shh_arrow_right_icon.png" mode=""></image>
+							<image class="icon" src="https://cdn.his.cdwjyyh.com/images/shh_arrow_right_icon.png" mode=""></image>
 						</view>
 					</view>
 
 					<view class="zone-item">
 						<view class="title-item">
-							<image class="icon" src="/static/images/ranking_icon.png" mode=""></image>
-							<image class="title" src="/static/images/yxjb_title.png" mode=""></image>
+							<image class="icon" src="https://cdn.his.cdwjyyh.com/images/ranking_icon.png" mode=""></image>
+							<image class="title" src="https://cdn.his.cdwjyyh.com/images/yxjb_title.png" mode=""></image>
 						</view>
 						<view class="entrance-item">
 							<view class="left">
 								<text class="bold">TOP.1</text>
 								<text class="txt">冰乳绿豆糕 冰冰</text>
 							</view>
-							<image class="icon" src="/static/images/shh_arrow_right_icon.png" mode=""></image>
+							<image class="icon" src="https://cdn.his.cdwjyyh.com/images/shh_arrow_right_icon.png" mode=""></image>
 						</view>
 					</view>
 				</view>
@@ -63,9 +63,9 @@
 					:down="downOption" :up="upOption">
 					<view class="list">
 						<view class="list-item" @click="goLifeDetail(item.resourceId)" v-for="(item,index) in list" :key="index">
-							<image class="img" :src="item.imgsUrl||'/static/images/img.png'" mode="widthFix"></image>
-							<image class="video-icon" src="/static/images/video_icon.png"></image>
-							<image class="suspension-icon" @click="onTask" src="/static/images/suspension.png"></image>
+							<image class="img" :src="item.imgsUrl||'https://cdn.his.cdwjyyh.com/images/img.png'" mode="widthFix"></image>
+							<image class="video-icon" src="https://cdn.his.cdwjyyh.com/images/video_icon.png"></image>
+							<image class="suspension-icon" @click="onTask" src="https://cdn.his.cdwjyyh.com/images/suspension.png"></image>
 							<view class="info-block">
 								<view class="title">{{ item.content }}</view>
 								<view class="item">
@@ -74,16 +74,16 @@
 										<text class="name">{{ item.nickname }}</text>
 									</view>
 									<view class="flex">
-										<image class="icon" src="/static/images/zan_icon.png"></image>
+										<image class="icon" src="https://cdn.his.cdwjyyh.com/images/zan_icon.png"></image>
 										<text>{{ item.clickCount }}</text>
 									</view>
 								</view>
 								<view class="card">
 									<view class="card-item">
-										<image class="img" src="/static/images/jinbang_font.png"></image>
+										<image class="img" src="https://cdn.his.cdwjyyh.com/images/jinbang_font.png"></image>
 										<text class="ranking">达人榜 第15名</text>
 									</view>
-									<image class="go" src="/static/images/jb_arrow_right_icon.png"></image>
+									<image class="go" src="https://cdn.his.cdwjyyh.com/images/jb_arrow_right_icon.png"></image>
 								</view>
 							</view>
 						</view>

+ 12 - 16
pages/live/list.vue

@@ -1,11 +1,11 @@
 <template>
 	<view class="content">
 		<view class="info">
-			<image class="info-bg" src="/static/images/live_broadcast_bg.png"></image>
+			<image class="info-bg" src="https://cdn.his.cdwjyyh.com/images/live_broadcast_bg.png"></image>
 			<view class="status_bar" :style="{height: statusBarHeight}"></view>
 			<view class="shop-block">
 				<view class="shop">
-					<image class="w40 h40" src="/static/images/shopping_car.png"></image>
+					<image class="w40 h40" src="https://cdn.his.cdwjyyh.com/images/shopping_car.png"></image>
 				</view>
 			</view>
 			<view class="vedio-block">
@@ -14,13 +14,13 @@
 						<!-- 直播 -->
 						<view class="tab-item" :class="{ active: activeTab === 0 }" @click="switchTab(0)">
 							<text class="tab-text">直播中</text>
-							<image class="line" v-if="activeTab === 0" src="/static/images/header_tabs_icon.png"
+							<image class="line" v-if="activeTab === 0" src="https://cdn.his.cdwjyyh.com/images/header_tabs_icon.png"
 								alt="" />
 						</view>
 						<!-- 直播预告-->
 						<view class="tab-item" :class="{ active: activeTab === 1 }" @click="switchTab(1)">
 							<text class="tab-text">直播预告</text>
-							<image class="line" v-if="activeTab === 1" src="/static/images/header_tabs_icon.png"
+							<image class="line" v-if="activeTab === 1" src="https://cdn.his.cdwjyyh.com/images/header_tabs_icon.png"
 								alt="" />
 						</view>
 					</view>
@@ -34,7 +34,7 @@
 							<!-- 重庆 · 优选标签 -->
 							<view class="lable">
 								<view class="play-lable">
-									<image class="icon" src="/static/images/play.gif"></image>
+									<image class="icon" src="https://cdn.his.cdwjyyh.com/images/play.gif"></image>
 								</view>
 								<view class="place-label">
 									重庆 · 优选
@@ -42,18 +42,18 @@
 							</view>
 							<!-- 直播中标签 -->
 							<view class="live-lable" v-if="false">
-								<image class="icon" src="/static/images/play.gif"></image>
+								<image class="icon" src="https://cdn.his.cdwjyyh.com/images/play.gif"></image>
 								<text>直播中</text>
 							</view>
 							<view class="info-block">
 								<view class="title ellipsis2">冰乳绿豆糕 冰冰凉凉谁吃谁迷糊! 谁懂,...冰乳绿豆糕 冰冰凉凉谁吃谁迷糊!</view>
 								<view class="item">
 									<view class="flex">
-										<image class="head" src="/static/images/img.png"></image>
+										<image class="head" src="https://cdn.his.cdwjyyh.com/images/img.png"></image>
 										<text class="name">崔医生</text>
 									</view>
 									<view class="flex">
-										<image class="icon" src="/static/images/watch_number_icon.png"></image>
+										<image class="icon" src="https://cdn.his.cdwjyyh.com/images/watch_number_icon.png"></image>
 										<text>141</text>
 									</view>
 								</view>
@@ -70,17 +70,17 @@
 								<image class="img" v-if="item.liveImgUrl" :src="item.liveImgUrl">
 								</image>
 							</view>
-							<!-- <image class="video-icon" src="/static/images/video_icon.png"></image> -->
+							<!-- <image class="video-icon" src="https://cdn.his.cdwjyyh.com/images/video_icon.png"></image> -->
 							<view class="info-block">
 								<view class="title ellipsis2">冰乳绿豆糕 冰冰凉凉谁吃谁迷糊! 谁懂,...冰乳绿豆糕 冰冰凉凉谁吃谁迷糊!冰乳绿豆糕 冰冰凉凉谁吃谁迷糊!
 								</view>
 								<view class="shop-item">
-									<image class="head" src="/static/images/img.png"></image>
+									<image class="head" src="https://cdn.his.cdwjyyh.com/images/img.png"></image>
 									<text class="name">芳华悦选旗舰店</text>
 								</view>
 								<view class="item">
 									<view class="flex">
-										<image class="icon" src="/static/images/reservation_icon.png"></image>
+										<image class="icon" src="https://cdn.his.cdwjyyh.com/images/reservation_icon.png"></image>
 										<text class="name">245人已预约</text>
 									</view>
 									<view class="button">预约</view>
@@ -127,11 +127,7 @@
 			}
 		},
 		onLoad() {
-			// if (!uni.getStorageSync("AppToken")) {
-			// 	uni.navigateTo({
-			// 		url: '/pages/auth/login'
-			// 	});
-			// }
+		
 		},
 		onUnload() {
 

+ 4 - 4
pages/shopping/cart.vue

@@ -22,12 +22,12 @@
 						</view>
 						<view class="num-box">
 							<view class="img-box" @click="delNum(item)">
-								<image v-if="item.cartNum <= 1" src="../../static/images/jian.png" mode=""></image>
-								<image v-else src="../../static/images/jian2.png" mode=""></image>
+								<image v-if="item.cartNum <= 1" src="https://cdn.his.cdwjyyh.com/images/jian.png" mode=""></image>
+								<image v-else src="https://cdn.his.cdwjyyh.com/images/jian2.png" mode=""></image>
 							</view>
 							<input  type="number" @change="changeNum($event,item)" :value="item.cartNum"   />
 							<view class="img-box" @click="addNum(item)">
-								<image src="../../static/images/add.png" mode=""></image>
+								<image src="https://cdn.his.cdwjyyh.com/images/add.png" mode=""></image>
 							</view>
 						</view>
 					</view>
@@ -36,7 +36,7 @@
 		</view>
 	 
 		<view v-if="carts.length == 0" class="no-data-box">
-			<image src="../../static/images/no_data.png" mode="aspectFit"></image>
+			<image src="https://cdn.his.cdwjyyh.com/images/no_data.png" mode="aspectFit"></image>
 			<view class="empty-title">暂无数据</view>
 		</view>
 		<!-- 猜你喜欢 -->

+ 166 - 160
pages/shopping/index.vue

@@ -1,129 +1,118 @@
 <template>
-	<view class="content">
-		<view class="top-content">
-			<image class="bg" src="/static/images/classification-bg.png"></image>
-			<view class="status_bar" :style="{height: statusBarHeight}"></view>
-			<!-- 这里是状态栏 -->
-			<!-- <view class="top-title">健康商城</view> -->
-			<!-- 搜索框 -->
-			<view class="search-cont">
-				<image class="back" src="../../static/images/back_black.png" mode=""></image>
-				<view class="inner">
-					<image class="icon-search" src="../../static/images/search.png" mode=""></image>
-					<input type="text" disabled confirm-type="搜索" @click="toSearch" placeholder="搜索您喜欢的商品"
-						placeholder-style="font-size:28rpx;color:#BBBBBB;font-family: PingFang SC;" />
-				</view>
-			</view>
-			<!-- 栏目 -->
-			<view class="column-box" :class="isExpand?'column-box2':''">
-				<!-- <view class="column-list" :class="isExpand?'column-list2':''">
-					<view class="item" v-for="(item,index) in columnList" :key="index" @click="selectColumn(item)">
-						<view class="img-item" :class="index===activeIndex?'active':''">
-							<image class="img" src="../../static/images/img.png" mode=""></image>
-						</view>
-						<view class="name" :class="index===activeIndex?'active':''">{{item.name}}</view>
+	<view>
+		<view class="content">
+			<view class="top-content">
+				<image class="bg" src="https://cdn.his.cdwjyyh.com/images/classification-bg.png"></image>
+				<view class="status_bar" :style="{height: statusBarHeight}"></view>
+				<!-- 这里是状态栏 -->
+				<!-- <view class="top-title">健康商城</view> -->
+				<!-- 搜索框 -->
+				<view class="search-cont">
+					<image @click="back" class="back" src="https://cdn.his.cdwjyyh.com/images/back_black.png" mode=""></image>
+					<view class="inner">
+						<image class="icon-search" src="https://cdn.his.cdwjyyh.com/images/search.png" mode=""></image>
+						<input type="text" disabled confirm-type="搜索" @click="toSearch" placeholder="搜索您喜欢的商品"
+							placeholder-style="font-size:28rpx;color:#BBBBBB;font-family: PingFang SC;" />
 					</view>
-				</view> -->
-				<scroll-view class="column-list-scroll" :class="isExpand?'column-list2':''" scroll-x="true"
-					:scroll-with-animation="true" :show-scrollbar="false" :enable-flex="true">
-					<view class="column-list" :class="isExpand?'column-list2':''">
+				</view>
+				<!-- 栏目 -->
+				<view class="column-box" :class="isExpand?'column-box2':''">
+					<!-- <view class="column-list" :class="isExpand?'column-list2':''">
 						<view class="item" v-for="(item,index) in columnList" :key="index" @click="selectColumn(item)">
-							<view class="img-item" :class="index===activeIndex?'active':''">
-								<image class="img" src="../../static/images/img.png" mode=""></image>
+								<view class="img-item" :class="index===activeIndex?'active':''">
+									<image class="img" :src="item.img" mode=""></image>
+								</view>
+								<view class="name" :class="index===activeIndex?'active':''">{{item.name}}</view>
 							</view>
-							<view class="name" :class="index===activeIndex?'active':''">{{item.name}}</view>
+					</view> -->
+					<scroll-view class="column-list-scroll" :class="isExpand?'column-list2':''" scroll-x="true"
+						:scroll-with-animation="true" :show-scrollbar="false" :enable-flex="true">
+						<view class="column-list" :class="isExpand?'column-list2':''">
+							<view class="item" v-for="(item,index) in columnList" :key="index" @click="selectColumn(item)">
+									<view class="img-item" :class="index===activeIndex?'active':''">
+										<image class="img" :src="item.img" mode=""></image>
+									</view>
+									<view class="name" :class="index===activeIndex?'active':''">{{item.name}}</view>
+								</view>
 						</view>
+					</scroll-view>
+					<view class="expand" @click="expand" :class="{'expand2': isExpand}">
+						<view>{{isExpand ? '收起' : '展开'}}</view>
+						<image class="expand-icon"
+							:src="isExpand ? 'https://cdn.his.cdwjyyh.com/images/retract.png' : 'https://cdn.his.cdwjyyh.com/images/expand.png'" mode="">
+						</image>
 					</view>
-				</scroll-view>
-				<view class="expand" @click="expand" :class="{'expand2': isExpand}">
-					<view>{{isExpand ? '收起' : '展开'}}</view>
-					<image class="expand-icon"
-						:src="isExpand ? '../../static/images/retract.png' : '../../static/images/expand.png'" mode="">
-					</image>
 				</view>
-			</view>
 
-		</view>
-		<view :style="{height: divHeight}" class="medic-box">
-			<view class="cate-list">
-				<view v-for="(item,index) in cates" :key="index" :class="cateSelect == item.cateId?'item active':'item'"
-					@click="choseCate(item)">
-					<image class="line" v-if="cateSelect == item.cateId" src="/static/images/select_hover_line.png"
-						mode=""></image>
-					{{item.cateName }}
-				</view>
 			</view>
-			<view class="medic">
-				<view class="tab-inner">
-					<view v-for="(item,index) in selectList" :key="index"
-						:class="selectIndex == item.value?'item active':'item'" @click="onSelect(item)">
-						<view class="text">
-							<text>{{ item.name }}</text>
-							<image v-if="item.value==2" class="tab-bg" :src=`/static/images/shaixuan_moren${number}.png` mode="">
-							</image>
-						</view>
-					</view>
-					<view class="icon-search">
-						<image @click="showChange(2)" v-if="showType==1" src="../../static/images/demonstrations1.png"
-							mode="">
-						</image>
-						<image @click="showChange(1)" v-if="showType==2" src="../../static/images/demonstrations2.png"
-							mode="">
-						</image>
-						<view class="filter">
-							<text>筛选</text>
-							<image class="ml8" @click="toFilter" src="../../static/images/filter_icon.png" mode="">
-						</view>
+			<view :style="{height: divHeight}" class="medic-box">
+				<view class="cate-list">
+					<view v-for="(item,index) in cates" :key="index" :class="cateSelect == item.cateId?'item active':'item'"
+						@click="choseCate(item)">
+						<image class="line" v-if="cateSelect == item.cateId" src="https://cdn.his.cdwjyyh.com/images/select_hover_line.png"
+							mode=""></image>
+						{{item.cateName }}
 					</view>
 				</view>
-				<view class="medic-list">
-					<view v-for="(item,index) in dataList" :key="index" class="item" @click="showDetail(item)">
-						<view class="img-box">
-							<image :src="item.image" mode="aspectFit"></image>
-						</view>
-						<view class="info-box">
-							<view class="title ellipsis2">{{item.productName}}</view>
-							<view class="intro ellipsis">{{item.productInfo}}</view>
-							<view class="sale">已售 {{item.sales}} {{item.unitName}} | 惊艳度98%</view>
-							<view class="lable-group">
-								<view class="lable-item">9.5折</view>
-								<view class="lable-item">限购1份</view>
+				<view class="medic">
+					<view class="tab-inner">
+						<view v-for="(item,index) in selectList" :key="index"
+							:class="selectIndex == item.value?'item active':'item'" @click="onSelect(item)">
+							<view class="text">
+								<text>{{ item.name }}</text>
+								<image v-if="item.value==2" class="tab-bg" :src=`https://cdn.his.cdwjyyh.com/images/shaixuan_moren${number}.png` mode="">
+								</image>
 							</view>
-							<view class="prce-num">
-								<view class="price">
-									<text class="unit">¥</text><text
-										class="bold">{{splitPrice(item.price).integer}}</text>.{{splitPrice(item.price).decimal}}
-								</view>
-								<view class="cart-img" @click="navgetTo('../shopping/cart')">
-									<image class="w40 h40" src="/static/images/add_car.png"></image>
-								</view>
+						</view>
+						<view class="icon-search">
+							<image @click="showChange(2)" v-if="showType==1" src="https://cdn.his.cdwjyyh.com/images/demonstrations1.png"
+								mode="">
+							</image>
+							<image @click="showChange(1)" v-if="showType==2" src="https://cdn.his.cdwjyyh.com/images/demonstrations2.png"
+								mode="">
+							</image>
+							<view class="filter">
+								<text>筛选</text>
+								<image class="ml8" @click="toFilter" src="https://cdn.his.cdwjyyh.com/images/filter_icon.png" mode="">
 							</view>
 						</view>
 					</view>
-				</view>
-				<!-- 轮播图 -->
-				<!-- <view class="banner-box">
-					<swiper class="swiper" :indicator-dots="true" :circular="true" :autoplay="true" :interval="3000"
-						:duration="1000" indicator-color="rgba(255, 255, 255, 0.6)" indicator-active-color="#ffffff">
-						<swiper-item class="swiper-item" v-for="(item,index) in advs" :key="index"
-							@click="handleAdvClick(item)">
-							<image :src="item.imageUrl" mode=""></image>
-						</swiper-item>
-					</swiper>
-				</view> -->
-				<!-- 药品列表 -->
-				<!-- <view class="medic-list">
-					<view class="inner-list">
-						<view class="definite" v-for="(subItem,index) in subCates" @click="showProductList(subItem)">
+					<view class="medic-list">
+						<view v-for="(item,index) in dataList" :key="index" class="item" @click="showDetail(item)">
 							<view class="img-box">
-								<image :src="subItem.pic" mode="aspectFit"></image>
+								<image :src="item.image" mode="aspectFit"></image>
+							</view>
+							<view class="info-box">
+								<view class="title ellipsis2">{{item.productName}}</view>
+								<view class="intro ellipsis">{{item.productInfo}}</view>
+								<view class="sale">已售 {{item.sales}} {{item.unitName}} | 惊艳度98%</view>
+								<view class="lable-group">
+									<view class="lable-item">9.5折</view>
+									<view class="lable-item">限购1份</view>
+								</view>
+								<view class="prce-num">
+									<view class="price">
+										<text class="unit">¥</text><text
+											class="bold">{{splitPrice(item.price).integer}}</text>.{{splitPrice(item.price).decimal}}
+									</view>
+									<view class="cart-img" @click.stop="buy(item)">
+									<image class="w40 h40" src="https://cdn.his.cdwjyyh.com/images/add_car.png"></image>
+								</view>
+								</view>
 							</view>
-							<view class="name ellipsis">{{subItem.cateName}}</view>
 						</view>
 					</view>
-				</view> -->
+				</view>
 			</view>
 		</view>
+		<!-- 商品规格选择弹窗 -->
+		<ProductSpecPopup
+			:visible="specVisible"
+			:product="product"
+			:is-buy-mode="isBuyMode"
+			@update:visible="specVisible = $event"
+			@cart-updated="getCartCount"
+		/>
 	</view>
 </template>
 
@@ -134,10 +123,18 @@
 	import {
 		getAdv
 	} from '@/api/adv'
+	import {
+		getMyProductCate,
+		getCartCount
+	} from '@/api/index'
+	import ProductSpecPopup from '@/components/product-spec-popup/product-spec-popup.vue'
 	export default {
-		data() {
-			return {
-				number:0,
+			components: {
+				ProductSpecPopup
+			},
+			data() {
+				return {
+					number:0,
 				selectIndex: 0,
 				selectList: [{
 					name: '综合',
@@ -154,52 +151,8 @@
 				}],
 				isExpand: false, //是否展开
 				activeIndex: 0,
-				columnList: [{
-					name: "中秋佳礼",
-					img: "/static/images/img.png",
-					value: 0
-				}, {
-					name: "中秋佳礼",
-					img: "/static/images/img.png",
-					value: 1
-				}, {
-					name: "中秋佳礼",
-					img: "/static/images/img.png",
-					value: 2
-				}, {
-					name: "中秋佳礼",
-					img: "/static/images/img.png",
-					value: 3
-				}, {
-					name: "中秋佳礼",
-					img: "/static/images/img.png",
-					value: 4
-				}, {
-					name: "中秋佳礼",
-					img: "/static/images/img.png",
-					value: 5
-				}, {
-					name: "中秋佳礼",
-					img: "/static/images/img.png",
-					value: 6
-				}, {
-					name: "中秋佳礼",
-					img: "/static/images/img.png",
-					value: 7
-				}],
+				columnList: [],
 				dataList: [{
-					cateId: 364,
-					image: "https://hos-1309931967.cos.ap-chongqing.myqcloud.com/fs/20251216/6a3c96bd3fc44b15b760871670302e9a.jpg",
-					otPrice: 268,
-					price: 98,
-					productId: 66050,
-					productInfo: "电肌肉刺激(EMS),又称神经肌肉电刺激,是利用电脉冲诱发多发性肌肉收缩;中枢神经系统使肌肉收缩;EMS被证明是一种积极的肌肉强化工具。↵EMS的用途:肌肉强化,预防废肌萎缩,肌肉松弛,缓解酸痛,放松肌肉,美容肌肉调理。",
-					productName: "佟络宝®健步器",
-					sales: 1026,
-					unitName: "个",
-					warehouseCode: "JST001",
-					warehouseId: 3,
-				}, {
 					cateId: 364,
 					image: "https://hos-1309931967.cos.ap-chongqing.myqcloud.com/fs/20251204/c53bb29cf794468ba59ee2d60983b92f.jpg",
 					otPrice: 298,
@@ -211,6 +164,18 @@
 					unitName: "盒",
 					warehouseCode: "JST001",
 					warehouseId: 3,
+				}, {
+					cateId: 364,
+					image: "https://hos-1309931967.cos.ap-chongqing.myqcloud.com/fs/20251216/6a3c96bd3fc44b15b760871670302e9a.jpg",
+					otPrice: 268,
+					price: 98,
+					productId: 66050,
+					productInfo: "电肌肉刺激(EMS),又称神经肌肉电刺激,是利用电脉冲诱发多发性肌肉收缩;中枢神经系统使肌肉收缩;EMS被证明是一种积极的肌肉强化工具。↵EMS的用途:肌肉强化,预防废肌萎缩,肌肉松弛,缓解酸痛,放松肌肉,美容肌肉调理。",
+					productName: "佟络宝®健步器",
+					sales: 1026,
+					unitName: "个",
+					warehouseCode: "JST001",
+					warehouseId: 3,
 				}],
 				divHeight: '0px',
 				allCates: [],
@@ -221,16 +186,21 @@
 				// 选中药品分类
 				cateSelect: 0,
 				// 轮播图
-				advs: [],
+			advs: [],
+			// 商品规格选择弹窗
+			specVisible: false,
+			product: null,
+			isBuyMode: false,
 			};
 		},
 		onLoad() {
-			uni.showShareMenu({
-				withShareTicket: true,
-				//小程序的原生菜单中显示分享按钮,才能够让发送给朋友与分享到朋友圈两个按钮可以点击
-				menus: ["shareAppMessage", "shareTimeline"] //不设置默认发送给朋友
-			})
-			this.getProductCate();
+				uni.showShareMenu({
+					withShareTicket: true,
+					//小程序的原生菜单中显示分享按钮,才能够让发送给朋友与分享到朋友圈两个按钮可以点击
+					menus: ["shareAppMessage", "shareTimeline"] //不设置默认发送给朋友
+				})
+				this.getProductCate();
+			this.fetchMyProductCate();
 		},
 		onShow() {
 			var that = this;
@@ -245,6 +215,12 @@
 			this.getAdv();
 		},
 		methods: {
+			back(){
+				uni.navigateBack({
+					delta: 1
+				});
+			},
+
 			onSelect(item) {
 				console.log("item", item)
 				this.selectIndex = item.value
@@ -368,6 +344,36 @@
 				uni.navigateTo({
 					url: '../home/productList?searchValue=' + e.detail.value
 				})
+			},
+			// 获取我的频道数据
+			fetchMyProductCate() {
+				getMyProductCate().then(
+					res => {
+						if (res.code == 200) {
+							// 提取分类数据并更新 columnList
+							if (res.data) {
+								this.columnList = res.data.map((item, index) => ({
+									name: item.cateName,
+									img: item.pic || 'https://cdn.his.cdwjyyh.com/images/img.png',
+									value: index
+								}));
+							}
+						}
+					},
+					rej => {}
+				);
+			},
+			// 查看商品详情
+			showDetail(item) {
+				uni.navigateTo({
+					url: '/pages_shopping/shopping/productDetails?productId=' + item.productId
+				});
+			},
+			// 显示商品规格选择弹窗
+			buy(item) {
+				this.product = item;
+				this.isBuyMode = false;
+				this.specVisible = true;
 			}
 		}
 	}

+ 199 - 174
pages/user/index.vue

@@ -7,33 +7,33 @@
 				<view class="top-block">
 					<view class="qscode-block">
 						<view class="qscode">
-							<image class="w40 h40" src="/static/images/qscode_icon.png"></image>
+							<image class="w40 h40" src="https://cdn.his.cdwjyyh.com/images/qscode_icon.png"></image>
 						</view>
 					</view>
 					<view class="user-info">
 
 						<view class="left" @click="openPersonInfo()">
 							<view class="head-img">
-								<image :src="user.avatar==null?'/static/images/detault_head.jpg':user.avatar"
+								<image :src="user.avatar==null?'https://cdn.his.cdwjyyh.com/images/detault_head.jpg':user.avatar"
 									mode="aspectFill"></image>
 							</view>
 							<view class="name-phone">
 								<view class="name">
 									<text>{{user.nickname}}</text>
-									<image class="w48 h48" src="/static/images/right1.png"></image>
+									<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/right1.png"></image>
 								</view>
 								<view class="user-page">
 									<text>个人主页</text>
-									<image class="w32 h32" src="/static/images/right1.png"></image>
+									<image class="w32 h32" src="https://cdn.his.cdwjyyh.com/images/right1.png"></image>
 								</view>
 
 								<view class="lable">
 									<view class="lable-item">
-										<image class="w32 h32 mr8" src="/static/images/lv_icon.png"></image>
+										<image class="w32 h32 mr8" src="https://cdn.his.cdwjyyh.com/images/lv_icon.png"></image>
 										<text>会员</text>
 									</view>
 									<view class="lable-item yellow">
-										<image class="w32 h32 mr8" src="/static/images/intelligent_icon.png"></image>
+										<image class="w32 h32 mr8" src="https://cdn.his.cdwjyyh.com/images/intelligent_icon.png"></image>
 										<text>LV.2</text>
 									</view>
 								</view>
@@ -42,12 +42,12 @@
 						<view class="right">
 							<!-- <uni-badge size="small" :text="msgNum" absolute="rightTop" type="error">
 							<view class="set" @click="navgetTo('/pages_user/user/personInfo')">
-								<image src="../../static/images/icon-set.png" mode=""></image>
+								<image src="https://cdn.his.cdwjyyh.com/images/icon-set.png" mode=""></image>
 							</view>
 						</uni-badge> -->
 							<uni-badge size="small" :text="msgNum" absolute="rightTop" type="error">
 								<view class="msg-box" @click="navgetTo('/pages_user/user/message')">
-									<image src="../../static/images/icon-msg.png" mode=""></image>
+									<image src="https://cdn.his.cdwjyyh.com/images/icon-msg.png" mode=""></image>
 								</view>
 							</uni-badge>
 						</view>
@@ -62,11 +62,11 @@
 				</view>
 				<!-- 会员 -->
 				<view class="member">
-					<image class="bg" src="/static/images/vip_bg.png"></image>
+					<image class="bg" src="https://cdn.his.cdwjyyh.com/images/vip_bg.png"></image>
 					<view class="member-block">
 						<view class="left">
 							<view class="vip">
-								<image class="w126 h30 mr34" src="/static/images/VIP_member.png"></image>
+								<image class="w126 h30 mr34" src="https://cdn.his.cdwjyyh.com/images/VIP_member.png"></image>
 								<text>已过期4天</text>
 							</view>
 							<view class="count">
@@ -85,35 +85,35 @@
 							<text class="title">我的订单</text>
 							<view class="all-order" @click="showOrder('')">
 								<text class="text">全部订单</text>
-								<image src="../../static/images/arrow4.png" mode=""></image>
+								<image src="https://cdn.his.cdwjyyh.com/images/arrow4.png" mode=""></image>
 							</view>
 						</view>
 						<view class="status-box">
 							<uni-badge size="small" :text=count0 absolute="rightTop" type="error">
 								<view class="item" @click="showOrder('0')">
-									<image src="../../static/images/payment.png" mode=""></image>
+									<image src="https://cdn.his.cdwjyyh.com/images/payment.png" mode=""></image>
 									<text class="text">待付款</text>
 								</view>
 							</uni-badge>
 							<uni-badge size="small" :text=count1 absolute="rightTop" type="error">
 								<view class="item" @click="showOrder('1')">
-									<image src="../../static/images/send_goods.png" mode=""></image>
+									<image src="https://cdn.his.cdwjyyh.com/images/send_goods.png" mode=""></image>
 									<text class="text">待发货</text>
 								</view>
 							</uni-badge>
 							<uni-badge size="small" :text=count2 absolute="rightTop" type="error">
 								<view class="item" @click="showOrder('2')">
-									<image src="../../static/images/sou_goods.png" mode=""></image>
+									<image src="https://cdn.his.cdwjyyh.com/images/sou_goods.png" mode=""></image>
 									<text class="text">待收货</text>
 								</view>
 							</uni-badge>
 							<view class="item" @click="showOrder('3')">
-								<image src="../../static/images/completed.png" mode=""></image>
+								<image src="https://cdn.his.cdwjyyh.com/images/completed.png" mode=""></image>
 								<text class="text">已完成</text>
 							</view>
 							<uni-badge size="small" :text=afterSalesCount absolute="rightTop" type="error">
 								<view class="item" @click="navgetTo('/pages_user/user/refundOrderList')">
-									<image src="../../static/images/after_sales.png" mode=""></image>
+									<image src="https://cdn.his.cdwjyyh.com/images/after_sales.png" mode=""></image>
 									<text class="text">售后/退款</text>
 								</view>
 							</uni-badge>
@@ -122,11 +122,11 @@
 				</view>
 				<!-- 芳华币签到 -->
 				<view class="coin-card">
-					<image class="bg" src="/static/images/sign_in_bg.png"></image>
+					<image class="bg" src="https://cdn.his.cdwjyyh.com/images/sign_in_bg.png"></image>
 					<view class="container">
 						<view class="coin-txt">
-							<view class="left">已连续签到 <text class="bold">1</text>天</view>
-							<view class="right">我的芳华币:4578</view>
+							<view class="left">已连续签到 <text class="bold">{{continuousDays}}</text>天</view>
+							<view class="right">我的芳华币:{{userIntegral}}</view>
 						</view>
 						<view class="item">
 							<!-- <view class="progress"></view> -->
@@ -134,155 +134,94 @@
 							<view class="progress">
 								<view class="line"></view>
 								<view v-for="(item,index) in sign" :key="index"
-									:class="signNum >= index+ 1?'img-item active':'img-item'">
+									:class="signNum >= item.sort?'img-item active':'img-item'">
 									<view class="top">
 
-										<image v-if="signNum >= index+ 1" src="/static/images/right_org.png" mode="">
+										<image v-if="signNum >= item.sort" src="https://cdn.his.cdwjyyh.com/images/right_org.png" mode="">
 										</image>
 										<!-- 未签到图标 -->
-										<image v-else src="/static/images/right_org_ling.png" mode=""></image>
+										<image v-else src="https://cdn.his.cdwjyyh.com/images/right_org_ling.png" mode=""></image>
 									</view>
 
 
-									<text class="text">{{ item.day }}</text>
+									<text class="text">{{ item.day }}</text>
 								</view>
 							</view>
-							<image class="button" mode="widthFix" src="/static/images/check_in.png"></image>
+							<image class="button" mode="widthFix" src="https://cdn.his.cdwjyyh.com/images/check_in.png" @click="doSign"></image>
 						</view>
 					</view>
 				</view>
 				<view class="content">
-					<!-- 常用工具 -->
-					<view class="used-tools">
-						<view class="title">我的应用</view>
-						<view class="tools-list">
-							<!-- <view 
-								v-for="(item,index) in toolsArr" 
-								:key="index" 
-								@click="navgetTo(item.url)" 
-								:class="(toolsArr.length - index) > toolsRemain?'item':'item no-marin-bottom'">
-								<image :src="item.img" mode=""></image>
-								<text class="text">{{ item.name }}</text>
-								<button v-if="item.url == ''" class="contact-btn" open-type="contact"></button>
-							</view> -->
-							<!-- <view class="item" @click="navgetTo('/pages_user/user/doctorOrder')">
-								<image src="../../static/images/my_ask.png" mode=""></image>
-								<text class="text">我的问诊</text>
-							</view> -->
-							<view class="item no-marin-bottom" @click="navgetTo('/pages_shopping/live/order')">
-								<image src="../../static/images/live.png" mode=""></image>
-								<text class="text">直播订单</text>
-							</view>
-							<view class="item" @click="navgetTo('/pages_user/user/prescribeOrder')">
-								<image src="../../static/images/prescription.png" mode=""></image>
-								<text class="text">我的处方</text>
-							</view>
-							<view class="item" @click="navgetTo('/pages_user/user/patient')">
-								<image src="../../static/images/management.png" mode=""></image>
-								<text class="text">就诊人管理</text>
-							</view>
-							<view class="item" @click="navgetTo('/pages_user/user/address')">
-								<image src="../../static/images/address.png" mode=""></image>
-								<text class="text">收货地址</text>
-							</view>
-							<!-- <view class="item no-marin-bottom" @click="navgetTo('/pages_user/user/integral')">
-								<image src="../../static/images/integral.png" mode=""></image>
-								<text class="text">积分管理</text>
-							</view> -->
-							<view class="item no-marin-bottom" @click="navgetTo('/pages_shopping/shopping/myCoupon')">
-								<image src="../../static/images/mycoupon.png" mode=""></image>
-								<text class="text">领券中心</text>
-							</view>
-							<view class="item no-marin-bottom"
-								@click="navgetTo('/pages_user/user/storeProductRelation')">
-								<image src="../../static/images/service_file.png" mode=""></image>
-								<text class="text">我的足迹</text>
-							</view>
-							<view class="item no-marin-bottom" @click="openH5(1)">
-								<image src="../../static/images/service_file.png" mode=""></image>
-								<text class="text">用户协议</text>
-							</view>
-							<view class="item no-marin-bottom align-top" @click="openH5(2)">
-								<image src="../../static/images/advice.png" mode=""></image>
-								<text class="text">隐私保护</text>
-							</view>
-							<view class="item no-marin-bottom">
-								<image src="../../static/images/customer1.png" mode=""></image>
-								<text class="text">专属客服</text>
-								<button class="contact-btn" open-type="contact"></button>
-							</view>
-							<view v-if="user.isPromoter==0" class="item no-marin-bottom"
-								@click="navgetTo('/pages_user/user/userTuiAdd')">
-								<image src="../../static/images/my_promotion.png" mode=""></image>
-								<text class="text">申请健康大使</text>
-							</view>
-							<view v-if="user.isPromoter==1" class="item no-marin-bottom"
-								@click="navgetTo('/pages_user/user/userTui')">
-								<image src="../../static/images/my_promotion.png" mode=""></image>
-								<text class="text">我的推广</text>
-							</view>
-							<view class="item no-marin-bottom" @click="navgetTo('/pages/home/cert')">
-								<image src="../../static/images/service_file.png" mode=""></image>
-								<text class="text">资质证书</text>
-							</view>
-
-							<view class="item no-marin-bottom" @click="toManager()">
-								<image src="../../static/images/management.png" mode=""></image>
-								<text class="text">销售管理</text>
-							</view>
-						</view>
+			<!-- 常用工具 -->
+			<view class="used-tools">
+				<view class="title">我的应用</view>
+				<view class="tools-list">
+					<view class="item" @click="navgetTo('/pages_shopping/shopping/myCoupon')">
+						<image src="https://cdn.his.cdwjyyh.com/images/my_coupon.png" mode=""></image>
+						<text class="text">领券中心</text>
 					</view>
-
-					<view class="used-tools">
-						<view class="title">我的视频</view>
-						<view class="tools-list">
-							<view class="item no-marin-bottom" @click="navgetTo('/pages_shopping/live/order')">
-								<image src="../../static/images/live.png" mode=""></image>
-								<text class="text">直播订单</text>
-							</view>
-						</view>
+					<view class="item" @click="navgetTo('/pages_user/user/address')">
+						<image src="https://cdn.his.cdwjyyh.com/images/my_location.png" mode=""></image>
+						<text class="text">地址管理</text>
 					</view>
+					<view class="item" @click="navgetTo('/pages_user/user/storeProductRelation')">
+						<image src="https://cdn.his.cdwjyyh.com/images/my_coin.png" mode=""></image>
+						<text class="text">芳华币商城</text>
+					</view>
+					<view class="item" @click="navgetTo('/pages_user/user/message')">
+						<image src="https://cdn.his.cdwjyyh.com/images/my_service.png" mode=""></image>
+						<text class="text">客服中心</text>
+					</view>
+					<view class="item no-marin-bottom" @click="navgetTo('/pages_user/user/personInfo')">
+						<image src="https://cdn.his.cdwjyyh.com/images/member_center.png" mode=""></image>
+						<text class="text">会员中心</text>
+					</view>
+					<view class="item no-marin-bottom" @click="openH5(2)">
+						<image src="https://cdn.his.cdwjyyh.com/images/my_advice.png" mode=""></image>
+						<text class="text">投诉建议</text>
+					</view>
+					<view class="item no-marin-bottom" @click="navgetTo('/pages_user/user/storeProductRelation')">
+						<image src="https://cdn.his.cdwjyyh.com/images/my_invoice.png" mode=""></image>
+						<text class="text">开票历史</text>
+					</view>
+				</view>
+			</view>
 
-					<view class="used-tools">
-						<view class="title">管理应用</view>
-						<view class="tools-list">
-							<view class="item no-marin-bottom" @click="navgetTo('/pages_shopping/shopping/myCoupon')">
-								<image src="../../static/images/mycoupon.png" mode=""></image>
-								<text class="text">领券中心</text>
-							</view>
-
-							<view class="item no-marin-bottom" @click="openH5(1)">
-								<image src="../../static/images/service_file.png" mode=""></image>
-								<text class="text">用户协议</text>
-							</view>
-
-							<view class="item no-marin-bottom">
-								<image src="../../static/images/customer1.png" mode=""></image>
-								<text class="text">专属客服</text>
-								<button class="contact-btn" open-type="contact"></button>
-							</view>
-							<view v-if="user.isPromoter==0" class="item no-marin-bottom"
-								@click="navgetTo('/pages_user/user/userTuiAdd')">
-								<image src="../../static/images/my_promotion.png" mode=""></image>
-								<text class="text">申请健康大使</text>
-							</view>
-							<view v-if="user.isPromoter==1" class="item no-marin-bottom"
-								@click="navgetTo('/pages_user/user/userTui')">
-								<image src="../../static/images/my_promotion.png" mode=""></image>
-								<text class="text">我的推广</text>
-							</view>
-							<view class="item no-marin-bottom" @click="navgetTo('/pages/home/cert')">
-								<image src="../../static/images/service_file.png" mode=""></image>
-								<text class="text">资质证书</text>
-							</view>
-
-							<view class="item no-marin-bottom" @click="toManager()">
-								<image src="../../static/images/management.png" mode=""></image>
-								<text class="text">销售管理</text>
-							</view>
+			<view class="used-tools">
+				<view class="title">我的视频</view>
+				<view class="tools-list">
+					<view class="item" @click="navgetTo('/pages_user/user/storeProductRelation')">
+						<image src="https://cdn.his.cdwjyyh.com/images/my_star.png" mode=""></image>
+						<text class="text">我的收藏</text>
+					</view>
+					<view class="item" @click="navgetTo('/pages_user/user/message')">
+						<image src="https://cdn.his.cdwjyyh.com/images/my_comment.png" mode=""></image>
+						<text class="text">我的评论</text>
+					</view>
+					<view class="item no-marin-bottom" @click="navgetTo('/pages_shopping/live/order')">
+						<image src="https://cdn.his.cdwjyyh.com/images/my_live.png" mode=""></image>
+						<text class="text">预约的直播</text>
+					</view>
+				</view>
+			</view>
 
-						</view>
+			<view class="used-tools">
+				<view class="title">管理应用</view>
+				<view class="tools-list">
+					<view class="item" @click="navgetTo('/pages_user/user/userTuiAdd')">
+						<image src="https://cdn.his.cdwjyyh.com/images/my_store.png" mode=""></image>
+						<text class="text">申请入驻</text>
+					</view>
+					<view class="item" @click="openH5(1)">
+						<image src="https://cdn.his.cdwjyyh.com/images/my_about.png" mode=""></image>
+						<text class="text">关于我们</text>
+					</view>
+					<view class="item no-marin-bottom" @click="toManager()">
+						<image src="https://cdn.his.cdwjyyh.com/images/my_login.png" mode=""></image>
+						<text class="text">客服登录</text>
 					</view>
+				</view>
+			</view>
 					<!-- 退出登录按钮 -->
 				</view>
 				<view style="padding-bottom: 20rpx;" v-if="user.phone!=''">
@@ -307,7 +246,10 @@
 		getOrderCount
 	} from '@/api/storeOrder'
 	import {
-		getUserInfo
+		getUserInfo,
+		sign,
+		getUserSign,
+		getIntegral
 	} from '@/api/user'
 	import likeProduct from '@/components/likeProduct.vue'
 	export default {
@@ -316,7 +258,7 @@
 		},
 		data() {
 			return {
-				signNum: 2,
+				signNum: 0,
 				sign: [{
 					day: 1
 				}, {
@@ -326,6 +268,9 @@
 				}, {
 					day: 4
 				}],
+				signStatus: false, // 今日是否已签到
+				continuousDays: 0, // 连续签到天数
+				userIntegral: 0, // 用户积分
 
 				dataList: [{
 					num: '55',
@@ -349,7 +294,7 @@
 					isWeixinAuth: 0,
 					phone: "",
 					nickname: "请登录",
-					avatarUrl: "/static/images/detault_head.png"
+					avatarUrl: "https://cdn.his.cdwjyyh.com/images/detault_head.png"
 				},
 				// 状态栏的高度
 				statusBarHeight: uni.getStorageSync('menuInfo').statusBarHeight,
@@ -368,6 +313,8 @@
 			if (uni.getStorageSync('AppToken')) {
 				that.getUserInfo();
 				that.getOrderCount();
+				that.getUserSignRecord();
+				that.getIntegralInfo();
 			}
 			// this.utils.isLogin().then(res => {
 			// 	that.getUserInfo();
@@ -412,7 +359,7 @@
 								isWeixinAuth: 0,
 								phone: "",
 								nickname: "请登录",
-								avatarUrl: "/static/images/detault_head.png",
+								avatarUrl: "https://cdn.his.cdwjyyh.com/images/detault_head.png",
 								avatar: null // 确保头像也被重置
 							};
 
@@ -514,6 +461,76 @@
 					rej => {}
 				);
 			},
+			// 签到
+			doSign() {
+				if (this.signStatus) {
+					uni.showToast({
+						title: '今日已签到',
+						icon: 'none'
+					});
+					return;
+				}
+				sign().then(
+					res => {
+						if (res.code == 200) {
+							uni.showToast({
+								title: '签到成功',
+								icon: 'success'
+							});
+							// 更新签到状态
+							this.signStatus = true;
+							this.continuousDays += 1;
+							this.signNum = this.continuousDays;
+							// 重新获取积分
+							this.getIntegralInfo();
+						} else {
+							uni.showToast({
+								title: res.msg,
+								icon: 'none'
+							});
+						}
+					},
+					rej => {}
+				);
+			},
+			// 获取用户签到记录
+			getUserSignRecord() {
+				getUserSign().then(
+					res => {
+						if (res.code == 200) {
+							// 处理签到记录数据
+							this.signStatus = res.isDaySign || false;
+							this.continuousDays = res.signNum || 0;
+							this.signNum = this.continuousDays;
+							// 处理签到规则
+							if (res.sign) {
+								try {
+									const signRules = JSON.parse(res.sign);
+									if (Array.isArray(signRules)) {
+										this.sign = signRules;
+									}
+								} catch (e) {
+									console.error('解析签到规则失败', e);
+								}
+							}
+						}
+					},
+					rej => {}
+				);
+			},
+			// 获取用户积分
+			getIntegralInfo() {
+				getIntegral().then(
+					res => {
+						if (res.code == 200 && res.data) {
+							this.userIntegral = res.data.total || 0;
+							// 更新芳华币显示
+							this.dataList[0].num = this.userIntegral;
+						}
+					},
+					rej => {}
+				);
+			},
 			// 跳转页面
 			navgetTo(url) {
 				this.utils.isLogin().then(res => {
@@ -540,13 +557,6 @@
 		height: 532rpx;
 		position: relative;
 		background: radial-gradient(60% 60% at 70% 11%, #C5EFEA 0%, rgba(245, 246, 246, 0) 100%);
-		// background-image: url(../../static/images/personl_top_bg.png);
-		// background-image: url(../../static/images/red_bg.png);
-		// background-image: url(../../static/images/viewer_top.png);
-		// background-image: url(https://placehold.co/400x200/red/white);
-
-		// background-repeat: repeat-x;
-		// background-size: 40rpx 100%;
 
 		.top-inner {
 			width: 100%;
@@ -562,21 +572,35 @@
 				flex-direction: column;
 
 				.qscode-block {
-					display: flex;
-					justify-content: flex-end;
-
-					.qscode {
-						width: 64rpx;
-						height: 64rpx;
-						padding: 12rpx;
-						margin-right: 210rpx;
-						border-radius: 32rpx 32rpx 32rpx 32rpx;
-						border: 1rpx solid #E9E9E9;
-						box-sizing: border-box;
-						background: #FFFFFF;
+						display: flex;
+						justify-content: flex-end;
+
+						.qscode {
+							width: 64rpx;
+							height: 64rpx;
+							padding: 12rpx;
+							margin-right: 210rpx;
+							border-radius: 32rpx 32rpx 32rpx 32rpx;
+							border: 1rpx solid #E9E9E9;
+							box-sizing: border-box;
+							background: #FFFFFF;
 
+						}
+					}
+
+					.shop-title {
+						display: flex;
+						justify-content: center;
+						align-items: center;
+						margin: 20rpx 0;
+
+						.title-text {
+							font-size: 36rpx;
+							font-family: PingFang SC;
+							font-weight: bold;
+							color: #333333;
+						}
 					}
-				}
 
 				.user-info {
 					// padding: 88rpx 30rpx 0 30rpx;
@@ -992,6 +1016,7 @@
 			background: #FFFFFF;
 			border-radius: 16rpx;
 			padding: 40rpx 30rpx;
+			width: 100%;
 
 			.title {
 				font-size: 34rpx;

+ 0 - 9
pages/user/test.vue

@@ -1,9 +0,0 @@
-<template>
-	<web-view src="https://www.baidu.com/"></web-view>
-</template>
-
-<script>
-</script>
-
-<style>
-</style>

+ 3 - 3
pages_company/coupon.vue

@@ -12,10 +12,10 @@
 			</scroll-view>
 		</view>
 	</view>
-	<!-- <image src="/static/images/banner_coupon.png" mode="widthFix" class="tui-coupon-banner"></image> -->
+	<!-- <image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/banner_coupon.png" mode="widthFix" class="tui-coupon-banner"></image> -->
     <view class="tui-coupon-list">
       <view class="tui-coupon-item tui-top20" v-for="(item, index) in couponsList" :key="index">
-         <image src="/static/images/bg_coupon_3x.png" class="tui-coupon-bg" mode="widthFix"></image>
+         <image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/bg_coupon_3x.png" class="tui-coupon-bg" mode="widthFix"></image>
 		<view class="tui-coupon-item-left">
           <view class="tui-coupon-price-box" :class="{ 'tui-color-grey': item.receiveCount>0 }">
             <view class="tui-coupon-price-sign">¥</view>
@@ -49,7 +49,7 @@
 	<Loading :loaded="loadend" :loading="loading"></Loading>
 	<!--暂无优惠券-->
 	<view v-if="couponsList.length == 0 && page > 1" class="no-data-box" >
-		<image src="/static/images/no_data.png" mode="aspectFit"></image>
+		<image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/no_data.png" mode="aspectFit"></image>
 		<view class="empty-title">暂无数据</view>
 	</view>
   </view>

+ 1 - 1
pages_company/couponDetails.vue

@@ -2,7 +2,7 @@
   <view class="container">
     <view class="tui-coupon-list">
       <view class="tui-coupon-item tui-top20"  >
-         <image src="/static/images/bg_coupon_3x.png" class="tui-coupon-bg" mode="widthFix"></image>
+         <image src="https://cdn.his.cdwjyyh.com/images/bg_coupon_3x.png" class="tui-coupon-bg" mode="widthFix"></image>
 		<view class="tui-coupon-item-left">
           <view class="tui-coupon-price-box"  >
             <view class="tui-coupon-price-sign">¥</view>

+ 8 - 8
pages_company/index.vue

@@ -17,36 +17,36 @@
 				<view class="title">常用工具</view>
 				<view class="tools-list">
 					<!-- <view class="item" @click="toCreateOrder()">
-						<image src="../static/images/order.png" mode=""></image>
+						<image src="https://cdn.his.cdwjyyh.com/images/order.png" mode=""></image>
 						<text class="text">商品制单</text>
 					</view>
 					<view class="item" @click="toCreateCoupon()">
-						<image src="../static/images/icon_coupon.png" mode=""></image>
+						<image src="https://cdn.his.cdwjyyh.com/images/icon_coupon.png" mode=""></image>
 						<text class="text">制单优惠券</text>
 					</view> -->
 					<!-- <view class="item" @click="toPay()">
-						<image src="../static/images/money.png" mode=""></image>
+						<image src="https://cdn.his.cdwjyyh.com/images/money.png" mode=""></image>
 						<text class="text">微信收款</text>
 					</view> -->
 					<!-- <view class="item" @click="alipay()">
-						<image src="../static/images/money.png" mode=""></image>
+						<image src="https://cdn.his.cdwjyyh.com/images/money.png" mode=""></image>
 						<text class="text">支付宝收款</text>
 					</view> -->
 					<view class="item" @click="toOrder()">
-						<image src="../static/images/order.png" mode=""></image>
+						<image src="https://cdn.his.cdwjyyh.com/images/order.png" mode=""></image>
 						<text class="text">我的订单</text>
 					</view>
 					<view class="item" @click="toPackage()">
-						<image src="../static/images/package.png" mode=""></image>
+						<image src="https://cdn.his.cdwjyyh.com/images/package.png" mode=""></image>
 						<text class="text">商品套餐</text>
 					</view>
 					<view class="item" @click="toCoupon()">
-						<image src="../static/images/icon_coupon.png" mode=""></image>
+						<image src="https://cdn.his.cdwjyyh.com/images/icon_coupon.png" mode=""></image>
 						<text class="text">套餐优惠券</text>
 					</view>
 					
 					<view class="item" @click="toShareLive()">
-						<image src="/static/images/live_icon.png" mode=""></image>
+						<image src="https://cdn.his.cdwjyyh.com/images/live_icon.png" mode=""></image>
 						<text class="text">分享直播间</text>
 					</view>
 					

+ 3 - 3
pages_company/order/cart.vue

@@ -22,12 +22,12 @@
 						</view>
 						<view class="num-box">
 							<view class="img-box" @click="delNum(item)">
-								<image v-if="item.cartNum <= 1" src="../../static/images/jian.png" mode=""></image>
-								<image v-else src="../../static/images/jian2.png" mode=""></image>
+								<image v-if="item.cartNum <= 1" src="https://cdn.his.cdwjyyh.com/images/jian.png" mode=""></image>
+								<image v-else src="https://cdn.his.cdwjyyh.com/images/jian2.png" mode=""></image>
 							</view>
 							<input type="text"  @change="changeNum($event,item)" :value="item.cartNum"   />
 							<view class="img-box" @click="addNum(item)">
-								<image src="../../static/images/add.png" mode=""></image>
+								<image src="https://cdn.his.cdwjyyh.com/images/add.png" mode=""></image>
 							</view>
 						</view>
 					</view>

+ 1 - 1
pages_company/order/confirmOrder.vue

@@ -50,7 +50,7 @@
 		</view>
 		<view class="message-box" v-if="messageShow">
 			<view class="left">
-				<image src="/static/images/close24.png" mode="" @click="closeOrder()" ></image>
+				<image src="https://cdn.his.cdwjyyh.com/images/close24.png" mode="" @click="closeOrder()" ></image>
 				<view class="text ellipsis">您有{{count0}}个待支付订单</view>
 			</view>
 			<view class="btn" @click="showOrder()">查看</view>

+ 3 - 3
pages_company/order/coupon.vue

@@ -2,13 +2,13 @@
   <view ref="container">
 	<view class="search-cont">
 		<view class="inner">
-			<image class="icon-search" src="/static/images/search.png" mode=""></image>
+			<image class="icon-search" src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/search.png" mode=""></image>
 			<input type="text" value="" placeholder="输入订单号" confirm-type="搜索" @confirm="goSearch"   placeholder-style="font-size:28rpx;color:#BBBBBB;font-family: PingFang SC;" />
 		</view>
 	</view>
     <view class="tui-coupon-list">
       <view class="tui-coupon-item tui-top20" v-for="(item, index) in couponsList" :key="index">
-         <image src="/static/images/bg_coupon_3x.png" class="tui-coupon-bg" mode="widthFix"></image>
+         <image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/bg_coupon_3x.png" class="tui-coupon-bg" mode="widthFix"></image>
 		<view class="tui-coupon-item-left">
           <view class="tui-coupon-price-box" :class="{ 'tui-color-grey': item.receiveCount>0 }">
             <view class="tui-coupon-price-sign">¥</view>
@@ -42,7 +42,7 @@
 	<Loading :loaded="loadend" :loading="loading"></Loading>
 	<!--暂无优惠券-->
 	<view v-if="couponsList.length == 0 && page > 1" class="no-data-box" >
-		<image src="/static/images/no_data.png" mode="aspectFit"></image>
+		<image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/images/no_data.png" mode="aspectFit"></image>
 		<view class="empty-title">暂无数据</view>
 	</view>
   </view>

+ 9 - 9
pages_company/order/productDetails.vue

@@ -40,7 +40,7 @@
 				{{product.productInfo}}
 			</view>
 			<view class="safe-box">
-				<image src="../../static/images/safe.png" mode=""></image>
+				<image src="https://cdn.his.cdwjyyh.com/images/safe.png" mode=""></image>
 				<text class="text">品质保障</text>
 				<view class="line"></view>
 				<text class="text">药师服务</text>
@@ -53,7 +53,7 @@
 			<view class="left">
 				<!-- <view class="head-box">
 					<view class="head" v-for="(item,j) in 5" :key="j">
-						<image src="../../static/images/head.jpg" mode=""></image>
+						<image src="https://cdn.his.cdwjyyh.com/images/head.jpg" mode=""></image>
 					</view>
 				</view> -->
 				<view class="num-box">
@@ -84,17 +84,17 @@
 		<view class="btn-foot">
 			<view class="menu-box">
 				<view class="item" @click="goHome">
-					<image src="../../static/images/back_home.png" mode=""></image>
+					<image src="https://cdn.his.cdwjyyh.com/images/back_home.png" mode=""></image>
 					<text class="label">首页</text>
 				</view>
 				<view class="item" style="position: relative;">
-					<image src="../../static/images/consult_small.png" mode=""></image>
+					<image src="https://cdn.his.cdwjyyh.com/images/consult_small.png" mode=""></image>
 					<text class="label">咨询</text>
 					<button class="contact-btn" open-type="contact"></button>
 				</view>
 				<view class="item" @click="navgetTo('./cart')">
 					<uni-badge size="small" :text="cartCount" absolute="rightTop" type="error">
-						<image src="../../static/images/cart36.png" mode=""></image>
+						<image src="https://cdn.his.cdwjyyh.com/images/cart36.png" mode=""></image>
 					</uni-badge>
 					<text class="label">购物车</text>
 				</view>
@@ -144,12 +144,12 @@
 					<view class="label">数量</view>
 					<view class="num-box">
 						<view class="img-box" @click="lessNum()">
-							<image v-if="specNum <= 1" src="../../static/images/jian.png" mode=""></image>
-							<image v-else src="../../static/images/jian2.png" mode=""></image>
+							<image v-if="specNum <= 1" src="https://cdn.his.cdwjyyh.com/images/jian.png" mode=""></image>
+							<image v-else src="https://cdn.his.cdwjyyh.com/images/jian2.png" mode=""></image>
 						</view>
 						<input type="text" @change="changeNum" v-model="specNum"    />
 						<view class="img-box" @click="addNum()">
-							<image src="../../static/images/add.png" mode=""></image>
+							<image src="https://cdn.his.cdwjyyh.com/images/add.png" mode=""></image>
 						</view>
 					</view>
 				</view>
@@ -440,7 +440,7 @@
 			left: 0;
 			bottom: 0;
 			z-index: 9;
-			background-image: url(../../static/images/black_mask.png);
+			background-image: url(https://cdn.his.cdwjyyh.com/images/black_mask.png);
 			background-size: 20upx 44upx;
 			background-repeat: repeat-x;
 		}

+ 13 - 13
pages_company/order/productList.vue

@@ -4,13 +4,13 @@
 			<!-- 搜索框 -->
 			<view class="search-cont">
 				<view class="inner">
-					<image class="icon-search" src="../../static/images/search.png" mode=""></image>
+					<image class="icon-search" src="https://cdn.his.cdwjyyh.com/images/search.png" mode=""></image>
 					<input type="text" @confirm="goSearch"   :value="form.productName" placeholder="输入药品名称" placeholder-style="font-size:28rpx;color:#BBBBBB;font-family: PingFang SC;" />
 				</view>
 				<view class="icon-search">
-					<image @click="showChange(2)" v-if="showType==1"  src="../../static/images/search1.png" mode=""></image>
-					<image @click="showChange(1)" v-if="showType==2"  src="../../static/images/search2.png" mode=""></image>
-					<image @click="openCart()"   src="../../static/images/carts.png" mode=""></image>
+					<image @click="showChange(2)" v-if="showType==1"  src="https://cdn.his.cdwjyyh.com/images/search1.png" mode=""></image>
+					<image @click="showChange(1)" v-if="showType==2"  src="https://cdn.his.cdwjyyh.com/images/search2.png" mode=""></image>
+					<image @click="openCart()"   src="https://cdn.his.cdwjyyh.com/images/carts.png" mode=""></image>
 				</view>
 			</view>
 			<!-- 排序框 -->
@@ -21,19 +21,19 @@
 				<view class="item" @click="searchChange('2')">
 					<text class="label">价格</text>
 					<view class="sort-img">
-						<image v-if="form.priceOrder==null||form.priceOrder=='desc'" src="../../static/images/price_arrow_up.png" mode="" @click="priceUp(true)"></image>
-						<image v-if="form.priceOrder=='asc'" src="../../static/images/price_arrow_up2.png" mode="" @click="priceUp(false)"></image>
-						<image v-if="form.priceOrder==null||form.priceOrder=='asc'" src="../../static/images/price_arrow_down.png" mode="" @click="priceDown(true)"></image>
-						<image v-if="form.priceOrder=='desc'" src="../../static/images/price_arrow_down2.png" mode="" @click="priceDown(false)"></image>
+						<image v-if="form.priceOrder==null||form.priceOrder=='desc'" src="https://cdn.his.cdwjyyh.com/images/price_arrow_up.png" mode="" @click="priceUp(true)"></image>
+						<image v-if="form.priceOrder=='asc'" src="https://cdn.his.cdwjyyh.com/images/price_arrow_up2.png" mode="" @click="priceUp(false)"></image>
+						<image v-if="form.priceOrder==null||form.priceOrder=='asc'" src="https://cdn.his.cdwjyyh.com/images/price_arrow_down.png" mode="" @click="priceDown(true)"></image>
+						<image v-if="form.priceOrder=='desc'" src="https://cdn.his.cdwjyyh.com/images/price_arrow_down2.png" mode="" @click="priceDown(false)"></image>
 					</view>
 				</view>
 				<view class="item" @click="searchChange('3')">
 					<text class="label">销量</text>
 					<view class="sort-img">
-						<image v-if="form.salesOrder==null||form.salesOrder=='desc'" src="../../static/images/price_arrow_up.png" mode="" @click="saleUp(true)"></image>
-						<image v-if="form.salesOrder=='asc'" src="../../static/images/price_arrow_up2.png" mode="" @click="saleUp(false)"></image>
-						<image v-if="form.salesOrder==null||form.salesOrder=='asc'" src="../../static/images/price_arrow_down.png" mode="" @click="saleDown(true)"></image>
-						<image v-if="form.salesOrder=='desc'" src="../../static/images/price_arrow_down2.png" mode="" @click="saleDown(false)"></image>
+						<image v-if="form.salesOrder==null||form.salesOrder=='desc'" src="https://cdn.his.cdwjyyh.com/images/price_arrow_up.png" mode="" @click="saleUp(true)"></image>
+						<image v-if="form.salesOrder=='asc'" src="https://cdn.his.cdwjyyh.com/images/price_arrow_up2.png" mode="" @click="saleUp(false)"></image>
+						<image v-if="form.salesOrder==null||form.salesOrder=='asc'" src="https://cdn.his.cdwjyyh.com/images/price_arrow_down.png" mode="" @click="saleDown(true)"></image>
+						<image v-if="form.salesOrder=='desc'" src="https://cdn.his.cdwjyyh.com/images/price_arrow_down2.png" mode="" @click="saleDown(false)"></image>
 					</view>
 				</view>
 				<view class="item" :class="form.newOrder=='desc'?'active':''" @click="searchChange('4')">
@@ -111,7 +111,7 @@
 					},
 					noMoreSize: 10, // 配置列表的总数量要大于等于5条才显示'-- END --'的提示
 					empty: {
-						icon:'/static/images/no_data.png',
+						icon:'https://cdn.his.cdwjyyh.com/images/no_data.png',
 						tip: '暂无数据'
 					},
 					textNoMore:"已经到底了",

+ 3 - 3
pages_company/order/productShowDetails.vue

@@ -40,7 +40,7 @@
 				{{product.productInfo}}
 			</view>
 			<view class="safe-box">
-				<image src="../../static/images/safe.png" mode=""></image>
+				<image src="https://cdn.his.cdwjyyh.com/images/safe.png" mode=""></image>
 				<text class="text">免邮发货</text>
 				<view class="line"></view>
 				<text class="text">药师服务</text>
@@ -53,7 +53,7 @@
 			<view class="left">
 				<!-- <view class="head-box">
 					<view class="head" v-for="(item,j) in 5" :key="j">
-						<image src="../../static/images/head.jpg" mode=""></image>
+						<image src="https://cdn.his.cdwjyyh.com/images/head.jpg" mode=""></image>
 					</view>
 				</view> -->
 				<view class="num-box">
@@ -190,7 +190,7 @@
 			left: 0;
 			bottom: 0;
 			z-index: 9;
-			background-image: url(../../static/images/black_mask.png);
+			background-image: url(https://cdn.his.cdwjyyh.com/images/black_mask.png);
 			background-size: 20upx 44upx;
 			background-repeat: repeat-x;
 		}

+ 2 - 2
pages_company/shareLive.vue

@@ -51,7 +51,7 @@
 					},
 					noMoreSize: 10, // 配置列表的总数量要大于等于5条才显示'-- END --'的提示
 					empty: {
-						icon: '/static/images/no_data.png',
+						icon: 'https://cdn.his.cdwjyyh.com/images/no_data.png',
 						tip: '暂无数据'
 					}
 				},
@@ -79,7 +79,7 @@
 				title: '邀请你来观看直播:' + item.liveName,
 				path: `/pages_course/living?companyId=${this.companyId}&companyUserId=${this.companyUserId}&liveId=${item.liveId}`,
 				// imageUrl: this.products.image,
-				imageUrl: '/static/images/logo.png',
+				imageUrl: 'https://cdn.his.cdwjyyh.com/images/logo.png',
 				success(res) {
 					console.log("分享成功", res);
 				},

+ 3 - 3
pages_company/storeOrder.vue

@@ -2,7 +2,7 @@
 	<view>
 		<view class="search-cont">
 			<view class="inner">
-				<image class="icon-search" src="/static/images/search.png" mode=""></image>
+				<image class="icon-search" src="https://cdn.his.cdwjyyh.com/images/search.png" mode=""></image>
 				<input type="text" value="" placeholder="输入订单号" confirm-type="搜索" @confirm="goSearch"   placeholder-style="font-size:28rpx;color:#BBBBBB;font-family: PingFang SC;" />
 			</view>
 		</view>
@@ -96,7 +96,7 @@
 					},
 					noMoreSize: 10, // 配置列表的总数量要大于等于5条才显示'-- END --'的提示
 					empty: {
-						icon:'/static/images/no_data.png',
+						icon:'https://cdn.his.cdwjyyh.com/images/no_data.png',
 						tip: '暂无数据'
 					}
 				},
@@ -264,7 +264,7 @@
 						font-family: PingFang SC;
 						font-weight: 500;
 						color: #FFFFFF;
-						background-image: url(../static/images/recom.png);
+						background-color: #FF4B33;
 						background-repeat: no-repeat;
 						background-size: 100% 100%;
 						margin-right: 8upx;

+ 11 - 11
pages_company/storeOrderDetail.vue

@@ -2,13 +2,13 @@
 	<view>
 		<view class="top-cont">
 			<!-- 背景图片 -->
-			<image class="bg" src="/static/images/order_top_bg.png" mode=""></image>
+			<image class="bg" src="https://cdn.his.cdwjyyh.com/images/order_top_bg.png" mode=""></image>
 			<view class="top-inner">			
 				<!-- 这里是状态栏 -->
 				<view class="fixed-top-box">
 					<view class="status_bar" :style="{height: statusBarHeight}"></view>
 					<view class="back-box" @click="back">
-						<image src="../static/images/back_white.png" mode=""></image>
+						<image src="https://cdn.his.cdwjyyh.com/images/back_white.png" mode=""></image>
 						<text class="title">订单详情</text>
 						
 						<text></text>
@@ -24,7 +24,7 @@
 					<!-- 待付款 -->
 					<view v-if="order.status == 0" class="inner">
 						<view class="img-box">
-							<image src="/static/images/pag96.png" mode=""></image>
+							<image src="https://cdn.his.cdwjyyh.com/images/pag96.png" mode=""></image>
 						</view>
 						<view class="status-box">
 							<text class="status">待支付</text>
@@ -35,7 +35,7 @@
 					<!-- 待发货 -->
 					<view v-if="order.status == 1" class="inner">
 						<view class="img-box">
-							<image src="/static/images/receipt.png" mode=""></image>
+							<image src="https://cdn.his.cdwjyyh.com/images/receipt.png" mode=""></image>
 						</view>
 						<view class="status-box">
 							<text class="status">待发货</text>
@@ -45,7 +45,7 @@
 					<!-- 待收货 -->
 					<view v-if="order.status == 2" class="inner">
 						<view class="img-box">
-							<image src="/static/images/finish96.png" mode=""></image>
+							<image src="https://cdn.his.cdwjyyh.com/images/finish96.png" mode=""></image>
 						</view>
 						<view class="status-box">
 							<text class="status">待收货</text>
@@ -55,7 +55,7 @@
 					<!-- 已完成 -->
 					<view v-if="order.status == 3" class="inner">
 						<view class="img-box">
-							<image src="/static/images/finish96.png" mode=""></image>
+							<image src="https://cdn.his.cdwjyyh.com/images/finish96.png" mode=""></image>
 						</view>
 						<view class="status-box">
 							<text class="status">已完成</text>
@@ -66,7 +66,7 @@
 					<!--交易取消 -->
 					<view v-if="order.status == -3" class="inner">
 						<view class="img-box">
-							<image src="/static/images/close_trade.png" mode=""></image>
+							<image src="https://cdn.his.cdwjyyh.com/images/close_trade.png" mode=""></image>
 						</view>
 						<view class="status-box">
 							<text class="status">交易关闭</text>
@@ -75,7 +75,7 @@
 					</view>
 					<view v-if="order.status == -1" class="inner">
 						<view class="img-box">
-							<image src="/static/images/close_trade.png" mode=""></image>
+							<image src="https://cdn.his.cdwjyyh.com/images/close_trade.png" mode=""></image>
 						</view>
 						<view class="status-box">
 							<text class="status">申请售后</text>
@@ -84,7 +84,7 @@
 					</view>
 					<view v-if="order.status == -2" class="inner">
 						<view class="img-box">
-							<image src="/static/images/close_trade.png" mode=""></image>
+							<image src="https://cdn.his.cdwjyyh.com/images/close_trade.png" mode=""></image>
 						</view>
 						<view class="status-box">
 							<text class="status">退款成功</text>
@@ -95,7 +95,7 @@
 				<!-- 下单人信息 -->
 				<view class="order-placer">
 					<view class="inner">
-						<image class="location" src="/static/images/location.png" mode=""></image>
+						<image class="location" src="https://cdn.his.cdwjyyh.com/images/location.png" mode=""></image>
 						<view class="info">
 							<view class="name-phone">
 								<text class="text">{{order.realName}}</text>
@@ -208,7 +208,7 @@
 							<text class="label">电子处方</text>
 							<view class="check-box" @click="showImg()">
 								<text class="text">查看</text>
-								<image src="/static/images/arrow4.png" mode=""></image>
+								<image src="https://cdn.his.cdwjyyh.com/images/arrow4.png" mode=""></image>
 							</view>
 						</view>
 					</view>

+ 3 - 3
pages_company/storeProductPackage.vue

@@ -3,7 +3,7 @@
 		<view class="top-fixed">
 			<view class="search-cont">
 				<view class="inner">
-					<image class="icon-search" src="/static/images/search.png" mode=""></image>
+					<image class="icon-search" src="https://cdn.his.cdwjyyh.com/images/search.png" mode=""></image>
 					<input type="text" @confirm="goSearch"   :value="form.title" placeholder="输入套餐名称" placeholder-style="font-size:28rpx;color:#BBBBBB;font-family: PingFang SC;" />
 				</view>
 			</view>
@@ -93,7 +93,7 @@
 					},
 					noMoreSize: 10, // 配置列表的总数量要大于等于5条才显示'-- END --'的提示
 					empty: {
-						icon:'/static/images/no_data.png',
+						icon:'https://cdn.his.cdwjyyh.com/images/no_data.png',
 						tip: '暂无数据'
 					}
 				},
@@ -291,7 +291,7 @@
 						font-family: PingFang SC;
 						font-weight: 500;
 						color: #FFFFFF;
-						background-image: url(../static/images/recom.png);
+						background-color: #FF4B33;
 						background-repeat: no-repeat;
 						background-size: 100% 100%;
 						margin-right: 8upx;

+ 4 - 4
pages_company/storeProductPackageDetails.vue

@@ -52,11 +52,11 @@
 		<view class="btn-foot">
 			<view class="menu-box">
 				<view class="item" @click="goHome">
-					<image src="/static/images/back_home.png" mode=""></image>
+					<image src="https://cdn.his.cdwjyyh.com/images/back_home.png" mode=""></image>
 					<text class="label">首页</text>
 				</view>
 				<view class="item" style="position: relative;">
-					<image src="/static/images/consult_small.png" mode=""></image>
+					<image src="https://cdn.his.cdwjyyh.com/images/consult_small.png" mode=""></image>
 					<text class="label">咨询</text>
 					<button class="contact-btn" open-type="contact"></button>
 				</view>
@@ -69,7 +69,7 @@
 		</view>
 		<view class="message-box" v-if="messageShow">
 			<view class="left">
-				<image src="/static/images/close24.png" mode="" @click="closeOrder()" ></image>
+				<image src="https://cdn.his.cdwjyyh.com/images/close24.png" mode="" @click="closeOrder()" ></image>
 				<view class="text ellipsis">您有{{count0}}个待支付订单</view>
 			</view>
 			<view class="btn" @click="showOrder()">查看</view>
@@ -270,7 +270,7 @@
 			left: 0;
 			bottom: 0;
 			z-index: 9;
-			background-image: url(/static/images/black_mask.png);
+			background-image: url(https://cdn.his.cdwjyyh.com/images/black_mask.png);
 			background-size: 20upx 44upx;
 			background-repeat: repeat-x;
 		}

+ 6 - 6
pages_course/components/Invitation.vue

@@ -3,8 +3,8 @@
 	<u-popup :show="show" @close="handleClose" @open="handleOpen" round="32rpx" bgColor="#ffffff" zIndex="10077">
 		<view class="viewer-list-popup">
 			<view class="top">
-				<image class="top_bg" src="/static/images/viewer_top.png"></image>
-				<image class="title" src="/static/images/viewer_title.png"></image>
+				<image class="top_bg" src="https://cdn.his.cdwjyyh.com/images/viewer_top.png"></image>
+				<image class="title" src="https://cdn.his.cdwjyyh.com/images/viewer_title.png"></image>
 			</view>
 			<scroll-view v-if="Array.isArray(viewers)" scroll-y class="scroll-content"
 				:style="{ height: scrollHeight + 'px' }" @scrolltolower="handleScrollToLower">
@@ -12,13 +12,13 @@
 					<text class="left">用户昵称</text>
 					<view class="right">
 						邀请值
-						<image class="ml8 img" src="/static/images/problem.png"></image>
+						<image class="ml8 img" src="https://cdn.his.cdwjyyh.com/images/problem.png"></image>
 					</view>
 				</view>
 				<view class="viewer-item x-f mb32 mt20" v-for="(item, index) in viewers"
 					:key="getViewerKey(item, index)">
 					<view class="item">
-						<image class="rank-level" v-if="index<3" :src="`/static/images/ranking${index+1}.png`"></image>
+						<image class="rank-level" v-if="index<3" :src="`https://cdn.his.cdwjyyh.com/images/ranking${index+1}.png`"></image>
 						<view v-else class="rank-level number">
 							{{ index + 1 }}.
 						</view>
@@ -82,10 +82,10 @@
 		data() {
 			return {
 				viewers: [{
-					avatar: "/static/images/viewer_top.png",
+					avatar: "https://cdn.his.cdwjyyh.com/images/viewer_top.png",
 					nickName: '大概有'
 				}, {
-					avatar: "/static/images/viewer_top.png",
+					avatar: "https://cdn.his.cdwjyyh.com/images/viewer_top.png",
 					nickName: '大概有'
 				}]
 				// 本地状态可以根据需要添加

+ 2 - 2
pages_course/components/chatInput.vue

@@ -20,10 +20,10 @@
 
 		<view class="icon-container" :class="{ 'icon-hidden': isFocus }">
 			<view class="icon-bg ml20" @tap="handleOpenCart">
-				<image src="/static/images/shopping.png" class="w58 h58" />
+				<image src="https://cdn.his.cdwjyyh.com/images/shopping.png" class="w58 h58" />
 			</view>
 			<view class="icon-bg ml20" @click="handleMoreClick">
-				<image src="/static/images/more_icon.png" class="w58 h58" />
+				<image src="https://cdn.his.cdwjyyh.com/images/more_icon.png" class="w58 h58" />
 			</view>
 		</view>
 	</view>

+ 4 - 4
pages_course/components/giftPopup.vue

@@ -2,20 +2,20 @@
  <u-popup :show="show" @close="handleClose" round="20rpx" bgColor="#f3f5f9" zIndex="10076">
  	<view class="more-block">
  		<view class="item" @click="navgetTo('/pages_shopping/live/integral'), (isMore = false)">
- 			<image class="w48 h48" src="/static/images/order.png" />
+ 			<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/order.png" />
  			<view style="text-align: center">芳华币</view>
  		</view>
  		<view class="item"
  			@click="navgetTo('/pages_shopping/live/storeOrderRefundList?liveId=' + liveId), (isMore = false)">
- 			<image class="w48 h48" src="/static/images/after_sales.png" />
+ 			<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/after_sales.png" />
  			<view style="text-align: center">售后订单</view>
  		</view>
  		<view class="item" @click="goMiniProgram(), (isMore = false)">
- 			<image class="w48 h48" src="/static/images/points.png" />
+ 			<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/points.png" />
  			<view style="text-align: center">兑换好礼</view>
  		</view>
  		<view class="item" @click="getMyLottery(), (isMore = false), (winning = true)">
- 			<image class="w48 h48" src="/static/images/health_sel.png" />
+ 			<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/health_sel.png" />
  			<view style="text-align: center">中奖记录</view>
  		</view>
  	</view>

+ 2 - 2
pages_course/components/like.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="like-container">
-		<image class="image" @click="handleLike" src="/static/images/zan1.png" ref="likeBtn"></image>
+		<image class="image" @click="handleLike" src="https://cdn.his.cdwjyyh.com/images/zan1.png" ref="likeBtn"></image>
 		<view v-for="(icon, index) in icons" :key="icon.id" class="animated-icon" :style="{
         top: icon.top + 'rpx',
         left: icon.left + 'rpx',  // 补充left属性的单位
@@ -70,7 +70,7 @@
 				// 按钮位置信息
 				btnRect: null,
 				// 可使用的图标集合
-				iconSymbols: ['❤', '★', '🎁', '🔥', '👍', '✨', '💖', '🌟'],
+				iconSymbols: ['❤', '★', '', '', '', '✨', '', ''],
 				// 用于生成唯一ID
 				iconId: 0
 			};

+ 2 - 2
pages_course/components/liveGoods.vue

@@ -2,10 +2,10 @@
   <view class="goods" v-if="isShow" @click.stop="goShop">
     <view class="top">
       <view class="left">
-        <image class="w30 h30 mr8" src="/static/images/signal.png" />
+        <image class="w30 h30 mr8" src="https://cdn.his.cdwjyyh.com/images/signal.png" />
         讲解中
       </view>
-      <image @click.stop="close" class="w40 h40 mr10" src="/static/images/del_black.png" />
+      <image @click.stop="close" class="w40 h40 mr10" src="https://cdn.his.cdwjyyh.com/images/del_black.png" />
     </view>
     <image class="photo" :src="goodsData.imgUrl" />
     <view class="item">

+ 4 - 4
pages_course/components/liveVideo.vue

@@ -22,11 +22,11 @@
 				<view v-if="liveItem.videoUrl && liveItem.liveType == 2" class="time"
 					:class="isFullscreen ? 'look-time' : 'time'">{{ diffTotalTime }}</view>
 				<view class="custom-controls" @click.stop="toggleFullscreen">
-					<image src="/static/images/full_screen.png" class="control-icon" />
+					<image src="https://cdn.his.cdwjyyh.com/images/full_screen.png" class="control-icon" />
 				</view>
 				<!-- 全屏返回按钮 - 只在全屏状态下显示 -->
 				<view v-if="isFullscreen" class="fullscreen-exit-btn" @click="exitFullscreen">
-					<image src="/static/images/half_screen.png" class="exit-fullscreen-icon" />
+					<image src="https://cdn.his.cdwjyyh.com/images/half_screen.png" class="exit-fullscreen-icon" />
 					<text class="exit-text">退出全屏</text>
 				</view>
 			</view>
@@ -90,7 +90,7 @@
 				</button>
 
 				<view class="action-button reserve-button" @click="handleAgreement">
-					<image class="button-icon mr8" src="/static/images/trailer.png"></image>
+					<image class="button-icon mr8" src="https://cdn.his.cdwjyyh.com/images/trailer.png"></image>
 					<text>预约直播</text>
 				</view>
 			</view>
@@ -98,7 +98,7 @@
 
 		<!-- 无直播状态 -->
 		<view class="trailer-box" v-if="!liveItem">
-			<image class="img" src="/static/images/no_live.png"></image>
+			<image class="img" src="https://cdn.his.cdwjyyh.com/images/no_live.png"></image>
 			<view class="title">暂无直播</view>
 		</view>
 	</view>

+ 3 - 3
pages_course/components/lotteryPopup.vue

@@ -1,8 +1,8 @@
 <template>
   <u-popup :show="show && countdown" round="40rpx" @close="handleClose">
     <view class="prize-box" style="border-radius: 40rpx; height: fit-content">
-      <image class="nav-img" src="/static/images/red_head.png" mode="widthFix" />
-      <image class="bg-img" src="/static/images/red_bg.png" />
+      <image class="nav-img" src="https://cdn.his.cdwjyyh.com/images/red_head.png" mode="widthFix" />
+      <image class="bg-img" src="https://cdn.his.cdwjyyh.com/images/red_bg.png" />
       <view class="prize-content">
         <view class="mr20" style="display: flex; justify-content: flex-end">
           <view
@@ -13,7 +13,7 @@
           </view>
         </view>
         <view class="column align-center">
-          <image class="w446 h80" src="/static/images/red_title.png" />
+          <image class="w446 h80" src="https://cdn.his.cdwjyyh.com/images/red_title.png" />
           <view class="fs24 colorf x-f mt30 mb30">
             开奖倒计时
             <view class="x-f">

+ 5 - 5
pages_course/components/shopPopup.vue

@@ -10,7 +10,7 @@
       <!-- 顶部搜索和操作区域 -->
       <view class="shoppop-top">
         <view class="search-input x-f">
-          <image class="w24 mr16" src="/static/images/search.png" mode="widthFix" />
+          <image class="w24 mr16" src="https://cdn.his.cdwjyyh.com/images/search.png" mode="widthFix" />
           <input 
             placeholder="请搜索商品" 
             :value="searchKeyword" 
@@ -18,11 +18,11 @@
           />
         </view>
         <view class="search-top" @click="handleOrderClick">
-          <image class="w48 h48" src="/static/images/carts.png" />
+          <image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/carts.png" />
           <view style="text-align: center">订单</view>
         </view>
         <view class="search-top" @click="handleMoreClick">
-          <image class="w48 h48" src="/static/images/search2.png" />
+          <image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/search2.png" />
           <view style="text-align: center">更多</view>
         </view>
       </view>
@@ -75,14 +75,14 @@
                       @click="handleCollect(item)" 
                       class="w36 h36" 
                       style="vertical-align: middle" 
-                      src="/static/images/collect_select.png" 
+                      src="https://cdn.his.cdwjyyh.com/images/collect_select.png" 
                     />
                     <image 
                       v-else 
                       @click="handleCollect(item)" 
                       class="w36 h36"
                       style="vertical-align: middle" 
-                      src="/static/images/collect.png" 
+                      src="https://cdn.his.cdwjyyh.com/images/collect.png" 
                     />
                   </view>
                   <view 

+ 2 - 2
pages_course/components/winningPopup.vue

@@ -7,8 +7,8 @@
     zIndex="10076"
   >
     <view class="winning_record">
-      <image class="head_bg" src="/static/images/red_head.png" mode="widthFix"></image>
-      <image class="bg" src="/static/images/red_bg.png"></image>
+      <image class="head_bg" src="https://cdn.his.cdwjyyh.com/images/red_head.png" mode="widthFix"></image>
+      <image class="bg" src="https://cdn.his.cdwjyyh.com/images/red_bg.png"></image>
       
       <view class="winning_content">
         <view class="title">我的中奖记录</view>

+ 560 - 0
pages_course/integral.vue

@@ -0,0 +1,560 @@
+<template>
+	<view class="integral-page">
+		<view class="bg">
+			<image src="https://cdn.his.cdwjyyh.com/images/integral/integral_top_bg.png" mode=""></image>
+		</view>
+			<view class="status_bar" :style="{height: statusBarHeight}"></view>
+		<!-- 顶部导航栏 -->
+		<view class="header">
+			<view class="back-btn" @click="goBack">
+				<image src="https://cdn.his.cdwjyyh.com/images/back_white.png" mode=""></image>
+			</view>
+			<view class="header-title">我的芳华币</view>
+			<view class="header-right"></view>
+		</view>
+		
+		<!-- 芳华币余额区域 -->
+		<view class="balance-section">
+			<view class="balance-info">
+				<view class="balance-title">我的芳华币</view>
+				<view class="balance-amount">12002</view>
+				<view class="balance-desc">可抵扣现金,最高享100%抵扣</view>
+			</view>
+			<view class="gold-coin">
+				<image src="https://cdn.his.cdwjyyh.com/images/integral/integral_img.png" mode="aspectFit"></image>
+			</view>
+		</view>
+		
+		<!-- 连续签到领芳华币 -->
+		<view class="sign-section">
+			<view class="sign-header">
+				<view class="sign-title">连续签到领芳华币</view>
+				<view class="sign-days">已连续签到 2 天</view>
+			</view>
+			<view class="sign-buttons">
+				<view class="sign-btn active">
+					<view class="sign-data">
+					<image src="https://cdn.his.cdwjyyh.com/images/integral/integral_era.png" mode="aspectFit"></image>
+					<view class="sign-coin">10</view>
+					</view>
+					<view class="sign-day">第1天</view>
+				</view>
+				<view class="sign-btn active">
+					<view class="sign-data">
+					<image  src="https://cdn.his.cdwjyyh.com/images/integral/integral_era.png" mode="aspectFit"></image>
+					<view class="sign-coin">15</view>
+					</view>
+					<view class="sign-day">第2天</view>
+				</view>
+				<view class="sign-btn">
+					<view class="sign-data">
+					<image src="https://cdn.his.cdwjyyh.com/images/integral/integral_era.png" mode="aspectFit"></image>
+					<view class="sign-coin">20</view>
+					</view>
+					<view class="sign-day">第3天</view>
+				</view>
+				<view class="sign-btn">
+					<view class="sign-data">
+					<image src="https://cdn.his.cdwjyyh.com/images/integral/integral_era.png" mode="aspectFit"></image>
+					<view class="sign-coin">25</view>
+					</view>
+					<view class="sign-day">第4天</view>
+				</view>
+				<view class="sign-btn">
+					<view class="sign-data">
+					<image src="https://cdn.his.cdwjyyh.com/images/integral/integral_era.png" mode="aspectFit"></image>
+					<view class="sign-coin">30</view>
+					</view>
+					<view class="sign-day">第5天</view>
+				</view>
+				<view class="sign-btn">
+				<view class="sign-data">
+					<image src="https://cdn.his.cdwjyyh.com/images/integral/integral_era.png" mode="aspectFit"></image>
+					<view class="sign-coin">50</view>
+					</view>
+					<view class="sign-day">第6天</view>
+				</view>
+				<view class="sign-btn special">
+					<view class="sign-data">
+					<image src="https://cdn.his.cdwjyyh.com/images/integral/gift.png" mode="aspectFit"></image>
+					</view>
+					
+					<view class="sign-day">第7天</view>
+				</view>
+			</view>
+			<view class="sign-button">
+				<text>立即签到</text>
+			</view>
+		</view>
+		
+		<!-- 福利兑换 -->
+		<view class="benefits-section">
+			<view class="section-title">福利兑换</view>
+			<view class="benefits-grid">
+				<view class="benefit-item">
+					<image src="https://cdn.his.cdwjyyh.com/images/integral/go_consultation.png" mode="aspectFit"></image>
+					<view class="benefit-name">去问诊</view>
+				</view>
+				<view class="benefit-item">
+					<image src="https://cdn.his.cdwjyyh.com/images/integral/go_buy_medicine.png" mode="aspectFit"></image>
+					<view class="benefit-name">去买药</view>
+				</view>
+				<view class="benefit-item">
+					<image src="https://cdn.his.cdwjyyh.com/images/integral/go_change_course.png" mode="aspectFit"></image>
+					<view class="benefit-name">去诊所</view>
+				</view>
+				<view class="benefit-item">
+					<image src="https://cdn.his.cdwjyyh.com/images/integral/go_exchange.png" mode="aspectFit"></image>
+					<view class="benefit-name">去课堂</view>
+				</view>
+			</view>
+		</view>
+		
+		<!-- 新人福利 -->
+		<view class="new-user-section">
+			<view class="section-title">新人福利</view>
+			<view class="task-list">
+				<view class="task-item">
+					<view class="task-icon">
+						<image src="https://cdn.his.cdwjyyh.com/images/integral/member.png" mode="aspectFit"></image>
+					</view>
+					<view class="task-info">
+						<view class="task-title">10天会员限时领</view>
+						<view class="task-desc">专家免费咨询 优先问诊</view>
+					</view>
+					<view class="task-button">去兑换</view>
+				</view>
+				<view class="task-item">
+					<view class="task-icon">
+						<image src="https://cdn.his.cdwjyyh.com/images/integral/consult.png" mode="aspectFit"></image>
+					</view>
+					<view class="task-info">
+						<view class="task-title">专家免费咨询</view>
+						<view class="task-desc">专家免费1次咨询</view>
+					</view>
+					<view class="task-button">去学习</view>
+				</view>
+				<view class="task-item">
+					<view class="task-icon">
+						<image src="https://cdn.his.cdwjyyh.com/images/integral/first_order.png" mode="aspectFit"></image>
+					</view>
+					<view class="task-info">
+						<view class="task-title">首单立返</view>
+						<view class="task-desc">下单返现 5000 芳华币</view>
+					</view>
+					<view class="task-button">去下单</view>
+				</view>
+				<view class="task-item">
+					<view class="task-icon">
+						<image src="https://cdn.his.cdwjyyh.com/images/integral/patient_information.png" mode="aspectFit"></image>
+					</view>
+					<view class="task-info">
+						<view class="task-title">填写就诊人信息</view>
+						<view class="task-desc">填写送 1000 芳华币</view>
+					</view>
+					<view class="task-button">去填写</view>
+				</view>
+				<view class="task-item">
+					<view class="task-icon">
+						<image src="https://cdn.his.cdwjyyh.com/images/integral/address.png" mode="aspectFit"></image>
+					</view>
+					<view class="task-info">
+						<view class="task-title">填写收货地址</view>
+						<view class="task-desc">填写送 1000 芳华币</view>
+					</view>
+					<view class="task-button">去填写</view>
+				</view>
+			</view>
+		</view>
+		
+		<!-- 每日任务 -->
+		<view class="daily-task-section">
+			<view class="section-title">每日任务</view>
+			<view class="task-list">
+				<view class="task-item">
+					<view class="task-icon">
+						<image src="https://cdn.his.cdwjyyh.com/images/integral/xfdjf.png" mode="aspectFit"></image>
+					</view>
+					<view class="task-info">
+						<view class="task-title">刷视频</view>
+						<view class="task-desc">每浏览 10 秒视频发放芳华币</view>
+					</view>
+					<view class="task-button">去逛逛</view>
+				</view>
+				<view class="task-item">
+					<view class="task-icon">
+						<image src="https://cdn.his.cdwjyyh.com/images/integral/xfdjf.png" mode="aspectFit"></image>
+					</view>
+					<view class="task-info">
+						<view class="task-title">看直播</view>
+						<view class="task-desc">每观看 10 秒视频发放芳华币</view>
+					</view>
+					<view class="task-button">去观看</view>
+				</view>
+				<view class="task-item">
+					<view class="task-icon">
+						<image src="https://cdn.his.cdwjyyh.com/images/integral/xxkc.png" mode="aspectFit"></image>
+					</view>
+					<view class="task-info">
+						<view class="task-title">学习课程</view>
+						<view class="task-desc">每学习 20 秒发放芳华币</view>
+					</view>
+					<view class="task-button">去学习</view>
+				</view>
+				<view class="task-item">
+					<view class="task-icon">
+						<image src="https://cdn.his.cdwjyyh.com/images/integral/ssp.png" mode="aspectFit"></image>
+					</view>
+					<view class="task-info">
+						<view class="task-title">消费得积分</view>
+						<view class="task-desc">实际消费 1 元得 1 芳华币</view>
+					</view>
+					<view class="task-button">去逛逛</view>
+				</view>
+				<view class="task-item">
+					<view class="task-icon">
+						<image src="https://cdn.his.cdwjyyh.com/images/integral/txyysf.png" mode="aspectFit"></image>
+					</view>
+					<view class="task-info">
+						<view class="task-title">填写用药随访</view>
+						<view class="task-desc">分享健康知识 +10 芳华币/条</view>
+					</view>
+					<view class="task-button">去填写</view>
+				</view>
+				<view class="task-item">
+					<view class="task-icon">
+						<image src="https://cdn.his.cdwjyyh.com/images/integral/fxjkzs.png" mode="aspectFit"></image>
+					</view>
+					<view class="task-info">
+						<view class="task-title">分享健康知识</view>
+						<view class="task-desc">分享健康知识 +10 芳华币/条</view>
+					</view>
+					<view class="task-button">去分享</view>
+				</view>
+				<view class="task-item">
+					<view class="task-icon">
+						<image src="https://cdn.his.cdwjyyh.com/images/integral/yqhyxfl.png" mode="aspectFit"></image>
+					</view>
+					<view class="task-info">
+						<view class="task-title">邀请好友享福利</view>
+						<view class="task-desc">+200 芳华币</view>
+					</view>
+					<view class="task-button">去邀请</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	data() {
+			return {
+				// 状态栏的高度
+				statusBarHeight: uni.getStorageSync('menuInfo').statusBarHeight,
+			}
+		},
+	methods: {
+		goBack() {
+			uni.navigateBack({
+				delta: 1
+			})
+		}
+	}
+}
+</script>
+
+<style lang="scss">
+	.integral-page {
+		background: #F5F7FA;
+		min-height: 100vh;
+		.bg{
+			width: 100%;
+			position: absolute;
+			image{
+			width: 100%;
+			height: 682rpx;
+			}
+		}
+		.header {
+		position: relative;
+			z-index: 2;
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+			padding: 0 30rpx;
+			box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.05);
+			
+			.back-btn {
+				width: 48rpx;
+				height: 48rpx;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				
+				image {
+					width: 48rpx;
+			     	height: 48rpx;
+				}
+			}
+			
+			.header-title {
+				font-size: 34rpx;
+				font-weight: 500;
+				color: #ffffff;
+			}
+			
+			.header-right {
+				width: 60rpx;
+			}
+		}
+		
+		.balance-section {
+			// height: 300rpx;
+			// background: linear-gradient(135deg, #FF9A3C 0%, #FF6B00 100%);
+			margin: 20rpx 30rpx;
+			border-radius: 20rpx;
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+			padding: 0 40rpx;
+			position: relative;
+			overflow: hidden;
+			
+			.balance-info {
+				z-index: 1;
+				
+				.balance-title {
+					font-size: 24rpx;
+					color: rgba(255, 255, 255, 0.8);
+					margin-bottom: 10rpx;
+				}
+				
+				.balance-amount {
+					font-size: 60rpx;
+					font-weight: bold;
+					color: #FFFFFF;
+					margin-bottom: 10rpx;
+				}
+				
+				.balance-desc {
+					font-size: 20rpx;
+					color: rgba(255, 255, 255, 0.8);
+				}
+			}
+			
+			.gold-coin {
+				z-index: 1;
+				
+				image {
+					width: 320rpx;
+					height: 304rpx;
+				}
+			}
+		}
+		
+		.sign-section {
+			background: #FFFFFF;
+			margin: 0 30rpx 20rpx;
+			border-radius: 20rpx;
+			padding: 30rpx;
+			position: relative;
+			z-index: 2;
+			
+			.sign-header {
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+				margin-bottom: 30rpx;
+				
+				.sign-title {
+					font-size: 28rpx;
+					font-weight: 600;
+					color: #333333;
+				}
+				
+				.sign-days {
+					font-size: 22rpx;
+					color: #FF6B00;
+				}
+			}
+			
+			.sign-buttons {
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+				margin-bottom: 30rpx;
+				
+				.sign-btn {
+					width: 80rpx;
+					height: 120rpx;
+					display: flex;
+					flex-direction: column;
+					align-items: center;
+					justify-content: center;
+					.sign-data{
+						position: relative;
+						width: 88rpx;
+						height: 88rpx;
+						image{
+							width: 100%;
+							height: 100%;
+						}
+						.sign-coin {
+							position: absolute;
+							top: 50%;
+							left: 50%;
+							transform: translate(-50%, -50%);
+						font-size: 24rpx;
+						font-weight: 600;
+						color: #ffffff;
+						margin-bottom: 5rpx;
+					}
+					}
+					
+					
+					.sign-day {
+						font-size: 20rpx;
+						color: #999999;
+						margin-top: 8rpx;
+					}
+					
+					&.active {
+						
+						.sign-coin {
+							color: #FF6B00;
+						}
+					}
+					
+					
+				}
+			}
+			
+			.sign-button {
+				height: 80rpx;
+				background: linear-gradient(135deg, #FF9A3C 0%, #FF6B00 100%);
+				border-radius: 40rpx;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				
+				text {
+					font-size: 28rpx;
+					font-weight: 600;
+					color: #FFFFFF;
+				}
+			}
+		}
+		
+		.benefits-section {
+			background: #FFFFFF;
+			margin: 0 30rpx 20rpx;
+			border-radius: 20rpx;
+			padding: 30rpx;
+			
+			.section-title {
+				font-size: 28rpx;
+				font-weight: 600;
+				color: #333333;
+				margin-bottom: 30rpx;
+			}
+			
+			.benefits-grid {
+				display: grid;
+				grid-template-columns: repeat(4, 1fr);
+				gap: 20rpx;
+				
+				.benefit-item {
+					display: flex;
+					flex-direction: column;
+					align-items: center;
+					justify-content: center;
+					
+					image {
+						width: 80rpx;
+						height: 80rpx;
+						margin-bottom: 10rpx;
+					}
+					
+					.benefit-name {
+						font-size: 22rpx;
+						color: #666666;
+					}
+				}
+			}
+		}
+		
+		.new-user-section,
+		.daily-task-section {
+			background: #FFFFFF;
+			margin: 0 30rpx 20rpx;
+			border-radius: 20rpx;
+			padding: 30rpx;
+			
+			.section-title {
+				font-size: 28rpx;
+				font-weight: 600;
+				color: #333333;
+				margin-bottom: 30rpx;
+			}
+			
+			.task-list {
+				
+				.task-item {
+					display: flex;
+					align-items: center;
+					justify-content: space-between;
+					padding: 20rpx 0;
+					border-bottom: 1rpx solid #F5F7FA;
+					
+					&:last-child {
+						border-bottom: none;
+					}
+					
+					.task-icon {
+						width: 60rpx;
+						height: 60rpx;
+						display: flex;
+						align-items: center;
+						justify-content: center;
+						margin-right: 20rpx;
+						
+						image {
+							width: 40rpx;
+							height: 40rpx;
+						}
+					}
+					
+					.task-info {
+						flex: 1;
+						
+						.task-title {
+							font-size: 24rpx;
+							font-weight: 500;
+							color: #333333;
+							margin-bottom: 5rpx;
+						}
+						
+						.task-desc {
+							font-size: 20rpx;
+							color: #999999;
+						}
+					}
+					
+					.task-button {
+						width: 120rpx;
+						height: 50rpx;
+						background: #FF6B00;
+						border-radius: 25rpx;
+						display: flex;
+						align-items: center;
+						justify-content: center;
+						font-size: 22rpx;
+						font-weight: 500;
+						color: #FFFFFF;
+					}
+				}
+			}
+		}
+	}
+</style>

+ 31 - 31
pages_course/living.vue

@@ -5,10 +5,10 @@
 			<view class="content">
 				<view style="position: fixed; top: 0; z-index: 5" class="content-top">
 					<view class="x-f">
-						<image v-if="!scene" @click="goBack" class="w60 h64  mr6" src="/static/images/return3.png" />
+						<image v-if="!scene" @click="goBack" class="w60 h64  mr6" src="https://cdn.his.cdwjyyh.com/images/return3.png" />
 						<view class="align-center"
 							style="padding: 6rpx 8rpx; height: 64rpx; background: rgba(0,0,0,0.5); border-radius: 32rpx">
-							<u-avatar :src="liveItem.liveImgUrl || '/static/images/avatar.png'" :size="32"></u-avatar>
+							<u-avatar :src="liveItem.liveImgUrl || 'https://cdn.his.cdwjyyh.com/images/avatar.png'" :size="32"></u-avatar>
 							<view class="colorf ml10 mr6">
 								<view>{{ liveItem.liveName ? truncateString(liveItem.liveName, 8) : '未命名' }}</view>
 							</view>
@@ -28,7 +28,7 @@
 							<view class="sum">{{formattedWatchCount || 0 }}</view>
 						</view>
 						<view class="complaint-box" @click="navgetTo('/pages_shopping/live/complaintList') ">
-							<image class="image w32 h32 mr10" src="/static/images/complaint.png" mode="widthFix" />
+							<image class="image w32 h32 mr10" src="https://cdn.his.cdwjyyh.com/images/complaint.png" mode="widthFix" />
 							<view class="fs26">投诉</view>
 						</view>
 					</view>
@@ -40,14 +40,14 @@
 							}">
 					<view class="side-item" @click="onRed()" v-if="isShowRed">
 						<button class="button button-reset" style="height: 70rpx;">
-							<image class="image" style="width: 72rpx;" src="/static/images/redbag.png"
+							<image class="image" style="width: 72rpx;" src="https://cdn.his.cdwjyyh.com/images/redbag.png"
 								mode="widthFix" />
 						</button>
 						<view class="fs30">领红包</view>
 					</view>
 					<view class="side-item" @click="onLottery()" v-if="isShowLottery && countdown">
 						<button class="button button-reset">
-							<image class="image" src="/static/images/lottery.png" mode="widthFix" />
+							<image class="image" src="https://cdn.his.cdwjyyh.com/images/lottery.png" mode="widthFix" />
 						</button>
 						<view class=" fs30">抽奖</view>
 					</view>
@@ -57,7 +57,7 @@
 					</view>
 					<view class="side-item">
 						<button open-type="share" class="button button-reset">
-							<image class="image" src="/static/images/weixin1.png" mode="widthFix" />
+							<image class="image" src="https://cdn.his.cdwjyyh.com/images/weixin1.png" mode="widthFix" />
 						</button>
 						<view class="txt" style="font-size: 30rpx;">分享</view>
 					</view>
@@ -73,7 +73,7 @@
 					<view class="mt20 chat-content" :class="{ 'chat-content-focused': isFocus }">
 						<view v-if="showPurchasePrompt && orderUser && orderUser.count && liveItem.status == 2"
 							class="shop-prompt f30  mb20">
-							<image class="w32 h32 mr8" src="/static/images/shopping.png" />
+							<image class="w32 h32 mr8" src="https://cdn.his.cdwjyyh.com/images/shopping.png" />
 							<text>{{ orderUser.count || 0 }}人正在去购买</text>
 						</view>
 						<!-- v-if="showWelcomeMessage" -->
@@ -136,7 +136,7 @@
 				<view class="integral-box">
 					<view class="top">
 						<view class="title">观看视频领芳华币</view>
-						<image class="photo" src="/static/images/integral_bg.png" mode="widthFix" />
+						<image class="photo" src="https://cdn.his.cdwjyyh.com/images/integral_bg.png" mode="widthFix" />
 					</view>
 					<view class="item">
 						<view class="title">{{ integral.msg }}</view>
@@ -147,7 +147,7 @@
 
 			<u-popup :show="isShowRedCard" round="20rpx" mode="center" bgColor="transparent" zIndex="10076">
 				<view class="red-card">
-					<image class="img" src="/static/images/red_card.png" />
+					<image class="img" src="https://cdn.his.cdwjyyh.com/images/red_card.png" />
 					<view class="red-content">
 						<view class="title">{{ redCard.msg }}</view>
 						<view class="txt">直播惊喜芳华币</view>
@@ -159,7 +159,7 @@
 			<!-- 中奖和未中奖 -->
 			<u-popup :show="isShowPrize && havePrize" round="20rpx" mode="center" bgColor="#fff" zIndex="10076">
 				<view class="prize-card" v-if="isCurrentUserWon">
-					<image class="nav-img" src="/static/images/red_head.png" mode="widthFix" />
+					<image class="nav-img" src="https://cdn.his.cdwjyyh.com/images/red_head.png" mode="widthFix" />
 					<view class="title">恭喜您 中奖啦!</view>
 					<view class="prize-content" v-for="(item, index) in prizeInfo || []" :key="index">
 						<view class="item">{{ item.userName }}</view>
@@ -172,7 +172,7 @@
 						填写地址</view>
 				</view>
 				<view class="no-prize-card" v-else>
-					<image class="img" src="/static/images/no-prize.png" mode="widthFix" />
+					<image class="img" src="https://cdn.his.cdwjyyh.com/images/no-prize.png" mode="widthFix" />
 					<view class="tip">很遗憾 您未中奖</view>
 					<view class="button" @click="confirm">确认</view>
 				</view>
@@ -190,20 +190,20 @@
 			<u-popup :show="isMore" @close="closeMore" round="20rpx" bgColor="#f3f5f9" zIndex="10076">
 				<view class="more-block">
 					<view class="item" @click="navgetTo('/pages_shopping/live/integral'), (isMore = false)">
-						<image class="w48 h48" src="/static/images/order.png" />
+						<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/order.png" />
 						<view style="text-align: center">芳华币</view>
 					</view>
 					<view class="item"
 						@click="navgetTo('/pages_shopping/live/storeOrderRefundList?liveId=' + liveId), (isMore = false)">
-						<image class="w48 h48" src="/static/images/after_sales.png" />
+						<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/after_sales.png" />
 						<view style="text-align: center">售后订单</view>
 					</view>
 					<view class="item" @click="goMiniProgram(), (isMore = false)">
-						<image class="w48 h48" src="/static/images/points.png" />
+						<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/points.png" />
 						<view style="text-align: center">兑换好礼</view>
 					</view>
 					<view class="item" @click="getMyLottery(), (isMore = false), (winning = true)">
-						<image class="w48 h48" src="/static/images/health_sel.png" />
+						<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/health_sel.png" />
 						<view style="text-align: center">中奖记录</view>
 					</view>
 				</view>
@@ -215,9 +215,9 @@
 					<view class="gift-top ">
 						<view class="left ">送花给<text class="ml8 orange">芳华未来</text></view>
 						<view class="align-center" @click="navgetTo('/pages_shopping/live/integral')">
-							<image class="w32 h32" src="/static/images/coin.png" />
+							<image class="w32 h32" src="https://cdn.his.cdwjyyh.com/images/coin.png" />
 							<text class="ml6 mr6 f24">146</text>
-							<image class="w24 h24" src="/static/images/arrow_white.png" />
+							<image class="w24 h24" src="https://cdn.his.cdwjyyh.com/images/arrow_white.png" />
 						</view>
 					</view>
 					<view class="gift-block">
@@ -241,10 +241,10 @@
 			<!-- 优惠券弹窗 -->
 			<view class="coupon-pop" v-if="isShowCoupon">
 				<view class="coupon-block">
-					<image class="bg" src="/static/images/coupon_bg.png" />
-					<image class="nav" src="/static/images/coupon_top.png" />
+					<image class="bg" src="https://cdn.his.cdwjyyh.com/images/coupon_bg.png" />
+					<image class="nav" src="https://cdn.his.cdwjyyh.com/images/coupon_top.png" />
 					<image @click="isShowCoupon = false" class="w40 h40 close" style="z-index: 99"
-						src="/static/images/close1.png" />
+						src="https://cdn.his.cdwjyyh.com/images/close1.png" />
 					<view class="item">
 						<view class="title">{{ couponInfo.couponName }}</view>
 						<view class="price">
@@ -326,35 +326,35 @@
 				// 观众列表相关状态
 				showViewerList: false,
 				giftList: [{
-					img: '/static/images/gift1.png',
+					img: 'https://cdn.his.cdwjyyh.com/images/gift1.png',
 					name: '人气票',
 					number: 1
 				}, {
-					img: '/static/images/gift2.png',
+					img: 'https://cdn.his.cdwjyyh.com/images/gift2.png',
 					name: '小心心',
 					number: 1
 				}, {
-					img: '/static/images/gift3.png',
+					img: 'https://cdn.his.cdwjyyh.com/images/gift3.png',
 					name: '棒棒糖',
 					number: 9
 				}, {
-					img: '/static/images/gift4.png',
+					img: 'https://cdn.his.cdwjyyh.com/images/gift4.png',
 					name: '玫瑰',
 					number: 50
 				}, {
-					img: '/static/images/gift5.png',
+					img: 'https://cdn.his.cdwjyyh.com/images/gift5.png',
 					name: '鲜花',
 					number: 88
 				}, {
-					img: '/static/images/gift6.png',
+					img: 'https://cdn.his.cdwjyyh.com/images/gift6.png',
 					name: '水晶球',
 					number: 99
 				}, {
-					img: '/static/images/gift7.png',
+					img: 'https://cdn.his.cdwjyyh.com/images/gift7.png',
 					name: '啤酒',
 					number: 128
 				}, {
-					img: '/static/images/gift8.png',
+					img: 'https://cdn.his.cdwjyyh.com/images/gift8.png',
 					name: '浪漫热气球',
 					number: 1000
 				}],
@@ -728,7 +728,7 @@
 			return {
 				title: '邀请你来观看直播:' + this.liveItem.liveName,
 				path: '/pages_course/living?companyId=-2&companyUserId=' + this.userData.userId + '&liveId=' + this.liveId,
-				imageUrl: '/static/images/logo.png',
+				imageUrl: 'https://cdn.his.cdwjyyh.com/images/logo.png',
 				success(res) {
 					console.log('分享成功', res);
 				},
@@ -3430,7 +3430,7 @@
 					cmd: 'sendMsg',
 					msg: text,
 					nickName: this.userData.nickname || '未命名',
-					avatar: this.userData.avatar || '/static/images/avatar.png'
+					avatar: this.userData.avatar || 'https://cdn.his.cdwjyyh.com/images/avatar.png'
 				};
 				// 发送socket消息
 				try {
@@ -3510,7 +3510,7 @@
 					cmd: 'sendMsg',
 					msg: text,
 					nickName: this.userData.nickname || '未命名',
-					avatar: this.userData.avatar || '/static/images/avatar.png'
+					avatar: this.userData.avatar || 'https://cdn.his.cdwjyyh.com/images/avatar.png'
 				};
 				// 发送socket消息
 				try {

+ 38 - 38
pages_course/living1.vue

@@ -4,9 +4,9 @@
 			<view class="content">
 				<view style="position: fixed; top: 0; z-index: 5" class="content-top">
 					<view class="x-f">
-						<image v-if="!scene" @click="goBack" class="w60 h64" src="/static/images/return3.png" />
+						<image v-if="!scene" @click="goBack" class="w60 h64" src="https://cdn.his.cdwjyyh.com/images/return3.png" />
 						<view class="align-center" style="padding: 6rpx 8rpx; height: 64rpx; background: rgba(0, 0, 0, 0.5); border-radius: 32rpx">
-							<u-avatar :src="liveItem.liveImgUrl || '/static/images/avatar.png'" :size="32"></u-avatar>
+							<u-avatar :src="liveItem.liveImgUrl || 'https://cdn.his.cdwjyyh.com/images/avatar.png'" :size="32"></u-avatar>
 							<view class="colorf ml10 mr6">
 								<view>{{ liveItem.liveName ? truncateString(liveItem.liveName, 8) : '未命名' }}</view>
 							</view>
@@ -31,14 +31,14 @@
 							}" >
 					<view class="side-item" @click="onRed()"  v-if="isShowRed">
 						<button  class="button button-reset" style="height: 70rpx;">
-						   <image class="image" style="width: 72rpx;" src="/static/images/redbag.png" mode="widthFix" />
+						   <image class="image" style="width: 72rpx;" src="https://cdn.his.cdwjyyh.com/images/redbag.png" mode="widthFix" />
 						</button>
 						<view style="font-size: 30rpx;">领红包</view>
 					</view>
 				
 					<view class="side-item"  @click="onLottery()"  v-if="isShowLottery && countdown">
 						<button  class="button button-reset">
-							<image class="image" src="/static/images/lottery.png" mode="widthFix" />
+							<image class="image" src="https://cdn.his.cdwjyyh.com/images/lottery.png" mode="widthFix" />
 						</button>
 						<view style="font-size: 30rpx;">抽奖</view>
 					</view>
@@ -49,7 +49,7 @@
 					</view>
 					<view class="side-item">
 						<button open-type="share" class="button button-reset">
-							<image class="image" src="/static/images/weixin1.png" mode="widthFix" />
+							<image class="image" src="https://cdn.his.cdwjyyh.com/images/weixin1.png" mode="widthFix" />
 						</button>
 						<view style="font-size: 30rpx;">分享</view>
 					</view>
@@ -60,7 +60,7 @@
 							<view class="x-f">
 								<view class="tip">领红包</view>
 								<view class="item">
-									<image class="w70 img" src="/static/images/redbag.png" mode="widthFix" />
+									<image class="w70 img" src="https://cdn.his.cdwjyyh.com/images/redbag.png" mode="widthFix" />
 								</view>
 							</view>
 						</view>
@@ -69,14 +69,14 @@
 							<view class="x-f">
 								<view class="tip">抽奖</view>
 								<view class="item">
-									<image class="w60" src="/static/images/lottery.png" mode="widthFix" />
+									<image class="w60" src="https://cdn.his.cdwjyyh.com/images/lottery.png" mode="widthFix" />
 								</view>
 							</view>
 						</view>
 				</view> -->
 				
 				<view class="shop-prompt f30 x-f" v-if="showPurchasePrompt && orderUser && orderUser.count && liveItem.status == 2">
-					<image class="w32 h32 mr8" src="/static/images/shopping.png" />
+					<image class="w32 h32 mr8" src="https://cdn.his.cdwjyyh.com/images/shopping.png" />
 					<text>{{ orderUser.count || 0 }}人正在去购买</text>
 				</view>
 				<view class="videolist" v-if="liveItem.status == 2">
@@ -192,7 +192,7 @@
 						preload="auto"
 						type="application/x-mpegURL"
 					></video>
-					<image v-if="liveItem.status == 1 && !liveItem.previewUrl" class="img" src="/static/images/no_live.png"></image>
+					<image v-if="liveItem.status == 1 && !liveItem.previewUrl" class="img" src="https://cdn.his.cdwjyyh.com/images/no_live.png"></image>
 					<view class="countdown-item mt30 mb30" v-if="liveItem.status == 1 && liveCountdown">
 						开播倒计时
 						<view class="x-f">
@@ -214,7 +214,7 @@
 					<view class="title" v-if="!liveCountdown">主播还在来的路上</view>
 				</view>
 				<view class="trailer-box" v-if="!liveItem">
-					<image class="img" src="/static/images/no_live.png"></image>
+					<image class="img" src="https://cdn.his.cdwjyyh.com/images/no_live.png"></image>
 					<view class="title">暂无直播</view>
 				</view>
 
@@ -304,7 +304,7 @@
 								transform: 'translateZ(0)'
 							}">
 							<view class="icon-bg ml20" @tap="openCart()">
-								<image src="/static/images/shopping.png" class="w58 h58" />
+								<image src="https://cdn.his.cdwjyyh.com/images/shopping.png" class="w58 h58" />
 							</view>
 						</view>
 					</view>
@@ -314,10 +314,10 @@
 			<view class="goods" v-if="isShowGoods" @click="goShop(goodsCard.productId, goodsCard.goodsId)">
 				<view class="top">
 					<view class="left">
-						<image class="w30 h30 mr8" src="/static/images/signal.png" />
+						<image class="w30 h30 mr8" src="https://cdn.his.cdwjyyh.com/images/signal.png" />
 						讲解中
 					</view>
-					<image @click.stop="isShowGoods = false" class="w40 h40 mr10" src="/static/images/del_black.png" />
+					<image @click.stop="isShowGoods = false" class="w40 h40 mr10" src="https://cdn.his.cdwjyyh.com/images/del_black.png" />
 				</view>
 				<image class="photo" :src="goodsCard.imgUrl" />
 				<view class="item">
@@ -332,8 +332,8 @@
 
 			<u-popup :show="isShowLotteryPop && countdown" round="40rpx">
 				<view class="prize-box" style="border-radius: 40rpx; height: fit-content">
-					<image class="nav-img" src="/static/images/red_head.png" mode="widthFix" />
-					<image class="bg-img" src="/static/images/red_bg.png" />
+					<image class="nav-img" src="https://cdn.his.cdwjyyh.com/images/red_head.png" mode="widthFix" />
+					<image class="bg-img" src="https://cdn.his.cdwjyyh.com/images/red_bg.png" />
 					<view class="prize-content">
 						<view class="mr20" style="display: flex; justify-content: flex-end">
 							<view style="width: 80rpx; height: 80rpx; display: flex; justify-content: center; align-items: center" @click="isShowLotteryPop = false">
@@ -341,7 +341,7 @@
 							</view>
 						</view>
 						<view class="column align-center">
-							<image class="w446 h80" src="/static/images/red_title.png" />
+							<image class="w446 h80" src="https://cdn.his.cdwjyyh.com/images/red_title.png" />
 							<view class="fs24 colorf x-f mt30 mb30">
 								开奖倒计时
 								<view class="x-f">
@@ -370,7 +370,7 @@
 				<view class="integral-box">
 					<view class="top">
 						<view class="title">观看视频领芳华币</view>
-						<image class="photo" src="/static/images/integral_bg.png" mode="widthFix" />
+						<image class="photo" src="https://cdn.his.cdwjyyh.com/images/integral_bg.png" mode="widthFix" />
 					</view>
 					<view class="item">
 						<view class="title">{{ integral.msg }}</view>
@@ -381,7 +381,7 @@
 
 			<u-popup :show="isShowRedCard" round="20rpx" mode="center" bgColor="transparent" zIndex="10076">
 				<view class="red-card">
-					<image class="img" src="/static/images/red_card.png" />
+					<image class="img" src="https://cdn.his.cdwjyyh.com/images/red_card.png" />
 					<view class="red-content">
 						<view class="title">{{ redCard.msg }}</view>
 						<view class="txt">直播惊喜芳华币</view>
@@ -393,7 +393,7 @@
 			<!-- 中奖和未中奖 -->
 			<u-popup :show="isShowPrize && havePrize" round="20rpx" mode="center" bgColor="#fff" zIndex="10076">
 				<view class="prize-card" v-if="isCurrentUserWon">
-					<image class="nav-img" src="/static/images/red_head.png" mode="widthFix" />
+					<image class="nav-img" src="https://cdn.his.cdwjyyh.com/images/red_head.png" mode="widthFix" />
 					<view class="title">恭喜您 中奖啦!</view>
 					<view class="prize-content" v-for="(item, index) in prizeInfo || []" :key="index">
 						<view class="item">{{ item.userName }}</view>
@@ -404,7 +404,7 @@
 					<view class="button" @click="confirm">确认</view>
 				</view>
 				<view class="no-prize-card" v-else>
-					<image class="img" src="/static/images/no-prize.png" mode="widthFix" />
+					<image class="img" src="https://cdn.his.cdwjyyh.com/images/no-prize.png" mode="widthFix" />
 					<view class="tip">很遗憾 您未中奖</view>
 					<view class="button" @click="confirm">确认</view>
 				</view>
@@ -414,8 +414,8 @@
 			<!-- winning -->
 			<u-popup :show="winning" @close="closeWin" round="20rpx" bgColor="#f3f5f9" zIndex="10076">
 				<view class="winning_record">
-					<image class="head_bg" src="/static/images/red_head.png" mode="widthFix"></image>
-					<image class="bg" src="/static/images/red_bg.png"></image>
+					<image class="head_bg" src="https://cdn.his.cdwjyyh.com/images/red_head.png" mode="widthFix"></image>
+					<image class="bg" src="https://cdn.his.cdwjyyh.com/images/red_bg.png"></image>
 					<view class="winning_content">
 						<view class="title">我的中奖记录</view>
 						<view class="row mb40">
@@ -462,19 +462,19 @@
 			<u-popup :show="isMore" @close="closeMore" round="20rpx" bgColor="#f3f5f9" zIndex="10076">
 				<view class="more-block">
 					<view class="item" @click="navgetTo('/pages_shopping/live/integral'), (isMore = false)">
-						<image class="w48 h48" src="/static/images/order.png" />
+						<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/order.png" />
 						<view style="text-align: center">芳华币</view>
 					</view>
 					<view class="item" @click="navgetTo('/pages_shopping/live/storeOrderRefundList?liveId=' + liveId), (isMore = false)">
-						<image class="w48 h48" src="/static/images/after_sales.png" />
+						<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/after_sales.png" />
 						<view style="text-align: center">售后订单</view>
 					</view>
 					<view class="item" @click="goMiniProgram(), (isMore = false)">
-						<image class="w48 h48" src="/static/images/points.png" />
+						<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/points.png" />
 						<view style="text-align: center">兑换好礼</view>
 					</view>
 					<view class="item" @click="getMyLottery(), (isMore = false), (winning = true)">
-						<image class="w48 h48" src="/static/images/health_sel.png" />
+						<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/health_sel.png" />
 						<view style="text-align: center">中奖记录</view>
 					</view>
 				</view>
@@ -486,15 +486,15 @@
 				<view class="shoppop">
 					<view class="shoppop-top">
 						<view class="search-input x-f">
-							<image class="w24 mr16" src="/static/images/search.png" mode="widthFix" />
+							<image class="w24 mr16" src="https://cdn.his.cdwjyyh.com/images/search.png" mode="widthFix" />
 							<input placeholder="请搜索商品" v-model="inputInfo" @input="handleSearchInput" />
 						</view>
 						<view class="search-top" @click="navgetTo('/pages_shopping/live/order')">
-							<image class="w48 h48" src="/static/images/carts.png" />
+							<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/carts.png" />
 							<view style="text-align: center">订单</view>
 						</view>
 						<view class="search-top" @click="(isMore = true), (shopping = false)">
-							<image class="w48 h48" src="/static/images/search2.png" />
+							<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/search2.png" />
 							<view style="text-align: center">更多</view>
 						</view>
 					</view>
@@ -515,9 +515,9 @@
 										<view class="collect-btn">
 											<image v-if="item.isFavorite" @click="onGoodsCollect(item)" class="w36 h36"
 												style="vertical-align: middle;"
-												src="/static/images/collect_select.png" />
+												src="https://cdn.his.cdwjyyh.com/images/collect_select.png" />
 											<image v-else @click="onGoodsCollect(item)" class="w36 h36"
-												style="vertical-align: middle;" src="/static/images/collect.png" />
+												style="vertical-align: middle;" src="https://cdn.his.cdwjyyh.com/images/collect.png" />
 										</view>
 										<view v-if="item.status==1" class="shop-btn"
 											@click="goShop(item.productId,item.goodsId)">去购买 </view>
@@ -564,9 +564,9 @@
 													@click="onGoodsCollect(item)"
 													class="w36 h36"
 													style="vertical-align: middle"
-													src="/static/images/collect_select.png"
+													src="https://cdn.his.cdwjyyh.com/images/collect_select.png"
 												/>
-												<image v-else @click="onGoodsCollect(item)" class="w36 h36" style="vertical-align: middle" src="/static/images/collect.png" />
+												<image v-else @click="onGoodsCollect(item)" class="w36 h36" style="vertical-align: middle" src="https://cdn.his.cdwjyyh.com/images/collect.png" />
 											</view>
 											<view v-if="item.status == 1" class="shop-btn" @click="goShop(item.productId, item.goodsId)">去购买</view>
 											<view v-else-if="item.status == 0" class="shop-btn">已下架</view>
@@ -582,9 +582,9 @@
 			<!-- 优惠券弹窗 -->
 			<view class="coupon-pop" v-if="isShowCoupon">
 				<view class="coupon-block">
-					<image class="bg" src="/static/images/coupon_bg.png" />
-					<image class="nav" src="/static/images/coupon_top.png" />
-					<image @click="isShowCoupon = false" class="w40 h40 close" style="z-index: 99" src="/static/images/close1.png" />
+					<image class="bg" src="https://cdn.his.cdwjyyh.com/images/coupon_bg.png" />
+					<image class="nav" src="https://cdn.his.cdwjyyh.com/images/coupon_top.png" />
+					<image @click="isShowCoupon = false" class="w40 h40 close" style="z-index: 99" src="https://cdn.his.cdwjyyh.com/images/close1.png" />
 					<view class="item">
 						<view class="title">{{ couponInfo.couponName }}</view>
 						<view class="price">
@@ -958,7 +958,7 @@ export default {
 		return {
 			title: '邀请你来观看直播:' + this.liveItem.liveName,
 			path: '/pages_course/living?companyId=-2&companyUserId=' + this.userData.userId + '&liveId=' + this.liveId,
-			imageUrl: '/static/images/logo.png',
+			imageUrl: 'https://cdn.his.cdwjyyh.com/images/logo.png',
 			success(res) {
 				console.log('分享成功', res);
 			},
@@ -3732,7 +3732,7 @@ export default {
 				cmd: 'sendMsg',
 				msg: text,
 				nickName: this.userData.nickname || '未命名',
-				avatar: this.userData.avatar || '/static/images/avatar.png'
+				avatar: this.userData.avatar || 'https://cdn.his.cdwjyyh.com/images/avatar.png'
 			};
 			// 发送socket消息
 			try {

+ 38 - 38
pages_course/livingmy.vue

@@ -4,10 +4,10 @@
 			<view class="content">
 				<view style="position: fixed; top: 0; z-index: 5" class="content-top">
 					<view class="x-f">
-						<image v-if="!scene" @click="goBack" class="w60 h64" src="/static/images/return3.png" />
+						<image v-if="!scene" @click="goBack" class="w60 h64" src="https://cdn.his.cdwjyyh.com/images/return3.png" />
 						<view class="align-center"
 							style="padding: 6rpx 8rpx; height: 64rpx; background: rgba(0, 0, 0, 0.5); border-radius: 32rpx">
-							<u-avatar :src="liveItem.liveImgUrl || '/static/images/avatar.png'" :size="32"></u-avatar>
+							<u-avatar :src="liveItem.liveImgUrl || 'https://cdn.his.cdwjyyh.com/images/avatar.png'" :size="32"></u-avatar>
 							<view class="colorf ml10 mr6">
 								<view>{{ liveItem.liveName ? truncateString(liveItem.liveName, 8) : '未命名' }}</view>
 							</view>
@@ -35,7 +35,7 @@
 							}">
 					<view class="side-item" @click="onRed()" v-if="isShowRed">
 						<button class="button button-reset" style="height: 70rpx;">
-							<image class="image" style="width: 72rpx;" src="/static/images/redbag.png"
+							<image class="image" style="width: 72rpx;" src="https://cdn.his.cdwjyyh.com/images/redbag.png"
 								mode="widthFix" />
 						</button>
 						<view style="font-size: 30rpx;">领红包</view>
@@ -43,7 +43,7 @@
 
 					<view class="side-item" @click="onLottery()" v-if="isShowLottery && countdown">
 						<button class="button button-reset">
-							<image class="image" src="/static/images/lottery.png" mode="widthFix" />
+							<image class="image" src="https://cdn.his.cdwjyyh.com/images/lottery.png" mode="widthFix" />
 						</button>
 						<view style="font-size: 30rpx;">抽奖</view>
 					</view>
@@ -54,7 +54,7 @@
 					</view>
 					<view class="side-item">
 						<button open-type="share" class="button button-reset">
-							<image class="image" src="/static/images/weixin1.png" mode="widthFix" />
+							<image class="image" src="https://cdn.his.cdwjyyh.com/images/weixin1.png" mode="widthFix" />
 						</button>
 						<view style="font-size: 30rpx;">分享</view>
 					</view>
@@ -65,7 +65,7 @@
 							<view class="x-f">
 								<view class="tip">领红包</view>
 								<view class="item">
-									<image class="w70 img" src="/static/images/redbag.png" mode="widthFix" />
+									<image class="w70 img" src="https://cdn.his.cdwjyyh.com/images/redbag.png" mode="widthFix" />
 								</view>
 							</view>
 						</view>
@@ -74,7 +74,7 @@
 							<view class="x-f">
 								<view class="tip">抽奖</view>
 								<view class="item">
-									<image class="w60" src="/static/images/lottery.png" mode="widthFix" />
+									<image class="w60" src="https://cdn.his.cdwjyyh.com/images/lottery.png" mode="widthFix" />
 								</view>
 							</view>
 						</view>
@@ -82,7 +82,7 @@
 
 				<view class="shop-prompt f30 x-f"
 					v-if="showPurchasePrompt && orderUser && orderUser.count && liveItem.status == 2">
-					<image class="w32 h32 mr8" src="/static/images/shopping.png" />
+					<image class="w32 h32 mr8" src="https://cdn.his.cdwjyyh.com/images/shopping.png" />
 					<text>{{ orderUser.count || 0 }}人正在去购买</text>
 				</view>
 				<view class="videolist" v-if="liveItem.status == 2">
@@ -133,7 +133,7 @@
 						:disable-progress="true" :enable-play-gesture="true" @waiting="onVideoWaiting" preload="auto"
 						type="application/x-mpegURL"></video>
 					<image v-if="liveItem.status == 1 && !liveItem.previewUrl" class="img"
-						src="/static/images/no_live.png"></image>
+						src="https://cdn.his.cdwjyyh.com/images/no_live.png"></image>
 					<view class="countdown-item mt30 mb30" v-if="liveItem.status == 1 && liveCountdown">
 						开播倒计时
 						<view class="x-f">
@@ -155,7 +155,7 @@
 					<view class="title" v-if="!liveCountdown">主播还在来的路上</view>
 				</view>
 				<view class="trailer-box" v-if="!liveItem">
-					<image class="img" src="/static/images/no_live.png"></image>
+					<image class="img" src="https://cdn.his.cdwjyyh.com/images/no_live.png"></image>
 					<view class="title">暂无直播</view>
 				</view>
 
@@ -222,7 +222,7 @@
 								transform: 'translateZ(0)'
 							}">
 							<view class="icon-bg ml20" @tap="openCart()">
-								<image src="/static/images/shopping.png" class="w58 h58" />
+								<image src="https://cdn.his.cdwjyyh.com/images/shopping.png" class="w58 h58" />
 							</view>
 						</view>
 					</view>
@@ -232,10 +232,10 @@
 			<view class="goods" v-if="isShowGoods" @click="goShop(goodsCard.productId, goodsCard.goodsId)">
 				<view class="top">
 					<view class="left">
-						<image class="w30 h30 mr8" src="/static/images/signal.png" />
+						<image class="w30 h30 mr8" src="https://cdn.his.cdwjyyh.com/images/signal.png" />
 						讲解中
 					</view>
-					<image @click.stop="isShowGoods = false" class="w40 h40 mr10" src="/static/images/del_black.png" />
+					<image @click.stop="isShowGoods = false" class="w40 h40 mr10" src="https://cdn.his.cdwjyyh.com/images/del_black.png" />
 				</view>
 				<image class="photo" :src="goodsCard.imgUrl" />
 				<view class="item">
@@ -250,8 +250,8 @@
 
 			<u-popup :show="isShowLotteryPop && countdown" round="40rpx">
 				<view class="prize-box" style="border-radius: 40rpx; height: fit-content">
-					<image class="nav-img" src="/static/images/red_head.png" mode="widthFix" />
-					<image class="bg-img" src="/static/images/red_bg.png" />
+					<image class="nav-img" src="https://cdn.his.cdwjyyh.com/images/red_head.png" mode="widthFix" />
+					<image class="bg-img" src="https://cdn.his.cdwjyyh.com/images/red_bg.png" />
 					<view class="prize-content">
 						<view class="mr20" style="display: flex; justify-content: flex-end">
 							<view
@@ -261,7 +261,7 @@
 							</view>
 						</view>
 						<view class="column align-center">
-							<image class="w446 h80" src="/static/images/red_title.png" />
+							<image class="w446 h80" src="https://cdn.his.cdwjyyh.com/images/red_title.png" />
 							<view class="fs24 colorf x-f mt30 mb30">
 								开奖倒计时
 								<view class="x-f">
@@ -290,7 +290,7 @@
 				<view class="integral-box">
 					<view class="top">
 						<view class="title">观看视频领芳华币</view>
-						<image class="photo" src="/static/images/integral_bg.png" mode="widthFix" />
+						<image class="photo" src="https://cdn.his.cdwjyyh.com/images/integral_bg.png" mode="widthFix" />
 					</view>
 					<view class="item">
 						<view class="title">{{ integral.msg }}</view>
@@ -301,7 +301,7 @@
 
 			<u-popup :show="isShowRedCard" round="20rpx" mode="center" bgColor="transparent" zIndex="10076">
 				<view class="red-card">
-					<image class="img" src="/static/images/red_card.png" />
+					<image class="img" src="https://cdn.his.cdwjyyh.com/images/red_card.png" />
 					<view class="red-content">
 						<view class="title">{{ redCard.msg }}</view>
 						<view class="txt">直播惊喜芳华币</view>
@@ -313,7 +313,7 @@
 			<!-- 中奖和未中奖 -->
 			<u-popup :show="isShowPrize && havePrize" round="20rpx" mode="center" bgColor="#fff" zIndex="10076">
 				<view class="prize-card" v-if="isCurrentUserWon">
-					<image class="nav-img" src="/static/images/red_head.png" mode="widthFix" />
+					<image class="nav-img" src="https://cdn.his.cdwjyyh.com/images/red_head.png" mode="widthFix" />
 					<view class="title">恭喜您 中奖啦!</view>
 					<view class="prize-content" v-for="(item, index) in prizeInfo || []" :key="index">
 						<view class="item">{{ item.userName }}</view>
@@ -326,7 +326,7 @@
 						填写地址</view>
 				</view>
 				<view class="no-prize-card" v-else>
-					<image class="img" src="/static/images/no-prize.png" mode="widthFix" />
+					<image class="img" src="https://cdn.his.cdwjyyh.com/images/no-prize.png" mode="widthFix" />
 					<view class="tip">很遗憾 您未中奖</view>
 					<view class="button" @click="confirm">确认</view>
 				</view>
@@ -336,8 +336,8 @@
 			<!-- winning -->
 			<u-popup :show="winning" @close="closeWin" round="20rpx" bgColor="#f3f5f9" zIndex="10076">
 				<view class="winning_record">
-					<image class="head_bg" src="/static/images/red_head.png" mode="widthFix"></image>
-					<image class="bg" src="/static/images/red_bg.png"></image>
+					<image class="head_bg" src="https://cdn.his.cdwjyyh.com/images/red_head.png" mode="widthFix"></image>
+					<image class="bg" src="https://cdn.his.cdwjyyh.com/images/red_bg.png"></image>
 					<view class="winning_content">
 						<view class="title">我的中奖记录</view>
 						<view class="row mb40">
@@ -384,20 +384,20 @@
 			<u-popup :show="isMore" @close="closeMore" round="20rpx" bgColor="#f3f5f9" zIndex="10076">
 				<view class="more-block">
 					<view class="item" @click="navgetTo('/pages_shopping/live/integral'), (isMore = false)">
-						<image class="w48 h48" src="/static/images/order.png" />
+						<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/order.png" />
 						<view style="text-align: center">芳华币</view>
 					</view>
 					<view class="item"
 						@click="navgetTo('/pages_shopping/live/storeOrderRefundList?liveId=' + liveId), (isMore = false)">
-						<image class="w48 h48" src="/static/images/after_sales.png" />
+						<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/after_sales.png" />
 						<view style="text-align: center">售后订单</view>
 					</view>
 					<view class="item" @click="goMiniProgram(), (isMore = false)">
-						<image class="w48 h48" src="/static/images/points.png" />
+						<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/points.png" />
 						<view style="text-align: center">兑换好礼</view>
 					</view>
 					<view class="item" @click="getMyLottery(), (isMore = false), (winning = true)">
-						<image class="w48 h48" src="/static/images/health_sel.png" />
+						<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/health_sel.png" />
 						<view style="text-align: center">中奖记录</view>
 					</view>
 				</view>
@@ -409,15 +409,15 @@
 				<view class="shoppop">
 					<view class="shoppop-top">
 						<view class="search-input x-f">
-							<image class="w24 mr16" src="/static/images/search.png" mode="widthFix" />
+							<image class="w24 mr16" src="https://cdn.his.cdwjyyh.com/images/search.png" mode="widthFix" />
 							<input placeholder="请搜索商品" v-model="inputInfo" @input="handleSearchInput" />
 						</view>
 						<view class="search-top" @click="navgetTo('/pages_shopping/live/order')">
-							<image class="w48 h48" src="/static/images/carts.png" />
+							<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/carts.png" />
 							<view style="text-align: center">订单</view>
 						</view>
 						<view class="search-top" @click="(isMore = true), (shopping = false)">
-							<image class="w48 h48" src="/static/images/search2.png" />
+							<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/search2.png" />
 							<view style="text-align: center">更多</view>
 						</view>
 					</view>
@@ -438,9 +438,9 @@
 										<view class="collect-btn">
 											<image v-if="item.isFavorite" @click="onGoodsCollect(item)" class="w36 h36"
 												style="vertical-align: middle;"
-												src="/static/images/collect_select.png" />
+												src="https://cdn.his.cdwjyyh.com/images/collect_select.png" />
 											<image v-else @click="onGoodsCollect(item)" class="w36 h36"
-												style="vertical-align: middle;" src="/static/images/collect.png" />
+												style="vertical-align: middle;" src="https://cdn.his.cdwjyyh.com/images/collect.png" />
 										</view>
 										<view v-if="item.status==1" class="shop-btn"
 											@click="goShop(item.productId,item.goodsId)">去购买 </view>
@@ -485,9 +485,9 @@
 											<view class="collect-btn">
 												<image v-if="item.isFavorite" @click="onGoodsCollect(item)"
 													class="w36 h36" style="vertical-align: middle"
-													src="/static/images/collect_select.png" />
+													src="https://cdn.his.cdwjyyh.com/images/collect_select.png" />
 												<image v-else @click="onGoodsCollect(item)" class="w36 h36"
-													style="vertical-align: middle" src="/static/images/collect.png" />
+													style="vertical-align: middle" src="https://cdn.his.cdwjyyh.com/images/collect.png" />
 											</view>
 											<view v-if="item.status == 1" class="shop-btn"
 												@click="goShop(item.productId, item.goodsId)">去购买</view>
@@ -504,10 +504,10 @@
 			<!-- 优惠券弹窗 -->
 			<view class="coupon-pop" v-if="isShowCoupon">
 				<view class="coupon-block">
-					<image class="bg" src="/static/images/coupon_bg.png" />
-					<image class="nav" src="/static/images/coupon_top.png" />
+					<image class="bg" src="https://cdn.his.cdwjyyh.com/images/coupon_bg.png" />
+					<image class="nav" src="https://cdn.his.cdwjyyh.com/images/coupon_top.png" />
 					<image @click="isShowCoupon = false" class="w40 h40 close" style="z-index: 99"
-						src="/static/images/close1.png" />
+						src="https://cdn.his.cdwjyyh.com/images/close1.png" />
 					<view class="item">
 						<view class="title">{{ couponInfo.couponName }}</view>
 						<view class="price">
@@ -889,7 +889,7 @@
 			return {
 				title: '邀请你来观看直播:' + this.liveItem.liveName,
 				path: '/pages_course/living?companyId=-2&companyUserId=' + this.userData.userId + '&liveId=' + this.liveId,
-				imageUrl: '/static/images/logo.png',
+				imageUrl: 'https://cdn.his.cdwjyyh.com/images/logo.png',
 				success(res) {
 					console.log('分享成功', res);
 				},
@@ -3685,7 +3685,7 @@
 					cmd: 'sendMsg',
 					msg: text,
 					nickName: this.userData.nickname || '未命名',
-					avatar: this.userData.avatar || '/static/images/avatar.png'
+					avatar: this.userData.avatar || 'https://cdn.his.cdwjyyh.com/images/avatar.png'
 				};
 				// 发送socket消息
 				try {

+ 40 - 40
pages_course/livingold.vue

@@ -4,10 +4,10 @@
 			<view class="content">
 				<view style="position: fixed;top: 0;z-index: 5;" class="content-top">
 					<view class="x-f">
-						<image v-if="!scene" @click="goBack" class="w60 h64 mr26" src="/static/images/return3.png" />
+						<image v-if="!scene" @click="goBack" class="w60 h64 mr26" src="https://cdn.his.cdwjyyh.com/images/return3.png" />
 						<view class="align-center"
 							style="padding: 6rpx 8rpx;height: 64rpx;background: rgba(0,0,0,0.5);border-radius: 32rpx;">
-							<u-avatar :src="liveItem.liveImgUrl||'/static/images/avatar.png'" :size="32"></u-avatar>
+							<u-avatar :src="liveItem.liveImgUrl||'https://cdn.his.cdwjyyh.com/images/avatar.png'" :size="32"></u-avatar>
 							<view class="colorf ml10 mr6">
 								<view>{{liveItem.liveName?truncateString(liveItem.liveName,8):"未命名"}}</view>
 							</view>
@@ -34,7 +34,7 @@
 					</view>
 					<view class="side-item">
 						<button open-type="share" class="button button-reset">
-							<image class="image" src="/static/images/weixin.png" mode="widthFix" />
+							<image class="image" src="https://cdn.his.cdwjyyh.com/images/weixin.png" mode="widthFix" />
 						</button>
 						<view>分享</view>
 					</view>
@@ -46,7 +46,7 @@
 						<view class="x-f">
 							<view class="tip">领红包</view>
 							<view class="item">
-								<image class="w70 img" src="/static/images/redbag.png" mode="widthFix" />
+								<image class="w70 img" src="https://cdn.his.cdwjyyh.com/images/redbag.png" mode="widthFix" />
 							</view>
 						</view>
 					</view>
@@ -56,7 +56,7 @@
 						<view class="x-f">
 							<view class="tip">抽奖</view>
 							<view class="item">
-								<image class="w60" src="/static/images/lottery.png" mode="widthFix" />
+								<image class="w60" src="https://cdn.his.cdwjyyh.com/images/lottery.png" mode="widthFix" />
 							</view>
 						</view>
 					</view>
@@ -68,7 +68,7 @@
 						<view class="x-f">
 							<view class="tip">领红包</view>
 							<view class="item">
-								<image class="w70 img" src="/static/images/redbag.png" mode="widthFix" />
+								<image class="w70 img" src="https://cdn.his.cdwjyyh.com/images/redbag.png" mode="widthFix" />
 							</view>
 						</view>
 					</view>
@@ -76,14 +76,14 @@
 						<view class="x-f">
 							<view class="tip">抽奖</view>
 							<view class="item">
-								<image class="w60" src="/static/images/lottery.png" mode="widthFix" />
+								<image class="w60" src="https://cdn.his.cdwjyyh.com/images/lottery.png" mode="widthFix" />
 							</view>
 						</view>
 					</view>
 				</view> -->
 				<view class="shop-prompt f30 x-f"
 					v-if="showPurchasePrompt&&orderUser&&orderUser.count&&liveItem.status==2">
-					<image class="w32 h32 mr8" src="/static/images/shopping.png" />
+					<image class="w32 h32 mr8" src="https://cdn.his.cdwjyyh.com/images/shopping.png" />
 					<text>{{ orderUser.count || 0 }}人正在去购买</text>
 				</view>
 				<view class="videolist" v-if="liveItem.status==2">
@@ -137,7 +137,7 @@
 						:disable-progress="true" :enable-play-gesture="true" @waiting="onVideoWaiting" preload="auto"
 						type="application/x-mpegURL">
 					</video>
-					<image v-if="liveItem.status==1&&!liveItem.previewUrl" class="img" src="/static/images/no_live.png">
+					<image v-if="liveItem.status==1&&!liveItem.previewUrl" class="img" src="https://cdn.his.cdwjyyh.com/images/no_live.png">
 					</image>
 					<view class="countdown-item mt30 mb30" v-if="liveItem.status==1&&liveCountdown">
 						开播倒计时
@@ -160,7 +160,7 @@
 					<view class="title" v-if="!liveCountdown">主播还在来的路上</view>
 				</view>
 				<view class="trailer-box" v-if="!liveItem">
-					<image class="img" src="/static/images/no_live.png">
+					<image class="img" src="https://cdn.his.cdwjyyh.com/images/no_live.png">
 					</image>
 					<view class="title">暂无直播</view>
 				</view>
@@ -211,13 +211,13 @@
 						<view class="justify-between  align-center" v-if="!isFocus">
 							<view :class="[liveItem.showType === 1 ? 'horizontal' : 'vertical','icon-bg','ml20']"
 								@click="isMore=true,shopping=false">
-								<image src="/static/images/more-icon.png" class="w48 h48" />
+								<image src="https://cdn.his.cdwjyyh.com/images/more-icon.png" class="w48 h48" />
 							</view>
 						</view>
 						<view class="justify-between  align-center" v-if="!isFocus">
 							<view :class="[liveItem.showType === 1 ? 'horizontal' : 'vertical','icon-bg','ml20']">
 								<button open-type="share" class="w48 h48 button button-reset">
-									<image class="w48 h48" src="/static/images/weixin.png" mode="widthFix" />
+									<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/weixin.png" mode="widthFix" />
 								</button>
 							</view>
 						</view>
@@ -231,7 +231,7 @@
 						<view class="justify-between  align-center" v-if="!isFocus">
 							<view :class="[liveItem.showType === 1 ? 'horizontal' : 'vertical','icon-bg','ml20']"
 								@tap="openCart()">
-								<image src="/static/images/shopping.png" class="w48 h48" />
+								<image src="https://cdn.his.cdwjyyh.com/images/shopping.png" class="w48 h48" />
 							</view>
 						</view>
 
@@ -242,9 +242,9 @@
 			<view class="goods" v-if="isShowGoods">
 				<view class="top">
 					<view class="left">
-						<image class="w30 h30 mr8" src="/static/images/signal.png" />讲解中
+						<image class="w30 h30 mr8" src="https://cdn.his.cdwjyyh.com/images/signal.png" />讲解中
 					</view>
-					<image @click="isShowGoods=false" class="w40 h40 " src="/static/images/del_black.png" />
+					<image @click="isShowGoods=false" class="w40 h40 " src="https://cdn.his.cdwjyyh.com/images/del_black.png" />
 				</view>
 				<image class="photo" :src="goodsCard.imgUrl" />
 				<view class="item">
@@ -259,8 +259,8 @@
 
 			<u-popup :show="isShowLotteryPop&&countdown" round='40rpx'>
 				<view class="prize-box" style="border-radius: 40rpx;height: fit-content;">
-					<image class="nav-img " src="/static/images/red_head.png" mode="widthFix" />
-					<image class="bg-img " src="/static/images/red_bg.png" />
+					<image class="nav-img " src="https://cdn.his.cdwjyyh.com/images/red_head.png" mode="widthFix" />
+					<image class="bg-img " src="https://cdn.his.cdwjyyh.com/images/red_bg.png" />
 					<view class="prize-content">
 						<view class=" mr20" style="display: flex;justify-content: flex-end;">
 							<view
@@ -270,7 +270,7 @@
 							</view>
 						</view>
 						<view class="column align-center ">
-							<image class="w446 h80" src="/static/images/red_title.png" />
+							<image class="w446 h80" src="https://cdn.his.cdwjyyh.com/images/red_title.png" />
 							<view class="fs24 colorf x-f mt30 mb30">
 								开奖倒计时
 								<view class="x-f">
@@ -302,7 +302,7 @@
 				<view class="integral-box">
 					<view class="top">
 						<view class="title">观看视频领芳华币</view>
-						<image class="photo" src="/static/images/integral_bg.png" mode="widthFix" />
+						<image class="photo" src="https://cdn.his.cdwjyyh.com/images/integral_bg.png" mode="widthFix" />
 					</view>
 					<view class="item">
 						<view class="title ">{{integral.msg}}</view>
@@ -313,7 +313,7 @@
 
 			<u-popup :show="isShowRedCard" round='20rpx' mode="center" bgColor='transparent' zIndex='10076'>
 				<view class="red-card">
-					<image class="img" src="/static/images/red_card.png" />
+					<image class="img" src="https://cdn.his.cdwjyyh.com/images/red_card.png" />
 					<view class="red-content">
 						<view class="title">{{redCard.msg}}</view>
 						<view class="txt ">直播惊喜芳华币</view>
@@ -325,7 +325,7 @@
 			<!-- 中奖和未中奖 -->
 			<u-popup :show="isShowPrize&&havePrize" round='20rpx' mode="center" bgColor='#fff' zIndex='10076'>
 				<view class="prize-card" v-if="isCurrentUserWon">
-					<image class="nav-img " src="/static/images/red_head.png" mode="widthFix" />
+					<image class="nav-img " src="https://cdn.his.cdwjyyh.com/images/red_head.png" mode="widthFix" />
 					<view class="title">恭喜您 中奖啦!</view>
 					<view class="prize-content" v-for="(item,index) in (prizeInfo||[])" :key="index">
 						<view class="item">{{item.userName}}</view>
@@ -337,7 +337,7 @@
 						@click="navgetTo('/pages_shopping/live/confirmCreateOrder&type=win'),confirm()">填写地址</view>
 				</view>
 				<view class="no-prize-card" v-else>
-					<image class="img" src="/static/images/no-prize.png" mode="widthFix" />
+					<image class="img" src="https://cdn.his.cdwjyyh.com/images/no-prize.png" mode="widthFix" />
 					<view class="tip">很遗憾 您未中奖</view>
 					<view class="button" @click="confirm">确认</view>
 				</view>
@@ -348,8 +348,8 @@
 			<!-- winning -->
 			<u-popup :show="winning" @close="closeWin" round='20rpx' bgColor='#f3f5f9' zIndex='10076'>
 				<view class="winning_record">
-					<image class="head_bg" src="/static/images/red_head.png" mode="widthFix"></image>
-					<image class="bg" src="/static/images/red_bg.png"></image>
+					<image class="head_bg" src="https://cdn.his.cdwjyyh.com/images/red_head.png" mode="widthFix"></image>
+					<image class="bg" src="https://cdn.his.cdwjyyh.com/images/red_bg.png"></image>
 					<view class="winning_content">
 						<view class="title">我的中奖记录</view>
 						<view class="row mb40">
@@ -393,20 +393,20 @@
 			<u-popup :show="isMore" @close="closeMore" round='20rpx' bgColor='#f3f5f9' zIndex='10076'>
 				<view class="more-block">
 					<view class="item" @click="navgetTo('/pages_shopping/live/integral'),isMore=false">
-						<image class="w48 h48" src="/static/images/order.png" />
+						<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/order.png" />
 						<view style="text-align: center;">芳华币</view>
 					</view>
 					<view class=" item"
 						@click="navgetTo('/pages_shopping/live/storeOrderRefundList?liveId='+liveId),isMore=false">
-						<image class="w48 h48" src="/static/images/after_sales.png" />
+						<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/after_sales.png" />
 						<view style="text-align: center;">售后订单</view>
 					</view>
 					<view class=" item" @click="goMiniProgram(),isMore=false">
-						<image class="w48 h48" src="/static/images/points.png" />
+						<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/points.png" />
 						<view style="text-align: center;">兑换好礼</view>
 					</view>
 					<view class="item" @click="getMyLottery(),isMore=false,winning=true">
-						<image class="w48 h48" src="/static/images/health_sel.png" />
+						<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/health_sel.png" />
 						<view style="text-align: center;">中奖记录</view>
 					</view>
 				</view>
@@ -418,15 +418,15 @@
 				<view class="shoppop">
 					<view class="shoppop-top">
 						<view class="search-input x-f">
-							<image class="w24 mr16" src="/static/images/search.png" mode="widthFix" />
+							<image class="w24 mr16" src="https://cdn.his.cdwjyyh.com/images/search.png" mode="widthFix" />
 							<input placeholder="请搜索商品" v-model="inputInfo" @input="handleSearchInput" />
 						</view>
 						<view class=" search-top" @click="navgetTo('/pages_shopping/live/order')">
-							<image class="w48 h48" src="/static/images/carts.png" />
+							<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/carts.png" />
 							<view style="text-align: center;">订单</view>
 						</view>
 						<!-- <view class="search-top" @click="isMore=true,shopping=false">
-							<image class="w48 h48" src="/static/images/search2.png" />
+							<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/search2.png" />
 							<view style="text-align: center;">更多</view>
 						</view> -->
 					</view>
@@ -447,9 +447,9 @@
 										<view class="collect-btn">
 											<image v-if="item.isFavorite" @click="onGoodsCollect(item)" class="w36 h36"
 												style="vertical-align: middle;"
-												src="/static/images/collect_select.png" />
+												src="https://cdn.his.cdwjyyh.com/images/collect_select.png" />
 											<image v-else @click="onGoodsCollect(item)" class="w36 h36"
-												style="vertical-align: middle;" src="/static/images/collect.png" />
+												style="vertical-align: middle;" src="https://cdn.his.cdwjyyh.com/images/collect.png" />
 										</view>
 										<view v-if="item.status==1" class="shop-btn"
 											@click="goShop(item.productId,item.goodsId)">去购买 </view>
@@ -490,9 +490,9 @@
 											<view class="collect-btn">
 												<image v-if="item.isFavorite" @click="onGoodsCollect(item)"
 													class="w36 h36" style="vertical-align: middle;"
-													src="/static/images/collect_select.png" />
+													src="https://cdn.his.cdwjyyh.com/images/collect_select.png" />
 												<image v-else @click="onGoodsCollect(item)" class="w36 h36"
-													style="vertical-align: middle;" src="/static/images/collect.png" />
+													style="vertical-align: middle;" src="https://cdn.his.cdwjyyh.com/images/collect.png" />
 											</view>
 											<view v-if="item.status==1" class="shop-btn"
 												@click="goShop(item.productId,item.goodsId)">去购买 </view>
@@ -510,10 +510,10 @@
 			<!-- 优惠券弹窗 -->
 			<view class="coupon-pop" v-if="isShowCoupon">
 				<view class="coupon-block">
-					<image class="bg" src="/static/images/coupon_bg.png" />
-					<image class="nav" src="/static/images/coupon_top.png" />
+					<image class="bg" src="https://cdn.his.cdwjyyh.com/images/coupon_bg.png" />
+					<image class="nav" src="https://cdn.his.cdwjyyh.com/images/coupon_top.png" />
 					<image @click="isShowCoupon=false" class="w40 h40 close" style="z-index: 99;"
-						src="/static/images/close1.png" />
+						src="https://cdn.his.cdwjyyh.com/images/close1.png" />
 					<view class="item">
 						<view class="title">{{couponInfo.couponName}}</view>
 						<view class="price">¥<text class="bold">{{couponInfo.couponPrice}}</text></view>
@@ -830,7 +830,7 @@
 			return {
 				title: '邀请你来观看直播:' + this.liveItem.liveName,
 				path: '/pages_course/living?companyId=-2&companyUserId=' + this.userData.userId + '&liveId=' + this.liveId,
-				imageUrl: '/static/images/logo.png',
+				imageUrl: 'https://cdn.his.cdwjyyh.com/images/logo.png',
 				success(res) {
 					console.log("分享成功", res);
 				},
@@ -2778,7 +2778,7 @@
 					cmd: "sendMsg",
 					msg: text,
 					nickName: this.userData.nickname || '未命名',
-					avatar: this.userData.avatar || '/static/images/avatar.png'
+					avatar: this.userData.avatar || 'https://cdn.his.cdwjyyh.com/images/avatar.png'
 				};
 				// 发送socket消息
 				try {

+ 36 - 36
pages_course/livingweek.vue

@@ -4,9 +4,9 @@
 			<view class="content">
 				<view style="position: fixed; top: 0; z-index: 5" class="content-top">
 					<view class="x-f">
-						<image v-if="!scene" @click="goBack" class="w60 h64" src="/static/images/return3.png" />
+						<image v-if="!scene" @click="goBack" class="w60 h64" src="https://cdn.his.cdwjyyh.com/images/return3.png" />
 						<view class="align-center" style="padding: 6rpx 8rpx; height: 64rpx; background: rgba(0, 0, 0, 0.5); border-radius: 32rpx">
-							<u-avatar :src="liveItem.liveImgUrl || '/static/images/avatar.png'" :size="32"></u-avatar>
+							<u-avatar :src="liveItem.liveImgUrl || 'https://cdn.his.cdwjyyh.com/images/avatar.png'" :size="32"></u-avatar>
 							<view class="colorf ml10 mr6">
 								<view>{{ liveItem.liveName ? truncateString(liveItem.liveName, 8) : '未命名' }}</view>
 							</view>
@@ -30,7 +30,7 @@
 					</view>
 					<view class="side-item">
 						<button open-type="share" class="button button-reset">
-							<image class="image" src="/static/images/weixin.png" mode="widthFix" />
+							<image class="image" src="https://cdn.his.cdwjyyh.com/images/weixin.png" mode="widthFix" />
 						</button>
 						<view>分享</view>
 					</view>
@@ -41,7 +41,7 @@
 						<view class="x-f">
 							<view class="tip">领红包</view>
 							<view class="item">
-								<image class="w70 img" src="/static/images/redbag.png" mode="widthFix" />
+								<image class="w70 img" src="https://cdn.his.cdwjyyh.com/images/redbag.png" mode="widthFix" />
 							</view>
 						</view>
 					</view>
@@ -49,13 +49,13 @@
 						<view class="x-f">
 							<view class="tip">抽奖</view>
 							<view class="item">
-								<image class="w60" src="/static/images/lottery.png" mode="widthFix" />
+								<image class="w60" src="https://cdn.his.cdwjyyh.com/images/lottery.png" mode="widthFix" />
 							</view>
 						</view>
 					</view>
 				</view>
 				<view class="shop-prompt f30 x-f" v-if="showPurchasePrompt && orderUser && orderUser.count && liveItem.status == 2">
-					<image class="w32 h32 mr8" src="/static/images/shopping.png" />
+					<image class="w32 h32 mr8" src="https://cdn.his.cdwjyyh.com/images/shopping.png" />
 					<text>{{ orderUser.count || 0 }}人正在去购买</text>
 				</view>
 				<view class="videolist" v-if="liveItem.status == 2">
@@ -171,7 +171,7 @@
 						preload="auto"
 						type="application/x-mpegURL"
 					></video>
-					<image v-if="liveItem.status == 1 && !liveItem.previewUrl" class="img" src="/static/images/no_live.png"></image>
+					<image v-if="liveItem.status == 1 && !liveItem.previewUrl" class="img" src="https://cdn.his.cdwjyyh.com/images/no_live.png"></image>
 					<view class="countdown-item mt30 mb30" v-if="liveItem.status == 1 && liveCountdown">
 						开播倒计时
 						<view class="x-f">
@@ -193,7 +193,7 @@
 					<view class="title" v-if="!liveCountdown">主播还在来的路上</view>
 				</view>
 				<view class="trailer-box" v-if="!liveItem">
-					<image class="img" src="/static/images/no_live.png"></image>
+					<image class="img" src="https://cdn.his.cdwjyyh.com/images/no_live.png"></image>
 					<view class="title">暂无直播</view>
 				</view>
 
@@ -277,7 +277,7 @@
 						</view>
 						<view class="justify-between mr15 align-center" v-if="!isFocus">
 							<view class="icon-bg ml20" @tap="openCart()">
-								<image src="/static/images/shopping.png" class="w58 h58" />
+								<image src="https://cdn.his.cdwjyyh.com/images/shopping.png" class="w58 h58" />
 							</view>
 						</view>
 					</view>
@@ -287,10 +287,10 @@
 			<view class="goods" v-if="isShowGoods">
 				<view class="top">
 					<view class="left">
-						<image class="w30 h30 mr8" src="/static/images/signal.png" />
+						<image class="w30 h30 mr8" src="https://cdn.his.cdwjyyh.com/images/signal.png" />
 						讲解中
 					</view>
-					<image @click="isShowGoods = false" class="w40 h40" src="/static/images/del_black.png" />
+					<image @click="isShowGoods = false" class="w40 h40" src="https://cdn.his.cdwjyyh.com/images/del_black.png" />
 				</view>
 				<image class="photo" :src="goodsCard.imgUrl" />
 				<view class="item" @click="goShop(goodsCard.productId, goodsCard.goodsId)">
@@ -305,8 +305,8 @@
 
 			<u-popup :show="isShowLotteryPop && countdown" round="40rpx">
 				<view class="prize-box" style="border-radius: 40rpx; height: fit-content">
-					<image class="nav-img" src="/static/images/red_head.png" mode="widthFix" />
-					<image class="bg-img" src="/static/images/red_bg.png" />
+					<image class="nav-img" src="https://cdn.his.cdwjyyh.com/images/red_head.png" mode="widthFix" />
+					<image class="bg-img" src="https://cdn.his.cdwjyyh.com/images/red_bg.png" />
 					<view class="prize-content">
 						<view class="mr20" style="display: flex; justify-content: flex-end">
 							<view style="width: 80rpx; height: 80rpx; display: flex; justify-content: center; align-items: center" @click="isShowLotteryPop = false">
@@ -314,7 +314,7 @@
 							</view>
 						</view>
 						<view class="column align-center">
-							<image class="w446 h80" src="/static/images/red_title.png" />
+							<image class="w446 h80" src="https://cdn.his.cdwjyyh.com/images/red_title.png" />
 							<view class="fs24 colorf x-f mt30 mb30">
 								开奖倒计时
 								<view class="x-f">
@@ -343,7 +343,7 @@
 				<view class="integral-box">
 					<view class="top">
 						<view class="title">观看视频领芳华币</view>
-						<image class="photo" src="/static/images/integral_bg.png" mode="widthFix" />
+						<image class="photo" src="https://cdn.his.cdwjyyh.com/images/integral_bg.png" mode="widthFix" />
 					</view>
 					<view class="item">
 						<view class="title">{{ integral.msg }}</view>
@@ -354,7 +354,7 @@
 
 			<u-popup :show="isShowRedCard" round="20rpx" mode="center" bgColor="transparent" zIndex="10076">
 				<view class="red-card">
-					<image class="img" src="/static/images/red_card.png" />
+					<image class="img" src="https://cdn.his.cdwjyyh.com/images/red_card.png" />
 					<view class="red-content">
 						<view class="title">{{ redCard.msg }}</view>
 						<view class="txt">直播惊喜芳华币</view>
@@ -366,7 +366,7 @@
 			<!-- 中奖和未中奖 -->
 			<u-popup :show="isShowPrize && havePrize" round="20rpx" mode="center" bgColor="#fff" zIndex="10076">
 				<view class="prize-card" v-if="isCurrentUserWon">
-					<image class="nav-img" src="/static/images/red_head.png" mode="widthFix" />
+					<image class="nav-img" src="https://cdn.his.cdwjyyh.com/images/red_head.png" mode="widthFix" />
 					<view class="title">恭喜您 中奖啦!</view>
 					<view class="prize-content" v-for="(item, index) in prizeInfo || []" :key="index">
 						<view class="item">{{ item.userName }}</view>
@@ -377,7 +377,7 @@
 					<view class="button" @click="confirm">确认</view>
 				</view>
 				<view class="no-prize-card" v-else>
-					<image class="img" src="/static/images/no-prize.png" mode="widthFix" />
+					<image class="img" src="https://cdn.his.cdwjyyh.com/images/no-prize.png" mode="widthFix" />
 					<view class="tip">很遗憾 您未中奖</view>
 					<view class="button" @click="confirm">确认</view>
 				</view>
@@ -387,8 +387,8 @@
 			<!-- winning -->
 			<u-popup :show="winning" @close="closeWin" round="20rpx" bgColor="#f3f5f9" zIndex="10076">
 				<view class="winning_record">
-					<image class="head_bg" src="/static/images/red_head.png" mode="widthFix"></image>
-					<image class="bg" src="/static/images/red_bg.png"></image>
+					<image class="head_bg" src="https://cdn.his.cdwjyyh.com/images/red_head.png" mode="widthFix"></image>
+					<image class="bg" src="https://cdn.his.cdwjyyh.com/images/red_bg.png"></image>
 					<view class="winning_content">
 						<view class="title">我的中奖记录</view>
 						<view class="row mb40">
@@ -435,19 +435,19 @@
 			<u-popup :show="isMore" @close="closeMore" round="20rpx" bgColor="#f3f5f9" zIndex="10076">
 				<view class="more-block">
 					<view class="item" @click="navgetTo('/pages_shopping/live/integral'), (isMore = false)">
-						<image class="w48 h48" src="/static/images/order.png" />
+						<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/order.png" />
 						<view style="text-align: center">芳华币</view>
 					</view>
 					<view class="item" @click="navgetTo('/pages_shopping/live/storeOrderRefundList?liveId=' + liveId), (isMore = false)">
-						<image class="w48 h48" src="/static/images/after_sales.png" />
+						<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/after_sales.png" />
 						<view style="text-align: center">售后订单</view>
 					</view>
 					<view class="item" @click="goMiniProgram(), (isMore = false)">
-						<image class="w48 h48" src="/static/images/points.png" />
+						<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/points.png" />
 						<view style="text-align: center">兑换好礼</view>
 					</view>
 					<view class="item" @click="getMyLottery(), (isMore = false), (winning = true)">
-						<image class="w48 h48" src="/static/images/health_sel.png" />
+						<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/health_sel.png" />
 						<view style="text-align: center">中奖记录</view>
 					</view>
 				</view>
@@ -459,15 +459,15 @@
 				<view class="shoppop">
 					<view class="shoppop-top">
 						<view class="search-input x-f">
-							<image class="w24 mr16" src="/static/images/search.png" mode="widthFix" />
+							<image class="w24 mr16" src="https://cdn.his.cdwjyyh.com/images/search.png" mode="widthFix" />
 							<input placeholder="请搜索商品" v-model="inputInfo" @input="handleSearchInput" />
 						</view>
 						<view class="search-top" @click="navgetTo('/pages_shopping/live/order')">
-							<image class="w48 h48" src="/static/images/carts.png" />
+							<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/carts.png" />
 							<view style="text-align: center">订单</view>
 						</view>
 						<view class="search-top" @click="(isMore = true), (shopping = false)">
-							<image class="w48 h48" src="/static/images/search2.png" />
+							<image class="w48 h48" src="https://cdn.his.cdwjyyh.com/images/search2.png" />
 							<view style="text-align: center">更多</view>
 						</view>
 					</view>
@@ -488,9 +488,9 @@
 										<view class="collect-btn">
 											<image v-if="item.isFavorite" @click="onGoodsCollect(item)" class="w36 h36"
 												style="vertical-align: middle;"
-												src="/static/images/collect_select.png" />
+												src="https://cdn.his.cdwjyyh.com/images/collect_select.png" />
 											<image v-else @click="onGoodsCollect(item)" class="w36 h36"
-												style="vertical-align: middle;" src="/static/images/collect.png" />
+												style="vertical-align: middle;" src="https://cdn.his.cdwjyyh.com/images/collect.png" />
 										</view>
 										<view v-if="item.status==1" class="shop-btn"
 											@click="goShop(item.productId,item.goodsId)">去购买 </view>
@@ -537,9 +537,9 @@
 													@click="onGoodsCollect(item)"
 													class="w36 h36"
 													style="vertical-align: middle"
-													src="/static/images/collect_select.png"
+													src="https://cdn.his.cdwjyyh.com/images/collect_select.png"
 												/>
-												<image v-else @click="onGoodsCollect(item)" class="w36 h36" style="vertical-align: middle" src="/static/images/collect.png" />
+												<image v-else @click="onGoodsCollect(item)" class="w36 h36" style="vertical-align: middle" src="https://cdn.his.cdwjyyh.com/images/collect.png" />
 											</view>
 											<view v-if="item.status == 1" class="shop-btn" @click="goShop(item.productId, item.goodsId)">去购买</view>
 											<view v-else-if="item.status == 0" class="shop-btn">已下架</view>
@@ -555,9 +555,9 @@
 			<!-- 优惠券弹窗 -->
 			<view class="coupon-pop" v-if="isShowCoupon">
 				<view class="coupon-block">
-					<image class="bg" src="/static/images/coupon_bg.png" />
-					<image class="nav" src="/static/images/coupon_top.png" />
-					<image @click="isShowCoupon = false" class="w40 h40 close" style="z-index: 99" src="/static/images/close1.png" />
+					<image class="bg" src="https://cdn.his.cdwjyyh.com/images/coupon_bg.png" />
+					<image class="nav" src="https://cdn.his.cdwjyyh.com/images/coupon_top.png" />
+					<image @click="isShowCoupon = false" class="w40 h40 close" style="z-index: 99" src="https://cdn.his.cdwjyyh.com/images/close1.png" />
 					<view class="item">
 						<view class="title">{{ couponInfo.couponName }}</view>
 						<view class="price">
@@ -883,7 +883,7 @@ export default {
 		return {
 			title: '邀请你来观看直播:' + this.liveItem.liveName,
 			path: '/pages_course/living?companyId=-2&companyUserId=' + this.userData.userId + '&liveId=' + this.liveId,
-			imageUrl: '/static/images/logo.png',
+			imageUrl: 'https://cdn.his.cdwjyyh.com/images/logo.png',
 			success(res) {
 				console.log('分享成功', res);
 			},
@@ -3358,7 +3358,7 @@ export default {
 				cmd: 'sendMsg',
 				msg: text,
 				nickName: this.userData.nickname || '未命名',
-				avatar: this.userData.avatar || '/static/images/avatar.png'
+				avatar: this.userData.avatar || 'https://cdn.his.cdwjyyh.com/images/avatar.png'
 			};
 			// 发送socket消息
 			try {

+ 85 - 40
pages_shopping/live/article.vue

@@ -3,16 +3,16 @@
 		<view class="status_bar" :style="{ height: statusBarHeight }"></view>
 		<view class="top-block">
 			<view class="left">
-				<image class="w64 h64 " src="/static/images/back_black.png"></image>
-				<image class="head" :src="lifeDetail.userInfo.avatar" @click="gotoExpertPage"></image>
+				<image class="w64 h64 " src="https://cdn.his.cdwjyyh.com/images/back_black.png" @click="goBack"></image>
+				<image class="head" :src="lifeDetail.userInfo.avatar||'https://cdn.his.cdwjyyh.com/images/avatar.png'" @click="gotoExpertPage"></image>
 				<text class="name">{{lifeDetail.userInfo.nickname}}</text>
 			</view>
 			<view class="right">
 				<view class="icon-bg" @click="handleShareClick">
-						<image class="w40 h40" src="/static/images/share-icon.png"></image>
+						<image class="w40 h40" src="https://cdn.his.cdwjyyh.com/images/share-icon.png"></image>
 					</view>
 				<view class="icon-bg">
-					<image class="w40 h40" src="/static/images/shopping_car.png"></image>
+					<image class="w40 h40" src="https://cdn.his.cdwjyyh.com/images/shopping_car.png"></image>
 				</view>
 			</view>
 		</view>
@@ -28,11 +28,11 @@
 				</view>
 				<view class="card">
 					<view class="card-item">
-						<image class="card-icon" src="/static/images/jinbang_font.png"></image>
+						<image class="card-icon" src="https://cdn.his.cdwjyyh.com/images/jinbang_font.png"></image>
 						<text class="ranking">24小时热门榜</text>
 						<text class="top">TOP.3</text>
 					</view>
-					<image class="go" src="/static/images/jb_arrow_right_icon.png"></image>
+					<image class="go" src="https://cdn.his.cdwjyyh.com/images/jb_arrow_right_icon.png"></image>
 				</view>
 				<view class="place">{{date}} {{lifeDetail.userInfo.addrIp}}</view>
 			</view>
@@ -42,15 +42,15 @@
 		<view class="comment">
 			<view class="comment-num">
 				<text>共 {{lifeDetail.commentsCount}}条评论</text>
-				<image class="w24 h24 ml10" src="/static/images/comment-icon.png"></image>
+				<image class="w24 h24 ml10" src="https://cdn.his.cdwjyyh.com/images/comment-icon.png"></image>
 			</view>
 			<!--可评论输入框 -->
 			<view class="my-input">
-				<image class="head" src="/static/images/img.png"></image>
+				<image class="head" :src="userData.avatar||'https://cdn.his.cdwjyyh.com/images/avatar.png'"></image>
 				<view class="input-item">
 					<input class="input" placeholder="说点什么..." v-model="commentInput" 
 						@focus="showKeyboardInput = true" />
-					<image class="w40 h40" src="/static/images/emoticon_icon.png" @click="showEmojiPicker = true"></image>
+					<image class="w40 h40" src="https://cdn.his.cdwjyyh.com/images/emoticon_icon.png" @click="showEmojiPicker = true"></image>
 				</view>
 			</view>
 
@@ -59,7 +59,7 @@
 			<view class="message">
 				<view v-for="comment in rootComments" :key="comment.commentId" class="message-item">
 					<view class="left">
-						<image class="head" :src="comment.userInfo.avatar"></image>
+						<image class="head" :src="comment.userInfo.avatar||'https://cdn.his.cdwjyyh.com/images/avatar.png'"></image>
 						<view class="column">
 							<view class="chat">
 								<view class="name">
@@ -69,14 +69,14 @@
 								<view class="flex-wrap">
 									<view class="txt">{{comment.content}}</view>
 									<view class="info">
-												<text class="time">{{comment.createAt}}</text>
+												<text class="time">{{calculateTimeDiff(comment.createAt)}}</text>
 												<view class="reply" @click="handleReply(comment)">回复</view>
 											</view>
 								</view>
 							</view>
 							<!-- 二级评论 -->
 							<view v-if="comment.children && comment.children.length > 0" class="left mt26">
-								<image class="head-little" :src="comment.children[0].userInfo.avatar"></image>
+								<image class="head-little" :src="comment.children[0].userInfo.avatar||'https://cdn.his.cdwjyyh.com/images/avatar.png'"></image>
 								<view class="chat">
 									<view class="name">
 										<text>{{comment.children[0].userInfo.nickname}}</text>
@@ -85,7 +85,7 @@
 									<view class="flex-wrap">
 										<view class="txt">{{comment.children[0].content}}</view>
 										<view class="info">
-												<text class="time">{{comment.children[0].createAt}}</text>
+												<text class="time">{{calculateTimeDiff(comment.children[0].createAt)}}</text>
 												<view class="reply" @click="handleReply(comment.children[0])">回复</view>
 											</view>
 									</view>
@@ -94,7 +94,7 @@
 							<!-- 展开的二级评论 -->
 							<view v-if="expandedComments[comment.commentId] && comment.children && comment.children.length > 1" class="mt26">
 								<view v-for="(child, index) in comment.children.slice(1)" :key="child.commentId" class="left mt26">
-									<image class="head-little" :src="child.userInfo.avatar"></image>
+									<image class="head-little" :src="child.userInfo.avatar||'https://cdn.his.cdwjyyh.com/images/avatar.png'"></image>
 									<view class="chat">
 										<view class="name">
 											<text>{{child.userInfo.nickname}}</text>
@@ -103,7 +103,7 @@
 										<view class="flex-wrap">
 											<view class="txt">{{child.content}}</view>
 											<view class="info">
-												<text class="time">{{child.createAt}}</text>
+												<text class="time">{{calculateTimeDiff(child.createAt)}}</text>
 												<view class="reply" @click="handleReply(child)">回复</view>
 											</view>
 										</view>
@@ -116,9 +116,9 @@
 						</view>
 					</view>
 					<view class="right">
-								<image v-if="comment.isLiked" class="w40 h40" src="/static/images/like_red_icon.png" @click="toggleLikeComments(comment.commentId)">
+								<image v-if="comment.isLiked" class="w40 h40" src="https://cdn.his.cdwjyyh.com/images/like_red_icon.png" @click="toggleLikeComments(comment.commentId)">
 								</image>
-								<image v-else class="w40 h40" src="/static/images/like_icon.png" @click="toggleLikeComments(comment.commentId,!comment.isLiked)"></image>
+								<image v-else class="w40 h40" src="https://cdn.his.cdwjyyh.com/images/like_icon.png" @click="toggleLikeComments(comment.commentId,!comment.isLiked)"></image>
 								<view class="">{{comment.likeCount}}</view>
 							</view>
 				</view>
@@ -134,17 +134,17 @@
 			</view>
 			<view class="icon-container">
 				<view class="icon-item" @click="handleContentLike">
-					<image v-if="isLiked" class="icon" src="/static/images/like_red_icon.png" />
-					<image v-else class="icon" src="/static/images/like_icon.png" />
+					<image v-if="isLiked" class="icon" src="https://cdn.his.cdwjyyh.com/images/like_red_icon.png" />
+					<image v-else class="icon" src="https://cdn.his.cdwjyyh.com/images/like_icon.png" />
 					<text>{{lifeDetail.likeCount}}</text>
 				</view>
 				<view class="icon-item" @click="handleContentCollection">
-					<image v-if="isCollected" class="icon" src="/static/images/collection_yellow.png" />
-					<image v-else class="icon" src="/static/images/collection.png" />
+					<image v-if="isCollected" class="icon" src="https://cdn.his.cdwjyyh.com/images/collection_yellow.png" />
+					<image v-else class="icon" src="https://cdn.his.cdwjyyh.com/images/collection.png" />
 					<text>{{lifeDetail.collectionCount}}</text>
 				</view>
 				<view class="icon-item" @click="handleCommentClick">
-					<image class="icon" src="/static/images/comment.png" />
+					<image class="icon" src="https://cdn.his.cdwjyyh.com/images/comment.png" />
 					<text>{{lifeDetail.commentsCount}}</text>
 				</view>
 			</view>
@@ -155,7 +155,7 @@
 			<view class="keyboard-input-item">
 				<input placeholder="说点什么..." v-model="keyboardInput" placeholder-style="color:#999999;" 
 					class="keyboard-input" />
-				<image class="w40 h40" src="/static/images/emoticon_icon.png" @click="showEmojiPicker = true"></image>
+				<image class="w40 h40" src="https://cdn.his.cdwjyyh.com/images/emoticon_icon.png" @click="showEmojiPicker = true"></image>
 				<view class="send-btn" @click="sendKeyboardComment">发送</view>
 			</view>
 		</view>
@@ -172,7 +172,7 @@
 
 <script>
 import Task from '@/components/task.vue'
-import EmojiPicker from './components/emoji-picker.vue'
+import EmojiPicker from '@/components/emoji-picker.vue'
 import {
 	lifeDetail,
 	listRootComments, // 一级评论列表
@@ -183,7 +183,9 @@ import {
 	toggleCollection,//内容收藏/取消收藏点赞
 	postComment //发表评论
 } from '@/api/life.js'
-
+import {
+getUserInfo
+} from '@/api/user.js'
 // 点赞/取消点赞常量
 const LIKE = 'LIKE';
 const UNLIKE = 'UNLIKE';
@@ -194,6 +196,7 @@ export default {
 	},
 	data() {
 		return {
+			userData:{},
 			isCollected:false,
 			isLiked:false,
 			date:null,
@@ -228,12 +231,30 @@ export default {
 		this.resourceId = option.resourceId;
 		this.getLifeDetail();
 		this.getListRootComments();
-		this.getListSubComments();
+		const userData = uni.getStorageSync('userData');
+		if(userData){
+			this.userData=userData;
+		}else{
+			this.getUserInfo();
+		}
+
 	},
 	onUnload() {
 
 	},
 	methods: {
+		getUserInfo(){
+			getUserInfo().then(res => {
+				if (res.code == 200) {
+					this.userInfo=res.data;
+				} else {
+					uni.showToast({
+						title: res.msg,
+						icon: 'none'
+					});
+				}
+			}).catch(err => { });
+		},
 		// 内容详情
 		getLifeDetail() {
 			if (!this.resourceId) return;
@@ -282,16 +303,20 @@ export default {
 			}).catch(err => { });
 		},
 		// 二级评论列表
-		getListSubComments() {
-			if (!this.resourceId) return;
+		getListSubComments(rootId) {
+			if (!rootId) return;
 			let data = {
 				page: 1,
 				pageSize: 10,
-				resourceId: this.resourceId
+				rootId: rootId
 			}
 			listSubComments(data).then(res => {
 				if (res.code == 200) {
-					this.subComments = res.data.list;
+					// 查找对应的一级评论并更新其子评论
+					const rootComment = this.rootComments.find(comment => comment.commentId === rootId);
+					if (rootComment) {
+						rootComment.children = res.data.list;
+					}
 					console.log("二级评论列表", res)
 				} else {
 					uni.showToast({
@@ -369,11 +394,13 @@ export default {
 		handleShareClick() {
 			this.share();
 		},
-		// 跳转到专家页面
+		// 跳转到达人页面
 		gotoExpertPage() {
-			if (this.lifeDetail && this.lifeDetail.userInfo && this.lifeDetail.userInfo.userId) {
+			console.log("跳转达人页面", this.lifeDetail)
+			if (this.lifeDetail.userInfo.expertId) {
+			console.log("跳转达人页面", this.lifeDetail)
 				uni.navigateTo({
-					url: '/pages_shopping/live/expert?expertId=' + this.lifeDetail.userInfo.userId
+					url: '/pages_shopping/live/expert?expertId=' + this.lifeDetail.userInfo.expertId
 				});
 			}
 		},
@@ -485,6 +512,7 @@ export default {
 		},
 		// 处理回复按钮点击事件
 		handleReply(comment) {
+			console.log("点击回复",comment)
 			this.parentId = comment.commentId;
 			this.showKeyboardInput = true;
 			// 自动聚焦到键盘输入框
@@ -504,13 +532,12 @@ export default {
 			}
 		},
 		// 获取二级评论列表
-		getListSubComments(commentId) {
-			if (!commentId || !this.resourceId) return;
+		getListSubComments(rootId) {
+			if (!rootId) return;
 			let data = {
 				page: 1,
 				pageSize: 10,
-				resourceId: this.resourceId,
-				commentId: commentId
+				rootId: rootId
 			}
 			listSubComments(data).then(res => {
 				if (res.code == 200) {
@@ -535,7 +562,7 @@ export default {
 			}
 			let data = {
 				content: this.keyboardInput,
-				parentId: this.parentId, //父评论ID(回复必填,一级不填)
+				parentId: this.parentId || 0, //父评论ID(回复必填,一级不填,没有传0)
 				resourceId: this.resourceId //业务ID (文章ID / 视频ID )
 			}
 			postComment(data).then(res => {
@@ -590,6 +617,24 @@ export default {
 				return `${years}年前`;
 			}
 		},
+
+		// 返回上一页,无则返回首页
+		goBack() {
+			// 获取页面栈
+			const pages = getCurrentPages();
+			// 如果页面栈长度大于1,说明有上一页
+			if (pages.length > 1) {
+				// 返回上一页
+				uni.navigateBack({
+					delta: 1
+				});
+			} else {
+				// 否则返回首页
+				uni.reLaunch({
+					url: '/pages/home/index'
+				});
+			}
+		},
 	},
 }
 </script>
@@ -736,8 +781,8 @@ export default {
 	}
 
 	.line {
-		margin: 32rpx 0;
-		width: 100%;
+		margin: 32rpx 24rpx;
+		width:calc(100% - 48rpx) ;
 		height: 0rpx;
 		border: 1rpx solid #EEEEEE;
 	}

+ 1 - 1
pages_shopping/live/complaint.vue

@@ -3,7 +3,7 @@
 		<view class="mt60 p34">
 			<view class="color#{$5} ">投诉对象</view>
 			<view class="align-center mt30 mb50">
-				<image class="w100 h100 mr30" style="border-radius: 50%;" src="/static/images/logo.png"></image>
+				<image class="w100 h100 mr30" style="border-radius: 50%;" src="https://cdn.his.cdwjyyh.com/images/logo.png"></image>
 				<text>芳华悦选</text>
 			</view>
 		</view>

+ 1 - 1
pages_shopping/live/complaintList.vue

@@ -4,7 +4,7 @@
 		<view class="list">
 			<view class="item" @click="toComplaint(item)" v-for="(item,index) in list" :key="index">
 				<view>{{item}}</view>
-				<image class="w32 h32" src="/static/images/arrow4.png" mode="widthFix"></image>
+				<image class="w32 h32" src="https://cdn.his.cdwjyyh.com/images/arrow4.png" mode="widthFix"></image>
 			</view>
 
 		</view>

+ 0 - 113
pages_shopping/live/components/emoji-picker.vue

@@ -1,113 +0,0 @@
-<template>
-	<view class="emoji-picker">
-		<view class="emoji-header">
-			<text class="title">表情</text>
-			<text class="close" @click="handleClose">关闭</text>
-		</view>
-		<view class="emoji-list">
-			<view 
-				v-for="(emoji, index) in emojiList" 
-				:key="index"
-				class="emoji-item"
-				@click="handleEmojiClick(emoji)"
-			>
-				<text class="emoji">{{ emoji }}</text>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-export default {
-	name: 'EmojiPicker',
-	props: {
-		visible: {
-			type: Boolean,
-			default: false
-		}
-	},
-	data() {
-		return {
-			// 表情列表
-			emojiList: [
-				'😀', '😃', '😄', '😁', '😆', '😅', '😂', '🤣',
-				'😊', '😇', '🙂', '🙃', '😉', '😌', '😍', '🥰',
-				'😘', '😗', '😙', '😚', '😋', '😛', '😝', '😜',
-				'🤪', '🤨', '🧐', '🤓', '😎', '🤩', '🥳', '😏',
-				'😒', '😞', '😔', '😟', '😕', '🙁', '☹️', '😣',
-				'😖', '😫', '😩', '🥺', '😢', '😭', '😤', '😠',
-				'😡', '🤬', '🤯', '😳', '🥵', '🥶', '😱', '😨',
-				'😰', '😥', '😓', '🤗', '🤔', '🤭', '🤫', '🤥',
-				'😶', '😐', '😑', '😬', '🙄', '😯', '😦', '😧',
-				'😮', '😲', '🥱', '😴', '🤤', '😪', '😵', '🤐',
-				'🥴', '🤢', '🤮', '🤧', '😷', '🤒', '🤕', '🤖'
-			]
-		}
-	},
-	methods: {
-		// 点击表情
-		handleEmojiClick(emoji) {
-			this.$emit('select', emoji);
-		},
-		// 点击关闭
-		handleClose() {
-			this.$emit('close');
-		}
-	}
-}
-</script>
-
-<style lang="scss" scoped>
-.emoji-picker {
-	background-color: #ffffff;
-	border-top: 1rpx solid #EEEEEE;
-	position: fixed;
-	bottom: 100rpx;
-	left: 0;
-	right: 0;
-	height: 40vh;
-	z-index: 999;
-	display: flex;
-	flex-direction: column;
-
-	.emoji-header {
-		display: flex;
-		justify-content: space-between;
-		align-items: center;
-		padding: 20rpx 24rpx;
-		border-bottom: 1rpx solid #F0F0F0;
-		flex-shrink: 0;
-
-		.title {
-			font-size: 28rpx;
-			font-weight: 500;
-			color: #333333;
-		}
-
-		.close {
-			font-size: 26rpx;
-			color: #999999;
-		}
-	}
-
-	.emoji-list {
-		display: flex;
-		flex-wrap: wrap;
-		padding: 24rpx;
-		flex: 1;
-		overflow-y: auto;
-
-		.emoji-item {
-			width: 20%;
-			height: 80rpx;
-			display: flex;
-			justify-content: center;
-			align-items: center;
-
-			.emoji {
-				font-size: 40rpx;
-			}
-		}
-	}
-}
-</style>

+ 6 - 6
pages_shopping/live/confirmCreateOrder.vue

@@ -9,7 +9,7 @@
 					</view>
 				</view>
 				<view class="arrow-box">
-					<image src="/static/images/arrow_gray.png" mode=""></image>
+					<image src="https://cdn.his.cdwjyyh.com/images/arrow_gray.png" mode=""></image>
 				</view>
 			</view>
 			<view class="address-box" v-if="address!=null" @click="openAddress()">
@@ -23,7 +23,7 @@
 					</view>
 				</view>
 				<view class="arrow-box">
-					<image src="/static/images/arrow_gray.png" mode=""></image>
+					<image src="https://cdn.his.cdwjyyh.com/images/arrow_gray.png" mode=""></image>
 				</view>
 			</view>
 
@@ -45,7 +45,7 @@
 					</view>
 					<view class="right">
 						<text class="text">{{couponText}}</text>
-						<image src="/static/images/arrow4.png" mode=""></image>
+						<image src="https://cdn.his.cdwjyyh.com/images/arrow4.png" mode=""></image>
 					</view>
 				</view>
 				<view class="points">
@@ -89,9 +89,9 @@
 					<div class="item acea-row row-center-wrapper" v-for="(item, index) in couponsList" :key="index">
 						<div class="money">
 							<image v-if="item.status==0&&item.useMinPrice<=orderData.totalPrice" class="img"
-								src="../../static/images/coupon1.png" mode="widthFix"></image>
+								src="https://cdn.his.cdwjyyh.com/images/coupon1.png" mode="widthFix"></image>
 							<image v-if="item.status!=0||item.useMinPrice>orderData.totalPrice" class="img"
-								src="../../static/images/coupon2.png" mode="widthFix"></image>
+								src="https://cdn.his.cdwjyyh.com/images/coupon2.png" mode="widthFix"></image>
 							<div style="z-index: 999;">
 								¥<span class="num">{{ item.couponPrice }}</span>
 							</div>
@@ -114,7 +114,7 @@
 					</div>
 				</div>
 				<view v-if="couponsList.length == 0" class="no-data-box">
-					<image src="/static/images/no_data.png" mode="aspectFit"></image>
+					<image src="https://cdn.his.cdwjyyh.com/images/no_data.png" mode="aspectFit"></image>
 					<view class="empty-title">暂无数据</view>
 				</view>
 			</view>

+ 78 - 33
pages_shopping/live/expert.vue

@@ -2,10 +2,10 @@
 	<view class="content">
 		<!-- 达人信息 -->
 		<view class="info">
-			<image class="info-bg" src="/static/images/expert_top_bg.png"></image>
+			<image class="info-bg" src="https://cdn.his.cdwjyyh.com/images/expert_top_bg.png"></image>
 			<view class="status_bar" :style="{height: statusBarHeight}"></view>
 			<view class="back-box">
-				<image class="img" src="/static/images/back_white_icon.png"></image>
+				<image class="img" @click="goBack" src="https://cdn.his.cdwjyyh.com/images/back_white_icon.png"></image>
 			</view>
 			<view class="info-block">
 				<image class="head" :src="expert.avatar"></image>
@@ -13,16 +13,16 @@
 					<view class="user">
 						<text class="name">{{expert.nickname}}</text>
 						<view class="level">
-							<image class="icon" src="/static/images/intelligent_icon.png"></image>LV.2
+							<image class="icon" src="https://cdn.his.cdwjyyh.com/images/intelligent_icon.png"></image>LV.2
 						</view>
 					</view>
 					<view class="txt">{{expert.introduction}}</view>
 					<view class="card">
 						<view class="card-item">
-							<image class="img" src="/static/images/jinbang_font.png"></image>
+							<image class="img" src="https://cdn.his.cdwjyyh.com/images/jinbang_font.png"></image>
 							<text class="ranking">达人榜 第15名</text>
 						</view>
-						<image class="go" src="/static/images/jb_arrow_right_icon.png"></image>
+						<image class="go" src="https://cdn.his.cdwjyyh.com/images/jb_arrow_right_icon.png"></image>
 					</view>
 				</view>
 			</view>
@@ -43,7 +43,7 @@
 				</view>
 				<!-- 关注 -->
 				<view class="button" :class="isFollow ? 'follow' : ''" @click="toFollow">
-					<image v-if="!isFollow" class="icon" src="/static/images/guanzhu_green_icon.png" />
+					<image v-if="!isFollow" class="icon" src="https://cdn.his.cdwjyyh.com/images/guanzhu_green_icon.png" />
 					<text>{{ isFollow ? '已关注' : '关注' }}</text>
 				</view>
 			</view>
@@ -69,26 +69,26 @@
 				<view class="list">
 					<view class="list-item" @click="goLive(item)" v-for="(item,index) in list" :key="index">
 						<image class="img" v-if="item.liveImgUrl" :src="item.liveImgUrl" mode="widthFix"></image>
-						<image class="video-icon" src="/static/images/video_icon.png"></image>
-						<image class="suspension-icon" @click="onTask" src="/static/images/suspension.png"></image>
+						<image class="video-icon" src="https://cdn.his.cdwjyyh.com/images/video_icon.png"></image>
+						<image class="suspension-icon" @click="onTask" src="https://cdn.his.cdwjyyh.com/images/suspension.png"></image>
 						<view class="info-block">
 							<view class="title">冰乳绿豆糕 冰冰凉凉谁吃谁迷糊! 谁懂,...</view>
 							<view class="item">
 								<view class="flex">
-									<image class="head" src="/static/images/img.png"></image>
+									<image class="head" src="https://cdn.his.cdwjyyh.com/images/img.png"></image>
 									<text class="name">崔医生</text>
 								</view>
 								<view class="flex">
-									<image class="icon" src="/static/images/zan_icon.png"></image>
+									<image class="icon" src="https://cdn.his.cdwjyyh.com/images/zan_icon.png"></image>
 									<text>141</text>
 								</view>
 							</view>
 							<view class="card">
 								<view class="card-item">
-									<image class="img" src="/static/images/jinbang_font.png"></image>
+									<image class="img" src="https://cdn.his.cdwjyyh.com/images/jinbang_font.png"></image>
 									<text class="ranking">达人榜 第15名</text>
 								</view>
-								<image class="go" src="/static/images/jb_arrow_right_icon.png"></image>
+								<image class="go" src="https://cdn.his.cdwjyyh.com/images/jb_arrow_right_icon.png"></image>
 							</view>
 						</view>
 					</view>
@@ -107,11 +107,15 @@
 	import {
 		expertHomePage, // 达人主页
 		follow, // 关注用户
+		listCreatorRank, //达人排行榜
 	} from '@/api/life.js'
 	// import {
 	// 	liveList
 	// } from '@/api/living.js'
 	import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
+	// 点赞/取消点赞常量
+	const LIKE = 'LIKE';
+	const UNLIKE = 'UNLIKE';
 	export default {
 		components: {
 			Task
@@ -122,7 +126,7 @@
 				expert:{},//达人的数据
 				showTask: false,
 				isFollow: false,
-				expertId: null, //达人id
+				expertId: 5, //达人id
 				activeTab: 0,
 				// 状态栏的高度
 				statusBarHeight: uni.getStorageSync('menuInfo').statusBarHeight,
@@ -144,27 +148,62 @@
 			}
 		},
 		onLoad(option) {
+			if(option.expertId){
 			this.expertId=option.expertId;
+
+			}
 			this.getExpertHomePage();
-			// if (!uni.getStorageSync("AppToken")) {
-			// 	uni.navigateTo({
-			// 		url: '/pages/auth/login'
-			// 	});
-			// }
+			this.getListCreatorRank();
+
+			
 		},
 		onUnload() {
 
 		},
-		methods: {
+		methods: {// 返回上一页,无则返回首页
+		goBack() {
+			// 获取页面栈
+			const pages = getCurrentPages();
+			// 如果页面栈长度大于1,说明有上一页
+			if (pages.length > 1) {
+				// 返回上一页
+				uni.navigateBack({
+					delta: 1
+				});
+			} else {
+				// 否则返回首页
+				uni.reLaunch({
+					url: '/pages/home/index'
+				});
+			}
+		},
+		//达人排行榜
+		getListCreatorRank() {
+				listCreatorRank().then(res => {
+					if (res.code == 200) {
+						console.log("达人排行榜", res)
+					} else {
+						uni.showToast({
+							title: res.msg,
+							icon: 'none'
+						});
+					}
+				}).catch(err => {});
+			},
+
 			// 达人主页
 			getExpertHomePage() {
+				console.log("达人id",this.expertId)
+				if(!this.expertId) return;
 				expertHomePage(this.expertId).then(res => {
-					if (res.code == 200) {
+					if (res.code == 200 && res.data) {
 						console.log("达人主页", res)
 						this.expert=res.data
+						// 同步关注状态
+						this.isFollow = res.data.isFollow || false;
 					} else {
 						uni.showToast({
-							title: res.msg,
+							title: res.msg || '获取达人信息失败',
 							icon: 'none'
 						});
 					}
@@ -172,18 +211,24 @@
 			},
 			// 关注用户
 			toFollow() {
-				this.isFollow = !this.isFollow;
-				// follow(this.expertId).then(res => {
-				// 	if (res.code == 200) {
-				// 		this.isFollow=true;
-				// 		console.log("关注用户", res)
-				// 	} else {
-				// 		uni.showToast({
-				// 			title: res.msg,
-				// 			icon: 'none'
-				// 		});
-				// 	}
-				// }).catch(err => {});
+				console.log("关注取消用户")
+				const action = this.isFollow ? UNLIKE : LIKE;
+				const data = {
+					expertId: this.expertId,
+					action: action
+				};
+				follow(data).then(res => {
+					if (res.code == 200) {
+						this.isFollow = !this.isFollow;
+						this.getExpertHomePage();
+						console.log(action + "用户", res)
+					} else {
+						uni.showToast({
+							title: res.msg,
+							icon: 'none'
+						});
+					}
+				}).catch(err => {});
 			},
 			onTask() {
 				this.showTask = true;

+ 2 - 2
pages_shopping/live/goods.vue

@@ -36,7 +36,7 @@
 			<view class="safe-box">
 				<text class="text">服务</text>
 				<view class="box">
-					<image class="mr20" src="/static/images/safe.png" mode=""></image>
+					<image class="mr20" src="https://cdn.his.cdwjyyh.com/images/safe.png" mode=""></image>
 					<view class="mr30" v-for="(item,index) in serviceList" :key="index">
 						<text>{{item}}</text>
 					</view>
@@ -64,7 +64,7 @@
 			<view class="product-spec">
 				<view class="pro-info">
 					<view class="img-box">
-						<image :src="goosDetail.image ||'/static/images/img.png'" mode="aspectFill"></image>
+						<image :src="goosDetail.image ||'https://cdn.his.cdwjyyh.com/images/img.png'" mode="aspectFill"></image>
 					</view>
 					<view class="info-text">
 						<view class="info-title">{{goosDetail.productName}}</view>

+ 2 - 2
pages_shopping/live/order.vue

@@ -17,7 +17,7 @@
 									<view class="text">
 										{{ item.name }}
 										<image v-show="status == item.status" class="tab-bg"
-											src="/static/images/tab_bg.png" mode=""></image>
+											src="https://cdn.his.cdwjyyh.com/images/tab_bg.png" mode=""></image>
 									</view>
 								</view>
 							</view>
@@ -137,7 +137,7 @@
 					},
 					noMoreSize: 5, // 如果列表已无数据,可设置列表的总数量要大于等于5条才显示无更多数据
 					empty: {
-						icon: '/static/images/no_data.png', // 可配置空状态图片
+						icon: 'https://cdn.his.cdwjyyh.com/images/no_data.png', // 可配置空状态图片
 						tip: '暂无订单数据' // 空状态提示文字
 					}
 				},

+ 3 - 3
pages_shopping/live/paymentOrder.vue

@@ -16,7 +16,7 @@
 				<radio-group @change="handlePayTypeChange">
 					<view class="item">
 						<view class="left">
-							<image src="/static/images/wecha_pay.png" mode=""></image>
+							<image src="https://cdn.his.cdwjyyh.com/images/wecha_pay.png" mode=""></image>
 							<text class="text">微信支付</text>
 						</view>
 						<label>
@@ -26,7 +26,7 @@
 					<!-- #ifdef APP-PLUS||H5 -->
 					<view class="item">
 						<view class="left">
-							<image src="/static/images/zfb.png" mode=""></image>
+							<image src="https://cdn.his.cdwjyyh.com/images/zfb.png" mode=""></image>
 							<text class="text">支付宝</text>
 						</view>
 						<label>
@@ -138,7 +138,7 @@
 		// 	return {
 		// 		title: "帮TA支付",
 		// 		path: '/pages_user/user/otherPaymentOrder?orderId=' + this.orderId + combinationOrderId,
-		// 		imageUrl: '/static/images/logo.png' //分享图标,路径可以是本地文件路径、代码包文件路径或者网络图片路径.支持PNG及JPG。显示图片长宽比是 5:4
+		// 		imageUrl: 'https://cdn.his.cdwjyyh.com/images/logo.png' //分享图标,路径可以是本地文件路径、代码包文件路径或者网络图片路径.支持PNG及JPG。显示图片长宽比是 5:4
 		// 	}
 
 		// },

+ 26 - 26
pages_shopping/live/points.vue

@@ -4,14 +4,14 @@
 			<view :style="{height: statusBarHeight,width: '100%'}"></view>
 			<view class="uni-nav-barbox">
 				<view class="uni-nav-back" @click="$navBack()">
-					<image src="@/static/images/back_white_icon.png" mode="aspectFill"></image>
+					<image src="@https://cdn.his.cdwjyyh.com/images/back_white_icon.png" mode="aspectFill"></image>
 				</view>
 				<view class="uni-nav-title" style="flex: 1;text-align: center;">我的芳华币</view>
 			</view>
-			<image class="uni-nav-bar_bg" src="@/static/images/integral/integral_top_bg.png" mode="widthFix"></image>
+			<image class="uni-nav-bar_bg" src="@https://cdn.his.cdwjyyh.com/images/integral/integral_top_bg.png" mode="widthFix"></image>
 		</view>
 		
-		<image class="integral_top_bg" src="@/static/images/integral/integral_top_bg.png" mode="widthFix"></image>
+		<image class="integral_top_bg" src="@https://cdn.his.cdwjyyh.com/images/integral/integral_top_bg.png" mode="widthFix"></image>
 		<u-popup :show="isShow" mode="center"  @close="closeBox" :round="16" style="width: 80%;">
 			<view class="tips-box">
 		      <view class="tips-title">
@@ -38,7 +38,7 @@
 					<view class="pointsbox-desc">其中{{withdrawIntegral}}芳华币可兑换现金提现<text v-if="withdrawIntegral!==0" class="" @click="openBox">【去兑换】</text></view>
 					
 				</view>
-				<image class="pointsbox-right" src="@/static/images/integral/integral_img.png" mode="aspectFill"></image>
+				<image class="pointsbox-right" src="@https://cdn.his.cdwjyyh.com/images/integral/integral_img.png" mode="aspectFill"></image>
 			</view>
 			<view style="padding: 0 24rpx;">
 				<!-- 签到 -->
@@ -54,7 +54,7 @@
 								<view  class="imgbox">
 									<view v-if="index + 1 <= signNum" class="signdaybox">
 										<view class="signday">+{{item.signNum}}</view>
-										<image src="@/static/images/integral/sign_in_on_icon.png" mode="aspectFill"></image>
+										<image src="@https://cdn.his.cdwjyyh.com/images/integral/sign_in_on_icon.png" mode="aspectFill"></image>
 									</view>
 									<view v-else class="integral-box">
 										<view class="integral-box-line">
@@ -68,7 +68,7 @@
 							</block>
 							<block v-else>
 								<view class="imgbox">
-									<image class="imgbox" src="@/static/images/integral/gift_img.png" mode="aspectFill"></image>
+									<image class="imgbox" src="@https://cdn.his.cdwjyyh.com/images/integral/gift_img.png" mode="aspectFill"></image>
 								</view>
 								<view :style="{color: 7 <= signNum ? '#FF5C03':''}">芳华礼包</view>
 							</block>
@@ -205,11 +205,11 @@
 						
 						<view v-if="item.title =='邀请好友享福利'" class="task-footer">
 							<button class="task-footer-btn" @click="copyCode">
-								<image src="@/static/images/integral/copy_icon.png" mode="aspectFill"></image>
+								<image src="@https://cdn.his.cdwjyyh.com/images/integral/copy_icon.png" mode="aspectFill"></image>
 								<text>复制邀请码</text>
 							</button>
 							<button class="task-footer-btn" style="margin-left: 22rpx;" @click="handleInvite">
-								<image src="@/static/images/integral/weixin_icon.png" mode="aspectFill"></image>
+								<image src="@https://cdn.his.cdwjyyh.com/images/integral/weixin_icon.png" mode="aspectFill"></image>
 								<text>邀请好友</text>
 							</button>
 						</view>
@@ -255,54 +255,54 @@
 				isNewUser: 0,
 				benefitList: [
 							{
-							icon: '/static/images/integral/go_consultation_icon.png',
+							icon: 'https://cdn.his.cdwjyyh.com/images/integral/go_consultation_icon.png',
 							name: '去问诊',
 							pageUrl:"/pages/doctor/doctorList"
 						},{
-							icon: '/static/images/integral/go_exchange_icon.png',
+							icon: 'https://cdn.his.cdwjyyh.com/images/integral/go_exchange_icon.png',
 							name: '去兑换',
 							pageUrl:"/pages/user/integral/integralGoodsList"
 						},{
-							icon: '/static/images/integral/go_buy_medicine_icon.png',
+							icon: 'https://cdn.his.cdwjyyh.com/images/integral/go_buy_medicine_icon.png',
 							name: '去购药',
 							pageUrl:"/pages/store/packageList"
 						},{
-							icon: '/static/images/integral/go_change_course_icon.png',
+							icon: 'https://cdn.his.cdwjyyh.com/images/integral/go_change_course_icon.png',
 							isCourse:true,
 							name: '去换课'
 						}
 				],
 				newUserTask: [
 						{
-						icon: '/static/images/integral/member_icon.png',
+						icon: 'https://cdn.his.cdwjyyh.com/images/integral/member_icon.png',
 						title: '10天会员限时领',
 						desc: "首次注册,完成<span style='color:#FF5C03'>手机号绑定</span>领取",
 						btntxt: '去完成',
 					},{
-						icon: '/static/images/integral/consult_icon.png',
+						icon: 'https://cdn.his.cdwjyyh.com/images/integral/consult_icon.png',
 						title: '专家免费咨询',
 						desc: "观看<span style='color:#FF5C03'>10分钟</span>课程领取",
 						btntxt: '去学习',
 					},{
-						icon: '/static/images/integral/first_order_icon.png',
+						icon: 'https://cdn.his.cdwjyyh.com/images/integral/first_order_icon.png',
 						pageUrl:"/pages/store/packageList",
 						title: '首单立返',
 						desc: "下单后返现<span style='color:#FF5C03'>5000</span>芳华币",
 						btntxt: '去下单',
 					},{
-						icon: '/static/images/integral/patient_information_icon.png',
+						icon: 'https://cdn.his.cdwjyyh.com/images/integral/patient_information_icon.png',
 						pageUrl:"/pages/user/patient",
 						title: '填写就诊人信息',
 						desc: "填写即送<span style='color:#FF5C03'>+1000</span>芳华币",
 						btntxt: '去填写',
 					},{
-						icon: '/static/images/integral/address_icon.png',
+						icon: 'https://cdn.his.cdwjyyh.com/images/integral/address_icon.png',
 						pageUrl:"/pages/user/address",
 						title: '填写收货地址',
 						desc: "填写即送<span style='color:#FF5C03'>+1000</span>芳华币",
 						btntxt: '去填写',
 					},{
-						icon: '/static/images/integral/invitation_code_icon.png',
+						icon: 'https://cdn.his.cdwjyyh.com/images/integral/invitation_code_icon.png',
 						title: '填写朋友邀请码',
 						desc: "填码即得<span style='color:#FF5C03'>+2000</span>芳华币",
 						btntxt: '领奖励',
@@ -313,55 +313,55 @@
 				taskList: [
 						{
 							id:0,
-							icon: '/static/images/integral/ssp_icon.png',
+							icon: 'https://cdn.his.cdwjyyh.com/images/integral/ssp_icon.png',
 							title: '刷视频',
 							desc: "每次浏览<span style='color:#FF5C03'>10秒</span>可获取1次芳华币",
 							btntxt: '去逛逛',
 							isVideo:true,
 						},{
 							id:1,
-							icon: '/static/images/integral/ssp_icon.png',
+							icon: 'https://cdn.his.cdwjyyh.com/images/integral/ssp_icon.png',
 							title: '发布视频',
 							desc: "每日首次成功发布视频<span style='color:#FF5C03'>+100</span>芳华币",
 							btntxt: '去发布',
 							pageUrl:"/pages/expert/index"
 						},{
 							id:2,
-							icon: '/static/images/integral/kzb_icon.png',
+							icon: 'https://cdn.his.cdwjyyh.com/images/integral/kzb_icon.png',
 							title: '看直播',
 							desc: "每次浏览<span style='color:#FF5C03'>10秒</span>可获取1次芳华币",
 							btntxt: '去观看',
 							isLive:true,
 						},{
 							id:3,
-							icon: '/static/images/integral/xxkc_icon.png',
+							icon: 'https://cdn.his.cdwjyyh.com/images/integral/xxkc_icon.png',
 							title: '学习课程',
 							desc: "每集<span style='color:#FF5C03'>+200</span>芳华币",
 							btntxt: '去学习',
 							isCourse:true,
 						},{
 							id:4,
-							icon: '/static/images/integral/xfdjf_icon.png',
+							icon: 'https://cdn.his.cdwjyyh.com/images/integral/xfdjf_icon.png',
 							title: '消费得芳华币',
 							desc: "实际消费满1元<span style='color:#FF5C03'>+1</span>芳华币",
 							btntxt: '去逛逛',
 							pageUrl:"/pages/store/packageList"
 						},{
 							id:5,
-							icon: '/static/images/integral/txyysf_icon.png',
+							icon: 'https://cdn.his.cdwjyyh.com/images/integral/txyysf_icon.png',
 							title: '填写用药随访',
 							desc: "填写即送<span style='color:#FF5C03'>+50芳华币/条</span>",
 							btntxt: '去填写',
 							pageUrl:"/pages/user/followList"
 						},{
 							id:6,
-							icon: '/static/images/integral/fxjkzs_icon.png',
+							icon: 'https://cdn.his.cdwjyyh.com/images/integral/fxjkzs_icon.png',
 							title: '分享健康知识',
 							desc: "分享至微信、朋友圈<span style='color:#FF5C03'>+10芳华币/条</span>",
 							btntxt: '去分享',
 						},{
 							id:7,
-							icon: '/static/images/integral/yqhyxfl_icon.png',
+							icon: 'https://cdn.his.cdwjyyh.com/images/integral/yqhyxfl_icon.png',
 							title: '邀请好友享福利',
 							desc: "先复制邀请码,再邀请好友",
 							btntxt: '去邀请',

+ 1 - 1
pages_shopping/live/refundOrder.vue

@@ -51,7 +51,7 @@
 					<picker @change="reasonsChange" :value="reasons" range-key="dictLabel" :range="reasonsList">
 						<view class="chose-box">
 							<text class="text">{{reasons}}</text>
-							<image src="/static/images/arrow_gray.png" mode=""></image>
+							<image src="https://cdn.his.cdwjyyh.com/images/arrow_gray.png" mode=""></image>
 						</view>
 					</picker>
 				</view>

+ 6 - 6
pages_shopping/live/refundOrderDetail.vue

@@ -2,13 +2,13 @@
 	<view>
 		<view class="top-cont">
 			<!-- 背景图片 -->
-			<image class="bg" src="../../static/images/order_top_bg.png" mode=""></image>
+			<image class="bg" src="https://cdn.his.cdwjyyh.com/images/order_top_bg.png" mode=""></image>
 			<view class="top-inner">
 				<!-- 这里是状态栏 -->
 				<view class="fixed-top-box">
 					<view class="status_bar" :style="{height: statusBarHeight}"></view>
 					<view class="back-box" @click="back">
-						<image src="../../static/images/back_white.png" mode=""></image>
+						<image src="https://cdn.his.cdwjyyh.com/images/back_white.png" mode=""></image>
 						<text class="title">售后详情</text>
 						<text></text>
 					</view>
@@ -23,7 +23,7 @@
 					<!-- 处理中 -->
 					<view v-if="sales.salesStatus == 0" class="inner">
 						<view class="img-box">
-							<image src="../../static/images/deal96.png" mode=""></image>
+							<image src="https://cdn.his.cdwjyyh.com/images/deal96.png" mode=""></image>
 						</view>
 						<view class="status-box">
 							<text class="status">售后中</text>
@@ -32,7 +32,7 @@
 					</view>
 					<view v-if="sales.salesStatus == 1" class="inner">
 						<view class="img-box">
-							<image src="../../static/images/close_trade.png" mode=""></image>
+							<image src="https://cdn.his.cdwjyyh.com/images/close_trade.png" mode=""></image>
 						</view>
 						<view class="status-box">
 							<text class="status">售后取消</text>
@@ -41,7 +41,7 @@
 					</view>
 					<view v-if="sales.salesStatus == 2" class="inner">
 						<view class="img-box">
-							<image src="../../static/images/close_trade.png" mode=""></image>
+							<image src="https://cdn.his.cdwjyyh.com/images/close_trade.png" mode=""></image>
 						</view>
 						<view class="status-box">
 							<text class="status">售后取消</text>
@@ -51,7 +51,7 @@
 					<!-- 退款成功 -->
 					<view v-if="sales.salesStatus == 3" class="inner">
 						<view class="img-box">
-							<image src="../../static/images/compel96.png" mode=""></image>
+							<image src="https://cdn.his.cdwjyyh.com/images/compel96.png" mode=""></image>
 						</view>
 						<view class="status-box">
 							<text class="status">退款成功</text>

+ 215 - 212
pages_shopping/live/salesRanking.vue

@@ -1,13 +1,12 @@
 <template>
 	<view class="content">
 		<view class="info">
-
-			<image class="info-bg" src="/static/images/sales_bg.png"></image>
-			<image class="info-title" src="/static/images/sales_title.png"></image>
+			<image class="info-bg" src="https://cdn.his.cdwjyyh.com/images/sales_bg.png"></image>
+			<image class="info-title" src="https://cdn.his.cdwjyyh.com/images/sales_title.png"></image>
 			<view class="status_bar" :style="{height: statusBarHeight}"></view>
 			<view class="search-box">
 				<view class="back-box">
-					<image class="img" src="/static/images/back_white_icon.png"></image>
+					<image @click="goBack" class="img" src="https://cdn.his.cdwjyyh.com/images/back_white_icon.png"></image>
 				</view>
 			</view>
 		</view>
@@ -18,57 +17,69 @@
 					:class="activeIndex == item.value?'item active':'item'" @click="onSelect(item)">
 					<view class="text">
 						<text>{{ item.name }}</text>
-						</image>
 					</view>
 				</view>
 			</view>
-			<!-- 视频文章列表 -->
-			<mescroll-body bottom="0" ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback"
-				:down="downOption" :up="upOption">
-				<view class="medic-list">
-					<view v-for="(item,index) in dataList" :key="index" class="item" @click="showDetail(item)">
-						<view class="img-box">
-							<view class="label" :class="[index < 3 ? ['bg1', 'bg2', 'bg3'][index] : 'bg']">
-								{{ index + 1 }}</view>
-							<image :src=" item.image" mode="aspectFit">
-							</image>
-							<view class="sales-label">已售{{item.sales}}+</view>
+			<!-- 商品列表 -->
+			<view class="medic-list">
+				<!-- 空状态提示 -->
+				<view v-if="dataList.length === 0" class="empty-state">
+					<text>暂无销量数据</text>
+				</view>
+				<!-- 商品列表 -->
+				<view v-else v-for="(item,index) in dataList" :key="index" class="item" @click="showDetail(item)">
+					<view class="img-box">
+						<view class="label" :class="[index < 3 ? ['bg1', 'bg2', 'bg3'][index] : 'bg']">
+							{{ index + 1 }}</view>
+						<image :src=" item.image" mode="aspectFit">
+						</image>
+						<view class="sales-label">已售{{item.sales}}+</view>
+					</view>
+					<view class="info-box">
+						<view class="hot-sale" >
+							<image class="w20 h20 ml10 mr8" src="https://cdn.his.cdwjyyh.com/images/hot.png"></image>
+							<text>今日热销{{item.todaySales||'0'}}件</text>
 						</view>
-						<view class="info-box">
-							<view class="hot-sale">
-								<image class="w20 h20 ml10 mr8" src="/static/images/hot.png"></image>
-								<text>今日热销1545件</text>
-							</view>
-							<view class="title ellipsis2">{{item.productName}}</view>
-							<view class="sale">肌肉酸疼、扭伤拉伤</view>
-							<view class="lable-group">
+						<view class="title ellipsis2">{{item.productName}}</view>
+						<view class="sale">{{item.productInfo || '肌肉酸疼、扭伤拉伤'}}</view>
+						<view class="lable-group">
 								<view class="lable-item">9.5折</view>
-								<view class="lable-item">限购1份</view>
+								<view class="lable-item" >限购{{item.productLimitNum || 1}}份</view>
 							</view>
+							<view class="spacer"></view>
 							<view class="prce-num">
-								<view class="price">
-									<text class="unit">¥</text><text
-										class="bold">{{splitPrice(item.price).integer}}</text>.{{splitPrice(item.price).decimal}}
-								</view>
-								<view class="cart-img" @click="navgetTo('../shopping/cart')">
-									<image class="w40 h40" src="/static/images/add_car.png"></image>
-								</view>
+							<view class="price">
+								<text class="unit">¥</text><text
+									class="bold">{{splitPrice(item.price).integer}}</text>.{{splitPrice(item.price).decimal}}
 							</view>
+							<view class="cart-img" @click.stop="addToCart(item)">
+									<image class="w40 h40" src="https://cdn.his.cdwjyyh.com/images/add_car.png"></image>
+								</view>
 						</view>
 					</view>
 				</view>
-			</mescroll-body>
+			</view>
 		</view>
+		<!-- 商品规格选择弹窗 -->
+	<ProductSpecPopup
+		:visible="specVisible"
+		:product="currentProduct"
+		:is-buy-mode="isBuyMode"
+		@update:visible="specVisible = $event"
+		@cart-updated="onCartUpdated"
+	/>
 	</view>
 </template>
 
 <script>
 	import {
-		liveList
-	} from '@/api/living.js'
-	import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
+		productSalesRanking // 获取当天商品实时销量榜单
+	} from '@/api/product'
+	import ProductSpecPopup from '@/components/product-spec-popup/product-spec-popup.vue'
 	export default {
-		mixins: [MescrollMixin],
+		components: {
+			ProductSpecPopup
+		},
 		data() {
 			return {
 				isFollow: false, //关注
@@ -92,131 +103,108 @@
 				activeTab: 0,
 				// 状态栏的高度
 				statusBarHeight: uni.getStorageSync('menuInfo').statusBarHeight,
-				list: [],
-				downOption: {
-					offset: 80,
-					use: true,
-					auto: false
-				},
-				upOption: {
-					use: true,
-					auto: true,
-					page: {
-						num: 0,
-						size: 10
-					}
-				},
-				mescroll: null,
-				dataList: [{
-					cateId: 364,
-					image: "https://hos-1309931967.cos.ap-chongqing.myqcloud.com/fs/20251216/6a3c96bd3fc44b15b760871670302e9a.jpg",
-					otPrice: 268,
-					price: 98,
-					productId: 66050,
-					productInfo: "电肌肉刺激(EMS),又称神经肌肉电刺激,是利用电脉冲诱发多发性肌肉收缩;中枢神经系统使肌肉收缩;EMS被证明是一种积极的肌肉强化工具。↵EMS的用途:肌肉强化,预防废肌萎缩,肌肉松弛,缓解酸痛,放松肌肉,美容肌肉调理。",
-					productName: "佟络宝®健步器",
-					sales: 1026,
-					unitName: "个",
-					warehouseCode: "JST001",
-					warehouseId: 3,
-				}, {
-					cateId: 364,
-					image: "https://hos-1309931967.cos.ap-chongqing.myqcloud.com/fs/20251204/c53bb29cf794468ba59ee2d60983b92f.jpg",
-					otPrice: 298,
-					price: 138,
-					productId: 65920,
-					productInfo: "1、取本品1包放入脚盆,倒入适量沸水浸泡搅拌,约5-10分钟,再加入适量温水或冷水调至适宜水温即可足浴,泡脚15- 25分钟。↵2、取本品1包放入锅内煮约5分钟,将煮好的水倒入脚盆,再加入适量温水或冷水调至适宜温度即可足浴,泡脚15-25分钟。",
-					productName: "[九仙汤]除痹通络汤 30克x30包",
-					sales: 6042,
-					unitName: "盒",
-					warehouseCode: "JST001",
-					warehouseId: 3,
-				}],
+				dataList: [],
+				// 弹窗相关数据
+				specVisible: false,
+				currentProduct: {},
+				isBuyMode: false
 			}
 		},
-		onLoad() {
-
-		},
-		onUnload() {
-
-		},
-		methods: {
-			// 一键到顶
-			scrollToTop() {
-				uni.pageScrollTo({
-					scrollTop: 0,
-					duration: 300 // 动画时间,单位ms
-				});
-			},
-			onSelect(item) {
-				console.log("item", item)
-				this.activeIndex = item.value
-			},
-			splitPrice(price) {
-				const priceStr = parseFloat(price).toFixed(2).toString();
-				return {
-					integer: priceStr.split('.')[0],
-					decimal: priceStr.split('.')[1]
-				};
-			},
-			switchTab(tab) {
-				if (this.activeTab === tab) return;
-				this.activeTab = tab;
-				this.$emit('change', tab);
-			},
-			mescrollInit(mescroll) {
-				this.mescroll = mescroll;
-			},
-
-			// 下拉刷新回调
-			downCallback(mescroll) {
-				this.list = [];
-				mescroll.resetUpScroll();
-			},
-
-			// 上拉加载回调
-			upCallback(mescroll) {
-				const pageNum = mescroll.num;
-				const pageSize = mescroll.size;
-
-				let data = {
-					pageSize: pageSize,
-					pageNum: pageNum,
-				}
-				liveList(data).then(res => {
-					if (!res) {
-						mescroll.endErr();
-						return;
-					}
+	onLoad() {
+		// 加载销量榜单
+		this.getProductSalesRanking();
+	},
+	onUnload() {
+
+	},
+	methods: {
+		// 获取销量榜单
+		getProductSalesRanking() {
+			let data = {
+				cateId:320
+			};
+			console.log('开始获取销量榜单,参数:', data);
+			productSalesRanking(data).then(
+				res => {
+					console.log('销量榜单API返回:', res);
 					if (res.code == 200) {
-						let curPageData = Array.isArray(res.data.list) ? res.data.list : [];
-						let totalSize = Number(res.data.total) || 0;
-						if (pageNum === 1) {
-							this.list = [];
-						}
-						this.list = this.list.concat(curPageData);
-
-						mescroll.endBySize(curPageData.length, totalSize);
+						// 处理销量榜单数据
+						console.log('销量榜单数据:', res.data);
+						// 将获取到的数据赋值给dataList,用于页面渲染
+						this.dataList = res.data.list || [];
+						console.log('dataList赋值后:', this.dataList);
 					} else {
-						mescroll.endErr();
+						console.log('获取销量榜单失败:', res.msg);
 						uni.showToast({
-							title: res.msg,
+							title: res.msg || '获取销量榜单失败',
 							icon: 'none'
 						});
 					}
-				}).catch(err => {
-					mescroll.endErr();
-				});
-			},
-
-			goLive(item) {
-				uni.navigateTo({
-					// &immediate=true
-					url: `./living?liveId=${item.liveId}`
-				});
-			}
+				},
+				rej => {
+					console.log('获取销量榜单接口调用失败:', rej);
+					uni.showToast({
+						title: '网络错误,请重试',
+						icon: 'none'
+					});
+				}
+			);
+		},
+		// 一键到顶
+		scrollToTop() {
+			uni.pageScrollTo({
+				scrollTop: 0,
+				duration: 300 // 动画时间,单位ms
+			});
+		},
+		onSelect(item) {
+			console.log("item", item)
+			this.activeIndex = item.value
+		},
+		splitPrice(price) {
+			const priceStr = parseFloat(price).toFixed(2).toString();
+			return {
+				integer: priceStr.split('.')[0],
+				decimal: priceStr.split('.')[1]
+			};
+		},
+		switchTab(tab) {
+			if (this.activeTab === tab) return;
+			this.activeTab = tab;
+			this.$emit('change', tab);
+		},
+		// 查看商品详情
+		showDetail(item) {
+			uni.navigateTo({
+				url: `/pages_shopping/shopping/productDetails?productId=${item.productId}`
+			});
+		},
+		// 跳转到购物车
+		navgetTo(url) {
+			uni.navigateTo({
+				url: url
+			});
+		},
+		// 返回上一页
+		goBack() {
+			uni.navigateBack({
+				delta: 1 // 返回的页面数,如果 delta 大于现有页面数,则返回首页
+			});
+		},
+		// 添加到购物车
+		addToCart(product) {
+			console.log('添加到购物车:', product);
+			// 弹出规格选择弹窗
+			this.currentProduct = product;
+			this.isBuyMode = false; // 标记为添加购物车模式
+			this.specVisible = true;
+		},
+		// 购物车更新回调
+		onCartUpdated() {
+			console.log('购物车已更新');
+			// 可以在这里更新购物车数量等操作
 		}
-	}
+	}}
 </script>
 
 <style lang="scss" scoped>
@@ -390,80 +378,95 @@
 					}
 
 					.info-box {
-						flex: 1;
-						min-width: 0;
-
-						.hot-sale {
-							font-size: 22rpx;
-							color: #FA341E;
-							text-align: left;
-							width: 260rpx;
-							height: 36rpx;
+							flex: 1;
+							min-width: 0;
 							display: flex;
-							align-items: center;
-							background: linear-gradient(90deg, #FFE1D7 3.85%, #FFE8E1 53.85%, #FFFFFF 100%);
-							border-radius: 20rpx 20rpx 20rpx 20rpx;
-							margin-bottom: 8rpx;
-						}
+							flex-direction: column;
 
-						.title {
-							font-size: 28upx;
-							font-family: PingFang SC;
-							font-weight: 500;
-							color: #333333;
-							margin-bottom: 4rpx;
-						}
+							.hot-sale {
+								font-size: 22rpx;
+								color: #FA341E;
+								text-align: left;
+								width: 260rpx;
+								height: 36rpx;
+								display: flex;
+								align-items: center;
+								background: linear-gradient(90deg, #FFE1D7 3.85%, #FFE8E1 53.85%, #FFFFFF 100%);
+								border-radius: 20rpx 20rpx 20rpx 20rpx;
+								margin-bottom: 8rpx;
+							}
 
-						.intro {
-							font-weight: 400;
-							font-size: 22rpx;
-							color: #D46C0D;
-							margin-bottom: 8upx;
-						}
+							.title {
+								font-size: 28upx;
+								font-family: PingFang SC;
+								font-weight: 500;
+								color: #333333;
+								margin-bottom: 4rpx;
+							}
 
-						.sale {
-							font-size: 21rpx;
-							color: #999999;
-						}
+							.intro {
+								font-weight: 400;
+								font-size: 22rpx;
+								color: #D46C0D;
+								margin-bottom: 8upx;
+							}
 
-						.lable-group {
-							display: flex;
-							margin-top: 8rpx;
-
-							.lable-item {
-								margin-right: 8rpx;
-								height: 30rpx;
-								padding: 0 8rpx;
-								border-radius: 4rpx 4rpx 4rpx 4rpx;
-								border: 1rpx solid #FFA599;
+							.sale {
 								font-size: 21rpx;
-								color: #FF4B33;
+								color: #999999;
+								margin-bottom: 8rpx;
 							}
-						}
 
-						.prce-num {
-							display: flex;
-							align-items: center;
-							justify-content: space-between;
-							margin-top: 8upx;
+							.lable-group {
+								display: flex;
+								margin-bottom: 8rpx;
+
+								.lable-item {
+									margin-right: 8rpx;
+									height: 30rpx;
+									padding: 0 8rpx;
+									border-radius: 4rpx 4rpx 4rpx 4rpx;
+									border: 1rpx solid #FFA599;
+									font-size: 21rpx;
+									color: #FF4B33;
+								}
+							}
 
-							.price {
-								font-weight: 600;
-								font-size: 26rpx;
-								color: #FA341E;
-								font-size: 26rpx;
+							.spacer {
+								flex: 1;
+							}
 
-								.unit {
-									font-size: 20upx;
-								}
+							.prce-num {
+								display: flex;
+								align-items: center;
+								justify-content: space-between;
 
-								.bold {
-									font-size: 36upx;
+								.price {
+									font-weight: 600;
+									font-size: 26rpx;
+									color: #FA341E;
+									font-size: 26rpx;
+
+									.unit {
+										font-size: 20upx;
+									}
+
+									.bold {
+										font-size: 36upx;
+									}
 								}
 							}
-						}
 					}
 				}
+
+				.empty-state {
+					display: flex;
+					align-items: center;
+					justify-content: center;
+					height: 400rpx;
+					font-size: 28rpx;
+					color: #999999;
+				}
 			}
 		}
 	}

+ 179 - 94
pages_shopping/live/shop.vue

@@ -2,14 +2,14 @@
 	<view class="content">
 		<!-- 达人信息 -->
 		<view class="info">
-			<image class="info-bg" src="/static/images/dianpu_top_bg.png"></image>
+			<image class="info-bg" src="https://cdn.his.cdwjyyh.com/images/dianpu_top_bg.png"></image>
 			<view class="status_bar" :style="{height: statusBarHeight}"></view>
 			<view class="search-box">
 				<view class="back-box">
-					<image class="img" src="/static/images/back_white_icon.png"></image>
+					<image class="img" @click="goBack" src="https://cdn.his.cdwjyyh.com/images/back_white_icon.png"></image>
 				</view>
 				<view class="search-cont">
-					<image class="icon-search" src="../../static/images/search.png" mode=""></image>
+					<image class="icon-search" src="https://cdn.his.cdwjyyh.com/images/search.png" mode=""></image>
 					<input type="text" disabled value="" placeholder="搜索本店"
 						placeholder-style="font-size:28rpx;color:#BBBBBB;font-family: PingFang SC;" @click="toSearch" />
 				</view>
@@ -17,23 +17,23 @@
 			<view class="shop-info">
 				<view class="info-block">
 					<view class="left">
-						<image class="head" src="/static/images/img.png"></image>
+						<image class="head" :src="storeInfo.logoUrl || 'https://cdn.his.cdwjyyh.com/images/img.png'"></image>
 						<view class="shop-box">
 							<view class="shop-name">
-								<text class="name">芳华悦选旗舰店</text>
+								<text class="name">{{ storeInfo.storeName || '' }}</text>
 							</view>
 							<view class="txt">
 								<view class="rating">
-									<image class="star" src="/static/images/star.png"></image><text>5.0分</text>
+									<image class="star" src="https://cdn.his.cdwjyyh.com/images/star.png"></image><text>5.0分</text>
 								</view>
 								<view class="line"></view>
-								<view class="fans">5000粉丝</view>
+								<view class="fans">{{storeInfo.storeFollowers||'0'}}粉丝</view>
 							</view>
 						</view>
 					</view>
 					<view class="right">
-						<view :class="isFollow?'button isFollow':'button '" @click="isFollow=!isFollow">
-							<image v-if="!isFollow" class="icon" src="/static/images/guanzhu.png"></image>
+						<view :class="isFollow?'button isFollow':'button '" @click="toggleFollow">
+							<image v-if="!isFollow" class="icon" src="https://cdn.his.cdwjyyh.com/images/guanzhu.png"></image>
 							<text>{{isFollow?'已关注':'关注'}}</text>
 						</view>
 					</view>
@@ -42,22 +42,23 @@
 					<view class="number-block">
 						<view class="item">
 							<text class="txt-item">商品品质</text>
-							<text class="number-item">平均惊艳度 98%</text>
+							<text class="number-item">平均惊艳度 {{storeInfo.amazingDegree||'0'}}%</text>
 						</view>
 						<view class="item">
 							<text class="txt-item">发货时效</text>
-							<text class="number-item">发货准时率 99.9%</text>
+							<text class="number-item">发货准时率 {{storeInfo.deliveryOnTimeRate||'0'}}%</text>
 						</view>
 						<view class="item">
 							<text class="txt-item">客服响应</text>
-							<text class="number-item">平均22秒回复</text>
+							<text class="number-item">平均{{storeInfo.serviceResponseTime||'0'}}秒回复</text>
 						</view>
 					</view>
 				</view>
 				<view class="card">
 					<view class="card-item">
-						<image class="img" src="/static/images/fanghua_golden.png"></image>
-						<text class="ranking">达人榜 第15名</text>
+						<image class="img" src="https://cdn.his.cdwjyyh.com/images/fanghua_golden.png"></image>
+						<text class="ranking">达人榜 第{{storeInfo.sort||'1'}}名</text>
+
 					</view>
 				</view>
 			</view>
@@ -67,12 +68,12 @@
 				<!-- 商品标签 -->
 				<view class="tab-item" :class="{ active: activeTab === 0 }" @click="switchTab(0)">
 					<text class="tab-text">商品</text>
-					<image v-if="activeTab === 0" src="/static/images/tab_hover.png" class="underline"></image>
+					<image v-if="activeTab === 0" src="https://cdn.his.cdwjyyh.com/images/tab_hover.png" class="underline"></image>
 				</view>
 				<!-- 生活号标签 -->
 				<view class="tab-item" :class="{ active: activeTab === 1 }" @click="switchTab(1)">
 					<text class="tab-text">生活号</text>
-					<image v-if="activeTab === 1" src="/static/images/tab_hover.png" class="underline"></image>
+					<image v-if="activeTab === 1" src="https://cdn.his.cdwjyyh.com/images/tab_hover.png" class="underline"></image>
 				</view>
 			</view>
 			<view class="tab-inner" v-if="activeTab === 0">
@@ -80,8 +81,10 @@
 					:class="activeIndex == item.value?'item active':'item'" @click="onSelect(item)">
 					<view class="text">
 						<text>{{ item.name }}</text>
-						<image v-if="item.value==1" class="tab-bg" src="/static/images/shaixuan_moren.png" mode="">
-						</image>
+						<image v-if="item.value==1&&activeIndex == item.value" class="tab-bg" src="https://cdn.his.cdwjyyh.com/images/shaixuan_moren.png" mode=""/>
+						<image v-if="item.value==1" class="tab-bg" src="/static/images/rise_icon.png" mode=""/>
+						<image v-if="item.value==1" class="tab-bg" src="/static/images/drop_icon.png" mode=""/>
+						
 					</view>
 				</view>
 			</view>
@@ -99,27 +102,27 @@
 				<view class="list" v-if="activeTab === 1">
 					<view class="list-item" @click="goLive(item)" v-for="(item,index) in list" :key="index">
 						<image class="img" v-if="item.liveImgUrl" :src="item.liveImgUrl" mode="widthFix"></image>
-						<image class="video-icon" src="/static/images/video_icon.png"></image>
-						<image class="suspension-icon" src="/static/images/suspension.png"></image>
+						<image class="video-icon" src="https://cdn.his.cdwjyyh.com/images/video_icon.png"></image>
+						<image class="suspension-icon" src="https://cdn.his.cdwjyyh.com/images/suspension.png"></image>
 						<view class="info-block">
 							<view class="title">冰乳绿豆糕 冰冰凉凉谁吃谁迷糊! 谁懂,...</view>
 							<view class="item">
 								<view class="flex">
-									<image class="head" src="/static/images/img.png"></image>
+									<image class="head" src="https://cdn.his.cdwjyyh.com/images/img.png"></image>
 									<text class="name">崔医生</text>
 								</view>
 								<view class="flex">
-									<image class="icon" src="/static/images/zan_icon.png"></image>
+									<image class="icon" src="https://cdn.his.cdwjyyh.com/images/zan_icon.png"></image>
 									<text>141</text>
 								</view>
 							</view>
 							<view class="card">
 								<view class="card-item">
-									<image class="img" src="/static/images/jinbang_font.png"></image>
+									<image class="img" src="https://cdn.his.cdwjyyh.com/images/jinbang_font.png"></image>
 									<text class="ranking">达人榜 第15名</text>
 									<text class="bold">top.1</text>
 								</view>
-								<image class="go" src="/static/images/jb_arrow_right_icon.png"></image>
+								<image class="go" src="https://cdn.his.cdwjyyh.com/images/jb_arrow_right_icon.png"></image>
 							</view>
 						</view>
 					</view>
@@ -128,12 +131,13 @@
 				<view class="goods-list" v-if="activeTab === 0">
 					<view class="item" v-for="(item,index) in dataList" :key="index" @click="showDetail(item)">
 						<view class="img-box">
-							<image :src="item.image" mode="aspectFit"></image>
+							<image :src="item.firstImage||'https://cdn.his.cdwjyyh.com/images/jmg.png'" mode="aspectFit"></image>
 						</view>
 						<view class="info-box">
-							<view class="title ellipsis2">{{item.productName}}</view>
-							<view class="intro ellipsis">{{item.productInfo}}</view>
-							<view class="sale">已售 {{item.sales}} {{item.unitName}} | 惊艳度98%</view>
+							<view class="title ellipsis2">{{item.title}}</view>
+							<view class="intro ellipsis">{{item.intro}}</view>
+							<view class="sale">已售 {{item.sales}} | 惊艳度{{item.amazingDegree}}%</view>
+
 							<view class="lable-group">
 								<view class="lable-item">9.5折</view>
 								<view class="lable-item">限购1份</view>
@@ -144,16 +148,16 @@
 										class="bold">{{splitPrice(item.price).integer}}</text>.{{splitPrice(item.price).decimal}}
 								</view>
 								<view class="cart-img" @click="navgetTo('../shopping/cart')">
-									<image class="w40 h40" src="/static/images/add_car.png"></image>
+									<image class="w40 h40" src="https://cdn.his.cdwjyyh.com/images/add_car.png"></image>
 								</view>
 							</view>
 							<view class="card">
 								<view class="card-item">
-									<image class="img" src="/static/images/ranking_icon.png"></image>
+									<image class="img" src="https://cdn.his.cdwjyyh.com/images/ranking_icon.png"></image>
 									<text class="ranking">健康新品热销榜</text>
 									<text class="bold">TOP.2</text>
 								</view>
-								<image class="go" src="/static/images/jb_arrow_right_icon.png"></image>
+								<image class="go" src="https://cdn.his.cdwjyyh.com/images/jb_arrow_right_icon.png"></image>
 							</view>
 						</view>
 					</view>
@@ -163,16 +167,16 @@
 		<view class="side">
 			<view class="side-item">
 				<button class="button-reset" open-type="contact">
-					<image class="icon" src="/static/images/service_icon.png"></image>
+					<image class="icon" src="https://cdn.his.cdwjyyh.com/images/service_icon.png"></image>
 				</button>
 			</view>
 			<view class="side-item">
 				<button open-type="share" class="button-reset">
-					<image class="icon" src="/static/images/share_icon.png" mode="widthFix" />
+					<image class="icon" src="https://cdn.his.cdwjyyh.com/images/share_icon.png" mode="widthFix" />
 				</button>
 			</view>
 			<view class="side-item" @click="scrollToTop">
-				<image class="icon" src="/static/images/top_icon.png"></image>
+				<image class="icon" src="https://cdn.his.cdwjyyh.com/images/top_icon.png"></image>
 			</view>
 		</view>
 
@@ -180,14 +184,19 @@
 </template>
 
 <script>
-	import {
-		liveList
-	} from '@/api/living.js'
+import{
+		getStore,//店铺查询
+		follow,//关注店铺
+		getStoreProduct,//店铺商品查询
+
+	} from '@/api/product.js'
+	
 	import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
 	export default {
 		mixins: [MescrollMixin],
 		data() {
 			return {
+				storeInfo: {},
 				isFollow: false, //关注
 				activeIndex: 0,
 				selectList: [{
@@ -231,44 +240,112 @@
 					}
 				},
 				mescroll: null,
-				dataList: [{
-					cateId: 364,
-					image: "https://hos-1309931967.cos.ap-chongqing.myqcloud.com/fs/20251216/6a3c96bd3fc44b15b760871670302e9a.jpg",
-					otPrice: 268,
-					price: 98,
-					productId: 66050,
-					productInfo: "电肌肉刺激(EMS),又称神经肌肉电刺激,是利用电脉冲诱发多发性肌肉收缩;中枢神经系统使肌肉收缩;EMS被证明是一种积极的肌肉强化工具。↵EMS的用途:肌肉强化,预防废肌萎缩,肌肉松弛,缓解酸痛,放松肌肉,美容肌肉调理。",
-					productName: "佟络宝®健步器",
-					sales: 1026,
-					unitName: "个",
-					warehouseCode: "JST001",
-					warehouseId: 3,
-				}, {
-					cateId: 364,
-					image: "https://hos-1309931967.cos.ap-chongqing.myqcloud.com/fs/20251204/c53bb29cf794468ba59ee2d60983b92f.jpg",
-					otPrice: 298,
-					price: 138,
-					productId: 65920,
-					productInfo: "1、取本品1包放入脚盆,倒入适量沸水浸泡搅拌,约5-10分钟,再加入适量温水或冷水调至适宜水温即可足浴,泡脚15- 25分钟。↵2、取本品1包放入锅内煮约5分钟,将煮好的水倒入脚盆,再加入适量温水或冷水调至适宜温度即可足浴,泡脚15-25分钟。",
-					productName: "[九仙汤]除痹通络汤 30克x30包",
-					sales: 6042,
-					unitName: "盒",
-					warehouseCode: "JST001",
-					warehouseId: 3,
-				}],
+				dataList: [],
+				storeId: '',
 			}
 		},
-		onLoad() {
+		onLoad(options) {
 			// if (!uni.getStorageSync("AppToken")) {
 			// 	uni.navigateTo({
 			// 		url: '/pages/auth/login'
 			// 	});
 			// }
+			if(options.storeId){
+				this.storeId = options.storeId;
+			}
+			this.getStore();
+			if(this.activeTab == 0){
+				this.getStoreProduct();
+		}
+;
 		},
 		onUnload() {
 
 		},
 		methods: {
+			getStoreProduct(){
+				const params = {
+					keyword: "", 
+					priceSort: "",
+					salesSort: "asc", // asc desc
+					amazingSort: "", 
+					storeId: this.storeId
+				};
+				getStoreProduct(params).then(
+					res => {
+						if (res.code == 200) {
+							console.log("查询店铺商品:", res);
+							this.dataList = res.data;
+						}
+					},
+					rej => {
+						console.error("查询店铺商品失败:", rej);
+					}
+				);
+			},
+			follow() {
+				console.log("关注取消用户")
+				const action = this.isFollow ? UNLIKE : LIKE;
+				const data = {
+					storeId: this.storeId,
+					action: action
+				};
+				follow(data).then(res => {
+					if (res.code == 200) {
+						this.isFollow = !this.isFollow;
+						this.getExpertHomePage();
+						console.log(action + "用户", res)
+					} else {
+						uni.showToast({
+							title: res.msg,
+							icon: 'none'
+						});
+					}
+				}).catch(err => {});
+			},
+			// follow(){
+			// 	follow().then(
+			// 		res => {
+			// 			if (res.code == 200) {
+			// 				console.log("关注店铺:", res);
+			// 				this.isFollow = !this.isFollow;
+			// 			}
+			// 		},
+			// 		rej => {
+			// 			console.error("关注店铺失败:", rej);
+			// 	}
+			// 	)
+			// },
+			
+			//查询店铺
+			getStore() {
+				if(!this.storeId){
+					uni.showToast({
+						title: '店铺ID不能为空',
+						icon: 'none'
+					});
+			return;}
+				getStore(this.storeId).then(
+					res => {
+						if (res.code == 200) {
+							console.log("查询店铺:", res);
+							this.storeInfo = res.data;
+							// 假设返回的数据中包含是否关注的信息
+							if (res.data.isFollow !== undefined) {
+								this.isFollow = res.data.isFollow;
+							}
+						}
+					},
+					rej => {
+						console.error("查询店铺失败:", rej);
+					}
+				);
+			},
+				goBack(){
+uni.navigateBack({
+	delta: 1
+})
+		},
 			// 一键到顶
 			scrollToTop() {
 				uni.pageScrollTo({
@@ -304,37 +381,8 @@
 
 			// 上拉加载回调
 			upCallback(mescroll) {
-				const pageNum = mescroll.num;
-				const pageSize = mescroll.size;
-
-				let data = {
-					pageSize: pageSize,
-					pageNum: pageNum,
-				}
-				liveList(data).then(res => {
-					if (!res) {
-						mescroll.endErr();
-						return;
-					}
-					if (res.code == 200) {
-						let curPageData = Array.isArray(res.data.list) ? res.data.list : [];
-						let totalSize = Number(res.data.total) || 0;
-						if (pageNum === 1) {
-							this.list = [];
-						}
-						this.list = this.list.concat(curPageData);
-
-						mescroll.endBySize(curPageData.length, totalSize);
-					} else {
-						mescroll.endErr();
-						uni.showToast({
-							title: res.msg,
-							icon: 'none'
-						});
-					}
-				}).catch(err => {
-					mescroll.endErr();
-				});
+				// 由于去掉了 liveList 接口,这里直接结束上拉加载,返回空数据
+				mescroll.endBySize(0, 0);
 			},
 
 			goLive(item) {
@@ -342,6 +390,43 @@
 					// &immediate=true
 					url: `./living?liveId=${item.liveId}`
 				});
+			},
+			// 关注/取消关注店铺
+			toggleFollow() {
+				if (!this.storeInfo || !this.storeInfo.storeId) {
+					console.error('店铺信息不存在');
+					return;
+				}
+				
+				const params = {
+					storeId: this.storeInfo.storeId,
+					action: !this.isFollow?'LIKE':'UNLIKE'
+				};
+				
+				follow(params).then(
+					res => {
+						if (res.code == 200) {
+							console.log(this.isFollow ? "取消关注成功:" : "关注成功:", res);
+							this.isFollow = !this.isFollow;
+							uni.showToast({
+								title: this.isFollow ? "关注成功" : "取消关注成功",
+								icon: 'success'
+							});
+						} else {
+							uni.showToast({
+								title: res.msg || (this.isFollow ? "取消关注失败" : "关注失败"),
+								icon: 'none'
+							});
+						}
+					},
+					rej => {
+						console.error(this.isFollow ? "取消关注失败:" : "关注失败:", rej);
+						uni.showToast({
+							title: this.isFollow ? "取消关注失败" : "关注失败",
+							icon: 'none'
+						});
+					}
+				);
 			}
 		}
 	}

+ 4 - 4
pages_shopping/live/storeOrderDelivery.vue

@@ -2,12 +2,12 @@
 	<view>
 		<view class="top-cont">
 			<!-- 背景图片 -->
-			<image class="bg" src="../../static/images/order_top_bg2.png" mode=""></image>
+			<image class="bg" src="https://cdn.his.cdwjyyh.com/images/order_top_bg2.png" mode=""></image>
 			<view class="top-inner">			
 				<!-- 这里是状态栏 -->
 				<view class="status_bar" :style="{height: statusBarHeight}"></view>
 				<view class="back-box" @click="back">
-					<image src="../../static/images/back_white.png" mode=""></image>
+					<image src="https://cdn.his.cdwjyyh.com/images/back_white.png" mode=""></image>
 					<text class="title">物流信息</text>
 					<text></text>
 				</view>
@@ -39,9 +39,9 @@
 								<!-- 左侧灰色圆点 -->
 								<view class="dot"></view>
 								<!-- 对号 -->
-								<image  class="img" src="../../static/images/complete.png" mode=""></image>
+								<image  class="img" src="https://cdn.his.cdwjyyh.com/images/complete.png" mode=""></image>
 								<!-- 运输中图标 -->
-								<image  class="img" src="../../static/images/car40.png" mode=""></image>
+								<image  class="img" src="https://cdn.his.cdwjyyh.com/images/car40.png" mode=""></image>
 							</view>
 							<view  class="desc-text">
 								{{item.AcceptStation}}

+ 12 - 12
pages_shopping/live/storeOrderDetail.vue

@@ -2,13 +2,13 @@
 	<view>
 		<view class="top-cont">
 			<!-- 背景图片 -->
-			<image class="bg" src="../../static/images/order_top_bg.png" mode=""></image>
+			<image class="bg" src="https://cdn.his.cdwjyyh.com/images/order_top_bg.png" mode=""></image>
 			<view class="top-inner">
 				<!-- 这里是状态栏 -->
 				<view class="fixed-top-box">
 					<view class="status_bar" :style="{height: statusBarHeight}"></view>
 					<view class="back-box" @click="back">
-						<image src="../../static/images/back_white.png" mode=""></image>
+						<image src="https://cdn.his.cdwjyyh.com/images/back_white.png" mode=""></image>
 						<text class="title">订单详情</text>
 						<text></text>
 					</view>
@@ -23,7 +23,7 @@
 					<!-- 待付款 -->
 					<view v-if="order.status == 1" class="inner">
 						<view class="img-box">
-							<image src="../../static/images/pag96.png" mode=""></image>
+							<image src="https://cdn.his.cdwjyyh.com/images/pag96.png" mode=""></image>
 						</view>
 						<view class="status-box">
 							<text class="status">待付款</text>
@@ -33,7 +33,7 @@
 					<!-- 待发货 -->
 					<view v-if="order.status == 2" class="inner">
 						<view class="img-box">
-							<image src="../../static/images/pag96.png" mode=""></image>
+							<image src="https://cdn.his.cdwjyyh.com/images/pag96.png" mode=""></image>
 						</view>
 						<view class="status-box">
 							<text class="status">待发货</text>
@@ -43,7 +43,7 @@
 					<!-- 已发货、待收货 -->
 					<view v-if="order.status == 3" class="inner">
 						<view class="img-box">
-							<image src="../../static/images/receipt.png" mode=""></image>
+							<image src="https://cdn.his.cdwjyyh.com/images/receipt.png" mode=""></image>
 						</view>
 						<view class="status-box">
 							<text class="status">待收货</text>
@@ -53,7 +53,7 @@
 					<!-- 已完成 -->
 					<view v-if="order.status==4" class="inner">
 						<view class="img-box">
-							<image src="../../static/images/finish96.png" mode=""></image>
+							<image src="https://cdn.his.cdwjyyh.com/images/finish96.png" mode=""></image>
 						</view>
 						<view class="status-box">
 							<text class="status">已完成</text>
@@ -63,7 +63,7 @@
 					<!--交易取消 -->
 					<view v-if="order.status == -3" class="inner">
 						<view class="img-box">
-							<image src="../../static/images/close_trade.png" mode=""></image>
+							<image src="https://cdn.his.cdwjyyh.com/images/close_trade.png" mode=""></image>
 						</view>
 						<view class="status-box">
 							<text class="status">交易关闭</text>
@@ -72,7 +72,7 @@
 					</view>
 					<!-- <view v-if="order.status == -1" class="inner">
 						<view class="img-box">
-							<image src="../../static/images/close_trade.png" mode=""></image>
+							<image src="https://cdn.his.cdwjyyh.com/images/close_trade.png" mode=""></image>
 						</view>
 						<view class="status-box">
 							<text class="status">申请售后</text>
@@ -81,7 +81,7 @@
 					</view> -->
 					<view v-if="order.status == -1" class="inner">
 						<view class="img-box">
-							<image src="../../static/images/close_trade.png" mode=""></image>
+							<image src="https://cdn.his.cdwjyyh.com/images/close_trade.png" mode=""></image>
 						</view>
 						<view class="status-box">
 							<text class="status">售后中</text>
@@ -90,7 +90,7 @@
 					</view>
 					<view v-if="order.status == -2" class="inner">
 						<view class="img-box">
-							<image src="../../static/images/close_trade.png" mode=""></image>
+							<image src="https://cdn.his.cdwjyyh.com/images/close_trade.png" mode=""></image>
 						</view>
 						<view class="status-box">
 							<text class="status">退款成功</text>
@@ -101,7 +101,7 @@
 				<!-- 下单人信息 -->
 				<view class="order-placer">
 					<view class="inner">
-						<image class="location" src="../../static/images/location.png" mode=""></image>
+						<image class="location" src="https://cdn.his.cdwjyyh.com/images/location.png" mode=""></image>
 						<view class="info">
 							<view class="name-phone">
 								<text class="text">{{order.userName}}</text>
@@ -232,7 +232,7 @@
 							<text class="label">电子处方</text>
 							<view class="check-box" @click="showImg()">
 								<text class="text">查看</text>
-								<image src="../../static/images/arrow4.png" mode=""></image>
+								<image src="https://cdn.his.cdwjyyh.com/images/arrow4.png" mode=""></image>
 							</view>
 						</view>
 						<view class="item">

+ 2 - 2
pages_shopping/live/storeOrderRefundList.vue

@@ -22,7 +22,7 @@
 					>
 						<view class="text">
 							{{ item.name }}
-							<image v-show="status == item.status" class="tab-bg" src="/static/images/tab_bg.png" mode=""></image>
+							<image v-show="status == item.status" class="tab-bg" src="https://cdn.his.cdwjyyh.com/images/tab_bg.png" mode=""></image>
 						</view>
 					</view>
 				</view>
@@ -44,7 +44,7 @@
 					<view class="drug-list">
 						<view v-if="item!=null" v-for="(subitem,j) in item.items" :key="j" class="drug-item">
 							<view class="img-box">
-								<image :src="JSON.parse(subitem.jsonInfo).image==''?'/static/images/drug.svg':JSON.parse(subitem.jsonInfo).image" mode="aspectFill"></image>
+								<image :src="JSON.parse(subitem.jsonInfo).image==''?'https://cdn.his.cdwjyyh.com/images/drug.svg':JSON.parse(subitem.jsonInfo).image" mode="aspectFill"></image>
 							</view>
 							<view class="drug-info">
 								<view>

+ 2 - 2
pages_shopping/live/storeOrderRefundSubmit.vue

@@ -7,7 +7,7 @@
 					<!-- 药品信息 -->
 					<view v-if="order!=null" class="drug-info" v-for="(item,index) in items" :key="index">
 						<view class="img-box">
-							<image :src="JSON.parse(item.jsonInfo).image==''?'/static/images/drug.svg':JSON.parse(item.jsonInfo).image" mode="aspectFit"></image>
+							<image :src="JSON.parse(item.jsonInfo).image==''?'https://cdn.his.cdwjyyh.com/images/drug.svg':JSON.parse(item.jsonInfo).image" mode="aspectFit"></image>
 						</view>
 						<view class="info">
 							<view class="top">
@@ -37,7 +37,7 @@
 					<picker @change="handleReasons" :value="reasons"  range-key="dictLabel" :range="reasonsOptions">
 						<view class="chose-box"  >
 							<text class="text">{{reasons}}</text>
-							<image src="/static/images/arrow_gray.png" mode=""></image>
+							<image src="https://cdn.his.cdwjyyh.com/images/arrow_gray.png" mode=""></image>
 						</view>
 					</picker>
 				</view>

+ 1 - 1
pages_shopping/live/success.vue

@@ -3,7 +3,7 @@
 		<view class="inner">
 			<view class="top">
 				<text class="title">支付成功</text>
-				<image class="icon" src="/static/images/success.png"></image>
+				<image class="icon" src="https://cdn.his.cdwjyyh.com/images/success.png"></image>
 				<view class="btn-box">
 					<view class="btn cancel" @click="goOrderDetails(order.orderId)"> 查看订单</view>
 				</view>

+ 3 - 3
pages_shopping/live/trailer.vue

@@ -19,16 +19,16 @@
 						<view class="">9/11</view>
 						<view class="">20:00开播</view>
 					</view>
-					<image src="/static/images/img.png"></image>
+					<image src="https://cdn.his.cdwjyyh.com/images/img.png"></image>
 				</view>
 				<view class="right">
 					<view class="title">秋季常见问题儿科专家直播</view>
 					<view class="shop-item">
-						<image class="shop-img" src="/static/images/img.png"></image>
+						<image class="shop-img" src="https://cdn.his.cdwjyyh.com/images/img.png"></image>
 						<text class="shop">芳华悦选旗舰店</text>
 					</view>
 					<view class="trailer-button">
-						<image class="icon" src="/static/images/img.png"></image>
+						<image class="icon" src="https://cdn.his.cdwjyyh.com/images/img.png"></image>
 						<text class="txt">245人已预约</text>
 						<view class="button">预约</view>
 					</view>

+ 1 - 1
pages_shopping/shopping/components/filter.vue

@@ -23,7 +23,7 @@
 					<text>品牌</text>
 					<view class="expand">
 						<text class="txt">展开</text>
-						<image class="icon" src="/static/images/arrow_down.png"></image>
+						<image class="icon" src="https://cdn.his.cdwjyyh.com/images/arrow_down.png"></image>
 					</view>
 				</view>
 				<view class="list">

+ 108 - 69
pages_shopping/shopping/confirmCreateOrder.vue

@@ -7,10 +7,9 @@
 					<view class="name-box">
 						<text class="text name">添加收货地址</text>
 					</view>
-					</vie>
 				</view>
 				<view class="arrow-box">
-					<image src="../../static/images/arrow_gray.png" mode=""></image>
+					<image src="https://cdn.his.cdwjyyh.com/images/arrow_gray.png" mode=""></image>
 				</view>
 			</view>
 			<view class="address-box" v-if="address!=null" @click="openAddress()">
@@ -24,7 +23,7 @@
 					</view>
 				</view>
 				<view class="arrow-box">
-					<image src="../../static/images/arrow_gray.png" mode=""></image>
+					<image src="https://cdn.his.cdwjyyh.com/images/arrow_gray.png" mode=""></image>
 				</view>
 			</view>
 			<!-- 药品列表 -->
@@ -42,9 +41,9 @@
 						</view>
 						<view class="price-num">
 							<view class="price">
-								<text class="unit">¥</text>
-								<text class="num">{{item.price.toFixed(2)}}</text>
-							</view>
+							<text class="unit">¥</text>
+							<text class="num">{{item && item.price ? item.price.toFixed(2) : '0.00'}}</text>
+						</view>
 							<view class="num">x{{item.cartNum}}</view>
 						</view>
 					</view>
@@ -54,47 +53,47 @@
 					<text class="label">小计:</text>
 					<view class="price">
 						<text class="unit">¥</text>
-						<text class="num">{{price.totalPrice.toFixed(2)}}</text>
+						<text class="num">{{price && price.totalPrice ? price.totalPrice.toFixed(2) : '0.00'}}</text>
 					</view>
 				</view>
 			</view>
 			<!-- 积分 -->
 			<view class="points">
-				<view class="left">
-					<image src="../../static/images/points.png" mode=""></image>
-					<text class="text">可用积分</text>
-				</view>
-				<view class="right">
-					<text class="text">{{price.usedIntegral}}积分</text>
-					<evan-switch @change="integralChange" v-model="checked" activeColor="#2BC7B9" inactiveColor="rgba(0, 0, 0, 0.1)"></evan-switch>
+					<view class="left">
+						<image src="https://cdn.his.cdwjyyh.com/images/points.png" mode=""></image>
+						<text class="text">可用积分</text>
+					</view>
+					<view class="right">
+						<text class="text">{{price && price.usedIntegral ? price.usedIntegral : 0}}积分</text>
+						<evan-switch @change="integralChange" v-model="checked" activeColor="#2BC7B9" inactiveColor="rgba(0, 0, 0, 0.1)"></evan-switch>
+					</view>
 				</view>
-			</view>
 			<view class="points" @click="openCoupon()">
 				<view class="left">
 					<text class="text">优惠券</text>
 				</view>
 				<view class="right">
 					<text class="text">{{couponText}}</text>
-					<image src="/static/images/arrow4.png" mode=""></image>
+					<image src="https://cdn.his.cdwjyyh.com/images/arrow4.png" mode=""></image>
 				</view>
 			</view>
 			<view class="points">
-				<view class="left">
-					<text class="text">运费</text>
-				</view>
-				<view class="right">
-					<text class="text" v-if="address!=null">{{price.payPostage==null||price.payPostage==0?'免运费':price.payPostage.toFixed(2)}}</text>
-					<text class="text" v-if="address==null">--</text>
-				</view>
-			</view>
-			<view class="points">
-				<view class="left">
-					<text class="text">服务费</text>
+					<view class="left">
+						<text class="text">运费</text>
+					</view>
+					<view class="right">
+						<text class="text" v-if="address!=null">{{price && (price.payPostage==null||price.payPostage==0)?'免运费':(price && price.payPostage ? price.payPostage.toFixed(2) : '0.00')}}</text>
+						<text class="text" v-if="address==null">--</text>
+					</view>
 				</view>
-				<view class="right">
-					<text class="text">{{price.serviceFee.toFixed(2)}}</text>
+				<view class="points">
+					<view class="left">
+						<text class="text">服务费</text>
+					</view>
+					<view class="right">
+						<text class="text">{{price && price.serviceFee ? price.serviceFee.toFixed(2) : '0.00'}}</text>
+					</view>
 				</view>
-			</view>
 			<!-- 备注 -->
 			<view class="remarks">
 				<input type="text" v-model="form.mark" placeholder="备注留言(选填)" placeholder-class="input" />
@@ -107,7 +106,7 @@
 					<text class="label">合计:</text>
 					<view class="price">
 						<text class="unit">¥</text>
-						<text class="num">{{price.payPrice.toFixed(2)}}</text>
+						<text class="num">{{price && price.payPrice ? price.payPrice.toFixed(2) : '0.00'}}</text>
 					</view>
 				</view>
 				<view class="btn" @click="submitOrder">提交订单</view>
@@ -118,8 +117,8 @@
 				 <div class="coupon-list" v-if="couponsList.length > 0">
 				   <div class="item acea-row row-center-wrapper"  v-for="(item, index) in couponsList" :key="index">
 				     <div class="money" >
-				       <image v-if="item.status==0" class="img" src="../../static/images/coupon1.png" mode="widthFix"></image>
-				 	  <image v-if="item.status!=0" class="img" src="../../static/images/coupon2.png" mode="widthFix"></image>
+				       <image v-if="item.status==0" class="img" src="https://cdn.his.cdwjyyh.com/images/coupon1.png" mode="widthFix"></image>
+				 	  <image v-if="item.status!=0" class="img" src="https://cdn.his.cdwjyyh.com/images/coupon2.png" mode="widthFix"></image>
 				 	  <div style="z-index: 999;">
 				         ¥<span class="num">{{ item.couponPrice }}</span>
 				       </div>
@@ -137,7 +136,7 @@
 				   </div>
 				 </div>
 				 <view v-if="couponsList.length == 0" class="no-data-box" >
-				 	<image src="/static/images/no_data.png" mode="aspectFit"></image>
+				 	<image src="https://cdn.his.cdwjyyh.com/images/no_data.png" mode="aspectFit"></image>
 				 	<view class="empty-title">暂无数据</view>
 				 </view>
 			 </view>
@@ -186,21 +185,42 @@
 					companyId:null,
 					companyUserId:null,
 					createOrderKey:null,
-				}
+				},
+				attrValueId:null,
+				buyNum:null,
+				productId:null,
+				indexBuy:null
+
 			}
 		},
 		onLoad(option) {
+			console.log("option",option)
+
 			this.form.createOrderKey=option.createOrderKey;
 			this.form.companyId=option.companyId;
 			this.form.companyUserId=option.companyUserId;
 			this.cartIds=option.cartIds;
 			this.type=option.type;
+			
+			if(option.productId){
+				this.productId=option.productId;
+			}
+			if(option.buyNum){
+				this.buyNum=option.buyNum;
+			}
+			if(option.attrValueId){
+				this.attrValueId=option.attrValueId;
+			}
+			if(option.indexBuy){
+				this.indexBuy=option.indexBuy;
+			}
 			this.confirm();
 			uni.$on('updateAddress', (e) => {
 				this.address=e;
 				this.form.addressId=e.id;
 			})
 			this.getWeixinOrderTemps();
+
 		},
 		methods: {
 			getWeixinOrderTemps:function(){
@@ -217,26 +237,35 @@
 				);
 			},
 			couponSelect(item){
-				this.couponText="-¥"+item.couponPrice.toFixed(2);
-				this.couponUserId=item.id;
-				this.couponVisible=false;
-				this.computed();
-			},
+					this.couponText="-¥"+(item && item.couponPrice ? item.couponPrice.toFixed(2) : '0.00');
+					this.couponUserId=item.id;
+					this.couponVisible=false;
+					this.computed();
+				},
 			openCoupon(){
-				let that = this;
-				var data={couponType:2,useMinPrice:this.price.payPrice};
-				getMyEnableCouponList(data).then(res => {
-				  this.couponVisible=true;
-				  that.couponsList = res.data
-				})
-			},
+					let that = this;
+					var data={couponType:2,useMinPrice:this.price && this.price.payPrice ? this.price.payPrice : 0};
+					getMyEnableCouponList(data).then(res => {
+					  this.couponVisible=true;
+					  that.couponsList = res.data
+					})
+				},
 			integralChange(e){
 				console.log(e)
 				this.form.useIntegral=e?1:0
 				this.computed()
 			},
-			confirm(item){
-				let data = {type:this.type,cartIds:this.cartIds};
+			confirm(){
+				let data = {};
+				if(this.indexBuy){
+					data ={
+                        productId: this.productId,
+                        attrValueId: this.attrValueId,
+                        buyNum: this.buyNum
+                         };
+				}else{
+					data = {type:this.type,cartIds:this.cartIds};
+				}
 				confirm(data).then(
 					res => {
 						if(res.code==200){
@@ -246,18 +275,20 @@
 							 if(res.address!=null){
 								 this.form.addressId=res.address.id;
 								 this.address=res.address;
-								 console.log(this.form.addreddId)
+								 console.log(this.form.addressId);
 							 }
-							 this.computed()
+							 this.computed();
 						}else{
-							
+							 
 							uni.showToast({
 								icon:'none',
 								title: res.msg,
 							});
 						}
 					},
-					rej => {}
+					rej => {
+						console.error('confirm API call failed:', rej);
+					}
 				);
 			},
 			computed(item){
@@ -339,24 +370,32 @@
 					res => {
 						uni.hideLoading()
 						if(res.code==200){
-							uni.hideLoading()
-							if(res.order.isPrescribe==1){
-								setTimeout(function(){
-									uni.redirectTo({
-										url:"/pages_shopping/shopping/prescribe?orderId="+res.order.id
-									})
+								uni.hideLoading()
+								console.log("createOrder res:", res);
+								const order = res.result && res.result.mainOrder ? res.result.mainOrder : null;
+								if(order && order.isPrescribe==1){
+									setTimeout(function(){
+										uni.redirectTo({
+											url:"/pages_shopping/shopping/prescribe?orderId="+order.id
+										})
 								},200);
-							}
-							else{
-								setTimeout(function(){
-									uni.redirectTo({
-										url: '/pages_shopping/shopping/paymentOrder?orderId='+res.order.id
-									})
+								}
+								else if(order){
+									setTimeout(function(){
+										uni.redirectTo({
+											url: '/pages_shopping/shopping/paymentOrder?orderId='+order.id
+										})
 								},200);
+								}
+								else{
+									uni.showToast({
+										icon:'none',
+										title: '订单创建失败,请重试',
+									});
+								}
+								
+								return;
 							}
-							
-							return;
-						}
 						else{
 							if(res.code==501){
 								uni.showToast({
@@ -398,7 +437,7 @@
 			min-height: 171upx;
 			background: #FFFFFF;
 			border-radius: 16upx;
-			background-image: url(../../static/images/address_bg.png);
+			background-image: url(https://cdn.his.cdwjyyh.com/images/address_bg.png);
 			background-repeat: no-repeat;
 			background-size: 100% 30upx;
 			background-position: left bottom;

+ 8 - 8
pages_shopping/shopping/confirmOrder.vue

@@ -10,7 +10,7 @@
 					</vie>
 				</view>
 				<view class="arrow-box">
-					<image src="../../static/images/arrow_gray.png" mode=""></image>
+					<image src="https://cdn.his.cdwjyyh.com/images/arrow_gray.png" mode=""></image>
 				</view>
 			</view>
 			<view class="address-box" v-if="address!=null" @click="openAddress()">
@@ -24,7 +24,7 @@
 					</view>
 				</view>
 				<view class="arrow-box">
-					<image src="../../static/images/arrow_gray.png" mode=""></image>
+					<image src="https://cdn.his.cdwjyyh.com/images/arrow_gray.png" mode=""></image>
 				</view>
 			</view>
 			<!-- 药品列表 -->
@@ -61,7 +61,7 @@
 			<!-- 积分 -->
 			<view class="points">
 				<view class="left">
-					<image src="../../static/images/points.png" mode=""></image>
+					<image src="https://cdn.his.cdwjyyh.com/images/points.png" mode=""></image>
 					<text class="text">可用积分</text>
 				</view>
 				<view class="right">
@@ -75,7 +75,7 @@
 				</view>
 				<view class="right">
 					<text class="text">{{couponText}}</text>
-					<image src="/static/images/arrow4.png" mode=""></image>
+					<image src="https://cdn.his.cdwjyyh.com/images/arrow4.png" mode=""></image>
 				</view>
 			</view>
 			<view class="points">
@@ -119,8 +119,8 @@
 				 <div class="coupon-list" v-if="couponsList.length > 0">
 				   <div class="item acea-row row-center-wrapper"  v-for="(item, index) in couponsList" :key="index">
 				     <div class="money" >
-				       <image v-if="item.status==0" class="img" src="../../static/images/coupon1.png" mode="widthFix"></image>
-				 	  <image v-if="item.status!=0" class="img" src="../../static/images/coupon2.png" mode="widthFix"></image>
+				       <image v-if="item.status==0" class="img" src="https://cdn.his.cdwjyyh.com/images/coupon1.png" mode="widthFix"></image>
+				 	  <image v-if="item.status!=0" class="img" src="https://cdn.his.cdwjyyh.com/images/coupon2.png" mode="widthFix"></image>
 				 	  <div style="z-index: 999;">
 				         ¥<span class="num">{{ item.couponPrice }}</span>
 				       </div>
@@ -138,7 +138,7 @@
 				   </div>
 				 </div>
 				 <view v-if="couponsList.length == 0" class="no-data-box" >
-				 	<image src="/static/images/no_data.png" mode="aspectFit"></image>
+				 	<image src="https://cdn.his.cdwjyyh.com/images/no_data.png" mode="aspectFit"></image>
 				 	<view class="empty-title">暂无数据</view>
 				 </view>
 			 </view>
@@ -399,7 +399,7 @@
 			min-height: 171upx;
 			background: #FFFFFF;
 			border-radius: 16upx;
-			background-image: url(../../static/images/address_bg.png);
+			background-image: url(https://cdn.his.cdwjyyh.com/images/address_bg.png);
 			background-repeat: no-repeat;
 			background-size: 100% 30upx;
 			background-position: left bottom;

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików