assets/admin/build was gitignored, so servers deployed by git pull kept running a stale admin bundle — the icon picker integration in the tabbar and floating-button settings pages never reached them. Track the build directory (rebuild with: cd assets/admin && npm run build) and commit the current bundle containing the universal icon picker.
3 lines
13 KiB
JavaScript
3 lines
13 KiB
JavaScript
import{P as be}from"./PageHeader.CtT29f8Y.js";import{a as S}from"./shared-api.DnsQ5cxS.js";import{_ as ge}from"./index.js";import{u as we,a as Ue}from"./vendor-naive.CKYCZmXD.js";import{w as xe,o as ke,X as j,a4 as l,a3 as a,r as I,a1 as o,e as P,c as A,W as c,f as d,Z as m,F as M,R as W,a2 as b,a5 as U,Y as h}from"./vendor-vue.BxZIRU0_.js";import"./vendor-misc.bELTaXdf.js";const Pe={class:"aksrt-page-container"},Re={class:"aksrt-form-actions"},Se={__name:"UsersVerify",setup(Ie){const y=we(),ee=Ue(),x=["aliyun","tencent"],le=[{label:"实人认证(ID_PRO)",value:"ID_PRO"},{label:"活体人脸验证(PV_FV)",value:"PV_FV"},{label:"活体检测(LR_FR)",value:"LR_FR"}],H={aliyun:[{key:"access_key_id",label:"AccessKey ID"},{key:"access_key_secret",label:"AccessKey Secret"}],tencent:[{key:"secret_id",label:"SecretId"},{key:"secret_key",label:"SecretKey"}]},J={user_verify_enabled:!0,user_verify_public_display:!0,user_verify_allow_apply:!0,user_verify_allow_manual_fallback:!0,user_verify_session_ttl_minutes:30,user_verify_poll_interval_seconds:5,user_verify_personal_fee:"0.00",user_verify_enterprise_fee:"0.00",user_verify_personal_badge_text:"个人认证",user_verify_enterprise_badge_text:"企业认证",user_verify_disable_desc:`由于系统正在维护,暂时无法申请身份认证
|
||
详情请联系管理员`,user_verify_desc:"认证用户会在昵称后显示认证徽章,同时享受多种优先待遇。申请请确保信息属实。",user_verify_aliyun_region:"cn-hangzhou",user_verify_aliyun_personal_flow:"",user_verify_aliyun_product_code:"ID_PRO",user_verify_aliyun_enterprise_flow:"",user_verify_tencent_region:"ap-guangzhou",user_verify_tencent_personal_flow:"",user_verify_tencent_enterprise_flow:""},B=I(!0),C=I(!1),E=I(""),F=I("aliyun"),V=P({aliyun:"",tencent:""}),K=A(()=>V[p.provider]||""),z=I(""),O=P({aliyun:{},tencent:{}}),n=P({...J}),p=P({provider:"aliyun"}),k=P({aliyun:{},tencent:{}}),g=P({aliyun:!1,tencent:!1}),L=A(()=>JSON.stringify({verifyForm:n,identityForm:p,credentials:k,clearCredentials:g})),ae=A(()=>z.value!==""&&L.value!==z.value);xe(()=>p.provider,r=>{F.value=r});function w(r){return r==="aliyun"?"阿里云":"腾讯云"}function R(r){return O[r]||{}}function te(r,e){var i;return(i=R(r).configured_fields)!=null&&i[e]?"已配置,留空则保留":"尚未配置"}function D(r){return(r==null?void 0:r.data)??r??{}}async function X(){B.value=!0;try{const[r,e]=await Promise.all([S.getSchemaPage("users","verify"),S.getIdentitySettings()]);Object.assign(n,J,D(r));const i=D(e);p.provider=x.includes(i.provider)?i.provider:"aliyun",Object.assign(V,i.callback_url||{}),x.forEach(_=>{var v;O[_]=((v=i.providers)==null?void 0:v[_])||{},k[_]={},g[_]=!1}),F.value=p.provider,z.value=L.value}catch(r){y.error(r.message||"加载身份认证配置失败")}finally{B.value=!1}}function Y(r){const e={};return H[r].forEach(({key:i})=>{var v;const _=String(((v=k[r])==null?void 0:v[i])||"").trim();_&&(e[i]=_)}),{credentials:e,clear_credentials:g[r]}}async function ne(){const[r,e]=await Promise.all([S.saveSchemaPage("users","verify",{...n}),S.saveIdentitySettings({provider:p.provider,providers:{aliyun:Y("aliyun"),tencent:Y("tencent")}})]),i=D(e);Object.assign(n,D(r)),x.forEach(_=>{var v;O[_]=((v=i.providers)==null?void 0:v[_])||O[_],k[_]={},g[_]=!1}),Object.assign(V,i.callback_url||V),z.value=L.value}async function re(){const r=x.some(i=>g[i]),e=async()=>{C.value=!0;try{await ne(),y.success("身份认证配置已保存")}catch(i){y.error(i.message||"保存失败")}finally{C.value=!1}};if(!r)return e();ee.warning({title:"确认清除凭证",content:"已勾选的服务商凭证将被永久删除,是否继续保存?",positiveText:"清除并保存",negativeText:"取消",onPositiveClick:e})}async function se(r){E.value=r;try{const e=await S.testIdentitySettings({provider:r});y.success((e==null?void 0:e.message)||`${w(r)}配置测试通过`)}catch(e){y.error(e.message||`${w(r)}配置测试失败`)}finally{E.value=""}}async function ue(){if(!K.value)return y.warning("回调地址暂不可用");try{await navigator.clipboard.writeText(K.value),y.success("回调地址已复制")}catch{y.error("复制失败,请手动复制")}}return ke(X),(r,e)=>{const i=o("n-statistic"),_=o("n-tag"),v=o("n-card"),Z=o("n-grid-item"),oe=o("n-grid"),N=o("n-switch"),s=o("n-form-item"),q=o("n-input-number"),f=o("n-input"),$=o("n-form"),G=o("n-radio-button"),Q=o("n-space"),ie=o("n-radio-group"),T=o("n-button"),_e=o("n-input-group"),de=o("n-alert"),ve=o("n-select"),fe=o("n-checkbox"),ce=o("n-tab-pane"),pe=o("n-tabs"),ye=o("n-spin");return c(),j("div",Pe,[l(be,{title:"身份认证",desc:"统一管理认证申请规则与云服务商凭证;审核、驳回和取消认证仍在 WordPress 用户菜单处理。"}),l(ye,{show:B.value,style:{width:"100%","min-height":"240px"}},{default:a(()=>[l(oe,{cols:3,"x-gap":12,"y-gap":12,responsive:"screen","item-responsive":""},{default:a(()=>[l(Z,{span:"3 m:1"},{default:a(()=>[l(v,{class:"aksrt-status-card",size:"small"},{default:a(()=>[l(i,{label:"身份认证功能"},{default:a(()=>[d(m(n.user_verify_enabled?"已启用":"已停用"),1)]),_:1}),l(_,{type:n.user_verify_enabled?"success":"default",round:"",size:"small"},{default:a(()=>[d(m(n.user_verify_enabled?"运行中":"未运行"),1)]),_:1},8,["type"])]),_:1})]),_:1}),(c(),j(M,null,W(x,t=>l(Z,{span:"3 m:1",key:t},{default:a(()=>[l(v,{class:"aksrt-status-card",size:"small"},{default:a(()=>[l(i,{label:w(t)+"凭证"},{default:a(()=>[d(m(R(t).configured?"已配置":"未配置"),1)]),_:2},1032,["label"]),l(_,{type:R(t).configured?"success":"warning",round:"",size:"small"},{default:a(()=>[d(m(p.provider===t?"当前服务商":"备用服务商"),1)]),_:2},1032,["type"])]),_:2},1024)]),_:2},1024)),64))]),_:1}),l(v,{class:"aksrt-section-card",title:"通用认证设置"},{default:a(()=>[l($,{model:n,"label-placement":"left","label-width":"190"},{default:a(()=>[l(s,{label:"启用身份认证"},{default:a(()=>[l(N,{value:n.user_verify_enabled,"onUpdate:value":e[0]||(e[0]=t=>n.user_verify_enabled=t)},null,8,["value"])]),_:1}),l(s,{label:"公开页显示认证徽标"},{default:a(()=>[l(N,{value:n.user_verify_public_display,"onUpdate:value":e[1]||(e[1]=t=>n.user_verify_public_display=t)},null,8,["value"])]),_:1}),l(s,{label:"允许用户前台申请"},{default:a(()=>[l(N,{value:n.user_verify_allow_apply,"onUpdate:value":e[2]||(e[2]=t=>n.user_verify_allow_apply=t)},null,8,["value"])]),_:1}),l(s,{label:"云失败转人工"},{default:a(()=>[l(N,{value:n.user_verify_allow_manual_fallback,"onUpdate:value":e[3]||(e[3]=t=>n.user_verify_allow_manual_fallback=t)},null,8,["value"])]),_:1}),l(s,{label:"认证会话有效期(分钟)"},{default:a(()=>[l(q,{value:n.user_verify_session_ttl_minutes,"onUpdate:value":e[4]||(e[4]=t=>n.user_verify_session_ttl_minutes=t),min:5,max:1440},null,8,["value"])]),_:1}),l(s,{label:"结果轮询间隔(秒)"},{default:a(()=>[l(q,{value:n.user_verify_poll_interval_seconds,"onUpdate:value":e[5]||(e[5]=t=>n.user_verify_poll_interval_seconds=t),min:3,max:60},null,8,["value"])]),_:1}),l(s,{label:"个人认证费用"},{default:a(()=>[l(f,{value:n.user_verify_personal_fee,"onUpdate:value":e[6]||(e[6]=t=>n.user_verify_personal_fee=t),placeholder:"0.00"},null,8,["value"])]),_:1}),l(s,{label:"企业认证费用"},{default:a(()=>[l(f,{value:n.user_verify_enterprise_fee,"onUpdate:value":e[7]||(e[7]=t=>n.user_verify_enterprise_fee=t),placeholder:"0.00"},null,8,["value"])]),_:1}),l(s,{label:"个人认证徽标文案"},{default:a(()=>[l(f,{value:n.user_verify_personal_badge_text,"onUpdate:value":e[8]||(e[8]=t=>n.user_verify_personal_badge_text=t),placeholder:"个人认证"},null,8,["value"])]),_:1}),l(s,{label:"企业认证徽标文案"},{default:a(()=>[l(f,{value:n.user_verify_enterprise_badge_text,"onUpdate:value":e[9]||(e[9]=t=>n.user_verify_enterprise_badge_text=t),placeholder:"企业认证"},null,8,["value"])]),_:1}),l(s,{label:"停用申请说明"},{default:a(()=>[l(f,{value:n.user_verify_disable_desc,"onUpdate:value":e[10]||(e[10]=t=>n.user_verify_disable_desc=t),type:"textarea",rows:2},null,8,["value"])]),_:1}),l(s,{label:"申请介绍"},{default:a(()=>[l(f,{value:n.user_verify_desc,"onUpdate:value":e[11]||(e[11]=t=>n.user_verify_desc=t),type:"textarea",rows:3},null,8,["value"])]),_:1})]),_:1},8,["model"])]),_:1}),l(v,{class:"aksrt-section-card",title:"云服务商"},{default:a(()=>[l($,{model:p,"label-placement":"left","label-width":"190"},{default:a(()=>[l(s,{label:"当前服务商"},{default:a(()=>[l(ie,{value:p.provider,"onUpdate:value":e[12]||(e[12]=t=>p.provider=t)},{default:a(()=>[l(Q,null,{default:a(()=>[l(G,{value:"aliyun"},{default:a(()=>[...e[21]||(e[21]=[d("阿里云",-1)])]),_:1}),l(G,{value:"tencent"},{default:a(()=>[...e[22]||(e[22]=[d("腾讯云",-1)])]),_:1})]),_:1})]),_:1},8,["value"])]),_:1}),l(s,{label:"回调地址"},{feedback:a(()=>[...e[24]||(e[24]=[d("将此地址填入服务商控制台需要的回调地址配置。",-1)])]),default:a(()=>[l(_e,null,{default:a(()=>[l(f,{value:K.value,readonly:""},null,8,["value"]),l(T,{onClick:ue},{default:a(()=>[...e[23]||(e[23]=[d("复制",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),l(pe,{value:F.value,"onUpdate:value":e[20]||(e[20]=t=>F.value=t),type:"segment",animated:"",class:"aksrt-provider-tabs"},{default:a(()=>[(c(),j(M,null,W(x,t=>l(ce,{key:t,name:t,tab:w(t)},{default:a(()=>[l(v,{class:"aksrt-section-card"},{header:a(()=>[l(Q,{align:"center"},{default:a(()=>[h("span",null,m(w(t))+"凭证",1),l(_,{type:R(t).configured?"success":"warning",size:"small",round:""},{default:a(()=>[d(m(R(t).configured?"已配置":"未配置"),1)]),_:2},1032,["type"])]),_:2},1024)]),default:a(()=>[l(de,{type:"info","show-icon":!1,style:{"margin-bottom":"18px"}},{default:a(()=>[...e[25]||(e[25]=[d(" 已保存凭证不会回显。留空表示保留原值;输入新值并保存会替换对应凭证。 ",-1)])]),_:1}),l($,{"label-placement":"left","label-width":"190"},{default:a(()=>[t==="aliyun"?(c(),b(s,{key:0,label:"Region"},{default:a(()=>[l(f,{value:n.user_verify_aliyun_region,"onUpdate:value":e[13]||(e[13]=u=>n.user_verify_aliyun_region=u),placeholder:"cn-hangzhou"},null,8,["value"])]),_:1})):U("",!0),t==="aliyun"?(c(),b(s,{key:1,label:"个人认证 SceneId"},{default:a(()=>[l(f,{value:n.user_verify_aliyun_personal_flow,"onUpdate:value":e[14]||(e[14]=u=>n.user_verify_aliyun_personal_flow=u),placeholder:"从阿里云实人认证控制台获取 SceneId"},null,8,["value"])]),_:1})):U("",!0),t==="aliyun"?(c(),b(s,{key:2,label:"个人认证 ProductCode"},{default:a(()=>[l(ve,{value:n.user_verify_aliyun_product_code,"onUpdate:value":e[15]||(e[15]=u=>n.user_verify_aliyun_product_code=u),options:le},null,8,["value"])]),_:1})):U("",!0),t==="aliyun"?(c(),b(s,{key:3,label:"企业认证业务标识"},{default:a(()=>[l(f,{value:n.user_verify_aliyun_enterprise_flow,"onUpdate:value":e[16]||(e[16]=u=>n.user_verify_aliyun_enterprise_flow=u),placeholder:"可留空,默认复用个人认证 SceneId"},null,8,["value"])]),_:1})):U("",!0),t==="tencent"?(c(),b(s,{key:4,label:"Region"},{default:a(()=>[l(f,{value:n.user_verify_tencent_region,"onUpdate:value":e[17]||(e[17]=u=>n.user_verify_tencent_region=u),placeholder:"ap-guangzhou"},null,8,["value"])]),_:1})):U("",!0),t==="tencent"?(c(),b(s,{key:5,label:"个人认证 RuleId"},{default:a(()=>[l(f,{value:n.user_verify_tencent_personal_flow,"onUpdate:value":e[18]||(e[18]=u=>n.user_verify_tencent_personal_flow=u),placeholder:"从腾讯云实名核身控制台获取 RuleId"},null,8,["value"])]),_:1})):U("",!0),t==="tencent"?(c(),b(s,{key:6,label:"企业认证流程标识"},{default:a(()=>[l(f,{value:n.user_verify_tencent_enterprise_flow,"onUpdate:value":e[19]||(e[19]=u=>n.user_verify_tencent_enterprise_flow=u),placeholder:"可留空,企业四要素后复用个人认证 RuleId"},null,8,["value"])]),_:1})):U("",!0),(c(!0),j(M,null,W(H[t],u=>(c(),b(s,{key:u.key,label:u.label},{default:a(()=>[l(f,{value:k[t][u.key],"onUpdate:value":me=>k[t][u.key]=me,type:"password","show-password-on":"click",placeholder:te(t,u.key),autocomplete:"new-password"},null,8,["value","onUpdate:value","placeholder"])]),_:2},1032,["label"]))),128)),l(s,{label:"显式清除凭证"},{feedback:a(()=>[...e[26]||(e[26]=[d("清除后该服务商立即变为未配置;此操作不会因输入框留空而触发。",-1)])]),default:a(()=>[l(fe,{checked:g[t],"onUpdate:checked":u=>g[t]=u},{default:a(()=>[d(" 保存时删除 "+m(w(t))+"全部凭证 ",1)]),_:2},1032,["checked","onUpdate:checked"])]),_:2},1024),l(s,{label:"配置测试"},{default:a(()=>[l(T,{loading:E.value===t,disabled:C.value,onClick:u=>se(t)},{default:a(()=>[d(" 测试 "+m(w(t))+"配置 ",1)]),_:2},1032,["loading","disabled","onClick"])]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:2},1032,["name","tab"])),64))]),_:1},8,["value"]),h("div",Re,[l(T,{disabled:!ae.value,onClick:X},{default:a(()=>[...e[27]||(e[27]=[d("放弃更改",-1)])]),_:1},8,["disabled"]),l(T,{type:"primary",loading:C.value,onClick:re},{default:a(()=>[...e[28]||(e[28]=[d("保存全部配置",-1)])]),_:1},8,["loading"])])]),_:1},8,["show"])])}}},Ne=ge(Se,[["__scopeId","data-v-2e5fcc8a"]]);export{Ne as default};
|