feat:修改bug
This commit is contained in:
1 parent
33014b8ca5
commit
b984cfed05
4 files changed
+127
-3
No files matched your search
@@ -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>
|
||||
@@ -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
|
||||
|
||||
Reference in new issue
Block a user