hongxilin 5 months ago
parent
commit
221b5ba465
  1. 15
      vue/gold-system/src/views/consume/addConsume.vue
  2. 1
      vue/gold-system/src/views/consume/allConsume.vue
  3. 2
      vue/gold-system/src/views/managerecharge/activity.vue
  4. 1
      vue/gold-system/src/views/managerecharge/rate.vue
  5. 388
      vue/gold-system/src/views/recharge/addRecharge.vue
  6. 438
      vue/gold-system/src/views/recharge/adminRecharge.vue
  7. 10
      vue/gold-system/src/views/recharge/allRecharge.vue
  8. 15
      vue/gold-system/src/views/refund/addRefund.vue
  9. 40
      vue/gold-system/src/views/refund/allRefund.vue
  10. 38
      vue/gold-system/src/views/usergold/index.vue

15
vue/gold-system/src/views/consume/addConsume.vue

@ -334,12 +334,15 @@ function calculateCoins() {
</el-form>
<!-- 客户信息栏 -->
<el-card style="float: right" class="customer-info">
<el-form :model="user" label-width="auto" label-position="left">
<el-text size="large" style="margin-left: 20px; font-weight: bold"
>客户信息</el-text
<el-card style="width: 850px; float: right" class="customer-info">
<el-form
:model="user"
label-width="auto"
style="max-width: 1000px"
label-position="left"
>
<el-row style="margin-top: 20px; display: flex">
<el-text size="large" style="margin-left: 20px">客户信息</el-text>
<el-row style="margin-top: 20px">
<el-col :span="10">
<el-form-item label="姓名:">
<p>{{ user.name }}</p>
@ -356,7 +359,7 @@ function calculateCoins() {
</el-form-item>
</el-col>
<el-col :span="14">
<el-form-item label="当前金币总数">
<el-form-item label="当前金币总数" style="width: 500px">
<span style="color: #2fa1ff; margin-right: 5px" v-if="user.buyJb">{{
user.buyJb + user.free6 + user.free12 + user.coreJb
}}</span>

1
vue/gold-system/src/views/consume/allConsume.vue

@ -445,6 +445,5 @@ getGoods();
.pagination {
display: flex;
margin-top: 20px;
margin-left: 33%;
}
</style>

2
vue/gold-system/src/views/managerecharge/activity.vue

@ -394,7 +394,7 @@ onMounted(async function () {
</div>
<!-- 分页 -->
<div class="pagination">
<div class="pagination" style="margin-top: 20px">
<el-pagination
background
:page-size="getObj.pageSize"

1
vue/gold-system/src/views/managerecharge/rate.vue

@ -600,7 +600,6 @@ p {
.pagination {
margin-top: 20px;
margin-left: 33%;
}
.box-card {

388
vue/gold-system/src/views/recharge/addRecharge.vue

@ -466,60 +466,59 @@ const closeBatchRechargeVisible = function () {
//
const batchInit = function () {
openBatchRechargeVisible();
}
};
//
const addLine = function () {
batchData.value.unshift({
line: ++i.value,
showInput: true,
});
}
};
//
const handleSelectionChangebatch = function (val) {
console.log("val===", val);
batchDelObj.value = val;
}
};
//
const batchDel = function () {
ElMessageBox.confirm(
'确认批量删除吗?',
'批量删除',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}
)
ElMessageBox.confirm("确认批量删除吗?", "批量删除", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
console.log("batchDel===", batchDelObj.value);
batchData.value = batchData.value.filter(itemA => { return !batchDelObj.value.some(itemB => itemB.line == itemA.line) })
batchData.value = batchData.value.filter((itemA) => {
return !batchDelObj.value.some((itemB) => itemB.line == itemA.line);
});
console.log("batchData===", batchData.value);
ElMessage({
type: 'success',
message: '操作成功',
})
type: "success",
message: "操作成功",
});
})
.catch(() => {
ElMessage({
type: 'info',
message: '操作撤销',
})
})
}
type: "info",
message: "操作撤销",
});
});
};
//
const del = function (row) {
console.log("row===", row);
delObj.value.line = row.line;
}
};
const delConfirm = function () {
batchData.value = batchData.value.filter(item => item.line != delObj.value.line)
batchData.value = batchData.value.filter(
(item) => item.line != delObj.value.line
);
console.log("batchData===", batchData.value);
}
};
//
const reset = function (row) {
resetObj.value.line = row.line;
}
};
const resetConfirm = function () {
for (let i = 0; i < batchData.value.length; i++) {
if (batchData.value[i].line == resetObj.value.line) {
@ -529,35 +528,29 @@ const resetConfirm = function () {
break;
}
}
}
};
//
const cancelBatch = function () {
ElMessageBox.confirm(
'确认取消吗?此操作将不会保存任何数据。',
'确认取消',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}
)
ElMessageBox.confirm("确认取消吗?此操作将不会保存任何数据。", "确认取消", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
batchData.value = [
{ line: 1, showInput: true }
];
batchData.value = [{ line: 1, showInput: true }];
closeBatchRechargeVisible();
ElMessage({
type: 'success',
message: '操作成功',
})
type: "success",
message: "操作成功",
});
})
.catch(() => {
ElMessage({
type: 'info',
message: '操作撤销',
})
})
}
type: "info",
message: "操作撤销",
});
});
};
//
const calculatedRowFreeGold = function (row) {
console.log("row===", row);
@ -578,9 +571,9 @@ const calculatedRowFreeGold = function (row) {
batchData.value[i].freeGold = Math.ceil(paidGold / ratio);
}
break;
};
}
}
}
};
const calculatedRowRechargeGold = computed(() => {
if (!addRecharge.value.rateId == 0) {
@ -602,8 +595,8 @@ const batchAdd = function () {
console.log("batchData===", batchData.value);
if (batchData.value.length == 0) {
ElMessage({
type: 'error',
message: '至少需要输入一条数据!',
type: "error",
message: "至少需要输入一条数据!",
});
return;
}
@ -611,15 +604,23 @@ const batchAdd = function () {
batchData.value[i].adminId = adminData.value.adminId;
batchData.value[i].area = adminData.value.area;
batchData.value[i].rechargeWay = "客服充值";
if (batchData.value[i].jwcode == "" || batchData.value[i].jwcode == null
|| batchData.value[i].activityId == "" || batchData.value[i].activityId == null
|| batchData.value[i].paidGold == "" || batchData.value[i].paidGold == null
|| batchData.value[i].rechargeGold == "" || batchData.value[i].rechargeGold == null
|| batchData.value[i].payWay == "" || batchData.value[i].payWay == null
|| batchData.value[i].rechargeTime == "" || batchData.value[i].rechargeTime == null) {
if (
batchData.value[i].jwcode == "" ||
batchData.value[i].jwcode == null ||
batchData.value[i].activityId == "" ||
batchData.value[i].activityId == null ||
batchData.value[i].paidGold == "" ||
batchData.value[i].paidGold == null ||
batchData.value[i].rechargeGold == "" ||
batchData.value[i].rechargeGold == null ||
batchData.value[i].payWay == "" ||
batchData.value[i].payWay == null ||
batchData.value[i].rechargeTime == "" ||
batchData.value[i].rechargeTime == null
) {
ElMessage({
type: 'error',
message: '信息不能为空!请检查输入内容!',
type: "error",
message: "信息不能为空!请检查输入内容!",
});
return;
}
@ -627,29 +628,49 @@ const batchAdd = function () {
console.log("batchData===", batchData.value);
ElMessage({
type: 'success',
message: '添加成功!',
})
type: "success",
message: "添加成功!",
});
closeBatchRechargeVisible();
}
};
</script>
<template>
<div style="display: flex;">
<div style="margin-right: 20px;">新增充值</div>
<div style="display: flex">
<div style="margin-right: 20px">新增充值</div>
<el-button type="primary" plain @click="batchInit()">批量充值</el-button>
</div>
<el-form :model="addRecharge" ref="Ref" :rules="rules" label-width="auto" style="max-width: 600px" class="add-form">
<el-form
:model="addRecharge"
ref="Ref"
:rules="rules"
label-width="auto"
style="max-width: 600px"
class="add-form"
>
<el-form-item prop="jwcode" label="精网号">
<el-input v-model="addRecharge.jwcode" style="width: 220px" />
<el-button type="primary" @click="getUser(addRecharge.jwcode)" style="margin-left: 20px">查询</el-button>
<el-button
type="primary"
@click="getUser(addRecharge.jwcode)"
style="margin-left: 20px"
>查询</el-button
>
</el-form-item>
<el-form-item prop="activityId" label="活动名称">
<el-select v-model="addRecharge.activityId" placeholder="请选择" style="width: 300px">
<el-option v-for="item in activity" :key="item.value" :label="item.activityName" :value="item.activityId" />
<el-select
v-model="addRecharge.activityId"
placeholder="请选择"
style="width: 300px"
>
<el-option
v-for="item in activity"
:key="item.value"
:label="item.activityName"
:value="item.activityId"
/>
</el-select>
</el-form-item>
<el-form-item prop="paidGold" label="充值金币">
@ -660,25 +681,64 @@ const batchAdd = function () {
<p></p>
</el-form-item>
<el-form-item prop="rechargeGold" label="充值金额">
<el-select prop="rechargeGold" v-model="addRecharge.rateId" placeholder="货币名称"
style="width: 95px; margin-right: 5px">
<el-option v-for="item in currency" :key="item.value" :label="item.currency" :value="item.exchangeRate" />
<el-select
prop="rechargeGold"
v-model="addRecharge.rateId"
placeholder="货币名称"
style="width: 95px; margin-right: 5px"
>
<el-option
v-for="item in currency"
:key="item.value"
:label="item.currency"
:value="item.exchangeRate"
/>
</el-select>
<el-input disabled v-model="addRecharge.rechargeGold" style="width: 200px" />
<el-input
disabled
v-model="addRecharge.rechargeGold"
style="width: 200px"
/>
</el-form-item>
<el-form-item prop="payWay" label="收款方式">
<el-select v-model="addRecharge.payWay" placeholder="请选择" style="width: 300px">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
<el-select
v-model="addRecharge.payWay"
placeholder="请选择"
style="width: 300px"
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item prop="rechargeTime" label="交款时间">
<el-date-picker v-model="addRecharge.rechargeTime" type="date" style="width: 300px" />
<el-date-picker
v-model="addRecharge.rechargeTime"
type="date"
style="width: 300px"
/>
</el-form-item>
<el-form-item prop="rechargeVoucher" label="交款凭证" style="margin-bottom: 5px">
<el-upload class="avatar-uploader" :show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload">
<el-form-item
prop="rechargeVoucher"
label="交款凭证"
style="margin-bottom: 5px"
>
<el-upload
class="avatar-uploader"
:show-file-list="false"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload"
style="width: 100px; height: 115px"
>
<img v-if="imageUrl" :src="imageUrl" class="avatar" />
<el-icon v-else class="avatar-uploader-icon">
<el-icon
v-else
class="avatar-uploader-icon"
style="width: 100px; height: 100px"
>
<Plus />
</el-icon>
</el-upload>
@ -687,22 +747,40 @@ const batchAdd = function () {
</p>
</el-form-item>
<el-form-item prop="remark" label="备注">
<el-input v-model="addRecharge.remark" style="width: 300px" :rows="2" maxlength="100" show-word-limit
type="textarea" />
<el-input
v-model="addRecharge.remark"
style="width: 300px"
:rows="2"
maxlength="100"
show-word-limit
type="textarea"
/>
</el-form-item>
<el-form-item prop="submitter" label="提交人">
<el-input style="width: 300px" :value="adminData.name" disabled placeholder="提交人姓名" />
<el-input
style="width: 300px"
:value="adminData.name"
disabled
placeholder="提交人姓名"
/>
</el-form-item>
<el-button @click="deleteRecharge" style="margin-left: 280px">重置</el-button>
<el-button @click="deleteRecharge" style="margin-left: 280px"
>重置</el-button
>
<el-button type="primary" @click="addBefore"> 提交 </el-button>
</el-form>
<!-- 客户信息栏 -->
<el-card style="width: 700px; float: right" class="customer-info">
<el-form :model="user" label-width="auto" style="max-width: 600px" label-position="left">
<el-card style="width: 1200px; float: right" class="customer-info">
<el-form
:model="user"
label-width="auto"
style="max-width: 1000px"
label-position="left"
>
<el-text size="large" style="margin-left: 20px">客户信息</el-text>
<el-row style="margin-top: 20px">
<el-col :span="12">
<el-col :span="10">
<el-form-item label="姓名:">
<p>{{ user.name }}</p>
</el-form-item>
@ -718,7 +796,7 @@ const batchAdd = function () {
</el-form-item>
</el-col>
<el-col :span="14">
<el-form-item label="当前金币总数">
<el-form-item label="当前金币总数" style="width: 500px">
<span style="color: #2fa1ff; margin-right: 5px" v-if="user.buyJb">{{
user.buyJb + user.free6 + user.free12 + user.coreJb
}}</span>
@ -769,14 +847,32 @@ const batchAdd = function () {
</el-form>
</el-card>
<el-dialog v-model="batchRechargeVisible" title="批量充值" width="1800px" style="height: 700px;">
<el-dialog
v-model="batchRechargeVisible"
title="批量充值"
width="1800px"
style="height: 700px"
>
<el-row style="margin-bottom: 10px">
<el-button type="primary" @click="addLine()" style="margin-right: auto">新增一行</el-button>
<el-button type="danger" plain @click="batchDel()" style="margin-right: 10px; width: 130px;">批量删除</el-button>
<el-button type="primary" @click="addLine()" style="margin-right: auto"
>新增一行</el-button
>
<el-button
type="danger"
plain
@click="batchDel()"
style="margin-right: 10px; width: 130px"
>批量删除</el-button
>
</el-row>
<el-row>
<el-table :data="batchData" border max-height="540px" style="height: 540px;"
@selection-change="handleSelectionChangebatch">
<el-table
:data="batchData"
border
max-height="540px"
style="height: 540px"
@selection-change="handleSelectionChangebatch"
>
<el-table-column type="selection" width="50px" />
<el-table-column property="index" label="序号" width="55px">
<template #default="scope">
@ -785,15 +881,31 @@ const batchAdd = function () {
</el-table-column>
<el-table-column property="jwcode" label="精网号" width="150px">
<template #default="scope">
<input type="number" v-if="scope.row.showInput" v-model="scope.row.jwcode" style="width: 110px;" />
<input
type="number"
v-if="scope.row.showInput"
v-model="scope.row.jwcode"
style="width: 110px"
/>
<span v-else>{{ scope.row.jwcode }}</span>
</template>
</el-table-column>
<el-table-column property="activityName" label="活动名称" width="150px">
<template #default="scope">
<el-select v-if="scope.row.showInput" filterable clearable v-model="scope.row.activityId"
placeholder="请选择活动名称" @change="calculatedRowFreeGold(scope.row)">
<el-option v-for="item in activity" :key="item.value" :label="item.activityName" :value="item.activityId">
<el-select
v-if="scope.row.showInput"
filterable
clearable
v-model="scope.row.activityId"
placeholder="请选择活动名称"
@change="calculatedRowFreeGold(scope.row)"
>
<el-option
v-for="item in activity"
:key="item.value"
:label="item.activityName"
:value="item.activityId"
>
</el-option>
</el-select>
<span v-else>{{ scope.row.activityName }}</span>
@ -801,7 +913,11 @@ const batchAdd = function () {
</el-table-column>
<el-table-column property="paidGold" label="充值金币" width="110px">
<template #default="scope">
<input v-if="scope.row.showInput" v-model="scope.row.paidGold" style="width: 70px;" />
<input
v-if="scope.row.showInput"
v-model="scope.row.paidGold"
style="width: 70px"
/>
<span v-else>{{ scope.row.paidGold }}</span>
</template>
</el-table-column>
@ -812,8 +928,19 @@ const batchAdd = function () {
</el-table-column>
<el-table-column property="rechargeGold" label="充值金额">
<template #default="scope">
<el-select v-if="scope.row.showInput" filterable clearable v-model="scope.row.rateId" placeholder="请选择币种">
<el-option v-for="item in currency" :key="item.value" :label="item.currency" :value="item.exchangeRate">
<el-select
v-if="scope.row.showInput"
filterable
clearable
v-model="scope.row.rateId"
placeholder="请选择币种"
>
<el-option
v-for="item in currency"
:key="item.value"
:label="item.currency"
:value="item.exchangeRate"
>
</el-option>
</el-select>
<span v-else>{{ scope.row.rateId }}</span>
@ -826,8 +953,19 @@ const batchAdd = function () {
</el-table-column>
<el-table-column property="payWay" label="收款方式" width="130px">
<template #default="scope">
<el-select v-if="scope.row.showInput" filterable clearable v-model="scope.row.payWay" placeholder="请选择收款方式">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
<el-select
v-if="scope.row.showInput"
filterable
clearable
v-model="scope.row.payWay"
placeholder="请选择收款方式"
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<span v-else>{{ scope.row.payWay }}</span>
@ -835,10 +973,17 @@ const batchAdd = function () {
</el-table-column>
<el-table-column property="rechargeTime" label="交款时间" width="150px">
<template #default="scope">
<el-date-picker v-if="scope.row.showInput" type="date" v-model="scope.row.rechargeTime"
style="width: 120px;" placeholder="请选择交款时间">
<el-date-picker
v-if="scope.row.showInput"
type="date"
v-model="scope.row.rechargeTime"
style="width: 120px"
placeholder="请选择交款时间"
>
</el-date-picker>
<span v-else>{{ moment(scope.row.rechargeTime).format("YYYY-MM-DD HH:mm:ss") }}</span>
<span v-else>{{
moment(scope.row.rechargeTime).format("YYYY-MM-DD HH:mm:ss")
}}</span>
</template>
</el-table-column>
<el-table-column property="rechargeVoucher" label="充值凭证">
@ -854,18 +999,31 @@ const batchAdd = function () {
</el-table-column>
<el-table-column property="remark" label="备注" width="130px">
<template #default="scope">
<textarea v-if="scope.row.showInput" v-model="scope.row.remark" style="max-width: 90px;" rows="1"
cols="12"></textarea>
<textarea
v-if="scope.row.showInput"
v-model="scope.row.remark"
style="max-width: 90px"
rows="1"
cols="12"
></textarea>
<span v-else>{{ scope.row.remark }}</span>
</template>
</el-table-column>
<el-table-column property="submitter" label="提交人">
<el-input :value="adminData.name" disabled />
</el-table-column>
<el-table-column fixed="right" prop="operation" label="操作" width="150px">
<el-table-column
fixed="right"
prop="operation"
label="操作"
width="150px"
>
<template #default="scope">
<div style="display: flex;">
<el-popconfirm title="确定将此条信息删除吗?" @confirm="delConfirm">
<div style="display: flex">
<el-popconfirm
title="确定将此条信息删除吗?"
@confirm="delConfirm"
>
<template #reference>
<el-button type="danger" text @click="del(scope.row)">
删除
@ -878,7 +1036,10 @@ const batchAdd = function () {
</el-button>
</template>
</el-popconfirm>
<el-popconfirm title="确定将此条信息重置吗?" @confirm="resetConfirm">
<el-popconfirm
title="确定将此条信息重置吗?"
@confirm="resetConfirm"
>
<template #reference>
<el-button type="primary" text @click="reset(scope.row)">
重置
@ -891,10 +1052,8 @@ const batchAdd = function () {
</el-button>
</template>
</el-popconfirm>
</div>
</template>
</el-table-column>
</el-table>
</el-row>
@ -905,7 +1064,6 @@ const batchAdd = function () {
</div>
</el-row>
</el-dialog>
</template>
<style scoped>

438
vue/gold-system/src/views/recharge/adminRecharge.vue

@ -1,18 +1,18 @@
<script setup>
import { ref, onMounted, reactive, computed } from "vue";
import ElementPlus from "element-plus";
import { ElMessage, ElMessageBox } from 'element-plus'
import { ElMessage, ElMessageBox } from "element-plus";
import { AiFillRead } from "vue-icons-plus/ai";
import axios from 'axios';
import moment from 'moment';
import axios from "axios";
import moment from "moment";
import API from "../../api/index.js";
//
//
const admin = ref({
adminId: 1,
name: '赵刚',
area: '中国'
})
name: "赵刚",
area: "中国",
});
//
const tableData = ref([]);
@ -37,41 +37,41 @@ const allData = ref([]);
//
const area = ref([]);
//
const activeName = ref('all')
const activeName = ref("all");
//
const payWay = [
{
value: '微信',
label: '微信',
value: "微信",
label: "微信",
},
{
value: '支付宝',
label: '支付宝',
value: "支付宝",
label: "支付宝",
},
{
value: '银联',
label: '银联',
value: "银联",
label: "银联",
},
{
value: '信用卡',
label: '信用卡',
value: "信用卡",
label: "信用卡",
},
{
value: '借记卡',
label: '借记卡',
value: "借记卡",
label: "借记卡",
},
{
value: '现金充值',
label: '现金充值',
value: "现金充值",
label: "现金充值",
},
]
];
// ==========================================================
//
const delObj = ref({});
//
const tableHeight = computed(function () {
return (getObj.value.pageSize + 2) * 60 + 'px';
return (getObj.value.pageSize + 2) * 60 + "px";
});
//
@ -80,235 +80,299 @@ const tableHeight = computed(function () {
const get = async function (val) {
try {
//
if (typeof val === 'number') {
if (typeof val === "number") {
getObj.value.pageNum = val;
}
//
if (getTime.value != null) {
if (getTime.value.startDate != '' && getTime.value.endDate != '') {
if (getTime.value.startDate != "" && getTime.value.endDate != "") {
rechargeVo.value.startDate = getTime.value[0];
rechargeVo.value.endDate = getTime.value[1];
}
} else {
rechargeVo.value.startDate = '';
rechargeVo.value.endDate = '';
rechargeVo.value.startDate = "";
rechargeVo.value.endDate = "";
}
console.log('搜索参数', getObj.value);
console.log("搜索参数", getObj.value);
// POST
const result = await API.post('http://192.168.8.93:10010/recharge/recharge', { ...getObj.value, rechargeVo: { ...rechargeVo.value } });
const result = await API.post(
"http://192.168.8.93:10010/recharge/recharge",
{ ...getObj.value, rechargeVo: { ...rechargeVo.value } }
);
//
console.log('请求成功', result);
console.log("请求成功", result);
//
tableData.value = result.data.list;
console.log('tableData', tableData.value);
console.log("tableData", tableData.value);
//
total.value = result.data.total;
console.log('total', total.value);
console.log("total", total.value);
} catch (error) {
console.log('请求失败', error);
console.log("请求失败", error);
//
}
}
};
//
const reset = function () {
rechargeVo.value.activityId = '';
rechargeVo.value.payWay = '';
rechargeVo.value.area = '';
rechargeVo.value.startDate = '';
rechargeVo.value.endDate = '';
rechargeVo.value.activityId = "";
rechargeVo.value.payWay = "";
rechargeVo.value.area = "";
rechargeVo.value.startDate = "";
rechargeVo.value.endDate = "";
getTime.value = {};
}
};
//
const getToday = function () {
const today = new Date();
const startDate = new Date(today.getFullYear(), today.getMonth(), today.getDate());
const endDate = new Date(today.getFullYear(), today.getMonth(), today.getDate() + 1);
const startDate = new Date(
today.getFullYear(),
today.getMonth(),
today.getDate()
);
const endDate = new Date(
today.getFullYear(),
today.getMonth(),
today.getDate() + 1
);
getTime.value = [startDate, endDate];
console.log('getTime', getTime.value);
console.log("getTime", getTime.value);
get();
}
};
//
const getYesterday = function () {
const yesterday = new Date();
yesterday.setDate(yesterday.getDate() - 1);
const startDate = new Date(yesterday.getFullYear(), yesterday.getMonth(), yesterday.getDate());
const endDate = new Date(yesterday.getFullYear(), yesterday.getMonth(), yesterday.getDate() + 1);
const startDate = new Date(
yesterday.getFullYear(),
yesterday.getMonth(),
yesterday.getDate()
);
const endDate = new Date(
yesterday.getFullYear(),
yesterday.getMonth(),
yesterday.getDate() + 1
);
getTime.value = [startDate, endDate];
console.log('getTime', getTime.value);
console.log("getTime", getTime.value);
get();
}
};
// 7
const get7Days = function () {
const today = new Date();
const startDate = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 6);
const endDate = new Date(today.getFullYear(), today.getMonth(), today.getDate() + 1);
const startDate = new Date(
today.getFullYear(),
today.getMonth(),
today.getDate() - 6
);
const endDate = new Date(
today.getFullYear(),
today.getMonth(),
today.getDate() + 1
);
getTime.value = [startDate, endDate];
console.log('getTime', getTime.value);
console.log("getTime", getTime.value);
get();
}
};
//
const adminAll = function () {
console.log('adminAll');
rechargeVo.value.status = '';
console.log("adminAll");
rechargeVo.value.status = "";
getObj.value.pageNum = 1;
get();
}
};
//
const adminWait = function () {
rechargeVo.value.status = 0;
getObj.value.pageNum = 1;
get();
console.log('adminWait');
}
console.log("adminWait");
};
//
const adminPass = function () {
rechargeVo.value.status = 1;
getObj.value.pageNum = 1;
get();
console.log('adminPass');
}
console.log("adminPass");
};
//
const adminReject = function () {
rechargeVo.value.status = 2;
getObj.value.pageNum = 1;
get();
console.log('adminReject');
}
console.log("adminReject");
};
//
const handleClick = function (tab, event) {
if (tab.props.name === 'all') {
if (tab.props.name === "all") {
adminAll();
} else if (tab.props.name === 'wait') {
} else if (tab.props.name === "wait") {
adminWait();
} else if (tab.props.name === 'pass') {
} else if (tab.props.name === "pass") {
adminPass();
} else if (tab.props.name === 'reject') {
} else if (tab.props.name === "reject") {
adminReject();
}
}
};
//
const getActivity = async function () {
try {
// POST
const result = await API.post('http://192.168.8.93:10010/recharge/activity/select', {});
const result = await API.post(
"http://192.168.8.93:10010/recharge/activity/select",
{}
);
//
console.log('请求成功', result);
console.log("请求成功", result);
//
activity.value = result.data;
console.log('activity', activity.value);
console.log("activity", activity.value);
} catch (error) {
console.log('请求失败', error);
console.log("请求失败", error);
//
}
}
};
//
const getArea = async function () {
try {
// POST
const result = await API.post('http://192.168.8.93:10010/recharge/recharge', {});
const result = await API.post(
"http://192.168.8.93:10010/recharge/recharge",
{}
);
//
console.log('请求成功', result);
console.log("请求成功", result);
//
allData.value = result.data;
console.log('allData', allData.value);
console.log("allData", allData.value);
//
area.value = [...new Set(allData.value.map(item => item.area))]
console.log('地区', area.value);
area.value = [...new Set(allData.value.map((item) => item.area))];
console.log("地区", area.value);
} catch (error) {
console.log('请求失败', error);
console.log("请求失败", error);
//
}
}
};
// =================================
//
const del = function (row) {
delObj.value.rechargeId = row.rechargeId;
console.log('delObj1', delObj.value);
}
console.log("delObj1", delObj.value);
};
//
const delConfirm = async function () {
try {
console.log('delObj2', delObj.value);
const result = await API.post('http://192.168.8.93:10010/recharge/recharge/edit', delObj.value);
console.log('删除成功', result);
console.log("delObj2", delObj.value);
const result = await API.post(
"http://192.168.8.93:10010/recharge/recharge/edit",
delObj.value
);
console.log("删除成功", result);
//
get();
} catch (error) {
console.log('请求失败', error);
console.log("请求失败", error);
//
}
}
};
//
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))) {
console.log('输入的数字合法');
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)
) {
console.log("输入的数字合法");
get();
} else {
//
ElMessage({
type: 'error',
message: '请检查输入内容',
})
type: "error",
message: "请检查输入内容",
});
}
} else {
//
ElMessage({
type: 'error',
message: '请检查输入内容',
})
type: "error",
message: "请检查输入内容",
});
}
}
};
//
onMounted(async function () {
await get();
getActivity();
await getArea();
})
});
</script>
<template>
<el-row>
<el-col>
<el-card style="margin-bottom: 20px">
<el-row style="margin-bottom: 10px;">
<el-row style="margin-bottom: 10px">
<el-col :span="8">
<div class="head-card-element">
<el-text class="mx-1" size="large">活动名称</el-text>
<el-select v-model="rechargeVo.activityId" placeholder="请选择活动名称" size="large"
style="width: 240px" clearable>
<el-option v-for="item in activity" :key="item.activityId" :label="item.activityName"
:value="item.activityId" />
<el-select
v-model="rechargeVo.activityId"
placeholder="请选择活动名称"
size="large"
style="width: 240px"
clearable
>
<el-option
v-for="item in activity"
:key="item.activityId"
:label="item.activityName"
:value="item.activityId"
/>
</el-select>
</div>
</el-col>
<el-col :span="8">
<div class="head-card-element">
<el-text class="mx-1" size="large">支付方式</el-text>
<el-select v-model="rechargeVo.payWay" placeholder="请选择支付方式" size="large"
style="width: 240px" clearable>
<el-option v-for="item in payWay" :key="item.value" :label="item.label"
:value="item.value" />
<el-select
v-model="rechargeVo.payWay"
placeholder="请选择支付方式"
size="large"
style="width: 240px"
clearable
>
<el-option
v-for="item in payWay"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</div>
</el-col>
<el-col :span="8">
<div class="head-card-element">
<el-text class="mx-1" size="large">所属地区</el-text>
<el-select v-model="rechargeVo.area" placeholder="请选择所属地区" size="large"
style="width: 240px" clearable>
<el-option v-for="item in area" :key="item" :label="item" :value="item" />
<el-select
v-model="rechargeVo.area"
placeholder="请选择所属地区"
size="large"
style="width: 240px"
clearable
>
<el-option
v-for="item in area"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</div>
</el-col>
@ -317,9 +381,16 @@ onMounted(async function () {
<el-col :span="21">
<div class="head-card-element">
<el-text class="mx-1" size="large">充值时间</el-text>
<el-date-picker v-model="getTime" type="datetimerange" range-separator=""
start-placeholder="起始时间" end-placeholder="结束时间" />
<el-button style="margin-left: 10px;" @click="getToday()"></el-button>
<el-date-picker
v-model="getTime"
type="datetimerange"
range-separator="至"
start-placeholder="起始时间"
end-placeholder="结束时间"
/>
<el-button style="margin-left: 10px" @click="getToday()"
></el-button
>
<el-button @click="getYesterday()"></el-button>
<el-button @click="get7Days()">近7天</el-button>
</div>
@ -337,7 +408,12 @@ onMounted(async function () {
<el-row>
<el-col>
<el-card>
<el-tabs v-model="activeName" type="card" class="demo-tabs" @tab-click="handleClick">
<el-tabs
v-model="activeName"
type="card"
class="demo-tabs"
@tab-click="handleClick"
>
<el-tab-pane label="全部" name="all"></el-tab-pane>
<el-tab-pane label="待审核" name="wait"></el-tab-pane>
<el-tab-pane label="已通过" name="pass"></el-tab-pane>
@ -346,17 +422,40 @@ onMounted(async function () {
<div>
<el-table :data="tableData" :height="tableHeight" style="width: 100%">
<el-table-column prop="username" label="姓名" width="100px" />
<el-table-column prop="jwcode" label="精网号" width="150px" />
<el-table-column prop="jwcode" label="精网号" width="130px" />
<el-table-column prop="area" label="所属地区" width="100px" />
<el-table-column prop="activityName" label="活动名称" width="150px" />
<el-table-column prop="rechargeGold" label="充值金额" width="100px" />
<el-table-column
prop="activityName"
label="活动名称"
width="150px"
/>
<el-table-column
prop="paidGold"
label="充值金额(新币)"
width="120px"
/>
<el-table-column prop="paidGold" label="充值金币" width="100px" />
<el-table-column prop="freeGold" label="免费金币" width="100px" />
<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="payWay" label="支付方式" width="100px" />
<el-table-column prop="rechargeVoucher" label="支付凭证" width="150px">
<el-table-column
prop="rechargeVoucher"
label="支付凭证"
width="150px"
>
<template #default="scope">
<el-image :preview-src-list="[scope.row.rechargeVoucher]" preview-teleported="true" :src="scope.row.rechargeVoucher" alt="凭证" style="width: 50px; height: 50px" />
<el-image
:preview-src-list="[scope.row.rechargeVoucher]"
preview-teleported="true"
:src="scope.row.rechargeVoucher"
alt="凭证"
style="width: 50px; height: 50px"
/>
</template>
</el-table-column>
<el-table-column prop="name" label="提交人" width="100px" />
@ -382,16 +481,31 @@ onMounted(async function () {
</span>
</template>
</el-table-column>
<el-table-column prop="reson" label="驳回理由" width="200px" show-overflow-tooltip />
<el-table-column
prop="reson"
label="驳回理由"
width="200px"
show-overflow-tooltip
/>
<el-table-column prop="rechargeTime" label="交款时间" width="200px">
<template #default="scope">
{{ moment(scope.row.rechargeTime).format('YYYY-MM-DD HH:mm:ss') }}
{{
moment(scope.row.rechargeTime).format("YYYY-MM-DD HH:mm:ss")
}}
</template>
</el-table-column>
<el-table-column prop="createTime" label="提交时间" width="200px" />
<el-table-column fixed="right" prop="operation" label="操作" width="150px">
<el-table-column
fixed="right"
prop="operation"
label="操作"
width="150px"
>
<template #default="scope">
<el-popconfirm title="确定将此条活动删除吗?" @confirm="delConfirm">
<el-popconfirm
title="确定将此条活动删除吗?"
@confirm="delConfirm"
>
<template #reference>
<el-button type="primary" text @click="del(scope.row)">
删除
@ -405,25 +519,48 @@ onMounted(async function () {
</template>
</el-popconfirm>
</template>
</el-table-column>
</el-table>
</div>
<!-- 分页 -->
<div class="pagination">
<el-pagination background :page-size="getObj.pageSize" layout="slot" :total="total">
<div>{{ total }},每页 </div>
<el-select v-model="getObj.pageSize" class="page-size" @change="get()" style="width: 80px">
<el-option v-for="item in [5, 6, 7, 8, 9, 10]" :key="item" :label="item"
:value="item"></el-option>
<div class="pagination" style="margin-top: 20px">
<el-pagination
background
:page-size="getObj.pageSize"
layout="slot"
:total="total"
>
<div>{{ total }},每页</div>
<el-select
v-model="getObj.pageSize"
class="page-size"
@change="get()"
style="width: 80px"
>
<el-option
v-for="item in [5, 6, 7, 8, 9, 10]"
:key="item"
:label="item"
:value="item"
></el-option>
</el-select>
<div> </div>
<div></div>
</el-pagination>
<el-pagination background layout="prev, pager, next,slot" :page-size="getObj.pageSize"
:total="total" :current-page="getObj.pageNum" @current-change="get">
<el-pagination
background
layout="prev, pager, next,slot"
:page-size="getObj.pageSize"
:total="total"
:current-page="getObj.pageNum"
@current-change="get"
>
<div>跳至</div>
<el-input v-model="getObj.pageNum" style="width: 40px;" @change="checkNumber" />
<el-input
v-model="getObj.pageNum"
style="width: 40px"
@change="checkNumber"
/>
<div></div>
</el-pagination>
</div>
@ -432,13 +569,20 @@ onMounted(async function () {
</el-row>
<!-- 编辑弹窗 -->
<el-dialog v-model="editRechargeVisible" title="新增活动" width="500" :before-close="closeEditRechargeVisible">
<el-dialog
v-model="editRechargeVisible"
title="新增活动"
width="500"
:before-close="closeEditRechargeVisible"
>
<template #footer>
<el-form :model="editObj" label-width="auto" style="max-width: 600px">
<el-form-item label="活动名称:">
<el-input v-model="addObj.activityName" placeholder="请输入活动名称" style="width: 220px;" />
<el-input
v-model="addObj.activityName"
placeholder="请输入活动名称"
style="width: 220px"
/>
</el-form-item>
<el-form-item label="免费金币:">
@ -449,8 +593,12 @@ onMounted(async function () {
</el-form-item>
<el-form-item label="免费金币兑换比:">
<el-input v-model="addObj.rechargeRatio" placeholder="请输入" style="width: 80px;" />1
<div style="color: grey;">(提示当前规则每10新币可兑换1免费金币)</div>
<el-input
v-model="addObj.rechargeRatio"
placeholder="请输入"
style="width: 80px"
/>1
<div style="color: grey">(提示当前规则每10新币可兑换1免费金币)</div>
</el-form-item>
<el-form-item label="开始时间:">
@ -462,9 +610,8 @@ onMounted(async function () {
</el-form-item>
<el-form-item label="添加人:">
<el-input v-model="addObj.adminName" disabled style="width: 220px;" />
<el-input v-model="addObj.adminName" disabled style="width: 220px" />
</el-form-item>
</el-form>
<div class="dialog-footer">
@ -475,7 +622,6 @@ onMounted(async function () {
</div>
</template>
</el-dialog>
</template>
<style scoped>

10
vue/gold-system/src/views/recharge/allRecharge.vue

@ -389,7 +389,7 @@ onMounted(async function () {
<div>
<el-table :data="tableData" :height="tableHeight" style="width: 100%">
<el-table-column prop="username" label="姓名" width="100px" />
<el-table-column prop="jwcode" label="精网号" width="150px" />
<el-table-column prop="jwcode" label="精网号" width="130px" />
<el-table-column prop="area" label="所属地区" width="100px" />
<el-table-column
prop="activityName"
@ -397,9 +397,9 @@ onMounted(async function () {
width="150px"
/>
<el-table-column
prop="rechargeGold"
label="充值金额"
width="100px"
prop="paidGold"
label="充值金额(新币)"
width="120px"
/>
<el-table-column
prop="rechargeWay"
@ -471,7 +471,7 @@ onMounted(async function () {
</div>
<!-- 分页 -->
<div class="pagination">
<div class="pagination" style="margin-top: 20px">
<el-pagination
background
:page-size="getObj.pageSize"

15
vue/gold-system/src/views/refund/addRefund.vue

@ -379,12 +379,15 @@ const handleSelectionChange = (value) => {
</el-form>
<!-- 客户信息栏 -->
<el-card style="float: right" class="customer-info">
<el-form :model="user" label-width="auto" label-position="left">
<el-text size="large" style="margin-left: 20px; font-weight: bold"
>客户信息</el-text
<el-card style="width: 850px; float: right" class="customer-info">
<el-form
:model="user"
label-width="auto"
style="max-width: 1000px"
label-position="left"
>
<el-row style="margin-top: 20px; display: flex">
<el-text size="large" style="margin-left: 20px">客户信息</el-text>
<el-row style="margin-top: 20px">
<el-col :span="10">
<el-form-item label="姓名:">
<p>{{ user.name }}</p>
@ -401,7 +404,7 @@ const handleSelectionChange = (value) => {
</el-form-item>
</el-col>
<el-col :span="14">
<el-form-item label="当前金币总数">
<el-form-item label="当前金币总数" style="width: 500px">
<span style="color: #2fa1ff; margin-right: 5px" v-if="user.buyJb">{{
user.buyJb + user.free6 + user.free12 + user.coreJb
}}</span>

40
vue/gold-system/src/views/refund/allRefund.vue

@ -14,7 +14,7 @@ const detail = ref({});
//
const getObj = ref({
pageNum: 1,
pageSize: 10,
pageSize: 5,
});
//
const total = ref(100);
@ -487,14 +487,46 @@ getGoods();
</div>
<!-- 分页 -->
<div class="pagination">
<el-pagination
background
layout="prev, pager, next"
:page-size="getObj.pageSize"
layout="slot"
:total="total"
>
<div>{{ total }},每页</div>
<el-select
v-model="getObj.pageSize"
class="page-size"
@change="get()"
style="width: 80px"
>
<el-option
v-for="item in [5, 6, 7, 8, 9, 10]"
:key="item"
:label="item"
:value="item"
></el-option>
</el-select>
<div></div>
</el-pagination>
<el-pagination
background
layout="prev, pager, next, slot"
:page-size="getObj.pageSize"
:total="total"
:current-page="getObj.pageNum"
@current-change="get"
>
<div>跳至</div>
<el-input
v-model="getObj.pageNum"
style="width: 40px"
@change="checkNumber"
/>
<div></div>
</el-pagination>
</div>
</el-card>
</el-col>
</el-row>
@ -516,4 +548,8 @@ getGoods();
.head-card-btn {
margin-left: auto;
}
.pagination {
display: flex;
margin-top: 20px;
}
</style>

38
vue/gold-system/src/views/usergold/index.vue

@ -2,6 +2,7 @@
import { ref, onMounted, reactive, computed } from "vue";
import ElementPlus from "element-plus";
import axios from "axios";
import moment from "moment";
import { ta } from "element-plus/es/locales.mjs";
import API from "../../api/index.js";
@ -46,7 +47,7 @@ const updateType = [
//
const tableHeight = computed(function () {
return getObj.value.pageSize * 50 + "px";
return (getObj.value.pageSize + 2) * 38 + "px";
});
//
@ -93,7 +94,7 @@ const get = async function (val) {
rechargeCoin.value = 0;
freeCoin.value = 0;
taskCoin.value = 0;
for(let i=0;i<tableAllData.value.length;i++){
for (let i = 0; i < tableAllData.value.length; i++) {
rechargeCoin.value += tableAllData.value[i].rechargeCoin;
freeCoin.value += tableAllData.value[i].freeCoin;
taskCoin.value += tableAllData.value[i].taskCoin;
@ -264,10 +265,10 @@ onMounted(async function () {
</div>
<div>
<el-table :data="tableData" :height="tableHeight" style="width: 100%">
<el-table-column prop="uname" label="姓名" />
<el-table-column prop="jwcode" label="精网号" />
<el-table-column prop="area" label="所属地区" />
<el-table-column prop="gold" label="更新数量">
<el-table-column prop="uname" label="姓名" width="130" />
<el-table-column prop="jwcode" label="精网号" width="170" />
<el-table-column prop="area" label="所属地区" width="170" />
<el-table-column prop="gold" label="更新数量" width="160">
<template #default="scope">
<span>{{
scope.row.rechargeCoin +
@ -276,18 +277,29 @@ onMounted(async function () {
}}</span>
</template>
</el-table-column>
<el-table-column prop="updateType" label="更新类型" />
<el-table-column prop="freeCoin" label="免费金币" />
<el-table-column prop="rechargeCoin" label="充值金币" />
<el-table-column prop="taskCoin" label="任务金币" />
<el-table-column prop="name" label="提交人" />
<el-table-column prop="createTime" label="更新时间" />
<el-table-column prop="updateType" label="更新类型" width="150" />
<el-table-column prop="freeCoin" label="免费金币" width="130" />
<el-table-column prop="rechargeCoin" label="充值金币" width="150" />
<el-table-column prop="taskCoin" label="任务金币" width="130" />
<el-table-column prop="name" label="提交人" width="150" />
<el-table-column
prop="createTime"
label="更新时间"
width="210"
show-overflow-tooltip
>
<template #default="scope">
<span>{{
moment(scope.row.createTime).format("YYYY-MM-DD HH:mm:ss")
}}</span>
</template>
</el-table-column>
</el-table>
</div>
<!-- 分页 -->
<!-- 分页 -->
<div class="pagination">
<div class="pagination" style="margin-top: 20px">
<el-pagination
background
:page-size="getObj.pageSize"

Loading…
Cancel
Save