<template>  
 | 
    <view class="container">  
 | 
        <!-- 自定义头部 -->  
 | 
        <navigation Title="智能会议室"></navigation>  
 | 
        <you-scroll ref="scroll" @onPullDown="onPullDown" @More="More">  
 | 
            <!-- 通知公告 -->  
 | 
            <view class="container_a" @click="jump">  
 | 
                <view class="container_a_left">  
 | 
                    <image src="@/static/meeting/icon/home_ic_notice@2x.png" mode="widthFix"></image>  
 | 
                </view>  
 | 
                <view class="container_a_right">  
 | 
                    <text>{{news.title}}</text>  
 | 
                    <text>{{news.createDate ? news.createDate.substring(0, 10) : ''}}</text>  
 | 
                </view>  
 | 
            </view>  
 | 
              
 | 
            <!-- 展位 -->  
 | 
            <view class="zw"></view>  
 | 
              
 | 
            <!-- 日历 -->  
 | 
            <view class="container_b">  
 | 
                <Calendar  
 | 
                ref="Calendar"  
 | 
                :currentTime='currentTime1'  
 | 
                :mark='mark'  
 | 
                :showLunar="false"  
 | 
                @dayChange='dayChange'  
 | 
                @monthChange='monthChange'  
 | 
                :rangeMode='false'  
 | 
                :maskColor="'#ffffff'"  
 | 
                :dateStart='dateStart'  
 | 
                :dateEnd='dateEnd'  
 | 
                :canDrag='false'>  
 | 
                </Calendar>  
 | 
            </view>  
 | 
              
 | 
            <!-- 今日会议 -->  
 | 
            <view class="container_c">  
 | 
                <view class="container_c_head">  
 | 
                    <view class="container_c_head_left">  
 | 
                        <view class="container_c_head_left_h"></view>  
 | 
                        <text>当日会议</text>  
 | 
                    </view>  
 | 
                    <view class="container_c_head_right" @click="show = true">  
 | 
                        <text>{{roomName.length > 10 ? roomName.substring(0, 8) + '...' : roomName}}</text>  
 | 
                        <image src="@/static/meeting/icon/ar_open@2x.png" mode="widthFix"></image>  
 | 
                    </view>  
 | 
                </view>  
 | 
                <view class="container_c_list" v-if="list && list.length > 0">  
 | 
                    <view class="container_c_list_item" v-for="(item, index) in list" :key="index" @click="jumpRoom(item.id)">  
 | 
                        <view class="top">  
 | 
                            <view class="top_left">  
 | 
                                {{item.meetingName}}  
 | 
                            </view>  
 | 
                            <view class="top_right" v-if="getDay === item.meetingDate && item.meetingStatus === 1">  
 | 
                                即将开始  
 | 
                            </view>  
 | 
                            <view class="top_right" v-else-if="getDay !== item.meetingDate && item.meetingStatus === 1">  
 | 
                                未开始  
 | 
                            </view>  
 | 
                            <view class="top_right jx" v-else-if="item.meetingStatus === 2">  
 | 
                                进行中  
 | 
                            </view>  
 | 
                            <view class="top_right des" v-else-if="item.meetingStatus === 3">  
 | 
                                已结束  
 | 
                            </view>  
 | 
                        </view>  
 | 
                        <view class="item_zw"></view>  
 | 
                        <view class="item_info">  
 | 
                            <view class="item_info_label">会议时间:</view>  
 | 
                            <view class="item_info_content">{{item.meetingTime}}</view>  
 | 
                        </view>  
 | 
                        <view class="item_info">  
 | 
                            <view class="item_info_label">会议室:</view>  
 | 
                            <view class="item_info_content">{{item.roomName}}</view>  
 | 
                        </view>  
 | 
                        <view class="item_info">  
 | 
                            <view class="item_info_label">预约人:</view>  
 | 
                            <view class="item_info_content">{{item.bookingUser}}</view>  
 | 
                        </view>  
 | 
                    </view>  
 | 
                </view>  
 | 
                <view class="container_c_list" v-else>  
 | 
                    <view class="container_c_list_wu">  
 | 
                        <image src="@/static/meeting/common/364.png" mode="widthFix"></image>  
 | 
                    </view>  
 | 
                </view>  
 | 
            </view>  
 | 
        </you-scroll>  
 | 
          
 | 
          
 | 
        <!-- 会议选择 -->  
 | 
        <u-picker :show="show" @cancel="show = false" keyName="name" @confirm="confirm" :columns="columns"></u-picker>  
 | 
          
 | 
        <!-- 底部导航 -->  
 | 
        <Tabbar :current="'0'"></Tabbar>  
 | 
    </view>  
 | 
