SelfPlayDialog.vue 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <template>
  2. <confirm-dialog
  3. ref="dialog"
  4. title="平台内容播放"
  5. confirm-text="下载"
  6. @confirm="onConfirm"
  7. >
  8. <template #default>
  9. <div class="c-grid-form auto u-align-self--center">
  10. <div class="c-grid-form__label u-required">
  11. 日期范围
  12. </div>
  13. <el-date-picker
  14. v-model="dateRange"
  15. type="daterange"
  16. range-separator="至"
  17. value-format="yyyy-MM-dd"
  18. :picker-options="pickerOptions"
  19. :editable="false"
  20. :clearable="false"
  21. />
  22. </div>
  23. </template>
  24. </confirm-dialog>
  25. </template>
  26. <script>
  27. import { parseTime } from '@/utils'
  28. import { getSelfPlay } from '../api.js'
  29. export default {
  30. name: 'ContentDialog',
  31. data () {
  32. return {
  33. dateRange: null
  34. }
  35. },
  36. computed: {
  37. pickerOptions () {
  38. return {
  39. disabledDate: date => date > Date.now()
  40. }
  41. }
  42. },
  43. methods: {
  44. show () {
  45. const date = parseTime(new Date(), '{y}-{m}-{d}')
  46. this.dateRange = [date, date]
  47. this.$refs.dialog.show()
  48. },
  49. onConfirm (done) {
  50. const time = this.dateRange[0] === this.dateRange[1] ? this.dateRange[0] : `${this.dateRange[0]}~${this.dateRange[1]}`
  51. const endDate = new Date(this.dateRange[1].replace(/-/g, '/'))
  52. endDate.setDate(endDate.getDate() + 1)
  53. getSelfPlay({
  54. startDate: this.dateRange[0],
  55. endDate: parseTime(endDate, '{y}-{m}-{d}')
  56. }, time).then(({ data: { type } }) => {
  57. this.$emit('added', type)
  58. done()
  59. })
  60. }
  61. }
  62. }
  63. </script>