register.uvue 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <template>
  2. <view class=" w-[80vw]">
  3. <cl-form-item prop="username" required :pt="{
  4. className: '!mb-4'
  5. }" :rules="[
  6. {
  7. required: true,
  8. message: '用户名不能为空'
  9. }
  10. ] as ClFormRule[]
  11. ">
  12. <cl-input clearable class="" :pt="{ className: '!h-[40px] !rounded-xxl !px-4 !w-[80vw]' }" v-model="form.username"
  13. placeholder="请输入用户名(必填)"></cl-input>
  14. </cl-form-item>
  15. <cl-form-item prop="password" required :pt="{
  16. className: '!mb-4'
  17. }" :rules="[
  18. {
  19. required: true,
  20. message: '密码不能为空'
  21. }, {
  22. min: 6,
  23. max: 12,
  24. message: '密码长度必须在6到16位之间'
  25. }
  26. ] as ClFormRule[]
  27. ">
  28. <cl-input :pt="{ className: '!h-[40px] !rounded-xxl !px-4 !w-[80vw]' }" clearable v-model="form.password" password
  29. placeholder="请输入密码(必填)">
  30. </cl-input>
  31. </cl-form-item>
  32. <cl-form-item prop="confirmPassword" required :pt="{
  33. className: '!mb-4'
  34. }" :rules="[
  35. {
  36. required: true,
  37. message: '确认密码不能为空'
  38. }, {
  39. validator: (val: string) => val === form.password,
  40. message: '两次密码输入不一致'
  41. }
  42. ] as ClFormRule[]
  43. ">
  44. <cl-input :pt="{ className: '!h-[40px] !rounded-xxl !px-4 !w-[80vw]' }" clearable v-model="form.confirmPassword"
  45. password placeholder="请确认密码(必填)">
  46. </cl-input>
  47. </cl-form-item>
  48. <cl-form-item :pt="{
  49. className: '!mb-4'
  50. }" prop="realName">
  51. <cl-input clearable :pt="{ className: '!h-[40px] !rounded-xxl !px-4 !w-[80vw]' }" v-model="form.realName"
  52. placeholder="请输入姓名"></cl-input>
  53. </cl-form-item>
  54. <cl-form-item :pt="{
  55. className: '!mb-4'
  56. }" prop="phone">
  57. <cl-input clearable :pt="{ className: '!h-[40px] !rounded-xxl !px-4 !w-[80vw]' }" v-model="form.phone"
  58. placeholder="请输入手机号"></cl-input>
  59. </cl-form-item>
  60. </view>
  61. </template>
  62. <script setup lang="ts">
  63. import { type PropType } from "vue";
  64. import type { LoginForm } from "./types";
  65. import { useRefs, } from "@/.cool";
  66. const props = defineProps({
  67. form: {
  68. type: Object as PropType<LoginForm>,
  69. default: () => ({})
  70. }
  71. });
  72. const emit = defineEmits(["success"]);
  73. const refs = useRefs();
  74. </script>