name)、$emotions(emoji=>中文) * * 编辑走弹窗:点某个参与人旁的「编辑」,弹出预填好的表单(角色 / 心情 / 签到时间), * 提交目标仍是 members/store —— Members::save() 本来就是 upsert(同一节点同一人一条), * 所以「编辑已加入的人」不需要任何新接口。 */ $members = $members ?? []; $familyUsers = $familyUsers ?? []; $roleTags = $roleTags ?? []; $emotions = $emotions ?? []; $joinedIds = []; foreach ($members as $m) { $joinedIds[(int)$m['user_id']] = true; } $notJoined = []; foreach ($familyUsers as $u) { if (!isset($joinedIds[(int)$u['id']])) $notJoined[] = $u; } /* 上一次提交的原始值(flash_old 存的)只用来回填「刚才没保存成功的那个人」的表单, 按 user_id 精确匹配,避免污染其他参与人的编辑弹窗。 */ $mOldFilled = !empty($_SESSION['_old']); $mOldUid = (string)old('user_id', ''); ?> 👥 参与人 (= count($members) ?>) 还没有添加参与人 = e(mb_substr($mName, 0, 1)) ?> = e($mName) ?> = e($tagName) ?> = e($m['emotion']) ?>= e($emotions[$m['emotion']] ?? '') ?> ✓ 签到 = date('m-d H:i', strtotime((string)$m['check_in_time'])) ?> 编辑 移出 编辑参与人:= e($mName) ?> 改完点「保存」即可,同一人只会有一条参与记录。 角色标签(可多选) $tagName): ?> > = e($tagName) ?> 还没有角色标签,去 角色标签管理 先建几个(例如:司机 / 摄影师 / 记账员) 心情(可选) > 🚫 不记录 $label): ?> > = e($emoji) ?> = e($label) ?> 签到时间(可选,留空表示未签到) 保存 取消 + 一键加入全家(= count($notJoined) ?> 人待加入) + 添加参与人 成员 * — 请选择 — > = e($u['name']) ?>= isset($joinedIds[(int)$u['id']]) ? '(已加入,保存将覆盖)' : '' ?> 角色标签(可多选) $tagName): ?> > = e($tagName) ?> 还没有角色标签,去 角色标签管理 先建几个(例如:司机 / 摄影师 / 记账员) 心情(可选) > 🚫 不记录 $label): ?> > = e($emoji) ?> = e($label) ?> 签到时间(可选,留空表示未签到) 保存
还没有添加参与人
改完点「保存」即可,同一人只会有一条参与记录。
还没有角色标签,去 角色标签管理 先建几个(例如:司机 / 摄影师 / 记账员)