(function(a,O){if(typeof module=="object"&&module.exports){module.exports=O(a);return}a.MeritPages=O(a),a.document&&a.document.addEventListener("DOMContentLoaded",function(){a.MeritPages.init()})})(typeof globalThis!="undefined"?globalThis:window,function(a){"use strict";function O(e){return a.ProfileUI&&typeof a.ProfileUI.confirmAction=="function"?a.ProfileUI.confirmAction(e):Promise.resolve(!a.confirm||a.confirm(e))}var x=a.MediaDisplay||(typeof require=="function"?require("./media-display.js"):null),v=a.document,P=Object.create(null),b=!1,S=!1,D={donation:"捐赠",repair:"修缮",public:"公益",other:"其他"};function R(){return a.GenealogyApi&&a.GenealogyApi.defaultClient}function u(e,t){return v?(t||v).querySelector(e):null}function L(e,t){return v?Array.prototype.slice.call((t||v).querySelectorAll(e)):[]}function N(e){var t=String(e==null?"":e).trim();return t||void 0}function V(e,t){return new URLSearchParams(String(e||"").replace(/^\?/,"")).get(t)||""}function c(e){return e==null||e===""||typeof e=="number"&&!Number.isSafeInteger(e)?"":/^[1-9][0-9]*$/.test(String(e))?String(e):""}function H(e){var t=e===void 0&&a.location?a.location.search:e,r;return e===void 0&&a.ProfileUI&&a.ProfileUI.getGenealogyId&&(r=a.ProfileUI.getGenealogyId(),r)?c(r):c(V(t,"genealogyId"))}function k(e){var t=e===void 0&&a.location?a.location.search:e;return c(V(t,"meritId"))}function le(e){var t=N(e);if(t)return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}$/.test(t)?t.replace("T"," ")+":00":/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/.test(t)?t.replace("T"," "):t}function oe(e){var t=String(e||"");return/^\d{4}-\d{2}-\d{2}[ T]\d{2}:\d{2}/.test(t)?t.slice(0,16).replace(" ","T"):""}function z(e){var t=N(e),r;if(t)return r=Number(t),Number.isFinite(r)?r:void 0}function fe(e){var t=z(e);return Number.isSafeInteger(t)?t:void 0}function $(e){var t=String(e).trim().replace(/^([+-]?)\./,"$10."),r=t.match(/^([+-]?)(\d+)(?:\.(\d*))?(?:[eE]([+-]?\d+))?$/),n,i;if(!r)return"";if(n=BigInt((r[2]+(r[3]||"")).replace(/^0+(?=\d)/,"")),i=(r[3]||"").length-Number(r[4]||0),n===BigInt(0))return"0:0";for(i<0&&(n*=BigInt(10)**BigInt(-i),i=0);i>0&&n%BigInt(10)===BigInt(0);)n/=BigInt(10),i-=1;return r[1]==="-"&&(n=-n),String(n)+":"+String(i)}function se(e,t){return Number.isFinite(t)&&$(e)===$(JSON.stringify(t))}function J(e){var t=e||{},r={donorName:String(t.donorName||"").trim(),meritTitle:String(t.meritTitle||"").trim()},n=N(t.meritType),i=N(t.meritContent),d=N(t.amount),h=le(t.meritTime),g=N(t.sortOrder),l=N(t.status);return n!==void 0&&(r.meritType=n),i!==void 0&&(r.meritContent=i),d!==void 0&&(r.amount=z(d),r.amount===void 0?r.invalidAmount=!0:se(d,r.amount)||(r.invalidAmountPrecision=!0)),h!==void 0&&(r.meritTime=h),g!==void 0&&(r.sortOrder=fe(g),r.sortOrder===void 0&&(r.invalidSortOrder=!0)),l!==void 0&&(r.status=l),r}function K(e){var t=String(e||"").match(/^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/),r,n,i,d;return!t||(r=Number(t[1]),n=Number(t[2]),i=Number(t[3]),n<1||n>12||Number(t[4])>23||Number(t[5])>59||Number(t[6])>59)?!1:(d=[31,r%4===0&&(r%100!==0||r%400===0)?29:28,31,30,31,30,31,31,30,31,30,31],i>=1&&i<=d[n-1])}function W(e){return!e||!e.donorName?"请填写功德人姓名":e.meritTitle?e.meritType!==void 0&&!Object.prototype.hasOwnProperty.call(D,e.meritType)?"功德类型无效":e.invalidAmount||Object.prototype.hasOwnProperty.call(e,"amount")&&!Number.isFinite(e.amount)?"功德金额必须是有限数字":e.invalidAmountPrecision?"功德金额超出浏览器可安全提交的精度":e.meritTime!==void 0&&!K(e.meritTime)?"功德时间格式无效":e.invalidSortOrder||Object.prototype.hasOwnProperty.call(e,"sortOrder")&&!Number.isSafeInteger(e.sortOrder)?"排序值必须是安全整数":e.status==="1"?"当前 PC 无法重新读取停用功德记录,暂不开放停用":e.status!==void 0&&e.status!=="0"?"功德记录状态只能是 0":"":"请填写功德标题"}function o(e){return e==null?"":String(e)}function me(e){var t;return e==null||e===""?"":typeof e=="number"?Number.isFinite(e)?String(e):"":(t=String(e).trim(),/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/.test(t)?t:"")}function ce(e){var t;if(!(e==null||e===""))return t=Number(e),Number.isSafeInteger(t)?t:void 0}function A(e){var t=c(e&&e.meritId),r=c(e&&e.genealogyId),n=c(e&&e.appUserId),i=String(e&&e.donorName||"").trim(),d=o(e&&e.meritType),h=String(e&&e.meritTitle||"").trim(),g=me(e&&e.amount),l=o(e&&e.meritTime),w=ce(e&&e.sortOrder),T=o(e&&e.status),E;if(!t||!r||!i||!h||!Object.prototype.hasOwnProperty.call(D,d)||e.appUserId!==void 0&&e.appUserId!==null&&e.appUserId!==""&&!n||e.amount!==void 0&&e.amount!==null&&e.amount!==""&&g===""||l&&!K(l)||e.sortOrder!==void 0&&e.sortOrder!==null&&e.sortOrder!==""&&w===void 0||T!=="0"&&T!=="1")return null;E={meritId:t,genealogyId:r,genealogyNo:o(e.genealogyNo),genealogyName:o(e.genealogyName),surname:o(e.surname),appUserNickName:o(e.appUserNickName),appUserPhone:o(e.appUserPhone),donorName:i,meritType:d,meritTitle:h,meritContent:o(e.meritContent),amount:g,meritTime:l,status:T,remark:o(e.remark)};var ue=x?x.normalizeFileList(e&&e.mediaFiles):[];return ue.length&&(E.mediaFiles=ue),n&&(E.appUserId=n),w!==void 0&&(E.sortOrder=w),E}function Q(e,t){var r=A(e);return!!(r&&r.meritId===c(t))}function X(e){return!!(e&&e.status==="0")}function f(e){return o(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function Y(e,t){var r="profile-merit.html?genealogyId="+encodeURIComponent(e);return t?r+"&meritId="+encodeURIComponent(t):r}function Z(e,t){var r="profile-merit-edit.html?genealogyId="+encodeURIComponent(e);return t?r+"&meritId="+encodeURIComponent(t):r}function _(e){return!!(e&&(e.canEditContent===!0||e.canManage===!0))}function pe(e){var t=[D[e.meritType]],r='';return e.meritTime&&t.push(e.meritTime),e.amount&&t.push("金额:"+e.amount),b&&(r+='编辑'),''+f(e.meritTitle)+"
"+f(e.donorName+" · "+t.join(" · "))+'
'+r+"
"}function y(e,t){return"
"+f(e)+""+f(t||"未提供")+"
"}function ee(e){var t="";return e?(b&&(t=''),(x?x.renderGallery(e.mediaFiles,{label:"功德记录附件"}):"")+''+y("功德人",e.donorName)+y("功德类型",D[e.meritType])+y("功德标题",e.meritTitle)+y("事迹内容",e.meritContent)+y("金额",e.amount)+y("功德时间",e.meritTime)+y("记录人",e.appUserNickName)+y("备注",e.remark)+"
"+t):re("empty","请选择一条功德记录查看详情")}function B(e){a.layui&&a.layui.layer?a.layui.layer.msg(e):a.alert&&a.alert(e)}function te(e,t){var r=t&&(t.status||t.code);return!e||!e.getToken||!e.getToken()||Number(r)===401}function s(e){return Number(e&&(e.status||e.code))===403}function C(e){return s(e)?"forbidden":"error"}function m(e,t){return te(e,t)?(e&&e.clearToken&&e.clearToken(),a.NavigationUtil.open("login.html"),!0):!1}function re(e,t){return a.ProfileUI&&a.ProfileUI.renderApiState?a.ProfileUI.renderApiState(e,t):''+f(t)+"
"}function p(e,t,r){if(e){if(a.ProfileUI&&a.ProfileUI.setApiState){a.ProfileUI.setApiState(e,t,r);return}e.innerHTML=re(t,r)}}function U(e,t){var r=u("[data-merit-form-status]");if(r){if(!e){r.innerHTML="";return}if(t&&a.ProfileUI&&a.ProfileUI.setApiState){a.ProfileUI.setApiState(r,t,e);return}r.textContent=e}}function F(e,t,r){var n=u("[data-merit-editor-placeholder]");L("[data-merit-editor], [data-merit-editor-action]").forEach(function(i){i.hidden=!e}),n&&(n.hidden=!!e,!e&&t&&(r?p(n,r,t):n.textContent=t))}function G(e){b=!!e,L("[data-merit-create-link]").forEach(function(t){t.hidden=!b})}async function ie(e,t){var r=await e.genealogyDetail(t);return G(_(r)),r}function j(e,t){var r=u('[data-merit-form] [type="submit"]');S=!!e,L("[data-merit-form] button, [data-merit-form] input, [data-merit-form] textarea, [data-merit-form] select, [data-merit-delete-id]").forEach(function(n){n.disabled=S}),r&&(r.dataset.defaultLabel||(r.dataset.defaultLabel=r.textContent),r.textContent=S&&t?t:r.dataset.defaultLabel,r.setAttribute("aria-busy",S?"true":"false"))}function ne(){a.ProfileUI&&a.ProfileUI.syncGenealogyContextLinks&&a.ProfileUI.syncGenealogyContextLinks()}function ge(){var e=u("[data-merit-list]"),t=u("[data-merit-detail]"),r="请先选择家谱,再查看或维护功德记录。";p(e,"empty",r),p(t,"empty","当前没有家谱上下文。"),G(!1),F(!1,r,"empty"),U(r,"empty")}function M(){var e=H();return e||ge(),e}function ve(e){var t=u("[data-merit-list]"),r=Array.isArray(e)?e.map(A):[],n=r.filter(function(d){return!d}).length,i=r.filter(Boolean);return P=Object.create(null),i.forEach(function(d){P[d.meritId]=d}),t?!Array.isArray(e)||n?(p(t,"error","功德记录响应缺少稳定 MeritRecordVo 字段,请联系后端核对。"),[]):i.length?(t.innerHTML=i.map(pe).join(""),i):(p(t,"empty","暂无功德记录"),[]):i}function ae(e){var t=u("[data-merit-detail]");t&&(t.innerHTML=ee(e))}async function q(e){var t=R(),r=M(),n;if(!r||!c(e)||m(t))return null;p(u("[data-merit-detail]"),"loading","正在加载功德记录详情…");try{if(n=A(await t.meritRecordDetail(r,e)),!n)throw new Error("功德记录详情响应缺少稳定 MeritRecordVo 字段");return P[n.meritId]=n,ae(n),n}catch(i){return m(t,i)||(p(u("[data-merit-detail]"),C(i),s(i)?"当前账号无权查看该功德记录。":"功德记录详情加载失败,请稍后重试。"),B(s(i)?"当前账号无权查看该功德记录。":i.message||"功德记录详情加载失败")),null}}async function de(){var e=R(),t,r,n;if(!m(e)&&(t=M(),!!t)){ne(),p(u("[data-merit-list]"),"loading","正在加载功德记录…");try{await ie(e,t),r=ve(await e.meritRecords(t)),n=k(),n&&P[n]?await q(n):r.length?await q(r[0].meritId):ae(null)}catch(i){if(m(e,i))return;G(!1),p(u("[data-merit-list]"),C(i),s(i)?"当前账号无权查看该家谱的功德记录。":"功德记录加载失败,请稍后重试。"),B(s(i)?"当前账号无权查看该家谱的功德记录。":i.message||"功德记录加载失败")}}}function ye(e){var t={};return L("[name]",e).forEach(function(r){t[r.name]=r.value}),t}function I(e,t){var r=u('[data-merit-form] [name="'+e+'"]');r&&(r.value=t==null?"":String(t))}function Ie(e){var t,r;if(!X(e))throw new Error("停用功德记录无法通过当前 PC 接口重新读取或编辑");I("donorName",e.donorName),I("meritType",e.meritType),I("meritTitle",e.meritTitle),I("meritContent",e.meritContent),I("amount",e.amount),I("meritTime",oe(e.meritTime)),I("sortOrder",e.sortOrder),I("status","0"),t=u('[name="meritContent"]'),a.AppRichEditor&&a.AppRichEditor.init&&t&&(r=a.AppRichEditor.init(t),r&&r.editor&&r.editor.setHtml&&(r.editor.setHtml(e.meritContent),r.sync()))}async function he(){var e=R(),t,r,n;if(!m(e)&&(t=M(),!!t)){r=k(),ne(),F(!1,"正在加载功德记录编辑信息…","loading"),U("正在读取家谱权限…","loading");try{if(await ie(e,t),!b)throw{status:403,message:"当前账号无权维护该家谱的功德记录。"};if(r){if(n=A(await e.meritRecordDetail(t,r)),!n)throw new Error("功德记录详情响应缺少稳定 MeritRecordVo 字段");Ie(n),u("[data-merit-editor-title]")&&(u("[data-merit-editor-title]").textContent="编辑功德记录")}F(!0),U("")}catch(i){if(m(e,i))return;G(!1),F(!1,s(i)?"当前账号无权维护该家谱的功德记录。":i.message||"功德记录编辑信息加载失败",C(i)),U(s(i)?"当前账号无权维护该家谱的功德记录。":i.message||"功德记录编辑信息加载失败",C(i))}}}async function Te(e){var t=R(),r=M(),n=k(),i,d,h,g,l,w;if(!(S||!b||!r||m(t))){if(a.AppRichEditor&&a.AppRichEditor.syncAll&&a.AppRichEditor.syncAll(),i=J(ye(e)),d=W(i),d){U(d,"error");return}delete i.invalidAmount,delete i.invalidAmountPrecision,delete i.invalidSortOrder,j(!0,"正在保存…"),U("正在保存功德记录…","loading");try{if(h=n?await t.updateMeritRecord(r,n,i):await t.createMeritRecord(r,i),g=A(h),l=n||g&&g.meritId,!l)throw new Error("保存响应缺少 meritId");if(w=await t.meritRecordDetail(r,l),!Q(w,l))throw new Error("保存后重读未返回同一条功德记录");a.NavigationUtil.open(Y(r,l))}catch(T){if(m(t,T))return;U(s(T)?"当前账号无权保存该功德记录。":T.message||"功德记录保存失败",C(T))}finally{j(!1)}}}async function be(e){var t=R(),r=M(),n=P[e];if(!(S||!b||!r||!c(e)||m(t))&&await O("确认删除“"+(n?n.meritTitle:"该功德记录")+"”吗?删除后不可恢复。")){j(!0);try{await t.deleteMeritRecord(r,e),await de(),B("功德记录已删除")}catch(i){if(m(t,i))return;B(s(i)?"当前账号无权删除该功德记录。":i.message||"功德记录删除失败")}finally{j(!1)}}}function Ne(){v&&(v.addEventListener("click",function(e){var t=e.target.closest("[data-merit-detail-id]"),r=e.target.closest("[data-merit-delete-id]"),n,i;if(t){e.preventDefault(),n=t.getAttribute("data-merit-detail-id"),i=M(),a.history&&i&&a.history.replaceState(null,"",Y(i,n)),q(n).then(function(d){d&&a.ProfileUI&&a.ProfileUI.revealDetail&&a.ProfileUI.revealDetail(u("[data-merit-detail-heading]"))});return}r&&(e.preventDefault(),be(r.getAttribute("data-merit-delete-id")))}),v.addEventListener("submit",function(e){var t=e.target.closest("[data-merit-form]");t&&(e.preventDefault(),Te(t))}))}function Ue(){v&&(Ne(),u("[data-merit-page]")&&de(),u("[data-merit-edit-page]")&&he())}return{getCurrentGenealogyId:H,getCurrentMeritId:k,buildMeritRecordBody:J,validateMeritRecordBody:W,normalizeMeritRecord:A,matchesSavedMerit:Q,canEditRecords:_,isEditableMerit:X,renderMeritDetail:ee,shouldRedirectToLogin:te,isForbidden:s,init:Ue}});