payment-cycle.vue 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <template>
  2. <el-form
  3. label-width="160px"
  4. ref="form"
  5. :class="className"
  6. :model="form"
  7. label-suffix=": "
  8. >
  9. <el-form-item
  10. v-if="!hideMoney"
  11. label="课程金额(元)"
  12. prop="paymentAmount"
  13. :rules="[{required: true, message: '请输入缴费金额', trigger: 'blur'}]"
  14. >
  15. <el-input-number
  16. class="number-input"
  17. v-model="form.paymentAmount"
  18. :controls="false"
  19. :precision="0"
  20. :min="0"
  21. @change="paymentAmountChange"
  22. :disabled="isDisabled"
  23. placeholder="请输入缴费金额"
  24. />
  25. </el-form-item>
  26. <el-form-item
  27. label="缴费方式"
  28. prop="paymentPattern"
  29. v-if="!hidePaymentPattern"
  30. :rules="[{required: true, message: '请选择缴费方式', trigger: 'change'}]"
  31. >
  32. <el-select style="width: 100%!important;" v-model="form.paymentPattern" placeholder="请选择缴费方式">
  33. <el-option
  34. v-for="item in paymentPatternTypeOptions"
  35. :key="item.value"
  36. :label="item.label"
  37. :value="item.value">
  38. </el-option>
  39. </el-select>
  40. </el-form-item>
  41. <el-form-item
  42. label="缴费时间"
  43. prop="paymentDate"
  44. v-if="isUserType"
  45. :rules="[{required: true, message: '请选择缴费时间', trigger: 'blur'}]"
  46. >
  47. <el-date-picker
  48. v-model="form.paymentDate"
  49. type="daterange"
  50. style="width: 100%;"
  51. :picker-options="pickerOptions"
  52. range-separator="至"
  53. start-placeholder="开始日期"
  54. end-placeholder="结束日期">
  55. </el-date-picker>
  56. </el-form-item>
  57. <el-form-item
  58. label="缴费有效期"
  59. prop="paymentValid"
  60. v-if="courseViewType!=2 || (courseViewType==2&&paymentType=== undefined)"
  61. :rules="[{required: true, message: '请选择缴费有效期', trigger: 'blur'}]"
  62. >
  63. <el-date-picker
  64. v-model="form.paymentValid"
  65. :picker-options="pickerOptions"
  66. type="daterange"
  67. style="width: 100%;"
  68. range-separator="至"
  69. start-placeholder="开始日期"
  70. end-placeholder="结束日期">
  71. </el-date-picker>
  72. </el-form-item>
  73. </el-form>
  74. </template>
  75. <script>
  76. import { paymentPatternType } from '@/constant'
  77. import { objectToOptions } from '@/utils'
  78. export default {
  79. props: ['form', 'className', 'isUserType', 'isDisabled', 'isCommon', 'hidePaymentPattern','hideMoney','courseViewType','paymentType'],
  80. data() {
  81. return {
  82. paymentPatternTypeOptions: objectToOptions(paymentPatternType),
  83. pickerOptions: {
  84. firstDayOfWeek: 1,
  85. disabledDate (time) {
  86. return time.getTime() + 86400000 <= new Date().getTime();
  87. },
  88. },
  89. }
  90. },
  91. mounted(){
  92. // console.log(this.paymentType)
  93. },
  94. methods: {
  95. paymentAmountChange() {
  96. this.$set(this.form, 'changeed', true)
  97. }
  98. }
  99. }
  100. </script>
  101. <style lang="less" scoped>
  102. .number-input{
  103. /deep/ .el-input__inner {
  104. text-align: left;
  105. }
  106. width: 100%;
  107. }
  108. </style>