feat:修改bug

This commit is contained in:
dzc committed 2026-01-06 11:41:34 +08:00
1 parent 33014b8ca5
commit b984cfed05
4 files changed
+127 -3

No files matched your search

+6
View File
@@ -2,6 +2,12 @@ import request from '@/config/axios'
// 会员开通记录 API
export const OpenTypeHistoryApi = {
lastByUserId: async (params: any) => {
return await request.get({ url: `/member/open-type/history/last-by-user-id`, params })
},
adminOpen: async (data: any) => {
return await request.post({ url: `/member/open-type/history/admin-open`, data })
},
page: async (params: any) => {
return await request.get({ url: `/member/open-type/history/page`, params })
},
@@ -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, ['1', '2', '4'])" :key="dict.value"
<el-option v-for="dict in getStrDictOptions(DICT_TYPE.MEMBER_RECENT_TAG, ['2', '4'])" :key="dict.value"
:label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
@@ -47,8 +47,8 @@ const open = async (id?: number) => {
const data = await UserApi.getUser(id)
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))
data.memberRecentTagList = bizTypes.filter(item => !['2', '4'].includes(item))
memberRecentTagList.value = bizTypes.filter(item => ['2', '4'].includes(item))
} else {
data.memberRecentTagList = []
memberRecentTagList.value = []
@@ -0,0 +1,108 @@
<template>
<Dialog title="开通会员" v-model="dialogVisible" width="40%">
<el-form ref="formRef" :model="formData" :rules="formRules" label-width="120px" v-loading="formLoading">
<el-form-item label="会员到期时间">
<el-date-picker disabled v-model="expireTime" type="datetime" placeholder="" />
</el-form-item>
<el-form-item label="开通会员天数" prop="dayCount">
<el-input-number style="width: 300px" v-model="formData.dayCount" placeholder="请输入开通会员天数" :min="1" :max="100" />
</el-form-item>
</el-form>
<el-alert title="提示" type="info" :closable="false">
改开通为免费开通,统计流水时注意
</el-alert>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>
<el-button @click="dialogVisible = false">取 消</el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import dayjs from 'dayjs'
import { OpenTypeHistoryApi } from "@/api/member/opentypehistory/index"
const emit = defineEmits(['success'])
const { t } = useI18n()
const message = useMessage()
const dialogVisible = ref(false)
const formLoading = ref(false)
const formData = ref<any>({
memberId: undefined,
dayCount: 0,
})
const detail = ref<any>({})
const formRules = reactive({
dayCount: [{ required: true, message: '请输入开通会员天数', trigger: 'blur' }],
})
const formRef = ref()
const expireTime = computed(() => {
if (!formData.value.dayCount) {
return ''
}
let vipEndTime: string | null = null
if (detail.value && detail.value.endTime) {
vipEndTime = dayjs(detail.value.endTime).format('YYYY-MM-DD HH:mm:ss')
}
if (vipEndTime) {
return dayjs(vipEndTime).add(formData.value.dayCount, 'day').format('YYYY-MM-DD HH:mm:ss')
}
return dayjs().add(formData.value.dayCount, 'day').format('YYYY-MM-DD HH:mm:ss')
})
/** 打开弹窗 */
const open = async (id?: number) => {
if (!id) return
dialogVisible.value = true
resetForm()
formLoading.value = true
formData.value.memberId = id
try {
const data = await OpenTypeHistoryApi.lastByUserId({ userId: id })
if (data) {
detail.value = data
}
} catch (error) {
console.log(error);
} finally {
formLoading.value = false
}
}
const submitForm = async () => {
if (!formRef) return
const valid = await formRef.value.validate()
if (!valid) return
// 提交请求
formLoading.value = true
try {
await OpenTypeHistoryApi.adminOpen({
...formData.value
})
message.success(t('common.updateSuccess'))
dialogVisible.value = false
// 发送操作成功的事件
emit('success')
} catch (error) {
console.error(error);
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
id: undefined,
dayCount: 0,
}
formRef.value?.resetFields()
}
defineExpose({ open })
</script>
+10
View File
@@ -153,6 +153,9 @@
<el-dropdown-item v-if="checkPermi(['pay:wallet:update-member-tag'])" command="handleUpdateMemberTag">
修改用户标签
</el-dropdown-item>
<el-dropdown-item v-if="checkPermi(['pay:wallet:update-member-tag'])" command="handleOpenVipTag">
开通会员
</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
@@ -177,6 +180,8 @@
<CouponSendForm ref="couponSendFormRef" />
<!-- 修改用户标签弹窗 -->
<UserMemberTagForm ref="updateMemberTagFormRef" @success="getList" />
<!-- 开通会员弹窗 -->
<UserOpenVipForm ref="userOpenVipFormRef" @success="getList" />
<!-- 修改用户设置 -->
<UserSettingForm ref="userSettingFormRef" @success="getList" />
</template>
@@ -192,6 +197,7 @@ import UserLevelUpdateForm from './components/UserLevelUpdateForm.vue'
import UserPointUpdateForm from './components/UserPointUpdateForm.vue'
import UserBalanceUpdateForm from './components/UserBalanceUpdateForm.vue'
import UserMemberTagForm from "./components/UserMemberTagForm.vue"
import UserOpenVipForm from "./components/UserOpenVipForm.vue"
import { CouponSendForm } from '@/views/mall/promotion/coupon/components'
import { checkPermi } from '@/utils/permission'
@@ -221,6 +227,7 @@ const updatePointFormRef = ref() // 修改会员积分表单
const UpdateBalanceFormRef = ref() // 修改用户余额表单
const updateMemberTagFormRef = ref() // 修改用户标签表单
const userSettingFormRef = ref() // 修改用户设置表单
const userOpenVipFormRef = ref() // 开通会员
const selectedIds = ref<number[]>([]) // 表格的选中 ID 数组
// 修改朋友圈配置
@@ -310,6 +317,9 @@ const handleCommand = (command: string, row: UserApi.UserVO) => {
case 'handleUpdateMemberTag':
updateMemberTagFormRef.value.open(row.id)
break
case 'handleOpenVipTag':
userOpenVipFormRef.value.open(row.id)
break
case 'handleUpdateMemberCfg':
userSettingFormRef.value.open(row.id)
break