Browse Source

出差审批增加关闭功能

jwyu 2 years ago
parent
commit
6648b52538

+ 5 - 0
api/businessTrip/index.js

@@ -41,4 +41,9 @@ export const apiApproveList=params=>{
 // 删除审批单
 export const apiDelApply=params=>{
     return httpPost('/business_trip/apply/delete',params)
+}
+
+//关闭审批
+export const apiCloseApply=params=>{
+    return httpPost('/business_trip/apply/close',params)
 }

+ 107 - 0
pages-approve/businessTrip/closeReason.vue

@@ -0,0 +1,107 @@
+<template>
+	<view>
+		<view class="intro-box">活动申请已审批通过,确定关闭该活动吗?若关闭,请选填关闭原因!</view>
+		<view class="textarea-wrap white-wrap">
+			<textarea placeholder="请输入关闭理由" v-model="reason" maxlength="-1"></textarea>
+		</view>
+		<view class="btns-wrap flex">
+			<button class="confirm-btn" @click="handleSubmit">提交</button>
+			<button class="cancel-btn" @click="handleCancel">取消</button>
+		</view>
+	</view>
+</template>
+
+<script>
+	import {apiCloseApply} from '@/api/businessTrip/index'
+	export default {
+		data() {
+			return {
+				reason: '',
+				id:null,
+			}
+		},
+		onLoad(options) {
+			this.id=options.id
+		},
+		methods: {
+			async handleSubmit() {
+				// if(!this.reason){
+				// 	uni.showToast({
+				// 		title:'请填写理由',
+				// 		icon:"none"
+				// 	})
+				// 	return
+				// }
+				const res=await apiCloseApply({
+					BusinessApplyId:Number(this.id),
+					CloseReason:this.reason
+				})
+				if(res.code===200){
+					uni.showToast({
+						title:"关闭成功",
+						icon:'success'
+					})
+					uni.$emit('businessApproveListUpdate')
+					setTimeout(()=>{
+						this.handleCancel()
+					},1000)
+				}
+			},
+			
+			handleCancel(){
+				uni.navigateBack({
+					delta:1
+				})
+			}
+			
+		},
+	}
+</script>
+
+<style lang="scss">
+	.intro-box{
+		padding: 17px;
+	}
+	.textarea-wrap {
+		padding: 17px;
+
+		textarea {
+			resize: none;
+			display: block;
+			box-sizing: border-box;
+			width: 100%;
+			height: 200px;
+			border: none;
+			font-size: 14px;
+			/* no */
+		}
+	}
+
+	.btns-wrap {
+		justify-content: center;
+		padding-top: 50px;
+		padding-bottom: 50px;
+
+		button {
+			width: 90px;
+			height: 28px;
+			border-radius: 28px;
+			border: none;
+			margin: 0 10px;
+			font-size: 14px;
+			/* no */
+			color: #fff;
+			line-height: 28px;
+		}
+
+		.confirm-btn {
+			background-color: #5890fb;
+		}
+
+		.cancel-btn {
+			border: 1px solid #5890fb;
+			color: #5890fb;
+			background-color: #fff;
+		}
+	}
+</style>

+ 25 - 1
pages-approve/businessTrip/detail.vue

@@ -69,7 +69,19 @@
                 <view class="label">驳回理由</view>
                 <view class="content">{{info.RefuseReason}}</view>
             </view>
+            
         </view>
+        <view class="section" v-if="info.Status==='已关闭'">
+            <view class="info-item">
+                <view class="label">关闭时间</view>
+                <view class="content">{{info.CloseTime}}</view>
+            </view>
+            <view class="info-item" style="color:#C54322">
+                <view class="label">关闭理由</view>
+                <view class="content">{{info.CloseReason}}</view>
+            </view>
+        </view>
+          
 
         <view class="fix-bottom-wrap btns-wrap flex" v-if="info.ApplyAdminId==adminId&&info.Status=='待审批'">
 			<button class="pass-btn" @click="handleRecall">撤回</button>
@@ -85,6 +97,9 @@
             <button class="pass-btn" @click="handlePass">通过</button>
 			<button class="refuse-btn" @click="handleRefuse">驳回</button>
 		</view>
+        <view class="fix-bottom-wrap btns-wrap flex" v-if="info.IsApprove&&info.Status=='已通过'">
+            <button class="refuse-btn" @click="handleClose">关闭</button>
+		</view>
 
         <van-dialog id="van-dialog" />
     </view>
@@ -130,7 +145,7 @@ export default {
             apiBusinessTripDetail({BusinessApplyId:this.id}).then(res=>{
                 if(res.code===200){
                     this.info=res.data
-                    if(this.info.Status==='已审批'){
+                    if(this.info.Status==='已通过'||this.info.Status==='已审批'){
                         this.statusImg= require('../static/pass-icon.png')
                     }else if(this.info.Status==='已驳回'){
                         this.statusImg= require('../static/fail-icon.png')
@@ -138,6 +153,8 @@ export default {
                         this.statusImg= require('../static/cancel-icon.png')
                     }else if(this.info.Status==='已撤回'){
                         this.statusImg= require('../static/recall-icon.png')
+                    }else if(this.info.Status==='已关闭'){
+                        this.statusImg= require('../static/close-icon.png')
                     }
                 }
             })
@@ -222,6 +239,13 @@ export default {
 			})
 		},
 
+        // 审批关闭
+        handleClose(){
+            uni.navigateTo({
+				url:"./closeReason?id="+this.id
+			})
+        },
+
         //审批通过
 		async handlePass(){
 				const res=await apiBusinessApplyApprove({

+ 2 - 1
pages-approve/businessTrip/list.vue

@@ -17,8 +17,9 @@
                     </view>
                 </view>
                 <view class="status approve-list-status-wait" v-if="item.Status==='待审批'">待审批</view>
-                <view class="status approve-list-status-success" v-if="item.Status==='已审批'">已审批</view>
+                <view class="status approve-list-status-success" v-if="item.Status==='已通过'">已通过</view>
                 <view class="status approve-list-status-fail" v-if="item.Status==='已驳回'">已驳回</view>
+                <view class="status approve-list-status-fail" v-if="item.Status==='已关闭'">已关闭</view>
                 <view class="status approve-list-status-cancel" v-if="item.Status==='已过期'">已过期</view>
                 <view class="status approve-list-status-back" v-if="item.Status==='已撤回'">已撤回</view>
             </view>

BIN
pages-approve/static/close-icon.png


+ 1 - 0
pages-businessTrip/apply/list.vue

@@ -22,6 +22,7 @@
                 <view class="status approve-list-status-fail" v-if="item.Status==='已驳回'">已驳回</view>
                 <view class="status approve-list-status-cancel" v-if="item.Status==='已过期'">已过期</view>
                 <view class="status approve-list-status-back" v-if="item.Status==='已撤回'">已撤回</view>
+                <view class="status approve-list-status-fail" v-if="item.Status==='已关闭'">已关闭</view>
             </view>
 		</view>
 

+ 6 - 0
pages.json

@@ -170,6 +170,12 @@
           "style": {
             "navigationBarTitleText": "拒绝理由"
           }
+        },
+        {
+          "path": "businessTrip/closeReason",
+          "style": {
+            "navigationBarTitleText": "关闭理由"
+          }
         }
       ]
     },