Browse Source

feat: 1.充值审核(缺总计接口、缺排序)2.消费传给后端*100 拿到数据/100 3.修改请求地址为测试服务器

fix:修改合并出现问题
lihui/feature-20250623144029-金币前端lihui
lihui 2 days ago
parent
commit
5792155eaa
  1. 357
      src/views/audit/rechargeAudit.vue
  2. 32
      src/views/audit/refundAudit.vue
  3. 32
      src/views/consume/addCoinConsume.vue
  4. 97
      src/views/consume/coinConsumeDetail.vue
  5. 128
      src/views/managerecharge/rate.vue

357
src/views/audit/rechargeAudit.vue

@ -1,6 +1,6 @@
<script setup> <script setup>
import {computed, onMounted, reactive, ref, watch} from 'vue'
import {ElMessage} from 'element-plus'
import {computed, onMounted, reactive, ref} from 'vue'
import {dayjs, ElMessage} from 'element-plus'
import request from '@/util/http' import request from '@/util/http'
import moment from 'moment' import moment from 'moment'
@ -11,93 +11,35 @@ import moment from 'moment'
// //
const trimJwCode = () => { const trimJwCode = () => {
if (rechargeVo.value.jwcode) {
rechargeVo.value.jwcode = rechargeVo.value.jwcode.replace(/\s/g, '');
if (rechargeAudit.value.jwcode) {
rechargeAudit.value.jwcode = rechargeAudit.value.jwcode.replace(/\s/g, '');
} }
} }
const formatTime = (val) => val ? dayjs(val).format('YYYY-MM-DD HH:mm:ss') : ''
/* /*
===================数据============================ ===================数据============================
*/ */
// //
const adminData = ref({})
const adminData = ref({
})
// //
const tableData1 = ref([])
const tableData = ref([])
// // todo
const tableData = ref([
{
name: '测试',
jwcode: 1001,
market: "地区1",
activity: "活动1",
money: 100, //
permanentGold: 100, //
freeGold: 50, //
taskGold: 10, //
remark: "备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注",//
reason: "驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由",//
payMode: "微信",//
voucher: "https://www.keaitupian.cn/cjpic/frombd/2/253/1659552792/3869332496.jpg",//
adminName: "提交人姓名", //
auditName: "审核人姓名",// //
payTime: "2025-6-28 14:31:20",//
createTime: "2025-6-29 14:31:20",//
auditStatus: 0, // 0123
},
{
name: '测试2',
jwcode: 1002,
market: "地区2",
activity: "活动2",
money: 200, //
permanentGold: 200, //
freeGold: 50, //
taskGold: 10, //
remark: "2备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注",//
reason: "2驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由驳回理由",//
payMode: "2微信",//
voucher: "https://www.keaitupian.cn/cjpic/frombd/2/253/1659552792/3869332496.jpg",//
adminName: "提交人姓名", //
auditName: "审核人姓名",// //
payTime: "3025-6-28 14:31:20",//
createTime: "3025-6-29 14:31:20",//
auditStatus: 1, // 0123
},
])
/*
name: '',
jwcode: null,
market: "",
activity: "",
money: null, //
permanentGold: null, //
freeGold: null, //
taskGold: null, //
remark: "",//
reason: "",//
payMode: "",//
voucher: "",//
/!* adminId: null, // 提交人id
auditId:null,// id*!/
adminName: "", //
auditName: "",// //
payTime: "",//
createTime: "",//
auditStatus: null, // 0123
*/
// //
const rechargeVo = ref({
const rechargeAudit = ref({
jwcode: null,// jwcode: null,//
activity: "", // activity: "", //
payMode: "",//
payModel: "",//
startTime: "", // startTime: "", //
endTime: "", // endTime: "", //
market: "",// market: "",//
auditStatus: "0"
}) })
@ -117,13 +59,26 @@ const market = ref([])
// //
const rejectVisible = ref(false) const rejectVisible = ref(false)
// //
const rejectObj = ref({})
const rejectObj = ref({
token: "",
orderCode: "",
rejectReason: "",
auditId: null,
action: 2
})
// //
const passObj = ref({})
const passObj = ref({
token: "",
orderCode: "",
rejectReason: "",
auditId: null,
action: 1
})
// //
const activeName = ref('wait') const activeName = ref('wait')
// //
const payMode = [
const payModel = [
{ {
value: '微信', value: '微信',
label: '微信' label: '微信'
@ -179,7 +134,7 @@ const sortOrder = ref('')
// //
const rules = reactive({ const rules = reactive({
reason: [{required: true, message: '请输入驳回理由', trigger: 'blur'}]
rejectReason: [{required: true, message: '请输入驳回理由', trigger: 'blur'}]
}) })
@ -189,7 +144,7 @@ const rules = reactive({
const getAdminData = async function () { const getAdminData = async function () {
try { try {
const result = await request({ const result = await request({
url: '/admin/userinfo',
url: 'http://18.143.76.3:10704/admin/userinfo',
data: {} data: {}
}) })
adminData.value = result adminData.value = result
@ -200,7 +155,7 @@ const getAdminData = async function () {
} }
// //
const get = async function (val) {
const getRecharge = async function (val) {
try { try {
// //
if (typeof val === 'number') { if (typeof val === 'number') {
@ -209,70 +164,75 @@ const get = async function (val) {
// //
if (getTime.value != null) { if (getTime.value != null) {
if (getTime.value.startTime != '' && getTime.value.endTime != '') { if (getTime.value.startTime != '' && getTime.value.endTime != '') {
rechargeVo.value.startTime = getTime.value[0]
rechargeVo.value.endTime = getTime.value[1]
rechargeAudit.value.startTime = formatTime(getTime.value[0])
rechargeAudit.value.endTime = formatTime(getTime.value[1])
} }
} else { } else {
rechargeVo.value.startTime = ''
rechargeVo.value.endTime = ''
rechargeAudit.value.startTime = ''
rechargeAudit.value.endTime = ''
} }
rechargeVo.value.sortField = sortField.value
rechargeVo.value.sortOrder = sortOrder.value
console.log('搜索参数', getObj.value) console.log('搜索参数', getObj.value)
// //
const result = await request({ const result = await request({
url: '/recharge/recharge', // todo
url: 'http://192.168.8.94:8081/audit/selectRecharge', // todo
data: { data: {
pageNum: getObj.value.pageNum, pageNum: getObj.value.pageNum,
pageSize: getObj.value.pageSize, pageSize: getObj.value.pageSize,
rechargeVo: { //
...rechargeVo.value,
sortField: sortField.value,
sortOrder: sortOrder.value
rechargeAudit: { //
...rechargeAudit.value,
// sortField: sortField.value,
// sortOrder: sortOrder.value
} }
} }
}) })
//
tableData.value = result.list
//
total.value = result.total
console.log('搜索结果', result.list)
//
// //
// rechargeVo.value // rechargeVo.value
const rechargeVo1 = {...rechargeVo.value}
const rechargeVo1 = {...rechargeAudit.value}
delete rechargeVo1.sortField delete rechargeVo1.sortField
delete rechargeVo1.sortOrder delete rechargeVo1.sortOrder
delete rechargeVo1.auditStatus delete rechargeVo1.auditStatus
const result2 = await request({ const result2 = await request({
url: '/recharge/recharge/RechargeA', // todo
// url: 'http://192.168.8.94:8081/audit/selectRecharge', // todo
data: rechargeVo1 data: rechargeVo1
}) })
//
if (result2.data) {
result2.data.forEach((item) => {
switch (item.auditStatus) {
case '待审核':
// item.raudit 0
pendingCount.value = item.raudit || 0
// item.sumRaudit 0
pendingGold.value = item.sumRaudit || 0
pendingRGold.value = item.sumRaudit1 || 0
pendingFGold.value = item.sumRaudit2 || 0
break
case '已通过':
approvedCount.value = item.raudit || 0
approvedGold.value = item.sumRaudit || 0
approvedRGold.value = item.sumRaudit1 || 0
approvedFGold.value = item.sumRaudit2 || 0
break
case '已驳回':
rejectedCount.value = item.raudit || 0
rejectedGold.value = item.sumRaudit || 0
rejectedRGold.value = item.sumRaudit1 || 0
rejectedFGold.value = item.sumRaudit2 || 0
break
}
})
}
// todo
/* // 统计合计数
if (result2.data) {
result2.data.forEach((item) => {
switch (item.auditStatus) {
case '待审核':
// item.raudit 0
pendingCount.value = item.raudit || 0
// item.sumRaudit 0
pendingGold.value = item.sumRaudit || 0
pendingRGold.value = item.sumRaudit1 || 0
pendingFGold.value = item.sumRaudit2 || 0
break
case '已通过':
approvedCount.value = item.raudit || 0
approvedGold.value = item.sumRaudit || 0
approvedRGold.value = item.sumRaudit1 || 0
approvedFGold.value = item.sumRaudit2 || 0
break
case '已驳回':
rejectedCount.value = item.raudit || 0
rejectedGold.value = item.sumRaudit || 0
rejectedRGold.value = item.sumRaudit1 || 0
rejectedFGold.value = item.sumRaudit2 || 0
break
}
})
}*/
trueGold.value = pendingGold.value + approvedGold.value + rejectedGold.value trueGold.value = pendingGold.value + approvedGold.value + rejectedGold.value
trueCount.value = pendingCount.value + approvedCount.value + rejectedCount.value trueCount.value = pendingCount.value + approvedCount.value + rejectedCount.value
@ -295,17 +255,19 @@ const get = async function (val) {
const search = function () { const search = function () {
trimJwCode(); trimJwCode();
getObj.value.pageNum = 1 getObj.value.pageNum = 1
get()
getObj.value.pageSize = 50
getRecharge()
} }
// //
const reset = function () { const reset = function () {
delete rechargeVo.value.activity
delete rechargeVo.value.jwcode
delete rechargeVo.value.payMode
delete rechargeVo.value.market
delete rechargeVo.value.startTime
delete rechargeVo.value.endTime
delete rechargeAudit.value.activity
delete rechargeAudit.value.jwcode
delete rechargeAudit.value.payModel
delete rechargeAudit.value.market
delete rechargeAudit.value.startTime
delete rechargeAudit.value.endTime
getTime.value = {} getTime.value = {}
getRecharge()
} }
// //
const getToday = function () { const getToday = function () {
@ -322,48 +284,48 @@ const getToday = function () {
) )
getTime.value = [startTime, endTime] getTime.value = [startTime, endTime]
console.log('getTime', getTime.value) console.log('getTime', getTime.value)
get()
getRecharge()
} }
// //
const getYesterday = function () { const getYesterday = function () {
const yesterday = new Date() const yesterday = new Date()
yesterday.setDate(yesterday.getDate() - 1) yesterday.setDate(yesterday.getDate() - 1)
const startDate = new Date(
const startTime = new Date(
yesterday.getFullYear(), yesterday.getFullYear(),
yesterday.getMonth(), yesterday.getMonth(),
yesterday.getDate() yesterday.getDate()
) )
const endDate = new Date(
const endTime = new Date(
yesterday.getFullYear(), yesterday.getFullYear(),
yesterday.getMonth(), yesterday.getMonth(),
yesterday.getDate() + 1 yesterday.getDate() + 1
) )
getTime.value = [startTime, endTime] getTime.value = [startTime, endTime]
console.log('getTime', getTime.value) console.log('getTime', getTime.value)
get()
getRecharge()
} }
// 7 // 7
const get7Days = function () { const get7Days = function () {
const today = new Date() const today = new Date()
const startDate = new Date(
const startTime = new Date(
today.getFullYear(), today.getFullYear(),
today.getMonth(), today.getMonth(),
today.getDate() - 6 today.getDate() - 6
) )
const endDate = new Date(
const endTime = new Date(
today.getFullYear(), today.getFullYear(),
today.getMonth(), today.getMonth(),
today.getDate() + 1 today.getDate() + 1
) )
getTime.value = [startTime, endTime] getTime.value = [startTime, endTime]
console.log('getTime', getTime.value) console.log('getTime', getTime.value)
get()
getRecharge()
} }
// //
const adminWait = async function () { const adminWait = async function () {
rechargeVo.value.auditStatus = 0
rechargeAudit.value.auditStatus = "0"
getObj.value.pageNum = 1 getObj.value.pageNum = 1
await get()
await getRecharge()
console.log('adminWait') console.log('adminWait')
trueCount.value = pendingCount.value trueCount.value = pendingCount.value
@ -373,9 +335,9 @@ const adminWait = async function () {
} }
// //
const adminPass = async function () { const adminPass = async function () {
rechargeVo.value.auditStatus = 1
rechargeAudit.value.auditStatus = "1"
getObj.value.pageNum = 1 getObj.value.pageNum = 1
await get()
await getRecharge()
console.log('adminPass') console.log('adminPass')
trueCount.value = approvedCount.value trueCount.value = approvedCount.value
trueGold.value = approvedGold.value trueGold.value = approvedGold.value
@ -384,9 +346,9 @@ const adminPass = async function () {
} }
// //
const adminReject = async function () { const adminReject = async function () {
rechargeVo.value.auditStatus = 2
rechargeAudit.value.auditStatus = "2"
getObj.value.pageNum = 1 getObj.value.pageNum = 1
await get()
await getRecharge()
console.log('adminReject') console.log('adminReject')
trueCount.value = rejectedCount.value trueCount.value = rejectedCount.value
trueGold.value = rejectedGold.value trueGold.value = rejectedGold.value
@ -405,21 +367,11 @@ const handleClick = function (tab, event) {
} }
} }
// watch(activeName, (val) => {
// if (val === 'wait') {
// adminWait()
// } else if (val === 'pass') {
// adminPass()
// } else if (val === 'reject') {
// adminReject()
// }
// })
const getActivity = async function () { const getActivity = async function () {
try { try {
const result = await request({ const result = await request({
url: '/recharge/activity/select',
url: 'http://18.143.76.3:10704/general/activity',
data: {} data: {}
}) })
activity.value = result.data activity.value = result.data
@ -432,7 +384,7 @@ const getActivity = async function () {
const getMarket = async function () { const getMarket = async function () {
try { try {
const result = await request({ const result = await request({
url: 'http://192.168.8.247:8081/general/market',
url: 'http://18.143.76.3:10704/general/market',
data: {} data: {}
}) })
market.value = result.data market.value = result.data
@ -443,27 +395,30 @@ const getMarket = async function () {
} }
const handlePageSizeChange = function (val) { const handlePageSizeChange = function (val) {
getObj.value.pageSize = val getObj.value.pageSize = val
get()
getRecharge()
} }
const handleCurrentChange = function (val) { const handleCurrentChange = function (val) {
getObj.value.pageNum = val getObj.value.pageNum = val
get()
getRecharge()
} }
// ==================================== // ====================================
// //
const pass = function (row) { const pass = function (row) {
// //
passObj.value = row
passObj.value.adminId = adminData.value.adminId
passObj.value.auditId = row.auditId
// id adminId
// passObj.value.auditId = adminData.value.adminId
// todo
passObj.value.auditId = 1
passObj.value.orderCode = row.orderCode
// passObj.value.auditStatus = 1 // passObj.value.auditStatus = 1
passObj.value.rechargeId = row.rechargeId
passObj.value.detailId = row.detailId
passObj.value.jwcode = row.jwcode
passObj.value.paidGold = row.paidGold
passObj.value.freeGold = row.freeGold
passObj.value.adminName = adminData.value.adminName
// passObj.value.rechargeId = row.rechargeId
// passObj.value.detailId = row.detailId
// passObj.value.jwcode = row.jwcode
// passObj.value.paidGold = row.paidGold
// passObj.value.freeGold = row.freeGold
// passObj.value.adminName = adminData.value.adminName
console.log('通过对象', passObj.value) console.log('通过对象', passObj.value)
} }
@ -471,16 +426,16 @@ const pass = function (row) {
const passConfirm = async function () { const passConfirm = async function () {
try { try {
// //
passObj.value.auditStatus = 1
passObj.value.action = 1
console.log('通过对象', passObj.value) console.log('通过对象', passObj.value)
// POST // POST
// passObj.value.flag = 0; // passObj.value.flag = 0;
const result = await request({ const result = await request({
url: '/audit/audit/goldedit',
url: 'http://192.168.8.94:8081/audit/audit',
data: passObj.value data: passObj.value
}) })
console.log('请求成功', result) console.log('请求成功', result)
get()
await getRecharge()
// //
ElMessage({ ElMessage({
type: 'success', type: 'success',
@ -505,14 +460,19 @@ const closeRejectVisible = function () {
} }
// //
const reject = function (row) { const reject = function (row) {
console.log('row', row)
// //
rejectObj.value.adminId = adminData.value.adminId
rejectObj.value.auditId = row.auditId
rejectObj.value.auditStatus = 2
rejectObj.value.reason = ''
rejectObj.value.rechargeId = row.rechargeId
rejectObj.value.detailId = row.detailId
// id adminId
// rejectObj.value.auditId = adminData.value.adminId
// todo
passObj.value.auditId = 1
rejectObj.value.orderCode = row.orderCode
console.log('驳回对象', rejectObj.value) console.log('驳回对象', rejectObj.value)
//
rejectObj.value.rejectReason = ''
console.log('驳回对象!!!!!!!!', rejectObj.value)
openRejectVisible() openRejectVisible()
} }
// //
@ -523,11 +483,11 @@ const rejectConfirm = async function () {
console.log('驳回对象', rejectObj.value) console.log('驳回对象', rejectObj.value)
// POST // POST
const result = await request({ const result = await request({
url: '/audit/audit/goldedit',
url: 'http://192.168.8.94:8081/audit/audit',
data: rejectObj.value data: rejectObj.value
}) })
console.log('请求成功', result) console.log('请求成功', result)
get()
await getRecharge()
closeRejectVisible()// closeRejectVisible()//
ElMessage({ ElMessage({
type: 'success', type: 'success',
@ -563,7 +523,7 @@ const handleSortChange = (column) => {
sortField.value = 'audit_time' sortField.value = 'audit_time'
} }
sortOrder.value = column.order === 'ascending' ? 'ASC' : 'DESC' sortOrder.value = column.order === 'ascending' ? 'ASC' : 'DESC'
get()
getRecharge()
} }
// //
@ -615,8 +575,9 @@ const formattedTrueFGold = computed(() => trueFGold.value.toFixed(2))
onMounted(async function () { onMounted(async function () {
await getAdminData() await getAdminData()
await getActivity() await getActivity()
await get()
await getRecharge()
await getMarket() await getMarket()
// await search()
}) })
</script> </script>
@ -628,25 +589,25 @@ onMounted(async function () {
<el-row style="margin-bottom: 5px"> <el-row style="margin-bottom: 5px">
<el-col :span="6"> <el-col :span="6">
<el-text size="large">精网号</el-text> <el-text size="large">精网号</el-text>
<el-input v-model="rechargeVo.jwcode" placeholder="请输入精网号" style="width: 240px" clearable/>
<el-input v-model="rechargeAudit.jwcode" placeholder="请输入精网号" style="width: 240px" clearable/>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-text size="large">活动名称</el-text> <el-text size="large">活动名称</el-text>
<el-select v-model="rechargeVo.activity" placeholder="请选择活动名称" style="width: 240px" clearable>
<el-option v-for="item in activity" :key="item.activityId" :label="item.activityName"
:value="item.activityId"/>
<el-select v-model="rechargeAudit.activity" placeholder="请选择活动名称" style="width: 240px" clearable>
<el-option v-for="item in activity" :key="item" :label="item"
:value="item"/>
</el-select> </el-select>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-text size="large">支付方式</el-text>
<el-select v-model="rechargeVo.payMode" placeholder="请选择支付方式" style="width: 240px" clearable>
<el-option v-for="item in payMode" :key="item.value" :label="item.label" :value="item.value"/>
<el-text size="large">充值方式</el-text>
<el-select v-model="rechargeAudit.payModel" placeholder="请选择充值方式" style="width: 240px" clearable>
<el-option v-for="item in payModel" :key="item.value" :label="item.label" :value="item.value"/>
</el-select> </el-select>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<div class="head-card-element" v-if="adminData.market == '总部'">
<div class="head-card-element">
<el-text size="large">所属地区</el-text> <el-text size="large">所属地区</el-text>
<el-select v-model="rechargeVo.market" placeholder="请选择所属地区" style="width: 240px" clearable>
<el-select v-model="rechargeAudit.market" placeholder="请选择所属地区" style="width: 240px" clearable>
<el-option v-for="item in market" :key="item" :label="item" :value="item"/> <el-option v-for="item in market" :key="item" :label="item" :value="item"/>
</el-select> </el-select>
</div> </div>
@ -684,9 +645,9 @@ onMounted(async function () {
<div> <!--todo 改这里 总数的--> <div> <!--todo 改这里 总数的-->
总条数{{ trueCount }}&nbsp;&nbsp;&nbsp;&nbsp; 总条数{{ trueCount }}&nbsp;&nbsp;&nbsp;&nbsp;
总金币数{{ formattedTrueGold }}金币&nbsp;&nbsp;&nbsp;&nbsp;
永久金币{{ formattedTrueRGold }}金币&nbsp;&nbsp;&nbsp;&nbsp;
免费金币{{ formattedTrueFGold }}金币
总金币数{{ formattedTrueGold / 100 }}金币&nbsp;&nbsp;&nbsp;&nbsp;
永久金币{{ formattedTrueRGold / 100 }}金币&nbsp;&nbsp;&nbsp;&nbsp;
免费金币{{ formattedTrueFGold / 100 }}金币
</div> </div>
</el-tabs> </el-tabs>
@ -703,16 +664,18 @@ onMounted(async function () {
<el-table-column fixed="left" prop="jwcode" label="精网号" width="110px"/> <el-table-column fixed="left" prop="jwcode" label="精网号" width="110px"/>
<el-table-column prop="market" label="所属地区" width="100px"/> <el-table-column prop="market" label="所属地区" width="100px"/>
<el-table-column prop="activity" label="活动名称" width="100px"/> <el-table-column prop="activity" label="活动名称" width="100px"/>
<el-table-column prop="money" label="充值金额" sortable="custom" width="110px"/>
<el-table-column prop="permanentGold" label="充值金额" sortable="custom" width="110px">
<template #default="scope">{{ scope.row.permanentGold / 100 }}</template>
</el-table-column>
<el-table-column prop="permanentGold" label="永久金币" width="110px" sortable="custom"> <el-table-column prop="permanentGold" label="永久金币" width="110px" sortable="custom">
<template #default="scope">{{ scope.row.permanentGold }}</template>
<template #default="scope">{{ scope.row.permanentGold / 100 }}</template>
</el-table-column> </el-table-column>
<el-table-column prop="freeGold" label="免费金币" sortable="custom" width="110px"> <el-table-column prop="freeGold" label="免费金币" sortable="custom" width="110px">
<template #default="scope">{{ scope.row.freeGold }}</template>
<template #default="scope">{{ scope.row.freeGold / 100 }}</template>
</el-table-column> </el-table-column>
<el-table-column prop="remark" label="备注" width="200px" show-overflow-tooltip/> <el-table-column prop="remark" label="备注" width="200px" show-overflow-tooltip/>
<el-table-column prop="payMode" label="支付方式" width="110px"/>
<el-table-column prop="payModel" label="支付方式" width="110px"/>
<el-table-column prop="voucher" label="支付凭证" width="110px"> <el-table-column prop="voucher" label="支付凭证" width="110px">
<!-- 支付凭证列支持点击放大预览 --> <!-- 支付凭证列支持点击放大预览 -->
<template #default="scope"> <template #default="scope">
@ -728,12 +691,13 @@ onMounted(async function () {
<!-- <!--
字太多就悬停显示 字太多就悬停显示
--> -->
<el-table-column prop="reason" label="驳回理由" width="200px" show-overflow-tooltip/>
<el-table-column prop="rejectReason" v-if="activeName === 'reject'" label="驳回理由" width="200px"
show-overflow-tooltip/>
<el-table-column v-if="activeName!== 'wait'" prop="auditName" label="审核人" width="100px"/> <el-table-column v-if="activeName!== 'wait'" prop="auditName" label="审核人" width="100px"/>
<el-table-column prop="payTime" sortable="custom" label="付款时间" width="200px"> <el-table-column prop="payTime" sortable="custom" label="付款时间" width="200px">
<template #default="scope"> <template #default="scope">
{{ moment(scope.row.createTime).format('YYYY-MM-DD HH:mm:ss') }}
{{ moment(scope.row.payTime).format('YYYY-MM-DD HH:mm:ss') }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="createTime" sortable="custom" label="提交时间" width="200px"> <el-table-column prop="createTime" sortable="custom" label="提交时间" width="200px">
@ -784,8 +748,9 @@ onMounted(async function () {
<el-dialog v-model="rejectVisible" title="驳回理由" width="500" :before-close="closeRejectVisible"> <el-dialog v-model="rejectVisible" title="驳回理由" width="500" :before-close="closeRejectVisible">
<template #footer> <template #footer>
<el-form :model="rejectObj" ref="Ref" :rules="rules" label-width="auto" style="max-width: 600px"> <el-form :model="rejectObj" ref="Ref" :rules="rules" label-width="auto" style="max-width: 600px">
<el-form-item prop="reason" label="驳回理由:">
<el-input v-model="rejectObj.reason" maxlength="150" show-word-limit style="width: 350px" type="textarea"
<el-form-item prop="rejectReason" label="驳回理由:">
<el-input v-model="rejectObj.rejectReason" maxlength="150" show-word-limit style="width: 350px"
type="textarea"
placeholder="请输入内容"/> placeholder="请输入内容"/>
</el-form-item> </el-form-item>
</el-form> </el-form>

32
src/views/audit/refundAudit.vue

@ -186,21 +186,12 @@ const STATUS = {
// //
const searchForm = ref({ const searchForm = ref({
<<<<<<< HEAD
jwcode: null, // jwcode: null, //
activity: "", // activity: "", //
refundGoods: "", // 退 refundGoods: "", // 退
market: "", // market: "", //
startTime: "", // startTime: "", //
endTime: "" // endTime: "" //
=======
jwcode: '',
refundType: '',
refundGoods: '',
area: '',
startTime: '',
endTime: ''
>>>>>>> zhangrenyuan/feature-20250623164058-金币前端
}) })
// //
@ -386,13 +377,9 @@ const getProducts = async () => {
// //
const getMarket = async () => { const getMarket = async () => {
try { try {
<<<<<<< HEAD
const result = await request({ const result = await request({
url: 'http://192.168.8.247:8081/general/market' // todo
url: 'http://18.143.76.3:10704/general/market' // todo
}) })
=======
const result = await request({ url: 'http://18.143.76.3:10704/general/market' })
>>>>>>> zhangrenyuan/feature-20250623164058-金币前端
areaOptions.value = result.data || [] areaOptions.value = result.data || []
} catch (error) { } catch (error) {
console.error('获取地区列表失败', error) console.error('获取地区列表失败', error)
@ -429,14 +416,6 @@ const get = async function (val) {
status: getCurrentStatus() status: getCurrentStatus()
} }
} }
<<<<<<< HEAD
=======
//
if (dateRange.value?.length === 2) {
params.detail.startTime = moment(dateRange.value[0]).format('YYYY-MM-DD HH:mm:ss')
params.detail.endTime = moment(dateRange.value[1]).format('YYYY-MM-DD HH:mm:ss')
}
>>>>>>> zhangrenyuan/feature-20250623164058-金币前端
const result = await request({ const result = await request({
url: '/audit/audit/refund', // todo url: '/audit/audit/refund', // todo
@ -503,21 +482,12 @@ const handleSearch = function () {
// //
const resetSearch = function () { const resetSearch = function () {
searchForm.value = { searchForm.value = {
<<<<<<< HEAD
jwcode: null, jwcode: null,
activity: "", activity: "",
refundGoods: "", refundGoods: "",
market: "", market: "",
startTime: "", startTime: "",
endTime: "" endTime: ""
=======
jwcode: '',
refundType: '',
refundGoods: '',
area: adminInfo.value.area === '总部' ? '' : adminInfo.value.area,
startTime: '',
endTime: ''
>>>>>>> zhangrenyuan/feature-20250623164058-金币前端
} }
dateRange.value = [] dateRange.value = []
handleSearch() handleSearch()

32
src/views/consume/addCoinConsume.vue

@ -129,6 +129,7 @@ function calculateCoins(sumGold) {
return {free: 0, permanent: 0, task: 0}; return {free: 0, permanent: 0, task: 0};
} }
// //
function validateInput() { function validateInput() {
const sumGold = addConsume.value.sumGold; const sumGold = addConsume.value.sumGold;
@ -162,6 +163,7 @@ function validateInput() {
return true; return true;
} }
// //
const add = async function () { const add = async function () {
try { try {
@ -171,12 +173,27 @@ const add = async function () {
} }
// 使 // 使
calculateCoins(addConsume.value.sumGold); calculateCoins(addConsume.value.sumGold);
console.log("addConsume.value", addConsume.value) console.log("addConsume.value", addConsume.value)
// POST // POST
const result = await request({ const result = await request({
// url: "/consume/add", // url: "/consume/add",
url: "http://18.143.76.3:10704/consume/add", url: "http://18.143.76.3:10704/consume/add",
data: addConsume.value,
data: {
...addConsume.value,
jwcode: addConsume.value.jwcode,
// adminId: addConsume.value.adminId,
// todo
adminId: 1,
sumGold: addConsume.value.sumGold * 100,
freeGold: addConsume.value.freeGold * 100,
taskGold: addConsume.value.taskGold * 100,
permanentGold: addConsume.value.permanentGold * 100,
goodsName: addConsume.value.goodsName,
remark: addConsume.value.remark
}
}); });
@ -191,6 +208,7 @@ const add = async function () {
ElMessage.error("添加失败,请检查网络连接或联系管理员"); ElMessage.error("添加失败,请检查网络连接或联系管理员");
} }
}; };
// //
function handleResponse(result) { function handleResponse(result) {
console.log("响应结果", result) console.log("响应结果", result)
@ -201,6 +219,7 @@ function handleResponse(result) {
ElMessage.error(result.msg || "添加失败,未知错误"); ElMessage.error(result.msg || "添加失败,未知错误");
} }
} }
// //
function resetForm() { function resetForm() {
// //
@ -239,6 +258,7 @@ function resetForm() {
// user.value.jwcode = null; // user.value.jwcode = null;
// user.value = null; // user.value = null;
} }
// //
const addBefore = () => { const addBefore = () => {
Ref.value.validate(async (valid) => { Ref.value.validate(async (valid) => {
@ -491,7 +511,7 @@ onMounted(async function () {
</el-col> </el-col>
<el-col :span="14"> <el-col :span="14">
<el-form-item label="历史金币总数"> <el-form-item label="历史金币总数">
<p>{{ user.historySumGold }}</p>
<p>{{ user.historySumGold / 100 }}</p>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -506,14 +526,14 @@ onMounted(async function () {
style="color: #2fa1ff; margin-right: 5px" style="color: #2fa1ff; margin-right: 5px"
v-if="user.nowSumGold !== undefined" v-if="user.nowSumGold !== undefined"
> >
{{ user.nowSumGold }}</span
{{ user.nowSumGold / 100 }}</span
> >
<span <span
style="display: inline; white-space: nowrap; color: #b1b1b1" style="display: inline; white-space: nowrap; color: #b1b1b1"
v-if="user.nowSumGold !== null " v-if="user.nowSumGold !== null "
>(永久金币:{{ user.nowPermanentGold }};免费金币:{{
(user.nowFreeGold)
}};任务金币:{{ user.nowTaskGold }})</span>
>(永久金币:{{ user.nowPermanentGold / 100 }};免费金币:{{
(user.nowFreeGold) / 100
}};任务金币:{{ user.nowTaskGold / 100 }})</span>
</el-form-item> </el-form-item>
</el-col> </el-col>

97
src/views/consume/coinConsumeDetail.vue

@ -109,7 +109,7 @@ const totalGoldSearch = ref({
const getAdminData = async function () { const getAdminData = async function () {
try { try {
const result = await request({ const result = await request({
url: '/admin/userinfo',
url: 'http://18.143.76.3:10704/admin/userinfo',
data: {} data: {}
}) })
adminData.value = result adminData.value = result
@ -150,8 +150,7 @@ const ConsumeSelectBy = async function (val) {
// POST // POST
const result = await request({ const result = await request({
<<<<<<< HEAD
url: 'http://192.168.8.247:8081/consume/selectBy',
url: 'http://18.143.76.3:10704/consume/selectBy',
data: { data: {
pageNum: getObj.value.pageNum, pageNum: getObj.value.pageNum,
pageSize: getObj.value.pageSize, pageSize: getObj.value.pageSize,
@ -161,19 +160,6 @@ const ConsumeSelectBy = async function (val) {
sortOrder: sortOrder.value sortOrder: sortOrder.value
} }
} }
=======
// url: 'consumeUser/selectBy',
url: 'http://18.143.76.3:10704/consume/selectBy',
data: {
pageNum: getObj.value.pageNum,
pageSize: getObj.value.pageSize,
consumeUser: {
...consumeUser.value,
sortField: sortField.value,
sortOrder: sortOrder.value
}
}
>>>>>>> zhangrenyuan/feature-20250623164058-金币前端
}) })
console.log('请求成功2', sortField) console.log('请求成功2', sortField)
@ -193,19 +179,9 @@ const ConsumeSelectBy = async function (val) {
totalGoldSearch.value.goodsName = consumeUser.value.goodsName totalGoldSearch.value.goodsName = consumeUser.value.goodsName
// //
const resultTotalGold = await request({ const resultTotalGold = await request({
<<<<<<< HEAD
// url: 'http://192.168.8.247:8081/consume/statsGold',
url: 'http://192.168.8.247:8081/consume/statsGold',
data: totalGoldSearch.value
=======
// url: 'http://18.143.76.3:10704/consume/statsGold', // url: 'http://18.143.76.3:10704/consume/statsGold',
url: 'http://18.143.76.3:10704/consume/statsGold', url: 'http://18.143.76.3:10704/consume/statsGold',
// data: {
// pageNum: getObj.value.pageNum,
// pageSize: getObj.value.pageSize,
// consumeUser: consumeUser.value
// }
>>>>>>> zhangrenyuan/feature-20250623164058-金币前端
data: totalGoldSearch.value
}) })
@ -388,18 +364,13 @@ const handleSortChange = (column) => {
if (column.prop === 'permanentGold') { if (column.prop === 'permanentGold') {
sortField.value = 'permanentGold' sortField.value = 'permanentGold'
} else if (column.prop === 'taskGold') { } else if (column.prop === 'taskGold') {
<<<<<<< HEAD
sortField.value = 'taskGold' sortField.value = 'taskGold'
=======
sortField.value = 'taskGold' //
>>>>>>> zhangrenyuan/feature-20250623164058-金币前端
} else if (column.prop === 'freeGold') { } else if (column.prop === 'freeGold') {
sortField.value = 'freeGold' sortField.value = 'freeGold'
} else if (column.prop === 'createTime') { } else if (column.prop === 'createTime') {
sortField.value = 'createTime' sortField.value = 'createTime'
} }
//
sortOrder.value = column.order === 'ascending' ? 'ASC' : 'DESC'
sortOrder.value = column.order === 'ascending' ? 'DESC' : 'ASC'
ConsumeSelectBy() ConsumeSelectBy()
} }
@ -431,7 +402,11 @@ const checkNumber = function () {
}) })
} }
} else { } else {
console.log('输入的数字不合法')
//
ElMessage({
type: 'error',
message: '请检查输入内容'
})
} }
} }
@ -525,7 +500,25 @@ onMounted(async function () {
</el-select> </el-select>
</div> </div>
</el-col> </el-col>
<!-- <el-col :span="8">
<div class="head-card-element">
<el-text class="mx-1" size="large">消费类型</el-text>
<el-select
v-model="consumeUser.consumeType"
placeholder="请选择消费类型"
size="large"
style="width: 240px"
clearable
>
<el-option
v-for="item in consumeType"
:key="item"
:label="item.label"
:value="item.value"
/>
</el-select>
</div>
</el-col> -->
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="21"> <el-col :span="21">
@ -544,7 +537,10 @@ onMounted(async function () {
> >
<el-button @click="getYesterday()"></el-button> <el-button @click="getYesterday()"></el-button>
<el-button @click="get7Days()">近7天</el-button> <el-button @click="get7Days()">近7天</el-button>
<!-- </div>
</el-col>
<el-col :span="3">
<div class="head-card-btn"> -->
<el-button type="success" @click="reset()">重置</el-button> <el-button type="success" @click="reset()">重置</el-button>
<el-button type="primary" @click="search()">查询</el-button> <el-button type="primary" @click="search()">查询</el-button>
@ -559,9 +555,9 @@ onMounted(async function () {
<el-col> <el-col>
<el-card> <el-card>
<div> <div>
消耗金额{{ Math.abs(sumGold) }}新币永久金币{{ Math.abs(permanentGolds) }}免费金币{{
Math.abs(freeGolds)
}}任务金币{{ Math.abs(taskGolds) }}
消耗金额{{ Math.abs(sumGold) / 100 }}新币永久金币{{ Math.abs(permanentGolds) / 100 }}免费金币{{
Math.abs(freeGolds) / 100
}}任务金币{{ Math.abs(taskGolds) / 100 }}
</div> </div>
<!-- 设置表格容器的高度和滚动样式 --> <!-- 设置表格容器的高度和滚动样式 -->
<div style="height: 576px; overflow-y: auto"> <div style="height: 576px; overflow-y: auto">
@ -607,10 +603,15 @@ onMounted(async function () {
<template #default="scope"> <template #default="scope">
<!-- 使用非严格相等比较 --> <!-- 使用非严格相等比较 -->
{{ scope.row.payPlatform }} {{ scope.row.payPlatform }}
<!-- <span scope.row.consumePlatform == 1">Homily Chart</span>-->
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column
prop="consumeType"
label="消费类型"
width="120px"
/> -->
<el-table-column <el-table-column
prop="sumGold" prop="sumGold"
label="消费金币总数" label="消费金币总数"
@ -620,7 +621,7 @@ onMounted(async function () {
{{ {{
(scope.row.taskGold + (scope.row.taskGold +
scope.row.freeGold + scope.row.freeGold +
scope.row.permanentGold)
scope.row.permanentGold) / 100
}} }}
</template> </template>
</el-table-column> </el-table-column>
@ -628,11 +629,11 @@ onMounted(async function () {
<el-table-column <el-table-column
prop="permanentGold" prop="permanentGold"
label="永久金币" label="永久金币"
sortable="custom"
sortable="custom"
width="110px" width="110px"
> >
<template #default="scope"> <template #default="scope">
{{ scope.row.permanentGold }}
{{ scope.row.permanentGold / 100 }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@ -642,17 +643,17 @@ onMounted(async function () {
width="110px" width="110px"
> >
<template #default="scope"> <template #default="scope">
{{ scope.row.freeGold }}
{{ scope.row.freeGold / 100 }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="taskGold" prop="taskGold"
label="任务金币" label="任务金币"
sortable="custom"
sortable="custom"
width="110px" width="110px"
> >
<template #default="scope"> <template #default="scope">
{{ scope.row.taskGold }}
{{ scope.row.taskGold / 100 }}
</template> </template>
</el-table-column> </el-table-column>
@ -666,7 +667,7 @@ onMounted(async function () {
<el-table-column <el-table-column
prop="createTime" prop="createTime"
label="消费时间" label="消费时间"
sortable="custom"
sortable="custom"
width="180px" width="180px"
/> />
</el-table> </el-table>

128
src/views/managerecharge/rate.vue

@ -35,48 +35,6 @@ const getObj = ref({
const total = ref(0) const total = ref(0)
const getAllRate = async function (val) {
try {
//
if (typeof val === 'number') {
getObj.value.pageNum = val;
}
// POST
const result = await request({
url: 'http://18.143.76.3:10704/rate/selectAll',
method: 'POST',
data: {
pageNum: getObj.value.pageNum,
pageSize: getObj.value.pageSize,
}
});
//
console.log('这是汇率列表 请求成功', result);
//
tableData.value = result.data.list;
//
total.value = result.data.total;
} catch (error) {
console.log('请求失败', error);
ElMessage.error('请求失败');
}
}
const handlePageSizeChange = function (val) {
getObj.value.pageSize = val
getAllRate()
}
const handleCurrentChange = function (val) {
getObj.value.pageNum = val
getAllRate()
}
// //
const rateEdit = ref({ const rateEdit = ref({
id: null, id: null,
@ -85,82 +43,8 @@ const rateEdit = ref({
adminId: null, adminId: null,
updateTime: Date.now(), updateTime: Date.now(),
}) })
//
const getEditData = async function (row) {
try {
console.log('搜索参数', getObj.value)
// POST
const result = await request({
url: 'http://18.143.76.3:10704/rate/selectById',
data: {id: row.id}
})
//
console.log('根据id查 请求成功', result)
//
// rateEdit.value = result.data
//
rateEdit.value.id = row.id
rateEdit.value.rateName = row.rateName
rateEdit.value.num = row.num
console.log('根据id获取的数据', rateEdit.value)
rateEdit.value.adminId = adminData.value.adminId
} catch (error) {
console.log('请求失败', error)
}
}
const editRate = async function () {
try {
console.log('搜索参数', rateEdit.value)
// POST
const result = await request({
url: 'http://18.143.76.3:10704/rate/update',
data: rateEdit.value
})
//
console.log('请求成功', result)
await getAllRate()
} catch (error) {
console.log('请求失败', error)
}
}
const edit = () => {
ElMessageBox.confirm('确认修改?')
.then(() => {
editRate()
regeEdit.value = false
})
.catch(() => {
regeEdit.value = false
})
}
//
const cancelEdit = () => {
regeEdit.value = false
}
const handleEditDialogClose = () => {
if (editFormRef.value) {
getAllRate()
}
}
//
onMounted(async function () {
await getAllRate()
await getAdminData()
})
// //
const rateName = [
const rateNames = [
{ {
value: 'USD', value: 'USD',
label: 'USD' label: 'USD'
@ -246,7 +130,7 @@ const getAllRate = async function (val) {
// POST // POST
const result = await request({ const result = await request({
url: 'http://192.168.9.21:8081/rate/selectAll',
url: 'http://18.143.76.3:10704/rate/selectAll',
method: 'POST', method: 'POST',
data: { data: {
pageNum: getObj.value.pageNum, pageNum: getObj.value.pageNum,
@ -286,7 +170,7 @@ const getEditData = async function (row) {
console.log('搜索参数', getObj.value) console.log('搜索参数', getObj.value)
// POST // POST
const result = await request({ const result = await request({
url: 'http://192.168.9.21:8081/rate/selectById',
url: 'http://18.143.76.3:10704/rate/selectById',
data: {id: row.id} data: {id: row.id}
}) })
@ -311,7 +195,7 @@ const editRate = async function () {
console.log('搜索参数', rateEdit.value) console.log('搜索参数', rateEdit.value)
// POST // POST
const result = await request({ const result = await request({
url: 'http://192.168.9.21:8081/rate/update',
url: 'http://18.143.76.3:10704/rate/update',
data: rateEdit.value data: rateEdit.value
}) })
// //
@ -510,11 +394,7 @@ onMounted(async function () {
style="width: 240px" style="width: 240px"
> >
<el-option <el-option
<<<<<<< HEAD
v-for="item in rateNames" v-for="item in rateNames"
=======
v-for="item in rateName"
>>>>>>> zhangrenyuan/feature-20250623164058-金币前端
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value" :value="item.value"

Loading…
Cancel
Save