payment-cycle.vue 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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. range-separator="至"
  52. start-placeholder="开始日期"
  53. end-placeholder="结束日期">
  54. </el-date-picker>
  55. </el-form-item>
  56. <el-form-item
  57. label="缴费有效期"
  58. prop="paymentValid"
  59. :rules="[{required: true, message: '请选择缴费有效期', trigger: 'blur'}]"
  60. >
  61. <el-date-picker
  62. v-model="form.paymentValid"
  63. type="daterange"
  64. style="width: 100%;"
  65. range-separator="至"
  66. start-placeholder="开始日期"
  67. end-placeholder="结束日期">
  68. </el-date-picker>
  69. </el-form-item>
  70. </el-form>
  71. </template>
  72. <script>
  73. import { paymentPatternType } from '@/constant'
  74. import { objectToOptions } from '@/utils'
  75. export default {
  76. props: ['form', 'className', 'isUserType', 'isDisabled', 'isCommon', 'hidePaymentPattern','hideMoney'],
  77. data() {
  78. return {
  79. paymentPatternTypeOptions: objectToOptions(paymentPatternType),
  80. }
  81. },
  82. methods: {
  83. paymentAmountChange() {
  84. this.$set(this.form, 'changeed', true)
  85. }
  86. }
  87. }
  88. </script>
  89. <style lang="less" scoped>
  90. .number-input{
  91. /deep/ .el-input__inner {
  92. text-align: left;
  93. }
  94. width: 100%;
  95. }
  96. </style>