修改河南项目的管理后台ui和删除之前不需要的游戏

This commit is contained in:
2026-09-22 18:32:51 +08:00
parent 687a1f0f98
commit 73c21ca026
10 changed files with 36 additions and 48 deletions
+26 -4
View File
@@ -60,13 +60,35 @@ SELECT COUNT(*) FROM sys_config WHERE config_key = 'mahjongMaintenance'; --
后台左侧出现「麻将胡了」目录(`order_num=6`),下辖 7 个子页面; 后台左侧出现「麻将胡了」目录(`order_num=6`),下辖 7 个子页面;
「网站设置」页出现「麻将胡了维护」下拉框(0 正常 / 1 维护)。 「网站设置」页出现「麻将胡了维护」下拉框(0 正常 / 1 维护)。
**⚠️ 尚未落库的前置依赖:麻将胡了的 11 张游戏表**(`game_mahjong_box` / `_bucket` / `_box_bucket` / **前置依赖:麻将胡了的 11 张游戏表**(`game_mahjong_box` / `_bucket` / `_box_bucket` /
`_round` / `_step` / `_record` / `_user` / `_box_template` / `_reward_log` / `_prize_ornament` / `_prize_range`)。 `_round` / `_step` / `_record` / `_user` / `_box_template` / `_reward_log` / `_prize_ornament` / `_prize_range`)。
DDL + 种子数据已写在 `mahjong-py/schema.sql`(`CREATE TABLE IF NOT EXISTS` + 11 档箱子 / 饰品桶 / 返奖饰品种子), **DDL 与种子数据的权威出处是 `mahjong-py/schema.sql`,不抄进本台账**(已拍板:建表只以该文件为权威、直接对库执行)。
**本次未执行** —— 上方 7 个后台页面依赖这些表,未建表前打开会报「表不存在」。 该文件**可重复执行**(`CREATE TABLE IF NOT EXISTS` + `ON DUPLICATE KEY UPDATE`),无任何 `DROP` / `DELETE`。
执行方式(需单独确认后进行):
执行方式(**2026-09-22 已执行**):
```bash ```bash
docker exec -i henan_mysql_db mysql -uroot -p123456 --default-character-set=utf8mb4 -D henan < mahjong-py/schema.sql docker exec -i henan_mysql_db mysql -uroot -p123456 --default-character-set=utf8mb4 -D henan < mahjong-py/schema.sql
``` ```
落库结果(实测):
| 表 | 行数 | 说明 |
|---|---|---|
| `game_mahjong_box` | 11 | 11 档投注,`price ≡ bet` |
| `game_mahjong_bucket` | 16 | 0x ~ 500x |
| `game_mahjong_prize_ornament` | 12 | 返奖饰品(沿用玫瑰女郎 id 以维持区间映射) |
| `game_mahjong_prize_range` | 12 | 连续覆盖 0.01 ~ 99,999,999 |
| `_box_bucket` / `_round` / `_step` / `_record` / `_user` / `_box_template` / `_reward_log` | 0 | 空表,等运行期数据 |
```sql
SELECT COUNT(*) FROM information_schema.tables
WHERE table_schema = 'henan' AND table_name LIKE 'game\_mahjong\_%'; -- 期望 11,实测 11
```
**仍需后台操作生成的运行期数据**(不是建表,别当成漏建):
1. `game_mahjong_box_bucket` 的 **528 行配比**(16 桶 × 11 箱 × 3 身份)—— 后台
「麻将胡了 → 箱子配置 → 一键重算」(`POST /admin/mahjong/box/recalc_all`)。**空表时挑不到回合。**
2. **每箱×身份的初始奖池水位** —— 后台「奖池水位 → 注水」(`¥300` / `¥500` 两档需单独注)。
+1 -1
View File
@@ -20,7 +20,7 @@ VITE_SOURCEMAP=true
VITE_OUT_DIR=dist-dev VITE_OUT_DIR=dist-dev
# 标题 # 标题
VITE_APP_TITLE=ElementAdmin VITE_APP_TITLE=推广后台
# 是否包分析 # 是否包分析
VITE_USE_BUNDLE_ANALYZER=false VITE_USE_BUNDLE_ANALYZER=false
+3
View File
@@ -159,6 +159,9 @@ export default ({ command, mode }: ConfigEnv): UserConfig => {
host: '0.0.0.0' host: '0.0.0.0'
}, },
optimizeDeps: { optimizeDeps: {
// 默认会扫描 **/*.html,把 dist-dev/dist-pro/stats.html 等构建产物也当入口,
// 显式限定为 dev 入口,避免产物目录里的旧代码参与依赖预构建
entries: ['index.html'],
include: [ include: [
'vue', 'vue',
'vue-router', 'vue-router',
+1 -1
View File
@@ -1,5 +1,5 @@
# 页面标题 # 页面标题
VUE_APP_TITLE = 后台管理系统 VUE_APP_TITLE = 河南项目
# 开发环境配置 # 开发环境配置
ENV = 'development' ENV = 'development'
+1 -1
View File
@@ -1,5 +1,5 @@
# 页面标题 # 页面标题
VUE_APP_TITLE = 常州项目 VUE_APP_TITLE = 河南项目
# 生产环境配置 # 生产环境配置
ENV = 'production' ENV = 'production'
+1 -1
View File
@@ -1,5 +1,5 @@
# 页面标题 # 页面标题
VUE_APP_TITLE = 后台管理系统 VUE_APP_TITLE = 河南项目
NODE_ENV = production NODE_ENV = production
-37
View File
@@ -7,16 +7,6 @@
<tags-view v-if="showTagsView" class="navbar-tags-view" /> <tags-view v-if="showTagsView" class="navbar-tags-view" />
<div class="right-menu"> <div class="right-menu">
<!-- 任意页面都能一键看"当前这个页面"的操作记录 -->
<div
v-if="showOperLog"
v-hasPermi="['monitor:operlog:query']"
class="right-menu-item operlog-entry"
@click="goOperationLog"
>
<i class="el-icon-document" />
<span class="operlog-text">操作日志</span>
</div>
<el-dropdown class="avatar-container right-menu-item" trigger="click"> <el-dropdown class="avatar-container right-menu-item" trigger="click">
<div class="avatar-wrapper"> <div class="avatar-wrapper">
<img :src="avatar" class="user-avatar"> <img :src="avatar" class="user-avatar">
@@ -52,21 +42,9 @@ export default {
/** 标签页已并入顶栏,是否显示跟随布局设置 */ /** 标签页已并入顶栏,是否显示跟随布局设置 */
showTagsView() { showTagsView() {
return this.$store.state.settings.tagsView return this.$store.state.settings.tagsView
},
/** 已经在操作日志页时不显示入口 */
showOperLog() {
return this.$route.path !== '/system/log/operlog'
} }
}, },
methods: { methods: {
/** 跳到操作日志,并自动按当前页面的菜单名筛选 */
goOperationLog() {
const pageTitle = (this.$route.meta && this.$route.meta.title) || ''
this.$router.push({
path: '/system/log/operlog',
query: pageTitle ? { title: pageTitle } : {}
})
},
async logout() { async logout() {
this.$confirm('确定注销并退出系统吗?', '提示', { this.$confirm('确定注销并退出系统吗?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
@@ -131,21 +109,6 @@ export default {
color: #5f4f3d; color: #5f4f3d;
} }
/* 操作日志入口:文案按钮,比图标更好找 */
.operlog-entry {
cursor: pointer;
font-size: 14px;
transition: color 0.2s;
.operlog-text {
margin-left: 4px;
}
&:hover {
color: #9a5c35;
}
}
.avatar-container { .avatar-container {
cursor: pointer; cursor: pointer;
+1 -1
View File
@@ -2,7 +2,7 @@
<div class="login"> <div class="login">
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form"> <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
<h3 class="title">后台管理系统</h3> <h3 class="title">河南项目</h3>
<el-form-item prop="username"> <el-form-item prop="username">
<el-input <el-input
v-model="loginForm.username" v-model="loginForm.username"
+1 -1
View File
@@ -1,7 +1,7 @@
<template> <template>
<div class="register"> <div class="register">
<el-form ref="registerForm" :model="registerForm" :rules="registerRules" class="register-form"> <el-form ref="registerForm" :model="registerForm" :rules="registerRules" class="register-form">
<h3 class="title">后台管理系统</h3> <h3 class="title">河南项目</h3>
<el-form-item prop="username"> <el-form-item prop="username">
<el-input v-model="registerForm.username" type="text" auto-complete="off" placeholder="账号"> <el-input v-model="registerForm.username" type="text" auto-complete="off" placeholder="账号">
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" /> <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
+1 -1
View File
@@ -7,7 +7,7 @@ function resolve(dir) {
const CompressionPlugin = require('compression-webpack-plugin') const CompressionPlugin = require('compression-webpack-plugin')
const name = process.env.VUE_APP_TITLE || '后台管理系统' // 网页标题 const name = process.env.VUE_APP_TITLE || '河南项目' // 网页标题
const port = process.env.port || process.env.npm_config_port || 80 // 端口 const port = process.env.port || process.env.npm_config_port || 80 // 端口