UpdatePassword.vue 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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. const extraData = {};
  12. // 声明Emits
  13. const emit = defineEmits(['register', 'submit']);
  14. //表单配置
  15. const [registerForm, { validate }] = useForm({
  16. schemas: [
  17. {
  18. label: '旧密码',
  19. field: 'oldpassword',
  20. component: 'InputPassword',
  21. required: true,
  22. },
  23. {
  24. label: '新密码',
  25. field: 'password',
  26. component: 'InputPassword',
  27. // component: 'StrengthMeter',
  28. componentProps: {
  29. placeholder: '请输入新密码',
  30. },
  31. rules: [
  32. {
  33. required: true,
  34. message: '请输入新密码',
  35. },
  36. ],
  37. },
  38. {
  39. label: '确认新密码',
  40. field: 'confirmpassword',
  41. component: 'InputPassword',
  42. dynamicRules: ({ values }) => rules.confirmPassword(values, true),
  43. },
  44. ],
  45. showActionButtonGroup: false,
  46. });
  47. //表单赋值
  48. const [registerModal] = useModalInner((data) => {
  49. Object.assign(extraData, data);
  50. });
  51. //表单提交事件
  52. async function handleSubmit() {
  53. const values = await validate();
  54. emit('submit', {
  55. ...extraData,
  56. ...values,
  57. });
  58. }
  59. </script>