<template>

    <view class="">
        <view v-if="reActive == 1" @click="openPop"
            style="box-sizing: border-box;padding: 0 32rpx;margin-bottom: 32rpx;" class="btn-roll">
            排位调整
        </view>

        
        <view class="">
            <view class="ranked">
                <view v-for="(item,index) in selfClassList" :key="index" class="ranked-item">
                    <view @click="reActive == 1 ?itemClick(item1):Comment(item1)" v-for="(item1,index1) in item.nodes"
                        :key="item1.key" class="ranked-item-tr">
                        <!-- <image style="width: 90rpx;height: 90rpx;" src="@/static/image/female.png" mode=""></image> -->
                        <view :class="active.indexOf(item1.key) == -1 ? '' :'active'" style="width: 90%;text-align: center;background-color: #fff;
					border-radius: 5px;">
                            {{item1.title}} {{item1.key}}
                        </view>
                    </view>
                </view>
            </view>
        </view>

        <uni-popup ref="popup" background-color="transparent">
            <view style="padding: 0;" class="popup-content"
                :class="{ 'popup-height': type === 'left' || type === 'right' }">
                <StuDraggable @change='change' :list.sync='selfClassList' />
            </view>
        </uni-popup>
        
    </view>
</template>

<script>
    import topBtn from '@/components/topBtn.vue'
    import StuDraggable from './stuDraggable.vue'
    import Tag from './tag.vue'
    import {
        getStuSchoolIdByStuClassId
    } from "@/common/api/stu.js"
    export default {
        components: {
            topBtn,
            StuDraggable,
            Tag
        },
        data() {
            return {
                show_classes: false,
                id: 1,
                info: {},
                type: 'center',
                btnList: ['学生评分', '坐位调整'],
                reActive: 0,
                active: [],
                activeList: [],
                tagList: [],
                list: [],
                teachList: [],
                chooseClassName: '',
                chooseClassId: '',
                selfClassList: [],
                notSelfClass: true,
            }
        },
        mounted() {
            this.id = this.$store.state.teacherInfo.selfclass.id

            this.getClassroomList();
            this.reActive = 1;
        },
        methods: {
            loginOut() {
                uni.setStorageSync("token", '')
                uni.navigateTo({
                    url: "/pages/login/login"
                })
            },
            doChooseClass(val) {
                console.log(val, "val");
                this.chooseClassId = val.value[0].id
                this.chooseClassName = val.value[0].class_name
                this.getStudent()
                this.show_classes = false
            },
            getClassroomList() {
                let teacher_id = this.$store.state.teacherInfo.id
                this.$api.sendRequest({
                    url: `/mobile/teacher/teachClasses`,
                    method: "post",
                    data: {
                        teacher_id: teacher_id
                    },
                    success: res => {
                        this.teachList.push(res.data)
                        console.log(this.teachList);
                    }
                })

            },
            itemClick(item) {
                let val = this.active.indexOf(item.key)
                if (val == -1) {
                    this.active.push(item.key)
                    this.activeList.push(item)
                } else {
                    this.active.splice(val, 1)
                    this.activeList.splice(val, 1)
                }
                if (this.active.length == 2) {

                    this.selfClassList.forEach((item2, index2) => {
                        item2.nodes.forEach((item1, index1) => {
                            let indexVal = this.active.indexOf(item1.key)
                            if (indexVal != -1) {

                                this.activeList.forEach(item3 => {
                                    if (item3.key != item1.key) {
                                        item2.nodes.splice(index1, 1, item3)
                                    }
                                })

                            }
                        })
                    })
                    this.activeList = []
                    this.active = []
                    let info = {
                        classroom_id: this.id,
                        seat_list: this.selfClassList
                    }
                    // return console.log(info);
                    this.$api.sendRequest({
                        url: `/mobile/saveSeat`,
                        method: "PUT",
                        data: info,
                        success: res => {
                            uni.showToast({
                                title: res.msg,

                            })

                        }
                    })
                }
            },
            openPop() {
                if (!this.notSelfClass) {
                    this.type = 'center'
                    this.$refs.popup.open('center')
                }
            },
            Comment(item) {
                console.log(item, "sgism");
                //item的id是studentClass的id,需要转换成stu_school_id传到

                this.$api.sendRequest({
                    url: getStuSchoolIdByStuClassId,
                    data: {
                        stu_class_id: item.id
                    },
                    success: res => {
                        console.log(res, "resrrrrr");


                        let stu_school_id = res.data.stu_school_id
                        uni.navigateTo({
                            url: "/pages/studentTab/studentTab?stu_school_id=" + stu_school_id
                        })
                    }
                })
            },
            popChange(val) {
                if (!val.show) {
                    this.tagList.forEach(item => {
                        item.show = false
                    })
                }
            },
            getStudent() {
                this.$api.sendRequest({
                    url: `/mobile/getSeat?classroom_id=${this.chooseClassId}`,
                    success: res => {
                        this.list = res.data

                    }
                })
            },
            change(list) {
                console.log("组件传的数据", list);
                this.selfClassList = list
                let info = {
                    classroom_id: this.id,
                    seat_list: this.selfClassList
                }
                // return console.log(info);
                this.$api.sendRequest({
                    url: `/mobile/saveSeat`,
                    method: "PUT",
                    data: info,
                    success: res => {
                        uni.showToast({
                            title: res.msg,
                        })
                    }
                })
            },
            getTagList() {
                this.$api.sendRequest({
                    url: `/mobile/student/tabs?id=${this.info.id}`,
                    success: res => {
                        res.data.forEach(item => {
                            item.show = false
                        })
                        this.tagList = res.data
                    }
                })
            },
            CommentOn(item, score) {

                let info = {
                    id: this.info.id,
                    tab_id: item.tab_id,
                    score: score
                }
                this.$api.sendRequest({
                    url: `/mobile/student/eval`,
                    data: info,
                    success: res => {
                        uni.showToast({
                            title: `${this.info.title} ${item.tab_name} ${item.type == 1 ? '+':'-'} ${score}分`,
                            icon: 'none'
                        })

                        this.$refs.CommentPopup.close()
                    }
                })
            }

        },
        watch: {
            reActive(newVal) {
                this.active = []
                this.activeList = []
                console.log(newVal);
                if (newVal == 1) {
                    console.log(this.$store.state.teacherInfo.selfclass, "this.$store.state.teacherInfo.selfclass");
                    if (this.$store.state.teacherInfo.selfclass) {
                        let classroom_id = this.$store.state.teacherInfo.selfclass.id
                        // let classroom_id=1
                        this.$api.sendRequest({
                            url: `/mobile/getSeat?classroom_id=${classroom_id}`,
                            success: res => {
                                console.log(res.data);
                                this.selfClassList = res.data/* .reverse().map(item => {
                                    item.nodes = item.nodes.reverse().filter(el => {
                                        return !!el.id;
                                    })
                                    return item;
                                }) */
                                this.notSelfClass = false
                            }
                        })
                    } else {
                        this.selfClassList = []
                        uni.showToast({
                            icon: "none",
                            title: "您不是班主任"
                        })
                    }
                }
            }
        },

    }
