audit-warrant-input.vue 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. <template>
  2. <a-form-model-item
  3. v-if="lx === 'type'"
  4. ref="model"
  5. :rules="rules"
  6. :label="null"
  7. prop="empowerType"
  8. >
  9. <a-select v-model="model.empowerType" @change="changee">
  10. <a-select-option v-for="(key, i) in selectListOption" :key="i" :value="key.value">
  11. {{ key.label }}
  12. </a-select-option>
  13. </a-select>
  14. </a-form-model-item>
  15. <a-form-model-item
  16. v-else-if="lx === 'stime'"
  17. ref="model"
  18. :rules="rules"
  19. :label="null"
  20. prop="startDate"
  21. >
  22. <a-date-picker
  23. :key="modelKey"
  24. v-model="model.startDate"
  25. :disabled="disabled"
  26. :disabled-date="disabledStartDate"
  27. @change="changest"
  28. />
  29. </a-form-model-item>
  30. <a-form-model-item v-else ref="model" :label="null" :rules="rules" prop="endDate">
  31. <a-date-picker
  32. :key="modelKey"
  33. v-model="model.endDate"
  34. :disabled="disabled"
  35. :disabled-date="disabledEndDate"
  36. @change="changeet"
  37. />
  38. </a-form-model-item>
  39. </template>
  40. <script>
  41. import moment from 'moment'
  42. export default {
  43. name: 'AuditWarrantInput',
  44. metaInfo: {
  45. title: 'AuditWarrantInput',
  46. },
  47. props: {
  48. value: {
  49. type: Object,
  50. default: null,
  51. },
  52. field: {
  53. type: Object,
  54. default: () => {},
  55. },
  56. index: {
  57. type: Number,
  58. default: -1,
  59. },
  60. lx: {
  61. type: String,
  62. default: '',
  63. },
  64. data: {
  65. type: String,
  66. default: 'udata',
  67. },
  68. },
  69. data() {
  70. return {
  71. selectListOption: [
  72. // 期间 0 永久 1 近一年 2 近一个月 三个月 六个月
  73. { label: '期间', value: '0' },
  74. { label: '永久', value: '1' },
  75. { label: '近一年', value: '2' },
  76. { label: '近一个月', value: '3' },
  77. { label: '近三个月', value: '4' },
  78. { label: '近六个月', value: '5' },
  79. ],
  80. modelKey: 0,
  81. time: '',
  82. model: { empowerType: '', startDate: '', endDate: '' },
  83. disabled:
  84. this.value.empowerType === '1' ||
  85. this.value.empowerType === '2' ||
  86. this.empowerType === '2',
  87. rules: [{ required: true, trigger: ['change', 'blur'] }],
  88. empowerType: '',
  89. startDate: '',
  90. endDate: '',
  91. }
  92. },
  93. watch: {
  94. empowerType(val) {
  95. this.isLastDay()
  96. this.$emit('change', this.model.empowerType, this.field, this.index, this.lx, this.data)
  97. this.$refs.model.validate('blur')
  98. },
  99. startDate() {
  100. this.$emit('change', this.model.startDate, this.field, this.index, this.lx, this.data)
  101. this.$refs.model.validate('blur')
  102. },
  103. endDate() {
  104. this.$emit('change', this.model.endDate, this.field, this.index, this.lx, this.data)
  105. this.$refs.model.validate('blur')
  106. },
  107. },
  108. created() {
  109. if (this.value !== null) {
  110. if (this.lx === 'type') {
  111. if (this.value.empowerType) {
  112. this.model.empowerType = this.value.empowerType
  113. }
  114. } else if (this.lx === 'stime') {
  115. if (this.value.startDate) {
  116. this.model.startDate = this.value.startDate
  117. if (this.value.empowerType === '0') {
  118. this.disabled = false
  119. } else {
  120. this.disabled = true
  121. }
  122. }
  123. } else if (this.lx === 'etime') {
  124. if (this.value.endDate) {
  125. this.model.endDate = this.value.endDate
  126. if (this.value.empowerType === '0') {
  127. this.disabled = false
  128. } else {
  129. this.disabled = true
  130. }
  131. }
  132. }
  133. }
  134. },
  135. methods: {
  136. disabledStartDate(startDate) {
  137. const finishDate = this.time
  138. if (!startDate || !finishDate) {
  139. return false
  140. }
  141. return startDate.valueOf() > finishDate.valueOf()
  142. },
  143. disabledEndDate(finishDate) {
  144. const startDate = this.time
  145. if (!finishDate || !startDate) {
  146. return false
  147. }
  148. return startDate.valueOf() >= finishDate.valueOf()
  149. },
  150. changee(value) {
  151. this.empowerType = value
  152. this.isLastDay()
  153. },
  154. changest(value) {
  155. this.startDate = value
  156. this.isLastDay()
  157. },
  158. changeet(value) {
  159. this.endDate = value
  160. this.isLastDay()
  161. },
  162. isLastDay() {
  163. // if (this.empowerType === '2') {
  164. // const now = moment()
  165. // const end = moment().endOf('year')
  166. // this.startDate = now
  167. // this.endDate = end
  168. // this.model.startDate = now
  169. // this.model.endDate = end
  170. // }
  171. },
  172. },
  173. }
  174. </script>
  175. <style module lang="scss">
  176. @use '@/common/design' as *;
  177. </style>