From ed0d2b0659bda9126b035f36c42feacdc6fc8da6 Mon Sep 17 00:00:00 2001 From: lihuilin Date: Sun, 29 Jun 2025 11:24:45 +0800 Subject: [PATCH] 0629 --- src/views/audit/refundAudit.vue | 6 +- src/views/managerecharge/rate.vue | 670 +++++++------------------------------- 2 files changed, 117 insertions(+), 559 deletions(-) diff --git a/src/views/audit/refundAudit.vue b/src/views/audit/refundAudit.vue index e630d5a..a022a4b 100644 --- a/src/views/audit/refundAudit.vue +++ b/src/views/audit/refundAudit.vue @@ -90,8 +90,8 @@ @@ -322,7 +322,7 @@ const handlePagination = (type, val) => { get() } -const handleAction = (type, row) => { +const Approval = (type, row) => { currentRecord.value = row if (type === 'reject') { rejectForm.value.reason = '' diff --git a/src/views/managerecharge/rate.vue b/src/views/managerecharge/rate.vue index ef4e6ac..7071076 100644 --- a/src/views/managerecharge/rate.vue +++ b/src/views/managerecharge/rate.vue @@ -5,59 +5,35 @@ import axios from 'axios' import { createApp } from 'vue' import moment from 'moment' -import _ from 'lodash' import request from '@/util/http' - -// 查询用户接口 -const adminData = ref({ - name: '' -}) -const getAdminData = async function () { - try { - const result = await request({ - url: '/admin/userinfo', - data: {} - }) - adminData.value = result - rateAdd.value.adminId = adminData.value.adminId - rateEdit.value.adminId = adminData.value.adminId - console.log('请求成功', result) - // console.log('用户信息', user.value) - } catch (error) { - console.log('请求失败', error) - } -} -getAdminData() - -const regeAdd = ref(false) -const regeEdit = ref(false) -//汇率表格数据 -const tableData = ref([]) -//搜索对象 +const timeRange = ref([]) const getObj = ref({ pageNum: 1, pageSize: 10 }) +const tableData = ref([]) -const total = ref(0) -//分页总条目 - - -// 替换原来的time,用数组 -const timeRange = ref([]) - -// 格式化日期为YYYY-MM-DD HH:mm:ss,否则格式不对无法填充日期时间选择器 -const formatDateTime = (date) => { - return moment(date).format('YYYY-MM-DD HH:mm:ss') +const reset = function () { + getObj.value.pageNum = 1 + getObj.value.pageSize = 10 + timeRange = ref([]) } +const handlePageSizeChange = function (val) { + getObj.value.pageSize = val + get() +} +const handleCurrentChange = function (val) { + getObj.value.pageNum = val + get() +} // 今天 const getToday = () => { const today = new Date() - const start = new Date(today.getFullYear(), today.getMonth(), today.getDate(), 0, 0, 0) - const end = new Date(today.getFullYear(), today.getMonth(), today.getDate() + 1, 0, 0, 0) - timeRange.value = [formatDateTime(start), formatDateTime(end)] - search() + const start = moment(new Date(today.getFullYear(), today.getMonth(), today.getDate(), 0, 0, 0)).format('YYYY-MM-DD HH:mm:ss') + const end = moment(new Date(today.getFullYear(), today.getMonth(), today.getDate() + 1, 0, 0, 0)).format('YYYY-MM-DD HH:mm:ss') + timeRange.value = [start, end] + get() } // 昨天 @@ -66,8 +42,8 @@ const getYesterday = () => { yesterday.setDate(yesterday.getDate() - 1) const start = new Date(yesterday.getFullYear(), yesterday.getMonth(), yesterday.getDate(), 0, 0, 0) const end = new Date(yesterday.getFullYear(), yesterday.getMonth(), yesterday.getDate() + 1, 0, 0, 0) - timeRange.value = [formatDateTime(start), formatDateTime(end)] - search() + timeRange.value = [moment(start).format('YYYY-MM-DD HH:mm:ss'), moment(end).format('YYYY-MM-DD HH:mm:ss')] + get() } // 近7天 @@ -75,501 +51,114 @@ const get7Days = () => { const today = new Date() const start = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 6, 0, 0, 0) const end = new Date(today.getFullYear(), today.getMonth(), today.getDate() + 1, 0, 0, 0) - timeRange.value = [formatDateTime(start), formatDateTime(end)] - search() -} - -const get = async function (val) { - try { - // 搜索参数页码赋值 - if (typeof val === 'number') { - getObj.value.pageNum = val; - } - - // 时间赋值 - const time = {} - if (timeRange.value.length === 2) { - time.startTime = moment(timeRange.value[0]).format('YYYY-MM-DD HH:mm:ss') - time.endTime = moment(timeRange.value[1]).format('YYYY-MM-DD HH:mm:ss') - } else { - time.startTime = '' - time.endTime = '' - } - - console.log('搜索参数', { - ...getObj.value, - rate: { ...time } - }); - // 发送POST请求 - const result = await request({ - url: '/rates/search', - method: 'POST', - data: { - ...getObj.value, - rate: { ...time } - } - }); - - // 将响应结果存储到响应式数据中 - console.log('请求成功', result); - // 存储表格数据 - tableData.value = result.data.list; - console.log('tableData', tableData.value); - // 存储分页总条目 - total.value = result.data.total; - console.log('total', total.value); - } catch (error) { - console.log('请求失败', error); - ElMessage.error('请求失败'); - } -} - -// 搜索 -const search = function () { - getObj.value.pageNum = 1 + timeRange.value = [moment(start).format('YYYY-MM-DD HH:mm:ss'), moment(end).format('YYYY-MM-DD HH:mm:ss')] get() } -// 添加方法 -const rateAdd = ref({}) -const addRate = async function () { - rateAdd.value.adminId = adminData.value.adminId - if (rateAdd.value.startTime) { - const date = new Date(rateAdd.value.startTime) - date.setHours(0, 0, 0, 0) - rateAdd.value.startTime = `${date.getFullYear()}-${String( - date.getMonth() + 1 - ).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')} 00:00:00` - } - if (rateAdd.value.endTime) { - const date = new Date(rateAdd.value.endTime) - date.setHours(23, 59, 59, 999) - rateAdd.value.endTime = `${date.getFullYear()}-${String( - date.getMonth() + 1 - ).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')} 23:59:59` - } +const get = async () => { try { - console.log('搜索参数', getObj.value) - // 发送POST请求 - const result = await request({ - url: '/rates/add', - data: rateAdd.value - }) - if (result.code == 0) { - ElMessage.error(result.msg) - } else { - ElMessage({ - type: 'success', - message: '新增汇率成功' - }) - } - // 将响应结果存储到响应式数据中 - console.log('请求成功', result) - get() - } catch (error) { - console.log('请求失败', error) - // 在这里可以处理错误逻辑,比如显示错误提示等 - } -} - -const add = () => { - Ref.value.validate(async (valid) => { - if (valid) { - ElMessageBox.confirm('确认添加?') - .then(() => { - addRate() - rateAdd.value = {} - timeRange.value = { - startTime: '', - endTime: '' - } - regeAdd.value = false - }) - .catch(() => { - regeAdd.value = false - }) - } else { - //提示 - ElMessage({ - type: 'error', - message: '请检查输入内容' - }) + const params = { + pageNum: getObj.value.pageNum, + pageSize: getObj.value.pageSize, + rateDetail: { + timeRange: [ + moment(timeRange.value[0]).format('YYYY-MM-DD HH:mm:ss'), + moment(timeRange.value[1]).format('YYYY-MM-DD HH:mm:ss') + ] + } } - }) -} -const handlePageSizeChange = function (val) { - getObj.value.pageSize = val - get() -} -const handleCurrentChange = function (val) { - getObj.value.pageNum = val - get() -} -// 使用 _.throttle 并设置 trailing 为 false 实现严格节流,只执行一次 -const throttledAdd = _.throttle(add, 5000, { trailing: false }) -// 编辑方法 -const rateEdit = ref({}) -//查询已有的数据 -const getEditData = async function (row) { - try { - console.log('搜索参数', getObj.value) - // 发送POST请求 - const result = await request({ - url: '/rates/searchById?rateId=' + row.rateId, - data: {} - }) - - // 将响应结果存储到响应式数据中 - console.log('请求成功', result) - // 存储表格数据 - - rateEdit.value = result.data - rateEdit.value.adminId = adminData.value.adminId - console.log('这是编辑的数值', rateEdit.value) - } catch (error) { - console.log('请求失败', error) - // 在这里可以处理错误逻辑,比如显示错误提示等 - } -} -const editRate = async function () { - if (rateEdit.value.startTime) { - const date = new Date(rateEdit.value.startTime) - date.setHours(0, 0, 0, 0) - rateEdit.value.startTime = `${date.getFullYear()}-${String( - date.getMonth() + 1 - ).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')} 00:00:00` - } - if (rateEdit.value.endTime) { - const date = new Date(rateEdit.value.endTime) - date.setHours(23, 59, 59, 999) - rateEdit.value.endTime = `${date.getFullYear()}-${String( - date.getMonth() + 1 - ).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')} 23:59:59` - } - try { - console.log('搜索参数', rateEdit.value) - // 发送POST请求 - const result = await request({ - url: '/rates/update', - data: rateEdit.value + const res = await request({ + url: '/rate/selectAll', + data: params }) - // 将响应结果存储到响应式数据中 - console.log('请求成功', result) - get() + tableData.value = res.data?.list || [] + pagination.value.total = res.data?.total || 0 } catch (error) { - console.log('请求失败', error) - // 在这里可以处理错误逻辑,比如显示错误提示等 + console.error('获取数据失败', error) } } -const edit = () => { - ElMessageBox.confirm('确认修改?') - .then(() => { - editRate() - regeEdit.value = false - }) - .catch(() => { - regeEdit.value = false - }) -} - -// 删除方法 -const deleteRate = async function (row) { - try { - // 发送POST请求 - const result = await request({ - url: '/rates/delete/ ' + row.rateId, - data: {} - }) - // 将响应结果存储到响应式数据中 - console.log('请求成功', result) - get() - } catch (error) { - console.log('请求失败', error) - // 在这里可以处理错误逻辑,比如显示错误提示等 - } -} - -// 挂载 -onMounted(async function () { +onMounted(() => { get() }) -//分页 -function handlePageChange(currentPage, pageSize) { - get() -} -//货币条目 -const options = [ - { - value: 'USD', - label: 'USD' - }, - { - value: 'HKD', - label: 'HKD' - }, - { - value: 'THB', - label: 'THB' - }, - { - value: 'VND', - label: 'VND' - }, - { - value: 'CAD', - label: 'CAD' - }, - { - value: 'MYR', - label: 'MYR' - }, - { - value: 'KRW', - label: 'KRW' - }, - { - value: 'JPY', - label: 'JPY' - }, - { - value: 'CNY', - label: 'CNY' - } -] - -function formatDate(value) { - if (!value) return '' - const date = new Date(value) - const year = date.getFullYear() - const month = (date.getMonth() + 1).toString().padStart(2, '0') - const day = date.getDate().toString().padStart(2, '0') - const hours = date.getHours().toString().padStart(2, '0') - const minutes = date.getMinutes().toString().padStart(2, '0') - const seconds = date.getSeconds().toString().padStart(2, '0') - return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}` -} -function formatDateTwe(value) { - if (!value) return '' - const date = new Date(value) - const year = date.getFullYear() - const month = (date.getMonth() + 1).toString().padStart(2, '0') - const day = date.getDate().toString().padStart(2, '0') - return `${year}-${month}-${day}` -} - -// //表格高度 -// const tableHeight = computed(function () { -// return (getObj.value.pageSize + 1) * 50 + "px"; -// }); - -// 新增数据规则 -// 表单验证ref -const Ref = ref(null) -const handleStartTimeChange = () => { - Ref.value.validateField('endTime') -} -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 <= rateAdd.value.startTime) { - callback(new Error('结束时间不能小于开始时间')) - } else { - callback() - } -} -const checkFreeGoldRadio = function (rule, value, callback) { - if (value == '0' || value == null || value == '') { - callback(new Error('请输入汇率比')) - } else if (value < 0 || isNaN(value)) { - callback(new Error('请输入正确的格式')) - } else { - callback() - } -} -const rules = reactive({ - currency: [{ required: true, message: '请选择货币名称', trigger: 'blur' }], - exchangeRate: [{ 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 handledelete = function () { - timeRange.value = {} - getObj.value.pageNum = 1 -} -// 验证跳转输入框的数字是否合法 -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: '请检查输入内容' - }) - } -} - -// 删除========================================================= -// 删除按钮 - -// 删除按钮的气泡弹出框确认按钮 -const delConfirm = async function (row) { - try { - // 发送POST请求 - const result = await request({ - url: '/rates/delete/ ' + row.rateId, - data: {} - }) - if (result.code == 200) { - ElMessage({ - type: 'success', - message: '删除成功' - }) - // 将响应结果存储到响应式数据中 - console.log('请求成功', result) - // 刷新表格数据 - get() - } else { - ElMessage({ - type: 'error', - message: '删除失败' - }) - } - } catch (error) { - console.log('请求失败', error) - // 在这里可以处理错误逻辑,比如显示错误提示等 - } -} - -//这是限制输入小数不超过七位的限制方法 -function handleInput(value) { - // 限制小数点后7位,这里使用正则表达式来实现 - rateAdd.value.exchangeRate = value - .replace(/(\.\d{7})\d+/, '$1') - .replace(/^(\d+)(\.\d{0,7})?$/, '$1$2') -}