<style>
  .Student_Date .el-input__inner {
    background: transparent !important;
    border: 0 !important;
    padding-right:0 !important;
  }
</style>
<template>
  <div>
    <div class="row wrap">
      <q-btn label="新增" color="accent q-mb-lg" size="sm" @click="isShowAdd=true" />
      <q-btn label="取消" style="margin-left:20px;" v-if="isShowAdd" flat color="grey-10 q-mb-lg" size="sm"
        @click="isShowAdd=false" />
      <q-btn label="选择试听课" style="margin-left:50px;" color="accent q-mb-lg" size="sm" @click="isShowTeacher=true" />
    </div>
    <template v-if="isShowAdd">
      <div class="row wrap studentDate">
        <q-field filled class="q-pb-lg q-pr-lg" dense>
           <template v-slot:control>
            <el-date-picker v-model="addMsg.ClassDate" ref="ClassDate" :rules="[val => !!val || '请选择预约日期']" 
              style="width:230px" size="mini" type="date" placeholder="预约日期">
            </el-date-picker>
          </template>
        </q-field>
        <div class="Student_Date col-6 q-pr-lg">
          <q-field filled class="q-pb-lg" dense>
             <template v-slot:control>
              <el-time-select v-model="addMsg.ClassTime" size="mini" ref="ClassTime" style="width:50%" :picker-options="{
                      start: '09:00',
                      step: '00:15',
                      end: '21:00',
                      maxTime:addMsg.EndTime
                  }" placeholder="预约开始时间">
              </el-time-select>
              <el-time-select v-model="addMsg.EndTime" size="mini" dense ref="EndTime" style="width:50%" :picker-options="{
                  start: '09:00',
                  step: '00:15',
                  end: '21:00',
                  minTime:addMsg.ClassTime
              }" placeholder="预约结束时间">
              </el-time-select>  
            </template>
          </q-field>
        </div>
      </div>
      <div class="row wrap">
        <q-select filled stack-label option-value="Name" dense option-label="Name"
          @input="getTeacherChoose(addMsg.ClassContent)" v-model="addMsg.ClassContent" ref="ClassContent"
          :options="ContentList" :rules="[val => !!val || '请选择主讲内容']" label="主讲内容"
          class="col-6 q-pb-lg q-pr-lg" emit-value map-options />
        <q-select filled stack-label option-value="TId" option-label="TeacherName" v-model="addMsg.TeacherId"
          ref="TeacherId" :options="TeacherList" label="选择教师" dense class="col-6 q-pb-lg q-pr-lg" emit-value
          map-options />
      </div>
      <div class="row wrap">
        <q-select filled stack-label option-value="RoomId" dense option-label="RoomName" v-model="addMsg.ClassRoomId"
          ref="ClassRoomId" :options="ClassRoomList" label="关联教室" class="col-6 q-pb-lg q-pr-lg"
          emit-value map-options />
      </div>
      <div class="row wrap" style="margin-bottom:10px;">
        <q-btn label="新增" color="accent q-mb-lg" size="md" @click="saveAppointForm()" />
      </div>
    </template>
    <div style="display:flex;flex:1;flex-direction: column;overflow:hidden;">
      <div class="TimeLineDiv">
        <q-timeline color="primary">
          <q-timeline-entry v-for="(tItem,tIndex) in dataList" :key="tIndex">
            <template v-slot:title>
              <div class="visit_Cont">
                <div class="Log_Content">
                    <div>预约时间：{{tItem.ClassDateStr}} {{tItem.ClassTime}}-{{tItem.EndTime}}</div>
                    <div class="StuCom_Remark">
                        <div style="flex-shrink:0">主讲内容：</div>
                        <div class="StuCom_Inner">{{tItem.ClassContent}}</div>
                    </div>
                    <div>主讲老师：{{tItem.TeacherName}}</div>
                    <div class="StuCom_Remark">
                        <span class="StuCom_Left">教室</span>：{{tItem.RoomName}}
                    </div>
                </div>
                <div @click="delFollow(tItem.Id)" style="margin-top:10px;" class="visit_delete text-negative">删除</div>
              </div>
            </template>
            <template v-slot:subtitle>
              <div class="Time_TopList">
                <div>{{ tItem.CreateTimeStr2 }}</div>
                <div>{{ tItem.CreateByName }}</div>
              </div>
            </template>
          </q-timeline-entry>
        </q-timeline>
      </div>
    </div>
    <div style="margin:20px 0;">
      <q-pagination class="full-width justify-end" v-model="qMsg.pageIndex" color="primary" :max="page_Count" input
        @input="changePage" />
    </div>
    <audition-form v-if="isShowTeacher" @close="closeAuditForm" @getchildInfo="getchildInfo"></audition-form>
  </div>