</script>

<style lang="scss" scoped>
    .form-btn-content {
        width: 30%;
        background: #05cca1;
        height: 72rpx;
        border-radius: 36rpx;
        color: #fff;
        font-size: 32rpx;
        text-align: center;
        line-height: 72rpx;
        margin: 0 auto;
        position: fixed;
        bottom: 40rpx;
        left: 35%;

    }

    .platform {
        display: flex;
        justify-content: center;
        align-items: center;
        position: relative;
        height: 30rpx;
        margin-top: 60rpx;

        .platform-color {
            position: absolute;
            left: 0;
            top: 0;
            height: 60rpx;
            background-color: rgba(5, 204, 161, 1);
            width: 10rpx;
        }

        .platform-text {
            text-align: center;
            width: 60%;
            margin-top: 40rpx;

        }
    }

    .pop-title {
        border-bottom: 1px solid #f2f2f2;
        font-size: 36rpx;
        padding-bottom: 20rpx;
        display: flex;
        align-items: center;
    }

    .popup-content {
        border-radius: 10px;
        box-sizing: border-box;
        padding: 0 32rpx;
    }

    .btn-roll {
        background-color: #fff;
        border-radius: 25rpx;
        width: 190rpx;
        color: #666;
        height: 60rpx;
        line-height: 60rpx;
        text-align: center;
        margin-left: 32rpx;
    }

    .ranked {
        width: 100%;

        text-align: center;
        font-size: 10px;
        box-sizing: border-box;
        display: flex;

        .ranked-item {
            flex: 1;
            box-sizing: border-box;



            .ranked-item-tr {
                margin-bottom: 16rpx;
                border-radius: 5px;
                box-sizing: border-box;
                width: 100%;

                display: flex;
                justify-content: center;
            }

            .ranked-item-tr:last-child {
                margin-bottom: 0;
            }

            .active {
                border: 1px solid #ccc !important;
                background-color: rgba(5, 204, 161, 1) !important;
                color: #fff !important;
                box-sizing: border-box;
            }
        }

        .ranked-item:nth-child(2n) {
            border-right: 1px solid #ccc;
        }

        .ranked-item:last-child {
            border-right: 0;
        }

    }

    .ranked-radio {
        width: 100px;
        position: absolute;
        left: 50%;
        transform: translate(-50%);
        top: 0rpx;

        border-bottom: 3px solid rgba(5, 204, 161, 1);
        border-radius: 50% 50% 0 0;
    }

    .visit-item {
        display: flex;
        align-items: center;

        .visit-item-left {
            width: 120rpx;
            color: #666;
        }
    }
</style>