zouling 1 rok pred
rodič
commit
5483232cd1
93 zmenil súbory, kde vykonal 1878 pridanie a 1850 odobranie
  1. 5 5
      1.txt
  2. BIN
      40fbd6d4d4e4b2feea076c59423a03ce.keystore
  3. BIN
      5737962ffdab946953097e82dea72efd.keystore
  4. 1 1
      App.vue
  5. 154 142
      a/code.vue
  6. 27 8
      api/mine/order.js
  7. 29 16
      components/lunc-calendar/lunc-calendar.vue
  8. 2 2
      components/nodata/nodata.vue
  9. 102 65
      components/order/list.vue
  10. 13 11
      components/order/stepbar.vue
  11. 0 52
      components/order/zan.vue
  12. 60 0
      components/toptab/navbar.vue
  13. 0 167
      components/uni-section/uni-section.vue
  14. 2 2
      config.js
  15. 4 4
      manifest.json
  16. 21 10
      pages.json
  17. 0 37
      pages/index.vue
  18. 167 250
      pages/index/index.vue
  19. 2 2
      pages/login.vue
  20. 91 230
      pages/mine/index.vue
  21. 452 373
      pages/order/come.vue
  22. 0 274
      pages/order/comedetail.vue
  23. 30 0
      pages/order/face.vue
  24. 0 26
      pages/order/index.vue
  25. 214 0
      pages/order/info.vue
  26. 189 0
      pages/order/list.vue
  27. 1 1
      pages/order/search.vue
  28. 274 149
      pages/order/staffcode.vue
  29. 1 1
      pages/register.vue
  30. BIN
      static/images/mine/lcicon.png
  31. BIN
      static/images/mine/micong.png
  32. BIN
      static/images/mine/pcicon.png
  33. BIN
      static/images/navbg.png
  34. 0 0
      static/images/order/come/faceimg.png
  35. 0 0
      static/images/order/come/fillf.png
  36. 0 0
      static/images/order/come/fillin.png
  37. 0 0
      static/images/order/come/filln.png
  38. 0 0
      static/images/order/come/ftipa.png
  39. 0 0
      static/images/order/come/ftipb.png
  40. 0 0
      static/images/order/come/ftipc.png
  41. 0 0
      static/images/order/come/line.png
  42. 0 0
      static/images/order/come/lines.png
  43. 0 0
      static/images/order/come/phoimg.png
  44. 0 0
      static/images/order/come/rowline.png
  45. 0 0
      static/images/order/come/tip.png
  46. BIN
      static/images/order/comes/fillf.png
  47. BIN
      static/images/order/comes/fillin.png
  48. BIN
      static/images/order/comes/filln.png
  49. BIN
      static/images/order/comes/hline.png
  50. BIN
      static/images/order/comes/icon_lfsj_ts.png
  51. BIN
      static/images/order/comes/limg.png
  52. BIN
      static/images/order/comes/rimg.png
  53. BIN
      static/images/order/comes/rowline.png
  54. BIN
      static/images/order/comes/tip.png
  55. 0 0
      static/images/order/staff/head.png
  56. 0 0
      static/images/order/staff/listline.png
  57. 0 0
      static/images/order/staff/ybg.png
  58. 0 0
      static/images/order/staff/ysta.png
  59. 0 0
      static/images/order/staff/ystb.png
  60. BIN
      static/images/order/staffs/bg.png
  61. BIN
      static/images/order/staffs/dbg.png
  62. BIN
      static/images/order/staffs/dsbg.png
  63. BIN
      static/images/order/staffs/rimg.png
  64. BIN
      static/images/order/staffs/tit.png
  65. BIN
      static/images/order/staffs/topbg.png
  66. BIN
      static/images/order/staffs/topbgs.png
  67. BIN
      static/images/order/staffs/weather.png
  68. BIN
      static/images/order/staffs/ybg.png
  69. BIN
      static/images/tabbar/home.png
  70. BIN
      static/images/tabbar/home_.png
  71. BIN
      static/images/tabbar/mine.png
  72. BIN
      static/images/tabbar/mine_.png
  73. 0 0
      static/images/weather/weaion.png
  74. BIN
      static/images/weather/weaiona.png
  75. BIN
      static/images/weather/weaionb.png
  76. BIN
      static/images/weather/weaionc.png
  77. BIN
      static/images/weather/weaiond.png
  78. BIN
      static/images/weather/weaione.png
  79. BIN
      static/images/weather/weaionf.png
  80. BIN
      static/images/weather/weaiong.png
  81. BIN
      static/images/weather/weaionh.png
  82. BIN
      static/images/weather/weaioni.png
  83. BIN
      static/images/weather/weaionj.png
  84. BIN
      static/logo.png
  85. 7 0
      static/style.css
  86. 2 1
      store/getters.js
  87. 11 2
      store/modules/user.js
  88. 1 1
      uni.scss
  89. 11 1
      utils/common.js
  90. 1 13
      utils/constant.js
  91. 2 2
      utils/initmap.js
  92. 1 1
      utils/request.js
  93. 1 1
      utils/storage.js

+ 5 - 5
1.txt

@@ -1,11 +1,11 @@
-包名:zs.lyreservation.app
+包名:zs.yuanqu.app
 
 
-证书别名:__uni__6c93067
-证书私钥密码:4Qa89til
+证书别名:__uni__9ace566
+证书私钥密码:UmhugJmm
 
-SHA1: 66:B8:5D:7C:0A:02:18:C5:24:46:EF:12:A1:4C:0A:D7:07:B8:4E:8D
+SHA1: 73:E5:A0:DD:64:51:C9:85:18:EF:A1:00:23:3E:81:90:C8:9F:12:3C
 
-高德key:14b0dd93ed792fe585d89f173e4e511d
+高德key:b85f0c64b3c9a082d740912cf3019c88
 
 极光appkey:

BIN
40fbd6d4d4e4b2feea076c59423a03ce.keystore


BIN
5737962ffdab946953097e82dea72efd.keystore


+ 1 - 1
App.vue

