zxz преди 2 години
родител
ревизия
e81f8dcdf1

+ 45 - 9
pages.json

@@ -1336,7 +1336,7 @@
             "path" : "pages/clock/the_clock",
             "style" :                                                                                    
             {
-                "navigationBarTitleText": "",
+                "navigationBarTitleText": "打卡",
                 "enablePullDownRefresh": false
             }
             
@@ -1345,7 +1345,7 @@
             "path" : "pages/clock/the_clock_record",
             "style" :                                                                                    
             {
-                "navigationBarTitleText": "",
+                "navigationBarTitleText": "打卡记录",
                 "enablePullDownRefresh": false
             }
             
@@ -1354,7 +1354,7 @@
             "path" : "pages/clock/supp_clock",
             "style" :                                                                                    
             {
-                "navigationBarTitleText": "",
+                "navigationBarTitleText": "补卡",
                 "enablePullDownRefresh": false
             }
             
@@ -1363,7 +1363,7 @@
             "path" : "pages/leave/the_leave",
             "style" :                                                                                    
             {
-                "navigationBarTitleText": "",
+                "navigationBarTitleText": "请假",
                 "enablePullDownRefresh": false
             }
             
@@ -1372,7 +1372,7 @@
             "path" : "pages/leave/the_leave_record",
             "style" :                                                                                    
             {
-                "navigationBarTitleText": "",
+                "navigationBarTitleText": "请假记录",
                 "enablePullDownRefresh": false
             }
             
@@ -1381,7 +1381,7 @@
             "path" : "pages/fuelfilling/the_fuel_filling",
             "style" :                                                                                    
             {
-                "navigationBarTitleText": "",
+                "navigationBarTitleText": "加油",
                 "enablePullDownRefresh": false
             }
             
@@ -1390,7 +1390,7 @@
             "path" : "pages/fuelfilling/track_addition",
             "style" :                                                                                    
             {
-                "navigationBarTitleText": "",
+                "navigationBarTitleText": "轨迹",
                 "enablePullDownRefresh": false
             }
             
@@ -1399,7 +1399,7 @@
             "path" : "pages/fuelfilling/apply_for_reimbursement",
             "style" :                                                                                    
             {
-                "navigationBarTitleText": "",
+                "navigationBarTitleText": "申请报销",
                 "enablePullDownRefresh": false
             }
             
@@ -1408,7 +1408,7 @@
             "path" : "pages/shortDistance/short_distance_record",
             "style" :                                                                                    
             {
-                "navigationBarTitleText": "",
+                "navigationBarTitleText": "短途记录",
                 "enablePullDownRefresh": false
             }
             
