zouling 1 rok temu
rodzic
commit
5865c54cc8
70 zmienionych plików z 1882 dodań i 421 usunięć
  1. 1 1
      api/system/user.js
  2. 11 9
      components/footer/footer.vue
  3. 128 17
      components/order/list.vue
  4. 79 0
      components/swiper/notice.vue
  5. 47 19
      pages.json
  6. 272 47
      pages/index/index.vue
  7. 332 323
      pages/mine/index.vue
  8. 0 5
      pages/video/index.vue
  9. BIN
      static/images/home/chose.png
  10. BIN
      static/images/home/close.png
  11. BIN
      static/images/home/day.png
  12. BIN
      static/images/home/hbga.png
  13. BIN
      static/images/home/hbgb.png
  14. BIN
      static/images/home/hbgc.png
  15. BIN
      static/images/home/hbgd.png
  16. BIN
      static/images/home/hbge.png
  17. BIN
      static/images/home/hbgf.png
  18. BIN
      static/images/home/hbgg.png
  19. BIN
      static/images/home/hbgh.png
  20. BIN
      static/images/home/head.png
  21. BIN
      static/images/home/htaba.png
  22. BIN
      static/images/home/htabb.png
  23. BIN
      static/images/home/htabc.png
  24. BIN
      static/images/home/htabd.png
  25. BIN
      static/images/home/htabe.png
  26. BIN
      static/images/home/htabf.png
  27. BIN
      static/images/home/htabg.png
  28. BIN
      static/images/home/htabh.png
  29. BIN
      static/images/home/news.png
  30. BIN
      static/images/home/time.png
  31. BIN
      static/images/home/voice.png
  32. BIN
      static/images/mine/habg.png
  33. BIN
      static/images/mine/head.png
  34. BIN
      static/images/mine/miconc.png
  35. BIN
      static/images/mine/miconf.png
  36. BIN
      static/images/mine/micong.png
  37. BIN
      static/images/mine/miconj.png
  38. BIN
      static/images/mine/miconl.png
  39. BIN
      static/images/mine/minea.png
  40. BIN
      static/images/mine/mineb.png
  41. BIN
      static/images/mine/minec.png
  42. BIN
      static/images/mine/mined.png
  43. BIN
      static/images/mine/minee.png
  44. BIN
      static/images/mine/minef.png
  45. BIN
      static/images/mine/mineg.png
  46. BIN
      static/images/mine/mineh.png
  47. BIN
      static/images/mine/minei.png
  48. BIN
      static/images/mine/mnotic.png
  49. BIN
      static/images/order/staff/ybga.png
  50. BIN
      static/images/tabbar/home.png
  51. BIN
      static/images/tabbar/home_.png
  52. BIN
      static/images/tabbar/icon_yq_sx_xl.png
  53. BIN
      static/images/tabbar/mine.png
  54. BIN
      static/images/tabbar/mine_.png
  55. BIN
      static/images/tabbar/road.png
  56. BIN
      static/images/tabbar/road_.png
  57. BIN
      static/images/tabbar/trends.png
  58. BIN
      static/images/tabbar/trends_.png
  59. BIN
      static/images/tabbar/video.png
  60. BIN
      static/images/tabbar/video_.png
  61. BIN
      static/images/tabbar/work.png
  62. BIN
      static/images/tabbar/work_.png
  63. 8 0
      static/style.css
  64. 220 0
      work/pages/record/clockin.vue
  65. 291 0
      work/pages/record/detail.vue
  66. 241 0
      work/pages/yyorder/eat.vue
  67. 252 0
      work/pages/yyorder/meeting.vue
  68. BIN
      work/static/record/lico.png
  69. BIN
      work/static/record/search.png
  70. BIN
      work/static/record/wup.png

+ 1 - 1
api/system/user.js

