add.vue 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. <template>
  2. <div class="app-content">
  3. <form @submit="formSubmit">
  4. <div class="module-com input-line-wrap">
  5. <tui-list-cell class="line-cell" :hover="false">
  6. <div class="tui-title required">手机号</div>
  7. <input v-model="form.mobile" placeholder-class="phcolor" class="tui-input" name="mobile" placeholder="请输入" maxlength="50" type="number" />
  8. </tui-list-cell>
  9. <tui-list-cell class="line-cell" :hover="false">
  10. <div class="tui-title required">确认手机号</div>
  11. <input v-model="form.confirmMobile" placeholder-class="phcolor" class="tui-input" name="confirmMobile" placeholder="请输入" maxlength="50" type="number" />
  12. </tui-list-cell>
  13. <tui-list-cell class="line-cell" :hover="false">
  14. <div class="tui-title required">余额</div>
  15. <input v-model="form.balance" placeholder-class="phcolor" class="tui-input" name="balance" placeholder="请输入" maxlength="50" type="number" />
  16. </tui-list-cell>
  17. <tui-list-cell class="line-cell" :arrow="true">
  18. <div class="tui-title required">会员级别</div>
  19. <picker mode="selector" :value="form.memberLevel" :range="levelData.list" range-key="level" @change="changeLevelFn" class="tui-input">
  20. <input v-model="form.memberLevel" name="memberLevel" type="text" hidden />
  21. <div v-if="form.memberLevel">{{ levelSelData.level }}</div>
  22. <div class="tui-placeholder" v-else>请选择</div>
  23. </picker>
  24. </tui-list-cell>
  25. <tui-list-cell class="line-cell" :hover="false">
  26. <div class="tui-title">姓名</div>
  27. <input v-model="form.realName" placeholder-class="phcolor" class="tui-input" name="phone" placeholder="请输入(选填)" maxlength="50" type="text" />
  28. </tui-list-cell>
  29. <tui-list-cell class="line-cell" :hover="false">
  30. <div class="tui-title required">确认密码</div>
  31. <input v-model="form.confirmPassword" placeholder-class="phcolor" class="tui-input" name="confirmPassword" placeholder="请输入确认密码" maxlength="50" type="password" />
  32. </tui-list-cell>
  33. <div class="prompt-text">添加后,申请会员时自动根据手机号识别客户,成长值、等级和余 额会自动同步。</div>
  34. <div class="btn-wrap">
  35. <button class="admin-button-com blue big" formType="submit">确认</button>
  36. </div>
  37. </div>
  38. </form>
  39. </div>
  40. </template>
  41. <script>
  42. import { mapGetters } from 'vuex'
  43. import TuiListCell from '@/components/plugin/list-cell'
  44. const form = require('@/utils/formValidation.js')
  45. // api
  46. import { getLevel } from '@/utils/config'
  47. import { add } from '@/api/member'
  48. export default {
  49. name: 'member-add',
  50. components: {
  51. TuiListCell
  52. },
  53. data() {
  54. return {
  55. form: {
  56. mobile: '',
  57. confirmMobile: '',
  58. balance: 0,
  59. memberLevel: '',
  60. realName: '',
  61. confirmPassword: ''
  62. },
  63. levelSelData: {}
  64. }
  65. },
  66. computed: {
  67. ...mapGetters({ levelData: 'getLevel' })
  68. },
  69. onLoad() {
  70. getLevel()
  71. },
  72. methods: {
  73. confirmFn() {
  74. add(this.form).then(res => {
  75. this.$msg('添加成功!')
  76. setTimeout(() => {
  77. this.$util.pageTo(1)
  78. }, 1000)
  79. })
  80. },
  81. changeLevelFn(e) {
  82. this.levelSelData = this.levelData.list[e.detail.value]
  83. this.form.memberLevel = this.levelSelData.level
  84. },
  85. // 表单验证
  86. formSubmit(e) {
  87. // 表单规则
  88. let rules = [
  89. {
  90. name: 'mobile',
  91. rule: ['required'],
  92. msg: ['请输入手机号']
  93. },
  94. {
  95. name: 'confirmMobile',
  96. rule: ['required'],
  97. msg: ['请输入手机号']
  98. },
  99. {
  100. name: 'balance',
  101. rule: ['required'],
  102. msg: ['请输入余额']
  103. },
  104. {
  105. name: 'memberLevel',
  106. rule: ['required'],
  107. msg: ['请选择会员级别']
  108. },
  109. {
  110. name: 'confirmPassword',
  111. rule: ['required'],
  112. msg: ['请输入密码']
  113. }
  114. ]
  115. // 进行表单检查
  116. let formData = e.detail.value
  117. let checkRes = form.validation(formData, rules)
  118. // 验证通过!
  119. if (!checkRes) {
  120. this.confirmFn()
  121. } else {
  122. this.$msg(checkRes)
  123. }
  124. }
  125. }
  126. }
  127. </script>
  128. <style lang="scss" scoped>
  129. </style>