@@ -39,7 +39,7 @@ import {updateUserProfile,findVersion} from "@/api/system/user.js"
 				model: that.platform
 			}   
 			findVersion(parmas).then(res => {
-				// console.log(res)  
+				console.log(res)  
 				if (res.code == "200") {
 					let versionNos = res.data.code;
 					// console.log(versionNos,'versionNos')

+ 154 - 142
a/code.vue

@@ -1,91 +1,91 @@
 <template>
-  <view>
+  <view class="yybox">
+	  <nav-bar navtit="来访预约" ></nav-bar>
 	  <view v-if="nodataflag" class="nodata">
 		  <image :src="noiconpimg" class="img"></image>
 		  <view class="tit">暂无预约信息</view>
 	  </view>
-	<view class="ytbox" v-else>
-		<view class="code_box">
-			<view class="cdet" v-if="yy_code">
-				<view class="ctit">通行码</view>
-				<view class="ycode">
-					<!-- <view class="tit">请向工作人员出示该二维码即可扫码通行</view> -->
-					<view class="img">
-						<image :src="yy_code" class="codeimg" @click.stop="getPreview"></image>
-						<view class="usebox" v-if="useflag">
-							<image :src="useimg" class="useimg"></image>
-						</view>
-						
+	  <view class="yydet"v-else>
+		  <view class="flex0">
+		  	<step-bar :steps="barsteps" :datainfo="datainfo" :fixeda="fixedflag"></step-bar>  
+		  </view>
+		<view class="ytbox" >
+			<view class="code_box">
+				<!-- 预约成功 -->
+				<view class="cdet" v-if="datainfo.visitType==3">
+					<view class="ctit">通行路线</view>
+					<view class="adrtip">
+						您好,请您于【<text>园区大门</text>】扫脸进入,通过【<text>1号 楼</text>
+						】的【<text>2号电梯</text>】直达【<text>5F</text>】
 					</view>
-					<view class="txt txta" v-if="useflag">通行码已使用</view>
-					<view class="txt" v-else>点击二维码可放大哦</view>
-				</view>
-			</view> 
-			<!-- 预约失败 -->
-			<view class="cdet">
-				<view class="ctit">预约信息</view>
-				<view class="yerror" v-if="yyerror">
-					<image :src="errorimg"></image>
-					<view>审核失败</view>
 				</view>
-				<view class="cbox">
-					<view class="ctxt">预约时间</view>
-					<view class="ctlist">
-						<view class="tit">参观日期:</view>
-						<view class="txt">{{datainfo.visitDate||''}}</view>
-					</view>
-					<view class="ctlist">
-						<view class="tit">参观时间:</view>
-						<view class="txt">{{datainfo.visitTime||''}}</view>
-					</view>
-				</view>
-				<view class="cbox">
-					<view class="ctxt">登记信息</view>
-					<view class="ctlist">
-						<view class="tit">游客类型:</view>
-						<view class="txt" v-if="datainfo.reservatType">{{datainfo.reservatType=='2'?'散客':'团队'}}</view>
-					</view>
-					<view class="ctlist">
-						<view class="tit">单位名称:</view>
-						<view class="txt">{{datainfo.visitUnitName||''}}</view>
-					</view>
-					<view class="ctlist">
-						<view class="tit">参观人数:</view>
-						<view class="txt">{{datainfo.visitNum||''}}人</view>
-					</view>
-					<view class="ctlist">
-						<view class="tit">联系人:</view>
-						<view class="txt">{{datainfo.visitName||''}}</view>
+				<!-- 预约失败 -->
+				<view class="cdet">
+					<view class="ctit">预约信息</view>
+					<view class="yerror" v-if="datainfo.visitType==2">
+						<image :src="errorimg"></image>
+						<view>审核失败</view>
 					</view>
-					<view class="ctlist">
-						<view class="tit">联系电话:</view>
-						<view class="txt">{{datainfo.visitPhone||''}}</view>
-					</view>
-					<view class="ctlist">
-						<view class="tit">是否接待:</view>
-						<view class="txt">{{datainfo.isReception=='Y'?'是':'否'||''}}</view>
+					<view class="cbox">
+						<view class="ctxt">预约时间</view>
+						<view class="ctlist">
+							<view class="tit"><text>来访日期</text>:</view>
+							<view class="txt">{{datainfo.visitDate||''}}</view>
+						</view>
+						<view class="ctlist">
+							<view class="tit"><text>来访时间</text>:</view>
+							<view class="txt">{{datainfo.visitTime||''}}</view>
+						</view>
 					</view>
-					<block v-if="datainfo.isReception=='Y'">
-						<view class="ctlist" v-if="datainfo.receptionName">
-							<view class="tit">接待人:</view>
-							<view class="txt">{{datainfo.receptionName||''}}</view>
+					<view class="cbox">
+						<view class="ctxt">来访信息</view>
+						<view class="ctlist">
+							<view class="tit"><text>人数</text>:</view>
+							<view class="txt" >{{datainfo.visitNum}}人</view>
+						</view>
+						<view class="ctlist">
+							<view class="tit"><text>姓名</text>:</view>
+							<view class="txt">{{datainfo.visitName||''}}</view>
+						</view>
+						<view class="ctlist">
+							<view class="tit"><text>手机号码</text>:</view>
+							<view class="txt">{{datainfo.visitPhone||''}}</view>
 						</view>
-						<view class="ctlist" v-if="datainfo.receptionPhone">
-							<view class="tit">接待电话:</view>
-							<view class="txt">{{datainfo.receptionPhone||''}}</view>
+						<view class="ctlist">
+							<view class="tit"><text>来访地点</text>:</view>
+							<view class="txt">{{kaType(datainfo.appointmentSite,adrlist)||''}}</view>
+						</view>
+						<view class="ctlist">
+							<view class="tit"><text>来访事由</text>:</view>
+							<view class="txt">{{datainfo.visitReason||''}}</view>
+						</view>
+						<!-- <view class="ctlist">
+							<view class="tit"><text>是否接待</text>:</view>
+							<view class="txt">{{datainfo.isReception=='Y'?'是':'否'||''}}</view>
+						</view>
+						<block v-if="datainfo.isReception=='Y'">
+							<view class="ctlist" v-if="datainfo.receptionName">
+								<view class="tit"><text>接待人</text>:</view>
+								<view class="txt">{{datainfo.receptionName||''}}</view>
+							</view>
+							<view class="ctlist" v-if="datainfo.receptionPhone">
+								<view class="tit"><text>接待电话</text>:</view>
+								<view class="txt">{{datainfo.receptionPhone||''}}</view>
+							</view>
+						</block> -->
+						<view class="ctlist">
+							<view class="tit"><text>补充事由</text>:</view>
+							<view class="txt">{{datainfo.visitRemark||''}}</view>
 						</view>
-					</block>
-					<view class="ctlist">
-						<view class="tit">备注信息:</view>
-						<view class="txt">{{datainfo.visitRemark||''}}</view>
 					</view>
-				</view>
+				</view> 
+			</view>
+			<view class="code_btn" v-if="!useflag">
+				<view class="btn btn2 flex1" @click="getFail" >取消预约</view>
 			</view> 
 		</view>
-		<view class="code_btn" v-if="!useflag">
-			<view class="btn btn2 flex1" @click="getFail" >取消预约</view>
-		</view> 
-	</view>
+	  </view>
+	
 	
 	<!-- 弹窗 -->
 	<pop-up :type="type" @getClose="getClose"></pop-up>
@@ -95,20 +95,25 @@
 <script>
 	import * as base64 from "base-64"
 	import popUp from "@/components/order/popup.vue"
+	import stepBar from "@/components/order/stepbar.vue"
+	import navBar from "@/components/toptab/navbar.vue"
 	import {getReservatDetail,getReservatDel} from "@/api/mine/order.js"
+	import { selectDictValue } from '@/utils/common.js';
+	import {getDictionaryFn} from "@/api/mine/register.js"
 	import QR from "@/utils/wxqrcode.js" // 二维码生成器 
 	import config from '@/config'
 	const baseUrlimg = config.baseUrlimg
   export default {
-	  components:{popUp},
+	  components:{popUp,navBar,stepBar},
 	data(){
 		return{
+			adrlist:[],
 			codeimg:require('@/static/images/order/comes/code.png'),
 			useimg:require('@/static/images/order/comes/use.png'),
 			errorimg:require('@/static/images/order/comes/error.png'),
 			noiconpimg:require("@/static/images/noiconp.png"),
 			//status:  填写状态  0:未填   1:在填  2:填完
-			steps:[{tit:'预约时间',status:1,val:0},{tit:'信息登记',status:1,val:1},{tit:'等待审核',status:0,val:2},{tit:'审核结果',status:0,val:3}],
+			barsteps:[{tit:'信息填写',status:2,val:0},{tit:'等待审核',status:1,val:1},{tit:'审核成功',status:0,val:2},{tit:'已完成',status:0,val:3}],
 			fixedflag:true,
 			fixedflag:true,
 			useflag:false,
@@ -124,13 +129,31 @@
 		}
 	},
 	onLoad: function(e) {
-		this.id=base64.decode(e.id);
+		// this.id=base64.decode(e.id);
+		this.id=e.id;
+		this.init()
 		this.getDataFn()
 	},
 	methods:{
 		getClose(){
 			this.type=0;
 		},
+		kaType(data, list) {
+			return selectDictValue(list, data);
+		},
+		init(){
+			// 记录来源
+			getDictionaryFn('jluly').then(res=>{
+				if(res.code==200){
+					this.adrlist = res.data.map(v => {
+						return {
+							dictLabel: v.dictLabel,
+							dictValue: Number(v.dictValue)
+						}
+					})
+				}
+			})
+		},
 		getFail(){
 			var that=this;
 			uni.showModal({
@@ -180,37 +203,42 @@
 						this.datainfo=res.data;
 						if(res.data.visitStatus&&res.data.visitStatus==2){
 							this.useflag=true;
-						}
-						var type=res.data.visitType;
-						var reservatType=res.data.reservatType
-						if(reservatType==2){
-							this.steps[2].status=2;
-							this.steps[3].status=2;
-							this.steps[3].tit='预约成功';
-							this.yy_code = QR.createQrCodeImg(this.id, {
-								size: parseInt(240),//二维码大小 
-								typeNumber:10
-							})
+							this.barsteps[1].status=2;
+							this.barsteps[2].status=2;
+							this.barsteps[2].tit='审核完成';
+							this.barsteps[3].status=3;
 						}else{
-							//visitType":"预约状态 1:等待审核 2:拒绝 3:同意",
-							if(type==1){
-								this.steps[2].status=2;
-							}else if(type==2){
-								this.steps[2].status=2;
-								this.steps[3].status=2;
-								this.steps[3].tit='预约失败';
-								this.yyerror=true
-							}else if(type==3){
-								this.steps[2].status=2;
-								this.steps[3].status=2;
-								this.steps[2].tit='审核完成';
-								this.steps[3].tit='预约成功';
-								this.yy_code = QR.createQrCodeImg(this.id, {
-									size: parseInt(240),//二维码大小 
-									typeNumber:10
-								})
-							}
-						}
+							var type=res.data.visitType;
+							// var reservatType=res.data.reservatType
+							// if(reservatType==2){
+							// 	this.steps[2].status=2;
+							// 	this.steps[3].status=2;
+							// 	this.steps[3].tit='预约成功';
+							// 	this.yy_code = QR.createQrCodeImg(this.id, {
+							// 		size: parseInt(240),//二维码大小 
+							// 		typeNumber:10
+							// 	})
+							// }else{
+								//visitType":"预约状态 1:等待审核 2:拒绝 3:同意",
+								if(type==1){
+									this.barsteps[1].status=1;
+								}else if(type==2){
+									this.barsteps[1].status=2;
+									this.barsteps[2].status=2;
+									this.barsteps[2].tit='预约失败';
+									this.yyerror=true
+								}else if(type==3){
+									this.barsteps[1].status=2;
+									this.barsteps[2].status=2;
+									this.barsteps[2].tit='审核完成';
+									// this.barsteps[3].tit='预约成功';
+									// this.yy_code = QR.createQrCodeImg(this.id, {
+									// 	size: parseInt(240),//二维码大小 
+									// 	typeNumber:10
+									// })
+								}
+							// }
+						}	
 					}else{
 						this.nodataflag=true
 					}
@@ -227,29 +255,29 @@
 </script>
 
 <style lang="scss" scoped>
-.ytbox{padding:40rpx 0 32rpx;}
-// .nodata{width: 100%;min-height: 100vh;background-color: #FFFFFF;padding-top: 200rpx;box-sizing: border-box;
-// 	.img{width: 426rpx;height: 475rpx;margin:0 auto 40rpx;}
-// 	.tit{font-size: 32rpx;text-align: center;}
-// }
-.nodata{
-	display: flex;flex-direction: column;align-items: center;box-sizing: border-box;padding-top: 200rpx;min-height: 100vh;box-sizing: border-box;background-color: #FFFFFF;
-	.img{width: 456rpx;height: 178rpx;margin-bottom: 28rpx;}
+.ytbox{width: 684rpx;margin: 0 auto;padding-top: 24rpx;position: relative;flex: 1;overflow: auto;}
+.nodata{z-index: 3;flex: 1;overflow: auto;
+	display: flex;flex-direction: column;align-items: center;box-sizing: border-box;padding-top: 200rpx;background-color: #FFFFFF;
+	.img{width: 456rpx;height: 178rpx;margin-bottom: 28rpx;flex: 0 0 auto;}
 	.tit{font-size: 30rpx;color: #AAAAAA;font-weight: bold;}
 }	
 .code_box{
-	width: 684rpx;background: #FFFFFF;border-radius: 6rpx;margin: 0 auto;padding:40rpx 60rpx;box-sizing: border-box;flex: 1;
+	width: 100%rpx;background: #FFFFFF;border-radius: 14rpx;margin: 0 auto;padding:48rpx 56rpx 36rpx;box-sizing: border-box;flex: 1;
 	.cdet{
-		.ctit{font-size: 32rpx;font-weight: bold;color: #161616;position: relative;
-				&::before{width: 6rpx;height: 34rpx;background: $com-cd3;border-radius: 2rpx;content: '';left: -26rpx;top: 3rpx;position: absolute;bottom: 3rpx;}
+		.ctit{font-size: 28rpx;font-weight: bold;color: #161616;position: relative;
+				&::before{width: 6rpx;height: 34rpx;background: $com-cd3;border-radius: 4rpx;content: '';left: -26rpx;top: 3rpx;position: absolute;bottom: 3rpx;}
+		}
+		.adrtip{font-weight: 500;font-size: 28rpx;color: #161616;line-height: 40rpx;padding: 30rpx 0 56rpx;
+			text{color: $com-cd3;}
 		}
-		.cbox{padding: 36rpx 0 12rpx;}
-		.ctxt{font-size: 30rpx;font-weight: bold;
+		.cbox{padding: 40rpx 0 0rpx;}
+		.ctxt{font-size: 26rpx;font-weight: bold;
 color: $com-cd3;margin-bottom: 16rpx;}
-		.ctlist{padding: 10rpx 0;display: flex;justify-content: space-between;
-			.tit{font-size: 30rpx;font-weight: 500;
-			color: #AAAAAA;flex:0 0 auto;margin-right: 20rpx;}
-			.txt{font-size: 30rpx;font-weight: 500;color: #161616;flex: 1;text-align: right;	}
+		.ctlist{padding: 12rpx 0;display: flex;justify-content: space-between;
+			.tit{font-size: 28rpx;font-weight: 500;color: #666666;flex:0 0 auto;margin-right: 20rpx;
+				text{display: inline-block;width: 116rpx;text-align-last: justify;}
+			}
+			.txt{font-size: 26rpx;font-weight: bold;color: #161616;flex: 1;text-align: right;	}
 		}
 		.yerror{padding: 14rpx 0 30rpx;
 			image{width: 296rpx;height: 330rpx;margin: 0 auto 16rpx;}
@@ -257,25 +285,9 @@ color: $com-cd3;margin-bottom: 16rpx;}
 		}
 		
 	}
-	
-	// 二维码
-	.ycode{text-align: center;padding: 34rpx 0 30rpx;
-		.tit{font-size: 28rpx;font-weight: bold;
-color: #FFB132;}
-		.img{width: 270rpx;height: 270rpx;margin: 6rpx auto;padding: 10rpx;box-sizing: border-box;position: relative;
-			.codeimg{width: 100%;height: 100%;}
-			.usebox{
-				position: absolute;left: 0;right: 0;top: 0;bottom: 0;background-color: rgba(255, 255, 255, 0.8);
-			}
-			.useimg{width: 132rpx;height: 86rpx;position: absolute;bottom: 50rpx;right: 40rpx;}
-		}
-		.txt{font-size: 24rpx;font-weight: bold;color: $com-cd3;
-			&.txta{color: #AAAAAA;}
-		}
-	}
 }
-.code_btn{flex: 0 0 auto;padding: 40rpx 32rpx;display: flex;align-items: center;justify-content: space-between;
-	.btn{width: 320rpx;height: 80rpx;border-radius: 40rpx;box-sizing: border-box;font-size: 32rpx;font-weight: 500;text-align: center;line-height: 80rpx;
+.code_btn{flex: 0 0 auto;padding: 40rpx 0rpx;display: flex;align-items: center;justify-content: space-between;
+	.btn{width: 100%;height: 90rpx;border-radius: 14rpx;box-sizing: border-box;font-size: 28rpx;font-weight: 500;text-align: center;line-height: 80rpx;
 		&.btn1{background: #FFFFFF;border: 2rpx solid $com-cd3;color: $com-cd3;}
 		&.btn2{background: $com-cd3;color: #FFFFFF;}
 	}

+ 27 - 8
api/mine/order.js

@@ -1,4 +1,20 @@
 import request from '@/utils/request'
+// 查询预约时段配置信息列表
+export function getReservatTime(data) {
+  return request({
+    'url': '/reservat/time/list',
+    'method': 'get',
+	'data':data
+  })
+}
+// 新增预约
+export function getReservatAdd(data) {
+  return request({
+    'url': '/system/reservat',
+    'method': 'post',
+	'data':data
+  })
+}
 // 查询陵园预约信息列表
 export function getReservatList(data) {
   return request({
@@ -7,6 +23,16 @@ export function getReservatList(data) {
 	'data':data
   })
 }
+// 审核
+export function getReservatSh(data) {
+  return request({
+    'url': '/system/reservat/sh',
+    'method': 'post',
+	'data':data
+  })
+}
+// end
+
 // 查询陵园预约配置信息列表
 export function getConfigList(data) {
   return request({
@@ -23,14 +49,7 @@ export function getCalendarList(data) {
 	'data':data
   })
 }
-// 新增预约
-export function getReservatAdd(data) {
-  return request({
-    'url': '/system/reservat',
-    'method': 'post',
-	'data':data
-  })
-}
+
 // 预约详情
 export function getReservatDetail(data) {
   return request({

+ 29 - 16
components/lunc-calendar/lunc-calendar.vue

@@ -2,7 +2,7 @@
 	<view class="lunc-calendar">
 		<!-- 头部上下月按钮及月份 -->
 		<view class="header">
-			<text class="day_tit" >选择日期</text>
+			<!-- <text class="day_tit" >选择日期</text> -->
 			<text class="head-icon head-pre-month nocheck"  v-if="showChangeBtn&&!isshowPrev"></text>
 			<text class="head-icon head-pre-month" v-if="showChangeBtn&&isshowPrev" @click="changeMonthOrWeek('prev')"></text>
 			<text class="head-month">{{selDate.year+'年'+(selDate.month<10?'0'+selDate.month:selDate.month)+'月'}}</text>
@@ -21,21 +21,26 @@
 				<view class="month-days" :class="[shrinkType?'item-week':'']">
 					<view class="week-days" v-for="(b, j) in a" :key="j">
 						<view class="day" v-for="(c, k) in b" :key="k" @click="clickDay(c)">
+							<!-- 之前日期不可约 -->
+							<view class="day-info" :class="[c.dayClass, getIsSelDay(c)&&'is-sel', c.dayType!='normal'&&'un-month',c.isBefore?'day-infoa':''
+							]">
+								<text class="day-solar">{{ c.day }}</text>
+							</view>
 							<!-- 法定不可约,周六日不可约  不可约优先级高于节假日-->
-							<view class="day-info" :class="[c.dayClass, getIsSelDay(c)&&'is-sel', c.dayType!='normal'&&'un-month',
+							<!-- <view class="day-info" :class="[c.dayClass, getIsSelDay(c)&&'is-sel', c.dayType!='normal'&&'un-month',
 							c.sign && c.sign.length > 0&&c.sign[0].title!='可预约'||c.sign.length==0 || configWeek.indexOf(c.week)!=-1 || c.isHoliday&&configHoliday=='N'?'day-infoa':''
 							]">
 								<text class="day-solar">{{ c.day }}</text>
+								节假日
 								<template v-if="showLunar || c.sign && c.sign.length > 0 || c.isHoliday">
-									<!-- <text class="day-tag" v-if="c.sign && c.sign.length > 0"></text> -->
 									<text class="day-sign"  v-if="c.sign && c.sign.length > 0">
-									<!-- 节假日 -->
+									
 										<block v-if="c.isHoliday">{{c.dayLunar}}</block>
 										<block v-else>{{ configWeek.indexOf(c.week)==-1?c.sign[0].title:'不可约' }}</block>
 									</text>
 									<text class="day-lunar" v-else>{{c.dayLunar}}</text>
 								</template>
-							</view>
+							</view> -->
 						</view>
 					</view>
 				</view>
@@ -247,7 +252,10 @@
 			getDayInfo(date, dayType) {
 				const { year, month, day } = date;
 				let isToday = false; //是否今天
+				let isBefore=false;//是否今天之前
 				if (year == this.today.year && month == this.today.month && day == this.today.day) isToday = true;
+				if(year==this.today.year&&month == this.today.month && day < this.today.day) isBefore=true;
+				
 				let week = new Date(year + "/" + month + "/" + day).getDay(); //星期数
 				let lunar = calendar.solar2lunar(year, month, day); //农历
 				let dayLunar = lunar.IDayCn == '初一' ? lunar.IMonthCn + lunar.IDayCn : lunar.IDayCn;
@@ -263,6 +271,7 @@
 					lunar, // 农历
 					dayLunar, // 显示的农历
 					isToday, // 是否是今日
+					isBefore,//是否今天之前
 					isHoliday, // 是否是节假日
 					dayType, // 日期类型,上月、下月或当前月
 					sign: this.getSignByDate(date)
@@ -465,8 +474,11 @@
 			},
 			// 点击日期
 			clickDay(dayInfo) {
-				var isweek=this.configWeek.indexOf(dayInfo.week)
-				if(dayInfo.sign && dayInfo.sign.length > 0&&dayInfo.sign[0].title!='可预约'||dayInfo.sign.length==0||isweek!=-1||dayInfo.isHoliday&&this.configHoliday=='N'){
+				// var isweek=this.configWeek.indexOf(dayInfo.week)
+				// if(dayInfo.sign && dayInfo.sign.length > 0&&dayInfo.sign[0].title!='可预约'||dayInfo.sign.length==0||isweek!=-1||dayInfo.isHoliday&&this.configHoliday=='N'){
+				// 	return
+				// }
+				if(dayInfo.isBefore){
 					return
 				}
 				
@@ -771,7 +783,7 @@
 							width: 14.28%;
 							text-align: center;
 							// height: 84rpx;
-							height: 88rpx;
+							height: 76rpx;
 							color: #000;
 							/* #ifndef APP-NVUE */
 							padding: 0 6rpx;
@@ -789,16 +801,17 @@
 								
 								.day-solar {
 									display: flex;
-									font-size: 34rpx;
-									line-height: 34rpx;
-									margin-top: 2rpx;
+									font-size: 30rpx;
+									line-height: 76rpx;
 									width: calc(100% - 4rpx);
-									height: 50rpx;
-									padding-top: 10rpx;
+									// height: 50rpx;
+									// padding-top: 10rpx;
 									border-radius: 16rpx 16rpx 0 0;
-									color: #D32C26;
+									color: #161616;
 									box-sizing: border-box;
-									background:#ffffff;display: block;
+									// background:#ffffff;
+									display: block;
+									// font-weight: bold;
 								}
 
 								.day-lunar,
@@ -864,7 +877,7 @@
 							.is-sel {
 								background-color: $com-cd3;
 								border-radius: 16rpx;
-								.day-solar{color: $com-cd3 !important;}
+								.day-solar{color: #ffffff !important}
 								.day-sign{color: #ffffff !important;}
 							}
 						}

+ 2 - 2
components/nodata/nodata.vue

@@ -17,7 +17,7 @@
 			padtop:{
 				type: Number,
 				default () {
-					return 200
+					return 100
 				}
 			}
 		},
@@ -32,7 +32,7 @@
 <style lang="scss" scoped>
 // 无数据
 .nodata{
-	display: flex;flex-direction: column;align-items: center;box-sizing: border-box;
+	display: flex;flex-direction: column;align-items: center;box-sizing: border-box;padding-bottom: 100rpx;
 	image{width: 456rpx;height: 178rpx;margin-bottom: 28rpx;}
 	view{font-size: 30rpx;color: #AAAAAA;font-weight: bold;}
 }	

+ 102 - 65
components/order/list.vue

@@ -4,43 +4,36 @@
 		<!-- 预约 -->
 		<block v-if="type==1">
 			<view class="ylist" v-for="(ite,idx) in datalist" :key='idx' @click="getDetail(ite.reservatId)">
-				<view class="ytop">
-					<image :src="topbg" class="ytbg"></image>
-					<view class="ytime flexc"><view class="flex0">预约时间:</view>
-						<view class="lh18">{{ite.visitDate}} {{typeFn(ite.visitTime)}}</view>
-						<view class="ytype" v-if="ite.reservatType==1">团体</view>
-						<view class="ytype" v-if="ite.reservatType==2">散客</view>
+				<image :src="ysta" class="ystaimg" v-if="ite.visitType==3"></image>
+				<image :src="ystb" class="ystaimg" v-if="ite.visitType==2"></image>
+				<view class="ytop flexc">
+					<view class="tit">{{ite.visitName.charAt(0)}}</view>
+					<view class="cent">
+						<view class="ctit">{{ite.visitName}}提交的预约来访申请</view>
+						<view class="ctime">提交时间:{{ite.createTime}}</view>
 					</view>
-					<view class="ytip">
-						<block v-if="ite.visitStatus==1&&ite.reservatType==2">
-							<image :src="dbg"></image>
-							<view >待参观</view>
-						</block>
-						<block v-if="ite.visitStatus==1&&ite.reservatType==1&&ite.visitType==3">
-							<image :src="dbg"></image>
-							<view>待参观</view>
-						</block>
-						<block v-if="ite.visitStatus==1&&ite.reservatType==1&&ite.visitType!=3">
-							<view class="tsbtn co1" v-if="ite.visitType==1">待审核</view>
-							<view class="tsbtn co3" v-if="ite.visitType==2">已拒绝</view>
-						</block>
-						<block v-if="ite.visitStatus==2">
-							<image :src="ybg"></image>
-							<view>已参观</view>
-						</block>
+					<view class="right" v-if="ite.visitType==1">
+						<image :src="ybga"></image>
+						<view>待审核</view>
 					</view>
+					
 				</view>
 				<view class="ybox">
-					<view class="yblist w50" v-if="ite.reservatType==1"><text>单位名称:</text>{{ite.visitUnitName||''}}</view>
-					<view class="yblist w50"><text>参观人数:</text>{{ite.visitNum||''}}人</view>
-					<view class="yblist w50"><text>联系人:</text>{{ite.visitName||''}}</view>
-					<view class="yblist w50"><text>联系电话:</text>{{ite.visitPhone||''}}</view>
-					<view class="yblist">
-						<view class="line"></view>
-					</view>
-					<view class="yblist w50"><text>是否接待:</text>{{ite.isReception=='Y'?'是':'否'||''}}</view>
-					<view class="yblist w50" v-if="ite.isReception=='Y'"><text>接待人:</text>{{ite.receptionName||''}}</view>
-					<view class="yblist w50" v-if="ite.isReception=='Y'"><text>接待电话:</text>{{ite.receptionPhone||''}}</view>
+					<view class="yblist w50"><text>预约日期</text>{{ite.visitDate}}</view>
+					<view class="yblist w50"><text>预约时间</text>{{ite.visitTime}}</view>
+					<view class="yblist w50"><text>手机号码</text>{{ite.visitPhone}}</view>
+					<view class="yblist w50"><text>人 数</text>{{ite.visitNum}}</view>
+					<view class="yblist w50"><text>来访地点</text>{{kaType(ite.appointmentSite,adrlist)}}</view>
+					<view class="yblist w50"><text>来访事由</text>{{ite.visitReason}}</view>
+				</view>
+				<view class="ybtn">
+					<view class="ybtns btn1" @click.stop="getDelFn(ite.reservatId)">删除</view>
+					<view class="flex1"></view>
+					<block v-if="ite.visitType==1">
+						<view class="ybtns btn2" @click.stop="gettypeFn(2,ite.reservatId)">拒绝</view>
+						<view class="ybtns btn3" @click.stop="gettypeFn(3,ite.reservatId)">同意</view>
+					</block>
+					
 				</view>
 			</view>
 		</block>
@@ -53,6 +46,7 @@
 </template>
 
 <script>
+	import { selectDictValue } from '@/utils/common.js';
 	import noData from "@/components/nodata/nodata.vue"
   export default {
 	props:{
@@ -62,6 +56,12 @@
 				return []
 			}
 		},
+		adrlist:{
+			type: Array,
+			default () {
+				return []
+			}
+		},
 		wtdt:{
 			type: String,
 			default () {
@@ -80,15 +80,57 @@
 	},
 	data(){
 		return{
-			topbg:require("@/static/images/order/staffs/topbg.png"), 
-			dbg:require("@/static/images/order/staffs/dbg.png"), 
-			dsbg:require("@/static/images/order/staffs/dsbg.png"), 
-			ybg:require("@/static/images/order/staffs/ybg.png"), 
+			ybga:require("@/static/images/order/staff/ybg.png"), 
+			ysta:require("@/static/images/order/staff/ysta.png"), 
+			ystb:require("@/static/images/order/staff/ystb.png"), 
 		}
 	},
 	onLoad: function() {
 	},
 	methods:{
+		kaType(data, list) {
+			return selectDictValue(list, data);
+		},
+		getDelFn(id){
+			var that=this;
+			uni.showModal({
+				title: '确认删除',
+				content: "是否确认删除该预约",
+				cancelText: '取消',
+				confirmText: '确认',
+				success: function(res) {
+					if (res.confirm) {
+						that.$emit("getDelFn",id)
+					} else if (res.cancel) {
+						// console.log('用户点击取消');
+					}
+				}
+			});
+		},
+		gettypeFn(type,id){
+			var that=this;
+			var str="拒绝"
+			if(type==3){
+				str='同意'
+			}
+			uni.showModal({
+				title: '确认'+str,
+				content: "是否确认"+str+"该预约",
+				cancelText: '取消',
+				confirmText: '确认',
+				success: function(res) {
+					if (res.confirm) {
+						var newobj={
+							type:type,
+							id:id
+						}
+						that.$emit("gettypeFn",newobj)
+					} else if (res.cancel) {
+						// console.log('用户点击取消');
+					}
+				}
+			});
+		},
 		getDetail(e){
 			this.$emit('getDetail',e)
 		},
@@ -114,38 +156,33 @@
 
 <style lang="scss" scoped>
 // 预约
-.ylist{background: #FFFFFF;box-shadow: 0px 2rpx 4rpx 0px rgba(205,205,205,0.8);border-radius: 14rpx;margin-bottom: 20rpx;
-	.ytop{position: relative;
-		.ytbg{width: 100%;height: 76rpx;}
-		.ytime{padding: 4rpx 100rpx 4rpx 36rpx;font-size: 28rpx;font-weight: bold;box-sizing: border-box;
-color: #161616;position: absolute;left: 0;right: 0;bottom: 0;top: 0;
-			.ytype{min-width: 56rpx;padding: 0 12rpx;flex:0 0 auto;
-height: 40rpx;color: #FE5A0E;font-size: 18rpx;text-align: center;box-sizing: border-box;line-height: 36rpx;
-background: #FFFFFF;
-border: 2rpx solid #FE5A0E;
-border-radius: 20rpx;margin-left: 16rpx;}
-}
-		.ytip{width: 88rpx;height: 66rpx;position: absolute;right: 0;top:0;
-			image{width: 100%;height: 100%;}
-			view{font-size: 24rpx;font-weight: 500;
-color: #FFFFFF;text-align: center;margin-top: 10rpx;position: absolute;left: 0;top: 0;bottom: 0;right: 0;}
-			.tsbtn{min-width: 90rpx;height: 36rpx;border-radius: 4rpx;box-sizing: border-box;font-size: 24rpx;line-height: 36rpx;margin-top: 20rpx;
-				&.co1{background: #FFEDDF;color: #E19301;}
-				&.co2{background: #D3F7E5;color: #24D725;}
-				&.co3{background: #FDE2E3;color: #EC1134;}
-			}
+.ylist{background: #FFFFFF;border-radius: 14rpx;margin-bottom: 30rpx;position: relative;
+	.ystaimg{width: 140rpx;height: 140rpx;top: 22rpx;right: 22rpx;position: absolute;}
+	.ytop{padding: 16rpx 0 24rpx 16rpx;
+		.tit{width: 62rpx;height: 62rpx;background: #0391FD;border-radius: 6rpx;font-weight: 500;
+font-size: 34rpx;color: #FFFFFF;margin-right: 18rpx;text-align: center;line-height: 62rpx;flex: 0 0 auto;}
+		.cent{
+			flex: 1;
+			.ctit{font-weight: bold;font-size: 28rpx;color: #161616;margin-bottom: 6rpx;}
+			.ctime{font-weight: 500;font-size: 18rpx;color: #666666;}
+		}
+		.right{position: relative;flex: 0 0 auto;margin-left: 10rpx;
+			image{width: 144rpx;height: 56rpx;}
+			view{font-weight: 800;font-size: 22rpx;color: #FFFFFF;position: absolute;left: 0;top: 0;right: 0;bottom: 0;text-align: center;padding-left: 20rpx;box-sizing: border-box;line-height: 56rpx;}
 		}
 	}
-	.ybox{
-		padding: 22rpx 32rpx;display: flex;flex-wrap: wrap;
-		.yblist{display: flex;font-size: 30rpx;font-weight: 400;color: #161616;width: 100%;line-height: 40rpx;padding: 4rpx 0;
-		text{font-weight: normal;color: #aaa;flex: 0 0 auto;}
+	.ybox{padding: 0rpx 24rpx 24rpx;display: flex;flex-wrap: wrap;
+		.yblist{display: flex;font-size: 24rpx;font-weight: 500;color: #161616;width: 100%;padding: 6rpx 0;line-height: 40rpx;
+			text{font-weight: normal;color: #aaa;flex: 0 0 auto;width: 100rpx;text-align-last: justify;margin-right: 12rpx;}
+		}
+	}
+	.ybtn{border-top: 2rpx solid #DADADA;padding: 20rpx 18rpx;display: flex;align-items: center;
+		.ybtns{width: 130rpx;border-radius: 6rpx;height: 52rpx;font-weight: 500;font-size: 26rpx;display: flex;align-items: center;justify-content: center;box-sizing: border-box;flex: 0 0 auto;
+			&.btn1{border: 2rpx solid #FC3838;color: #FC3838;}
+			&.btn2{border: 2rpx solid #666666;color: #666666;}
+			&.btn3{background-color: #0391FD;color: #ffffff;margin-left: 22rpx;}
 		}
-		.line{width: 56rpx;
-height: 2rpx;
-background: #CDCDCD;margin: 32rpx auto 24rpx;}
 	}
-
 }
 
 </style>

+ 13 - 11
components/order/stepbar.vue

@@ -6,7 +6,8 @@
 		  	<image :src="fillin" class="img" v-if="ite.status==1"></image>
 		  	<image :src="fillf" class="img" v-if="ite.status==2"></image>
 		  	<view class="tit">{{ite.tit}}</view>
-		  	<view class="line"></view>
+			<image :src="line" class="line"></image>
+		  	<!-- <view class="line"></view> -->
 		  </view>
 	  </block>
   </view>
@@ -40,9 +41,10 @@
 	},
 	data(){
 		return{
-			fillin:require("@/static/images/order/comes/fillin.png"),//填写
-			fillf:require("@/static/images/order/comes/fillf.png"), //完成
-			filln:require("@/static/images/order/comes/filln.png"),//未填
+			fillin:require("@/static/images/order/come/fillin.png"),//填写
+			fillf:require("@/static/images/order/come/fillf.png"), //完成
+			filln:require("@/static/images/order/come/filln.png"),//未填
+			line:require("@/static/images/order/come/line.png"),//完成
 		}
 	},
 	onLoad: function() {
@@ -57,18 +59,18 @@
 </script>
 
 <style lang="scss" scoped>
-.sfixed{position: fixed;left: 0;right: 0;top: 0;z-index: 10;}
-.stepbar{background: #ffffff;display: flex;align-items: center;padding: 30rpx 0rpx;flex: 0 0 auto;
+// .sfixed{position: absolute;left: 0;right: 0;top: 0;z-index: 10;}
+.stepbar{background: transparent;display: flex;align-items: center;padding: 30rpx 0rpx;flex: 0 0 auto;
 	.steps{display: flex;flex-direction: column;flex: 1;align-items: center;position: relative;
-		.img{width: 46rpx;height: 46rpx;margin-bottom: 14rpx;}
-		.tit{font-size: 24rpx;font-weight: bold;color: #CDCDCD;
+		.img{width: 30rpx;height: 30rpx;margin-bottom: 20rpx;}
+		.tit{font-size: 24rpx;font-weight: bold;color: #ffffff;opacity: 0.7;
 
 		}
-		.line{position: absolute;width: 60%;border-bottom: 2rpx dashed #CDCDCD;top: 22rpx;right: 0;transform: translateX(50%);}
+		.line{position: absolute;width: 102rpx;height:18rpx;top: 6rpx;right: 0;transform: translateX(50%);opacity: 0.7;}
 		&:last-of-type{.line{display: none;}}
 		&.act{
-			.line{border-color: $com-cd3;}
-			.tit{color: $com-cd3;}
+			.line{opacity: 1;}
+			.tit{opacity: 1;}
 		}
 	}
 

+ 0 - 52
components/order/zan.vue

@@ -1,52 +0,0 @@
-<template>
-  <view>
-	
-  </view>
-</template>
-
-<script>
-  export default {
-	props:{
-		datalist: {
-			type: Array,
-			default () {
-				return []
-			}
-		},
-		wtdt:{
-			type: String,
-			default () {
-				return ''
-			}
-		},
-		type:{
-			type: [String,Number],
-			default () {
-				return ''
-			}
-		},
-	},
-	components:{
-		noData
-	},
-	data(){
-		return{
-			topbg:require("@/static/images/order/staffs/topbg.png"), 
-			dbg:require("@/static/images/order/staffs/dbg.png"), 
-			ybg:require("@/static/images/order/staffs/ybg.png"), 
-		}
-	},
-	onLoad: function() {
-	},
-	methods:{
-		getDetail(e){
-			this.$emit('getDetail')
-		} 
-	},
-	
-  }
-</script>
-
-<style lang="scss" scoped>
-
-</style>

+ 60 - 0
components/toptab/navbar.vue

@@ -0,0 +1,60 @@
+<template>
+	<view>
+		<image :src="navbg" class="navbg"></image>
+		<uni-nav-bar :left-icon="leftflag?'left':''" :title="navtit" color="#ffffff"  :background-color="bgColor" :border="navborder" statusBar='true' fixed="true" @clickLeft='getBack'>
+			<!-- <block slot="default">
+				<view class="navtit">
+					<view>{{navtit}}</view>
+				</view>
+			</block> -->
+		</uni-nav-bar>
+	</view>
+</template>
+
+<script>
+	export default{
+		props:{
+			bgColor:{
+				type: String,
+				default () {
+					return 'transparent'
+				}
+			},
+			navborder:{
+				type: Boolean,
+				default () {
+					return false
+				}
+			},
+			navtit:'',
+			leftflag:{
+				type: Boolean,
+				default () {
+					return false
+				}
+			}
+		},
+		data(){
+			return{
+				navbg:require("@/static/images/navbg.png"),
+				backgroundColor: "transparent",
+			}
+		},
+		methods:{
+			getBack(){
+				if(this.leftflag){
+					uni.navigateBack({
+						delta:1
+					})
+				}
+				
+			},
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+.navbg{width: 100%;height: 692rpx;position: fixed;left: 0;right: 0;top: 0;z-index: 1;}
+.navtit{display: flex;align-items: center;justify-content: center;font-size: 30rpx;color: #ffffff;width: 100%;
+}	
+</style>

+ 0 - 167
components/uni-section/uni-section.vue

@@ -1,167 +0,0 @@
-<template>
-	<view class="uni-section">
-		<view class="uni-section-header" @click="onClick">
-				<view class="uni-section-header__decoration" v-if="type" :class="type" />
-        <slot v-else name="decoration"></slot>
-
-        <view class="uni-section-header__content">
-          <text :style="{'font-size':titleFontSize,'color':titleColor}" class="uni-section__content-title" :class="{'distraction':!subTitle}">{{ title }}</text>
-          <text v-if="subTitle" :style="{'font-size':subTitleFontSize,'color':subTitleColor}" class="uni-section-header__content-sub">{{ subTitle }}</text>
-        </view>
-
-        <view class="uni-section-header__slot-right">
-          <slot name="right"></slot>
-        </view>
-		</view>
-
-		<view class="uni-section-content" :style="{padding: _padding}">
-			<slot />
-		</view>
-	</view>
-</template>
-
-<script>
-
-	/**
-	 * Section 标题栏
-	 * @description 标题栏
-	 * @property {String} type = [line|circle|square] 标题装饰类型
-	 * 	@value line 竖线
-	 * 	@value circle 圆形
-	 * 	@value square 正方形
-	 * @property {String} title 主标题
-	 * @property {String} titleFontSize 主标题字体大小
-	 * @property {String} titleColor 主标题字体颜色
-	 * @property {String} subTitle 副标题
-	 * @property {String} subTitleFontSize 副标题字体大小
-	 * @property {String} subTitleColor 副标题字体颜色
-	 * @property {String} padding 默认插槽 padding
-	 */
-
-	export default {
-		name: 'UniSection',
-    emits:['click'],
-		props: {
-			type: {
-				type: String,
-				default: ''
-			},
-			title: {
-				type: String,
-				required: true,
-				default: ''
-			},
-      titleFontSize: {
-        type: String,
-        default: '14px'
-      },
-			titleColor:{
-				type: String,
-				default: '#333'
-			},
-			subTitle: {
-				type: String,
-				default: ''
-			},
-      subTitleFontSize: {
-        type: String,
-        default: '12px'
-      },
-      subTitleColor: {
-        type: String,
-        default: '#999'
-      },
-			padding: {
-				type: [Boolean, String],
-				default: false
-			}
-		},
-    computed:{
-      _padding(){
-        if(typeof this.padding === 'string'){
-          return this.padding
-        }
-
-        return this.padding?'10px':''
-      }
-    },
-		watch: {
-			title(newVal) {
-				if (uni.report && newVal !== '') {
-					uni.report('title', newVal)
-				}
-			}
-		},
-    methods: {
-			onClick() {
-				this.$emit('click')
-			}
-		}
-	}
-</script>
-<style lang="scss" >
-	$uni-primary: #2979ff !default;
-
-	.uni-section {
-		background-color: #fff;
-    .uni-section-header {
-      position: relative;
-      /* #ifndef APP-NVUE */
-      display: flex;
-      /* #endif */
-      flex-direction: row;
-      align-items: center;
-      padding: 12px 10px;
-      font-weight: normal;
-
-      &__decoration{
-        margin-right: 6px;
-        background-color: $uni-primary;
-        &.line {
-          width: 4px;
-          height: 12px;
-          border-radius: 10px;
-        }
-
-        &.circle {
-          width: 8px;
-          height: 8px;
-          border-top-right-radius: 50px;
-          border-top-left-radius: 50px;
-          border-bottom-left-radius: 50px;
-          border-bottom-right-radius: 50px;
-        }
-
-        &.square {
-          width: 8px;
-          height: 8px;
-        }
-      }
-
-      &__content {
-        /* #ifndef APP-NVUE */
-        display: flex;
-        /* #endif */
-        flex-direction: column;
-        flex: 1;
-        color: #333;
-
-        .distraction {
-          flex-direction: row;
-          align-items: center;
-        }
-        &-sub {
-          margin-top: 2px;
-        }
-      }
-
-      &__slot-right{
-        font-size: 14px;
-      }
-    }
-
-    .uni-section-content{
-      font-size: 14px;
-    }
-	}
-</style>

+ 2 - 2
config.js

@@ -1,8 +1,8 @@
 // 应用全局配置
 module.exports = {
-  baseUrl: 'https://vue.ruoyi.vip/prod-api',
+  // baseUrl: 'https://vue.ruoyi.vip/prod-api',
   // baseUrl: 'https://lyyy.qs163.cn/prod-api',
-  // baseUrl: 'http://192.168.101.168:8089',
+  baseUrl: 'http://192.168.101.168:8065',
   // baseUrl: 'http://192.168.101.11:8089',
   // baseUrlimg: 'http://114.99.127.243:2001',
   Clientid:'428a8310cd442757ae699df5d894f051',//

+ 4 - 4
manifest.json

@@ -1,6 +1,6 @@
 {
-    "name" : "烈士陵园预约",
-    "appid" : "__UNI__6C93067",
+    "name" : "园区安防",
+    "appid" : "__UNI__9ACE566",
     "description" : "",
     "versionName" : "1.0.0",
     "versionCode" : 100,
@@ -54,8 +54,8 @@
                 "geolocation" : {
                     "amap" : {
                         "__platform__" : [ "android" ],
-                        "appkey_ios" : "14b0dd93ed792fe585d89f173e4e511d",
-                        "appkey_android" : "14b0dd93ed792fe585d89f173e4e511d"
+                        "appkey_ios" : "b85f0c64b3c9a082d740912cf3019c88",
+                        "appkey_android" : "b85f0c64b3c9a082d740912cf3019c88"
                     }
                 }
             },

+ 21 - 10
pages.json

@@ -16,15 +16,15 @@
 	    "navigationBarTitleText": "智慧访客预约系统",
 	    "navigationStyle": "custom"
 	  }},
-	// {
-	//   "path": "pages/order/search",
-	//   "style": {
-	//     "navigationBarTitleText": "预约查询",
-	// 			"h5":{
-	// 				"titleNView":false
-	// 		}
-	// 	}
-	// },
+	{
+	  "path": "pages/order/info",
+	  "style": {
+	    "navigationBarTitleText": "信息录入",
+				"h5":{
+					"titleNView":false
+			}
+		}
+	},
 	// {
 	//   "path": "pages/order/notice",
 	//   "style": {
@@ -45,6 +45,7 @@
 	  "path": "pages/order/staffcode",
 	  "style": {
 	    "navigationBarTitleText": "扫码通行",
+		"navigationStyle": "custom",
 		"h5":{
 			"titleNView":false
 			}
@@ -63,15 +64,25 @@
 	   "path": "pages/order/come",
 	   "style": {
 	     "navigationBarTitleText": "来访预约",
+			"navigationStyle": "custom",
 			"h5":{
 				"titleNView":false
 	 		}
 	 	}
 	 },
 	 {
-	   "path": "pages/order/comedetail",
+	   "path": "pages/order/list",
 	   "style": {
 	     "navigationBarTitleText": "预约信息",
+	 		"h5":{
+	 			"titleNView":false
+	 		}
+	 	}
+	 },
+	 {
+	   "path": "pages/order/face",
+	   "style": {
+	     "navigationBarTitleText": "人脸识别",
 	 			"h5":{
 	 				"titleNView":false
 	 		}

+ 0 - 37
pages/index.vue

@@ -1,37 +0,0 @@
-<template>
-	<view class="zan">
-		<view @click="geta">保安</view>
-		<view @click="getb">被访者</view>
-		<view @click="getc">来访者</view>
-	</view>
-</template>
-
-<script>
-	export default{
-		data(){
-			return{
-				
-			}
-		},
-		methods:{
-			geta(){
-				this.$tab.navigateTo('/pages/order/staff')
-			},
-			getb(){
-				this.$tab.navigateTo('/pages/order/notice')
-			},
-			getc(){
-				this.$tab.navigateTo('/pages/order/come')
-			},
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-.zan{
-	display: flex;align-items: center;
-	view{
-		font-size: 32rpx;padding: 0 20rpx;flex: 1;
-	}
-}
-</style>

+ 167 - 250
pages/index/index.vue

@@ -1,74 +1,61 @@
 <template>
-  <view class="staff" :style="'padding-top:'+statop+'px;'">
-	  <view class="pfixed">
-		<view class="staff_top  flexcj" :style="'padding-top:'+tops+'px;'">
-			<image :src="titimg" class="topl flex0"></image>
-			<view class="topr" v-if="city">
-				<view class="f14 co16 fw flexc lh20">{{city}}<image :src="weathericon" class="weaimg"></image>
-				</view>
-				<view class="f12 co16">{{weather}} {{temperature}}­°C</view>
-			</view>
+	<view class="yybox">
+		<view class="navbox">
+			<image :src="navbg" class="navbg"></image>
+			<uni-nav-bar  color="#ffffff" leftWidth='340rpx'  :background-color="backgroundColor" :border="false" statusBar='true' fixed="true">
+				<block slot="left">
+					<view class="navleft">
+						<view>{{city}} {{daytime}}</view>
+						<view>农历{{lunar}}</view>
+					</view>
+				</block>
+				<block slot="right">
+					<view class="topr flexccc" v-if="weather">
+						<image :src="weathericon" class="navright"></image>
+						<view class="f12 cof">{{weather}} {{temperature}}­°C</view>
+					</view>
+				</block>
+			</uni-nav-bar>
 		</view>
-		<view class="sy_box plr15" :style="topflag?'display: block;':'display: none;'" >
-			<view class="sy_tit flexcj">
-				<view class="sy_txt">预约登记信息</view>
-				<!-- <image :src="rimg" class="sy_rimg"></image> -->
-			</view>
-					<!-- tab -->
-			<view class="tab flexcj">
-				<view class="list" :class="tabidx==ite.val?'act':''" v-for="(ite,idx) in tablist" :key="idx" @click="getTab(ite.val)">{{ite.tit}}</view>
-			</view>
-		</view>  
-	  </view>
-	  
-	  <view class="staff_box">
-		  <view class="s_count">
-			  <image :src="bgimg" class="bgimg"></image>
-			  <view class="s_counta">
-				  <view class="s_coua flexcj">
-					  <view class="f14 fw cof1 lh20">陵园参观预约统计</view>
-					  <i class="f14 fw cof1">{{kaTime}}</i>
-				  </view>
-				  <view class="flexc s_clist">
+		<!-- 主体 -->
+		<view class="yymain">
+			<view class="yycard">
+				<view class="top flexccc">
+					<image :src="headimg"></image>
+					<view>欢迎您,尊敬的管理员!</view>
+				</view>
+				<view class="flexcc">
 					<view class="list">
-						<view class="num">{{conuntinfo.canGuan}}</view>
-						<view class="tit">参观数(位)</view>
+						<view class="tit">613</view>
+						<view class="txt">来访数(位)</view>
 					</view>
 					<view class="list">
-						<view class="num">{{conuntinfo.yuYue}}</view>
-						<view class="tit">已预约(位)</view>
+						<view class="tit">246</view>
+						<view class="txt">本月预约(位)</view>
 					</view>
 					<view class="list">
-						<view class="num">{{conuntinfo.todayYuYue}}</view>
-						<view class="tit">今日预约(位)</view>
+						<view class="tit">613</view>
+						<view class="txt">今日来访(位)</view>
 					</view>
 					<view class="list">
-						<view class="num">{{conuntinfo.todayCanGuan}}</view>
-						<view class="tit">今日参观(位)</view>
+						<view class="tit">613</view>
+						<view class="txt">今日预约(位)</view>
 					</view>
-				  </view>
-				  <!-- v-if="checkPermi(['system:reservat:cav'])" -->
-				  <view class="flexcc s_cbtn" @click="getCode" >
-					  <image :src="scanimg" class="scanimg"></image>
-					  扫码通行
-				  </view>
-			  </view>
-		  </view>
-		  <!-- 预约客户信息 -->
-		  <view class="sy_box" >
-			<view class="sy_tit flexcj">
-				<view class="sy_txt">预约登记信息</view>
-				<!-- <image :src="rimg" class="sy_rimg"></image> -->
+					
+				</view>
 			</view>
-			<!-- tab -->
-			<view class="tab flexcj">
-				<view class="list" :class="tabidx==ite.val?'act':''" v-for="(ite,idx) in tablist" :key="idx" @click="getTab(ite.val)">{{ite.tit}}</view>
+			<view class="yylists">
+				<view class="yyltab flexcj">
+					<view class="left flexc">待审批列表<image :src="listline"></image></view>
+					<view class="right" @click="getMoreFn">查看更多 >></view>
+				</view>
+				<!-- 列表 -->
+				<view>
+					<y-list type='1' :datalist="list" :wtdt="wtdt" @getDetail='getDetail' :adrlist="adrlist" @getDelFn="getDelFn" @gettypeFn="gettypeFn"></y-list>
+				</view>
 			</view>
-		  </view>
-		<!-- 列表 -->
-		<view class="pt8" :style="'min-height: ' + minheight + 'px;'"><y-list :datalist="list" :wtdt="wtdt" :type="type" @getDetail='getDetail'></y-list></view>
-	  </view>
-	  
+		</view>
+	
 	<footers v-if="isfootflag" :footlist="footlist" :footerindex="footerindex" :color_checked="color_checked" :color_nochecked="color_nochecked" :isHomeIndex="true"></footers>
   </view>
 </template>
@@ -77,19 +64,14 @@
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 	import self from '@/utils/location.js';
 	import yList from "@/components/order/list.vue"
-	import {getReservatcountl,getReservatList,getReservatvav} from "@/api/mine/order.js"
+	let { calendar } = require("@/components/lunc-calendar/calendar.js");
+	import {getReservatcountl,getReservatList,getReservatDel,getReservatSh} from "@/api/mine/order.js"
+	import {getDictionaryFn} from "@/api/mine/register.js"
 	import footers from '@/components/footer/footer.vue'
   export default {
 	components:{yList,footers},
 	data(){
 		return{
-			tops:12,
-			backgroundColor: "#ffffff",
-			weather:require("@/static/images/order/staffs/weather.png"), 
-			titimg:require("@/static/images/order/staffs/tit.png"), 
-			bgimg:require("@/static/images/order/staffs/bg.png"), 
-			scanimg:require("@/static/images/order/staffs/scan.png"),
-			rimg:require("@/static/images/order/staffs/rimg.png"),
 			footlist:[
 				{module:'home',title:'首页',icon_checked:require('@/static/images/tabbar/home_.png'),icon_nochecked:require('@/static/images/tabbar/home.png')},
 				{module:'mine',title:'我的',icon_checked:require('@/static/images/tabbar/mine_.png'),icon_nochecked:require('@/static/images/tabbar/mine.png')},
@@ -98,58 +80,54 @@
 			isfootflag:true,
 			color_checked :'161616',
 			color_nochecked :'666666',
-			statop:48,
-			dingtop:0,
-			tabidx:1,
-			tablist:[{tit:'今天',val:'1'},{tit:'昨天',val:'2'},{tit:'近7天',val:'3'},{tit:'近30天',val:'4'},{tit:'全部',val:'5'}],
-			pageSize: 10,
-			pageNum: 1,
-			reachflag: true,
-			topflag:false,
-			wtdt:'',
-			list:[],
-			type:'1',
-			conuntinfo:{},
-			timefn:'',
-			kaTime:'',
-			minheight:0,
+			navbg:require("@/static/images/navbg.png"),
+			headimg:require("@/static/images/order/staff/head.png"),
+			listline:require("@/static/images/order/staff/listline.png"),
+			backgroundColor: "transparent",
 			city:'',
 			weather:'',
 			temperature:'',
-			weathericon:require("@/static/images/weather/weaionc.png"),
+			list:[],
+			adrlist:[],
+			pageSize: 10,
+			pageNum: 1,
+			reachflag: false,
+			wtdt:'',
+			daytime:'',
+			lunar:'',
+			weathericon:require("@/static/images/weather/weaionf.png"),
 			
 		}
 	},
+	onPageScroll(e) {
+		var scrollTop = Number(e.scrollTop);
+		if (scrollTop > 0) {
+			this.backgroundColor = '#0491FD'
+		} else {
+			this.backgroundColor = 'transparent'
+		}
+	},
 	onLoad: function() {
 		uni.$on('refreshdatalist',(e) => {
-			this.reachflag=true;
+			this.reachflag=false;
 			this.pageNum=1;
 			this.list=[];
 			this.getDataFn();
-			this.getcount();
-		})
-		uni.getSystemInfo({
-			success: (e) => {
-				this.tops = Number(e.statusBarHeight)+12;
-				this.statop=this.tops+48;
-				this.minheight = e.screenHeight - this.statop - 80;
-			}
+			// this.getcount();
 		})
-		this.getcount()
+		
+		this.init()
+		// this.getcount()
 		this.getDataFn()
 		
 	},
 	onUnload() {
 		uni.$off('refreshdatalist')
-		clearInterval(this.timefn)
-	},
-	onHide() {
-		clearInterval(this.timefn)
 	},
+
 	onShow() {
-		clearInterval(this.timefn)
-		this.gettimeFn();
 		var that=this;
+		this.time();
 		// #ifndef H5
 		self.getLocation(function(res){
 			if(res==-1){
@@ -166,15 +144,6 @@
 		// #endif
 	},
 	mounted() {
-		this.ceheiFn()
-	},
-	onPageScroll(e) {
-		let that = this;
-		if(e.scrollTop >= that.dingtop + 10){
-			that.topflag = true;
-		}else{
-			that.topflag = false;
-		}
 	},
 	// 上拉触底加载更多触发事件
 	onReachBottom() {
@@ -185,34 +154,79 @@
 	},
 	methods:{
 		checkPermi, checkRole,
-		gettimeFn() {
-			var that = this;
-			clearInterval(this.timefn)
-			that.time();
-			// var stime = this.shuatime
-			that.timefn = setInterval(function() {
-				// if (stime <= 1) {
-				// 	that.shuiux()
-				// 	stime = that.shuatime
-				// }
-				// stime = stime - 1;
-				that.time();
-			}, 1000);
+		init(){
+			// 记录来源
+			getDictionaryFn('jluly').then(res=>{
+				if(res.code==200){
+					this.adrlist = res.data.map(v => {
+						return {
+							dictLabel: v.dictLabel,
+							dictValue: Number(v.dictValue)
+						}
+					})
+				}
+			})
+		},
+		getMoreFn(){
+			this.$tab.navigateTo("/pages/order/list")
+		},
+		getDelFn(id){
+			var that=this;
+			getReservatDel(id).then(res=>{
+				if(res.code==200){
+					that.$toast('删除成功')
+					setTimeout(function(){
+						that.reachflag=true;
+						that.pageNum=1;
+						that.list=[];
+						that.getDataFn();
+						// that.getcount();
+					},1500)
+					
+				}else{
+					that.$toast(res.msg)
+				}
+			})
+		},
+		gettypeFn(ite){
+			var that=this;
+			var params={
+				reservatId:ite.id,
+				visitType:ite.type
+			}
+			getReservatSh(params).then(res=>{
+				if(res.code==200){
+					that.$toast('审核成功')
+					setTimeout(function(){
+						that.reachflag=true;
+						that.pageNum=1;
+						that.list=[];
+						that.getDataFn();
+						// that.getcount();
+					},1500)
+					
+				}else{
+					that.$toast(res.msg)
+				}
+			})
 		},
 		time() {
 			var date = new Date();
 			var y = date.getFullYear();
 			var m = date.getMonth() + 1;
 			var d = date.getDate();
-			var h = date.getHours();
-			var min = date.getMinutes();
-			var s = date.getSeconds();
-			var week = date.getDay(); //获取当前星期X(0-6,0代表星期天)
-			var weeks = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
-			var yearStr = y + '-' + (m < 10 ? ('0' + m) : m) + '-' + (d < 10 ? ('0' + d) : d)
-			var timeStr = (h < 10 ? ('0' + h) : h) + ':' + (min < 10 ? ('0' + min) : min) + ':' + (s < 10 ? (
-				'0' + s) : s);
-			this.kaTime = yearStr + ' ' + timeStr;
+			let lunar = calendar.solar2lunar(y, m, d); //农历
+			this.lunar=lunar.IMonthCn+lunar.IDayCn;
+			this.daytime=m+'月'+d+"日";
+			// var h = date.getHours();
+			// var min = date.getMinutes();
+			// var s = date.getSeconds();
+			// var week = date.getDay(); //获取当前星期X(0-6,0代表星期天)
+			// var weeks = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
+			// var yearStr = y + '-' + (m < 10 ? ('0' + m) : m) + '-' + (d < 10 ? ('0' + d) : d)
+			// var timeStr = (h < 10 ? ('0' + h) : h) + ':' + (min < 10 ? ('0' + min) : min) + ':' + (s < 10 ? (
+			// 	'0' + s) : s);
+			// this.kaTime = yearStr + ' ' + timeStr;
 		},
 		getcount(){
 			
@@ -224,99 +238,15 @@
 				}
 			})
 		},
-		getTab(e){
-			
-			this.tabidx=e;
-			this.reachflag=false;
-			this.pageNum=1;
-			this.list=[];
-			this.totopFn();
-			this.getDataFn();
-		},
-		ceheiFn(){
-			var that = this;
-			let cehei = uni.createSelectorQuery().in(this);
-			cehei.select(".s_count").boundingClientRect(function(res){
-				that.dingtop = res.height;
-			}).exec();
-		},
 		getDetail(data){
 			this.$tab.navigateTo('/pages/order/staffcode?type=look&id='+data)
 		},
-		getCode(){
-			var that = this;
-			uni.scanCode({
-				onlyFromCamera: true,
-				autoZoom:false,
-				scanType: ['qrCode'],
-				success: function(red) {
-					let result = red.result;
-					if (typeof result == 'string') {
-						try {
-						
-						} catch (e) {
-							uni.navigateBack({
-								delta: 1
-							})
-							uni.showToast({
-								title: '扫码查询失败,请检查二维码是否正确',
-								icon: "none"
-							})
-							return
-						}
-					}
-					var id = red.result
-					var params = {
-						"reservatId": id,
-					}
-					getReservatvav(params).then(res => {
-						if (res.code == 200) {
-							
-							if(res.msg=='核销失败'){
-								that.$tab.navigateTo('/pages/order/stafffail')
-							}else{
-								uni.$emit('refreshdatalist')
-								that.$tab.navigateTo('/pages/order/staffcode?id='+id)
-							}
-							
-						} else {
-							uni.showToast({
-								title: res.msg,
-								duration: 1000,
-								icon: 'none'
-							});
-						
-						}
-					})
-				},
-				fail: function(e) {
-					if (e && e.errMsg && e.errMsg.indexOf('scanCode:fail cancel') != -1) {
-						return;
-					}
-					uni.showToast({
-						title: '扫码失败',
-						icon: "none"
-					})
-				},
-			});
-			// this.$tab.navigateTo('/pages/order/code')
-		},
-		totopFn(){
-			var that = this;
-			uni.pageScrollTo({
-				duration: 0,
-				scrollTop: that.dingtop + 12
-			})
-		},
 		getDataFn(){
 			var params={
 				pageSize:this.pageSize,
 				pageNum: this.pageNum,
 				// visitType:3
 			}
-			if(this.tabidx!=5){
-				params.dataType=this.tabidx
-			}
 			getReservatList(params).then(res=>{
 				if(res.code==200){
 					if (res.rows.length < this.pageSize) {
@@ -349,46 +279,33 @@
 </script>
 
 <style lang="scss" scoped>
-.yfixed{position: fixed;z-index: 5;left: 0;top: 0;right: 0;background: #ffffff;padding: 0 30rpx;}
-.staff_top{padding: 24rpx 32rpx;box-sizing: border-box;box-sizing: border-box;
-	.topl{width: 272rpx;height: 56rpx;}
-	.topr{
-		.weaimg{width: 40rpx;height: 40rpx;}
+.navbox{
+	.navbg{width: 100%;height: 692rpx;position: fixed;left: 0;right: 0;top: 0;z-index: 1;}	
+}
+.navleft{padding-left: 12rpx;
+		view{font-weight: bold;font-size: 26rpx;color: #FFFFFF;line-height: 36rpx;}
 	}
+	.navright{width: 40rpx;height: 40rpx;}
+.yymain{
+	flex: 1;z-index: 2;padding-top: 20rpx;
 }
-.staff_box{padding:8px 30rpx 0;
-	.s_count{position: relative;min-height: 380rpx;
-		.bgimg{position: absolute;left: 0;top: 0;right: 0;bottom: 0;z-index: -1;width: 100%;height: 100%;}
-		.s_counta{padding: 36rpx 0 20rpx;width: 100%;
-			.s_coua{margin: 0 36rpx;}
-			.s_clist{padding: 36rpx 0;
-				.list{width: 25%;display: flex;flex-direction: column;align-items: center;position: relative;
-					.num{font-size: 42rpx;font-weight: 500;color: #F1F1F1;margin-bottom: 14rpx;}
-					.tit{font-size: 24rpx;font-weight: bold;color: #F2B5B2;}
-					&::after{content: '';width: 2rpx;height: 36rpx;background: #B7C9F9;position: absolute;right: 0;top: 50%;margin-top: -18rpx;border-radius: 4rpx;}
-					&:last-of-type::after{display: none;}
-				}
-			}
-			.s_cbtn{margin: 14rpx 58rpx 0;height: 76rpx;background: #FFFFFF;box-shadow: 0px 2rpx 6rpx 0px rgba(35,68,152,0.63);border-radius: 38rpx;
-				font-size: 30rpx;font-weight: bold;color: $com-cd3;
-				.scanimg{width: 44rpx;height: 44rpx;margin-right: 30rpx;}
-			}
-			
-		}
+.yycard{width: 684rpx;height: 306rpx;background: #FFFFFF;border-radius: 14rpx;margin: 0 auto;
+	.top{
+		image{width: 132rpx;height: 132rpx;margin-bottom: 12rpx;margin-top: -56rpx;}
+		view{font-weight: bold;font-size: 30rpx;color: #161616;}
+	}
+	.list{text-align: center;flex: 1;padding-top: 44rpx;
+		.tit{font-weight: bold;font-size: 36rpx;color: #0391FD;margin-bottom: 16rpx;}
+		.txt{font-weight: bold;font-size: 18rpx;color: #666666;}
 	}
 }
-.sy_box{
-		.sy_tit{padding: 32rpx 0;
-			.sy_txt{font-size: 30rpx;font-weight: bold;color: #161616;position: relative;padding-left: 26rpx;
-				&::before{width: 6rpx;height: 34rpx;background: $com-cd3;border-radius: 4rpx;content: '';left: 0;top: 3rpx;position: absolute;bottom: 3rpx;}
-			}
-			.sy_rimg{width: 16rpx;height: 28rpx;flex: 0 0 auto;marign-left:20rpx}
-		}
-		.tab{padding-bottom: 24rpx;
-			.list{min-width: 112rpx;height: 52rpx;background: #E6E4E4;border-radius: 26rpx;display: flex;align-items: center;font-size: 26rpx;font-weight: 500;
-color: #666666;justify-content: center;box-sizing: border-box;padding: 0 28rpx;line-height: 48rpx;
-				&.act{color: $com-cd3;background: #FFFFFF;border: 2rpx solid $com-cd3;}
-			}
+.yylists{width: 684rpx;margin: 42rpx auto 0;
+	.yyltab{margin-bottom: 28rpx;
+		.left{font-weight: bold;font-size: 15px;color: #161616;
+			image{width: 110rpx;height: 14rpx;margin-left: 16rpx;}
 		}
+		.right{font-size: 500;font-size: 22rpx;color: #AAAAAA;}
 	}
+}
+
 </style>

+ 2 - 2
pages/login.vue

@@ -82,7 +82,7 @@
 				</view>
 				<view class="tit">登录即代表您已阅读并同意<text @click.stop="handlePrivacy">用户协议</text>及<text @click.stop="handlePrivacy">隐私政策</text></view>
 			</view>
-			 <view class="bbcode">版本号:ZXY_YY_1.3</view>
+			 <!-- <view class="bbcode">版本号:ZXY_YY_1.3</view> -->
 	  </view>
 	 
 	    
@@ -102,7 +102,7 @@
 	  },
 	data(){
 		return{
-			headimg:require('@/static/images/mine/lricon.png'),
+			headimg:require('@/static/logo.png'),
 			ldicon:require('@/static/images/mine/ldicon.png'),
 			checkimg:require('@/static/images/mine/lcicon.png'),
 			ncheckimg:require('@/static/images/mine/lnicon.png'),

+ 91 - 230
pages/mine/index.vue

@@ -20,12 +20,12 @@
 			<image v-else @click.stop="handleToAvatar" :src="avatarimg" class="flex0 limg" mode="aspectFill"></image>
 			<view class="flex1 hcen">
 				<view class="f17 fw c16 mb8 flexc">{{name}}
-				<text v-if="choseroles=='teacher'">老师</text>
+				<!-- <text v-if="choseroles=='teacher'">老师</text>
 				<text v-if="choseroles=='school'">学校管理员</text>
-				<text v-if="choseroles=='parents'">家长</text>
+				<text v-if="choseroles=='parents'">家长</text> -->
 				</view>
-				<view class="f15 co6" v-if="choseroles=='teacher'">{{schoolName}}/{{discipline}}</view>
-				<view class="f15 co6" v-else-if="choseroles!='parents'" >{{schoolName}}</view>
+				<!-- <view class="f15 co6" v-if="choseroles=='teacher'">{{schoolName}}/{{discipline}}</view>
+				<view class="f15 co6" v-else-if="choseroles!='parents'" >{{schoolName}}</view> -->
 			</view>
 			<image :src="rimg" class="flex0 rimg"></image>
 		</view>
@@ -40,6 +40,10 @@
 					<view class="mlistl"><image :src="miconf" class="imgd"></image></view>
 					<view class="mlistc">用户协议</view>
 				</view>
+				<view class="mlist flexc"  @click="onlineWgt">
+					<view class="mlistl"><image :src="micong" class="imgg"></image></view>
+					<view class="mlistc">版本更新</view>
+				</view>
 				<view class="mlist flexc"  @click="handleLogout">
 					<view class="mlistl"><image :src="miconl" class="imgc"></image></view>
 					<view class="mlistc">退出登录</view>
@@ -56,6 +60,7 @@
   import config from '@/config'
   const baseUrl = config.baseUrl
   import storage from '@/utils/storage'
+  import {findVersion} from "@/api/system/user.js"
   import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
   import {getInfo } from '@/api/login'
   
@@ -78,6 +83,7 @@
 		  miconf:require('@/static/images/mine/miconf.png'),
 		  miconj:require('@/static/images/mine/miconj.png'),
 		  miconl:require('@/static/images/mine/miconl.png'),
+		  micong:require('@/static/images/mine/micong.png'),
 		
 		type:0,
 		confdat:{tit:'系统提示',txt:"确定注销并退出系统吗?",closetxt:'取消',suretxt:'确认'},
@@ -96,6 +102,7 @@
 		  baseUrl:'',
         name: this.$store.state.user.name,
 		avatarimg:require("@/static/images/mine/profile.png"),
+		platform:'Android',  
         // version: getApp().globalData.config.appInfo.version
       }
     },
@@ -110,51 +117,10 @@
         return uni.getSystemInfoSync().windowHeight - 50
       }
     },
-	onUnload(){
-		uni.$off('refreshdatalis')
-	},
-	onPullDownRefresh:function(){
-		this.init();
-		this.getClassFn();
-		setTimeout(function () {
-			uni.stopPullDownRefresh();
-		}, 1000);
-	},
 	onShow() {
-		var choseroles=this.$store.state.user.choseroles;
-		if(this.roles&&choseroles&&this.roles!=choseroles){
-			this.roles=choseroles;
-			this.schoolName=this.$store.state.user.deptName
-			// 当前人的角色
-			if(uni.getStorageSync('checkclass')&&choseroles=='teacher'){
-				var newobj=JSON.parse(JSON.stringify(uni.getStorageSync('checkclass')))
-				this.discipline=newobj.discipline;
-				this.schoolName=newobj.schoolName;
-				this.schoolId=newobj.schoolId;
-				this.classId=newobj.classId;
-			}
-		}
 	},
 	onLoad() {
 		this.baseUrl=baseUrl;
-		// var choseroles=this.$store.state.user.choseroles;
-		// this.roles=choseroles;
-		// this.schoolName=this.$store.state.user.deptName
-		// // 当前人的角色
-		// if(uni.getStorageSync('checkclass')&&choseroles=='teacher'){
-		// 	var newobj=JSON.parse(JSON.stringify(uni.getStorageSync('checkclass')))
-		// 	this.discipline=newobj.discipline;
-		// 	this.schoolName=newobj.schoolName;
-		// 	this.schoolId=newobj.schoolId;
-		// 	this.classId=newobj.classId;
-		// }
-
-			
-		
-		// uni.$on('refreshdatalis',(e) => {
-		// 	this.getClassFn();
-		// })
-		// this.getClassFn()
 	},
 	onPageScroll(e) {
 		var scrollTop=Number(e.scrollTop);
@@ -166,101 +132,89 @@
 	},
     methods: {
 		checkPermi, checkRole,
-		handleLogout() {
-				  this.type=1
-		  // this.$modal.confirm('确定注销并退出系统吗?').then(() => {
-		  //   this.$store.dispatch('LogOut').then(() => {
-		  //     this.$tab.reLaunch('/pages/index/index')
-		  //   })
-		  // })
+		onlineWgt() {
+			let that = this;
+			plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) {
+				that.$store.dispatch('SetwgtFn',widgetInfo.version).then(()=>{
+				})
+				that.comparisonVersionNo(widgetInfo.versionCode);
+			});
+			// that.comparisonVersionNo()
 		},
-		getConfirm(){
-			this.$store.dispatch('LogOut').then(() => {
-			  this.$tab.reLaunch('/pages/index/index')
-			})
-		},
-		getClassFn(){
-			var that=this;
-			var choseroles=this.$store.state.user.choseroles||'';
-			if(choseroles=='school'){
-				that.classId='';
-				that.schoolId=that.$store.state.user.deptId;
-				that.getclassListFn()
-			}else{
-				// this.$store.dispatch('GetInforoles').then(resd => {
-				// 	if(resd.code==200){
-				// 		var roles=that.$store.state.user.choseroles;
-				// 		that.roles=roles;
-				// 		var res=resd.data;
-				// 		if(roles=='teacher'){
-				// 		 if(res.user&&res.user.teacherClass&&res.user.teacherClass.length){
-				// 			var newArr=res.user.teacherClass;
-				// 			that.teacherClass = newArr.map(v => {
-				// 				return {
-				// 					dictLabel: v.className,
-				// 					dictValue: v.classId
-				// 				}
-				// 			})
-				// 		 }
-				// 		}else if(roles=='parents'){
-				// 		}else{
-				// 			// 学校
-				// 			that.classId='';
-				// 			that.schoolId=that.$store.state.user.deptId;
-				// 			that.getclassListFn()
-				// 		}
-				// 	}
-					
-				// })
-			}
+		comparisonVersionNo(versionCode) {
 			
-			// getInfo().then(res=>{
-			// 	if(res.code==200){
-			// 		if(res.user&&res.user.teacherClass&&res.user.teacherClass.length){
-			// 			var newArr=res.user.teacherClass;
-			// 			that.teacherClass = newArr.map(v => {
-			// 				return {
-			// 					dictLabel: v.className,
-			// 					dictValue: v.classId
-			// 				}
-			// 			})
-			// 		}
-			// 	}
-			// })
-		},
-		// 班级
-		getclassListFn(){
-			getDeptList(this.schoolId).then(res=>{
-				if(res.code==200){
-					this.teacherClass = res.data.map(v => {
-						return {
-							dictLabel: v.deptName,
-							dictValue:v.deptId
-						}
-					})
-				}else{
-					this.$toast(res.msg)
+			let that = this;
+			// console.log("aaaaaaa===versionCode", versionCode);
+			const parmas = {
+				model: that.platform
+			}
+			console.log(parmas)
+			findVersion(parmas).then(res => {
+				console.log(res,2)
+				if (res.code == "200") {
+					let versionNos = res.data.code;
+					console.log(versionNos,'versionNos')
+					// console.log(res.data.path);
+					let filePath = res.data.path;
+					if (versionNos != versionCode) { //服务器返回1更新,0则不更新
+						uni.showModal({
+							title: '提示',
+							content: '发现新版本,是否升级',
+							success: function(res) {
+								// console.log(widgetInfo.version);
+								if (res.confirm) {
+									console.log('用户点击确定');
+									that.getProperty(filePath);
+								} else if (res.cancel) {
+									console.log('用户点击取消');
+								}
+							}
+						});
+					}else{
+						this.$toast('该版本已是最新版')
+					}
 				}
+			}).catch(error=>{
+				uni.hideLoading()
+				console.log(error)
 			})
 		},
-		handleAuth(){
-			var roles=this.$store.state.user.roles;
-			if(roles.length>0){
-				this.$tab.navigateTo('/mine/pages/mine/auth') 
-			}else{
-				//当前只有一种身份
-				this.$toast("您当前只有一种身份")
-				// this.$tab.reLaunch('/pages/index/index') 
-			}
-		},
-		handleaddAuth(){
-			this.$tab.navigateTo('/mine/pages/mine/auth?type=add') 
-		},
-		handleCollect(){
-			 this.$tab.navigateTo('/mine/pages/trends/mycollect')
+		getProperty(getProperty) {
+			// console.log("bbbbbbbbb----------->", getProperty)
+			let that = this;
+			// 在线升级app/热更新
+			that.showwri = true;
+			const downloadTask = uni.downloadFile({ //下载文件
+				url: baseUrl + getProperty,
+				success: (downloadResult) => {
+					// console.log(downloadResult);
+					if (downloadResult.statusCode == 200) {
+						// 更新升级
+						plus.runtime.install(downloadResult.tempFilePath, {
+							force: true
+						}, function() {
+							// console.log('install success...');
+							that.showwri = false;
+							plus.nativeUI.alert("应用资源更新完成!", function() {
+								plus.runtime.restart();
+							});
+						}, function(e) {
+							that.showwri = false;
+							plus.nativeUI.alert("更新失败,请稍后再试");
+						});
+					}
+				}
+			});
+			downloadTask.onProgressUpdate((res) => { //下载文件的进度
+				that.totalBytesWritten = res.totalBytesWritten; //当前下载大小
+				that.progress = res.progress; //当前下载比例
+				that.totalBytesExpectedToWrite = res.totalBytesExpectedToWrite; //
+			});
 		},
-		handleToinfo(){
-			 this.$tab.navigateTo('/mine/pages/mine/exit')
+		getConfirm(){
+			this.$store.dispatch('LogOut').then(() => {
+			  this.$tab.reLaunch('/pages/index/index')
+			})
 		},
 		handlePrivacy(){
 			this.$tab.navigateTo(`/pages/agreement`)  
@@ -268,95 +222,14 @@
 		handleUpassword(){
 			this.$tab.navigateTo(`/pages/mine/pwd/index`)  
 		},
-		handleSchool(){
-			var id=this.$store.state.user.deptId
-			this.$tab.navigateTo('/mine/pages/mine/applyregister?type=update&id='+id)
-			// this.$tab.navigateTo('/mine/pages/mine/applyteacher')
-		},
-		handleWord(){
-			this.$tab.navigateTo('/mine/pages/mine/word')
-		},
-		handleQuery(){
-			this.$tab.navigateTo('/mine/pages/login/query?from=mine')
-		},
-		handleClass(){
-			this.$tab.navigateTo('/mine/pages/mine/addclass')
-		},
-		handlelimit(){
-			this.$tab.navigateTo('/mine/pages/mine/limit')
-		},
-		handleClassSet(){
-			this.$tab.navigateTo('/mine/pages/mine/setclass')
-		},
-		handleaddStu(){
-			this.$tab.navigateTo('/mine/pages/mine/setstuent')
-		},
-		handleTime(e){
-			this.type=5;
-			this.timetype=e;
-		},
-		getKeyNext(data){
-			this.type=3;
-			this.classId=data;
-			this.getConfigKey(data)
-		},
-		handleZhaccount(){
-			this.$tab.navigateTo('/work/pages/examine/zhaccount')
-		},
-		handleTkcourse(){
-			this.$tab.navigateTo('/work/pages/examine/tkcourse')
-		},
+	
+		
 		handleToAvatar() {
 		  this.$tab.navigateTo('/pages/mine/avatar/index')
 		},
-		getKeyFn(data){
-			var params={
-				'configKey':this.classId,
-				'configValue':data,
-				"configType":this.timetype
-			}
-			getupdConfigKey(params).then(res=>{
-				if(res.code==200){
-					this.$toast('修改成功')
-					this.type=0;
-				}else{
-					this.$toast(res.msg)
-				}
-			})
-		},
-		getClose(){
-			this.type=0
-		},
-		getConfigKey(e){
-			var params={
-				configType:this.timetype,
-				configKey:e
-			}
-			//班级id
-			// configType "1:准备下课 2:延迟下课",
-			getConfigKey(params).then(res=>{
-				if(res.code==200){
-					this.type=3
-					this.timetit=res.msg||5;
-				}else{
-					this.$toast(res.msg)
-				}
-			})
-		},
-		
-		
-      handleToInfo() {
+      handleToinfo() {
         this.$tab.navigateTo('/pages/mine/info/index')
       },
-      handleToEditInfo() {
-        this.$tab.navigateTo('/pages/mine/info/edit')
-      },
-      handleToSetting() {
-        this.$tab.navigateTo('/pages/mine/setting/index')
-      },
-      handleToLogin() {
-        this.$tab.reLaunch('/pages/login')
-      },
       
       handleLogout() {
         this.$modal.confirm('确定注销并退出系统吗?').then(() => {
@@ -365,18 +238,6 @@
           })
         })
       },
-      handleHelp() {
-        this.$tab.navigateTo('/pages/mine/help/index')
-      },
-      handleAbout() {
-        this.$tab.navigateTo('/pages/mine/about/index')
-      },
-      handleJiaoLiuQun() {
-        this.$modal.showToast('QQ群:133713780')
-      },
-      handleBuilding() {
-        this.$modal.showToast('模块建设中~')
-      }
     }
   }
 </script>

+ 452 - 373
pages/order/come.vue

@@ -1,167 +1,214 @@
 <template>
-  <view>
-	  <!-- 顶部选填情况 -->
-	<step-bar :steps="steps" :datainfo="datainfo" :fixeda="fixedflag" :reservatType="yktypes"></step-bar>
-	<view class="ytbox" :style="fixedflag?'padding-top: 152rpx;':''">
-		<uni-forms ref="form" class="ytforms" :rules="rules" :modelValue="datainfo">
-			<view v-for="(ite,idx) in steps" :key="idx" @click="getInFn(ite.val)">
-
-				<!-- <block v-if="showflag"> -->
-					<view class="yttit" v-if="ite.val!=2&&ite.val!=3">{{ite.tit}}</view>
-					<view class="ytsbox boxb" v-if="ite.val==0" >
-						<!-- 日历 -->
-						<lunc-calendar ref="calendar" :showLunar="false" :configWeek="configWeek" :configHoliday="configHoliday" :firstDayOfWeek="firstDayOfWeek" :showMonthBg="false" :showShrink="true" :signList="signList"
-							@dayChange="dayChange" weekType="" @monthChange="monthChange" @getIsSelDayFn="getIsSelDayFn" @shrinkClick="shrinkClick">
-						</lunc-calendar>
-						<view class="ytime">
-							<view class="ytimea">
-								<view class="ytimel">选择时间</view>
-								<view class="lread" @click="getTimeFn(1)">
-									<view class="lreadl">
-										<image :src="choseimg" v-if="timeType==1"></image>
-										<image :src="nchoseimg" v-else></image>
+  <view class="yybox">
+	  <nav-bar navtit="来访预约"></nav-bar>
+	  <view class="yydet">
+		  <!-- 顶部选填情况 -->
+		  <view class="flex0">
+			  <step-bar :steps="barsteps" :datainfo="datainfo" :fixeda="fixedflag" ></step-bar>  
+		  </view>
+		<view class="ytbox">
+			<uni-forms ref="form" class="ytforms" :rules="rules" :modelValue="datainfo">
+				<view v-for="(ite,idx) in steps" :key="idx" @click="getInFn(ite.val)">
+					<view class="ytsbox">
+						<view class="yttit">{{ite.tit}}</view>
+					
+						<block  v-if="ite.val==0" >
+							<!-- 日历 :configWeek="configWeek" :configHoliday="configHoliday" :firstDayOfWeek="firstDayOfWeek" :signList="signList" @monthChange="monthChange" @getIsSelDayFn="getIsSelDayFn"   @shrinkClick="shrinkClick"-->
+							<lunc-calendar ref="calendar" :configWeek="configWeek" :showLunar="false"  :showMonthBg="false" :showShrink="true" 
+								@dayChange="dayChange"   weekType="" >
+							</lunc-calendar>
+							<view class="ytime">
+								<view class="ytimea">
+									<view class="ytimel">选择时间</view>
+									<view class="lread" @click="getTimeFn(1)">
+										<view class="lreadl">
+											<image :src="choseimg" v-if="timeType==1"></image>
+											<image :src="nchoseimg" v-else></image>
+										</view>
+										<view class="tit">上午</text></view>
+									</view>
+									<view class="lread" @click="getTimeFn(2)">
+										<view class="lreadl">
+											<image :src="choseimg" v-if="timeType==2"></image>
+											<image :src="nchoseimg" v-else></image>
+										</view>
+										<view class="tit">下午</text></view>
 									</view>
-									<view class="tit">上午</text></view>
 								</view>
-								<view class="lread" @click="getTimeFn(2)">
-									<view class="lreadl">
-										<image :src="choseimg" v-if="timeType==2"></image>
-										<image :src="nchoseimg" v-else></image>
+								<view class="ytimeb">
+									<view class="list" :class="[ite.reservatConfigStatus=='Y'?'box3':'box1',timeid==ite.reservatConfigTimeId?'box2':'']" v-for="(ite,idx) in timeList" :key="idx" @click="getChose(ite)">
+										<view class="tit">{{typeFn(ite.reservatConfigTimeBegin)}}-{{typeFn(ite.reservatConfigTimeEnd)}}</view>
+										<!-- <view class="txt">{{ite.reservatConfigStatus=='Y'?'可预约':'已约满'}}</view> -->
 									</view>
-									<view class="tit">下午</text></view>
 								</view>
 							</view>
-							<view class="ytimeb">
-								<view class="list" :class="[ite.reservatConfigStatus=='Y'?'box3':'box1',timeid==ite.reservatConfigTimeId?'box2':'']" v-for="(ite,idx) in timeList" :key="idx" @click="getChose(ite)">
-									<view class="tit">{{typeFn(ite.reservatConfigTimeBegin)}}-{{typeFn(ite.reservatConfigTimeEnd)}}</view>
-									<view class="txt">{{ite.reservatConfigStatus=='Y'?'可预约':'已约满'}}</view>
+							<!-- <view class="ytime">
+								<view class="ytimel">选择时间</view>
+								<view class="ytst flext">
+									<image :src="tipimg"></image>工作日上午
+									<block v-if="amBegin">{{amBegin}}-{{amEnd}} </block>
+									<block v-else>暂无预约时间</block>
+									; 下午
+									<block v-if="pmBegin">{{pmBegin}}-{{pmEnd}}</block>
+									<block v-else>暂无预约时间</block>
 								</view>
-							</view>
-						</view>
-					</view>
-					
-					<view class="ytsbox" v-if="ite.val==1" >
-						<uni-forms-item label="人员类型" required name="visitName">
-							<view class="flexc ytchose">
-								<view class="lread" @click="yktypes=1">
-									<view class="lreadl">
-										<image :src="choseimg" v-if="yktypes==1"></image>
-										<image :src="nchoseimg" v-else></image>
+								<view class="flexc ytimea">
+									<view class="timebtn">
+										<picker range-key='dictLabel' :disabled="disabled"  :value="timeidx" :range="timerange" @change="bindTimeChangea">
+											<view class="flex1 " :class="timetype?'co16 fw f16':'coa f14'">{{timetype||'请选择'}}</view>
+										</picker>
 									</view>
-									<view class="tit">团队</text></view>
-								</view>
-								<view class="lread" @click="yktypes=2">
-									<view class="lreadl">
-										<image :src="choseimg" v-if="yktypes==2"></image>
-										<image :src="nchoseimg" v-else></image>
+									<image :src="rowline" class="rowline"></image>
+									<view class="timebtn">
+										<picker mode ="time" :start="start" :end="endtime?endtime:end" :value="starttime" @change="bindTimeChangeb">
+											<view class="flex1 " :class="starttime?'co16 fw f16':'coa f14'">{{starttime||'请选择时间'}}</view>
+										</picker>
+									</view>
+									<image :src="rowline" class="rowline"></image>
+									<view class="timebtn">
+										<picker mode ="time" :start="starttime?starttime:start" :end="end" :value="endtime" @change="bindTimeChangec">
+											<view class="flex1" :class="endtime?'co16 fw f16':'coa f14'">{{endtime||'请选择时间 '}}</view>
+										</picker>
 									</view>
-									<view class="tit">散客</text></view>
 								</view>
-							</view>
-						</uni-forms-item>
-						<uni-forms-item label="单位名称" required name="visitUnitName" v-if="yktypes==1">
-							<uni-easyinput :inputBorder="false"  v-model="datainfo.visitUnitName" placeholder="请输入单位名称">
-							</uni-easyinput>
-						</uni-forms-item>
-						<uni-forms-item label="参观人数" required >
-							<view class=" ytchose">
-								<view class="flexc">
-									<image :src="downimg" class="numbtn" @click="_calcValue('minus')"></image>
-										<input  type="number"	v-model="inputValue" class="numinp" />
-									<image :src="upimg" class="numbtn" @click="_calcValue('plus')"></image>
+							</view> -->
+						</block>
+						
+						<view v-if="ite.val==1" class="pt5">
+							<uni-forms-item label="人数" required name="visitNum">
+								<!-- <view class=" ytchose">
+									<view class="flexc">
+										<image :src="downimg" class="numbtn" @click="_calcValue('minus')"></image>
+											<input  type="number"	v-model="inputValue" class="numinp" />
+										<image :src="upimg" class="numbtn" @click="_calcValue('plus')"></image>
+									</view>
+								</view> -->
+								<uni-easyinput :inputBorder="false" type="number" v-model="datainfo.visitNum" placeholder="请输入人数">
+								</uni-easyinput>
+							</uni-forms-item>
+							<uni-forms-item label="姓名" required name="visitName">
+								<uni-easyinput :inputBorder="false" v-model="datainfo.visitName" placeholder="请输入姓名">
+								</uni-easyinput>
+							</uni-forms-item>
+							<uni-forms-item label="手机号码" required name="visitPhone">
+								<uni-easyinput :inputBorder="false" type="number" v-model="datainfo.visitPhone" placeholder="请输入手机号码">
+								</uni-easyinput>
+							</uni-forms-item>
+							<uni-forms-item label="来访地点" required name="appointmentSite">
+								<!-- jluly -->
+								<view class="flexc flex1">
+									<picker class="pickbox" range-key='dictLabel' :disabled="disabled"  :value="adridx" :range="adrlist" @change="bindTimeChangea">
+										<view class="flex1 " :class="adrtype?'co16 fw5 f14':'cod f14'">{{adrtype||'请选择'}}</view>
+									</picker>
 								</view>
 								
-							</view>
-							</uni-easyinput>
-						</uni-forms-item>
-						<uni-forms-item label="联系人" required name="visitName">
-							<uni-easyinput :inputBorder="false" v-model="datainfo.visitName" placeholder="请输入联系人">
-							</uni-easyinput>
-						</uni-forms-item>
-						<uni-forms-item label="联系电话" required name="visitPhone">
-							<uni-easyinput :inputBorder="false" type="number" v-model="datainfo.visitPhone" placeholder="请输入正确的手机号码">
-							</uni-easyinput>
-						</uni-forms-item>
-						<uni-forms-item label="是否接待" required name="visitName" v-if="yktypes==1">
-							<view class="flexc ytchose">
-								<view class="lread" @click="getisReceptionFn">
-									<view class="lreadl">
-										<image :src="choseimg" v-if="isReception=='Y'"></image>
-										<image :src="nchoseimg" v-else></image>
+							</uni-forms-item>
+							<uni-forms-item label="来访事由" required name="visitReason">
+								<uni-easyinput :inputBorder="false" v-model="datainfo.visitReason" placeholder="请输入来访事由">
+								</uni-easyinput>
+							</uni-forms-item>
+							<!-- <uni-forms-item label="是否接待" required name="visitName" v-if="yktypes==1">
+								<view class="flexc ytchose">
+									<view class="lread" @click="getisReceptionFn">
+										<view class="lreadl">
+											<image :src="choseimg" v-if="isReception=='Y'"></image>
+											<image :src="nchoseimg" v-else></image>
+										</view>
+										<view class="tit">是</text></view>
 									</view>
-									<view class="tit">是</text></view>
-								</view>
-								<view class="lread" @click="isReception='N'">
-									<view class="lreadl">
-										<image :src="choseimg" v-if="isReception=='N'"></image>
-										<image :src="nchoseimg" v-else></image>
+									<view class="lread" @click="isReception='N'">
+										<view class="lreadl">
+											<image :src="choseimg" v-if="isReception=='N'"></image>
+											<image :src="nchoseimg" v-else></image>
+										</view>
+										<view class="tit">否</text></view>
 									</view>
-									<view class="tit">否</text></view>
 								</view>
+							</uni-forms-item> -->
+							<uni-forms-item label="补充事由"  name="visitRemark">
+								<textarea placeholder="可补充填写"  v-model="datainfo.visitRemark" placeholder-style="color:#aaa;" :auto-height="autoHeight"  ></textarea>
+							</uni-forms-item>
+						</view>
+						<view class="pt12 pb18"  v-if="ite.val==2">
+							<view class="facea flexccc" @click="getFaceFn">
+								<image :src="faceimg"></image>
+								<view>点击进行面容认证</view>
 							</view>
-						</uni-forms-item>
-						</uni-forms-item>
-						<uni-forms-item label="备注信息"  name="visitRemark">
-							<textarea placeholder="可补充填写"  v-model="datainfo.visitRemark" placeholder-style="color:#aaa;" :auto-height="autoHeight"  ></textarea>
-						</uni-forms-item>
+							<view class="facetip">面容认证仅能由<text>林涵宇</text>本人完成</view>
+							<view class="flexcc">
+								<view class="flexccc facetips">
+									<image :src="ftipa"></image>
+									<view>避免遮挡</view>
+								</view>
+								<view class="flexccc facetips">
+									<image :src="ftipb"></image>
+									<view>光线充足</view>
+								</view>
+								<view class="flexccc facetips">
+									<image :src="ftipc"></image>
+									<view>正对手机</view>
+								</view>
+							</view>
+						</view>
 					</view>
-				<!-- </block> -->
-				
-				
+
+				</view>
 				
-			</view>
+			</uni-forms>
 			
-		</uni-forms>
-		
-		<view class="ybtn flexcc" @click="getSubmit">提交预约</view>
-		<!-- <view class="ybtn btn1 flexcc" v-else>提交预约</view> -->
-		  <!-- 日历 -->
-		  
-		  <!-- 来访时间 -->
-		  
-		  <!-- 来访者信息 -->
-		  <!-- <picker range-key='dictLabel'  :value="xkindex" :range="classval" @change='bindDateChangeb'>
-		  	<uni-forms-item label="班级" required name="className">
-		  		<view class="f16  flex1 txr" :class="datainfo.className?'co16':'coa'">
-		  			{{datainfo.className||"请选择班级"}}
-		  		</view>
-		  	</uni-forms-item>
-		  </picker> -->
-		  <!-- 被访者信息 -->
-		  
-	</view>
+			<view class="ybtn flexcc" @click="getSubmit">确认提交</view>
+		</view>
+	  </view>
+	  
+	
   </view>
 </template>
 
 <script>
+	import navBar from "@/components/toptab/navbar.vue"
 	import stepBar from "@/components/order/stepbar.vue"
 	import luncCalendar from "@/components/lunc-calendar/lunc-calendar.vue"
-	import {getCalendarList,getReservatAdd,getConfigList} from "@/api/mine/order.js"
+	import {getDictionaryFn} from "@/api/mine/register.js"
+	import {getReservatTime,getReservatAdd,getConfigList} from "@/api/mine/order.js"
   export default {
-	  components:{stepBar,luncCalendar},
+	  components:{stepBar,luncCalendar,navBar},
 	data(){
 		return{
 			
+			tipimg:require('@/static/images/order/come/tip.png'),
+			rowline:require('@/static/images/order/come/rowline.png'),
+			faceimg:require('@/static/images/order/come/faceimg.png'),
+			ftipa:require('@/static/images/order/come/ftipa.png'),
+			ftipb:require('@/static/images/order/come/ftipb.png'),
+			ftipc:require('@/static/images/order/come/ftipc.png'),
 			choseimg:require("@/static/images/order/comes/chose.png"),
 			nchoseimg:require("@/static/images/order/comes/nchosec.png"),
 			downimg:require("@/static/images/order/comes/down.png"),
 			upimg:require("@/static/images/order/comes/add.png"),
-			checkflag:false,
-			yktypes:1,//人员类型 1:团队 2:散客
-			isReception:'Y',//是否需要接待 N:不需要 Y:需要
-			//status:  填写状态  0:未填   1:在填  2:填完
-			steps:[{tit:'预约时间',status:1,val:0},{tit:'信息登记',status:0,val:1},{tit:'等待审核',status:0,val:2},{tit:'审核结果',status:0,val:3}],
+			adrlist:[],
+			adrtype:'',
+			adridx:-1,
+			amList:[],
+			pmList:[],
+			timeType:1,//1: AM 2: PM",
+			timeList:[],//时间段
+			timeid:'',
+			//status:  填写状态  0:未填   1:在填  2:填完 {tit:'面容认证',status:0,val:2}
+			barsteps:[{tit:'信息填写',status:1,val:0},{tit:'等待审核',status:0,val:1},{tit:'审核成功',status:0,val:2},{tit:'已完成',status:0,val:3}],
+			steps:[{tit:'预约日期',status:1,val:0},{tit:'信息填写',status:0,val:1}],
 			fixedflag:true,
 			rules: {
 				// visitPhone: {rules: [{required: true,errorMessage: '请输入联系电话'},{pattern:"^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$",errorMessage: '请输入正确的联系方式'}]},
 			},
 			autoHeight:true,
 			disabled:false,
+			
 			intype:0,
 			datainfo:{},
 			inputValue:1,
 			step:1,
 			min:1,
+			
 			signList: [],
 			configWeek:[],
 			configHoliday:'Y',
@@ -173,149 +220,84 @@
 			changetime:'',//改变的日期
 			timeday:'',//选择的日期
 			visitDate:'',
-			showflag:false,
 			id:'',
-			timeType:1,//1: AM 2: PM",
-			timeList:[],//时间段
-			timeid:'',
+			
 			jdryflag:true,//当前时间段是否能接待
 		}
 	},
 	watch:{
-		intype(val){
-			var data=this.datainfo;
-			if(val!=0){
-				if(data.visitDate&&data.visitTime) this.steps[0].status=2;
-				else if(!data.visitDate||!data.visitTime) this.steps[0].status=0;
-			}
-			if(val!=1){
-				if(this.yktypes==1){
-					if(this.inputValue&&data.visitPhone&&data.visitName&&data.visitUnitName) this.steps[1].status=2;
-					else if(!this.inputValue||!data.visitPhone||!data.visitName||!data.visitUnitName) this.steps[1].status=0;
-				}else{
-					if(this.inputValue&&data.visitPhone&&data.visitName) this.steps[1].status=2;
-					else if(!this.inputValue||!data.visitPhone) this.steps[1].status=0;
-				}
+		// intype(val){
+		// 	var data=this.datainfo;
+		// 	if(val!=0){
+		// 		if(data.visitDate&&data.visitTime) this.steps[0].status=2;
+		// 		else if(!data.visitDate||!data.visitTime) this.steps[0].status=0;
+		// 	}
+		// 	if(val!=1){
+		// 		if(this.yktypes==1){
+		// 			if(this.inputValue&&data.visitPhone&&data.visitName&&data.visitUnitName) this.steps[1].status=2;
+		// 			else if(!this.inputValue||!data.visitPhone||!data.visitName||!data.visitUnitName) this.steps[1].status=0;
+		// 		}else{
+		// 			if(this.inputValue&&data.visitPhone&&data.visitName) this.steps[1].status=2;
+		// 			else if(!this.inputValue||!data.visitPhone) this.steps[1].status=0;
+		// 		}
 				
-			}
-		}
+		// 	}
+		// }
 	},
 	onLoad: function(e) {
 		// this.id=e.id;
-		this.id='881659';
+		// this.id='881659';
 		this.time();
-		this.getCalendarList();
-		this.getConfigList()
+		this.init()
+		this.getReservatTime();
+		// this.getConfigList()
 	},
 	methods:{
-		_calcValue(type) {
-			// if (this.disabled) {
-			// 	return;
-			// }
-			const scale = this._getDecimalScale();
-			let value = this.inputValue * scale;
-			let step = this.step * scale;
-			if (type === "minus") {
-				value -= step;
-				if (value < (this.min * scale)) {
-					return;
-				}
-				if (value > (this.max * scale)) {
-					value = this.max * scale
-				}
-			}
-		
-			if (type === "plus") {
-				value += step;
-				if (value > (this.max * scale)) {
-					return;
-				}
-				if (value < (this.min * scale)) {
-					value = this.min * scale
-				}
-			}
-		
-			this.inputValue = (value / scale).toFixed(String(scale).length - 1);
-		},
-		_getDecimalScale() {
-		
-			let scale = 1;
-			// 浮点型
-			if (~~this.step !== this.step) {
-				scale = Math.pow(10, String(this.step).split(".")[1].length);
-			}
-			return scale;
+		bindTimeChangea(e){
+			var val=e.detail.value;
+			this.adrtype=this.adrlist[val].dictLabel
+			this.datainfo.appointmentSite=this.adrlist[val].dictValue
 		},
-		typeFn(data){
-			return data?data.substring(0,5):''
-		},
-		getChose(ite){
-			if(ite.reservatConfigStatus=='Y'){
-				this.timeid=ite.reservatConfigTimeId;
-				this.datainfo.visitTime=ite.reservatConfigTimeBegin+'-'+ite.reservatConfigTimeEnd;
-				this.datainfo.reservatConfigTimeId=ite.reservatConfigTimeId;
-				// 判断当前时间段是否有接待员
-				if(ite.receptionPersonnelType=='N'){
-					this.jdryflag=true
-				}else{
-					this.jdryflag=false
-					this.isReception='N'
-				}
-				
-			}
-		},
-		getisReceptionFn(){
-			if(this.jdryflag){
-				this.isReception='Y'
-			}else{
-				this.$toast('当前时间段暂无预约人员')
-			}
-		},
-		getTimeFn(type){
-			if(type==1){
-				this.timeType=1;
-				this.timeList=this.amList;
-			}else{
-				this.timeType=2;
-				this.timeList=this.pmList;
-			}
+		getFaceFn(){
+			this.$tab.navigateTo('/pages/order/face')
 		},
-		getConfigList(){
-			getConfigList().then(res=>{
+		init(){
+			// 记录来源
+			getDictionaryFn('jluly').then(res=>{
 				if(res.code==200){
-					if(res.rows&&res.rows.length){
-						var week=res.rows[0].reservatConfigWeek;
-						var weeka=week.split(',');
-						var weekarr=[]
-						weeka.forEach(ite=>{
-							weekarr.push(Number(ite))
-						})
-						this.configWeek=weekarr;
-						this.configHoliday=res.rows[0].reservatConfigHoliday;
-					}
+					this.adrlist = res.data.map(v => {
+						return {
+							dictLabel: v.dictLabel,
+							dictValue: Number(v.dictValue)
+						}
+					})
 				}
 			})
 		},
-		getCalendarList(itime){
-			var time=this.kaTime
-			if(itime){
-				time=itime
-			}
-			var params={
-				reservatConfigDate:time
-			}
-			getCalendarList(params).then(res=>{
+		getReservatTime(itime){
+			getReservatTime().then(res=>{
 				if(res.code==200){
-					if(res.data&&res.data.signList){
-						this.signList=res.data.signList;
+					var data=res.rows;
+					var amList=[],pmList=[]
+					data.forEach(ite=>{
+						if(ite.reservatConfigType==1){
+							amList.push(ite)
+						}else if(ite.reservatConfigType==2){
+							pmList.push(ite)
+						}
+					})
+					if(amList.length){
+						this.timeList=amList;
+						this.timeType=1
+					}else{
+						this.timeList=pmList;
+						this.timeType=2
 					}
+					this.amList=amList
+					this.pmList=pmList
 				}
 			})
 		},
-		getInFn(idx){
-			this.intype=idx;
-			this.steps[idx].status=1
-		},
 		time() {
 			var date = new Date();
 			var y = date.getFullYear();
@@ -330,36 +312,45 @@
 			var timeStr = (h < 10 ? ('0' + h) : h) + ':' + (min < 10 ? ('0' + min) : min) + ':' + (s < 10 ? (
 				'0' + s) : s);
 			this.kaTime = yearStr;
+			this.datainfo.visitDate=yearStr;
 			this.year=y;
 			this.month=m;
 		},
+		typeFn(data){
+			return data?data.substring(0,5):''
+		},
+		getChose(ite){
+			if(ite.reservatConfigStatus=='Y'){
+				this.timeid=ite.reservatConfigTimeId;
+				this.datainfo.visitTime=ite.reservatConfigTimeBegin+'-'+ite.reservatConfigTimeEnd;
+				this.datainfo.reservatConfigTimeId=ite.reservatConfigTimeId;
+				// 判断当前时间段是否有接待员
+				// if(ite.receptionPersonnelType=='N'){
+				// 	this.jdryflag=true
+				// }else{
+				// 	this.jdryflag=false
+				// 	this.isReception='N'
+				// }
+			}
+		},
+		getTimeFn(type){
+			if(type==1){
+				this.timeType=1;
+				this.timeList=this.amList;
+			}else{
+				this.timeType=2;
+				this.timeList=this.pmList;
+			}
+		},
 		clearboth(){
 			// var time=this.datainfo.visitDate
 			this.datainfo={};
-			this.steps[0].status=1;
-			this.steps[1].status=0;
-			this.steps[2].status=0;
-			this.steps[3].status=0;
-			this.timeid='';
-			this.inputValue=1;
-			this.timeType=1;
-			this.timeday='';
-			this.timeList=[];
-			this.jdryflag=true
-			// this.datainfo.visitDate=time;
-			// 获取预约时间
-			this.signList=[];
-			this.getCalendarList(this.changetime)
+			this.adrtype='';
+			
+			// this.getReservatTime(this.changetime)
 		},
 		getSubmit(){
 			var that=this;
-			// that.clearboth()
-			// console.log(this.datainfo)
-			// return
-			if(!this.dayflag){
-				this.$toast('当前日期不可预约')
-				return
-			}
 			if(!this.datainfo.visitDate){
 				this.$toast('请选择预约日期')
 				return
@@ -369,33 +360,29 @@
 				return
 			}
 			var str='预约成功'
-			if(this.yktypes==1){
-				str='提交成功,请等待审核'
-				if(!this.datainfo.visitUnitName){
-					this.$toast('请输入单位名称')
-					return
-				}
-				if(this.inputValue==0){
-					this.$toast('请输入参观人数')
-					return
-				}
-			}else{
-				if(this.inputValue==0){
-					this.$toast('请输入参观人数')
-					return
-				}
+			// if(this.inputValue==0){
+			// 	this.$toast('请输入参观人数')
+			// 	return
+			// }
+			// if(this.inputValue<0){
+			// 	this.$toast('请输入正确的参观人数')
+			// 	return
+			// }
+			if(!this.datainfo.visitNum){
+				this.$toast('请输入人数')
+				return
 			}
-			if(this.inputValue<0){
-				this.$toast('请输入正确的参观人数')
+			if(this.datainfo.visitNum<1){
+				this.$toast('请输入正确的人数')
 				return
 			}
 			if(!this.datainfo.visitName){
-				this.$toast('请输入联系人')
+				this.$toast('请输入姓名')
 				return
 			}
 			var phone=this.datainfo.visitPhone
 			if(!phone){
-				this.$toast('请输入联系电话')
+				this.$toast('请输入手机号码')
 				return
 			}
 			let regphone = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/
@@ -403,34 +390,25 @@
 				that.$toast("请输入正确的手机号")
 				return
 			}
+			if(!this.adrtype){
+				this.$toast('请选择来访地点')
+				return
+			}
+			if(!this.datainfo.visitReason){
+				this.$toast('请输入来访事由')
+				return
+			}
 			// that.clearboth()
 			// console.log(this.datainfo)
 			// return
 			this.$refs.form.validate().then(res => {
 				var params={};
 				params=this.datainfo
-				if(this.yktypes==1){
-					params.isReception=this.isReception;
-				}else{
-					params.isReception=''
-					params.visitUnitName=''
-				}
-				params.visitNum=this.inputValue;
-				params.reservatType=this.yktypes;
-				// console.log(params)
-				// return
 				getReservatAdd(params).then(res=>{
 					if(res.code==200){
 						this.$toast(str)
 						setTimeout(function(){
-							// 团队审核
-							if(that.yktypes==1){ //团队
-								that.clearboth()
-							}else{ //散客
-								// 个人直接跳详情页
-								var id=res.data
-								that.$tab.navigateTo('/a/code?id='+id)
-							}
+							that.clearboth()
 						},1500)
 					}else{
 						this.$toast(res.msg)
@@ -440,80 +418,157 @@
 			
 		},
 		dayChange(e){
-			// if(e.daySign&&e.daySign.length){
-			// 	var daySign=e.daySign[0];
-			// 	this.amList=daySign.amList||[];
-			// 	this.pmList=daySign.pmList||[];
-			// 	if(this.reservatConfigType==1){
-			// 		this.timeList=this.amList;
-			// 	}else if(this.reservatConfigType==2){
-			// 		this.timeList=this.pmList;
-			// 	}
-			// 	this.timeid='';
-			// 	this.datainfo.visitDate=daySign.date;
-			// 	this.datainfo.visitTime='';
-			// }
+			console.log(e,1)
+			this.datainfo.visitDate=e.date;
 		},
-		monthChange(e){
-			var y=e.year;
-			var m=e.month;
-			if(y==this.year&&m==this.month){
-				this.getCalendarList()
-				this.changetime='';
-			}else{
-				var time=y + '-' + m + '-' + '01'
-				this.changetime=time
-				this.getCalendarList(time)
-			}
+		getIsSelDayFn(e){
+			// this.datainfo.visitDate=e.date;
 		},
+		
+		
+		
+		getInFn(idx){
+			// this.intype=idx;
+			// this.steps[idx].status=1
+		},
+		// getConfigList(){
+		// 	getConfigList().then(res=>{
+		// 		if(res.code==200){
+		// 			if(res.rows&&res.rows.length){
+		// 				var week=res.rows[0].reservatConfigWeek;
+		// 				var weeka=week.split(',');
+		// 				var weekarr=[]
+		// 				weeka.forEach(ite=>{
+		// 					weekarr.push(Number(ite))
+		// 				})
+		// 				this.configWeek=weekarr;
+		// 				this.configHoliday=res.rows[0].reservatConfigHoliday;
+		// 			}
+		// 		}
+		// 	})
+		// },
+		// getisReceptionFn(){
+		// 	if(this.jdryflag){
+		// 		this.isReception='Y'
+		// 	}else{
+		// 		this.$toast('当前时间段暂无预约人员')
+		// 	}
+		// },
+		// _calcValue(type) {
+		// 	// if (this.disabled) {
+		// 	// 	return;
+		// 	// }
+		// 	const scale = this._getDecimalScale();
+		// 	let value = this.inputValue * scale;
+		// 	let step = this.step * scale;
+		// 	if (type === "minus") {
+		// 		value -= step;
+		// 		if (value < (this.min * scale)) {
+		// 			return;
+		// 		}
+		// 		if (value > (this.max * scale)) {
+		// 			value = this.max * scale
+		// 		}
+		// 	}
+		
+		// 	if (type === "plus") {
+		// 		value += step;
+		// 		if (value > (this.max * scale)) {
+		// 			return;
+		// 		}
+		// 		if (value < (this.min * scale)) {
+		// 			value = this.min * scale
+		// 		}
+		// 	}
+		
+		// 	this.inputValue = (value / scale).toFixed(String(scale).length - 1);
+		// },
+		// _getDecimalScale() {
+		// 	let scale = 1;
+		// 	// 浮点型
+		// 	if (~~this.step !== this.step) {
+		// 		scale = Math.pow(10, String(this.step).split(".")[1].length);
+		// 	}
+		// 	return scale;
+		// },
+		// dayChange(e){
+		// 	if(e.daySign&&e.daySign.length){
+		// 		var daySign=e.daySign[0];
+		// 		this.amList=daySign.amList||[];
+		// 		this.pmList=daySign.pmList||[];
+		// 		if(this.reservatConfigType==1){
+		// 			this.timeList=this.amList;
+		// 		}else if(this.reservatConfigType==2){
+		// 			this.timeList=this.pmList;
+		// 		}
+		// 		this.timeid='';
+		// 		this.datainfo.visitDate=daySign.date;
+		// 		this.datainfo.visitTime='';
+		// 	}
+		// },
+		// monthChange(e){
+		// 	var y=e.year;
+		// 	var m=e.month;
+		// 	if(y==this.year&&m==this.month){
+		// 		this.getReservatTime()
+		// 		this.changetime='';
+		// 	}else{
+		// 		var time=y + '-' + m + '-' + '01'
+		// 		this.changetime=time
+		// 		this.getReservatTime(time)
+		// 	}
+		// },
 		// 选中的日期
-		getIsSelDayFn(e){
-			if(e.sign&&e.sign.length&&this.timeday!=e.date){
-				this.timeday=e.date;
-				if(this.configWeek.indexOf(e.week)!=-1 || e.isHoliday&&this.configHoliday=='N'){
-					this.dayflag=false;
-				}else{
-					if(e.sign&&e.sign.length){
-						var sign=JSON.parse(JSON.stringify(e.sign))
-						var signes=JSON.parse(JSON.stringify(sign[0]));
-						var amList=JSON.parse(JSON.stringify(signes.amList))||[];
-						var pmList=JSON.parse(JSON.stringify(signes.pmList))||[];
-						this.jdryflag=true;
-						if(this.timeType==1){
-							this.timeList=amList;
-						}else{
-							this.timeList=pmList;
-						}
-						this.amList=amList
-						this.pmList=pmList
-						this.timeid='';
-						var y=e.year;
-						var m=e.month;
-						var d=e.day;
-						this.datainfo.visitDate=y + '-' + (m < 10 ? ('0' + m) : m) + '-' + (d < 10 ? ('0' + d) : d);
-						this.datainfo.visitTime='';
-						if(signes.title=='可预约'){
-							this.dayflag=true;
-						}else{
-							this.dayflag=false;
-						}
+		// getIsSelDayFn(e){
+		// 	if(e.sign&&e.sign.length&&this.timeday!=e.date){
+		// 		this.timeday=e.date;
+		// 		if(this.configWeek.indexOf(e.week)!=-1 || e.isHoliday&&this.configHoliday=='N'){
+		// 			this.dayflag=false;
+		// 		}else{
+		// 			if(e.sign&&e.sign.length){
+		// 				var sign=JSON.parse(JSON.stringify(e.sign))
+		// 				var signes=JSON.parse(JSON.stringify(sign[0]));
+		// 				var amList=JSON.parse(JSON.stringify(signes.amList))||[];
+		// 				var pmList=JSON.parse(JSON.stringify(signes.pmList))||[];
+		// 				this.jdryflag=true;
+		// 				if(this.timeType==1){
+		// 					this.timeList=amList;
+		// 				}else{
+		// 					this.timeList=pmList;
+		// 				}
+		// 				this.amList=amList
+		// 				this.pmList=pmList
+		// 				this.timeid='';
+		// 				var y=e.year;
+		// 				var m=e.month;
+		// 				var d=e.day;
+		// 				this.datainfo.visitDate=y + '-' + (m < 10 ? ('0' + m) : m) + '-' + (d < 10 ? ('0' + d) : d);
+		// 				this.datainfo.visitTime='';
+		// 				if(signes.title=='可预约'){
+		// 					this.dayflag=true;
+		// 				}else{
+		// 					this.dayflag=false;
+		// 				}
 						
-					}	
-				}
-			}
+		// 			}	
+		// 		}
+		// 	}
 			
-		},
-		shrinkClick(e){
-			console.log(e,3)
-		},
+		// },
+		// shrinkClick(e){
+		// 	console.log(e,3)
+		// },
 	},
 	
   }
 </script>
 
 <style lang="scss" scoped>
+	
+	
 .ytbox /deep/ .uni-forms .uni-forms-item{padding: 20rpx 16rpx 20rpx;border-bottom: 2rpx solid #E6E6E6;margin-bottom: 0;}
-.ytbox /deep/ .uni-forms-item__label{flex: 0 0 auto;width: auto !important;font-size: 30rpx;font-weight: bold;position: relative;color: #343434;}
+.ytbox /deep/ .uni-forms-item__label{flex: 0 0 auto;width: 144rpx !important;font-size: 28rpx;font-weight: bold;position: relative;color: #343434;text-align-last: justify;}
+.ytbox /deep/ .uni-forms-item__label text{flex: 1;}
 .ytbox /deep/ .uni-forms-item__label .is-required{position: absolute;right: 0;color: #F10C31;margin-top: 16rpx;}
 .ytbox /deep/ uni-textarea{flex: 1;width: auto;text-align: right;}
 .ytbox /deep/ .uni-textarea-placeholder{font-size: 28rpx;color: #DDDDDD !important;}
@@ -521,18 +576,18 @@
 .ytbox /deep/ .uni-forms-item__content{display: flex;align-items: center;flex-direction: row;}
 .ytbox /deep/ .uni-easyinput{flex: 1;text-align: right;}
 .ytsbox /deep/  .uni-forms-item:last-child{border-bottom: none;}
-.ytbox /deep/ .uni-easyinput__content-input{font-size: 30rpx;}
+.ytbox /deep/ .uni-easyinput__content-input{font-size: 28rpx;}
  .ytbox /deep/ .uni-forms-item__error{margin-top:20rpx;left: auto;right: 0;}
- .ytbox{padding-bottom: 46rpx;}
+ 
+ .ytbox{width: 684rpx;margin: 0 auto;padding-bottom: 44rpx;padding-top: 24rpx;position: relative;flex: 1;overflow: auto;}
 .ytforms{
-	.yttit{font-size: 30rpx;font-weight: bold;background-color: #f1f1f1;
-color: $com-cd3;min-height: 76rpx;display: flex;align-items: center;padding: 0rpx 60rpx;box-sizing: border-box;position: relative;
-		&::before{content: '';width: 6rpx;height: 34rpx;background: $com-cd3;border-radius: 4rpx;position: absolute;top: 50%;transform: translateY(-50%);left: 34rpx;}
+	.yttit{font-size: 28rpx;font-weight: bold;margin-bottom: 10rpx;
+color: #161616;display: flex;align-items: center;padding: 0rpx 26rpx;box-sizing: border-box;position: relative;
+		&::before{content: '';width: 6rpx;height: 34rpx;background: $com-cd3;border-radius: 4rpx;position: absolute;top: 50%;transform: translateY(-50%);left: 0rpx;}
 	}
-	.ytsbox{background-color: #ffffff;padding: 0 32rpx;
+	.ytsbox{background-color: #ffffff;padding: 32rpx 28rpx 0;border-radius: 14rpx;margin-bottom: 24rpx;
 		&.boxa{padding: 24rpx 48rpx;}
-		&.boxb{padding-bottom:10rpx;}
-		
+		// &.boxb{padding-bottom:10rpx;}
 		.ytime{padding:60rpx 0 0;
 			.ytimea{display: flex;align-items: center;margin-bottom: 32rpx;
 				.ytimel{font-size: 30rpx;font-weight: bold;color: #161616;flex:1;}
@@ -540,7 +595,7 @@ color: $com-cd3;min-height: 76rpx;display: flex;align-items: center;padding: 0rp
 			.ytimeb{
 				display: flex;align-items: center;flex-wrap: wrap;
 				.list{
-					width: 216rpx;
+					width: 196rpx;
 					height: 120rpx;
 					display: flex;align-items: center;justify-content: center;flex-direction: column;
 					border-radius:6rpx;margin-bottom: 30rpx;margin-right: 18rpx;box-sizing: border-box;
@@ -558,9 +613,22 @@ color: $com-cd3;min-height: 76rpx;display: flex;align-items: center;padding: 0rp
 				}
 			}
 		}
+		// .ytime{padding:20rpx 0 46rpx;
+		// 	.ytimel{font-size: 28rpx;font-weight: bold;color: #161616;flex:1;position: relative;padding-left: 26rpx;margin-bottom: 32rpx;
+		// 		&::before{content: '';width: 6rpx;height: 34rpx;background: $com-cd3;border-radius: 4rpx;position: absolute;top: 50%;transform: translateY(-50%);left: 0rpx;}
+		// 	}
+		// 	.ytst{font-size: 26rpx;font-weight: 500;color: #666666;margin-bottom: 28rpx;
+		// 		image{width: 24rpx;height: 24rpx;margin-right: 8rpx;flex: 0 0 auto;margin-top: 6rpx;}
+		// 	}
+		// 	.ytimea{padding: 10rpx 0 0;
+		// 		.rowline{width: 64rpx;height: 20rpx;margin: 0 10rpx;flex: 0 0 auto;}
+		// 		.timebtn{flex: 1;height: 70rpx;border: 2rpx solid #0391FD;
+		// 	border-radius: 14rpx;text-align: center;line-height: 70rpx;box-sizing: border-box;}
+		// 	}
+		// }
 		.ytchose{flex: 1; display: flex;align-items: center;justify-content: flex-end;
 			.numbtn{width: 32rpx;height: 32rpx;flex: 0 0 auto;}
-			.numinp{margin: 0 28rpx;width: 124rpx;height: 56rpx;background: #FFFFFF;border: 2rpx solid #D32C26;border-radius: 2rpx;text-align: center;box-sizing: border-box;}
+			.numinp{margin: 0 28rpx;width: 124rpx;height: 56rpx;background: #FFFFFF;border: 2rpx solid #0391FD;border-radius: 2rpx;text-align: center;box-sizing: border-box;}
 		}
 	}
 	
@@ -575,10 +643,21 @@ color: $com-cd3;min-height: 76rpx;display: flex;align-items: center;padding: 0rp
 	}
 }
 // 按钮
-	.ybtn{width: 684rpx;height: 90rpx;background: $com-cd3;border-radius: 42rpx;margin: 60rpx auto 0;font-size: 32rpx;font-weight: 500;color: #FFFFFF;
+	.ybtn{width: 684rpx;height: 90rpx;background: $com-cd3;border-radius: 14rpx;margin: 56rpx auto 0;font-size: 28rpx;font-weight: 500;color: #FFFFFF;
 		&.btn1{background-color: #9a9c9e;}
 	}
+.pickbox{flex: 1;text-align: right;font-weight: 500;font-size: 28rpx;color: #161616;}
 
-
-
+// 面容
+.facea{width: 100%;height: 174rpx;background: #FFFFFF;border-radius: 14rpx;border: 2rpx dashed #DADADA;margin-bottom: 46rpx;
+	image{width: 64rpx;height: 64rpx;margin-bottom: 14rpx;}
+	view{font-weight: 500;color: #AAAAAA;font-size: 26rpx;}
+}
+.facetip{text-align: center;font-weight: 500;font-size: 22rpx;color: #666666;margin-bottom: 50rpx;
+	text{color: $com-cd3;font-weight: 500;padding: 0 4rpx;}
+}
+.facetips{width: 188rpx;
+	image{width: 98rpx;height: 98rpx;margin-bottom: 20rpx;}
+	view{font-weight: 500;font-size: 22rpx;color: #828CA7;}
+}
 </style>

+ 0 - 274
pages/order/comedetail.vue

@@ -1,274 +0,0 @@
-<template>
-  <view>
-	  <!-- 顶部选填情况 -->
-	<step-bar :steps="steps" :fixeda="fixedflag" :reservatType="datainfo.reservatType"></step-bar>
-	<view class="ytbox" :style="fixedflag?'padding-top: 152rpx;':''">
-		<view class="code_box">
-			<view class="cdet" v-if="yy_code">
-				<view class="ctit">通行码</view>
-				<view class="ycode">
-					<!-- <view class="tit">请向工作人员出示该二维码即可扫码通行</view> -->
-					<view class="img">
-						<image :src="yy_code" class="codeimg" @click.stop="getPreview"></image>
-						<view class="usebox" v-if="useflag">
-							<image :src="useimg" class="useimg"></image>
-						</view>
-						
-					</view>
-					<view class="txt txta" v-if="useflag">通行码已使用</view>
-					<view class="txt" v-else>点击二维码可放大哦</view>
-				</view>
-			</view> 
-			<!-- 预约失败 -->
-			<view class="cdet">
-				<view class="ctit">预约信息</view>
-				<view class="yerror" v-if="yyerror">
-					<image :src="errorimg"></image>
-					<view>审核失败</view>
-				</view>
-				<view class="cbox">
-					<view class="ctxt">预约时间</view>
-					<view class="ctlist">
-						<view class="tit">参观日期:</view>
-						<view class="txt">{{datainfo.visitDate||''}}</view>
-					</view>
-					<view class="ctlist">
-						<view class="tit">参观时间:</view>
-						<view class="txt">{{datainfo.visitTime||''}}</view>
-					</view>
-				</view>
-				<view class="cbox">
-					<view class="ctxt">登记信息</view>
-					<view class="ctlist">
-						<view class="tit">游客类型:</view>
-						<view class="txt" v-if="datainfo.reservatType">{{datainfo.reservatType=='2'?'散客':'团队'}}</view>
-					</view>
-					<view class="ctlist">
-						<view class="tit">单位名称:</view>
-						<view class="txt">{{datainfo.visitUnitName||''}}</view>
-					</view>
-					<view class="ctlist">
-						<view class="tit">参观人数:</view>
-						<view class="txt">{{datainfo.visitNum||''}}人</view>
-					</view>
-					<view class="ctlist">
-						<view class="tit">联系人:</view>
-						<view class="txt">{{datainfo.visitName||''}}</view>
-					</view>
-					<view class="ctlist">
-						<view class="tit">联系电话:</view>
-						<view class="txt">{{datainfo.visitPhone||''}}</view>
-					</view>
-					<view class="ctlist">
-						<view class="tit">是否接待:</view>
-						<view class="txt">{{datainfo.isReception=='Y'?'是':'否'||''}}</view>
-					</view>
-					<block v-if="datainfo.isReception=='Y'">
-						<view class="ctlist" v-if="datainfo.receptionName">
-							<view class="tit">接待人:</view>
-							<view class="txt">{{datainfo.receptionName||''}}</view>
-						</view>
-						<view class="ctlist" v-if="datainfo.receptionPhone">
-							<view class="tit">接待电话:</view>
-							<view class="txt">{{datainfo.receptionPhone||''}}</view>
-						</view>
-					</block>
-					<view class="ctlist">
-						<view class="tit">备注信息:</view>
-						<view class="txt">{{datainfo.visitRemark||''}}</view>
-					</view>
-				</view>
-			</view> 
-		</view>
-		  
-	</view>
-	<view class="code_btn" v-if="!useflag">
-		<view class="btn btn2 flex1" @click="getFail" >取消预约</view>
-	</view>
-	<!-- 弹窗 -->
-	<pop-up :type="type" @getClose="getClose"></pop-up>
-  </view>
-</template>
-
-<script>
-	import * as base64 from "base-64"
-	import stepBar from "@/components/order/stepbar.vue"
-	import popUp from "@/components/order/popup.vue"
-	import {getReservatDetail,getReservatDel} from "@/api/mine/order.js"
-	import QR from "@/utils/wxqrcode.js" // 二维码生成器 
-	import config from '@/config'
-	const baseUrlimg = config.baseUrlimg
-  export default {
-	  components:{stepBar,popUp},
-	data(){
-		return{
-			codeimg:require('@/static/images/order/comes/code.png'),
-			useimg:require('@/static/images/order/comes/use.png'),
-			errorimg:require('@/static/images/order/comes/error.png'),
-			//status:  填写状态  0:未填   1:在填  2:填完
-			steps:[{tit:'预约时间',status:1,val:0},{tit:'信息登记',status:1,val:1},{tit:'等待审核',status:0,val:2},{tit:'审核结果',status:0,val:3}],
-			fixedflag:true,
-			fixedflag:true,
-			useflag:false,
-			type:0,
-			yy_code:'',
-			id:'',
-			yyerror:false,
-			datainfo:{
-				
-			},
-
-		}
-	},
-	onLoad: function(e) {
-		this.id=base64.decode(e.id);
-		this.getDataFn()
-		
-	},
-	methods:{
-		getClose(){
-			this.type=0;
-		},
-		getFail(){
-			var that=this;
-			uni.showModal({
-				title: '确认取消',
-				content: "是否确认取消该预约",
-				cancelText: '取消',
-				confirmText: '确认',
-				success: function(res) {
-					if (res.confirm) {
-						getReservatDel(that.id).then(res=>{
-							if(res.code==200){
-								that.$toast('取消成功')
-								setTimeout(function(){
-									uni.$emit('refreshrelist')
-									uni.navigateBack({
-										delta:1
-									})
-								},1500)
-								
-							}else{
-								that.$toast(res.msg)
-							}
-						})
-					} else if (res.cancel) {
-						// console.log('用户点击取消');
-					}
-				}
-			});
-			
-		},
-		getPreview() {
-			var newArr=[];
-			var url=this.yy_code
-			newArr.push(url)
-			uni.previewImage({
-				urls: newArr,
-				current:0,
-				success: function(data) {
-					
-				},
-				fail: function(err) {
-					
-				}
-			});
-		},
-		getDataFn(){
-			getReservatDetail(this.id).then(res=>{
-				if(res.code==200){
-					this.datainfo=res.data;
-					if(res.data.visitStatus&&res.data.visitStatus==2){
-						this.useflag=true;
-					}
-					var type=res.data.visitType;
-					var reservatType=res.data.reservatType
-					if(reservatType==2){
-						this.steps[2].status=2;
-						this.steps[3].status=2;
-						this.steps[3].tit='预约成功';
-						this.yy_code = QR.createQrCodeImg(this.id, {
-							size: parseInt(240),//二维码大小 
-							typeNumber:10
-						})
-					}else{
-						//visitType":"预约状态 1:等待审核 2:拒绝 3:同意",
-						if(type==1){
-							this.steps[2].status=2;
-						}else if(type==2){
-							this.steps[2].status=2;
-							this.steps[3].status=2;
-							this.steps[3].tit='预约失败';
-							this.yyerror=true
-						}else if(type==3){
-							this.steps[2].status=2;
-							this.steps[3].status=2;
-							this.steps[2].tit='审核完成';
-							this.steps[3].tit='预约成功';
-							this.yy_code = QR.createQrCodeImg(this.id, {
-								size: parseInt(240),//二维码大小 
-								typeNumber:10
-							})
-						}
-					}
-					
-				}else{
-					this.$toast(res.msg)
-				}
-			})
-		}
-	},
-	
-  }
-</script>
-
-<style lang="scss" scoped>
-.ytbox{padding-bottom: 32rpx;}
-.code_box{
-	width: 684rpx;background: #FFFFFF;border-radius: 6rpx;margin: 40rpx auto 0;padding:40rpx 60rpx;box-sizing: border-box;flex: 1;
-	.cdet{
-		.ctit{font-size: 32rpx;font-weight: bold;color: #161616;position: relative;
-				&::before{width: 6rpx;height: 34rpx;background: $com-cd3;border-radius: 2rpx;content: '';left: -26rpx;top: 3rpx;position: absolute;bottom: 3rpx;}
-		}
-		.cbox{padding: 36rpx 0 12rpx;}
-		.ctxt{font-size: 30rpx;font-weight: bold;
-color: $com-cd3;margin-bottom: 16rpx;}
-		.ctlist{padding: 10rpx 0;display: flex;justify-content: space-between;
-			.tit{font-size: 30rpx;font-weight: 500;
-			color: #AAAAAA;flex:0 0 auto;margin-right: 20rpx;}
-			.txt{font-size: 30rpx;font-weight: 500;color: #161616;flex: 1;text-align: right;	}
-		}
-		.yerror{padding: 14rpx 0 30rpx;
-			image{width: 296rpx;height: 330rpx;margin: 0 auto 16rpx;}
-			view{font-size: 24rpx;font-weight: bold;color: #D32C26;text-align: center;}
-		}
-		
-	}
-	
-	// 二维码
-	.ycode{text-align: center;padding: 34rpx 0 30rpx;
-		.tit{font-size: 28rpx;font-weight: bold;
-color: #FFB132;}
-		.img{width: 270rpx;height: 270rpx;margin: 6rpx auto;padding: 10rpx;box-sizing: border-box;position: relative;
-			.codeimg{width: 100%;height: 100%;}
-			.usebox{
-				position: absolute;left: 0;right: 0;top: 0;bottom: 0;background-color: rgba(255, 255, 255, 0.8);
-			}
-			.useimg{width: 132rpx;height: 86rpx;position: absolute;bottom: 50rpx;right: 40rpx;}
-		}
-		.txt{font-size: 24rpx;font-weight: bold;color: $com-cd3;
-			&.txta{color: #AAAAAA;}
-		}
-	}
-}
-.code_btn{flex: 0 0 auto;padding: 40rpx 32rpx;display: flex;align-items: center;justify-content: space-between;
-	.btn{width: 320rpx;height: 80rpx;border-radius: 40rpx;box-sizing: border-box;font-size: 32rpx;font-weight: 500;text-align: center;line-height: 80rpx;
-		&.btn1{background: #FFFFFF;border: 2rpx solid $com-cd3;color: $com-cd3;}
-		&.btn2{background: $com-cd3;color: #FFFFFF;}
-	}
-
-}
-
-
-
-</style>

+ 30 - 0
pages/order/face.vue

@@ -0,0 +1,30 @@
+<template>
+	<view class="facebox">
+		<view class="flex1">
+			
+		</view>
+		<view class='photitp flexccc'>
+			<view >请把脸移入框内并保持不动</view>
+			<image :src="phoimg"></image>
+		</view>
+		
+	</view>
+</template>
+
+<script>
+	export default{
+		data(){
+			return{
+				phoimg:require('@/static/images/order/come/phoimg.png'),
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+.facebox{min-height: 100vh;background: #ffffff;padding: 100rpx 0 130rpx; box-sizing: border-box;display: flex;flex-direction: column;}
+.photitp{flex: 0 0 auto;margin-top: 40rpx;
+	image{width: 82rpx;height: 132rpx;}
+	view{font-weight: 500;font-size: 26rpx;color: #0391FD;margin-bottom: 40rpx;}
+}
+</style>

+ 0 - 26
pages/order/index.vue

@@ -1,26 +0,0 @@
-<template>
-  <view>
-	  
-  </view>
-</template>
-
-<script>
-	// import tabSearch from "@/components/toptab/search.vue"
-  export default {
-	data(){
-		return{
-			sucimg:require("@/static/images/order/staffs/success.png"), 
-		}
-	},
-	onLoad: function() {
-	},
-	methods:{
-		 
-	},
-	
-  }
-</script>
-
-<style lang="scss" scoped>
-
-</style>

+ 214 - 0
pages/order/info.vue

@@ -0,0 +1,214 @@
+<template>
+  <view class="ysec">
+    <uni-forms ref="form" :value="user" >
+		<view class="yttit">信息开门</view>
+		<view class="ysecbox">
+			<uni-forms-item name="username" label="姓名">
+			  <uni-easyinput :inputBorder="false"  v-model="username" placeholder="请输入姓名" />
+			</uni-forms-item>
+			<uni-forms-item name="phonenumber" label="手机号码">
+			  <uni-easyinput :inputBorder="false" type="number"  v-model="phonenumber" placeholder="请输入手机号码" />
+			</uni-forms-item>
+			<!-- <uni-forms-item name="code" label="验证码">
+			  <uni-easyinput :inputBorder="false" v-model="code" placeholder="请输入验证码" />
+					<view class="line flex0"></view>
+					<view v-if="timefalg" class="code act">{{time}}秒</view>
+					<view v-else @click="getCode" class="code">获取验证码</view>
+			</uni-forms-item> -->
+		</view>
+      
+      <view class="rbtn" @click="submit">开门</view>
+    </uni-forms>
+	<!-- 列表 -->
+	<view class="searchlist" v-if="listflag">
+		<y-list :datalist="list" :wtdt="wtdt" :type="type" @getDetail='getDetail'></y-list>
+	</view>
+	
+  </view>
+</template>
+
+<script>
+	import * as base64 from "base-64"
+	import { getReservatList } from "@/api/mine/order.js"
+	import {sendSmsFn} from "@/api/login.js"
+	import yList from "@/components/order/list.vue"
+  export default {
+	  components:{yList},
+    data() {
+      return {
+		timefalg:false,
+		time:'',
+		username:'',
+		phonenumber:'17856919066',
+		code:'',
+		newcode:'',//验证码1419
+		user:{},
+		list:[],
+		type:'1',
+		pageSize: 10,
+		pageNum: 1,
+		reachflag: true,
+		wtdt:'',
+		listflag:false,
+		backflag:false
+      }
+    },
+    onReady() {
+    },
+	onLoad:function(){
+		// uni.$on('refreshrelist',(e) => {
+		// 	this.reachflag=true;
+		// 	this.pageNum=1;
+		// 	this.list=[];
+		// 	this.backflag=true;
+		// 	this.getDataFn();
+		// })
+	},
+	onUnload() {
+		uni.$off('refreshrelist')
+	},
+	// 上拉触底加载更多触发事件
+	onReachBottom() {
+		// if (this.reachflag) {
+		// 	this.pageNum++
+		// 	this.getDataFn()
+		// }
+	},
+    methods: {
+		submit() {
+			var that = this;
+			if (!this.username) {
+				that.$toast("请输入姓名")
+				return
+			}
+			if (!this.phonenumber ) {
+				that.$toast("请输入手机号")
+				return
+			}
+			let regphone = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/
+			if (this.phonenumber && !regphone.test(this.phonenumber)) {
+				that.$toast("请输入正确的手机号")
+				return
+			}
+			
+			// this.getDataFn()
+		},
+		// getDetail(data){
+		// 	var s=base64.encode(data)
+		// 	this.$tab.navigateTo('/a/code?id='+s)
+		// },
+		// getCode(){
+		// 	var that=this;
+		// 	if (!this.phonenumber ) {
+		// 		that.$toast("请输入手机号")
+		// 		return
+		// 	}
+		// 	let regphone = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/
+		// 	if (this.phonenumber && !regphone.test(this.phonenumber)) {
+		// 		that.$toast("请输入正确的手机号")
+		// 		return
+		// 	}
+		// 	sendSmsFn(this.phonenumber).then(res=>{
+		// 		if (res.code == 200) {
+		// 			// 发送验证码
+		// 			that.$toast("发送成功")
+		// 			that.newcode=res.msg
+		// 			that.time=60;
+		// 			that.timefalg=true;
+		// 			that.setTimein()
+		// 		} else {
+		// 			that.$toast(res.msg)
+		// 		}
+		// 		// 判断是不是对等的
+		// 		// that.getCodesend(that.phonenumber)
+		// 	})
+		// },
+		// 验证码倒计时
+		// setTimein(){
+		// 	var that=this;
+		// 	clearInterval(that.timer)
+		// 	that.timer=setInterval(()=>{
+		// 		if(that.time<=1){
+		// 			that.timefalg=false;
+		// 			that.time=60;
+		// 			clearInterval(that.timer)
+		// 		}
+		// 		that.time=that.time-1;
+		// 	},1000)
+		// },
+		// getDataFn(){
+		// 	var params={
+		// 		visitPhone:this.phonenumber,
+		// 		pageSize:this.pageSize,
+		// 		pageNum: this.pageNum,
+		// 	}
+		// 	getReservatList(params).then(res=>{
+		// 		if(res.code==200){
+		// 			var list=res.rows;
+		// 			this.listflag=true;
+		// 			if(list&&list.length){
+		// 				var len=list.length;
+		// 				if(len==1&&!this.backflag&&this.pageNum==1){
+		// 					var id=list[0].reservatId
+		// 					this.$tab.navigateTo('/pages/order/comedetail?id='+base64.encode(id))
+		// 				}else{
+		// 					if (res.rows.length < this.pageSize) {
+		// 						this.reachflag = false
+		// 						this.wtdt = '到底了~';
+		// 					} else {
+		// 						var num = parseInt(res.rows.length) + parseInt(this.pageSize) * parseInt(this.pageNum -	1)
+		// 						if (num < res.total) {
+		// 							this.reachflag = true
+		// 							this.wtdt = '上拉加载更多'
+		// 						} else {
+		// 							this.reachflag = false
+		// 							this.wtdt = '到底了~';
+		// 						}
+		// 					}
+		// 					if (this.pageNum == 1) {
+		// 						this.list = res.rows;
+		// 					} else {
+		// 						this.list = this.list.concat(res.rows)
+		// 					}
+		// 				}
+		// 			}else{
+		// 				this.$toast('暂无预约信息')
+		// 			}
+		// 		}else{
+		// 			this.$toast(res.msg)
+		// 		}
+		// 	})
+		// },
+      
+    }
+  }
+</script>
+
+<style lang="scss">
+  // page {
+  //   background-color: #f5f5f5;
+  // }
+  .ysec{padding-top: 10rpx; 
+	.rbtn{width: 680rpx;height: 90rpx;background: $com-cd3;border-radius: 42rpx;text-align: center;line-height: 90rpx;font-size: 28rpx;font-weight: bold;color: #FFFEFE;margin: 70rpx auto 0;}
+	.yttit{font-size: 28rpx;font-weight: bold;background-color: #f1f1f1;color: $com-cd3;min-height: 72rpx;display: flex;align-items: center;padding: 0rpx 60rpx;box-sizing: border-box;position: relative;
+		&::before{content: '';width: 6rpx;height: 34rpx;background: $com-cd3;border-radius: 4rpx;position: absolute;top: 50%;transform: translateY(-50%);left: 34rpx;}
+	}
+	.ysecbox{padding:0 34rpx;background: #ffffff;}
+  }
+  .searchlist{
+	  padding: 0 30rpx;margin-top: 30rpx;
+  }
+  .line{width: 2rpx;height: 24rpx;background: #CDCDCD;margin: 0 24rpx;}
+	.code{font-size: 26rpx;color: $com-cd3;font-weight: 500;
+		&.act{color: #666666;}
+	} 
+.ysec /deep/ .uni-forms .uni-forms-item{padding: 20rpx 16rpx 20rpx;border-bottom: 2rpx solid #E6E6E6;margin-bottom: 0;}
+.ysec /deep/ .uni-forms-item__label{flex: 0 0 auto;width: auto !important;font-size: 28rpx;font-weight: bold;position: relative;color: #343434;}
+.ysec /deep/ .uni-textarea-placeholder{font-size: 28rpx;color: #DDDDDD !important;}
+.ysec /deep/ .uni-easyinput__placeholder-class{font-size: 28rpx;color: #DDDDDD;}
+.ysec /deep/ .uni-forms-item__content{display: flex;align-items: center;flex-direction: row;}
+.ysec /deep/ .uni-easyinput{flex: 1;text-align: right;}
+.ysec /deep/  .uni-forms-item:last-child{border-bottom: none;}
+.ysec /deep/ .uni-easyinput__content-input{font-size: 28rpx;}
+ .ysec /deep/ .uni-forms-item__error{margin-top:20rpx;left: auto;right: 0;}
+</style>

+ 189 - 0
pages/order/list.vue

@@ -0,0 +1,189 @@
+<template>
+	<view class="yybox">
+		<!-- <nav-bar navtit="预约信息" ></nav-bar> -->
+		<!-- 主体 -->
+		<view class="yydet">
+			<view class="yytab flexc">
+				<view :class="ite.val==tabval?'act':''" v-for="(ite,idx) in tablist" :key='idx' @click="getTab(ite.val)">{{ite.tit}}</view>
+			</view>
+				<!-- 列表 -->
+				<scroll-view scroll-y class="yylists"  lower-threshold="40" @scrolltolower="reach_btn">
+					<view class="mt12">
+						<y-list type='1' :datalist="list" :wtdt="wtdt" @getDetail='getDetail' :adrlist="adrlist" @getDelFn="getDelFn" @gettypeFn="gettypeFn"></y-list>
+					</view>
+				</scroll-view>
+		</view>
+	
+	</view>
+</template>
+
+<script>
+	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
+	import yList from "@/components/order/list.vue"
+	import navBar from "@/components/toptab/navbar.vue"
+	import {getReservatList,getReservatDel,getReservatSh} from "@/api/mine/order.js"
+	import {getDictionaryFn} from "@/api/mine/register.js"
+  export default {
+	components:{yList,navBar},
+	data(){
+		return{
+			navbg:require("@/static/images/navbg.png"),
+			headimg:require("@/static/images/order/staff/head.png"),
+			listline:require("@/static/images/order/staff/listline.png"),
+			backgroundColor: "transparent",
+			tabval:'0',
+			tablist:[{tit:"全部",val:0},{tit:"未审核",val:1},{tit:"已拒绝",val:2},{tit:"已审核",val:3},],
+			list:[],
+			adrlist:[],
+			wtdt:'',
+			pageSize: 10,
+			pageNum: 1,
+			reachflag: true,	
+		}
+	},
+	onPageScroll(e) {
+		var scrollTop = Number(e.scrollTop);
+		if (scrollTop > 0) {
+			this.backgroundColor = '#0491FD'
+		} else {
+			this.backgroundColor = 'transparent'
+		}
+	},
+	onLoad: function() {
+		uni.$on('refreshdatalist',(e) => {
+			this.reachflag=true;
+			this.pageNum=1;
+			this.list=[];
+			this.getDataFn();
+		})
+		this.init()
+		this.getDataFn()
+		
+	},
+	onUnload() {
+		uni.$off('refreshdatalist')
+	},
+	methods:{
+		checkPermi, checkRole,
+		reach_btn(){
+			if (this.reachflag) {
+				this.pageNum++
+				this.getDataFn()
+			}
+		},
+		getTab(val){
+			this.tabval=val;
+			this.reachflag=true;
+			this.pageNum=1;
+			this.list=[];
+			this.getDataFn();
+		},
+		init(){
+			// 记录来源
+			getDictionaryFn('jluly').then(res=>{
+				if(res.code==200){
+					this.adrlist = res.data.map(v => {
+						return {
+							dictLabel: v.dictLabel,
+							dictValue: Number(v.dictValue)
+						}
+					})
+				}
+			})
+		},
+		getDelFn(id){
+			var that=this;
+			getReservatDel(id).then(res=>{
+				if(res.code==200){
+					that.$toast('删除成功')
+					setTimeout(function(){
+						that.reachflag=true;
+						that.pageNum=1;
+						that.list=[];
+						that.getDataFn();
+						// that.getcount();
+					},1500)
+					
+				}else{
+					that.$toast(res.msg)
+				}
+			})
+		},
+		gettypeFn(ite){
+			var that=this;
+			var params={
+				reservatId:ite.id,
+				visitType:ite.type
+			}
+			getReservatSh(params).then(res=>{
+				if(res.code==200){
+					that.$toast('审核成功')
+					setTimeout(function(){
+						that.reachflag=true;
+						that.pageNum=1;
+						that.list=[];
+						that.getDataFn();
+						// that.getcount();
+					},1500)
+					
+				}else{
+					that.$toast(res.msg)
+				}
+			})
+		},
+		getDetail(data){
+			this.$tab.navigateTo('/pages/order/staffcode?type=look&id='+data)
+		},
+		getDataFn(){
+			var params={
+				pageSize:this.pageSize,
+				pageNum: this.pageNum,
+			}
+			if(this.tabval==0){
+				
+			}else{
+				params.visitType=this.tabval
+			}
+			getReservatList(params).then(res=>{
+				if(res.code==200){
+					if (res.rows.length < this.pageSize) {
+						this.reachflag = false
+						this.wtdt = '到底了~';
+					} else {
+						var num = parseInt(res.rows.length) + parseInt(this.pageSize) * parseInt(this.pageNum -	1)
+						if (num < res.total) {
+							this.reachflag = true
+							this.wtdt = '上拉加载更多'
+						} else {
+							this.reachflag = false
+							this.wtdt = '到底了~';
+						}
+					}
+					if (this.pageNum == 1) {
+						this.list = res.rows;
+					} else {
+						this.list = this.list.concat(res.rows)
+					}
+				}else{
+					this.$toast(res.msg)
+				}
+			}) 
+			
+		},
+	},
+	
+  }
+</script>
+
+<style lang="scss" scoped>
+.yytab{height: 80rpx;flex: 0 0 auto;background-color: #ffffff;
+	view{flex: 1;display: flex;align-items: center;justify-content: center;height: 80rpx;position: relative;color: #666;
+		&.act{color: $com-cd3;
+			&::after{content: '';width: 100rpx;height: 6rpx;background: $com-cd3;position: absolute;left: 50%;margin-left: -50rpx;bottom: 0;}
+		}
+	}
+}
+
+.yylists{width: 684rpx;margin: 0 auto 0;flex: 1;overflow: auto;}
+
+</style>

+ 1 - 1
pages/order/search.vue

@@ -73,7 +73,7 @@
     methods: {
 		getDetail(data){
 			var s=base64.encode(data)
-			this.$tab.navigateTo('/pages/order/comedetail?id='+s)
+			this.$tab.navigateTo('/a/code?id='+s)
 		},
 		getCode(){
 			var that=this;

+ 274 - 149
pages/order/staffcode.vue

@@ -1,164 +1,277 @@
 <template>
-  <view class="code pt8">
-	<view class="code_box">
-		<view class="code_suc" v-if="type=='code'">
-			<image :src="sucimg"></image>
-			<view class="f16 fw co16 txc">扫码成功</view>
-		</view>
-		<view class="cdet">
-			<view class="ctit">预约信息</view>
-			<view class="cbox">
-				<view class="ctxt">预约时间</view>
-				<view class="ctlist">
-					<view class="tit">参观日期:</view>
-					<view class="txt">{{datainfo.visitDate||''}}</view>
-				</view>
-				<view class="ctlist">
-					<view class="tit">参观时间:</view>
-					<view class="txt">{{datainfo.visitTime||''}}</view>
-				</view>
-			</view>
-			<view class="cbox">
-				<view class="ctxt">登记信息</view>
-				<view class="ctlist">
-					<view class="tit">游客类型:</view>
-					<view class="txt" v-if="datainfo.reservatType">{{datainfo.reservatType=='2'?'散客':'团队'}}</view>
-				</view>
-				<view class="ctlist">
-					<view class="tit">单位名称:</view>
-					<view class="txt">{{datainfo.visitUnitName||''}}</view>
-				</view>
-				<view class="ctlist">
-					<view class="tit">参观人数:</view>
-					<view class="txt">{{datainfo.visitNum||''}}人</view>
-				</view>
-				<view class="ctlist">
-					<view class="tit">联系人:</view>
-					<view class="txt">{{datainfo.visitName||''}}</view>
-				</view>
-				<view class="ctlist">
-					<view class="tit">联系电话:</view>
-					<view class="txt">{{datainfo.visitPhone||''}}</view>
-				</view>
-				<view class="ctlist">
-					<view class="tit">是否接待:</view>
-					<view class="txt">{{datainfo.isReception=='Y'?'是':'否'||''}}</view>
+  <view class="yybox">
+	  <nav-bar navtit="来访预约" :leftflag='true'></nav-bar>
+	  <view v-if="nodataflag" class="nodata">
+		  <image :src="noiconpimg" class="img"></image>
+		  <view class="tit">暂无预约信息</view>
+	  </view>
+	  <view class="yydet"v-else>
+		  <view class="flex0">
+		  	<step-bar :steps="barsteps" :datainfo="datainfo" :fixeda="fixedflag"></step-bar>  
+		  </view>
+		<view class="ytbox" >
+			<image :src="ysta" class="ystaimg" v-if="datainfo.visitType==3"></image>
+			<image :src="ystb" class="ystaimg" v-if="datainfo.visitType==2"></image>
+			<view class="code_box">
+				<!-- 预约成功 -->
+				<view class="cdet" v-if="datainfo.visitType==3">
+					<view class="ctit">通行路线</view>
+					<view class="adrtip">
+						您好,请您于【<text>园区大门</text>】扫脸进入,通过【<text>1号 楼</text>
+						】的【<text>2号电梯</text>】直达【<text>5F</text>】
+					</view>
 				</view>
-				<block v-if="datainfo.isReception=='Y'">
-					<view class="ctlist">
-						<view class="tit">接待人:</view>
-						<view class="txt">{{datainfo.receptionName||''}}</view>
+				<!-- 预约失败 -->
+				<view class="cdet">
+					<view class="ctit">预约信息</view>
+					<!-- <view class="yerror" v-if="datainfo.visitType==2">
+						<image :src="errorimg"></image>
+						<view>审核失败</view>
+					</view> -->
+					<view class="cbox">
+						<view class="ctxt">预约时间</view>
+						<view class="ctlist">
+							<view class="tit"><text>来访日期</text>:</view>
+							<view class="txt">{{datainfo.visitDate||''}}</view>
+						</view>
+						<view class="ctlist">
+							<view class="tit"><text>来访时间</text>:</view>
+							<view class="txt">{{datainfo.visitTime||''}}</view>
+						</view>
 					</view>
-					<view class="ctlist">
-						<view class="tit">接待电话:</view>
-						<view class="txt">{{datainfo.receptionPhone||''}}</view>
+					<view class="cbox">
+						<view class="ctxt">来访信息</view>
+						<view class="ctlist">
+							<view class="tit"><text>人数</text>:</view>
+							<view class="txt" >{{datainfo.visitNum}}人</view>
+						</view>
+						<view class="ctlist">
+							<view class="tit"><text>姓名</text>:</view>
+							<view class="txt">{{datainfo.visitName||''}}</view>
+						</view>
+						<view class="ctlist">
+							<view class="tit"><text>手机号码</text>:</view>
+							<view class="txt">{{datainfo.visitPhone||''}}</view>
+						</view>
+						<view class="ctlist">
+							<view class="tit"><text>来访地点</text>:</view>
+							<view class="txt">{{kaType(datainfo.appointmentSite,adrlist)||''}}</view>
+						</view>
+						<view class="ctlist">
+							<view class="tit"><text>来访事由</text>:</view>
+							<view class="txt">{{datainfo.visitReason||''}}</view>
+						</view>
+						<!-- <view class="ctlist">
+							<view class="tit"><text>是否接待</text>:</view>
+							<view class="txt">{{datainfo.isReception=='Y'?'是':'否'||''}}</view>
+						</view>
+						<block v-if="datainfo.isReception=='Y'">
+							<view class="ctlist" v-if="datainfo.receptionName">
+								<view class="tit"><text>接待人</text>:</view>
+								<view class="txt">{{datainfo.receptionName||''}}</view>
+							</view>
+							<view class="ctlist" v-if="datainfo.receptionPhone">
+								<view class="tit"><text>接待电话</text>:</view>
+								<view class="txt">{{datainfo.receptionPhone||''}}</view>
+							</view>
+						</block> -->
+						<view class="ctlist">
+							<view class="tit"><text>补充事由</text>:</view>
+							<view class="txt">{{datainfo.visitRemark||''}}</view>
+						</view>
 					</view>
+				</view> 
+			</view>
+			<view class="ybtn" >
+				<view class="ybtns btn1 flex1" @click="getFail">删除</view>
+				<block v-if="datainfo.visitType==1">
+					<view class="ybtns btn2 flex1" @click="gettypeFn(2)" >拒绝</view>
+					<view class="ybtns btn3 flex1" @click="gettypeFn(3)">同意</view>
 				</block>
 				
-				<!-- <view class="ctlist">
-					<view class="tit">任务指派:</view>
-					<view class="txt">{{datainfo.visitRemark||''}}</view>
-				</view> -->
-				<view class="ctlist">
-					<view class="tit">备注信息:</view>
-					<view class="txt">{{datainfo.visitRemark||''}}</view>
-				</view>
-			</view>
-		</view> 
-	</view>
-	<view class="code_btn">
-		<!-- v-if="checkPermi(['system:reservat:cav'])" -->
-		<view class="btn btn1" @click="getFail" >继续扫码</view>
-		<view class="btn btn2 flex1" @click="getBack">返回首页</view>
-	</view>
+			</view> 
+		</view>
+	  </view>
+	
+	
+	<!-- 弹窗 -->
+	<pop-up :type="type" @getClose="getClose"></pop-up>
   </view>
 </template>
 
 <script>
-	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
-	import {getReservatDetail,getReservatvav} from "@/api/mine/order.js"
+	import * as base64 from "base-64"
+	import popUp from "@/components/order/popup.vue"
+	import stepBar from "@/components/order/stepbar.vue"
+	import navBar from "@/components/toptab/navbar.vue"
+	import {getReservatDetail,getReservatDel,getReservatSh} from "@/api/mine/order.js"
+	import { selectDictValue } from '@/utils/common.js';
+	import {getDictionaryFn} from "@/api/mine/register.js"
+	import QR from "@/utils/wxqrcode.js" // 二维码生成器 
+	import config from '@/config'
+	const baseUrlimg = config.baseUrlimg
   export default {
+	  components:{popUp,navBar,stepBar},
 	data(){
 		return{
-			sucimg:require("@/static/images/order/staffs/success.png"),
-			datainfo:{},
+			adrlist:[],
+			codeimg:require('@/static/images/order/comes/code.png'),
+			useimg:require('@/static/images/order/comes/use.png'),
+			errorimg:require('@/static/images/order/comes/error.png'),
+			noiconpimg:require("@/static/images/noiconp.png"),
+			ysta:require("@/static/images/order/staff/ysta.png"),
+			ystb:require("@/static/images/order/staff/ystb.png"),
+			//status:  填写状态  0:未填   1:在填  2:填完
+			barsteps:[{tit:'信息填写',status:2,val:0},{tit:'等待审核',status:1,val:1},{tit:'审核成功',status:0,val:2},{tit:'已完成',status:0,val:3}],
+			fixedflag:true,
+			fixedflag:true,
+			useflag:false,
+			type:0,
+			yy_code:'',
 			id:'',
-			type:'code'
+			yyerror:false,
+			nodataflag:false,
+			datainfo:{
+				
+			},
+
 		}
 	},
 	onLoad: function(e) {
+		// this.id=base64.decode(e.id);
 		this.id=e.id;
-		if(e.type){
-			this.type=e.type
-		}
+		this.init()
 		this.getDataFn()
 	},
 	methods:{
-		checkPermi, checkRole,
-		getFail(){
-			var that = this;
-			uni.scanCode({
-				onlyFromCamera: true,
-				autoZoom:false,
-				scanType: ['qrCode'],
-				success: function(red) {
-					let result = red.result;
-					if (typeof result == 'string') {
-						try {
-						
-						} catch (e) {
-							uni.navigateBack({
-								delta: 1
-							})
-							uni.showToast({
-								title: '扫码查询失败,请检查二维码是否正确',
-								icon: "none"
-							})
-							return
+		getClose(){
+			this.type=0;
+		},
+		kaType(data, list) {
+			return selectDictValue(list, data);
+		},
+		init(){
+			// 记录来源
+			getDictionaryFn('jluly').then(res=>{
+				if(res.code==200){
+					this.adrlist = res.data.map(v => {
+						return {
+							dictLabel: v.dictLabel,
+							dictValue: Number(v.dictValue)
 						}
-					}
-					var id = red.result
-					var params = {
-						"reservatId": id,
-					}
-					getReservatvav(params).then(res => {
-						if (res.code == 200) {
-							// 刷新页面
-							if(res.msg=='核销失败'){
-								that.$tab.redirectTo('/pages/order/stafffail')
+					})
+				}
+			})
+		},
+		getFail(){
+			var that=this;
+			uni.showModal({
+				title: '确认删除',
+				content: "是否确认删除该预约",
+				cancelText: '取消',
+				confirmText: '确认',
+				success: function(res) {
+					if (res.confirm) {
+						getReservatDel(that.id).then(res=>{
+							if(res.code==200){
+								that.$toast('删除成功')
+								setTimeout(function(){
+									this.$tab.reLaunch('/pages/index/index')
+								},1500)
+								
 							}else{
-								uni.$emit('refreshdatalist')
-								that.$tab.redirectTo('/pages/order/staffcode?id='+id)
+								that.$toast(res.msg)
 							}
-							
-						} else {
-							uni.showToast({
-								title: res.msg,
-								duration: 1000,
-								icon: 'none'
-							});
-						
+						})
+					} else if (res.cancel) {
+						// console.log('用户点击取消');
+					}
+				}
+			});	
+		},
+		gettypeFn(type){
+			var that=this;
+			var str="拒绝"
+			if(type==3){
+				str='同意'
+			}
+			uni.showModal({
+				title: '确认'+str,
+				content: "是否确认"+str+"该预约",
+				cancelText: '取消',
+				confirmText: '确认',
+				success: function(res) {
+					if (res.confirm) {
+						var params={
+							reservatId:that.id,
+							visitType:type
 						}
-					})
-				},
-				fail: function(e) {
-					if (e && e.errMsg && e.errMsg.indexOf('scanCode:fail cancel') != -1) {
-						return;
+						getReservatSh(params).then(res=>{
+							if(res.code==200){
+								that.$toast('审核成功')
+								setTimeout(function(){
+									that.getDataFn();
+									// that.getcount();
+								},1500)
+								
+							}else{
+								that.$toast(res.msg)
+							}
+						})
+					} else if (res.cancel) {
+						// console.log('用户点击取消');
 					}
-					uni.showToast({
-						title: '扫码失败',
-						icon: "none"
-					})
-				},
+				}
 			});
+			
 		},
-		getBack(){
-			this.$tab.reLaunch('/pages/index/index')
+		getPreview() {
+			var newArr=[];
+			var url=this.yy_code
+			newArr.push(url)
+			uni.previewImage({
+				urls: newArr,
+				current:0,
+				success: function(data) {
+					
+				},
+				fail: function(err) {
+					
+				}
+			});
 		},
 		getDataFn(){
 			getReservatDetail(this.id).then(res=>{
 				if(res.code==200){
-					this.datainfo=res.data;
+					if(res.data){
+						this.datainfo=res.data;
+						if(res.data.visitStatus&&res.data.visitStatus==2){
+							this.useflag=true;
+							this.barsteps[1].status=2;
+							this.barsteps[2].status=2;
+							this.barsteps[2].tit='审核完成';
+							this.barsteps[3].status=3;
+						}else{
+							var type=res.data.visitType;
+							if(type==1){
+								this.barsteps[1].status=1;
+							}else if(type==2){
+								this.barsteps[1].status=2;
+								this.barsteps[2].status=2;
+								this.barsteps[2].tit='审核失败';
+								this.yyerror=true
+							}else if(type==3){
+								this.barsteps[1].status=2;
+								this.barsteps[2].status=2;
+								this.barsteps[2].tit='审核完成';
+							}
+						}
+						
+					}else{
+						this.nodataflag=true
+					}
+					
+					
 				}else{
 					this.$toast(res.msg)
 				}
@@ -170,34 +283,46 @@
 </script>
 
 <style lang="scss" scoped>
-.code{display: flex;flex-direction: column;height: 100vh;box-sizing: border-box;}
+.ytbox{width: 684rpx;margin: 0 auto;padding-top: 24rpx;position: relative;flex: 1;overflow: auto;}
+.ystaimg{width: 140rpx;height: 140rpx;top: 40rpx;right: 22rpx;position: absolute;}
+.nodata{z-index: 3;flex: 1;overflow: auto;
+	display: flex;flex-direction: column;align-items: center;box-sizing: border-box;padding-top: 200rpx;background-color: #FFFFFF;
+	.img{width: 456rpx;height: 178rpx;margin-bottom: 28rpx;flex: 0 0 auto;}
+	.tit{font-size: 30rpx;color: #AAAAAA;font-weight: bold;}
+}	
 .code_box{
-	width: 684rpx;background: #FFFFFF;border-radius: 6rpx;margin: 0 auto;padding:64rpx 60rpx 40rpx;box-sizing: border-box;flex: 1;
-	.code_suc{
-		margin-bottom: 48rpx;
-		image{width: 138rpx;height: 148rpx;margin: 0 auto 32rpx;}
-	}
+	width: 100%rpx;background: #FFFFFF;border-radius: 14rpx;margin: 0 auto;padding:48rpx 56rpx 36rpx;box-sizing: border-box;flex: 1;
 	.cdet{
-		.ctit{font-size: 32rpx;font-weight: bold;color: #161616;position: relative;
-				&::before{width: 6rpx;height: 34rpx;background: $com-cd3;border-radius: 2rpx;content: '';left: -26rpx;top: 3rpx;position: absolute;bottom: 3rpx;}
+		.ctit{font-size: 28rpx;font-weight: bold;color: #161616;position: relative;
+				&::before{width: 6rpx;height: 34rpx;background: $com-cd3;border-radius: 4rpx;content: '';left: -26rpx;top: 3rpx;position: absolute;bottom: 3rpx;}
 		}
-		.cbox{padding: 36rpx 0 12rpx;}
-		.ctxt{font-size: 30rpx;font-weight: bold;
+		.adrtip{font-weight: 500;font-size: 28rpx;color: #161616;line-height: 40rpx;padding: 30rpx 0 56rpx;
+			text{color: $com-cd3;}
+		}
+		.cbox{padding: 40rpx 0 0rpx;}
+		.ctxt{font-size: 26rpx;font-weight: bold;
 color: $com-cd3;margin-bottom: 16rpx;}
-		.ctlist{padding: 10rpx 0;display: flex;justify-content: space-between;
-			.tit{font-size: 30rpx;font-weight: 500;
-			color: #AAAAAA;flex:0 0 auto;margin-right: 20rpx;}
-			.txt{font-size: 30rpx;font-weight: 500;color: #161616;flex: 1;text-align: right;}
+		.ctlist{padding: 12rpx 0;display: flex;justify-content: space-between;
+			.tit{font-size: 28rpx;font-weight: 500;color: #666666;flex:0 0 auto;margin-right: 20rpx;
+				text{display: inline-block;width: 116rpx;text-align-last: justify;}
+			}
+			.txt{font-size: 26rpx;font-weight: bold;color: #161616;flex: 1;text-align: right;	}
+		}
+		.yerror{padding: 14rpx 0 30rpx;
+			image{width: 296rpx;height: 330rpx;margin: 0 auto 16rpx;}
+			view{font-size: 24rpx;font-weight: bold;color: #D32C26;text-align: center;}
 		}
 		
 	}
 }
-
-.code_btn{flex: 0 0 auto;padding: 40rpx 32rpx;display: flex;align-items: center;justify-content: space-between;
-	.btn{width: 320rpx;height: 80rpx;border-radius: 40rpx;box-sizing: border-box;font-size: 32rpx;font-weight: 500;text-align: center;line-height: 80rpx;
-		&.btn1{background: #FFFFFF;border: 2rpx solid $com-cd3;color: $com-cd3;margin-right: 44rpx;}
-		&.btn2{background: $com-cd3;color: #FFFFFF;}
+.ybtn{border-top: 2rpx solid #DADADA;padding: 20rpx 0rpx;display: flex;align-items: center;justify-content: space-between;
+		.ybtns{border-radius: 6rpx;height: 80rpx;font-weight: 500;font-size: 26rpx;display: flex;align-items: center;justify-content: center;box-sizing: border-box;
+			&.btn1{border: 2rpx solid #FC3838;color: #FC3838;}
+			&.btn2{border: 2rpx solid #666666;color: #666666;margin-left: 30rpx;}
+			&.btn3{background-color: #0391FD;color: #ffffff;margin-left: 30rpx;}
+		}
 	}
 
-}
+
+
 </style>

+ 1 - 1
pages/register.vue

@@ -111,7 +111,7 @@
       registerSuccess(result) {
         // 设置用户信息
         this.$store.dispatch('GetInfo').then(res => {
-          this.$tab.reLaunch('/pages/index')
+          this.$tab.reLaunch('/pages/index/index')
         })
       }
     }

BIN
static/images/mine/lcicon.png


BIN
static/images/mine/micong.png


BIN
static/images/mine/pcicon.png


BIN
static/images/navbg.png


+ 0 - 0
static/images/order/come/icon_yq_yy_mrrz.png → static/images/order/come/faceimg.png


+ 0 - 0
static/images/order/come/icon_lc_yy_selected.png → static/images/order/come/fillf.png


+ 0 - 0
static/images/order/come/icon_lc_yy_jxz.png → static/images/order/come/fillin.png


+ 0 - 0
static/images/order/come/icon_lc_yy_normal.png → static/images/order/come/filln.png


+ 0 - 0
static/images/order/come/icon_yq_yy_mr_zd.png → static/images/order/come/ftipa.png


+ 0 - 0
static/images/order/come/icon_yq_yy_mr_gx.png → static/images/order/come/ftipb.png


+ 0 - 0
static/images/order/come/icon_yq_yy_mr_sj.png → static/images/order/come/ftipc.png


+ 0 - 0
static/images/order/come/pic_lc_yy_xt_selevted.png → static/images/order/come/line.png


+ 0 - 0
static/images/order/come/pic_lc_yy_xt_normal.png → static/images/order/come/lines.png


+ 0 - 0
static/images/order/come/icon_mrrr_sjts.png → static/images/order/come/phoimg.png


+ 0 - 0
static/images/order/come/pic_lfsj_jt.png → static/images/order/come/rowline.png


+ 0 - 0
static/images/order/come/ucin_yq_yyts.png → static/images/order/come/tip.png


BIN
static/images/order/comes/fillf.png


BIN
static/images/order/comes/fillin.png


BIN
static/images/order/comes/filln.png


BIN
static/images/order/comes/hline.png


BIN
static/images/order/comes/icon_lfsj_ts.png


BIN
static/images/order/comes/limg.png


BIN
static/images/order/comes/rimg.png


BIN
static/images/order/comes/rowline.png


BIN
static/images/order/comes/tip.png


+ 0 - 0
static/images/order/staff/pic_yq_gly_tx.png → static/images/order/staff/head.png


+ 0 - 0
static/images/order/staff/pic_yq_gly_lbzs.png → static/images/order/staff/listline.png


+ 0 - 0
static/images/order/staff/pic_yq_gly_lbzt_bg.png → static/images/order/staff/ybg.png


+ 0 - 0
static/images/order/staff/pic_yq_gly_sqty.png → static/images/order/staff/ysta.png


+ 0 - 0
static/images/order/staff/pic_yq_gly_sqjj.png → static/images/order/staff/ystb.png


BIN
static/images/order/staffs/bg.png


BIN
static/images/order/staffs/dbg.png


BIN
static/images/order/staffs/dsbg.png


BIN
static/images/order/staffs/rimg.png


BIN
static/images/order/staffs/tit.png


BIN
static/images/order/staffs/topbg.png


BIN
static/images/order/staffs/topbgs.png


BIN
static/images/order/staffs/weather.png


BIN
static/images/order/staffs/ybg.png


BIN
static/images/tabbar/home.png


BIN
static/images/tabbar/home_.png


BIN
static/images/tabbar/mine.png


BIN
static/images/tabbar/mine_.png


+ 0 - 0
static/images/order/come/icon_yq_gly_tq_qt.png → static/images/weather/weaion.png


BIN
static/images/weather/weaiona.png


BIN
static/images/weather/weaionb.png


BIN
static/images/weather/weaionc.png


BIN
static/images/weather/weaiond.png


BIN
static/images/weather/weaione.png


BIN
static/images/weather/weaionf.png


BIN
static/images/weather/weaiong.png


BIN
static/images/weather/weaionh.png


BIN
static/images/weather/weaioni.png


BIN
static/images/weather/weaionj.png


BIN
static/logo.png


+ 7 - 0
static/style.css

@@ -11,6 +11,7 @@
 .flext{display: flex;align-items: flex-start;}
 .flexdc{display: flex;flex-direction: column;}
 .flexcdc{display: flex;align-items: center;flex-direction: column;}
+.flexccc{display: flex;align-items: center;flex-direction: column;justify-content: center;}
 
 .clearf::after {
   content: "";
@@ -60,6 +61,7 @@ color: #FFFFFF;display: flex;align-items: center;justify-content: center;}
 .w13{width: 26rpx;}
 
 .cof{color: #ffffff;}
+.cod{color: #dddddd;}
 .coa{color: #AAAAAA;}
 .co47{color: #D32C26;}
 .co16{color: #161616;}
@@ -118,10 +120,12 @@ color: #FFFFFF;display: flex;align-items: center;justify-content: center;}
 .pl8{padding-left: 16rpx;}
 .pl16{padding-left: 32rpx;}
 .pr8{padding-right: 16rpx;}
+.pt5{padding-top: 10rpx;}
 .pt12{padding-top: 24rpx;}
 .pt20{padding-top: 40rpx;}
 .pt80{padding-top: 160rpx;}
 .pb15{padding-bottom: 30rpx;}
+.pb18{padding-bottom: 36rpx;}
 .plr12{padding: 0 24rpx;}
 .plr13{padding: 0 26rpx;}
 .plr18{padding: 0 36rpx;}
@@ -143,4 +147,7 @@ color: #FFFFFF;display: flex;align-items: center;justify-content: center;}
 .plr15{padding:0 30rpx;}
 .mt16{margin-top: 32rpx;}
 
+
+.yybox{width: 100%;height: 100vh;box-sizing: border-box;display: flex;flex-direction: column;background-color: #F5F5F5;}
+.yydet{flex: 1;overflow: auto;z-index: 2;position: relative;display: flex;flex-direction: column;}
 /* 新写的end */

+ 2 - 1
store/getters.js

@@ -3,6 +3,7 @@ const getters = {
   avatar: state => state.user.avatar,
   name: state => state.user.name,
   roles: state => state.user.roles,
-  permissions: state => state.user.permissions
+  permissions: state => state.user.permissions,
+  wgtcode:state => state.user.wgtcode
 }
 export default getters

+ 11 - 2
store/modules/user.js

@@ -12,7 +12,8 @@ const user = {
     name: storage.get(constant.name),
     avatar: storage.get(constant.avatar),
     roles: storage.get(constant.roles),
-    permissions: storage.get(constant.permissions)
+    permissions: storage.get(constant.permissions),
+	wgtcode:storage.get(constant.wgtcode)
   },
 
   mutations: {
@@ -34,10 +35,18 @@ const user = {
     SET_PERMISSIONS: (state, permissions) => {
       state.permissions = permissions
       storage.set(constant.permissions, permissions)
-    }
+    },
+	SET_WGTCODE: (state, wgtcode) => {
+	  state.wgtcode = wgtcode
+	  storage.set(constant.wgtcode, wgtcode)
+	},
   },
 
   actions: {
+	// 版本号
+	SetwgtFn({ commit}, code ){
+		commit('SET_WGTCODE',code)
+	},
     // 登录
     Login({ commit }, userInfo) {
       const username = userInfo.username.trim()

+ 1 - 1
uni.scss

@@ -2,7 +2,7 @@
  * uni-app内置的常用样式变量
  */
 //公共的颜色
-$com-cd3: #D32C26;
+$com-cd3: #0391FD;
 /* 行为相关颜色 */
 $uni-color-primary: #007aff;
 $uni-color-success: #4cd964;

+ 11 - 1
utils/common.js

@@ -26,7 +26,17 @@ export function showConfirm(content) {
     })
   })
 }
-
+// 字典值匹配
+export function selectDictValue(datas, value) {
+	var actions = [];
+	Object.keys(datas).some((key) => {
+		if (datas[key].dictValue == ('' + value)) {
+			actions.push(datas[key].dictLabel);
+			return true;
+		}
+	})
+	return actions.join('');
+}
 /**
 * 参数处理
 * @param params 参数

+ 1 - 13
utils/constant.js

@@ -1,23 +1,11 @@
 const constant = {
    avatar: 'vuex_avatar',
    name: 'vuex_name',
-   phonenumber: 'vuex_phonenumber',
-   deptId: 'vuex_deptId',
-   openId: 'vuex_openId',
-   schoolId: 'vuex_schoolId',
-   schoolName: 'vuex_schoolName',
-   deptName: 'vuex_deptName',
    roles: 'vuex_roles',
-   userroles: 'vuex_userroles',
-   choseroles: 'vuex_choseroles',
    permissions: 'vuex_permissions',
-   userId: 'vuex_userId',
-   tenantId: 'vuex_tenantId',
-   // student: 'vuex_student',
-   // teacherClass: 'vuex_teacherClass',
-   // refreshflag: 'vuex_refreshflag',
    scorknow: 'vuex_scorknow',
    autologin:'vuex_autologin',
+   wgtcode:'vuex_wgtcode',
  }
 
  export default constant

+ 2 - 2
utils/initmap.js

@@ -5,10 +5,10 @@ var key='';
 key='fba818d626f91cf5a13cd61943a7667e'
 // #endif
 // #ifdef APP-PLUS
-key='ccbe52b1ec5f66295fa4609c90a819b7'
+key='ff70a5409eacd8b16a26fca91ee3aea3'
 // #endif
 // #ifdef MP-WEIXIN
-key='ccbe52b1ec5f66295fa4609c90a819b7'
+key='ff70a5409eacd8b16a26fca91ee3aea3'
 // #endif
 const myAmapFun =new amap.AMapWX({
 	key:key

+ 1 - 1
utils/request.js

@@ -102,7 +102,7 @@ const request = config => {
 									url:route
 								})
 							}else{
-								this.$tab.reLaunch('/pages/index')
+								this.$tab.reLaunch('/pages/index/index')
 							}
 						  })
 					  },500) 

+ 1 - 1
utils/storage.js

@@ -4,7 +4,7 @@ import constant from './constant'
 let storageKey = 'storage_data'
 
 // 存储节点变量名
-let storageNodeKeys = [constant.autologin,constant.scorknow,constant.avatar, constant.name, constant.roles, constant.permissions,constant.phonenumber,constant.deptId,constant.userId,constant.tenantId,constant.userroles,constant.choseroles,constant.deptName,constant.schoolId,constant.schoolName,constant.openId,]
+let storageNodeKeys = [constant.autologin,constant.scorknow,constant.avatar, constant.name, constant.roles, constant.permissions,constant.wgtcode]
 
 const storage = {
   set: function(key, value) {