schedule.js 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import {
  2. saveSchedulePrograms,
  3. submitSchedule
  4. } from '@/api/calendar'
  5. export default {
  6. props: {
  7. detail: {
  8. type: Object,
  9. default: null
  10. },
  11. editable: {
  12. type: [Boolean, String],
  13. default: false
  14. }
  15. },
  16. data () {
  17. return {
  18. scheduleOptions: null
  19. }
  20. },
  21. computed: {
  22. isEmpty () {
  23. return this.scheduleOptions?.programs?.length === 0
  24. },
  25. programs () {
  26. return this.scheduleOptions?.programs ?? []
  27. },
  28. ratio () {
  29. return this.scheduleOptions?.resolutionRatio
  30. }
  31. },
  32. created () {
  33. this.scheduleOptions = {
  34. ...this.detail,
  35. editable: this.editable,
  36. programs: this._transformPrograms(this.detail.programs || [])
  37. }
  38. this.init()
  39. },
  40. methods: {
  41. _transformProgram (program) {
  42. return program
  43. },
  44. save (programs) {
  45. return saveSchedulePrograms(this.scheduleOptions, programs)
  46. },
  47. submit () {
  48. submitSchedule(this.scheduleOptions, this.programs).then(() => {
  49. this.$emit('submit')
  50. })
  51. }
  52. }
  53. }