Browse Source

Merge branch 'Hongxilin' into dev

Hongxilin
hongxilin 4 months ago
parent
commit
0d03b16ece
  1. 92
      gold-system/src/router/index.js
  2. 246
      gold-system/src/views/audit/rechargeAudit.vue
  3. 233
      gold-system/src/views/audit/refundAudit.vue
  4. 159
      gold-system/src/views/consume/addConsume.vue
  5. 162
      gold-system/src/views/consume/allConsume.vue
  6. 23
      gold-system/src/views/index.vue
  7. 38
      gold-system/src/views/login.vue
  8. 24
      gold-system/src/views/noPermissionPage.vue
  9. 128
      gold-system/src/views/permissions/index.vue
  10. 442
      gold-system/src/views/recharge/addRecharge.vue
  11. 8
      gold-system/src/views/recharge/adminRecharge.vue
  12. 183
      gold-system/src/views/recharge/allRecharge.vue
  13. 152
      gold-system/src/views/refund/addRefund.vue
  14. 33
      gold-system/src/views/refund/allRefund.vue
  15. 22
      gold-system/src/views/usergold/index.vue
  16. 88
      gold-system/src/views/usergoldInfo/index.vue
  17. 62
      gold-system/src/views/workspace/index.vue

92
gold-system/src/router/index.js

