Browse Source

传adminName和小bug和历史数据

youhua/chongzhi
lihuilin 2 months ago
parent
commit
ba90fcab15
  1. 4
      .env.development
  2. 6
      src/router/index.js
  3. 5
      src/utils/menuTreePermission.js
  4. 3
      src/utils/menuUtils.js
  5. 1
      src/views/audit/gold/rechargeAudit.vue
  6. 7
      src/views/audit/gold/refundAudit.vue
  7. 38
      src/views/consume/gold/addCoinConsume.vue
  8. 144
      src/views/history/history.vue

4
.env.development

@ -1,4 +1,4 @@
VITE_API_BASE='https://hwjb.homilychart.com/dev/admin'
# VITE_API_BASE='https://hwjb.homilychart.com/dev/admin'
# 测试环境 # 测试环境
# VITE_API_BASE='http://54.255.212.181:10704/' # VITE_API_BASE='http://54.255.212.181:10704/'
# 正式环境 # 正式环境
@ -11,6 +11,6 @@ VITE_UPLOAD_URL=http://39.101.133.168:8828/hljw/api/aws/upload
# zhangyong # zhangyong
# VITE_API_BASE='http://192.168.3.83:8081/' # VITE_API_BASE='http://192.168.3.83:8081/'
# 本地 # 本地
# VITE_API_BASE='http://localhost:8081/'
VITE_API_BASE='http://localhost:8081/'
# sunjiabei # sunjiabei
# VITE_API_BASE='http://192.168.0.113:8081/' # VITE_API_BASE='http://192.168.0.113:8081/'

6
src/router/index.js

