修改页面,完成单页模式新增首页返回上一页按钮
This commit is contained in:
Vendored
+1
@@ -0,0 +1 @@
|
||||
(function(i,n){if(typeof module=="object"&&module.exports){module.exports=n(i);return}i.ProfilePages=n(i),i.document&&i.document.addEventListener("DOMContentLoaded",function(){i.ProfilePages.init()})})(typeof globalThis!="undefined"?globalThis:window,function(i){"use strict";var n=i.document,d=i.MediaDisplay||(typeof require=="function"?require("./media-display.js"):null);function p(e){var t=e==null?"":String(e).trim();return t||void 0}function l(e,t,a){var r=e&&e[t];return r==null||r===""?a:r}function P(e){var t=l(e,"nickName","家");return String(t).charAt(0)||"家"}function k(e){var t={0:"男",1:"女",2:"未知"};return t[String(e)]||"待填写"}function h(e){var t=d&&d.normalizeFileAccess(e&&e.avatarFile),a;return a={displayName:l(e,"nickName","未设置昵称"),realName:l(e,"realName","待填写"),avatarText:P(e),avatarStatus:t?"已设置":"未设置",phone:l(e,"phone","未绑定"),sex:k(e&&e.sex),birthday:l(e,"birthday","待填写"),email:l(e,"email","待填写"),regionText:"当前资料接口未提供"},t&&(a.avatarFile=t),a}function x(e){var t=e||{},a={},r=p(t.avatar);if(["nickName","realName","sex","birthday","email"].forEach(function(u){var L=p(t[u]);L!==void 0&&(a[u]=L)}),r!==void 0){if(!/^\d+$/.test(r))throw new Error("头像 OSS ID 必须是整数");a.avatar=r}return a}function b(e){return!e||Object.keys(e).length===0?"请至少填写一项资料":e.email&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e.email)?"请输入正确的邮箱地址":""}function T(){return i.GenealogyApi&&i.GenealogyApi.defaultClient}function N(e,t){var a=t&&(t.status||t.code);return!e||!e.getToken||!e.getToken()||Number(a)===401}function F(){i.NavigationUtil.open("login.html")}function c(e,t){return N(e,t)?(e&&e.clearToken&&e.clearToken(),F(),!0):!1}function s(e,t){return n?(t||n).querySelector(e):null}function o(e,t){return n?Array.prototype.slice.call((t||n).querySelectorAll(e)):[]}function v(e){if(i.layui&&i.layui.layer){i.layui.layer.msg(e);return}i.alert&&i.alert(e)}function f(e,t,a){var r=s("[data-profile-status]",e);if(r){if(i.ProfileUI&&i.ProfileUI.setApiState&&t){i.ProfileUI.setApiState(r,t,a);return}r.textContent=a||""}}function S(e,t){o('button[type="submit"]',e).forEach(function(a){a.dataset.defaultLabel||(a.dataset.defaultLabel=a.textContent),a.disabled=t,a.textContent=t?"保存中…":a.dataset.defaultLabel})}function A(e){o("[data-profile-text]").forEach(function(t){var a=t.getAttribute("data-profile-text"),r=e[a];a==="avatarText"&&e.avatarFile||r!=null&&r!==""&&(t.textContent=r)}),o("[data-profile-avatar]").forEach(function(t){if(!d){t.textContent=e.avatarText;return}t.innerHTML=d.renderAvatar(e.avatarFile,{name:e.displayName,className:"profile-avatar-media"})})}function m(e,t){var a=s("[data-profile-load-status]");if(a){if(i.ProfileUI&&i.ProfileUI.setApiState&&e){i.ProfileUI.setApiState(a,e,t);return}a.textContent=t||""}}function U(){return{displayName:"账户资料暂时无法读取",realName:"暂无数据",avatarText:"!",avatarStatus:"暂无数据",phone:"暂无数据",birthday:"暂无数据",email:"暂无数据",sex:"暂无数据",regionText:"暂无数据"}}function q(e){var t={};return o("[name]",e).forEach(function(a){t[a.name]=a.value}),t}function w(e){var t=s("[data-profile-form]"),a=e||{};t&&o("[name]",t).forEach(function(r){a[r.name]!==void 0&&a[r.name]!==null&&(r.value=a[r.name])})}var y=0;async function g(){var e=T(),t,a=y+1;if(y=a,!(!e||!n||!n.querySelector("[data-profile-page]"))&&!c(e)){m("loading","正在读取账户资料…");try{if(t=await e.currentProfile(),a!==y)return;i.PublicNavigation&&i.PublicNavigation.storeUser(t),A(h(t)),w(t),m("","")}catch(r){if(c(e,r))return;A(U()),m("error","资料读取失败,请刷新页面后重试。"),v(r.message||"个人资料加载失败")}}}async function E(e){var t=T(),a,r;if(!(!t||!e)&&!c(t)){try{a=x(q(e))}catch(u){f(e,"error",u.message||"资料校验失败");return}if(r=b(a),r){f(e,"error",r);return}try{S(e,!0),f(e,"loading","正在保存资料…"),await t.updateProfile(a),f(e,"","已保存"),v("个人资料已保存"),await g()}catch(u){if(c(t,u))return;f(e,"error","保存失败,请稍后重试。"),v(u.message||"个人资料保存失败")}finally{S(e,!1)}}}function I(){var e=s("[data-profile-form]");e&&e.addEventListener("submit",function(t){if(t.preventDefault(),!e.checkValidity()){f(e,"error","请检查资料填写是否正确"),e.reportValidity();return}E(e)})}function C(){I(),g()}return{getAvatarText:P,buildProfileView:h,buildUnavailableProfileView:U,buildProfileUpdateBody:x,validateProfileUpdateBody:b,shouldRedirectToLogin:N,reloadProfile:g,init:C}});
|
||||
Reference in New Issue
Block a user