index-legacy.48bd16d8.js 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568
  1. ;(function () {
  2. function _toConsumableArray(arr) {
  3. return (
  4. _arrayWithoutHoles(arr) ||
  5. _iterableToArray(arr) ||
  6. _unsupportedIterableToArray(arr) ||
  7. _nonIterableSpread()
  8. )
  9. }
  10. function _nonIterableSpread() {
  11. throw new TypeError(
  12. 'Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.'
  13. )
  14. }
  15. function _unsupportedIterableToArray(o, minLen) {
  16. if (!o) return
  17. if (typeof o === 'string') return _arrayLikeToArray(o, minLen)
  18. var n = Object.prototype.toString.call(o).slice(8, -1)
  19. if (n === 'Object' && o.constructor) n = o.constructor.name
  20. if (n === 'Map' || n === 'Set') return Array.from(o)
  21. if (n === 'Arguments' || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
  22. return _arrayLikeToArray(o, minLen)
  23. }
  24. function _iterableToArray(iter) {
  25. if (
  26. (typeof Symbol !== 'undefined' && iter[Symbol.iterator] != null) ||
  27. iter['@@iterator'] != null
  28. )
  29. return Array.from(iter)
  30. }
  31. function _arrayWithoutHoles(arr) {
  32. if (Array.isArray(arr)) return _arrayLikeToArray(arr)
  33. }
  34. function _arrayLikeToArray(arr, len) {
  35. if (len == null || len > arr.length) len = arr.length
  36. for (var i = 0, arr2 = new Array(len); i < len; i++) {
  37. arr2[i] = arr[i]
  38. }
  39. return arr2
  40. }
  41. function ownKeys(object, enumerableOnly) {
  42. var keys = Object.keys(object)
  43. if (Object.getOwnPropertySymbols) {
  44. var symbols = Object.getOwnPropertySymbols(object)
  45. enumerableOnly &&
  46. (symbols = symbols.filter(function (sym) {
  47. return Object.getOwnPropertyDescriptor(object, sym).enumerable
  48. })),
  49. keys.push.apply(keys, symbols)
  50. }
  51. return keys
  52. }
  53. function _objectSpread(target) {
  54. for (var i = 1; i < arguments.length; i++) {
  55. var source = null != arguments[i] ? arguments[i] : {}
  56. i % 2
  57. ? ownKeys(Object(source), !0).forEach(function (key) {
  58. _defineProperty(target, key, source[key])
  59. })
  60. : Object.getOwnPropertyDescriptors
  61. ? Object.defineProperties(
  62. target,
  63. Object.getOwnPropertyDescriptors(source)
  64. )
  65. : ownKeys(Object(source)).forEach(function (key) {
  66. Object.defineProperty(
  67. target,
  68. key,
  69. Object.getOwnPropertyDescriptor(source, key)
  70. )
  71. })
  72. }
  73. return target
  74. }
  75. function _defineProperty(obj, key, value) {
  76. if (key in obj) {
  77. Object.defineProperty(obj, key, {
  78. value: value,
  79. enumerable: true,
  80. configurable: true,
  81. writable: true
  82. })
  83. } else {
  84. obj[key] = value
  85. }
  86. return obj
  87. }
  88. var __vite_style__ = document.createElement('style')
  89. __vite_style__.innerHTML =
  90. ':root{--van-calendar-background-color: var(--van-background-color-light);--van-calendar-popup-height: 80%;--van-calendar-header-box-shadow: 0 .05333rem .26667rem rgba(125, 126, 128, .16);--van-calendar-header-title-height: 1.17333rem;--van-calendar-header-title-font-size: var(--van-font-size-lg);--van-calendar-header-subtitle-font-size: var(--van-font-size-md);--van-calendar-weekdays-height: .8rem;--van-calendar-weekdays-font-size: var(--van-font-size-sm);--van-calendar-month-title-font-size: var(--van-font-size-md);--van-calendar-month-mark-color: rgba(242, 243, 245, .8);--van-calendar-month-mark-font-size: 4.26667rem;--van-calendar-day-height: 1.70667rem;--van-calendar-day-font-size: var(--van-font-size-lg);--van-calendar-range-edge-color: var(--van-white);--van-calendar-range-edge-background-color: var(--van-danger-color);--van-calendar-range-middle-color: var(--van-danger-color);--van-calendar-range-middle-background-opacity: .1;--van-calendar-selected-day-size: 1.44rem;--van-calendar-selected-day-color: var(--van-white);--van-calendar-info-font-size: var(--van-font-size-xs);--van-calendar-info-line-height: var(--van-line-height-xs);--van-calendar-selected-day-background-color: var(--van-danger-color);--van-calendar-day-disabled-color: var(--van-text-color-3);--van-calendar-confirm-button-height: .96rem;--van-calendar-confirm-button-margin: .18667rem 0}.van-calendar{display:flex;flex-direction:column;height:100%;background:var(--van-calendar-background-color)}.van-calendar__popup.van-popup--top,.van-calendar__popup.van-popup--bottom{height:var(--van-calendar-popup-height)}.van-calendar__popup.van-popup--left,.van-calendar__popup.van-popup--right{height:100%}.van-calendar__popup .van-popup__close-icon{top:.29333rem}.van-calendar__header{flex-shrink:0;box-shadow:var(--van-calendar-header-box-shadow)}.van-calendar__month-title,.van-calendar__header-title,.van-calendar__header-subtitle{height:var(--van-calendar-header-title-height);font-weight:var(--van-font-weight-bold);line-height:var(--van-calendar-header-title-height);text-align:center}.van-calendar__header-title{font-size:var(--van-calendar-header-title-font-size)}.van-calendar__header-subtitle{font-size:var(--van-calendar-header-subtitle-font-size)}.van-calendar__month-title{font-size:var(--van-calendar-month-title-font-size)}.van-calendar__weekdays{display:flex}.van-calendar__weekday{flex:1;font-size:var(--van-calendar-weekdays-font-size);line-height:var(--van-calendar-weekdays-height);text-align:center}.van-calendar__body{flex:1;overflow:auto;-webkit-overflow-scrolling:touch}.van-calendar__days{position:relative;display:flex;flex-wrap:wrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.van-calendar__month-mark{position:absolute;top:50%;left:50%;z-index:0;color:var(--van-calendar-month-mark-color);font-size:var(--van-calendar-month-mark-font-size);transform:translate(-50%,-50%);pointer-events:none}.van-calendar__day,.van-calendar__selected-day{display:flex;align-items:center;justify-content:center;text-align:center}.van-calendar__day{position:relative;width:14.285%;height:var(--van-calendar-day-height);font-size:var(--van-calendar-day-font-size);cursor:pointer}.van-calendar__day--end,.van-calendar__day--start,.van-calendar__day--start-end,.van-calendar__day--multiple-middle,.van-calendar__day--multiple-selected{color:var(--van-calendar-range-edge-color);background:var(--van-calendar-range-edge-background-color)}.van-calendar__day--start{border-radius:var(--van-border-radius-md) 0 0 var(--van-border-radius-md)}.van-calendar__day--end{border-radius:0 var(--van-border-radius-md) var(--van-border-radius-md) 0}.van-calendar__day--start-end,.van-calendar__day--multiple-selected{border-radius:var(--van-border-radius-md)}.van-calendar__day--middle{color:var(--van-calendar-range-middle-color)}.van-calendar__day--middle:after{position:absolute;top:0;right:0;bottom:0;left:0;background-color:currentColor;opacity:var(--van-calendar-range-middle-background-opacity);content:""}.van-calendar__day--disabled{color:var(--van-calendar-day-disabled-color);cursor:default}.van-calendar__top-info,.van-calendar__bottom-info{position:absolute;right:0;left:0;font-size:var(--van-calendar-info-font-size);line-height:var(--van-calendar-info-line-height)}@media (max-width: 350px){.van-calendar__top-info,.van-calendar__bottom-info{font-size:.24rem}}.van-calendar__top-info{top:.16rem}.van-calendar__bottom-info{bottom:.16rem}.van-calendar__selected-day{width:var(--van-calendar-selected-day-size);height:var(--van-calendar-selected-day-size);color:var(--van-calendar-selected-day-color);background:var(--van-calendar-selected-day-background-color);border-radius:var(--van-border-radius-md)}.van-calendar__footer{flex-shrink:0;padding-left:var(--van-padding-md);padding-right:var(--van-padding-md)}.van-calendar__confirm{height:var(--van-calendar-confirm-button-height);margin:var(--van-calendar-confirm-button-margin)}._calendar_1oek0_1{border-radius:.26667rem}._calendar_1oek0_1 ._subtitle_1oek0_4{display:flex;align-items:center;justify-content:space-between;font-size:.48rem;font-weight:500;color:#333;line-height:.66667rem;height:var(--van-calendar-header-title-height);padding:0 .58667rem}._calendar_1oek0_1 ._subtitle_1oek0_4 ._right_1oek0_15{transform:rotate(180deg)}._calendar_1oek0_1 ._subtitle_1oek0_4 ._disabled_1oek0_18{opacity:.6}._calendar_1oek0_1 .van-calendar__header{box-shadow:none}._calendar_1oek0_1 .van-calendar__selected-day{width:1.01333rem!important;height:1.2rem!important;border-radius:.13333rem;overflow:hidden}._calendar_1oek0_1 .van-calendar__selected-day .van-calendar__bottom-info{color:#fff!important}._calendar_1oek0_1 .van-calendar__weekday{color:#777;font-size:.37333rem}._calendar_1oek0_1 .van-calendar__day{font-size:.4rem}._calendar_1oek0_1 .van-calendar__day:after{position:absolute;top:50%;right:0;bottom:0;left:50%;width:1.01333rem;height:1.2rem;background:#01C1B5;content:" ";opacity:.12;transform:translate(-50%,-50%);border-radius:.05333rem}._calendar_1oek0_1 .van-calendar__days{padding:.32rem 0}._calendar_1oek0_1 .van-calendar__bottom-info{bottom:.08rem}._calendar_1oek0_1 .full .van-calendar__bottom-info{color:#ff6363}._calendar_1oek0_1 .van-calendar__day.full:after,._calendar_1oek0_1 .van-calendar__day--disabled.full:after{display:inline-block!important;background-color:#ffd7a6}._calendar_1oek0_1 .van-calendar__day--disabled:after{display:none!important}._calenderPopup_1oek0_71{border-radius:.21333rem;overflow:hidden;padding:.48rem .32rem .74667rem}._calenderPopup_1oek0_71 ._popup_1oek0_76{width:8.32rem;background:#ffffff}._calenderPopup_1oek0_71 ._title_1oek0_80{display:flex;align-items:center;justify-content:space-around;font-size:.48rem;font-weight:500;color:#333;line-height:.66667rem;padding:0 .53333rem .66667rem}._calenderPopup_1oek0_71 ._container_1oek0_90{display:flex;align-items:center;flex-wrap:wrap;padding-bottom:.37333rem}._calenderPopup_1oek0_71 ._container_1oek0_90>div{flex-basis:33.33%;text-align:center}._calenderPopup_1oek0_71 ._noDay_1oek0_100{display:flex;align-items:center;justify-content:center;flex:1;padding:.66667rem 0 .93333rem}._calenderPopup_1oek0_71 ._noDay_1oek0_100 ._clock_1oek0_107{width:.8rem}._calenderPopup_1oek0_71 ._noDay_1oek0_100 span{padding-left:.26667rem;font-size:.37333rem;font-weight:500;color:#999}._calenderPopup_1oek0_71 ._tag_1oek0_116{padding:.21333rem .26667rem;margin-bottom:.26667rem;font-size:.32rem;color:#333!important;border-color:#d8d8d8!important}._calenderPopup_1oek0_71 ._tag_1oek0_116._active_1oek0_123{color:var(--van-primary)!important;background:#e0f7f3;border-color:var(--van-primary)!important}._calenderPopup_1oek0_71 ._dayBtn_1oek0_128{display:flex;align-items:center}\n'
  91. document.head.appendChild(__vite_style__)
  92. System.register(
  93. [
  94. './vendor-legacy.09f20d09.js',
  95. './index-legacy.f25f109a11.js',
  96. './index-legacy.f25f109a2.js',
  97. './index-legacy.f25f109a10.js'
  98. ],
  99. function (exports) {
  100. 'use strict'
  101. var commonjsGlobal,
  102. defineComponent,
  103. dayjs,
  104. Toast,
  105. createVNode,
  106. Fragment,
  107. Calendar$1,
  108. Icon,
  109. Popup,
  110. Tag,
  111. createTextVNode,
  112. Image,
  113. Button
  114. return {
  115. setters: [
  116. function (module) {
  117. commonjsGlobal = module.a2
  118. defineComponent = module.d
  119. dayjs = module.g
  120. Toast = module.T
  121. createVNode = module.a
  122. Fragment = module.F
  123. Calendar$1 = module.a3
  124. Icon = module.K
  125. Popup = module.P
  126. Tag = module.U
  127. createTextVNode = module.j
  128. Image = module.I
  129. Button = module.B
  130. },
  131. function () {},
  132. function () {},
  133. function () {}
  134. ],
  135. execute: function execute() {
  136. var index = ''
  137. var calendar = '_calendar_1oek0_1'
  138. var subtitle = '_subtitle_1oek0_4'
  139. var right = '_right_1oek0_15'
  140. var disabled = '_disabled_1oek0_18'
  141. var calenderPopup = '_calenderPopup_1oek0_71'
  142. var popup = '_popup_1oek0_76'
  143. var title = '_title_1oek0_80'
  144. var container = '_container_1oek0_90'
  145. var noDay = '_noDay_1oek0_100'
  146. var clock = '_clock_1oek0_107'
  147. var tag = '_tag_1oek0_116'
  148. var active = '_active_1oek0_123'
  149. var dayBtn = '_dayBtn_1oek0_128'
  150. var styles = {
  151. calendar: calendar,
  152. subtitle: subtitle,
  153. right: right,
  154. disabled: disabled,
  155. calenderPopup: calenderPopup,
  156. popup: popup,
  157. title: title,
  158. container: container,
  159. noDay: noDay,
  160. clock: clock,
  161. tag: tag,
  162. active: active,
  163. dayBtn: dayBtn
  164. }
  165. var IconArrow =
  166. 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAAAXNSR0IArs4c6QAAAKJQTFRFAAAAqv//3///2/Pz4P/34fjw4fj04vn23/jz4vjz4vj14fj14ff04Pfz4ff04fj04Pfz4Pj04ffz4Pj04Pfz4fj0LceqNMmtNsmtOcquO8qvPsuxRc2zSc61TM+2UtC5VdG6W9O8ZdbAcdnFctnGftzLjeDRjuDRrunfr+nfuOziwO7myPDpzPHrzvLr0vPt1PTu1/Tv2/Xx3fby3/fy4PfzO48SQAAAABZ0Uk5TAAMIFSEiRFhoaGiYpMTKzdfX6/j+/uKmZyQAAAD0SURBVDjLjZTXDsIwDEXd0tJCJx1m771n/v/XoAiQk5TK983WkRKvC0BkuX6UpGkS+a4FpTKcIBM/ZYFj6Ew9ForiuoKYXi405Z5JmVooShXWCNMSf9T6UWYo/ir8vuiJCnmfuvIqKH/XaMSiUnHRL0dLrzoLGjovKFCQxxKxRxMBgJ3JzH2O2N7STGZBQ2ZuM8TuTs654EvxdYrY3ysf8CGi4XmMODiohUSQkOg4RBydtGoTSEk0Qpxc9E6lPIj1HOvjrBawmlk6lo0yFtaAS1Zlra8Ka+lY68s7BN5JsY6Td+Y8w+BZD9PECtnNrx02JDt8Aj29wQfuVoPFAAAAAElFTkSuQmCC'
  167. var IconClock =
  168. 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAA2CAMAAAChp3phAAAAAXNSR0IArs4c6QAAASxQTFRFAAAAAAAA////gICAqqqqgICAmZmZqqqqkpKSgICAn5+fjo6OmZmZoqKilZWViYmJnZ2dkpKSn5+fnJyclJSUmZmZl5eXm5ubmZmZnZ2dlZWVlJSUl5eXm5ublpaWnp6emZmZmZmZmJiYmpqam5ubmJiYmpqamZmZmJiYmpqanJycmZmZlpaWmpqal5eXnJycmZmZm5ubmZmZmJiYmpqal5eXmpqamJiYnJycmpqamJiYm5ubmJiYmpqam5ubmpqamJiYm5ubmpqamJiYmpqamJiYm5ubmZmZmZmZmZmZmJiYmpqamZmZmZmZmZmZmJiYmpqamZmZmpqamZmZmJiYmZmZmpqamZmZmpqamZmZm5ubmZmZmJiYmpqamZmZm5ubmpqamZmZm5ubmZmZwxMU8QAAAGR0Uk5TAAEBAgMEBQYHCAgJCgsMDQ0OEBITFBYXGRodHyAhIiIjKCorLi8wMjQ1Njc4Ojs7PEBBQ0RHR0hISUpKTU5SU1xcXV5gY2NkZmdoaGlrbG1tbm9xdHZ3eHl6ent8fH19fn9/gF4hmekAAAJvSURBVBgZlcGLQtJQAAbgH1ExA1JBvGFFeKFMvJSSqWCaF7ySJNtEF/C//zt0NoWNczYY3weX6KF2NQsfs1faYRQ+lh5IXsPHNcmHJXiJlGjR4EOjpRSBYuKSth342KHtcgKSVJWWej4EH6F8nZZqCl0WNFrOptHD9Bkt2gJcUhqF1tYQXsWzu8d3mmnWKkeFbByvhrZaFLQUOiaqFMwVvBj7ctqkS/N0bQwvVkwK1Qm8ilxS0N/DFisYVBiFGGzvdQqXEbwoUTA/wBLeNOjJ2AjD8tGkUIJtiUJrBZZkmb7KSVhWWhSWIEQfKGzBktHZg56BZZvCQxTAIYXzIQi5Bntq5CAMnVM4BGCQfJqGkGuxj1YOwvQTSQPADck8hEyDfTUyEPIkbwDM3TzuhwAkdQagJwGE9h9v5tARLlNSTAzPX1BWDkO2QUkRwmiFsg1IYgYlCVhWKTOi6FagLATLIhXf0GXMoAy2NBX6W7itUQFbmqrPcDulArY0Vb/hEm9SAVuaqmYcjixVsKXp4RMcBapgS9PDdziOqIItTQ/HcPyhCrbx9IvF1Qo7buGoUQXJ6AXb/sJhUgXZPNue4DCpCkEyzLZ/cNSoSkCSYFsNjjuqipAU2XYPxxE9FBMhdIQSRXacwLHLgezDkeVAluGINzmISbiccgDXcFvjANbh9sZgYM9xdNljYAfoFjMY0PMUJJsMaBuycJmB3I5AkdQZQH0GHjIN9tVchqcc+9qAj1yDPbXy8JXR2UN9GT0ky/R1O4OewpsGPT1vj6Cf2J5BxfPBFIIY/3rWpNv1ehyBvcv++FWpmY3a/cnP5Ul4+w80tbiPt9JlfAAAAABJRU5ErkJggg=='
  169. var isToday$1 = { exports: {} }
  170. ;(function (module, exports) {
  171. !(function (e, o) {
  172. module.exports = o()
  173. })(commonjsGlobal, function () {
  174. return function (e, o, t) {
  175. o.prototype.isToday = function () {
  176. var e = 'YYYY-MM-DD',
  177. o = t()
  178. return this.format(e) === o.format(e)
  179. }
  180. }
  181. })
  182. })(isToday$1)
  183. var isToday = isToday$1.exports
  184. dayjs.extend(isToday)
  185. var Calendar = exports(
  186. 'C',
  187. defineComponent({
  188. name: 'calendar',
  189. props: {
  190. calendarDate: {
  191. type: Date,
  192. default: function _default() {
  193. return new Date()
  194. }
  195. }, // 选中的数据
  196. selectList: { type: Array, default: [] }, // 接口数据
  197. list: { type: Object, default: {} },
  198. /**
  199. * 每天选择课程最大数
  200. */ maxDays: { type: [Number, String], default: 0 },
  201. /**
  202. * 点击并选中任意日期时触发
  203. */ onSelect: {
  204. type: Function,
  205. default: function _default(date) {}
  206. },
  207. /**
  208. * 上一月,不能小于当月
  209. */ prevMonth: {
  210. type: Function,
  211. default: function _default(date) {}
  212. },
  213. /**
  214. * 下一月,暂无限制
  215. */ nextMonth: {
  216. type: Function,
  217. default: function _default(date) {}
  218. },
  219. /**
  220. * 日期选择结束时触发
  221. */ selectDay: {
  222. type: Function,
  223. default: function _default(obj) {}
  224. },
  225. isSkipHolidays: {
  226. // 是否跳过节假日
  227. type: Boolean,
  228. default: false
  229. }
  230. },
  231. data: function data() {
  232. return {
  233. minDate: new Date(),
  234. maxDate: new Date(),
  235. currentDate: dayjs().add(1, 'day').toDate(), // 当前日历日期
  236. subtitle: '',
  237. show: false,
  238. dayList: [],
  239. selectDays: []
  240. }
  241. },
  242. computed: {
  243. arrowStatus: function arrowStatus() {
  244. // 上月箭头状态
  245. return !dayjs()
  246. .add(1, 'day')
  247. .isBefore(dayjs(this.currentDate), 'month')
  248. },
  249. selectDayTitle: function selectDayTitle() {
  250. // 选中日期标题
  251. return dayjs(this.currentDate).format('YYYY-MM-DD')
  252. },
  253. isPrevDay: function isPrevDay() {
  254. // 是否可以点击上一天
  255. return dayjs(this.currentDate)
  256. .subtract(1, 'day')
  257. .isBefore(dayjs(this.minDate), 'day')
  258. },
  259. isNextDay: function isNextDay() {
  260. // 是否可以点击下一天
  261. return dayjs(this.currentDate)
  262. .add(1, 'day')
  263. .isAfter(dayjs(this.maxDate), 'day')
  264. }
  265. },
  266. mounted: function mounted() {
  267. // 初始化标题和最大显示日期
  268. this.subtitle = dayjs().add(1, 'day').format('YYYY年MM月')
  269. this.maxDate = dayjs().add(1, 'day').endOf('month').toDate()
  270. this.minDate = dayjs().add(1, 'day').toDate() // 初始化日历
  271. // console.log(this.list, 323, this.maxDays)
  272. },
  273. methods: {
  274. formatter: function formatter(date) {
  275. var dateStr = dayjs(date.date).format('YYYY-MM-DD')
  276. var dateObj = this.list[dateStr]
  277. date.type = '' // 判断是否有课程 并且 时间在当前时间之后
  278. if (
  279. dateObj &&
  280. dayjs().subtract(1, 'day').isBefore(dayjs(date.date))
  281. ) {
  282. var _dateObj$courseTime // fullCourse当天是否排满 0: 未,1:满 , courseTime 当天没有课程
  283. if (
  284. dateObj.fullCourse ||
  285. !(
  286. dateObj !== null &&
  287. dateObj !== void 0 &&
  288. dateObj.courseTime
  289. ) ||
  290. (dateObj === null || dateObj === void 0
  291. ? void 0
  292. : (_dateObj$courseTime = dateObj.courseTime) === null ||
  293. _dateObj$courseTime === void 0
  294. ? void 0
  295. : _dateObj$courseTime.length) <= 0
  296. ) {
  297. date.bottomInfo = '满'
  298. date.className = 'full'
  299. date.type = 'disabled'
  300. }
  301. } else {
  302. date.type = 'disabled'
  303. } // console.log(date)
  304. if (
  305. this.$route.name == 'liveCreate' &&
  306. dayjs(date.date).isToday()
  307. ) {
  308. date.type = 'disabled'
  309. } // 是否是节假日
  310. if (dateObj && this.isSkipHolidays && dateObj.holiday) {
  311. // date.bottomInfo = '节假日'
  312. date.type = 'disabled'
  313. } // date.type = date.type === 'selected' ? 'selected' : date.type
  314. // console.log(date.type)
  315. return date
  316. },
  317. onPrevMonth: function onPrevMonth() {
  318. // 上一月
  319. if (this.arrowStatus) return
  320. var tempDate = dayjs(this.currentDate).subtract(1, 'month')
  321. this._monthChange(tempDate)
  322. this.prevMonth && this.prevMonth(this.minDate)
  323. },
  324. onNextMonth: function onNextMonth() {
  325. // 下一月
  326. var tempDate = dayjs(this.currentDate).add(1, 'month')
  327. this._monthChange(tempDate)
  328. this.nextMonth && this.nextMonth(this.minDate)
  329. },
  330. _monthChange: function _monthChange(date) {
  331. // 月份改变
  332. // 需要判断是否是当月,需要单独处理最小时间
  333. var currentMinDate = dayjs().add(1, 'day').toDate()
  334. var monthMinDate = date.startOf('month').toDate()
  335. this.minDate = dayjs(currentMinDate).isAfter(monthMinDate)
  336. ? currentMinDate
  337. : monthMinDate // this.minDate = date.startOf('month').toDate()
  338. this.maxDate = date.endOf('month').toDate()
  339. this.currentDate = date.toDate()
  340. this.$emit('update:calendarDate', date.toDate())
  341. this.subtitle = date.format('YYYY年MM月')
  342. },
  343. onSelectDay: function onSelectDay(item) {
  344. // 选择某个时间段
  345. var index = this.selectDays.findIndex(function (days) {
  346. return days.startTime === item.startTime
  347. })
  348. if (this.selectDays.length < this.maxDays || index !== -1) {
  349. var _index = this.selectDays.findIndex(function (days) {
  350. return days.startTime === item.startTime
  351. })
  352. item.checked = !item.checked
  353. if (_index === -1) {
  354. this.selectDays.push(_objectSpread({}, item))
  355. } else {
  356. this.selectDays.splice(_index, 1)
  357. }
  358. } else {
  359. Toast('最多选择' + this.maxDays + '个时间段')
  360. }
  361. },
  362. onPrevDay: function onPrevDay() {
  363. // 获取上一天的数据
  364. var tempDate = dayjs(this.currentDate).subtract(1, 'day')
  365. this._dayChange(tempDate.toDate())
  366. },
  367. onNextDay: function onNextDay() {
  368. // 获取下一天的数据
  369. var tempDate = dayjs(this.currentDate).add(1, 'day')
  370. this._dayChange(tempDate.toDate())
  371. },
  372. onDateSelect: function onDateSelect(date) {
  373. // 选择日历上某一个日期
  374. // console.log([...this.selectList])
  375. this.selectDays = _toConsumableArray(this.selectList) // 初始化用户选中的值
  376. this._dayChange(date)
  377. this.onSelect && this.onSelect(date)
  378. },
  379. _dayChange: function _dayChange(date) {
  380. var _this = this
  381. var dateStr = dayjs(date).format('YYYY-MM-DD')
  382. var dataList = []
  383. if (
  384. this.list[dateStr] &&
  385. Array.isArray(this.list[dateStr].courseTime)
  386. ) {
  387. dataList = _toConsumableArray(
  388. this.list[dateStr].courseTime
  389. ).filter(function (n) {
  390. return dayjs().isBefore(dayjs(n.startTime))
  391. })
  392. }
  393. dataList.forEach(function (item) {
  394. var _this$selectDays
  395. item.start = dayjs(item.startTime).format('HH:mm')
  396. item.end = dayjs(item.endTime).format('HH:mm')
  397. var isExist =
  398. (_this$selectDays = _this.selectDays) === null ||
  399. _this$selectDays === void 0
  400. ? void 0
  401. : _this$selectDays.some(function (course) {
  402. return course.startTime === item.startTime
  403. })
  404. item.checked = isExist
  405. })
  406. this.dayList = dataList
  407. this.currentDate = date // 更新当前日期
  408. this.$emit('update:calendarDate', date)
  409. this.show = true
  410. }
  411. },
  412. render: function render() {
  413. var _this2 = this
  414. return createVNode(Fragment, null, [
  415. createVNode(
  416. Calendar$1,
  417. {
  418. class: styles.calendar,
  419. showTitle: false,
  420. poppable: false,
  421. showConfirm: false,
  422. showMark: false,
  423. firstDayOfWeek: 1,
  424. rowHeight: 56,
  425. minDate: this.minDate,
  426. maxDate: this.maxDate,
  427. color: 'var(--van-primary)',
  428. formatter: this.formatter,
  429. onSelect: this.onDateSelect
  430. },
  431. {
  432. subtitle: function subtitle() {
  433. return createVNode('div', { class: styles.subtitle }, [
  434. createVNode(
  435. Icon,
  436. {
  437. name: IconArrow,
  438. size: 22,
  439. class: _this2.arrowStatus && styles.disabled,
  440. onClick: _this2.onPrevMonth
  441. },
  442. null
  443. ),
  444. createVNode('span', null, [_this2.subtitle]),
  445. createVNode(
  446. Icon,
  447. {
  448. name: IconArrow,
  449. size: 22,
  450. class: styles.right,
  451. onClick: _this2.onNextMonth
  452. },
  453. null
  454. )
  455. ])
  456. } // 'bottom-info': (date: any) => <span>{date.type}</span>
  457. }
  458. ),
  459. createVNode(
  460. Popup,
  461. { show: this.show, class: styles.calenderPopup },
  462. {
  463. default: function _default() {
  464. return [
  465. createVNode('div', { class: styles.popup }, [
  466. createVNode('div', { class: styles.title }, [
  467. createVNode('span', null, [_this2.selectDayTitle])
  468. ]),
  469. createVNode('div', { class: styles.container }, [
  470. _this2.dayList.map(function (item) {
  471. return createVNode('div', null, [
  472. createVNode(
  473. Tag,
  474. {
  475. round: true,
  476. class: [
  477. styles.tag,
  478. item.checked ? styles.active : ''
  479. ],
  480. size: 'large',
  481. plain: true,
  482. onClick: function onClick() {
  483. return _this2.onSelectDay(item)
  484. }
  485. },
  486. {
  487. default: function _default() {
  488. return [
  489. item.start,
  490. createTextVNode('\uFF5E'),
  491. item.end
  492. ]
  493. }
  494. }
  495. )
  496. ])
  497. }),
  498. _this2.dayList.length <= 0 &&
  499. createVNode('div', { class: styles.noDay }, [
  500. createVNode(
  501. Image,
  502. {
  503. src: IconClock,
  504. class: styles.clock,
  505. fit: 'cover'
  506. },
  507. null
  508. ),
  509. createVNode('span', null, [
  510. createTextVNode(
  511. '\u4ECA\u65E5\u5DF2\u7EA6\u6EE1'
  512. )
  513. ])
  514. ])
  515. ]),
  516. createVNode('div', { class: styles.dayBtn }, [
  517. createVNode(
  518. Button,
  519. {
  520. round: true,
  521. plain: true,
  522. block: true,
  523. style: { marginRight: '10px' },
  524. onClick: function onClick() {
  525. _this2.show = false
  526. _this2.selectDays = []
  527. }
  528. },
  529. {
  530. default: function _default() {
  531. return [createTextVNode('\u53D6\u6D88')]
  532. }
  533. }
  534. ),
  535. createVNode(
  536. Button,
  537. {
  538. type: 'primary',
  539. block: true,
  540. round: true,
  541. disabled: !(_this2.selectDays.length > 0),
  542. onClick: function onClick() {
  543. _this2.selectDay &&
  544. _this2.selectDay(_this2.selectDays)
  545. _this2.show = false
  546. }
  547. },
  548. {
  549. default: function _default() {
  550. return [createTextVNode('\u786E\u8BA4')]
  551. }
  552. }
  553. )
  554. ])
  555. ])
  556. ]
  557. }
  558. }
  559. )
  560. ])
  561. }
  562. })
  563. )
  564. }
  565. }
  566. }
  567. )
  568. })()