25
25
<el-input v-model =" formData.nickname" placeholder =" 请输入用户昵称" />
26
26
</el-form-item >
27
27
<el-form-item label =" 头像" prop =" avatar" >
28
- <el-input v-model =" formData.avatar" placeholder = " 请输入头像 " />
28
+ <UploadImg v-model =" formData.avatar" :limit = " 1 " :is-show-tip = " false " />
29
29
</el-form-item >
30
30
<el-form-item label =" 真实名字" prop =" name" >
31
31
<el-input v-model =" formData.name" placeholder =" 请输入真实名字" />
50
50
/>
51
51
</el-form-item >
52
52
<el-form-item label =" 所在地" prop =" areaId" >
53
- <el-input v-model =" formData.areaId" placeholder =" 请输入所在地" />
53
+ <el-tree-select
54
+ v-model =" formData.areaId"
55
+ :data =" areaList"
56
+ :props =" defaultProps"
57
+ :render-after-expand =" true"
58
+ />
54
59
</el-form-item >
55
60
<el-form-item label =" 会员备注" prop =" mark" >
56
61
<el-input type =" textarea" v-model =" formData.mark" placeholder =" 请输入会员备注" />
65
70
<script setup lang="ts">
66
71
import { DICT_TYPE , getIntDictOptions } from ' @/utils/dict'
67
72
import * as UserApi from ' @/api/member/user'
73
+ import * as AreaApi from ' @/api/system/area'
74
+ import { defaultProps } from ' @/utils/tree'
68
75
69
76
const { t } = useI18n () // 国际化
70
77
const message = useMessage () // 消息弹窗
@@ -90,6 +97,7 @@ const formRules = reactive({
90
97
status: [{ required: true , message: ' 状态不能为空' , trigger: ' blur' }]
91
98
})
92
99
const formRef = ref () // 表单 Ref
100
+ const areaList = ref ([]) // 地区列表
93
101
94
102
/** 打开弹窗 */
95
103
const open = async (type : string , id ? : number ) => {
@@ -106,6 +114,8 @@ const open = async (type: string, id?: number) => {
106
114
formLoading .value = false
107
115
}
108
116
}
117
+ // 获得地区列表
118
+ areaList .value = await AreaApi .getAreaTree ()
109
119
}
110
120
defineExpose ({ open }) // 提供 open 方法,用于打开弹窗
111
121
0 commit comments