UpdatePassword.vue 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <template>
  2. <BasicModal v-bind="$attrs" @register="registerModal" title="修改密码" @ok="handleSubmit" width="600px">
  3. <BasicForm @register="registerForm" />
  4. </BasicModal>
  5. </template>
  6. <script lang="ts" setup>
  7. import { rules } from '/@/utils/helper/validator';
  8. import { BasicModal, useModalInner } from '/@/components/Modal';
  9. import BasicForm from '/@/components/Form/src/BasicForm.vue';
  10. import { useForm } from '/@/components/Form/src/hooks/useForm';
  11. // 声明Emits
  12. const emit = defineEmits(['register', 'submit']);
  13. //表单配置
  14. const [registerForm, { validate }] = useForm({
  15. schemas: [
  16. {
  17. label: '旧密码',
  18. field: 'oldpassword',
  19. component: 'InputPassword',
  20. required: true,
  21. },
  22. {
  23. label: '新密码',
  24. field: 'password',
  25. component: 'InputPassword',
  26. // component: 'StrengthMeter',
  27. componentProps: {
  28. placeholder: '请输入新密码',
  29. },
  30. rules: [
  31. {
  32. required: true,
  33. message: '请输入新密码',
  34. },
  35. ],
  36. },
  37. {
  38. label: '确认新密码',
  39. field: 'confirmpassword',
  40. component: 'InputPassword',
  41. dynamicRules: ({ values }) => rules.confirmPassword(values, true),
  42. },
  43. ],
  44. showActionButtonGroup: false,
  45. });
  46. //表单赋值
  47. const [registerModal] = useModalInner();
  48. //表单提交事件
  49. async function handleSubmit() {
  50. const values = await validate();
  51. emit('submit', values);
  52. }
  53. </script>