audit-project-input.vue 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <template>
  2. <a-date-picker
  3. v-if="lx === 's'"
  4. v-model="model"
  5. type="date"
  6. :default-value="model"
  7. :disabled-date="disabledStartDate"
  8. />
  9. <a-date-picker
  10. v-else
  11. v-model="model"
  12. type="date"
  13. :default-value="model"
  14. :disabled-date="disabledEndDate"
  15. />
  16. </template>
  17. <script>
  18. import moment from 'moment'
  19. import components from './_import-components/audit-project-input-import'
  20. export default {
  21. name: 'AuditProjectInput',
  22. metaInfo: {
  23. title: 'AuditProjectInput',
  24. },
  25. components,
  26. props: {
  27. value: {
  28. type: Number,
  29. default: null,
  30. },
  31. field: {
  32. type: Object,
  33. default: () => {},
  34. },
  35. index: {
  36. type: Number,
  37. default: -1,
  38. },
  39. lx: {
  40. type: String,
  41. default: '',
  42. },
  43. data: {
  44. type: String,
  45. default: 'udata',
  46. },
  47. },
  48. data() {
  49. return {
  50. model: '',
  51. time: 0,
  52. }
  53. },
  54. watch: {
  55. model() {
  56. this.$emit('change', new Date(this.model).getTime(), this.field, this.index, this.lx)
  57. },
  58. },
  59. created() {
  60. if (this.value !== null) {
  61. this.model = moment(this.value)
  62. }
  63. },
  64. methods: {
  65. disabledStartDate(startDate) {
  66. const finishDate = this.time
  67. if (!startDate || !finishDate) {
  68. return false
  69. }
  70. return startDate.valueOf() > finishDate.valueOf()
  71. },
  72. disabledEndDate(finishDate) {
  73. const startDate = this.time
  74. if (!finishDate || !startDate) {
  75. return false
  76. }
  77. return startDate.valueOf() >= finishDate.valueOf()
  78. },
  79. },
  80. }
  81. </script>
  82. <style module lang="scss">
  83. @use '@/common/design' as *;
  84. </style>