audit-warrant-input.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  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 field.attr.selectListItem" :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. v-model="model.startDate"
  24. :disabled="disabled"
  25. :disabled-date="disabledStartDate"
  26. @change="changest"
  27. />
  28. </a-form-model-item>
  29. <a-form-model-item v-else ref="model" :label="null" :rules="rules" prop="endDate">
  30. <a-date-picker
  31. v-model="model.endDate"
  32. :disabled="disabled"
  33. :disabled-date="disabledEndDate"
  34. @change="changeet"
  35. />
  36. </a-form-model-item>
  37. </template>
  38. <script>
  39. import moment from 'moment'
  40. import components from './_import-components/audit-warrant-input-import'
  41. export default {
  42. name: 'AuditWarrantInput',
  43. metaInfo: {
  44. title: 'AuditWarrantInput',
  45. },
  46. components,
  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. time: '',
  72. model: { empowerType: '', startDate: '', endDate: '' },
  73. disabled: this.value.empowerType === '1' || this.value.empowerType === '2',
  74. rules: [{ required: true, trigger: ['change', 'blur'] }],
  75. empowerType: '',
  76. startDate: '',
  77. endDate: '',
  78. }
  79. },
  80. watch: {
  81. empowerType() {
  82. this.$emit('change', this.model.empowerType, this.field, this.index, this.lx, this.data)
  83. this.$refs.model.validate('blur')
  84. },
  85. startDate() {
  86. this.$emit('change', this.model.startDate, this.field, this.index, this.lx, this.data)
  87. this.$refs.model.validate('blur')
  88. },
  89. endDate() {
  90. this.$emit('change', this.model.endDate, this.field, this.index, this.lx, this.data)
  91. this.$refs.model.validate('blur')
  92. },
  93. },
  94. created() {
  95. if (this.value !== null) {
  96. if (this.lx === 'type') {
  97. if (this.value.empowerType) {
  98. this.model.empowerType = this.value.empowerType
  99. }
  100. } else if (this.lx === 'stime') {
  101. if (this.value.startDate) {
  102. this.model.startDate = this.value.startDate
  103. if (this.value.empowerType === '1') {
  104. this.disabled = true
  105. }
  106. }
  107. } else if (this.lx === 'etime') {
  108. if (this.value.endDate) {
  109. this.model.endDate = this.value.endDate
  110. if (this.value.empowerType === '1') {
  111. this.disabled = true
  112. }
  113. }
  114. }
  115. }
  116. },
  117. methods: {
  118. disabledStartDate(startDate) {
  119. const finishDate = this.time
  120. if (!startDate || !finishDate) {
  121. return false
  122. }
  123. return startDate.valueOf() > finishDate.valueOf()
  124. },
  125. disabledEndDate(finishDate) {
  126. const startDate = this.time
  127. if (!finishDate || !startDate) {
  128. return false
  129. }
  130. return startDate.valueOf() >= finishDate.valueOf()
  131. },
  132. changee(value) {
  133. this.empowerType = value
  134. },
  135. changest(value) {
  136. this.startDate = value
  137. },
  138. changeet(value) {
  139. this.endDate = value
  140. },
  141. },
  142. }
  143. </script>
  144. <style module lang="scss">
  145. @use '@/common/design' as *;
  146. </style>