Pārlūkot izejas kodu

Signed-off-by: 李妹妹 <1639016684@qq.com>

李妹妹 8 stundas atpakaļ
vecāks
revīzija
42826cd7cd
52 mainītis faili ar 2106 papildinājumiem un 1231 dzēšanām
  1. 1 1
      api/address.js
  2. 25 1
      api/companyUser.js
  3. 1 1
      api/coupon.js
  4. 2 2
      api/healthUser.js
  5. 9 9
      assets/css/common.less
  6. 12 5
      common/request.js
  7. 30 27
      pages.json
  8. 8 8
      pages/auth/login.vue
  9. 10 7
      pages/home/index.vue
  10. 4 1
      pages/home/web.vue
  11. 6 2
      pages/shopping/cart.vue
  12. 370 279
      pages/shopping/confirmOrder.vue
  13. 10 6
      pages/shopping/index.vue
  14. 10 10
      pages/shopping/productDetails.vue
  15. 3 3
      pages/shopping/productList.vue
  16. 56 10
      pages/user/index.vue
  17. 2 2
      pages_company/addDoc.vue
  18. 7 7
      pages_company/addServe.vue
  19. 262 199
      pages_company/clientDetail.vue
  20. 2 2
      pages_company/clientList.vue
  21. 482 0
      pages_company/distribution.vue
  22. 2 2
      pages_company/doc.vue
  23. 5 5
      pages_company/index.vue
  24. 4 4
      pages_company/todoList.vue
  25. 52 42
      pages_echarts/acid.vue
  26. 12 3
      pages_echarts/bloodPressure.vue
  27. 13 5
      pages_echarts/bloodSugar.vue
  28. 29 28
      pages_echarts/components/dateTimePicker/dateTimePicker.vue
  29. 13 3
      pages_echarts/hips.vue
  30. 17 8
      pages_echarts/waistLine.vue
  31. 2 0
      pages_health/addUser.vue
  32. 300 331
      pages_health/healthfiles.vue
  33. 1 1
      pages_index/index/doctorArticleDetails.vue
  34. 3 0
      pages_index/index/doctorArticleList.vue
  35. 1 1
      pages_shopping/store/index.vue
  36. 1 1
      pages_user/recharge/detail.vue
  37. 40 35
      pages_user/recharge/index.vue
  38. 186 137
      pages_user/user/addSchedule.vue
  39. 3 3
      pages_user/user/complaint.vue
  40. 1 1
      pages_user/user/dataAnalysis.vue
  41. 2 2
      pages_user/user/default.vue
  42. 9 1
      pages_user/user/editIndicator.vue
  43. 1 1
      pages_user/user/myFolder.vue
  44. 1 1
      pages_user/user/reportList.vue
  45. 77 32
      pages_user/user/schedule.vue
  46. BIN
      static/images/user/complaint feedback_icon24.png
  47. BIN
      static/images/user/dietary_status_icon.png
  48. BIN
      static/images/user/my_attachment_icon.png
  49. BIN
      static/images/user/my_physical_examination_report_icon24.png
  50. BIN
      static/images/user/my_schedule_icon.png
  51. BIN
      static/images/user/points_mall_icon24.png
  52. 19 2
      utils/common.js

+ 1 - 1
api/address.js

