Browse Source

又一次提交

Hongxilin
donghaolin 7 months ago
parent
commit
79237669d7
  1. 4
      vue/gold-system/src/views/recharge/addRecharge.vue
  2. 756
      vue/gold-system/src/views/recharge/allRecharge.vue
  3. 20
      vue/gold-system/src/views/refund/addRefund.vue

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

@ -44,7 +44,7 @@ const add = async function () {
addRecharge.value addRecharge.value
); );
if (result.code === 0) { if (result.code === 0) {
ElMessage.error(result.msg);
ElMessage.error("添加失败");
return; return;
} }
// //
@ -261,13 +261,13 @@ const deleteRecharge = function () {
addRecharge.value = { addRecharge.value = {
adminId: adminData.value.adminId, adminId: adminData.value.adminId,
area: adminData.value.area, area: adminData.value.area,
rechargeVoucher: "", rechargeVoucher: "",
rechargeWay: "客服充值", rechargeWay: "客服充值",
freeGold: Number(0), freeGold: Number(0),
rechargeGold: 0, rechargeGold: 0,
paidGold: "", paidGold: "",
}; };
imageUrl.value = "";
}; };
</script> </script>

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

@ -1,10 +1,10 @@
<script setup> <script setup>
import { ref, onMounted, reactive, computed } from "vue"; import { ref, onMounted, reactive, computed } from "vue";
import ElementPlus from "element-plus"; 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 { 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"; import API from "../../api/index.js";
// //
// //
@ -14,8 +14,8 @@ const tableData = ref([]);
const rechargeVo = ref({}); const rechargeVo = ref({});
// //
const getObj = ref({ const getObj = ref({
pageNum: 1,
pageSize: 5,
pageNum: 1,
pageSize: 5,
}); });
// //
const total = ref(100); const total = ref(100);
@ -29,376 +29,506 @@ const allData = ref([]);
const area = ref([]); const area = ref([]);
// //
const activeName = ref('all')
const activeName = ref("all");
// //
const payWay = [ 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 tableHeight = computed(function () { const tableHeight = computed(function () {
return (getObj.value.pageSize + 2) * 60 + 'px';
return (getObj.value.pageSize + 2) * 60 + "px";
}); });
// //
// ============================================================== // ==============================================================
// //
const get = async function (val) { const get = async function (val) {
try {
//
if (typeof val === 'number') {
getObj.value.pageNum = val;
}
//
if (getTime.value != null) {
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 = '';
}
console.log('搜索参数', getObj.value);
// POST
const result = await API.post('http://192.168.8.93:10010/recharge/recharge', { ...getObj.value, rechargeVo: { ...rechargeVo.value } });
//
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);
//
try {
//
if (typeof val === "number") {
getObj.value.pageNum = val;
} }
}
//
if (getTime.value != null) {
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 = "";
}
console.log("搜索参数", getObj.value);
// POST
const result = await API.post(
"http://192.168.8.93:10010/recharge/recharge",
{ ...getObj.value, rechargeVo: { ...rechargeVo.value } }
);
//
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);
//
}
};
// //
const reset = function () { const reset = function () {
rechargeVo.value.activityId = '';
rechargeVo.value.payWay = '';
rechargeVo.value.area = '';
rechargeVo.value.startDate = '';
rechargeVo.value.endDate = '';
getTime.value={};
}
rechargeVo.value.activityId = "";
rechargeVo.value.payWay = "";
rechargeVo.value.area = "";
rechargeVo.value.startDate = "";
rechargeVo.value.endDate = "";
getTime.value = {};
};
// //
const getToday = function () { 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);
getTime.value = [startDate, endDate];
console.log('getTime', getTime.value);
get();
}
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
);
getTime.value = [startDate, endDate];
console.log("getTime", getTime.value);
get();
};
// //
const getYesterday = function () { 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);
getTime.value = [startDate, endDate];
console.log('getTime', getTime.value);
get();
}
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
);
getTime.value = [startDate, endDate];
console.log("getTime", getTime.value);
get();
};
// 7 // 7
const get7Days = function () { 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);
getTime.value = [startDate, endDate];
console.log('getTime', getTime.value);
get();
}
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
);
getTime.value = [startDate, endDate];
console.log("getTime", getTime.value);
get();
};
// //
const adminAll = function () { const adminAll = function () {
console.log('adminAll');
rechargeVo.value.status = '';
get();
}
console.log("adminAll");
rechargeVo.value.status = "";
get();
};
// //
const adminWait = function () { const adminWait = function () {
rechargeVo.value.status = 0;
get();
console.log('adminWait');
}
rechargeVo.value.status = 0;
get();
console.log("adminWait");
};
// //
const adminPass = function () { const adminPass = function () {
rechargeVo.value.status = 1;
get();
console.log('adminPass');
}
rechargeVo.value.status = 1;
get();
console.log("adminPass");
};
// //
const adminReject = function () { const adminReject = function () {
rechargeVo.value.status = 2;
get();
console.log('adminReject');
}
rechargeVo.value.status = 2;
get();
console.log("adminReject");
};
// //
const handleClick = function (tab, event) { const handleClick = function (tab, event) {
if (tab.props.name === 'all') {
adminAll();
} else if (tab.props.name === 'wait') {
adminWait();
} else if (tab.props.name === 'pass') {
adminPass();
} else if (tab.props.name === 'reject') {
adminReject();
}
}
if (tab.props.name === "all") {
adminAll();
} else if (tab.props.name === "wait") {
adminWait();
} else if (tab.props.name === "pass") {
adminPass();
} else if (tab.props.name === "reject") {
adminReject();
}
};
// //
const getActivity = async function () { const getActivity = async function () {
try {
// POST
const result = await API.post('http://192.168.8.93:10010/recharge/activity/select', {});
try {
// POST
const result = await API.post(
"http://192.168.8.93:10010/recharge/activity/select",
{}
);
//
console.log('请求成功', result);
//
activity.value = result.data;
console.log('activity', activity.value);
} catch (error) {
console.log('请求失败', error);
//
}
}
//
console.log("请求成功", result);
//
activity.value = result.data;
console.log("activity", activity.value);
} catch (error) {
console.log("请求失败", error);
//
}
};
// //
const getArea = async function () { const getArea = async function () {
try {
// POST
const result = await API.post('http://192.168.8.93:10010/recharge/recharge', {});
//
console.log('请求成功', result);
//
allData.value = result.data;
console.log('allData', allData.value);
//
area.value = [...new Set(allData.value.map(item => item.area))]
console.log('地区', area.value);
} catch (error) {
console.log('请求失败', error);
//
}
}
try {
// POST
const result = await API.post(
"http://192.168.8.93:10010/recharge/recharge",
{}
);
//
console.log("请求成功", result);
//
allData.value = result.data;
console.log("allData", allData.value);
//
area.value = [...new Set(allData.value.map((item) => item.area))];
console.log("地区", area.value);
} catch (error) {
console.log("请求失败", error);
//
}
};
// //
const checkNumber = function () { 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('输入的数字合法');
get();
} else {
//
ElMessage({
type: 'error',
message: '请检查输入内容',
})
}
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 { } else {
//
ElMessage({
type: 'error',
message: '请检查输入内容',
})
//
ElMessage({
type: "error",
message: "请检查输入内容",
});
} }
}
} else {
//
ElMessage({
type: "error",
message: "请检查输入内容",
});
}
};
// //
onMounted(async function () { onMounted(async function () {
await get();
getActivity();
await getArea();
})
await get();
getActivity();
await getArea();
});
</script> </script>
<template> <template>
<el-row>
<el-col>
<el-card style="margin-bottom: 20px">
<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>
</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>
</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>
</div>
</el-col>
</el-row>
<el-row>
<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-button @click="getYesterday()"></el-button>
<el-button @click="get7Days()">近7天</el-button>
</div>
</el-col>
<el-col :span="3">
<div class="head-card-btn">
<el-button @click="reset()">重置</el-button>
<el-button type="primary" @click="get()">查询</el-button>
</div>
</el-col>
</el-row>
</el-card>
</el-col>
</el-row>
<el-row>
<el-col>
<el-card>
<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>
<el-tab-pane label="已驳回" name="reject"></el-tab-pane>
</el-tabs>
<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="area" label="所属地区" width="100px" />
<el-table-column prop="activityName" label="活动名称" width="150px" />
<el-table-column prop="rechargeGold" label="充值金额" width="100px" />
<el-table-column prop="rechargeWay" label="充值方式" width="100px" />
<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="payWay" label="支付方式" width="100px" />
<el-table-column prop="rechargeVoucher" label="支付凭证" width="150px">
<template #default="scope">
<el-image :src="scope.row.rechargeVoucher" alt="凭证" style="width: 50px; height: 50px" />
</template>
</el-table-column>
<el-table-column prop="name" label="提交人" width="100px" />
<el-table-column prop="status" label="状态" width="100px">
<template #default="scope">
<span v-if="scope.row.status === 1">
<div class="status">
<span class="green-dot"></span>
<span>已通过</span>
</div>
</span>
<span v-if="scope.row.status === 0">
<div class="status">
<span class="grey-dot"></span>
<span>待审核</span>
</div>
</span>
<span v-if="scope.row.status === 2">
<div class="status">
<span class="red-dot"></span>
<span>已驳回</span>
</div>
</span>
</template>
</el-table-column>
<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') }}
</template>
</el-table-column>
<el-table-column prop="createTime" label="提交时间" width="200px" />
</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>
</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>
<el-row>
<el-col>
<el-card style="margin-bottom: 20px">
<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>
</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>
</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>
</div>
</el-col>
</el-row>
<el-row>
<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-button @click="getYesterday()"></el-button>
<el-button @click="get7Days()">近7天</el-button>
</div>
</el-col>
<el-col :span="3">
<div class="head-card-btn">
<el-button @click="reset()">重置</el-button>
<el-button type="primary" @click="get()">查询</el-button>
</div>
</el-col>
</el-row>
</el-card>
</el-col>
</el-row>
<el-row>
<el-col>
<el-card>
<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>
<el-tab-pane label="已驳回" name="reject"></el-tab-pane>
</el-tabs>
<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="area" label="所属地区" width="100px" />
<el-table-column
prop="activityName"
label="活动名称"
width="150px"
/>
<el-table-column
prop="rechargeGold"
label="充值金额"
width="100px"
/>
<el-table-column
prop="rechargeWay"
label="充值方式"
width="100px"
/>
<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="payWay" label="支付方式" width="100px" />
<el-table-column
prop="rechargeVoucher"
label="支付凭证"
width="150px"
>
<template #default="scope">
<el-image
:src="scope.row.rechargeVoucher"
alt="凭证"
style="width: 50px; height: 50px"
initial-index
/>
</template>
</el-table-column>
<el-table-column prop="name" label="提交人" width="100px" />
<el-table-column prop="status" label="状态" width="100px">
<template #default="scope">
<span v-if="scope.row.status === 1">
<div class="status">
<span class="green-dot"></span>
<span>已通过</span>
</div>
</span>
<span v-if="scope.row.status === 0">
<div class="status">
<span class="grey-dot"></span>
<span>待审核</span>
</div>
</span>
<span v-if="scope.row.status === 2">
<div class="status">
<span class="red-dot"></span>
<span>已驳回</span>
</div>
</span>
</template>
</el-table-column>
<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")
}}
</template>
</el-table-column>
<el-table-column prop="createTime" label="提交时间" width="200px" />
</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>
</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>
</template> </template>
<style scoped> <style scoped>
.pagination { .pagination {
display: flex;
display: flex;
} }
.status { .status {
display: flex;
display: flex;
} }
.head-card { .head-card {
display: flex;
display: flex;
} }
.head-card-element { .head-card-element {
margin-right: 20px;
margin-right: 20px;
} }
.head-card-btn { .head-card-btn {
margin-left: auto;
margin-left: auto;
} }
</style>
</style>

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

