11
This commit is contained in:
1 parent
a9bac9d3bf
commit
c1411e0fde
1 file changed
+19
-14
@@ -30,7 +30,7 @@ const formData = ref<any>({
|
||||
memberRecentTagList: [],
|
||||
})
|
||||
|
||||
const memberRecentTagList = ref()
|
||||
const systemTagTypes = ref<string[]>([])
|
||||
|
||||
const formRules = reactive({
|
||||
// memberRecentTagList: [{ required: true, message: '用户标签不能为空', trigger: 'blur' }]
|
||||
@@ -47,12 +47,14 @@ const open = async (id?: number) => {
|
||||
try {
|
||||
const data = await UserApi.getUser(id)
|
||||
if (data && data.memberTagList?.length) {
|
||||
const bizTypes = data.memberTagList.map(item => item.tagBizType) ?? []
|
||||
const bizTypes = Array.from(new Set<string>(
|
||||
data.memberTagList.map((item: { tagBizType: string }) => item.tagBizType)
|
||||
))
|
||||
data.memberRecentTagList = bizTypes.filter(item => !['2', '4'].includes(item))
|
||||
memberRecentTagList.value = bizTypes.filter(item => ['2', '4'].includes(item))
|
||||
systemTagTypes.value = bizTypes.filter(item => ['2', '4'].includes(item))
|
||||
} else {
|
||||
data.memberRecentTagList = []
|
||||
memberRecentTagList.value = []
|
||||
systemTagTypes.value = []
|
||||
}
|
||||
formData.value = data
|
||||
} finally {
|
||||
@@ -65,20 +67,22 @@ defineExpose({ open }) // 提供 open 方法,用于打开弹窗
|
||||
/** 提交表单 */
|
||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
|
||||
const submitForm = async () => {
|
||||
// 校验表单
|
||||
if (!formRef) return
|
||||
const valid = await formRef.value.validate()
|
||||
if (!valid) return
|
||||
// 提交请求
|
||||
if (formLoading.value || !formRef.value) return
|
||||
// 校验期间也阻止重复提交。
|
||||
formLoading.value = true
|
||||
try {
|
||||
const _params = formData.value
|
||||
if (!_params.memberRecentTagList || !_params.memberRecentTagList?.length) {
|
||||
_params.memberRecentTagList = []
|
||||
const valid = await formRef.value.validate()
|
||||
if (!valid) return
|
||||
// 保留系统管理的新人/VIP标签,独立构造请求,失败重试不会累加到表单。
|
||||
const params = {
|
||||
...formData.value,
|
||||
memberRecentTagList: Array.from(new Set<string>([
|
||||
...(formData.value.memberRecentTagList ?? []),
|
||||
...systemTagTypes.value
|
||||
]))
|
||||
}
|
||||
_params.memberRecentTagList.push(...memberRecentTagList.value)
|
||||
|
||||
await UserApi.updateUser(_params)
|
||||
await UserApi.updateUser(params)
|
||||
|
||||
message.success(t('common.updateSuccess'))
|
||||
dialogVisible.value = false
|
||||
@@ -95,6 +99,7 @@ const resetForm = () => {
|
||||
id: undefined,
|
||||
memberRecentTagList: [],
|
||||
}
|
||||
systemTagTypes.value = []
|
||||
formRef.value?.resetFields()
|
||||
}
|
||||
</script>
|
||||
Reference in new issue
Block a user