v26110467 孕妈广场「大家在聊」加标签筛选(职场/护肤经验等 10 个);新话题 b11 孕期护肤 6 篇(实拍配图、每篇 21+ 条评论、转发图、作者新头像 g108~g113)

This commit is contained in:
deploy
2026-11-05 15:17:48 +00:00
parent 3966242182
commit c2744a6587
31 changed files with 248 additions and 32 deletions

View File

@@ -440,6 +440,13 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
.lvw .lv h2{margin:0;font-size:17px;font-weight:900;letter-spacing:.3px;color:var(--kt)}
.lvw .lv small{font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap}
.lvw .lv .ba{margin-left:auto;font-size:12.5px;font-weight:800;color:var(--kt)}
.shtg .sh{margin-bottom:2px}
.gtg{display:flex;gap:7px;padding:4px 14px 6px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none}
.gtg::-webkit-scrollbar{display:none}
.gtg button{flex:none;height:30px;padding:0 13px;border-radius:99px;background:#fff;border:1px solid #EFE1DB;font-size:13px;font-weight:700;color:#5E4E4A;white-space:nowrap}
.gtg button.on{background:#F2725B;border-color:#F2725B;color:#fff;box-shadow:0 5px 12px -6px #F2725B}
html.night .gtg button{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.12);color:#E8DFE8}
html.night .gtg button.on{background:#F2725B;border-color:#F2725B;color:#fff}
.tcs{display:flex;gap:7px;padding:9px 12px 2px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none}
.tcs::-webkit-scrollbar{display:none}
.tcs::after{content:"";flex:none;width:4px}
@@ -903,10 +910,10 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
<div id="sheet" role="dialog" aria-modal="true"><i class="sg"></i><div class="sbd" id="sbd"></div></div>
<div class="toast" id="toast"></div>
<script src="topics.js?v=26110464"></script>
<script src="data.js?v=26110464"></script>
<script src="feed.js?v=26110464"></script>
<script src="../js/ava-pool.js?v=26110464"></script> <!-- 11-05 装饰头像分配表(各模块互不重复) -->
<script src="topics.js?v=26110467"></script>
<script src="data.js?v=26110467"></script>
<script src="feed.js?v=26110467"></script>
<script src="../js/ava-pool.js?v=26110467"></script> <!-- 11-05 装饰头像分配表(各模块互不重复) -->
<script src="ceshi/meta.js?v=26110464"></script>
<script src="../js/share-card.js?v=26110464"></script>
<script src="../js/cm-pics.js?v=26110464"></script> <!-- 11-05 评论 / 回复带图 -->
@@ -976,7 +983,7 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
var CMD = null, CMERR = false;
/* 头像编码:数字 = av/NNNN.webp(旧代码头像);'av:c012' = av/c012.webp(卡通/可爱卡通);'/…' = 站内绝对路径(内置头像库 /_bridge/avatars/);其余 = assets/img/mom/xxx.jpg */
var avP = function (a) { return typeof a === 'number' ? 'av/' + ('000' + a).slice(-4) + '.webp' : a.indexOf('av:') === 0 ? 'av/' + a.slice(3) + '.webp' : a.charAt(0) === '/' ? a : '../assets/img/mom/' + a + '.jpg'; };
fetch('cm.json?v=26110464').then(function (r) { return r.json(); }).then(function (j) {
fetch('cm.json?v=26110467').then(function (r) { return r.json(); }).then(function (j) {
CMD = j; if (openId && NBY[openId]) { renderComments(NBY[openId]); syncBar(NBY[openId]); }
}).catch(function () { CMERR = true; if (openId && NBY[openId]) renderComments(NBY[openId]); });
function commentsOf(n) {
@@ -1081,7 +1088,21 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
/* ---------- 列表 ---------- */
/* cur 当前话题('' = 不限话题);catF 一级分类('' 全部 / family 家庭 / marriage 婚姻 / work 职场 / baby 母婴)。选了话题时 catF 恒等于该话题的 cat */
var cur = '', catF = '';
var cur = '', catF = '', tagF = '';
/* 「大家在聊」标签 → 话题 id(11-05)。护肤经验 = b11(同日新开的话题);一个话题可以在多个标签里 */
var GTAGS = [
['职场', ['w01', 'w02', 'w03', 'w04', 'w05', 'w06', 'w07', 'w08', 'w09', 'w10']],
['护肤经验', ['b11']],
['夫妻日常', ['m01', 'm02', 'm03', 'm04', 'm05', 'm06', 'm07', 'm08', 'm09', 'm10']],
['婆家娘家', ['f01', 'f02', 'f03', 'f04', 'f05', 'f06', 'f07', 'f09', 'f10']],
['身体变化', ['b01', 'b05', 'b10', 'b11']],
['吃喝', ['b09', 'f10']],
['胎动', ['b06', 'w04']],
['待产生娃', ['b07', 'b08', 'b04']],
['花钱囤货', ['b02', 'b04']],
['宅家日常', ['f08', 'b03']]
];
var GTBY = {}; GTAGS.forEach(function (g) { GTBY[g[0]] = g[1]; });
var UBAND = (function () { try { var g = JSON.parse(localStorage.getItem('mmbox.gcwk.v1') || 'null'); return !g ? -1 : g.pp ? 'pp' : g.w && window.GC_BAND ? window.GC_BAND('孕' + g.w + '周') : -1; } catch (e) { return -1; } })();
/* 11-01 用户:家庭+婚姻合成「家庭婚姻」,母婴改「经验」→ 三块(marriage 话题在 topics.js 里已并进 family) */
/* 11-03 用户:「家庭婚姻 / 职场 / 经验标签全部删除,只展示全部,所有内容放到全部里;每篇带一个话题标签(职场 / 经验分享…)」
@@ -1529,9 +1550,13 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
'<button type="button" class="jn" data-join="' + x.id + '">参与</button></div>';
}).join('') + '<button type="button" class="hall" data-all="1">查看全部话题 ›</button></div>';
if (catF) { fhLevels(fh); return; }
fh.className = 'sh';
/* 11-03 用户:广场里不显示具体有多少篇、多少个话题 → 篇数 / 话题数一律不露 */
fh.innerHTML = '<h2>大家在聊</h2><small>孕妈们的真实分享</small>';
/* 11-03 用户:广场里不显示具体有多少篇、多少个话题 → 篇数 / 话题数一律不露
11-05 用户:「大家都在聊下面加一些标签,比如职场、护肤经验,再加一些别的」→ 标题下一行横滑标签,点了只看这类帖子(GTAGS 按话题归类) */
fh.className = 'shtg';
fh.innerHTML = '<div class="sh"><h2>大家在聊</h2><small>孕妈们的真实分享</small></div>' +
'<div class="gtg"><button type="button" data-tag=""' + (tagF ? '' : ' class="on"') + '>全部</button>' +
GTAGS.map(function (g) { return '<button type="button" data-tag="' + g[0] + '"' + (tagF === g[0] ? ' class="on"' : '') + '>' + g[0] + '</button>'; }).join('') + '</div>';
var gon = fh.querySelector('.gtg .on'); if (gon && tagF) fh.querySelector('.gtg').scrollLeft = Math.max(0, gon.offsetLeft - 60);
return;
}
var d = D[t.id] || {};
@@ -1557,6 +1582,8 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
}
function renderFeed() {
var list = cur ? NOTES.filter(function (n) { return n.t === cur; }) : MIXED.filter(function (n) { return inCat(TBY[n.t]); });
var tagOn = !cur && !catF && tagF && GTBY[tagF];
if (tagOn) list = list.filter(function (n) { return GTBY[tagF].indexOf(n.t) >= 0; });
/* 11-02 按孕周段排:同阶段孕妈的帖子为主、穿插过来人(GC_ORDER 在 feed.js);真实投稿仍排最前;孕周由首页写进 mmbox.gcwk.v1 */
if (window.GC_ORDER) list = list.filter(function (n) { return n.real; }).concat(window.GC_ORDER(list.filter(function (n) { return !n.real; }), UBAND));
var wf = $('#wf'), cols = wf.children;
@@ -1571,7 +1598,7 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
$('#more').innerHTML = ceshiListHTML(); csFx(); ckHlRun(); return;
}
/* 「全部」信息流:穿插测试卡 */
if (!cur && !catF && TM.length) {
if (!cur && !catF && !tagOn && TM.length) {
var dn = csDone(), mixed = [], ci = 0;
/* 测试卡:先出 CS_MIX 精选,再按热度轮完其余测试。
11-03 用户:「笔记里测一测减少一些,已经有测一测模块了」→ 原来第 3 位起每 8 张插 1 张(约 20 张),改成第 6 位起每 30 张插 1 张、最多 3 张 */
@@ -1713,6 +1740,16 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
sc.addEventListener('touchcancel', function () { if (mode === 'h') { pane.style.transform = ''; pane.style.opacity = ''; moveBar(); } ok = false; }, { passive: true });
})();
$('#fh').addEventListener('click', function (e) {
var gt = e.target.closest('[data-tag]');
if (gt) {
if (gt.dataset.tag === tagF) return;
tagF = gt.dataset.tag; haptic();
var gl = $('#fh .gtg'), sl0 = gl ? gl.scrollLeft : 0;
[].forEach.call(gl.children, function (x) { x.classList.toggle('on', x.dataset.tag === tagF); });
gl.scrollLeft = sl0; renderFeed();
var sc0 = $('#sc'), fhT = $('#fh').offsetTop - 8; if (sc0.scrollTop > fhT) sc0.scrollTop = fhT; /* 已经往下滑了的话,回到标签这一行 */
return;
}
var tg = e.target.closest('[data-tg]');
if (tg) { tGrp = tg.dataset.tg; haptic(); ceshiFh($('#fh')); renderFeed(); return; }
var b = e.target.closest('[data-t]'); if (!b || b.dataset.t === cur) return;