Step2.vue 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <template>
  2. <el-form
  3. ref="formRef"
  4. :label-width="90"
  5. :model="formValue"
  6. :rules="rules"
  7. style="margin: 40px auto 0 0"
  8. >
  9. <el-form-item label="付款账户" prop="myAccount">
  10. <span>NaiveUiAdmin@163.com</span>
  11. </el-form-item>
  12. <el-form-item label="收款账户" prop="account">
  13. <span>NaiveUiAdmin@qq.com</span>
  14. </el-form-item>
  15. <el-form-item label="收款人姓名" prop="name">
  16. <span>Ah jung</span>
  17. </el-form-item>
  18. <el-form-item label="转账金额" prop="money">
  19. <span>¥1980</span>
  20. </el-form-item>
  21. <el-divider />
  22. <el-form-item label="支付密码" prop="password">
  23. <el-input v-model="formValue.password" type="password" />
  24. </el-form-item>
  25. <el-form-item>
  26. <el-space>
  27. <el-button :loading="loading" type="primary" @click="formSubmit(formRef)">提交</el-button>
  28. <el-button @click="prevStep">上一步</el-button>
  29. </el-space>
  30. </el-form-item>
  31. </el-form>
  32. </template>
  33. <script lang="ts" setup>
  34. import { ref } from 'vue';
  35. import { ElMessage } from 'element-plus';
  36. import type { ElForm } from 'element-plus';
  37. type FormInstance = InstanceType<typeof ElForm>;
  38. const formRef = ref<FormInstance>();
  39. const loading = ref(false);
  40. const formValue = ref({
  41. password: '086611',
  42. });
  43. const rules = {
  44. password: {
  45. required: true,
  46. message: '请输入支付密码',
  47. trigger: 'blur',
  48. },
  49. };
  50. const emit = defineEmits(['prevStep', 'nextStep']);
  51. function prevStep() {
  52. emit('prevStep');
  53. }
  54. function formSubmit(formEl: FormInstance | undefined) {
  55. if (!formEl) return;
  56. loading.value = true;
  57. formEl.validate((valid) => {
  58. if (valid) {
  59. setTimeout(() => {
  60. emit('nextStep');
  61. }, 1500);
  62. } else {
  63. ElMessage({
  64. message: '验证失败,请填写完整信息',
  65. type: 'danger',
  66. });
  67. }
  68. });
  69. }
  70. </script>