payment-cycle.vue 2.5 KB

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