loginForm.vue 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <template>
  2. <view>
  3. <u-form :model="form" ref="uForm" label-width="auto">
  4. <u-form-item prop="username">
  5. <u-input v-model="form.username" placeholder="请输入用户名" />
  6. </u-form-item>
  7. <u-form-item prop="password">
  8. <u-input v-model="form.password" type="password" placeholder="请输入密码" />
  9. </u-form-item>
  10. </u-form>
  11. <view class="u-m-t-60">
  12. <u-button type="success" @click="submit">登录</u-button>
  13. </view>
  14. <view class="u-m-t-40 u-text-right u-type-success">
  15. <text @click="signUp">注册账号</text>
  16. </view>
  17. </view>
  18. </template>
  19. <script>
  20. export default {
  21. mounted() {
  22. this.$refs.uForm.setRules(this.rules)
  23. },
  24. data() {
  25. return {
  26. form: {
  27. username: '',
  28. password: '',
  29. },
  30. rules: {
  31. username: [{
  32. required: true,
  33. message: '请输入用户名',
  34. trigger: ['change', 'blur']
  35. }],
  36. password: [{
  37. required: true,
  38. message: '请输入密码',
  39. trigger: ['change', 'blur']
  40. }]
  41. },
  42. }
  43. },
  44. methods: {
  45. /*
  46. 注册账号
  47. */
  48. signUp() {
  49. this.$emit('signUp')
  50. },
  51. /**
  52. * 校验
  53. */
  54. validate() {
  55. return new Promise((resolve, reject) => {
  56. this.$refs.uForm.validate(valid => valid && resolve(true) || reject(false))
  57. })
  58. },
  59. async submit() {
  60. // 校验
  61. await this.validate()
  62. this.$emit('login', this.form)
  63. }
  64. }
  65. }
  66. </script>
  67. <style>
  68. </style>