@@ -2,7 +2,7 @@ import Request from '../common/request.js';
 let request = new Request().http
 
  export function getCity() {
- 	 return request('/store/app/address/getCity',null,'GET');
+ 	 return request('/user/store/app/address/getCity',null,'GET');
  }
  export function getCitys() {
  	 return request('/store/app/address/getCitys',null,'GET');

+ 25 - 1
api/companyUser.js

@@ -244,4 +244,28 @@ export function deleteAttachment(data) {
 //工作完成百分比
 export function queryCateStatis(data) {
 	return request('/app/todoItems/queryCateStatis', data, 'GET');
-}
+}
+//扫码
+export function bindPromoter(data) {
+ 	 return request('/store/app/bindPromoter',data,'POST','application/json;charset=UTF-8');
+ }
+ //日程查询
+ export function getItinerary(data) {
+ 	return request('/app/fs/itinerary/list', data, 'GET');
+ }
+ //日程新增
+ export function addItinerary(data) {
+ 	return request('/app/fs/itinerary/add', data, 'POST','application/json;charset=UTF-8');
+ }
+ //日程查询详情
+ export function getItineraryInfo(data) {
+ 	return request('/app/fs/itinerary/info', data, 'GET');
+ }
+ //更新日程
+ export function updateItinerary(data) {
+ 	return request('/app/fs/itinerary/update', data,'POST','application/json;charset=UTF-8');
+ }
+ //删除日程
+ export function deleteItinerary(data) {
+ 	return request('/app/fs/itinerary/delete', data, 'GET');
+ }

+ 1 - 1
api/coupon.js

@@ -2,7 +2,7 @@ import Request from '../common/request.js';
 let request = new Request().http
 
  export function getCouponIssueList(data) {
- 	 return request('/store/app/coupon/getCouponIssueList',data,'GET');
+ 	 return request('/user/store/app/coupon/getCouponIssueList',data,'GET');
  }
  export function getCompanyCouponIssueList(data) {
  	 return request('/store/app/coupon/getCompanyCouponIssueList',data,'GET');

+ 2 - 2
api/healthUser.js

@@ -22,11 +22,11 @@ export function addInfo(data) {
 
 //修改用户基本信息
 export function updateInfo(data) {
-	return request('/app/fs/userinfo/update', data, 'POST','application/json;charset=UTF-8');
+	return request('/app/fsinfo/update', data, 'POST','application/json;charset=UTF-8');
 }
 //删除用户基本信息
 export function deleteInfo(data) {
-	return request('/app/fs/userinfo/delete', data, 'GET','application/json;charset=UTF-8');
+	return request('/app/fsinfo/delete', data, 'GET','application/json;charset=UTF-8');
 }
 //获取会员分类
 export function getMember(data) {

+ 9 - 9
assets/css/common.less

@@ -164,11 +164,11 @@ rich-text {
 }
 
 /*每个页面公共css */
-.ellipsis{
-	overflow: hidden;
-	text-overflow: ellipsis;
-	white-space: nowrap;
-}
+// .ellipsis{
+// 	overflow: hidden;
+// 	text-overflow: ellipsis;
+// 	white-space: nowrap;
+// }
 .ellipsis2{
 	overflow:hidden; 
 	text-overflow:ellipsis;
@@ -262,14 +262,14 @@ checkbox .wx-checkbox-input.wx-checkbox-input-checked::before {
 }
 /* tab颜色 */
 .tab-orange {
-	background: #FF5039;
+	background: #FF5039 !important;
 }
 .tab-gree{
-	background: #2CAE5C;
+	background: #2CAE5C !important;
 }
 .tab-purple {
-	background: #7A73E0;
+	background: #7A73E0 !important;
 }
 .tab-blue {
-	background: #4585F8;
+	background: #4585F8 !important;
 }

+ 12 - 5
common/request.js

@@ -2,12 +2,19 @@
 export default class Request {
 	http(router, data = {}, method,contentType) {
 		let that = this;
-		// let path = 'http://localhost:7014';
-		let path = 'https://user.test.ylrztop.com/api'; 
-		// let path = 'http://d7zwsx.natappfree.cc'; 
-		// let path = "http://d7zwsx.natappfree.cc"
+		// let path = 'http://e767647f.natappfree.cc';
+		// let path = 'https://user.test.ylrztop.com/api'; //测试
+		let path = 'https://api.homemdt.net'; //正式
 		// let path = "https://api.qinggetai.com"
-		// console.log(router,'router')
+	    // console.log(router,'router')
+		//用户模块
+		if(router.indexOf("/store/app") != -1 || router.indexOf("/app") != -1||  router.indexOf("/recharge-templates") != -1) {
+			path ='https://api.homemdt.net/user';
+		}
+		//企业
+		if(router.indexOf("/companyapp") != -1 ) {
+			path ='https://api.homemdt.net';
+		}
 		uni.setStorageSync('requestPath',path)
 		// uni.showLoading({
 		// 	title: '加载中'

+ 30 - 27
pages.json

@@ -201,7 +201,7 @@
 		    
 		}
 		,{
-		    "path" : "pages/home/h5",
+		    "path" : "pages/home/web",
 		    "style" :                                                                                    
 		    {
 		        "navigationBarTitleText": "详情",
@@ -788,8 +788,28 @@
 						"enablePullDownRefresh": false
 					}
 					
-				}
-				,{
+				},{
+					"path": "user/schedule",
+					"style": {
+						"navigationBarTitleText": "日程",
+						"navigationBarBackgroundColor": "#008FD3",
+				        "navigationBarTextStyle": "white",
+						"app-plus": {
+							"titleNView": false
+						}
+					}
+				},
+				{
+					"path": "user/addSchedule",
+					"style": {
+						"navigationBarTitleText": "添加日程",
+						"navigationBarBackgroundColor": "#008FD3",
+				        "navigationBarTextStyle": "white",
+						"app-plus": {
+							"titleNView": false
+						}
+					}
+				},{
 					"path" : "user/docRecord",
 					"style":                                                                                  
 					{
@@ -856,10 +876,8 @@
 					"style" :                                                                                    
 					{
 						"navigationBarTitleText": "充值",
-						"navigationStyle": "custom",
-						"app-plus": {
-							"titleNView": false
-						}
+						"navigationStyle": "custom"
+						
 					}
 					
 				},{
@@ -867,10 +885,8 @@
 					"style" :                                                                                    
 					{
 						"navigationBarTitleText": "充值详情",
-						"navigationStyle": "custom",
-						"app-plus": {
-							"titleNView": false
-						}
+						"navigationStyle": "custom"
+						
 					}
 					
 				},{
@@ -918,7 +934,7 @@
 					"path" : "user/batchRecord",
 					"style" :                                                                                    
 					{
-						"navigationBarTitleText": "批量记录",
+						"navigationBarTitleText": "批量编辑",
 						"app-plus": {
 							"titleNView": false
 						}
@@ -1168,22 +1184,9 @@
 					}
 				},
 				{
-					"path": "schedule",
-					"style": {
-						"navigationBarTitleText": "日程",
-						"navigationBarBackgroundColor": "#008FD3",
-				        "navigationBarTextStyle": "white",
-						"app-plus": {
-							"titleNView": false
-						}
-					}
-				},
-				{
-					"path": "addSchedule",
+					"path": "distribution",
 					"style": {
-						"navigationBarTitleText": "添加日程",
-						"navigationBarBackgroundColor": "#008FD3",
-				        "navigationBarTextStyle": "white",
+						"navigationBarTitleText": "扫码申请",
 						"app-plus": {
 							"titleNView": false
 						}

+ 8 - 8
pages/auth/login.vue

@@ -11,12 +11,12 @@
 			class="author-btn"
 			open-type="getPhoneNumber"
 			@getphonenumber="phoneLogin"  >手机号一键登录</button>
-       <!-- <button class="close-btn" @tap="back">暂不登录</button> -->
+       <button class="close-btn" @tap="back">暂不登录</button>
 		 <view class="tips">
 			 <checkbox  :checked="isAgreement" @click="handleAgreement()" />
 			 <view  @click="handleAgreement()">您同意并接受</view>
-		 	<view class="btn"  @click="openH5('/h5/userAgreement')">《用户协议》</view>
-		 	<view class="btn" @click="openH5('/h5/privacyPolicy')">《隐私保护》</view>
+		 	<view class="btn"  @click="openH5('/web/userAgreement')">《用户协议》</view>
+		 	<view class="btn" @click="openH5('/web/privacyPolicy')">《隐私保护》</view>
 		 </view>
       </view>
     </view>
@@ -98,7 +98,7 @@ export default {
 			var requestPath = uni.getStorageSync('requestPath');
 			uni.setStorageSync('url',requestPath+url);
 			uni.navigateTo({
-				url: '../home/h5'
+				url: '../home/web'
 			})
 		},
 		getCode(){
@@ -208,10 +208,10 @@ export default {
 			}
 		},
 		back() {
-			// uni.switchTab({
-			// 	url: '/pages/home/index'
-			// });
-			uni.navigateBack()
+			uni.switchTab({
+				url: '/pages/home/index'
+			});
+			// uni.navigateBack()
 		}
 	}
 }

+ 10 - 7
pages/home/index.vue

@@ -122,10 +122,10 @@
 										{{item.views}}人观看
 									</view>
 									<view class="doctor">
-										<image mode="aspectFill" :src="item.avatar"></image>
+										<image mode="aspectFill" :src="item.avatar||''"></image>
 										<view class="right">
-											<view class="doc-name ellipsis">{{item.doctorName}}</view>
-											<view class="doc-position ellipsis">{{item.position}}</view>
+											<view class="doc-name ellipsis">{{item.doctorName||''}}</view>
+											<view class="doc-position ellipsis">{{item.position||''}}</view>
 										</view>
 									</view>
 								</view>
@@ -481,13 +481,13 @@
 				<image :src="activity.logoUrl" @tap="showActivity()" />
 			</view>
 		</view>
-		<z-modal :show="tuiModalControl" placeholderText="请输入邀请码" :btnGroup="btnGroup" :contentType="2"
-			titleText="填写邀请码" @cancle="cancleTui" @sure="submitTui"></z-modal>
+		<!-- <z-modal :show="tuiModalControl" placeholderText="请输入邀请码" :btnGroup="btnGroup" :contentType="2"
+			titleText="填写邀请码" @cancle="cancleTui" @sure="submitTui"></z-modal> -->
 	</view>
 </template>
 
 <script>
-	import zModal from '@/components/z-modal/z-modal.vue'
+	// import zModal from '@/components/z-modal/z-modal.vue'
 	import {
 		getStoreActivity
 	} from '@/api/activity.js'
@@ -524,7 +524,7 @@
 	} from '@/api/user'
 	export default {
 		components: {
-			zModal,
+			// zModal,
 			freeAudio,
 			Menu,
 			HotProduct,
@@ -760,6 +760,9 @@
 			},
 			submitTui(e) {
 				console.log(e)
+				// uni.navigateTo({
+				// 	url: '/pages_company/distribution'
+				// })
 				if (e.inputText == null || e.inputText == "") {
 					uni.showToast({
 						icon: 'none',

+ 4 - 1
pages/home/h5.vue → pages/home/web.vue

@@ -13,7 +13,10 @@
  		}
  	},
 	onLoad(val) {
-		this.url=uni.getStorageSync('url');
+		// 待解析的完整 URL
+		// const fullUrl = uni.getStorageSync('url');
+		// this.url=this.utils.getUrl(fullUrl);
+	     this.url=uni.getStorageSync('url');
 	}
  	 
  }

+ 6 - 2
pages/shopping/cart.vue

@@ -161,11 +161,15 @@
 				item.list.forEach(it => {
 					it.checked= item.checked;
 				});
+				 // 新增:检查所有店铺是否都勾选,同步全局状态
+				this.checkAll = this.carts.every(item => item.checked);
 				this.computedMoney();
 			},
 			checkChange(item,shop){
 				item.checked=!item.checked;
-				shop.checked = shop.list.every(it => it.checked == true);
+				shop.checked = shop.list.every(it => it.checked);
+				 // 新增:检查所有店铺是否都勾选,同步全局状态
+				this.checkAll = this.carts.every(shop => shop.checked);
 				this.computedMoney();
 			},
 			changeNum(e,item) {
@@ -261,7 +265,7 @@
 				let selectCarts = this.carts
 				  .filter(item => item.list.some(listItem => listItem.checked === true))
 				  .map(item => ({
-				    storeId: item.list[0].storeId || "",
+				    storeId: item.storeId || "",
 				    data: {
 				      type: "cart",
 				      cartIds: item.list.filter(it=>it.checked == true).map(it => it.id).join(","),

+ 370 - 279
pages/shopping/confirmOrder.vue

@@ -40,7 +40,8 @@
 						<view class="info-box">
 							<view>
 								<view class="name-box ellipsis2">
-									<view class="tag">{{utils.getDictLabelName("storeProductType",item.productType)}}</view>{{item.productName}}
+									<view class="tag">{{utils.getDictLabelName("storeProductType",item.productType)}}
+									</view>{{item.productName}}
 								</view>
 								<view class="spec ellipsis2">{{item.productAttrName}}</view>
 							</view>
@@ -59,7 +60,8 @@
 							<text class="text">运费</text>
 						</view>
 						<view class="right" v-if="price&&price.length > 0">
-							<text class="text">{{price[idx].payPostage==null||price[idx].payPostage==0?'免运费':price[idx].payPostage.toFixed(2)}}</text>
+							<text
+								class="text">{{price[idx].payPostage==null||price[idx].payPostage==0?'免运费':price[idx].payPostage.toFixed(2)}}</text>
 						</view>
 					</view>
 					<!-- 备注 -->
@@ -68,7 +70,8 @@
 							<text class="text">备注</text>
 						</view>
 						<view class="remarks">
-							<input type="text" v-model="shop.markinfo" placeholder="备注留言(选填)" placeholder-class="input" />
+							<input type="text" v-model="shop.markinfo" placeholder="备注留言(选填)"
+								placeholder-class="input" />
 						</view>
 					</view>
 				</view>
@@ -92,7 +95,8 @@
 					</view>
 					<view class="right">
 						<text class="text">{{priceAll.usedIntegral}}积分</text>
-						<evan-switch @change="integralChange" v-model="checked" activeColor="#0bb3f2" inactiveColor="rgba(0, 0, 0, 0.1)"></evan-switch>
+						<evan-switch @change="integralChange" v-model="checked" activeColor="#0bb3f2"
+							inactiveColor="rgba(0, 0, 0, 0.1)"></evan-switch>
 					</view>
 				</view>
 				<view class="points" @click="openCoupon()">
@@ -140,48 +144,58 @@
 				<view class="btn" @click="submitOrder">提交订单</view>
 			</view>
 		</view>
-		<popupBottom ref="popup" :visible.sync="couponVisible" title=" " bgColor="#f5f5f5" radius="30"    maxHeight="60%">
-		     <view class="coupon" style="height:650rpx;">
-				 <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="https://user.test.ylrztop.com/images/coupon1.png" mode="widthFix"></image>
-				 	  <image v-if="item.status!=0" class="img" src="https://user.test.ylrztop.com/images/coupon2.png" mode="widthFix"></image>
-				 	  <div style="z-index: 999;">
-				         ¥<span class="num">{{ item.couponPrice }}</span>
-				       </div>
-				       <div class="pic-num"  >满{{ item.useMinPrice }}元可用</div>
-				     </div>
-				     <div class="text">
-				       <div class="condition line1">
-				         {{ item.couponTitle }}
-				       </div>
-				       <div class="data acea-row row-between-wrapper">
-							<div >{{ item.limitTime }}到期</div>
-							<div class="bnt bg-color-red" @click="couponSelect(item)"  >选择</div>
-				       </div>
-				     </div>
-				   </div>
-				 </div>
-				 <view v-if="couponsList.length == 0" class="no-data-box" >
-				 	<image src="/static/images/no_data.png" mode="aspectFit"></image>
-				 	<view class="empty-title">暂无数据</view>
-				 </view>
-			 </view>
-			 
+		<popupBottom ref="popup" :visible.sync="couponVisible" title=" " bgColor="#f5f5f5" radius="30" maxHeight="60%">
+			<view class="coupon" style="height:650rpx;">
+				<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="https://user.test.ylrztop.com/images/coupon1.png" mode="widthFix"></image>
+							<image v-if="item.status!=0" class="img"
+								src="https://user.test.ylrztop.com/images/coupon2.png" mode="widthFix"></image>
+							<div style="z-index: 999;">
+								¥<span class="num">{{ item.couponPrice }}</span>
+							</div>
+							<div class="pic-num">满{{ item.useMinPrice }}元可用</div>
+						</div>
+						<div class="text">
+							<div class="condition line1">
+								{{ item.couponTitle }}
+							</div>
+							<div class="data acea-row row-between-wrapper">
+								<div>{{ item.limitTime }}到期</div>
+								<div class="bnt bg-color-red" @click="couponSelect(item)">选择</div>
+							</div>
+						</div>
+					</div>
+				</div>
+				<view v-if="couponsList.length == 0" class="no-data-box">
+					<image src="/static/images/no_data.png" mode="aspectFit"></image>
+					<view class="empty-title">暂无数据</view>
+				</view>
+			</view>
+
 		</popupBottom>
 	</view>
 </template>
 
 <script>
-	import {getWeixinOrderTemps} from '@/api/common'
-	
-	import {confirm,computed,create} from '@/api/storeOrder'
-	import { getMyEnableCouponList } from '@/api/coupon'
-	 
+	import {
+		getWeixinOrderTemps
+	} from '@/api/common'
+
+	import {
+		confirm,
+		computed,
+		create
+	} from '@/api/storeOrder'
+	import {
+		getMyEnableCouponList
+	} from '@/api/coupon'
+
 	import EvanSwitch from '@/components/evan-switch/evan-switch.vue'
 	import popupBottom from '@/components/px-popup-bottom/px-popup-bottom.vue'
-	
+
 	export default {
 		components: {
 			EvanSwitch,
@@ -189,101 +203,104 @@
 		},
 		data() {
 			return {
-				temps:[],
-				couponUserId:null,
-				couponText:"请选择",
-				couponsList:[],
-				couponVisible:false,
+				temps: [],
+				couponUserId: null,
+				couponText: "请选择",
+				couponsList: [],
+				couponVisible: false,
 				price: [],
-				priceAll:{
-					payPrice:0,
-					totalPostage:0,
-					usedIntegral:0,
-					totalPrice:0.00,
+				priceAll: {
+					payPrice: 0,
+					totalPostage: 0,
+					usedIntegral: 0,
+					totalPrice: 0.00,
 				},
-				address:null,
-				carts:[],
+				address: null,
+				carts: [],
 				checked: false,
-				type:null,
-				cartIds:null,
-				storeId:null,
-				form:{
-					useIntegral:0,
-					orderKey:null,
-					addressId:null,
-					mark:null,
-					companyId:null,
-					companyUserId:null
+				type: null,
+				cartIds: null,
+				storeId: null,
+				form: {
+					useIntegral: 0,
+					orderKey: null,
+					addressId: null,
+					mark: null,
+					companyId: null,
+					companyUserId: null
 				},
-				confirmParam: []
+				confirmParam:[]
 			}
 		},
 		onLoad(option) {
-			this.form.companyId=option.companyId;
-			this.form.companyUserId=option.companyUserId;
+			this.form.companyId = option.companyId;
+			this.form.companyUserId = option.companyUserId;
 			// this.cartIds=option.cartIds;
-			this.type=option.type;
-			this.storeId=option.storeId;
+			this.type = option.type;
+			this.storeId = option.storeId;
 			this.confirmParam = JSON.parse(decodeURIComponent(option.confirmParam))
 			this.confirm();
 			uni.$on('updateAddress', (e) => {
-				this.address=e;
-				this.form.addressId=e.id;
+				this.address = e;
+				this.form.addressId = e.id;
 			})
 			this.getWeixinOrderTemps();
 		},
 		methods: {
-			getWeixinOrderTemps:function(){
+			getWeixinOrderTemps: function() {
 				getWeixinOrderTemps().then(
 					res => {
-						if(res.code==200){
-							this.temps=res.temp
-						}else{
-							 
+						if (res.code == 200) {
+							this.temps = res.temp
+						} else {
+
 						}
 					},
 					rej => {}
 				);
 			},
-			couponSelect(item){
-				this.couponText="-¥"+item.couponPrice.toFixed(2);
-				this.couponUserId=item.id;
-				this.couponVisible=false;
+			couponSelect(item) {
+				this.couponText = "-¥" + item.couponPrice.toFixed(2);
+				this.couponUserId = item.id;
+				this.couponVisible = false;
 				this.computed();
 			},
-			openCoupon(){
+			openCoupon() {
 				let that = this;
-				var data={couponType:0,useMinPrice:this.price.payPrice};
+				var data = {
+					couponType: 0,
+					useMinPrice: this.price.payPrice
+				};
 				getMyEnableCouponList(data).then(res => {
-				  this.couponVisible=true;
-				  that.couponsList = res.data
+					this.couponVisible = true;
+					that.couponsList = res.data
 				})
 			},
-			integralChange(e){
-				this.form.useIntegral=e?1:0
+			integralChange(e) {
+				this.form.useIntegral = e ? 1 : 0
 				this.computed()
 			},
-			confirm(item){
+			confirm(item) {
 				// let data = {type:this.type,cartIds:this.cartIds};
-				if(this.confirmParam && this.confirmParam.length > 0) {
+				if (this.confirmParam&&this.confirmParam.length>0) {
 					confirm(this.confirmParam).then(
 						res => {
-							if(res.code==200){
-								 
-								 this.carts=res.carts.map(item=>({
-									 ...item,
-									 markinfo: ""
-								 }));
-								 this.form.orderKey=res.orderKeys;
-								 if(res.address!=null){
-									 this.form.addressId=res.address.id;
-									 this.address=res.address;
-								 }
-								 this.computed()
-							}else{
-								
+							if (res.code == 200) {
+
+								this.carts = res.carts.map(item => ({
+									...item,
+									markinfo: ""
+								}));
+								this.form.orderKey = res.orderKeys;
+								if (res.address != null) {
+									this.form.addressId = res.address.id;
+									this.address = res.address;
+								}
+								this.computed()
+							} else {
+
 								uni.showToast({
-									icon:'none',
+									icon: 'none',
 									title: res.msg,
 								});
 							}
@@ -293,47 +310,46 @@
 				} else {
 					uni.showToast({
 						icon: 'none',
-						title:'订单参数不存在~',
+						title: '订单参数不存在~',
 					});
 				}
 			},
-			computed(item){
+			computed(item) {
 				let data = {
-					couponUserId:this.couponUserId,
-					orderKeys:this.form.orderKey,
-					addressId:this.form.addressId,
-					useIntegral:this.form.useIntegral,
+					couponUserId: this.couponUserId,
+					orderKeys: this.form.orderKey,
+					addressId: this.form.addressId,
+					useIntegral: this.form.useIntegral,
 				};
 				computed(data).then(
 					res => {
-						if(res.code==200){
-							 this.price= res.data && res.data.length > 0 ? res.data : []
-							 this.priceAll = res.data && res.data.length > 0 ? res.data[res.data.length -1] : {
-								 payPrice:0,
-								 totalPostage:0,
-								 usedIntegral:0,
-								 totalPrice:0.00,
-							 }
-						}else{
-							if(res.code==501){
+						if (res.code == 200) {
+							this.price = res.data && res.data.length > 0 ? res.data : []
+							this.priceAll = res.data && res.data.length > 0 ? res.data[res.data.length - 1] : {
+								payPrice: 0,
+								totalPostage: 0,
+								usedIntegral: 0,
+								totalPrice: 0.00,
+							}
+						} else {
+							if (res.code == 501) {
 								uni.showToast({
-									icon:'none',
+									icon: 'none',
 									title: res.msg,
 								});
-								setTimeout(function(){
+								setTimeout(function() {
 									uni.navigateBack({
-										delta:1
+										delta: 1
 									})
-								},500);
+								}, 500);
 								return;
-							}
-							else{
+							} else {
 								uni.showToast({
-									icon:'none',
+									icon: 'none',
 									title: res.msg,
 								});
 							}
-							
+
 						}
 					},
 					rej => {}
@@ -341,88 +357,110 @@
 			},
 			// 提交订单
 			submitOrder() {
-				var that=this;
-				if(this.form.orderKey==null || this.form.orderKey.length == 0){
+				var that = this;
+				if (this.form.orderKey == null || this.form.orderKey.length == 0) {
 					uni.showToast({
-						icon:'none',
+						icon: 'none',
 						title: '订单KEY不存在',
 					});
 					return;
 				}
-				if(this.form.addressId==null){
+				if (this.form.addressId == null) {
 					uni.showToast({
-						icon:'none',
+						icon: 'none',
 						title: '收货地址不能为空',
 					});
 					return;
 				}
-				
+
 				uni.requestSubscribeMessage({
 					tmplIds: this.temps,
 					success(res) {
-						 that.createOrder();
+						that.createOrder();
 					},
 					fail(res) {
 						that.createOrder();
 					}
 				})
-				
+
 			},
-			createOrder(){
+			createOrder() {
 				const mark = this.carts.map(item => item.markinfo)
-				var that=this;
-				var data=null;
-				var tuiUserId=uni.getStorageSync('tuiUserId');
+				var that = this;
+				var data = null;
+				var tuiUserId = uni.getStorageSync('tuiUserId');
 				uni.showLoading({
 					title: '正在处理中...'
 				});
-				if(tuiUserId!=null&&tuiUserId!=undefined&&tuiUserId>0){
-					data = {orderCreateType:1,tuiUserId:tuiUserId,companyId:this.form.companyId,companyUserId:this.form.companyUserId,couponUserId:this.couponUserId,mark:mark,orderKeys:this.form.orderKey,addressId:this.form.addressId,useIntegral:this.form.useIntegral,payType:1};
-				}
-				else{
-					data = {orderCreateType:1,companyId:this.form.companyId,companyUserId:this.form.companyUserId,couponUserId:this.couponUserId,mark:mark,orderKeys:this.form.orderKey,addressId:this.form.addressId,useIntegral:this.form.useIntegral,payType:1};
+				if (tuiUserId != null && tuiUserId != undefined && tuiUserId > 0) {
+					data = {
+						orderCreateType: 1,
+						tuiUserId: tuiUserId,
+						companyId: this.form.companyId,
+						companyUserId: this.form.companyUserId,
+						couponUserId: this.couponUserId,
+						mark: mark,
+						orderKeys: this.form.orderKey,
+						addressId: this.form.addressId,
+						useIntegral: this.form.useIntegral,
+						payType: 1
+					};
+				} else {
+					data = {
+						orderCreateType: 1,
+						companyId: this.form.companyId,
+						companyUserId: this.form.companyUserId,
+						couponUserId: this.couponUserId,
+						mark: mark,
+						orderKeys: this.form.orderKey,
+						addressId: this.form.addressId,
+						useIntegral: this.form.useIntegral,
+						payType: 1
+					};
 				}
-				if(this.storeId!=null&& this.storeId>0){
-					data.storeId=this.storeId;
+				if (this.storeId != null && this.storeId > 0) {
+					data.storeId = this.storeId;
 				}
 				create(data).then(
 					res => {
 						uni.hideLoading()
-						if(!res.code && res.code !== 0){
+						if (!res.code && res.code !== 0) {
 							uni.hideLoading()
-							
-							if(res.some(item=> item.order.isPrescribe) == 1) {
-								setTimeout(function(){
-									let orderIds = res.filter(item=> item.order.isPrescribe == 1).map(it=>it.order.id)
+
+							if (res.some(item => item.order.isPrescribe) == 1) {
+								setTimeout(function() {
+									let orderIds = res.filter(item => item.order.isPrescribe == 1).map(it => it
+										.order.id)
 									orderIds = orderIds.join(',')
 									uni.redirectTo({
-										url:"prescribe?orderId="+orderIds+"&combinationOrderId="+encodeURIComponent(res[0].order.combinationOrderId)
+										url: "prescribe?orderId=" + orderIds + "&combinationOrderId=" +
+											encodeURIComponent(res[0].order.combinationOrderId)
 									})
-								},200);
+								}, 200);
 							} else {
-								setTimeout(function(){
+								setTimeout(function() {
 									uni.redirectTo({
-										url: './paymentOrder?combinationOrderId='+encodeURIComponent(res[0].order.combinationOrderId)
+										url: './paymentOrder?combinationOrderId=' + encodeURIComponent(
+											res[0].order.combinationOrderId)
 									})
-								},200);
+								}, 200);
 							}
 							return;
-						} else{
-							if(res.code==501){
+						} else {
+							if (res.code == 501) {
 								uni.showToast({
-									icon:'none',
+									icon: 'none',
 									title: res.msg,
 								});
-								setTimeout(function(){
+								setTimeout(function() {
 									uni.navigateBack({
-										delta:1
+										delta: 1
 									})
-								},200);
+								}, 200);
 								return;
-							}
-							else{
+							} else {
 								uni.showToast({
-									icon:'none',
+									icon: 'none',
 									title: res.msg,
 								});
 							}
@@ -431,7 +469,7 @@
 					rej => {}
 				);
 			},
-			openAddress(){
+			openAddress() {
 				uni.navigateTo({
 					url: '/pages_user/user/address'
 				})
@@ -441,9 +479,10 @@
 </script>
 
 <style lang="scss">
-	.inner-box{
+	.inner-box {
 		padding: 20upx 20upx 140upx;
-		.address-box{
+
+		.address-box {
 			box-sizing: border-box;
 			min-height: 171upx;
 			margin-bottom: 20rpx;
@@ -457,55 +496,66 @@
 			display: flex;
 			align-items: center;
 			justify-content: space-between;
-			.left{
+
+			.left {
 				width: 92%;
-				.name-box{
+
+				.name-box {
 					display: flex;
 					align-items: center;
-					.text{
+
+					.text {
 						font-size: 32upx;
 						font-family: PingFang SC;
 						font-weight: bold;
 						color: #111111;
 						line-height: 1;
-						&.name{
+
+						&.name {
 							margin-right: 30upx;
 						}
 					}
 				}
-				.address{
+
+				.address {
 					font-size: 28upx;
 					font-family: PingFang SC;
 					font-weight: 500;
 					color: #666666;
 					line-height: 42upx;
-					text-align:left;
+					text-align: left;
 					margin-top: 23upx;
 				}
 			}
-			.arrow-box{
+
+			.arrow-box {
 				width: 12upx;
 				height: 23upx;
 				display: flex;
 				align-items: cenetr;
 				justify-content: cenetr;
-				image{
+
+				image {
 					width: 100%;
 					height: 100%;
 				}
 			}
 		}
+
 		.shopbox {
 			background: #FFFFFF;
 			border-radius: 16rpx;
 			margin-bottom: 20rpx;
+
 			.points {
 				padding: 0 !important;
 			}
+
 			.remarks {
 				padding: 0 !important;
 			}
 		}
+
 		.shopbox-name {
 			padding: 30rpx 30rpx 0 30rpx;
 			font-family: PingFang SC, PingFang SC;
@@ -516,38 +566,45 @@
 			white-space: nowrap;
 			text-overflow: ellipsis;
 		}
-		.goods-list{
+
+		.goods-list {
 			// margin-top: 20upx;
 			padding: 0 30upx;
 			background-color: #FFFFFF;
 			border-radius: 16upx;
-			.item{
+
+			.item {
 				padding: 30upx 0;
 				border-bottom: 1px solid #EDEEEF;
 				display: flex;
 				align-items: center;
-				.img-box{
+
+				.img-box {
 					width: 160upx;
 					height: 160upx;
 					margin-right: 30upx;
-					image{
+
+					image {
 						width: 100%;
 						height: 100%;
 					}
 				}
-				.info-box{
+
+				.info-box {
 					width: calc(100% - 190upx);
 					height: 160upx;
 					display: flex;
 					flex-direction: column;
 					justify-content: space-between;
-					.name-box{
+
+					.name-box {
 						font-size: 28upx;
 						font-family: PingFang SC;
 						font-weight: 500;
 						color: #111111;
 						line-height: 40upx;
-						.tag{
+
+						.tag {
 							display: inline-block;
 							padding: 0 6upx;
 							height: 30upx;
@@ -563,7 +620,8 @@
 							margin-top: 7upx;
 						}
 					}
-					.spec{
+
+					.spec {
 						margin-top: 10upx;
 						font-size: 24upx;
 						font-family: PingFang SC;
@@ -571,14 +629,17 @@
 						color: #999999;
 						line-height: 1;
 					}
-					.price-num{
+
+					.price-num {
 						display: flex;
 						align-items: center;
 						justify-content: space-between;
-						.price{
+
+						.price {
 							display: flex;
 							align-items: flex-end;
-							.unit{
+
+							.unit {
 								font-size: 24upx;
 								font-family: PingFang SC;
 								font-weight: 500;
@@ -586,7 +647,8 @@
 								line-height: 1.2;
 								margin-right: 4upx;
 							}
-							.num{
+
+							.num {
 								font-size: 32upx;
 								font-family: PingFang SC;
 								font-weight: 500;
@@ -594,7 +656,8 @@
 								line-height: 1;
 							}
 						}
-						.num{
+
+						.num {
 							font-size: 24upx;
 							font-family: PingFang SC;
 							font-weight: 500;
@@ -604,21 +667,25 @@
 					}
 				}
 			}
-			.sub-total{
+
+			.sub-total {
 				height: 88upx;
 				display: flex;
 				align-items: center;
 				justify-content: flex-end;
-				.label{
+
+				.label {
 					font-size: 24upx;
 					font-family: PingFang SC;
 					font-weight: 500;
 					color: #999999;
 				}
-				.price{
+
+				.price {
 					display: flex;
 					align-items: flex-end;
-					.unit{
+
+					.unit {
 						font-size: 24upx;
 						font-family: PingFang SC;
 						font-weight: 500;
@@ -626,7 +693,8 @@
 						line-height: 1.2;
 						margin-right: 4upx;
 					}
-					.num{
+
+					.num {
 						font-size: 32upx;
 						font-family: PingFang SC;
 						font-weight: bold;
@@ -636,24 +704,29 @@
 				}
 			}
 		}
+
 		.price-info {
 			background: #FFFFFF;
 			border-radius: 16upx;
+
 			&-title {
-				    padding: 30rpx 30rpx 20rpx 30rpx;
-				    font-family: PingFang SC, PingFang SC;
-				    font-weight: 500;
-				    font-size: 30rpx;
-				    color: #111;
+				padding: 30rpx 30rpx 20rpx 30rpx;
+				font-family: PingFang SC, PingFang SC;
+				font-weight: 500;
+				font-size: 30rpx;
+				color: #111;
 			}
+
 			&-unit {
 				font-size: 24rpx;
 			}
+
 			&-num {
 				font-size: 28rpx;
 			}
 		}
-		.points{
+
+		.points {
 			height: 88upx;
 			width: 100%;
 			padding: 0 30upx;
@@ -663,53 +736,62 @@
 			display: flex;
 			align-items: center;
 			justify-content: space-between;
-			.left{
+
+			.left {
 				display: flex;
 				align-items: center;
-				image{
+
+				image {
 					width: 28upx;
 					height: 28upx;
 					margin-right: 20upx;
 				}
-				.text{
+
+				.text {
 					font-size: 28upx;
 					font-family: PingFang SC;
 					font-weight: 500;
 					color: #666666;
 				}
 			}
-			.right{
+
+			.right {
 				display: flex;
 				align-items: center;
-				.text{
+
+				.text {
 					font-size: 28upx;
 					font-family: PingFang SC;
 					font-weight: 500;
 					color: #111111;
-					 
+
 				}
-				image{
+
+				image {
 					margin-left: 15upx;
 					width: 14upx;
 					height: 24upx;
 				}
 			}
 		}
-		.remarks{
+
+		.remarks {
 			height: 88upx;
 			padding: 0 30upx;
 			background: #FFFFFF;
 			border-radius: 16upx;
 			display: flex;
 			align-items: center;
-			input{
+
+			input {
 				width: 100%;
 				font-size: 28upx;
 				font-family: PingFang SC;
 				font-weight: 500;
 				color: #000000;
 			}
-			.input{
+
+			.input {
 				font-size: 28upx;
 				font-family: PingFang SC;
 				font-weight: 500;
@@ -717,9 +799,9 @@
 			}
 		}
 	}
-	
-	
-	.btn-foot{
+
+
+	.btn-foot {
 		box-sizing: border-box;
 		width: 100%;
 		height: 121upx;
@@ -732,24 +814,29 @@
 		left: 0;
 		bottom: 0;
 		z-index: 99;
-		.right{
+
+		.right {
 			display: flex;
 			align-items: center;
-			.total{
+
+			.total {
 				display: flex;
 				align-items: flex-end;
 				margin-right: 36upx;
-				.label{
+
+				.label {
 					font-size: 26upx;
 					font-family: PingFang SC;
 					font-weight: 500;
 					color: #999999;
 					line-height: 1.5;
 				}
-				.price{
+
+				.price {
 					display: flex;
 					align-items: flex-end;
-					.unit{
+
+					.unit {
 						font-size: 32upx;
 						font-family: PingFang SC;
 						font-weight: bold;
@@ -757,7 +844,8 @@
 						line-height: 1.2;
 						margin-right: 10upx;
 					}
-					.num{
+
+					.num {
 						font-size: 50upx;
 						font-family: PingFang SC;
 						font-weight: bold;
@@ -766,7 +854,8 @@
 					}
 				}
 			}
-			.btn{
+
+			.btn {
 				width: 200upx;
 				height: 88upx;
 				line-height: 88upx;
@@ -783,87 +872,89 @@
 </style>
 <style lang="less" scoped>
 	.coupon {
-	  height: 100%;
+		height: 100%;
 	}
+
 	/*优惠券列表公共*/
-	.coupon-list {
-	}
+	.coupon-list {}
+
 	.coupon-list .item {
-	  display: flex;
-	  flex-direction: column;
-	  justify-content: center;
-	  align-items: center;
-	  width: 100%;
-	  height: 1.7 * 100rpx;
-	  margin-bottom: 0.16 * 100rpx;
+		display: flex;
+		flex-direction: column;
+		justify-content: center;
+		align-items: center;
+		width: 100%;
+		height: 1.7 * 100rpx;
+		margin-bottom: 0.16 * 100rpx;
 	}
-	
+
 	.coupon-list .item .money {
-	  background-size: 100% 100%;
-	  width: 2.4 * 100rpx;
-	  height: 100%;
-	  color: #fff;
-	  font-size: 0.36 * 100rpx;
-	  font-weight: bold;
-	  text-align: center;
-	  display: flex;
-	  flex-direction: column;
-	  align-items: center;
-	  justify-content: center;
-	  position: relative;
-	  
+		background-size: 100% 100%;
+		width: 2.4 * 100rpx;
+		height: 100%;
+		color: #fff;
+		font-size: 0.36 * 100rpx;
+		font-weight: bold;
+		text-align: center;
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		position: relative;
+
 	}
-	.coupon-list .item .money .img{
-	  position: absolute;
-	  width: 2.4 * 100rpx;
-	  height: 100%;
-	  color: #fff;
-	  
+
+	.coupon-list .item .money .img {
+		position: absolute;
+		width: 2.4 * 100rpx;
+		height: 100%;
+		color: #fff;
+
 	}
-	
+
 	.coupon-list .item .money .num {
-	  font-size: 0.6 * 100rpx;
+		font-size: 0.6 * 100rpx;
 	}
+
 	.coupon-list .item .money .pic-num {
-	  font-size: 20rpx;
-	  z-index: 99;
+		font-size: 20rpx;
+		z-index: 99;
 	}
 
-	
+
 	.coupon-list .item .text {
-	  width: 4.5 * 100rpx;
-	  padding: 0 0.17 * 100rpx 0 0.24 * 100rpx;
-	  background-color: #fff;
-	  box-sizing: border-box;
+		width: 4.5 * 100rpx;
+		padding: 0 0.17 * 100rpx 0 0.24 * 100rpx;
+		background-color: #fff;
+		box-sizing: border-box;
 	}
-	
+
 	.coupon-list .item .text .condition {
-	  font-size: 0.3 * 100rpx;
-	  color: #282828;
-	  height: 0.93 * 100rpx;
-	  line-height: 0.93 * 100rpx;
-	  border-bottom: 1px solid #f0f0f0;
+		font-size: 0.3 * 100rpx;
+		color: #282828;
+		height: 0.93 * 100rpx;
+		line-height: 0.93 * 100rpx;
+		border-bottom: 1px solid #f0f0f0;
 	}
-	
+
 	.coupon-list .item .text .data {
-	  font-size: 0.2 * 100rpx;
-	  color: #999;
-	  height: 0.76 * 100rpx;
+		font-size: 0.2 * 100rpx;
+		color: #999;
+		height: 0.76 * 100rpx;
 	}
-	
+
 	.coupon-list .item .text .data .bnt {
-	  width: 1.36 * 100rpx;
-	  height: 0.44 * 100rpx;
-	  border-radius: 0.22 * 100rpx;
-	  font-size: 0.22 * 100rpx;
-	  color: #fff;
-	  text-align: center;
-	  line-height: 0.44 * 100rpx;
-	  background-color: red;
+		width: 1.36 * 100rpx;
+		height: 0.44 * 100rpx;
+		border-radius: 0.22 * 100rpx;
+		font-size: 0.22 * 100rpx;
+		color: #fff;
+		text-align: center;
+		line-height: 0.44 * 100rpx;
+		background-color: red;
 	}
-	
+
 	.coupon-list .item .text .data .bnt.gray {
-	  background-color: #ccc;
+		background-color: #ccc;
 	}
-</style>
-
+</style>

+ 10 - 6
pages/shopping/index.vue

@@ -133,7 +133,7 @@
 					},
 					noMoreSize: 10, // 配置列表的总数量要大于等于5条才显示'-- END --'的提示
 					empty: {
-						icon:'/static/images/no_data.png',
+						icon:'https://user.test.ylrztop.com/images/empty_icon.png',
 						tip: '暂无数据',
 						
 					},
@@ -147,9 +147,10 @@
 				//小程序的原生菜单中显示分享按钮,才能够让发送给朋友与分享到朋友圈两个按钮可以点击
 				menus: ["shareAppMessage", "shareTimeline"] //不设置默认发送给朋友
 			})
-			this.getProductCate();
+			
 		},
 		onShow() {
+			this.getProductCate();
 			var that = this;
 			setTimeout(function() {
 				let info = uni.createSelectorQuery().select(".top-content");
@@ -175,7 +176,7 @@
 				if (item.showType == 1) {
 					uni.setStorageSync('url', item.advUrl);
 					uni.navigateTo({
-						url: "../home/h5"
+						url: "../home/web"
 					})
 				} else if (item.showType == 2) {
 					uni.navigateTo({
@@ -237,18 +238,21 @@
                 
 			},
 			getSubCate() {
+				
 				var that = this;
-				this.subCates = this.allCates.filter(function(item) {
+				this.subCates = this.allCates.filter(item=>item.pid == this.cateSelect);
 					// let subList = that.allCates.filter(child => {
 					// 	//返回每一项的子级数组
 					// 	return child.pid === item.cateId
 					// });
 					// subList.length > 0 ? item.children = subList : [];
-					return item.pid == that.cateSelect
-				});
+					
 				if (this.subCates != null && this.subCates.length > 0) {
 					this.cateId= this.subCates[0].cateId;
 					this.mescroll.resetUpScroll()
+				}else{
+					this.cateId=0
+					this.mescroll.resetUpScroll()
 				}
 				
 			},

+ 10 - 10
pages/shopping/productDetails.vue

@@ -82,10 +82,10 @@
 			</view> -->
 		</view>
 		<view class="guige">
-			<view class="guige-gg">
+			<!-- <view class="guige-gg">
 				<text class="gg-text">规格</text>
-				<text class="gg-text2">云南白药气雾剂 85g+30g *1 、说明书*1</text>
-			</view>
+				<text class="gg-text2">{{productAttr.attrValues||'-'}}</text>
+			</view> -->
 			<view class="safe-box">
 				<text class="text">服务</text>
 				<view class="box">
@@ -202,14 +202,14 @@
 		<!-- 图文详情 -->
 		<view class="det-box">
 			<view class="title">药品详情</view>
-			<view class="det-title">
+			<!-- <view class="det-title">
 				<view class="tt">说明书</view>
 				<view class="det-right">
 					<text>查看详情</text>
 					<image class='w48 h48' src="/static/images/right.png"></image>
 				</view>
-			</view>
-			<view class="det-table">
+			</view> -->
+			<!-- <view class="det-table">
 				<view class="row">
 					<text class="cell cell-1">通用名称</text>
 					<text class="cell cell-2">云南白药气雾剂</text>
@@ -222,7 +222,7 @@
 				    <text class="cell cell-1">性状</text>
 					<text class="cell cell-2">云南白药气雾剂为非定量阀门气雾剂,在耐压容器中的药液为淡黄...</text>
 				</view>
-			</view>
+			</view> -->
 			<!-- <view class="det-table">
 				<uni-table border stripe emptyText="暂无更多数据" >
 					
@@ -512,7 +512,7 @@
 			if(this.utils.checkToken()){
 				this.getCartCount();
 			}
-			this.getProductConfig();
+			// this.getProductConfig();
 		},
 		onShow() {
 			this.getProductDetails();
@@ -904,7 +904,7 @@
 				this.storeId = item.storeId;
 				var valueSelect= this.getValueSelect();
 				this.productValueSelect=valueSelect[0];
-				this.getProductStoreStock("chooseStore");
+				// this.getProductStoreStock("chooseStore");
 			},
 			// 更新所选规格的店铺价格
 			getStorePriceList() {
@@ -1024,7 +1024,7 @@
 		.safe-box{
 			display: flex;
 			align-items: center;
-			padding-top: 24upx;
+			// padding-top: 24upx;
 			font-size: 24upx;
 			color: #222426;
 			.text{

+ 3 - 3
pages/shopping/productList.vue

@@ -30,7 +30,7 @@
 		</view>
 		<!-- 数据列表 --> 
 		<mescroll-body  top="190upx" ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback" :down="downOption" :up="upOption">
-			<view class="medic-list" v-if="showType==1">
+			<!-- <view class="medic-list" v-if="showType==1">
 				<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>
@@ -53,8 +53,8 @@
 						</view>
 					</view>
 				</view>
-			</view>
-			<view class="goods-list" v-if="showType==2">
+			</view> -->
+			<view class="goods-list">
 				<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>

+ 56 - 10
pages/user/index.vue

@@ -10,7 +10,7 @@
 							<image :src="user.avatar==null?'/static/images/detault_head.jpg':user.avatar" mode="aspectFill"></image>
 						</view>
 						<view class="name-phone">
-							<view class="name">{{user.nickname}}</view>
+							<view class="name">{{user.nickname||'微信用户'}}</view>
 							<view class="phone">
 							<image class="w32 h32" src="../../static/images/company/phone_icon16.png" mode=""></image>
 							<text>{{user.phone?utils.parsePhone(user.phone):'-'}}</text>
@@ -28,11 +28,11 @@
 								<image class="w48 h48" src="../../static/images/user/center_new_icon.png" mode=""></image>
 							</view>
 						</uni-badge>
-						<uni-badge size="small" absolute="rightTop" type="error">
+					<!-- 	<uni-badge size="small" absolute="rightTop" type="error">
 						<view class="msg-box ml10" @click="navgetTo('/pages_user/user/complaint')">
 							<u-icon name="edit-pen" color="#222426" size="28"></u-icon>
 						</view>
-						</uni-badge>
+						</uni-badge> -->
 					</view>
 				</view>
 				<view class="balance">
@@ -134,11 +134,11 @@
 								<image src="../../static/images/user/purple_my_footprint_icon24.png" mode=""></image>
 								<text class="text">我的足迹</text>
 							</view>
-							<view class="item no-marin-bottom" @click="openH5('/h5/userAgreement')">
+							<view class="item no-marin-bottom" @click="openH5('/web/userAgreement')">
 								<image src="../../static/images/user/purple_user_agreement_icon24.png" mode=""></image>
 								<text class="text">用户协议</text>
 							</view>
-							<view class="item no-marin-bottom align-top"  @click="openH5('/h5/privacyPolicy')">
+							<view class="item no-marin-bottom align-top"  @click="openH5('/web/privacyPolicy')">
 								<image src="../../static/images/user/purple_privacy_protection_icon24.png" mode=""></image>
 								<text class="text">隐私保护</text>
 							</view>
@@ -164,11 +164,36 @@
 								<image src="../../static/images/user/purple_sales_management_icon24.png" mode=""></image>
 								<text class="text">销售管理</text>
 							</view>
-							 
+							 <view class="item no-marin-bottom"  @click="navgetTo('/pages_user/user/reportList')">
+							  	<image src="../../static/images/user/my_physical_examination_report_icon24.png" mode=""></image>
+							  	<text class="text">体检报告</text>
+							  </view>
+							  <view class="item no-marin-bottom"  @click="navgetTo('/pages_user/user/myFolder')">
+							   	<image src="../../static/images/user/my_attachment_icon.png" mode=""></image>
+							   	<text class="text">我的附件</text>
+							   </view>
+							   
+							  
+								<view class="item no-marin-bottom"  @click="navgetTo('/pages_user/user/dietList')">
+								 	<image src="../../static/images/user/dietary_status_icon.png" mode=""></image>
+								 	<text class="text">饮食情况</text>
+								 </view>
+								 <view class="item no-marin-bottom"  @click="navgetTo('/pages_user/user/schedule')">
+								  	<image src="../../static/images/user/my_schedule_icon.png" mode=""></image>
+								  	<text class="text">行程管理</text>
+								  </view>
+								<view class="item no-marin-bottom"  @click="navgetTo('/pages_user/user/pointsMall')">
+								  	<image src="../../static/images/user/points_mall_icon24.png" mode=""></image>
+								  	<text class="text">积分商城</text>
+								  </view>
+								  <view class="item no-marin-bottom"  @click="navgetTo('/pages_user/user/complaint')">
+								   	<image src="../../static/images/user/complaint feedback_icon24.png" mode=""></image>
+								   	<text class="text">投诉反馈</text>
+								   </view>
 						</view>
 					</view>
 					<!-- 退出登录按钮 -->
-					<!-- <view class="log-out">退出登录</view> -->
+					<view class="log-out" @click="logOut">退出登录</view>
 				</view>
 				<view class="banner">
 					<image src="https://qinggetai.oss-rg-china-mainland.aliyuncs.com/qgt/20230705/786baeb728d34b6aa29ae62d0b173b19.png"></image>
@@ -254,6 +279,27 @@
 					rej => {}
 				);
 			},
+			logOut(){
+			 	uni.showModal({
+			 		title:"提示",
+			 		content:"确认退出登录吗?",
+			 		showCancel:true,
+			 		cancelText:'取消',
+			 		confirmText:'确定',
+			 		success:res=>{
+			 			if(res.confirm){
+							uni.setStorageSync('CompanyUserToken',null);
+			 				uni.setStorageSync('AppToken',null);
+							uni.setStorageSync('userInfo',null);
+							uni.$emit('refreshLogin');
+			 				uni.navigateTo({
+			 					url: '/pages/auth/login'
+			 				})							
+			 			}else{
+			 			}
+			 		}
+			 	})
+			 },
 			toManager(){
 				// uni.navigateTo({
 				// 	url: '/pages_company/index'
@@ -274,7 +320,7 @@
 				var requestPath = uni.getStorageSync('requestPath');
 				uni.setStorageSync('url',requestPath+url);
 				uni.navigateTo({
-					url: '../home/h5'
+					url: '../home/web'
 				})
 			},
 			getUserInfo(){
@@ -303,7 +349,7 @@
 				this.utils.isLogin().then(res => {
 					if(res){
 						uni.navigateTo({
-							url: url
+							url: url+'?userId='+this.user.userId
 						})
 					}
 				})
@@ -528,7 +574,7 @@
 	.content{
 		margin-top: 20upx;
 		padding: 0 20upx;
-		display: flex;
+		// display: flex;
 		align-items: center;
 		justify-content: center;
 		.used-tools{

+ 2 - 2
pages_company/addDoc.vue

@@ -440,7 +440,7 @@
 										title: "操作成功",
 									});
 									setTimeout(function() {
-										uni.$emit('refreshHealthFiles');
+										uni.$emit('refreshClientDetail');
 										uni.navigateBack({
 											delta: 1
 										})
@@ -464,7 +464,7 @@
 										title: "操作成功",
 									});
 									setTimeout(function() {
-										uni.$emit('refreshHealthFiles');
+										uni.$emit('refreshClientDetail');
 										uni.navigateBack({
 											delta: 1
 										})

+ 7 - 7
pages_company/addServe.vue

@@ -137,49 +137,49 @@
 				);
 			},
 			submit() {
-				if (this.form.productName == null) {
+				if (this.form.productName == null || this.form.productName == '') {
 					uni.showToast({
 						icon: 'none',
 						title: "名称不能为空",
 					});
 					return;
 				}
-				if (this.form.purchaseQuantity == null) {
+				if (this.form.purchaseQuantity == null|| this.form.purchaseQuantity == 0) {
 					uni.showToast({
 						icon: 'none',
 						title: "数量不能为空",
 					});
 					return;
 				}
-				if (this.form.amount == null) {
+				if (this.form.amount == null|| this.form.amount == '') {
 					uni.showToast({
 						icon: 'none',
 						title: "金额不能为空",
 					});
 					return;
 				}
-				if (this.form.plannedCompletionDate == null) {
+				if (this.form.plannedCompletionDate == null|| this.form.plannedCompletionDate == '') {
 					uni.showToast({
 						icon: 'none',
 						title: "时间不能为空",
 					});
 					return;
 				}
-				if (this.form.purchaseTimes == null) {
+				if (this.form.purchaseTimes == null|| this.form.purchaseTimes == '') {
 					uni.showToast({
 						icon: 'none',
 						title: "购买次数不能为空",
 					});
 					return;
 				}
-				if (this.form.surplusTimes == null) {
+				if (this.form.surplusTimes == null|| this.form.surplusTimes == '') {
 					uni.showToast({
 						icon: 'none',
 						title: "剩余次数不能为空",
 					});
 					return;
 				}
-				if (this.form.memberStatus == null) {
+				if (this.form.memberStatus == null|| this.form.memberStatus == '') {
 					uni.showToast({
 						icon: 'none',
 						title: "会员情况不能为空",

+ 262 - 199
pages_company/clientDetail.vue

@@ -1,10 +1,11 @@
 <template>
-		<view class="content">
-			<view class="user-info2">
-				<view class="align-center justify-between">
+	<view class="content">
+		<view class="user-info2">
+			<view class="align-center justify-between">
 				<view class="left">
 					<view class="head-img">
-						<image :src="user.avatar==null?'../static/images/health/my_heads.png':user.avatar" mode="aspectFill"></image>
+						<image :src="user.avatar==null?'../static/images/health/my_heads.png':user.avatar"
+							mode="aspectFill"></image>
 					</view>
 					<view class="name-phone">
 						<view class="name">{{user.username||'微信用户'}}</view>
@@ -19,90 +20,97 @@
 						</view>
 					</view>
 				</view>
-					<image class="w80 h80" src="../static/images/company/phone_icon.png" mode=""></image>
+				<image class="w80 h80" src="../static/images/company/phone_icon.png" mode=""></image>
+			</view>
+			<view class="tag-box">
+				<view class="align-center justify-between mb32">
+					<view class="title">他的标签</view>
+					<view class="title2">编辑标签</view>
 				</view>
-				<view class="tag-box">
-					<view class="align-center justify-between mb32">
-						<view class="title">他的标签</view>
-						<view class="title2">编辑标签</view>
-					</view>
-					<view class="align-center">
-						<view class="tag">高血压</view>
-						<view class="tag">高血压</view>
-						<view class="add-tag">
-							<image class="w24 h24" src="../static/images/company/add_blue_icon.png" mode=""></image>
-							<view>添加标签</view>
-						</view>
+				<view class="align-start wrap">
+					<view class="tag" v-for="(item,index) in tags" :key="index">{{item}}</view>
+					<!-- <view class="tag">高血压</view> -->
+					<view class="add-tag">
+						<image class="w24 h24" src="../static/images/company/add_blue_icon.png" mode=""></image>
+						<view>添加标签</view>
 					</view>
 				</view>
-				<view class="demands">
-					<view class="title">健康诉求</view>
-					<view class="text">{{user.problemsToSolve||'-'}}</view>
-				</view>
-				
 			</view>
-			<view class="used-tools2">
-				<view class="title">管理</view>
-				<view class="tools-list">
-					<view class="item" @click="toHealth()">
-						<image src="../static/images/company/health_records_icon.png" mode=""></image>
-						<text class="text">健康档案</text>
-					</view>
-					<view class="item" @click="toReport()">
-						<image src="../static/images/company/physical_examination_icon.png" mode=""></image>
-						<text class="text">体检信息</text>
-					</view>
-					<view class="item" @click="toRecord()">
-						<image src="../static/images/company/execution_record_icon.png" mode=""></image>
-						<text class="text">执行记录</text>
-					</view>
-					<view class="item" @click="navgetTo()">
-						<image src="../static/images/company/return_records_icon.png" mode=""></image>
-						<text class="text">回访记录</text>
-					</view>
-					<view class="item" @click="toOrder()">
-						<image src="../static/images/company/consumables_mall_icon.png" mode=""></image>
-						<text class="text">购买信息</text>
-					</view>
-					 <view class="item" @click="toData()">
-					 	<image src="../static/images/company/comparison_indicators_icon.png" mode=""></image>
-					 	<text class="text">指标对比</text>
-					 </view>
-					 <view class="item" @click="navgetTo()">
-					 	<image src="../static/images/company/evaluation_record_icon.png" mode=""></image>
-					 	<text class="text">测评记录</text>
-					 </view>
-					 <view class="item" @click="navgetTo()">
-					 	<image src="../static/images/company/follow_up_records_icon.png" mode=""></image>
-					 	<text class="text">跟进记录</text>
-					 </view>
-				</view>
+			<view class="demands">
+				<view class="title">健康诉求</view>
+				<view class="text">{{user.problemsToSolve||'-'}}</view>
 			</view>
-			<view class="used-tools2">
-				<view class="title">备注信息</view>
-				<view class="tools-list">
-					<view class="remark">暂无</view>
+
+		</view>
+		<view class="used-tools2">
+			<view class="title">管理</view>
+			<view class="tools-list">
+				<view class="item" @click="toHealth()">
+					<image src="../static/images/company/health_records_icon.png" mode=""></image>
+					<text class="text">健康档案</text>
+				</view>
+				<view class="item" @click="toReport()">
+					<image src="../static/images/company/physical_examination_icon.png" mode=""></image>
+					<text class="text">体检信息</text>
+				</view>
+				<view class="item" @click="navgetTo()">
+					<image src="../static/images/company/execution_record_icon.png" mode=""></image>
+					<text class="text">执行记录</text>
+				</view>
+				<view class="item" @click="navgetTo()">
+					<image src="../static/images/company/return_records_icon.png" mode=""></image>
+					<text class="text">回访记录</text>
+				</view>
+				<view class="item" @click="toOrder()">
+					<image src="../static/images/company/consumables_mall_icon.png" mode=""></image>
+					<text class="text">购买信息</text>
 				</view>
-		     </view>
+				<view class="item" @click="toData()">
+					<image src="../static/images/company/comparison_indicators_icon.png" mode=""></image>
+					<text class="text">指标对比</text>
+				</view>
+				<view class="item" @click="navgetTo()">
+					<image src="../static/images/company/evaluation_record_icon.png" mode=""></image>
+					<text class="text">测评记录</text>
+				</view>
+				<view class="item" @click="navgetTo()">
+					<image src="../static/images/company/follow_up_records_icon.png" mode=""></image>
+					<text class="text">跟进记录</text>
+				</view>
+			</view>
 		</view>
+		<view class="used-tools2">
+			<view class="title">备注信息</view>
+			<view class="tools-list">
+				<view class="remark">暂无</view>
+			</view>
+		</view>
+	</view>
 </template>
 
 <script>
-	import {getUserInfo,getQrImg} from '@/api/companyUser'
-	import {getInfo,homeInfo} from '@/api/health.js'
+	import {
+		getUserInfo,
+		getQrImg
+	} from '@/api/companyUser'
+	import {
+		getInfo,
+		homeInfo
+	} from '@/api/health.js'
 	export default {
 		data() {
 			return {
-				statusBarHeight:'',
-				top:0,
+				statusBarHeight: '',
+				top: 0,
 				// user:{
 				// 	nickName:'健康管家小左',
 				// 	phonenumber:'13996660261',
 				// 	deptName:'测试企业',
 				// 	avatar:null
 				// },
-				 user:null,
-				 info:null
+				tags: [],
+				user: null,
+				info: null
 			};
 		},
 		computed: {
@@ -113,26 +121,33 @@
 			},
 		},
 		onLoad(options) {
-			this.userId=options.userId;
-			this.companyId=options.companyId;
-			this.companyUserId=options.companyUserId;
-			this.getUserInfo()
+			this.userId = options.userId;
+			this.companyId = options.companyId;
+			this.companyUserId = options.companyUserId;
+			
+			uni.$on('refreshClientDetail', () => {
+				this.mescroll.resetUpScroll()
+				// this.getUserInfo()
+			})
 		},
 		onShow() {
 			console.log("onshow")
-			
+           this.getUserInfo()
 			// this.getHome()
 		},
 		methods: {
-			getUserInfo(){
+			getUserInfo() {
 				// var data={token:uni.getStorageSync('CompanyUserToken')}
-				getInfo({userId:this.userId}).then(
+				getInfo({
+					userId: this.userId
+				}).then(
 					res => {
-						if(res.code==200){
-							  this.user=res.data;
-						}else{
+						if (res.code == 200) {
+							this.user = res.data;
+							this.getHome()
+						} else {
 							uni.showToast({
-								icon:'none',
+								icon: 'none',
 								title: res.msg,
 							});
 						}
@@ -140,7 +155,7 @@
 					rej => {}
 				);
 			},
-			alipay(){
+			alipay() {
 				// var url="http://alipay.yjf.runtzh.com/#/?companyId="+this.user.companyId+"&companyUserId="+this.user.userId
 				// uni.setClipboardData({
 				// 	data:url,
@@ -149,89 +164,98 @@
 				// 			title:'收款地址已复制到剪切板',
 				// 			icon:'none'
 				// 		})
-						
+
 				// 	}
 				// });
-				
+
 				uni.navigateTo({
-					url:'/pages_company/alipayImg'
+					url: '/pages_company/alipayImg'
 				})
 			},
-			toHealth(){
-				
+			toHealth() {
+
 				uni.navigateTo({
-					url:'/pages_company/addDoc?userId='+this.userId+"&companyUserId="+this.companyUserId
+					url: '/pages_company/addDoc?userId=' + this.userId + "&companyUserId=" + this.companyUserId
 				})
 			},
-			toReport(){
-				
+			toReport() {
+
 				uni.navigateTo({
-					url:'/pages_user/user/reportList?userId='+this.userId+"&companyUserId="+this.companyUserId
+					url: '/pages_user/user/reportList?userId=' + this.userId + "&companyUserId=" + this
+						.companyUserId
 				})
 			},
-			toRecord(){
-				
+			toRecord() {
+
 				uni.navigateTo({
-					url:'/pages_company/executionRecord?userId='+this.userId+"&companyUserId="+this.companyUserId
+					url: '/pages_company/executionRecord?userId=' + this.userId + "&companyUserId=" + this
+						.companyUserId
 				})
 			},
-			toData(){
-				
+			toData() {
+
 				uni.navigateTo({
-					url:'/pages_user/user/dataAnalysis?userId='+this.userId+"&companyUserId="+this.companyUserId
+					url: '/pages_user/user/dataAnalysis?userId=' + this.userId + "&companyUserId=" + this
+						.companyUserId
 				})
 			},
-			
-			toCard(){
+
+			toCard() {
 				uni.navigateTo({
-					url:'/pages_company/card?cardId='+this.user.cardId
+					url: '/pages_company/card?cardId=' + this.user.cardId
 				})
 			},
-			toCreateOrder(){
+			toCreateOrder() {
 				uni.navigateTo({
-					url:'/pages_company/order/productList'
+					url: '/pages_company/order/productList'
 				})
 			},
-			toPay(){
+			toPay() {
 				uni.navigateTo({
-					url:'/pages_user/user/pay?companyId='+this.user.companyId+"&companyUserId="+this.user.userId
+					url: '/pages_user/user/pay?companyId=' + this.user.companyId + "&companyUserId=" + this.user
+						.userId
 				})
 			},
-			toOrder(){
+			toOrder() {
 				uni.navigateTo({
-					url:'/pages_company/buyOrder?userId='+this.user.userId+"&companyUserId="+this.companyUserId
+					url: '/pages_company/buyOrder?userId=' + this.user.userId + "&companyUserId=" + this
+						.companyUserId
 				})
 			},
-			toPackage(){
+			toPackage() {
 				uni.navigateTo({
-					url:'/pages_company/storeProductPackage?companyId='+this.user.companyId+"&companyUserId="+this.user.userId
+					url: '/pages_company/storeProductPackage?companyId=' + this.user.companyId +
+						"&companyUserId=" + this.user.userId
 				})
 			},
-			toCoupon(){
+			toCoupon() {
 				uni.navigateTo({
-					url:'/pages_company/coupon'
+					url: '/pages_company/coupon'
 				})
 			},
-			toCreateCoupon(){
+			toCreateCoupon() {
 				uni.navigateTo({
-					url:'/pages_company/order/coupon'
+					url: '/pages_company/order/coupon'
 				})
 			},
-			toCreateOrderCoupon(){
+			toCreateOrderCoupon() {
 				uni.navigateTo({
-					url:'/pages_company/order/coupon'
+					url: '/pages_company/order/coupon'
 				})
 			},
-			
-			getHome(){
+
+			getHome() {
 				// var data={token:uni.getStorageSync('CompanyUserToken')}
-				homeInfo({userId:this.userId}).then(
+				homeInfo({
+					userId: this.userId
+				}).then(
 					res => {
-						if(res.code==200){
-							  this.info=res.data;
-						}else{
+						if (res.code == 200) {
+							this.info = res.data;
+							this.tags = res.data.otherMedicalHistory?res.data.otherMedicalHistory.split('、') :[];
+						} else {
 							uni.showToast({
-								icon:'none',
+								icon: 'none',
 								title: res.msg,
 							});
 						}
@@ -239,34 +263,38 @@
 					rej => {}
 				);
 			},
-			logout(){
-			 	uni.showModal({
-			 		title:"提示",
-			 		content:"确认退出登录吗?",
-			 		showCancel:true,
-			 		cancelText:'取消',
-			 		confirmText:'确定',
-			 		success:res=>{
-			 			if(res.confirm){
-			 				uni.setStorageSync('CompanyUserToken',null);
-			 				uni.navigateBack({
-			 					delta:-1
-			 				})							
-			 			}else{
-			 			}
-			 		}
-			 	})
-			 },
-			 
+			logout() {
+				uni.showModal({
+					title: "提示",
+					content: "确认退出登录吗?",
+					showCancel: true,
+					cancelText: '取消',
+					confirmText: '确定',
+					success: res => {
+						if (res.confirm) {
+							uni.setStorageSync('CompanyUserToken', null);
+							uni.navigateBack({
+								delta: -1
+							})
+						} else {}
+					}
+				})
+			},
+
 			// 跳转页面
 			navgetTo(url) {
-				this.utils.isLogin().then(res => {
-					// if(res){
-					// 	uni.navigateTo({
-					// 		url: url+'?companyId='+this.companyId+"&companyUserId="+this.companyUserId
-					// 	})
-					// }
-				})
+				uni.showToast({
+					icon: 'none',
+					title: '暂无更多',
+				});
+				// this.utils.isLogin().then(res => {
+
+				// 	// if(res){
+				// 	// 	uni.navigateTo({
+				// 	// 		url: url+'?companyId='+this.companyId+"&companyUserId="+this.companyUserId
+				// 	// 	})
+				// 	// }
+				// })
 			},
 		}
 	}
@@ -281,87 +309,103 @@
 		left: 0;
 		z-index: -1;
 	}
-	.content{
-		padding:20upx;
-		background: linear-gradient( 180deg, #008FD3 0%, #EFF3F7 24%, #EFF3F7 100%);
+
+	.content {
+		padding: 20upx;
+		background: linear-gradient(180deg, #008FD3 0%, #EFF3F7 24%, #EFF3F7 100%);
 		height: 100vh;
-		    box-sizing: border-box;
-			padding-top: 32rpx;
-		.user-info2{
+		box-sizing: border-box;
+		padding-top: 32rpx;
+
+		.user-info2 {
 			box-sizing: border-box;
 			background: #FFFFFF;
 			border-radius: 16upx;
 			padding: 40upx 30upx;
 			margin-bottom: 20rpx;
-			.left{
+
+			.left {
 				position: relative;
 				display: flex;
-				.head-img{
+
+				.head-img {
 					width: 112upx;
 					height: 112upx;
 					border-radius: 50%;
 					overflow: hidden;
 					margin-right: 30upx;
-					image{
+
+					image {
 						width: 100%;
 						height: 100%;
 					}
 				}
-				.name-phone{
+
+				.name-phone {
 					// padding-top: 15upx;
 					display: flex;
 					flex-direction: column;
-					justify-content:center;
-					.name{
+					justify-content: center;
+
+					.name {
 						font-size: 36upx;
 						font-family: PingFang SC;
 						font-weight: bold;
 						color: #111111;
 						// line-height: 1;
 					}
-					.phone-box{
+
+					.phone-box {
 						display: flex;
 						align-items: center;
 						margin-top: 14rpx;
-						.phone{
+
+						.phone {
 							font-family: PingFang SC;
 							font-weight: 400;
 							font-size: 24rpx;
 							color: #626468;
 							line-height: 36rpx;
 						}
-						.address{
+
+						.address {
 							font-family: PingFang SC;
 							font-weight: 400;
 							font-size: 24rpx;
 							color: #626468;
-							margin-left:8rpx;
+							margin-left: 8rpx;
 							margin-right: 30rpx;
 						}
 					}
-					
+
 				}
 			}
-			.tag-box{
+
+			.tag-box {
 				padding-top: 40rpx;
 				padding-bottom: 40rpx;
 				border-bottom: 1rpx solid #ECECEC;
-				.title{
+
+				.title {
 					font-family: PingFang SC;
 					font-weight: 500;
 					font-size: 32rpx;
 					color: #222426;
 				}
-				.title2{
+
+				.title2 {
 					font-family: PingFang SC;
 					font-weight: 400;
 					font-size: 24rpx;
 					color: #626468;
 				}
-				.tag{
+
+				.tag {
 					margin-right: 16rpx;
-					width: 112rpx;
+					min-width: 112rpx;
 					height: 56rpx;
+					padding: 0 10rpx;
+					margin-bottom: 10rpx;
 					line-height: 56rpx;
 					text-align: center;
 					background: #F0FAFF;
@@ -369,7 +413,8 @@
 					font-size: 24rpx;
 					color: #008FD3;
 				}
-				.add-tag{
+
+				.add-tag {
 					display: flex;
 					align-items: center;
 					justify-content: center;
@@ -380,26 +425,30 @@
 					border: 1rpx solid #008FD3;
 					font-size: 22rpx;
 					color: #008FD3;
-					image{
+
+					image {
 						margin-right: 8rpx;
 					}
 				}
 			}
-			.demands{
-				.title{
+
+			.demands {
+				.title {
 					font-family: PingFang SC;
 					font-weight: 500;
 					font-size: 32rpx;
 					color: #222426;
-					padding:28rpx 0;
+					padding: 28rpx 0;
 				}
-				.text{
+
+				.text {
 					font-weight: 400;
 					font-size: 28rpx;
 					color: #898E91;
 				}
 			}
-			.msg-box{
+
+			.msg-box {
 				width: 144rpx;
 				height: 56rpx;
 				line-height: 56rpx;
@@ -408,30 +457,34 @@
 				font-size: 24rpx;
 				color: #FFFFFF;
 				text-align: center;
-				background: linear-gradient( 90deg, #FEA501 0%, #FECB8A 100%);
+				background: linear-gradient(90deg, #FEA501 0%, #FECB8A 100%);
 				border-radius: 28rpx 28rpx 28rpx 28rpx;
 				border: 1rpx solid #FEDDB9;
 			}
 		}
-		.used-tools2{
+
+		.used-tools2 {
 			box-sizing: border-box;
 			background: #FFFFFF;
 			border-radius: 16upx;
 			padding: 40upx 30upx;
 			margin-bottom: 20rpx;
-			.title{
+
+			.title {
 				font-size: 32upx;
 				font-family: PingFang SC;
 				font-weight: bold;
 				color: #222222;
 				line-height: 1;
 			}
-			.tools-list{
+
+			.tools-list {
 				margin-top: 50upx;
 				display: flex;
 				flex-wrap: wrap;
 				width: 100%;
-				.item{
+
+				.item {
 					box-sizing: border-box;
 					width: 25%;
 					display: flex;
@@ -440,11 +493,13 @@
 					justify-content: center;
 					margin-bottom: 50upx;
 					position: relative;
-					image{
+
+					image {
 						width: 44upx;
 						height: 44upx;
 					}
-					.text{
+
+					.text {
 						font-size: 24upx;
 						font-family: PingFang SC;
 						font-weight: 500;
@@ -452,7 +507,8 @@
 						line-height: 1;
 						margin-top: 20upx;
 					}
-					.contact-btn{
+
+					.contact-btn {
 						display: inline-block;
 						position: absolute;
 						top: 0;
@@ -462,7 +518,8 @@
 						opacity: 0;
 					}
 				}
-				.remark{
+
+				.remark {
 					font-family: PingFang SC;
 					font-weight: 400;
 					font-size: 28rpx;
@@ -470,47 +527,53 @@
 					text-align: left;
 				}
 			}
-			.index-box{
+
+			.index-box {
 				margin-top: 30rpx;
 				display: flex;
-				    align-items: center;
-				    justify-content: space-between;
-				.box-title{
+				align-items: center;
+				justify-content: space-between;
+
+				.box-title {
 					font-family: PingFang SC;
 					font-weight: 400;
 					font-size: 24rpx;
 					color: #626468;
 					margin: 0 14rpx;
 				}
-				.prop{
+
+				.prop {
 					font-family: Roboto Slab;
 					font-weight: 500;
 					font-size: 48rpx;
 					color: #222426;
 				}
-				.task{
+
+				.task {
 					width: 311rpx;
 					height: 142rpx;
 					background: #EBF8FF;
 					border-radius: 16rpx 16rpx 16rpx 16rpx;
 					display: flex;
-					    flex-direction: column;
-					    justify-content: center;
-					    align-items: center;
+					flex-direction: column;
+					justify-content: center;
+					align-items: center;
 				}
-				.work{
+
+				.work {
 					width: 311rpx;
 					height: 142rpx;
 					background: #FFF3DE;
 					border-radius: 16rpx 16rpx 16rpx 16rpx;
 					display: flex;
-					    flex-direction: column;
-					    justify-content: center;
-					    align-items: center;
+					flex-direction: column;
+					justify-content: center;
+					align-items: center;
 				}
 			}
 		}
-		.log-out{
+
+		.log-out {
 			height: 80upx;
 			line-height: 80upx;
 			text-align: center;
@@ -523,4 +586,4 @@
 			margin-top: 20upx;
 		}
 	}
-</style>
+</style>

+ 2 - 2
pages_company/clientList.vue

@@ -13,7 +13,7 @@
 		</view>
 		<view class="top-title">下级列表</view>
 		<!-- 订单列表 -->
-		<mescroll-body ref="mescrollRef" :up="upOption">
+		<!-- <mescroll-body ref="mescrollRef"> -->
 			<view class="client-list">
 				<view v-for="(item,index) in dataList" :key="index" class="item"  @click="showDetail()">
 					<view class="top-box">
@@ -46,7 +46,7 @@
 				
 			</view>
 			<view class="h20"></view>
-		</mescroll-body>
+		<!-- </mescroll-body> -->
 		<view class="popup-box" v-if="editShow">
 		  <view class="info-mask"  @click.stop="cancelEditMoney()" ></view>
 		  <view class="info-form" >

+ 482 - 0
pages_company/distribution.vue

@@ -0,0 +1,482 @@
+<template>
+	<view class="content">
+		<view class="align-center justify-center">
+			<text class="fs32">恭喜成为推广大使!</text>
+		</view>
+	</view>
+</template>
+<script>
+	import {getFindById,updateByI,bindPromoter} from '@/api/companyUser.js'
+	import {getDictByKey} from '@/api/common.js'
+	import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
+	export default {
+		mixins: [MescrollMixin], 
+		data() {
+			return {
+				time:this.utils.timeFormat(new Date(),'yyyy-mm-dd'),
+				type:null,
+				showType:1,
+				mescroll:null,
+				tags:[
+					// {id:0,name:'未完成'},
+					// {id:1,name:'进行中'},
+					// {id:2,name:'已完成'},
+				],
+				// 上拉加载的配置
+				upOption: {
+					onScroll:true,
+					use: true, // 是否启用上拉加载; 默认true
+					page: {
+						num: 0, // 当前页码,默认0,回调之前会加1,即callback(page)会从1开始
+						size: 10 // 每页数据的数量,默认10
+					},
+					noMoreSize: 10, // 配置列表的总数量要大于等于5条才显示'-- END --'的提示
+					empty: {
+						icon:'/static/images/no_data.png',
+						tip: '暂无数据'
+					}
+				},
+				form:{
+				},
+				userCode:null
+			}
+		},
+		onLoad(options) {
+			this.userCode= options.scene
+			this.getBindPromoter()
+		},
+		methods: {
+			navgetTo(url){
+				uni.navigateTo({
+					url:url
+				})
+			},
+		getBindPromoter(){
+			var data = {
+				userCode:this.userCode
+			};
+			bindPromoter(data).then(
+				res => {
+					if (res.code == 200) {
+						uni.showToast({
+							icon:'success',
+							title: "成为推广大使成功!",
+						});
+						// this.tuiModalControl = false
+					} else {
+						uni.showToast({
+							icon: 'none',
+							title: res.msg,
+						});
+					}
+				},
+				rej => {}
+			);
+		},
+			bindDateChange: function(e) {
+				this.form.dueDate= e.target.value
+			},
+			bindTimeChange: function(e) {
+				this.form.completeTime = e.target.value
+			},
+			bindStatusChange: function(e,list) {
+				this.form.status = list[e.target.value].dictValue
+				this.form.statusText=list[e.target.value].dictLabel
+			},
+			getDictByKey(){
+				var data={key:'todo_item_status'}
+				getDictByKey(data).then(
+					res => {
+						if(res.code==200){
+							this.tags=res.data;
+						}
+					},
+					err => {
+					}
+				);
+				
+			},
+			getInfo(){
+				var data={id:this.recordId};
+				getFindById(data).then(
+					res => {
+						if(res.code==200){
+							  this.form=res.data;
+							  // this.form.completeTime=this.form.completeTime.slice(0,5)
+							  
+						}else{
+							uni.showToast({
+								title: res.msg,
+							});
+						}
+					},
+					rej => {}
+				);
+			},
+		    submit(){
+		    	if(this.form.status==null){
+		    		uni.showToast({
+		    			icon:'none',
+		    			title: "请选择状态",
+		    		});
+		    		return;
+		    	}
+		    	// if(this.form.recordTime==null){
+		    	// 	uni.showToast({
+		    	// 		icon:'none',
+		    	// 		title: "记录时间不能为空",
+		    	// 	});
+		    	// 	return;
+		    	// }
+		    	// if(this.form.mealDescription==null){
+		    	// 	uni.showToast({
+		    	// 		icon:'none',
+		    	// 		title: "用餐情况不能为空",
+		    	// 	});
+		    	// 	return;
+		    	// }
+		    	if(this.type=="add"){
+		    		this.addRecord()
+		    	}
+		    	else if(this.type=="edit"){
+		    		this.updateById()
+		    	}
+		    	
+		    },
+		    updateById(){
+		    	updateById(this.form).then(
+		    		res => {
+		    			if(res.code==200){
+		    				 uni.showToast({
+		    				 	icon:'success',
+		    				 	title: "操作成功",
+		    				 });
+		    				 setTimeout(function() {
+		    					 uni.$emit('refreshToDoList');
+		    					 uni.navigateBack({
+		    						 delta: 1
+		    					 })
+		    				 }, 500);
+		    			}else{
+		    				uni.showToast({
+		    					icon:'none',
+		    					title: res.msg,
+		    				});
+		    			}
+		    		},
+		    		rej => {}
+		    	);
+		    },
+		    addRecord(){
+		    	addRecord(this.form).then(
+		    		res => {
+		    			if(res.code==200){
+		    				 uni.showToast({
+		    				 	icon:'success',
+		    				 	title: "操作成功",
+		    				 });
+		    				 setTimeout(function() {
+		    					uni.$emit('refreshToDoList');
+		    					 uni.navigateBack({
+		    						 delta: 1
+		    					 })
+		    				 }, 500);
+		    			}else{
+		    				uni.showToast({
+		    					icon:'none',
+		    					title: res.msg,
+		    				});
+		    			}
+		    		},
+		    		rej => {}
+		    	);
+		    },
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@mixin u-flex($flexD, $alignI, $justifyC) {
+		display: flex;
+		flex-direction: $flexD;
+		align-items: $alignI;
+		justify-content: $justifyC;
+	}
+	.flex-bt {
+		@include u-flex(row, center, space-between);
+	}
+	.default {
+		font-weight: 400;
+		font-size: 28rpx;
+		color: #999999;
+	}
+	.content{
+		padding: 20upx;
+		.datebox {
+			padding: 0 30rpx;
+			margin-bottom: 20rpx;
+			background: #FFFFFF;
+			border-radius: 16rpx 16rpx 16rpx 16rpx;
+			.form-item{
+				padding: 30upx 0;
+				display: flex;
+				align-items: flex-start;
+				border-bottom: 1px solid #F1F1F1;
+				&:last-child{
+					border-bottom: none;
+				}
+				.label{
+					flex:1;
+					font-family: PingFang SC, PingFang SC;
+					font-weight: 500;
+					font-size: 32rpx;
+					color: #222426;
+					line-height: 34rpx;
+					text-align: left;
+				}
+				input{
+					text-align: right;
+				}
+				.form-input{
+					font-size: 30upx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #999999;
+					text-align: right;
+				}
+				.form-textarea{
+					font-size: 30upx;
+					color: #999999;
+					height: 100upx;
+					padding: 4upx 0;
+				}
+				 
+				.birth-picker {
+					flex: 1;
+					display: flex;
+					align-items: center;
+					
+					.right-box{
+						width: 100%;
+						display: flex;
+						align-items: center;
+						.input-box{
+							// width: 470upx;
+						}
+						.arrow{
+							width: 13upx;
+							height: 23upx;
+							margin-left: 20upx;
+						}
+					}
+				}
+			}
+		}
+		.datebox2{
+			background: #FFFFFF;
+			padding:30rpx;
+			border-radius: 16rpx 16rpx 16rpx 16rpx;
+			.textinput{
+				margin-top: 30rpx;
+				height:200rpx;
+				overflow-y: scroll;
+			}
+		}
+		.top-fixed{
+			width: 100%;
+			position: fixed;
+			top: 0;
+			left: 0;
+			z-index: 10;
+		}
+		.pub-tab-box{
+			box-sizing: border-box;
+			width: 100%;
+			padding: 0 40upx;
+			background-color: #FFFFFF;
+			.tab-inner{
+				height: 88upx;
+				line-height: 88upx;
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+				overflow-x: auto;
+			}
+			.item{
+				flex:1;
+				font-size: 28upx;
+				white-space: nowrap;
+				line-height: 1;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #626468;
+				// margin-right: 60upx;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				&:last-child{
+					margin-right: 0;
+				}
+				&.active{
+					font-weight: bold;
+					color:#008FD3;
+					&::after {
+						content: "";
+						width: 48rpx;
+						height: 8rpx;
+						background: linear-gradient(120deg, #31A1FE  0%, #008FD3 100%);
+						position: absolute;
+						bottom: 0;
+						border-radius: 6upx 6upx 0upx 0;
+					}
+				}
+				.text{
+					position: relative;
+					z-index: 1;
+				}
+				.tab-bg{
+					width: 72upx;
+					height: 28upx;
+					position: absolute;
+					top: 17upx;
+					left: 50%;
+					transform: translateX(-36upx);
+					z-index: -1;
+				}
+			}
+		}
+		.btn-box{
+			z-index: 9999;
+			width: 100%;
+			padding: 30upx;
+			// position: fixed;
+			bottom: 0;
+			left: 0;
+			box-sizing: border-box;
+			// background: #FFFFFF;
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+			 padding-bottom: 40rpx;
+			.sub-btn{
+				flex:1;
+				// width: 100%;
+				height: 88upx;
+				line-height: 88upx;
+				text-align: center;
+				font-size: 32upx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #FFFFFF;
+				background: #008FD3;
+				border-radius: 44upx;
+				display: flex;
+				align-items: center;
+				 border: 2rpx solid #008FD3;
+				justify-content: center;
+				image{
+					margin-right: 16rpx;
+				}
+			}
+			.sub-btn2{
+					flex:1;
+					height: 88upx;
+					line-height: 88upx;
+					text-align: center;
+					font-size: 32rpx;
+					color: #008FD3;
+					font-family: PingFang SC;
+					font-weight: bold;
+					background: #FFFFFF;
+						 border-radius: 44rpx 44rpx 44rpx 44rpx;
+						 border: 2rpx solid #008FD3;
+						 margin-right: 20rpx;
+			}
+		}
+	   .phone-list{
+		   // padding: 30rpx;
+		  
+		   .item{
+			   display: flex;
+			   align-items: center;
+			   justify-content: space-between;
+			   background: #FFFFFF;
+			   border-radius: 16rpx 16rpx 16rpx 16rpx;
+			   // border-bottom: 1rpx solid #ECECEC;
+			   padding: 20rpx;
+			   margin-bottom: 20rpx;
+			   &:last-child{
+				    margin-bottom: 0;
+					
+			   }
+			   .phone-name{
+				   display: flex;
+				   flex-direction: column;
+				   align-items: flex-start;
+				   // justify-content: flex-start;
+				   // padding-left: 24rpx;
+				       flex: 1;
+				   .name{
+				   				   font-family: PingFang SC, PingFang SC;
+				   				   font-weight: 500;
+				   				   font-size: 32rpx;
+				   				   color: #222426;
+				   				   text-align: left;
+				   }
+				   .type{
+					   font-family: PingFang SC;
+					   font-weight: 400;
+					   font-size: 28rpx;
+					   color: #626468;
+					   text-align: right;
+				   }
+				   .time{
+					   font-family: PingFang SC;
+					   font-weight: 400;
+					   font-size: 24rpx;
+					   color: #898E91;
+					   text-align: left;
+					   margin-top: 14rpx;
+				   }
+			   }
+			   
+		   }
+	   }
+	   .sms-list{
+		   .item{
+			   padding: 30rpx;
+			   background: #FFFFFF;
+			   border-radius: 16rpx 16rpx 16rpx 16rpx;
+			   margin-bottom: 20rpx;
+			   .title{
+				   font-family: PingFang SC;
+				   font-weight: 500;
+				   font-size: 32rpx;
+				   color: #222426;
+				   text-align: left;
+			   }
+			   .box{
+				   display: flex;
+				   align-items: center;
+				   justify-content: space-between;
+				   padding-top: 22rpx;
+				   .time{
+					   font-family: PingFang SC;
+					   font-weight: 400;
+					   font-size: 24rpx;
+					   color: #898E91;
+					   text-align: left;
+				   }
+				   .state{
+					   font-family: PingFang SC;
+					   font-weight: 400;
+					   font-size: 24rpx;
+					   color: #2CAE5C;
+					   text-align: right;
+				   }
+			   }
+		   }
+	   }
+		
+	}
+</style>

+ 2 - 2
pages_company/doc.vue

@@ -14,8 +14,8 @@
 							<image :src="item.avatar==null?maleurl:item.avatar" class="w112 h112"></image>
 							<view class="ml32">
 								<view class="name">{{item.username!==null?item.username:'微信用户'}}</view>
-								<view class="age-box"  :style="{'background-color':item.sex==0?'#EBF8FF':'#FCF0E7'}">
-									<u-icon :color="item.sex==0?'#008FD3':'#FF5030'" :name="item.sex==0?'man':'woman'"></u-icon>
+								<view class="age-box"  :style="{'background-color':item.sex==1?'#FCF0E7':'#EBF8FF'}">
+									<u-icon :color="item.sex==1?'#FF5030':'#008FD3'" :name="item.sex==1?'woman':'man'"></u-icon>
 									<view class="age">{{utils.getAge(item.birthdate)}}岁</view>
 								</view>
 							</view>

+ 5 - 5
pages_company/index.vue

@@ -55,7 +55,7 @@
 			<view class="user-info2">
 				<view class="left">
 					<view class="head-img">
-						<image :src="user.avatar==null?'../static/images/health/my_heads.png':user.avatar" mode="aspectFill"></image>
+						<image :src="user.avatar==null || user.avatar==''?'../static/images/health/my_heads.png':user.avatar" mode="aspectFill"></image>
 					</view>
 					<view class="name-phone">
 						<view class="align-end">
@@ -70,7 +70,7 @@
 						</view>
 					</view>
 				</view>
-				<view class="msg-box">
+				<view class="msg-box" v-if='user.deptName!==null'>
 					 {{user.deptName||''}}
 				</view>
 			</view>
@@ -110,14 +110,14 @@
 						<image src="../static/images/company/customer_profile_icon.png" mode=""></image>
 						<text class="text">客户档案</text>
 					</view>
-					<view class="item" @click="navgetTo('/pages_user/user/userTui')">
+					<view class="item" @click="navgetTo()">
 						<image src="../static/images/company/manager_examine_icon.png" mode=""></image>
 						<text class="text">管理师考核</text>
 					</view>
-					<view class="item" @click="navgetTo('/pages_company/clientList')">
+					<!-- <view class="item" @click="navgetTo('/pages_company/clientList')">
 						<image src="../static/images/company/my_subordinate.png" mode=""></image>
 						<text class="text">我的下级</text>
-					</view>
+					</view> -->
 					<view class="item" @click="navgetTo('/pages_company/complaintList')">
 						<image src="../static/images/company/customer_complaints_icon.png" mode=""></image>
 						<text class="text">客户投诉</text>

+ 4 - 4
pages_company/todoList.vue

@@ -64,19 +64,19 @@
 			return {
 				taskType: [{
 						name: "全部",
-						val: null
+						val:''
 					},
 					{
 						name: "固定任务",
-						val: 0
+						val: '0'
 					},
 					{
 						name: "工作计划",
-						val: 1
+						val: '1'
 					},
 				],
 				isShow:false,
-				showType: null,
+				showType:'',
 				mescroll: null,
 				// 上拉加载的配置
 				upOption: {

+ 52 - 42
pages_echarts/acid.vue

@@ -7,14 +7,14 @@
 		</u-navbar>
 
 		<view class="top-fixed">
-			<dateTimePicker @onChange="onChangeTime" :tabColor="'blue'" />
+			<dateTimePicker @onChange="onChangeTime" :tabColor="'blue'" ref="datePickerRef"/>
 		</view>
 		<scroll-view class="content" :scroll-y="true">
 			<view class="content-box">
 				<view class="tltle">尿酸趋势</view>
 				<view class="subtitle">单位:μmol/L</view>
 				<view class="charts-box">
-					<qiun-data-charts type="column" :opts="opts" :chartData="chartData" />
+					<qiun-data-charts type="area":opts="opts" :chartData="chartData" />
 				</view>
 				<view class="legend">
 					<view class="legend-item">
@@ -112,47 +112,49 @@
 				],
 				indexInfo: [],
 				chartData: {},
-				opts: {
-					padding: [15, 0, 15, 0],
-					enableScroll: false,
-					dataLabel: false,
-					legend: {
-						show: false
-					},
-					xAxis: {
-						disableGrid: true,
-						fontSize: 12,
-						axisLine: false,
+			opts: {
+				padding: [25, 10, 0, 0],
+				enableScroll: false,
+				dataLabel: false,
+				dataPointShapeType: "hollow",
+				legend: {
+					show: false
+				},
+				xAxis: {
+					disableGrid: true,
+					fontSize: 12,
+					axisLine: false,
+					fontColor: '#ccc',
+					labelCount: 7,
+					format: "formatterTime",
+				},
+				yAxis: {
+					gridType: "dash",
+					dashLength: 2,
+					data: [{
 						fontColor: '#ccc',
-						labelCount: 7,
-						format: "formatterTime",
-					},
-					yAxis: {
+						min: 0,
+						axisLine: false,
+						fontSize: 12,
+					}]
+				},
+				extra: {
+					tooltip: {
 						gridType: "dash",
-						dashLength: 2,
-						data: [{
-							fontColor: '#ccc',
-							min: 0,
-							// max: 100,
-							axisLine: false,
-							fontSize: 12,
-						}]
+						showArrow: false,
+						legendShow: true,
+						legendShape: "circle"
 					},
-					extra: {
-						tooltip: {
-							gridType: "dash",
-							showArrow: false,
-							legendShow: true,
-							legendShape: "circle"
-						},
-						column: {
-							type: "group",
-							width: 12,
-							barBorderRadius: [4, 4, 0, 0],
-						}
-					},
-					
-				},count:{},
+					area: {
+						type: "straight",
+						opacity: 0.2,
+						addLine: true,
+						width: 2,
+						gradient: true,
+						activeType: "solid"
+					}
+				}
+			},count:{},
 					user:null
 			}
 		},
@@ -177,6 +179,14 @@
 				this.getServerData(0);
 			})
 		},
+		onShow(){
+			var item={value:'day'}
+			    if (this.$refs.datePickerRef) {
+					console.log('chufa')
+			      this.$refs.datePickerRef.handleTab(item,0);
+				  this.getServerData(0);
+			    }
+		},
 		onUnload() { //普通页面在 onUnload 生命周期中执行
 			uni.$emit('stop')
 		},
@@ -193,8 +203,8 @@
 				this.aIndex = item.val
 			},
 			onChangeTime(time,tab) {
-				if (this.userId) {
-					this.examDate=time
+				this.examDate=time
+				if (tab) {
 				    this.getServerData(tab);
 				  }
 				// this.queryParam = param

+ 12 - 3
pages_echarts/bloodPressure.vue

@@ -7,7 +7,7 @@
 		</u-navbar>
 		<view class="top-fixed">
 			<!-- tab切换 -->
-		<dateTimePicker @onChange="onChangeTime" :tab-color="'orange'"/>
+		<dateTimePicker @onChange="onChangeTime" :tab-color="'orange'" ref="datePickerRef"/>
 		</view>
 		<scroll-view class="content" :scroll-y="true">
 			<view class="content-box">
@@ -146,11 +146,20 @@
 			this.userId=options.userId
 			// this.getUserInfo()
 			// this.getServerData(0);
+			// this.getServerData(0);
 			uni.$on('refreshBloodPressure', () => {
 				this.aIndex=0
 				this.getServerData(0);
 			})
 		},
+		onShow(){
+			var item={value:'day'}
+			    if (this.$refs.datePickerRef) {
+					console.log('chufa')
+			      this.$refs.datePickerRef.handleTab(item,0);
+				  this.getServerData(0);
+			    }
+		},
 		onUnload() { //普通页面在 onUnload 生命周期中执行
 			uni.$emit('stop')
 		},
@@ -167,8 +176,8 @@
 				this.aIndex = item.val
 			},
 			onChangeTime(time,tab) {
-				if (this.userId) {
-					this.examDate=time
+				this.examDate=time
+				if (tab) {
 				    this.getServerData(tab);
 				  }
 			},

+ 13 - 5
pages_echarts/bloodSugar.vue

@@ -7,7 +7,7 @@
 		</u-navbar>
 		<view class="top-fixed">
 			<!-- tab切换 -->
-			<dateTimePicker @onChange="onChangeTime" :tab-color="'gree'" :form-tab="aIndex"/>
+			<dateTimePicker @onChange="onChangeTime" :tab-color="'gree'" :form-tab="aIndex" ref="datePickerRef"/>
 		</view>
 		<scroll-view class="content" :scroll-y="true">
 			<view class="content-box">
@@ -174,7 +174,12 @@ import dateTimePicker from "@/pages_echarts/components/dateTimePicker/dateTimePi
 			})
 		},
 		onShow(){
-			// this.getServerData(0);
+			var item={value:'day'}
+			    if (this.$refs.datePickerRef) {
+					console.log('chufa')
+			      this.$refs.datePickerRef.handleTab(item,0);
+				  this.getServerData(0);
+			    }
 		},
 		// onUnload() { //普通页面在 onUnload 生命周期中执行
 		// 	uni.$emit('stop')
@@ -193,10 +198,13 @@ import dateTimePicker from "@/pages_echarts/components/dateTimePicker/dateTimePi
 			},
 			onChangeTime(time,tab) {
 				// console.log(time,tab,'----')
-				if (this.userId) {
+				
 					this.examDate=time
-				    this.getServerData(tab);
-				  }
+					if(tab){
+						 this.getServerData(tab);
+					}
+				   
+				  
 				// this.getServerData(tab)
 			},
 			getUserInfo(){

+ 29 - 28
pages_echarts/components/dateTimePicker/dateTimePicker.vue

@@ -46,10 +46,10 @@
 				type: Number,
 				default: 0
 			},
-			formTab:{
-				type: Number,
-				default: 0
-			},
+			// formTab:{
+			// 	type:  [Number, null],
+			// 	default:null
+			// },
 			from: {
 				type: String,
 				default: ""
@@ -78,7 +78,8 @@
 				value: this.utils.timeFormat(),
 				weekValue: "",
 				startTime: "",
-				endTime: ""
+				endTime: "",
+				initialTab: 0 // 1. 新增:存储组件初始化时的tab值
 			}
 		},
 		computed: {
@@ -96,35 +97,35 @@
 			}
 		},
 		created() {
-			console.log(this.tabColor,'---')
-			if(this.from == "report") {
-				this.activeTab = 2
-				this.fields = 'month'
-				this.value = this.utils.timeFormat(new Date(), 'yyyy-mm')
-			} else if(this.from == "sports") {
-				this.tabs = [{
-					label: '每日',
-					value: 'day'
-				},{
-					label: '每周',
-					value: 'week'
-				}]
-			}
+			// console.log(this.form,'000')
+			// if(this.form=='init'){
+			// 	console.log(this.form,'===')
+			// 	this.activeTab = 0
+			// 	this.fields='day'
+			// 	this.value = this.utils.timeFormat()
+			// }
+			// if(this.from == "report") {
+			// 	this.activeTab = 2
+			// 	this.fields = 'month'
+			// 	this.value = this.utils.timeFormat(new Date(), 'yyyy-mm')
+			// } else if(this.from == "sports") {
+			// 	this.tabs = [{
+			// 		label: '每日',
+			// 		value: 'day'
+			// 	},{
+			// 		label: '每周',
+			// 		value: 'week'
+			// 	}]
+			// }
+			
 			this.resetTime()
+			// this.initialTab = this.activeTab;
 		},
 		mounted(){
-			if(this.formTab!==null){
-				var item={
-						label: '每日',
-						value: 'day'
-					}
-				this.handleTab(item,this.formTab)	
-			}
-			// this.activeTab=this.formTab
 		},
 		methods: {
 			handleTab(item,index) {
-				// console.log(index,'zhix')
+				console.log(index,'zhix')
 				this.activeTab = index
 				this.fields = item.value == 'week' ? 'day' : item.value
 				if(this.activeTab == 0) { // 每日

+ 13 - 3
pages_echarts/hips.vue

@@ -17,7 +17,7 @@
 					</view>
 				</view>
 			</view> -->
-			<dateTimePicker @onChange="onChangeTime" :tab-color="'purple'"/>
+			<dateTimePicker @onChange="onChangeTime" :tab-color="'purple'" ref="datePickerRef"/>
 		</view>
 		<scroll-view class="content" :scroll-y="true">
 			<view class="content-box">
@@ -157,16 +157,26 @@
 				return 'rgba(11,179,242, ' + top + ')';
 			},
 		},
+		
 		onLoad(options) {
 			// 获取系统信息
 			const sys = uni.getSystemInfoSync()
 			this.statusBarHeight = sys.statusBarHeight + 'px'
 			this.userId=options.userId
+			// this.getServerData(0);
 			uni.$on('refreshHips', () => {
 				this.aIndex=0
 				this.getServerData(0);
 			})
 		},
+		onShow(){
+			var item={value:'day'}
+			    if (this.$refs.datePickerRef) {
+					console.log('chufa')
+			      this.$refs.datePickerRef.handleTab(item,0);
+				  this.getServerData(0);
+			    }
+		},
 		onUnload() { //普通页面在 onUnload 生命周期中执行
 			uni.$emit('stop')
 		},
@@ -183,8 +193,8 @@
 				this.aIndex = item.val
 			},
 			onChangeTime(time,tab) {
-				if (this.userId) {
-					this.examDate=time
+				this.examDate=time
+				if (tab) {
 				    this.getServerData(tab);
 				  }
 			},

+ 17 - 8
pages_echarts/waistLine.vue

@@ -17,7 +17,7 @@
 					</view>
 				</view>
 			</view> -->
-			<dateTimePicker @onChange="onChangeTime" :tab-color="'orange'"/>
+			<dateTimePicker @onChange="onChangeTime" :tab-color="'orange'" ref="datePickerRef"/>
 		</view>
 		<scroll-view class="content" :scroll-y="true">
 			<view class="content-box">
@@ -95,7 +95,7 @@
 				examDate:null,
 				statusBarHeight: '',
 				top: 0,
-				aIndex: 0,
+				aIndex:'',
 				times: [{
 						name: "每日",
 						val: 0
@@ -147,7 +147,7 @@
 					}
 				},
 				count:{},
-				user:null
+				userId:null
 			}
 		},
 		computed: {
@@ -159,18 +159,26 @@
 		},
 		onLoad(options) {
 			// 获取系统信息
-			// console.log(options,'===')
+			console.log(options,'===')
 			// this.user=JSON.parse(uni.getStorageSync('userInfo'))
 			const sys = uni.getSystemInfoSync()
 			this.statusBarHeight = sys.statusBarHeight + 'px'
 			this.userId=options.userId
 			uni.$on('refreshWaistLine', () => {
-				this.aIndex=0
 				this.getServerData(0);
 			})
 			// this.getServerData();
 		},
+		onShow(){
+			var item={value:'day'}
+			    if (this.$refs.datePickerRef) {
+					console.log('chufa')
+			      this.$refs.datePickerRef.handleTab(item,0);
+				  this.getServerData(0);
+			    }
+		},
 		onUnload() { //普通页面在 onUnload 生命周期中执行
+		   // uni.$off('refreshWaistLine');
 			uni.$emit('stop')
 		},
 		onHide() { //tabBar页面在onHide生命周期中执行
@@ -186,10 +194,11 @@
 				this.aIndex = item.val
 			},
 			onChangeTime(time,tab) {
-				if (this.userId) {
+				console.log(time,tab,'===')
 					this.examDate=time
-				    this.getServerData(tab);
-				  }
+					if (tab) {
+						this.getServerData(tab);
+					}
 				// this.examDate = {
 				// 	startTime: this.utils.timeFormat(time[0],'yyyy/mm/dd hh:MM:ss'),
 				// 	endTime: this.utils.timeFormat(time[1],'yyyy/mm/dd hh:MM:ss'),

+ 2 - 0
pages_health/addUser.vue

@@ -451,6 +451,7 @@
 					});
 					setTimeout(function() {
 						uni.$emit('refreshDoc');
+						uni.$emit('refreshHealthFiles');
 						uni.navigateBack({
 							delta: 1
 						})
@@ -475,6 +476,7 @@
 					});
 					setTimeout(function() {
 						uni.$emit('refreshDoc');
+						uni.$emit('refreshHealthFiles');
 						uni.navigateBack({
 							delta: 1
 						})

+ 300 - 331
pages_health/healthfiles.vue

@@ -2,12 +2,8 @@
 	<view class="hb column hidden container">
 		<image class="bg" src="https://user.test.ylrztop.com/images/jkda_top_bg.png" mode="widthFix"></image>
 		<view :style="{height: statusBarHeight,background: bgColor }"></view>
-		<u-navbar
-			title="健康档案" titleStyle="font-weight: bold;"
-			@rightClick="rightClick"
-			:autoBack="true"
-			:bg-color="bgColor"
-		>
+		<u-navbar title="健康档案" titleStyle="font-weight: bold;" @rightClick="rightClick" :autoBack="true"
+			:bg-color="bgColor">
 		</u-navbar>
 		<scroll-view class="content" :scroll-y="true">
 			<view class="justify-between align-center bg-white radius12 p28">
@@ -25,16 +21,15 @@
 			</view>
 			<view class="fs36 bold mt20">健康数据</view>
 			<view class="health-monitoring">
-				<view class="health-monitoring-item"
-					@click="handleMonitoring(0)">
+				<view class="health-monitoring-item" @click="handleMonitoring(0)">
 					<view class="health-monitoring-title">
 						<view>
-							<view class="health-monitoring-maintitle bold">{{BMI.toFixed(2)}}</view>
-							<view :class="bmiCategory=='肥胖'?'text-color':''">{{bmiCategory}}</view>
+							<view class="health-monitoring-maintitle bold">{{BMI?BMI.toFixed(2):'--'}}</view>
+							<view :class="bmiCategory=='超重'||bmiCategory=='肥胖'?'text-color':''">{{bmiCategory}}</view>
 						</view>
 						<image src="/static/images/health/BMI_icon.png" mode="aspectFill"></image>
 					</view>
-					<view class="health-bmi mt50">
+					<view class="health-bmi mt40">
 						<view class="justify-between align-center mb12">
 							<view class="justify-start align-center ">
 								<text class="color-text2 fs24 mr20">身高</text>
@@ -56,13 +51,15 @@
 					<view class="health-monitoring-title">
 						<view>
 							<view class="health-monitoring-maintitle bold">{{item.title}}</view>
-							<view>{{item.type==0?'正常':item.type==1?'偏小':'偏大'}}</view>
+							<view v-if='index<2'>{{item.type==0?'正常':item.type==1?'偏小':'偏大'}}</view>
+							<view v-if='index>1'>{{item.type==0?'正常':item.type==1?'轻微':'严重'}}</view>
 						</view>
-						<image :src="img[index]" mode="aspectFill"></image>
+						<image :src="item.icon" mode="aspectFill"></image>
 					</view>
 					<view>
 						<view class="health-monitoring-res resnum">{{item.value.value1 || '--'}}</view>
-						<view class="health-monitoring-time">{{item.value.measurementDate}} {{item.value.measurementTime}}</view>
+						<view class="health-monitoring-time">{{item.value.measurementDate|| '--'}}
+							{{item.value.measurementTime|| '--'}}</view>
 					</view>
 				</view>
 			</view>
@@ -72,7 +69,8 @@
 					<image class="health-bgicon" src="https://user.test.ylrztop.com/images/jbs_icon.png"></image>
 					<view class="health-item-info">
 						<view class="cardbox-maintitle" style="margin-bottom: 0;">疾病史</view>
-						<view class="text-overflow" style="margin-top: 20rpx;">{{form.otherMedicalHistory || "尚未记录"}}</view>
+						<view class="text-overflow" style="margin-top: 20rpx;">{{form.otherMedicalHistory || "尚未记录"}}
+						</view>
 					</view>
 				</view>
 				<view class="health-item" @click="handleEditHealth()">
@@ -89,138 +87,80 @@
 </template>
 
 <script>
-	import {getUserInfo} from '@/api/user.js'
-	import {getInfo,getDoc,homeInfo} from '@/api/healthUser.js'
-import carKeyboard from '../uni_modules/uview-ui/libs/config/props/carKeyboard';
+	import {
+		getUserInfo
+	} from '@/api/user.js'
+	import {
+		getInfo,
+		getDoc,
+		homeInfo
+	} from '@/api/healthUser.js'
+	import carKeyboard from '../uni_modules/uview-ui/libs/config/props/carKeyboard';
 	export default {
 		data() {
 			return {
-				statusBarHeight:'',
-				top:0,
-				null:0,
-				famaleurl:"/static/images/health/female_profile.png",
-				maleurl:"/static/images/health/my_heads.png",
-				img:[
-					"/static/images/health/waist_circumference_icon.png",
+				statusBarHeight: '',
+				top: 0,
+				null: 0,
+				famaleurl: "/static/images/health/female_profile.png",
+				maleurl: "/static/images/health/my_heads.png",
+				img: [
+					
 					"/static/images/health/hip_circumference_icon.png",
-					 "/static/images/health/blood_sugar_icon.png",
+					"/static/images/health/blood_sugar_icon.png",
 					"/static/images/health/blood_pressure_icon.png",
 					"/static/images/health/uric_acid_icon.png"
 				],
-				indexInfo: [
-					// {
-					// 	data: "",
-					// 	date: "",
-					// 	height:'',
-					// 	weight:'',
-					// 	type: {
-					// 		type: "BMI 24.8",
-					// 		title: "肥胖",
-					// 		icon:"/static/images/health/BMI_icon.png"
-					// 	}
-					// },
-					{
-						data: "",
-						date: "",
-						type: {
-							type: "腰围",
-							title: "腰围",
-							icon:"/static/images/health/waist_circumference_icon.png"
-						}
-					},{
-						data: "",
-						date: "",
-						type: {
-							type: "臀围",
-							title: "臀围",
-							icon:"/static/images/health/hip_circumference_icon.png"
-						}
-					},
-					{
-						data: "",
-						date: "",
-						type: {
-							type: "血糖",
-							title: "血糖健康监测",
-							icon: "/static/images/health/blood_sugar_icon.png"
-						}
-					},
-					{
-						data: "",
-						date: "",
-						type: {
-							type: "血压",
-							title: "血压健康监测",
-							icon:"/static/images/health/blood_pressure_icon.png"
-						}
-					},
-					{
-						data: "",
-						date: "",
-						type: {
-							type: "尿酸",
-							title: "尿酸健康监测",
-							icon:"/static/images/health/uric_acid_icon.png"
-						}
-					},
-				],
-				healthRecordsList: [
-					{
-						title: '疾病史',
-						type: "healthHistory",
-						desc: '',
-						bgicon: "https://user.test.ylrztop.com/images/jbs_icon.png",
-					}, {
-						title: '症状史',
-						type: "symptomHistory",
-						desc: '',
-						bgicon: "https://user.test.ylrztop.com/images/zzs_icon.png",
-					}
+				indexInfo: [],
+				bgColor: 'rgba(11,179,242,0)',
+				user: null,
+				bmiCategory: '',
+				info: {},
+				infoList: [{
+					title:'腰围',
+					icon:"/static/images/health/waist_circumference_icon.png",
+					type:0,
+					value:{}
+				},{
+					title:'臀围',
+					icon:"/static/images/health/hip_circumference_icon.png",
+					type:0,
+					value:{}
+				},{
+					title:'血糖',
+					icon:"/static/images/health/blood_sugar_icon.png",
+					type:0,
+					value:{}
+				},{
+					title:'血压',
+					icon:"/static/images/health/blood_pressure_icon.png",
+					type:0,
+					value:{}
+				},{
+					title:'尿酸',
+					icon:"/static/images/health/uric_acid_icon.png",
+					type:0,
+					value:{}
+				}
 				],
-				user:null,
-				info:{},
-				infoList:[],
-				form:null,
-				dataMap:{},
-				BMI:null
-				
+				form: null,
+				dataMap: {},
+				BMI: null
+
 			}
 		},
 		computed: {
 			// 计算属性的 getter
-			bgColor: function() {
-				var top=this.top/30;
-				return 'rgba(11,179,242, ' + top + ')';
-			},
-			 // // 计算BMI值
-			 //    bmiValue() {
-			 //      // if (!this.isValidInput) return 0;
-				//   if(this.form!==null) return '--';
-				// 	   // 获取体重和身高,确保为数字类型
-				// 	   // const weight = this.form.weight||0;
-				// 	   // const height = this.form.height||0;
-				// 	 if(this.form.weight>0 && this.form.height>0)  {
-				// 	         const bmi = this.form.weight / (this.form.height * this.form.height);
-				// 			 console.log(bmi,this.form.height,'---')
-				// 			  return bmi.toFixed(2); // 保留两位小数
-				//   }else{
-				// 	  return '--'
-				//   }
-			 //    },
-			    // 判断BMI对应的体重类别
-			    bmiCategory() {
-			      const bmi = parseFloat(this.bmiValue);
-			      if (bmi < 18.5) return '偏轻';
-			      if (bmi < 24) return '正常';
-			      if (bmi < 28) return '超重';
-			      return '肥胖';
-			    }
+			// bgColor: function() {
+			// 	var top=this.top/30;
+			// 	return 'rgba(11,179,242, ' + top + ')';
+			// },
 		},
 		onLoad() {
-		    // 获取系统信息
-		    const sys = uni.getSystemInfoSync()
-		    this.statusBarHeight = sys.statusBarHeight+'px'
-			
+			// 获取系统信息
+			const sys = uni.getSystemInfoSync()
+			this.statusBarHeight = sys.statusBarHeight + 'px'
+
 			// uni.navigateTo({
 			// 	url: '/pages_health/doc?type=edit&docId='
 			// })
@@ -230,37 +170,37 @@ import carKeyboard from '../uni_modules/uview-ui/libs/config/props/carKeyboard';
 				this.getUserInfo()
 				// this.homeInfo()
 			})
-			
+
 			// this.getInfo()
-			
+
 		},
 		onUnload() { //普通页面在 onUnload 生命周期中执行
-		    uni.$emit('stop')
+			uni.$off('refreshHealthFiles');
+			uni.$emit('stop')
 		},
 		onHide() { //tabBar页面在onHide生命周期中执行
-		    uni.$emit('stop')
+			uni.$emit('stop')
 		},
 		onPageScroll(e) {
-		  	//console.log(e)
-		  	this.top=e.scrollTop;
+			//console.log(e)
+			// this.top=e.scrollTop;
 		},
 		methods: {
-			getUserInfo(){
+			getUserInfo() {
 				getUserInfo().then(
 					res => {
-						if(res.code==200){
-							if(res.user!=null){
-								this.user=res.user;
+						if (res.code == 200) {
+							if (res.user != null) {
+								this.user = res.user;
 								this.getInfo(this.user.userId)
 								this.homeInfo(this.user.userId)
-							}
-							else{
+							} else {
 								this.utils.loginOut();
 							}
-							
-						}else{
+
+						} else {
 							uni.showToast({
-								icon:'none',
+								icon: 'none',
 								title: "请求失败",
 							});
 						}
@@ -269,29 +209,29 @@ import carKeyboard from '../uni_modules/uview-ui/libs/config/props/carKeyboard';
 				);
 			},
 			getInfo(id) {
-				var that=this
+				var that = this
 				var data = {
 					userId: id
 				};
 				getInfo(data).then(
 					res => {
 						if (res.code == 200) {
-							var data=res.data
-							if(res.data.birthdate==null){
+							var data = res.data
+							if (res.data.birthdate == null) {
 								uni.showToast({
 									icon: 'none',
 									title: "请先完善用户信息",
 								});
 								setTimeout(function() {
 									uni.navigateTo({
-										url: '/pages_health/addUser?type=edit&userId='+id
+										url: '/pages_health/addUser?type=edit&userId=' + id
 									})
 								}, 500);
-								
-							}else{
-								this.getDoc(id,data)
+
+							} else {
+								this.getDoc(id, data)
 							}
-							
+
 						} else {
 							uni.showToast({
 								title: res.msg,
@@ -301,23 +241,30 @@ import carKeyboard from '../uni_modules/uview-ui/libs/config/props/carKeyboard';
 					rej => {}
 				);
 			},
-			getDoc(id,form) {
+			getDoc(id, form) {
 				var data = {
 					userId: id
 				};
-				this.BMI=0
 				getDoc(data).then(
 					res => {
 						if (res.code == 200) {
-							this.form=res.data
-							this.$set(this,'form',res.data)
-							this.BMI=res.data.weight / (res.data.height * res.data.height)
-							if(form.birthdate!==null&&res.data==null){
+							this.form = res.data
+							this.$set(this, 'form', res.data)
+							if (this.form.weight && this.form.height) {
+								const heightInMeter = this.form.height / 100; // cm → m
+								this.BMI = this.form.weight / (heightInMeter * heightInMeter);
+								// console.log(this.BMI,'bmi')
+								this.setBmiCategory(); // 同步BMI分类
+							} else {
+								this.BMI = null;
+								this.bmiCategory = '未填写';
+							}
+							if (form.birthdate !== null && res.data == null) {
 								uni.navigateTo({
-									url: '/pages_health/addDoc?userId='+id
+									url: '/pages_health/addDoc?userId=' + id
 								})
-						}
-						}else {
+							}
+						} else {
 							uni.showToast({
 								title: res.msg,
 							});
@@ -326,24 +273,35 @@ import carKeyboard from '../uni_modules/uview-ui/libs/config/props/carKeyboard';
 					rej => {}
 				);
 			},
+			setBmiCategory() {
+				if (!this.BMI) return;
+				if (this.BMI < 18.5) {
+					this.bmiCategory = '偏瘦';
+				} else if (this.BMI < 24) {
+					this.bmiCategory = '正常';
+				} else if (this.BMI < 28) {
+					this.bmiCategory = '超重';
+				} else {
+					this.bmiCategory = '肥胖';
+				}
+			},
+
 			homeInfo(id) {
 				var data = {
-					userId:id
+					userId: id
 				};
 				homeInfo(data).then(
 					res => {
 						if (res.code == 200) {
-							this.info=res.data
+							this.info = res.data
 							const valueList = Object.values(res.data.dataMap);
-							const list = valueList.filter(item=>item!==null)
-							this.infoList=list.map((item,index)=>({
-								title:index==0?'腰围':index==1?'臀围':index==2?'血糖':index==3?'血压':'尿酸',
-								type: item.level,
-								value:item
-							}));
-							console.log(this.infoList,'--')
-							
-						}else {
+							const list = valueList.filter(item => item !== null);
+							for (var i = 0; i < this.infoList.length; i++) {
+							  // 假设list与infoList长度相同且对应
+							  this.infoList[i].type = list[i].level;
+							  this.infoList[i].value = list[i];
+							}
+						} else {
 							uni.showToast({
 								title: res.msg,
 							});
@@ -352,51 +310,51 @@ import carKeyboard from '../uni_modules/uview-ui/libs/config/props/carKeyboard';
 					rej => {}
 				);
 			},
-			handleMonitoring(item,index){
-				console.log(index,'index')
+			handleMonitoring(item, index) {
+				console.log(index, 'index')
 				switch (index) {
-				case 1:
-				uni.navigateTo({
-					url: '/pages_echarts/waistLine?userId='+this.user.userId
-				})
-				break;
-				case 2:
-				uni.navigateTo({
-					url: '/pages_echarts/hips?userId='+this.user.userId
-				})
-				break;
-				case 3:
-				uni.navigateTo({
-					url: '/pages_echarts/bloodSugar?userId='+this.user.userId
-				})
-				break;
-				case 4:
-				uni.navigateTo({
-					url: '/pages_echarts/bloodPressure?userId='+this.user.userId
-				})
-				break;
-				case 5:
-				uni.navigateTo({
-					url: '/pages_echarts/acid?userId='+this.user.userId
-				})
-				break;
-				default:
-				uni.navigateTo({
-					url: '/pages_health/addDoc?type=add&userId='+this.user.userId
-				})
-				break;
+					case 1:
+						uni.navigateTo({
+							url: '/pages_echarts/waistLine?userId=' + this.user.userId
+						})
+						break;
+					case 2:
+						uni.navigateTo({
+							url: '/pages_echarts/hips?userId=' + this.user.userId
+						})
+						break;
+					case 3:
+						uni.navigateTo({
+							url: '/pages_echarts/bloodSugar?userId=' + this.user.userId
+						})
+						break;
+					case 4:
+						uni.navigateTo({
+							url: '/pages_echarts/bloodPressure?userId=' + this.user.userId
+						})
+						break;
+					case 5:
+						uni.navigateTo({
+							url: '/pages_echarts/acid?userId=' + this.user.userId
+						})
+						break;
+					default:
+						uni.navigateTo({
+							url: '/pages_health/addDoc?type=add&userId=' + this.user.userId
+						})
+						break;
 				}
 			},
-			handleEditHealth(item,index){
+			handleEditHealth(item, index) {
 				uni.navigateTo({
-					url: '/pages_health/addDoc?type=add&userId='+this.user.userId
+					url: '/pages_health/addDoc?type=add&userId=' + this.user.userId
 				})
 			},
-			goToUser(){
-				console.log(this.info,'---')
-				if(this.info!==null){
+			goToUser() {
+				console.log(this.info, '---')
+				if (this.info !== null) {
 					uni.navigateTo({
-						url: '/pages_health/addUser?type=edit&userId='+this.user.userId
+						url: '/pages_health/addUser?type=edit&userId=' + this.user.userId
 					})
 				}
 			}
@@ -405,139 +363,150 @@ import carKeyboard from '../uni_modules/uview-ui/libs/config/props/carKeyboard';
 </script>
 
 <style lang="scss" scoped>
-.container{
-	position: relative;
-	    background: #EFF3F7;
-	.bg{
-		width: 100%;
-		height: 380rpx;
-		position: absolute;
-		top: 0;
-		left: 0;
-		z-index:0;
+	.container {
+		position: relative;
+		background: #EFF3F7;
+
+		.bg {
+			width: 100%;
+			height: 380rpx;
+			position: absolute;
+			top: 0;
+			left: 0;
+			z-index: 0;
+		}
 	}
-}
-.text-color{
-	color:#FF4B33;
-	width: 72rpx;
-	height: 40rpx;
-	text-align: center;
-	line-height: 40rpx;
-	border-radius: 8rpx 8rpx 8rpx 8rpx;
-	border: 1rpx solid #FFA599;
-}
-.content{
-	padding-top: calc(var(--status-bar-height) + 140rpx) !important;
-	  height: 100vh;
-	  box-sizing: border-box;
-	  width: 100%;
-	  padding: 20rpx;
-}
-.orangebox{
-	border-radius: 24rpx;
-	border: 1rpx solid #FFA599;
-	color: #FF4B33;
-	font-size: 24rpx;
-	padding: 4rpx 20rpx;
-}
-.health-monitoring {
-	// @include u-flex(row, center, flex-start);
-	display: flex;
-	justify-content: space-between;
-	flex-wrap: wrap;
-	// gap: 16rpx;
-	margin-top: 20rpx;
-	margin-bottom: -16rpx;
-	margin-right: -16rpx;
-	&-item {
-		width: 343rpx;
-		min-height: 264rpx;
-		margin: 0 16rpx 16rpx 0;
-		overflow: hidden;
-		background: #FFFFFF;
-		border-radius: 16rpx 16rpx 16rpx 16rpx;
-		padding: 24rpx 34rpx 24rpx 24rpx;
+
+	.text-color {
+		color: #FF4B33;
+		width: 72rpx;
+		height: 40rpx;
+		text-align: center;
+		line-height: 40rpx;
+		border-radius: 8rpx 8rpx 8rpx 8rpx;
+		border: 1rpx solid #FFA599;
+	}
+
+	.content {
+		padding-top: calc(var(--status-bar-height) + 140rpx) !important;
+		// height: 100vh;
 		box-sizing: border-box;
+		width: 100%;
+		padding: 20rpx;
 	}
 
-	&-maintitle {
-		margin-bottom: 4rpx;
-		font-size: 30rpx;
-		color: #333333;
+	.orangebox {
+		border-radius: 24rpx;
+		border: 1rpx solid #FFA599;
+		color: #FF4B33;
+		font-size: 24rpx;
+		padding: 4rpx 20rpx;
 	}
 
-	&-title {
-		// @include u-flex(row, center, space-between);
+	.health-monitoring {
+		// @include u-flex(row, center, flex-start);
 		display: flex;
 		justify-content: space-between;
-		font-weight: 400;
-		font-size: 24rpx;
-		color: #999999;
+		flex-wrap: wrap;
+		// gap: 16rpx;
+		margin-top: 20rpx;
+		margin-bottom: -16rpx;
+		margin-right: -16rpx;
 
-		image {
-			width: 72rpx;
-			height: 72rpx;
-			flex-shrink: 0;
+		&-item {
+			width: 343rpx;
+			min-height: 264rpx;
+			margin: 0 16rpx 16rpx 0;
+			overflow: hidden;
+			background: #FFFFFF;
+			border-radius: 16rpx 16rpx 16rpx 16rpx;
+			padding: 24rpx 34rpx 24rpx 24rpx;
+			box-sizing: border-box;
+		}
+
+		&-maintitle {
+			margin-bottom: 4rpx;
+			font-size: 30rpx;
+			color: #333333;
+		}
+
+		&-title {
+			// @include u-flex(row, center, space-between);
+			display: flex;
+			justify-content: space-between;
+			font-weight: 400;
+			font-size: 24rpx;
+			color: #999999;
+
+			image {
+				width: 72rpx;
+				height: 72rpx;
+				flex-shrink: 0;
+			}
+		}
+
+		.resnum {
+			font-family: DIN, DIN;
+			font-weight: 500;
+			font-size: 64rpx;
 		}
-	}
 
-	.resnum {
-		font-family: DIN, DIN;
-		font-weight: 500;
-		font-size: 64rpx;
+		&-res {
+			height: 78rpx;
+			margin: 20rpx 0 6rpx;
+			font-family: PingFang SC, PingFang SC;
+			font-weight: 600;
+			font-size: 48rpx;
+			color: #333333;
+		}
+
+		&-time {
+			font-weight: 400;
+			font-size: 22rpx;
+			color: #999999;
+		}
 	}
 
-	&-res {
-		height: 78rpx;
-		margin: 20rpx 0 6rpx;
-		font-family: PingFang SC, PingFang SC;
-		font-weight: 600;
-		font-size: 48rpx;
-		color: #333333;
+	.cardbox {
+		display: flex;
+		flex-direction: row;
+		align-items: center;
+		justify-content: space-between;
+		flex-wrap: wrap;
+		gap: 16rpx 14rpx;
+
+		&-maintitle {
+			margin-bottom: 4rpx;
+			font-weight: 600;
+			font-size: 30rpx;
+			color: #333333;
+		}
 	}
 
-	&-time {
+	.health-item {
+		width: 343rpx;
+		height: 224rpx;
+		padding: 24rpx;
+		box-sizing: border-box;
+		background: #FFFFFF;
+		border-radius: 16rpx 16rpx 16rpx 16rpx;
+		overflow: hidden;
+		position: relative;
+		font-family: PingFang SC, PingFang SC;
 		font-weight: 400;
-		font-size: 22rpx;
+		font-size: 24rpx;
 		color: #999999;
 	}
-}
-.cardbox {
-	display: flex;
-	flex-direction: row;
-	align-items: center;
-	justify-content: space-between;
-	flex-wrap: wrap;
-	gap: 16rpx 14rpx;
-	&-maintitle {
-		margin-bottom: 4rpx;
-		font-weight: 600;
-		font-size: 30rpx;
-		color: #333333;
+
+	.health-item-info {
+		position: relative;
+	}
+
+	.health-bgicon {
+		position: absolute;
+		right: 0;
+		bottom: 0;
+		width: 168rpx;
+		height: 168rpx;
 	}
-}
-.health-item {
-	width: 343rpx;
-	height: 224rpx;
-	padding: 24rpx;
-	box-sizing: border-box;
-	background: #FFFFFF;
-	border-radius: 16rpx 16rpx 16rpx 16rpx;
-	overflow: hidden;
-	position: relative;
-	font-family: PingFang SC, PingFang SC;
-	font-weight: 400;
-	font-size: 24rpx;
-	color: #999999;
-}
-.health-item-info {
-	position: relative;
-}
-.health-bgicon {
-	position: absolute;
-	right: 0;
-	bottom: 0;
-	width: 168rpx;
-	height: 168rpx;
-}
-</style>
+</style>

+ 1 - 1
pages_index/index/doctorArticleDetails.vue

@@ -3,7 +3,7 @@
 		<view class="detail-cont">
 			<view class="title">{{item.title}}</view>
 			<view class="doctor-info">
-				<image :src="item.avatar" mode="aspectFill"></image>
+				<image :src="item.avatar!==null?item.avatar:'https://qinggetai.oss-rg-china-mainland.aliyuncs.com/qgt/20240511/e7668e973cb44f1d8d7bf749c827f814.jpg'" mode="aspectFill"></image>
 				<view class="doctor">{{item.doctorName||'崔医生'}}</view>
 				<view class="source">179集团医院</view>
 			</view>

+ 3 - 0
pages_index/index/doctorArticleList.vue

@@ -94,6 +94,9 @@
 					res => {
 						if(res.code==200){
 							this.cateOptions=res.data;
+							if(this.cateId==0){
+								this.cateId=res.data[0].dictValue
+							}
 						}
 					},
 					err => {

+ 1 - 1
pages_shopping/store/index.vue

@@ -359,7 +359,7 @@
 				if(item.showType==1){
 					uni.setStorageSync('url',item.advUrl);
 					uni.navigateTo({
-						url:"/pages/home/h5?storeId="+ this.storeId || ""
+						url:"/pages/home/web?storeId="+ this.storeId || ""
 					})
 				}
 				else if(item.showType==2){

+ 1 - 1
pages_user/recharge/detail.vue

@@ -1,7 +1,7 @@
 <template>
 	<view class="top-cont">
 		<view :style="{height: statusBarHeight,background: bgColor }"></view>
-		<u-navbar title="充值" titleStyle="font-weight: 500;" @rightClick="rightClick" :autoBack="true"
+		<u-navbar title="充值" titleStyle="font-weight: 500;" @rightClick="rightClick" :autoBack="true" leftIcon="arrow-left"
 			:bg-color="bgColor">
 		</u-navbar>
 		<view class="top-bg">

+ 40 - 35
pages_user/recharge/index.vue

@@ -1,7 +1,7 @@
 <template>
 	<view class="top-cont">
 		<view :style="{height: statusBarHeight,background: bgColor }"></view>
-		<u-navbar title="充值" titleStyle="font-weight: 500;" @rightClick="rightClick" :autoBack="true"
+		<u-navbar title="充值" titleStyle="font-weight: 500;" @rightClick="rightClick" :autoBack="true" leftIcon="arrow-left"
 			:bg-color="bgColor">
 		</u-navbar>
 		<view class="top-bg">
@@ -59,7 +59,7 @@
 					<view class="align-center mb20">
 						<checkbox :checked="isAgreement" @click.stop="handleAgreement()" />
 						<view class="text">我已阅读并同意</view>
-						<view class="text color">《179集团会员储值协议》</view>
+						<view class="text color">《会员储值协议》</view>
 					</view>
 					<view class="btn" @click="toPay()">立即储存</view>
 				</view>
@@ -73,7 +73,9 @@
 
 <script>
 	import {
-		getPayment, toPayment,getTemplates
+		getPayment,
+		toPayment,
+		getTemplates
 	} from '@/api/payment'
 	import {
 		getUserInfo
@@ -86,9 +88,9 @@
 					// {id:2,price:100,text:'限时赠送10元现金券',count:'赠10元'},
 					// {id:3,price:200,text:'限时赠送20元现金券'},
 				],
-				user:null,
-				eTime:null,
-				aIndex:0,
+				user: null,
+				eTime: null,
+				aIndex: 0,
 				isAgreement: false,
 				statusBarHeight: '',
 				top: 0,
@@ -136,24 +138,23 @@
 			},
 			choosePackage(item) {
 				this.aIndex = item.id
-				this.templateId=item.id
+				this.templateId = item.id
 				// let time=this.utils.parseTime(item.endTime)
-				this.eTime=this.utils.setTime(item.endTime)
+				this.eTime = this.utils.setTime(item.endTime)
 			},
-			getUserInfo(){
+			getUserInfo() {
 				getUserInfo().then(
 					res => {
-						if(res.code==200){
-							if(res.user!=null){
-								this.user=res.user;
-							}
-							else{
+						if (res.code == 200) {
+							if (res.user != null) {
+								this.user = res.user;
+							} else {
 								this.utils.loginOut();
 							}
-							
-						}else{
+
+						} else {
 							uni.showToast({
-								icon:'none',
+								icon: 'none',
 								title: "请求失败",
 							});
 						}
@@ -179,11 +180,11 @@
 			getList() {
 				getTemplates().then(
 					res => {
-						if(res.code==200){
+						if (res.code == 200) {
 							this.dataList = res.data
-						}else{
+						} else {
 							uni.showToast({
-								icon:'none',
+								icon: 'none',
 								title: "请求失败",
 							});
 						}
@@ -192,9 +193,9 @@
 				);
 			},
 			showDetail(item) {
-				if(item){
+				if (item) {
 					uni.navigateTo({
-						url:'/pages_user/recharge/detail?id='+item.id
+						url: '/pages_user/recharge/detail?id=' + item.id
 					})
 				}
 			},
@@ -215,9 +216,9 @@
 			},
 			//充值余额
 			toPay() {
-				if(!this.isAgreement){
+				if (!this.isAgreement) {
 					uni.showToast({
-						icon:'none',
+						icon: 'none',
 						title: "请先同意协议后再储存",
 					});
 					return false;
@@ -229,9 +230,9 @@
 					});
 					return;
 				}
-				var data={
-					userId:this.user.userId||'77632',
-					templateId:this.templateId
+				var data = {
+					userId: this.user.userId,
+					templateId: this.templateId
 				}
 				var that = this;
 				uni.showLoading();
@@ -239,23 +240,26 @@
 					res => {
 						if (res.code == 200) {
 							console.log(res);
+							var payData = JSON.parse(res.data.pay_info)
 							uni.requestPayment({
 								provider: 'wxpay',
-								timeStamp: res.result.timeStamp,
-								nonceStr: res.result.nonceStr,
-								// package: res.result.packageValue,
-								package: res.result.packageStr,
-								signType: res.result.signType,
-								paySign: res.result.paySign,
+								timeStamp: payData.timeStamp,
+								nonceStr: payData.nonceStr,
+								package: payData.package,
+								signType: payData.signType,
+								paySign: payData.paySign,
 								success: function(res) {
 									uni.hideLoading();
 									uni.showToast({
 										icon: 'success',
 										title: "支付成功",
 									});
-									uni.navigateTo({
-										url: './success'
+									uni.navigateBack({
+										delta: 1
 									})
+									// uni.navigateTo({
+									// 	url: '/pages/user/index'
+									// })
 								},
 								fail: function(err) {
 									console.log('fail:' + JSON.stringify(err));
@@ -332,6 +336,7 @@
 
 	.top-bg {
 		position: relative;
+
 		.bg {
 			width: 100%;
 			position: relative;

+ 186 - 137
pages_company/addSchedule.vue → pages_user/user/addSchedule.vue

@@ -2,31 +2,47 @@
 	<view class="content">
 		<view class="inner">
 			<view class="time-box">
-				<view class="time">2025年7月15日</view>
+				<view class="time">
+					{{toDay}}
+				</view>
 				<view class="txt">今日待办</view>
-				<view class="num">10</view>
+				<view class="num">{{num}}</view>
 			</view>
 			<view class="form-box">
 				<text class="form-title">开始时间</text>
 				<view class="form-item">
-					<picker class="birth-picker" mode="date"   @change="bindDateChange">
+					<view class="birth-picker" >
+						<view class="right-box" @click="open()">
+							<!-- <input type="text" :value="form.itineraryDate+' '+form.itineraryTime" placeholder="请选择日程开始时间"
+								placeholder-class="form-input" disabled="disabled" /> -->
+								
+								<text v-if="form.itineraryDate" class="color222" >{{ form.itineraryDate+' '+form.itineraryTime }}</text>
+								<text v-else >请选择日程开始时间</text>
+							<image class="w48 h48" src="/static/images/health/right_arrow_right_icon24.png"></image>
+						</view>
+						<u-datetime-picker :show="show" v-model="newData" mode="datetime"
+							@confirm="bindDateChange"></u-datetime-picker>
+
+					</view>
+					<!-- <picker class="birth-picker" mode="date"   @change="bindDateChange">
 						<view class="right-box">
 							<view class="input-box">
-						<input type="text" :value="form.birthday" placeholder="请选择日程开始时间" placeholder-class="form-input" disabled="disabled" />
+						<input type="text" :value="form.itineraryDate" placeholder="请选择日程开始时间" placeholder-class="form-input" disabled="disabled" />
 						</view>
-						<image class="w48 h48" src="/static/images/health/right_arrow_right_icon24.png"></image>
+						
 					</view>
-					</picker>
+					</picker> -->
 				</view>
 				<text class="form-title">日程安排</text>
 				<view class="form-item">
-					<textarea maxlength="200" class="form-textarea" v-model="form.remark" placeholder="请输入您的日程安排"  placeholder-class="form-input" />
+					<textarea maxlength="200" class="form-textarea" v-model="form.itinerary" placeholder="请输入您的日程安排"
+						placeholder-class="form-input" />
 				</view>
 			</view>
 		</view>
 		<view class="btn-box">
 			<view class="sub-btn" @click="submit()">
-				添加
+				保存
 			</view>
 		</view>
 	</view>
@@ -34,66 +50,77 @@
 
 <script>
 	import {
-		getDocDetails,
-		addDoc,
-		editDoc
-	} from '@/api/doc.js'
+		getItineraryInfo,
+		addItinerary,
+		updateItinerary
+	} from '@/api/companyUser.js'
 	export default {
 		data() {
 			return {
+				newData:new Date(),
+				toDay: this.utils.timeFormat(new Date(), 'yyyy年mm月dd日'),
 				type: null,
+				show: false,
 				patientId: null,
-				famaleurl:"/static/images/health/female_profile.png",
-				maleurl:"/static/images/health/my_heads.png",
-				checked:1,
-				array:['是','否'],
+				famaleurl: "/static/images/health/female_profile.png",
+				maleurl: "/static/images/health/my_heads.png",
+				checked: 1,
+				array: ['是', '否'],
 				tags: [{
-					name: '心脏病',
-					checked:true,
-					id: 1
-				},
-				{
-					name: '脑梗死',
-						checked:false,
-					id: 2
-				},{
-					name: '肾病',
-						checked:false,
-					id: 3
-				},{
-					name: '脂肪肝',
-						checked:false,
-					id: 4
-				}],
-				form: {
-					userName: null,
-					idCard: null,
-					sex: null,
-					birthday: null,
-					remark: null,
-				}
+						name: '心脏病',
+						checked: true,
+						id: 1
+					},
+					{
+						name: '脑梗死',
+						checked: false,
+						id: 2
+					}, {
+						name: '肾病',
+						checked: false,
+						id: 3
+					}, {
+						name: '脂肪肝',
+						checked: false,
+						id: 4
+					}
+				],
+				num: 0,
+				form: {}
 			};
 		},
 		onLoad(option) {
 			this.type = option.type;
+			this.form.userId = option.userId
 			console.log(this.type)
 			if (this.type == 'edit') {
-				this.docId = option.docId;
-				// this.getDocDetails();
+				uni.setNavigationBarTitle({
+				title: '编辑日程' // Replace with your desired title
+				});
+				this.id = option.id
+				this.form.id = option.id
+				this.userId = option.userId;
+				this.getItineraryInfo();
 			}
 		},
 		methods: {
 			sexChange(type) {
 				this.form.sex = type
 			},
+			open() {
+				this.show =!this.show
+			},
+			close(){
+				this.show=false
+			},
 			radioClick(item) {
-			        this.checked=item.id
-			      },
-			getDocDetails() {
+				this.checked = item.id
+			},
+			getItineraryInfo() {
 				var data = {
-					docId: this.docId
+					id: this.id
 				};
-				getDocDetails(data).then(
+				getItineraryInfo(data).then(
 					res => {
 						if (res.code == 200) {
 							this.form = res.data;
@@ -107,44 +134,44 @@
 					rej => {}
 				);
 			},
-			onChooseAvatar(e){
+			onChooseAvatar(e) {
 				let {
 					avatarUrl
 				} = e.detail;
 				uni.uploadFile({
-					url: uni.getStorageSync('requestPath')+'/app/common/uploadOSS', //仅为示例,非真实的接口地址
+					url: uni.getStorageSync('requestPath') + '/app/common/uploadOSS', //仅为示例,非真实的接口地址
 					filePath: avatarUrl,
 					name: 'file',
 					formData: {
-						'user': 'test'  // 上传附带参数
+						'user': 'test' // 上传附带参数
 					},
 					success: (uploadFileRes) => {
-						this.user.avatar =JSON.parse(uploadFileRes.data).url
+						this.user.avatar = JSON.parse(uploadFileRes.data).url
 					}
 				});
 			},
 			submit() {
-				// if (this.form.userName == null) {
-				// 	uni.showToast({
-				// 		icon: 'none',
-				// 		title: "姓名不能为空",
-				// 	});
-				// 	return;
-				// }
-				// if (this.form.idCard == null) {
-				// 	uni.showToast({
-				// 		icon: 'none',
-				// 		title: "身份证号不能为空",
-				// 	});
-				// 	return;
-				// }
-				// if (this.form.sex == null) {
-				// 	uni.showToast({
-				// 		icon: 'none',
-				// 		title: "性别不能为空",
-				// 	});
-				// 	return;
-				// }
+				if (this.form.itineraryDate == null || this.form.itineraryDate =='') {
+					uni.showToast({
+						icon: 'none',
+						title: "行程日期不能为空",
+					});
+					return;
+				}
+				if (this.form.itineraryTime == null|| this.form.itineraryTime =='') {
+					uni.showToast({
+						icon: 'none',
+						title: "行程时间不能为空",
+					});
+					return;
+				}
+				if (this.form.itinerary == null || this.form.itinerary =='') {
+					uni.showToast({
+						icon: 'none',
+						title: "行程内容不能为空",
+					});
+					return;
+				}
 				// if (this.form.birthday == null) {
 				// 	uni.showToast({
 				// 		icon: 'none',
@@ -152,25 +179,22 @@
 				// 	});
 				// 	return;
 				// }
-				// if (this.type == "add") {
-				// 	this.addDoc()
-				// } else if (this.type == "edit") {
-				// 	this.editDoc()
-				// }
-                uni.navigateTo({
-                	url: '/pages_health/doc?type=edit&docId='
-                })
+				if (this.type == "add") {
+					this.addItinerary()
+				} else if (this.type == "edit") {
+					this.updateItinerary()
+				}
 			},
-			editDoc() {
-				editDoc(this.form).then(
+			updateItinerary() {
+				updateItinerary(this.form).then(
 					res => {
 						if (res.code == 200) {
 							uni.showToast({
 								icon: 'success',
-								title: "操作成功",
+								title: "更新成功",
 							});
 							setTimeout(function() {
-								uni.$emit('refreshDoc');
+								uni.$emit('refreshSchedule');
 								uni.navigateBack({
 									delta: 1
 								})
@@ -185,8 +209,8 @@
 					rej => {}
 				);
 			},
-			addDoc() {
-				addDoc(this.form).then(
+			addItinerary() {
+				addItinerary(this.form).then(
 					res => {
 						if (res.code == 200) {
 							uni.showToast({
@@ -194,7 +218,7 @@
 								title: "操作成功",
 							});
 							setTimeout(function() {
-								uni.$emit('refreshDoc');
+								uni.$emit('refreshSchedule');
 								uni.navigateBack({
 									delta: 1
 								})
@@ -211,7 +235,9 @@
 			},
 			// 出生日期选择
 			bindDateChange: function(e) {
-				this.form.birthday = e.target.value
+				this.form.itineraryDate = this.utils.timeFormat(e.value,'yyyy-mm-dd')
+				this.form.itineraryTime = this.utils.timeFormat(e.value,'hh:MM:ss')
+				this.show=false
 			},
 		}
 	}
@@ -231,30 +257,35 @@
 		.inner {
 			// height: calc(100% - 120upx);
 			// padding: 20upx;
-background: #008FD3;
-.time-box{
-	padding: 30rpx;
-	text-align: left;
-	.time{
-		font-family: PingFang SC;
-		font-weight: 500;
-		font-size: 28rpx;
-		color: #FFFFFF;
-		padding-bottom: 25rpx;
-	}
-	.txt{
-		font-weight: 500;
-		font-size: 24rpx;
-		color: rgba(255,255,255,0.5);
-		padding-bottom: 12rpx;
-	}
-	.num{
-		font-family: Roboto, Roboto;
-		font-weight: 500;
-		font-size: 64rpx;
-		color: #FFFFFF;
-	}
-}
+			background: #008FD3;
+
+			.time-box {
+				padding: 30rpx;
+				text-align: left;
+
+				.time {
+					font-family: PingFang SC;
+					font-weight: 500;
+					font-size: 28rpx;
+					color: #FFFFFF;
+					padding-bottom: 25rpx;
+				}
+
+				.txt {
+					font-weight: 500;
+					font-size: 24rpx;
+					color: rgba(255, 255, 255, 0.5);
+					padding-bottom: 12rpx;
+				}
+
+				.num {
+					font-family: Roboto, Roboto;
+					font-weight: 500;
+					font-size: 64rpx;
+					color: #FFFFFF;
+				}
+			}
+
 			.form-box {
 				padding: 0 30upx;
 				background: #FFFFFF;
@@ -280,7 +311,7 @@ background: #008FD3;
 					&:last-child {
 						border-bottom: none;
 					}
-        
+
 					.label {
 						width: 300upx;
 						text-align: left;
@@ -293,9 +324,9 @@ background: #008FD3;
 					}
 
 					input {
-						text-align:left;
+						text-align: left;
 					}
-               
+
 					.form-input {
 						font-size: 30upx;
 						font-family: PingFang SC;
@@ -304,9 +335,10 @@ background: #008FD3;
 						text-align: left;
 					}
 
-					.form-item-tag{
+					.form-item-tag {
 						margin-right: 16rpx;
-						.tag{
+
+						.tag {
 							border-radius: 8rpx 8rpx 8rpx 8rpx;
 							border: 2rpx solid #ECECEC;
 							display: flex;
@@ -315,26 +347,30 @@ background: #008FD3;
 							font-family: PingFang SC;
 							font-weight: 400;
 							font-size: 24rpx;
-							&.active{
+
+							&.active {
 								background: #F0FAFF;
 								border: 2rpx solid #008FD3;
 								color: #008FD3;
 							}
 						}
-						
-						
-						
+
+
+
 					}
-					.right{
+
+					.right {
 						display: flex;
 						align-items: center;
 					}
-					.sex-box{
-						flex:1;
+
+					.sex-box {
+						flex: 1;
 						display: flex;
 						align-items: center;
 						justify-content: flex-end;
-						.sex-item{
+
+						.sex-item {
 							width: 146rpx;
 							height: 64rpx;
 							display: flex;
@@ -343,43 +379,54 @@ background: #008FD3;
 							background: #F5F7FA;
 							border-radius: 32rpx 32rpx 32rpx 32rpx;
 							margin-left: 16rpx;
-							.u-icon__icon{
+
+							.u-icon__icon {
 								margin: 0;
 							}
-							text{
+
+							text {
 								// font-family: PingFang SC, PingFang SC;
 								font-weight: 400;
 								font-size: 28rpx;
 								color: #898E91;
 								margin-left: 12rpx;
 							}
-							&.active{
+
+							&.active {
 								background: #FCF0E7;
-								text{
-									color:#FF5030
+
+								text {
+									color: #FF5030
 								}
 							}
 						}
 					}
-					.form-textarea{
+
+					.form-textarea {
 						font-size: 30upx;
 						color: #999999;
 						height: 100upx;
 						padding: 4upx 0;
 					}
-					 
+
 					.birth-picker {
 						width: 100%;
-						.right-box{
+
+						.right-box {
 							width: 100%;
 							display: flex;
 							align-items: center;
 							justify-content: space-between;
-							.input-box{
+
+							.input-box {
 								flex: 1;
 								// width: 470upx;
 							}
-							.arrow{
+                            text{
+								font-size: 30upx;
+								color: #999999;
+							}
+							.arrow {
 								width: 13upx;
 								height: 23upx;
 								margin-left: 20upx;
@@ -396,6 +443,7 @@ background: #008FD3;
 			display: flex;
 			align-items: center;
 			justify-content: center;
+
 			.sub-btn {
 				width: 100%;
 				height: 88upx;
@@ -405,13 +453,14 @@ background: #008FD3;
 				font-family: PingFang SC;
 				font-weight: bold;
 				color: #FFFFFF;
-				background: #008FD3 ;
+				background: #008FD3;
 				border-radius: 44upx;
 				margin-bottom: 40upx;
 				display: flex;
 				align-items: center;
 				justify-content: center;
-				image{
+
+				image {
 					margin-right: 16rpx;
 				}
 			}

+ 3 - 3
pages_user/user/complaint.vue

@@ -88,21 +88,21 @@
 				);
 			},
 			submit(){
-				if(this.actsee==null){
+				if(this.actsee==null || this.actsee==''){
 					uni.showToast({
 						icon:'none',
 						title:'请选择投诉类型!',
 					});
 					return
 				}
-				if(this.consulting==null){
+				if(this.consulting==null|| this.consulting==''){
 					uni.showToast({
 						icon:'none',
 						title:'请输入投诉内容!',
 					});
 					return
 				}
-			if(this.imgList.length==0){
+			if(this.imgList.length==0||this.photos.length==0){
 				uni.showToast({
 					icon:'none',
 					title:'请上传凭证!',

+ 1 - 1
pages_user/user/dataAnalysis.vue

@@ -92,7 +92,7 @@
 					<text class="label flex2">目标报告</text>
 					<text class="label flex3">变化</text>
 				</view>
-				<view class="form-item" v-for="(item,index) in comparison" :key="index">
+				<view v-if="comparison.length>0"  class="form-item"  v-for="(item,index) in comparison" :key="index">
 					<text class="label flex1">{{item.indicatorName||'-'}}</text>
 					<text class="label flex2">{{item.value1||'-'}}</text>
 					<text class="label flex2">{{item.value2||'-'}}</text>

+ 2 - 2
pages_user/user/default.vue

@@ -105,7 +105,7 @@
 													title: '删除成功!',
 												});
 												uni.$emit('refreshMyFolder');
-												this.getAttachment()
+												that.getAttachment()
 												 
 											}else{
 												uni.showToast({
@@ -186,7 +186,7 @@
 							title: "操作成功",
 						});
 						uni.$emit('refreshMyFolder');
-						that.getAttachment()
+						this.getAttachment()
 					} else {
 						uni.showToast({
 							icon: 'none',

+ 9 - 1
pages_user/user/editIndicator.vue

@@ -256,8 +256,9 @@
 							// this.getPage();
 							this.listByReport();
 							this.listAllEnabledByReportId()
+							uni.$emit('refreshInformation');
 							// setTimeout(function() {
-							// 	uni.$emit('refreshEditIndicator');
+								
 							// 	uni.navigateBack({
 							// 		delta: 1
 							// 	})
@@ -282,6 +283,13 @@
 							});
 							this.listByReport();
 							this.listAllEnabledByReportId()
+							uni.$emit('refreshInformation');
+							// setTimeout(function() {
+								
+							// 	uni.navigateBack({
+							// 		delta: 1
+							// 	})
+							// }, 500);
 							// this.getPage();
 						} else {
 							uni.showToast({

+ 1 - 1
pages_user/user/myFolder.vue

@@ -270,7 +270,7 @@ cancel(item){
 						}
 
 						.form-input {
-							font-size: 34upx;
+							font-size: 32upx;
 							font-family: PingFang SC;
 							font-weight: 500;
 							color: #222222;

+ 1 - 1
pages_user/user/reportList.vue

@@ -85,7 +85,7 @@
 		},
 		onLoad(options) {
 			this.userId=options.userId;
-			this.companyUserId = options.companyUserId;
+			this.companyUserId = options.companyUserId||'';
 			uni.$on('refreshReportList', () => {
 				this.mescroll.resetUpScroll()
 			})

+ 77 - 32
pages_company/schedule.vue → pages_user/user/schedule.vue

@@ -4,19 +4,19 @@
 		<view class="inner">
 			<view class="title-box align-center">
 				<text>我的行程</text>
-				<view class="num">(3)</view>
+				<view class="num">{{num}}</view>
 			</view>
 			<view class="form-box">
 				<u-swipe-action>
 					<view class="form-swipe mb20" v-for="(item,index) in dataList" :key="index">
-				        <u-swipe-action-item :options="options"  @click="action()"> 
-				         <view class="form-item">
+				        <u-swipe-action-item :options="options"  @click="action($event, item.id, index)" :name="index" :ref="'swipeAction' + index"> 
+				         <view class="form-item" @click.stop="showDetail(item)">
 				         	<view class="left">
-				         		<text class="label">已开始</text>
-				         		<text class="time">{{item.time}}</text>
+				         		<text class="label">{{item.mark}}</text>
+				         		<text class="time">{{item.itineraryTime}}</text>
 				         	</view>
 				         	<view class="right">
-				         		<view>{{item.content}}</view>
+				         		<view>{{item.itinerary}}</view>
 				         	</view>
 				         </view>
 				        </u-swipe-action-item>
@@ -37,10 +37,9 @@
 <script>
 	import RenCalendar from '@/components/ren-calendar/ren-calendar.vue'
 	import {
-		getDocDetails,
-		addDoc,
-		editDoc
-	} from '@/api/doc.js'
+		getItinerary,deleteItinerary
+	} from '@/api/companyUser.js'
+import parse from '../../uni_modules/uview-ui/libs/config/props/parse';
 	export default {
 		components:{
 		            RenCalendar
@@ -58,16 +57,17 @@
 				                        backgroundColor: '#FF5030'
 				                    }
 				                }],
-				curDate:'',
+				curDate:this.utils.timeFormat(new Date(), 'yyyy-mm-dd'),
 				markDays:[],
 				type: null,
 				patientId: null,
 				famaleurl:"/static/images/health/female_profile.png",
 				maleurl:"/static/images/health/my_heads.png",
 				checked:1,
-				dataList:[{id:1,time:'09:00',content:'酒店登记入驻,记得检查马桶卫生和柏子是否干净'},
-				{id:2,time:'09:00',content:'收拾好行李,准备去医院'},
-				{id:3,time:'16:30',content:'酒店登记入驻,记得检查马桶卫生和柏子是否干净'},
+				dataList:[
+				// 	{id:1,time:'09:00',content:'酒店登记入驻,记得检查马桶卫生和柏子是否干净'},
+				// {id:2,time:'09:00',content:'收拾好行李,准备去医院'},
+				// {id:3,time:'16:30',content:'酒店登记入驻,记得检查马桶卫生和柏子是否干净'},
 				],
 				form: {
 					userName: null,
@@ -75,42 +75,87 @@
 					sex: null,
 					birthday: null,
 					remark: null,
-				}
+				},
+				user:null,
+				num:0
 			};
 		},
 		onLoad(option) {
-			let today = this.$refs.ren.getToday().date;
-			            this.curDate = today;
-			            this.markDays.push(today);
-			this.type = option.type;
-			console.log(this.type)
-			if (this.type == 'edit') {
-				this.docId = option.docId;
-				// this.getDocDetails();
-			}
+			// this.user=JSON.parse( uni.getStorageSync('userInfo'))
+			this.userId=option.userId
+			this.getItinerary()
+			uni.$on('refreshSchedule', () => {
+				this.getItinerary()
+			})
 		},
 		methods: {
 			//日历
 			onDayClick(data){
+				console.log(data,'00')
 			                this.curDate = data.date;
+							this.getItinerary()
 			            },
-			action(e){
-				console.log(e,'--')
+			action(event, id, index){
+				var that=this;
+				let test = 'swipeAction' + index
+				if(event.index==0){
+					uni.navigateTo({
+						url: '/pages_user/user/addSchedule?type=edit&userId='+this.userId+'&id='+id
+					})
+				}else{
+					uni.showModal({
+					    title: '提示',
+					    content: '确定删除记录吗',
+					    success: function (res) {
+					        if (res.confirm) {
+								var data = {
+									id:id
+								};
+								deleteItinerary(data).then(res => {
+									if(res.code==200){
+										uni.showToast({
+											icon:'success',
+											title: '删除成功!',
+										});
+										 that.$refs[test][0].closeHandler() 
+										 that.getItinerary()
+										 
+									}else{
+										uni.showToast({
+											icon:'none',
+											title: res.msg,
+										});
+									}
+								});
+					        } 
+							else if (res.cancel) {
+								that.$refs[test][0].closeHandler() 
+					        }
+					    }
+					});
+				}
+				
 			},
 			addSchedule(){
 				uni.navigateTo({
-					url: '/pages_company/addSchedule'
+					url: '/pages_user/user/addSchedule?type=add&userId='+this.userId
 				})
 			},
-			getDocDetails() {
+			showDetail(item){
+				uni.navigateTo({
+					url: '/pages_user/user/addSchedule?type=edit&userId='+this.userId+'&id='+item.id
+				})
+			},
+			getItinerary() {
 				var data = {
-					docId: this.docId
+					userId: this.userId,
+					itineraryDate:this.curDate
 				};
-				getDocDetails(data).then(
+				getItinerary(data).then(
 					res => {
 						if (res.code == 200) {
-							this.form = res.data;
-
+							this.dataList = res.data.list;
+							this.num=res.data.total;
 						} else {
 							uni.showToast({
 								title: res.msg,

BIN
static/images/user/complaint feedback_icon24.png


BIN
static/images/user/dietary_status_icon.png


BIN
static/images/user/my_attachment_icon.png


BIN
static/images/user/my_physical_examination_report_icon24.png


BIN
static/images/user/my_schedule_icon.png


BIN
static/images/user/points_mall_icon24.png


+ 19 - 2
utils/common.js

@@ -443,7 +443,23 @@ var formatDate=function(dateStr) {
 	}
 	return formatDate;
 }
-
+/**
+ * 提取 URL 的根路径(协议 + 域名 + 端口)
+ * @param {string} 完整 URL
+ */
+ var getUrl=function getUrlRoot(fullUrl) {
+  if (!fullUrl) return ""; // 处理空 URL 防报错
+  try {
+    // 优先用 URL 构造函数(简洁高效)
+    const urlObj = new URL(fullUrl);
+    return urlObj.protocol + "//" + urlObj.host;
+  } catch (e) {
+    // 若 URL 格式不标准(如无协议),用正则兜底
+    const reg = /^(https?:\/\/[^\/]+)/i;
+    const match = fullUrl.match(reg);
+    return match ? match[1] : "";
+  }
+}
 /**
  * 格式销售数量
  * @param {Number} 数字
@@ -529,6 +545,7 @@ module.exports = {
 		urlToObj:urlToObj,
 		subString:subString,
 		checkCompanyUserLoginState:checkCompanyUserLoginState,
-		formatSalesNum: formatSalesNum
+		formatSalesNum: formatSalesNum,
+		getUrl:getUrl
 		
 };