feat:后台修改用户标签
This commit is contained in:
1 parent
38633f0dd7
commit
a44073ab70
2 files changed
+24
-7
No files matched your search
+5
-2
@@ -47,18 +47,21 @@ export const getIntDictOptions = (dictType: string): NumberDictDataType[] => {
|
||||
return dictOption
|
||||
}
|
||||
|
||||
export const getStrDictOptions = (dictType: string) => {
|
||||
export const getStrDictOptions = (dictType: string, excludeValues?: Array<string>) => {
|
||||
// 获得通用的 DictDataType 列表
|
||||
const dictOptions: DictDataType[] = getDictOptions(dictType)
|
||||
// 转换成 string 类型的 StringDictDataType 类型
|
||||
// why 需要特殊转换:避免 IDEA 在 v-for="dict in getStrDictOptions(...)" 时,el-option 的 key 会告警
|
||||
const dictOption: StringDictDataType[] = []
|
||||
let dictOption: StringDictDataType[] = []
|
||||
dictOptions.forEach((dict: DictDataType) => {
|
||||
dictOption.push({
|
||||
...dict,
|
||||
value: dict.value + ''
|
||||
})
|
||||
})
|
||||
if (excludeValues && excludeValues.length) {
|
||||
dictOption = dictOption.filter((dict: StringDictDataType) => !excludeValues.includes(dict.value))
|
||||
}
|
||||
return dictOption
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<el-form ref="formRef" :model="formData" :rules="formRules" label-width="100px" v-loading="formLoading">
|
||||
<el-form-item label="用户标签" prop="memberRecentTagList">
|
||||
<el-select v-model="formData.memberRecentTagList" multiple placeholder="请选择用户标签" clearable class="!w-240px">
|
||||
<el-option v-for="dict in getStrDictOptions(DICT_TYPE.MEMBER_RECENT_TAG)" :key="dict.value"
|
||||
<el-option v-for="dict in getStrDictOptions(DICT_TYPE.MEMBER_RECENT_TAG, ['1', '2', '4'])" :key="dict.value"
|
||||
:label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -28,8 +28,11 @@ const formData = ref<any>({
|
||||
id: undefined,
|
||||
memberRecentTagList: [],
|
||||
})
|
||||
|
||||
const memberRecentTagList = ref()
|
||||
|
||||
const formRules = reactive({
|
||||
memberRecentTagList: [{ required: true, message: '用户标签不能为空', trigger: 'blur' }]
|
||||
// memberRecentTagList: [{ required: true, message: '用户标签不能为空', trigger: 'blur' }]
|
||||
})
|
||||
const formRef = ref()
|
||||
|
||||
@@ -42,8 +45,13 @@ const open = async (id?: number) => {
|
||||
formLoading.value = true
|
||||
try {
|
||||
const data = await UserApi.getUser(id)
|
||||
if (data && data.memberTagList.length) {
|
||||
data.memberRecentTagList = data.memberTagList.map(item => item.tagBizType)
|
||||
if (data && data.memberTagList?.length) {
|
||||
const bizTypes = data.memberTagList.map(item => item.tagBizType) ?? []
|
||||
data.memberRecentTagList = bizTypes.filter(item => !['1', '2', '4'].includes(item))
|
||||
memberRecentTagList.value = bizTypes.filter(item => ['1', '2', '4'].includes(item))
|
||||
} else {
|
||||
data.memberRecentTagList = []
|
||||
memberRecentTagList.value = []
|
||||
}
|
||||
formData.value = data
|
||||
} finally {
|
||||
@@ -63,7 +71,13 @@ const submitForm = async () => {
|
||||
// 提交请求
|
||||
formLoading.value = true
|
||||
try {
|
||||
await UserApi.updateUser(formData.value)
|
||||
const _params = formData.value
|
||||
if (!_params.memberRecentTagList || !_params.memberRecentTagList?.length) {
|
||||
_params.memberRecentTagList = []
|
||||
}
|
||||
_params.memberRecentTagList.push(...memberRecentTagList.value)
|
||||
|
||||
await UserApi.updateUser(_params)
|
||||
|
||||
message.success(t('common.updateSuccess'))
|
||||
dialogVisible.value = false
|
||||
|
||||
Reference in new issue
Block a user