;(function () {
  function ownKeys(object, enumerableOnly) {
    var keys = Object.keys(object)
    if (Object.getOwnPropertySymbols) {
      var symbols = Object.getOwnPropertySymbols(object)
      enumerableOnly &&
        (symbols = symbols.filter(function (sym) {
          return Object.getOwnPropertyDescriptor(object, sym).enumerable
        })),
        keys.push.apply(keys, symbols)
    }
    return keys
  }
  function _objectSpread(target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = null != arguments[i] ? arguments[i] : {}
      i % 2
        ? ownKeys(Object(source), !0).forEach(function (key) {
            _defineProperty(target, key, source[key])
          })
        : Object.getOwnPropertyDescriptors
        ? Object.defineProperties(
            target,
            Object.getOwnPropertyDescriptors(source)
          )
        : ownKeys(Object(source)).forEach(function (key) {
            Object.defineProperty(
              target,
              key,
              Object.getOwnPropertyDescriptor(source, key)
            )
          })
    }
    return target
  }
  function _defineProperty(obj, key, value) {
    if (key in obj) {
      Object.defineProperty(obj, key, {
        value: value,
        enumerable: true,
        configurable: true,
        writable: true
      })
    } else {
      obj[key] = value
    }
    return obj
  }
  function _toConsumableArray(arr) {
    return (
      _arrayWithoutHoles(arr) ||
      _iterableToArray(arr) ||
      _unsupportedIterableToArray(arr) ||
      _nonIterableSpread()
    )
  }
  function _nonIterableSpread() {
    throw new TypeError(
      'Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.'
    )
  }
  function _unsupportedIterableToArray(o, minLen) {
    if (!o) return
    if (typeof o === 'string') return _arrayLikeToArray(o, minLen)
    var n = Object.prototype.toString.call(o).slice(8, -1)
    if (n === 'Object' && o.constructor) n = o.constructor.name
    if (n === 'Map' || n === 'Set') return Array.from(o)
    if (n === 'Arguments' || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
      return _arrayLikeToArray(o, minLen)
  }
  function _iterableToArray(iter) {
    if (
      (typeof Symbol !== 'undefined' && iter[Symbol.iterator] != null) ||
      iter['@@iterator'] != null
    )
      return Array.from(iter)
  }
  function _arrayWithoutHoles(arr) {
    if (Array.isArray(arr)) return _arrayLikeToArray(arr)
  }
  function _arrayLikeToArray(arr, len) {
    if (len == null || len > arr.length) len = arr.length
    for (var i = 0, arr2 = new Array(len); i < len; i++) {
      arr2[i] = arr[i]
    }
    return arr2
  }
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
    try {
      var info = gen[key](arg)
      var value = info.value
    } catch (error) {
      reject(error)
      return
    }
    if (info.done) {
      resolve(value)
    } else {
      Promise.resolve(value).then(_next, _throw)
    }
  }
  function _asyncToGenerator(fn) {
    return function () {
      var self = this,
        args = arguments
      return new Promise(function (resolve, reject) {
        var gen = fn.apply(self, args)
        function _next(value) {
          asyncGeneratorStep(gen, resolve, reject, _next, _throw, 'next', value)
        }
        function _throw(err) {
          asyncGeneratorStep(gen, resolve, reject, _next, _throw, 'throw', err)
        }
        _next(undefined)
      })
    }
  }
  var __vite_style__ = document.createElement('style')
  __vite_style__.innerHTML =
    '._container_5bgh5_1{padding:.34667rem .37333rem}._container_5bgh5_1 .van-cell{border-radius:.10667rem;margin-bottom:.26667rem}._container_5bgh5_1 .van-field__label{border-right:.02667rem solid #dfdfdf;font-size:.42667rem;color:#333}._tips_5bgh5_13{display:flex;align-items:center;font-size:.42667rem;color:#1a1a1a;font-weight:500}._tips_5bgh5_13 ._icon_5bgh5_20{width:.50667rem;height:.50667rem;margin-right:.18667rem}._tipsContent_5bgh5_25{font-size:.37333rem;color:#696969;line-height:.56rem}._week_5bgh5_30{display:flex;justify-content:space-between}._week_5bgh5_30 .van-radio__icon{display:none}._week_5bgh5_30 .van-radio__label{display:flex;align-items:center;justify-content:center;width:1.04rem;height:1.04rem;background:#f5f8fb;border-radius:.16rem;font-size:.32rem;font-weight:500;color:var(--van-primary);margin:0}._week_5bgh5_30 .van-radio[aria-checked=true] .van-radio__label{background-color:var(--van-primary);color:#fff}._week_5bgh5_30 .van-radio.van-radio--disabled .van-radio__label{color:#cdced0}._holdays_5bgh5_57{display:flex;justify-content:flex-end}._holdays_5bgh5_57 .van-radio__icon{display:none}._holdays_5bgh5_57 .van-radio__label{display:flex;align-items:center;justify-content:center;width:1.01333rem;height:.58667rem;background:#f5f8fb;border-radius:.08rem;border:.02667rem solid #999999;font-size:.32rem;font-weight:500;color:#999;margin:0}._holdays_5bgh5_57 .van-radio[aria-checked=true] .van-radio__label{background-color:var(--van-primary);border-color:var(--van-primary);color:#fff}._coursePopup_5bgh5_83{min-height:10.96rem;border-radius:.21333rem;padding:.48rem .37333rem;box-sizing:border-box}._tags_5bgh5_89{display:flex;flex-wrap:wrap;padding:.32rem}._tags_5bgh5_89 .van-tag{padding:.05333rem .13333rem;border-radius:.08rem;border:.02667rem solid var(--van-primary);background-color:#e0f7f3;color:var(--van-primary);margin-right:.21333rem;margin-bottom:.21333rem;font-size:.32rem;line-height:.45333rem;font-weight:500}._pickerTitle_5bgh5_106{justify-content:center;font-size:.48rem;color:#000;font-weight:500;text-align:center}._student_5bgh5_113{margin:0!important}._student_5bgh5_113 .van-field__control{opacity:0!important}._container_1df8b_1{background-color:#f7f8f9;min-height:100vh;padding-bottom:1.86667rem;box-sizing:border-box}._label_1df8b_7{margin-right:.21333rem;font-size:.37333rem}._label_1df8b_7 .van-list__loading,._label_1df8b_7 .van-list__finished-text,._label_1df8b_7 .van-list__error-text{width:100%}._label_1df8b_7 .iconfont-down{margin-left:.10667rem}._btnGroup_1df8b_19{position:fixed;left:0;right:0;bottom:0;padding:.26667rem .74667rem;background-color:#fff}._btnGroup_1df8b_19 button{height:1.33333rem;line-height:1.33333rem}._check_1df8b_31{display:flex;justify-content:flex-end}._subjects_1uhdv_1 ._subjectContainer_1uhdv_1{height:45vh;overflow-y:auto}._subjects_1uhdv_1 ._title_1uhdv_5{padding:.32rem 0;margin:0 .4rem;color:#333;font-size:.42667rem}._subjects_1uhdv_1 ._title_1uhdv_5:before{content:" ";display:inline-block;width:.08rem;height:.42667rem;background:#01C1B5;border-radius:.08rem;margin-right:.21333rem;vertical-align:text-bottom}._subjects_1uhdv_1 ._subject-list_1uhdv_21{display:flex;align-items:center;flex-wrap:wrap;padding:0 .26667rem}._subjects_1uhdv_1 ._subject-list_1uhdv_21 ._subject-item_1uhdv_27{position:relative;width:2.88rem;height:2.88rem;margin-right:.13333rem;margin-left:.13333rem;margin-bottom:.26667rem;border-radius:.18667rem;overflow:hidden}._subjects_1uhdv_1 ._subject-list_1uhdv_21 ._topBg_1uhdv_37{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.54) 100%)}._subjects_1uhdv_1 ._subject-list_1uhdv_21 ._checkbox_1uhdv_45{position:absolute;right:.18667rem;top:.18667rem}._subjects_1uhdv_1 ._subject-list_1uhdv_21 ._name_1uhdv_50{position:absolute;bottom:.18667rem;left:.18667rem;font-size:.42667rem;font-weight:500;color:#fff;line-height:.58667rem}._subjects_1uhdv_1 ._subject-list_1uhdv_21 .van-checkbox__icon,._subjects_1uhdv_1 ._subject-list_1uhdv_21 .van-radio__icon{height:.58667rem}._subjects_1uhdv_1 ._subject-list_1uhdv_21 .van-checkbox__icon .van-icon,._subjects_1uhdv_1 ._subject-list_1uhdv_21 .van-radio__icon .van-icon{border:0;background-color:transparent}._subjects_1uhdv_1 ._subject-list_1uhdv_21 .van-checkbox__icon--checked .van-icon,._subjects_1uhdv_1 ._subject-list_1uhdv_21 .van-radio__icon--checked .van-icon{background-color:transparent;border:transparent}._btns_1uhdv_73{display:flex;justify-content:space-around}._btns_1uhdv_73 .van-button{width:45%}._filterTitle_1uhdv_80{font-size:.48rem;font-weight:500;color:#000;line-height:.66667rem;text-align:center;padding:.53333rem 0}._createClass_129c1_1{padding:.34667rem .37333rem}._arrangeCell_129c1_4{margin:.26667rem 0 0;width:auto;border-radius:.26667rem;overflow:hidden}._rTitle_129c1_10{display:flex;align-items:center;font-size:.42667rem;color:#333;font-weight:500}._rTitle_129c1_10:before{margin-right:.21333rem;content:" ";display:inline-block;width:.10667rem;height:.45333rem;background:linear-gradient(180deg,#59e5d5 0%,#01C1B5 100%);border-radius:.08rem}._rTag_129c1_26{padding:.26667rem 0}._rTag_129c1_26 ._tag_129c1_29{background:#e9fff8;margin-bottom:.21333rem}._selectPopup_129c1_33{width:8.32rem;background:#ffffff;border-radius:.21333rem}._selectPopup_129c1_33 ._selectContainer_129c1_38{padding:.48rem .37333rem}._selectPopup_129c1_33 ._rTitle_129c1_10{font-size:.48rem}._selectPopup_129c1_33 ._selectPopupContent_129c1_44{padding:.53333rem 0}._selectPopup_129c1_33 ._desc_129c1_47,._selectPopup_129c1_33 ._times_129c1_48{font-size:.37333rem;color:#666;line-height:.53333rem}._selectPopup_129c1_33 ._times_129c1_48{padding-top:.4rem}._selectPopup_129c1_33 ._times_129c1_48 span{display:block}._selectPopup_129c1_33 ._selectBtn_129c1_59{display:flex;align-items:center;justify-content:space-between}._selectPopup_129c1_33 ._selectBtn_129c1_59 ._btn_129c1_64{width:48%}._coursePopup_129c1_67{min-height:10.96rem;border-radius:.21333rem;padding:.48rem .37333rem;box-sizing:border-box}._box_12gfu_1{font-size:.37333rem;line-height:.53333rem}._wrap_12gfu_5{max-height:50vh;overflow-y:auto}._title_12gfu_9{position:relative;display:flex;align-items:center;padding:.21333rem 0;font-size:.48rem;font-weight:500;color:#333;line-height:.8rem}._leftIcon_12gfu_19{width:.10667rem;height:.48rem;background:linear-gradient(180deg,#59e5d5 0%,#01C1B5 100%);border-radius:.08rem;margin-right:.16rem}._stu_12gfu_26{color:#333;font-weight:400}._timeBox_12gfu_30{height:3.57333rem;overflow-y:auto;background-color:#f7f8f9;border-radius:.21333rem;margin:.26667rem 0;padding:.18667rem .21333rem}._timeTitle_12gfu_38{color:#333;font-weight:500}._timeItem_12gfu_42{color:#666;line-height:.64rem}._footer_12gfu_46{display:flex;justify-content:space-evenly;padding:.26667rem 0}._footer_12gfu_46 button{width:3.62667rem}\n'
  document.head.appendChild(__vite_style__)
  System.register(
    [
      './index-legacy.48bd16d8.js',
      './index-legacy.595c24c3.js',
      './vendor-legacy.09f20d09.js',
      './index-legacy.f25f109a7.js',
      './index-legacy.f25f109a.js',
      './index-legacy.f25f109a5.js',
      './index-legacy.637f35565.js',
      './index-legacy.f25f109a14.js',
      './index-legacy.f25f109a12.js',
      './index-legacy.f25f109a10.js',
      './icon_tips-legacy.b7861467.js',
      './index-legacy.535e160e.js',
      './index-legacy.fa4145a4.js',
      './index-legacy.f72eae88.js',
      './index-legacy.f25f109a13.js',
      './index-legacy.f25f109a3.js',
      './index-legacy.88d15645.js',
      './index-legacy.f25f109a2.js',
      './checkbox_default-legacy.88950e5d.js'
    ],
    function (exports) {
      'use strict'
      var Calendar,
        ColResult,
        request,
        state,
        getWeekCh,
        defineComponent,
        Toast,
        createVNode,
        createTextVNode,
        CheckboxGroup,
        Fragment,
        Image,
        Loading,
        Checkbox,
        Icon,
        RadioGroup,
        Radio,
        Sticky,
        Button,
        ref,
        reactive,
        onMounted,
        src,
        Popup,
        computed,
        Form,
        Field,
        mergeProps,
        Cell,
        Tag,
        Stepper,
        ActionSheet,
        dayjs,
        watch,
        useRouter,
        Dialog,
        nextTick,
        iconTips,
        ColPopup,
        ColHeader,
        ColSearch,
        Student,
        checkBoxActive,
        checkBoxDefault
      return {
        setters: [
          function (module) {
            Calendar = module.C
          },
          function (module) {
            ColResult = module.C
            request = module.r
            state = module.s
            getWeekCh = module.m
          },
          function (module) {
            defineComponent = module.d
            Toast = module.T
            createVNode = module.a
            createTextVNode = module.j
            CheckboxGroup = module.a4
            Fragment = module.F
            Image = module.I
            Loading = module.L
            Checkbox = module.a5
            Icon = module.K
            RadioGroup = module.ac
            Radio = module.ad
            Sticky = module.S
            Button = module.B
            ref = module.l
            reactive = module.h
            onMounted = module.m
            src = module.s
            Popup = module.P
            computed = module.p
            Form = module.aa
            Field = module.G
            mergeProps = module.a6
            Cell = module.C
            Tag = module.U
            Stepper = module.Y
            ActionSheet = module.N
            dayjs = module.g
            watch = module._
            useRouter = module.k
            Dialog = module.D
            nextTick = module.q
          },
          function () {},
          function () {},
          function () {},
          function () {},
          function () {},
          function () {},
          function () {},
          function (module) {
            iconTips = module.i
          },
          function (module) {
            ColPopup = module.C
          },
          function (module) {
            ColHeader = module.C
          },
          function (module) {
            ColSearch = module.C
          },
          function () {},
          function () {},
          function (module) {
            Student = module.S
          },
          function () {},
          function (module) {
            checkBoxActive = module.c
            checkBoxDefault = module.a
          }
        ],
        execute: function execute() {
          var _Object$freeze
          var container$1 = '_container_5bgh5_1'
          var tips = '_tips_5bgh5_13'
          var icon = '_icon_5bgh5_20'
          var tipsContent = '_tipsContent_5bgh5_25'
          var week = '_week_5bgh5_30'
          var holdays = '_holdays_5bgh5_57'
          var coursePopup$1 = '_coursePopup_5bgh5_83'
          var tags = '_tags_5bgh5_89'
          var pickerTitle = '_pickerTitle_5bgh5_106'
          var student = '_student_5bgh5_113'
          var styles$4 = {
            container: container$1,
            tips: tips,
            icon: icon,
            tipsContent: tipsContent,
            week: week,
            holdays: holdays,
            coursePopup: coursePopup$1,
            tags: tags,
            pickerTitle: pickerTitle,
            student: student
          }
          var container = '_container_1df8b_1'
          var label = '_label_1df8b_7'
          var btnGroup = '_btnGroup_1df8b_19'
          var check = '_check_1df8b_31'
          var styles$3 = {
            container: container,
            label: label,
            btnGroup: btnGroup,
            check: check
          }
          var subjects = '_subjects_1uhdv_1'
          var subjectContainer = '_subjectContainer_1uhdv_1'
          var title$1 = '_title_1uhdv_5'
          var topBg = '_topBg_1uhdv_37'
          var checkbox = '_checkbox_1uhdv_45'
          var name = '_name_1uhdv_50'
          var btns = '_btns_1uhdv_73'
          var filterTitle = '_filterTitle_1uhdv_80'
          var styles$2 = {
            subjects: subjects,
            subjectContainer: subjectContainer,
            title: title$1,
            'subject-list': '_subject-list_1uhdv_21',
            'subject-item': '_subject-item_1uhdv_27',
            topBg: topBg,
            checkbox: checkbox,
            name: name,
            btns: btns,
            filterTitle: filterTitle
          }
          var Voice = defineComponent({
            name: 'SubjectList',
            props: {
              onChoice: { type: Function, default: function _default(item) {} },
              choiceSubjectIds: { type: Array, default: [] },
              subjectList: { type: Array, default: [] },
              max: {
                // 最多可选数量
                type: Number,
                default: 5
              },
              selectType: {
                // 选择类型，Radio：单选，Checkbox：多选
                type: String,
                default: 'Checkbox'
              },
              single: {
                // 单选模式
                type: Boolean,
                default: false
              }
            },
            data: function data() {
              return {
                checkBox: [],
                checkboxRefs: [],
                radio: null // 单选
              }
            },
            mounted: function mounted() {
              var _this = this
              return _asyncToGenerator(
                /*#__PURE__*/ regeneratorRuntime.mark(function _callee() {
                  return regeneratorRuntime.wrap(function _callee$(_context) {
                    while (1) {
                      switch ((_context.prev = _context.next)) {
                        case 0:
                          _this.checkBox = _this.choiceSubjectIds
                        case 1:
                        case 'end':
                          return _context.stop()
                      }
                    }
                  }, _callee)
                })
              )()
            },
            watch: {
              choiceSubjectIds: function choiceSubjectIds(val, oldVal) {
                // 同步更新显示数据
                this.checkBox = _toConsumableArray(val)
              }
            },
            methods: {
              onSelect: function onSelect(id) {
                if (this.selectType === 'Checkbox') {
                  if (
                    this.max === this.checkBox.length &&
                    !this.checkBox.includes(id)
                  ) {
                    Toast(
                      '\u4E50\u5668\u6700\u591A\u9009\u62E9'.concat(
                        this.max,
                        '\u4E2A'
                      )
                    )
                  }
                  this.checkboxRefs[id].toggle()
                } else if (this.selectType === 'Radio') {
                  this.radio = id
                }
              }
            },
            render: function render() {
              var _this2 = this
              return createVNode('div', { class: styles$2.subjects }, [
                createVNode('div', { class: styles$2.filterTitle }, [
                  createTextVNode('\u5168\u90E8\u58F0\u90E8')
                ]),
                createVNode('div', { class: styles$2.subjectContainer }, [
                  this.subjectList.length
                    ? this.selectType === 'Checkbox'
                      ? createVNode(
                          CheckboxGroup,
                          {
                            modelValue: this.checkBox,
                            'onUpdate:modelValue': function onUpdateModelValue(
                              $event
                            ) {
                              return (_this2.checkBox = $event)
                            },
                            max: this.max
                          },
                          {
                            default: function _default() {
                              return [
                                !_this2.single &&
                                  _this2.subjectList.map(function (item) {
                                    return item.subjects &&
                                      item.subjects.length > 0
                                      ? createVNode(Fragment, null, [
                                          createVNode(
                                            'div',
                                            { class: styles$2.title },
                                            [item.name]
                                          ),
                                          createVNode(
                                            'div',
                                            { class: styles$2['subject-list'] },
                                            [
                                              item.subjects &&
                                                item.subjects.map(function (
                                                  sub
                                                ) {
                                                  return createVNode(
                                                    'div',
                                                    {
                                                      class:
                                                        styles$2[
                                                          'subject-item'
                                                        ],
                                                      onClick:
                                                        function onClick() {
                                                          return _this2.onSelect(
                                                            sub.id
                                                          )
                                                        }
                                                    },
                                                    [
                                                      createVNode(
                                                        Image,
                                                        {
                                                          src: sub.img || 'xxx',
                                                          width: '100%',
                                                          height: '100%',
                                                          fit: 'cover'
                                                        },
                                                        {
                                                          loading:
                                                            function loading() {
                                                              return createVNode(
                                                                Loading,
                                                                {
                                                                  type: 'spinner',
                                                                  size: 20
                                                                },
                                                                null
                                                              )
                                                            }
                                                        }
                                                      ),
                                                      createVNode(
                                                        'div',
                                                        {
                                                          class: styles$2.topBg
                                                        },
                                                        [
                                                          createVNode(
                                                            Checkbox,
                                                            {
                                                              name: sub.id,
                                                              class:
                                                                styles$2.checkbox,
                                                              disabled: true,
                                                              ref: function ref(
                                                                el
                                                              ) {
                                                                return (_this2.checkboxRefs[
                                                                  sub.id
                                                                ] = el)
                                                              }
                                                            },
                                                            {
                                                              icon: function icon(
                                                                props
                                                              ) {
                                                                return createVNode(
                                                                  Icon,
                                                                  {
                                                                    name: props.checked
                                                                      ? checkBoxActive
                                                                      : checkBoxDefault,
                                                                    size: '20'
                                                                  },
                                                                  null
                                                                )
                                                              }
                                                            }
                                                          ),
                                                          createVNode(
                                                            'p',
                                                            {
                                                              class:
                                                                styles$2.name
                                                            },
                                                            [sub.name]
                                                          )
                                                        ]
                                                      )
                                                    ]
                                                  )
                                                })
                                            ]
                                          )
                                        ])
                                      : null
                                  }),
                                _this2.single
                                  ? createVNode(
                                      'div',
                                      { class: styles$2['subject-list'] },
                                      [
                                        _this2.subjectList.map(function (item) {
                                          return createVNode(
                                            'div',
                                            {
                                              class: styles$2['subject-item'],
                                              onClick: function onClick() {
                                                return _this2.onSelect(item.id)
                                              }
                                            },
                                            [
                                              createVNode(
                                                Image,
                                                {
                                                  src: item.img || 'xxx',
                                                  width: '100%',
                                                  height: '100%',
                                                  fit: 'cover'
                                                },
                                                {
                                                  loading: function loading() {
                                                    return createVNode(
                                                      Loading,
                                                      {
                                                        type: 'spinner',
                                                        size: 20
                                                      },
                                                      null
                                                    )
                                                  }
                                                }
                                              ),
                                              createVNode(
                                                'div',
                                                { class: styles$2.topBg },
                                                [
                                                  createVNode(
                                                    Checkbox,
                                                    {
                                                      name: item.id,
                                                      class: styles$2.checkbox,
                                                      disabled: true,
                                                      ref: function ref(el) {
                                                        return (_this2.checkboxRefs[
                                                          item.id
                                                        ] = el)
                                                      }
                                                    },
                                                    {
                                                      icon: function icon(
                                                        props
                                                      ) {
                                                        return createVNode(
                                                          Icon,
                                                          {
                                                            name: props.checked
                                                              ? checkBoxActive
                                                              : checkBoxDefault,
                                                            size: '20'
                                                          },
                                                          null
                                                        )
                                                      }
                                                    }
                                                  ),
                                                  createVNode(
                                                    'p',
                                                    { class: styles$2.name },
                                                    [item.name]
                                                  )
                                                ]
                                              )
                                            ]
                                          )
                                        })
                                      ]
                                    )
                                  : null
                              ]
                            }
                          }
                        )
                      : createVNode(
                          RadioGroup,
                          {
                            modelValue: this.radio,
                            'onUpdate:modelValue': function onUpdateModelValue(
                              $event
                            ) {
                              return (_this2.radio = $event)
                            }
                          },
                          {
                            default: function _default() {
                              return [
                                !_this2.single &&
                                  _this2.subjectList.map(function (item) {
                                    return item.subjects &&
                                      item.subjects.length > 0
                                      ? createVNode(Fragment, null, [
                                          createVNode(
                                            'div',
                                            { class: styles$2.title },
                                            [item.name]
                                          ),
                                          createVNode(
                                            'div',
                                            { class: styles$2['subject-list'] },
                                            [
                                              item.subjects &&
                                                item.subjects.map(function (
                                                  sub
                                                ) {
                                                  return createVNode(
                                                    'div',
                                                    {
                                                      class:
                                                        styles$2[
                                                          'subject-item'
                                                        ],
                                                      onClick:
                                                        function onClick() {
                                                          return _this2.onSelect(
                                                            sub.id
                                                          )
                                                        }
                                                    },
                                                    [
                                                      createVNode(
                                                        Image,
                                                        {
                                                          src: sub.img || 'xxx',
                                                          width: '100%',
                                                          height: '100%',
                                                          fit: 'cover'
                                                        },
                                                        {
                                                          loading:
                                                            function loading() {
                                                              return createVNode(
                                                                Loading,
                                                                {
                                                                  type: 'spinner',
                                                                  size: 20
                                                                },
                                                                null
                                                              )
                                                            }
                                                        }
                                                      ),
                                                      createVNode(
                                                        'div',
                                                        {
                                                          class: styles$2.topBg
                                                        },
                                                        [
                                                          createVNode(
                                                            Radio,
                                                            {
                                                              name: sub.id,
                                                              class:
                                                                styles$2.checkbox
                                                            },
                                                            {
                                                              icon: function icon(
                                                                props
                                                              ) {
                                                                return createVNode(
                                                                  Icon,
                                                                  {
                                                                    name: props.checked
                                                                      ? checkBoxActive
                                                                      : checkBoxDefault,
                                                                    size: '20'
                                                                  },
                                                                  null
                                                                )
                                                              }
                                                            }
                                                          ),
                                                          createVNode(
                                                            'p',
                                                            {
                                                              class:
                                                                styles$2.name
                                                            },
                                                            [sub.name]
                                                          )
                                                        ]
                                                      )
                                                    ]
                                                  )
                                                })
                                            ]
                                          )
                                        ])
                                      : null
                                  }),
                                _this2.single
                                  ? createVNode(
                                      'div',
                                      { class: styles$2['subject-list'] },
                                      [
                                        _this2.subjectList.map(function (item) {
                                          return createVNode(
                                            'div',
                                            {
                                              class: styles$2['subject-item'],
                                              onClick: function onClick() {
                                                return _this2.onSelect(item.id)
                                              }
                                            },
                                            [
                                              createVNode(
                                                Image,
                                                {
                                                  src: item.img || 'xxx',
                                                  width: '100%',
                                                  height: '100%',
                                                  fit: 'cover'
                                                },
                                                {
                                                  loading: function loading() {
                                                    return createVNode(
                                                      Loading,
                                                      {
                                                        type: 'spinner',
                                                        size: 20
                                                      },
                                                      null
                                                    )
                                                  }
                                                }
                                              ),
                                              createVNode(
                                                'div',
                                                { class: styles$2.topBg },
                                                [
                                                  createVNode(
                                                    Radio,
                                                    {
                                                      name: item.id,
                                                      class: styles$2.checkbox
                                                    },
                                                    {
                                                      icon: function icon(
                                                        props
                                                      ) {
                                                        return createVNode(
                                                          Icon,
                                                          {
                                                            name: props.checked
                                                              ? checkBoxActive
                                                              : checkBoxDefault,
                                                            size: '20'
                                                          },
                                                          null
                                                        )
                                                      }
                                                    }
                                                  ),
                                                  createVNode(
                                                    'p',
                                                    { class: styles$2.name },
                                                    [item.name]
                                                  )
                                                ]
                                              )
                                            ]
                                          )
                                        })
                                      ]
                                    )
                                  : null
                              ]
                            }
                          }
                        )
                    : createVNode(
                        ColResult,
                        { tips: '暂无声部数据', btnStatus: false },
                        null
                      )
                ]),
                this.subjectList.length > 0 &&
                  createVNode(
                    Sticky,
                    { offsetBottom: 0, position: 'bottom' },
                    {
                      default: function _default() {
                        return [
                          createVNode(
                            'div',
                            { class: ['btnGroup', styles$2.btns] },
                            [
                              createVNode(
                                Button,
                                {
                                  round: true,
                                  block: true,
                                  onClick: function onClick() {
                                    _this2.checkBox = []
                                    _this2.radio = ''
                                    _this2.onChoice()
                                  }
                                },
                                {
                                  default: function _default() {
                                    return [createTextVNode('\u91CD\u7F6E')]
                                  }
                                }
                              ),
                              createVNode(
                                Button,
                                {
                                  round: true,
                                  block: true,
                                  type: 'primary',
                                  onClick: function onClick() {
                                    return _this2.onChoice(
                                      _this2.selectType === 'Checkbox'
                                        ? _this2.checkBox
                                        : _this2.radio
                                    )
                                  }
                                },
                                {
                                  default: function _default() {
                                    return [createTextVNode('\u786E\u5B9A')]
                                  }
                                }
                              )
                            ]
                          )
                        ]
                      }
                    }
                  )
              ])
            }
          })
          var SelectStudents = defineComponent({
            name: 'SelectStudents',
            props: {
              subjectList: { type: Array, default: [] },
              onSetStudents: {
                type: Function,
                default: function _default(n) {}
              }
            },
            setup: function setup(props, _ref) {
              var expose = _ref.expose
              var show = ref(false)
              var subjectName = ref('全部声部')
              var params = reactive({
                courseId: undefined, //课程id
                subjectId: undefined, // 声部ID
                userName: undefined // 学员姓名
              })
              var list = ref([])
              var getList = /*#__PURE__*/ (function () {
                var _ref2 = _asyncToGenerator(
                  /*#__PURE__*/ regeneratorRuntime.mark(function _callee2() {
                    var _yield$request$post, code, data
                    return regeneratorRuntime.wrap(
                      function _callee2$(_context2) {
                        while (1) {
                          switch ((_context2.prev = _context2.next)) {
                            case 0:
                              _context2.prev = 0
                              _context2.next = 3
                              return request.post(
                                '/api-teacher/courseSchedule/selectStudent',
                                { data: _objectSpread({}, params) }
                              )
                            case 3:
                              _yield$request$post = _context2.sent
                              code = _yield$request$post.code
                              data = _yield$request$post.data
                              if (code === 200) {
                                data.rows.forEach(function (n) {
                                  return (n.checked = false)
                                })
                                list.value = data.rows
                              }
                              _context2.next = 11
                              break
                            case 9:
                              _context2.prev = 9
                              _context2.t0 = _context2['catch'](0)
                            case 11:
                            case 'end':
                              return _context2.stop()
                          }
                        }
                      },
                      _callee2,
                      null,
                      [[0, 9]]
                    )
                  })
                )
                return function getList() {
                  return _ref2.apply(this, arguments)
                }
              })()
              onMounted(function () {
                getList()
              })
              var onSearch = function onSearch(val) {
                params.userName = val || ''
                getList()
              }
              var toggle = function toggle(n) {
                var selectList = list.value.filter(function (n) {
                  return n.checked
                })
                if (selectList.length === 7 && !n.checked) {
                  Toast('最多选择7个学员')
                  return
                }
                n.checked = !n.checked
              }
              var onDelete = function onDelete(n) {
                list.value.forEach(function (item) {
                  if (item.userId === n.userId) item.checked = false
                })
              }
              expose({ onDelete: onDelete })
              return function () {
                return createVNode('div', { class: styles$3.container }, [
                  createVNode(
                    Sticky,
                    { offsetTop: 0 },
                    {
                      default: function _default() {
                        return [
                          createVNode(ColHeader, { title: '选择学员' }, null),
                          createVNode(
                            ColSearch,
                            {
                              placeholder: '请输入学员名称',
                              onSearch: onSearch
                            },
                            {
                              left: function left() {
                                return createVNode(
                                  'div',
                                  {
                                    class: styles$3.label,
                                    onClick: function onClick() {
                                      show.value = true
                                    }
                                  },
                                  [
                                    subjectName.value,
                                    createVNode(
                                      Icon,
                                      {
                                        classPrefix: 'iconfont',
                                        name: 'down',
                                        size: 12,
                                        color: '#333'
                                      },
                                      null
                                    )
                                  ]
                                )
                              }
                            }
                          )
                        ]
                      }
                    }
                  ),
                  list.value.map(function (n) {
                    return createVNode(
                      'div',
                      {
                        onClick: function onClick() {
                          toggle(n)
                        }
                      },
                      [
                        createVNode(
                          Student,
                          { item: n },
                          {
                            default: function _default() {
                              return [
                                createVNode('div', { class: styles$3.check }, [
                                  createVNode(
                                    Checkbox,
                                    { modelValue: n.checked, name: n.userId },
                                    null
                                  )
                                ])
                              ]
                            }
                          }
                        )
                      ]
                    )
                  }),
                  createVNode('div', { class: styles$3.btnGroup }, [
                    createVNode(
                      Button,
                      {
                        block: true,
                        round: true,
                        class: styles$3.confirmBtn,
                        type: 'primary',
                        onClick: function onClick() {
                          var stus = src(
                            list.value.filter(function (n) {
                              return n.checked
                            })
                          ) // console.log(stus)
                          props.onSetStudents && props.onSetStudents(stus)
                        }
                      },
                      {
                        default: function _default() {
                          return [createTextVNode('\u786E\u8BA4')]
                        }
                      }
                    )
                  ]),
                  createVNode(
                    Popup,
                    {
                      show: show.value,
                      'onUpdate:show': function onUpdateShow($event) {
                        return (show.value = $event)
                      },
                      position: 'bottom',
                      round: true,
                      closeable: true,
                      'safe-area-inset-bottom': true
                    },
                    {
                      default: function _default() {
                        return [
                          createVNode(
                            Voice,
                            {
                              class: styles$3.voicePopupContent,
                              single: true,
                              selectType: 'Radio',
                              subjectList: props.subjectList,
                              onChoice: function onChoice(val) {
                                var voice = props.subjectList.filter(function (
                                  n
                                ) {
                                  return n.id === val
                                })[0] || { name: '全部声部' }
                                params.subjectId = voice.id
                                subjectName.value = voice.name
                                show.value = false
                                getList()
                              }
                            },
                            null
                          )
                        ]
                      }
                    }
                  )
                ])
              }
            }
          })
          var fieldProps = {
            'is-link': true,
            readonly: true,
            'arrow-direction': 'down'
          }
          var init = function init() {
            return reactive({
              courseName: '', // 课程名称
              classNum: 1, // 课时数
              singleClassTime: '', //单课时长
              freeCourseMinutes: '', // 休息时间
              studentIds: [], //学员id集合
              subjectId: 0,
              subjectName: '',
              week: '', // 周几
              isSkipHolidays: true,
              startTime: '',
              endTime: ''
            })
          }
          var params
          var ClassInfo = exports(
            'C',
            defineComponent({
              name: 'ClassArrangement',
              props: {
                onSubmit: { type: Function, default: function _default() {} }
              },
              setup: function setup(props) {
                var selectStudentShow = ref(false)
                params = init() // 设置学员
                var studentRef = ref('')
                var students = ref([])
                var onSetStudents = function onSetStudents(result) {
                  students.value = result
                  params.studentIds = students.value
                  selectStudentShow.value = false
                }
                var onDeleteStudent = function onDeleteStudent(index) {
                  var n = students.value.splice(index, 1)[0]
                  studentRef === null || studentRef === void 0
                    ? void 0
                    : studentRef.value.onDelete(n)
                } // 训练声部
                var voiceShow = ref(false)
                var subjectList = ref([]) // 声部分类
                var getSubjectSelect = /*#__PURE__*/ (function () {
                  var _ref3 = _asyncToGenerator(
                    /*#__PURE__*/ regeneratorRuntime.mark(function _callee3() {
                      var teachRes
                      return regeneratorRuntime.wrap(
                        function _callee3$(_context3) {
                          while (1) {
                            switch ((_context3.prev = _context3.next)) {
                              case 0:
                                _context3.prev = 0
                                _context3.next = 3
                                return request.post(
                                  '/api-teacher/teacher/querySubject'
                                )
                              case 3:
                                teachRes = _context3.sent
                                subjectList.value = teachRes.data || []
                                _context3.next = 9
                                break
                              case 7:
                                _context3.prev = 7
                                _context3.t0 = _context3['catch'](0)
                              case 9:
                              case 'end':
                                return _context3.stop()
                            }
                          }
                        },
                        _callee3,
                        null,
                        [[0, 7]]
                      )
                    })
                  )
                  return function getSubjectSelect() {
                    return _ref3.apply(this, arguments)
                  }
                })()
                onMounted(function () {
                  getSubjectSelect()
                }) //上课时间
                var classTime = ref([])
                var classTimeShow = ref(false)
                var getClassTime = /*#__PURE__*/ (function () {
                  var _ref4 = _asyncToGenerator(
                    /*#__PURE__*/ regeneratorRuntime.mark(function _callee4() {
                      var res, i, len, paramValue
                      return regeneratorRuntime.wrap(
                        function _callee4$(_context4) {
                          while (1) {
                            switch ((_context4.prev = _context4.next)) {
                              case 0:
                                _context4.prev = 0
                                _context4.next = 3
                                return request.get(
                                  '/api-teacher/sysConfig/queryByParamNameList',
                                  {
                                    params: {
                                      paramNames:
                                        'course_start_setting,course_end_setting,piano_time_setting'
                                    }
                                  }
                                )
                              case 3:
                                res = _context4.sent
                                if (res.code === 200) {
                                  for (
                                    i = 0, len = res.data.length;
                                    i < len;
                                    i++
                                  ) {
                                    if (
                                      res.data[i].paramName ===
                                      'course_start_setting'
                                    ) {
                                      params.startTime = res.data[i].paramValue
                                    }
                                    if (
                                      res.data[i].paramName ===
                                      'course_end_setting'
                                    ) {
                                      params.endTime = res.data[i].paramValue
                                    }
                                    if (
                                      res.data[i].paramName ===
                                      'course_start_setting'
                                    ) {
                                      params.startTime = res.data[i].paramValue
                                    }
                                    if (
                                      res.data[i].paramName ===
                                      'piano_time_setting'
                                    ) {
                                      paramValue = []
                                      try {
                                        paramValue = JSON.parse(
                                          res.data[i].paramValue
                                        )
                                      } catch (error) {}
                                      classTime.value = paramValue
                                    }
                                  }
                                }
                                _context4.next = 9
                                break
                              case 7:
                                _context4.prev = 7
                                _context4.t0 = _context4['catch'](0)
                              case 9:
                              case 'end':
                                return _context4.stop()
                            }
                          }
                        },
                        _callee4,
                        null,
                        [[0, 7]]
                      )
                    })
                  )
                  return function getClassTime() {
                    return _ref4.apply(this, arguments)
                  }
                })()
                var actions = computed(function () {
                  var list = []
                  classTime.value.forEach(function (n) {
                    list.push({ name: n.courseMinutes + '分钟' })
                  })
                  return list
                })
                onMounted(function () {
                  getClassTime()
                }) // 节假日
                ref('')
                return function () {
                  return createVNode(Fragment, null, [
                    createVNode(
                      Form,
                      {
                        scrollToError: true,
                        onSubmit: function onSubmit() {
                          if (props.onSubmit) {
                            props.onSubmit(params)
                          }
                        }
                      },
                      {
                        default: function _default() {
                          return [
                            createVNode('div', { class: styles$4.container }, [
                              createVNode(
                                Field,
                                {
                                  label: '课程名称',
                                  placeholder: '请输入课程名称',
                                  maxlength: 20,
                                  name: 'courseName',
                                  modelValue: params.courseName,
                                  'onUpdate:modelValue':
                                    function onUpdateModelValue($event) {
                                      return (params.courseName = $event)
                                    },
                                  rules: [
                                    {
                                      required: true,
                                      message: '请输入您的课程名称'
                                    }
                                  ]
                                },
                                null
                              ),
                              createVNode(
                                Field,
                                mergeProps(
                                  {
                                    label: '训练声部',
                                    placeholder: '请选择训练声部'
                                  },
                                  fieldProps,
                                  {
                                    name: 'subjectName',
                                    modelValue: params.subjectName,
                                    onClick: function onClick() {
                                      return (voiceShow.value = true)
                                    },
                                    rules: [
                                      {
                                        required: true,
                                        message: '请选择训练声部'
                                      }
                                    ]
                                  }
                                ),
                                null
                              ),
                              createVNode(
                                Cell,
                                { style: { padding: 0 } },
                                {
                                  default: function _default() {
                                    return [
                                      createVNode(
                                        Field,
                                        mergeProps(
                                          {
                                            name: 'students',
                                            class: styles$4.student,
                                            border: false,
                                            label: '上课学员',
                                            placeholder: '请选择上课学员',
                                            modelValue: students.value.length
                                          },
                                          fieldProps,
                                          {
                                            onClick: function onClick() {
                                              return (selectStudentShow.value = true)
                                            },
                                            rules: [
                                              {
                                                required: true,
                                                validator:
                                                  function validator() {
                                                    return students.value.length
                                                      ? true
                                                      : false
                                                  },
                                                message: '请选择上课学员'
                                              }
                                            ]
                                          }
                                        ),
                                        null
                                      ),
                                      students.value.length
                                        ? createVNode(
                                            'div',
                                            { class: styles$4.tags },
                                            [
                                              students.value.map(function (
                                                n,
                                                index
                                              ) {
                                                return createVNode(
                                                  Tag,
                                                  {
                                                    closeable: true,
                                                    onClose:
                                                      function onClose() {
                                                        return onDeleteStudent(
                                                          index
                                                        )
                                                      }
                                                  },
                                                  {
                                                    default:
                                                      function _default() {
                                                        return [n.userName]
                                                      }
                                                  }
                                                )
                                              })
                                            ]
                                          )
                                        : null
                                    ]
                                  }
                                }
                              ),
                              createVNode(
                                Field,
                                {
                                  label: '课时数',
                                  placeholder: '请输入课时数'
                                },
                                {
                                  input: function input() {
                                    return createVNode(
                                      Stepper,
                                      {
                                        'disable-input': true,
                                        modelValue: params.classNum,
                                        'onUpdate:modelValue':
                                          function onUpdateModelValue($event) {
                                            return (params.classNum = $event)
                                          }
                                      },
                                      null
                                    )
                                  }
                                }
                              ),
                              createVNode(
                                Field,
                                mergeProps(
                                  {
                                    class: styles$4.singleClassTime,
                                    label: '单课时时长'
                                  },
                                  fieldProps,
                                  {
                                    modelValue: params.singleClassTime,
                                    onClick: function onClick() {
                                      return (classTimeShow.value = true)
                                    },
                                    rules: [
                                      {
                                        required: true,
                                        message: '请选择单课时时长'
                                      }
                                    ]
                                  }
                                ),
                                null
                              ),
                              createVNode(
                                Cell,
                                { title: '是否跳过节假日' },
                                {
                                  value: function value() {
                                    return createVNode(
                                      RadioGroup,
                                      {
                                        class: styles$4.holdays,
                                        modelValue: params.isSkipHolidays,
                                        'onUpdate:modelValue':
                                          function onUpdateModelValue($event) {
                                            return (params.isSkipHolidays =
                                              $event)
                                          }
                                      },
                                      {
                                        default: function _default() {
                                          return [
                                            createVNode(
                                              Radio,
                                              {
                                                name: true,
                                                style: { marginRight: '10px' }
                                              },
                                              {
                                                default: function _default() {
                                                  return [
                                                    createTextVNode('\u662F')
                                                  ]
                                                }
                                              }
                                            ),
                                            createVNode(
                                              Radio,
                                              { name: false },
                                              {
                                                default: function _default() {
                                                  return [
                                                    createTextVNode('\u5426')
                                                  ]
                                                }
                                              }
                                            )
                                          ]
                                        }
                                      }
                                    )
                                  }
                                }
                              ),
                              createVNode(Cell, null, {
                                title: function title() {
                                  return createVNode(
                                    'div',
                                    { class: styles$4.tips },
                                    [
                                      createVNode(
                                        'img',
                                        { class: styles$4.icon, src: iconTips },
                                        null
                                      ),
                                      createVNode('span', null, [
                                        createTextVNode(
                                          '\u6E29\u99A8\u63D0\u9192'
                                        )
                                      ])
                                    ]
                                  )
                                },
                                label: function label() {
                                  return createVNode(
                                    'div',
                                    { class: styles$4.tipsContent },
                                    [
                                      createTextVNode(
                                        '1\u3001\u4E91\u9177\u7434\u623F\u65F6\u957F\u6309\u8BFE\u7A0B\u5B66\u751F\u4EBA\u6570\u6263\u51CF\uFF0C\u4EE545\u5206\u949F1\u5BF92\u8BFE\u7A0B\u4E3A\u4F8B\uFF0C\u8BFE\u7A0B\u7ED3\u675F\u540E\u5C06\u6D88\u8017\u65F6\u957F\uFF1A2\u4EBA*45\u5206\u949F=90\u5206\u949F\uFF1B'
                                      ),
                                      createVNode('br', null, null),
                                      createVNode('br', null, null),
                                      createTextVNode(
                                        '2\u3001\u6BCF\u8282\u7EBF\u4E0A\u8BFE\u5E73\u53F0\u8D60\u900110\u5206\u949F\u514D\u8D39\u65F6\u957F\uFF0C\u5206\u522B\u4E3A\u8BFE\u524D5\u5206\u949F\u53CA\u8BFE\u540E5\u5206\u949F\uFF0C\u8D60\u9001\u65F6\u957F\u4E0D\u8BA1\u7B97\u8D39\u7528\uFF1B'
                                      ),
                                      createVNode('br', null, null),
                                      createVNode('br', null, null),
                                      createTextVNode(
                                        '3\u3001\u8BFE\u7A0B\u6D88\u8017\u65F6\u957F\u6309\u6392\u8BFE\u4EBA\u6570\u8BA1\u7B97\uFF0C\u65E0\u8BBA\u5B9E\u9645\u5230\u8BFE\u4EBA\u6570\u662F\u5426\u4E3A\u6392\u8BFE\u4EBA\u6570\uFF0C\u90FD\u4F1A\u6309\u7167\u6392\u8BFE\u4EBA\u6570\u6263\u8D39\uFF1B'
                                      ),
                                      createVNode('br', null, null),
                                      createVNode('br', null, null),
                                      createTextVNode(
                                        '4\u3001\u8BFE\u7A0B\u7ED3\u675F\u540E\u8D39\u7528\u7ACB\u5373\u7ED3\u7B97\uFF1B'
                                      ),
                                      createVNode('br', null, null),
                                      createVNode('br', null, null),
                                      createTextVNode(
                                        '5\u3001\u7434\u623F\u65F6\u957F\u4E0D\u8DB3\u65F6\uFF0C\u60A8\u5C06\u65E0\u6CD5\u6392\u8BFE\uFF0C\u8BF7\u786E\u4FDD\u7434\u623F\u5269\u4F59\u65F6\u957F\u5145\u8DB3\u3002'
                                      )
                                    ]
                                  )
                                }
                              }),
                              createVNode(
                                Button,
                                {
                                  block: true,
                                  type: 'primary',
                                  round: true,
                                  nativeType: 'submit',
                                  style: {
                                    margin: '0 auto',
                                    width: '90%',
                                    marginTop: '20px'
                                  }
                                },
                                {
                                  default: function _default() {
                                    return [
                                      createTextVNode('\u4E0B\u4E00\u6B65')
                                    ]
                                  }
                                }
                              )
                            ])
                          ]
                        }
                      }
                    ),
                    createVNode(
                      Popup,
                      {
                        show: voiceShow.value,
                        'onUpdate:show': function onUpdateShow($event) {
                          return (voiceShow.value = $event)
                        },
                        position: 'bottom',
                        round: true,
                        closeable: true,
                        'safe-area-inset-bottom': true,
                        class: styles$4.voicePopup
                      },
                      {
                        default: function _default() {
                          return [
                            createVNode(
                              Voice,
                              {
                                class: styles$4.voicePopupContent,
                                single: true,
                                selectType: 'Radio',
                                subjectList: subjectList.value,
                                onChoice: function onChoice(val) {
                                  var voice = subjectList.value.filter(
                                    function (n) {
                                      return n.id === val
                                    }
                                  )[0]
                                  if (voice) {
                                    params.subjectId = voice.id
                                    params.subjectName = voice.name
                                    voiceShow.value = false
                                  } else {
                                    params.subjectId = 0
                                    params.subjectName = ''
                                  }
                                }
                              },
                              null
                            )
                          ]
                        }
                      }
                    ),
                    createVNode(
                      ColPopup,
                      {
                        modelValue: selectStudentShow.value,
                        'onUpdate:modelValue': function onUpdateModelValue(
                          $event
                        ) {
                          return (selectStudentShow.value = $event)
                        }
                      },
                      {
                        default: function _default() {
                          return [
                            createVNode(
                              SelectStudents,
                              {
                                ref: studentRef,
                                subjectList: subjectList.value,
                                onSetStudents: onSetStudents
                              },
                              null
                            )
                          ]
                        }
                      }
                    ),
                    createVNode(
                      ActionSheet,
                      {
                        show: classTimeShow.value,
                        'onUpdate:show': function onUpdateShow($event) {
                          return (classTimeShow.value = $event)
                        },
                        actions: actions.value,
                        cancelText: '取消',
                        closeOnClickAction: true,
                        onSelect: function onSelect(value, index) {
                          params.singleClassTime =
                            classTime.value[index].courseMinutes
                          params.freeCourseMinutes =
                            classTime.value[index].freeMinutes
                        }
                      },
                      null
                    )
                  ])
                }
              }
            })
          )
          var createClass = '_createClass_129c1_1'
          var arrangeCell = '_arrangeCell_129c1_4'
          var rTitle = '_rTitle_129c1_10'
          var rTag = '_rTag_129c1_26'
          var tag = '_tag_129c1_29'
          var selectPopup = '_selectPopup_129c1_33'
          var selectContainer = '_selectContainer_129c1_38'
          var selectPopupContent = '_selectPopupContent_129c1_44'
          var desc = '_desc_129c1_47'
          var times = '_times_129c1_48'
          var selectBtn = '_selectBtn_129c1_59'
          var btn = '_btn_129c1_64'
          var coursePopup = '_coursePopup_129c1_67'
          var styles$1 = {
            createClass: createClass,
            arrangeCell: arrangeCell,
            rTitle: rTitle,
            rTag: rTag,
            tag: tag,
            selectPopup: selectPopup,
            selectContainer: selectContainer,
            selectPopupContent: selectPopupContent,
            desc: desc,
            times: times,
            selectBtn: selectBtn,
            btn: btn,
            coursePopup: coursePopup
          }
          var box = '_box_12gfu_1'
          var wrap = '_wrap_12gfu_5'
          var title = '_title_12gfu_9'
          var leftIcon = '_leftIcon_12gfu_19'
          var stu = '_stu_12gfu_26'
          var timeBox = '_timeBox_12gfu_30'
          var timeTitle = '_timeTitle_12gfu_38'
          var timeItem = '_timeItem_12gfu_42'
          var footer = '_footer_12gfu_46'
          var styles = {
            box: box,
            wrap: wrap,
            title: title,
            leftIcon: leftIcon,
            stu: stu,
            timeBox: timeBox,
            timeTitle: timeTitle,
            timeItem: timeItem,
            footer: footer
          }
          var CourseSchedule = defineComponent({
            name: 'CourseSchedule',
            props: {
              curriculum: { type: Array, default: [] },
              onClose: { type: Function, default: function _default(n) {} },
              onComfirm: { type: Function, default: function _default(n) {} }
            },
            setup: function setup(props) {
              var students = computed(function () {
                var list = params.studentIds.map(function (n) {
                  return n.userName
                })
                return list.join('、')
              })
              return function () {
                var n = params.studentIds.length
                return createVNode('div', { class: styles.box }, [
                  createVNode('div', { class: styles.title }, [
                    createVNode('div', { class: styles.leftIcon }, null),
                    createTextVNode('\u8BFE\u7A0B\u9884\u89C8')
                  ]),
                  createVNode('div', { class: styles.wrap }, [
                    createVNode('div', { class: styles.stu }, [
                      createVNode('div', null, [
                        createTextVNode('\u60A8\u5C06\u4E3A\u5B66\u5458\uFF1A'),
                        createVNode(
                          'span',
                          { style: { color: 'var(--van-primary)' } },
                          [students.value]
                        )
                      ]),
                      createVNode('div', null, [
                        createTextVNode('\u6392'),
                        createVNode(
                          'span',
                          { style: { color: '#FF4E19', margin: '0 10px' } },
                          [
                            params.classNum,
                            createTextVNode('\u8282 '),
                            params.singleClassTime,
                            createTextVNode('\u5206\u949F')
                          ]
                        ),
                        createTextVNode('\u8BFE\u7A0B')
                      ])
                    ]),
                    createVNode('div', { class: styles.timeBox }, [
                      createVNode('div', { class: styles.timeTitle }, [
                        createTextVNode('\u4E0A\u8BFE\u65F6\u95F4\uFF1A')
                      ]),
                      props.curriculum.map(function (item) {
                        return createVNode('div', { class: styles.timeItem }, [
                          dayjs(item.startTime || new Date()).format(
                            'YYYY-MM-DD'
                          ),
                          ' ',
                          dayjs(item.startTime || new Date()).format('HH:mm'),
                          createTextVNode('~'),
                          dayjs(item.endTime || new Date()).format('HH:mm')
                        ])
                      })
                    ]),
                    createVNode('div', { style: { color: '#999999' } }, [
                      createTextVNode(
                        '\u4EE5\u4E0A\u8BFE\u7A0B\u9884\u8BA1\u5C06\u6D88\u8017\u7434\u623F\u65F6\u957F'
                      ),
                      ' ',
                      Math.ceil(
                        n * params.classNum * parseInt(params.singleClassTime)
                      ),
                      ' ',
                      createTextVNode('\u5206\u949F '),
                      createVNode('br', null, null),
                      createTextVNode(
                        '\u786E\u8BA4\u6392\u8BFE\u540E\u65F6\u957F\u51BB\u7ED3 '
                      ),
                      createVNode('br', null, null),
                      createTextVNode(
                        '\u5B9E\u9645\u6D88\u8017\u65F6\u957F\u4EE5\u6263\u51CF\u7ED3\u679C\u4E3A\u51C6 '
                      ),
                      createVNode('br', null, null)
                    ])
                  ]),
                  createVNode('div', { class: styles.footer }, [
                    createVNode(
                      Button,
                      {
                        block: true,
                        round: true,
                        onClick: function onClick() {
                          return props.onClose()
                        }
                      },
                      {
                        default: function _default() {
                          return [createTextVNode('\u91CD\u65B0\u9009\u62E9')]
                        }
                      }
                    ),
                    createVNode(
                      Button,
                      {
                        block: true,
                        round: true,
                        type: 'primary',
                        onClick: function onClick() {
                          return props.onComfirm()
                        }
                      },
                      {
                        default: function _default() {
                          return [createTextVNode('\u786E\u8BA4\u6392\u8BFE')]
                        }
                      }
                    )
                  ])
                ])
              }
            }
          })
          var CreateClass = exports(
            'a',
            defineComponent({
              name: 'createClass',
              props: {
                active: { type: Number, default: 1 },
                onBack: {
                  type: Function,
                  default: function _default() {
                    return function () {}
                  }
                }
              },
              setup: function setup(props) {
                watch(
                  function () {
                    return props.active
                  },
                  function (val) {
                    // console.log(val)
                    if (val === 2) {
                      getList()
                    }
                  }
                ) //日期设置
                var data = reactive({ calendarList: {}, selectList: [] })
                var getList = /*#__PURE__*/ (function () {
                  var _ref5 = _asyncToGenerator(
                    /*#__PURE__*/ regeneratorRuntime.mark(function _callee5(
                      date
                    ) {
                      var tempDate,
                        params$1,
                        _state$user$data,
                        res,
                        result,
                        tempObj
                      return regeneratorRuntime.wrap(
                        function _callee5$(_context5) {
                          while (1) {
                            switch ((_context5.prev = _context5.next)) {
                              case 0:
                                tempDate =
                                  date || dayjs().add(1, 'day').toDate()
                                params$1 = {
                                  day: dayjs(tempDate).format('DD'),
                                  month: dayjs(tempDate).format('MM'),
                                  year: dayjs(tempDate).format('YYYY')
                                }
                                _context5.prev = 2
                                _context5.next = 5
                                return request.post(
                                  '/api-teacher/courseSchedule/createLiveCourseCalendar',
                                  {
                                    data: _objectSpread(
                                      _objectSpread({}, params$1),
                                      {},
                                      {
                                        singleCourseMinutes:
                                          params.singleClassTime,
                                        freeCourseMinutes:
                                          params.freeCourseMinutes,
                                        teacherId:
                                          (_state$user$data =
                                            state.user.data) === null ||
                                          _state$user$data === void 0
                                            ? void 0
                                            : _state$user$data.userId
                                      }
                                    )
                                  }
                                )
                              case 5:
                                res = _context5.sent
                                result = res.data || []
                                tempObj = {}
                                result.forEach(function (item) {
                                  tempObj[item.date] = item
                                })
                                data.calendarList = tempObj
                                _context5.next = 14
                                break
                              case 12:
                                _context5.prev = 12
                                _context5.t0 = _context5['catch'](2)
                              case 14:
                              case 'end':
                                return _context5.stop()
                            }
                          }
                        },
                        _callee5,
                        null,
                        [[2, 12]]
                      )
                    })
                  )
                  return function getList(_x) {
                    return _ref5.apply(this, arguments)
                  }
                })()
                var onSelectDay = function onSelectDay(res) {
                  // 对数组进行排序
                  res.sort(function (first, second) {
                    if (first.startTime > second.startTime) return 1
                    if (first.startTime < second.startTime) return -1
                    return 0
                  })
                  data.selectList = res
                }
                var showSelectList = computed(function () {
                  // 显示时间
                  var list = _toConsumableArray(data.selectList)
                  list.forEach(function (item) {
                    item.title =
                      dayjs(item.startTime).format('YYYY-MM-DD') +
                      ' ' +
                      getWeekCh(dayjs(item.startTime).day()) +
                      ' ' +
                      item.start +
                      '~' +
                      item.end
                  })
                  return list
                })
                var selectType = computed(function () {
                  // 循环次数是否足够
                  return data.selectList.length < params.classNum
                    ? 'noEnough'
                    : 'enough'
                })
                var onCloseTag = function onCloseTag(item) {
                  // 删除课程
                  Dialog.confirm({
                    title: '提示',
                    message: '您是否要删除该选择的课程？',
                    confirmButtonColor: 'var(--van-primary)'
                  }).then(function () {
                    var index = data.selectList.findIndex(function (course) {
                      return course.startTime === item.startTime
                    })
                    data.selectList.splice(index, 1)
                  })
                }
                var selectStatus = ref(false)
                var onSubmit = /*#__PURE__*/ (function () {
                  var _ref6 = _asyncToGenerator(
                    /*#__PURE__*/ regeneratorRuntime.mark(function _callee6() {
                      return regeneratorRuntime.wrap(function _callee6$(
                        _context6
                      ) {
                        while (1) {
                          switch ((_context6.prev = _context6.next)) {
                            case 0:
                              if (!(data.selectList.length <= 0)) {
                                _context6.next = 3
                                break
                              }
                              Toast('请选择课程时间')
                              return _context6.abrupt('return')
                            case 3:
                              if (!(data.selectList.length < params.classNum)) {
                                _context6.next = 6
                                break
                              }
                              selectStatus.value = true
                              return _context6.abrupt('return')
                            case 6: // await this._lookCourse()
                              confirmShow.value = true
                            case 7:
                            case 'end':
                              return _context6.stop()
                          }
                        }
                      },
                      _callee6)
                    })
                  )
                  return function onSubmit() {
                    return _ref6.apply(this, arguments)
                  }
                })()
                var onComfirm = /*#__PURE__*/ (function () {
                  var _ref7 = _asyncToGenerator(
                    /*#__PURE__*/ regeneratorRuntime.mark(function _callee7() {
                      var _state$user$data2, _times, res
                      return regeneratorRuntime.wrap(function _callee7$(
                        _context7
                      ) {
                        while (1) {
                          switch ((_context7.prev = _context7.next)) {
                            case 0:
                              if (!(selectType.value === 'noEnough')) {
                                _context7.next = 10
                                break
                              }
                              _times = []
                              data.selectList.forEach(function (item) {
                                _times.push({
                                  startTime: item.startTime,
                                  endTime: item.endTime
                                })
                              })
                              console.log(data.selectList)
                              _context7.next = 6
                              return request.post(
                                '/api-teacher/courseGroup/lockCourseToCache',
                                {
                                  data: {
                                    courseNum: params.classNum,
                                    courseType: 'PIANO_ROOM_CLASS',
                                    loop: 1,
                                    teacherId:
                                      (_state$user$data2 = state.user.data) ===
                                        null || _state$user$data2 === void 0
                                        ? void 0
                                        : _state$user$data2.userId,
                                    timeList: [].concat(_times)
                                  }
                                }
                              )
                            case 6:
                              res = _context7.sent
                              if (res.code === 200) {
                                res.data.forEach(function (n) {
                                  n.start = dayjs(n.startTime).format('HH:mm')
                                  n.end = dayjs(n.endTime).format('HH:mm')
                                })
                                data.selectList = res.data
                              }
                              _context7.next = 12
                              break
                            case 10:
                              selectStatus.value = false
                              nextTick(function () {
                                confirmShow.value = true
                              })
                            case 12:
                            case 'end':
                              return _context7.stop()
                          }
                        }
                      },
                      _callee7)
                    })
                  )
                  return function onComfirm() {
                    return _ref7.apply(this, arguments)
                  }
                })()
                var router = useRouter()
                var confirmShow = ref(false) // 排课
                var onCourseSchedule = /*#__PURE__*/ (function () {
                  var _ref8 = _asyncToGenerator(
                    /*#__PURE__*/ regeneratorRuntime.mark(function _callee8() {
                      var timeList, n, _yield$request$post2, code, _data
                      return regeneratorRuntime.wrap(
                        function _callee8$(_context8) {
                          while (1) {
                            switch ((_context8.prev = _context8.next)) {
                              case 0:
                                timeList = data.selectList
                                n = params.studentIds.length
                                _context8.prev = 2
                                _context8.next = 5
                                return request.post(
                                  '/api-teacher/courseSchedule/arrangeCourse',
                                  {
                                    data: {
                                      classNum: params.classNum, //课时数
                                      consumeTime: Math.ceil(
                                        n *
                                          params.classNum *
                                          parseInt(params.singleClassTime)
                                      ), //消耗时长
                                      courseName: params.courseName, //课程名称
                                      singleClssTime: params.singleClassTime, //单课时长
                                      studentIds: params.studentIds.map(
                                        function (n) {
                                          return n.userId
                                        }
                                      ), //学员id集合
                                      subjectId: params.subjectId, //声部id
                                      timeList: timeList
                                    }
                                  }
                                )
                              case 5:
                                _yield$request$post2 = _context8.sent
                                code = _yield$request$post2.code
                                _data = _yield$request$post2.data
                                if (code === 200) {
                                  confirmShow.value = false
                                  setTimeout(function () {
                                    Toast({
                                      icon: 'success',
                                      message: '排课成功',
                                      duration: 1500,
                                      onClose: function onClose() {
                                        router.back()
                                      }
                                    })
                                  }, 100)
                                }
                                _context8.next = 13
                                break
                              case 11:
                                _context8.prev = 11
                                _context8.t0 = _context8['catch'](2)
                              case 13:
                              case 'end':
                                return _context8.stop()
                            }
                          }
                        },
                        _callee8,
                        null,
                        [[2, 11]]
                      )
                    })
                  )
                  return function onCourseSchedule() {
                    return _ref8.apply(this, arguments)
                  }
                })()
                return function () {
                  return createVNode('div', { class: styles$1.createClass }, [
                    props.active === 2 &&
                      createVNode(
                        Calendar,
                        {
                          maxDays: params.classNum,
                          list: data.calendarList,
                          prevMonth: function prevMonth(date) {
                            return getList(date)
                          },
                          nextMonth: function nextMonth(date) {
                            return getList(date)
                          },
                          selectDay: onSelectDay,
                          selectList: data.selectList,
                          isSkipHolidays: params.isSkipHolidays
                        },
                        null
                      ),
                    createVNode(
                      Cell,
                      { class: [styles$1.arrangeCell, 'mb12'] },
                      {
                        title: function title() {
                          return createVNode(
                            'div',
                            { class: styles$1.rTitle },
                            [
                              createVNode('span', null, [
                                createTextVNode(
                                  '\u5DF2\u9009\u62E9\u8BFE\u7A0B\u65F6\u95F4'
                                )
                              ])
                            ]
                          )
                        },
                        label: function label() {
                          return createVNode('div', { class: styles$1.rTag }, [
                            showSelectList.value.map(function (item) {
                              return createVNode(Fragment, null, [
                                createVNode(
                                  Tag,
                                  {
                                    plain: true,
                                    round: true,
                                    closeable: true,
                                    size: 'large',
                                    type: 'primary',
                                    class: styles$1.tag,
                                    onClose: function onClose() {
                                      return onCloseTag(item)
                                    }
                                  },
                                  {
                                    default: function _default() {
                                      return [item.title]
                                    }
                                  }
                                ),
                                createVNode('br', null, null)
                              ])
                            })
                          ])
                        }
                      }
                    ),
                    createVNode(
                      Sticky,
                      { offsetBottom: 0, position: 'bottom' },
                      {
                        default: function _default() {
                          return [
                            createVNode(
                              'div',
                              { class: ['btnGroup', 'btnMore'] },
                              [
                                createVNode(
                                  Button,
                                  {
                                    block: true,
                                    round: true,
                                    type: 'primary',
                                    plain: true,
                                    onClick: function onClick() {
                                      props.onBack && props.onBack() // 重置选择的课次
                                      data.selectList = []
                                    }
                                  },
                                  {
                                    default: function _default() {
                                      return [
                                        createTextVNode('\u4E0A\u4E00\u6B65')
                                      ]
                                    }
                                  }
                                ),
                                createVNode(
                                  Button,
                                  {
                                    block: true,
                                    round: true,
                                    type: 'primary',
                                    onClick: function onClick() {
                                      return onSubmit()
                                    }
                                  },
                                  {
                                    default: function _default() {
                                      return [
                                        createTextVNode('\u4E0B\u4E00\u6B65')
                                      ]
                                    }
                                  }
                                )
                              ]
                            )
                          ]
                        }
                      }
                    ),
                    createVNode(
                      Popup,
                      { show: selectStatus.value, class: styles$1.selectPopup },
                      {
                        default: function _default() {
                          return [
                            createVNode(
                              'div',
                              { class: styles$1.selectContainer },
                              [
                                createVNode('div', { class: styles$1.rTitle }, [
                                  createVNode('span', null, [
                                    createTextVNode('\u63D0\u793A')
                                  ])
                                ]),
                                createVNode(
                                  'div',
                                  { class: styles$1.selectPopupContent },
                                  [
                                    createVNode('p', { class: styles$1.desc }, [
                                      selectType.value === 'noEnough'
                                        ? '您所选择的上课时间未达到您输入的课时数，系统根据已选时间将自动按周顺延排课。'
                                        : '您已选择以下上课时间段，时间段会暂时锁定，锁定期间学员不可购买该时间段课程。'
                                    ]),
                                    selectType.value === 'enough' &&
                                      createVNode(
                                        'p',
                                        { class: styles$1.times },
                                        [
                                          data.selectList.map(function (item) {
                                            return createVNode('span', null, [
                                              dayjs(
                                                item.startTime || new Date()
                                              ).format('YYYY-MM-DD'),
                                              ' ',
                                              dayjs(
                                                item.startTime || new Date()
                                              ).format('HH:mm'),
                                              createTextVNode('~'),
                                              dayjs(
                                                item.endTime || new Date()
                                              ).format('HH:mm')
                                            ])
                                          })
                                        ]
                                      )
                                  ]
                                ),
                                createVNode(
                                  'div',
                                  { class: styles$1.selectBtn },
                                  [
                                    createVNode(
                                      Button,
                                      {
                                        class: styles$1.btn,
                                        type: 'primary',
                                        round: true,
                                        block: true,
                                        plain: true,
                                        onClick: function onClick() {
                                          return (selectStatus.value = false)
                                        }
                                      },
                                      {
                                        default: function _default() {
                                          return [
                                            selectType.value === 'noEnough'
                                              ? '继续选择'
                                              : '重新选择'
                                          ]
                                        }
                                      }
                                    ),
                                    createVNode(
                                      Button,
                                      {
                                        class: styles$1.btn,
                                        type: 'primary',
                                        round: true,
                                        block: true,
                                        onClick: function onClick() {
                                          return onComfirm()
                                        }
                                      },
                                      {
                                        default: function _default() {
                                          return [
                                            createTextVNode('\u786E\u8BA4')
                                          ]
                                        }
                                      }
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                        }
                      }
                    ),
                    createVNode(
                      Popup,
                      {
                        position: 'bottom',
                        class: styles$1.coursePopup,
                        show: confirmShow.value,
                        'onUpdate:show': function onUpdateShow($event) {
                          return (confirmShow.value = $event)
                        },
                        closeable: true,
                        round: true
                      },
                      {
                        default: function _default() {
                          return [
                            createVNode(
                              CourseSchedule,
                              {
                                curriculum: data.selectList,
                                onClose: function onClose() {
                                  confirmShow.value = false
                                },
                                onComfirm: function onComfirm() {
                                  onCourseSchedule()
                                }
                              },
                              null
                            )
                          ]
                        }
                      }
                    )
                  ])
                }
              }
            })
          )
          var index = /*#__PURE__*/ Object.freeze(
            ((_Object$freeze = { __proto__: null }),
            _defineProperty(_Object$freeze, Symbol.toStringTag, 'Module'),
            _defineProperty(_Object$freeze, 'default', CreateClass),
            _Object$freeze)
          )
          exports('i', index)
        }
      }
    }
  )
})()
