payment-cycle.vue 2.4 KB

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