</template>  
 | 
  
 | 
<script>  
 | 
    import youScroll from '@/components/you-scroll'  
 | 
    import Calendar from '@/components/Li-Calendar/Li-Calendar.vue';  
 | 
    import { getDay } from '@/utils/utils.js'  
 | 
    export default {  
 | 
        data() {  
 | 
            return {  
 | 
                show: false,  
 | 
                columns: [],  
 | 
                mark: [],  
 | 
                currentTime: '',  
 | 
                currentTime1: '',  
 | 
                title: 'Hello',  
 | 
                dateStart: '1999-05-01',  
 | 
                dateEnd: '2999-06-15',  
 | 
                roomName: '全部会议室',  
 | 
                roomId: '',  
 | 
                  
 | 
                page: 0,  
 | 
                next: false,  
 | 
                list: [],  
 | 
                  
 | 
                news: []  
 | 
            }  
 | 
        },  
 | 
        components: { Calendar, youScroll },  
 | 
        onLoad() {  
 | 
            this.page = 0  
 | 
            this.next = false  
 | 
            this.list = []  
 | 
            this.mark = []  
 | 
            this.columns = []  
 | 
            this.currentTime = getDay().date  
 | 
            this.currentTime1 = getDay().date  
 | 
            this.$refs.Calendar.currentSelectTime = getDay().day  
 | 
            this.getRoom()  
 | 
            this.getNews()  
 | 
            this.getRoomList()  
 | 
            this.getDateNum()  
 | 
        },  
 | 
        onReachBottom(){  
 | 
            this.getRoomList()  
 | 
        },  
 | 
        methods: {  
 | 
            async onPullDown(done) {  
 | 
                this.page = 0  
 | 
                this.next = false  
 | 
                this.list = []  
 | 
                this.mark = []  
 | 
                this.columns = []  
 | 
                this.currentTime = getDay().date  
 | 
                this.currentTime1 = getDay().date  
 | 
                this.$refs.Calendar.currentSelectTime = getDay().day  
 | 
                await this.getRoom()  
 | 
                await this.getNews()  
 | 
                await this.getRoomList()  
 | 
                await this.getDateNum()  
 | 
                await done()  
 | 
            },  
 | 
            jumpRoom(id) {  
 | 
                uni.navigateTo({  
 | 
                    url: `/packagesMine/meetingDetails/meetingDetails?id=${id}`  
 | 
                });  
 | 
            },  
 | 
            // 获取某月预约日期  
 | 
            getDateNum() {  
 | 
                console.log('substring', this.currentTime1)  
 | 
                this.mark = []  
 | 
                this.$u.api.monthMeeting({  
 | 
                    yearMonth: this.currentTime1.substring(0, 7)  
 | 
                }).then(res => {  
 | 
                    res.data.forEach(item => {  
 | 
                        // let day = new Date(getDay().date).getTime()  
 | 
                        // let date = new Date(item.monthDate).getTime()  
 | 
                        // date >= day &&   
 | 
                        if (item.meetingNum > 0) {  
 | 
                            this.mark.push({  
 | 
                                time: item.monthDate,  
 | 
                                markPoint: true,  
 | 
                                pointText: item.meetingNum  
 | 
                            })  
 | 
                        }  
 | 
                    })  
 | 
                })  
 | 
            },  
 | 
            getNews() {  
 | 
                this.$u.api.findNewNotice({})  
 | 
                    .then(res => {  
 | 
                        if (res.data) {  
 | 
                            this.news = res.data  
 | 
                        }  
 | 
                    })  
 | 
            },  
 | 
            getRoomList() {  
 | 
                if (!this.next) {  
 | 
                    this.page = this.page + 1  
 | 
                    this.$u.api.myMeetingPage({  
 | 
                        capacity: 10,  
 | 
                        page: this.page,  
 | 
                        model: {  
 | 
                            queryDate: this.currentTime,  
 | 
                            roomsId: this.roomId,  
 | 
                            queryType: 1  
 | 
                        }  
 | 
                    }).then(res => {  
 | 
                        if (res.data.records.length > 0) {  
 | 
                            this.list = [...this.list, ...res.data.records]  
 | 
                        }  
 | 
                        if (res.data.records.length < 10) {  
 | 
                            this.next = true  
 | 
                        }  
 | 
                    })  
 | 
                }  
 | 
            },  
 | 
            jump() {  
 | 
                uni.navigateTo({  
 | 
                    url: '/packagesMine/notice/notice'  
 | 
                });  
 | 
            },  
 | 
            getRoom() {  
 | 
                this.$u.api.roomsList({})  
 | 
                    .then(res => {  
 | 
                        let room = []  
 | 
                        room = res.data  
 | 
                        room.unshift({ name: '全部会议室', id: '' })  
 | 
                        this.columns.push(res.data)  
 | 
                    })  
 | 
            },  
 | 
            confirm(e) {  
 | 
                this.roomName = e.value[0].name  
 | 
                this.roomId = e.value[0].id  
 | 
                this.show = false  
 | 
                this.list = []  
 | 
                this.page = 0  
 | 
                this.next = false  
 | 
                this.getRoomList()  
 | 
            },  
 | 
            // 点击某天  
 | 
            dayChange(data){  
 | 
                console.log(data)  
 | 
                let date = data.time  
 | 
                let yyyy = data.time.substring(0, 4)  
 | 
                let mm = Number(data.time.substring(data.time.indexOf('-') + 1, data.time.lastIndexOf('-')))  
 | 
                let dd = Number(data.time.substring(data.time.lastIndexOf('-') + 1, data.time.length))  
 | 
                mm = mm < 10 ? `0${mm}` : mm  
 | 
                dd = dd < 10 ? `0${dd}` : dd  
 | 
                let riqi = `${yyyy}-${mm}-${dd}`  
 | 
                this.currentTime = riqi  
 | 
                this.list = []  
 | 
                this.next = false  
 | 
                this.page = 0  
 | 
                this.getRoomList()  
 | 
            },  
 | 
            // 下一月  
 | 
            monthChange(data){  
 | 
                let date = data.date.replace(/[/]/g, '-')  
 | 
                let yyyy = date.substring(0, 4)  
 | 
                let mm = Number(date.substring(date.indexOf('-') + 1, date.lastIndexOf('-')))  
 | 
                let dd = Number(date.substring(date.lastIndexOf('-') + 1, date.length))  
 | 
                mm = mm < 10 ? `0${mm}` : mm  
 | 
                dd = dd < 10 ? `0${dd}` : dd  
 | 
                let riqi = `${yyyy}-${mm}-${dd}`  
 | 
                console.log('日期', riqi)  
 | 
                this.currentTime1 = riqi  
 | 
                this.getDateNum()  
 | 
            },  
 | 
            setRangeMode(){  
 | 
                this.rangeMode = !this.rangeMode;  
 | 
            }  
 | 
        }  
 | 
    }  
 | 