@@ -1416,6 +1416,42 @@
         ,{
             "path" : "pages/shortDistance/short_track_addition",
             "style" :                                                                                    
+            {
+                "navigationBarTitleText": "短途轨迹",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/task/audit/supp_clock_approve",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "补卡审核",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/task/audit/supp_clock_details",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/task/audit/leave_approve",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "请假审核",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/task/audit/leave_details",
+            "style" :                                                                                    
             {
                 "navigationBarTitleText": "",
                 "enablePullDownRefresh": false

+ 3 - 0
pages/clock/supp_clock.vue

@@ -157,6 +157,9 @@
 								.then(res => {
 									if (res.data.code == 200) {
 										that.$api.msg('提交成功')
+										uni.navigateTo({
+											url: '/pages/clock/the_clock_record'
+										})
 									} else {
 										that.$api.msg('提交失败')
 									}

+ 6 - 208
pages/clock/the_clock_record.vue

@@ -19,11 +19,10 @@
 					<uni-td align="center">
 						<view class="toClockDate" v-if="item.toClockDate">{{ item.toClockDate.split(" ")[1] }}</view>
 						<view class="toClockDate" v-else-if="!item.toClockDate">
-							<button v-if='item.status ==null' @click='supp(item)' class="uni-button" size="mini"
+							<button v-if='item.approveStatus ==null && item.status == null' @click='supp(item)' class="uni-button" size="mini"
 								type="primary" align="center" style="height: 30px;">补卡</button>
-							<button @click='examine(item)' v-if='item.status=="审核中"'
-								class='listitemStatus audit Regular' size="mini" type="primary" align="center"
-								style="height: 30px;">审核中</button>
+							<button v-if='item.approveStatus=="待人事审核"' class='listitemStatus audit Regular' size="mini"
+								type="primary" align="center" style="height: 30px;">审核中</button>
 							<button v-if='item.status=="补卡失败"' class='listitemStatus notPass Regular' size="mini"
 								type="primary" align="center" style="height: 30px;">补卡失败</button>
 							<button v-if='item.status=="补卡成功"' class='listitemStatus pass Regular' size="mini"
@@ -33,11 +32,10 @@
 					<uni-td align="center">
 						<view class="offClockDate" v-if="item.offClockDate">{{ item.offClockDate.split(" ")[1] }}</view>
 						<view class="offClockDate" v-else-if="!item.offClockDate">
-							<button v-if='item.status ==null' @click='supp(item)' class="uni-button" size="mini"
+							<button v-if='item.approveStatus ==null && item.status == null' @click='supp(item)' class="uni-button" size="mini"
 								type="primary" align="center" style="height: 30px;">补卡</button>
-							<button @click='examine(item)' v-if='item.status=="审核中"'
-								class='listitemStatus audit Regular' size="mini" type="primary" align="center"
-								style="height: 30px;">审核中</button>
+							<button v-if='item.approveStatus=="待人事审核"' class='listitemStatus audit Regular' size="mini"
+								type="primary" align="center" style="height: 30px;">审核中</button>
 							<button v-if='item.status=="补卡失败"' class='listitemStatus notPass Regular' size="mini"
 								type="primary" align="center" style="height: 30px;">补卡失败</button>
 							<button v-if='item.status=="补卡成功"' class='listitemStatus pass Regular' size="mini"
@@ -46,26 +44,6 @@
 					</uni-td>
 				</uni-tr>
 			</uni-table>
-			<view v-if='show1' class="shade">
-				<view class="wrap">
-					<view class="alert-top">
-						<view class="title">
-							{{title}}
-						</view>
-						<u-icon name="close" class="close" color="#8890B1" @click="close()"></u-icon>
-					</view>
-					<view class="u-textarea-style">
-						{{reasonForApplication}}
-					</view>
-					<view @click='rejectSubmit()' class="cancel">驳回</view>
-					<view @click='passSubmit()' class="confirm">通过</view>
-				</view>
-			</view>
-			<!-- <u-toast ref="uToast" />
-			<view style='padding:10px;' class='flex bottom-btn'>
-				<u-button v-if='isSHowBtn' @click='reject' type="error" class="btn1" hover-class='none'>驳回</u-button>
-				<u-button v-if='isSHowBtn' @click='pass' type="success" class="btn2">通过</u-button>
-			</view> -->
 		</view>
 	</view>
 </template>
@@ -75,19 +53,15 @@
 		data() {
 			return {
 				isSHowBtn: true,
-				show1: false,
 				show: false,
 				tableData: [],
 				pageSize: 10,
-				reasonForApplication: '',
 				currentPage: 1,
 				params: {
 					year: true,
 					month: true
 				},
 				isLoadMore: false,
-				title: "补卡申请",
-				auditMind: "",
 
 
 			}
@@ -113,11 +87,6 @@
 			this.getData()
 		},
 		methods: {
-			examine(item) {
-				this.show1 = true
-				this.id = item.id
-				this.reasonForApplication = item.reasonForApplication
-			},
 			dateChange(e) {
 				console.log(e)
 				this.createDate = e.year + "-" + e.month
@@ -129,7 +98,6 @@
 					pageSize: this.pageSize,
 					currentPage: this.currentPage,
 					pcFlag: 0,
-					// phone:uni.getStorageSync('pcUserInfo').userMobilePhone,
 					compId: uni.getStorageSync('pcUserInfo').compId,
 					commonId: uni.getStorageSync('pcUserInfo').userId,
 				}).then(res => {
@@ -156,65 +124,9 @@
 					}
 				})
 			},
-			close() {
-				this.show1 = false
-			},
-			// 驳回
-			rejectSubmit() {
-				var that = this
-				this.show1 = false
-				uni.showModal({
-					content: "是否确定驳回?",
-					showCancel: true,
-					confirmText: '确定',
-					success: function(res) {
-						if (res.confirm) {
-							that.$api.doRequest('post', '/clockInfo/api/examineClock', {
-									examineFlag: "2",
-									id: that.id
-								})
-								.then(res => {
-									if (res.data.code == 200) {
-										that.$api.msg('提交成功')
-										that.getList()
-									} else {
-										that.$api.msg('提交失败')
-									}
-								})
-						}
-					}
-				})
-			},
-			//通过
-			passSubmit() {
-				var that = this
-				this.show1 = false
-				uni.showModal({
-					content: "是否确定通过?",
-					showCancel: true,
-					confirmText: '确定',
-					success: function(res) {
-						if (res.confirm) {
-							that.$api.doRequest('post', '/clockInfo/api/examineClock', {
-									examineFlag: "1",
-									id: that.id
-								})
-								.then(res => {
-									if (res.data.code == 200) {
-										that.$api.msg('提交成功')
-										that.getList()
-									} else {
-										that.$api.msg('提交失败')
-									}
-								})
-						}
-					}
-				})
-			},
 			supp(item) {
 				uni.navigateTo({
 					url: '/pages/clock/supp_clock' + `?id=${item.id}`,
-					// url: item.url + `?companyId=${that.companyId}`
 				})
 			},
 		}
@@ -275,118 +187,4 @@
 	.uni-button {
 		margin-top: 6rpx;
 	}
-
-	.shade {
-		position: fixed;
-		top: 0;
-		left: 0;
-		height: 100%;
-		width: 100%;
-		background: rgba(0, 0, 0, 0.4);
-		z-index: 3;
-
-		.wrap {
-			position: absolute;
-			left: 0;
-			top: 0;
-			right: 0;
-			bottom: 0;
-			margin: auto;
-			background: #fff;
-			width: calc(100% - 198rpx);
-			height: 250px;
-			border-radius: 20rpx;
-
-			.alert-top {
-				padding: 33rpx;
-				display: flex;
-				justify-content: center;
-				align-items: center;
-				position: relative;
-			}
-
-			.title {
-				font-size: 32rpx;
-				font-weight: 600;
-				color: #333333;
-			}
-
-			.close {
-				position: absolute;
-				right: 33rpx;
-			}
-		}
-
-		.u-textarea-style {
-			margin: 20rpx;
-			background: #F9F9FA;
-			border-radius: 10px;
-			border: 1px solid #EEEEEE;
-			padding: 10rpx 20rpx;
-			height: 113px;
-
-			.right-bottom {
-				// position: absolute;
-				right: 20rpx;
-				bottom: 20rpx;
-				color: #AFB3BF;
-			}
-		}
-
-		.cancel {
-			position: absolute;
-			display: inline-block;
-			width: 50%;
-			text-align: center;
-			bottom: 0;
-			padding: 10px;
-			border-top: 1px solid #eee;
-			font-size: 34rpx;
-		}
-
-		.confirm {
-			position: absolute;
-			display: inline-block;
-			width: 50%;
-			text-align: center;
-			bottom: 0;
-			padding: 10px;
-			border-top: 1px solid #eee;
-			font-size: 34rpx;
-		}
-
-		.cancel {
-			left: 0;
-			border-right: 1px solid #eee;
-			color: #ff0000;
-		}
-
-		.confirm {
-			right: 0;
-			color: #22C572;
-		}
-
-		.bottom-btn {
-			width: 100%;
-			// position: fixed;
-			bottom: 0;
-			display: flex;
-			z-index: 2;
-			left: 0;
-			background-color: #f8f8f8;
-			flex-direction: column;
-
-			.btn1,
-			.btn2 {
-				width: 100%;
-				margin-bottom: 26rpx;
-				border-radius: 90rpx;
-			}
-
-			.btn1 {
-				background: white;
-				color: #00C265;
-			}
-		}
-	}
 </style>

+ 3 - 0
pages/leave/the_leave.vue

@@ -170,6 +170,9 @@
 								.then(res => {
 									if (res.data.code == 200) {
 										that.$api.msg('提交成功')
+										uni.navigateTo({
+											url: '/pages/leave/the_leave_record'
+										})
 									} else {
 										that.$api.msg('提交失败')
 									}

+ 1 - 1
pages/leave/the_leave_record.vue

@@ -1,7 +1,7 @@
 <template>
 	<view>
 		<view class='wrap' v-for="(item, index) in tableData" :key="index">
-			<view class="wenzi audit1" v-if="item.status == '待审核'">审核中</view>
+			<view class="wenzi audit1" v-if="item.approveStatus == '待人事审核' || item.approveStatus == '待主管审核' ">审核中</view>
 			<view class="wenzi audit2" v-if="item.status == '已通过'">已通过</view>
 			<view class="wenzi audit3" v-if="item.status == '未通过'" >未通过</view>
 			<view class="c-row">

+ 3 - 3
pages/shortDistance/short_distance_record.vue

@@ -219,9 +219,9 @@
 							dataInfo.amountRequested = that.shortDetail.amountRequested 
 							dataInfo.warehouseName = that.shortDetail.warehouseName
 							dataInfo.remark = that.shortDetail.remark
-							dataInfo.compId = uni.getStorageSync('pcUserInfo').compId
-							dataInfo.commonId = uni.getStorageSync('pcUserInfo').userId
-							dataInfo.empName = uni.getStorageSync('userInfo').userName
+							// dataInfo.compId = uni.getStorageSync('pcUserInfo').compId
+							// dataInfo.commonId = uni.getStorageSync('pcUserInfo').userId
+							// dataInfo.empName = uni.getStorageSync('userInfo').userName
 							dataInfo.shortFillingInfoList = that.infoList
 							that.$api.doRequest('post', '/shortFillingInfo/api/shortRequestFunds',
 									dataInfo

+ 478 - 0
pages/task/audit/leave_approve.vue

@@ -0,0 +1,478 @@
+<template>
+	<view class="warp">
+		<view class="topInfo">
+			<view class="topInfo-item">
+				<view class="flex info">
+					<view class="logo">
+						<image src="../../../static/img/reject.png" mode=""
+							v-if="dataList.status == '已驳回'" style="height: 40rpx;">
+						</image><!-- 驳回 -->
+						<image src="../../../static/img/tongguo.png" mode=""
+							v-else-if="dataList.status == '已通过'"
+							style="height: 40rpx;"></image><!-- 通过 -->
+						<image src="../../../static/img/daishenhe.png" mode=""
+							v-else-if="dataList.approveStatus == '待人事审核' || dataList.approveStatus == '待主管审核'"
+							style="height: 40rpx;"></image><!-- 待审核 -->
+					</view>
+					<view class="infoText" v-if="dataList.approveStatus">{{dataList.approveStatus}}</view>
+					<view class="infoText" v-else>{{dataList.status}}</view>
+				</view>
+				<view class="infoData" v-if="dataList.updateDate">{{dataList.updateDate}}</view>
+			</view>
+		</view>
+		<view class="content1">
+			<!-- :model="OutList" -->
+			<u-form  ref="uForm">
+				<u-form-item label="请假类型" prop="leaveType" label-width="140" class="uForm_item">
+					<u-input v-model="dataList.leaveType" input-align="right" disabled v-if="dataList.leaveType"/>
+				</u-form-item>
+					<view class="uForm_item">
+						<view class='row'>
+							<view class="left">开始时间</view>
+							<view class="right">{{dataList.startDate}}</view>
+						</view>
+						<view class='row'>
+							<view class="left">结束时间</view>
+							<view class="right">{{dataList.endDate}}</view>
+						</view>
+						<view class='row'>
+							<view class="left">请假时长</view>
+							<view class="right">{{dataList.leaveDuration}}</view>
+						</view>
+						<u-form-item label="请假事由" prop="reasonForLeave" label-width="160" label-position="top">
+							<u-input v-model="dataList.reasonForLeave" input-align="left" placeholder="请输入请假事由"
+								type="textarea" class="textarea" maxlength="150" />
+						</u-form-item>
+					</view>
+			</u-form>
+		</view>
+	<view v-if='show' class="shade1">
+		<view class="wrap1">
+			<view class="alert-top1">
+				<view class="title1">
+					{{title}}
+				</view>
+				<u-icon name="close" class="close1" color="#8890B1" @click="close()"></u-icon>
+			</view>
+			<view class="u-textarea-style1">
+				
+				<u-input class="" v-model='auditMind' placeholder="请在此输入审核意见" type="textarea" height="414"
+					maxlength="100" />
+					<view class="right-bottom1">
+						{{auditMind.length}}/100个字
+					</view>
+			</view>
+			<view @click='close()' class="cancel1">取消</view>
+			<view @click='passSubmit()' class="confirm1">确定</view>
+		</view>
+	</view>
+	<u-toast ref="uToast" />
+	<view style='padding:10px;' class='flex bottom-btn'>
+		<u-button @click='reject' type="error" class="btn1" hover-class='none'>驳回</u-button>
+		<u-button @click='pass' type="success" class="btn2">通过</u-button>
+	</view>
+	</view>
+
+</template>
+
+<script>
+	import helper from '@/common/helper.js';
+	import {
+		mapState
+	} from 'vuex';
+	export default {
+		data() {
+			return {
+				everyCheck: '',
+				height: 200,
+				autoHeight: true,
+				border: false,
+				id: "",
+				show: false,
+				auditMind: '',
+				leaveType:'',
+				reasonForLeave:'',
+				startDate:'',
+				endDate:'',
+				leaveDuration:'',
+				leaveType:'',
+				approveStatus:'',
+				status:'',
+				updateDate:'',
+				dataList:{},
+			}
+		},
+		onBackPress(e) {
+			if (this.everyCheck) {
+				uni.navigateTo({
+					url: "/pages/task/my_task"
+				})
+				return true;
+			}
+		},
+		onLoad(options) {
+			this.id = options.id
+			this.everyCheck = uni.getStorageSync("everyTask")
+			this.getList()
+		},
+		computed: {
+			...mapState(['hasLogin', 'userInfo']),
+		},
+		methods: {
+			getList() {
+				this.$api.doRequest('get', '/leaveInfo/getLeaveInfo', {
+					id: this.id
+				}).then(res => {
+					if (res.data.code == 200) {
+						this.dataList = res.data.data
+					
+					}
+				})
+			},
+			close() {
+				this.show = false
+			},
+			pass() {
+				this.show = true
+				this.title = '审核意见(通过)'
+			},
+			reject() {
+				this.show = true
+				this.title = '驳回原因(驳回)'
+			},
+			//通过
+			passSubmit() {
+				var that = this
+				if (this.title == '驳回原因(驳回)') {
+					this.rejectSubmit()
+				} else {
+					let that = this
+					that.show = false
+					uni.showModal({
+						content: "是否确定通过?",
+						showCancel: true,
+						confirmText: '确定',
+						success: function(res) {
+							that.$api.doRequest('post', '/workflow/api/handle', {
+								approved: true,
+								taskId: that.dataList.taskId,
+								auditMind: that.auditMind,
+								needReapply: false
+							}).then(res => {
+								if (res.data.code == 200) {
+									that.$api.msg('审核成功!')
+									uni.navigateTo({
+										url: "/pages/task/my_task"
+									})
+								} else {
+									that.$api.msg('审核失败!')
+								}
+
+							}).catch(res => {
+								uni.hideLoading()
+								if (res.message) {
+									uni.showToast({
+										title: res.message,
+										icon: 'none',
+										duration: 2000
+									})
+								} else {
+									uni.showToast({
+										title: "系统异常,请联系管理员",
+										icon: 'none',
+										duration: 2000
+									})
+								}
+							})
+						}
+					})
+				}
+			},
+			//驳回
+			rejectSubmit() {
+				if (!this.auditMind) {
+					this.$api.msg('驳回原因不能为空!')
+				} else {
+					this.show = false
+					let that = this
+					uni.showModal({
+						content: "是否确定驳回?",
+						showCancel: true,
+						confirmText: '确定',
+						success: function(res) {
+							that.$api.doRequest('post', '/workflow/api/handle', {
+								approved: false,
+								taskId: that.dataList.taskId,
+								auditMind: that.auditMind,
+								needReapply: true
+							}).then(res => {
+								if (res.data.code == 200) {
+									this.$api.msg('驳回成功!')
+									uni.navigateTo({
+										url: "/pages/task/my_task"
+									})
+									uni.hideLoading()
+								} else {
+									this.$api.msg('驳回失败!')
+								}
+
+							})
+						}
+					})
+				}
+			},
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	.content1 {
+		margin: 10rpx;
+		padding-bottom: 224rpx;
+
+		.title {
+			height: 70rpx;
+			line-height: 60rpx;
+			font-size: 32rpx;
+			font-weight: 600;
+			color: #333333;
+			border-bottom: 2rpx solid #EEEEEE;
+		}
+	}
+
+	.uForm {
+		padding: 0 40rpx;
+	}
+
+	.u-form-item {
+		padding: 0;
+	}
+
+	.bottom-btn {
+		width: 100%;
+		position: fixed;
+		bottom: 0;
+		display: flex;
+		z-index: 2;
+		left: 0;
+		background-color: #f8f8f8;
+		flex-direction: column;
+
+		.btn1,
+		.btn2 {
+			width: 100%;
+			margin-bottom: 26rpx;
+			border-radius: 90rpx;
+		}
+
+		.btn1 {
+			background: white;
+			color: #00C265;
+		}
+	}
+
+	.submit {
+		width: 50%;
+		background: #22C572;
+		border-radius: 10rpx;
+	}
+
+	.part2 {
+		margin-top: 20rpx;
+	}
+
+	.textarea {
+		border: 1px solid #ccc;
+		border-radius: 10rpx;
+		background-color: #F9F9FA;
+		height: 100px;
+	}
+
+	.row {
+		display: flex;
+		justify-content: space-between;
+		// border-bottom: 1px solid #EEEEEE;
+		padding: 21rpx 0;
+
+		.right,
+		input {
+			font-size: 28rpx;
+			color: #333333;
+		}
+	}
+
+	//弹出框
+	// .popup {
+	// 	padding: 30rpx;
+	// 	border-radius: 20rpx;
+	// }
+	// .rejectInfoCss {
+	// 	border: 1px solid #ccc;
+	// 	border-radius: 10rpx;
+	// 	background-color: #F9F9FA;
+	// 	margin: 30rpx;
+	// 	overflow-y: auto;
+	// 	// height: 300rpx;
+	// 	background: red;
+	// }
+
+	.uForm_item {
+		padding: 20rpx;
+		background-color: #FFFFFF;
+		margin: 20rpx;
+		border-radius: 20rpx;
+	}
+
+	.rejectText {
+		text-align: center;
+	}
+
+	.topInfo {
+		height: 210rpx;
+		background: linear-gradient(270deg, #22C572 0%, #34DE8A 100%);
+		padding: 30rpx;
+
+		.topInfo-item {
+			height: 150rpx;
+			background-color: #FFFFFF;
+			border-radius: 20rpx;
+			padding: 40rpx;
+
+			.logo {
+				width: 40rpx;
+				height: 40rpx;
+				margin-top: 8rpx;
+			}
+
+			.infoText {
+				font-size: 36rpx;
+				font-weight: 600;
+				margin-left: 20rpx;
+			}
+
+			.infoData {
+				color: #878C9C;
+				font-size: 26rpx;
+				margin-top: 10rpx;
+			}
+		}
+	}
+
+	.shade1 {
+		position: fixed;
+		top: 0;
+		left: 0;
+		height: 100%;
+		width: 100%;
+		background: rgba(0, 0, 0, 0.4);
+		z-index: 3;
+
+		.wrap1 {
+			position: absolute;
+			left: 0;
+			top: 0;
+			right: 0;
+			bottom: 0;
+			margin: auto;
+			background: #fff;
+			width: calc(100% - 198rpx);
+		    height: 355px;
+			border-radius: 20rpx;
+
+			.alert-top1 {
+				padding: 33rpx;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				position: relative;
+			}
+
+			.title1 {
+				font-size: 32rpx;
+				font-weight: 600;
+				color: #333333;
+			}
+
+			.close1 {
+				position: absolute;
+				right: 33rpx;
+			}
+		}
+
+		.u-textarea-style1 {
+			margin: 20rpx;
+			background: #F9F9FA;
+			border-radius: 10px;
+			border: 1px solid #EEEEEE;
+			padding: 10rpx 20rpx;
+			height: 230px;
+
+			.right-bottom1 {
+				position: absolute;
+				right: 20rpx;
+				bottom: 80px;
+				color: #AFB3BF;
+			}
+		}
+
+		.cancel1 {
+			position: absolute;
+			display: inline-block;
+			width: 50%;
+			text-align: center;
+			bottom: 0;
+			padding: 10px;
+			border-top: 1px solid #eee;
+			font-size: 34rpx;
+		}
+
+		.confirm1 {
+			position: absolute;
+			display: inline-block;
+			width: 50%;
+			text-align: center;
+			bottom: 0;
+			padding: 10px;
+			border-top: 1px solid #eee;
+			font-size: 34rpx;
+		}
+
+		.cancel1 {
+			left: 0;
+			border-right: 1px solid #eee;
+			color: #ff0000;
+		}
+
+		.confirm1 {
+			right: 0;
+			color: #22C572;
+		}
+
+			.bottom-btn1 {
+				width: 100%;
+				// position: fixed;
+				bottom: 0;
+				display: flex;
+				z-index: 2;
+				left: 0;
+				background-color: #f8f8f8;
+				flex-direction: column;
+
+				.btn1,
+				.btn2 {
+					width: 100%;
+					margin-bottom: 26rpx;
+					border-radius: 90rpx;
+				}
+
+				.btn1 {
+					background: white;
+					color: #00C265;
+				}
+			}
+	}
+
+	/deep/.u-input__textarea {
+		height: 300rpx !important;
+	}
+</style>

+ 245 - 0
pages/task/audit/leave_details.vue

@@ -0,0 +1,245 @@
+<template>
+	<view class="warp">
+		<view class="topInfo">
+			<view class="topInfo-item">
+				<view class="flex info">
+					<view class="logo">
+						<image src="../../../static/img/reject.png" mode=""
+							v-if="dataList.status == '已驳回'" style="height: 40rpx;">
+						</image><!-- 驳回 -->
+						<image src="../../../static/img/tongguo.png" mode=""
+							v-else-if="dataList.status == '已通过'"
+							style="height: 40rpx;"></image><!-- 通过 -->
+						<image src="../../../static/img/daishenhe.png" mode=""
+							v-else-if="dataList.approveStatus == '待人事审核' || dataList.approveStatus == '待主管审核'"
+							style="height: 40rpx;"></image><!-- 待审核 -->
+					</view>
+					<view class="infoText" v-if="dataList.approveStatus">{{dataList.approveStatus}}</view>
+					<view class="infoText" v-else>{{dataList.status}}</view>
+				</view>
+				<view class="infoData" v-if="dataList.updateDate">{{dataList.updateDate}}</view>
+			</view>
+		</view>
+		<view class="content1">
+			<!-- :model="OutList" -->
+			<u-form  ref="uForm">
+				<u-form-item label="请假类型" prop="leaveType" label-width="140" class="uForm_item">
+					<u-input v-model="dataList.leaveType" input-align="right" disabled v-if="dataList.leaveType"/>
+				</u-form-item>
+					<view class="uForm_item">
+						<view class='row'>
+							<view class="left">开始时间</view>
+							<view class="right">{{dataList.startDate}}</view>
+						</view>
+						<view class='row'>
+							<view class="left">结束时间</view>
+							<view class="right">{{dataList.endDate}}</view>
+						</view>
+						<view class='row'>
+							<view class="left">请假时长</view>
+							<view class="right">{{dataList.leaveDuration}}</view>
+						</view>
+						<u-form-item label="请假事由" prop="reasonForLeave" label-width="160" label-position="top">
+							<u-input v-model="dataList.reasonForLeave" input-align="left" placeholder="请输入请假事由"
+								type="textarea" class="textarea" maxlength="150" />
+						</u-form-item>
+					</view>
+			</u-form>
+		</view>
+		<view style='padding:10px;' class='flex bottom-btn'>
+			<u-button @click='fanHui' type="success" class="btn1" hover-class='none'>返回</u-button>
+		</view>
+	</view>
+
+</template>
+
+<script>
+	import {
+		mapState
+	} from 'vuex';
+	export default {
+		data() {
+			return {
+				id: "",
+				show: false,
+				show1: false,
+				border: false,
+				rejectInfo: "", //驳回原因
+				leaveType:'',
+				reasonForLeave:'',
+				startDate:'',
+				endDate:'',
+				leaveDuration:'',
+				leaveType:'',
+				approveStatus:'',
+				status:'',
+				updateDate:'',
+				dataList:{},
+			}
+		},
+		// onReady() {
+		// 	this.$refs.uForm.setRules(this.rules);
+		// },
+		onLoad(options) {
+			this.id = options.id
+			this.getList()
+		},
+		computed: {
+			...mapState(['hasLogin', 'userInfo']),
+		},
+		methods: {
+			getList() {
+				this.$api.doRequest('get', '/leaveInfo/getLeaveInfo', {
+					id: this.id
+				}).then(res => {
+					if (res.data.code == 200) {
+						this.dataList = res.data.data
+					
+					}
+				})
+			},
+			fanHui() {
+				uni.navigateBack()
+			}
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	.content1 {
+		margin: 10rpx;
+		padding-bottom: 120rpx;
+
+		.title {
+			height: 70rpx;
+			line-height: 60rpx;
+			font-size: 32rpx;
+			font-weight: 600;
+			color: #333333;
+			border-bottom: 2rpx solid #EEEEEE;
+		}
+	}
+
+	.uForm {
+		padding: 0 40rpx;
+	}
+
+	.u-form-item {
+		padding: 0;
+	}
+
+	.bottom-btn {
+		width: 100%;
+		position: fixed;
+		bottom: 0;
+		display: flex;
+		z-index: 2;
+		left: 0;
+		background-color: #f8f8f8;
+		flex-direction: column;
+
+		.btn1,
+		.btn2 {
+			width: 100%;
+			margin-bottom: 26rpx;
+			border-radius: 90rpx;
+		}
+
+		.btn1 {
+			background: white;
+			color: #00C265;
+		}
+	}
+
+	.submit {
+		width: 50%;
+		background: #22C572;
+		border-radius: 10rpx;
+	}
+
+	.part2 {
+		margin-top: 20rpx;
+	}
+
+	.textarea {
+		border: 1px solid #ccc;
+		border-radius: 10rpx;
+		background-color: #F9F9FA;
+		height: 100px;
+	}
+
+	.row {
+		display: flex;
+		justify-content: space-between;
+		// border-bottom: 1px solid #EEEEEE;
+		padding: 21rpx 0;
+
+		.right,
+		input {
+			font-size: 28rpx;
+			color: #333333;
+		}
+	}
+
+	//弹出框
+	// .popup {
+	// 	padding: 30rpx;
+	// 	border-radius: 20rpx;
+	// }
+	.rejectInfoCss {
+		border: 1px solid #ccc;
+		border-radius: 10rpx;
+		background-color: #F9F9FA;
+		height: 100px;
+		margin: 30rpx;
+	}
+
+	.uForm_item {
+		padding: 20rpx;
+		background-color: #FFFFFF;
+		margin: 20rpx;
+		border-radius: 20rpx;
+	}
+
+	.rejectText {
+		text-align: center;
+	}
+
+	.topInfo {
+		height: 210rpx;
+		background: linear-gradient(270deg, #22C572 0%, #34DE8A 100%);
+		padding: 30rpx;
+
+		.topInfo-item {
+			height: 150rpx;
+			background-color: #FFFFFF;
+			border-radius: 20rpx;
+			padding: 40rpx;
+
+			.logo {
+				width: 40rpx;
+				height: 40rpx;
+				margin-top: 8rpx;
+			}
+
+			.infoText {
+				font-size: 36rpx;
+				font-weight: 600;
+				margin-left: 20rpx;
+			}
+
+			.infoData {
+				color: #878C9C;
+				font-size: 26rpx;
+				margin-top: 10rpx;
+			}
+		}
+
+	}
+
+	.deleteText {
+		text-align: center;
+		color: #AFB3BF;
+	}
+</style>
+

+ 462 - 0
pages/task/audit/supp_clock_approve.vue

@@ -0,0 +1,462 @@
+<template>
+	<view class="warp">
+		<view class="topInfo">
+			<view class="topInfo-item">
+				<view class="flex info">
+					<view class="logo">
+						<image src="../../../static/img/reject.png" mode=""
+							v-if="dataList.status == '补卡失败'" style="height: 40rpx;">
+						</image><!-- 驳回 -->
+						<image src="../../../static/img/tongguo.png" mode=""
+							v-else-if="dataList.status == '补卡成功'"
+							style="height: 40rpx;"></image><!-- 通过 -->
+						<image src="../../../static/img/daishenhe.png" mode=""
+							v-else-if="dataList.approveStatus == '待人事审核'"
+							style="height: 40rpx;"></image><!-- 待审核 -->
+					</view>
+					<view class="infoText" v-if="dataList.approveStatus">{{dataList.approveStatus}}</view>
+					<view class="infoText" v-else>{{dataList.status}}</view>
+				</view>
+				<view class="infoData" v-if="dataList.updateDate">{{dataList.updateDate}}</view>
+			</view>
+		</view>
+		<view class="content1">
+			<!-- :model="OutList" -->
+			<u-form  ref="uForm">
+				<u-form-item label="补卡原因" prop="supplementClockType" label-width="140" class="uForm_item">
+					<u-input input-align="right" disabled v-if="dataList.supplementClockType=='1'" value="上班">上班</u-input>
+					<u-input  input-align="right" disabled v-if="dataList.supplementClockType=='3'" value="下班">下班</u-input>
+				</u-form-item>
+					<view class="uForm_item">
+						<u-form-item label="申请理由" prop="reasonForApplication" label-width="160" label-position="top">
+							<u-input v-model="dataList.reasonForApplication" input-align="left" placeholder="请输入业务描述"
+								type="textarea" class="textarea" maxlength="150" />
+						</u-form-item>
+					</view>
+			</u-form>
+		</view>
+	<view v-if='show' class="shade1">
+		<view class="wrap1">
+			<view class="alert-top1">
+				<view class="title1">
+					{{title}}
+				</view>
+				<u-icon name="close" class="close1" color="#8890B1" @click="close()"></u-icon>
+			</view>
+			<view class="u-textarea-style1">
+				<view class="right-bottom1">
+					{{auditMind.length}}/100个字
+				</view>
+				<u-input class="" v-model='auditMind' placeholder="请在此输入审核意见" type="textarea" height="414"
+					maxlength="100" />
+			</view>
+			<view @click='close()' class="cancel1">取消</view>
+			<view @click='passSubmit()' class="confirm1">确定</view>
+		</view>
+	</view>
+	<u-toast ref="uToast" />
+	<view style='padding:10px;' class='flex bottom-btn'>
+		<u-button @click='reject' type="error" class="btn1" hover-class='none'>驳回</u-button>
+		<u-button @click='pass' type="success" class="btn2">通过</u-button>
+	</view>
+	</view>
+
+</template>
+
+<script>
+	import helper from '@/common/helper.js';
+	import {
+		mapState
+	} from 'vuex';
+	export default {
+		data() {
+			return {
+				everyCheck: '',
+				height: 200,
+				autoHeight: true,
+				border: false,
+				id: "",
+				show: false,
+				auditMind: '',
+				reasonForApplication:'',
+				supplementClockType:'',
+				approveStatus:'',
+				status:'',
+				updateDate:'',
+				dataList:{},
+			}
+		},
+		onBackPress(e) {
+			if (this.everyCheck) {
+				uni.navigateTo({
+					url: "/pages/task/my_task"
+				})
+				return true;
+			}
+		},
+		onLoad(options) {
+			this.id = options.id
+			this.everyCheck = uni.getStorageSync("everyTask")
+			this.getList()
+		},
+		computed: {
+			...mapState(['hasLogin', 'userInfo']),
+		},
+		methods: {
+			getList() {
+				this.$api.doRequest('get', '/clockInfo/getSuppClock', {
+					id: this.id
+				}).then(res => {
+					if (res.data.code == 200) {
+						this.dataList = res.data.data
+					
+					}
+				})
+			},
+			close() {
+				this.show = false
+			},
+			pass() {
+				this.show = true
+				this.title = '审核意见(通过)'
+			},
+			reject() {
+				this.show = true
+				this.title = '驳回原因(驳回)'
+			},
+			//通过
+			passSubmit() {
+				var that = this
+				if (this.title == '驳回原因(驳回)') {
+					this.rejectSubmit()
+				} else {
+					let that = this
+					that.show = false
+					uni.showModal({
+						content: "是否确定通过?",
+						showCancel: true,
+						confirmText: '确定',
+						success: function(res) {
+							that.$api.doRequest('post', '/workflow/api/handle', {
+								approved: true,
+								taskId: that.dataList.taskId,
+								auditMind: that.auditMind,
+								needReapply: false
+							}).then(res => {
+								if (res.data.code == 200) {
+									that.$api.msg('审核成功!')
+									uni.navigateTo({
+										url: "/pages/task/my_task"
+									})
+								} else {
+									that.$api.msg('审核失败!')
+								}
+
+							}).catch(res => {
+								uni.hideLoading()
+								if (res.message) {
+									uni.showToast({
+										title: res.message,
+										icon: 'none',
+										duration: 2000
+									})
+								} else {
+									uni.showToast({
+										title: "系统异常,请联系管理员",
+										icon: 'none',
+										duration: 2000
+									})
+								}
+							})
+						}
+					})
+				}
+			},
+			//驳回
+			rejectSubmit() {
+				if (!this.auditMind) {
+					this.$api.msg('驳回原因不能为空!')
+				} else {
+					this.show = false
+					let that = this
+					uni.showModal({
+						content: "是否确定驳回?",
+						showCancel: true,
+						confirmText: '确定',
+						success: function(res) {
+							that.$api.doRequest('post', '/workflow/api/handle', {
+								approved: false,
+								taskId: that.dataList.taskId,
+								auditMind: that.auditMind,
+								needReapply: true
+							}).then(res => {
+								if (res.data.code == 200) {
+									this.$api.msg('驳回成功!')
+									uni.navigateTo({
+										url: "/pages/task/my_task"
+									})
+									uni.hideLoading()
+								} else {
+									this.$api.msg('驳回失败!')
+								}
+
+							})
+						}
+					})
+				}
+			},
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	.content1 {
+		margin: 10rpx;
+		padding-bottom: 224rpx;
+
+		.title {
+			height: 70rpx;
+			line-height: 60rpx;
+			font-size: 32rpx;
+			font-weight: 600;
+			color: #333333;
+			border-bottom: 2rpx solid #EEEEEE;
+		}
+	}
+
+	.uForm {
+		padding: 0 40rpx;
+	}
+
+	.u-form-item {
+		padding: 0;
+	}
+
+	.bottom-btn {
+		width: 100%;
+		position: fixed;
+		bottom: 0;
+		display: flex;
+		z-index: 2;
+		left: 0;
+		background-color: #f8f8f8;
+		flex-direction: column;
+
+		.btn1,
+		.btn2 {
+			width: 100%;
+			margin-bottom: 26rpx;
+			border-radius: 90rpx;
+		}
+
+		.btn1 {
+			background: white;
+			color: #00C265;
+		}
+	}
+
+	.submit {
+		width: 50%;
+		background: #22C572;
+		border-radius: 10rpx;
+	}
+
+	.part2 {
+		margin-top: 20rpx;
+	}
+
+	.textarea {
+		border: 1px solid #ccc;
+		border-radius: 10rpx;
+		background-color: #F9F9FA;
+		height: 100px;
+	}
+
+	.row {
+		display: flex;
+		justify-content: space-between;
+		// border-bottom: 1px solid #EEEEEE;
+		padding: 21rpx 0;
+
+		.right,
+		input {
+			font-size: 28rpx;
+			color: #333333;
+		}
+	}
+
+	//弹出框
+	// .popup {
+	// 	padding: 30rpx;
+	// 	border-radius: 20rpx;
+	// }
+	// .rejectInfoCss {
+	// 	border: 1px solid #ccc;
+	// 	border-radius: 10rpx;
+	// 	background-color: #F9F9FA;
+	// 	margin: 30rpx;
+	// 	overflow-y: auto;
+	// 	// height: 300rpx;
+	// 	background: red;
+	// }
+
+	.uForm_item {
+		padding: 20rpx;
+		background-color: #FFFFFF;
+		margin: 20rpx;
+		border-radius: 20rpx;
+	}
+
+	.rejectText {
+		text-align: center;
+	}
+
+	.topInfo {
+		height: 210rpx;
+		background: linear-gradient(270deg, #22C572 0%, #34DE8A 100%);
+		padding: 30rpx;
+
+		.topInfo-item {
+			height: 150rpx;
+			background-color: #FFFFFF;
+			border-radius: 20rpx;
+			padding: 40rpx;
+
+			.logo {
+				width: 40rpx;
+				height: 40rpx;
+				margin-top: 8rpx;
+			}
+
+			.infoText {
+				font-size: 36rpx;
+				font-weight: 600;
+				margin-left: 20rpx;
+			}
+
+			.infoData {
+				color: #878C9C;
+				font-size: 26rpx;
+				margin-top: 10rpx;
+			}
+		}
+	}
+
+	.shade1 {
+		position: fixed;
+		top: 0;
+		left: 0;
+		height: 100%;
+		width: 100%;
+		background: rgba(0, 0, 0, 0.4);
+		z-index: 3;
+
+		.wrap1 {
+			position: absolute;
+			left: 0;
+			top: 0;
+			right: 0;
+			bottom: 0;
+			margin: auto;
+			background: #fff;
+			width: calc(100% - 198rpx);
+			height: 355px;
+			border-radius: 20rpx;
+
+			.alert-top1 {
+				padding: 33rpx;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				position: relative;
+			}
+
+			.title1 {
+				font-size: 32rpx;
+				font-weight: 600;
+				color: #333333;
+			}
+
+			.close1 {
+				position: absolute;
+				right: 33rpx;
+			}
+		}
+
+		.u-textarea-style1 {
+			margin: 20rpx;
+			background: #F9F9FA;
+			border-radius: 10px;
+			border: 1px solid #EEEEEE;
+			padding: 10rpx 20rpx;
+			height: 230px;
+
+			.right-bottom1 {
+				position: absolute;
+				right: 20rpx;
+				bottom: 80px;
+				color: #AFB3BF;
+			}
+		}
+
+		.cancel1 {
+			position: absolute;
+			display: inline-block;
+			width: 50%;
+			text-align: center;
+			bottom: 0;
+			padding: 10px;
+			border-top: 1px solid #eee;
+			font-size: 34rpx;
+		}
+
+		.confirm1 {
+			position: absolute;
+			display: inline-block;
+			width: 50%;
+			text-align: center;
+			bottom: 0;
+			padding: 10px;
+			border-top: 1px solid #eee;
+			font-size: 34rpx;
+		}
+
+		.cancel1 {
+			left: 0;
+			border-right: 1px solid #eee;
+			color: #ff0000;
+		}
+
+		.confirm1 {
+			right: 0;
+			color: #22C572;
+		}
+
+			.bottom-btn1 {
+				width: 100%;
+				// position: fixed;
+				bottom: 0;
+				display: flex;
+				z-index: 2;
+				left: 0;
+				background-color: #f8f8f8;
+				flex-direction: column;
+
+				.btn1,
+				.btn2 {
+					width: 100%;
+					margin-bottom: 26rpx;
+					border-radius: 90rpx;
+				}
+
+				.btn1 {
+					background: white;
+					color: #00C265;
+				}
+			}
+	}
+
+	/deep/.u-input__textarea {
+		height: 300rpx !important;
+	}
+</style>

+ 229 - 0
pages/task/audit/supp_clock_details.vue

@@ -0,0 +1,229 @@
+<template>
+	<view class="warp">
+		<view class="topInfo">
+			<view class="topInfo-item">
+				<view class="flex info">
+					<view class="logo">
+						<image src="../../../static/img/reject.png" mode=""
+							v-if="dataList.status == '补卡失败'" style="height: 40rpx;">
+						</image><!-- 驳回 -->
+						<image src="../../../static/img/tongguo.png" mode=""
+							v-else-if="dataList.status == '补卡成功'"
+							style="height: 40rpx;"></image><!-- 通过 -->
+						<image src="../../../static/img/daishenhe.png" mode=""
+							v-else-if="dataList.approveStatus == '待人事审核'"
+							style="height: 40rpx;"></image><!-- 待审核 -->
+					</view>
+					<view class="infoText" v-if="dataList.approveStatus">{{dataList.approveStatus}}</view>
+					<view class="infoText" v-else>{{dataList.status}}</view>
+				</view>
+				<view class="infoData" v-if="dataList.updateDate">{{dataList.updateDate}}</view>
+			</view>
+		</view>
+		<view class="content1">
+			<!-- :model="OutList" -->
+			<u-form  ref="uForm">
+				<u-form-item label="补卡原因" prop="supplementClockType" label-width="140" class="uForm_item">
+					<u-input input-align="right" disabled v-if="dataList.supplementClockType=='1'" value="上班">上班</u-input>
+					<u-input  input-align="right" disabled v-if="dataList.supplementClockType=='3'" value="下班">下班</u-input>
+				</u-form-item>
+					<view class="uForm_item">
+						<u-form-item label="申请理由" prop="reasonForApplication" label-width="160" label-position="top">
+							<u-input v-model="dataList.reasonForApplication" input-align="left" placeholder="请输入业务描述"
+								type="textarea" class="textarea" maxlength="150" />
+						</u-form-item>
+					</view>
+			</u-form>
+		</view>
+		<view style='padding:10px;' class='flex bottom-btn'>
+			<u-button @click='fanHui' type="success" class="btn1" hover-class='none'>返回</u-button>
+		</view>
+	</view>
+
+</template>
+
+<script>
+	import {
+		mapState
+	} from 'vuex';
+	export default {
+		data() {
+			return {
+				id: "",
+				show: false,
+				show1: false,
+				border: false,
+				rejectInfo: "", //驳回原因
+				reasonForApplication:'',
+				supplementClockType:'',
+				approveStatus:'',
+				status:'',
+				updateDate:'',
+				dataList:{},
+			}
+		},
+		// onReady() {
+		// 	this.$refs.uForm.setRules(this.rules);
+		// },
+		onLoad(options) {
+			this.id = options.id
+			this.getList()
+		},
+		computed: {
+			...mapState(['hasLogin', 'userInfo']),
+		},
+		methods: {
+			getList() {
+				this.$api.doRequest('get', '/clockInfo/getSuppClock', {
+					id: this.id
+				}).then(res => {
+					if (res.data.code == 200) {
+						this.dataList = res.data.data
+					
+					}
+				})
+			},
+			fanHui() {
+				uni.navigateBack()
+			}
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	.content1 {
+		margin: 10rpx;
+		padding-bottom: 120rpx;
+
+		.title {
+			height: 70rpx;
+			line-height: 60rpx;
+			font-size: 32rpx;
+			font-weight: 600;
+			color: #333333;
+			border-bottom: 2rpx solid #EEEEEE;
+		}
+	}
+
+	.uForm {
+		padding: 0 40rpx;
+	}
+
+	.u-form-item {
+		padding: 0;
+	}
+
+	.bottom-btn {
+		width: 100%;
+		position: fixed;
+		bottom: 0;
+		display: flex;
+		z-index: 2;
+		left: 0;
+		background-color: #f8f8f8;
+		flex-direction: column;
+
+		.btn1,
+		.btn2 {
+			width: 100%;
+			margin-bottom: 26rpx;
+			border-radius: 90rpx;
+		}
+
+		.btn1 {
+			background: white;
+			color: #00C265;
+		}
+	}
+
+	.submit {
+		width: 50%;
+		background: #22C572;
+		border-radius: 10rpx;
+	}
+
+	.part2 {
+		margin-top: 20rpx;
+	}
+
+	.textarea {
+		border: 1px solid #ccc;
+		border-radius: 10rpx;
+		background-color: #F9F9FA;
+		height: 100px;
+	}
+
+	.row {
+		display: flex;
+		justify-content: space-between;
+		// border-bottom: 1px solid #EEEEEE;
+		padding: 21rpx 0;
+
+		.right,
+		input {
+			font-size: 28rpx;
+			color: #333333;
+		}
+	}
+
+	//弹出框
+	// .popup {
+	// 	padding: 30rpx;
+	// 	border-radius: 20rpx;
+	// }
+	.rejectInfoCss {
+		border: 1px solid #ccc;
+		border-radius: 10rpx;
+		background-color: #F9F9FA;
+		height: 100px;
+		margin: 30rpx;
+	}
+
+	.uForm_item {
+		padding: 20rpx;
+		background-color: #FFFFFF;
+		margin: 20rpx;
+		border-radius: 20rpx;
+	}
+
+	.rejectText {
+		text-align: center;
+	}
+
+	.topInfo {
+		height: 210rpx;
+		background: linear-gradient(270deg, #22C572 0%, #34DE8A 100%);
+		padding: 30rpx;
+
+		.topInfo-item {
+			height: 150rpx;
+			background-color: #FFFFFF;
+			border-radius: 20rpx;
+			padding: 40rpx;
+
+			.logo {
+				width: 40rpx;
+				height: 40rpx;
+				margin-top: 8rpx;
+			}
+
+			.infoText {
+				font-size: 36rpx;
+				font-weight: 600;
+				margin-left: 20rpx;
+			}
+
+			.infoData {
+				color: #878C9C;
+				font-size: 26rpx;
+				margin-top: 10rpx;
+			}
+		}
+
+	}
+
+	.deleteText {
+		text-align: center;
+		color: #AFB3BF;
+	}
+</style>

+ 24 - 0
pages/task/my_task.vue

@@ -615,6 +615,30 @@
 								"&isShowbtn=true"
 						})
 					}
+				} else if (item.businessCode == 'BUKA-APPROVE') {
+					if (this.statusFlag == 1) {
+						uni.navigateTo({
+							url: `/pages/task/audit/supp_clock_approve?id=` + item.businessId +
+								"&isShowbtn=true"
+						})
+					} else {
+						uni.navigateTo({
+							url: `/pages/task/audit/supp_clock_details?id=` + item.businessId +
+								"&isShowbtn=true"
+						})
+					}
+				} else if (item.businessCode == 'QINGJIA-APPROVE') {
+					if (this.statusFlag == 1) {
+						uni.navigateTo({
+							url: `/pages/task/audit/leave_approve?id=` + item.businessId +
+								"&isShowbtn=true"
+						})
+					} else {
+						uni.navigateTo({
+							url: `/pages/task/audit/leave_details?id=` + item.businessId +
+								"&isShowbtn=true"
+						})
+					}
 				} else if (item.businessCode == 'TRADE-WAREHOUSE-REPORT') {
 					if (this.statusFlag == 1) {
 						uni.navigateTo({