<template>
    <div>
        <van-sticky>
            <LHeader :text="text"></LHeader>
        </van-sticky>
        <!-- tab标签 -->
        <van-tabs
            v-model="active"
            @change="postList"
            color="#2980f7"
            animated
            :sticky="true"
            offset-top="1.5rem"
        >
            <van-tab v-for="(item, index) in tabs" :key="index" :index="index" :name="item.id" :title="item.title">
                <!-- 内容列表 -->
                <div class="con-list">
                    <!-- v-for="(item, index) in messageList" :key="index" -->
                    <van-cell-group inset v-for="(item,index) in approvalList"
                    :key="index">
                        <van-row gutter>
                            <van-col span="24">
                                <span class="con_title">申请人: {{item.userName}}</span>
                            </van-col>
                        </van-row>
                        <van-row gutter>
                            <van-col span="24">
                                <span class="con_time">申请时间:{{item.applyTime}}</span>
                            </van-col>
                        </van-row>
                        <van-row gutter>
                            <van-col span="24">申请原因:{{item.content}}</van-col>
                        </van-row>
                        <van-row gutter class="cont-operation">
                            <van-col span="24" class="con_right">
                                <van-button color="#aaaaaa" size="mini" @click="overRule(item)">退回</van-button>
                                <van-button type="info" size="mini" @click="agree(item)">同意</van-button>
                            </van-col>
                        </van-row>
                    </van-cell-group>
                </div>

                <!-- 暂无数据 -->
                <!-- <div
                    style="
                        width: 100%;
                        text-align: center;
                        font-size: 0.48rem;
                        position: fixed;
                        top: 30%;
                    "
                    v-if="messageList.length == 0"
                >暂无数据</div>-->
            </van-tab>
        </van-tabs>
        <van-dialog
            v-model="show"
            title="退回原因"
            show-cancel-button
            confirmButtonColor="#1989fa"
            :beforeClose="beforeClose"
        >
            <van-form> 
                <van-field
                    v-model="content"
                    rows="3"
                    label
                    name="content"
                    type="textarea"
                    placeholder="请输入退回原因"
                />
            </van-form>
        </van-dialog>
    </div>
</template>

<script>
import LHeader from "@/components/header.vue";
import { getFun, postFun ,putFun} from "@/service/table.js";
export default {
    name: "approval-patrol",
    components: {
        LHeader
    },
    data() {
        return {
            id:'',
            result:'',
            approveContent:'',
            text: "巡查审批",
            messageList: [],
            active: '2',
            radio: "1",
            approvalList:[],
            show: false,
            content: "", // 退回原因
            tabs: [
                {
                    title: "待审批",
                    id: "2"
                },
                {
                    title: "已审批",
                    id: "1"
                },
                {
                    title: "已退回",
                    id: "0"
                }
            ]
        };
    },
    created() {
        
    },
    mounted(){
       this.loading();
    },
    methods: {
        loading(){
            this.$toast.loading({
                message: "加载中...",
                forbidClick: true,
                loadingType: "spinner",
                duration: 0
            });
            this.approvalList=[]
            var obj={result:this.active}
            getFun('patrol/cancel/list',obj)
                .then(res => {
                    this.$toast.clear();
                    this.approvalList=res.data
                })
                .catch(err => {
                    console.log(err);
                    this.$toast.clear();
                    this.$toast.fail("加载失败,请稍后再试");
                });
        },
        postList(val) {
            this.loading()
        },
        // 拒绝
        overRule(item) {
            this.content = "";
            this.show = true;
            this.id=item.id
            this.result='0'
        },
        // 同意
        agree(item) {
            this.id=item.id
            this.result='1'
            this.loadingApprove()
        },
        loadingApprove(){
            this.$toast.loading({
                message: "加载中...",
                forbidClick: true,
                loadingType: "spinner",
                duration: 0
            });
            var obj={}
            if(this.result=='1'){
                obj={id:this.id,result:this.result}
            }else if(this.result=='0'){
                obj={id:this.id,result:this.result,approveContent:this.approveContent}
            }
            console.log(obj)
            putFun('/patrol/cancel/approve',obj)
                .then(res => {
                    this.$toast.clear();
                    if(res.code==0){
                         this.$toast.fail("提交成功");
                    }else{
                        this.$toast.fail("提交失败,请稍后再试");
                    }
                    this.loading();
                })
                .catch(err => {
                    console.log(err);
                    this.$toast.clear();
                    this.$toast.fail("加载失败,请稍后再试");
                });
        },
        beforeClose(action, done) {
            if (action === "confirm") {
                // 如果未填退回原因 禁止关闭
                if(this.content){
                    // 请求接口然后关闭弹窗 执行done方法
                    this.approveContent=this.content
                    this.loadingApprove()
                    done()
                }else{
                    this.$toast('退回原因不能为空');
                    done(false)
                }
            } else {
                done();
            }
        }
    }
};
</script>
<style lang="less" scoped>
/* @import url(); 引入css类 */
#app {
    font-family: "";
    color: #2c3e50;
}
.con-list {
    padding: 0;
    background-color: #f0f1f5;
    .van-cell-group--inset {
        margin: 0;
        margin-bottom: 0.26667rem;
        padding: 0.25rem;
        font-size: 0.4rem;
        position: relative;
        border-radius: 4%;
        box-shadow: 0px 0px 10px 2px #f3f3f3;
        width: 90%;
        margin: 0.4rem auto;
        .van-row {
            font-size: 0.4rem;
            line-height: 0.8rem;
            margin-bottom: 0;
            .con_title {
                color: #05a7f0;
                font-weight: 600;
            }
            .con_time {
                color: #878787;
                font-size: 14px;
            }
        }
        .con_right {
            display: flex;
            justify-content: flex-end;
            button {
                padding: 0 10px;
                margin: 0 5px 0 10px;
            }
        }
        .cont-operation {
            display: flex;
            align-items: center;
            margin-top: 10px;
        }
    }
}
/deep/.van-tab__pane-wrapper {
    min-height: 8rem;
}
.van-tabs__track {
    min-height: 3rem;
}
</style>