@ -107,11 +107,8 @@ const addBefore = () => {
// //
// //
const Ref = ref(null); const Ref = ref(null);
const checkEndTime = function (rule, value, callback) {
if (value <= new Date()) {
callback(new Error("付款时间不能小于当前时间"));
}
};
const startChange = (val) => {};
const rules = reactive({ const rules = reactive({
jwcode: [{ required: true, message: "请输入精网号", trigger: "blur" }], jwcode: [{ required: true, message: "请输入精网号", trigger: "blur" }],
refundType: [{ required: true, message: "请选择退款类型", trigger: "blur" }], refundType: [{ required: true, message: "请选择退款类型", trigger: "blur" }],
@ -121,7 +118,18 @@ const rules = reactive({
rechargeCoin: [ rechargeCoin: [
{ required: true, message: "请输入充值金币", trigger: "blur" }, { required: true, message: "请输入充值金币", trigger: "blur" },
], ],
allCoin: [{ required: true, message: "请选择付款方式", trigger: "blur" }],
allCoin: [
{ required: true, message: "请选择付款方式", trigger: "blur" },
{
validator: (rule, value) => {
if (value === 0) {
return Promise.reject(new Error("总金币不能为0"));
}
return Promise.resolve();
},
trigger: "blur",
},
],
}); });
// //

Loading…
Cancel
Save