</script>  
 | 
  
 | 
<style lang="scss" scoped>  
 | 
    .container {  
 | 
        width: 100%;  
 | 
        background-color: #fff;  
 | 
        .container_a {  
 | 
            width: 100%;  
 | 
            height: 80rpx;  
 | 
            background: #FFFFFF;  
 | 
            display: flex;  
 | 
            align-items: center;  
 | 
            padding: 0 30rpx;  
 | 
            box-sizing: border-box;  
 | 
            .container_a_left {  
 | 
                width: 40rpx;  
 | 
                height: 40rpx;  
 | 
                flex-shrink: 0;  
 | 
                margin-right: 20rpx;  
 | 
                image {  
 | 
                    width: 100%;  
 | 
                    height: 100%;  
 | 
                }  
 | 
            }  
 | 
            .container_a_right {  
 | 
                flex: 1;  
 | 
                height: 100%;  
 | 
                display: flex;  
 | 
                align-items: center;  
 | 
                justify-content: space-between;  
 | 
                flex-wrap: wrap;  
 | 
                text {  
 | 
                    &:first-child {  
 | 
                        width: 400rpx;  
 | 
                        overflow: hidden;  
 | 
                        white-space: nowrap;  
 | 
                        text-overflow: ellipsis;  
 | 
                        font-size: 26rpx;  
 | 
                        font-family: PingFangSC-Regular, PingFang SC;  
 | 
                        font-weight: 400;  
 | 
                        color: #333333;  
 | 
                    }  
 | 
                    &:last-child {  
 | 
                        flex-shrink: 0;  
 | 
                        font-size: 24rpx;  
 | 
                        font-family: PingFangSC-Regular, PingFang SC;  
 | 
                        font-weight: 400;  
 | 
                        color: #999999;  
 | 
                    }  
 | 
                }  
 | 
            }  
 | 
        }  
 | 
        .zw {  
 | 
            width: 100%;  
 | 
            height: 20rpx;  
 | 
            background: #F7F7F7;  
 | 
        }  
 | 
        .container_b {  
 | 
            width: 100%;  
 | 
            padding: 30rpx;  
 | 
            background: #FFFFFF;  
 | 
            padding-top: 20rpx;  
 | 
            box-sizing: border-box;  
 | 
        }  
 | 
        .container_c {  
 | 
            width: 100%;  
 | 
            padding: 30rpx;  
 | 
            box-sizing: border-box;  
 | 
            display: flex;  
 | 
            flex-direction: column;  
 | 
            background-color: #F7F7F7;  
 | 
            .container_c_head {  
 | 
                width: 100%;  
 | 
                display: flex;  
 | 
                align-items: center;  
 | 
                justify-content: space-between;  
 | 
                .container_c_head_left {  
 | 
                    display: flex;  
 | 
                    align-items: center;  
 | 
                    .container_c_head_left_h {  
 | 
                        width: 6rpx;  
 | 
                        height: 32rpx;  
 | 
                        background: #0055FF;  
 | 
                        border-radius: 4rpx;  
 | 
                        margin-right: 16rpx;  
 | 
                    }  
 | 
                    text {  
 | 
                        font-size: 32rpx;  
 | 
                        font-family: PingFangSC-Semibold, PingFang SC;  
 | 
                        font-weight: 600;  
 | 
                        color: #222222;  
 | 
                    }  
 | 
                }  
 | 
                .container_c_head_right {  
 | 
                    display: flex;  
 | 
                    align-items: center;  
 | 
                    justify-content: center;  
 | 
                    // width: 200rpx;  
 | 
                    padding: 0 20rpx;  
 | 
                    box-sizing: border-box;  
 | 
                    height: 52rpx;  
 | 
                    background: #FFFFFF;  
 | 
                    border-radius: 26rpx;  
 | 
                    border: 2rpx solid #EEEEEE;  
 | 
                    box-sizing: border-box;  
 | 
                    text {  
 | 
                        font-size: 24rpx;  
 | 
                        font-family: PingFangSC-Regular, PingFang SC;  
 | 
                        font-weight: 400;  
 | 
                        color: #333333;  
 | 
                        margin-right: 22rpx;  
 | 
                    }  
 | 
                    image {  
 | 
                        width: 20rpx;  
 | 
                        height: 10rpx;  
 | 
                    }  
 | 
                }  
 | 
            }  
 | 
            .container_c_list {  
 | 
                width: 100%;  
 | 
                margin-top: 32rpx;  
 | 
                display: flex;  
 | 
                flex-direction: column;  
 | 
                .container_c_list_wu {  
 | 
                    width: 100%;  
 | 
                    display: flex;  
 | 
                    align-items: center;  
 | 
                    justify-content: center;  
 | 
                    margin-top: 50rpx;  
 | 
                    image {  
 | 
                        width: 340rpx;  
 | 
                        height: 364rpx;  
 | 
                    }  
 | 
                }  
 | 
                .container_c_list_item {  
 | 
                    width: 100%;  
 | 
                    display: flex;  
 | 
                    flex-direction: column;  
 | 
                    padding: 30rpx;  
 | 
                    box-sizing: border-box;  
 | 
                    background-color: #ffffff;  
 | 
                    margin-bottom: 20rpx;  
 | 
                    .top {  
 | 
                        width: 100%;  
 | 
                        height: 50rpx;  
 | 
                        display: flex;  
 | 
                        align-items: center;  
 | 
                        justify-content: space-between;  
 | 
                        .top_left {  
 | 
                            flex: 1;  
 | 
                            overflow: hidden;  
 | 
                            white-space: nowrap;  
 | 
                            text-overflow: ellipsis;  
 | 
                            font-size: 32rpx;  
 | 
                            font-family: PingFangSC-Semibold, PingFang SC;  
 | 
                            font-weight: 600;  
 | 
                            color: #222222;  
 | 
                        }  
 | 
                        .des {  
 | 
                            color: #999999 !important;  
 | 
                            border: 2rpx solid #999999 !important;  
 | 
                        }  
 | 
                        .jx {  
 | 
                            color: #F62710 !important;  
 | 
                            border: 2rpx solid #F62710 !important;  
 | 
                        }  
 | 
                        .top_right {  
 | 
                            flex-shrink: 0;  
 | 
                            margin-left: 20rpx;  
 | 
                            // width: 104rpx;  
 | 
                            padding: 4rpx 8rpx;  
 | 
                            // height: 38rpx;  
 | 
                            border-radius: 4rpx;  
 | 
                            border: 2rpx solid #0055FF;  
 | 
                            display: flex;  
 | 
                            align-items: center;  
 | 
                            justify-content: center;  
 | 
                            font-size: 22rpx;  
 | 
                            font-family: PingFangSC-Regular, PingFang SC;  
 | 
                            font-weight: 400;  
 | 
                            color: #0055FF;  
 | 
                        }  
 | 
                    }  
 | 
                    .item_zw {  
 | 
                        width: 100%;  
 | 
                        height: 2rpx;  
 | 
                        background-color: #E5E5E5;  
 | 
                        margin: 28rpx 0 30rpx 0;  
 | 
                    }  
 | 
                    .item_info {  
 | 
                        width: 100%;  
 | 
                        display: flex;  
 | 
                        align-items: center;  
 | 
                        margin-top: 24rpx;  
 | 
                        &:first-child {  
 | 
                            margin-top: 0 !important;  
 | 
                        }  
 | 
                        .item_info_label {  
 | 
                            flex-shrink: 0;  
 | 
                            font-size: 28rpx;  
 | 
                            font-family: PingFangSC-Regular, PingFang SC;  
 | 
                            font-weight: 400;  
 | 
                            color: #666666;  
 | 
                        }  
 | 
                        .item_info_content {  
 | 
                            flex: 1;  
 | 
                            font-size: 28rpx;  
 | 
                            font-family: PingFangSC-Regular, PingFang SC;  
 | 
                            font-weight: 400;  
 | 
                            color: #333333;  
 | 
                        }  
 | 
                    }  
 | 
                }  
 | 
            }  
 | 
        }  
 | 
    }  
 | 
</style>  
 |