@@ -41,7 +41,7 @@ export function getUserProfile() {
 export function updateUserProfile(data) {
   return request({
     url: '/system/user/profile',
-    method: 'put',
+    method: 'post',
     data: data
   })
 }

+ 11 - 9
components/footer/footer.vue

@@ -4,19 +4,20 @@
 	
 	<view style="height: 100rpx;"></view>
     <view class="com_footer">
-        <view class="in_item" v-for="(item,k) in footlist" :key="k" @click="gotopage(item)">
-			<image class="in_img" v-if="active == item.module" :src="item.icon_checked" mode="scaleToFill"></image>
-			<image class="in_img" v-else :src="item.icon_nochecked" mode="scaleToFill"></image>
-			<view class="in_txt" v-if="active == item.module" :style="'color: #'+color_checked">{{item.title}}</view>
-			<view class="in_txt" v-else :style="'color: #'+color_nochecked">{{item.title}}</view>
-        </view>
+		<block v-for="(item,k) in footlist" :key="k">
+			<view class="in_item" v-if="!item.limit||item.limit&&checkPermi([item.limit])"  @click="gotopage(item)">
+				<image class="in_img" v-if="active == item.module" :src="item.icon_checked" mode="scaleToFill"></image>
+				<image class="in_img" v-else :src="item.icon_nochecked" mode="scaleToFill"></image>
+				<view class="in_txt" v-if="active == item.module" :style="'color: #'+color_checked">{{item.title}}</view>
+				<view class="in_txt" v-else :style="'color: #'+color_nochecked">{{item.title}}</view>
+			</view>
+		</block>
     </view>
 	</view>
 </template>
 
 <script>
-	// import api from '../../api/api.js'
-	// import plugins from '../../commen/js/plugin.js'
+	import { checkPermi, checkRole } from "@/utils/permission";
     export default {
 		props:[
 			'footerindex'
@@ -25,8 +26,9 @@
             return{
 				active :'',
 				footlist:[
+					// limit:'idcard:idcard:list',
 					{module:'home',title:'首页',img:"imga",icon_checked:require('@/static/images/tabbar/home_.png'),icon_nochecked:require('@/static/images/tabbar/home.png')},
-					{module:'video',title:'视频',img:"imgb",icon_checked:require('@/static/images/tabbar/video_.png'),icon_nochecked:require('@/static/images/tabbar/video.png')},
+					{module:'video',title:'视频',img:"imgb",icon_checked:require('@/static/images/tabbar/video_.png'),icon_nochecked:require('@/static/images/tabbar/video.png'),},
 					{module:'mine',title:'我的',img:"imga",icon_checked:require('@/static/images/tabbar/mine_.png'),icon_nochecked:require('@/static/images/tabbar/mine.png')},
 					],
 				color_checked :'161616',

+ 128 - 17
components/order/list.vue

@@ -19,12 +19,12 @@
 					
 				</view>
 				<view class="ybox">
-					<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 class="yblist mw50"><text>预约日期</text>{{ite.visitDate}}</view>
+					<view class="yblist mw50"><text>预约时间</text>{{ite.visitTime}}</view>
+					<view class="yblist mw50"><text>手机号码</text>{{ite.visitPhone}}</view>
+					<view class="yblist mw50"><text>人 数</text>{{ite.visitNum}}</view>
+					<view class="yblist mw50"><text>来访地点</text>{{kaType(ite.appointmentSite,adrlist)}}</view>
+					<view class="yblist mw50"><text>来访事由</text>{{ite.visitReason}}</view>
 				</view>
 				<view class="ybtn">
 					<view class="ybtns btn1" @click.stop="getDelFn(ite.reservatId)">删除</view>
@@ -49,18 +49,17 @@
 						<view class="ctime">提交时间:{{ite.createTime}}</view>
 					</view>
 					<view class="right" v-if="ite.visitType==1">
-						<image :src="ybga"></image>
+						<image :src="ybg"></image>
 						<view>待审核</view>
 					</view>
-					
 				</view>
 				<view class="ybox">
-					<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 class="yblist mw50"><text>预约日期</text>{{ite.visitDate}}</view>
+					<view class="yblist mw50"><text>预约时间</text>{{ite.visitTime}}</view>
+					<view class="yblist mw50"><text>手机号码</text>{{ite.visitPhone}}</view>
+					<view class="yblist mw50"><text>人 数</text>{{ite.visitNum}}</view>
+					<view class="yblist mw50"><text>来访地点</text>{{kaType(ite.appointmentSite,adrlist)}}</view>
+					<view class="yblist mw50"><text>来访事由</text>{{ite.visitReason}}</view>
 				</view>
 				<view class="ybtn">
 					<view class="ybtns btn1" @click.stop="getDelFn(ite.reservatId)">删除</view>
@@ -73,6 +72,69 @@
 				</view>
 			</view>
 		</block>
+		<!-- 打卡记录 -->
+		<block v-if="type=='record'">
+			<view class="ylist rlist" v-for="(ite,idx) in datalist" :key='idx' @click="getDetail(ite.reservatId)">
+				<view class="rtop mb15 flexcj">
+					<view class="rlistl flexc">
+						<image :src="time"></image>
+						<view>07-18 / 星期四</view>
+					</view>
+					<view class="right" v-if="ite.visitType==1">
+						<image :src="ybga"></image>
+						<view>缺卡</view>
+						<!-- <view>迟到</view> -->
+					</view>	
+				</view>
+				<view class="rbox flexcj">
+					<view class="rboxa">
+						<image :src="bgaimg" class="rbg"></image>
+						<view class="rboxb">
+							<view class="tit">上班08:30</view>
+							<view class="time flexc">
+								<image :src="chose"></image>
+								08:21已打卡
+							</view>
+						</view>
+					</view>
+					<view class="rboxa">
+						<image :src="bgbimg" class="rbg"></image>
+						<view class="rboxb">
+							<view class="tit">下班17:30</view>
+							<view class="time flexc">
+								<image :src="close"></image>
+								缺卡
+								<!-- 未打卡 -->
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+		</block>
+		<!-- 打卡列表 -->
+		<block v-if="type=='clock'">
+			<view class="ylist rlist" style="padding-top: 12rpx;" v-for="(ite,idx) in datalist" :key='idx' @click="getDetail(ite.reservatId)">
+				<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="rights" v-if="ite.visitType==1">
+						<image :src="ybga"></image>
+						<view>缺卡</view>
+						<!-- <view>迟到</view> -->
+					</view>
+				</view>
+				<view class="ybox">
+					<view class="yblist mw50 line"><text>上班打卡</text>08:31已打卡
+						<view class="tip">迟到</view>
+					</view>
+					<view class="yblist mw50"><text>下班打卡</text>17:31已打卡
+					</view>
+				</view>
+			</view>
+		</block>
 		<view class="shax" v-if="wtdt">{{wtdt}}</view>
 	</view>
 	<block v-else>
@@ -116,7 +178,13 @@
 	},
 	data(){
 		return{
-			ybga:require("@/static/images/order/staff/ybg.png"), 
+			time:require("@/static/images/home/time.png"), 
+			chose:require("@/static/images/home/chose.png"), 
+			close:require("@/static/images/home/close.png"), 
+			bgaimg:require("@/static/images/home/hbgg.png"), 
+			bgbimg:require("@/static/images/home/hbgh.png"), 
+			ybg:require("@/static/images/order/staff/ybg.png"), 
+			ybga:require("@/static/images/order/staff/ybga.png"), 
 			ysta:require("@/static/images/order/staff/ysta.png"), 
 			ystb:require("@/static/images/order/staff/ystb.png"), 
 		}
@@ -206,10 +274,24 @@ font-size: 34rpx;color: #FFFFFF;margin-right: 18rpx;text-align: center;line-heig
 			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;}
 		}
+		.rights{position: relative;width: 96rpx;height: 38rpx;right: 0;top: 0;
+			image{width: 100%;height: 100%;}
+			view{font-weight: 500;font-size: 20rpx;
+		color: #FFFFFF;position: absolute;left: 0;top: 0;right: 0;bottom: 0;text-align: center;padding-left: 20rpx;box-sizing: border-box;line-height: 38rpx;}
+		}
 	}
-	.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;
+	.ybox{padding: 0rpx 24rpx 24rpx 16rpx;display: flex;flex-wrap: wrap;
+		.yblist{display: flex;font-size: 24rpx;font-weight: 500;color: #161616;padding: 6rpx 0 6rpx 8rpx;line-height: 40rpx;position: relative;
 			text{font-weight: normal;color: #aaa;flex: 0 0 auto;width: 100rpx;text-align-last: justify;margin-right: 12rpx;}
+			.tip{border-radius: 12rpx;font-weight: 500;font-size: 16rpx;color: #F87C29;border: 2rpx solid #F87C29;height: 28rpx;box-sizing: border-box;
+				display: flex;align-items: center;padding: 0 8rpx;margin-left: 12rpx;flex: 0 0 auto;margin-top: 6rpx;
+			}
+			&.line{
+				&::after{
+					position: absolute;content: '';width: 2rpx;height: 30rpx;background: #CDCDCD;right: 0;top: 9rpx;
+				}
+				
+			}
 		}
 	}
 	.ybtn{border-top: 2rpx solid #DADADA;padding: 20rpx 18rpx;display: flex;align-items: center;
@@ -219,6 +301,35 @@ font-size: 34rpx;color: #FFFFFF;margin-right: 18rpx;text-align: center;line-heig
 			&.btn3{background-color: #0391FD;color: #ffffff;margin-left: 22rpx;}
 		}
 	}
+	// 记录
+	&.rlist{padding-top:28rpx;
+		.rtop{position: relative;padding-left: 22rpx;
+			.rlistl{flex: 1;
+				image{width: 30rpx;height: 30rpx;margin-right: 18rpx;}
+				view{font-weight: bold;font-size: 28rpx;color: #161616;}
+			}
+			.right{position: relative;width: 96rpx;height: 38rpx;right: 0;top: 0;
+				image{width: 100%;height: 100%;}
+				view{font-weight: 500;font-size: 20rpx;
+color: #FFFFFF;position: absolute;left: 0;top: 0;right: 0;bottom: 0;text-align: center;padding-left: 20rpx;box-sizing: border-box;line-height: 38rpx;}
+			}
+		}
+		.ytop{padding-bottom: 18rpx;}
+		.ybox{padding-bottom: 14rpx;}
+		.rbox{padding: 0 22rpx 8rpx 22rpx;
+			.rboxa{width: 306rpx;height: 104rpx;position: relative;margin-bottom: 20rpx;
+				.rbg{width: 100%;height: 100%;}
+				.rboxb{box-sizing: border-box;padding:14rpx 0 16rpx 28rpx;
+					position: absolute;left: 0;top: 0;right: 0;bottom: 0;
+					.tit{font-weight: 500;font-size: 26rpx;color: #161616;margin-bottom: 10rpx;}
+					.time{font-weight: 500;font-size: 22rpx;color: #666666;
+						image{width: 18rpx;height: 18rpx;margin-right: 14rpx;flex: 0 0 auto;}
+					}
+				}
+			}
+		}
+		
+	}
 }
 
 </style>

+ 79 - 0
components/swiper/notice.vue

@@ -0,0 +1,79 @@
+<template>
+  <view v-if="noticelist.length">
+	  <view class="hswip flexc" >
+	  		<image :src="tztip"></image>
+			<swiper class="swiper" indicator-dots="true" :indicator-color="nactiveColor" :indicator-active-color="activeColor" circular :autoplay="autoplay" :interval="interval" :duration="duration" vertical='true'>
+				<swiper-item v-for="(ite,idx) in noticelist" :key="">
+					<view class="flexc swipers" @click="getDetail(ite.noticeId)">
+						<view class="tit over">{{ite.noticeTitle}}</view>
+						<!-- <view class="time">{{ite.issuerTime}}</view> -->
+						<view class="time" v-if="ite.createTime">{{ite.createTime.substring(0,10)}}</view>
+					</view>
+				</swiper-item>
+			</swiper>
+	  		
+	  </view>
+  </view>
+</template>
+
+<script>
+  export default {
+	  props:{
+	  	autoplay: {
+	  		type: Boolean,
+	  		default () {
+	  			return false
+	  		}
+	  	},
+	  	confdat:{},
+		activeColor:{
+			type:String,
+			default () {
+				return '#000000'
+			}
+		},
+		nactiveColor:{
+			type:String,
+			default () {
+				return 'rgba(0, 0, 0, .3)'
+			}
+		},
+		noticelist:{
+			type: Array,
+			default () {
+				return []
+			}
+		}
+	  },
+	data(){
+		return{
+			tztip:require('@/static/images/home/voice.png'),
+            interval: 2000,
+            duration: 500
+		}
+	},
+	methods:{
+		 getRoad(){
+		 	console.log(1)
+		 },
+		 getDetail(e){
+			 this.$emit('getNoticeDet',e)
+		 }
+	},
+	onLoad: function() {
+    }
+  }
+</script>
+
+<style lang="scss" scoped>
+.hswip /deep/ .uni-swiper-dots-vertical{right: 0;}
+.hswip /deep/  .uni-swiper-dot{width: 10rpx; height: 10rpx;}
+.hswip{width: 100%;background: #ffffff;border-radius: 14rpx;height: 80rpx;padding: 0 28rpx 0 28rpx;box-sizing: border-box;box-shadow: 0px 0px 3px 0px #DEDEDE;
+	image{width: 36rpx;height: 42rpx;flex: 0 0 auto;margin-right: 16rpx;}
+	.swiper{flex: 1;height: 80rpx;
+	.swipers{height: 80rpx;}
+		.tit{flex: 1;font-weight: 500;font-size: 22rpx;color: #32415F;}
+		.time{font-weight: 500;font-size: 20rpx;color: #aaaaaa;flex: 0 0 auto;margin:0 28rpx 0 40rpx;}
+	}
+}
+</style>

+ 47 - 19
pages.json

@@ -125,7 +125,8 @@
       "navigationBarTitleText": "我的",
 	  "navigationStyle": "custom"
     }
-  }, {
+  }, 
+  {
     "path": "pages/mine/avatar/index",
     "style": {
       "navigationBarTitleText": "修改头像"
@@ -181,24 +182,51 @@
       "navigationBarTitleText": "浏览文本"
     }
   }],
-  // "tabBar": {
-  //   "color": "#000000",
-  //   "selectedColor": "#000000",
-  //   "borderStyle": "white",
-  //   "backgroundColor": "#ffffff",
-  //   "list": [{
-  //       "pagePath": "pages/index/index",
-  //       "iconPath": "static/images/tabbar/home.png",
-  //       "selectedIconPath": "static/images/tabbar/home_.png",
-  //       "text": "首页"
-  //     }, {
-  //       "pagePath": "pages/mine/index",
-  //       "iconPath": "static/images/tabbar/mine.png",
-  //       "selectedIconPath": "static/images/tabbar/mine_.png",
-  //       "text": "我的"
-  //     }
-  //   ]
-  // },
+  "subPackages": [
+  	{
+  		"root": "work",
+		"pages": [
+			{
+				"path": "pages/yyorder/eat",
+				"style": {
+					"navigationBarTitleText": "就餐预订",
+					"navigationStyle": "custom"
+				}
+			},
+			{
+				"path": "pages/yyorder/meeting",
+				"style": {
+					"navigationBarTitleText": "会议预订",
+					"navigationStyle": "custom"
+				}
+			},
+			{
+				"path": "pages/record/clockin",
+				"style": {
+					"navigationBarTitleText": "打卡记录",
+					"navigationStyle": "custom"
+				}
+			},
+			{
+				"path": "pages/record/detail",
+				"style": {
+					"navigationBarTitleText": "打卡记录",
+					"navigationStyle": "custom"
+				}
+			}
+		]
+  	}
+  ],
+ "preloadRule":{
+ 	  "pages/index/index": {
+ 	  	"network": "all",
+ 	  	"packages": ["work"]
+ 	  },
+ 	  "pages/login": {
+ 	  	"network": "all",
+ 	  	"packages": ["work"]
+ 	  }
+ },
   "globalStyle": {
     "navigationBarTextStyle": "black",
     "navigationBarTitleText": "RuoYi",

+ 272 - 47
pages/index/index.vue

@@ -2,48 +2,148 @@
 	<view>
 		<view class="navbox">
 			<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>
 		<!-- 主体 -->
 		<image :src="navbg" class="navbg"></image>
 		<view class="yymain" :style="'margin-top:-'+marTop+'rpx;'">
-			<view class="yycard">
-				<view class="top flexccc">
-					<image :src="headimg"></image>
-					<view>欢迎您,尊敬的管理员!</view>
+			<!-- 顶部 -->
+			<view class="yqtop flexcj">
+				<view class="yqtopl">
+					<view class="tit mb10">潜山经济开发区</view>
+					<view class="txt">安徽中新云智慧园区服务平台</view>
 				</view>
-				<view class="flexcc">
-					<view class="list">
-						<view class="tit">613</view>
-						<view class="txt">来访数(位)</view>
+				<view class="yqtopr">
+					<view class="flexc mb4">
+						<image class="wimg" :src="weathericon"></image>
+						<view class="txt ml6">7月18日</view>
 					</view>
-					<view class="list">
-						<view class="tit">246</view>
-						<view class="txt">本月预约(位)</view>
+					<view class="txt">农历六月十三</view>
+				</view>
+			</view>
+			<!-- 卡片 -->
+			<view class="yqcard">
+				<view class="yqctop flexcj">
+					<view class="yqctopl flexc">
+						<image :src="headimg"></image>
+						<view class="over">何小西</view>
 					</view>
-					<view class="list">
-						<view class="tit">613</view>
-						<view class="txt">今日来访(位)</view>
+					<view class="yqctopr flexcc">
+						<image :src="newsimg"></image>
+						<view class="tit">消息</view>
+						<view class="cir"></view>
 					</view>
-					<view class="list">
-						<view class="tit">613</view>
-						<view class="txt">今日预约(位)</view>
+				</view>
+				<view class="pdlr2">
+					<view class="yqcbox">
+						<view class="yqcba" @click="getClockFn">
+							<view class="aimg"><image :src="htabaimg" class="imga"></image></view>
+							<view class="atit">打卡记录</view>
+						</view>
+						<view class="yqcba" @click="getMeetFn">
+							<view class="aimg"><image :src="htabbimg" class="imgb"></image></view>
+							<view class="atit">会议预订</view>
+						</view>
+						<view class="yqcba" @click="getEatFn">
+							<view class="aimg"><image :src="htabcimg" class="imgc"></image></view>
+							<view class="atit">订餐预订</view>
+						</view>
+						<view class="yqcba">
+							<view class="aimg"><image :src="htabdimg" class="imgd"></image></view>
+							<view class="atit">访客预约</view>
+						</view>
+						<view class="yqcba">
+							<view class="aimg"><image :src="htabeimg" class="imge"></image></view>
+							<view class="atit">预约管理</view>
+						</view>
+						<view class="yqcba">
+							<view class="aimg"><image :src="htabfimg" class="imgf"></image></view>
+							<view class="atit">访客管理</view>
+						</view>
+						<view class="yqcba">
+							<view class="aimg"><image :src="htabgimg" class="imgg"></image></view>
+							<view class="atit">访客记录</view>
+						</view>
+						<view class="yqcba">
+							<view class="aimg"><image :src="htabhimg" class="imgh"></image></view>
+							<view class="atit">敬请期待</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<!-- 通知 -->
+			<view class="mb10">
+				<notice :noticelist="noticelist" :activeColor="activeColor" :nactiveColor="nactiveColor" :autoplay='autoplay' @getNoticeDet="getNoticeDet"></notice>
+			</view>
+			<!-- 统计 -->
+			<view class="yqcont yqconta">
+				<view class="yqcl">
+					<view class="yqcla">
+						<image :src="hbgaimg" class="cbgimg"></image>
+						<view class="cbox">
+							<view class="tit mb5">来访数</view>
+							<view class="tit"><text>613</text>位</view>
+						</view>
+					</view>
+					<view class="yqcla">
+						<image :src="hbgbimg" class="cbgimg"></image>
+						<view class="cbox">
+							<view class="tit mb5">本月预约</view>
+							<view class="tit"><text>613</text>位</view>
+						</view>
+					</view>
+					<view class="yqcla">
+						<image :src="hbgcimg" class="cbgimg"></image>
+						<view class="cbox">
+							<view class="tit mb5">今日来访</view>
+							<view class="tit"><text>613</text>位</view>
+						</view>
+					</view>
+					<view class="yqcla">
+						<image :src="hbgdimg" class="cbgimg"></image>
+						<view class="cbox">
+							<view class="tit mb5">今日预约</view>
+							<view class="tit"><text>613</text>位</view>
+						</view>
+					</view>
+				</view>
+				<view class="yqcr">
+					<image :src="hbgeimg" class="cbgimg"></image>
+					<view class="cbox">
+						<view class="cboxa flexc">
+							<image :src="dayimg" class="dayimg"></image>
+							<view class="num">1,037</view>
+						</view>
+						<view class="flexcc">
+							<view class="cboxb">
+								<view class="tit mb5">中餐</view>
+								<view class="tit"><text>732</text>位</view>
+							</view>
+							<view class="cboxb">
+								<view class="tit mb5">晚餐</view>
+								<view class="tit"><text>732</text>位</view>
+							</view>
+						</view>
 					</view>
-					
 				</view>
 			</view>
+			<!-- 普通用户看到的 -->
+			<view class="yqcont">
+				<view class="yqcb">
+					<image :src="hbgfimg" class="cbgimg"></image>
+					<view class="cbox flexc">
+						<view class="cboxb flexc pl10">
+							<image :src="dayimg" class="dayimg"></image>
+							<view class="num pr4">1,037</view>
+						</view>
+						<view class="cboxb">
+							<view class="tit"><view class="tita">中餐</view><text>732</text>位</view>
+							<view class="tit"><view class="tita">晚餐</view><text>732</text>位</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<!-- 管理员 -->
 			<view class="yylists">
 				<view class="yyltab flexcj">
 					<view class="left flexc">待审批列表<image :src="listline"></image></view>
@@ -54,6 +154,17 @@
 					<y-list type='order' :datalist="list" :wtdt="wtdt" @getDetail='getDetail' :adrlist="adrlist" @getDelFn="getDelFn" @gettypeFn="gettypeFn"></y-list>
 				</view>
 			</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='record' :datalist="list" :wtdt="wtdt" @getDetail='getDetail' :adrlist="adrlist" @getDelFn="getDelFn" @gettypeFn="gettypeFn"></y-list>
+				</view>
+			</view>
 		</view>
 	
 	<footers v-if="isfootflag"  :footerindex="footerindex"></footers>
@@ -64,24 +175,50 @@
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 	import self from '@/utils/location.js';
 	import yList from "@/components/order/list.vue"
+	import notice from "@/components/swiper/notice.vue"
 	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},
+	components:{notice,yList,footers},
 	data(){
 		return{
 			footerindex:'home',
 			isfootflag:true,
 			navbg:require("@/static/images/navbg.png"),
-			headimg:require("@/static/images/order/staff/head.png"),
+			headimg:require("@/static/images/home/head.png"),
+			htabaimg:require("@/static/images/home/htaba.png"),
+			htabbimg:require("@/static/images/home/htabb.png"),
+			htabcimg:require("@/static/images/home/htabc.png"),
+			htabdimg:require("@/static/images/home/htabd.png"),
+			htabeimg:require("@/static/images/home/htabe.png"),
+			htabfimg:require("@/static/images/home/htabf.png"),
+			htabgimg:require("@/static/images/home/htabg.png"),
+			htabhimg:require("@/static/images/home/htabh.png"),
+			hbgaimg:require("@/static/images/home/hbga.png"),
+			hbgbimg:require("@/static/images/home/hbgb.png"),
+			hbgcimg:require("@/static/images/home/hbgc.png"),
+			hbgdimg:require("@/static/images/home/hbgd.png"),
+			hbgeimg:require("@/static/images/home/hbge.png"),
+			hbgfimg:require("@/static/images/home/hbgf.png"),
+			hbggimg:require("@/static/images/home/hbgg.png"),
+			hbghimg:require("@/static/images/home/hbgh.png"),
+			newsimg:require("@/static/images/home/news.png"),
+			timeimg:require("@/static/images/home/time.png"),
+			dayimg:require("@/static/images/home/day.png"),
 			listline:require("@/static/images/order/staff/listline.png"),
+			autoplay:false,
+			activeColor:'#A7CDF9',
+			nactiveColor:'#DADADA',
 			backgroundColor: "transparent",
 			city:'',
 			weather:'',
 			temperature:'',
-			list:[],
+			list:[{visitType:1,visitName:'王一',createTime:"2024-01-20 17:12:38",visitDate:"2024-01-21",
+			visitTime:'10:00 - 11:00',visitPhone:'18956988888',visitNum:'1',appointmentSite:"总经理办公室",visitReason:'会议'
+			}],
+			noticelist:[{noticeTitle:'您今日还未订餐喔,请立即前往预订…',createTime:'07-17'},{noticeTitle:'您今日还未订餐喔,请立即前往预订…',createTime:'07-17'}],
 			adrlist:[],
 			pageSize: 10,
 			pageNum: 1,
@@ -108,6 +245,14 @@
 		uni.$off('refreshdatalist')
 	},
 	onLoad: function() {
+		uni.getSystemInfo({
+			success: (e) => {
+				this.stubarHeight=Number(e.statusBarHeight);
+				this.nvaHeight = Number(e.statusBarHeight)+44;
+				this.marTop=692-Number(this.nvaHeight*2)-16;
+			}
+		})
+		return
 		uni.$on('refreshdatalist',(e) => {
 			this.reachflag=false;
 			this.pageNum=1;
@@ -173,13 +318,23 @@
 				} else {
 					this.backgroundColor = '#00A9F0'
 				}
-				if(top>2){
-					this.scroflag=true
-				}else{
-					this.scroflag=false
-				}
 			}).exec();
 		},
+		getNoticeDet(e){
+			// this.$tab.navigateTo("/pages/index/noticedetail?type=xttz&id="+e)
+		},
+		//打卡记录
+		getClockFn(){
+			this.$tab.navigateTo("/work/pages/record/clockin")
+		},
+		// 就餐预定
+		getEatFn(){
+			this.$tab.navigateTo("/work/pages/yyorder/eat")
+		},
+		// 会议预定
+		getMeetFn(){
+			this.$tab.navigateTo("/work/pages/yyorder/meeting")
+		},
 		init(){
 			// 记录来源
 			getDictionaryFn('jluly').then(res=>{
@@ -314,18 +469,88 @@
 		view{font-weight: bold;font-size: 26rpx;color: #FFFFFF;line-height: 36rpx;}
 	}
 	.navright{width: 40rpx;height: 40rpx;}
-.yymain{flex: 1;z-index: 2;position: relative;}
-.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;}
+.yymain{flex: 1;z-index: 2;position: relative;padding: 0 32rpx;}
+// 时间
+.yqtop{margin-bottom: 16rpx;
+	.yqtopl{
+		.tit{font-weight: bold;font-size: 30rpx;color: #FFFFFF;}
+	}
+	.yqtopr{
+		.wimg{width: 34rpx;height: 34rpx;}
+	}
+	.txt{font-weight: 500;font-size: 26rpx;color: #FFFFFF;}
+}
+.yqcard{background: #FFFFFF;margin-bottom: 20rpx;box-shadow: 0px 0px 6rpx 0px #DEDEDE;padding: 0 26rpx;border-radius: 14rpx;
+	.yqctop{padding: 28rpx 0;
+		.yqctopl{flex: 1;overflow: auto;
+			image{width: 50rpx;height: 50rpx;border-radius: 50%;margin-right: 18rpx;}
+			view{font-weight: 500;font-size: 26rpx;color: #161616;}
+		}
+		.yqctopr{position: relative;min-width: 118rpx;height: 48rpx;background: #DFEEFF;border-radius: 24rpx;
+			image{width: 18rpx;height: 22rpx;margin-right: 10rpx;}
+			.tit{font-weight: bold;font-size: 22rpx;color: #0391FD;}
+			.cir{width: 14rpx;height: 14rpx;background: #FF5161;border-radius: 6rpx;right: 0rpx;top: -2rpx;position: absolute;
+			}
+		}
 	}
-	.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;}
+	.yqcbox{border-top: 2rpx solid #E6E6E6;display: flex;flex-wrap: wrap;padding: 16rpx 0 14rpx;
+		.yqcba{display: flex;flex-direction: column;align-items: center;padding: 24rpx 0;width: 25%;
+			.aimg{width: 62rpx;height: 62rpx;display: flex;align-items: center;justify-content: center;margin-bottom: 24rpx;
+				.imga{width: 60rpx;height: 60rpx;}
+				.imgb{width: 54rpx;height: 62rpx;}
+				.imgc{width: 60rpx;height: 58rpx;}
+				.imgd{width: 58rpx;height: 62rpx;}
+				.imge{width: 62rpx;height: 56rpx;}
+				.imgf{width: 56rpx;height: 60rpx;}
+				.imgg{width: 56rpx;height: 62rpx;}
+				.imgh{width: 54rpx;height: 60rpx;}
+			}
+			.atit{font-weight: 500;font-size: 22rpx;color: #161616;}
+		}
+	}
+}
+// 统计
+.yqcont{padding: 16rpx;background: #FFFFFF;box-shadow: 0px 0px 6rpx 0px #DEDEDE;border-radius: 14rpx;display: flex;justify-content: space-between;box-sizing: border-box;
+	&.yqconta{padding-bottom: 0;min-height: 244rpx;}
+	.cbgimg{width: 100%;height: 100%;}
+	.cbox{position: absolute;left: 0;right: 0;top: 0;bottom: 0;box-sizing: border-box;padding: 16rpx 24rpx;
+		.tit{font-weight: bold;font-size: 18rpx;color: #6A7582;
+			text{font-size: 30rpx;color: #32415F;font-weight: bold;margin-right: 10rpx;}
+		}
+	}
+	.dayimg{width: 76rpx;height: 44rpx;flex: 0 0 auto;}
+	.num{font-weight: bold;font-size: 30rpx;color: #0A84FF;font-style: italic;flex: 1;text-align: center;}
+	.cboxb{width: 50%;position: relative;padding-left: 24rpx;box-sizing: border-box;
+		&::after{width: 2rpx;height: 28rpx;background: #AEB9CB;content: '';position: absolute;right: 0;top: 50%;margin-top: -14rpx;}
+		&:nth-of-type(2n){
+			&::after{display: none;}
+		}
+		.tit{
+			text{margin-right: 8rpx;font-size: 20rpx;}
+		}
+	}
+	.yqcl{flex: 1;display: flex;flex-wrap: wrap;
+		.yqcla{width: 200rpx;height: 98rpx;position: relative;margin:0 16rpx 16rpx 0;
+		}	
+	}
+	.yqcr{
+		position: relative;width: 218rpx;height:210rpx;flex: 0 0 auto;
+		.cbox{padding: 0;padding-top: 18rpx;}
+		.cboxa{margin-bottom: 16rpx;padding-left: 24rpx;	}
+	}
+	.yqcb{width: 100%;height: 98rpx;position: relative;
+		.cbox{padding-left: 0;
+			.cboxb{min-width: 216rpx;width: auto;
+				.tit{padding-left: 10rpx;display: flex;align-items: center;
+					.tita{flex:0 0 auto;}
+				 text{margin-left: 26rpx;}
+				}
+			}
+		}
 	}
 }
-.yylists{width: 684rpx;margin: 42rpx auto 0;
+// 列表
+.yylists{width: 100%;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;}

+ 332 - 323
pages/mine/index.vue

@@ -1,357 +1,366 @@
 <template>
-  <view class="mine-container" >
-    <!--顶部个人信息栏-->
-		<view class="home_top">
-		  <uni-nav-bar title="我的" :background-color="backgroundColor" :border="navborder" statusBar='true' fixed="true">
-			  <!-- checkPermi(['system:notice:list']) -->
-			  <!-- <block slot="left" >
-			  		<view class="min_top" @click="getMessage">
-			  			<image :src="noticimg"></image>
-						<view class="circ"></view>
-			  		</view>
-			  </block> -->
-		  </uni-nav-bar> 
-	  </view>
-	  <image :src="abg" class="abg"></image>
-	 
-	<view style="margin-top: -487rpx;position: relative;padding:0 34rpx 20rpx;">
-		<view class="header_top flexc mb6" @click="handleToinfo">
-			<image v-if="avatar" @click.stop="handleToAvatar" :src="avatar" class="flex0 limg" mode="aspectFill"></image>
-			<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=='school'">学校管理员</text>
-				<text v-if="choseroles=='parents'">家长</text> -->
+	<view class="zxbox">
+		<view class="navbox">
+			<uni-nav-bar color="#ffffff"  :background-color="backgroundColor" :border="false"
+				statusBar='true' fixed="true">
+			</uni-nav-bar>
+		</view>
+		<image :src="bgimg" class="bgimg"></image>
+		<view class="mbox">
+			<view class="infobox flexc" @click="handleToInfo">
+				<view class="cbox">
+					<view class="tit">{{name?name:'登录账号'}}</view>
+					<view class="txt">点击登录 享受更多精彩信息</view>
+					<!-- <view class="flexc pr" v-if="deptName">
+						<image :src="headl"></image>
+							<view class="txt">{{deptName}}点击登录 享受更多精彩信息</view>
+						<image :src="headr"></image>
+					</view> -->
 				</view>
-				<!-- <view class="f15 co6" v-if="choseroles=='teacher'">{{schoolName}}/{{discipline}}</view>
-				<view class="f15 co6" v-else-if="choseroles!='parents'" >{{schoolName}}</view> -->
+				<!-- 登录 -->
+			<!-- 	<image v-if="avatar" @click.stop="handleToAvatar" :src="avatar" class="limg" mode="aspectFill"></image>
+				<image v-else @click.stop="handleToAvatar" :src="avatarimg" class="limg" mode="aspectFill"></image> -->
+				<!-- 未登录 -->
+				<image  @click.stop="handleToAvatar" :src="avatarimg" class="limg" mode="aspectFill"></image>
 			</view>
-			<image :src="rimg" class="flex0 rimg"></image>
-		</view>
-		<view class="mnbox">
-			<view class="mn_tit">账号设置</view>
-			<view class="mn_list">
-				<view class="mlist flexc"  @click="handleUpassword">
-					<view class="mlistl"><image :src="miconj" class="imgh"></image></view>
-					<view class="mlistc">修改密码</view>
+			<view class="conts flexc">
+				<view class="contn">
+					<view class="img">
+						<image :src="listimga" class="imga"></image>
+					</view>
+					<view class="ctit">待我审批</view>
+				</view>
+				<view class="contn">
+					<view class="img">
+						<image :src="listimgb" class="imgb"></image>
+					</view>
+					<view class="ctit">预约管理</view>
+				</view>
+				<view class="contn">
+					<view class="img">
+						<image :src="listimgc" class="imgc"></image>
+					</view>
+					<view class="ctit">访客管理</view>	
+				</view>
+			</view>
+			<view class="mbgbox">
+				<view class="flexc mine_list" @click="handleToMysb" v-if="checkPermi(['system:application:add'])&&checkPermi(['system:registered:user'])">
+					<view class="limg">
+						<image :src="listimgd" class="imga"></image>
+					</view>
+					<view class="tit flex1">会议预订</view>
+					<image :src="rimg" class="rimg"></image>
+				</view>
+				<view class="flexc mine_list" @click="handleToMysb" v-if="checkPermi(['system:application:list'])&&checkPermi(['system:registered:user'])">
+					<view class="limg">
+						<image :src="listimge" class="imgb"></image>
+					</view>
+					<view class="tit flex1">订餐预订</view>
+					<image :src="rimg" class="rimg"></image>
+				</view>
+				<view class="flexc mine_list" @click="handleToMysb" v-if="checkPermi(['system:remind:list'])">
+					<view class="limg">
+						<image :src="listimgf" class="imgc"></image>
+					</view>
+					<view class="tit flex1">访客预约</view>
+					<image :src="rimg" class="rimg"></image>
 				</view>
-				<view class="mlist flexc"  @click="handlePrivacy">
-					<view class="mlistl"><image :src="miconf" class="imgd"></image></view>
-					<view class="mlistc">用户协议</view>
+				<view class="flexc mine_list" @click="handleToSetting" v-if="checkPermi(['enterprise:enterprise:list'])">
+					<view class="limg">
+						<image :src="listimgg" class="imga"></image>
+					</view>
+					<view class="tit flex1">设置</view>
+					<image :src="rimg" class="rimg"></image>
 				</view>
-				<view class="mlist flexc"  @click="onlineWgt">
-					<view class="mlistl"><image :src="micong" class="imgg"></image></view>
-					<view class="mlistc">版本更新</view>
+				
+				<view class="flexc mine_list"@click="onlineWgt">
+					<view class="limg">
+						<image :src="listimgh" class="imgd"></image>
+					</view>
+					<view class="tit flex1">版本号</view>
+					 <view  class="txt">{{wgtcode}}</view>
+					 <image :src="rimg" class="rimg"></image>
 				</view>
-				<view class="mlist flexc"  @click="handleLogout">
-					<view class="mlistl"><image :src="miconl" class="imgc"></image></view>
-					<view class="mlistc">退出登录</view>
+				<!-- #ifdef APP-PLUS -->
+				<!-- #endif -->
+				<view class="flexc mine_list" @click="handleLogout">
+					<view class="limg">
+						<image :src="listimgi" class="imga"></image>
+					</view>
+					<view class="tit flex1">退出登录</view>
+					<image :src="rimg" class="rimg"></image>
 				</view>
+				<!-- <view class="flexc mine_list" @click="handleUpassword">
+					<view class="limg">
+						<image :src="listimgh" class="imga"></image>
+					</view>
+					<view class="tit flex1">修改密码</view>
+					<image :src="rimg" class="rimg"></image>
+				</view> -->
 			</view>
 		</view>
+		<view class="ztit">安徽中新云计算有限公司提供支持</view>
+		<footers v-if="isfootflag" :footerindex="footerindex" :isHomeIndex="false"></footers>
+
 	</view>
-	<footers v-if="isfootflag" :footerindex="footerindex"></footers>
- </view>
 </template>
 
 <script>
+	import storage from '@/utils/storage'
 	import footers from '@/components/footer/footer.vue'
-  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'
-  
-  export default {
-	components:{footers},
-    data() {
-      return {
-		  footerindex:'mine',
-		  isfootflag:true,
-		  abg:require('@/static/images/mine/habg.png'),
-		  noticimg:require('@/static/images/mine/mnotic.png'),
-		  rimg:require('@/static/images/mine/rimg.png'),
-		  wrimg:require('@/static/images/mine/wrimg.png'),	 
-		  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:'确认'},
-		  backgroundColor:"transparent",
-		  navborder:false,
-		  timetit:'',
-		  timelist:[],
-		  timetype:'',
-		  discipline:'',
-		  schoolName:'',
-		  schoolId:'',
-		  classId:'',
-		  
-		  teacherClass:[],
-		  roles:'',
-		  baseUrl:'',
-        name: this.$store.state.user.name,
-		avatarimg:require("@/static/images/mine/profile.png"),
-		platform:'Android',  
-        // version: getApp().globalData.config.appInfo.version
-      }
-    },
-    computed: {
-      avatar() {
-        return this.$store.state.user.avatar
-      },
-	  choseroles() {
-	    return this.$store.state.user.choseroles
-	  },
-      windowHeight() {
-        return uni.getSystemInfoSync().windowHeight - 50
-      }
-    },
-	onShow() {
-	},
-	onLoad() {
-		this.baseUrl=baseUrl;
-	},
-	onPageScroll(e) {
-		var scrollTop=Number(e.scrollTop);
-		if(scrollTop>0){
-			this.backgroundColor='#c4defb'
-		}else{
-			this.backgroundColor='transparent'
-		}
-	},
-    methods: {
-		checkPermi, checkRole,
-		onlineWgt() {
-			let that = this;
+	import {findVersion} from "@/api/system/user.js"
+	import {checkPermi,checkRole} from "@/utils/permission"; // 权限判断函数
+	import config from '@/config'
+	const baseUrl = config.baseUrl
+	export default {
+		data() {
+			return {
+				bgimg: require("@/static/images/mine/habg.png"),
+				avatarimg:require("@/static/images/mine/head.png"),
+				listimga: require('@/static/images/mine/minea.png'),
+				listimgb: require('@/static/images/mine/mineb.png'),
+				listimgc: require('@/static/images/mine/minec.png'),
+				listimgd: require('@/static/images/mine/mined.png'),
+				listimge: require('@/static/images/mine/minee.png'),
+				listimgf: require('@/static/images/mine/minef.png'),
+				listimgg: require('@/static/images/mine/mineg.png'),
+				listimgh: require('@/static/images/mine/mineh.png'),
+				listimgi: require('@/static/images/mine/minei.png'),
+
+				head:require('@/static/images/mine/head.png'),
+				// wrimg:require("@/static/images/mine/wrimg.png"),
+				rimg:require("@/static/images/mine/wrimg.png"),
+				border: false,
+				backgroundColor: 'transparent',
+
+				name: this.$store.state.user.name,
+				deptName:this.$store.state.user.deptName,
+				// version: getApp().globalData.config.appInfo.version,
+				footerindex: 'mine',
+				isfootflag: true,
+				noticenum: 0,
+				deptId: this.$store.state.user.deptId,
+				wgtcode: this.$store.state.user.wgtcode,
+				platform: 'Android',
+				nvaHeight:44,
+			}
+		},
+		components: {
+			footers
+		},
+		computed: {
+			avatar() {
+				return this.$store.state.user.avatar
+			},
+			windowHeight() {
+				return uni.getSystemInfoSync().windowHeight - 50
+			}
+		},
+		onPageScroll(e) {
+			// var scrollTop = Number(e.scrollTop);
+			// var listTop=Number(this.listTop)-Number(this.nvaHeight)
+			// if (scrollTop <=this.nvaHeight) {
+			// 	const opacity = scrollTop / 100 // 计算透明度值
+			// 	const color = `rgba(29, 100, 226, ${opacity})`
+			// 	this.backgroundColor = color // 更新盒子背景颜色
+			// } else {
+			// 	// this.backgroundColor = '#00A9F0'
+			// }
+		}, 
+		onLoad() {
+			var that=this;
+			this.nvaHeight=uni.getSystemInfoSync().statusBarHeight+44;
+			// #ifdef APP-PLUS
 			plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) {
-				that.$store.dispatch('SetwgtFn',widgetInfo.version).then(()=>{
+				that.$store.dispatch('SetwgtFn', widgetInfo.version).then(() => {
+					that.wgtcode=widgetInfo.version
 				})
-				that.comparisonVersionNo(widgetInfo.versionCode);
 			});
-			// that.comparisonVersionNo()
+			// #endif
 		},
-		comparisonVersionNo(versionCode) {
-			
-			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('该版本已是最新版')
+		mounted() {
+			// this.getHeightFn()
+		}, 
+		
+		methods: {
+			checkPermi,checkRole,
+			getHeightFn(){
+				let query = uni.createSelectorQuery().in(this);
+				//需要给黄色区域设置一个id标识,在这里是demo
+				query.select('.zxbox').boundingClientRect(data => {
+					var top=data.top<0 ? -data.top : data.top;
+					this.listTop = data.height//赋值,待会要用
+					if (top <=this.nvaHeight) {
+						const opacity = top / 100 // 计算透明度值
+						const color = `rgba(4, 145, 253, ${opacity})`
+						this.backgroundColor = color // 更新盒子背景颜色
+					} else {
+						this.backgroundColor = '#00A9F0'
 					}
+				}).exec();
+			},
+
+			//我的申报
+			handleToMysb(){
+				// this.$tab.navigateTo("/work/pages/business/list?from=my&type=0")
+			},
+			// 设置
+			handleToSetting() {
+			  this.$tab.navigateTo('/pages/mine/setting/index')
+			},
+			// 修改密码
+			handleUpassword(){
+				this.$tab.navigateTo(`/pages/mine/pwd/index`)  
+			},
+			// 账号信息
+			handleToInfo() {
+				this.$tab.navigateTo('/pages/mine/info/index')
+			},
+			handleToLogin() {
+				this.$tab.reLaunch('/pages/login')
+			},
+			handleToAvatar() {
+				this.$tab.navigateTo('/pages/mine/avatar/index')
+			},
+			handleLogout() {
+				this.$modal.confirm('确定注销并退出系统吗?').then(() => {
+					this.$store.dispatch('LogOut').then(() => {
+						this.$tab.reLaunch('/pages/index')
+					})
+				})
+			},
+			onlineWgt() {
+				let that = this;
+				plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) {
+					that.$store.dispatch('SetwgtFn', widgetInfo.version).then(() => {
+						that.wgtcode=widgetInfo.version
+					})
+					that.comparisonVersionNo(widgetInfo.versionCode);
+				});
+				// that.comparisonVersionNo()
+			},
+			comparisonVersionNo(versionCode) {
+				let that = this;
+				// console.log("aaaaaaa===versionCode", versionCode);
+				const parmas = {
+					model: that.platform
 				}
-			}).catch(error=>{
-				uni.hideLoading()
-				console.log(error)
-			})
-		},
-		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();
+				findVersion(parmas).then(res => {
+					if (res.code == "200") {
+						let versionNos = res.data.code;
+						console.log(versionNos, 'versionNos')
+						// console.log(res.data.path);
+						let filePath = res.data.path;
+						if (Number(versionNos) > Number(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('用户点击取消');
+									}
+								}
 							});
-						}, function(e) {
-							that.showwri = false;
-							plus.nativeUI.alert("更新失败,请稍后再试");
-						});
+						} else {
+							this.$toast('该版本已是最新版')
+						}
 					}
-				}
-			});
-			downloadTask.onProgressUpdate((res) => { //下载文件的进度
-				that.totalBytesWritten = res.totalBytesWritten; //当前下载大小
-				that.progress = res.progress; //当前下载比例
-				that.totalBytesExpectedToWrite = res.totalBytesExpectedToWrite; //
-			});
-		},
-		getConfirm(){
-			this.$store.dispatch('LogOut').then(() => {
-			  this.$tab.reLaunch('/pages/index/index')
-			})
-		},
-		handlePrivacy(){
-			this.$tab.navigateTo(`/pages/agreement`)  
-		},
-		handleUpassword(){
-			this.$tab.navigateTo(`/pages/mine/pwd/index`)  
-		},
-	
-		
-		handleToAvatar() {
-		  this.$tab.navigateTo('/pages/mine/avatar/index')
-		},
-      handleToinfo() {
-        this.$tab.navigateTo('/pages/mine/info/index')
-      },
-      
-      handleLogout() {
-        this.$modal.confirm('确定注销并退出系统吗?').then(() => {
-          this.$store.dispatch('LogOut').then(() => {
-            this.$tab.reLaunch('/pages/index/index')
-          })
-        })
-      },
-    }
-  }
+				}).catch(error => {
+					uni.hideLoading()
+					console.log(error)
+				})
+			},
+			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; //
+				});
+			},
+		}
+	}
 </script>
 
 <style lang="scss">