</template>
<script>
  import {
    SetVisitorReserve,
    queryVisitorReservePage,
    RemoveVisitorReserve
  } from "../../../api/scheduling/schedu";

  import {
    getTeacherDropDownList,
    queryClassRoomList
  } from "../../../api/school/index";
  import auditionForm from '../../schedul/audition-form'

  export default {
    meta: {
      title: ""
    },
    components: {
      auditionForm
    },
    props: {
      saveObj: {
        type: Object,
        default: null
      }
    },
    data() {
      return {
        isShowAdd: false,
        addMsg: {
          Id: 0, //编号
          Visitor_Id: 0, //访客编号
          ReserveClassId: 0, //选中的班级编号
          ClassDate: "", //预约日期
          ClassTime: "", //预约开始时间
          EndTime: "", //预约结束时间
          TeacherId: 0, //教师编号
          ClassRoomId: 0, //教室编号
          ClassContent: "", //主讲内容
        },
        qMsg: {
          pageIndex: 1,
          pageSize: 12,
          Visitor_Id: 0,
        },
        ContentList: [{
          Id: 1,
          Name: '少儿类：主要以丰富可与时间和兴趣为主，要求课堂轻松活跃。趣味性十足'
        }, {
          Id: 2,
          Name: '兴趣类：成年人，对日语学习从兴趣开始，要求课堂丰富有趣'
        }, {
          Id: 3,
          Name: '实用类：对于日语学习有一定的需求（考研、就业等），要求学习过程专业，干货多'
        }, {
          Id: 4,
          Name: '留学类：打算去往日本留学（本科、硕士、语言学校、私塾等）'
        }],
        TeacherList: [],
        AllTeacherList: [],
        ClassRoomList: [],
        dataList: [],
        page_Count: 0,
        isShowTeacher: false
      }
    },
    created() {
      this.getClassRoomList();
      this.GetTeacherList();
      if (this.saveObj) {
        this.addMsg.Visitor_Id = this.saveObj.StuId;
        this.qMsg.Visitor_Id = this.saveObj.StuId;
      }
    },
    mounted() {
      this.getList();
    },
    methods: {
      //保存
      saveAppointForm() {
        if(this.addMsg.ClassDate==''){
          this.$q.notify({
            type: 'negative',
            position: "top",
            timeout: 2000,
            message: '请选择预约日期！',
          })
          return;
        }
        if (this.addMsg.ClassTime == '') {
          this.$q.notify({
            type: 'negative',
            position: "top",
            timeout: 2000,
            message: '请选择预约开始时间！',
          })
          return;
        }
        if (this.addMsg.EndTime == '') {
          this.$q.notify({
            type: 'negative',
            position: "top",
            timeout: 2000,
            message: '请选择预约结束时间！',
          })
          return;
        }
        if (!this.$refs.ClassContent.hasError) {
          SetVisitorReserve(this.addMsg).then(res => {
            if (res.Code == 1) {
              this.$q.notify({
                icon: 'iconfont icon-chenggong',
                color: 'accent',
                timeout: 2000,
                message: res.Message,
                position: 'top'
              })
              this.getList();
            } else {
              this.$q.notify({
                type: 'negative',
                position: "top",
                timeout: 2000,
                message: res.Message,
              })
            }
            this.isShowAdd = false;
            this.clearMsg();
          })
        }
      },
      //获取试听列表
      getList() {
        queryVisitorReservePage(this.qMsg).then(res => {
          if (res.Code == 1) {
            this.dataList = res.Data.PageData;
            this.page_Count = res.Data.PageCount;
          }
        })
      },
      //清除
      clearMsg() {
        this.addMsg.Id = 0;
        this.addMsg.ReserveClassId = 0;
        this.addMsg.ClassDate = '';
        this.addMsg.ClassTime = '';
        this.addMsg.EndTime = '';
        this.addMsg.TeacherId = 0;
        this.addMsg.ClassRoomId = 0;
        this.addMsg.ClassContent = '';
      },
      changePage(val) {
        this.qMsg.pageIndex = val;
        this.getList();
      },
      //删除试听
      delFollow(Id) {
        let that = this
        this.$q.dialog({
          title: '提示信息',
          message: '是否确定删除？',
          cancel: true,
          persistent: true,
          ok: "确定",
          cancel: "取消",
        }).onOk(() => {
          deleteStudentFollow({
            Id: Id
          }).then((res) => {
            that.$q.notify({
              icon: 'iconfont icon-chenggong',
              timeout: 2000,
              message: res.Message,
              position: 'top'
            })
            that.getList()
          })
        }).onCancel(() => {});
      },
      //选择主讲内容赋值选择教师
      getTeacherChoose(content) {
        var TList = [];
        this.addMsg.TeacherId = '';
        this.TeacherList = this.AllTeacherList;
        this.TeacherList.forEach(x => {
          this.ContentList.forEach(y => {
            if (y.Name == content) {
              if (x.TId > 0) {
                if (x.ChooseSpecialty.indexOf(y.Id) > -1) {
                  TList.push(x);
                }
              }
            }
          })
        })
        this.TeacherList = TList;
      },
      //获取教室下拉
      getClassRoomList() {
        queryClassRoomList({}).then(res => {
          if (res.Code == 1) {
            this.ClassRoomList = res.Data;
            var obj = {
              RoomName: '请选择',
              RoomId: 0
            }
            this.ClassRoomList.unshift(obj);
          }
        })
      },
      //获取教师下拉
      GetTeacherList() {
        getTeacherDropDownList({}).then(res => {
          if (res.Code == 1) {
            this.TeacherList = res.Data;
            this.AllTeacherList = res.Data;
            var obj = {
              TeacherName: '请选择',
              TId: 0
            }
            this.TeacherList.unshift(obj);
            this.AllTeacherList.unshift(obj);
          }
        });
      },
      closeAuditForm() {
        this.isShowTeacher = false;
      },
      //子组件选中传值
      getchildInfo(obj) {
        if (obj) {
          this.addMsg.TeacherId = obj.TeacherId;
          this.addMsg.ClassRoomId = obj.ClassRoomId;
          this.addMsg.ReserveClassId = obj.ReserveClassId;
          this.addMsg.ClassDate = obj.ClassDateStr;
          this.addMsg.ClassTime = obj.ClassTime;
          this.addMsg.EndTime = obj.EndTime;
          this.addMsg.ClassContent = obj.ClassContent;
          this.isShowAdd = true;
        }
      },
    },
  }
</script>