<!--
 * 严肃声明：
 * 开源版本请务必保留此注释头信息，若删除我方将保留所有法律责任追究！
 * 本系统已申请软件著作权，受国家版权局知识产权以及国家计算机软件著作权保护！
 * 可正常分享和学习源码，不得用于违法犯罪活动，违者必究！
 * Copyright (c) 2020 陈尼克 all rights reserved.
 * 版权所有，侵权必究！
 *
-->

<template>
    <div>
       <LHeader v-bind:text="text" v-bind:goback="goback"></LHeader>
       <van-search
            v-model="value"
            show-action
            placeholder="请输入搜索内容"
            @search="onSearch" 
            >
            <template #action>
                <div @click="onSearch" >搜索</div>
            </template>
        </van-search>
        <van-tabs v-model="active" :swipe-threshold="3"	@change="tabChange">
            <van-tab  v-for="(item,index) in checkedConfirmList"  :key="index" :title="item.title">
                <div class="card" v-for="(it,index) in item.list"  :key="index"  @click="cardLocation(it)">
                    <div>检查编号：{{it.no}}</div>
                    <div>检查名称：{{it.name}}</div>
                    <div>检查类型：{{it.type}}</div>
                    <div v-show="it.isOpen">
                        <div>开始时间：{{it.planStartTime}}</div>
                        <div>结束时间：{{it.planEndTime}}</div>
                        <div>检查地点：{{it.address}}</div>
                        <div>是否提交：{{it.finish?'已提交':'未提交'}}</div>
                    </div>
                    <div class="more" @click.stop="toggle(it)">
                        {{ it.OpenText }}
                    </div>
                </div>
            </van-tab>
        </van-tabs>
        <tab-bar :index="1"></tab-bar>
    </div>
</template>

<script>
import tabBar from "@/components/TabBar";
import LHeader from '@/components/header.vue'
import { getFun,postFun } from '@/service/table'
export default {
    name: 'checked',
    components: {
        "LHeader":LHeader,
        "tabBar":tabBar
    },
    data() {
        return {
            title:'待提交',//默认选中状态的tab页签
            active:'0',//默认选中状态
            status:'unconfirm',//默认提交状态
            goback:'save-workbench',//返回工作台
            value:'',//列表搜索关键字值
            checkedConfirmList:[
                {
                    title:'待提交',
                    list:[]
                },
                {
                    title:'已提交',
                    list:[]
                }
            ],//检查列表
            text:'检查执行',//顶部文本
            finish:'',//问题是否提交
        }
    },
    mounted() {
        this.list()
    },
    methods: {
        /* 首次进入页面请求检查执行列表接口 */
        list(){
            // this.checkedList=[]
            this.clearTab()
            this.$toast.loading({
                message:'加载中...',
                forbidClick: true,
                loadingType: 'spinner',
                duration: 0
            })
            getFun('check/carry/user/list',{select:this.value,status:this.status}).then((Response)=>{
                this.$toast.clear()
                this.checkedConfirmList.forEach((item)=>{
                    if(item.title==this.title){
                        item.list=Response.data[0].list
                        item.list.forEach((it)=>{
                            it.isOpen=false
                            it.OpenText="展开 ▼";
                        })
                    }
                })
            }).catch(()=>{
                this.$toast.clear()
                this.$toast.fail('加载失败,请稍后再试')
            })
        },
        /* 搜索查询列表接口 */
        onSearch(){
            this.list()
        },
        cardLocation(item){
            sessionStorage.setItem('id',item.id)
            sessionStorage.setItem('finish',item.finish)
            this.$router.push({name:'problem',params:{id:item.id}})//此id来判断是否加载问题上报新数据
        },
        //切换显示内容
        toggle(item){
            item.isOpen = !item.isOpen;
            if (item.isOpen) {
                //   显示所有数据
                item.OpenText = "收起 ▲";
            } else {
                item.OpenText = "展开 ▼";
                // 只显示第一个数据
            }
            this.$forceUpdate()
        },
        //清空tab列表数据
        clearTab(){
            this.checkedConfirmList.forEach((it)=>{
                it.list=[]
            })
        },
        tabChange(name,title){
            if(name=='0'){
                this.status='unconfirm'
            }else{
                this.status='confirmed'
            }
            this.title=title
            this.list()
        }
    }
}
</script>
<style lang="less" scoped>
    .card{
        width:90%;
        box-shadow: 0px 0px 10px 2px #F3F3F3;
        padding: 0.25rem;
        margin:0.4rem auto;
        position: relative;
        background: white;
        border-radius: 4%;
    }
    .card div{
        font-size: 0.4rem;
        line-height: 0.8rem;
    }
    .more{
        position: absolute;
        bottom: 0.25rem;
        right: 15px;
        color: #2a80f7;
        font-weight: none;
        z-index: 99;
    }
</style>
