name-gender-fields.vue 858 B

12345678910111213141516171819202122232425262728
  1. <template>
  2. <mx-form-item v-model="model[propName]" :prop="propName" :label="labelName"/>
  3. <mx-form-item :prop="propSex" :label="labelSex">
  4. <uv-radio-group v-model="model[propSex]" class="justify-end gap-20">
  5. <uv-radio v-for="op in sexOptions" :label="op.text" :name="op.value"/>
  6. </uv-radio-group>
  7. </mx-form-item>
  8. </template>
  9. <script setup>
  10. import {useInjectFormData} from "@/pages/login/components/hooks/useFormDataInjection";
  11. import {createPropDefine} from "@/utils";
  12. import mxConfig from "@/common/mxConfig";
  13. defineProps({
  14. propName: createPropDefine('nickName'),
  15. propSex: createPropDefine('sex'),
  16. labelName: createPropDefine('学生姓名'),
  17. labelSex: createPropDefine('学生性别')
  18. })
  19. const [model] = useInjectFormData()
  20. const sexOptions = mxConfig.sexOptions
  21. </script>
  22. <style scoped>
  23. </style>