@ -1,57 +1,85 @@
import { createRouter,createWebHashHistory } from 'vue-router';
import { createRouter, createWebHashHistory } from 'vue-router';
const router = createRouter({
history: createWebHashHistory(),
routes: [
{ path: '/login', name: "login", component: () => import("../views/login.vue") },
{ path: '/', redirect: "/login" },
{ path: '/test', component: () => import("../views/z.vue") },
const router=createRouter({
history:createWebHashHistory(),
routes:[
{path:'/login', name:"login", component:()=>import("../views/login.vue")},
{path:'/',redirect:"/login"},
{path:'/test',component:()=>import("../views/z.vue")},
{
meta:{requireAuth:true},
path:'/index',component:()=>import("../views/index.vue"),
children:[
meta: { requireAuth: true },
path: '/index', component: () => import("../views/index.vue"),
children: [
// 工作台
{path:'/workspace',component:()=>import("../views/workspace/index.vue")},
{ path: '/workspace', name: "workspace", component: () => import("../views/workspace/index.vue") },
// 充值审核
{path:'/rechargeAudit',component:()=>import("../views/audit/rechargeAudit.vue")},
{ path: '/rechargeAudit', name: "rechargeAudit", component: () => import("../views/audit/rechargeAudit.vue") },
// 退款审核
{path:'/refundAudit',component:()=>import("../views/audit/refundAudit.vue")},
{ path: '/refundAudit', name: "refundAudit", component: () => import("../views/audit/refundAudit.vue") },
// 新增消费
{path:'/addConsume',component:()=>import("../views/consume/addConsume.vue")},
{ path: '/addConsume', name: "addConsume", component: () => import("../views/consume/addConsume.vue") },
// 所有消费明细
{path:'/allConsume',component:()=>import("../views/consume/allConsume.vue")},
{ path: '/allConsume', name: "allConsume", component: () => import("../views/consume/allConsume.vue") },
// 活动管理
{path:'/activity',component:()=>import("../views/managerecharge/activity.vue")},
{ path: '/activity', name: "activity", component: () => import("../views/managerecharge/activity.vue") },
// 汇率管理
{path:'/rate',component:()=>import("../views/managerecharge/rate.vue")},
{ path: '/rate', name: "rate", component: () => import("../views/managerecharge/rate.vue") },
// 新增充值
{path:'/addRecharge',component:()=>import("../views/recharge/addRecharge.vue")},
{ path: '/addRecharge', name: "addRecharge", component: () => import("../views/recharge/addRecharge.vue") },
// 客户充值明细
{path:'/adminRecharge',component:()=>import("../views/recharge/adminRecharge.vue")},
{ path: '/adminRecharge', name: "adminRecharge", component: () => import("../views/recharge/adminRecharge.vue") },
// 所有充值明细
{path:'/allRecharge',component:()=>import("../views/recharge/allRecharge.vue")},
{ path: '/allRecharge', name: "allRecharge", component: () => import("../views/recharge/allRecharge.vue") },
// 新增退款
{path:'/addRefund',component:()=>import("../views/refund/addRefund.vue")},
{ path: '/addRefund', name: "addRefund", component: () => import("../views/refund/addRefund.vue") },
// 退款明细
{path:'/allRefund',component:()=>import("../views/refund/allRefund.vue")},
{ path: '/allRefund', name: "allRefund", component: () => import("../views/refund/allRefund.vue") },
// 客户金币明细
{path:'/usergold',component:()=>import("../views/usergold/index.vue")},
{ path: '/usergold', name: "usergold", component: () => import("../views/usergold/index.vue") },
// 客户金币余额
{path:'/usergoldInfo',component:()=>import("../views/usergoldInfo/index.vue")},
{ path: '/usergoldInfo', name: "usergoldInfo", component: () => import("../views/usergoldInfo/index.vue") },
// 权限管理
{path:'/permissions',component:()=>import("../views/permissions/index.vue")},
{ path: '/permissions', name: "permissions", component: () => import("../views/permissions/index.vue") },
// 没有权限
{ path: '/noPermission', name: "noPermission", component: () => import("../views/noPermissionPage.vue") },
]
},
]
});
router.beforeEach((to,from,next)=>{
const token=localStorage.getItem("token");
if(to.name!="login"&&!token){
next({name:"login"});
}else{
next();
router.beforeEach((to, from, next) => {
const token = localStorage.getItem("token");
const permission = localStorage.getItem("permission");
if (to.name != "login" && !token) {
next({ name: "login" });
} else {
if (permission == "4" && to.name != "noPermission") {
next({ name: "noPermission" });
} else if (permission == "2") {
if (to.name == "addConsume" || to.name == "allConsume"
|| to.name == "addRecharge" || to.name == "adminRecharge" || to.name == "allRecharge"
|| to.name == "addRefund" || to.name == "allRefund"
|| to.name == "permissions") {
next({ name: "workspace" });
} else {
next();
}
} else if (permission == '3') {
if (to.name == "rechargeAudit" || to.name == "refundAudit"
|| to.name == "activity" || to.name == "rate"
|| to.name == "permissions") {
next({ name: "workspace" })
} else {
next();
}
}
else {
next();
}
}
})

246
gold-system/src/views/audit/rechargeAudit.vue

@ -23,14 +23,13 @@ const getAdminData = async function () {
{}
);
adminData.value = result;
addConsume.value.adminId = adminData.value.adminId;
console.log("请求成功", result);
console.log("用户信息", adminData.value);
} catch (error) {
console.log("请求失败", error);
}
};
getAdminData();
//
const tableData = ref([]);
@ -103,6 +102,10 @@ const Ref = ref(null);
//
const get = async function (val) {
try {
//
if (adminData.value.area != "总部") {
rechargeVo.value.area = adminData.value.area;
}
//
if (typeof val === "number") {
getObj.value.pageNum = val;
@ -316,7 +319,7 @@ const checkNumber = function () {
const pass = function (row) {
//
passObj.value = row;
passObj.value.adminId = admin.value.adminId;
passObj.value.adminId = adminData.value.adminId;
passObj.value.auditId = row.auditId;
passObj.value.status = 1;
passObj.value.rechargeId = row.rechargeId;
@ -364,7 +367,7 @@ const closeRejectVisible = function () {
//
const reject = function (row) {
//
rejectObj.value.adminId = admin.value.adminId;
rejectObj.value.adminId = adminData.value.adminId;
rejectObj.value.auditId = row.auditId;
rejectObj.value.status = 2;
rejectObj.value.reson = "";
@ -418,9 +421,10 @@ const rules = reactive({
//
onMounted(async function () {
await get();
getActivity();
await getAdminData();
await getActivity();
await getArea();
await get();
});
</script>
@ -432,69 +436,32 @@ onMounted(async function () {
<el-col :span="6">
<div class="head-card-element">
<el-text class="mx-1" size="large">精网号</el-text>
<el-input
v-model="rechargeVo.jwcode"
placeholder="请输入精网号"
size="large"
style="width: 240px"
clearable
/>
<el-input v-model="rechargeVo.jwcode" placeholder="请输入精网号" size="large" style="width: 240px" clearable />
</div>
</el-col>
<el-col :span="6">
<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="6">
<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="6">
<div class="head-card-element">
<div class="head-card-element" v-if="adminData.area == '总部'">
<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>
@ -503,16 +470,9 @@ 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>
@ -530,12 +490,7 @@ 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>
@ -543,12 +498,7 @@ onMounted(async function () {
</el-tabs>
<div>
<el-table :data="tableData" :height="tableHeight" style="width: 100%">
<el-table-column
type="index"
label="序号"
width="100px"
fixed="left"
>
<el-table-column type="index" label="序号" width="100px" fixed="left">
<template #default="scope">
<span>{{
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize
@ -558,41 +508,16 @@ onMounted(async function () {
<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="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="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
:src="scope.row.rechargeVoucher"
alt="凭证"
style="width: 50px; height: 50px"
/>
<el-image :src="scope.row.rechargeVoucher" alt="凭证" style="width: 50px; height: 50px" />
</template>
</el-table-column>
<el-table-column prop="name" label="提交人" width="100px" />
@ -618,12 +543,7 @@ 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">
{{
@ -632,29 +552,15 @@ onMounted(async function () {
</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">
<div class="operation">
<el-popconfirm
title="确定要通过此条记录吗?"
@confirm="passConfirm"
>
<el-popconfirm title="确定要通过此条记录吗?" @confirm="passConfirm">
<template #reference>
<el-button
:disabled="
scope.row.status === 1 || scope.row.status === 2
? true
: false
"
type="primary"
text
@click="pass(scope.row)"
>
<el-button :disabled="scope.row.status === 1 || scope.row.status === 2
? true
: false
" type="primary" text @click="pass(scope.row)">
通过
</el-button>
</template>
@ -665,16 +571,10 @@ onMounted(async function () {
</el-button>
</template>
</el-popconfirm>
<el-button
:disabled="
scope.row.status === 1 || scope.row.status === 2
? true
: false
"
type="primary"
text
@click="reject(scope.row)"
>
<el-button :disabled="scope.row.status === 1 || scope.row.status === 2
? true
: false
" type="primary" text @click="reject(scope.row)">
驳回
</el-button>
</div>
@ -685,42 +585,17 @@ onMounted(async function () {
<!-- 分页 -->
<div class="pagination">
<el-pagination
background
:page-size="getObj.pageSize"
layout="slot"
:total="total"
>
<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, 10, 20, 50, 100]"
:key="item"
:label="item"
:value="item"
></el-option>
<el-select v-model="getObj.pageSize" class="page-size" @change="get()" style="width: 80px">
<el-option v-for="item in [5, 10, 20, 50, 100]" :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"
>
<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>
@ -729,29 +604,12 @@ onMounted(async function () {
</el-row>
<!-- 驳回弹出框 -->
<el-dialog
v-model="rejectVisible"
title="驳回理由"
width="500"
:before-close="closeRejectVisible"
>
<el-dialog v-model="rejectVisible" title="驳回理由" width="500" :before-close="closeRejectVisible">
<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="reson" label="驳回理由:">
<el-input
v-model="rejectObj.reson"
maxlength="150"
show-word-limit
style="width: 350px"
type="textarea"
placeholder="请输入内容"
/>
<el-input v-model="rejectObj.reson" maxlength="150" show-word-limit style="width: 350px" type="textarea"
placeholder="请输入内容" />
</el-form-item>
</el-form>

233
gold-system/src/views/audit/refundAudit.vue

@ -13,7 +13,21 @@ const admin = ref({
name: "赵刚",
area: "中国",
});
//
const adminData = ref({});
const getAdminData = async function () {
try {
const result = await API.post(
"/hwjb/admin/userinfo",
{}
);
adminData.value = result;
console.log("请求成功", result);
console.log("用户信息", adminData.value);
} catch (error) {
console.log("请求失败", error);
}
};
//
const tableData = ref([]);
// ======================================
@ -71,6 +85,10 @@ const Ref = ref(null);
//
const get = async function (val) {
try {
//
if (adminData.value.area != "总部") {
detail.value.area = adminData.value.area;
}
//
if (typeof val === "number") {
getObj.value.pageNum = val;
@ -280,13 +298,13 @@ const checkNumber = function () {
//
const pass = function (row) {
//
passObj.value.adminId = admin.value.adminId;
passObj.value.adminId = adminData.value.adminId;
passObj.value.auditId = row.auditId;
passObj.value.status = 1;
passObj.value.refundId = row.refundId;
passObj.value.adminName = row.adminName;
passObj.value.username=row.username;
passObj.value.area=row.area;
passObj.value.username = row.username;
passObj.value.area = row.area;
console.log("通过对象", passObj.value);
};
@ -326,7 +344,7 @@ const closeRejectVisible = function () {
//
const reject = function (row) {
//
rejectObj.value.adminId = admin.value.adminId;
rejectObj.value.adminId = adminData.value.adminId;
rejectObj.value.auditId = row.auditId;
rejectObj.value.status = 2;
rejectObj.value.reson = "";
@ -379,6 +397,7 @@ const rules = reactive({
//
onMounted(async function () {
await getAdminData();
await get();
getProduct();
await getArea();
@ -394,69 +413,30 @@ onMounted(async function () {
<el-col :span="6">
<div class="head-card-element">
<el-text class="mx-1" size="large">精网号</el-text>
<el-input
v-model="detail.jwcode"
placeholder="请输入精网号"
size="large"
style="width: 240px"
clearable
/>
<el-input v-model="detail.jwcode" placeholder="请输入精网号" size="large" style="width: 240px" clearable />
</div>
</el-col>
<el-col :span="6">
<div class="head-card-element">
<el-text class="mx-1" size="large">退款类型</el-text>
<el-select
v-model="detail.refundType"
placeholder="请选择退款类型"
size="large"
style="width: 240px"
clearable
>
<el-option
v-for="item in refundType"
:key="item.value"
:label="item.label"
:value="item.value"
/>
<el-select v-model="detail.refundType" placeholder="请选择退款类型" size="large" style="width: 240px" clearable>
<el-option v-for="item in refundType" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</div>
</el-col>
<el-col :span="6">
<div class="head-card-element">
<el-text class="mx-1" size="large">退款商品</el-text>
<el-select
v-model="detail.refundGoods"
placeholder="请选择退款商品"
size="large"
style="width: 240px"
clearable
>
<el-option
v-for="item in product"
:key="item.name"
:label="item.name"
:value="item.name"
/>
<el-select v-model="detail.refundGoods" placeholder="请选择退款商品" size="large" style="width: 240px" clearable>
<el-option v-for="item in product" :key="item.name" :label="item.name" :value="item.name" />
</el-select>
</div>
</el-col>
<el-col :span="6">
<div class="head-card-element">
<div class="head-card-element" v-if="adminData.area == '总部'">
<el-text class="mx-1" size="large">所属地区</el-text>
<el-select
v-model="detail.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="detail.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>
@ -465,16 +445,9 @@ 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>
@ -492,12 +465,7 @@ 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>
@ -505,12 +473,7 @@ onMounted(async function () {
</el-tabs>
<div>
<el-table :data="tableData" :height="tableHeight" style="width: 100%">
<el-table-column
type="index"
label="序号"
width="100px"
fixed="left"
>
<el-table-column type="index" label="序号" width="100px" fixed="left">
<template #default="scope">
<span>{{
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize
@ -535,19 +498,10 @@ onMounted(async function () {
}}</span>
</template>
</el-table-column>
<el-table-column
prop="rechargeCoin"
label="永久金币"
width="100px"
/>
<el-table-column prop="rechargeCoin" label="永久金币" width="100px" />
<el-table-column prop="freeCoin" label="免费金币" width="100px" />
<el-table-column prop="taskCoin" 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="adminName" label="提交人" width="100px" />
<el-table-column prop="status" label="审核状态" width="100px">
<!-- 模板内容 -->
@ -572,40 +526,21 @@ 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="createTime" label="提交时间" width="200px">
<template #default="scope">
{{ moment(scope.row.createTime).format("YYYY-MM-DD HH:mm:ss") }}
</template>
</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 class="operation">
<el-popconfirm
title="确定要通过此条记录吗?"
@confirm="passConfirm"
>
<el-popconfirm title="确定要通过此条记录吗?" @confirm="passConfirm">
<template #reference>
<el-button
:disabled="
scope.row.status === 1 || scope.row.status === 2
? true
: false
"
type="primary"
text
@click="pass(scope.row)"
>
<el-button :disabled="scope.row.status === 1 || scope.row.status === 2
? true
: false
" type="primary" text @click="pass(scope.row)">
通过
</el-button>
</template>
@ -616,16 +551,10 @@ onMounted(async function () {
</el-button>
</template>
</el-popconfirm>
<el-button
:disabled="
scope.row.status === 1 || scope.row.status === 2
? true
: false
"
type="primary"
text
@click="reject(scope.row)"
>
<el-button :disabled="scope.row.status === 1 || scope.row.status === 2
? true
: false
" type="primary" text @click="reject(scope.row)">
驳回
</el-button>
</div>
@ -636,42 +565,17 @@ onMounted(async function () {
<!-- 分页 -->
<div class="pagination">
<el-pagination
background
:page-size="getObj.pageSize"
layout="slot"
:total="total"
>
<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, 10, 20, 50, 100]"
:key="item"
:label="item"
:value="item"
></el-option>
<el-select v-model="getObj.pageSize" class="page-size" @change="get()" style="width: 80px">
<el-option v-for="item in [5, 10, 20, 50, 100]" :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"
>
<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>
@ -680,29 +584,12 @@ onMounted(async function () {
</el-row>
<!-- 驳回弹出框 -->
<el-dialog
v-model="rejectVisible"
title="驳回理由"
width="500"
:before-close="closeRejectVisible"
>
<el-dialog v-model="rejectVisible" title="驳回理由" width="500" :before-close="closeRejectVisible">
<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="reson" label="驳回理由:">
<el-input
v-model="rejectObj.reson"
maxlength="150"
show-word-limit
style="width: 350px"
type="textarea"
placeholder="请输入内容"
/>
<el-input v-model="rejectObj.reson" maxlength="150" show-word-limit style="width: 350px" type="textarea"
placeholder="请输入内容" />
</el-form-item>
</el-form>

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

@ -1,5 +1,5 @@
<script setup>
import { reactive } from "vue";
import { reactive,onMounted } from "vue";
import { ref, computed, watch } from "vue";
import { ElMessage } from "element-plus";
import { Plus } from "@element-plus/icons-vue";
@ -26,7 +26,6 @@ const getAdminData = async function () {
console.log("请求失败", error);
}
};
getAdminData();
//
const addConsume = ref({
@ -138,22 +137,19 @@ const user = ref({
const getUser = async function (jwcode) {
try {
// POST
const result = await API.post("/hwjb/recharge/user", {
jwcode: jwcode,
});
const result = await API.post("/hwjb/recharge/user",
{ jwcode: jwcode, area: adminData.value.area });
console.log("请求成功", result);
user.value = result.data;
console.log("用户a信息aaaaaaaaaaa", user.value);
user.value.A =
Number(user.value.pendingRechargeTimes) +
Number(user.value.pendingSpendTimes);
console.log("用户信息", user.value);
console.log("用户信息", user.value.firstRechargeDate);
if (result.data.code === 0) {
if (result.code === 0) {
ElMessage.error(result.msg);
} else {
user.value = result.data;
user.value.A =
Number(user.value.pendingRechargeTimes) +
Number(user.value.pendingSpendTimes);
console.log("用户信息", user.value);
ElMessage.success(result.msg);
}
} catch (error) {
@ -174,31 +170,30 @@ const getGoods = async function () {
console.log("请求成功", result);
//
goods.value = result.data;
console.log("allData", allData.value);
console.log("地区", area.value);
} catch (error) {
console.log("请求失败", error);
//
}
};
getGoods();
//
const userGold = ref({});
const getUserGold = async function (jwcode) {
try {
// POST
const result = await API.post("/hwjb/recharge/user", {
jwcode: jwcode,
});
const result = await API.post("/hwjb/recharge/user",
{ jwcode: jwcode, area: adminData.value.area });
//
console.log("请求成功", result);
//
userGold.value = result.data;
addConsume.value.username = result.data.name;
addConsume.value.area = result.data.area;
if (result.data.code === 0) {
ElMessage.error("查询失败,请检查精网号是否正确");
if (result.code === 0) {
ElMessage.error(result.msg);
} else {
//
userGold.value = result.data;
addConsume.value.username = result.data.name;
addConsume.value.area = result.data.area;
ElMessage.success(result.msg);
}
} catch (error) {
console.log("请求失败", error);
@ -211,9 +206,9 @@ const getUserGold = async function (jwcode) {
function calculateCoins() {
if (
userGold.value.coreJb +
userGold.value.free6 +
userGold.value.free12 +
userGold.value.buyJb <
userGold.value.free6 +
userGold.value.free12 +
userGold.value.buyJb <
addConsume.value.allGold
) {
addConsume.value.allGold = 0;
@ -254,100 +249,49 @@ function calculateCoins() {
console.log("计算结果", addConsume.value);
}
}
//
onMounted(async function () {
await getAdminData();
await getGoods();
});
</script>
<template>
<div style="margin-bottom: 20px; font-weight: bolder">新增消费</div>
<el-form
:model="addConsume"
ref="Ref"
:rules="rules"
label-width="auto"
style="max-width: 750px"
class="form-style"
>
<el-form :model="addConsume" ref="Ref" :rules="rules" label-width="auto" style="max-width: 750px" class="form-style">
<el-form-item prop="jwcode" label="精网号">
<el-input
v-model="addConsume.jwcode"
style="width: 220px"
@change="getUserGold(addConsume.jwcode)"
/>
<el-button
type="primary"
@click="getUser(addConsume.jwcode)"
style="margin-left: 20px"
>查询</el-button
>
<el-input v-model="addConsume.jwcode" style="width: 220px" @change="getUserGold(addConsume.jwcode)" />
<el-button type="primary" @click="getUser(addConsume.jwcode)" style="margin-left: 20px">查询</el-button>
</el-form-item>
<el-form-item prop="productId" label="商品名称">
<el-select
v-model="addConsume.productId"
placeholder="请选择"
style="width: 300px"
>
<el-option
v-for="item in goods"
:key="item.value"
:label="item.name"
:value="item.productId"
/>
<el-select v-model="addConsume.productId" placeholder="请选择" style="width: 300px">
<el-option v-for="item in goods" :key="item.value" :label="item.name" :value="item.productId" />
</el-select>
</el-form-item>
<el-form-item prop="allGold" label="消费金币总数">
<el-input
v-model="addConsume.allGold"
style="width: 100px"
@change="calculateCoins()"
/>
<el-input v-model="addConsume.allGold" style="width: 100px" @change="calculateCoins()" />
</el-form-item>
<div style="display: flex; align-items: center">
<el-form-item prop="rechargeCoin" label="永久金币" style="float: left">
<el-input
disabled
v-model="addConsume.rechargeCoin"
style="width: 100px; margin-left: -5px"
/>
<el-input disabled v-model="addConsume.rechargeCoin" style="width: 100px; margin-left: -5px" />
<p style="margin-right: 0px"></p>
</el-form-item>
<el-form-item
prop="freeCoin"
label="免费金币"
style="float: left; margin-left: -20px"
>
<el-input
disabled
v-model="addConsume.freeCoin"
style="width: 100px; margin-left: -5px"
/>
<el-form-item prop="freeCoin" label="免费金币" style="float: left; margin-left: -20px">
<el-input disabled v-model="addConsume.freeCoin" style="width: 100px; margin-left: -5px" />
<p style="margin-right: 0px"></p>
</el-form-item>
<el-form-item prop="taskCoin" label="任务金币" style="margin-left: -20px">
<el-input
disabled
v-model="addConsume.taskCoin"
style="width: 100px; margin-left: -5px"
/>
<el-input disabled v-model="addConsume.taskCoin" style="width: 100px; margin-left: -5px" />
<p style="margin-right: 20px"></p>
</el-form-item>
</div>
<el-form-item prop="remark" label="备注">
<el-input
v-model="addConsume.remark"
style="width: 300px"
:rows="2"
maxlength="100"
show-word-limit
type="textarea"
/>
<el-input v-model="addConsume.remark" style="width: 300px" :rows="2" maxlength="100" show-word-limit
type="textarea" />
</el-form-item>
<el-form-item prop="commitName" 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="delteConsume" style="margin-left: 280px">重置</el-button>
<el-button type="primary" @click="addBefore"> 提交 </el-button>
@ -355,12 +299,7 @@ function calculateCoins() {
<!-- 客户信息栏 -->
<el-card style="width: 850px; float: right" class="customer-info">
<el-form
:model="user"
label-width="auto"
style="max-width: 1200px"
label-position="left"
>
<el-form :model="user" label-width="auto" style="max-width: 1200px" label-position="left">
<el-text size="large" style="margin-left: 20px">客户信息</el-text>
<el-row style="margin-top: 20px">
<el-col :span="10">
@ -383,13 +322,10 @@ function calculateCoins() {
<span style="color: #2fa1ff; margin-right: 5px" v-if="user.buyJb">{{
user.buyJb + user.free6 + user.free12 + user.coreJb
}}</span>
<span
style="display: inline; white-space: nowrap; color: #b1b1b1"
v-if="user.buyJb"
>(永久金币:{{ user.buyJb }};免费金币:{{
<span style="display: inline; white-space: nowrap; color: #b1b1b1" v-if="user.buyJb">(永久金币:{{ user.buyJb
}};免费金币:{{
user.free6 + user.free12
}};任务金币:{{ user.coreJb }})</span
>
}};任务金币:{{ user.coreJb }})</span>
</el-form-item>
</el-col>
<el-col :span="10">
@ -435,6 +371,7 @@ function calculateCoins() {
p {
margin: 0px;
}
.el-form-item {
margin-left: 50px;
}
@ -468,11 +405,13 @@ p {
height: 50px;
text-align: center;
}
.form-style {
margin-top: 50px;
max-width: 50%;
float: left;
}
.form-style2 {
max-width: 60%;
}

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

@ -6,6 +6,21 @@ import { ElMessage, ElMessageBox } from "element-plus";
import axios from "axios";
import API from "../../api/index.js";
//
//
const adminData = ref({});
const getAdminData = async function () {
try {
const result = await API.post(
"/hwjb/admin/userinfo",
{}
);
adminData.value = result;
console.log("请求成功", result);
console.log("用户信息", adminData.value);
} catch (error) {
console.log("请求失败", error);
}
};
//
const tableData = ref([]);
// ======================================
@ -65,6 +80,10 @@ const consumeType = [
//
const get = async function (val) {
try {
//
if (adminData.value.area != "总部") {
detailVo.value.area = adminData.value.area;
}
//
if (typeof val === "number") {
getObj.value.pageNum = val;
@ -180,6 +199,7 @@ const handleClick = function (tab, event) {
//
onMounted(async function () {
await getAdminData();
await get();
// getActivity();
// await getArea();
@ -241,57 +261,27 @@ getGoods();
<el-col :span="8">
<div class="head-card-element">
<el-text class="mx-1" size="large">商品名称</el-text>
<el-select
v-model="detailVo.productName"
placeholder="请选择商品名称"
size="large"
style="width: 240px"
clearable
>
<el-option
v-for="item in goods"
:key="item.activityId"
:label="item.name"
:value="item.name"
/>
<el-select v-model="detailVo.productName" placeholder="请选择商品名称" size="large" style="width: 240px"
clearable>
<el-option v-for="item in goods" :key="item.activityId" :label="item.name" :value="item.name" />
</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="detailVo.consumePlatform"
placeholder="请选择消费平台"
size="large"
style="width: 240px"
clearable
>
<el-option
v-for="item in consumePlatform"
:key="item.value"
:label="item.label"
:value="item.value"
/>
<el-select v-model="detailVo.consumePlatform" placeholder="请选择消费平台" size="large" style="width: 240px"
clearable>
<el-option v-for="item in consumePlatform" :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="detailVo.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 v-model="detailVo.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>
@ -300,16 +290,9 @@ getGoods();
<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>
@ -328,18 +311,9 @@ getGoods();
<el-col>
<el-card>
<div>
<el-table
:data="tableData"
:height="tableHeight"
style="width: 100%"
:default-sort="{ prop: 'createTime ', order: 'descending' }"
>
<el-table-column
type="index"
label="序号"
width="100px"
fixed="left"
>
<el-table :data="tableData" :height="tableHeight" style="width: 100%"
:default-sort="{ prop: 'createTime ', order: 'descending' }">
<el-table-column type="index" label="序号" width="100px" fixed="left">
<template #default="scope">
<span>{{
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize
@ -350,21 +324,9 @@ getGoods();
<el-table-column prop="jwcode" label="精网号" width="120px" />
<el-table-column prop="uarea" label="所属地区" width="120px" />
<el-table-column prop="productName" label="商品" width="200px" />
<el-table-column
prop="consumePlatform"
label="消费平台"
width="120px"
/>
<el-table-column
prop="consumeType"
label="消费类型"
width="120px"
/>
<el-table-column
prop="rechargeTotal"
label="消费金币总数"
width="180px"
>
<el-table-column prop="consumePlatform" label="消费平台" width="120px" />
<el-table-column prop="consumeType" label="消费类型" width="120px" />
<el-table-column prop="rechargeTotal" label="消费金币总数" width="180px">
<template #default="scope">
{{
scope.row.taskCoin * -1 +
@ -383,17 +345,11 @@ getGoods();
{{ scope.row.freeCoin * -1 }}
</template>
</el-table-column>
<el-table-column prop="rechargeCoin" label="永久金币" width="120px"
><template #default="scope">
<el-table-column prop="rechargeCoin" label="永久金币" width="120px"><template #default="scope">
{{ scope.row.rechargeCoin * -1 }}
</template>
</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="name" label="提交人" width="120px" />
<el-table-column prop="createTime" label="消费时间" width="180px" />
</el-table>
@ -401,42 +357,17 @@ getGoods();
<!-- 分页 -->
<div class="pagination">
<el-pagination
background
:page-size="getObj.pageSize"
layout="slot"
:total="total"
>
<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, 10, 20, 50, 100]"
:key="item"
:label="item"
:value="item"
></el-option>
<el-select v-model="getObj.pageSize" class="page-size" @change="get()" style="width: 80px">
<el-option v-for="item in [5, 10, 20, 50, 100]" :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"
>
<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>
@ -461,6 +392,7 @@ getGoods();
.head-card-btn {
margin-left: auto;
}
.pagination {
display: flex;
margin-top: 20px;

23
gold-system/src/views/index.vue

@ -25,6 +25,7 @@ const getAdminData = async function () {
adminData.value = result;
console.log("请求成功", result);
console.log("用户信息", adminData.value);
} catch (error) {
console.log("请求失败", error);
}
@ -43,6 +44,7 @@ const message = function () {
function logout() {
localStorage.removeItem("token");
localStorage.clear();
router.push("/login");
ElMessage.success("退出成功");
}
@ -57,7 +59,7 @@ onMounted(async function () {
<template>
<div class="common-layout">
<el-container>
<el-aside style="width: 250px">
<el-aside style="width: 15%; min-width: 180px;">
<div class="logo">
<img
src="../assets/金币管理系统logo.png"
@ -72,18 +74,17 @@ onMounted(async function () {
active-text-color="#ffd04b"
text-color="white"
class="el-menu-vertical-demo"
default-active="2"
@open="handleOpen"
@close="handleClose"
>
<el-menu-item index="/workspace">
<el-menu-item index="/workspace" v-if="adminData.permission==1||adminData.permission==2||adminData.permission==3">
<el-icon>
<Folder />
</el-icon>
工作台
</el-menu-item>
<el-sub-menu index="2">
<el-sub-menu index="2" v-if="adminData.permission==1||adminData.permission==2">
<template #title>
<el-icon>
<Folder />
@ -94,7 +95,7 @@ onMounted(async function () {
<el-menu-item index="/refundAudit">退款审核</el-menu-item>
</el-sub-menu>
<el-sub-menu index="3">
<el-sub-menu index="3" v-if="adminData.permission==1||adminData.permission==2">
<template #title>
<el-icon>
<Folder />
@ -105,7 +106,7 @@ onMounted(async function () {
<el-menu-item index="/rate">汇率管理</el-menu-item>
</el-sub-menu>
<el-sub-menu index="4">
<el-sub-menu index="4" v-if="adminData.permission==1||adminData.permission==3">
<template #title>
<el-icon>
<Folder />
@ -117,7 +118,7 @@ onMounted(async function () {
<el-menu-item index="/allRecharge">所有充值明细</el-menu-item>
</el-sub-menu>
<el-sub-menu index="5">
<el-sub-menu index="5" v-if="adminData.permission==1||adminData.permission==3">
<template #title>
<el-icon>
<Folder />
@ -128,7 +129,7 @@ onMounted(async function () {
<el-menu-item index="/allConsume">所有消费明细</el-menu-item>
</el-sub-menu>
<el-sub-menu index="6">
<el-sub-menu index="6" v-if="adminData.permission==1||adminData.permission==3">
<template #title>
<el-icon>
<Folder />
@ -139,21 +140,21 @@ onMounted(async function () {
<el-menu-item index="/allRefund">退款明细</el-menu-item>
</el-sub-menu>
<el-menu-item index="/usergold">
<el-menu-item index="/usergold" v-if="adminData.permission==1||adminData.permission==2||adminData.permission==3">
<el-icon>
<Folder />
</el-icon>
客户金币明细
</el-menu-item>
<el-menu-item index="/usergoldInfo">
<el-menu-item index="/usergoldInfo" v-if="adminData.permission==1||adminData.permission==2||adminData.permission==3">
<el-icon>
<Folder />
</el-icon>
客户金币余额
</el-menu-item>
<el-menu-item index="/permissions">
<el-menu-item index="/permissions" v-if="adminData.permission==1">
<el-icon>
<Folder />
</el-icon>

38
gold-system/src/views/login.vue

@ -21,7 +21,12 @@ const login = async function () {
);
if (result.data.code == 200) {
localStorage.setItem("token", result.data.msg);
router.push("/workspace");
localStorage.setItem("permission", result.data.data.permission);
if (result.data.data.permission == '1' || result.data.data.permission == '2' || result.data.data.permission == '3') {
router.push("/workspace");
}else if(result.data.data.permission=='4'){
router.push("/noPermission");
}
ElMessage.success("登录成功");
console.log("请求成功", result);
} else {
@ -38,21 +43,10 @@ const login = async function () {
</script>
<template>
<el-row class="login-page">
<img
:span="12"
src="../assets/background.jpg"
alt="logo"
class="bg"
fit="fit"
/>
<img :span="12" src="../assets/background.jpg" alt="logo" class="bg" fit="fit" />
<el-col :span="6" :offset="3" class="form">
<!-- 登录表单 -->
<el-form
:model="form"
size="large"
autocomplete="off"
@keyup.enter.native="login()"
>
<el-form :model="form" size="large" autocomplete="off" @keyup.enter.native="login()">
<el-form-item>
<h1 style="color: #409eff">金币系统登录</h1>
</el-form-item>
@ -60,22 +54,12 @@ const login = async function () {
<el-input v-model="form.jwcode" placeholder="请输入精网号"></el-input>
</el-form-item>
<el-form-item prop="password">
<el-input
v-model="form.password"
type="password"
placeholder="请输入密码"
/>
<el-input v-model="form.password" type="password" placeholder="请输入密码" />
</el-form-item>
<el-form-item class="flex"> </el-form-item>
<!-- 登录按钮 -->
<el-form-item>
<el-button
class="button"
type="primary"
auto-insert-space
@click="login()"
>登录</el-button
>
<el-button class="button" type="primary" auto-insert-space @click="login()">登录</el-button>
</el-form-item>
</el-form>
</el-col>
@ -88,12 +72,14 @@ const login = async function () {
width: 50%;
object-fit: cover;
}
.background {
color: #fffdfd;
text-align: center;
font-size: 24px;
background-color: #08193d;
}
.form {
display: flex;
flex-direction: column;

24
gold-system/src/views/noPermissionPage.vue

@ -0,0 +1,24 @@
<script setup>
import { ref, onMounted, reactive, computed, nextTick } from "vue";
const image = "../src/assets/hqz大拇指.png";
</script>
<template>
<el-row>
<el-col>
<div>
<p style="font-size: 50px; font-weight: bold; text-align: center;">
暂无权限
</p>
<p style="font-size: 60px; font-weight: bold; text-align: center;">
请联系管理员添加权限
</p>
</div>
</el-col>
</el-row>
</template>
<style scoped></style>

128
gold-system/src/views/permissions/index.vue

@ -7,6 +7,7 @@ import moment from "moment";
import { ta } from "element-plus/es/locales.mjs";
import API from "../../api/index.js";
import { UserFilled } from "@element-plus/icons-vue";
import _ from 'lodash';
//
const tableData = ref([]);
@ -32,6 +33,8 @@ const store = ref([]);
const permissionAddObj = ref({});
//
const permissionEditObj = ref({});
//
const delObj = ref({});
//
const get = async function (val) {
@ -47,8 +50,11 @@ const get = async function (val) {
admin: { ...admin.value },
});
tableData.value = result.data.list;
console.log("tableData", tableData.value);
total.value = result.data.total;
} catch (error) { }
} catch (error) {
console.log("请求失败", error)
}
};
//
const search = function () {
@ -130,7 +136,7 @@ const getAdminByJwcodeWithoutPermission = async function () {
if (result.code == 200) {
permissionAddObj.value = result.data[0];
ElMessage.success("精网号查询成功");
}else{
} else {
ElMessage.error(result.msg);
}
console.log("精网号查询没有权限的用户", permissionAddObj.value);
@ -142,14 +148,36 @@ const getAdminByJwcodeWithoutPermission = async function () {
//
const permissionAdd = async function () {
try {
if ((permissionAddObj.value.jwcode == "" || permissionAddObj.value.jwcode == null) || (permissionAddObj.value.name == "" || permissionAddObj.value.name == null)) {
ElMessage.error("请选择要添加权限的用户");
return;
}
if (permissionAddObj.value.permisson == "" || permissionAddObj.value.permission == null) {
ElMessage.error("请选择权限");
return;
}
console.log("新增用户权限提交", permissionAddObj.value);
const result = await API.post("/hwjb/admin/update", permissionAddObj.value);
//
console.log("请求成功", result);
ElMessage.success("添加成功");
get();
closePermissionAddVisible();
} catch (error) {
console.log("新增用户权限失败", error);
//
} finally {
ElMessage.error("新增用户权限失败");
closePermissionAddVisible();
}
}
// 使 _.throttle trailing false
const throttledPermissionAdd = _.throttle(permissionAdd, 5000, { trailing: false });
//
const openPermissionEditVisible = function () {
permissionEditVisible.value = true;
@ -172,14 +200,79 @@ const permissionEditInit = function (row) {
//
const permissionEdit = async function () {
try {
console.log("编辑用户权限提交", permissionEditObj.value);
const result = await API.post("/hwjb/admin/update", permissionEditObj.value);
//
console.log("请求成功", result);
ElMessage.success("编辑用户权限成功");
get();
closePermissionEditVisible();
} catch (error) {
console.log("编辑用户权限失败", error);
//
} finally {
ElMessage.error("编辑用户权限失败");
closePermissionEditVisible();
}
}
const throttledPermissionEdit = _.throttle(permissionEdit, 5000, { trailing: false });
//
const del = function (row) {
delObj.value = {};
console.log(row, "删除初始化");
delObj.value.jwcode = row.jwcode;
}
//
const delConfirm = async function () {
try {
delObj.value.permission = "4";
console.log(delObj.value);
const result = await API.post("/hwjb/admin/update", delObj.value);
//
console.log("请求成功", result);
ElMessage.success("删除权限成功");
delObj.value = {};
get();
} catch (error) {
console.log("删除权限失败", error);
//
ElMessage.error("删除权限失败");
}
}
//
const editStatus =async function (row) {
try {
console.log(row);
permissionEditObj.value = {};
permissionEditObj.value.jwcode = row.jwcode;
permissionEditObj.value.status1 = row.status1;
console.log("修改用户权限状态", permissionEditObj.value);
const result = await API.post("/hwjb/admin/update", permissionEditObj.value);
//
console.log("请求成功", result);
ElMessage.success(permissionEditObj.value.status1==1?"启用成功":"禁用成功");
permissionEditObj.value = {};
get();
} catch (error) {
console.log("修改用户权限失败", error);
//
}
}
//
onMounted(async function () {
@ -228,7 +321,7 @@ onMounted(async function () {
<el-button style="color: #048efb; border: 1px solid #048efb" @click="permissionAddInit()">新增用户权限</el-button>
</div>
<div>
<el-table :data="tableData" :height="tableHeight" style="width: 100%; text-align: center;">
<el-table :data="tableData" style="width: 100%; ">
<el-table-column type="index" label="序号" width="100px" fixed="left">
<template #default="scope">
<span>{{
@ -247,21 +340,23 @@ onMounted(async function () {
总部管理员
</span>
<span v-if="scope.row.permission === '2'">
分部管理员
分部财务
</span>
<span v-if="scope.row.permission === '3'">
分部审核员
分部客服
</span>
</template>
</el-table-column>
<el-table-column fixed="right" prop="operation" label="操作">
<el-table-column prop="remark" label="备注" />
<el-table-column prop="operation" label="操作" width="200px">
<template #default="scope">
<el-button type="warning" text @click="permissionEditInit(scope.row)">
<el-button type="warning" text @click="permissionEditInit(scope.row)"
:disabled="scope.row.status1 === 0">
修改权限
</el-button>
<el-popconfirm title="确定将此条活动删除吗?" @confirm="delConfirm">
<template #reference>
<el-button type="danger" text @click="del(scope.row)">
<el-button type="danger" text @click="del(scope.row)" :disabled="scope.row.status1 === 0">
删除
</el-button>
</template>
@ -274,6 +369,13 @@ onMounted(async function () {
</el-popconfirm>
</template>
</el-table-column>
<el-table-column prop="status1" label="状态">
<template #default="scope">
<el-switch v-model="scope.row.status1" :active-value="1" :inactive-value="0" size="large"
@change="editStatus(scope.row)" style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949"
active-text="启用" inactive-text="禁用" inline-prompt />
</template>
</el-table-column>
</el-table>
</div>
@ -368,7 +470,7 @@ onMounted(async function () {
<template #footer>
<div>
<el-button @click="closePermissionAddVisible()">取消</el-button>
<el-button type="primary" @click="permissionAdd()"> 提交 </el-button>
<el-button type="primary" @click="throttledPermissionAdd()"> 提交 </el-button>
</div>
</template>
@ -437,7 +539,7 @@ onMounted(async function () {
<template #footer>
<div>
<el-button @click="closePermissionEditVisible()">取消</el-button>
<el-button type="primary" @click="permissionEdit()"> 提交 </el-button>
<el-button type="primary" @click="throttledPermissionEdit()"> 提交 </el-button>
</div>
</template>

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

@ -27,7 +27,7 @@ const getAdminData = async function () {
console.log("请求失败", error);
}
};
getAdminData();
//
const addRecharge = ref({
@ -127,22 +127,18 @@ const user = ref({
const getUser = async function (jwcode) {
try {
// POST
const result = await API.post("/hwjb/recharge/user", {
jwcode: jwcode,
});
const result = await API.post("/hwjb/recharge/user",
{ jwcode: jwcode, area: adminData.value.area });
console.log("请求成功", result);
user.value = result.data;
console.log("用户a信息aaaaaaaaaaa", user.value);
user.value.A =
Number(user.value.pendingRechargeTimes) +
Number(user.value.pendingSpendTimes);
console.log("用户信息", user.value);
console.log("用户信息", user.value.firstRechargeDate);
if (result.data.code === 0) {
if (result.code === 0) {
ElMessage.error(result.msg);
} else {
user.value = result.data;
user.value.A =
Number(user.value.pendingRechargeTimes) +
Number(user.value.pendingSpendTimes);
console.log("用户信息", user.value);
ElMessage.success(result.msg);
}
} catch (error) {
@ -171,7 +167,7 @@ const getActivity = async function () {
//
}
};
getActivity();
//
const currency = ref([]);
@ -191,7 +187,7 @@ const getCurrency = async function () {
//
}
};
getCurrency();
//
const handleAvatarSuccess = (response, uploadFile) => {
@ -289,7 +285,8 @@ let jwcodeSet;
const getJwcodeList = async function () {
try {
// POST
const result = await API.post("/hwjb/recharge/user/jwcode", {});
const result = await API.post("/hwjb/recharge/user/jwcode",
{ jwcode: jwcode, area: adminData.value.area });
//
console.log("请求成功", result);
@ -852,6 +849,9 @@ const batchSettingConfirm = function () {
//
onMounted(async function () {
await getAdminData();
await getCurrency();
await getActivity();
await getJwcodeList();
});
</script>
@ -862,36 +862,14 @@ onMounted(async function () {
<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"
@change="handleActivityChange"
>
<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" @change="handleActivityChange">
<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="永久金币">
@ -902,66 +880,24 @@ onMounted(async function () {
<p></p>
</el-form-item>
<el-form-item prop="rechargeGold" label="充值金额">
<el-select
prop="rechargeGold"
v-model="Rate"
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="Rate" 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 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
action="/hwjb/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"
style="width: 100px; height: 115px"
/>
<el-icon
v-else
class="avatar-uploader-icon"
style="width: 100px; height: 100px"
>
<el-form-item prop="rechargeVoucher" label="交款凭证" style="margin-bottom: 5px">
<el-upload action="/hwjb/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" style="width: 100px; height: 115px" />
<el-icon v-else class="avatar-uploader-icon" style="width: 100px; height: 100px">
<Plus />
</el-icon>
</el-upload>
@ -970,41 +906,19 @@ onMounted(async 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: 1200px; float: right"
class="customer-info"
width="3000px"
>
<el-form
:model="user"
label-width="auto"
style="max-width: 1200px"
label-position="left"
>
<el-card style="width: 1200px; float: right" class="customer-info" width="3000px">
<el-form :model="user" label-width="auto" style="max-width: 1200px" label-position="left">
<el-text size="large" style="margin-left: 20px">客户信息</el-text>
<el-row style="margin-top: 20px">
<el-col :span="10">
@ -1027,13 +941,10 @@ onMounted(async function () {
<span style="color: #2fa1ff; margin-right: 5px" v-if="user.buyJb">{{
user.buyJb + user.free6 + user.free12 + user.coreJb
}}</span>
<span
style="display: inline; white-space: nowrap; color: #b1b1b1"
v-if="user.buyJb"
>(永久金币:{{ user.buyJb }};免费金币:{{
<span style="display: inline; white-space: nowrap; color: #b1b1b1" v-if="user.buyJb">(永久金币:{{ user.buyJb
}};免费金币:{{
user.free6 + user.free12
}};任务金币:{{ user.coreJb }})</span
>
}};任务金币:{{ user.coreJb }})</span>
</el-form-item>
</el-col>
<el-col :span="10">
@ -1074,58 +985,26 @@ onMounted(async function () {
</el-form>
</el-card>
<el-dialog
v-model="batchRechargeVisible"
title="批量充值"
width="1800px"
style="height: 700px"
:close-on-click-modal="false"
>
<el-dialog v-model="batchRechargeVisible" title="批量充值" width="1800px" style="height: 700px"
:close-on-click-modal="false">
<el-row style="margin-bottom: 10px">
<!-- <el-button type="primary" @click="addLine()" style="margin-right: 10px">新增一行</el-button> -->
<div style="font-weight: bold; font-size: 20px">
<span>添加</span>
<el-input-number
min="1"
style="width: 100px"
controls-position="right"
v-model="addLineObj"
></el-input-number>
<el-input-number min="1" style="width: 100px" controls-position="right" v-model="addLineObj"></el-input-number>
<span></span>
<el-button
type="primary"
@click="throttledAddLines"
style="margin-right: 10px"
>添加</el-button
>
<el-button type="primary" @click="throttledAddLines" style="margin-right: 10px">添加</el-button>
</div>
<el-button
type="warning"
@click="batchSettingInit()"
style="margin-right: 10px"
>批量设置</el-button
>
<el-button type="warning" @click="batchSettingInit()" style="margin-right: 10px">批量设置</el-button>
<!-- <el-upload :ref="(el) => handleSetUploadRefMap(el)" action="" :http-request="httpExcelRequest" :limit="1" :show-file-list="false"
class="uploadExcelContent" :data={} style="margin-right: auto">
<el-button type="success" >导入jwcode</el-button>
</el-upload> -->
<el-button
type="danger"
plain
@click="batchDel()"
style="margin-right: 10px; width: 130px"
>批量删除</el-button
>
<el-button type="danger" plain @click="batchDel()" style="margin-right: 10px; width: 130px">批量删除</el-button>
</el-row>
<el-row>
<el-table
v-loading="loading"
:data="batchData"
border
max-height="540px"
style="height: 540px"
@selection-change="handleSelectionChangebatch"
>
<el-table v-loading="loading" :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">
@ -1134,13 +1013,8 @@ onMounted(async function () {
</el-table-column>
<el-table-column property="jwcode" label="精网号" width="150px">
<template #default="scope">
<el-input
v-if="scope.row.showInput"
:class="{ 'is-invalid': scope.row.isInputInvalid }"
@blur="validateInput(scope.row)"
v-model="scope.row.jwcode"
style="width: 110px"
/>
<el-input v-if="scope.row.showInput" :class="{ 'is-invalid': scope.row.isInputInvalid }"
@blur="validateInput(scope.row)" v-model="scope.row.jwcode" style="width: 110px" />
<p v-if="scope.row.isInputInvalid" class="error-message">
{{ scope.row.inputErrorMessage }}
</p>
@ -1163,20 +1037,10 @@ onMounted(async function () {
</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="changeActivity(scope.row)"
>
<el-option
v-for="item in activity"
:key="item.activityId"
:label="item.activityName"
:value="item.activityId"
>
<el-select v-if="scope.row.showInput" filterable clearable v-model="scope.row.activityId"
placeholder="请选择活动名称" @change="changeActivity(scope.row)">
<el-option v-for="item in activity" :key="item.activityId" :label="item.activityName"
:value="item.activityId">
</el-option>
</el-select>
<span v-else>{{ scope.row.activityName }}</span>
@ -1184,41 +1048,23 @@ onMounted(async function () {
</el-table-column>
<el-table-column property="paidGold" label="永久金币" width="110px">
<template #default="scope">
<el-input
v-if="scope.row.showInput"
v-model="scope.row.paidGold"
style="width: 70px"
@change="changePaidGold(scope.row)"
/>
<el-input v-if="scope.row.showInput" v-model="scope.row.paidGold" style="width: 70px"
@change="changePaidGold(scope.row)" />
<span v-else>{{ scope.row.paidGold }}</span>
</template>
</el-table-column>
<el-table-column property="freeGold" label="免费金币" width="110px">
<template #default="scope">
<el-input
v-if="scope.row.showInput"
v-model="scope.row.freeGold"
style="width: 70px"
/>
<el-input v-if="scope.row.showInput" v-model="scope.row.freeGold" style="width: 70px" />
<span v-else>{{ scope.row.freeGold }}</span>
</template>
</el-table-column>
<el-table-column property="rate" label="货币名称">
<template #default="scope">
<el-select
v-if="scope.row.showInput"
filterable
clearable
v-model="scope.row.rate"
placeholder="请选择币种"
@change="changeRate(scope.row)"
>
<el-option
v-for="item in currency"
:key="item.exchangeRate"
:label="item.currency"
:value="item.exchangeRate"
>
<el-select v-if="scope.row.showInput" filterable clearable v-model="scope.row.rate" placeholder="请选择币种"
@change="changeRate(scope.row)">
<el-option v-for="item in currency" :key="item.exchangeRate" :label="item.currency"
:value="item.exchangeRate">
</el-option>
</el-select>
<span v-else>{{ scope.row.rate }}</span>
@ -1231,19 +1077,8 @@ onMounted(async 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>
@ -1251,13 +1086,8 @@ onMounted(async 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")
@ -1266,19 +1096,9 @@ onMounted(async function () {
</el-table-column>
<el-table-column property="rechargeVoucher" label="充值凭证">
<template #default="scope">
<el-upload
action="/hwjb/upload"
class="avatar-uploader"
:show-file-list="false"
:on-success="handleBatchAvatarSuccess"
v-if="scope.row.showInput"
@change="changeVoucher(scope.row)"
>
<img
v-if="scope.row.imageUrl"
:src="scope.row.imageUrl"
class="avatar"
/>
<el-upload action="/hwjb/upload" class="avatar-uploader" :show-file-list="false"
:on-success="handleBatchAvatarSuccess" v-if="scope.row.showInput" @change="changeVoucher(scope.row)">
<img v-if="scope.row.imageUrl" :src="scope.row.imageUrl" class="avatar" />
<el-icon v-else class="avatar-uploader-icon">
<Plus />
</el-icon>
@ -1288,32 +1108,18 @@ onMounted(async function () {
</el-table-column>
<el-table-column property="remark" label="备注" width="130px">
<template #default="scope">
<el-input
type="textarea"
v-if="scope.row.showInput"
v-model="scope.row.remark"
style="max-width: 90px"
:rows="1"
cols="12"
></el-input>
<el-input type="textarea" v-if="scope.row.showInput" v-model="scope.row.remark" style="max-width: 90px"
:rows="1" cols="12"></el-input>
<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"
>
<el-popconfirm title="确定将此条信息删除吗?" @confirm="delConfirm">
<template #reference>
<el-button type="danger" text @click="del(scope.row)">
删除
@ -1326,10 +1132,7 @@ onMounted(async 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)">
重置
@ -1357,114 +1160,55 @@ onMounted(async function () {
</el-row>
</el-dialog>
<el-dialog
v-model="batchSettingVisible"
title="批量设置"
:close-on-click-modal="false"
style="width: 550px"
>
<el-dialog v-model="batchSettingVisible" title="批量设置" :close-on-click-modal="false" style="width: 550px">
<el-form label-position="left" label-width="auto">
<el-form-item label="活动名称">
<el-select
v-model="batchSettingObj.activityId"
placeholder="请选择活动名称"
clearable
>
<el-option
v-for="item in activity"
:key="item.activityId"
:label="item.activityName"
:value="item.activityId"
>
<el-select v-model="batchSettingObj.activityId" placeholder="请选择活动名称" clearable>
<el-option v-for="item in activity" :key="item.activityId" :label="item.activityName"
:value="item.activityId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="永久金币">
<el-input
v-model="batchSettingObj.paidGold"
placeholder="请输入永久金币"
></el-input>
<el-input v-model="batchSettingObj.paidGold" placeholder="请输入永久金币"></el-input>
</el-form-item>
<el-form-item label="免费金币">
<el-input v-model="batchSettingObj.freeGold"></el-input>
</el-form-item>
<el-form-item label="充值金额">
<div style="display: flex">
<el-select
v-model="batchSettingObj.rate"
placeholder="请选择币种"
style="width: 120px; margin-right: 10px"
clearable
>
<el-option
v-for="item in currency"
:key="item.exchangeRate"
:label="item.currency"
:value="item.exchangeRate"
></el-option>
<el-select v-model="batchSettingObj.rate" placeholder="请选择币种" style="width: 120px; margin-right: 10px"
clearable>
<el-option v-for="item in currency" :key="item.exchangeRate" :label="item.currency"
:value="item.exchangeRate"></el-option>
</el-select>
<el-input
v-model="batchSettingObj.rechargeGold"
placeholder="请输入充值金额"
></el-input>
<el-input v-model="batchSettingObj.rechargeGold" placeholder="请输入充值金额"></el-input>
</div>
</el-form-item>
<el-form-item prop="payWay" label="收款方式">
<el-select
v-model="batchSettingObj.payWay"
placeholder="请选择收款方式"
clearable
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
<el-select v-model="batchSettingObj.payWay" placeholder="请选择收款方式" clearable>
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="rechargeTime" label="交款时间">
<el-date-picker
v-model="batchSettingObj.rechargeTime"
type="date"
placeholder="请选择交款时间"
></el-date-picker>
<el-date-picker v-model="batchSettingObj.rechargeTime" type="date" placeholder="请选择交款时间"></el-date-picker>
</el-form-item>
<el-form-item prop="rechargeVoucher" label="交款凭证">
<el-upload
action="/hwjb/upload"
class="avatar-uploader"
:show-file-list="false"
:on-success="batchSettingHandleAvatarSuccess"
:before-upload="beforeAvatarUpload"
style="width: 100px; height: 115px"
>
<img
v-if="batchSettingObj.imageUrl"
:src="batchSettingObj.imageUrl"
class="avatar"
style="width: 100px; height: 115px"
/>
<el-icon
v-else
class="avatar-uploader-icon"
style="width: 100px; height: 100px"
>
<el-upload action="/hwjb/upload" class="avatar-uploader" :show-file-list="false"
:on-success="batchSettingHandleAvatarSuccess" :before-upload="beforeAvatarUpload"
style="width: 100px; height: 115px">
<img v-if="batchSettingObj.imageUrl" :src="batchSettingObj.imageUrl" class="avatar"
style="width: 100px; height: 115px" />
<el-icon v-else class="avatar-uploader-icon" style="width: 100px; height: 100px">
<Plus />
</el-icon>
</el-upload>
</el-form-item>
<el-form-item prop="remark" label="备注">
<el-input
type="textarea"
v-model="batchSettingObj.remark"
placeholder="请输入备注"
/>
<el-input type="textarea" v-model="batchSettingObj.remark" placeholder="请输入备注" />
</el-form-item>
</el-form>
<el-button @click="cancelBatchSetting()" style="margin-left: 370px"
>取消</el-button
>
<el-button @click="cancelBatchSetting()" style="margin-left: 370px">取消</el-button>
<el-button type="primary" @click="batchSettingConfirm()"> 确认 </el-button>
</el-dialog>
</template>

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

@ -88,6 +88,10 @@ const delObj = ref({});
//
const get = async function (val) {
try {
//
if(adminData.value.area!="总部"){
rechargeVo.value.area=adminData.value.area;
}
//
if (typeof val === "number") {
getObj.value.pageNum = val;
@ -322,7 +326,7 @@ const checkNumber = function () {
onMounted(async function () {
await getAdminData();
await get();
getActivity();
await getActivity();
await getArea();
});
</script>
@ -371,7 +375,7 @@ onMounted(async function () {
</div>
</el-col>
<el-col :span="8">
<div class="head-card-element">
<div class="head-card-element" v-if="adminData.area=='总部'">
<el-text class="mx-1" size="large">所属地区</el-text>
<el-select
v-model="rechargeVo.area"

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

@ -7,6 +7,21 @@ import axios from "axios";
import moment from "moment";
import API from "../../api/index.js";
//
//
const adminData = ref({});
const getAdminData = async function () {
try {
const result = await API.post(
"/hwjb/admin/userinfo",
{}
);
adminData.value = result;
console.log("请求成功", result);
console.log("用户信息", adminData.value);
} catch (error) {
console.log("请求失败", error);
}
};
//
const tableData = ref([]);
// ======================================
@ -69,6 +84,10 @@ const payWay = [
//
const get = async function (val) {
try {
//
if (adminData.value.area != "总部") {
rechargeVo.value.area = adminData.value.area;
}
//
if (typeof val === "number") {
getObj.value.pageNum = val;
@ -279,8 +298,9 @@ const checkNumber = function () {
//
onMounted(async function () {
await getAdminData();
await get();
getActivity();
await getActivity();
await getArea();
});
</script>
@ -293,57 +313,26 @@ onMounted(async function () {
<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">
<div class="head-card-element" v-if="adminData.area == '总部'">
<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>
@ -352,16 +341,9 @@ 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>
@ -379,12 +361,7 @@ 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>
@ -392,12 +369,7 @@ onMounted(async function () {
</el-tabs>
<div>
<el-table :data="tableData" :height="tableHeight" style="width: 100%">
<el-table-column
type="index"
label="序号"
width="100px"
fixed="left"
>
<el-table-column type="index" label="序号" width="100px" fixed="left">
<template #default="scope">
<span>{{
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize
@ -407,44 +379,17 @@ onMounted(async function () {
<el-table-column prop="username" label="姓名" width="100px" />
<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="paidGold"
label="充值金额"
width="120px"
sortable
/>
<el-table-column
prop="rechargeWay"
label="充值方式"
width="100px"
/>
<el-table-column prop="activityName" label="活动名称" width="150px" />
<el-table-column prop="paidGold" label="充值金额" width="120px" sortable />
<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="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" />
@ -470,12 +415,7 @@ 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">
{{
@ -489,42 +429,17 @@ onMounted(async function () {
<!-- 分页 -->
<div class="pagination" style="margin-top: 20px">
<el-pagination
background
:page-size="getObj.pageSize"
layout="slot"
:total="total"
>
<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, 10, 20, 50, 100]"
:key="item"
:label="item"
:value="item"
></el-option>
<el-select v-model="getObj.pageSize" class="page-size" @change="get()" style="width: 80px">
<el-option v-for="item in [5, 10, 20, 50, 100]" :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"
>
<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>

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

@ -1,5 +1,5 @@
<script setup>
import { reactive } from "vue";
import { onMounted, reactive } from "vue";
import { ref, computed, watch } from "vue";
import { ElMessage } from "element-plus";
import { Plus } from "@element-plus/icons-vue";
@ -25,7 +25,6 @@ const getAdminData = async function () {
console.log("请求失败", error);
}
};
getAdminData();
// 退
const addRefund = ref({
@ -105,7 +104,7 @@ const addBefore = () => {
//
//
const Ref = ref(null);
const startChange = (val) => {};
const startChange = (val) => { };
const rules = reactive({
jwcode: [{ required: true, message: "请输入精网号", trigger: "blur" }],
@ -137,22 +136,19 @@ const user = ref({
const getUser = async function (jwcode) {
try {
// POST
const result = await API.post("/hwjb/recharge/user", {
jwcode: jwcode,
});
const result = await API.post("/hwjb/recharge/user",
{ jwcode: jwcode, area: adminData.value.area });
console.log("请求成功", result);
user.value = result.data;
console.log("用户a信息aaaaaaaaaaa", user.value);
user.value.A =
Number(user.value.pendingRechargeTimes) +
Number(user.value.pendingSpendTimes);
console.log("用户信息", user.value);
console.log("用户信息", user.value.firstRechargeDate);
if (result.data.code === 0) {
if (result.code === 0) {
ElMessage.error(result.msg);
} else {
user.value = result.data;
user.value.A =
Number(user.value.pendingRechargeTimes) +
Number(user.value.pendingSpendTimes);
console.log("用户信息", user.value);
ElMessage.success(result.msg);
}
} catch (error) {
@ -177,7 +173,7 @@ const AAA = computed(() => {
return addRefund.value.jwcode;
});
watch(AAA, (newVal) => {});
watch(AAA, (newVal) => { });
// 退
const refundType = [
@ -197,25 +193,22 @@ const getGoods = async function (jwcode) {
try {
// POST
const result = await API.post(
"hwjb/consume/getDeatil/" + addRefund.value.jwcode,
{}
);
"/hwjb/consume/getDeatil",
{ jwcode: jwcode, area: adminData.value.area });
console.log("请求成功", result);
if (result.code === 0) {
addRefund.value.jwcode = "";
ElMessage.error(result.msg);
return;
console.log("查询失败,请检查精网号是否正确");
} else {
//
goods.value = result.data;
console.log("用户信息", goods.value);
ElMessage.success(result.msg);
}
//
console.log("请求成功", result);
//
goods.value = result.data;
console.log("用户信息", goods.value);
} catch (error) {
console.log("请求失败", error);
ElMessage.error("查询失败,请检查精网号是否正确");
//
addRefund.value.jwcode = "";
}
};
const calculatedRechargeGoods = computed(() => {
@ -270,44 +263,23 @@ const handleSelectionChange = (value) => {
console.log("选择的订单号", value);
const selectedItem = goods.value.find((item) => item.detailId === value);
};
//
onMounted(async function () {
await getAdminData();
});
</script>
<template>
<div style="font-weight: bold">新增退款</div>
<el-form
:model="addRefund"
ref="Ref"
:rules="rules"
label-width="auto"
style="max-width: 750px"
class="form-style"
>
<el-form :model="addRefund" ref="Ref" :rules="rules" label-width="auto" style="max-width: 750px" class="form-style">
<el-form-item prop="jwcode" label="精网号">
<el-input
v-model="addRefund.jwcode"
style="width: 220px"
@change="getGoods(addRefund.jwcode)"
/>
<el-button
type="primary"
@click="getUser(addRefund.jwcode)"
style="margin-left: 20px"
>查询</el-button
>
<el-input v-model="addRefund.jwcode" style="width: 220px" @change="getGoods(addRefund.jwcode)" />
<el-button type="primary" @click="getUser(addRefund.jwcode)" style="margin-left: 20px">查询</el-button>
</el-form-item>
<el-form-item prop="refundType" label="退款类型">
<el-select
v-model="addRefund.refundType"
placeholder="请选择"
style="width: 300px"
>
<el-option
v-for="item in refundType"
:key="item.value"
:label="item.label"
:value="item.value"
/>
<el-select v-model="addRefund.refundType" placeholder="请选择" style="width: 300px">
<el-option v-for="item in refundType" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item prop="orderCode" label="商品名">
@ -335,31 +307,18 @@ const handleSelectionChange = (value) => {
<div style="display: flex; align-items: center">
<el-form-item prop="rechargeCoin" label="永久金币" style="float: left">
<el-input
v-model="addRefund.rechargeCoin"
style="width: 100px"
:disabled="addRe.typeR === '0' ? true : false"
/>
<el-input v-model="addRefund.rechargeCoin" style="width: 100px"
:disabled="addRe.typeR === '0' ? true : false" />
<p></p>
</el-form-item>
<el-form-item
prop="freeCoin"
label="免费金币"
style="margin-left: -20px; float: left"
>
<el-input
v-model="addRefund.freeCoin"
style="float: left; width: 100px"
:disabled="addRe.typeR === '0' ? true : false"
/>
<el-form-item prop="freeCoin" label="免费金币" style="margin-left: -20px; float: left">
<el-input v-model="addRefund.freeCoin" style="float: left; width: 100px"
:disabled="addRe.typeR === '0' ? true : false" />
<p></p>
</el-form-item>
<el-form-item prop="taskCoin" label="任务金币" style="margin-left: -20px">
<el-input
v-model="addRefund.taskCoin"
style="float: left; width: 100px"
:disabled="addRe.typeR === '0' ? true : false"
/>
<el-input v-model="addRefund.taskCoin" style="float: left; width: 100px"
:disabled="addRe.typeR === '0' ? true : false" />
<p></p>
</el-form-item>
</div>
@ -368,22 +327,11 @@ const handleSelectionChange = (value) => {
</el-input>
</el-form-item>
<el-form-item prop="remark" label="备注">
<el-input
v-model="addRefund.remark"
style="width: 300px"
:rows="2"
maxlength="100"
show-word-limit
type="textarea"
/>
<el-input v-model="addRefund.remark" style="width: 300px" :rows="2" maxlength="100" show-word-limit
type="textarea" />
</el-form-item>
<el-form-item prop="commitName" 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="cancel()" style="margin-left: 280px">重置</el-button>
<el-button type="primary" @click="addBefore"> 提交 </el-button>
@ -391,12 +339,7 @@ const handleSelectionChange = (value) => {
<!-- 客户信息栏 -->
<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-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="10">
@ -419,13 +362,10 @@ const handleSelectionChange = (value) => {
<span style="color: #2fa1ff; margin-right: 5px" v-if="user.buyJb">{{
user.buyJb + user.free6 + user.free12 + user.coreJb
}}</span>
<span
style="display: inline; white-space: nowrap; color: #b1b1b1"
v-if="user.buyJb"
>(永久金币:{{ user.buyJb }};免费金币:{{
<span style="display: inline; white-space: nowrap; color: #b1b1b1" v-if="user.buyJb">(永久金币:{{ user.buyJb
}};免费金币:{{
user.free6 + user.free12
}};任务金币:{{ user.coreJb }})</span
>
}};任务金币:{{ user.coreJb }})</span>
</el-form-item>
</el-col>
<el-col :span="10">
@ -471,6 +411,7 @@ const handleSelectionChange = (value) => {
p {
margin: 0px;
}
.el-form-item {
margin-left: 50px;
}
@ -504,14 +445,17 @@ p {
height: 50px;
text-align: center;
}
.form-style {
margin-top: 50px;
max-width: 50%;
float: left;
}
.form-style2 {
max-width: 60%;
}
p {
font-size: 13px;
transform: scale(1);

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

@ -7,6 +7,21 @@ import axios from "axios";
import moment from "moment";
import API from "../../api/index.js";
//
//
const adminData = ref({});
const getAdminData = async function () {
try {
const result = await API.post(
"/hwjb/admin/userinfo",
{}
);
adminData.value = result;
console.log("请求成功", result);
console.log("用户信息", adminData.value);
} catch (error) {
console.log("请求失败", error);
}
};
//
const tableData = ref([]);
// ======================================
@ -51,6 +66,10 @@ const consumeType = [
//
const get = async function (val) {
try {
//
if (adminData.value.area != "总部") {
rechargeVo.value.area = adminData.value.area;
}
//
if (typeof val === "number") {
getObj.value.pageNum = val;
@ -207,11 +226,7 @@ const getArea = async function () {
//
}
};
//
onMounted(async function () {
await get();
await getArea();
});
//
const delObj = ref({});
const del = function (row) {
@ -284,6 +299,12 @@ const checkNumber = function () {
});
}
};
//
onMounted(async function () {
await getAdminData();
await get();
await getArea();
});
</script>
<template>
@ -330,7 +351,7 @@ const checkNumber = function () {
</div>
</el-col>
<el-col :span="8">
<div class="head-card-element">
<div class="head-card-element" v-if="adminData.area == '总部'">
<el-text class="mx-1" size="large">所属地区</el-text>
<el-select
v-model="detail.area"

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

@ -7,7 +7,22 @@ import moment from "moment";
import { ta } from "element-plus/es/locales.mjs";
import API from "../../api/index.js";
import * as XLSX from "xlsx";
//
//
const adminData = ref({});
const getAdminData = async function () {
try {
const result = await API.post(
"/hwjb/admin/userinfo",
{}
);
adminData.value = result;
console.log("请求成功", result);
console.log("用户信息", adminData.value);
} catch (error) {
console.log("请求失败", error);
}
};
//
const tableData = ref([]);
//
@ -63,6 +78,10 @@ const updateType = [
//
const get = async function (val) {
try {
//
if (adminData.value.area != "总部") {
detailY.value.area = adminData.value.area;
}
//
if (typeof val === "number") {
getObj.value.pageNum = val;
@ -215,6 +234,7 @@ const checkNumber = function () {
//
onMounted(async function () {
await getAdminData();
await get();
});

88
gold-system/src/views/usergoldInfo/index.vue

@ -7,6 +7,22 @@ import moment from "moment";
import { ta } from "element-plus/es/locales.mjs";
import API from "../../api/index.js";
//
//
const adminData = ref({});
const getAdminData = async function () {
try {
const result = await API.post(
"/hwjb/admin/userinfo",
{}
);
adminData.value = result;
console.log("请求成功", result);
console.log("用户信息", adminData.value);
} catch (error) {
console.log("请求失败", error);
}
};
//
const tableData = ref([]);
//
@ -56,6 +72,10 @@ const updateType = [
//
const get = async function (val) {
try {
//
if (adminData.value.area != "总部") {
detailY.value.area = adminData.value.area;
}
//
if (typeof val === "number") {
getObj.value.pageNum = val;
@ -165,6 +185,7 @@ const area = [
//
onMounted(async function () {
await getAdminData();
await get();
});
</script>
@ -176,27 +197,12 @@ onMounted(async function () {
<div class="head-card">
<div class="head-card-element">
<el-text class="mx-1" size="large">精网号</el-text>
<el-input
v-model="detailY.jwcode"
style="width: 240px"
placeholder="请输入精网号"
clearable
/>
<el-input v-model="detailY.jwcode" style="width: 240px" placeholder="请输入精网号" clearable />
</div>
<div class="head-card-element" style="margin-left: 50px">
<div class="head-card-element" style="margin-left: 50px" v-if="adminData.area == '总部'">
<el-text class="mx-1" size="large">所属地区</el-text>
<el-select
v-model="detailY.area"
placeholder="请选择所属地区"
style="width: 240px"
clearable
>
<el-option
v-for="item in area"
:key="item.value"
:label="item.label"
:value="item.value"
/>
<el-select v-model="detailY.area" placeholder="请选择所属地区" style="width: 240px" clearable>
<el-option v-for="item in area" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</div>
@ -213,12 +219,7 @@ onMounted(async function () {
<el-card>
<div>
<el-table :data="tableData" :height="tableHeight" style="width: 100%">
<el-table-column
type="index"
label="序号"
width="100px"
fixed="left"
>
<el-table-column type="index" label="序号" width="100px" fixed="left">
<template #default="scope">
<span>{{
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize
@ -265,42 +266,17 @@ onMounted(async function () {
<!-- 分页 -->
<!-- 分页 -->
<div class="pagination" style="margin-top: 20px">
<el-pagination
background
:page-size="getObj.pageSize"
layout="slot"
:total="total"
>
<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, 10, 20, 50, 100]"
:key="item"
:label="item"
:value="item"
></el-option>
<el-select v-model="getObj.pageSize" class="page-size" @change="get()" style="width: 80px">
<el-option v-for="item in [5, 10, 20, 50, 100]" :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"
>
<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>

62
gold-system/src/views/workspace/index.vue

@ -89,28 +89,54 @@ const get = async function () {
getAreaRank();
getMiddleBar();
// POST
<<<<<<< HEAD
const result1 = await API.post("/hwjb/statistics/getSumCoin", {});
const result2 = await API.post("/hwjb/statistics/a", {});
const result3 = await API.post("/hwjb/statistics/getYearConsumeCoin", {});
const result4 = await API.post("/hwjb/statistics/getDayConsumeCoin", {});
=======
const result1 = await API.post(
"http://192.168.8.93:10010/statistics/getSumCoin",
{}
);
const result2 = await API.post(
"http://192.168.8.93:10010/statistics/a",
{}
);
const result3 = await API.post(
"http://192.168.8.93:10010/statistics/getYearConsumeCoin",
{}
);
const result4 = await API.post(
"http://192.168.8.93:10010/statistics/getDayConsumeCoin",
{}
);
>>>>>>> Hongxilin
// const result5 = await API.post(
// "/hwjb/statistics/getMediumAreaPay",
// "http://192.168.8.93:10010/statistics/getMediumAreaPay",
// {}
// );
// const result6 = await API.post(
// "/hwjb/statistics/getMediumAreaConsume",
// "http://192.168.8.93:10010/statistics/getMediumAreaConsume",
// {}
// );
// const result7 = await API.post(
// "/hwjb/statistics/getMediuPayCoin",
// "http://192.168.8.93:10010/statistics/getMediuPayCoin",
// {}
// );
// const result8 = await API.post(
// "/hwjb/statistics/getMediuConsumeCoin",
// "http://192.168.8.93:10010/statistics/getMediuConsumeCoin",
// {}
// );
<<<<<<< HEAD
const result9 = await API.post("/hwjb/statistics/b", {});
=======
const result9 = await API.post(
"http://192.168.8.93:10010/statistics/b",
{}
);
>>>>>>> Hongxilin
//
getSumCoin.value = result1.data;
@ -353,7 +379,11 @@ const get = async function () {
//
const getMiddleBar = async function () {
const result = await API.post(
<<<<<<< HEAD
"hwjb/statistics/getCoinTime",
=======
"http://192.168.8.93:10010/statistics/getCoinTime",
>>>>>>> Hongxilin
getMiddleBarObj.value
);
@ -555,7 +585,7 @@ const getMiddleBar = async function () {
//
const getAreaRank = async function () {
const result = await API.post(
"/hwjb/statistics/getMee",
"http://192.168.8.93:10010/statistics/getMee",
getAreaRankObj.value
);
@ -1351,24 +1381,12 @@ onMounted(async function () {
<span>任务金币</span>
</div>
</div>
<div style="width: 310px">
<div style="width: 30%">
<div class="ranking-header">
<span style="margin-right: 90px; width: 150px"
>地区金币充值排名</span
>
<el-select
v-model="goldType"
placeholder="请选择金币类型"
size="small"
style="width: 90px"
@change="changeGoldType"
>
<el-option
v-for="item in gold"
:key="item.value"
:label="item.label"
:value="item.value"
/>
<span style="width: 150px">地区金币充值排名</span>
<el-select v-model="goldType" placeholder="请选择金币类型" size="small" style="margin-left: auto;width: 25%"
@change="changeGoldType">
<el-option v-for="item in gold" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</div>
<div v-loading="areaRankLoading">

Loading…
Cancel
Save