v63:卡片配色 / 日历本靠右 / 地图题图 / 设置页清理 / 公共标签颜色 / 令牌下线

- 卡片右上角按钮改用「来自哪个模块」的主题色:HomeCards 登记表新增 mod 字段
  与 module(),首页从登记表取色(原来是模板里硬编码 in_array(['agenda','tasks'])
  白名单,新加带按钮的卡片会默默变灰)
- 首页日程把日历本放到色块右侧:.ag-ev 改弹性行,「时间+标题」包进
  .ag-ev-main(flex:1 1 auto; min-width:0),日历本作右侧兄弟。
  原来 display:block 会把日历本顶到第二行,色块一矮就完全看不见
- 旅程地图显示题图:服务端把 media_url(cover_key) 塞进地图数据,
  地图卡片左侧 40x40 题图(object-fit:cover),没有题图不留灰框
- 系统设置第一块改叫「系统标语」;删掉「首页上那一行小字」提示、
  「不是全家的统一口号」说明、「上次结构升级有步骤失败了」整框;
  运行环境删「排错时看这一块」与「亲属连线」那一行(功能与数据未动)
- 公共标签:说明文字全删;列表与编辑合并成一行(色块+名字+N人+箭头+编辑);
  person_groups 加 color 列(Schema addColumn,老库可升);点「编辑」弹框
  改名字与颜色、点「完成」提交;下面那个独立编辑列表撤掉。删除挪进弹框
- 个人设置删掉「手动签发接口令牌」整块;settings/api_token 路由保留但挡下提交
  (只删界面会留下知道地址就能用的后门);令牌只由登录后自动签发,
  设备管理卡保留。apiTokens/apiPlain/apiLabel/apiBase 四个变量一并撤掉
