修改河南项目的管理后台ui和删除之前不需要的游戏
This commit is contained in:
+26
-4
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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,5 +1,5 @@
|
|||||||
# 页面标题
|
# 页面标题
|
||||||
VUE_APP_TITLE = 后台管理系统
|
VUE_APP_TITLE = 河南项目
|
||||||
|
|
||||||
# 开发环境配置
|
# 开发环境配置
|
||||||
ENV = 'development'
|
ENV = 'development'
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# 页面标题
|
# 页面标题
|
||||||
VUE_APP_TITLE = 常州项目
|
VUE_APP_TITLE = 河南项目
|
||||||
|
|
||||||
# 生产环境配置
|
# 生产环境配置
|
||||||
ENV = 'production'
|
ENV = 'production'
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# 页面标题
|
# 页面标题
|
||||||
VUE_APP_TITLE = 后台管理系统
|
VUE_APP_TITLE = 河南项目
|
||||||
|
|
||||||
NODE_ENV = production
|
NODE_ENV = production
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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,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" />
|
||||||
|
|||||||
@@ -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 // 端口
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user