-  page {
-    background-color: #f5f6f7;
-  }
-  .home_top /deep/ .uni-navbar__placeholder{height: 0 !important;}
-.abg{width: 100%;height: 622rpx;}
-.min_top{position: relative;width: 40rpx;height: 40rpx;display: flex;align-items: center;justify-content: center;
-	image{width: 32rpx;height: 32rpx;}
-	.circ{width: 12rpx;height: 12rpx;background: #EB5663;border-radius: 50%;position: absolute;right: 4rpx;top: 4rpx;}
+page{background-color: #ffffff;}
+.navbox{position: fixed;left: 0;right: 0;top: 0;z-index: 4;
+	.topl{width: 274rpx;height: 50rpx;margin-left: 14rpx;}
+	.topr{width: 36rpx;height: 36rpx;position: relative;margin-right: 10rpx;
+		image{width: 100%;height: 100%;}
+		// .cir{background: #FF4747;font-size: 14rpx;color: #FFFFFF;border-radius: 50%;border: 2rpx solid #FFFFFF;min-width: 20rpx;height: 20rpx;
+		// 	position: absolute;right: -5rpx;top: -5rpx;text-align: center;line-height: 16rpx;
+		// }
+		.cir{width: 14rpx;height: 14rpx;background: #DF0024;border-radius: 50%;position: absolute;right: -7rpx;top: -7rpx;}
+	}	
 }
-.header_top{padding: 34rpx 26rpx;
-	.limg{width: 120rpx;height: 120rpx;border-radius: 50%;margin-right: 26rpx;}
-	.rimg{width: 14rpx;height: 24rpx;margin-left: 26rpx;}
-	.hcen{
-		text{height: 34rpx;background: #89A8F6;border-radius: 16rpx;line-height: 34rpx;font-weight: normal;font-size: 24rpx;color: #ffffff;display: inline-block;min-width: 78rpx;padding: 0 10rpx;box-sizing: border-box;margin-left: 24rpx;}
-	}
-}
-.bgf{
-	.mlist{padding:30rpx 34rpx;
-		.mlistl{width: 40rpx;height: 40rpx;display: flex;align-items: center;justify-content: center;margin-right: 16rpx;
-			.imga{width: 38rpx;height: 38rpx;}
-			.imgb{width: 32rpx;height: 32rpx;}
-			.imgc{width: 30rpx;height: 30rpx;}
-			.imgd{width: 32rpx;height: 34rpx;}
-			.imge{width: 32rpx;height: 26rpx;}
-			.imgf{width: 32rpx;height: 30rpx;}
-			.imgg{width: 34rpx;height: 34rpx;}
-			.imgi{width: 34rpx;height: 34rpx;}
-			.imgk{width: 32rpx;height: 30rpx;}
+.zxbox{ 
+	.bgimg{width: 100%;height: 344rpx;}
+	.mbox{margin-top: -190rpx;padding: 0 34rpx;z-index: 1;position: relative;
+		.infobox{margin-bottom: 46rpx;padding: 0 20rpx;
+			.limg{width: 140rpx;height: 140rpx;flex: 0 0 auto;margin-right: 26rpx;border-radius: 50%;border: 4rpx solid  #ffffff;box-sizing: border-box;}
+			.cbox{flex: 1;z-index: 1;
+				image{width: 32rpx;height: 38rpx;}
+				.tit{font-weight: bold;font-size: 40rpx;color: #161616;margin-bottom: 20rpx;}
+				.txt{font-weight: bold;font-size: 26rpx;color: #8A9AB5;}
+			}
 		}
-		.mlistc{flex: 1;font-size: 32rpx;font-weight: 500;
-	color: #161616;}
-		.mlistr{width: 14rpx;height: 24rpx;marign-left:16rpx}
-	}
-}
-
-.mnbox{
-	background: #FFFFFF;border-radius: 18rpx;margin-bottom: 24rpx;padding: 40rpx 0 16rpx;
-	.mn_tit{font-size: 32rpx;font-weight: bold;
-color: #161616;padding-left: 68rpx;position: relative;margin-bottom: 12rpx;
-		&::before{width: 6rpx;background: $com-cd3;border-radius: 4rpx;position: absolute;left: 36rpx;top: 4rpx;content: '';bottom: 4rpx;}
-	}
-	.mn_list{display: flex;flex-wrap: wrap;
-		.mlist{width: 25%;box-sizing: border-box;display: flex;flex-direction: column;align-items: center;padding: 26rpx 0;
-			.mlistl{width: 50rpx;height: 50rpx;display: flex;align-items: center;justify-content: center;margin-bottom: 16rpx;
-				.imga{width: 42rpx;height: 44rpx;}
-				.imgb{width: 44rpx;height: 44rpx;}
-				.imgc{width: 44rpx;height: 42rpx;}
-				.imgd{width: 42rpx;height: 44rpx;}
-				.imge{width: 44rpx;height: 42rpx;}
-				.imgf{width: 32rpx;height: 30rpx;}
-				.imgg{width: 44rpx;height: 44rpx;}
-				.imgh{width: 40rpx;height: 44rpx;}
-				.imgk{width: 40rpx;height: 42rpx;}
+		.conts{border-bottom: 2rpx solid #E6E6E6;;box-sizing: border-box;
+			.contn{padding: 26rpx 0 44rpx;
+				display: flex;align-items: center;flex: 0 0 auto;width: 33.3%;flex-direction: column;
+				.img{width: 52rpx;height: 52rpx;display: flex;align-items: center;justify-content: center;margin-bottom: 16rpx;flex: 0 0 auto;
+					.imga{width: 48rpx;height: 52rpx;}
+					.imgb{width: 52rpx;height: 46rpx;}
+					.imgc{width: 50rpx;height: 52rpx;}
+				}
+				.ctit{font-weight: bold;font-size: 26rpx;color: #161616;}
+			}
+		}
+		.mbgbox{width: 100%;margin-bottom: 24rpx;padding-top: 32rpx;
+			.mine_list{
+				padding: 28rpx 20rpx;
+				.limg{flex: 0 0 auto;width: 32rpx;height: 30rpx;margin-right: 22rpx;display: flex;align-items: center;justify-content: center;
+					.imga{width: 30rpx;height: 30rpx;}
+					.imgb{width: 22rpx;height: 30rpx;}
+					.imgc{width: 28rpx;height: 30rpx;}
+					.imgd{width: 32rpx;height: 26rpx;}
+				}
+				.tit{font-weight: bold;font-size: 26rpx;color: #161616;}
+				.txt{font-weight: 500;font-size: 26rpx;color: #666666;margin-left: 20rpx;flex: 0 0 auto;}
+				.rimg{width: 16rpx;height: 26rpx;margin-left: 20rpx;flex: 0 0 auto;}
 			}
-			.mlistc{flex: 1;font-size: 30rpx;font-weight: 500;color: #666666;}
 		}
 	}
-	
 }
 
+.ztit{font-size: 24rpx;color:#c6c6c9;text-align: center;flex:0 0 auto;margin-bottom: 28rpx;margin-top: 40rpx;}
 
-  .mine-container {
-    width: 100%;
-    height: 100%;
-
-
-    .header-section {
-      padding: 15px 15px 45px 15px;
-      color: white;
-
-      .login-tip {
-        font-size: 18px;
-        margin-left: 10px;
-      }
-
-      .cu-avatar {
-        border: 2px solid #eaeaea;
-
-        .icon {
-          font-size: 40px;
-        }
-      }
-
-      .user-info {
-        margin-left: 15px;
-
-        .u_title {
-          font-size: 18px;
-          line-height: 30px;
-        }
-      }
-    }
-
-    .content-section {
-      position: relative;
-      top: -50px;
-
-      .mine-actions {
-        margin: 15px 15px;
-        padding: 20px 0px;
-        border-radius: 8px;
-        background-color: white;
-
-        .action-item {
-          .icon {
-            font-size: 28px;
-          }
-
-          .text {
-            display: block;
-            font-size: 13px;
-            margin: 8px 0px;
-          }
-        }
-      }
-    }
-  }
 </style>

+ 0 - 5
pages/video/index.vue

@@ -328,11 +328,6 @@
 				} else {
 					this.backgroundColor = '#00A9F0'
 				}
-				if(top>2){
-					this.scroflag=true
-				}else{
-					this.scroflag=false
-				}
 			}).exec();
 			query.select(".table").boundingClientRect(data => {
 				var top=data.top<0 ? -data.top : data.top;

BIN
static/images/home/chose.png


BIN
static/images/home/close.png


BIN
static/images/home/day.png


BIN
static/images/home/hbga.png


BIN
static/images/home/hbgb.png


BIN
static/images/home/hbgc.png


BIN
static/images/home/hbgd.png


BIN
static/images/home/hbge.png


BIN
static/images/home/hbgf.png


BIN
static/images/home/hbgg.png


BIN
static/images/home/hbgh.png


BIN
static/images/home/head.png


BIN
static/images/home/htaba.png


BIN
static/images/home/htabb.png


BIN
static/images/home/htabc.png


BIN
static/images/home/htabd.png


BIN
static/images/home/htabe.png


BIN
static/images/home/htabf.png


BIN
static/images/home/htabg.png


BIN
static/images/home/htabh.png


BIN
static/images/home/news.png


BIN
static/images/home/time.png


BIN
static/images/home/voice.png


BIN
static/images/mine/habg.png


BIN
static/images/mine/head.png


BIN
static/images/mine/miconc.png


BIN
static/images/mine/miconf.png


BIN
static/images/mine/micong.png


BIN
static/images/mine/miconj.png


BIN
static/images/mine/miconl.png


BIN
static/images/mine/minea.png


BIN
static/images/mine/mineb.png


BIN
static/images/mine/minec.png


BIN
static/images/mine/mined.png


BIN
static/images/mine/minee.png


BIN
static/images/mine/minef.png


BIN
static/images/mine/mineg.png


BIN
static/images/mine/mineh.png


BIN
static/images/mine/minei.png


BIN
static/images/mine/mnotic.png


BIN
static/images/order/staff/ybga.png


BIN
static/images/tabbar/home.png


BIN
static/images/tabbar/home_.png


BIN
static/images/tabbar/icon_yq_sx_xl.png


BIN
static/images/tabbar/mine.png


BIN
static/images/tabbar/mine_.png


BIN
static/images/tabbar/road.png


BIN
static/images/tabbar/road_.png


BIN
static/images/tabbar/trends.png


BIN
static/images/tabbar/trends_.png


BIN
static/images/tabbar/video.png


BIN
static/images/tabbar/video_.png


BIN
static/images/tabbar/work.png


BIN
static/images/tabbar/work_.png


+ 8 - 0
static/style.css

@@ -118,7 +118,9 @@ color: #FFFFFF;display: flex;align-items: center;justify-content: center;}
 
 
 .pl8{padding-left: 16rpx;}
+.pl10{padding-left: 20rpx !important;}
 .pl16{padding-left: 32rpx;}
+.pr4{padding-right: 8rpx;}
 .pr8{padding-right: 16rpx;}
 .pt5{padding-top: 10rpx;}
 .pt12{padding-top: 24rpx;}
@@ -128,6 +130,7 @@ color: #FFFFFF;display: flex;align-items: center;justify-content: center;}
 .pb18{padding-bottom: 36rpx;}
 .plr12{padding: 0 24rpx;}
 .plr13{padding: 0 26rpx;}
+.plr16{padding: 0 32rpx;}
 .plr18{padding: 0 36rpx;}
 .plr28{padding: 0 56rpx;}
 .ptb4{padding: 8rpx 0;}
@@ -142,12 +145,17 @@ color: #FFFFFF;display: flex;align-items: center;justify-content: center;}
 .f12{font-size: 24rpx;}
 .cof1{color: #F1F1F1;}
 .w50{width: 50% !important;}
+.mw50{min-width: 50%;}
 .lh18{line-height: 36rpx;}
 .pt8{padding-top: 16rpx;}
 .plr15{padding:0 30rpx;}
+.plr2{padding:0 4rpx;}
 .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 */

+ 220 - 0
work/pages/record/clockin.vue

@@ -0,0 +1,220 @@
+<template>
+	<view>
+		<view class="navbox">
+			<uni-nav-bar color="#ffffff" left-icon="left" title="打卡记录" :background-color="backgroundColor"
+				:border="false" statusBar='true' fixed="true" @clickLeft='getBack'>
+			</uni-nav-bar>
+			<view class="plr16" :style="'background:'+backgroundColor">
+				<view class="search flexc mb4">
+					<image :src="serimg"></image>
+					<input placeholder="请输入人员姓名进行搜索" confirm-type="search" placeholder-style="color:#B9DCF7" v-model="title" @confirm="getConfirm"/>
+				</view>
+				<!-- 搜索 -->
+				<view class="lbtab flexc">
+					<image :src="licoimg" class="limg"  @click='getResetFn'></image>
+					<view class="lbtabs flexc">
+						<picker class="pickbox" range-key='dictLabel' :value="adridx"	:range="adrlist" @change="bindTimeChangea">
+							<view class="pickboxa">
+								<view class="tit overtwo" >{{day||'全部部门'}}</view>
+								<image :src="wupimg" class="hupimg"></image>
+							</view>
+						</picker>
+						<picker mode="date" class="pickbox"  :value="adridx"
+							 @change="bindTimeChangea">
+							<view class="pickboxa">
+								<view class="tit" >{{day||'2024年07月'}}</view>
+								<image :src="wupimg" class="hupimg"></image>
+							</view>
+						</picker>
+					</view>
+					<!-- <view class="czbtns">重置</view> -->
+				</view>
+			</view>
+			
+		</view>
+		<image :src="navbg" class="navbg"></image>
+		<view class="zxmain" :style="'margin-top:-'+marTop+'rpx;'">
+			<!-- 列表 -->
+			<y-list type='clock' :datalist="list" :wtdt="wtdt" @getDetail='getDetail' :adrlist="adrlist" @getDelFn="getDelFn" @gettypeFn="gettypeFn"></y-list>
+		</view>
+	</view>
+</template>
+
+<script>
+	import {checkPermi,checkRole} from "@/utils/permission"; // 权限判断函数
+	import yList from "@/components/order/list.vue"
+	import {getDictionaryFn} from "@/api/mine/register.js"
+	export default {
+		components: {yList},
+		data() {
+			return {
+				wupimg:require("@/work/static/record/wup.png"),
+				serimg:require("@/work/static/record/search.png"),
+				licoimg:require("@/work/static/record/lico.png"),
+				navbg:require("@/static/images/navbg.png"),
+				backgroundColor: "transparent",
+				datainfo:{},
+				nvaHeight: 44,
+				marTop: 0, //距离顶部的距离
+				stubarHeight: 0, //
+				title:'',
+				list:[{visitType:1,visitName:'王一',createTime:"2024-01-20 17:12:38",visitDate:"2024-01-21",
+				visitTime:'10:00 - 11:00',visitPhone:'18956988888',visitNum:'1',appointmentSite:"总经理办公室",visitReason:'会议'
+				}],
+				pageSize: 10,
+				pageNum: 1,
+				reachflag: false,
+				wtdt:'',
+			}
+		},
+		onPageScroll(e) {
+			var scrollTop = Number(e.scrollTop);
+			if (scrollTop > 0) {
+				this.backgroundColor = '#0491FD'
+			} else {
+				this.backgroundColor = 'transparent'
+			}
+		},
+		onLoad: function() {
+			this.init()
+			// this.getDataFn()
+			uni.getSystemInfo({
+				success: (e) => {
+					this.stubarHeight = Number(e.statusBarHeight);
+					this.nvaHeight = Number(e.statusBarHeight) + 44;
+					this.tabscheight = Number(this.nvaHeight) * 2 + 100;
+				}
+			})
+		},
+		onUnload() {
+			uni.$off('refreshdatalist')
+		},
+
+		onShow() {},
+		mounted() {
+			this.getHeightFn()
+		},
+		// 上拉触底加载更多触发事件
+		onReachBottom() {
+			if (this.reachflag) {
+				this.pageNum++
+				this.getDataFn()
+			}
+		},
+		methods: {
+			checkPermi,
+			checkRole,
+			getConfirm(){
+				this.pageNum=1;
+				this.list=[];
+				this.reachflag=true;
+				this.getDataFn()
+			},
+			getBack() {
+				uni.navigateBack({
+					delta: 1
+				})
+			},
+			getDetail(data){
+				// this.$tab.navigateTo('/pages/order/staffcode?type=look&id='+data)
+				this.$tab.navigateTo('/work/pages/record/detail')
+			},
+			bindTimeChangea(e){
+				var val=e.detail.value;
+				this.day=val
+			},
+			getHeightFn() {
+				let query = uni.createSelectorQuery().in(this);
+				//需要给黄色区域设置一个id标识,在这里是demo
+				query.select('.navbox').boundingClientRect(data => {
+					var top = data.top < 0 ? -data.top : data.top;
+					var stubarHeight = Number(this.stubarHeight);
+					this.marTop = stubarHeight > 0 ? 692 - Number(data.height) * 2 : 692 - Number(data.height) *
+						2 + 40 //赋值,待会要用
+					if (top <= this.nvaHeight) {
+						const opacity = top / 100 // 计算透明度值
+						const color = `rgba(4, 145, 253, ${opacity})`
+						this.backgroundColor = color // 更新盒子背景颜色
+					} else {
+						this.backgroundColor = '#00A9F0'
+					}
+				}).exec();
+			},
+			init() {
+				// 门卫
+				// getDictionaryFn('is_read').then(res=>{
+				// 	if(res.code==200){
+				// 		this.ydztlist = res.data.map(v => {
+				// 			return {
+				// 				label: v.dictLabel,
+				// 				value: v.dictValue
+				// 			}
+				// 		})
+				// 	}
+				// })
+			},
+			getDataFn() {
+				var params = {
+					pageSize: this.pageSize,
+					pageNo: this.pageNum,
+					// visitType:3
+				}
+				getCameraList(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>
+/* 	page {
+		background: #ffffff;
+	} */
+</style>
+<style lang="scss" scoped>
+.navbox{position: fixed;left: 0;right: 0;top: 0;z-index: 4;	}
+.navbg{width: 100%;height: 692rpx;}	
+.zxmain{position: relative;padding: 8rpx 32rpx 40rpx;box-sizing: border-box;}
+.search{padding: 0 52rpx;box-sizing: border-box;
+	width: 100%;height: 76rpx;background: rgba(40, 139, 214, 0.5);border-radius: 38rpx;
+	image{width: 24rpx;height: 24rpx;margin-right: 22rpx;flex: 0 0 auto;}
+	input{flex: 1;font-weight: 500;font-size: 22rpx;color: #131313;}
+}
+.lbtab{padding: 0 56rpx;
+	.limg{width: 24rpx;height: 24rpx;margin-right: 16rpx;flex:0 0 auto;}
+	.lbtabs{overflow: auto;flex-wrap: nowrap;flex:1;
+		.pickbox{flex: 1;text-align: right;font-weight: 500;font-size: 28rpx;color: #161616;min-height:88rpx;margin: 0 10rpx;
+			.pickboxa{justify-content: center;	
+				min-height: 88rpx;display: flex;align-items: center;	
+			}
+			.tit{font-weight: 500;font-size: 26rpx;color: #FFFFFF;}
+			.hupimg{width: 16rpx;height: 10rpx;margin-left: 26rpx;flex: 0 0 auto;}
+		}
+		
+	}
+}
+</style>

+ 291 - 0
work/pages/record/detail.vue

@@ -0,0 +1,291 @@
+<template>
+	<view>
+		<view class="navbox">
+			<uni-nav-bar color="#ffffff" left-icon="left" title="打卡记录" :background-color="backgroundColor"
+				:border="false" statusBar='true' fixed="true" @clickLeft='getBack'>
+			</uni-nav-bar>
+		</view>
+		<image :src="navbg" class="navbg"></image>
+		<view class="zxmain" :style="'margin-top:-'+marTop+'rpx;'">
+			<view class="ytbox">
+				<view class="ytop flexc">
+					<view class="tit">{{visitName.charAt(0)}}</view>
+					<view class="cent">
+						<view class="ctit">{{visitName}}</view>
+						<view class="ctime">最新打卡:2024-07-18</view>
+					</view>
+				</view>
+				<!-- 日历 -->
+				<view class="mb24">
+					<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>
+				<view class="tips">出勤统计:打卡2次,上下班时间:08:30-17:30</view>
+				<!-- 步骤条 -->
+				<view class="mb16 plr18">
+					<view class="steps">
+						<view class="cir"></view>
+						<view class="stepsa">
+							<view class="steptit">上班打卡</view>
+							<view class="steptxt">
+								<image :src="cirimg"></image>
+								<view>08:27已打卡</view>
+							</view>
+						</view>
+					</view>
+					<view class="steps">
+						<view class="cir"></view>
+						<view class="stepsa">
+							<view class="steptit">下班打卡</view>
+							<view class="steptxt">
+								<image :src="cirimg"></image>
+								<view>17:41已打卡</view>
+							</view>
+						</view>
+					</view>
+				</view>
+				
+				<view class="tips">统计截至 2024-07-18 16:13</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import {checkPermi,checkRole} from "@/utils/permission"; // 权限判断函数
+	import {getDictionaryFn} from "@/api/mine/register.js"
+	import luncCalendar from "@/components/lunc-calendar/lunc-calendar.vue"
+	export default {
+		components: {luncCalendar},
+		data() {
+			return {
+				cirimg:require("@/static/images/home/chose.png"),
+				navbg:require("@/static/images/navbg.png"),
+				backgroundColor: "transparent",
+				datainfo:{},
+				nvaHeight: 44,
+				marTop: 0, //距离顶部的距离
+				stubarHeight: 0, //
+				visitName:'林涵宇',
+				
+				signList: [],
+				configWeek:[],
+				configHoliday:'Y',
+				firstDayOfWeek:'sunday',
+				// dayflag:false,
+				// month:'',
+				// year:'',
+				// kaTime:'',
+				// changetime:'',//改变的日期
+				// timeday:'',//选择的日期
+				// visitDate:'',
+			}
+		},
+		onPageScroll(e) {
+			var scrollTop = Number(e.scrollTop);
+			if (scrollTop > 0) {
+				this.backgroundColor = '#0491FD'
+			} else {
+				this.backgroundColor = 'transparent'
+			}
+		},
+		onLoad: function() {
+			this.init()
+			// this.getDataFn()
+			uni.getSystemInfo({
+				success: (e) => {
+					this.stubarHeight = Number(e.statusBarHeight);
+					this.nvaHeight = Number(e.statusBarHeight) + 44;
+					this.tabscheight = Number(this.nvaHeight) * 2 + 100;
+				}
+			})
+			// 3c8cadac11af4f1298a2882addc8788d
+		},
+		onShow() {},
+		mounted() {
+			this.getHeightFn()
+		},
+		methods: {
+			checkPermi,
+			checkRole,
+			getBack() {
+				uni.navigateBack({
+					delta: 1
+				})
+			},
+			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.getCalendarList()
+				// 	this.changetime='';
+				// }else{
+				// 	var time=y + '-' + m + '-' + '01'
+				// 	this.changetime=time
+				// 	this.getCalendarList(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=[],pmList=[];
+				// 			if(signes.amList){
+				// 				amList=JSON.parse(JSON.stringify(signes.amList))||[];
+				// 			}
+				// 			if(signes.pmList){
+				// 				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)
+			},
+			getHeightFn() {
+				let query = uni.createSelectorQuery().in(this);
+				//需要给黄色区域设置一个id标识,在这里是demo
+				query.select('.navbox').boundingClientRect(data => {
+					var top = data.top < 0 ? -data.top : data.top;
+					var stubarHeight = Number(this.stubarHeight);
+					this.marTop = stubarHeight > 0 ? 692 - Number(data.height) * 2 : 692 - Number(data.height) *
+						2 + 40 //赋值,待会要用
+					if (top <= this.nvaHeight) {
+						const opacity = top / 100 // 计算透明度值
+						const color = `rgba(4, 145, 253, ${opacity})`
+						this.backgroundColor = color // 更新盒子背景颜色
+					} else {
+						this.backgroundColor = '#00A9F0'
+					}
+				}).exec();
+			},
+			init() {
+				// 门卫
+				// getDictionaryFn('is_read').then(res=>{
+				// 	if(res.code==200){
+				// 		this.ydztlist = res.data.map(v => {
+				// 			return {
+				// 				label: v.dictLabel,
+				// 				value: v.dictValue
+				// 			}
+				// 		})
+				// 	}
+				// })
+			},
+			getDataFn() {
+				var params = {
+					pageSize: this.pageSize,
+					pageNo: this.pageNum,
+					// visitType:3
+				}
+				getCameraList(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>
+/* 	page {
+		background: #ffffff;
+	} */
+</style>
+<style lang="scss" scoped>
+.navbox{position: fixed;left: 0;right: 0;top: 0;z-index: 4;	}
+.navbg{width: 100%;height: 692rpx;}	
+.zxmain{position: relative;padding: 20rpx 32rpx 40rpx;box-sizing: border-box;display: flex;}
+.ytbox{width: 684rpx;margin: 0 auto;padding-top: 24rpx;position: relative;flex: 1;overflow: auto;background-color: #ffffff;padding-bottom: 12rpx;border-radius: 14rpx;
+	.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;}
+		}
+	}
+	.tips{font-weight: 500;font-size: 26rpx;color: #888888;padding-left: 34rpx;margin-bottom: 24rpx;}
+	// 步骤条
+	.steps{position: relative;display: flex;padding-bottom:40rpx;
+		&::after{
+			content: '';position: absolute;left:6rpx;top: 34rpx;bottom: 4rpx;background-color: #DADADA;width: 2rpx;
+		}
+		.cir{width: 14rpx;height: 14rpx;background: #AFAFAF;border-radius: 50%;flex: 0 0 auto;margin-right: 38rpx;margin-top: 13rpx;}
+		.stepsa{flex: 1;
+			.steptit{font-weight: bold;font-size: 28rpx;color: #161616;margin-bottom: 20rpx;}
+			.steptxt{display: flex;
+				image{width: 20rpx;height: 20rpx;margin-right: 14rpx;flex: 0 0 auto;margin-top: 7rpx;}
+				view{font-weight: bold;font-size: 26rpx;color: #888888;}
+			}
+		}
+	}
+}
+</style>

+ 241 - 0
work/pages/yyorder/eat.vue

@@ -0,0 +1,241 @@
+<template>
+	<view>
+		<view class="navbox">
+			<uni-nav-bar color="#ffffff" left-icon="left" title="就餐预订" :background-color="backgroundColor"
+				:border="false" statusBar='true' fixed="true" @clickLeft='getBack'>
+			</uni-nav-bar>
+		</view>
+		<image :src="navbg" class="navbg"></image>
+		<view class="zxmain" :style="'margin-top:-'+marTop+'rpx;'">
+			<view class="ytbox">
+				<uni-forms ref="form" class="ytforms"  :modelValue="datainfo">
+					<view class="ytsbox">
+						<view class="yttit">预订信息</view>
+						<view class="pt5">
+							<uni-forms-item label="就餐日期" name="appointmentSite">
+								<picker mode="date" class="pickbox" range-key='dictLabel'  :value="adridx"
+									 @change="bindTimeChangea">
+									<view class="flexc flex1">
+										<view class="flex1 " :class="day?'co16 fw5 f14':'coa f14'">
+											{{day||'请选择'}}</view>
+											<image :src="hupimg" class="hupimg"></image>
+									</view>
+								</picker>
+								
+							</uni-forms-item>
+							<uni-forms-item label="就餐类型"  name="appointmentSite">
+								<picker  class="pickbox" range-key='dictLabel' :value="adridx"
+									:range="adrlist" @change="bindTimeChangea">
+									<view class="flexc flex1">
+										<view class="flex1 " :class="jclx?'co16 fw5 f14':'coa f14'">
+											{{jclx||'请选择'}}</view>
+											<image :src="hupimg" class="hupimg"></image>
+									</view>
+								</picker>
+							</uni-forms-item>
+							<uni-forms-item label="姓名" class="disable"  name="visitName">
+								<view class="intit">刘安宁</view>
+								<!-- <uni-easyinput :inputBorder="false" disabled v-model="datainfo.visitName" placeholder="请输入姓名">
+								</uni-easyinput> -->
+							</uni-forms-item>
+							<uni-forms-item label="部 门" class="disable"  name="visitPhone">
+								<view class="intit">人力行政部</view>
+								<!-- <uni-easyinput :inputBorder="false" disabled type="number" v-model="datainfo.visitPhone"
+									placeholder="请输入手机号码">
+								</uni-easyinput> -->
+							</uni-forms-item>
+						</view>
+						<view class="ybtn flexcc" @click="getSubmit">确认提交</view>
+						<view class="tips">* 为响应国家号召,请您视真实情况填写,珍惜粮食,适量定 餐,避免剩餐,减少浪费。</view>
+					</view>
+					
+				</uni-forms>
+
+				
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import {checkPermi,checkRole} from "@/utils/permission"; // 权限判断函数
+	import {getCameraList,getCameraVideo} from "@/api/mine/order.js"
+	import {getDictionaryFn} from "@/api/mine/register.js"
+	export default {
+		components: {},
+		data() {
+			return {
+				hupimg:require("@/static/images/order/hup.png"),
+				navbg:require("@/static/images/navbg.png"),
+				backgroundColor: "transparent",
+				datainfo:{},
+				nvaHeight: 44,
+				marTop: 0, //距离顶部的距离
+				stubarHeight: 0, //
+				day:'',
+				jclx:'',
+				adridx:'',
+				adrlist:[],
+			}
+		},
+		onPageScroll(e) {
+			var scrollTop = Number(e.scrollTop);
+			if (scrollTop > 0) {
+				this.backgroundColor = '#0491FD'
+			} else {
+				this.backgroundColor = 'transparent'
+			}
+		},
+		onLoad: function() {
+			this.init()
+			// this.getDataFn()
+			uni.getSystemInfo({
+				success: (e) => {
+					this.stubarHeight = Number(e.statusBarHeight);
+					this.nvaHeight = Number(e.statusBarHeight) + 44;
+					this.tabscheight = Number(this.nvaHeight) * 2 + 100;
+				}
+			})
+			// 3c8cadac11af4f1298a2882addc8788d
+		},
+		onUnload() {
+			uni.$off('refreshdatalist')
+		},
+
+		onShow() {},
+		mounted() {
+			this.getHeightFn()
+		},
+		// 上拉触底加载更多触发事件
+		onReachBottom() {
+			if (this.reachflag) {
+				this.pageNum++
+				this.getDataFn()
+			}
+		},
+		methods: {
+			checkPermi,
+			checkRole,
+			getBack() {
+				uni.navigateBack({
+					delta: 1
+				})
+			},
+			bindTimeChangea(e){
+				var val=e.detail.value;
+				this.day=val
+			},
+			getHeightFn() {
+				let query = uni.createSelectorQuery().in(this);
+				//需要给黄色区域设置一个id标识,在这里是demo
+				query.select('.navbox').boundingClientRect(data => {
+					var top = data.top < 0 ? -data.top : data.top;
+					var stubarHeight = Number(this.stubarHeight);
+					this.marTop = stubarHeight > 0 ? 692 - Number(data.height) * 2 : 692 - Number(data.height) *
+						2 + 40 //赋值,待会要用
+					if (top <= this.nvaHeight) {
+						const opacity = top / 100 // 计算透明度值
+						const color = `rgba(4, 145, 253, ${opacity})`
+						this.backgroundColor = color // 更新盒子背景颜色
+					} else {
+						this.backgroundColor = '#00A9F0'
+					}
+				}).exec();
+			},
+			init() {
+				// 门卫
+				// getDictionaryFn('is_read').then(res=>{
+				// 	if(res.code==200){
+				// 		this.ydztlist = res.data.map(v => {
+				// 			return {
+				// 				label: v.dictLabel,
+				// 				value: v.dictValue
+				// 			}
+				// 		})
+				// 	}
+				// })
+			},
+			getDataFn() {
+				var params = {
+					pageSize: this.pageSize,
+					pageNo: this.pageNum,
+					// visitType:3
+				}
+				getCameraList(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>
+/* 	page {
+		background: #ffffff;
+	} */
+</style>
+<style lang="scss" scoped>
+.ytbox /deep/ .uni-forms .uni-forms-item{padding: 10rpx 26rpx 10rpx;border: 2rpx solid #0391FD;margin-bottom: 24rpx;border-radius: 12rpx;}
+.ytbox /deep/ .uni-forms-item__label{flex: 0 0 auto;width: 144rpx !important;font-size: 28rpx;font-weight: bold;position: relative;color: #161616;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;}
+.ytbox /deep/ .uni-easyinput__placeholder-class{font-size: 28rpx;color: #DDDDDD;}
+.ytbox /deep/ .uni-forms-item__content{display: flex;align-items: center;flex-direction: row;}
+.ytbox /deep/ .uni-easyinput{flex: 1;text-align: right;}
+.ytbox /deep/ .uni-easyinput__content-input{font-size: 28rpx;}
+ .ytbox /deep/ .uni-forms-item__error{margin-top:20rpx;left: auto;right: 0;}
+ .disable{background: #EFF0F2;border: none !important;}
+ .ytbox{width: 684rpx;margin: 0 auto;padding-top: 24rpx;position: relative;flex: 1;overflow: auto;background-color: #ffffff;padding-bottom: 4rpx;border-radius: 14rpx;}
+.ytforms{
+	.yttit{font-size: 28rpx;font-weight: bold;margin-bottom: 56rpx;
+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: 32rpx 28rpx 0;border-radius: 14rpx;margin-bottom: 24rpx;
+		.intit{font-weight: 500;flex: 1;font-size: 26rpx;text-align: right;color: #666666;}
+		.pickbox{flex: 1;text-align: right;font-weight: 500;font-size: 28rpx;color: #161616;
+			.hupimg{width: 18rpx;height: 14rpx;margin-left: 12rpx;flex: 0 0 auto;}
+		}
+		
+	}
+}
+// 按钮
+	.ybtn{width: 100%;height: 90rpx;background: $com-cd3;border-radius: 14rpx;margin: 100rpx auto 0;font-size: 28rpx;font-weight: 500;color: #FFFFFF;
+		&.btn1{background-color: #9a9c9e;}
+	}
+	.tips{font-weight: bold;margin-top: 28rpx;
+font-size: 22rpx;line-height: 34rpx;
+color: #FF0000;}
+
+.navbox{position: fixed;left: 0;right: 0;top: 0;z-index: 4;	}
+.navbg{width: 100%;height: 692rpx;}	
+.zxmain{position: relative;padding: 20rpx 32rpx 40rpx;box-sizing: border-box;display: flex;
+		min-height: calc(100vh - 44px);		
+}
+
+</style>

+ 252 - 0
work/pages/yyorder/meeting.vue

@@ -0,0 +1,252 @@
+<template>
+	<view>
+		<view class="navbox">
+			<uni-nav-bar color="#ffffff" left-icon="left" title="会议预订" :background-color="backgroundColor"
+				:border="false" statusBar='true' fixed="true" @clickLeft='getBack'>
+			</uni-nav-bar>
+		</view>
+		<image :src="navbg" class="navbg"></image>
+		<view class="zxmain" :style="'margin-top:-'+marTop+'rpx;'">
+			<view class="ytbox">
+				<uni-forms ref="form" class="ytforms"  :modelValue="datainfo">
+					<view class="ytsbox">
+						<view class="yttit">预订信息</view>
+						<view class="pt5">
+							<uni-forms-item label="预定人员" class="disable"  name="visitName">
+								<view class="intit">刘安宁</view>
+							</uni-forms-item>
+							<uni-forms-item label="开始时间" name="appointmentSite">
+								<uni-datetime-picker v-model="datainfo.starttime">
+									<view class="pickbox flexc">
+										<view :class="datainfo.starttime?'txr flex1':'coa txr flex1'">{{datainfo.starttime || "请选择开始时间"}}</view>
+										<image :src="hupimg" class="hupimg"></image>
+									</view>	
+								</uni-datetime-picker>
+							</uni-forms-item>
+							<uni-forms-item label="结束时间" name="appointmentSite">
+								<uni-datetime-picker v-model="datainfo.starttime">
+									<view class="pickbox flexc">
+										<view :class="datainfo.starttime?'txr flex1':'coa txr flex1'">{{datainfo.starttime || "请选择结束时间"}}</view>
+										<image :src="hupimg" class="hupimg"></image>
+									</view>	
+								</uni-datetime-picker>
+							</uni-forms-item>
+							<uni-forms-item label="会议室"  name="appointmentSite">
+								<picker  class="pickbox" range-key='dictLabel' :value="adridx"
+									:range="adrlist" @change="bindTimeChangea">
+									<view class="flexc flex1">
+										<view class="flex1 " :class="jclx?'co16 fw5 f14':'coa f14'">
+											{{jclx||'请选择会议室'}}</view>
+											<image :src="hupimg" class="hupimg"></image>
+									</view>
+								</picker>
+							</uni-forms-item>
+							
+							<uni-forms-item label="会议名称"   name="visitPhone">
+								<uni-easyinput :inputBorder="false" type="textarea" autoHeight  v-model="datainfo.visitPhone"
+									placeholder="输入会议名称">
+								</uni-easyinput>
+							</uni-forms-item>
+							<uni-forms-item label="参会人数"   name="visitPhone">
+								<uni-easyinput :inputBorder="false"  v-model="datainfo.visitPhone"
+									placeholder="输入参会人数">
+								</uni-easyinput>
+							</uni-forms-item>
+						</view>
+						<view class="ybtn flexcc" @click="getSubmit">确认提交</view>
+						<view class="tips">* 为避免重复操作,请先选择时间查看当前会议室是否被占用。</view>
+					</view>
+					
+				</uni-forms>
+
+				
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import {checkPermi,checkRole} from "@/utils/permission"; // 权限判断函数
+	import {getCameraList,getCameraVideo} from "@/api/mine/order.js"
+	import {getDictionaryFn} from "@/api/mine/register.js"
+	export default {
+		components: {},
+		data() {
+			return {
+				hupimg:require("@/static/images/order/hup.png"),
+				navbg:require("@/static/images/navbg.png"),
+				backgroundColor: "transparent",
+				datainfo:{
+					starttime:'',
+				},
+				nvaHeight: 44,
+				marTop: 0, //距离顶部的距离
+				stubarHeight: 0, //
+				day:'',
+				jclx:'',
+				adridx:'',
+				adrlist:[],
+			}
+		},
+		onPageScroll(e) {
+			var scrollTop = Number(e.scrollTop);
+			if (scrollTop > 0) {
+				this.backgroundColor = '#0491FD'
+			} else {
+				this.backgroundColor = 'transparent'
+			}
+		},
+		onLoad: function() {
+			this.init()
+			// this.getDataFn()
+			uni.getSystemInfo({
+				success: (e) => {
+					this.stubarHeight = Number(e.statusBarHeight);
+					this.nvaHeight = Number(e.statusBarHeight) + 44;
+					this.tabscheight = Number(this.nvaHeight) * 2 + 100;
+				}
+			})
+			// 3c8cadac11af4f1298a2882addc8788d
+		},
+		onUnload() {
+			uni.$off('refreshdatalist')
+		},
+
+		onShow() {},
+		mounted() {
+			this.getHeightFn()
+		},
+		// 上拉触底加载更多触发事件
+		onReachBottom() {
+			if (this.reachflag) {
+				this.pageNum++
+				this.getDataFn()
+			}
+		},
+		methods: {
+			checkPermi,
+			checkRole,
+			getBack() {
+				uni.navigateBack({
+					delta: 1
+				})
+			},
+			bindTimeChangea(e){
+				var val=e.detail.value;
+				this.day=val
+			},
+			getHeightFn() {
+				let query = uni.createSelectorQuery().in(this);
+				//需要给黄色区域设置一个id标识,在这里是demo
+				query.select('.navbox').boundingClientRect(data => {
+					var top = data.top < 0 ? -data.top : data.top;
+					var stubarHeight = Number(this.stubarHeight);
+					this.marTop = stubarHeight > 0 ? 692 - Number(data.height) * 2 : 692 - Number(data.height) *
+						2 + 40 //赋值,待会要用
+					if (top <= this.nvaHeight) {
+						const opacity = top / 100 // 计算透明度值
+						const color = `rgba(4, 145, 253, ${opacity})`
+						this.backgroundColor = color // 更新盒子背景颜色
+					} else {
+						this.backgroundColor = '#00A9F0'
+					}
+				}).exec();
+			},
+			init() {
+				// 门卫
+				// getDictionaryFn('is_read').then(res=>{
+				// 	if(res.code==200){
+				// 		this.ydztlist = res.data.map(v => {
+				// 			return {
+				// 				label: v.dictLabel,
+				// 				value: v.dictValue
+				// 			}
+				// 		})
+				// 	}
+				// })
+			},
+			getDataFn() {
+				var params = {
+					pageSize: this.pageSize,
+					pageNo: this.pageNum,
+					// visitType:3
+				}
+				getCameraList(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>
+/* 	page {
+		background: #ffffff;
+	} */
+</style>
+<style lang="scss" scoped>
+.ytbox /deep/ .uni-forms .uni-forms-item{padding: 10rpx 26rpx 10rpx;border: 2rpx solid #0391FD;margin-bottom: 24rpx;border-radius: 12rpx;}
+.ytbox /deep/ .uni-forms-item__label{flex: 0 0 auto;width: 144rpx !important;font-size: 28rpx;font-weight: bold;position: relative;color: #161616;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: #aaaaaa !important;}
+.ytbox /deep/ .uni-easyinput__placeholder-class{font-size: 28rpx;color: #aaaaaa;}
+.ytbox /deep/ .uni-forms-item__content{display: flex;align-items: center;flex-direction: row;}
+.ytbox /deep/ .uni-easyinput{flex: 1;text-align: right;}
+.ytbox /deep/ .uni-easyinput__content-input{font-size: 28rpx;}
+ .ytbox /deep/ .uni-forms-item__error{margin-top:20rpx;left: auto;right: 0;}
+.ytbox /deep/ .uni-easyinput__content-textarea{min-height: 48rpx;} 
+ .disable{background: #EFF0F2;border: none !important;}
+ .ytbox{width: 684rpx;margin: 0 auto;padding-top: 24rpx;position: relative;flex: 1;overflow: auto;background-color: #ffffff;padding-bottom: 4rpx;border-radius: 14rpx;}
+.ytforms{
+	.yttit{font-size: 28rpx;font-weight: bold;margin-bottom: 56rpx;
+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: 32rpx 28rpx 0;border-radius: 14rpx;margin-bottom: 24rpx;
+		.intit{font-weight: 500;flex: 1;font-size: 26rpx;text-align: right;color: #666666;}
+		.pickbox{flex: 1;text-align: right;font-weight: 500;font-size: 28rpx;color: #161616;
+			.hupimg{width: 18rpx;height: 14rpx;margin-left: 12rpx;flex: 0 0 auto;}
+		}
+		
+	}
+}
+// 按钮
+	.ybtn{width: 100%;height: 90rpx;background: $com-cd3;border-radius: 14rpx;margin: 100rpx auto 0;font-size: 28rpx;font-weight: 500;color: #FFFFFF;
+		&.btn1{background-color: #9a9c9e;}
+	}
+	.tips{font-weight: bold;margin-top: 28rpx;
+font-size: 22rpx;line-height: 34rpx;
+color: #FF0000;}
+
+.navbox{position: fixed;left: 0;right: 0;top: 0;z-index: 4;	}
+.navbg{width: 100%;height: 692rpx;}	
+.zxmain{position: relative;padding: 20rpx 32rpx 40rpx;box-sizing: border-box;display: flex;
+		min-height: calc(100vh - 44px);		
+}
+
+</style>

BIN
work/static/record/lico.png


BIN
work/static/record/search.png


BIN
work/static/record/wup.png