0e6f13de28d50bfecab5a70b4be45bb50fb2a2f2.svn-base 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <template>
  2. <div class="config-list">
  3. <a-radio-group v-model="type">
  4. <div class="item">
  5. <a-radio value="TYPE_NOT_SET" class="choice" :disabled="disableChoice">不设置</a-radio>
  6. <span class="tip-info">日和周只能设置其中之一</span>
  7. </div>
  8. <div class="item">
  9. <a-radio value="TYPE_EVERY" class="choice" :disabled="disableChoice">每日</a-radio>
  10. </div>
  11. <div class="item">
  12. <a-radio value="TYPE_RANGE" class="choice" :disabled="disableChoice">区间</a-radio>
  13. <a-input :disabled="type!==TYPE_RANGE || disableChoice" :max="maxValue" :min="minValue" :precision="0" class="w60" v-model="valueRange.start"/>
  14. <a-input :disabled="type!==TYPE_RANGE || disableChoice" :max="maxValue" :min="minValue" :precision="0" class="w60" v-model="valueRange.end"/>
  15. </div>
  16. <div class="item">
  17. <a-radio value="TYPE_LOOP" class="choice" :disabled="disableChoice">循环</a-radio>
  18. <a-input :disabled="type!==TYPE_LOOP || disableChoice" :max="maxValue" :min="minValue" :precision="0" class="w60" v-model="valueLoop.start"/>
  19. 日开始,间隔
  20. <a-input :disabled="type!==TYPE_LOOP || disableChoice" :max="maxValue" :min="minValue" :precision="0" class="w60" v-model="valueLoop.interval"/>
  21. </div>
  22. <div class="item">
  23. <a-radio value="TYPE_WORK" class="choice" :disabled="disableChoice">工作日</a-radio>
  24. 本月
  25. <a-input :disabled="type!==TYPE_WORK || disableChoice" :max="maxValue" :min="minValue" :precision="0" class="w60" v-model="valueWork"/>
  26. 日,最近的工作日
  27. </div>
  28. <div class="item">
  29. <a-radio value="TYPE_LAST" class="choice" :disabled="disableChoice">最后一日</a-radio>
  30. </div>
  31. <div class="item">
  32. <a-radio value="TYPE_SPECIFY" class="choice" :disabled="disableChoice">指定</a-radio>
  33. <div class="list">
  34. <a-checkbox-group v-model="valueList">
  35. <template v-for="i of specifyRange">
  36. <a-checkbox class="list-check-item" :key="`key-${i}`" :value="i" :disabled="type!==TYPE_SPECIFY || disabled">{{i}}</a-checkbox>
  37. </template>
  38. </a-checkbox-group>
  39. </div>
  40. </div>
  41. </a-radio-group>
  42. </div>
  43. </template>
  44. <script>
  45. import mixin from './mixin'
  46. export default {
  47. name: 'day',
  48. mixins: [mixin],
  49. props: {
  50. week: {
  51. type: String,
  52. default: '?'
  53. }
  54. },
  55. data() {
  56. return {}
  57. },
  58. computed: {
  59. disableChoice() {
  60. return (this.week && this.week !== '?') || this.disabled
  61. }
  62. },
  63. watch: {
  64. value_c(newVal, oldVal) {
  65. // 数值变化
  66. this.updateValue()
  67. },
  68. week(newVal, oldVal) {
  69. // console.info('new week: ' + newVal)
  70. this.updateValue()
  71. }
  72. },
  73. methods: {
  74. updateValue() {
  75. this.$emit('change', this.disableChoice ? '?' : this.value_c)
  76. }
  77. },
  78. created() {
  79. this.DEFAULT_VALUE = '*'
  80. this.minValue = 1
  81. this.maxValue = 31
  82. this.valueRange.start = 1
  83. this.valueRange.end = 31
  84. this.valueLoop.start = 1
  85. this.valueLoop.interval = 1
  86. this.parseProp(this.prop)
  87. }
  88. }
  89. </script>
  90. <style lang="less" scoped>
  91. @import "mixin.less";
  92. </style>