修改河南项目的管理后台ui
This commit is contained in:
@@ -153,3 +153,59 @@
|
||||
**刻意未做**:麻将胡了的 **11 张 `game_mahjong_*` 游戏表尚未落库**(DDL + 种子在 `mahjong-py/schema.sql`)。
|
||||
这 7 个新菜单页面依赖它们,未建表前打开会报「表不存在」。属「游戏本体」前置依赖、且 generator 还没写完
|
||||
(见 `mahjong-py/README.md`),**待用户确认后再执行**。
|
||||
|
||||
- **后台管理端(`ruoyi-ui`)整站换肤:Cottagecore 田园核风 + 逐页 UI 细节收敛**
|
||||
|
||||
**起因**:管理后台长期沿用它默认的企业蓝(Element 默认色板 + vue-element-admin / AdminLTE 遗留色),与河南项目的
|
||||
田园调性不符;用户要求按 Cottagecore 规范整站重做,并**逐页检查小问题、把 UI 细节调到位**。
|
||||
|
||||
**做法:不引 Tailwind,走「Element 变量 + 皮肤覆盖层」**
|
||||
(`ruoyi-ui` 是 Vue2 + Element UI 2.15 + vue-cli4/webpack4/postcss7,Tailwind 的 preflight 会打乱 Element 基础样式)。
|
||||
新建 **`src/assets/styles/cottagecore.scss` 作为全站唯一色源**,其余文件一律引用变量、不写死十六进制;
|
||||
再通过重编译 `element-ui` 的 theme-chalk 源码(`element-variables.scss`)换掉 Element 自己的底色。
|
||||
|
||||
| 文件 | 角色 |
|
||||
|---|---|
|
||||
| `assets/styles/cottagecore.scss` | **唯一色源**:品牌色 + 组件槽位色 + 图标色相 + 对比度实测注释 |
|
||||
| `assets/styles/element-variables.scss` | 覆盖 `$--color-*` / 圆角 / 阴影 / `$--color-white` → 暖白 `#fffdfa`,再 `@import` theme-chalk 源码整包编译 |
|
||||
| `assets/styles/skin.scss` | 皮肤覆盖层(按钮 / 表单 / 表格 / 分页 / 弹层 / Element 写死的冷色) |
|
||||
| `assets/styles/index.scss` | 总入口,**最后一行 `@import './skin.scss'`**(整体回滚 = 注释这一行) |
|
||||
| `assets/styles/sidebar.scss` / `variables.scss` | 侧栏(4 色图标轮换)/ 菜单深浅两套色 + `:export` 给 js |
|
||||
|
||||
**六轮递进,要点**:
|
||||
|
||||
1. **建色源 + 换 Element 底色**:primary 定陶土 `#9a5c35`(**不用草绿**,否则「新增 / 修改」同色系分不清;
|
||||
想切回只改色源一处),success 草绿 `#457450`,warning 深雏菊金 `#8f6418`,danger 莓红 `#a4485a`,info 暖褐 `#6b6152`。
|
||||
正文 `#5f4f3d`(**`#8b7355` 只有 4.17:1,禁止做正文**);草绿 `#5a8f5a` 白字仅 3.81:1 ⇒ **只做装饰与大色块**,
|
||||
绿色文字一律 `#3f6b45`。
|
||||
2. **摘掉隐藏的 ThemePicker**:`App.vue` 曾无条件挂 `<theme-picker>`(只用 CSS `display:none` 藏,组件照样 mount),
|
||||
它在 `created()` 里会去 `unpkg.com` 拉整包 Element 默认主题并注入 `<style>` **把配色改回企业蓝**。已移除,别再挂回去。
|
||||
3. **全局色板机械清扫**(45 个文件):把散在业务页里的旧 Element 色(`#409eff` / `#67c23a` / `#e6a23c` / `#f56c6c` / `#909399` …)
|
||||
按语义映射到色源;同时改掉 `Logo.vue` / `Navbar.vue` 的白色毛玻璃 + 蓝阴影、全局滚动条的冷蓝。
|
||||
4. **顶栏与标签页合并成一条**,去掉重复显示的面包屑。
|
||||
5. **Element 内部写死的冷色**(hex 搜索抓不到、只能用更高权重规则盖):白遮罩、蓝色 info toast、
|
||||
冷绿上传成功勾 `#13ce66`(**它的选择器是带父级的三段式 0,2,0,单类选择器会被压住**)、冷灰滚动条 / 标签 / 日期面板。
|
||||
根因是 `$--color-white` → 把**暖白 `#fffdfa`** 提为「白」,一次性统一所有白色面。
|
||||
6. **操作列按钮折行**(用户截图里那类问题)——根因不是列宽不够,而是 `element-ui.scss` 里一条全局规则
|
||||
`.fixed-width .el-button--mini { width: 60px }` 把按钮钉死 60px,`图标 + 2~4 个中文` 直接被截断换行。
|
||||
删掉该规则 + 给 19 个操作列补显式宽度(≥3 个按钮的收进「更多」下拉)+ 补下拉与前钮间距。
|
||||
|
||||
**验证(三层,脚本留在 `.workbuddy/`,可重跑)**:
|
||||
|
||||
- `node .workbuddy/audit-palette.cjs` —— 源码级色板审计(`.vue` + `.scss` + `.css`,**先剥注释再扫**):
|
||||
当前 **0 / 184 文件离版**。色板白名单里另有一类**刻意保留的域内语义色**:
|
||||
CS2 稀有度、麻将/饰品品质色谱(金/红/紫)、仪表盘折线色 —— **不是主题色,不许改**。
|
||||
- `node .workbuddy/verify-dist.cjs` —— 构建产物断言,**34 项 ALL_OK**:① 本项目源码的冷色必须为 0;
|
||||
② 新增规则必须存在;③ 中性色(`rgba(0,0,0,*)`)设「冻结基线」上限防复发。
|
||||
**扫描范围是 app.css + 全部 `chunk-*.css`**(views/* 是懒加载,只看 app.css 会整片漏掉)。
|
||||
- `node .workbuddy/verify-computed.cjs` —— **真机 Chrome 计算样式断言,20 项 ALL_OK**。
|
||||
专治 element-ui 内部字面量色:这些色值**在样式表文本里去不掉**,`grep = 0` 不成立,必须看计算值。
|
||||
- 构建:`DONE Build complete`,零 Sass 错误;仅剩既有的 `delLevel` 缺失导出 + 体积警告,与本改动无关。
|
||||
|
||||
**踩坑**:并行对**同一文件**发多个 Edit 会撞 `EBUSY`;更阴的是**偶发不报错、但两次写入只剩一次**(本次 `sidebar.scss` 丢过两个替换)
|
||||
⇒ **机械替换一律串行,改完用 grep 逐条复验**,别信 Edit 的 success 回执。
|
||||
|
||||
**刻意未做**:① `variables.scss` 里 `sideTheme: theme-dark` 的深色侧栏回退色(冷蓝灰)保留 ——
|
||||
设置抽屉里的「深色」按钮现在点下去视觉上是空操作(皮肤层已把侧栏壳设成透明 + 文字 `!important`),
|
||||
**没有删按钮也没改回退色**,要不要彻底下掉这个开关待定;② `btn.scss` 的 `.blue-btn` 等 7 个类全项目 0 引用,
|
||||
但其颜色已随 `variables.scss` 指向新色板,**不构成视觉问题,未清理**。
|
||||
|
||||
@@ -47,6 +47,31 @@ $cc-shadow-sm: 0 2px 8px rgba(139, 115, 85, 0.10);
|
||||
$cc-shadow-md: 0 6px 18px rgba(139, 115, 85, 0.13);
|
||||
$cc-shadow-lg: 0 12px 32px rgba(139, 115, 85, 0.17);
|
||||
|
||||
/* ---- 组件变量槽位(Element 需要的多级描边 / 浅底)----
|
||||
这些是「中间色」,不承担品牌语义,但必须收在这里:
|
||||
否则同一层底色会在不同文件里写成两个近似值
|
||||
(如 #f6efe3 与 $cc-linen #f3ece0 肉眼几乎分不出,却算成了两套色)。 */
|
||||
$cc-border-1: #d8c3b0; // 主描边:输入框、表格线
|
||||
$cc-border-2: #e2d3c2; // 次描边:轻分隔、禁用描边
|
||||
$cc-border-3: #eadfd0; // 细描边(比 $cc-linen-2 更接近白)
|
||||
$cc-tint-1: #f0e8dc; // 最浅底:凹槽
|
||||
$cc-tint-2: #f6efe3; // 浅底:标签 / 区块
|
||||
$cc-tint-3: #fbf5ea; // 悬停底:整行 hover、标签 hover
|
||||
$cc-terra-deep: #854c2a; // 陶土加深:主色悬停、激活标签渐变末端(白字 6.85:1)
|
||||
|
||||
/* ---- 图标色相:一级菜单图标块 / 统计卡图标共用同一套 4 色 ----
|
||||
陶土、草绿直接复用主色;雏菊金 / 玫瑰粉是「图标专用」的浅档
|
||||
($cc-daisy-deep 太暗、$cc-rose 太艳,塞进 30px 小方块会发黑/发跳),
|
||||
只在图标上用,不再往别处扩散。
|
||||
★ 这两档同时被 .vue 里的内联色引用(scoped style 拿不到 sass 变量),
|
||||
改动时必须同步 .workbuddy/audit-palette.cjs 的白名单。 */
|
||||
$cc-hue-daisy: #a8791f;
|
||||
$cc-hue-rose: #b57474;
|
||||
$cc-icon-hues: ($cc-terra, $cc-grass-deep, $cc-hue-daisy, $cc-hue-rose);
|
||||
|
||||
/* ---- 状态淡底 ---- */
|
||||
$cc-blossom-tint: #f7e9e6; // 花粉淡底:中奖格浅红(别在 .vue 里再写一个近似粉)
|
||||
|
||||
/* ---- 字体 ----
|
||||
Cottagecore 要求衬线,但后台是拿表格干活的:13px 宋体在密集表格里可读性明显下降。
|
||||
因此只在「标题类」(≥ 16px 的页面标题 / 弹窗标题)用衬线,
|
||||
|
||||
@@ -28,11 +28,19 @@
|
||||
}
|
||||
}
|
||||
|
||||
.fixed-width {
|
||||
.el-button--mini {
|
||||
padding: 7px 10px;
|
||||
width: 60px;
|
||||
}
|
||||
/* ★ 这里原本是 RuoYi 的遗留规则,已删除:
|
||||
.fixed-width .el-button--mini { padding: 7px 10px; width: 60px }
|
||||
.fixed-width 是「操作列」专用类。强设 60px 后,border-box 的内容盒只剩 48px,
|
||||
而本项目的操作按钮普遍是「图标 + 2~4 字」(如 el-icon-date +「发放饰品」≈ 70px)
|
||||
⇒ 文字溢出按钮、盖到相邻按钮上,整列还会折行。
|
||||
按钮宽度改回按内容撑开;文字按钮的左右留白由 skin.scss 的
|
||||
`.el-table .el-button--text { padding: 4px 6px }` 接管。
|
||||
★ 操作列若按钮 ≥3 个,请在模板上显式给 `width`,否则自动列宽会挤压换行。 */
|
||||
|
||||
/* 「更多」是 el-dropdown 包着 el-button,不是 .el-button 的兄弟节点,
|
||||
拿不到 Element 的 `.el-button + .el-button { margin-left: 10px }`,会贴住前一个按钮 */
|
||||
.el-table .cell .el-button + .el-dropdown {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.status-col {
|
||||
|
||||
@@ -28,16 +28,29 @@ $--color-text-secondary: $cc-ink-3;
|
||||
$--color-text-placeholder: $cc-ink-4;
|
||||
|
||||
/* 描边:花粉细边,禁止纯黑硬线 */
|
||||
$--border-color-base: #d8c3b0;
|
||||
$--border-color-light: #e2d3c2;
|
||||
$--border-color-lighter: #eadfd0;
|
||||
$--border-color-extra-light: #f0e8dc;
|
||||
$--border-color-base: $cc-border-1;
|
||||
$--border-color-light: $cc-border-2;
|
||||
$--border-color-lighter: $cc-border-3;
|
||||
$--border-color-extra-light: $cc-tint-1;
|
||||
|
||||
/* 底色 */
|
||||
/* ★ 白:Cottagecore 的「白」是暖白卡片色 #fffdfa,不是 #fff。
|
||||
Element 把 $--color-white 当成**所有白色面的根**——输入框、下拉面板、
|
||||
气泡、对话框、分页底、单选/复选底,以及各 light 变体的 mix 基色。
|
||||
改这一处,比逐个选择器打补丁稳,也不会漏。 */
|
||||
$--color-white: $cc-cream-hi;
|
||||
|
||||
$--background-color-base: $cc-linen;
|
||||
$--disabled-fill-base: $cc-linen;
|
||||
$--disabled-color-base: $cc-ink-4;
|
||||
$--disabled-border-base: #e2d3c2;
|
||||
$--disabled-border-base: $cc-border-2;
|
||||
|
||||
/* Element 写死的两处冷蓝(是 !default 变量,可以覆盖)——
|
||||
① 默认/信息类 toast 的底:原 #edf2fc 淡蓝,RuoYi 里 this.$message('…')
|
||||
不带 type 时就会走它,是页面上会闪的蓝块;
|
||||
② 禁用勾选框填充:原 #edf2fc 同样偏蓝。 */
|
||||
$--message-background-color: mix($cc-cream, $cc-ash, 92%);
|
||||
$--checkbox-disabled-input-fill: $cc-linen-2;
|
||||
|
||||
/* 圆润:Cottagecore 的圆角一律大于 Element 默认的 4px */
|
||||
$--border-radius-base: 12px;
|
||||
@@ -50,11 +63,11 @@ $--box-shadow-dark: $cc-shadow-lg;
|
||||
$--box-shadow-light: $cc-shadow-sm;
|
||||
|
||||
/* 表格:柔和暖线,禁用 #dfe6ec 冷灰 */
|
||||
$--table-border: 1px solid #eadfd0;
|
||||
$--table-border-color: #eadfd0;
|
||||
$--table-border: 1px solid $cc-border-3;
|
||||
$--table-border-color: $cc-border-3;
|
||||
$--table-header-background-color: $cc-linen;
|
||||
$--table-header-font-color: $cc-ink-3;
|
||||
$--table-row-hover-background-color: #fbf5ea;
|
||||
$--table-row-hover-background-color: $cc-tint-3;
|
||||
$--table-current-row-background-color: $cc-linen;
|
||||
$--table-font-color: $cc-ink-2;
|
||||
|
||||
|
||||
@@ -132,7 +132,7 @@ aside {
|
||||
// 否则「页卡 > 区块卡 > 小卡」三层卡片套在一起,画面很碎(规范也禁止卡片嵌套)。
|
||||
.app-container {
|
||||
padding: 24px;
|
||||
background: #fdfaf5;
|
||||
background: $cc-cream-hi;
|
||||
border: 0;
|
||||
border-radius: 20px;
|
||||
box-shadow: 0 2px 10px rgba(139, 115, 85, 0.07);
|
||||
@@ -145,7 +145,7 @@ aside {
|
||||
position: relative;
|
||||
margin: 6px 10px 6px 0;
|
||||
padding: 10px 24px 24px;
|
||||
background: #fdfaf5;
|
||||
background: $cc-cream-hi;
|
||||
border: 0;
|
||||
border-radius: 20px;
|
||||
box-shadow: 0 2px 10px rgba(139, 115, 85, 0.07);
|
||||
|
||||
@@ -7,8 +7,10 @@
|
||||
}
|
||||
|
||||
@mixin scrollBar {
|
||||
/* 原为 Element 冷蓝灰 #d3dce6 / #99a9bf。当前项目未 include 本 mixin
|
||||
(侧栏走 .el-scrollbar__thumb),顺手改成暖色,避免日后启用时又漏一版冷色。 */
|
||||
&::-webkit-scrollbar-track-piece {
|
||||
background: #d3dce6;
|
||||
background: #ece2d3;
|
||||
}
|
||||
|
||||
&::-webkit-scrollbar {
|
||||
@@ -16,7 +18,7 @@
|
||||
}
|
||||
|
||||
&::-webkit-scrollbar-thumb {
|
||||
background: #99a9bf;
|
||||
background: #8b755a;
|
||||
border-radius: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
/**
|
||||
* 通用css样式布局处理
|
||||
* Copyright (c) 2019 ruoyi
|
||||
*
|
||||
* ⚠️ 本文件由 main.js 在 index.scss(含皮肤层 skin.scss)**之后**引入,
|
||||
* 权重相同时它会赢。改这里的任何视觉规则前,先确认不是在和皮肤层打架。
|
||||
*/
|
||||
|
||||
@import './cottagecore.scss';
|
||||
|
||||
/** 基础通用 **/
|
||||
.pt5 {
|
||||
padding-top: 5px;
|
||||
@@ -79,9 +84,12 @@
|
||||
.el-table__header-wrapper, .el-table__fixed-header-wrapper {
|
||||
th {
|
||||
word-break: break-word;
|
||||
background-color: #f8f8f9;
|
||||
color: #515a6e;
|
||||
height: 40px;
|
||||
/* 原为冷灰 #f8f8f9 / 石板蓝 #515a6e —— 权重低于皮肤层的
|
||||
.el-table th.el-table__cell,本来就没生效;这里直接对齐皮肤,
|
||||
免得将来权重一变又漏出冷灰表头。 */
|
||||
background-color: $cc-linen;
|
||||
color: $cc-ink-3;
|
||||
height: 42px;
|
||||
font-size: 13px;
|
||||
}
|
||||
}
|
||||
@@ -93,35 +101,32 @@
|
||||
}
|
||||
|
||||
/** 表单布局 **/
|
||||
/* 冷蓝 #6379bb + 冷灰 #ddd 的分区标题(角色分配 / 代码生成两页在用)→ 暖色板 */
|
||||
.form-header {
|
||||
font-size:15px;
|
||||
color:#6379bb;
|
||||
border-bottom:1px solid #ddd;
|
||||
color:$cc-terra;
|
||||
border-bottom:1px solid $cc-line-2;
|
||||
margin:8px 10px 25px 10px;
|
||||
padding-bottom:5px
|
||||
}
|
||||
|
||||
/** 表格布局 **/
|
||||
.pagination-container {
|
||||
position: relative;
|
||||
height: 25px;
|
||||
margin-bottom: 10px;
|
||||
margin-top: 15px;
|
||||
padding: 10px 20px !important;
|
||||
}
|
||||
/* .pagination-container 的旧定义(position:relative / height:25px / margin 15px 10px /
|
||||
padding:10px 20px !important)已删除:
|
||||
它是 AdminLTE 时代的紧凑分页,和皮肤层打架,而且那条 !important 让皮肤层的
|
||||
padding 永远失效;height:25px 又把 32px 高的页码按钮挤出去,看起来就是表格下方
|
||||
多了一条空白白带。分页样式现在只在 assets/styles/skin.scss 里定义一处。 */
|
||||
|
||||
/* tree border */
|
||||
.tree-border {
|
||||
margin-top: 5px;
|
||||
border: 1px solid #e5e6e7;
|
||||
background: #FFFFFF none;
|
||||
border-radius:4px;
|
||||
border: 1px solid $cc-line;
|
||||
background: $cc-cream-hi none;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
.pagination-container .el-pagination {
|
||||
right: 0;
|
||||
position: absolute;
|
||||
}
|
||||
/* 原来的 .pagination-container .el-pagination { right:0; position:absolute } 已删除。
|
||||
绝对定位让分页脱离文档流(外层白带高度算不准),右对齐改由皮肤层 text-align 负责。 */
|
||||
|
||||
@media ( max-width : 768px) {
|
||||
.pagination-container .el-pagination > .el-pagination__jump {
|
||||
@@ -132,11 +137,9 @@
|
||||
}
|
||||
}
|
||||
|
||||
.el-table .fixed-width .el-button--mini {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
width: inherit;
|
||||
}
|
||||
/* 操作列的 .el-button--mini 在 old 版里被抹掉左右内边距(padding:0 + width:inherit),
|
||||
文字按钮会挤成「修改删除」连在一起,和皮肤层 .el-table .el-button--text 的 4px 6px 打架。
|
||||
删掉这条,按钮间距交回皮肤层。 */
|
||||
|
||||
/** 表格更多操作下拉样式 */
|
||||
.el-table .el-dropdown-link,.el-table .el-dropdown-selfdefine {
|
||||
@@ -166,8 +169,8 @@
|
||||
}
|
||||
|
||||
.list-group-item {
|
||||
border-bottom: 1px solid #e7eaec;
|
||||
border-top: 1px solid #e7eaec;
|
||||
border-bottom: 1px solid $cc-line-2;
|
||||
border-top: 1px solid $cc-line-2;
|
||||
margin-bottom: -1px;
|
||||
padding: 11px 0px;
|
||||
font-size: 13px;
|
||||
@@ -192,30 +195,14 @@
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
/* button color */
|
||||
.el-button--cyan.is-active,
|
||||
.el-button--cyan:active {
|
||||
background: #20B2AA;
|
||||
border-color: #20B2AA;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
.el-button--cyan:focus,
|
||||
.el-button--cyan:hover {
|
||||
background: #48D1CC;
|
||||
border-color: #48D1CC;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
.el-button--cyan {
|
||||
background-color: #20B2AA;
|
||||
border-color: #20B2AA;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
/* 说明:这里原本是 AdminLTE / vue-element-admin 遗留的青色按钮与文字色
|
||||
(#20B2AA / #48D1CC / #1ab394 / #1c84c6 / #23c6c8 / #f8ac59 / #ed5565 / #888888),
|
||||
全是冷色,和 Cottagecore 色板冲突。已按语义映射到色板;
|
||||
.el-button--cyan 全项目 0 处使用,直接删除。 */
|
||||
|
||||
/* text color */
|
||||
.text-navy {
|
||||
color: #1ab394;
|
||||
color: $cc-grass-text;
|
||||
}
|
||||
|
||||
.text-primary {
|
||||
@@ -223,23 +210,23 @@
|
||||
}
|
||||
|
||||
.text-success {
|
||||
color: #1c84c6;
|
||||
color: $cc-grass-text;
|
||||
}
|
||||
|
||||
.text-info {
|
||||
color: #23c6c8;
|
||||
color: $cc-ash;
|
||||
}
|
||||
|
||||
.text-warning {
|
||||
color: #f8ac59;
|
||||
color: $cc-daisy-deep;
|
||||
}
|
||||
|
||||
.text-danger {
|
||||
color: #ed5565;
|
||||
color: $cc-rose;
|
||||
}
|
||||
|
||||
.text-muted {
|
||||
color: #888888;
|
||||
color: $cc-ink-3;
|
||||
}
|
||||
|
||||
/* image */
|
||||
@@ -260,15 +247,16 @@
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
border-radius: 50%;
|
||||
box-shadow: 0 0 4px #ccc;
|
||||
box-shadow: $cc-shadow-md;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* 拖拽列样式 */
|
||||
/* 拖拽列样式(RuoYi 表单构建器 / 表格拖拽排序共用)
|
||||
原来是 vue-element-admin 的 #42b983(Vue 青绿),和暖色板冲突 → 用草绿深档 */
|
||||
.sortable-ghost{
|
||||
opacity: .8;
|
||||
color: #fff!important;
|
||||
background: #42b983!important;
|
||||
background: $cc-grass-deep!important;
|
||||
}
|
||||
|
||||
.top-right-btn {
|
||||
|
||||
@@ -33,12 +33,8 @@ $card-shadow: $cc-shadow-sm;
|
||||
|
||||
/* 一级菜单图标色板:只留 4 个田园色循环(陶土 / 草绿 / 雏菊金 / 玫瑰粉)
|
||||
原来是 8 色高饱和渐变,15 个菜单项齐上像调色盘;
|
||||
现在与仪表盘统计卡共用同一套 4 色,整站配色口径统一。 */
|
||||
$icon-hues:
|
||||
#9a5c35, // 1 陶土
|
||||
#457450, // 2 草绿
|
||||
#a8791f, // 3 雏菊金
|
||||
#b57474; // 4 玫瑰粉
|
||||
现在与统计卡图标共用 cottagecore.scss 的 $cc-icon-hues,整站配色口径统一。 */
|
||||
$icon-hues: $cc-icon-hues;
|
||||
$icon-hue-count: length($icon-hues);
|
||||
|
||||
html,
|
||||
@@ -51,10 +47,10 @@ body {
|
||||
/* 亚麻底整体加深一档(原来是 #fdfaf5→#f3ece0,顶部近白,
|
||||
和奶油卡片几乎同色,卡片边界会糊掉)。现在卡片是亮面、页面是麻面,层次清楚。 */
|
||||
background:
|
||||
radial-gradient(760px 520px at 4% 100%, rgba(90, 143, 90, .11), transparent 62%),
|
||||
radial-gradient(760px 520px at 96% 0%, rgba(212, 160, 160, .13), transparent 62%),
|
||||
radial-gradient(520px 420px at 78% 88%, rgba(245, 215, 95, .14), transparent 60%),
|
||||
linear-gradient(155deg, #f7f1e6 0%, #f3ece0 48%, #ece2d3 100%);
|
||||
radial-gradient(760px 520px at 4% 100%, rgba($cc-grass, .11), transparent 62%),
|
||||
radial-gradient(760px 520px at 96% 0%, rgba($cc-blossom, .13), transparent 62%),
|
||||
radial-gradient(520px 420px at 78% 88%, rgba($cc-daisy, .14), transparent 60%),
|
||||
linear-gradient(155deg, $cc-tint-2 0%, $cc-linen 48%, $cc-linen-2 100%);
|
||||
background-attachment: fixed;
|
||||
|
||||
.main-container {
|
||||
@@ -112,7 +108,7 @@ body {
|
||||
}
|
||||
|
||||
.el-scrollbar__thumb {
|
||||
background: rgba(139, 115, 85, .26);
|
||||
background: rgba($cc-earth, .26);
|
||||
}
|
||||
|
||||
.is-horizontal {
|
||||
@@ -187,7 +183,7 @@ body {
|
||||
.el-menu:not(.el-menu--inline) > div > .el-submenu.is-active > .el-submenu__title {
|
||||
color: $cc-grass-text !important;
|
||||
border-color: $cc-blossom;
|
||||
background: linear-gradient(135deg, $cc-cream-hi, rgba(245, 215, 95, .18)) !important;
|
||||
background: linear-gradient(135deg, $cc-cream-hi, rgba($cc-daisy, .18)) !important;
|
||||
box-shadow: $cc-shadow-md, inset 3px 0 0 $brand;
|
||||
}
|
||||
|
||||
@@ -195,7 +191,7 @@ body {
|
||||
.el-menu:not(.el-menu--inline) > div > a > .el-menu-item.is-active {
|
||||
color: $brand !important;
|
||||
border-color: $cc-blossom;
|
||||
background: linear-gradient(135deg, $cc-cream-hi, rgba(212, 160, 160, .22)) !important;
|
||||
background: linear-gradient(135deg, $cc-cream-hi, rgba($cc-blossom, .22)) !important;
|
||||
box-shadow: $cc-shadow-md, inset 3px 0 0 $brand;
|
||||
}
|
||||
|
||||
@@ -225,10 +221,10 @@ body {
|
||||
border-radius: 11px;
|
||||
/* 浅底 + 同色深图标。底色不能太淡,否则小图标「看不见」(用户反馈对比度不够),
|
||||
所以 tint 用 .22 并加 1px 内描边。 */
|
||||
color: #9a5c35 !important;
|
||||
color: $cc-terra !important;
|
||||
fill: currentColor;
|
||||
background: rgba(154, 92, 53, .22);
|
||||
box-shadow: inset 0 0 0 1px rgba(154, 92, 53, .32);
|
||||
background: rgba($cc-terra, .22);
|
||||
box-shadow: inset 0 0 0 1px rgba($cc-terra, .32);
|
||||
}
|
||||
|
||||
/* 按菜单顺序在这 4 个色里轮换 */
|
||||
@@ -267,7 +263,7 @@ body {
|
||||
bottom: 7px;
|
||||
width: 2px;
|
||||
border-radius: 1px;
|
||||
background: linear-gradient(180deg, rgba(154, 92, 53, .38), rgba(212, 160, 160, .22));
|
||||
background: linear-gradient(180deg, rgba($cc-terra, .38), rgba($cc-blossom, .22));
|
||||
}
|
||||
|
||||
.el-menu--inline .el-menu-item,
|
||||
@@ -321,19 +317,19 @@ body {
|
||||
.el-menu--inline .el-menu-item:hover,
|
||||
.el-menu--inline .el-submenu > .el-submenu__title:hover {
|
||||
color: $brand !important;
|
||||
background: rgba(245, 215, 95, .20) !important;
|
||||
background: rgba($cc-daisy, .20) !important;
|
||||
transform: none !important;
|
||||
|
||||
&::before {
|
||||
border-color: $brand;
|
||||
background: rgba(154, 92, 53, .16);
|
||||
background: rgba($cc-terra, .16);
|
||||
}
|
||||
}
|
||||
|
||||
.el-menu--inline .el-menu-item.is-active {
|
||||
color: $brand !important;
|
||||
font-weight: 650;
|
||||
background: linear-gradient(90deg, rgba(212, 160, 160, .30), rgba(245, 215, 95, .16)) !important;
|
||||
background: linear-gradient(90deg, rgba($cc-blossom, .30), rgba($cc-daisy, .16)) !important;
|
||||
}
|
||||
|
||||
.el-menu--inline .el-menu-item.is-active::before {
|
||||
@@ -342,7 +338,7 @@ body {
|
||||
margin-top: -5px;
|
||||
border-color: $brand;
|
||||
background: $brand;
|
||||
box-shadow: 0 0 0 4px rgba(154, 92, 53, .16);
|
||||
box-shadow: 0 0 0 4px rgba($cc-terra, .16);
|
||||
}
|
||||
|
||||
/* 三级:在二级基础上小步缩进,不把内容推到很右边 */
|
||||
@@ -470,14 +466,14 @@ body {
|
||||
background: transparent !important;
|
||||
|
||||
&:hover {
|
||||
background: rgba(245, 215, 95, .24) !important;
|
||||
background: rgba($cc-daisy, .24) !important;
|
||||
color: $brand !important;
|
||||
}
|
||||
|
||||
&.is-active {
|
||||
color: $brand !important;
|
||||
font-weight: 650;
|
||||
background: linear-gradient(90deg, rgba(212, 160, 160, .32), rgba(245, 215, 95, .18)) !important;
|
||||
background: linear-gradient(90deg, rgba($cc-blossom, .32), rgba($cc-daisy, .18)) !important;
|
||||
}
|
||||
|
||||
.svg-icon {
|
||||
@@ -499,7 +495,7 @@ body {
|
||||
bottom: 7px;
|
||||
width: 2px;
|
||||
border-radius: 1px;
|
||||
background: linear-gradient(180deg, rgba(154, 92, 53, .34), rgba(212, 160, 160, .2));
|
||||
background: linear-gradient(180deg, rgba($cc-terra, .34), rgba($cc-blossom, .2));
|
||||
}
|
||||
|
||||
.el-menu-item,
|
||||
@@ -528,7 +524,7 @@ body {
|
||||
|
||||
&:hover {
|
||||
color: $brand !important;
|
||||
background: rgba(245, 215, 95, .24) !important;
|
||||
background: rgba($cc-daisy, .24) !important;
|
||||
|
||||
&::before {
|
||||
border-color: $brand;
|
||||
@@ -538,7 +534,7 @@ body {
|
||||
&.is-active {
|
||||
color: $brand !important;
|
||||
font-weight: 650;
|
||||
background: rgba(212, 160, 160, .26) !important;
|
||||
background: rgba($cc-blossom, .26) !important;
|
||||
|
||||
&::before {
|
||||
border-color: $brand;
|
||||
|
||||
@@ -14,7 +14,7 @@ $brand: $cc-terra;
|
||||
$ink: $cc-ink;
|
||||
$ink-2: $cc-ink-2;
|
||||
$ink-3: $cc-ink-3;
|
||||
$line: #eadfd0;
|
||||
$line: $cc-border-3;
|
||||
|
||||
/* ------------------------------- 按钮 ------------------------------- */
|
||||
.el-button {
|
||||
@@ -59,8 +59,8 @@ $line: #eadfd0;
|
||||
color: #fff;
|
||||
|
||||
&:hover, &:focus {
|
||||
background: #854c2a;
|
||||
border-color: #854c2a;
|
||||
background: $cc-terra-deep;
|
||||
border-color: $cc-terra-deep;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
@@ -233,7 +233,7 @@ $line: #eadfd0;
|
||||
}
|
||||
|
||||
.el-table__row:hover > td.el-table__cell {
|
||||
background: #fbf5ea;
|
||||
background: $cc-tint-3;
|
||||
}
|
||||
|
||||
.el-button--text {
|
||||
@@ -249,12 +249,28 @@ $line: #eadfd0;
|
||||
}
|
||||
|
||||
/* ------------------------------- 分页 -------------------------------
|
||||
分页保持在页面最底部(与原型图一致),不做悬浮/吸底
|
||||
------------------------------------------------------------------- */
|
||||
.app-container .pagination-container {
|
||||
margin-top: 6px;
|
||||
padding: 8px 16px 6px;
|
||||
分页保持在页面最底部(与原型图一致),不做悬浮/吸底。
|
||||
|
||||
★ 这里的选择器刻意把 .pagination-container 写两遍(权重 0,3,0):
|
||||
components/Pagination/index.vue 是 scoped 组件,它的规则会被编译成
|
||||
.pagination-container[data-v-xxxxxxx],权重 0,2,0,而且**排在皮肤层后面**
|
||||
⇒ 只写一遍时权重打平、组件赢,原版那条 background:#fff 就会在奶油底上
|
||||
露出一条白带,padding:32px 16px 还会把分页推离表格一大截。
|
||||
组件里那条已经删掉了,这里再抬一档权重,防止以后有人加回去又悄悄复发。
|
||||
|
||||
分页右对齐靠 text-align(原来靠 ruoyi.scss 里 el-pagination 的
|
||||
position:absolute + right:0,那会让分页脱离文档流、外层高度算不准)。 */
|
||||
.app-container .pagination-container.pagination-container {
|
||||
margin: 4px 0 0;
|
||||
padding: 8px 0 2px;
|
||||
background: transparent;
|
||||
border-radius: 14px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* 表格里的文字按钮(编辑 / 删除 / 详情…)不许把标签折成两行 */
|
||||
.el-table .el-button--text {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.el-pagination {
|
||||
@@ -426,6 +442,103 @@ $line: #eadfd0;
|
||||
border-bottom-color: $cc-line-2;
|
||||
}
|
||||
|
||||
/* ================= Element 内部写死的冷色 =================
|
||||
下面这些色在 element-ui 的 scss 里是**字面量**(不是变量),
|
||||
改 element-variables.scss 覆盖不到,只能在皮肤层压掉。
|
||||
共同特征:都是冷蓝 / 冷灰 / 冷绿,放在奶油底上明显出戏。
|
||||
======================================================== */
|
||||
|
||||
/* 图片上传(ImageUpload 组件,头像 / banner):
|
||||
①「+」虚线框:原 background #fbfdff、dashed #c0ccda、图标 #8c939d,全是冷色;
|
||||
② 上传成功的绿对勾角标:upload.scss 里写死 #13ce66 的冷绿。 */
|
||||
.el-upload--picture-card {
|
||||
background-color: $cc-cream-hi;
|
||||
border: 1px dashed $cc-line;
|
||||
border-radius: 14px; /* 原 6px,和弹层/卡片统一 */
|
||||
|
||||
i {
|
||||
color: $cc-ink-4;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
border-color: $cc-blossom-deep;
|
||||
}
|
||||
}
|
||||
|
||||
/* 上传成功的绿勾角标:upload.scss 里写死 #13ce66,且用的是**带父级**的三段选择器
|
||||
(权重 0,2,0)——只写 `.el-upload-list__item-status-label` 单类会被它压住,必须对齐权重。
|
||||
顺带把角标的黑影 rgba(0,0,0,.2) / #ccc 也换成暖棕柔影。 */
|
||||
.el-upload-list--picture-card .el-upload-list__item-status-label,
|
||||
.el-upload-list--picture .el-upload-list__item-status-label,
|
||||
.el-upload-cover__label {
|
||||
background: $cc-grass-deep;
|
||||
box-shadow: 0 1px 1px rgba(139, 115, 85, .28);
|
||||
}
|
||||
|
||||
/* 多选下拉里已选中的标签底:原 #f0f2f5 冷蓝灰 */
|
||||
.el-select .el-tag,
|
||||
.el-cascader__tags .el-tag {
|
||||
background-color: $cc-linen-2;
|
||||
border-color: $cc-border-2;
|
||||
}
|
||||
|
||||
/* 日期 / 时间 / 颜色面板的冷灰分隔线与近黑文字(原 #e4e4e4 / #dcdcdc / #333) */
|
||||
.el-picker-panel__footer,
|
||||
.el-picker-panel__sidebar,
|
||||
.el-time-panel__footer,
|
||||
.el-date-picker__time-header,
|
||||
.el-date-range-picker__content.is-left,
|
||||
.el-date-range-picker__time-header {
|
||||
border-color: $cc-line-2;
|
||||
background-color: $cc-cream-hi;
|
||||
}
|
||||
|
||||
.el-picker-panel__btn,
|
||||
.el-color-dropdown__btn {
|
||||
border-color: $cc-border-2;
|
||||
color: $cc-ink-2;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
/* 日期面板「快捷选项」选中态:原 #e6f1fe 淡蓝底 */
|
||||
.el-picker-panel__shortcut.active {
|
||||
background-color: rgba(245, 215, 95, .28);
|
||||
color: $cc-terra;
|
||||
}
|
||||
|
||||
.el-color-picker__trigger,
|
||||
.el-color-hue-slider__thumb,
|
||||
.el-color-alpha-slider__thumb {
|
||||
border-color: $cc-border-2;
|
||||
}
|
||||
|
||||
/* 左/右侧标签页(border-card 变体):原 #d1dbe5 */
|
||||
.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active,
|
||||
.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active {
|
||||
border-top-color: $cc-border-2;
|
||||
border-bottom-color: $cc-border-2;
|
||||
}
|
||||
|
||||
/* 输入框内滚动条滑块:原 #b4bccc */
|
||||
.el-input::-webkit-scrollbar-thumb {
|
||||
background: $cc-border-1;
|
||||
}
|
||||
|
||||
/* 加载遮罩:Element 默认 rgba(255,255,255,.9),
|
||||
在奶油底页面上是「刺眼白闪」(旋转图标本身已是陶土色) */
|
||||
.el-loading-mask {
|
||||
background-color: rgba(250, 246, 240, .86);
|
||||
}
|
||||
|
||||
/* 斑马纹行 / 描述列表标签底:原 #fafafa 冷灰 */
|
||||
.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell {
|
||||
background: $cc-cream;
|
||||
}
|
||||
|
||||
.el-descriptions-item__label.is-bordered-label {
|
||||
background: $cc-linen;
|
||||
}
|
||||
|
||||
/* ------------------------------- 无障碍 -------------------------------
|
||||
规范要求动效提供 reduced-motion 备选:关掉悬停位移/旋转,只留颜色变化
|
||||
------------------------------------------------------------------- */
|
||||
|
||||
@@ -376,7 +376,7 @@ export default {
|
||||
.popup-main {
|
||||
position: relative;
|
||||
margin: 10px auto;
|
||||
background: #fff;
|
||||
background: #fffdfa; /* $cc-cream-hi */
|
||||
border-radius: 5px;
|
||||
font-size: 12px;
|
||||
overflow: hidden;
|
||||
@@ -385,7 +385,7 @@ export default {
|
||||
overflow: hidden;
|
||||
line-height: 34px;
|
||||
padding-top: 6px;
|
||||
background: #f2f2f2;
|
||||
background: #ece2d3; /* $cc-linen-2 */
|
||||
}
|
||||
.popup-result {
|
||||
box-sizing: border-box;
|
||||
@@ -404,7 +404,7 @@ export default {
|
||||
margin-left: -70px;
|
||||
text-align: center;
|
||||
line-height: 30px;
|
||||
background: #fff;
|
||||
background: #fffdfa; /* $cc-cream-hi */
|
||||
}
|
||||
.popup-result table {
|
||||
text-align: center;
|
||||
@@ -419,7 +419,7 @@ export default {
|
||||
height: 30px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
border: 1px solid #e8e8e8;
|
||||
border: 1px solid rgba(139, 115, 85, 0.2); /* $cc-line-2 */
|
||||
}
|
||||
.popup-result-scroll {
|
||||
font-size: 12px;
|
||||
|
||||
@@ -198,7 +198,7 @@ export default {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.upload-file-list .el-upload-list__item {
|
||||
border: 1px solid #e4e7ed;
|
||||
border: 1px solid rgba(212, 160, 160, 0.55); /* $cc-line */
|
||||
line-height: 2;
|
||||
margin-bottom: 10px;
|
||||
position: relative;
|
||||
|
||||
@@ -183,7 +183,7 @@ export default {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
box-shadow: none !important;
|
||||
border-bottom: 1px solid #d9d9d9;
|
||||
border-bottom: 1px solid rgba(139, 115, 85, 0.2); /* $cc-line-2 */
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -77,7 +77,7 @@ export default {
|
||||
height: 100%;
|
||||
padding: 0 5px;
|
||||
&:hover {
|
||||
background: #ececec;
|
||||
background: #ece2d3; /* $cc-linen-2 */
|
||||
border-radius: 5px;
|
||||
}
|
||||
.icon {
|
||||
@@ -94,7 +94,7 @@ export default {
|
||||
}
|
||||
}
|
||||
.icon-item.active {
|
||||
background: #ececec;
|
||||
background: #ece2d3; /* $cc-linen-2 */
|
||||
border-radius: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,9 +67,13 @@ export default {
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.el-image {
|
||||
border-radius: 5px;
|
||||
background-color: #ebeef5;
|
||||
box-shadow: 0 0 5px 1px #ccc;
|
||||
/* 原为冷灰底(ebeef5)+ 硬灰影(0 0 5px 1px ccc)+ 5px 方角。
|
||||
列表页的头像/图片缩略图全走这个组件,冷灰底 + 硬影在奶油卡上很突兀,
|
||||
而且它在表格里被 skin.scss 压到 32px ⇒ 出错占位图标(原本 30px)几乎铺满整格,
|
||||
看起来像"图裂了"。改成暖色板 + 柔和暖影,占位图缩小到不刺眼。 */
|
||||
border-radius: 10px;
|
||||
background-color: #f3ece0; // $cc-linen
|
||||
box-shadow: 0 1px 3px rgba(139, 115, 85, 0.18);
|
||||
::v-deep .el-image__inner {
|
||||
transition: all 0.3s;
|
||||
cursor: pointer;
|
||||
@@ -83,8 +87,8 @@ export default {
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
color: #7a664e;
|
||||
font-size: 30px;
|
||||
color: #8b755a; // $cc-ink-4
|
||||
font-size: 18px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -104,10 +104,12 @@ export default {
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.pagination-container {
|
||||
background: #fff;
|
||||
padding: 32px 16px;
|
||||
}
|
||||
/* 只保留「隐藏」这一条。原版的 background:#fff + padding:32px 16px 已经删掉:
|
||||
本组件是 scoped 的,选择器权重是 .pagination-container[data-v-x] (0,2,0),
|
||||
而皮肤层(assets/styles/skin.scss)的 .app-container .pagination-container 也是 (0,2,0)
|
||||
—— 权重打平、组件样式在产物里更靠后,于是原版这两条永远赢:
|
||||
在奶油底 .app-container 上露出一条纯白带,还有 32px 的上下留白。
|
||||
⇒ 分页的底色/间距/圆角一律由皮肤层负责,这里不要再写。 */
|
||||
.pagination-container.hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@@ -61,13 +61,14 @@ export default {
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
/* 冷中性半透明(纯黑遮罩 / 纯黑影)→ 暖棕:Cottagecore 里不留灰黑 */
|
||||
.rightPanel-background {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
opacity: 0;
|
||||
transition: opacity .3s cubic-bezier(.7, .3, .1, 1);
|
||||
background: rgba(0, 0, 0, .2);
|
||||
background: rgba(79, 65, 48, .22); /* $cc-ink 22% */
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
@@ -78,10 +79,10 @@ export default {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, .05);
|
||||
box-shadow: 0 0 15px 0 rgba(139, 115, 85, .13); /* $cc-earth 13% */
|
||||
transition: all .25s cubic-bezier(.7, .3, .1, 1);
|
||||
transform: translate(100%);
|
||||
background: #fff;
|
||||
background: #fffdfa; /* $cc-cream-hi */
|
||||
z-index: 40000;
|
||||
}
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ export default {
|
||||
.screenfull-svg {
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
fill: #5a5e66;;
|
||||
fill: #7a664e; /* $cc-ink-3;原为冷板岩(5a5e66),且多打了一个分号 */
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
vertical-align: 10px;
|
||||
|
||||
@@ -137,7 +137,7 @@ export default {
|
||||
|
||||
.el-icon-caret-bottom {
|
||||
font-size: 12px;
|
||||
color: #9a886e;
|
||||
color: #8b755a; /* $cc-ink-4;原为未加暗的旧值(9a886e) */
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -194,7 +194,7 @@ export default {
|
||||
.setting-drawer-content {
|
||||
.setting-drawer-title {
|
||||
margin-bottom: 12px;
|
||||
color: rgba(0, 0, 0, .85);
|
||||
color: #4f4130; /* $cc-ink */
|
||||
font-size: 14px;
|
||||
line-height: 22px;
|
||||
font-weight: bold;
|
||||
@@ -242,13 +242,13 @@ export default {
|
||||
|
||||
.drawer-title {
|
||||
margin-bottom: 12px;
|
||||
color: rgba(0, 0, 0, .85);
|
||||
color: #4f4130; /* $cc-ink */
|
||||
font-size: 14px;
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
.drawer-item {
|
||||
color: rgba(0, 0, 0, .65);
|
||||
color: #5f4f3d; /* $cc-ink-2 */
|
||||
font-size: 14px;
|
||||
padding: 12px 0;
|
||||
}
|
||||
|
||||
@@ -304,8 +304,9 @@ export default {
|
||||
}
|
||||
|
||||
&.active {
|
||||
/* 渐变两端都保证白字 ≥4.5:1(#9a5c35 为 5.31:1,#7d4a2a 为 7.28:1) */
|
||||
background: linear-gradient(135deg, #9a5c35, #7d4a2a);
|
||||
/* 渐变两端都保证白字 ≥4.5:1(#9a5c35 为 5.31:1,#854c2a 为 6.85:1)
|
||||
末端用 $cc-terra-deep,和 skin.scss 里主色悬停是同一个值 */
|
||||
background: linear-gradient(135deg, #9a5c35, #854c2a);
|
||||
color: #fff;
|
||||
border-color: transparent;
|
||||
box-shadow: 0 4px 12px rgba(139, 115, 85, 0.22);
|
||||
@@ -371,8 +372,8 @@ export default {
|
||||
vertical-align: 2px;
|
||||
border-radius: 50%;
|
||||
text-align: center;
|
||||
color: #8b98ad;
|
||||
background-color: rgba(139, 152, 173, .18);
|
||||
color: #7a664e; /* $cc-ink-3;原为冷板岩(8b98ad) */
|
||||
background-color: rgba(122, 102, 78, 0.18);
|
||||
transition: all .3s cubic-bezier(.645, .045, .355, 1);
|
||||
transform-origin: 100% 50%;
|
||||
&:before {
|
||||
|
||||
@@ -53,7 +53,7 @@ export default {
|
||||
max-width: 100%;
|
||||
margin: 100px auto;
|
||||
.pan-back-btn {
|
||||
background: #008489;
|
||||
background: #9a5c35;
|
||||
color: #fff;
|
||||
border: none!important;
|
||||
}
|
||||
@@ -69,7 +69,7 @@ export default {
|
||||
.text-jumbo {
|
||||
font-size: 60px;
|
||||
font-weight: 700;
|
||||
color: #484848;
|
||||
color: #4f4130;
|
||||
}
|
||||
.list-unstyled {
|
||||
font-size: 14px;
|
||||
@@ -77,7 +77,7 @@ export default {
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
a {
|
||||
color: #008489;
|
||||
color: #9a5c35;
|
||||
text-decoration: none;
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
|
||||
@@ -170,7 +170,7 @@ export default {
|
||||
font-size: 32px;
|
||||
font-weight: bold;
|
||||
line-height: 40px;
|
||||
color: #1482f0;
|
||||
color: #9a5c35;
|
||||
opacity: 0;
|
||||
margin-bottom: 20px;
|
||||
animation-name: slideUp;
|
||||
@@ -205,7 +205,7 @@ export default {
|
||||
float: left;
|
||||
width: 110px;
|
||||
height: 36px;
|
||||
background: #1482f0;
|
||||
background: #9a5c35;
|
||||
border-radius: 100px;
|
||||
text-align: center;
|
||||
color: #ffffff;
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
<div style="margin-top: 16px; padding-left: 68px">
|
||||
|
||||
<div v-for="(item, index) in items" :key="index" style="display: flex; align-items: center; margin-bottom: 10px">
|
||||
<span style="width: 100px; color: #606266; font-size: 13px">临时爆率 #{{ index + 1 }}</span>
|
||||
<span style="width: 100px; color: #5f4f3d; font-size: 13px">临时爆率 #{{ index + 1 }}</span>
|
||||
<el-input
|
||||
v-model="item.lowPrice"
|
||||
type="number"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<el-input v-model="queryParams.name" placeholder="按赌注搜索" clearable style="width:200px;margin-right:10px" @clear="loadData" @keyup.enter.native="loadData">
|
||||
<el-button slot="append" icon="el-icon-search" @click="loadData" />
|
||||
</el-input>
|
||||
<span style="margin-left:10px;margin-right:4px;color:#606266">身份:</span>
|
||||
<span style="margin-left:10px;margin-right:4px;color:#5f4f3d">身份:</span>
|
||||
<el-radio-group v-model="audienceFilter" size="small" @change="loadData">
|
||||
<el-radio-button v-for="a in audiences" :key="a.key" :label="a.key">{{ a.name }}</el-radio-button>
|
||||
</el-radio-group>
|
||||
@@ -18,20 +18,20 @@
|
||||
<el-table-column label="总回合" min-width="80" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="totalRoundsOf(scope.row) != null">{{ totalRoundsOf(scope.row) }}</span>
|
||||
<span v-else style="color:#c0c4cc">-</span>
|
||||
<span v-else style="color:#8b755a">-</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="目标RTP" min-width="80" align="center">
|
||||
<template slot-scope="scope">
|
||||
<!-- 显示 1 位小数:配比是"整数条回合 × 桶内实际均值"分出来的,精确值留在 title 里,鼠标悬停可看 -->
|
||||
<span v-if="targetRtp(scope.row) != null" :title="targetRtp(scope.row) + '%'">{{ Number(targetRtp(scope.row)).toFixed(1) + '%' }}</span>
|
||||
<span v-else style="color:#c0c4cc">-</span>
|
||||
<span v-else style="color:#8b755a">-</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="实时RTP" min-width="80" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="actualRtp(scope.row) != null" :style="{color: actualRtp(scope.row) > (targetRtp(scope.row) != null ? targetRtp(scope.row) : 0) ? '#f56c6c' : '#67c23a'}">{{ actualRtp(scope.row) }}%</span>
|
||||
<span v-else style="color:#c0c4cc">-</span>
|
||||
<span v-if="actualRtp(scope.row) != null" :style="{color: actualRtp(scope.row) > (targetRtp(scope.row) != null ? targetRtp(scope.row) : 0) ? '#a4485a' : '#457450'}">{{ actualRtp(scope.row) }}%</span>
|
||||
<span v-else style="color:#8b755a">-</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="状态" min-width="60" align="center">
|
||||
@@ -71,11 +71,11 @@
|
||||
<el-form-item label="基本赌注"><el-input-number v-model="form.bet" disabled style="width:100%" /></el-form-item>
|
||||
<el-form-item label="总回合数">
|
||||
<el-input-number v-model="form.totalRounds" :min="0" :step="50" style="width:100%" />
|
||||
<span style="color:#909399;font-size:12px">身份级参数,仅作用于身份【{{ audienceLabel(audienceFilter) }}】</span>
|
||||
<span style="color:#7a664e;font-size:12px">身份级参数,仅作用于身份【{{ audienceLabel(audienceFilter) }}】</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="目标RTP">
|
||||
<el-input-number v-model="form.rtp" :min="0" :max="1" :precision="3" :step="0.05" style="width:100%" />
|
||||
<span style="color:#909399;font-size:12px">身份级参数,仅作用于身份【{{ audienceLabel(audienceFilter) }}】</span>
|
||||
<span style="color:#7a664e;font-size:12px">身份级参数,仅作用于身份【{{ audienceLabel(audienceFilter) }}】</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="固定/收敛回合%">
|
||||
<el-input-number v-model="form.fixedPct" :min="0" :max="100" :step="5" style="width:38%" @change="onFixedPctChange" />
|
||||
@@ -83,7 +83,7 @@
|
||||
<span style="margin:0 4%">/</span>
|
||||
<el-input-number v-model="form.convergePct" :min="0" :max="100" :step="5" style="width:38%" @change="onConvergePctChange" />
|
||||
<span style="margin-left:4px">%</span>
|
||||
<div style="color:#909399;font-size:12px">固定% + 收敛% = 100;收敛回合用于一轮内把实时RTP动态拉回目标,随保存作用于当前身份</div>
|
||||
<div style="color:#7a664e;font-size:12px">固定% + 收敛% = 100;收敛回合用于一轮内把实时RTP动态拉回目标,随保存作用于当前身份</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态">
|
||||
<el-radio-group v-model="form.status">
|
||||
@@ -124,7 +124,7 @@
|
||||
<span style="margin:0 4%">/</span>
|
||||
<el-input-number v-model="recalcForm.convergePct" :min="0" :max="100" :step="5" style="width:40%" @change="onRecalcConvergePctChange" />
|
||||
<span style="margin-left:4px">%</span>
|
||||
<div style="color:#909399;font-size:12px">固定% + 收敛% = 100;收敛回合用于一轮内把实时RTP动态拉回目标</div>
|
||||
<div style="color:#7a664e;font-size:12px">固定% + 收敛% = 100;收敛回合用于一轮内把实时RTP动态拉回目标</div>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer">
|
||||
@@ -166,11 +166,11 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="剩余" min-width="70" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span :style="{color: (scope.row.remaining != null ? scope.row.remaining : scope.row.count) <= 0 ? '#f56c6c' : '#67c23a'}">{{ scope.row.remaining != null ? scope.row.remaining : scope.row.count }}</span>
|
||||
<span :style="{color: (scope.row.remaining != null ? scope.row.remaining : scope.row.count) <= 0 ? '#a4485a' : '#457450'}">{{ scope.row.remaining != null ? scope.row.remaining : scope.row.count }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="动态收敛回合" min-width="100" align="center">
|
||||
<template slot-scope="scope"><span style="color:#e6a23c">{{ scope.row.convergeCount || 0 }}</span></template>
|
||||
<template slot-scope="scope"><span style="color:#8f6418">{{ scope.row.convergeCount || 0 }}</span></template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div slot="footer">
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<el-row :gutter="16" style="margin-bottom:16px">
|
||||
<el-col :span="6"><el-card shadow="hover"><div class="stat"><small>累计投注</small><h3>{{ summary.totalCost || 0 }}</h3></div></el-card></el-col>
|
||||
<el-col :span="6"><el-card shadow="hover"><div class="stat"><small>累计赢奖</small><h3>{{ summary.totalWin || 0 }}</h3></div></el-card></el-col>
|
||||
<el-col :span="6"><el-card shadow="hover"><div class="stat"><small>整体RTP</small><h3 :style="{color: rtp > 100 ? 'red' : 'green'}">{{ rtp }}%</h3></div></el-card></el-col>
|
||||
<el-col :span="6"><el-card shadow="hover"><div class="stat"><small>整体RTP</small><h3 :style="{color: rtp > 100 ? '#a4485a' : '#457450'}">{{ rtp }}%</h3></div></el-card></el-col>
|
||||
<el-col :span="6"><el-card shadow="hover"><div class="stat"><small>总局数</small><h3>{{ summary.totalSpins || 0 }}</h3></div></el-card></el-col>
|
||||
</el-row>
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
<el-table-column prop="playerCount" label="玩家数" min-width="90" align="center" />
|
||||
<el-table-column label="RTP" min-width="100" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span :style="{color: scope.row.totalCost > 0 && scope.row.totalWin / scope.row.totalCost > 1 ? 'red' : 'green'}">
|
||||
<span :style="{color: scope.row.totalCost > 0 && scope.row.totalWin / scope.row.totalCost > 1 ? '#a4485a' : '#457450'}">
|
||||
{{ scope.row.totalCost > 0 ? (Math.round(scope.row.totalWin / scope.row.totalCost * 10000) / 100).toFixed(2) + '%' : '-' }}
|
||||
</span>
|
||||
</template>
|
||||
@@ -88,5 +88,5 @@ export default {
|
||||
|
||||
<style scoped>
|
||||
.stat { text-align: center; }
|
||||
.stat small { color: #909399; }
|
||||
.stat small { color: #7a664e; }
|
||||
</style>
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
</el-form-item>
|
||||
<el-form-item label="兜底饰品">
|
||||
<el-switch v-model="form.isFallback" :active-value="1" :inactive-value="0" active-text="是" inactive-text="否" />
|
||||
<div style="color:#909399;font-size:12px;margin-top:4px">未命中区间时随机选择一个兜底饰品返奖</div>
|
||||
<div style="color:#7a664e;font-size:12px;margin-top:4px">未命中区间时随机选择一个兜底饰品返奖</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="返奖区间">
|
||||
<div style="display:flex;align-items:center;gap:8px">
|
||||
@@ -88,7 +88,7 @@
|
||||
<span>~</span>
|
||||
<el-input-number v-model="form.winHigh" :min="0" :precision="2" :step="0.01" controls-position="right" placeholder="最大值" style="flex:1" />
|
||||
</div>
|
||||
<div style="color:#909399;font-size:12px;margin-top:4px">玩家结算赢额落在该区间即获得此饰品(最高到 500x 封顶对应的赢额)</div>
|
||||
<div style="color:#7a664e;font-size:12px;margin-top:4px">玩家结算赢额落在该区间即获得此饰品(最高到 500x 封顶对应的赢额)</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="排序">
|
||||
<el-input-number v-model="form.sort" :min="0" :step="1" style="width:100%" />
|
||||
|
||||
@@ -69,13 +69,13 @@
|
||||
<el-col :span="6">
|
||||
<div class="stat-card">
|
||||
<div class="sc-icon sc-cyan"><i class="el-icon-wallet" /></div>
|
||||
<div class="sc-body"><small>{{ audienceLabel(audience) }}·总池余额</small><h3 :style="{color: Number(pool.balance) < 0 ? '#f56c6c' : '#409eff'}">{{ fmt(pool.balance) }}</h3></div>
|
||||
<div class="sc-body"><small>{{ audienceLabel(audience) }}·总池余额</small><h3 :style="{color: Number(pool.balance) < 0 ? '#a4485a' : '#9a5c35'}">{{ fmt(pool.balance) }}</h3></div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<div class="stat-card">
|
||||
<div class="sc-icon sc-green"><i class="el-icon-data-line" /></div>
|
||||
<div class="sc-body"><small>{{ audienceLabel(audience) }}·实时RTP</small><h3 :style="{color: rtpPct(pool.rtp) > 100 ? '#f56c6c' : '#67c23a'}">{{ rtpPct(pool.rtp).toFixed(1) }}%</h3></div>
|
||||
<div class="sc-body"><small>{{ audienceLabel(audience) }}·实时RTP</small><h3 :style="{color: rtpPct(pool.rtp) > 100 ? '#a4485a' : '#457450'}">{{ rtpPct(pool.rtp).toFixed(1) }}%</h3></div>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -130,7 +130,7 @@
|
||||
<el-table-column label="一轮花费(基数)" width="130" align="center">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ fmt(scope.row.cycleCost) }}</div>
|
||||
<div style="font-size:11px;color:#909399">{{ fmt(scope.row.costPerRound) }} × {{ scope.row.cycleRounds || '—' }}回合</div>
|
||||
<div style="font-size:11px;color:#7a664e">{{ fmt(scope.row.costPerRound) }} × {{ scope.row.cycleRounds || '—' }}回合</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="箱内下注" min-width="100" align="center">
|
||||
@@ -146,18 +146,18 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="水位余额" min-width="100" align="center">
|
||||
<template slot-scope="scope">
|
||||
<b :style="{color: Number(scope.row.balance) < 0 ? '#f56c6c' : '#409eff'}">{{ fmt(scope.row.balance) }}</b>
|
||||
<b :style="{color: Number(scope.row.balance) < 0 ? '#a4485a' : '#9a5c35'}">{{ fmt(scope.row.balance) }}</b>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="累计RTP" width="90" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span :style="{color: rtpPct(scope.row.rtp) > 100 ? '#f56c6c' : '#67c23a'}">{{ scope.row.rtp == null ? '—' : rtpPct(scope.row.rtp).toFixed(1) + '%' }}</span>
|
||||
<span :style="{color: rtpPct(scope.row.rtp) > 100 ? '#a4485a' : '#457450'}">{{ scope.row.rtp == null ? '—' : rtpPct(scope.row.rtp).toFixed(1) + '%' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="本轮RTP/进度" min-width="120" align="center">
|
||||
<template slot-scope="scope">
|
||||
<div :style="{color: rtpPct(scope.row.cycleRtp) > 100 ? '#f56c6c' : '#67c23a'}">{{ scope.row.cycleRtp == null ? '—' : rtpPct(scope.row.cycleRtp).toFixed(1) + '%' }}</div>
|
||||
<div style="font-size:11px;color:#909399">{{ scope.row.cycleDrawn || 0 }} / {{ scope.row.totalRounds || '—' }} 回合</div>
|
||||
<div :style="{color: rtpPct(scope.row.cycleRtp) > 100 ? '#a4485a' : '#457450'}">{{ scope.row.cycleRtp == null ? '—' : rtpPct(scope.row.cycleRtp).toFixed(1) + '%' }}</div>
|
||||
<div style="font-size:11px;color:#7a664e">{{ scope.row.cycleDrawn || 0 }} / {{ scope.row.totalRounds || '—' }} 回合</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="收敛占比" width="80" align="center">
|
||||
@@ -198,13 +198,13 @@
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="当前水位">
|
||||
<b :style="{color: Number(form.balance) < 0 ? '#f56c6c' : '#409eff'}">{{ fmt(form.balance) }}</b>
|
||||
<b :style="{color: Number(form.balance) < 0 ? '#a4485a' : '#9a5c35'}">{{ fmt(form.balance) }}</b>
|
||||
</el-form-item>
|
||||
<el-form-item label="调整金额">
|
||||
<el-input-number v-model="form.amount" :min="0.01" :precision="2" :step="100" :controls="false" style="width:100%" placeholder="请输入金额" />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="form.amount" label="调整后水位">
|
||||
<b :style="{color: afterBalance < 0 ? '#f56c6c' : '#67c23a'}">{{ fmt(afterBalance) }}</b>
|
||||
<b :style="{color: afterBalance < 0 ? '#a4485a' : '#457450'}">{{ fmt(afterBalance) }}</b>
|
||||
</el-form-item>
|
||||
<el-form-item label="调整原因" required>
|
||||
<el-input v-model="form.remark" maxlength="100" placeholder="必填,如:活动补水" />
|
||||
@@ -234,7 +234,7 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="金额" min-width="110" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span :style="{color: scope.row.type === 1 ? '#67c23a' : (scope.row.type === 2 ? '#f56c6c' : '#e6a23c')}">
|
||||
<span :style="{color: scope.row.type === 1 ? '#457450' : (scope.row.type === 2 ? '#a4485a' : '#8f6418')}">
|
||||
{{ scope.row.type === 1 ? '+' : (scope.row.type === 2 ? '-' : '') }}{{ fmt(scope.row.amount) }}
|
||||
</span>
|
||||
</template>
|
||||
@@ -247,13 +247,13 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="总池余额" min-width="110" align="center">
|
||||
<template slot-scope="scope">
|
||||
<b :style="{color: Number(scope.row.poolBalance) < 0 ? '#f56c6c' : '#409eff'}">{{ scope.row.poolBalance == null ? '—' : fmt(scope.row.poolBalance) }}</b>
|
||||
<b :style="{color: Number(scope.row.poolBalance) < 0 ? '#a4485a' : '#9a5c35'}">{{ scope.row.poolBalance == null ? '—' : fmt(scope.row.poolBalance) }}</b>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="operator" label="操作人" min-width="90" align="center" />
|
||||
<el-table-column label="备注" min-width="160" align="center" show-overflow-tooltip>
|
||||
<template slot-scope="scope">
|
||||
<span :style="{color: scope.row.remark ? '#303133' : '#c0c4cc'}">{{ scope.row.remark || '—' }}</span>
|
||||
<span :style="{color: scope.row.remark ? '#4f4130' : '#8b755a'}">{{ scope.row.remark || '—' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -329,7 +329,7 @@ export default {
|
||||
},
|
||||
signColor(v) {
|
||||
const n = Number(v)
|
||||
return n < 0 ? '#f56c6c' : (n > 0 ? '#67c23a' : '#303133')
|
||||
return n < 0 ? '#a4485a' : (n > 0 ? '#457450' : '#4f4130')
|
||||
},
|
||||
applyConfig(data) {
|
||||
if (!data) return
|
||||
@@ -423,30 +423,33 @@ export default {
|
||||
<style scoped>
|
||||
.page-head { margin-bottom: 14px; }
|
||||
.page-head-row { display: flex; align-items: center; justify-content: space-between; }
|
||||
.head-tip { color: #909399; font-size: 12px; margin: 6px 0 0; }
|
||||
.head-tip { color: #7a664e; font-size: 12px; margin: 6px 0 0; }
|
||||
.audience-row { display: flex; align-items: center; margin-top: 10px; }
|
||||
.aud-label { color: #606266; font-size: 13px; margin-right: 6px; }
|
||||
.aud-tip { color: #909399; font-size: 12px; margin-left: 10px; }
|
||||
.guide-panel { display: flex; gap: 16px; background: #f7f9fc; border: 1px solid #e4e9f2; border-radius: 8px; padding: 14px 16px; margin-top: 10px; }
|
||||
.aud-label { color: #5f4f3d; font-size: 13px; margin-right: 6px; }
|
||||
.aud-tip { color: #7a664e; font-size: 12px; margin-left: 10px; }
|
||||
.guide-panel { display: flex; gap: 16px; background: #f6efe3; border: 1px solid #eadfd0; border-radius: 8px; padding: 14px 16px; margin-top: 10px; }
|
||||
.guide-col { flex: 1; min-width: 0; }
|
||||
.guide-col h5 { margin: 0 0 8px; font-size: 13px; color: #303133; }
|
||||
.guide-col h5 i { color: #409eff; margin-right: 4px; }
|
||||
.guide-col h5 { margin: 0 0 8px; font-size: 13px; color: #4f4130; }
|
||||
.guide-col h5 i { color: #9a5c35; margin-right: 4px; }
|
||||
.guide-col ul { margin: 0; padding-left: 16px; }
|
||||
.guide-col li { font-size: 12px; color: #606266; line-height: 1.9; }
|
||||
.guide-col li { font-size: 12px; color: #5f4f3d; line-height: 1.9; }
|
||||
.stat-row { margin-bottom: 16px; }
|
||||
.stat-card { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid #ebeef5; border-radius: 8px; padding: 14px 16px; box-shadow: 0 1px 4px rgba(0,0,0,.04); }
|
||||
/* 统计卡图标:与侧栏一级菜单共用 cottagecore.scss 的 $cc-icon-hues 4 色
|
||||
(陶土 / 草绿 / 雏菊金 / 玫瑰粉),底一律 $cc-tint-3。
|
||||
原先第 3 个是冷青 #4a7f8c,在暖底上是唯一的冷点。 */
|
||||
.stat-card { display: flex; align-items: center; gap: 12px; background: #fffdfa; border: 1px solid #eadfd0; border-radius: 8px; padding: 14px 16px; box-shadow: 0 1px 4px rgba(139,115,85,.10); }
|
||||
.sc-icon { width: 42px; height: 42px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 20px; flex-shrink: 0; }
|
||||
.sc-blue { background: #ecf5ff; color: #409eff; }
|
||||
.sc-orange { background: #fdf6ec; color: #e6a23c; }
|
||||
.sc-cyan { background: #e8f7f7; color: #13a8a8; }
|
||||
.sc-green { background: #f0f9eb; color: #67c23a; }
|
||||
.sc-body small { color: #909399; display: block; }
|
||||
.sc-blue { background: #fbf5ea; color: #9a5c35; }
|
||||
.sc-orange { background: #fbf5ea; color: #a8791f; }
|
||||
.sc-cyan { background: #fbf5ea; color: #b57474; }
|
||||
.sc-green { background: #fbf5ea; color: #457450; }
|
||||
.sc-body small { color: #7a664e; display: block; }
|
||||
.sc-body h3 { margin: 2px 0 0; font-size: 18px; }
|
||||
.batch-card { margin-bottom: 16px; border-radius: 8px; }
|
||||
.batch-card .sub-tip { color: #909399; font-size: 12px; margin-left: 10px; }
|
||||
.fld-label { color: #606266; font-size: 13px; margin-right: 6px; }
|
||||
.fld-label .req { color: #f56c6c; margin-left: 2px; }
|
||||
.batch-card .sub-tip { color: #7a664e; font-size: 12px; margin-left: 10px; }
|
||||
.fld-label { color: #5f4f3d; font-size: 13px; margin-right: 6px; }
|
||||
.fld-label .req { color: #a4485a; margin-left: 2px; }
|
||||
.batch-card >>> .el-form-item { margin-bottom: 0; }
|
||||
.est-text { color: #e6a23c; font-size: 13px; }
|
||||
.est-text { color: #8f6418; font-size: 13px; }
|
||||
.section-head { display: flex; align-items: center; justify-content: space-between; margin: 16px 0 10px; }
|
||||
</style>
|
||||
|
||||
@@ -205,7 +205,7 @@
|
||||
<div style="margin-bottom: 6px;">
|
||||
<strong>单局奖池投放比例 (bufferRatio = {{ config.bufferRatio }})</strong>:一局最多从奖池拿出 <span style="color: #8f6418;">{{ bufferRatioPct }} 的余额</span> 来发奖
|
||||
</div>
|
||||
<div style="padding-left: 16px; color: #606266; font-size: 12px; margin-bottom: 8px;">
|
||||
<div style="padding-left: 16px; color: #5f4f3d; font-size: 12px; margin-bottom: 8px;">
|
||||
• 例:奖池余额 10000 元 → 本项上限 10000 × {{ config.bufferRatio }} = <strong>{{ poolCapDemo }} 元</strong><br>
|
||||
• 奖池 = 累计真实下注 − 累计真实返奖(机器人、白号不计)<br>
|
||||
• 口径提醒:这里填的是"最多拿出多少",不是"保留多少"——{{ config.bufferRatio }} = 最多拿出 {{ bufferRatioPct }},剩下 {{ bufferKeepPct }} 留在池里
|
||||
@@ -214,7 +214,7 @@
|
||||
<div style="margin-bottom: 6px;">
|
||||
<strong>目标RTP (rtp = {{ config.rtp }},累计口径)</strong>:按"总共该发多少 − 已经发了多少"算出<span style="color: #8f6418;">还能发多少</span>,这就是本局的返奖预算(是发奖上限,不是平台欠玩家钱)
|
||||
</div>
|
||||
<div style="padding-left: 16px; color: #606266; font-size: 12px; margin-bottom: 8px;">
|
||||
<div style="padding-left: 16px; color: #5f4f3d; font-size: 12px; margin-bottom: 8px;">
|
||||
• 本局可发额度 = 累计真实投注 × {{ rtpPct }} − 累计真实返奖;<br>
|
||||
• 例:累计投注 10 万、累计返奖 7 万 → 该发 {{ rtpDemo.should }} 万、已发 7 万 → 本局额度 <strong>{{ rtpDemo.room }} 万</strong><br>
|
||||
• 它只是"这局最多能发多少":实际发多少仍由转盘概率决定,没发完的额度继续攒到以后(所以池子厚了能一局爆大奖)。本局投注在封盘时已计入累计,历史刚好发到 {{ rtpPct }} 时,额度正好 = 本局投注 × {{ rtpPct }}<br>
|
||||
@@ -222,8 +222,8 @@
|
||||
• 实际返奖率请以首页「实时RTP」为准,不要拿本配置值当预期
|
||||
</div>
|
||||
|
||||
<div style="padding: 8px; background: #F4F4F5; border-radius: 4px; margin-top: 8px;">
|
||||
<strong style="color: #303133;">协同机制</strong>:发奖上限 = <span style="color: #9a5c35;">min(奖池余额×{{ config.bufferRatio }}, 本局可发额度)</span>,两条都要满足<br>
|
||||
<div style="padding: 8px; background: #f3ece0; border-radius: 4px; margin-top: 8px;">
|
||||
<strong style="color: #4f4130;">协同机制</strong>:发奖上限 = <span style="color: #9a5c35;">min(奖池余额×{{ config.bufferRatio }}, 本局可发额度)</span>,两条都要满足<br>
|
||||
<span style="color: #7a664e; font-size: 12px;">
|
||||
• 谁小听谁的:池子不够厚 → 按奖池的 {{ bufferRatioPct }} 卡;池子够厚 → 按返奖额度卡<br>
|
||||
• 额度够时,单局返奖可以远超本局投注("池子厚就能爆大奖")<br>
|
||||
@@ -255,7 +255,7 @@ export default {
|
||||
poolStatsList: [],
|
||||
multiplierTable: [
|
||||
{ color: 'gold', A: 1, B: 1, C: 1, D: 1 },
|
||||
{ color: 'red', A: 1, B: 1, C: 1, D: 1 },
|
||||
{ color: '#a4485a', A: 1, B: 1, C: 1, D: 1 },
|
||||
{ color: 'purple', A: 1, B: 1, C: 1, D: 1 }
|
||||
],
|
||||
// 奖池调节相关
|
||||
@@ -353,7 +353,7 @@ export default {
|
||||
},
|
||||
syncMultiplierTable() {
|
||||
const multipliers = this.config.multipliers || [];
|
||||
const colors = ['gold', 'red', 'purple'];
|
||||
const colors = ['gold', '#a4485a', 'purple'];
|
||||
const symbols = ['A', 'B', 'C', 'D'];
|
||||
this.multiplierTable = colors.map(color => {
|
||||
const row = { color };
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="倍率预览">
|
||||
<template slot-scope="scope">
|
||||
<div v-for="color in ['gold', 'red', 'purple']" :key="color" style="display: inline-block; margin-right: 16px;">
|
||||
<div v-for="color in ['gold', '#a4485a', 'purple']" :key="color" style="display: inline-block; margin-right: 16px;">
|
||||
<el-tag :type="colorTagType(color)" size="mini">{{ colorLabel(color) }}</el-tag>
|
||||
<span v-for="sym in ['A', 'B', 'C', 'D']" :key="sym" style="margin-left: 6px; font-size: 12px;">
|
||||
{{ sym }}:<b>{{ getMultiplier(scope.row, color, sym) }}</b>
|
||||
@@ -124,7 +124,7 @@ export default {
|
||||
},
|
||||
computed: {
|
||||
matrixByColor() {
|
||||
const colors = ['gold', 'red', 'purple'];
|
||||
const colors = ['gold', '#a4485a', 'purple'];
|
||||
return colors.map(color => ({
|
||||
color,
|
||||
items: this.currentMatrixList.filter(i => i.color === color)
|
||||
@@ -156,7 +156,7 @@ export default {
|
||||
openConfig(row) {
|
||||
this.currentBetAmount = row.betAmount;
|
||||
// 确保12条记录存在(即使数据库为空也生成骨架)
|
||||
const colors = ['gold', 'red', 'purple'];
|
||||
const colors = ['gold', '#a4485a', 'purple'];
|
||||
const symbols = ['A', 'B', 'C', 'D'];
|
||||
const list = [];
|
||||
colors.forEach(color => {
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
<!-- 回合结果优化展示 -->
|
||||
<div style="margin-bottom: 12px; line-height: 2;">
|
||||
<div style="margin-bottom: 8px;">
|
||||
<strong style="color: #303133;">回合结果:</strong>
|
||||
<strong style="color: #4f4130;">回合结果:</strong>
|
||||
<el-tag v-if="scope.row.result != null" type="primary" size="medium" style="font-size: 16px; font-weight: bold;">
|
||||
{{ scope.row.result }}
|
||||
</el-tag>
|
||||
@@ -33,7 +33,7 @@
|
||||
</div>
|
||||
<!-- 外圈符号序列(高亮第result格) -->
|
||||
<div style="margin-bottom: 6px;">
|
||||
<strong style="color: #606266;">外圈符号:</strong>
|
||||
<strong style="color: #5f4f3d;">外圈符号:</strong>
|
||||
<span v-if="scope.row.symbols" style="font-family: 'Courier New', monospace; font-size: 14px;">
|
||||
<span
|
||||
v-for="(sym, idx) in scope.row.symbols.split('')"
|
||||
@@ -45,7 +45,7 @@
|
||||
fontWeight: idx == scope.row.result ? 'bold' : 'normal',
|
||||
fontSize: idx == scope.row.result ? '16px' : '14px',
|
||||
color: idx == scope.row.result ? '#8f6418' : '#7a664e',
|
||||
backgroundColor: idx == scope.row.result ? '#FDF6EC' : 'transparent',
|
||||
backgroundColor: idx == scope.row.result ? '#fbf5ea' : 'transparent',
|
||||
padding: idx == scope.row.result ? '3px 0' : '0',
|
||||
borderRadius: '3px',
|
||||
border: idx == scope.row.result ? '2px solid #8f6418' : 'none',
|
||||
@@ -56,7 +56,7 @@
|
||||
</div>
|
||||
<!-- 内圈颜色序列(高亮第result格) -->
|
||||
<div>
|
||||
<strong style="color: #606266;">内圈颜色:</strong>
|
||||
<strong style="color: #5f4f3d;">内圈颜色:</strong>
|
||||
<span v-if="scope.row.innerColors" style="font-family: 'Courier New', monospace; font-size: 14px;">
|
||||
<span
|
||||
v-for="(color, idx) in formatInnerColors(scope.row.innerColors).split('')"
|
||||
@@ -67,7 +67,7 @@
|
||||
textAlign: 'center',
|
||||
fontWeight: idx == scope.row.result ? 'bold' : 'normal',
|
||||
fontSize: idx == scope.row.result ? '16px' : '14px',
|
||||
color: idx == scope.row.result ? getHighlightColor(color) : '#C0C4CC',
|
||||
color: idx == scope.row.result ? getHighlightColor(color) : '#8b755a',
|
||||
backgroundColor: idx == scope.row.result ? getHighlightBgColor(color) : 'transparent',
|
||||
padding: idx == scope.row.result ? '3px 0' : '0',
|
||||
borderRadius: '3px',
|
||||
@@ -220,9 +220,10 @@ export default {
|
||||
const map = { '金': '#8f6418', '红': '#a4485a', '紫': '#7a664e' };
|
||||
return map[color] || '#9a5c35';
|
||||
},
|
||||
/** 高亮背景色(用于中奖格背景) */
|
||||
/** 高亮背景色(用于中奖格背景)
|
||||
取值是 cottagecore.scss 的 $cc-tint-3 / $cc-blossom-tint / $cc-linen */
|
||||
getHighlightBgColor(color) {
|
||||
const map = { '金': '#FDF6EC', '红': '#FEF0F0', '紫': '#F4F4F5' };
|
||||
const map = { '金': '#fbf5ea', '红': '#f7e9e6', '紫': '#f3ece0' };
|
||||
return map[color] || '#fbf5ea';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -169,12 +169,14 @@ export default {
|
||||
.title {
|
||||
margin: 0px auto 30px auto;
|
||||
text-align: center;
|
||||
color: #707070;
|
||||
color: #4f4130;
|
||||
}
|
||||
|
||||
.login-form {
|
||||
border-radius: 6px;
|
||||
background: #ffffff;
|
||||
border-radius: 20px;
|
||||
background: #fffdfa;
|
||||
border: 1px solid rgba(212, 160, 160, .55);
|
||||
box-shadow: 0 12px 32px rgba(139, 115, 85, .17);
|
||||
width: 400px;
|
||||
padding: 25px 25px 5px 25px;
|
||||
.el-input {
|
||||
@@ -192,7 +194,7 @@ export default {
|
||||
.login-tip {
|
||||
font-size: 13px;
|
||||
text-align: center;
|
||||
color: #bfbfbf;
|
||||
color: #8b755a;
|
||||
}
|
||||
.login-code {
|
||||
width: 33%;
|
||||
|
||||
@@ -112,7 +112,7 @@
|
||||
></el-switch>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<el-table-column width="220" label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
|
||||
@@ -137,7 +137,7 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="来源IP" align="center" prop="operIp" width="130" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="操作" align="center" width="80" class-name="small-padding fixed-width">
|
||||
<el-table-column label="操作" align="center" width="90" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
|
||||
@@ -126,7 +126,7 @@ export default {
|
||||
this.loading = true;
|
||||
register(this.registerForm).then(res => {
|
||||
const username = this.registerForm.username;
|
||||
this.$alert("<font color='red'>恭喜你,您的账号 " + username + " 注册成功!</font>", '系统提示', {
|
||||
this.$alert("<font color='#a4485a'>恭喜你,您的账号 " + username + " 注册成功!</font>", '系统提示', {
|
||||
dangerouslyUseHTMLString: true,
|
||||
type: 'success'
|
||||
}).then(() => {
|
||||
@@ -157,12 +157,14 @@ export default {
|
||||
.title {
|
||||
margin: 0px auto 30px auto;
|
||||
text-align: center;
|
||||
color: #707070;
|
||||
color: #4f4130;
|
||||
}
|
||||
|
||||
.register-form {
|
||||
border-radius: 6px;
|
||||
background: #ffffff;
|
||||
border-radius: 20px;
|
||||
background: #fffdfa;
|
||||
border: 1px solid rgba(212, 160, 160, .55);
|
||||
box-shadow: 0 12px 32px rgba(139, 115, 85, .17);
|
||||
width: 400px;
|
||||
padding: 25px 25px 5px 25px;
|
||||
.el-input {
|
||||
@@ -180,7 +182,7 @@ export default {
|
||||
.register-tip {
|
||||
font-size: 13px;
|
||||
text-align: center;
|
||||
color: #bfbfbf;
|
||||
color: #8b755a;
|
||||
}
|
||||
.register-code {
|
||||
width: 33%;
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="createTime" label="下单时间"></el-table-column>
|
||||
<el-table-column align="center" prop="address" label="操作">
|
||||
<el-table-column width="250" align="center" prop="address" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<!-- <el-button type="text" @click="tradeBuy(scope.row)">查询</el-button> -->
|
||||
<el-button type="text" @click="tradeBuyCs2pifa(scope.row)">查询cs2pifa</el-button>
|
||||
@@ -153,7 +153,7 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
getPriceColor(row) {
|
||||
if (!row.cs340Price) return '#606266'; // 无三方价格时默认色
|
||||
if (!row.cs340Price) return '#5f4f3d'; // 无三方价格时默认色
|
||||
return row.ornamentsPrice > row.cs340Price ? '#a4485a' : '#457450'; // 溢价红色,未溢价绿色
|
||||
},
|
||||
handleSubmit(formName) {
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
style="display:flex; align-items:center;justify-content:center;line-height: 1;"
|
||||
>
|
||||
<span
|
||||
style="width: 8px; height:8px; margin-right:5px; border-radius: 50%; background-color: #F39c12; display:inline-block;"
|
||||
style="width: 8px; height:8px; margin-right:5px; border-radius: 50%; background-color: #8f6418; display:inline-block;"
|
||||
></span>
|
||||
人工发货
|
||||
</div>
|
||||
@@ -80,7 +80,7 @@
|
||||
style="display:flex; align-items:center;justify-content:center;"
|
||||
>
|
||||
<span
|
||||
style="width: 8px; height:8px; margin-right:5px; border-radius: 50%; background-color: #00a65a; display:inline-block;"
|
||||
style="width: 8px; height:8px; margin-right:5px; border-radius: 50%; background-color: #457450; display:inline-block;"
|
||||
></span>
|
||||
自动发货
|
||||
</div>
|
||||
@@ -93,7 +93,7 @@
|
||||
style="display:flex; align-items:center;justify-content:center;line-height: 1;"
|
||||
>
|
||||
<span
|
||||
style="width: 8px; height:8px; margin-right:5px; border-radius: 50%; background-color: green; display:inline-block;"
|
||||
style="width: 8px; height:8px; margin-right:5px; border-radius: 50%; background-color: #457450; display:inline-block;"
|
||||
></span>
|
||||
待发货
|
||||
</div>
|
||||
@@ -102,7 +102,7 @@
|
||||
style="display:flex; align-items:center;justify-content:center;"
|
||||
>
|
||||
<span
|
||||
style="width: 8px; height:8px; margin-right:5px; border-radius: 50%; background-color: #696969; display:inline-block;"
|
||||
style="width: 8px; height:8px; margin-right:5px; border-radius: 50%; background-color: #7a664e; display:inline-block;"
|
||||
></span>
|
||||
待收货
|
||||
</div>
|
||||
@@ -111,7 +111,7 @@
|
||||
style="display:flex; align-items:center;justify-content:center;"
|
||||
>
|
||||
<span
|
||||
style="width: 8px; height:8px; margin-right:5px; border-radius: 50%; background-color: #696969; display:inline-block;"
|
||||
style="width: 8px; height:8px; margin-right:5px; border-radius: 50%; background-color: #7a664e; display:inline-block;"
|
||||
></span>
|
||||
订单完成
|
||||
</div>
|
||||
@@ -121,7 +121,7 @@
|
||||
>
|
||||
订单取消
|
||||
<span
|
||||
style="width: 8px; height:8px; margin-left:5px; border-radius: 50%; background-color: #DD4b39; display:inline-block;"
|
||||
style="width: 8px; height:8px; margin-left:5px; border-radius: 50%; background-color: #a4485a; display:inline-block;"
|
||||
></span>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -119,7 +119,7 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="createTime" label="申请时间" width="160"></el-table-column>
|
||||
<el-table-column align="center" class-name="operation-column" label="操作" width="120">
|
||||
<el-table-column align="center" class-name="operation-column" label="操作" width="130">
|
||||
<template slot-scope="scope">
|
||||
<div v-if="scope.row.status === 0" style="display: flex; justify-content: center; align-items: center;">
|
||||
<el-button type="text" style="color: #457450; margin: 0 5px;" @click="handleApprove(scope.row)">同意</el-button>
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
style="display:flex; align-items:center;justify-content:center;line-height: 1;"
|
||||
>
|
||||
<span
|
||||
style="width: 8px; height:8px; margin-right:5px; border-radius: 50%; background-color: #F39c12; display:inline-block;"
|
||||
style="width: 8px; height:8px; margin-right:5px; border-radius: 50%; background-color: #8f6418; display:inline-block;"
|
||||
></span>
|
||||
人工发货
|
||||
</div>
|
||||
@@ -52,7 +52,7 @@
|
||||
style="display:flex; align-items:center;justify-content:center;"
|
||||
>
|
||||
<span
|
||||
style="width: 8px; height:8px; margin-right:5px; border-radius: 50%; background-color: #00a65a; display:inline-block;"
|
||||
style="width: 8px; height:8px; margin-right:5px; border-radius: 50%; background-color: #457450; display:inline-block;"
|
||||
></span>
|
||||
自动发货
|
||||
</div>
|
||||
|
||||
@@ -54,8 +54,8 @@
|
||||
v-model="scope.row.status"
|
||||
:active-value="'0'"
|
||||
:inactive-value="'1'"
|
||||
inactive-color="#D9534F"
|
||||
active-color="#5CB85C"
|
||||
inactive-color="#a4485a"
|
||||
active-color="#457450"
|
||||
inactive-text="是"
|
||||
active-text="否"
|
||||
@change="updateUserStatus(scope.row)"
|
||||
@@ -66,23 +66,23 @@
|
||||
<el-table-column label="条件类型" align="center" prop="conditionType">
|
||||
<template slot-scope="scope">
|
||||
<div v-if="scope.row.conditionType == '0'" class="df">
|
||||
<span class="ds" style="background: #00a65a;"></span>
|
||||
<span class="ds" style="background: #457450;"></span>
|
||||
日充值
|
||||
</div>
|
||||
<div v-if="scope.row.conditionType == '1'" class="df">
|
||||
<span class="ds" style="background: #00a65a;"></span>
|
||||
<span class="ds" style="background: #457450;"></span>
|
||||
周充值
|
||||
</div>
|
||||
<div v-if="scope.row.conditionType == '2'" class="df">
|
||||
<span class="ds" style="background: #f39c12;"></span>
|
||||
<span class="ds" style="background: #8f6418;"></span>
|
||||
月充值
|
||||
</div>
|
||||
<div v-if="scope.row.conditionType == '3'" class="df">
|
||||
<span class="ds" style="background: #DD4B39;"></span>
|
||||
<span class="ds" style="background: #a4485a;"></span>
|
||||
总充值
|
||||
</div>
|
||||
<div v-if="scope.row.conditionType == '4'" class="df">
|
||||
<span class="ds" style="background: #DD4B39;"></span>
|
||||
<span class="ds" style="background: #a4485a;"></span>
|
||||
单笔充值
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -50,19 +50,19 @@
|
||||
<el-table-column align="center" prop="status" label="状态">
|
||||
<template slot-scope="scope">
|
||||
<div v-if="scope.row.status == '0'" class="df">
|
||||
<span style=" background-color: #3c8dbc;" class="ds"></span>
|
||||
<span style=" background-color: #9a5c35;" class="ds"></span>
|
||||
背包
|
||||
</div>
|
||||
<div v-else-if="scope.row.status == '5'" class="df">
|
||||
<span class="ds" style="background-color: #f39c12;"></span>
|
||||
<span class="ds" style="background-color: #8f6418;"></span>
|
||||
{{ (source === '1' || source == 1) ? '经典开箱分解' : '对战自动分解' }}
|
||||
</div>
|
||||
<div v-else-if="scope.row.status == '1'" class="df">
|
||||
<span class="ds" style="background-color: #DD4B39;"></span>
|
||||
<span class="ds" style="background-color: #a4485a;"></span>
|
||||
在背包不显示
|
||||
</div>
|
||||
<div v-else class="df">
|
||||
<span class="ds" style="background-color: gray;"></span>
|
||||
<span class="ds" style="background-color: #7a664e;"></span>
|
||||
{{ scope.row.status ? String(scope.row.status) : '(未知状态)' }}
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -37,8 +37,8 @@
|
||||
v-model="scope.row.isFightType"
|
||||
:active-value="'0'"
|
||||
:inactive-value="'1'"
|
||||
inactive-color="#D9534F"
|
||||
active-color="#5CB85C"
|
||||
inactive-color="#a4485a"
|
||||
active-color="#457450"
|
||||
inactive-text="是"
|
||||
active-text="否"
|
||||
@change="updateUserStatus(scope.row)"
|
||||
@@ -51,8 +51,8 @@
|
||||
v-model="scope.row.isShow"
|
||||
:active-value="'0'"
|
||||
:inactive-value="'1'"
|
||||
active-color="#5CB85C"
|
||||
inactive-color="#D9534F"
|
||||
active-color="#457450"
|
||||
inactive-color="#a4485a"
|
||||
active-text="显示"
|
||||
inactive-text="隐藏"
|
||||
@change="updateUserStatus(scope.row)"
|
||||
|
||||
@@ -353,7 +353,7 @@
|
||||
<el-table-column v-if="false" align="center" prop="compOdds" label="补偿数量"></el-table-column>
|
||||
<el-table-column v-if="false" align="center" prop="realCompOdds" label="真实补偿数量" width="100"></el-table-column>
|
||||
|
||||
<el-table-column align="center" label="操作">
|
||||
<el-table-column width="170" align="center" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" @click="handleChange(scope.row)">修改</el-button>
|
||||
<el-button type="text" @click="handleView(scope.row)">查看</el-button>
|
||||
@@ -1129,7 +1129,7 @@ export default {
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
padding: 6px 10px;
|
||||
border: 1px solid #e4e7ed;
|
||||
border: 1px solid #eadfd0;
|
||||
border-radius: 6px;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s;
|
||||
@@ -1146,7 +1146,7 @@ export default {
|
||||
object-fit: contain;
|
||||
border-radius: 4px;
|
||||
flex-shrink: 0;
|
||||
background: #f5f5f5;
|
||||
background: #f3ece0;
|
||||
}
|
||||
.ornament-info {
|
||||
flex: 1;
|
||||
|
||||
@@ -265,7 +265,7 @@
|
||||
<el-table-column align="center" label="箱内饰品总价值" prop="aggregateAmount" />
|
||||
<el-table-column align="center" label="每轮利润" prop="profit" />
|
||||
<el-table-column align="center" label="每轮利润率" prop="profitMargin" />
|
||||
<el-table-column
|
||||
<el-table-column width="130"
|
||||
align="center"
|
||||
class-name="small-padding fixed-width"
|
||||
label="操作"
|
||||
@@ -324,8 +324,8 @@
|
||||
v-model="form.isFight"
|
||||
:active-value="'0'"
|
||||
:inactive-value="'1'"
|
||||
active-color="#5CB85C"
|
||||
inactive-color="#D9534F"
|
||||
active-color="#457450"
|
||||
inactive-color="#a4485a"
|
||||
active-text="否"
|
||||
inactive-text="是"
|
||||
:disabled="$route.query.isFight != null"
|
||||
@@ -351,8 +351,8 @@
|
||||
v-model="form.status"
|
||||
:active-value="'1'"
|
||||
:inactive-value="'0'"
|
||||
active-color="#D9534F"
|
||||
inactive-color="#5CB85C"
|
||||
active-color="#a4485a"
|
||||
inactive-color="#457450"
|
||||
active-text="正常"
|
||||
inactive-text="停用"
|
||||
></el-switch>
|
||||
@@ -362,8 +362,8 @@
|
||||
v-model="form.isHome"
|
||||
:active-value="'1'"
|
||||
:inactive-value="'0'"
|
||||
active-color="#D9534F"
|
||||
inactive-color="#5CB85C"
|
||||
active-color="#a4485a"
|
||||
inactive-color="#457450"
|
||||
active-text="是"
|
||||
inactive-text="否"
|
||||
@change="hh()"
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
<div style="margin-top: 16px; padding-left: 68px">
|
||||
|
||||
<div v-for="(item, index) in items" :key="index" style="display: flex; align-items: center; margin-bottom: 10px">
|
||||
<span style="width: 100px; color: #606266; font-size: 13px">临时爆率 #{{ index + 1 }}</span>
|
||||
<span style="width: 100px; color: #5f4f3d; font-size: 13px">临时爆率 #{{ index + 1 }}</span>
|
||||
<el-input
|
||||
v-model="item.lowPrice"
|
||||
type="number"
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
<el-table-column align="left" label="获胜" style="margin-left: 5px;">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.isWin">
|
||||
<span class="ds" style="background-color: #00a65a;"></span>
|
||||
<span class="ds" style="background-color: #457450;"></span>
|
||||
是
|
||||
<el-button
|
||||
type="text"
|
||||
@@ -25,7 +25,7 @@
|
||||
>赢家所得饰品</el-button>
|
||||
</span>
|
||||
<span v-else>
|
||||
<span class="ds" style="background-color: #dd4b39;"></span>否
|
||||
<span class="ds" style="background-color: #a4485a;"></span>否
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
@@ -48,11 +48,11 @@
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<div v-if="scope.row.status == '0'" class="df">
|
||||
<span style=" background-color: #00a65a;" class="ds"></span>
|
||||
<span style=" background-color: #457450;" class="ds"></span>
|
||||
等待中
|
||||
</div>
|
||||
<div v-if="scope.row.status == '2'" class="df">
|
||||
<span class="ds" style="background-color: #dd4b39;"></span>
|
||||
<span class="ds" style="background-color: #a4485a;"></span>
|
||||
已结束
|
||||
<el-button type="text" @click="handleView(scope.row)" style="margin-left: 45px;">查看结果</el-button>
|
||||
</div>
|
||||
|
||||
@@ -427,7 +427,7 @@ export default {
|
||||
.section-title {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
color: #303133;
|
||||
color: #4f4130;
|
||||
padding: 8px 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
<ol style="margin-top: 6px; padding-left: 16px;">
|
||||
<li><strong>档位共享目标数</strong>:多个分组共用同一价格档位时,系统维持该档位的总目标房间数(target_count),而非各分组独立统计。</li>
|
||||
<li><strong>随机选择分组</strong>:机器人从所有符合档位条件的分组中<strong>随机选择一个</strong>来创建房间。这意味着某些分组可能被选中多次,而另一些分组可能暂时未被选中。</li>
|
||||
<li><strong>价位匹配规则</strong>:根据分组内所有宝箱的总价进行匹配,计算公式为:<code style="background:#f5f5f5;padding:2px 4px;">Σ(箱数 × 单价)</code>。</li>
|
||||
<li><strong>价位匹配规则</strong>:根据分组内所有宝箱的总价进行匹配,计算公式为:<code style="background:#f3ece0;padding:2px 4px;">Σ(箱数 × 单价)</code>。</li>
|
||||
</ol>
|
||||
</div>
|
||||
</el-alert>
|
||||
@@ -126,7 +126,7 @@
|
||||
<dict-tag :options="dict.type.fight_model" :value="scope.row.model"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<el-table-column width="240" label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
:value="item.id"
|
||||
>
|
||||
<span style="float: left">{{ item.price }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.id }}</span>
|
||||
<span style="float: right; color: #7a664e; font-size: 13px">{{ item.id }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -80,11 +80,11 @@
|
||||
<template slot-scope="scope">
|
||||
<div>
|
||||
<div v-if="scope.row.status == 0" class="df">
|
||||
<span class="ds" style="background-color: #00a65a;"></span>
|
||||
<span class="ds" style="background-color: #457450;"></span>
|
||||
未使用
|
||||
</div>
|
||||
<div v-if="scope.row.status == 1" class="df">
|
||||
<span class="ds" style="background-color: #dd4b39;"></span> 已使用
|
||||
<span class="ds" style="background-color: #a4485a;"></span> 已使用
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -122,7 +122,7 @@
|
||||
:value="item.id"
|
||||
>
|
||||
<span style="float: left">{{ item.price }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.id }}</span>
|
||||
<span style="float: right; color: #7a664e; font-size: 13px">{{ item.id }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -400,9 +400,9 @@ export default {
|
||||
}
|
||||
.kami {
|
||||
padding: 15px;
|
||||
background-color: #c3d1e4;
|
||||
color: #373232;
|
||||
border: 1px solid #8492a6;
|
||||
background-color: #d8c3b0;
|
||||
color: #4f4130;
|
||||
border: 1px solid #7a664e;
|
||||
width: 95%;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
@@ -112,7 +112,7 @@
|
||||
<el-table-column align="center" label="本站价格" prop="usePrice" />
|
||||
<el-table-column align="center" label="在售数量" prop="quantity" />
|
||||
<el-table-column align="center" label="更新时间" prop="updateTime" />
|
||||
<el-table-column align="center" class-name="small-padding fixed-width" label="操作">
|
||||
<el-table-column width="310" align="center" class-name="small-padding fixed-width" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
icon="el-icon-date"
|
||||
@@ -170,7 +170,7 @@
|
||||
@click="addOr(item)"
|
||||
>
|
||||
<div>{{item.nickName}}</div>
|
||||
<div style="color: #8492a6;">{{item.phoneNumber}}</div>
|
||||
<div style="color: #7a664e;">{{item.phoneNumber}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else>
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
<el-table-column align="center" label="在售数量" prop="quantity" />
|
||||
<el-table-column align="center" label="创建时间" prop="createTime" />
|
||||
<el-table-column align="center" label="更新时间" prop="updateTime" />
|
||||
<el-table-column align="center" class-name="small-padding fixed-width" label="操作">
|
||||
<el-table-column width="190" align="center" class-name="small-padding fixed-width" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" @click="handleGrant(scope.row)">发放饰品</el-button>
|
||||
<el-button
|
||||
|
||||
@@ -11,8 +11,8 @@
|
||||
v-model="scope.row.status"
|
||||
:active-value="'0'"
|
||||
:inactive-value="'1'"
|
||||
active-color="#5CB85C"
|
||||
inactive-color="#D9534F"
|
||||
active-color="#457450"
|
||||
inactive-color="#a4485a"
|
||||
inactive-text="启用"
|
||||
active-text="禁用"
|
||||
@change="handleChangeType(scope.row)"
|
||||
|
||||
@@ -95,13 +95,13 @@
|
||||
style="display:flex; align-items:center;justify-content:center;line-height: 1;"
|
||||
>
|
||||
<span
|
||||
style="width: 8px; height:8px; margin-right:10px; border-radius: 50%; background-color: #90ee90; display:inline-block;"
|
||||
style="width: 8px; height:8px; margin-right:10px; border-radius: 50%; background-color: #457450; display:inline-block;"
|
||||
></span>
|
||||
支付成功
|
||||
</div>
|
||||
<div v-else style="display:flex; align-items:center;justify-content:center;">
|
||||
<span
|
||||
style="width: 8px; height:8px; margin-right:10px; border-radius: 50%; background-color: #DD4B39; display:inline-block;"
|
||||
style="width: 8px; height:8px; margin-right:10px; border-radius: 50%; background-color: #a4485a; display:inline-block;"
|
||||
></span>
|
||||
未付款
|
||||
</div>
|
||||
|
||||
@@ -110,7 +110,7 @@
|
||||
</template>
|
||||
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" width="100" class-name="small-padding fixed-width">
|
||||
<el-table-column label="操作" align="center" width="150" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
style="display:flex; align-items:center;justify-content:center;line-height: 1;"
|
||||
>
|
||||
<span
|
||||
style="width: 8px; height:8px; margin-right:10px; border-radius: 50%; background-color: green; display:inline-block;"
|
||||
style="width: 8px; height:8px; margin-right:10px; border-radius: 50%; background-color: #457450; display:inline-block;"
|
||||
></span>
|
||||
进行中
|
||||
</div>
|
||||
@@ -101,7 +101,7 @@
|
||||
style="display:flex; align-items:center;justify-content:center;"
|
||||
>
|
||||
<span
|
||||
style="width: 8px; height:8px; margin-right:10px; border-radius: 50%; background-color: #DD4B39; display:inline-block;"
|
||||
style="width: 8px; height:8px; margin-right:10px; border-radius: 50%; background-color: #a4485a; display:inline-block;"
|
||||
></span>
|
||||
已结束
|
||||
</div>
|
||||
@@ -110,7 +110,7 @@
|
||||
<el-table-column align="center" prop="sortBy" label="置顶"></el-table-column>
|
||||
<el-table-column align="center" prop="createBy" label="创建用户" width="103"></el-table-column>
|
||||
<el-table-column align="center" prop="createTime" label="创建时间" width="188"></el-table-column>
|
||||
<el-table-column align="center" prop="address" label="操作" width="180">
|
||||
<el-table-column align="center" prop="address" label="操作" width="290">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="text"
|
||||
@@ -120,9 +120,16 @@
|
||||
>删除</el-button>
|
||||
<el-button type="text" size="mini" icon="el-icon-edit" @click="handleChange(scope.row)">修改</el-button>
|
||||
<el-button type="text" size="mini" icon="el-icon-view" @click="handleSelect(scope.row)">详情</el-button>
|
||||
<el-button type="text" size="mini" icon="el-icon-view" @click="handleRouter(scope.row)">装备列表</el-button>
|
||||
<el-button type="text" size="mini" icon="el-icon-view" @click="rollUser(scope.row)">房间用户</el-button>
|
||||
<el-button type="text" size="mini" icon="el-icon-trophy" @click="handleWinning(scope.row)">中奖详情</el-button>
|
||||
<!-- 6 个平铺按钮在 180px 的列里会折成 3~4 行;按本仓库既有做法
|
||||
(ttuser / ttRoll/prize / system/role)把低频操作收进「更多」 -->
|
||||
<el-dropdown size="mini">
|
||||
<el-button type="text" size="mini" icon="el-icon-d-arrow-right">更多</el-button>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<el-dropdown-item @click.native="handleRouter(scope.row)">装备列表</el-dropdown-item>
|
||||
<el-dropdown-item @click.native="rollUser(scope.row)">房间用户</el-dropdown-item>
|
||||
<el-dropdown-item @click.native="handleWinning(scope.row)">中奖详情</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
@@ -65,14 +65,14 @@
|
||||
<template slot-scope="scope">
|
||||
<el-switch
|
||||
:value="scope.row.status === '0'"
|
||||
active-color="#13ce66"
|
||||
inactive-color="#ff4949"
|
||||
active-color="#457450"
|
||||
inactive-color="#a4485a"
|
||||
@change="handleStatusChange(scope.row)"
|
||||
></el-switch>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="lastGenerateTime" label="上次生成时间" width="160"></el-table-column>
|
||||
<el-table-column align="center" label="操作" width="140">
|
||||
<el-table-column align="center" label="操作" width="160">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" size="mini" icon="el-icon-edit" @click="handleChange(scope.row)">编辑</el-button>
|
||||
<el-button type="text" size="mini" icon="el-icon-delete" @click="handleDelete(scope.row.id)">删除</el-button>
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
<el-table-column align="center" prop="description" label="奖池描述"></el-table-column>
|
||||
<el-table-column align="center" prop="createTime" label="创建时间"></el-table-column>
|
||||
<el-table-column align="center" prop="updateTime" label="更新时间"></el-table-column>
|
||||
<el-table-column align="center" prop="address" label="操作">
|
||||
<el-table-column width="230" align="center" prop="address" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="text"
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
style="display:flex; align-items:center;justify-content:center;line-height: 1;"
|
||||
>
|
||||
<span
|
||||
style="width: 8px; height:8px; margin-right:10px; border-radius: 50%; background-color: green; display:inline-block;"
|
||||
style="width: 8px; height:8px; margin-right:10px; border-radius: 50%; background-color: #457450; display:inline-block;"
|
||||
></span>
|
||||
开启
|
||||
</div>
|
||||
@@ -87,7 +87,7 @@
|
||||
style="display:flex; align-items:center;justify-content:center;"
|
||||
>
|
||||
<span
|
||||
style="width: 8px; height:8px; margin-right:10px; border-radius: 50%; background-color: #DD4B39; display:inline-block;"
|
||||
style="width: 8px; height:8px; margin-right:10px; border-radius: 50%; background-color: #a4485a; display:inline-block;"
|
||||
></span>
|
||||
关闭
|
||||
</div>
|
||||
@@ -96,7 +96,7 @@
|
||||
<el-table-column align="center" prop="sortBy" label="置顶"></el-table-column>
|
||||
<el-table-column align="center" prop="createBy" label="创建用户"></el-table-column>
|
||||
<el-table-column align="center" prop="createTime" label="创建时间"></el-table-column>
|
||||
<el-table-column align="center" prop="address" label="操作">
|
||||
<el-table-column width="320" align="center" prop="address" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="text"
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
v-model="scope.row.status"
|
||||
:active-value="'0'"
|
||||
:inactive-value="'1'"
|
||||
inactive-color="#D9534F"
|
||||
active-color="#5CB85C"
|
||||
inactive-color="#a4485a"
|
||||
active-color="#457450"
|
||||
active-text="禁用"
|
||||
inactive-text="启用"
|
||||
@change="updateUserStatus(scope.row)"
|
||||
@@ -29,8 +29,8 @@
|
||||
v-model="scope.row.isDefault"
|
||||
:active-value="'0'"
|
||||
:inactive-value="'1'"
|
||||
active-color="#D9534F"
|
||||
inactive-color="#5CB85C"
|
||||
active-color="#a4485a"
|
||||
inactive-color="#457450"
|
||||
active-text="是"
|
||||
inactive-text="否"
|
||||
@change="updateUserStatus(scope.row)"
|
||||
|
||||
@@ -39,8 +39,8 @@
|
||||
v-model="scope.row.status"
|
||||
:active-value="'0'"
|
||||
:inactive-value="'1'"
|
||||
active-color="#5CB85C"
|
||||
inactive-color="#D9534F"
|
||||
active-color="#457450"
|
||||
inactive-color="#a4485a"
|
||||
inactive-text="启用"
|
||||
active-text="禁用"
|
||||
@change="handleChangeType(scope.row)"
|
||||
|
||||
@@ -85,15 +85,15 @@
|
||||
v-model="scope.row.status"
|
||||
:active-value="'0'"
|
||||
:inactive-value="'1'"
|
||||
inactive-color="#D9534F"
|
||||
active-color="#5CB85C"
|
||||
inactive-color="#a4485a"
|
||||
active-color="#457450"
|
||||
active-text="禁用"
|
||||
inactive-text="启用"
|
||||
@change="updateUserStatus(scope.row)"
|
||||
></el-switch>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<el-table-column width="240" label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
@@ -144,7 +144,7 @@
|
||||
<el-select v-model="form.typeId" placeholder="请选择">
|
||||
<el-option v-for="item in typeData" :key="item.id" :label="item.name" :value="item.id">
|
||||
<span style="float: left">{{ item.name }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.alias }}</span>
|
||||
<span style="float: right; color: #7a664e; font-size: 13px">{{ item.alias }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
@@ -91,8 +91,8 @@
|
||||
v-model="scope.row.status"
|
||||
:active-value="'0'"
|
||||
:inactive-value="'1'"
|
||||
inactive-color="#D9534F"
|
||||
active-color="#5CB85C"
|
||||
inactive-color="#a4485a"
|
||||
active-color="#457450"
|
||||
active-text="禁用"
|
||||
inactive-text="启用"
|
||||
@change="updateUserStatus(scope.row)"
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<el-form ref="form" :model="form" label-width="200px">
|
||||
<el-form-item label="网站饰品价格溢价率">
|
||||
<el-input v-model="form.usePricePremiumRate "></el-input>
|
||||
<span style="color: #737373;">
|
||||
<span style="color: #7a664e;">
|
||||
<i class="el-icon-info">1表示直接使用在售最低价显示</i>
|
||||
</span>
|
||||
</el-form-item>
|
||||
@@ -130,7 +130,7 @@
|
||||
<el-button v-if="payCompanyWeights.length > 1" type="danger" size="mini" circle icon="el-icon-minus" @click="removeCompany(index)" style="margin-left:8px;"></el-button>
|
||||
</div>
|
||||
<el-button type="primary" size="small" icon="el-icon-plus" @click="addCompany">添加支付公司</el-button>
|
||||
<span style="color:#737373;margin-left:8px;">
|
||||
<span style="color:#7a664e;margin-left:8px;">
|
||||
<i class="el-icon-info">总权重固定为10,按比例分配请求。</i>
|
||||
</span>
|
||||
</div>
|
||||
@@ -140,7 +140,7 @@
|
||||
<el-option label="启用" value="1"></el-option>
|
||||
<el-option label="停用" value="0"></el-option>
|
||||
</el-select>
|
||||
<div style="color:#737373;">
|
||||
<div style="color:#7a664e;">
|
||||
<i class="el-icon-info">启用:充值金额 1000-50000 强制走 SnapPay;停用或 SnapPay 下单失败时,按上方权重分配;每次修改后记得点击下方保存才生效</i>
|
||||
</div>
|
||||
</el-form-item>
|
||||
@@ -152,25 +152,25 @@
|
||||
<el-form ref="form" :model="form" label-width="200px">
|
||||
<el-form-item label="汰换价格区间最大值溢价率">
|
||||
<el-input v-model="form.compoundMaxPremiumRate"></el-input>
|
||||
<div style="color: #737373;">
|
||||
<div style="color: #7a664e;">
|
||||
<i class="el-icon-info">单位:% 例:5% 即为用户所选饰品价格的5%</i>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="汰换价格区间最小值溢价率">
|
||||
<el-input v-model="form.compoundMinPremiumRate"></el-input>
|
||||
<div style="color: #737373;">
|
||||
<div style="color: #7a664e;">
|
||||
<i class="el-icon-info">单位:% 例:5% 即为用户所选饰品价格的5%</i>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="汰换最低价">
|
||||
<el-input v-model="form.compoundMinPrice"></el-input>
|
||||
<div style="color: #737373;">
|
||||
<div style="color: #7a664e;">
|
||||
<i class="el-icon-info">用户选择汰换物品最低价</i>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="最大汰换数量">
|
||||
<el-input v-model="form.maxCompoundNum"></el-input>
|
||||
<div style="color: #737373;">
|
||||
<div style="color: #7a664e;">
|
||||
<i class="el-icon-info">用户选择汰换物品最大数量</i>
|
||||
</div>
|
||||
</el-form-item>
|
||||
@@ -181,7 +181,7 @@
|
||||
<el-form ref="form" :model="form" label-width="200px">
|
||||
<el-form-item label="流水归档保留天数">
|
||||
<el-input v-model="form.flowArchiveRetainDays"></el-input>
|
||||
<div style="color: #737373;">
|
||||
<div style="color: #7a664e;">
|
||||
<i class="el-icon-info">单位:天,超过该天数的流水将归档至历史表</i>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<el-form ref="form" :model="form" label-width="200px">
|
||||
<el-form-item label="网站饰品价格溢价率">
|
||||
<el-input v-model="form.usePricePremiumRate "></el-input>
|
||||
<span style="color: #737373;">
|
||||
<span style="color: #7a664e;">
|
||||
<i class="el-icon-info">1表示直接使用在售最低价显示</i>
|
||||
</span>
|
||||
</el-form-item>
|
||||
@@ -22,7 +22,7 @@
|
||||
:step="0.1"
|
||||
:max="1000"
|
||||
></el-input-number>
|
||||
<div style="color: #737373;">
|
||||
<div style="color: #7a664e;">
|
||||
<i class="el-icon-info">新用户注册红包奖励金额</i>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
@@ -119,7 +119,7 @@
|
||||
>
|
||||
上架
|
||||
<span
|
||||
style="width: 8px; height:8px; margin-left:5px; border-radius: 50%; background-color: green; display:inline-block;"
|
||||
style="width: 8px; height:8px; margin-left:5px; border-radius: 50%; background-color: #457450; display:inline-block;"
|
||||
></span>
|
||||
</div>
|
||||
<div
|
||||
@@ -128,7 +128,7 @@
|
||||
>
|
||||
下架
|
||||
<span
|
||||
style="width: 8px; height:8px; margin-left:5px; border-radius: 50%; background-color: #696969; display:inline-block;"
|
||||
style="width: 8px; height:8px; margin-left:5px; border-radius: 50%; background-color: #7a664e; display:inline-block;"
|
||||
></span>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -223,15 +223,15 @@
|
||||
v-model="scope.row.status"
|
||||
:active-value="'1'"
|
||||
:inactive-value="'0'"
|
||||
active-color="#D9534F"
|
||||
inactive-color="#5CB85C"
|
||||
active-color="#a4485a"
|
||||
inactive-color="#457450"
|
||||
active-text="启用"
|
||||
inactive-text="禁用"
|
||||
@change="handleChangeType(scope.row)"
|
||||
></el-switch>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<el-table-column width="190" label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
<div style="line-height: 2;">
|
||||
<div><strong>1. 投入金额:</strong>玩家这次抽奖实际花的钱,按他选择的概率扣除。</div>
|
||||
<div><strong>2. 真实计算金额:</strong>后台真正用来计算"还差多少出货"的钱。</div>
|
||||
<div style="padding-left: 18px; color: #606266;">
|
||||
<div style="padding-left: 18px; color: #5f4f3d;">
|
||||
玩家选的概率 ≤ 75% 时,真实计算金额 = 投入金额;<br>
|
||||
玩家选的概率 > 75% 时,最高只按 75% 计算。<br>
|
||||
<span style="color: #7a664e;">例如:饰品价格 1000,选 90% 概率,实际扣 900,但真实计算金额只算 750。</span>
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="饰品总价值" prop="aggregateAmount" />
|
||||
<el-table-column align="center" label="开启次数" prop="openNum" />
|
||||
<el-table-column align="center" class-name="small-padding fixed-width" label="操作" fixed="right">
|
||||
<el-table-column width="260" align="center" class-name="small-padding fixed-width" label="操作" fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" @click="handleUpdate(scope.row)">编辑</el-button>
|
||||
<el-button size="mini" type="text" @click="handleBatchFill(scope.row)">批量填货</el-button>
|
||||
@@ -333,7 +333,7 @@
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="操作" fixed="right" width="160">
|
||||
<el-table-column align="center" label="操作" fixed="right" width="170">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" @click="handlePrizeChange(scope.row)">修改</el-button>
|
||||
<el-button type="text" @click="handlePrizeView(scope.row)">查看</el-button>
|
||||
|
||||
@@ -49,11 +49,11 @@
|
||||
<el-table-column align="center" prop="status" label="状态">
|
||||
<template slot-scope="scope">
|
||||
<div v-if="scope.row.status == '0'" class="df">
|
||||
<span style=" background-color: #00a65a;" class="ds"></span>
|
||||
<span style=" background-color: #457450;" class="ds"></span>
|
||||
进行中
|
||||
</div>
|
||||
<div v-if="scope.row.status == '1'" class="df">
|
||||
<span style=" background-color: #dd4b39;" class="ds"></span>
|
||||
<span style=" background-color: #a4485a;" class="ds"></span>
|
||||
已结束
|
||||
</div>
|
||||
</template>
|
||||
@@ -76,8 +76,8 @@
|
||||
v-model="scope.row.useStatus"
|
||||
:active-value="'0'"
|
||||
:inactive-value="'1'"
|
||||
inactive-color="#D9534F"
|
||||
active-color="#5CB85C"
|
||||
inactive-color="#a4485a"
|
||||
active-color="#457450"
|
||||
inactive-text="启用"
|
||||
active-text="禁用"
|
||||
@change="updateUserStatus(scope.row)"
|
||||
@@ -88,7 +88,7 @@
|
||||
|
||||
<el-table-column align="center" prop="openingTime" label="红包开始时间" width="170"></el-table-column>
|
||||
<el-table-column align="center" prop="validity" label="红包有效期" width="170"></el-table-column>
|
||||
<el-table-column align="center" prop label="操作">
|
||||
<el-table-column width="170" align="center" prop label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" @click="handleView(scope.row)">详情</el-button>
|
||||
<el-button type="text" @click="handleChaneg(scope.row)">修改</el-button>
|
||||
@@ -115,7 +115,7 @@
|
||||
:value="item.userId"
|
||||
>
|
||||
<span style="float: left">{{ item.nickName }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.userName }}</span>
|
||||
<span style="float: right; color: #7a664e; font-size: 13px">{{ item.userName }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
<div style="font-size: 12px;">
|
||||
@@ -137,7 +137,7 @@
|
||||
autocomplete="off"
|
||||
placeholder="最低金额"
|
||||
></el-input>
|
||||
<div style="font-size: 12px; color:#d9534f">
|
||||
<div style="font-size: 12px; color:#a4485a">
|
||||
<i class="el-icon-info"></i>
|
||||
总价值 {{this.form.amount1*this.form.num}} - {{this.form.amount2*this.form.num}}
|
||||
</div>
|
||||
@@ -214,7 +214,7 @@
|
||||
:value="item.userId"
|
||||
>
|
||||
<span style="float: left">{{ item.nickName }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.userName }}</span>
|
||||
<span style="float: right; color: #7a664e; font-size: 13px">{{ item.userName }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
<div style="font-size: 12px;">
|
||||
@@ -235,7 +235,7 @@
|
||||
autocomplete="off"
|
||||
placeholder="最低金额"
|
||||
></el-input>
|
||||
<div style="font-size: 12px; color:#d9534f">
|
||||
<div style="font-size: 12px; color:#a4485a">
|
||||
<i class="el-icon-info"></i>
|
||||
总价值 {{this.form.amount1*this.form.num}} - {{this.form.amount2*this.form.num}}
|
||||
</div>
|
||||
@@ -639,9 +639,9 @@ export default {
|
||||
}
|
||||
.kami {
|
||||
padding: 15px;
|
||||
background-color: #c3d1e4;
|
||||
color: #373232;
|
||||
border: 1px solid #8492a6;
|
||||
background-color: #d8c3b0;
|
||||
color: #4f4130;
|
||||
border: 1px solid #7a664e;
|
||||
width: 95%;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
<el-table-column align="center" prop="winAmount" label="本期产出"></el-table-column>
|
||||
<el-table-column align="center" prop="lossAmount" label="净亏">
|
||||
<template slot-scope="scope">
|
||||
<span style="color:#dd4b39;">{{ scope.row.lossAmount }}</span>
|
||||
<span style="color:#a4485a;">{{ scope.row.lossAmount }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="rebateAmount" label="应返水"></el-table-column>
|
||||
|
||||
@@ -43,10 +43,10 @@
|
||||
<el-table-column align="center" prop="type" label="变动类型">
|
||||
<template slot-scope="scope">
|
||||
<div v-if="scope.row.type==0" class="df">
|
||||
<span class="ds" style="background-color:#00a65a;"></span>支出
|
||||
<span class="ds" style="background-color:#457450;"></span>支出
|
||||
</div>
|
||||
<div v-if="scope.row.type==1" class="df">
|
||||
<span class="ds" style="background-color:#f3c192;"></span>收入
|
||||
<span class="ds" style="background-color:#9a5c35;"></span>收入
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
@@ -45,10 +45,10 @@
|
||||
<el-table-column align="center" prop="type" label="变动类型">
|
||||
<template slot-scope="scope">
|
||||
<div v-if="scope.row.type==0" class="df">
|
||||
<span class="ds" :style="{ backgroundColor: moneyType === 2 ? '#f3c192' : '#00a65a' }"></span>支出
|
||||
<span class="ds" :style="{ backgroundColor: moneyType === 2 ? '#9a5c35' : '#457450' }"></span>支出
|
||||
</div>
|
||||
<div v-if="scope.row.type==1" class="df">
|
||||
<span class="ds" :style="{ backgroundColor: moneyType === 2 ? '#dd4b39' : '#f3c192' }"></span>收入
|
||||
<span class="ds" :style="{ backgroundColor: moneyType === 2 ? '#a4485a' : '#9a5c35' }"></span>收入
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
@@ -43,10 +43,10 @@
|
||||
<el-table-column align="center" prop="type" label="变动类型">
|
||||
<template slot-scope="scope">
|
||||
<div v-if="scope.row.type==0" class="df">
|
||||
<span class="ds" style="background-color:#f3c192;"></span>支出
|
||||
<span class="ds" style="background-color:#9a5c35;"></span>支出
|
||||
</div>
|
||||
<div v-if="scope.row.type==1" class="df">
|
||||
<span class="ds" style="background-color:#dd4b39;"></span>收入
|
||||
<span class="ds" style="background-color:#a4485a;"></span>收入
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
@@ -156,8 +156,8 @@
|
||||
v-model="scope.row.status"
|
||||
:active-value="'1'"
|
||||
:inactive-value="'0'"
|
||||
active-color="#D9534F"
|
||||
inactive-color="#5CB85C"
|
||||
active-color="#a4485a"
|
||||
inactive-color="#457450"
|
||||
active-text="正常"
|
||||
inactive-text="停用"
|
||||
@change="updateUserStatus(scope.row)"
|
||||
@@ -170,8 +170,8 @@
|
||||
v-model="scope.row.deliveryStatus"
|
||||
:active-value="'1'"
|
||||
:inactive-value="'0'"
|
||||
active-color="#D9534F"
|
||||
inactive-color="#5CB85C"
|
||||
active-color="#a4485a"
|
||||
inactive-color="#457450"
|
||||
active-text="启用"
|
||||
inactive-text="禁用"
|
||||
@change="updateUserStatus(scope.row)"
|
||||
@@ -184,8 +184,8 @@
|
||||
v-model="scope.row.giftStatus"
|
||||
:active-value="'1'"
|
||||
:inactive-value="'0'"
|
||||
active-color="#D9534F"
|
||||
inactive-color="#5CB85C"
|
||||
active-color="#a4485a"
|
||||
inactive-color="#457450"
|
||||
active-text="启用"
|
||||
inactive-text="禁用"
|
||||
@change="updateUserStatus(scope.row)"
|
||||
@@ -200,7 +200,7 @@
|
||||
<el-table-column label="总提取" align="center" prop="totalDelivery" />
|
||||
<el-table-column label="最后登录IP" align="center" prop="loginIp" />
|
||||
<!-- <el-table-column label="备注" align="center" prop="remark" /> -->
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<el-table-column width="180" label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" @click="handleCount(scope.row)">统计</el-button>
|
||||
<el-button size="mini" type="text" @click="handlePsack(scope.row)">背包</el-button>
|
||||
@@ -264,7 +264,7 @@
|
||||
<el-form-item label="请选择数量:" style="margin-bottom: 2px;">
|
||||
<el-input-number size="mini" v-model="newNumber" :min="1" :max="10" label="描述文字"></el-input-number>
|
||||
</el-form-item>
|
||||
<div style="font-size:14px;color:#797979;">
|
||||
<div style="font-size:14px;color:#7a664e;">
|
||||
<i class="el-icon-info"></i> 要生成的账号数量
|
||||
</div>
|
||||
</el-form>
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
:value="item.userId"
|
||||
>
|
||||
<span style="float: left">{{ item.nickName }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.phoneNumber }}</span>
|
||||
<span style="float: right; color: #7a664e; font-size: 13px">{{ item.phoneNumber }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -78,10 +78,10 @@
|
||||
<!--<el-table-column label="结算状态" align="center" prop="status">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <div v-if="scope.row.status == '1'" class="df">-->
|
||||
<!-- <span class="ds" style="background: #00a65a;"></span> 已结算-->
|
||||
<!-- <span class="ds" style="background: #457450;"></span> 已结算-->
|
||||
<!-- </div>-->
|
||||
<!-- <div v-if="scope.row.status == '0'" class="df">-->
|
||||
<!-- <span class="ds" style="background: #DD4B39;"></span>-->
|
||||
<!-- <span class="ds" style="background: #a4485a;"></span>-->
|
||||
<!-- 未结算-->
|
||||
<!-- </div>-->
|
||||
<!-- </template>-->
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
<span>{{ parseTime(scope.row.createTime) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<el-table-column width="220" label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
<span>{{ parseTime(scope.row.createTime) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<el-table-column width="220" label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
|
||||
@@ -118,7 +118,7 @@
|
||||
<span>{{ parseTime(scope.row.createTime) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<el-table-column width="220" label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope" v-if="scope.row.roleId !== 1">
|
||||
<el-button
|
||||
size="mini"
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
:label="dict.dictName"
|
||||
:value="dict.dictType">
|
||||
<span style="float: left">{{ dict.dictName }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ dict.dictType }}</span>
|
||||
<span style="float: right; color: #7a664e; font-size: 13px">{{ dict.dictType }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</template>
|
||||
|
||||
@@ -110,7 +110,7 @@
|
||||
/>
|
||||
<el-table-column label="创建时间" align="center" prop="createTime" width="160" />
|
||||
<el-table-column label="更新时间" align="center" prop="updateTime" width="160" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<el-table-column width="380" label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="text"
|
||||
|
||||
@@ -159,7 +159,7 @@
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column align="center" label="操作">
|
||||
<el-table-column width="170" align="center" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" @click="handleChange(scope.row)">修改</el-button>
|
||||
<el-button type="text" @click="handleView(scope.row)">查看</el-button>
|
||||
|
||||
Reference in New Issue
Block a user