cloudRecharge.vue 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <template>
  2. <div class="cloudRecharge">
  3. <div class="tips">
  4. <h2>云教室扣费规则</h2>
  5. <div class="tips_container">
  6. 1.系统根据线上课课程人数(含老师)进行扣费;<br />
  7. 2.用户人数2人(含老师)每分钟0.2元;用户人数3人(含老师)每分钟0.5元;<br />
  8. 3.每节线上课平台赠送10分钟免费时,长分别为课前5分钟及课后5分钟,总送时长不计算费用;<br />
  9. 4.扣费金额按排课人数计算,无论实际到课人数是否为排课人数,都会按照排课人数扣费<br />
  10. 5.课程结束后费用立即结算。
  11. </div>
  12. </div>
  13. <el-form label-position="top" ref="form" :model="form" label-width="80px">
  14. <el-form-item label="充值金额"
  15. prop="amount"
  16. :rules="[{ required: true, message: '请输入充值金额', trigger: 'blur' },
  17. { required: true, validator: validPrice, trigger: 'blur' }]">
  18. <el-input v-model="form.amount" placeholder="请输入充值金额"
  19. oninput="value=value.indexOf('.') > -1?value.slice(0, value.indexOf('.') + 3):value"
  20. type="number">
  21. <div slot="append">元</div>
  22. </el-input>
  23. </el-form-item>
  24. </el-form>
  25. <div class="sure">
  26. <el-button type="primary" @click="onRecharge">确认充值</el-button>
  27. </div>
  28. <el-dialog
  29. title="服务订单"
  30. :visible.sync="cloudVisible"
  31. width="1000px"
  32. v-if="cloudVisible"
  33. append-to-body
  34. >
  35. <rechargeModel :amount="form.amount" @close="cloudVisible = false" />
  36. </el-dialog>
  37. </div>
  38. </template>
  39. <script>
  40. import rechargeModel from '@/views/productService/model/rechargeModel'
  41. export default {
  42. name: 'cloudRecharge',
  43. components: {
  44. rechargeModel
  45. },
  46. data() {
  47. return {
  48. cloudVisible: false,
  49. form: {
  50. amount: null
  51. }
  52. }
  53. },
  54. methods: {
  55. onRecharge() {
  56. this.$refs.form.validate(async (_) => {
  57. if(_) {
  58. this.cloudVisible = true
  59. }
  60. })
  61. },
  62. validPrice (rule, value, callback) {
  63. if ((value == "" && typeof value == "string") || value == null) {
  64. callback(new Error("请输入金额"));
  65. } else if (value <= 0) {
  66. callback(new Error("输入金额必须大于0"));
  67. } else if (value >= 100000) {
  68. callback(new Error("输入金额必须小于100000"));
  69. } else {
  70. callback();
  71. }
  72. }
  73. }
  74. }
  75. </script>
  76. <style lang="less" scoped>
  77. .tips {
  78. background: #f7f7f7;
  79. padding: 15px;
  80. h2 {
  81. font-size: 18px;
  82. line-height: 1.5;
  83. height: auto;
  84. }
  85. .tips_container {
  86. line-height: 1.5;
  87. }
  88. }
  89. .el-input, .el-select {
  90. width: 300px !important;
  91. }
  92. </style>