This commit is contained in:
2026-10-19 17:27:37 +08:00
parent 2e40133d8f
commit 2f7dc6ca23
11 changed files with 450 additions and 189 deletions
+65 -7
View File
@@ -1423,6 +1423,36 @@ body[class] .semi-datepicker-day-inhover { background-color: color-mix(in srgb,
.order-move .btn { padding: 2px 8px; line-height: 1.4; }
.order-move .btn[disabled] { opacity: .35; cursor: default; }
/* ---- 🔴 v63(用户 2026-10-19 第 5 条):公共标签的颜色 ----
一行 = 序号 · 色块 · 名字 · N人 · ▲▼ · 编辑。 */
.pg-dot {
flex: 0 0 auto; width: 12px; height: 12px; border-radius: 50%;
box-shadow: inset 0 0 0 1px rgba(0,0,0,.12); /* 浅色底上也要看得见边界 */
}
/* 色板(弹框里):点一下就选。⚠️ 选中态用 `is-on` 描一圈,
不与 `.is-on` 的通用含义冲突(本页没有别的 .is-on)。 */
.pg-swatches { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 6px; }
.pg-sw {
width: 26px; height: 26px; border-radius: 7px; cursor: pointer;
border: 2px solid transparent; padding: 0;
box-shadow: inset 0 0 0 1px rgba(0,0,0,.12);
}
.pg-sw.is-on { border-color: var(--ink); }
.pg-sw:hover { transform: scale(1.06); }
/* 自定义取色器:与色块同尺寸,外观上就是色板里的第 13 格 */
.pg-sw-custom {
width: 26px; height: 26px; border-radius: 7px; overflow: hidden; cursor: pointer;
box-shadow: inset 0 0 0 1px rgba(0,0,0,.12);
display: inline-flex;
}
.pg-sw-custom input[type="color"] {
width: 40px; height: 40px; margin: -7px; border: 0; padding: 0; cursor: pointer; background: none;
}
/* 新建时那个颜色下拉(窄屏缩一半,别把"加一个"按钮挤到下一行) */
.pg-swatch-pick { flex: 0 0 auto; max-width: 96px; }
/* 弹框底栏:删除在左、取消/完成在右 —— 与"危险动作离确认按钮远一点"的通行做法一致 */
.rm-foot-gap { flex: 1 1 auto; }
/* ---------------- 个人设置:关系分类管理 ---------------- */
.inline-form { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.inline-form .input { flex: 1 1 200px; max-width: 320px; }
@@ -4520,7 +4550,11 @@ button.btn, a.btn, summary.btn, .seg-btn, .icon-btn, .rv-act-btn, .cs-btn, .bf-b
⚠️ 白字压浅色本的兜底:加一层极轻的 text-shadow(不加深色罩,保持本色)。 */
.ag-ev {
position: absolute; left: 46px; right: 4px;
display: block; overflow: hidden; padding: 3px 7px;
/* 🔴 v63(用户 2026-10-19 第 2 条):日历本要显示在色块**右侧** ⇒ 本体必须是
一行弹性容器。⚠️ 纵向排列时(`flex-direction: column`)`block` 子元素会各占一行,
日历本必然掉到第二行;色块很矮时就整条看不见。 */
display: flex; align-items: center; gap: 6px;
overflow: hidden; padding: 3px 7px;
background: var(--brand); border-radius: 4px;
font-size: 12px; line-height: 1.35; color: #fff;
text-decoration: none; box-sizing: border-box;
@@ -4528,10 +4562,23 @@ button.btn, a.btn, summary.btn, .seg-btn, .icon-btn, .rv-act-btn, .cs-btn, .bf-b
text-shadow: 0 1px 1px rgba(0,0,0,.18);
}
.ag-ev:hover { text-decoration: none; filter: brightness(1.08); z-index: 2; }
.ag-ev .ag-ev-t { display: block; font-weight: 600; font-variant-numeric: tabular-nums; margin-right: 4px; float: left; }
.ag-ev .ag-ev-w { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
/* 日历本名:色块右下角的极淡小字(色块面积小,不加大徽标) */
.ag-ev .ag-ev-cal { display: block; font-size: 10.5px; opacity: .82; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* 「时间 + 标题」这一坨占满剩余宽度;`min-width:0` 是标题能被省略号截断的前提
(没有它,flex 子项按内容撑宽 ⇒ 整行溢出、日历本被挤出可视区)。 */
.ag-ev .ag-ev-main {
display: flex; align-items: baseline; gap: 4px;
flex: 1 1 auto; min-width: 0;
}
.ag-ev .ag-ev-t { flex: 0 0 auto; font-weight: 600; font-variant-numeric: tabular-nums; }
.ag-ev .ag-ev-w { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
/* 日历本名:色块**右侧**的极淡小字(色块面积小,不加大徽标)。
⚠️ 它 `flex: 0 0 auto`(**不参与收缩**):用户要的就是"看得见日历本" ——
让它跟着一起缩,色块一窄就又没了。改为**标题**让步(`.ag-ev-main` 可缩到 0)。
同时给它 `max-width: 45%` 兜底:日历本名过长时自己截断,别把标题吃光。 */
.ag-ev .ag-ev-cal {
flex: 0 0 auto; font-size: 10.5px; opacity: .82;
max-width: 45%;
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
/* ---- 任务行:标题 + 状态 + **看板名** + 截止 ---- */
.tk-list { display: flex; flex-direction: column; }
@@ -6090,15 +6137,26 @@ h5.md-h, h6.md-h { font-size: 14px; }
pointer-events: auto; cursor: pointer;
}
.trip-pin-card {
display: flex; align-items: center; gap: 8px; /* 🔴 v63:题图在左、文字在右 */
background: var(--surface); border: 1px solid var(--line);
border-left: 3px solid var(--brand);
border-radius: 8px; padding: 6px 10px;
box-shadow: 0 2px 8px rgba(0,0,0,.10);
max-width: 190px; white-space: nowrap;
max-width: 220px;
}
/* 🔴 v63(用户 2026-10-19 第 3 条):旅程题图。
⚠️ `object-fit: cover` 必须有:题图原图长宽比五花八门,默认 `fill` 会把人拉扁。
⚠️ 有题图时卡片最多 220px(原来是 190px),文字那一块要 `min-width:0`
才能让 `.trip-pin-title` 的省略号真正生效(否则长标题把卡片撑破)。 */
.trip-pin-thumb {
flex: 0 0 auto; width: 40px; height: 40px;
border-radius: 5px; overflow: hidden; background: var(--line-2);
}
.trip-pin-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.trip-pin-body { display: block; min-width: 0; }
.trip-pin-title {
font-size: 13px; font-weight: 600; color: var(--ink);
overflow: hidden; text-overflow: ellipsis;
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.trip-pin-sub { font-size: 11.5px; color: var(--muted); margin-top: 1px; }
.trip-pin:hover .trip-pin-card { border-color: var(--brand); box-shadow: 0 4px 14px rgba(0,0,0,.16); }