EditModal.vue 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <template>
  2. <a-modal v-model:visible="visible" :title="title" @ok="ok" @cancel="editHandleCancel" width="48%">
  3. <a-form ref="formRef" :model="edit_form" auto-label-width>
  4. <a-row :gutter="20">
  5. <a-col :span="10">
  6. <a-form-item field="loginName" label="用户名" :rules="[
  7. { required: true, message: '用户名必填' },
  8. { maxLength: 50, message: '长度不超过50' },
  9. ]">
  10. <a-input v-model="edit_form.loginName" />
  11. </a-form-item>
  12. </a-col>
  13. <a-col :span="10">
  14. <a-form-item field="userName" label="姓名">
  15. <a-input v-model="edit_form.userName" />
  16. </a-form-item>
  17. </a-col>
  18. </a-row>
  19. <a-row :gutter="20">
  20. <a-col :span="10">
  21. <a-form-item field="phoneNumber" label="手机号">
  22. <a-input v-model="edit_form.phoneNumber" />
  23. </a-form-item>
  24. </a-col>
  25. <a-col :span="10">
  26. <a-form-item required field="email" label="邮箱" :rules="[
  27. { required: true, message: '邮箱必填' },
  28. { maxLength: 50, message: '长度不超过50' },
  29. ]">
  30. <a-input v-model="edit_form.email" />
  31. </a-form-item>
  32. </a-col>
  33. </a-row>
  34. <a-row :gutter="20">
  35. <a-col :span="10">
  36. <a-form-item field="password" label="密码">
  37. <a-input v-model="edit_form.password" type="password" />
  38. </a-form-item>
  39. </a-col>
  40. <a-col :span="10">
  41. <a-form-item field="role" label="角色">
  42. <a-select multiple v-model="edit_form.role" :options="roles" :field-names="field_names"
  43. @change="roleChange">
  44. </a-select>
  45. </a-form-item>
  46. </a-col>
  47. </a-row>
  48. </a-form>
  49. </a-modal>
  50. </template>
  51. <script setup>
  52. import { toRefs } from 'vue';
  53. // 定义组件的 props(根据实际需要进行修改)
  54. const props = defineProps({
  55. edit_form: Object,
  56. visible: Boolean,
  57. title: String,
  58. roles: Array,
  59. field_names: Object
  60. });
  61. // 事件发射器
  62. const emit = defineEmits(['ok', 'cancel']);
  63. const { edit_form, visible, title, roles, field_names } = toRefs(props);
  64. // 处理确认事件
  65. const ok = () => {
  66. // 进行表单验证和提交逻辑
  67. // 根据需要增加表单验证逻辑
  68. emit('ok', edit_form);
  69. }
  70. const editHandleCancel = () => {
  71. emit('cancel');
  72. visible.value = false;
  73. }
  74. // 角色变化处理
  75. const roleChange = (selectedRoles) => {
  76. edit_form.role = selectedRoles;
  77. }
  78. </script>
  79. <style lang="css" scoped>
  80. /* 这里可以添加自定义样式 */
  81. </style>