From 26bd2029e7ed3cf68ae82f42a1999d0d9301c631 Mon Sep 17 00:00:00 2001 From: kubbo <390378816@qq.com> Date: Thu, 24 Apr 2025 18:14:28 +0800 Subject: [PATCH] =?UTF-8?q?feat(web):=20=E5=A2=9E=E5=8A=A0=E8=A7=92?= =?UTF-8?q?=E8=89=B2=E5=88=97=E8=A1=A8=E5=92=8C=E5=85=85=E5=80=BC=E6=B5=81?= =?UTF-8?q?=E6=B0=B4=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 HomeView 中添加角色列表和充值流水两个表格 - 实现角色列表数据的获取和搜索功能 - 添加充值流水数据的获取功能 - 引入 dayjs 库对时间进行格式化 - 优化表单选择框,使用 el-select-v2 组件 --- package-lock.json | 1 + server/src/routes/role.routes.js | 43 +++++++++++++------------- web/package.json | 1 + web/src/assets/items.json | 53 ++++++++++++++++++++++++++++++++ web/src/views/HomeView.vue | 45 ++++++++++++++++++--------- 5 files changed, 108 insertions(+), 35 deletions(-) create mode 100644 web/src/assets/items.json diff --git a/package-lock.json b/package-lock.json index 797caae..bcdd2a7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4755,6 +4755,7 @@ "web": { "version": "0.0.0", "dependencies": { + "dayjs": "^1.11.13", "element-plus": "^2.9.8", "vue": "^3.5.13", "vue-router": "^4.5.0" diff --git a/server/src/routes/role.routes.js b/server/src/routes/role.routes.js index 9d4414c..865dfb3 100644 --- a/server/src/routes/role.routes.js +++ b/server/src/routes/role.routes.js @@ -1,30 +1,31 @@ -const express = require('express'); -const { getConnection, query } = require('../utils/db.util'); +const express = require("express"); +const { getConnection, query } = require("../utils/db.util"); const router = express.Router(); // 获取角色列表 -router.get('/roles', async (req, res) => { - try { - const connection = await getConnection(); - const results = await query('SELECT * FROM role', [], connection); - res.json(results); - } catch (error) { - console.error('获取角色数据失败:', error); - res.status(500).json({ error: '获取角色数据失败' }); - } +router.get("/roles", async (req, res) => { + try { + const { search = "" } = req.query; + const connection = await getConnection(); + const results = await query(`SELECT * FROM role where name like '%${search}%'`, [], connection); + res.json(results); + } catch (error) { + console.error("获取角色数据失败:", error); + res.status(500).json({ error: "获取角色数据失败" }); + } }); // 获取充值列表 -router.get('/recharges', async (req, res) => { - try { - const connection = await getConnection(); - const results = await query('SELECT * FROM recharge', [], connection); - res.json(results); - } catch (error) { - console.error('获取充值列表失败:', error); - res.status(500).json({ error: '获取充值列表失败' }); - } +router.get("/recharges", async (req, res) => { + try { + const connection = await getConnection(); + const results = await query("SELECT * FROM recharge", [], connection); + res.json(results); + } catch (error) { + console.error("获取充值列表失败:", error); + res.status(500).json({ error: "获取充值列表失败" }); + } }); -module.exports = router; \ No newline at end of file +module.exports = router; diff --git a/web/package.json b/web/package.json index e07e456..5146ceb 100644 --- a/web/package.json +++ b/web/package.json @@ -10,6 +10,7 @@ "format": "prettier --write src/" }, "dependencies": { + "dayjs": "^1.11.13", "element-plus": "^2.9.8", "vue": "^3.5.13", "vue-router": "^4.5.0" diff --git a/web/src/assets/items.json b/web/src/assets/items.json new file mode 100644 index 0000000..8baa5f3 --- /dev/null +++ b/web/src/assets/items.json @@ -0,0 +1,53 @@ +[{"resId":3,"name":"经验","useType":1}, +{"resId":6,"name":"钻石","useType":1}, +{"resId":7,"name":"金币","useType":1}, +{"resId":8,"name":"洗炼石","useType":1}, +{"resId":9,"name":"体力","useType":1}, +{"resId":10,"name":"充值币","useType":1}, +{"resId":10002,"name":"发冠升级图纸","useType":1}, +{"resId":10003,"name":"道袍升级图纸","useType":1}, +{"resId":10004,"name":"项链升级图纸","useType":1}, +{"resId":10005,"name":"戒指升级图纸","useType":1}, +{"resId":10006,"name":"靴子升级图纸","useType":1}, +{"resId":10007,"name":"新手道书","useType":1}, +{"resId":10008,"name":"五色土","useType":1}, +{"resId":10009,"name":"女娲石","useType":1}, +{"resId":10010,"name":"突破丹","useType":1}, +{"resId":10011,"name":"随机装备图纸","useType":2}, +{"resId":10012,"name":"随机技能卷轴","useType":4}, +{"resId":10013,"name":"随机宝石箱子","useType":3}, +{"resId":10014,"name":"普通宝石箱","useType":3}, +{"resId":10015,"name":"璀璨宝石箱","useType":3}, +{"resId":10016,"name":"随机紫色宝石宝箱","useType":3}, +{"resId":10017,"name":"随机金色宝石宝箱","useType":3}, +{"resId":10018,"name":"随机红色宝石宝箱","useType":3}, +{"resId":10019,"name":"随机多彩宝石宝箱","useType":3}, +{"resId":10020,"name":"宝石抽取券","useType":1}, +{"resId":10021,"name":"灵宠抽取券","useType":1}, +{"resId":10022,"name":"随机宝石箱子","useType":3}, +{"resId":10023,"name":"随机稀有宝石","useType":3}, +{"resId":10024,"name":"随机宝石箱子","useType":3}, +{"resId":10101,"name":"御剑术卷轴","useType":1}, +{"resId":10102,"name":"毒气弹卷轴","useType":1}, +{"resId":10103,"name":"寒冰箭卷轴","useType":1}, +{"resId":10104,"name":"惊雷咒卷轴","useType":1}, +{"resId":10105,"name":"石狮子卷轴","useType":1}, +{"resId":10106,"name":"剑气斩卷轴","useType":1}, +{"resId":10107,"name":"万剑诀卷轴","useType":1}, +{"resId":10108,"name":"寒冰突刺卷轴","useType":1}, +{"resId":10109,"name":"连环闪电卷轴","useType":1}, +{"resId":10110,"name":"泰山压顶卷轴","useType":1}, +{"resId":10111,"name":"风暴术卷轴","useType":1}, +{"resId":10112,"name":"天雷网卷轴","useType":1}, +{"resId":10113,"name":"巨石突刺卷轴","useType":1}, +{"resId":10114,"name":"旋风术卷轴","useType":1}, +{"resId":10115,"name":"闪电球卷轴","useType":1}, +{"resId":10116,"name":"改名卡","useType":1}, +{"resId":10117,"name":"随机宝石箱子","useType":1}, +{"resId":10118,"name":"随机蓝色宝石宝箱","useType":3}, +{"resId":10119,"name":"晶石掉落","useType":1}, +{"resId":10120,"name":"技能卷轴自选宝箱","useType":5}, +{"resId":10121,"name":"灵宠口粮","useType":1}, +{"resId":10122,"name":"灵宠抽卡箱","useType":1}, +{"resId":10123,"name":"灵宠口粮","useType":1}, +{"resId":10999,"name":"1元代金券","useType":1}] \ No newline at end of file diff --git a/web/src/views/HomeView.vue b/web/src/views/HomeView.vue index 9709520..f15ee25 100644 --- a/web/src/views/HomeView.vue +++ b/web/src/views/HomeView.vue @@ -1,6 +1,9 @@