{{ s.label }}
- {{ it.no }}.{{ it.content }}
教會牧養系統
ChMS Admin Dashboard
同心牧養 忠心守望
在主所託的服事中彼此配搭。 讓每一次關懷都被妥善承接。
教會牧養系統
ChMS Admin Dashboard
請使用系統管理員提供的帳號與密碼。帳號是管理員給您的登入名稱(不是姓名或 Email);不確定請洽管理員。
ChMS © {{ new Date().getFullYear() }}
輸入您的帳號名稱,我們會將重設密碼連結寄到您綁定的 email。不知道帳號名稱請洽管理員。
{{ adminBell.error }}
載入中…
目前沒有等著處理的事 🙂
這個後台帳號沒有連結會友,所以沒有通知(通知會送到帳號連結的會友身上)。要收通知,請管理員在帳號管理把這個帳號連結到本人。
載入中…
沒有通知 🙂(通知保留 90 天)
LIFF 牧養同工系統目前暫停中
同工打開 LIFF 只會看到「整理中」說明(連結管理員帳號的會友例外);LINE 推播與 Bot 的同工功能也暫停。點這裡到開關。
{{ todayDateStr }}・本週 {{ dashboardData.week_label }}
| # | 姓名 | 電話 | 活動 | 簽到時間 |
|---|---|---|---|---|
| {{ index + 1 }} | {{ row.user_name }} | {{ row.user_phone }} | {{ row.event_name }} | {{ formatTime(row.check_in_time) }} |
今日尚無簽到紀錄
只算 rpg 型;「已辨識」=對到會友+已標非會友。 本區間已辨識 {{ Math.round(prayerNetwork.matched_ratio * 100) }}%({{ prayerNetwork.node_count }} 人、{{ prayerNetwork.total_reports }} 組,含非會友 {{ prayerNetwork.non_member_count }} 位);尚未辨識的請到「設定 → 禱告回報」指派或標非會友,數據才會完整。
點人=星狀聚焦(只亮他的連線)、拖曳節點移動、滾輪縮放、空白拖曳平移、點空白取消聚焦。
查看會友資料;資料管理角色可新增與編輯
找不到符合條件的會友
| # | 姓名 | 電話 | LINE 綁定 | 操作 |
|---|---|---|---|---|
| {{ i + 1 }} | {{ u.name }} 稱呼 ({{ u.alias_note }}) 安息 #{{ (u.id || '').slice(0,8) }} | {{ u.phone || '—' }} | {{ u.line_id ? '已綁定' : '未綁定' }} |
|
| {{ i + 1 }} | {{ composeName(editForm.primary_name_lang, editForm.last_name, editForm.first_name, editForm.en_last_name, editForm.en_first_name, editForm.en_middle_name) || editForm.name }} (展開下方編輯) | (不變) |
|
{{ canEditMember ? '尚無會友資料,請點選上方「新增會友」' : '尚無可檢視的會友資料' }}
啟動各堂次簽到機台、取得 LINE 簽到連結,並查看今日名單
| # | 姓名 | 電話 | 活動 | 簽到時間 |
|---|---|---|---|---|
| {{ index + 1 }} | {{ row.user_name }} | {{ row.user_phone }} | {{ row.event_name }} | {{ formatTime(row.check_in_time) }} |
今日尚無簽到紀錄
| 送出時間 | 聚會 | 姓名 | 電話 | 小組 | 生日 | 原因 | 處理 |
|---|---|---|---|---|---|---|---|
| {{ formatUtcDateTime(row.created_at) }} | {{ row.event_name }} | {{ row.submitted_name }} | {{ row.submitted_phone || '—' }} | {{ row.org_unit_label || row.group_query || '—' }} | {{ row.birth_month && row.birth_day ? `${row.birth_month}/${row.birth_day}` : '—' }} | {{ row.reason || '待確認' }} |
待管理同工處理
|
目前沒有待確認的線上簽到
為各小組成員補登出席紀錄
{{ rollCallRoster.unit.code }} {{ rollCallRoster.unit.name }}
{{ rollCallRoster.week_label }}・共 {{ rollCallRoster.members.length }} 人
已選 {{ rollCallPendingCount }} 筆補登
管理聚會時程,並啟動對應的簽到機台
單次聚會過了日期會自動「已結束」;固定聚會不再舉行時請按「停用」。收起來的聚會,出席紀錄與統計都照常保留。
載入中…
聚會排程載入失敗(不是沒有聚會)。請重新整理,若持續發生請重新登入。
{{ closedGatheringCount && !showClosedGatherings ? '目前沒有開放中的聚會(勾選上方「顯示已結束/停用」可查看收起來的)' : '尚無聚會排程,點右上角「新增聚會」開始安排' }}
| 名稱 | 日期 | 時間 | 地點 | 類別 | 類型 | 接續聚會 | 操作 |
|---|---|---|---|---|---|---|---|
|
{{ g.name }}
兒童聚會
{{ g.status_label }}
停用原因:{{ g.deactivated_reason }}({{ g.deactivated_by }}) {{ g.attendance_count }} 筆出席紀錄(保留) |
{{ g.gathering_type === 'routine' ? ['週日','週一','週二','週三','週四','週五','週六'][g.weekday] ?? '—' : (g.date || '—') }} | {{ g.start_time }} – {{ g.end_time }} | {{ g.location || '—' }} | {{ g.category || '主日' }} | {{ g.gathering_type === 'routine' ? '例行' : '單次' }} | 接續 {{ gatheringMap[g.follow_up_gathering_id].name }} — |
|
復活節、聖誕節、營會等推動回報項目;新增後會出現在小組長週報表中
每個項目會在小組長 Sheet 對應一欄;選項即下拉選單值
載入中…
尚無節期活動,點右上角「新增活動」開始建立
| 名稱 | 推動期間 | 追蹤項目 | 狀態 | 操作 |
|---|---|---|---|---|
|
{{ c.name }}
{{ c.description }} |
{{ c.start_week }} ~ {{ c.end_week }} |
{{ it.label }}
無
|
啟用 停用 |
推動期間:{{ campaignDashData.campaign.start_week }} ~ {{ campaignDashData.campaign.end_week }}
填寫率 = 已填寫狀態的人數 / 小組成員數
| 小組 | 成員 | {{ it.label }} |
|---|---|---|
|
{{ g.unit_label }}
{{ g.parent_label }}
|
{{ g.member_count }} |
{{ opt }} {{ stat.by_status[opt] }}
|
| 此週尚無任何小組推動資料 |
小組長透過 LIFF 邀請的對象、以及資處從紙本新人留名卡建檔的自己到訪者
本頁筆數
{{ inviteeList.length }}
邀約中
{{ inviteeList.filter(i => i.status === 'active').length }}
已合併
{{ inviteeList.filter(i => i.status === 'merged').length }}
歸檔/封存
{{ inviteeList.filter(i => i.status === 'archived' || i.status === 'dismissed').length }}
| 顯示名稱 / 真名 | 關係 | 電話 | 邀請者 | 所屬單位 | 狀態 | 建立日 | 操作 |
|---|---|---|---|---|---|---|---|
|
{{ iv.display_name }} {{ iv.real_name }} |
{{ INVITEE_RELATION_LABEL[iv.relation_type] || iv.relation_type || '—' }} · {{ iv.related_user_name }} — | {{ iv.phone || '—' }} | {{ iv.inviter_name || '—' }} | {{ iv.unit_label || '—' }} | {{ inviteeStatusLabel(iv.status) }} | {{ formatInviteeDate(iv.created_at) }} |
已選:{{ inviteeCreateForm.inviter_user_name }}
將「{{ mergeTargetInvitee.display_name }}」連結到已建檔的會友
已選擇:{{ selectedMergeUser.name }}({{ selectedMergeUser.phone || '無電話' }})
小組估算完成率與命中率彙整(牧養支持參考,非考核用)
小組數
{{ pdSummary.unit_count }}
平均完成率
{{ pdFmtPct(pdSummary.avg_completion) }}
平均命中率
{{ pdFmtPct(pdSummary.avg_accuracy) }}
需要關心
{{ pdSummary.anomaly_count }}
四象限分布
X 軸=完成率 Y 軸=命中率 虛線=70% 分界
| {{ col.label }} | ||||||||
|---|---|---|---|---|---|---|---|---|
| {{ u.district_name || '—' }} | {{ u.unit_name }} | {{ u.leader_name || '—' }} | {{ u.member_count }} | {{ pdFmtPct(u.summary.completion_rate) }} | {{ pdFmtPct(u.summary.accuracy_rate) }} | {{ pdFmtPct(u.summary.attend_hit_rate) }} | {{ pdFmtPct(u.summary.absent_hit_rate) }} | — {{ a.description }} |
資料以「週五 → 下週四」為一週;本週未結束,不納入統計。
LIFF 小組回報整個無法使用時,改用 Google 試算表補填出席
什麼時候用:只有在 LIFF(小組長手機上的回報頁)整個無法使用時——例如 LINE 或 LIFF 服務中斷、網路問題。平常的回報請小組長照常用 LIFF。
步驟:① 下方選週次、按「產生」,每個小組產生一份試算表(已簽到的自動打勾)→ ② 把連結傳給小組長補填 → ③ 填完後按「回收」,結果寫回正式出席紀錄。
限制:產生時只列出「當下已經開始」的聚會;回收時,聚會開始時間晚於回收當下的勾選一律不寫入(結果會列出)。試算表不帶任何敏感註記;回收時若某位會友同一週已有 LIFF 寫的註記,不會被覆寫(會列出衝突)。
只是要補幾個人的出席,用「點名補登」比較快。
系統會依最低啟用的組織層級(小組)分組,每個小組產生一份試算表,已簽到者自動打勾,發給小組長補填漏掉的人。只會列出「產生當下已經開始」的聚會,也不會帶任何敏感註記。
.env 中已設定
GOOGLE_SERVICE_ACCOUNT_JSON、
GOOGLE_SHEET_TEMPLATE_ID、
GOOGLE_DRIVE_FOLDER_ID。
同步小組長回填結果,轉入正式出席紀錄
{{ bulkSyncResult.total_added > 0 ? '全部回收完成' : '已是最新狀態' }} —— 共新增 {{ bulkSyncResult.total_added }} 筆出席紀錄,回收 {{ bulkSyncResult.synced }} 份報表
{{ r.unit_name }}:{{ r.error }}
{{ r.unit_name }}:聚會還沒開始,預先勾選的出席沒有寫入 —— {{ r.blocked_future.map(b => b.gathering_name + '(' + b.count + ' 筆,' + b.starts_at.replace('T', ' ') + ' 開始)').join('、') }}
{{ r.unit_name }}:這幾位本週已有 LIFF 寫的註記,試算表裡的註記沒有覆寫 —— {{ r.note_conflicts.map(c => c.user_name).join('、') }}
{{ r.unit_name }}:{{ r.errors.filter(e => !e.includes('尚未開始')).join('、') }}
{{ singleSyncNote.unit_name }} 回收完成 —— 新增 {{ singleSyncNote.added }} 筆出席紀錄
聚會還沒開始,沒有寫入:{{ b.gathering_name }}({{ b.count }} 筆,{{ b.starts_at.replace('T', ' ') }} 開始)
這幾位本週已有 LIFF 寫的註記,試算表裡的註記沒有覆寫:{{ singleSyncNote.note_conflicts.map(c => c.user_name).join('、') }}
{{ e }}
{{ r.unit_name }}
{{ fmtDatetime(r.last_synced_at) }}・新增 {{ r.sync_added ?? 0 }} 筆
若要回收不在上方清單中的試算表,可直接貼入網址手動回收。
{{ syncSheetResult.added > 0 ? '回收完成' : '已是最新狀態' }}
新增出席紀錄:{{ syncSheetResult.added }} 筆
已有紀錄略過:{{ syncSheetResult.skipped }} 筆
聚會還沒開始,沒有寫入:{{ b.gathering_name }}({{ b.count }} 筆,{{ b.starts_at.replace('T', ' ') }} 開始)
這幾位本週已有 LIFF 寫的註記,試算表裡的註記沒有覆寫:{{ syncSheetResult.note_conflicts.map(c => c.user_name).join('、') }}
警告:
・{{ e }}
教會週(五—四)為計算單位
{{ unitPhotoError }}
{{ unit.unit_label }}
{{ unitPhotoData.date_from }} ~ {{ unitPhotoData.date_to }}
| 姓名 |
{{ s.gathering_name }}
{{ s.date.slice(5) }}
|
|---|---|
| {{ m.name }} | {{ m.attended_keys.includes(s.key) ? '是' : '' }} |
| 出席人數 | {{ unit.members.filter(m => m.attended_keys.includes(s.key)).length }} |
—
這一週早於出席資料的起點({{ dashboardData.data_start || '—' }}),沒有資料可以計算,所以不顯示數字。
勾選要排除的主日堂次
系統 {{ dashboardData.activity_from }} 上線之前的週只有出席人數,沒有活躍會友的計算。
—
這一週早於出席資料的起點({{ pastoralMetrics.data_start || '—' }}),沒有資料可以計算,所以不顯示數字。
久未出席=狀態為未穩定,但近 90 天沒有出席(上面「未穩定」只算近 90 天有出席的人)。
系統 {{ pastoralMetrics.activity_from }} 上線之前的週只有出席人數,沒有活躍會友的計算(活躍、未穩定、久未出席、小組缺席與出席率顯示「—」);新朋友、新朋友漏斗與週報待辦照常。
出席資料未滿 90 天,無法區分「未穩定」與「久未出席」(這一週不顯示這兩個數字);未穩定合計 {{ pastoralMetrics.summary.unstable_total }} 人。
牧養風險 已關懷 {{ pastoralMetrics.summary.risk_cared || 0 }}/{{ pastoralMetrics.summary.small_group_absent }}
新朋友漏斗
待跟進新人
目前沒有待跟進新人
小組健康表
出席率只計算小組聚會 · 點牧區或區的那一列展開底下的單位(牧區、區的數字是底下所有人的合計,不重複計算)
| 牧區 / 區 / 小組 | 活躍 | 小組出席 | 小組出席率 | 新人 | 風險 | 風險已關懷 | 回覆 | 關懷 |
|---|---|---|---|---|---|---|---|---|
|
{{ r.node.label }} {{ treeNodeLeaders(r.node) }} · {{ (r.node.leaf_unit_ids || []).length }} 組 |
{{ r.node.counts.active_members ?? '—' }} | — {{ r.node.counts.small_group_attended }} | {{ r.node.counts.small_group_rate == null ? '—' : (r.node.counts.small_group_rate*100).toFixed(0) + '%' }} | {{ r.node.counts.new_visitors }} — | {{ r.node.counts.risk_count }} — | {{ r.node.counts.risk_cared_count || 0 }}/{{ r.node.counts.risk_count }} — | {{ r.node.counts.member_note_count }} — | {{ r.node.counts.care_count }} — |
|
小組缺席風險
{{ pastoralMetrics.activity_before ? '—' : '無' }}
本週新人
無
週報回覆 / 關懷 個別回覆 {{ r.group.member_note_count }} 筆,已關懷 {{ r.group.care_count }} 人 |
||||||||
牧養待辦
{{ n.unit_name }}・{{ n.author }} 寫
{{ n.note }}
門訓推進
{{ base }}
{{ count }}
{{ step.label }}
資料品質
{{ issue.label }}
{{ group.testimony }}
{{ group.special_note }}
個別會友回覆
本週關懷名單
各小組出席明細
點牧區或區的那一列,展開底下的單位 · 點擊人數查看名單 · 出席率=活躍者主日出席 ÷ 活躍人數(小組聚會出席率請看「牧養數據」)· 久未出席=狀態為未穩定,但近 90 天沒有出席(不含在「未穩定」人數內)
系統 {{ dashboardData.activity_from }} 上線之前的週只有出席人數,沒有活躍會友的計算(活躍、未穩定、久未出席與出席率顯示「—」)。
出席資料未滿 90 天,無法區分「未穩定」與「久未出席」(這一週這兩欄顯示「—」);未穩定合計 {{ dashboardData.status_totals.unstable_total }} 人。
| 牧區 / 區 / 小組 | 活躍 × 主日 | 未穩定 × 主日 | 新人 | 主日(全體) | {{ cat }} | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 人數 | 出席 | 缺席 | 出席率 | 人數 | 出席 | 缺席 | 久未出席 | 合計 | 人次 | 出席人數 | |||
| {{ r.node.label }} {{ treeNodeLeaders(r.node) }} {{ (r.node.leaf_unit_ids || []).length }} 組 | {{ r.node.counts.active_members ?? '—' }} | — | — |
—
|
{{ r.node.counts.unstable_members || '—' }} | — | — | {{ r.node.counts.dormant_members || '—' }} | {{ r.node.counts.unstable_total || '—' }} | {{ r.node.counts.new_visitors || '—' }} | {{ r.node.counts.sunday_times || '—' }} | {{ r.node.counts.sunday_unique_all || '—' }} | — |
| {{ t.label }} | {{ treeNum(t.counts.active_members) }} | {{ treeNum(t.counts.sunday_unique) }} | {{ treeNum(treeDiff(t.counts.active_members, t.counts.sunday_unique)) }} | {{ t.counts.sunday_rate == null ? '—' : (t.counts.sunday_rate*100).toFixed(0) + '%' }} | {{ treeNum(t.counts.unstable_members) }} | {{ treeNum(t.counts.sunday_unique_unstable) }} | {{ treeNum(treeDiff(t.counts.unstable_members, t.counts.sunday_unique_unstable)) }} | {{ treeNum(t.counts.dormant_members) }} | {{ treeNum(t.counts.unstable_total) }} | {{ treeNum(t.counts.new_visitors) }} | {{ treeNum(t.counts.sunday_times) }} | {{ treeNum(t.counts.sunday_unique_all) }} | {{ treeNum(t.counts.categories?.[cat]?.count) }} |
| # | 姓名 | 小組 | 方式 | 電話末四碼 | 邀請人 |
|---|---|---|---|---|---|
| {{ i+1 }} | {{ p.name }} | {{ p.group || '—' }} | {{ p.attendance_mode==='online' ? '線上' : '實體' }} | {{ p.phone_tail || '—' }} | {{ p.inviter_name || '—' }} |
| # | 姓名 | 小組 | 缺席週數 | 上次出席 |
|---|---|---|---|---|
| {{ i+1 }} | {{ p.name }} | {{ p.group || '—' }} | {{ p.absent_weeks >= 99 ? '從未' : p.absent_weeks + ' 週' }} | {{ p.last_seen || '無記錄' }} |
{{ pastoralDetailModal.subtitle }}
| # | 姓名 | 小組 | 狀態 | 補充 | 操作 |
|---|---|---|---|---|---|
| {{ i + 1 }} |
{{ p.name || '未命名' }} 末四碼 {{ p.phone_tail }} |
{{ p.group || '—' }} |
{{ p.attendance_status }}
{{ p.membership_status }}
|
{{ p.reason }}
最後小組 {{ p.last_seen }}
缺席 {{ p.absent_weeks }} 週
初訪 {{ p.first_visit }}(推定)
邀請人 {{ p.inviter_name }}
{{ need }}
—
|
|
{{ n.unit_name || '未分組' }}
{{ n.user_name }}
小組特殊狀況
{{ n.note || '—' }}
{{ n.author }} 寫
| # | 姓名 | 小組 | 操作 |
|---|---|---|---|
| {{ i + 1 }} | {{ c.user_name || '未命名' }} | {{ c.unit_name || '—' }} |
{{ catLabel }}交叉出席明細
重複=本堂中曾在前面任一堂出席的人數
| 小組 |
{{ g.name }}
{{ g.date }}
|
合計出席 | |
|---|---|---|---|
| 出席 | 重複 | ||
| {{ section.region }} {{ section.region_role ? section.region_role + ' ' : '' }}{{ section.region_leader }} {{ section.groups.length }} 組 | — | — | — |
| {{ row.label }} {{ row.leader }} | — | — | — |
| 全體合計 | — | — | — |
各週聚會人數
以教會週彙整各堂與各小組出席狀況
統計週數
{{ trendData.weeks.length }}
聚會類別
{{ trendCategories.length }}
最近一週合計
{{ trendData.weeks.length ? trendCategories.reduce((s, cat) => s + (trendData.weeks[trendData.weeks.length - 1].categories[cat]?.attendees || 0), 0) : 0 }}
{{ row.label }} {{ row.text }}
標「含推定」的週:有幾位會友是哪一週換組還沒確認,確認之後數字可能會變;人數在 5/15 之後是當時記下的,不會因為確認而變,會變的是這幾個人是誰,連帶的出席、活躍。
出席趨勢圖
單位:人
| {{ w.week_label }}{{ woAdminTag(trendData, w.week_start) }}▲ 組織調整 | {{ w.categories[cat].attendees }} ({{ (w.categories[cat].rate*100).toFixed(0) }}%) — |
系統 {{ trendData.activity_from }} 上線之前的週只有出席人數,沒有活躍會友的計算(活躍率不顯示)。
時間矩陣
聚會列數
{{ trendMatrixData.summary.gathering_row_count }}
小組列數
{{ trendMatrixData.summary.group_row_count }}
各堂平均週出席
{{ trendMatrixData.summary.gathering_weekly_avg }}
小組平均週出席
{{ trendMatrixView === 'groups' ? trendMatrixSelectedGroupAvg : trendMatrixData.summary.group_weekly_avg }}
{{ region.label }} {{ region.leaders_text }}
{{ region.group_count }} 組 · 活躍 {{ region.active_members ?? '—' }} / 總 {{ region.total_members }}
| 小組 | {{ compactWeekLabel(w.week_label) }}{{ woAdminTag(trendMatrixData, w.week_start) }}▲ 組織調整 | 平均 | 最近 | vs上週 |
|---|---|---|---|---|
| {{ region.groups.length ? (region.level_name || '') + '小計' : '本單位' }} | {{ v }} — | {{ region.avg }} | {{ region.last || '—' }} | {{ wowLabel(region.values) }} |
|
{{ g.label }} {{ g.leaders_text }} {{ g.level_name }}小計 · {{ g.group_count }} 組 · 活躍 {{ g.active_members ?? '—' }} / 總 {{ g.total_members }} |
{{ v }} — | {{ g.avg }} | {{ g.last || '—' }} | {{ wowLabel(g.values) }} |
| {{ trendMatrixView === 'gatherings' ? '聚會' : '小組' }} | {{ compactWeekLabel(w.week_label) }}{{ woAdminTag(trendMatrixData, w.week_start) }}▲ 組織調整 | 平均 | 最近 | vs上週 |
|---|---|---|---|---|
|
{{ row.label }} {{ row.weekday_label }}{{ row.start_time ? ' ' + row.start_time : '' }} · {{ row.category }} {{ row.leaders_text ? row.leaders_text + ' · ' : '' }}{{ row.level_name }}小計 · {{ row.group_count }} 組 · 活躍 {{ row.active_members ?? '—' }} / 總 {{ row.total_members }} {{ row.region || '未分牧區' }} · 活躍 {{ row.active_members ?? '—' }} / 總 {{ row.total_members }} |
{{ v }} — | {{ row.avg }} | {{ row.last || '—' }} | {{ wowLabel(row.values) }} |
上色規則:僅當該格偏離該列近期平均 ±15%(且差距 ≥3)才標色——紅=明顯偏低、綠=明顯偏高,其餘留白。
歷週指標比較 僅標示偏離該列近期平均 ±15% 的週(缺席、資料缺口等指標紅綠方向相反)
| 指標 | {{ w.week_label.replace(/^\d{4}\//, '').replace(/(.+)$/, '') }}{{ woAdminTag(pivotData, w.week_start) }}▲ 組織調整 | 本週 vs 上週 |
|---|---|---|
| {{ g.group }} ({{ g.metrics.length }} 項,點擊展開) | ||
| {{ b.subgroup }} | ||
| {{ m.label }} | {{ v == null ? '—' : v }} | {{ wowLabel(m.values) }} |
「資料缺口」以「當下使用者欄位」計算,部署前的歷史週可能無記錄而顯示 —。 「久未出席」=狀態為未穩定,但近 90 天沒有出席;「未穩定會友」只算近 90 天有出席的人。 出席資料從 {{ pivotData.data_start }} 才開始,所以 {{ pivotData.dormant_full_from }} 那一週之前,出席資料未滿 90 天,無法區分「未穩定會友」與「久未出席」,這兩列顯示「—」,請看「未穩定合計」。 出席資料從 {{ pivotData.data_start || '—' }} 開始,在那之前的週沒有資料可算,一律顯示 —(不是 0)。 系統 {{ pivotData.activity_from }} 上線之前的週只有出席人數,沒有活躍會友的計算,活躍會友、未穩定、久未出席、小組缺席與狀態流動顯示「—」。
管理每位會友的生命成長壘圖進度
| 姓名 | 壘位 | 會籍 | 101 | 201 | 301 | 401 | 操作 | |
|---|---|---|---|---|---|---|---|---|
| {{ u.name }} | {{ u.current_base }} | {{ u.membership_status || '—' }} | {{ u.date_101 ? u.date_101.slice(0,7) : '—' }} | {{ u.date_201 ? u.date_201.slice(0,7) : '—' }} | {{ u.date_301 ? u.date_301.slice(0,7) : '—' }} | {{ u.date_401 ? u.date_401.slice(0,7) : '—' }} | ||
|
{{ u.name }} — 編輯門訓進度 |
||||||||
{{ mentuSearch ? '找不到符合的會友' : '尚無會友資料' }}
新增同工
解散後無法恢復。單位會留下紀錄、不再出現在任何清單;負責人、第二位區長、同工與職分一併清掉。
檢查中…
還有東西沒處理,現在不能解散:
會友請先轉組,下層單位請先改隸屬或解散,新朋友名單與 LINE 群組綁定請先處理,在途申請單請等它結案或撤回。
前置條件都已清空,可以解散。
{{ orgDissolveDlg.err }}
操作步驟:
有 {{ importPreview.blocked_count }} 列的手機或卡號已登記在別的會友名下,而且姓名對不上(或沒填姓名)——這些列整列不匯入,不會更新也不會新增,請資處先確認。原因寫在最右邊的「錯誤說明」。
「疑似同一人」=手機和卡號都沒對到任何人,但有下面任一種情形:①姓名和初訪日跟一位既有會友一樣;②姓名跟既有會友一樣,但初訪日不同或沒填;③這個檔案裡前面已經有同一個姓名(分不出是重複的一列,還是剛好同名的兩個人)。請在最右邊逐列選擇:是同一人就更新既有資料(第③種沒有既有會友可以更新,只能選新增),不是就新增一位;兩個都沒選,這一列就不會匯入。
{{ ls.display_name }} 代碼比對
系統已有:
{{ (importPreview.org_available_codes[ls.display_name] || []).join(' ') || '(無)' }}
Excel 找不到:
{{ orgUnresolvedCodesByLevel[ls.display_name].join(' ') }}
未匹配列表(點選可跳到該列)
這些列的牧養歸屬不會寫入(其餘欄位照常匯入)。同代號好幾個而沒填上一層時會顯示「不明確」,請補上牧區再匯。
錯誤列表(點選可跳到該列)
僅顯示本次檔案中有填寫內容的欄位,共 {{ importPreviewColumns.length }} 個欄位。
| 列號 | 狀態 | {{ col.label }} | 錯誤說明 |
|---|---|---|---|
| {{ row.row_num }} | ✗ 疑似同一人 更新 新增 | {{ formatImportCell(col.key, row.data) }} | {{ row.errors.join(';') || '' }}
牧養歸屬不會寫入:{{ row.data.org_issue }}
提醒:{{ w }}
{{ suspectLabel(row) }}
|
注意:有誤的 {{ importPreview.invalid_count }} 筆資料將略過,不會匯入。
匯入完成!
新增 {{ importResult.created }} 筆會友資料。
合併更新 {{ importResult.updated }} 筆既有資料。
略過 {{ importResult.skipped.length }} 筆(沒有匯入),其中 {{ importResult.blocked_count }} 筆是手機或卡號屬於別人而被整列擋下。
第 {{ sk.row || '?' }} 列:{{ sk.reason }}
疑似同一人沒有選擇:{{ importResult.suspect_unchosen }} 列沒有匯入。
{{ importResult.org_skipped.length }} 列的牧養歸屬沒有寫入(其餘欄位照常匯入):
第 {{ o.row || '?' }} 列:{{ o.reason }}
牧養組織寫入筆數:
{{ ls.display_name }}:{{ importResult.org_written[String(ls.level)] ?? 0 }} 筆
開啟後,教會外的連線只會看到維護頁;教會內網照常可用。維護期間可從維護頁下方的「管理員」連結登入控制台關閉。
維護目錄未掛載到 API,無法從這裡開關。
{{ maint.until ? '預計 ' + maint.until + ' 恢復' : '未填恢復時間' }} 由 {{ maint.by }} 於 {{ (maint.at || '').replace('T', ' ') }} 開啟
暫停時:同工用 LINE 打開牧養同工系統(含申請與簽核、統計、活動報名、綁定確認頁、兒童堂現場點名、版本紀錄、問題回報)只會看到「整理中」說明,已登入的人下一個動作也會被擋; 連結您的管理員帳號的會友例外,可以照常進去測試(資處不例外)。
暫停期間,所有會把同工帶進牧養同工系統的 LINE 推播(每日待辦彙整、估算提醒、報表與節期提醒、週指標卡、群組估算名單)都不發,主 Bot 對同工的功能(缺席卡、「已關心」、估算名單、回報)只回一句整理中說明。 簽到機、會友 LINE 掃碼簽到、線上簽到、後台、禱告收集 Bot 不受影響。每次切換都會寫入稽核紀錄。
開啟時,同工在手機(LINE)上選的身分會縮小範圍:統計頁、會友資料、彙總卡、我的準確度、新朋友、可提出申請的單位都只算那個身分。 選到只能看的身分(例如牧師)時,估算、節期、新朋友一律不能填。簽核、通知、協助綁定不分身分。
這是緊急開關:如果切換身分後畫面出問題,先在這裡關閉,所有人立刻回到「本人全部職分合併」的範圍(和 P15 之前一樣)。每次切換都會寫入稽核紀錄。
出席報表以此星期為每週起始日計算,例如選「星期五」則週五~下週四為同一週。
聚會開始前幾分鐘可以開始簽到。例如設為 60,表示聚會 10:00 開始,9:00 即可簽到。
注意:若有接續聚會,提前時段不會干擾正在進行中的前一場聚會。
顯示在兩台簽到機、投影 QR 與 LINE 簽到頁的左上角。清空就不顯示那一行(最多 40 字)。
設定各欄位的最低可見角色,低於此角色的同工查看會友時,該欄位將顯示為空白。
會友檔案裡「門訓」「事工」「其他紀錄」三個分頁可以記錄的項目。門訓部管門訓、事工部管事工,所以每個項目都屬於一個分頁。已經有紀錄的項目只能停用,不能刪除(停用後只是新增紀錄時選不到,原有的紀錄還在)。你可以看清單,只有管理員能修改。
{{ mrt.error }}
載入中…
這個分頁還沒有任何項目。
{{ t.note }}
新增項目(加到「{{ mrtSectionLabel }}」)
顯示匯入時系統能識別的所有代碼、名稱格式,可與 Excel 內容對照
錯誤:{{ debugOrgUnitsResult.error }}
Lv{{ lvl.level }} {{ lvl.display_name }}({{ lvl.units.length }} 個單位)
| ID | 代碼 | 名稱 | 負責人 | 可比對 key(匯入時用) |
|---|---|---|---|---|
| {{ u.id }} | {{ u.code || '—' }} | {{ u.name || '—' }} | {{ u.leader_name || '—' }} | {{ u.matchable_keys.join('、') }} |
錯誤:{{ debugOrgResult.error }}
{{ u.name }} {{ u.user_id.slice(0,8) }}…
DB 中無任何組織歸屬
DB 中無任何組織歸屬
各層級總筆數:
總會友:{{ debugOrgResult.total_users }} 人
檢查每位會友的牧養歸屬:牧區、區、小組要在同一條線上,一個人只能在一個小組。
「預覽」只列出問題;「確認修復」只會補上缺的上層,其餘(上下層不一致、單位已解散…)要人決定選哪一邊,這裡不會動。
{{ repairPreview.error }}
已替 {{ repairPreview.fixed_count }} 位會友補上缺的上層。
有 {{ repairPreview.changed_count }} 位會友的歸屬在你預覽之後被改過,這次沒有補他們,請重新預覽。
檢查 {{ repairPreview.checked }} 位:上下層不一致 {{ repairPreview.violation_count }} 位(其中可自動補上缺的上層 {{ repairPreview.fixed_count }} 位),沒有編入任何單位 {{ repairPreview.unassigned_count }} 位。
{{ v.user_name }} {{ v.id8 }} {{ repairPreview.committed ? '已補上' : '可補上' }}:{{ (v.added || []).map(a => a.level_name + '『' + a.label + '』').join('、') }} 資料剛變過,請重新預覽 需要人決定
{{ r.text }}
目前登記:{{ (v.units || []).map(x => x.level_name + '『' + x.path + '』').join(' ') || '(沒有)' }}
所有會友的牧養歸屬都一致,無需修復。
用於寄發密碼重設信、系統通知信。設定後請先測試再啟用。
用於主動推播訊息給已加 Bot 好友的會友。與目前 LIFF 簽到使用的 Channel 不同(請在同一 Provider 下另建一個 Messaging API Channel)。
每 15 分鐘檢查一次;落在觸發時間 ± 15 分鐘內會推一次。
如何取得 Token?
啟用「自動關聯」功能?請至 LINE OA Manager 設定:
https://你的網域/api/line/webhook牧養助理頻道只推給審核與負責的同工,不推給會友。簽核彙整、線上聚會開放前提醒、新回報通知共用同一份每月預算;預算不夠時越不重要的越先省,改發站內通知。晚上 10 點到早上 7 點不推。
各類提醒本月最多用到第幾則: {{ t.name }} {{ t.limit }}
把牧養助理拉進 LINE 群組後,那個群組會出現在這裡。按「設為報名回報群組」之後,群組裡任何人打「@牧養助理 報名」,牧養助理就回覆全教會的活動報名統計(和牧養同工系統「複製報名統計」大群組那份一樣,含名字)。用回覆送出,不扣 LINE 推播額度。
還沒有任何群組。把牧養助理拉進群組之後按「重新整理」。
加 Bot 好友但未自動關聯到會友的清單。可由管理員手動指派。
把 Bot 加入「區牧 + 小組長群」,由該單位的負責人在群內傳「綁定 <代號>」自動建立。亦可在此手動編輯。
獨立收集 Bot 的頻道金鑰與 AI 切分設定。各欄位留空=不變更(沿用現值)。儲存後請按「測試 Token」確認有效;金鑰只貼在這裡,不要貼到別的地方。
失敗而沒有任何成功:通常是 Channel Secret 解不開或不對,請在下方重新輸入並儲存。
兩種特例(可獨立勾選):直式錨點=名字逐行單寫、以自己的名字當錨點分組(例如某位同工習慣這樣寫); 只回報·不參與=此人只是回報、自己沒一起禱告(例如某位同工代為回報兒童禱告),統計/網路圖不把他算進去。
提醒:回報者設定只影響「之後」收到的新回報;既有回報請用每則的「只回報?」開關逐則調整。
收集 Bot 所在的群會自動登錄;暫停後該群即不再被動解析(不必把 Bot 踢出群)。
收集 Bot 沒收到的那段時間,可以把 LINE 群組「傳送聊天記錄」匯出的 .txt 傳上來補回。 檔案只在處理當下存在記憶體,不會存檔、內容不會寫進任何紀錄;匯入不會對 LINE 發出任何訊息。 檔案上限約 {{ prayerImport.maxMb }} MB,太大請在 LINE 縮小日期範圍後分段匯出。
預設範圍:8/07(最後一則正常收到的日子)到 恢復收集日({{ prayerImport.resumedOn }})的前一天 昨天(還沒收到恢復後的新訊息;恢復後會自動改成恢復日的前一天)。
{{ prayerImport.error }}
同一回報者的同名只需處理一次:指派或標非會友後,自動套用到這位回報者所有同名的待審回報。藍色按鈕是系統候選,一鍵完成(×N=歷史上曾指派給他 N 次、★=純歷史紀錄、→=名字命中、*=對照表、≈虛線=相似名請確認);排序已依歷史與情境加權,沒有合適候選再用搜尋框。
逐則檢視與處理。名字對不到會友的標紅,可點藍色候選一鍵指派;批次處理請優先用上方「待辨識名字」。
每次指派或標非會友,系統會記住「這位回報者的這個名字=這個人」,之後自動套用。配錯時在這裡刪除即可撤銷;只影響之後的自動比對,已指派的回報紀錄不會改動。
管理系統後台登入帳號與角色權限
| 帳號 {{ accountSortIndicator('username') }} | 顯示名稱 {{ accountSortIndicator('display_name') }} | 角色 {{ accountSortIndicator('role') }} | 所屬單位 | 狀態 | 2FA | 最後登入 {{ accountSortIndicator('last_login_at') }} | 操作 |
|---|---|---|---|---|---|---|---|
|
{{ a.username }}
代設
外網鎖定中
|
{{ a.display_name }}
未連結本人
{{ a.user_name }}[{{ a.user_status }}]
{{ a.user_email }}
|
{{ {admin:'管理員',pastor:'牧者',leader:'小組長',checkin:'簽到站',teacher:'兒童班老師',dataop:'資處人員'}[a.role] || a.role }} | {{ accountUnitNames[uid] || `#${uid}` }} 未指派 — 請編輯 — | 停用 啟用 | 已啟用 未開(須先設定) 不適用 |
{{ formatRelativeTime(a.last_login_at) }}
{{ formatDateTime(a.last_login_at) }}
長期未登入
從未登入
|
角色已取消
|
| 載入中… | |||||||
| 沒有符合條件的帳號 | |||||||
登入時要輸入的名稱,建立後不能修改。只能用英文字母、數字、底線(_)、點(.)、減號(-),例如 wang_ming。
不點此按鈕、密碼維持不變。
設定新密碼(至少 10 字元,需混合大小寫/數字/符號至少兩類)
密碼至少 10 個字元,且需混合大寫、小寫、數字、符號中至少兩類。
目前 {{ accountForm.password.length }} 個字元,還差 {{ 10 - accountForm.password.length }} 個。
兩次密碼輸入不一致
小組長、區牧、牧師等牧養同工不需要後台帳號,請他們用 LINE 登入;後台的「小組長」角色目前暫停新增。
搜尋中…
沒有符合的會友
用 token 取代密碼共用:每台簽到機獨立 token,可隨時撤銷
| 名稱 | 備註 | 狀態 | 最後使用 | 操作 |
|---|---|---|---|---|
| {{ d.name }} | {{ d.note || '—' }} | 啟用 停用 |
{{ formatRelativeTime(d.last_seen_at) }}
{{ formatDateTime(d.last_seen_at) }} · {{ d.last_seen_ip }}
從未使用
|
|
| 尚無裝置。點「新增裝置」建立第一台簽到站。 | ||||
建議搭配 QR Code 產生器讓簽到機掃碼開啟。
來源封鎖、登入失敗與掃描探測彙整;教會內網與容器內部永不封鎖
生效中封鎖
{{ connOv.active_blocks }}
{{ securityRangeText }}登入失敗
{{ connOv.login_fails }}
{{ securityRangeText }}掃描命中
{{ connOv.scan_hits }}
{{ securityRangeText }}自動封鎖
{{ connOv.auto_blocks }}
{{ connErr }}
統計範圍是{{ securityRangeText }}(含今天)。掃描命中=探測 .php、.env、WordPress、phpunit、.git 這類本系統不存在的路徑,由 nginx 擋在外面,不進稽核紀錄; 自動封鎖含登入失敗、帳號噴灑與掃描三種原因。同一個來源 10 分鐘內掃描命中 3 次會自動封鎖 24 小時(不寄信)。
{{ securityRangeText }}建立的封鎖,加上目前仍生效的(長期封鎖不會因為超過天數就消失)。
| 原因 | 操作 | ||||
|---|---|---|---|---|---|
| {{ b.ip }} | {{ b.kind_label }} {{ blockDetail(b) }} | {{ b.reason }} | {{ formatDateTime(b.created_at) }} | 封鎖中,至 {{ formatDateTime(b.blocked_until) }}(永久) 已解除({{ b.released_by || '—' }}) 已到期 | |
| {{ blocksQ.loading ? '載入中…' : (blocksQ.q.trim() ? '找不到符合的封鎖紀錄' : '目前沒有封鎖紀錄') }} | |||||
{{ securityRangeText }}(含今天)出現過的所有來源,不只前 100 個;預設登入失敗多的排前面,點欄位標題可排序。 登入失敗與帳號名來自稽核紀錄;掃描命中與被擋次數是 nginx 與最外層擋下的請求,不寫稽核。 教會內網(192.168.x.x 與本機)和容器內部(172.16.x.x、10.x.x.x:docker 網段,等同主機自己發出的請求)永不封鎖。
| 操作 | |||||||
|---|---|---|---|---|---|---|---|
| {{ s.ip }} 教會內網 容器內部 | {{ s.fails }} | {{ s.names }} | {{ s.scan_hits }} | {{ s.blocked_hits }} | {{ formatDateTime(s.last_seen) }} | 封鎖中 — | |
| {{ sourcesQ.loading ? '載入中…' : (sourcesQ.q.trim() ? '找不到符合的來源' : '這段期間沒有紀錄') }} | |||||||
誰、何時、做了什麼、對誰。查閱也在內。
{{ chainResult.ok ? '✓ 完整性驗證通過' : '✗ 偵測到異常' }}
{{ chainResult.message }}(id {{ chainResult.first_id }}–{{ chainResult.last_id }}) {{ chainResult.reason }}|第一個異常在 id = {{ chainResult.broken_at_id }}
串鏈只涵蓋登入安全、資料異動、設定變更三類;查閱紀錄(含「查看會友資料」)因為要定期清理,不入鏈。 能偵測竄改但擋不住有資料庫權限的人,離線備份那份才是最終依據。
待寫入佇列
{{ auditStats.queue_size }}
已寫入
{{ auditStats.written }}
丟棄(查閱)
{{ auditStats.dropped }}
同步寫入
{{ auditStats.sync_direct }}
符合條件
{{ auditTotal }}
| 時間 | 誰 | 做了什麼 | 對象 | IP | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| {{ formatDateTime(r.created_at) }} |
{{ r.actor.display }} {{ r.actor.channel }} |
{{ r.important ? r.action_label : r.summary }} {{ r.details }} 失敗 {{ r.status_code }} 🔒 |
{{ r.target.display }} 網址推得 — | {{ r.ip || '—' }} | ||||||
|
{{ r.actor.display }} {{ r.important ? r.action_label : r.summary }} → {{ r.target.display }} 說明:{{ r.details }} 改動前後
此筆沒有記錄改動前後值 原始資料{{ auditRawText(r) }}
|
||||||||||
| 沒有符合條件的紀錄 | ||||||||||
| 時間 | 來源 | 事件 | IP | 說明 |
|---|---|---|---|---|
| {{ formatDateTime(e.created_at) }} | {{ e.source_label }} | {{ e.event_label }} | {{ e.ip || '—' }} | {{ e.detail || '—' }} |
| 沒有符合條件的事件 | ||||
{{ saPickMsg }}
{{ saNote }}
點單位看它的負責人、同工與下層;點人看他所有職權。
決定組織有哪幾層、各層叫什麼名字(例如牧區、區、小組)。改名在離開輸入框時儲存;啟用或停用層級會影響單位清單、會友歸屬與報表。
已啟用的層級
尚未啟用任何層級,請先在下方點「啟用」。
未啟用的層級
最上層單位沒有上層(例如新成立的牧區)。底下的下層單位,請在左側點選它之後再新增。
檢查 {{ orgIntegrity.counts.checked }} 位會友的牧養歸屬:一個人只能在一個小組,而且牧區、區、小組要在同一條線上。這裡只列出來,不會自動修改;要更正請到會友檔案編輯他的牧養組織。組長、同工的帶領關係不在這個檢查裡。
目前沒有上下層不一致的會友。
{{ r.text }}
目前登記:{{ v.units.map(x => x.level_name + '『' + x.path + '』').join(' ') || '(沒有)' }}
這不是錯誤,只是還沒編進任何牧區或小組。
這些單位沒有掛在任何上層底下,所以不會出現在對應上層的分組裡。點單位可查看、編輯{{ isAdmin ? '或刪除' : '' }}。
{{ grp.level_name }}(未設所屬{{ grp.parent_name }})· {{ grp.units.length }}
不隸屬單一單位的身分。職分帶權限(主任牧師、主任牧師(同權)、牧師為全教會可視;部門主責掌該部門);職稱只是身分標示(主任師母、助理牧師、傳道…),不帶任何權限,需要簽核請到「簽核關卡設定」指定。
指派職分
{{ c.name }}
尚無
牧宣部是區牧的上級,可以「裁撤」與「恢復」:裁撤中牧宣部的簽核關卡與所有權限都不生效,簽核直接是 區長 → 區牧 → 主任牧師核簽人;恢復只恢復部門的權限,不恢復人,人要在這裡另外指派。機要是主任牧師的機要:存檔備查、歸檔文件、直播網址與提醒、活動設定、協助綁定 LINE、執行失敗的重試(不論牧宣部運作與否都歸機要;機要出缺時由主任牧師核簽人處理;機要沒有任何看牧養內容的權限)。
{{ deptS.err }}
{{ c.slot.name }}
{{ c.active ? '運作中' : '已裁撤' }}{{ c.slot.dept_note }}
{{ wfB.needLine.name }} 還沒綁定 LINE。簽核關卡的人選必須先綁定 LINE,綁好才能指派。
牧宣部裁撤中,不能指派人選;要先恢復。
週二晚上的區牧會議,只有名單上的人看得到會議、紀錄與全部交辦;被交辦的人只看得到自己那一件。主任牧師核簽人的兩位人選要在名單上,才能確認完成交辦。這裡不會顯示任何會議內容。名單排序就是畫面上的順序。
{{ pmS.err }}
{{ pmS.msg }}
⚠ 主任牧師核簽人的人選 {{ pmS.missing.map(m => m.name).join('、') }} 還沒在名單上,他們會看不到區牧會議。
⚠ 名單上有機要(沒有牧養職分):{{ pmS.secretary.map(m => m.name).join('、') }}。開會時他也會在「各牧區近況」看到各牧區沒有標敏感的牧養事項內容(標了敏感的只看得到有這一件),也會看到全教會與各牧區的數字(議程「本週數字」,只有數字、沒有名字)。名單是管理員的決定,系統不擋。
名單還是空的:還沒有任何人看得到區牧會議。
要先寫原因才能儲存。
指派職稱
{{ t.name }}已停用
尚無
職稱永遠不帶權限。代碼建立後不能改,也不能和職分的代碼相同。停用的職稱不會出現在指派選單,已經擔任的人不受影響。每個動作都會請你填寫原因並留稽核紀錄。
{{ orgTitleMgr.err }}
解散一律留紀錄、無法恢復。這些單位不再出現在任何清單;過去的統計、稽核與歸檔文件仍對得到組名。
載入中…
目前沒有已解散的單位。
誰:{{ d.dissolved_by || '—' }}
原因:{{ d.reason || '—' }}
解散前的負責人:{{ [d.leader_name, d.co_leader_name].filter(Boolean).join('、') }}
{{ orgCoTitle(editingUnit.level) }}(選填;任一位{{ orgCoRoleWord(editingUnit.level) }}簽就算)
權限和區牧完全一樣:看得到整個牧區、區牧報表兩位都能寫。負責人是「代表」——「區牧報表還沒送出」「活動目標還沒訂」這類催寫的提醒只發給代表,其餘提醒兩位都收。
{{ editingUnit.coErr }}
{{ orgLeaderTitle(orgDetailUnit.level) }}
未指定
{{ orgCoTitle(orgDetailUnit.level) }}
同工
尚無同工
協助填寫
{{ rhAText(orgDetailUnit) }}
打開後,這一組所屬牧區的區牧可以指派一位「協助填寫」的人,替組長填這一組的報表。
{{ rhAErr(orgDetailUnit) }}
第二位小組長
{{ coSwText(orgDetailUnit) }}
打開後,這一組的區長(直屬牧區的組則是區牧)可以送申請,設定一位第二位小組長;權限跟組長一樣。有第二位時要先送申請拿掉,才能關掉。
{{ coSwErr(orgDetailUnit) }}
下層單位 · {{ orgDetailChildren.length }}
尚無下層單位
系統每一版更新了什麼,都條列在這裡;之前跳出來過的也可以再看一次。
{{ relB.err }}
{{ relB.msg }}
載入中…
目前還沒有版本紀錄。
{{ s.label }}
草稿檔「{{ e.filename }}」讀不進來:{{ e.error }}
建議 {{ relB.admin.suggested.version }}(最新版 +0.1);可以改,但不能重複、不能比最新版小;大改版可以升主版(例如 2.0)。
回溯版本只進歷史,不會跳出視窗。
更新條目({{ relV.items.length }} 條)每條一行、最多 120 字;上下箭頭調整順序;每個人只會看到跟自己有關的條目
彈出視窗的親切說明({{ relV.notes.length }} 則)標題會自動帶版本號;{{ relV.mode === 'edit' ? '發布後只能修改文字,不能新增或刪除;修改不會重跳' : '沒有也可以' }}
這個對象在這一版沒有任何相關條目(歷史頁不會顯示這一版)。
{{ s.label }}
{{ relV.err }}
已撤回:不再跳出,也不在歷史頁出現。
修改後不會重跳(已讀的人不會再看到);撤回後整個版本不再跳出,歷史頁也看不到。
草稿是 app/release_notes 資料夾裡的檔案(一個工作包一個檔),系統不會自動發布。勾選要納入這一版的草稿,按「建立新版本」,在畫面上逐條看過、改好,再按「發布」。
目前沒有待發布的草稿。
還沒有發布過任何版本。
這些是過去做過的事補成的 0.x 版本,只進歷史、不會跳出視窗。看過、需要的話改一改,按「發布回溯版本」才會讓同工看到。
沒有待發布的回溯版本草稿。
(原「節慶管理」,P68 起叫活動)建立活動之後,區長報表與區牧報表的填寫人會收到提醒,到卡片裡填總人數與其中新朋友的目標;活動顯示到活動日後 7 天。 選了預估方式的活動,會在同工手機「預估出席」裡出現(開放預估日起到第一場聚會開始)。機要(出缺時是主任牧師核簽人)也可以在手機「活動設定」建立與修改。
{{ fsB.msg }}
{{ fsB.err }}
{{ fsB.form.id ? '編輯活動' : '新增活動' }}
{{ fsB.form.err }}
載入中…
還沒有活動。按右上角「新增活動」建立。
| 名稱 | 日期 | 預估方式 | 連結的報名活動 | 節期 | 狀態 | |
|---|---|---|---|---|---|---|
| {{ f.name }} | {{ String(f.festival_date || '').slice(0, 10) }} | {{ f.estimate_mode_label || '只訂目標' }}{{ f.track_invite ? '+邀約' : '' }}{{ f.gatherings.map(g => String(g.gathering_date).slice(5) + ' ' + g.name).join('、') }} | {{ fsEventTitle(f.reg_event_id) }} | {{ fsCampaignName(f.campaign_id) }} | {{ f.is_active ? '啟用' : '已停用' }} |
哪裡怪怪的、或是有想法讓它更好用,跟我們說一聲;處理好會通知你。
收到了,謝謝你 🙌
編號 {{ fbB.form.done.item_no }}。處理好會通知你;也可以到「我的回報」看進度。
有 {{ fbB.form.done.failed }} 張截圖沒有傳成功,回報本身已經送出了;需要的話可以再回報一次並補上截圖。
這是…
影響程度
描述(10~2000 字)
{{ fbB.form.description.length }} / 2000
截圖(選填,最多 {{ FB_MAX_FILES }} 張)
截圖可能拍到會友資料,只有管理員看得到,結案 90 天後自動刪除。
{{ fbB.form.err }}
載入中…
{{ fbB.mine.err }}
你還沒有回報過。
{{ it.summary }}
不處理的原因:{{ it.close_reason }}
{{ it.reply_to_reporter }}
{{ fbB.list.err }}
{{ fbB.list.exportMsg }}
| {{ c.l }}{{ fbB.list.dir === 'asc' ? ' ▲' : ' ▼' }} | ||||||||
|---|---|---|---|---|---|---|---|---|
| 載入中… | ||||||||
| 沒有符合的回報。 | ||||||||
| {{ it.item_no }} | {{ it.kind_label }} | {{ it.severity_label }} | {{ it.status_label }} | {{ it.priority_label }} | {{ it.summary }}🖼 {{ it.attachment_count }} | {{ (it.created_at || '').replace('T', ' ').slice(0, 16) }} | {{ it.screen_label }} | |
這裡的資料來自報名系統,保存期限到期會自動刪除;已連結會友的「參加過」紀錄會保留。
新建了會友之後,按「重新比對」讓自動比對重算;你已經確認過的不會被改。
{{ regB.rematch.msg }}
{{ regB.rematch.err }}
{{ regB.err }}
載入中…
同步狀態
尚未啟用(伺服器沒有設定報名系統的連線)
{{ regB.sync.config_problem }}
{{ regB.sync.last_success_at ? '最後成功同步:' + regTime(regB.sync.last_success_at) : '還沒有成功同步過' }}
{{ regErrText(regB.sync.last_error_code) }}(已連續失敗 {{ regB.sync.consecutive_failures }} 次)
最近一次發生在 {{ regTime(regB.sync.last_error_at) }}
{{ regPausedText(regB.sync.paused_until) }}
有 {{ regB.totals.no_delete_after }} 筆報名沒有保存期限,不會自動刪除。
有 {{ regB.sync.failed_items.count }}{{ regB.sync.failed_items.capped ? '+' : '' }} 筆報名寫不進來
報名系統送來的這幾筆格式不對或寫不進系統,已經略過,其他報名照常同步。報名編號:{{ regFailedIds(regB.sync.failed_items) }}。請通知報名系統端檢查這幾筆;對方改好之後會自動補進來。
正在從頭重取報名資料…(跑完之後報名系統已經沒有的報名才會刪除)
已排定從頭重取:下一輪同步(約 3 分鐘內)開始。
{{ regB.refetch.err }}
{{ regB.refetch.msg }}
有 {{ regB.sync.pending_purge.count }} 筆待確認刪除
整份重取之後,報名系統的清單裡沒有這 {{ regB.sync.pending_purge.count }} 筆(ChMS 共存 {{ regB.sync.pending_purge.stored }} 筆),超過自動刪除的保險上限(已存的 {{ regB.sync.pending_purge.max_ratio_percent }}% 或 {{ regB.sync.pending_purge.max_count }} 筆),所以系統沒有自動刪。確認是報名系統那邊真的刪了(或已過保存期限)就按「確認刪除」;不確定就按「保留」。已對上會友、而且到期的報名會先轉成「參加過」的紀錄。
只有管理員能確認刪除或保留。
{{ regB.purge.err }}
{{ regB.purge.msg }}
活動
點一個活動,下面的清單就只看那個活動;再點一次取消。
| 活動 | 日期 | 已報名(人) | 已報到(人) | 票數 | 待確認 | 可能是新朋友 |
|---|---|---|---|---|---|---|
| 目前沒有活動資料。 | ||||||
| {{ e.title }} 報名系統已停止提供 已結案 已封存 | {{ regDateRange(e) }} | {{ e.registered }}其中暫掛 {{ e.held }} | {{ e.checked_in }} | {{ e.tickets }} | {{ e.pending }} | {{ e.maybe_new }} |
請點上面的「待確認」、「可能是新朋友」或「邀請人確認」,開始處理;處理過的在「已處理」。
{{ regB.tab === 'pending' ? '系統找到了可能是同一位的會友,但沒辦法完全確定,請你看資料確認。' : regB.tab === 'maybe_new' ? '會友檔裡找不到這位,可能是第一次來的新朋友。' : regB.tab === 'conflict' ? '兩種情形:①同一個人在同一個活動報了兩次以上(上面一組一張卡,判定保留哪一筆,再把清單交給報名系統取消);②同一筆報名裡,同一位會友連到好幾張名字不同的票——多半是替家人朋友報名被連成報名人本人(下面每一張票一張卡,連錯的按「改選會友」或「取消決定」,真的是重複的票按「重複的票,不處理」)。' : '同工決定過的、系統依上次確認或整理姓名後自動連結的。決定錯了可以「取消決定」,系統會重新比對這一筆。' }}
{{ regB.notice }}
牧養同工系統每個人只算一次,報名系統卻是每一筆各算票數(照報名系統的張數備餐就會多)。判定保留哪一筆之後,按上面的按鈕複製清單交給報名系統取消;報名系統取消之後約 3 分鐘,這一組會自動消失。判定不改人數、不通知任何人。
{{ regB.dupMsg }}
{{ regB.dup.cancel_text }}
同一個人報了兩次 可能報了兩次,或連錯人 還不是會友
會友:{{ g.member.name }}({{ regCandidateLine(g.member) }})
{{ g.event_title }}
{{ regDupSameLine(g) }}
有一筆報名裡好幾張名字不同的票都連到這位會友(可能有一張連錯人)。請先處理下面「同一筆報名裡連到好幾張名字不同的票」,再判定保留哪一筆。
之前的判定已作廢:這幾筆報名的資料後來變了,請重新判定。
{{ regDupDecisionText(g) }}
#{{ r.registration_id }} {{ r.via_line ? '用 LINE 報名' : (r.channel_label || '—') }} 待繳費 保留
報名時間:{{ r.created_at ? regTime(r.created_at) : '—' }}
票上的名字:{{ t.name }}
這一筆另外還有 {{ r.others }} 張別人的票
保留 #{{ regB.dupAsk.rid }},請報名系統取消 {{ regDupCancelText(g, regB.dupAsk.rid) }}。判定之後按上面的按鈕複製清單交給報名系統。
要取消的那一筆是用 LINE 報名的:取消之後,這位在 LINE 官方帳號「我的票券」會查不到保留的那一筆(Email 收到的票照常可以用,報到台也可以用姓名查)。
要取消的那一筆如果已繳費,報名系統會留退費紀錄;有候補的話,報名系統會通知候補者。
確定{{ g.registrations.length > 2 ? '這幾筆' : '兩筆' }}都是對的、不是同一個人重複報名嗎?之後這幾筆的報名資料如果有變,系統會再請你判定一次。如果其中一張票其實是別人(被連錯人),請改按那張票旁邊的「改選會友」。
取消判定之後,這一組回到「還沒判定」。如果已經把清單交給報名系統,記得跟報名系統說這一筆不用取消了。
{{ regB.dupErr[regDupKey(g)] }}
{{ regB.list.err }}
載入中…
{{ regB.tab === 'pending' ? '沒有待確認的報名。' : regB.tab === 'maybe_new' ? '沒有可能是新朋友的報名。' : regB.tab === 'conflict' ? '沒有要再確認的報名,很好!' : '還沒有處理過的報名。' }}
{{ it.person_name || '(報名時沒有填姓名)' }}〔LINE 名稱〕〔像 LINE 暱稱〕
整理後:{{ it.name_hint.clean }}
{{ it.event_title }}
比對結果:{{ regReasonText(it.reason) }}{{ it.state_label }}
報名資料更新於 {{ regTime(it.changed_at) }}
這筆報名的{{ ({ mobile: '手機', mail: 'Email', line: 'LINE' })[it.id_kind] || '聯絡資料' }}是某位會友的,名字卻不一樣——很可能是他替家人朋友報名。名字不同的那位多半不是來的人,請看清楚名字。
這筆報名是用 {{ it.line_owner.name }} 的 LINE 送出的({{ regCandidateLine(it.line_owner) }})
目前:{{ it.state_label }}依上次確認跟著報名人
連到:{{ it.member.name }}({{ regCandidateLine(it.member) }})名字和票上不同
這位會友也連著:{{ it.conflict_with.map(x => '「' + x + '」').join('、') }} 的票
{{ it.decided_by ? it.decided_by + (it.decided_at ? '・' + regTime(it.decided_at) : '') : '系統自動比對,不是同工決定' }}
確定要取消這個決定嗎?取消後,系統會把這一筆重新比對一次(可能回到「待確認」或「可能是新朋友」,也可能又自動連結)。這一筆之前加進了新朋友名單;如果那筆新朋友紀錄沒有人動過會一併封存,否則會請你到新朋友名單自己處理。
可能是這幾位:
{{ c.name }}名字不同已安息這個 LINE 帳號的主人
{{ regCandidateLine(c) }}
{{ it.person_name ? '沒有現成的候選人,請用「搜尋其他會友」手動指定。' : '報名時沒有填姓名,只能由資處手動指定。' }}
{{ regB.errs[regKey(it)] }}
這些會友有填「邀請人」的姓名,但還沒連到是哪一位會友。連好之後,邀請人所在小組的小組長、區長、區牧在 LINE 的活動名單,就看得到他的報名狀況。系統只提建議,要由你確認;連結不會改掉原本填的邀請人文字。
{{ ivB.err }}
載入中…
共 {{ ivB.counts.total }} 位:唯一建議 {{ ivB.counts.unique }}、同名多位 {{ ivB.counts.multiple }}、找不到同名 {{ ivB.counts.none }};另有 {{ ivB.counts.skipped }} 位先不連(勾選「也顯示先不連的」可以看到)
{{ ivB.msg }}
{{ ivB.batchErr }}
沒有需要確認的會友。
{{ it.name }}先不連
{{ ivMetaLine(it) }}
邀請人寫:{{ it.inviter_text }}
{{ it.candidates[0].name }}不在小組已安息
{{ regCandidateLine(it.candidates[0]) }}
同名 {{ it.candidate_total }} 位,請選一位(只列前 {{ it.candidates.length }} 位,其他請用「搜尋其他人」):
{{ c.name }}不在小組
{{ regCandidateLine(c) }}
找不到同名的會友
{{ ivB.errs[it.user_id] }}
離會要由資處或管理員逐一標記(沒有批次、沒有自動):標記之後他會從各種名單與目前的統計消失,標記之前每一週的統計數字都不會改變。離會滿 2 年自動清理個資;本人要求刪除則 7 天後自動清理(7 天內可撤回);已安息的會友標記滿 2 年清理。個資清理後無法復原,但出席與統計數字不變,姓名會變成「已清理的會友」。要標記某一位,請先打開他的會友檔案。
{{ dpS.err }}
載入中…
目前沒有符合的會友。
標記時間 {{ dpDay(c.left_at) }}(經手:{{ c.left_by }}) 標記安息 {{ dpDay(c.deceased_marked_at) }} 預計清理 {{ dpDay(c.erase_due_at) }}(還有 {{ c.days_left }} 天,{{ c.due_label }}) 尚未排定清理日(安息標記時間沒有記錄)
原因:{{ c.reason }}
清理之後只留編號(前 8 碼)與清理日,不顯示姓名;他的出席與統計數字都還在。
還沒有清理過任何會友。
有 {{ e.skipped_total }} 則別人寫的文字因同名沒有替換({{ Object.entries(e.skipped || {}).map(([k, v]) => k + ' ' + v).join('、') }})
所有綁定都要經過核准:當面產生一次性 QR(10 分鐘、只能用一次、只能綁指定的那位),本人用自己的 LINE 掃描並按「確認綁定」。這裡處理全部對象,包括簽核關卡人選與沒有區牧的牧區。
{{ lbB.err }}
凡是擔任職分(各層負責人、同工、主任牧師/牧師/部門主責)或啟用中簽核關卡,卻還沒綁 LINE 的人都會列出。一般會友(沒有任何職分)第一次用 LINE 掃教會的簽到 QR、輸入手機就會綁定,或請小組長在牧養同工系統的會友資料當面產生 QR(P85)。
| 姓名 | 職分 | 上任日期 | 負責協助 | |
|---|---|---|---|---|
| 目前沒有待協助綁定的同工。 | ||||
| {{ t.name }} | {{ t.roles.join('、') }} | {{ t.since || '未記錄' }} | {{ t.responsible }} | |
現有綁定都是用舊方式(輸入手機號碼)綁的,無法確認是本人。請對照「LINE 顯示名稱」判斷;不確定就按「有疑慮」,再到「解除綁定」處理並重新產生 QR。
| 姓名 | 職分 | LINE 顯示名稱 | 綁定日期 | 負責確認 | |
|---|---|---|---|---|---|
| 全部確認完了。 | |||||
| {{ t.name }}有疑慮 | {{ t.roles.join('、') }} | {{ t.line_name || '(無法取得)' }} | {{ t.bound_date || '—' }} | {{ t.responsible }} | |
區牧或資處回報「這個 LINE 不像是本人」的同工。處理方式:先聯絡本人確認;確認不是本人就「解除綁定」再重新產生 QR;確認是本人就按「其實是本人」。
| 姓名 | 職分 | LINE 顯示名稱 | 綁定日期 | |
|---|---|---|---|---|
| 目前沒有有疑慮的綁定。 | ||||
| {{ t.name }} | {{ t.roles.join('、') }} | {{ t.line_name || '(無法取得)' }} | {{ t.bound_date || '—' }} | |
換手機或換 LINE:先在這裡「解除綁定」(原因必填、會寫稽核;舊 LINE 的登入立刻失效),再到「待協助綁定」重新產生 QR。
| 姓名 | 辨識資料 | |
|---|---|---|
| {{ lbB.searching ? '搜尋中…' : (lbB.q.trim() ? '找不到已綁定 LINE 的會友。' : '請輸入姓名搜尋。') }} | ||
| {{ u.name }} | {{ accountUserLabel(u) }} | |
報名系統的 LINE:區牧對照 LINE 名稱確認後綁定
會友用 LINE 在報名系統報過名、牧養系統還沒綁定時,區牧在牧養同工系統「LINE 綁定 → 報名系統的 LINE」對照 LINE 名稱與會友資料,按「是本人」就綁定。只有看得到 LINE 名稱的才會列出;兒童、同工、這個 LINE 已經綁給別人的都不列。
報名系統的對接規格(§9 第 4 點)目前寫「不要把報名的 LINE 當成 LINE 綁定」。請等報名系統改好規格、開始送 LINE 名稱之後再打開。
只有管理者可以打開或關閉。
解除「{{ lbB.ub.name }}」的 LINE 綁定
⚠ 他是「{{ lbB.ub.slots.join('、') }}」關卡的人選,解除後這一關暫時沒有人能簽,請立刻重新產生 QR。
解除後,他舊的 LINE 登入立刻失效;之後要在「待協助綁定」重新產生 QR,由本人用新的 LINE 掃描。這個動作會寫入稽核。
{{ lbB.ub.err }}
{{ lbB.qr.name }}
{{ lbB.qr.roles.join('、') }}
{{ lbQrLeftText }}
只能用一次
請 {{ lbB.qr.name }} 用自己的 LINE 掃描這個 QR,再按「確認綁定」。
不方便當面時,可複製連結私訊給本人(10 分鐘內有效)。
{{ lbB.qr.msg }}
組織異動等申請的全部紀錄;核准後系統自動執行,結案文件由機要存檔備查。簽核主要由核簽人在 LINE 中完成。
簽核流程建置中,暫停受理組織異動;急件請聯絡資處。(建置期間,管理者直接調整組織與指派關卡人選不留紀錄;資處的調整照常記錄;個資修正不受影響。)
待您簽核({{ wfB.inbox.length }})
此後台帳號未連結會友:可審核「資處審核」類關卡(如個資修正);指定給個人的關卡(牧宣部、主任牧師等)請由核簽人在 LINE「申請與簽核」中簽核。
| 單號 | 申請事由 | 申請人 | 狀態 | 目前關卡 | 提出時間 |
|---|---|---|---|---|---|
| 沒有符合的申請。 | |||||
| {{ r.req_no }} | {{ r.title }} | {{ r.applicant_name }} | {{ r.status_label }} | {{ r.current_step_label ? r.current_step_label + '・' + (r.current_approver || '未指定') : '—' }}已等 {{ r.waiting_days }} 天 | {{ (r.created_at || '').replace('T', ' ').slice(0, 16) }} |
| 單號 | 申請事由 | 結案 | 歸檔時間 | 檔案指紋 | |
|---|---|---|---|---|---|
| 尚無歸檔文件。 | |||||
| {{ r.req_no }} | {{ r.title }} | {{ r.status_label }} | {{ (r.archived_at || '').replace('T', ' ').slice(0, 16) }} | {{ r.sha256.slice(0, 12) }}… | 檔案不見了 |
職稱(牧師、傳道…)不等於簽核權。每個關卡在這裡指定核簽人;主任牧師核簽人、牧宣部核簽人與機要可再指定第二位,任一位簽就算。區牧、區長關卡由該單位負責人簽,不在此設定。更換指定人時,正等在這一關的申請會自動轉給新指定人。
出缺時系統會往上找人:區長 → 區牧 → 牧宣部核簽人 → 主任牧師核簽人(牧宣部裁撤中就直接到主任牧師核簽人);核簽人可以只有一位(範本最後一個核簽關卡一定是主任牧師核簽人)。機要是主任牧師的機要,負責「存檔備查」、歸檔文件、直播網址與提醒、活動設定、協助綁定 LINE 與執行失敗的重試(機要出缺時由主任牧師核簽人處理)。牧宣部可以「裁撤」與「恢復」,機要與牧宣部的人選也可以在「牧養組織 → 教會層級職分與職稱 → 部門與關卡」設定(同一份資料)。關卡名稱依功能取,不帶職稱。建置模式中:指派或更換人選完全不留紀錄;建置完成後會留紀錄並送機要存檔。
{{ s.name }} 系統關卡,不可刪除、不可停用 {{ s.dept_status === 'active' ? '運作中' : '已裁撤' }} (已停用)
{{ s.dept_note }}
使用中的範本:{{ s.used_by.slice(0, 4).join('、') }}{{ s.used_by.length > 4 ? '…等 ' + s.used_by.length + ' 份' : '' }}
目前沒有範本使用這一關
{{ s.user_name || (s.is_active ? '尚未指定(此關卡相關的申請將無法提出)' : '—') }}
可簽核管道:{{ s.sign_via }}
⚠ {{ s.user_name }} 同時也是「{{ s.also_holds.join('、') }}」的人選:同一張單裡同一個人只簽一次,重複的關會自動略過。
由 {{ s.updated_by }} 於 {{ (s.updated_at || '').replace('T', ' ').slice(0, 16) }} 設定
{{ wfB.needLine.name }} 還沒綁定 LINE。簽核關卡的人選必須先綁定 LINE,綁好才能指派。
第二位人選(任一位簽就算)
{{ s.alt_user_name || (s.user_id ? '尚未指定(選填)' : '請先指定第一位人選') }}
第二位人選可簽核:已綁定 LINE
⚠ {{ s.alt_user_name }} 同時也是「{{ s.alt_also_holds.join('、') }}」的人選:同一張單裡同一個人只簽一次,重複的關會自動略過。
{{ wfB.needLine.name }} 還沒綁定 LINE。簽核關卡的人選(含第二位)必須先綁定 LINE,綁好才能指派。
建置模式中:改範本立即生效(會寫稽核,原因選填,不產生變更紀錄);直接調整組織與指派關卡人選完全不留紀錄;組織異動申請暫停受理。 按下「建置完成」後無法再回到建置模式,之後所有異動都會留紀錄並送機要存檔。
{{ wfF.err }}
這一份範本用在「異動對象是{{ wfFLevelName }}」的{{ wfFCurType.name }}。
這份範本沒有任何關卡:至少要有一關。
固定結尾(範本不能拿掉)
最後一關核准 → 系統執行 → 立刻產生 PDF → 機要下載後按「已存檔備查」(機要出缺時由主任牧師核簽人)。駁回、撤回的單也走同一個結尾。
把目前編輯中的關卡複製到(可複選):
{{ t.name }}
歷史版本(新到舊)
{{ wfF.err }}
{{ wfF.msg }}
{{ !wfF.state.build_mode && wfF.check.focus_blocked ? '這樣存檔會讓使用這份範本的組合送不出去,建置完成後不能存。' : '有組合會被擋下(建置期間仍可存檔)。' }}
尚未指派人選的關卡:{{ wfF.check.unassigned_slots.join('、') }}(到「簽核關卡設定」指派)
・{{ m.type }}({{ m.unit }}):{{ m.message }}
涉及單位代號:{{ wfF.check.blocked_units.slice(0, 20).join('、') }}{{ wfF.check.blocked_units.length > 20 ? '…等 ' + wfF.check.blocked_units.length + ' 個' : '' }}
{{ wfF.checkBusy ? '檢查中…' : '(編輯後自動檢查)' }}
{{ wfF.trial.err }}
{{ { normal: '正常', fallback: '有往上找人', blocked: '被擋下,送不出去' }[wfF.trial.res.category] }} 範本:{{ wfF.trial.res.source }}
{{ wfF.trial.res.blocked.message }}
| 關卡 | 人選 | 狀態 | 系統說明 |
|---|---|---|---|
| {{ s.no }}. {{ s.label }} | {{ s.approver_name || (s.kind === 'role' ? '資處/管理者(任一位)' : '—') }}/{{ s.alt_approver_name }}(任一位) | {{ s.skipped ? '略過' : (s.kind === 'file' ? '存檔' : s.fallback ? '往上找/補階' : '簽核') }} | {{ s.note || '' }} |
檢查中…
還不能完成建置,請先處理:
・{{ r }}
前置檢查通過:範本用到的關卡都已指派人選;全面檢查 {{ wfF.build.pre.check.total }} 種組合,被擋下 0 種。
完成後無法再回到建置模式;之後所有範本、關卡人選與組織的直接調整,都會留紀錄並送機要存檔。系統會同時產生「組織與簽核流程基準文件」(完整組織樹、負責人與同工、全域職分、所有範本、關卡與人選),由機要下載後按「已存檔備查」。
{{ wfF.build.err }}
{{ wfB.detail.req_no }}・{{ wfB.detail.type_name }}
{{ wfB.detail.title }}
申請人 {{ wfB.detail.applicant_name }}・{{ (wfB.detail.created_at || '').replace('T', ' ').slice(0, 16) }}
目前這一關({{ wfB.detail.current_step_label }})已等待 {{ wfB.detail.waiting_days }} 天,超過 7 天;找不到人可簽
理由:{{ wfB.detail.reason }}
簽核關卡
{{ s.label }}・{{ s.approver_name || (s.decision === 'skipped' ? '—' : '待指定') }}/{{ s.alt_approver_name }}(任一位)
{{ wfDecLabel(s) }}・{{ s.decided_at.replace('T', ' ').slice(0, 16) }}
系統說明:{{ s.sys_note }}
「{{ s.note }}」
{{ row[0] }}:{{ row[1] }}
執行失敗:{{ wfB.detail.error }}
這張單已核准,但系統執行失敗
已通知 {{ wfB.detail.failed_handler }}({{ wfB.detail.failed_handler_role || '機要' }})處理:可以「重試執行」,或決定不再執行而「結案(放棄執行)」。
文件產生失敗
這張單的歸檔文件沒有產生成功,已通知機要。{{ wfB.detail.can_regenerate ? '請按「重新產生」;成功後再下載、按「已存檔備查」。' : '請機要按「重新產生」。' }}
歸檔檔案不見了
這張單的歸檔檔案找不到了(資料庫還記著,檔案不在)。{{ wfB.detail.can_regenerate ? '請按「重新產生」,會產生新的一版;舊版紀錄保留。' + (wfB.detail.status === 'filing' ? '成功後再下載、按「已存檔備查」。' : '') : '請機要按「重新產生」,或由管理者處理。' }}
這張單是您自己提出的,不能自己確認;請由另一位資處或管理者確認。
{{ wfFilingHint(wfB.detail) }}
文件已更新,請重新下載新版。
{{ wfB.detail.doc_missing ? '重新產生之後,才會出現「下載」。' : '文件產生成功後,才會出現「下載」。' }}
下載歸檔文件後,才會出現「已存檔備查」按鈕。
輪到您簽核
結案(放棄執行)
這張單已核准、但系統執行失敗。結案後不會再執行,結果標示「未執行」,沒有任何異動生效;系統會產生文件送機要存檔(下載後按「已存檔備查」),並通知申請人。此動作無法復原。
{{ wfAb.err }}
轉交給別人代簽
關卡:{{ wfB.detail.current_step_label }}(原核簽人:{{ wfB.detail.current_approver || '無,找不到人可簽' }})。轉交後這一關固定由新的核簽人處理,單據與 PDF 會註記「由某某代簽」,並通知原核簽人。
找不到符合的人(沒綁 LINE 又沒有連結後台帳號的人不會列出;發起人、已簽過的人、您自己都不能接手)。
已選:{{ wfTr.pick.name }}
{{ wfTr.err }}
{{ (e.created_at || '').replace('T', ' ').slice(0, 16) }} {{ e.event }} {{ e.actor_name }}(後台帳號 {{ e.detail.admin }})
發現會友個資有誤時,在這裡提報建議;由資處審核後套用。個人資料只有資處能直接修改,其他人透過此管道建議。
個資修正的審核已併入「申請與簽核」,與其他申請同一個待辦清單;同工在 LINE 提出的也在那裡。
目前沒有此狀態的建議。
原因:{{ c.reason }}
由 {{ c.submitted_by }} 提報 · {{ c.reviewed_by }} 已處理 · {{ c.review_note }}
線上聚會每週有三場:週六堂、週日堂(直播)與週三堂(錄影重播),每一場都要貼上它自己的 YouTube 網址(不公開影片,每一場的網址都不同)。會友在 LINE 點「線上聚會」就簽到並跳到這個網址;機要(出缺時是主任牧師核簽人)也能在手機上貼。
本週與下週的場次
還沒貼網址且快要開放(或已經開放):{{ streamStatus.missing.map(m => m.name + ' ' + m.date.slice(5).replace('-', '/')).join('、') }}
{{ r.name }}({{ r.mode }})
{{ r.date }} {{ r.open.slice(11, 16) }}–{{ r.close.slice(11, 16) }}
{{ r.url_ready ? '已貼網址' : (r.state === 'ended' ? '已結束(沒有貼)' : '還沒貼網址') }}
{{ streamFormError }}
| 主日 | 聚會 | YouTube | 重播區間 | |
|---|---|---|---|---|
| {{ s.service_date }} | {{ s.gathering_name }} | {{ s.youtube_url }} | {{ (s.effective_open_at||'').slice(0,16).replace('T',' ') }} ~ {{ (s.effective_close_at||'').slice(0,16).replace('T',' ') }} |
|
| 尚無直播場次。 | ||||
已開通線上聚會的會友名單。
線上聚會申請已併入「申請與簽核」:區牧在 LINE 初審,管理者在那裡終審。
{{ a.type_name || a.target_user_name }}
{{ a.org_unit_label }}範圍:{{ a.gathering_name }} · {{ a.start_date }}{{ a.start_date }} ~ {{ a.end_date }}
原因:{{ a.reason }}
由 {{ a.proposed_by_name }}({{ a.proposer_kind === 'pastor' ? '區牧' : '小組長' }})提出 · 區牧初審:{{ a.pastor_reviewed_by || '—' }}
{{ relPopTitle }}
{{ g.version.heading }}
{{ n.title }}
{{ n.body }}
這位報名者是哪位會友?
{{ regDlg.item ? (regDlg.item.person_name || '(報名時沒有填姓名)') : '' }}・{{ regDlg.item.event_title }}
搜尋中…
沒有符合的會友(已安息的不列)
{{ regDlg.err }}
加進新朋友名單
{{ regDlg.item ? (regDlg.item.person_name || '(報名時沒有填姓名)') : '' }}・{{ regDlg.item.event_title }}
會把姓名與報名人手機(若這位就是報名人)複製進新朋友名單,之後由新朋友名單的流程接手,不受報名資料到期刪除影響。
{{ regB.unitsErr }}
{{ regDlg.err }}
邀請人是哪位會友?
{{ regDlg.item ? regDlg.item.name : '' }}・邀請人寫:{{ regDlg.item.inviter_text }}
搜尋中…
沒有符合的會友
{{ regDlg.err }}
請填寫異動原因
{{ reasonDlg.warn }}
{{ reasonDlg.what }}
{{ reasonDlg.note }}
{{ checkinLinkGathering.name }}
現場 LINE 連結給實體聚會會友使用;線上簽到連結可提供給線上會友輸入電話或姓名完成簽到。
尚未設定 LIFF ID(.env 的 LIFF_ID),以上為備用網址格式
{{ onlineCheckinError }}
連結每小時更新一次;電話無法比對或同名時,會進入待確認名單。
使用方式
1. 實體會友使用 LINE LIFF 或現場機台
2. 線上會友使用線上簽到連結
3. 找不到會友或資料不唯一時,到「線上簽到待確認」處理
{{ maMemberLabel }}
「網址推得」只能證明有人打開過這位會友的網址;沒有這個標記的是系統明確記錄的查看或修改。這次查詢本身也會留下一筆紀錄。
共 {{ maState.total }} 筆(其中網址推得 {{ maState.urlTotal }} 筆)
{{ it.actor.display }}
{{ it.important ? it.action_label : it.summary }}
{{ it.details }}
{{ deptS.dlg.kind === 'abolish' ? '裁撤牧宣部' : '恢復牧宣部' }}
檢查影響中…
裁撤之後:牧宣部的簽核關卡與所有權限都不生效;部門保留、沒有人,直接由主任牧師管轄;簽核=區長 → 區牧 → 主任牧師核簽人。人選一律移除,之後恢復也不會自動回來。
職責改給誰
{{ r.item }} → {{ r.to }}
{{ deptS.dlg.impact.blockers.join(';') }}
恢復之後:簽核回到 區長 → 區牧 → 牧宣部核簽人 → 主任牧師核簽人,運作中的牧宣部是區牧的上級、看得到全部資料(含敏感)。只恢復部門的權限,不恢復人:人要到這裡另外指派(第一位、第二位);指派之前這一關算出缺,由主任牧師核簽人補上。
{{ deptS.dlg.err }}
兩筆其實是同一個人時,把出席與牧養紀錄併到同一筆。合併後無法復原。
目前這一位:{{ mg.self && mg.self.name }}。請搜尋要跟他合併的另一筆(姓名、電話末幾碼、短碼都可以)。
要保留哪一筆?
被併掉的那一筆會從名單消失(只留一筆合併紀錄),它的出席與牧養紀錄會搬到保留的那一筆。
保留 {{ mg.pv.keep && mg.pv.keep.name }} ← 併入 {{ mg.pv.gone && mg.pv.gone.name }}
現在還不能合併:
{{ b.message }}
會搬到保留那一筆的資料
個資欄位
{{ f.label }} (保留那一筆是空的,自動補上) ({{ f.note }}) (兩邊不同,請選一個)
{{ f.state === 'fill' ? (f.gone) : (f.keep) }}
系統自動決定
合併後無法復原。
{{ mg.pv.gone && mg.pv.gone.name }} 會從名單消失,出席與牧養紀錄搬到 {{ mg.pv.keep && mg.pv.keep.name }}。確定要合併嗎?
已合併。被併掉的那一筆已從名單消失,紀錄都在 {{ mg.keepName }}。
對象:{{ dp.name }}
{{ dp.doneText }}
{{ dpConsequence }}
目前還不能標記,請先處理:
{{ b.message }}
原因會永久留在稽核紀錄,請不要寫地址、電話、病況等個人資料。
{{ dpConfirmText }}
生命成長壘圖
{{ m.label }}
{{ selectedUserDetail[m.key] ? formatBirthday(selectedUserDetail[m.key]) : (milestoneDone(m.key) ? '已受洗(日期不詳)' : '未完成') }}
受洗資訊
基本個資
手機號碼
{{ selectedUserDetail.phone || '—' }}
市話
{{ selectedUserDetail.landline || '—' }}
性別
{{ selectedUserDetail.gender || '—' }}
婚姻狀況
{{ selectedUserDetail.marital_status || '—' }}
生日
{{ formatBirthYMD(selectedUserDetail.birth_year, selectedUserDetail.birth_month, selectedUserDetail.birth_day) }}
年齡族群
{{ selectedUserDetail.age_group || '—' }}
族群
{{ selectedUserDetail.demographic || '—' }}
LINE 綁定
{{ selectedUserDetail.line_id ? '已綁定' : '未綁定' }}實體卡片
{{ selectedUserDetail.card_id }} 未綁定累積出席
{{ selectedUserDetail.total_attendance }} 次
電子郵件
{{ selectedUserDetail.email }}
聯絡地址
{{ selectedUserDetail.address }}
社會生活
職業狀態
{{ selectedUserDetail.life_stage }}
身分類別
{{ selectedUserDetail.identity_type || '—' }}
所屬單位
{{ selectedUserDetail.organization || '—' }}
工作職稱/科系
{{ selectedUserDetail.title_department || '—' }}
牧養組織
{{ (orgLevels.find(l=>l.level===m.level)||{}).display_name || ('L'+m.level) }}
{{ m.unit_code }} {{ m.unit_name || (m.unit_code ? '' : '(未命名單位 #' + m.org_unit_id + ')') }}
牧養追蹤
聚會狀態
{{ selectedUserDetail.attendance_status || '—' }}
固定聚會(統計)
{{ selectedUserDetail.regular_gathering_name || '—' }}
邀請人
{{ selectedUserDetail.inviter || '—' }}
與會日期
{{ formatBirthday(selectedUserDetail.first_visit_date) }}(推定)
加入系統日期
{{ formatUtcDate(selectedUserDetail.created_at) }}
取消轉回日
{{ formatBirthday(selectedUserDetail.return_date) }}
牧養記錄
{{ n.note }}
{{ authorText(n) }}({{ authorHint(n) }})
關懷記錄
近 12 週出席(由遠至近)
| # | 活動 | 日期與時間 |
|---|---|---|
| {{ idx + 1 }} | {{ rec.event_name }} | {{ formatDateTime(rec.check_in_time) }} |
尚無簽到紀錄
改名歷史
{{ selectedUserDetail.name }}的家人
只有管理員能連上或拿掉{{ fam.error }}
載入中…
也一起連上這些家人嗎?({{ fam.derive.items.length }} 項)
{{ fam.derive.error }}
從已經連好的家人推出來的,只是提醒;不對的先取消勾選,重組家庭的繼父、繼母按「改成繼親」(靠它推出來的兄弟姊妹會自動取消),你按了才連。
這個家族裡推得出來的家人都已經連上了。
{{ famMaritalText }}
要{{ fam.marital.length > 1 ? '兩位都' : '' }}改成「已婚」嗎?
只改不是「已婚」的人;之後拿掉配偶也不會自動改回。
{{ fam.flash }}
{{ fam.actionError }}
還沒有連上任何家人。
加一位家人({{ selectedUserDetail.name }})
搜尋中…
找不到這個名字的會友(只能連教會系統裡已經有的會友)。
{{ fam.form.hiddenLinked.join('、') }} 已經是{{ selectedUserDetail.name }}的家人,不列出(要改關係請先在上面的清單拿掉)。
同名的會友會列出性別、出生年與小組,避免連錯人。
2. {{ fam.form.picked ? fam.form.picked.name : '他' }} 是 {{ selectedUserDetail.name }} 的
{{ fam.form.error }}
{{ fam.note }}
{{ mrTabLabel }}紀錄
已有 {{ mrProgress.have }}/{{ mrProgress.total }} 項
{{ mr.error }}
載入中…
{{ mr.form.id ? '修改紀錄' : '新增紀錄' }}
{{ mr.formError }}
項目不能更改;要換項目請刪除後重新新增。
{{ mrEmptyText }}
從報名系統帶進來的活動只列出有報到的。
靈程表原文:{{ r.raw_text }}
備註:{{ r.note }}
{{ r.source_label }}({{ r.updated_at }})
確定刪除「{{ r.type_name }}」這筆紀錄嗎?
{{ mr.deleteError }}
產生 QR Code 中…
此帳號已啟用雙重驗證
您的 Google Authenticator 綁定正常,登入時會要求驗證碼。
若更換手機或要重新綁定,請點「重新綁定」——需要輸入目前的密碼與手機上現在的 6 位數驗證碼,新的手機確認成功後,舊的綁定才會作廢。
為了確認是您本人,請輸入:
為了保護會友資料,管理員與資處登入一定要雙重驗證
只要 3 個步驟、約 2 分鐘。完成之前,系統的其他功能都無法使用。
步驟說明
無法掃描?手動輸入金鑰:
{{ tfaSecret }}
雙重驗證已啟用!
下次登入時需輸入 Google Authenticator 驗證碼。
此密碼為管理員代設或初始密碼
為保護您的帳號安全,請設定一組僅您本人知道的新密碼後才能繼續使用系統。
兩次密碼輸入不一致