Procházet zdrojové kódy

启航教培管家教师端请假审批,请假条详情

常志远 před 2 roky
rodič
revize
7c9ae39c70

binární
assets/img/riLine-eraser-line Copy@1x.png


binární
assets/img/riLine-save-line@1x.png


+ 19 - 0
pages.json

@@ -503,6 +503,25 @@
             }
             }
             
             
         }
         }
+        
+        ,{
+            "path" : "pages/teacher/leaveApproval/leaveApproval",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/teacher/leaveApproval/leaveDetails",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
     ],
     ],
 	"globalStyle": {
 	"globalStyle": {
 		"navigationStyle": "custom", // 隐藏系统导航栏
 		"navigationStyle": "custom", // 隐藏系统导航栏

+ 1 - 1
pages/parents/mine/mine.vue

@@ -253,7 +253,7 @@
 				
 				
 			},
 			},
 			getAge(str) {
 			getAge(str) {
-				var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
+				var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$n/);
 				if (r == null) return false;
 				if (r == null) return false;
 				var d = new Date(r[1], r[3] - 1, r[4]);
 				var d = new Date(r[1], r[3] - 1, r[4]);
 				if (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d.getDate() == r[4]) {
 				if (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d.getDate() == r[4]) {

+ 151 - 0
pages/teacher/leaveApproval/leaveApproval.vue

@@ -0,0 +1,151 @@
+<template>
+	<view>
+		<u-navbar title="请假审批"></u-navbar>
+		<view class="tabs">
+			<u-tabs bar-width="80" inactive-color="#777777" active-color="#4F3C27"  :list="list" :is-scroll="false" :current="current" @change="change"></u-tabs>
+		</view>
+		
+		<view class="content" v-show="this.current==0">
+			<view class="item">
+				<view class="head">
+					<view class="title">
+						周梓轩的请假条
+					</view>
+					<view class="state1">
+						待处理
+					</view>
+				</view>
+				<view class="bottom">
+					<view class="class">
+						郭健康毛笔楷书班
+					</view>
+					<view class="time">
+						2023-01-03 10:00
+					</view>
+				</view>
+			</view>
+		</view>
+		
+		<view class="content" v-show="this.current==1">
+			<view class="item">
+				<view class="head">
+					<view class="title">
+						王紫瑄的请假条
+					</view>
+					<view class="state2">
+						已审核
+					</view>
+				</view>
+				<view class="bottom">
+					<view class="class">
+						夏奕琳芭蕾舞新生班
+					</view>
+					<view class="time">
+						2023-01-03
+					</view>
+				</view>
+			</view>
+			<view class="item">
+				<view class="head">
+					<view class="title">
+						王紫瑄的请假条
+					</view>
+					<view class="state2">
+						已审核
+					</view>
+				</view>
+				<view class="bottom">
+					<view class="class">
+						夏奕琳芭蕾舞新生班
+					</view>
+					<view class="time">
+						2023-01-03
+					</view>
+				</view>
+			</view>
+		</view>
+		
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				list: [{
+					name: '待处理'
+				}, {
+					name: '已处理'
+				}],
+				current: 0
+			}
+		},
+		methods: {
+			change(index) {
+				this.current = index;
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.tabs{
+		padding: 0 170rpx;
+		background-color: #fff;
+		/deep/.u-tab-bar{
+			background-color:#B5D0F4 !important;
+			bottom: -6rpx;
+		}
+	}
+    
+	.item{
+		background-color: #fff;
+		border-radius: 24px;
+		margin: 24rpx 32rpx;
+		padding: 32rpx 24rpx;
+		.head{
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			.title{
+				color: rgba(51, 51, 51, 1);
+				font-size: 32rpx;
+				font-weight: bold;
+			}
+			.state1{
+				width: 120rpx;
+				line-height: 48rpx;
+				color: rgba(22, 119, 255, 1);
+				font-size: 12px;
+				text-align: center;
+				font-family: Arial;
+				border: 1px solid rgba(22, 119, 255, 1);
+				border-radius: 100rpx;
+			}
+			.state2{
+				width: 120rpx;
+				line-height: 48rpx;
+				color: rgba(0, 187, 170, 1);
+				font-size: 12px;
+				text-align: center;
+				font-family: Arial;
+				border: 1px solid rgba(0, 187, 170, 1);
+				border-radius: 100rpx;
+			}
+		}
+		.bottom{
+			margin-top: 16rpx;
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			.class{
+				color: rgba(51, 51, 51, 1);
+			}
+			.time{
+				color: rgba(119, 119, 119, 1);
+			}
+			
+		}
+	}
+</style>

+ 333 - 0
pages/teacher/leaveApproval/leaveDetails.vue

@@ -0,0 +1,333 @@
+<template>
+	<view>
+		<u-navbar title="请假条详情"></u-navbar>
+		<view class="head">
+			<view class="photo">
+				<u-avatar class="avatar" mode="square"
+					src="" size="84">
+				</u-avatar>
+			</view>
+			<view class="title">
+				周梓轩的请假条
+			</view>
+			<view class="state1" v-show="show==true">
+				待处理
+			</view>
+			<view class="state2" v-show="show==false">
+				已审核
+			</view>
+			
+		</view>
+
+		<view class="main">
+			<view class="item">
+				<view class="title">
+					所属班级
+				</view>
+				<view class="value">
+					郭健康毛笔楷书班
+				</view>
+			</view>
+			<view class="item">
+				<view class="title">
+					请假日期
+				</view>
+				<view class="value">
+					2023-01-03 08:30-10:00
+				</view>
+			</view>
+			<view class="item">
+				<view class="title">
+					请假课次
+				</view>
+				<view class="value">
+					第20节
+				</view>
+			</view>
+		
+			<view class="reason">
+				<view class="title">
+					请假事由
+				</view>
+				<view class="value">
+					阳了!
+				</view>
+			</view>
+			
+
+			<view class="item">
+				<view class="title">
+					提交时间
+				</view>
+				<view class="value">
+					2023-01-01 18:00
+				</view>
+			</view>
+		</view>
+		
+		<view class="main">
+			<view class="item">
+				<view class="title">
+					授课老师
+				</view>
+				<view class="value">
+					郭健康
+				</view>
+			</view>
+			<view class="item" v-show="show==false">
+				<view class="title">
+					回复结果
+				</view>
+				<view class="value">
+					同意
+				</view>
+			</view>
+			<view class="item" v-show="show==false">
+				<view class="title">
+					回复时间
+				</view>
+				<view class="value">
+					2023-01-02 12:00
+				</view>
+			</view>
+		</view>
+	
+	<!-- 弹窗 -->
+		<view class="">
+			<!-- <u-button @click="show = true;">打开弹窗</u-button> -->
+			<u-popup mode="bottom" v-model="show">
+				<view class="content">
+					<scroll-view scroll-y="true" >
+						<view>
+							<view class="title" >
+								填写意见
+							</view>
+							<view class="opinion">
+								<textarea class="opinion-textarea" placeholder="请填写意见"></textarea>
+							</view>
+							
+							<view class="sign">
+								<view class="sign-title">
+									请在下方空白区域使用正楷字体进行电子签名
+								</view>
+								<textarea class="sign-textarea" name="" id="" cols="30" rows="10"></textarea>
+							    <view class="button">
+							    	<view class="clear">
+							    		<view class="img">
+							    			<img src="../../../assets/img/riLine-eraser-line Copy@1x.png" alt="">
+							    		</view>
+										<view class="text">
+											清除
+										</view>
+							    	</view>
+									<view class="save">
+										<view class="img">
+											<img src="../../../assets/img/riLine-save-line@1x.png" alt="">
+										</view>
+										<view class="text">
+											保存
+										</view>
+									</view>
+							    </view>
+							</view>
+						</view>
+					</scroll-view>
+					<view class="confrim-btn">
+						<u-button @click="show = false;">确定</u-button>
+					</view>
+				</view>
+			</u-popup>
+		</view>
+	</view>
+</template>
+
+<script>
+	
+	
+	export default {
+		data() {
+			return {
+             show: true,
+			 state:false
+			}
+		},
+		
+		
+	}
+</script>
+
+<style lang="scss" scoped>
+	.head {
+		margin: 12px 16px;
+		padding: 12px;
+		border-radius: 12px;
+		background-color: rgba(255, 255, 255, 1);
+		display: flex;
+		align-items: center;
+
+		.photo {
+			width: 84rpx;
+			height: 84rpx;
+			border-radius: 4px;
+			overflow: hidden;
+
+			img {
+				width: 100%;
+				height: 100%;
+			}
+		}
+
+		.title {
+			color: rgba(51, 51, 51, 1);
+			font-size: 16px;
+			font-weight: bold;
+			margin-left: 24rpx;
+		}
+
+		.state1 {
+			margin-left: auto;
+			border-radius: 50px;
+			background-color: rgba(255, 255, 255, 1);
+			color: rgba(22, 119, 255, 1);
+			font-size: 12px;
+			text-align: center;
+			border: 1px  solid rgba(22, 119, 255, 1);
+			padding: 7rpx 26rpx;
+		}
+		
+		.state2 {
+			margin-left: auto;
+			border-radius: 50px;
+			background-color: rgba(255, 255, 255, 1);
+			color: rgba(0, 187, 170, 1);
+			font-size: 12px;
+			text-align: center;
+			border: 1px solid rgba(0, 187, 170, 1);
+			padding: 7rpx 26rpx;
+		}
+		
+	}
+
+	.main {
+		border-radius: 12px;
+		background-color: #fff;
+		margin: 0 32rpx 24rpx;
+
+		.item {
+			padding: 22rpx 30rpx 28rpx 30rpx;
+			border-bottom: 1px solid rgba(244, 244, 244, 1);
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+
+			.title {
+				color: rgba(119, 119, 119, 1);
+			}
+
+			.value {
+				color: rgba(51, 51, 51, 1);
+			}
+		}
+
+		.reason,
+		.accessory {
+			padding: 22rpx 30rpx;
+			border-bottom: 2rpx solid rgba(244, 244, 244, 1);
+
+			.title {
+				color: rgba(119, 119, 119, 1);
+			}
+
+			.value {
+				margin-top: 16rpx;
+				color: rgba(51, 51, 51, 1);
+
+				img {
+					width: 120rpx;
+					height: 120rpx;
+				}
+			}
+		}
+
+		.accessory {
+			.value {
+				margin-top: 24rpx;
+			}
+		}
+	}
+	
+	.content {
+			padding: 32rpx 30rpx;
+			
+			.title{
+				color: rgba(16, 16, 16, 1);
+				font-size: 40rpx;
+				text-align: center;
+			}
+			.opinion{
+				margin-top: 32rpx;
+				.opinion-textarea{
+					padding-top: 12rpx;
+					text-indent: 12rpx;
+					width: 100%;
+					height: 120rpx;
+					background-color: rgba(235, 235, 238, 1);
+					font-size: 32rpx;
+					color: rgba(136, 136, 136, 1);
+					border-radius: 16rpx;
+				}
+			}
+			.sign{
+				margin-top: 32rpx;
+				.sign-title{
+					font-size:28rpx;
+					color: rgba(119, 119, 119, 1);
+					
+				}
+				.sign-textarea{
+					padding-top: 12rpx;
+					text-indent: 12rpx;
+					width: 100%;
+					background-color: rgba(235, 235, 238, 1);
+					font-size: 32rpx;
+					color: rgba(136, 136, 136, 1);
+					border-radius: 16rpx;
+					height: 320rpx;
+					margin-top: 16rpx;
+					position: relative;
+				}
+				.button{
+					display: flex;
+					position: absolute;
+					bottom: 20rpx;
+					left: 0;
+					right: 0;
+					.clear,.save{
+						flex: 1;
+						display: flex;
+						align-items: center;
+						justify-content: center;
+						line-height: 32rpx;
+						.img{
+							margin-right:8rpx;
+							img{
+								vertical-align: middle;
+							}
+						}
+						.text{
+							color: rgba(119, 119, 119, 1);
+						}
+					}
+				}
+			}
+			.confrim-btn{
+				margin-top:52rpx;
+				.u-btn{
+					border-radius: 8px;
+					background-color: rgba(0, 187, 170, 1);
+					color: rgba(255, 255, 255, 1);
+					font-size: 18px;
+				}
+			}
+		}
+</style>