<template>
  <q-dialog v-model="persistent" content-class="bg-grey-1" persistent transition-show="scale" transition-hide="scale">
    <q-card style="width: 400px;max-width:400px;">
      <q-card-section>
        <div class="text-h6">{{optionTitle}}</div>
      </q-card-section>
      <q-card-section class="q-pt-none scroll" style="max-height: 70vh">
        <div class="row wrap">
          <q-input filled stack-label maxlength="100" :dense="false" v-model="objOption.LessonName" ref="LessonName"
            class="col-12 q-pb-lg" label="试听课程名称" :rules="[val => !!val || '请填写试听课程名称']" />
        </div>
        <div class="row wrap">
          <q-select stack-label class="col-12 q-pb-lg" color="primary" filled label="试听课主讲老师" option-value="TId"
            option-label="TeacherName" :options="TeacherList" v-model="objOption.TeacherId" emit-value map-options />
        </div>
        <div class="row wrap">
          <q-input filled stack-label :dense="false" v-model="objOption.ClassHourFee" ref="ClassHourFee"
            class="col-12 q-pb-lg" label="课时费" @keyup.native="checkPrice(objOption,'ClassHourFee')" maxlength="8" />
        </div>
        <div class="row wrap">
          <q-select stack-label class="col-12 q-pb-lg" color="primary" filled label="核算方式" option-value="Id"
            option-label="Name" :options="AccountTypeList" v-model="objOption.CalculateType" emit-value map-options />
        </div>
      </q-card-section>
      <q-separator />
      <q-card-actions align="right" class="bg-white">
        <q-btn label="取消" flat color="grey-10" style="font-weight:400 !important" @click="closeSaveForm" />
        <q-btn label="立即提交" color="accent q-px-md" style="font-weight:400 !important" :loading="saveLoading"
          @click="saveListen" />
      </q-card-actions>
    </q-card>
  </q-dialog>
</template>
<script>
  import {
    GetTrialLesson,
    SetTrialLesson
  } from '../../api/course/index'
  import {
    getTeacherDropDownList
  } from '../../api/school/index';

  export default {
    props: {
      saveObj: {
        type: Object,
        default: null
      }
    },
    data() {
      return {
        persistent: true,
        saveLoading: false,
        objOption: {
          Id: 0,
          LessonName: '', //试听课程名称
          TeacherId: '', //试听课主讲老师
          ClassHourFee: '', //课时费
          CalculateType: 1 //核酸方式1单次 2按月
        },
        TeacherList: [], //教师下拉
        //核算方式
        AccountTypeList: [{
          Id: 1,
          Name: '单次'
        }, {
          Id: 2,
          Name: '按月'
        }],
        optionTitle: "",
      }
    },
    created() {
      this.GetTeacherList();
    },
    mounted() {
      this.initObj();
    },
    methods: {
      //获取教师下拉
      GetTeacherList() {
        getTeacherDropDownList({}).then(res => {
          if (res.Code == 1) {
            this.TeacherList = res.Data;
            var obj = {
              TeacherName: '请选择',
              TId: 0
            }
            this.TeacherList.unshift(obj);
          }
        })
      },
      //初始化表单
      initObj() {
        if (this.saveObj && this.saveObj.Id > 0) {
          GetTrialLesson({
            Id: this.saveObj.Id
          }).then(res => {
            if (res.Code == 1) {
              let temData = res.Data;
              this.objOption.Id = temData.Id;
              this.objOption.LessonName = temData.LessonName;
              this.objOption.TeacherId = temData.TeacherId;
              this.objOption.ClassHourFee = temData.ClassHourFee;
              this.objOption.CalculateType = temData.CalculateType;
            }
          });
          this.optionTitle = "修改试听课程信息";
        } else {
          this.optionTitle = "新增试听课程信息";
          this.objOption.Id = 0;
          this.objOption.LessonName = '';
          this.objOption.TeacherId = '';
          this.objOption.ClassHourFee = '';
          this.objOption.CalculateType = 1;
        }
      },
      //关闭弹窗
      closeSaveForm() {
        this.$emit('close')
      },
      //保存菜单
      saveListen() {
        this.$refs.LessonName.validate();
        if (!this.$refs.LessonName.hasError) {
          this.saveLoading = true
          SetTrialLesson(this.objOption).then(res => {
            this.saveLoading = false;
            if (res.Code == 1) {
              this.$q.notify({
                icon: 'iconfont icon-chenggong',
                color: 'accent',
                timeout: 2000,
                message: '数据保存成功！',
                position: 'top'
              })
              this.$emit("success")
              this.closeSaveForm()
            }
          })
        }
      }
    }
  }
</script>