|
|
@ -25,7 +25,6 @@ const getAdminData = async function () { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//变量 |
|
|
|
//活动表格数据 |
|
|
|
const tableData = ref([]) |
|
|
|
//分页总条目 |
|
|
@ -43,19 +42,10 @@ const getObj = ref({ |
|
|
|
const addObj = ref({ |
|
|
|
add: '' |
|
|
|
}) |
|
|
|
// 删除 |
|
|
|
// 删除对象 |
|
|
|
const delObj = ref({}) |
|
|
|
// //表格高度 |
|
|
|
// const tableHeight = computed(function () { |
|
|
|
// return (getObj.value.pageSize + 1) * 50 + "px"; |
|
|
|
// }); |
|
|
|
|
|
|
|
// 表单验证ref |
|
|
|
const Ref = ref(null) |
|
|
|
|
|
|
|
//方法 |
|
|
|
//搜索方法 |
|
|
|
// 搜索方法 |
|
|
|
const get = async function (val) { |
|
|
|
try { |
|
|
|
// 搜索参数页码赋值 |
|
|
@ -63,23 +53,27 @@ const get = async function (val) { |
|
|
|
getObj.value.pageNum = val |
|
|
|
} |
|
|
|
// 搜索参数时间赋值 |
|
|
|
if (getTime.value != null) { |
|
|
|
if (getTime.value.startDate != '' && getTime.value.endDate != '') { |
|
|
|
activity.value.startDate = getTime.value[0] |
|
|
|
activity.value.endDate = getTime.value[1] |
|
|
|
} |
|
|
|
if (getTime.value.length === 2) { |
|
|
|
activity.value.startDate = getTime.value[0] |
|
|
|
activity.value.endDate = getTime.value[1] |
|
|
|
} else { |
|
|
|
activity.value.startDate = '' |
|
|
|
activity.value.endDate = '' |
|
|
|
activity.value.startDate = null |
|
|
|
activity.value.endDate = null |
|
|
|
} |
|
|
|
|
|
|
|
console.log('搜索参数', getObj.value) |
|
|
|
// 发送POST请求 |
|
|
|
const result = await request({ |
|
|
|
url: '/recharge/activity/select', |
|
|
|
method: 'post', |
|
|
|
data: { |
|
|
|
...getObj.value, |
|
|
|
activity: { ...activity.value } |
|
|
|
pageNum: getObj.value.pageNum, |
|
|
|
pageSize: getObj.value.pageSize, |
|
|
|
activity: { |
|
|
|
...activity.value, |
|
|
|
activityName: activity.value.activityName, |
|
|
|
status: activity.value.status |
|
|
|
} |
|
|
|
} |
|
|
|
}) |
|
|
|
|
|
|
@ -93,7 +87,7 @@ const get = async function (val) { |
|
|
|
console.log('total', total.value) |
|
|
|
} catch (error) { |
|
|
|
console.log('请求失败', error) |
|
|
|
// 在这里可以处理错误逻辑,比如显示错误提示等 |
|
|
|
ElMessage.error('请求失败') |
|
|
|
} |
|
|
|
} |
|
|
|
// 搜索 |
|
|
@ -103,210 +97,12 @@ const search = function () { |
|
|
|
} |
|
|
|
// 重置 |
|
|
|
const reset = function () { |
|
|
|
getObj.value = {} |
|
|
|
getObj.value.pageNum = 1 |
|
|
|
getObj.value.pageSize = 10 |
|
|
|
getTime.value = {} |
|
|
|
activity.value = {} |
|
|
|
} |
|
|
|
//新增活动弹出框 |
|
|
|
const addActivityVisible = ref(false) |
|
|
|
//打开新增活动弹出框 |
|
|
|
const openAddActivityVisible = function () { |
|
|
|
addActivityVisible.value = true |
|
|
|
} |
|
|
|
//关闭新增窗口弹出框 |
|
|
|
const closeAddActivityVisible = function (done) { |
|
|
|
addActivityVisible.value = false |
|
|
|
} |
|
|
|
//添加活动按钮 |
|
|
|
const addActicity = function () { |
|
|
|
console.log('Date', new Date()) |
|
|
|
//添加对象初始化操作 |
|
|
|
addObj.value = {} |
|
|
|
addObj.value.adminId = adminData.value.adminId |
|
|
|
addObj.value.adminName = adminData.value.name |
|
|
|
addObj.value.freeGold = '0' |
|
|
|
addObj.value.rechargeRatio = 0 |
|
|
|
addObj.value.startTime = null |
|
|
|
addObj.value.endTime = null |
|
|
|
openAddActivityVisible() |
|
|
|
} |
|
|
|
|
|
|
|
// 添加确认 |
|
|
|
const add = async function () { |
|
|
|
Ref.value.validate(async (valid) => { |
|
|
|
console.log('valid', valid) |
|
|
|
if (valid) { |
|
|
|
try { |
|
|
|
console.log('添加对象', addObj.value) |
|
|
|
// 发送POST请求 |
|
|
|
const result = await request({ |
|
|
|
url: '/recharge/activity/add', |
|
|
|
data: addObj.value |
|
|
|
}) |
|
|
|
|
|
|
|
// 将响应结果存储到响应式数据中 |
|
|
|
console.log('请求成功', result) |
|
|
|
// 刷新表格数据 |
|
|
|
get() |
|
|
|
// 关闭弹出框 |
|
|
|
closeAddActivityVisible() |
|
|
|
//提示 |
|
|
|
ElMessage({ |
|
|
|
type: 'success', |
|
|
|
message: '活动添加成功!' |
|
|
|
}) |
|
|
|
} catch (error) { |
|
|
|
console.log('请求失败', error) |
|
|
|
// 在这里可以处理错误逻辑,比如显示错误提示等 |
|
|
|
} |
|
|
|
} else { |
|
|
|
//提示 |
|
|
|
ElMessage({ |
|
|
|
type: 'error', |
|
|
|
message: '请检查输入内容' |
|
|
|
}) |
|
|
|
} |
|
|
|
}) |
|
|
|
} |
|
|
|
// 使用 _.throttle 并设置 trailing 为 false 实现严格节流,只执行一次 |
|
|
|
const throttledAdd = _.throttle(add, 5000, { trailing: false }) |
|
|
|
// 新增一个标志,用于控制是否执行函数 |
|
|
|
// let onceFunction = true; |
|
|
|
// 改进后的手动节流函数 |
|
|
|
// const throttledAdd = (...args) => { |
|
|
|
// if (onceFunction) { |
|
|
|
// add.apply(null, args); |
|
|
|
// onceFunction = false; // 执行后设置为false,表示不能再执行了 |
|
|
|
// timer = setTimeout(() => { |
|
|
|
// onceFunction = true; // 间隔结束后,恢复为可以执行的状态,但需要新的点击触发 |
|
|
|
// timer = null; |
|
|
|
// }, 1000); // 设置节流时间间隔为1000毫秒(1秒),可调整 |
|
|
|
// } |
|
|
|
// }; |
|
|
|
// 删除========================================================= |
|
|
|
// 删除按钮 |
|
|
|
const del = function (row) { |
|
|
|
delObj.value.activityId = row.activityId |
|
|
|
console.log('delObj', delObj.value) |
|
|
|
} |
|
|
|
// 删除按钮的气泡弹出框确认按钮 |
|
|
|
const delConfirm = async function () { |
|
|
|
try { |
|
|
|
console.log('delObj', delObj.value) |
|
|
|
// 发送POST请求 |
|
|
|
const result = await request({ |
|
|
|
url: '/recharge/activity/edit', |
|
|
|
data: delObj.value |
|
|
|
}) |
|
|
|
if (result.code == 200) { |
|
|
|
ElMessage({ |
|
|
|
type: 'success', |
|
|
|
message: '删除成功' |
|
|
|
}) |
|
|
|
// 将响应结果存储到响应式数据中 |
|
|
|
console.log('请求成功', result) |
|
|
|
// 刷新表格数据 |
|
|
|
get() |
|
|
|
} else { |
|
|
|
ElMessage({ |
|
|
|
type: 'error', |
|
|
|
message: '删除失败' |
|
|
|
}) |
|
|
|
} |
|
|
|
} catch (error) { |
|
|
|
console.log('请求失败', error) |
|
|
|
// 在这里可以处理错误逻辑,比如显示错误提示等 |
|
|
|
} |
|
|
|
} |
|
|
|
const handlePageSizeChange = function (val) { |
|
|
|
getObj.value.pageSize = val |
|
|
|
get() |
|
|
|
} |
|
|
|
const handleCurrentChange = function (val) { |
|
|
|
getObj.value.pageNum = val |
|
|
|
get() |
|
|
|
} |
|
|
|
// 表单验证 |
|
|
|
// 开始时间改变时,重新验证结束时间 |
|
|
|
const handleStartTimeChange = () => { |
|
|
|
Ref.value.validateField('endTime') |
|
|
|
} |
|
|
|
const checkFreeGoldRadio = function (rule, value, callback) { |
|
|
|
if (addObj.value.freeGold == 1) { |
|
|
|
if (value == '0' || value == null || value == '') { |
|
|
|
callback(new Error('请输入免费金币兑换比')) |
|
|
|
} else if (value < 0 || isNaN(value)) { |
|
|
|
callback(new Error('请输入正确的格式')) |
|
|
|
} else { |
|
|
|
callback() |
|
|
|
} |
|
|
|
} else { |
|
|
|
callback() |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
const checkStartTime = function (rule, value, callback) { |
|
|
|
if (value < new Date()) { |
|
|
|
callback(new Error('开始时间不能小于当前时间')) |
|
|
|
} else { |
|
|
|
callback() |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
const checkEndTime = function (rule, value, callback) { |
|
|
|
if (value < new Date()) { |
|
|
|
callback(new Error('结束时间不能小于当前时间')) |
|
|
|
} else if (value <= addObj.value.startTime) { |
|
|
|
callback(new Error('结束时间不能小于开始时间')) |
|
|
|
} else { |
|
|
|
callback() |
|
|
|
} |
|
|
|
} |
|
|
|
const rules = reactive({ |
|
|
|
activityName: [ |
|
|
|
{ required: true, message: '请输入活动名称', trigger: 'blur' } |
|
|
|
], |
|
|
|
freeGold: [ |
|
|
|
{ required: true, message: '请选择是否赠送免费金币', trigger: 'blur' } |
|
|
|
], |
|
|
|
rechargeRatio: [{ validator: checkFreeGoldRadio, trigger: 'blur' }], |
|
|
|
startTime: [ |
|
|
|
{ required: true, message: '请选择开始时间', trigger: 'blur' }, |
|
|
|
{ validator: checkStartTime, trigger: 'blur' } |
|
|
|
], |
|
|
|
endTime: [ |
|
|
|
{ required: true, message: '请选择结束时间', trigger: 'blur' }, |
|
|
|
{ validator: checkEndTime, trigger: 'blur' } |
|
|
|
] |
|
|
|
}) |
|
|
|
|
|
|
|
// 验证跳转输入框的数字是否合法 |
|
|
|
const checkNumber = function () { |
|
|
|
if (typeof parseInt(getObj.value.pageNum) === 'number') { |
|
|
|
console.log('总共有多少页' + Math.ceil(total.value / getObj.value.pageSize)) |
|
|
|
if ( |
|
|
|
getObj.value.pageNum > 0 && |
|
|
|
getObj.value.pageNum <= Math.ceil(total.value / getObj.value.pageSize) |
|
|
|
) { |
|
|
|
getObj.value.pageNum = parseInt(getObj.value.pageNum) |
|
|
|
console.log('输入的数字合法') |
|
|
|
get() |
|
|
|
} else { |
|
|
|
//提示 |
|
|
|
ElMessage({ |
|
|
|
type: 'error', |
|
|
|
message: '请检查输入内容' |
|
|
|
}) |
|
|
|
} |
|
|
|
} else { |
|
|
|
//提示 |
|
|
|
ElMessage({ |
|
|
|
type: 'error', |
|
|
|
message: '请检查输入内容' |
|
|
|
}) |
|
|
|
getObj.value = { |
|
|
|
pageNum: 1, |
|
|
|
pageSize: 10 |
|
|
|
} |
|
|
|
getTime.value = [] |
|
|
|
activity.value = {} |
|
|
|
} |
|
|
|
|
|
|
|
// 挂载 |
|
|
|