@ -240,6 +240,12 @@ const routes = [
component: () => import("../views/usergold/userbean.vue"), component: () => import("../views/usergold/userbean.vue"),
meta:{ permissionId: 45 } meta:{ permissionId: 45 }
}, },
{
path: '/history',
name: "history",
component: () => import("../views/history/history.vue"),
meta:{ permissionId: [56,57] }
},
// 权限管理 // 权限管理
{ {

5
src/utils/menuTreePermission.js

@ -10,6 +10,8 @@ export const permissionMapping = {
Consumption_Management: 6, // 消耗管理 Consumption_Management: 6, // 消耗管理
Refund_Management: 7, // 退款管理 Refund_Management: 7, // 退款管理
Customer_Account_Details: 8, // 客户账户明细 Customer_Account_Details: 8, // 客户账户明细
History: 56, // 历史数据查询
Permission_Management: 9, // 权限管理 Permission_Management: 9, // 权限管理
@ -61,6 +63,9 @@ export const permissionMapping = {
Recharge_Audit: 31, // 充值审核(金币) // audit页面 Recharge_Audit: 31, // 充值审核(金币) // audit页面
Refund_Audit: 32, // 退款审核(金币) // audit页面, Refund_Audit: 32, // 退款审核(金币) // audit页面,
History_Query: 57, // 历史数据查询
// 新增的金豆相关权限 // 新增的金豆相关权限
Submit_Golden_Bean_Recharge: 46, // 提交金豆充值 Submit_Golden_Bean_Recharge: 46, // 提交金豆充值
View_Golden_Bean_System_Recharge_Details: 47, // 查看金豆系统充值明细 View_Golden_Bean_System_Recharge_Details: 47, // 查看金豆系统充值明细

3
src/utils/menuUtils.js

@ -61,6 +61,9 @@ export const getRoutePath = (menu) => {
'金币退款': '/coinRefund', '金币退款': '/coinRefund',
// '金豆退款': '/beanRefund', // '金豆退款': '/beanRefund',
'历史数据查询': '/history',
'权限管理': '/permissions', '权限管理': '/permissions',

1
src/views/audit/gold/rechargeAudit.vue

@ -64,7 +64,6 @@
<el-table-column prop="market" label="所属地区" width="100px"/> <el-table-column prop="market" label="所属地区" width="100px"/>
<el-table-column prop="activity" label="活动名称" width="100px" show-overflow-tooltip/> <el-table-column prop="activity" label="活动名称" width="100px" show-overflow-tooltip/>
<el-table-column prop="rateName" label="货币名称" width="110px"/> <el-table-column prop="rateName" label="货币名称" width="110px"/>
<el-table-column prop="money" sortable="custom" label="充值金额" width="110px"/>
<el-table-column prop="money" label="充值金额" sortable="custom" width="110px"> <el-table-column prop="money" label="充值金额" sortable="custom" width="110px">
<template #default="scope">{{ scope.row.permanentGold / 100 }}</template> <template #default="scope">{{ scope.row.permanentGold / 100 }}</template>
</el-table-column> </el-table-column>

7
src/views/audit/gold/refundAudit.vue

@ -46,8 +46,8 @@
<div> <div>
总条数{{ format3(stats.totalNum) }}&nbsp;&nbsp;&nbsp;&nbsp; 总条数{{ format3(stats.totalNum) }}&nbsp;&nbsp;&nbsp;&nbsp;
退款总金币数{{ format3(stats.permanentGolds + stats.freeGolds + stats.taskGolds) }}金币&nbsp;&nbsp;&nbsp;&nbsp;
永久金币{{ format3(stats.permanentGolds) }}金币&nbsp;&nbsp;&nbsp;&nbsp;
退款总金币数{{ format3((stats.permanentGolds + stats.freeGolds + stats.taskGolds).toFixed(2)) }}金币&nbsp;&nbsp;&nbsp;&nbsp;
永久金币{{ format3(stats.permanentGolds.toFixed(2)) }}金币&nbsp;&nbsp;&nbsp;&nbsp;
免费金币{{ format3(stats.freeGolds.toFixed(2)) }}金币&nbsp;&nbsp;&nbsp;&nbsp; 免费金币{{ format3(stats.freeGolds.toFixed(2)) }}金币&nbsp;&nbsp;&nbsp;&nbsp;
任务金币{{ format3(stats.taskGolds.toFixed(2)) }}金币 任务金币{{ format3(stats.taskGolds.toFixed(2)) }}金币
</div> </div>
@ -101,7 +101,7 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column v-if="checkTab !== 'pending'" prop="auditTime" label="审核时间" width="180" sortable="custom">
<el-table-column v-if="checkTab !== 'pending'" prop="auditTime" label="审核时间" width="180">
<template #default="{ row }"> <template #default="{ row }">
{{ row.auditTime ? moment(row.auditTime).format('YYYY-MM-DD HH:mm:ss') : '--' }} {{ row.auditTime ? moment(row.auditTime).format('YYYY-MM-DD HH:mm:ss') : '--' }}
</template> </template>
@ -298,7 +298,6 @@ const get = async function (val) {
// //
const handleApprove = async (row) => { const handleApprove = async (row) => {
if (findMenuById(menuTree.value, permissionMapping.Refund_Approval)) { if (findMenuById(menuTree.value, permissionMapping.Refund_Approval)) {
try { try {
const params = { const params = {
orderCode: row.orderCode, orderCode: row.orderCode,

38
src/views/consume/gold/addCoinConsume.vue

@ -3,6 +3,10 @@ import { onMounted, reactive, ref, watch } from "vue";
import { ElMessage, ElMessageBox } from "element-plus"; import { ElMessage, ElMessageBox } from "element-plus";
import moment from "moment"; import moment from "moment";
import request from "@/util/http.js" import request from "@/util/http.js"
import { useAdminStore } from "@/store/index.js";
import { storeToRefs } from "pinia";
const adminStore = useAdminStore();
const { adminData, menuTree } = storeToRefs(adminStore);
// //
const trimJwCode = () => { const trimJwCode = () => {
if (addConsume.value.jwcode) { if (addConsume.value.jwcode) {
@ -19,11 +23,6 @@ const trimJwCode = () => {
} }
} }
/*
====================数据=================================
*/
//
const adminData = ref({});
// //
const user = ref({ const user = ref({
jwcode: null, jwcode: null,
@ -85,26 +84,6 @@ const rules = reactive({
// //
const goods = ref([]); const goods = ref([]);
/*
====================方法=================================
*/
const getAdminData = async function () {
try {//await
const result = await request({
url: "/admin/userinfo",
data: {},
});
adminData.value = result;
addConsume.value.adminId = adminData.value.id;
addConsume.value.name = adminData.value.adminName;
console.log("请求成功", result);
console.log("用户信息", adminData.value);
} catch (error) {
console.log("请求失败", error);
}
};
// //
@ -239,7 +218,6 @@ const add = async function () {
console.log("addConsume.value", addConsume.value) console.log("addConsume.value", addConsume.value)
// POST // POST
const result = await request({ const result = await request({
// url: "/consume/add",
url: "/consume/add", url: "/consume/add",
data: { data: {
...addConsume.value, ...addConsume.value,
@ -250,7 +228,8 @@ const add = async function () {
taskGold: addConsume.value.taskGold * 100, taskGold: addConsume.value.taskGold * 100,
permanentGold: addConsume.value.permanentGold * 100, permanentGold: addConsume.value.permanentGold * 100,
goodsName: addConsume.value.goodsName, goodsName: addConsume.value.goodsName,
remark: addConsume.value.remark
remark: addConsume.value.remark,
adminName: adminData.value.adminName
} }
}); });
@ -456,8 +435,9 @@ watch(
*/ */
// //
onMounted(async function () { onMounted(async function () {
await getAdminData();
await getGoods();
await getGoods()
console.log("adminData", adminData.value);
}); });
</script> </script>

144
src/views/history/history.vue

@ -0,0 +1,144 @@
<template>
<el-card>
<el-text size="large>">姓名</el-text>
<el-input v-model="searchObj.name" placeholder="请输入姓名" style="width: 12vw;margin-right:1vw"
clearable></el-input>
<el-text size="large>">精网号</el-text>
<el-input v-model="searchObj.jwcode" placeholder="请输入精网号" style="width: 12vw;margin-right:1vw"
clearable></el-input>
<el-text size="large" style="width: 80px">充值时间</el-text>
<el-date-picker v-model="dateRange" type="datetimerange" range-separator="" start-placeholder="开始时间"
end-placeholder="结束时间" style="width: 25vw;margin-right:1vw" @change="handleDatePickerChange" />
<el-button @click="getToday()" :type="activeTimeRange === 'today' ? 'primary' : ''"></el-button>
<el-button @click="getYesterday()" :type="activeTimeRange === 'yesterday' ? 'primary' : ''"></el-button>
<el-button @click="get7Days()" :type="activeTimeRange === '7days' ? 'primary' : ''">近7天</el-button>
<el-button type="success" @click="resetSearch">重置</el-button>
<el-button type="primary" @click="get">查询</el-button>
</el-card>
<el-card style="margin-top:10px">
<el-table :data="tableData">
<el-table-column type="index" label="序号" width="55">
<template #default="scope">
{{ scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize }}
</template>
</el-table-column>
<el-table-column prop="name" label="客户姓名" width="120" show-overflow-tooltip />
<el-table-column prop="jwcode" label="精网号" width="120" />
<el-table-column prop="" label="数量" width="120" />
<el-table-column prop="" label="更新类型" width="120" />
<el-table-column prop="" label="免费金币" width="120" />
<el-table-column prop="" label="永久金币" width="120" />
<el-table-column prop="" label="任务金币" width="120" />
<el-table-column prop="" label="操作人" width="120" />
<el-table-column prop="" label="更新时间" width="120" />
<el-table-column prop="" label="备注" width="120" />
</el-table>
<el-pagination class="pagination" v-model:current-page="pagination.pageNum"
v-model:page-size="pagination.pageSize" layout="total, sizes, prev, pager, next, jumper"
:total="pagination.total" @size-change="handlePageSizeChange"
@current-change="handleCurrentChange"></el-pagination>
</el-card>
</template>
<script setup>
import { onMounted, ref } from 'vue'
import { ElMessage } from 'element-plus'
import API from '@/util/http'
import moment from 'moment'
import { useAdminStore } from "@/store/index.js"
import { storeToRefs } from "pinia"
const adminStore = useAdminStore()
const { adminData, menuTree } = storeToRefs(adminStore)
import { permissionMapping, findMenuById } from "@/utils/menuTreePermission.js"
const tableData = ref([])
const dateRange = ref([])
const searchObj = ref({
name: '',
jwcode: ''
})
const pagination = ref({
pageNum: 1,
pageSize: 50,
total: 0
})
const get = async function () {
if (findMenuById(menuTree.value, permissionMapping.History_Query)) {
try {
if (!searchObj.value.name && !searchObj.value.jwcode) {
const res = await API.get('/admin/history', {
params: {
...searchObj.value,
startTime: dateRange.value[0],
endTime: dateRange.value[1]
}
})
tableData.value = res.data
pagination.value.total = res.data.total
} else {
ElMessage.error('请输入姓名或精网号')
return
}
} catch (e) {
ElMessage.error(e.message)
}
}
}
const resetSearch = function () {
searchObj.value = {
name: '',
jwcode: ''
}
dateRange.value = []
get()
}
const getToday = function () {
const today = dayjs()
const startTime = today.startOf('day').format('YYYY-MM-DD HH:mm:ss')
const endTime = today.endOf('day').format('YYYY-MM-DD HH:mm:ss')
dateRange.value = [startTime, endTime]
console.log('dateRange', dateRange.value)
activeTimeRange.value = 'today'
get()
getStats()
}
const getYesterday = function () {
const today = dayjs()
const startTime = today.subtract(1, 'day').startOf('day').format('YYYY-MM-DD HH:mm:ss')
const endTime = today.subtract(1, 'day').endOf('day').format('YYYY-MM-DD HH:mm:ss')
dateRange.value = [startTime, endTime]
console.log('dateRange', dateRange.value)
activeTimeRange.value = 'yesterday'
get()
getStats()
}
const get7Days = function () {
const today = dayjs()
const startTime = today.subtract(6, 'day').startOf('day').format('YYYY-MM-DD HH:mm:ss')
const endTime = today.endOf('day').format('YYYY-MM-DD HH:mm:ss')
dateRange.value = [startTime, endTime]
console.log('dateRange', dateRange.value)
activeTimeRange.value = '7days'
get()
getStats()
}
const handleDatePickerChange = () => {
activeTimeRange.value = ''
}
const handlePageSizeChange = function (val) {
pagination.value.pageSize = val
get()
}
const handleCurrentChange = function (val) {
pagination.value.pageNum = val
get()
}
</script>
<scope lang="scss" scoped>
.pagination {
display: flex;
margin-top: 0.5vh;
}
</scope>
Loading…
Cancel
Save