- 新增api目录下多个接口路径代理处理文件,支持动态拼接目标URL - 根据环境变量选择不同的后端服务地址(如dev和生产环境) - 统一添加TenantId和Authorization请求头传递租户及身份信息 - 实现请求参数及搜索参数的完整转发 - 引入better-sqlite3及node内建模块支持服务端功能 - 新增专家详情页面,实现文章、成果及预约咨询功能展示 - 页面实现加载骨架屏、标签页切换及空状态提示优化体验
9 lines
41 KiB
JavaScript
9 lines
41 KiB
JavaScript
import{b as N,I as Ce,h as Ae,d as be,u as Me,i as z,j as Ee,k as _e,r as j,c as O,o as F,a as P,l as Vt,t as U,m as Y,C as Pe,n as Ne,w as D,e as H,E as ke,R as Le,p as V,g as Be,q as qe,s as Ht,v as Ue,x as jt,y as De,z as ht,A as mt,F as ze,B as ct,_ as Fe,D as Oe,T as Ve,G as He}from"./DPwbf7XO.js";import{g as je,s as Ft,c as Qe,a as xe,b as Je,l as Ke}from"./Cuwzyh4a.js";import{r as Ye}from"./Cv7upGT6.js";import{l as Ge}from"./DYLUgmZy.js";import{g as We}from"./Cqjv_SrU.js";import{s as Xe}from"./Dl1HJz7f.js";var Ze={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M744 62H280c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h464c35.3 0 64-28.7 64-64V126c0-35.3-28.7-64-64-64zm-8 824H288V134h448v752zM472 784a40 40 0 1080 0 40 40 0 10-80 0z"}}]},name:"mobile",theme:"outlined"};function Qt(o){for(var r=1;r<arguments.length;r++){var i=arguments[r]!=null?Object(arguments[r]):{},e=Object.keys(i);typeof Object.getOwnPropertySymbols=="function"&&(e=e.concat(Object.getOwnPropertySymbols(i).filter(function(t){return Object.getOwnPropertyDescriptor(i,t).enumerable}))),e.forEach(function(t){$e(o,t,i[t])})}return o}function $e(o,r,i){return r in o?Object.defineProperty(o,r,{value:i,enumerable:!0,configurable:!0,writable:!0}):o[r]=i,o}var dt=function(r,i){var e=Qt({},r,i.attrs);return N(Ce,Qt({},e,{icon:Ze}),null)};dt.displayName="MobileOutlined";dt.inheritAttrs=!1;var tn={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M468 128H160c-17.7 0-32 14.3-32 32v308c0 4.4 3.6 8 8 8h332c4.4 0 8-3.6 8-8V136c0-4.4-3.6-8-8-8zm-56 284H192V192h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm194 210H136c-4.4 0-8 3.6-8 8v308c0 17.7 14.3 32 32 32h308c4.4 0 8-3.6 8-8V556c0-4.4-3.6-8-8-8zm-56 284H192V612h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm590-630H556c-4.4 0-8 3.6-8 8v332c0 4.4 3.6 8 8 8h332c4.4 0 8-3.6 8-8V160c0-17.7-14.3-32-32-32zm-32 284H612V192h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm194 210h-48c-4.4 0-8 3.6-8 8v134h-78V556c0-4.4-3.6-8-8-8H556c-4.4 0-8 3.6-8 8v332c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V644h78v102c0 4.4 3.6 8 8 8h190c4.4 0 8-3.6 8-8V556c0-4.4-3.6-8-8-8zM746 832h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm142 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"}}]},name:"qrcode",theme:"outlined"};function xt(o){for(var r=1;r<arguments.length;r++){var i=arguments[r]!=null?Object(arguments[r]):{},e=Object.keys(i);typeof Object.getOwnPropertySymbols=="function"&&(e=e.concat(Object.getOwnPropertySymbols(i).filter(function(t){return Object.getOwnPropertyDescriptor(i,t).enumerable}))),e.forEach(function(t){en(o,t,i[t])})}return o}function en(o,r,i){return r in o?Object.defineProperty(o,r,{value:i,enumerable:!0,configurable:!0,writable:!0}):o[r]=i,o}var gt=function(r,i){var e=xt({},r,i.attrs);return N(Ce,xt({},e,{icon:tn}),null)};gt.displayName="QrcodeOutlined";gt.inheritAttrs=!1;var et={},pt,Jt;function nn(){return Jt||(Jt=1,pt=function(){return typeof Promise=="function"&&Promise.prototype&&Promise.prototype.then}),pt}var vt={},W={},Kt;function X(){if(Kt)return W;Kt=1;let o;const r=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];return W.getSymbolSize=function(e){if(!e)throw new Error('"version" cannot be null or undefined');if(e<1||e>40)throw new Error('"version" should be in range from 1 to 40');return e*4+17},W.getSymbolTotalCodewords=function(e){return r[e]},W.getBCHDigit=function(i){let e=0;for(;i!==0;)e++,i>>>=1;return e},W.setToSJISFunction=function(e){if(typeof e!="function")throw new Error('"toSJISFunc" is not a valid function.');o=e},W.isKanjiModeEnabled=function(){return typeof o<"u"},W.toSJIS=function(e){return o(e)},W}var wt={},Yt;function Ot(){return Yt||(Yt=1,(function(o){o.L={bit:1},o.M={bit:0},o.Q={bit:3},o.H={bit:2};function r(i){if(typeof i!="string")throw new Error("Param is not a string");switch(i.toLowerCase()){case"l":case"low":return o.L;case"m":case"medium":return o.M;case"q":case"quartile":return o.Q;case"h":case"high":return o.H;default:throw new Error("Unknown EC Level: "+i)}}o.isValid=function(e){return e&&typeof e.bit<"u"&&e.bit>=0&&e.bit<4},o.from=function(e,t){if(o.isValid(e))return e;try{return r(e)}catch{return t}}})(wt)),wt}var yt,Gt;function rn(){if(Gt)return yt;Gt=1;function o(){this.buffer=[],this.length=0}return o.prototype={get:function(r){const i=Math.floor(r/8);return(this.buffer[i]>>>7-r%8&1)===1},put:function(r,i){for(let e=0;e<i;e++)this.putBit((r>>>i-e-1&1)===1)},getLengthInBits:function(){return this.length},putBit:function(r){const i=Math.floor(this.length/8);this.buffer.length<=i&&this.buffer.push(0),r&&(this.buffer[i]|=128>>>this.length%8),this.length++}},yt=o,yt}var Ct,Wt;function on(){if(Wt)return Ct;Wt=1;function o(r){if(!r||r<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=r,this.data=new Uint8Array(r*r),this.reservedBit=new Uint8Array(r*r)}return o.prototype.set=function(r,i,e,t){const n=r*this.size+i;this.data[n]=e,t&&(this.reservedBit[n]=!0)},o.prototype.get=function(r,i){return this.data[r*this.size+i]},o.prototype.xor=function(r,i,e){this.data[r*this.size+i]^=e},o.prototype.isReserved=function(r,i){return this.reservedBit[r*this.size+i]},Ct=o,Ct}var bt={},Xt;function sn(){return Xt||(Xt=1,(function(o){const r=X().getSymbolSize;o.getRowColCoords=function(e){if(e===1)return[];const t=Math.floor(e/7)+2,n=r(e),s=n===145?26:Math.ceil((n-13)/(2*t-2))*2,a=[n-7];for(let u=1;u<t-1;u++)a[u]=a[u-1]-s;return a.push(6),a.reverse()},o.getPositions=function(e){const t=[],n=o.getRowColCoords(e),s=n.length;for(let a=0;a<s;a++)for(let u=0;u<s;u++)a===0&&u===0||a===0&&u===s-1||a===s-1&&u===0||t.push([n[a],n[u]]);return t}})(bt)),bt}var Et={},Zt;function an(){if(Zt)return Et;Zt=1;const o=X().getSymbolSize,r=7;return Et.getPositions=function(e){const t=o(e);return[[0,0],[t-r,0],[0,t-r]]},Et}var _t={},$t;function un(){return $t||($t=1,(function(o){o.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};const r={N1:3,N2:3,N3:40,N4:10};o.isValid=function(t){return t!=null&&t!==""&&!isNaN(t)&&t>=0&&t<=7},o.from=function(t){return o.isValid(t)?parseInt(t,10):void 0},o.getPenaltyN1=function(t){const n=t.size;let s=0,a=0,u=0,f=null,d=null;for(let y=0;y<n;y++){a=u=0,f=d=null;for(let m=0;m<n;m++){let g=t.get(y,m);g===f?a++:(a>=5&&(s+=r.N1+(a-5)),f=g,a=1),g=t.get(m,y),g===d?u++:(u>=5&&(s+=r.N1+(u-5)),d=g,u=1)}a>=5&&(s+=r.N1+(a-5)),u>=5&&(s+=r.N1+(u-5))}return s},o.getPenaltyN2=function(t){const n=t.size;let s=0;for(let a=0;a<n-1;a++)for(let u=0;u<n-1;u++){const f=t.get(a,u)+t.get(a,u+1)+t.get(a+1,u)+t.get(a+1,u+1);(f===4||f===0)&&s++}return s*r.N2},o.getPenaltyN3=function(t){const n=t.size;let s=0,a=0,u=0;for(let f=0;f<n;f++){a=u=0;for(let d=0;d<n;d++)a=a<<1&2047|t.get(f,d),d>=10&&(a===1488||a===93)&&s++,u=u<<1&2047|t.get(d,f),d>=10&&(u===1488||u===93)&&s++}return s*r.N3},o.getPenaltyN4=function(t){let n=0;const s=t.data.length;for(let u=0;u<s;u++)n+=t.data[u];return Math.abs(Math.ceil(n*100/s/5)-10)*r.N4};function i(e,t,n){switch(e){case o.Patterns.PATTERN000:return(t+n)%2===0;case o.Patterns.PATTERN001:return t%2===0;case o.Patterns.PATTERN010:return n%3===0;case o.Patterns.PATTERN011:return(t+n)%3===0;case o.Patterns.PATTERN100:return(Math.floor(t/2)+Math.floor(n/3))%2===0;case o.Patterns.PATTERN101:return t*n%2+t*n%3===0;case o.Patterns.PATTERN110:return(t*n%2+t*n%3)%2===0;case o.Patterns.PATTERN111:return(t*n%3+(t+n)%2)%2===0;default:throw new Error("bad maskPattern:"+e)}}o.applyMask=function(t,n){const s=n.size;for(let a=0;a<s;a++)for(let u=0;u<s;u++)n.isReserved(u,a)||n.xor(u,a,i(t,u,a))},o.getBestMask=function(t,n){const s=Object.keys(o.Patterns).length;let a=0,u=1/0;for(let f=0;f<s;f++){n(f),o.applyMask(f,t);const d=o.getPenaltyN1(t)+o.getPenaltyN2(t)+o.getPenaltyN3(t)+o.getPenaltyN4(t);o.applyMask(f,t),d<u&&(u=d,a=f)}return a}})(_t)),_t}var ft={},te;function Ie(){if(te)return ft;te=1;const o=Ot(),r=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],i=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];return ft.getBlocksCount=function(t,n){switch(n){case o.L:return r[(t-1)*4+0];case o.M:return r[(t-1)*4+1];case o.Q:return r[(t-1)*4+2];case o.H:return r[(t-1)*4+3];default:return}},ft.getTotalCodewordsCount=function(t,n){switch(n){case o.L:return i[(t-1)*4+0];case o.M:return i[(t-1)*4+1];case o.Q:return i[(t-1)*4+2];case o.H:return i[(t-1)*4+3];default:return}},ft}var Bt={},st={},ee;function ln(){if(ee)return st;ee=1;const o=new Uint8Array(512),r=new Uint8Array(256);return(function(){let e=1;for(let t=0;t<255;t++)o[t]=e,r[e]=t,e<<=1,e&256&&(e^=285);for(let t=255;t<512;t++)o[t]=o[t-255]})(),st.log=function(e){if(e<1)throw new Error("log("+e+")");return r[e]},st.exp=function(e){return o[e]},st.mul=function(e,t){return e===0||t===0?0:o[r[e]+r[t]]},st}var ne;function cn(){return ne||(ne=1,(function(o){const r=ln();o.mul=function(e,t){const n=new Uint8Array(e.length+t.length-1);for(let s=0;s<e.length;s++)for(let a=0;a<t.length;a++)n[s+a]^=r.mul(e[s],t[a]);return n},o.mod=function(e,t){let n=new Uint8Array(e);for(;n.length-t.length>=0;){const s=n[0];for(let u=0;u<t.length;u++)n[u]^=r.mul(t[u],s);let a=0;for(;a<n.length&&n[a]===0;)a++;n=n.slice(a)}return n},o.generateECPolynomial=function(e){let t=new Uint8Array([1]);for(let n=0;n<e;n++)t=o.mul(t,new Uint8Array([1,r.exp(n)]));return t}})(Bt)),Bt}var It,re;function fn(){if(re)return It;re=1;const o=cn();function r(i){this.genPoly=void 0,this.degree=i,this.degree&&this.initialize(this.degree)}return r.prototype.initialize=function(e){this.degree=e,this.genPoly=o.generateECPolynomial(this.degree)},r.prototype.encode=function(e){if(!this.genPoly)throw new Error("Encoder not initialized");const t=new Uint8Array(e.length+this.degree);t.set(e);const n=o.mod(t,this.genPoly),s=this.degree-n.length;if(s>0){const a=new Uint8Array(this.degree);return a.set(n,s),a}return n},It=r,It}var St={},Rt={},Tt={},oe;function Se(){return oe||(oe=1,Tt.isValid=function(r){return!isNaN(r)&&r>=1&&r<=40}),Tt}var K={},ie;function Re(){if(ie)return K;ie=1;const o="[0-9]+",r="[A-Z $%*+\\-./:]+";let i="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";i=i.replace(/u/g,"\\u");const e="(?:(?![A-Z0-9 $%*+\\-./:]|"+i+`)(?:.|[\r
|
||
]))+`;K.KANJI=new RegExp(i,"g"),K.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),K.BYTE=new RegExp(e,"g"),K.NUMERIC=new RegExp(o,"g"),K.ALPHANUMERIC=new RegExp(r,"g");const t=new RegExp("^"+i+"$"),n=new RegExp("^"+o+"$"),s=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");return K.testKanji=function(u){return t.test(u)},K.testNumeric=function(u){return n.test(u)},K.testAlphanumeric=function(u){return s.test(u)},K}var se;function Z(){return se||(se=1,(function(o){const r=Se(),i=Re();o.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},o.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},o.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},o.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},o.MIXED={bit:-1},o.getCharCountIndicator=function(n,s){if(!n.ccBits)throw new Error("Invalid mode: "+n);if(!r.isValid(s))throw new Error("Invalid version: "+s);return s>=1&&s<10?n.ccBits[0]:s<27?n.ccBits[1]:n.ccBits[2]},o.getBestModeForData=function(n){return i.testNumeric(n)?o.NUMERIC:i.testAlphanumeric(n)?o.ALPHANUMERIC:i.testKanji(n)?o.KANJI:o.BYTE},o.toString=function(n){if(n&&n.id)return n.id;throw new Error("Invalid mode")},o.isValid=function(n){return n&&n.bit&&n.ccBits};function e(t){if(typeof t!="string")throw new Error("Param is not a string");switch(t.toLowerCase()){case"numeric":return o.NUMERIC;case"alphanumeric":return o.ALPHANUMERIC;case"kanji":return o.KANJI;case"byte":return o.BYTE;default:throw new Error("Unknown mode: "+t)}}o.from=function(n,s){if(o.isValid(n))return n;try{return e(n)}catch{return s}}})(Rt)),Rt}var ae;function dn(){return ae||(ae=1,(function(o){const r=X(),i=Ie(),e=Ot(),t=Z(),n=Se(),s=7973,a=r.getBCHDigit(s);function u(m,g,T){for(let v=1;v<=40;v++)if(g<=o.getCapacity(v,T,m))return v}function f(m,g){return t.getCharCountIndicator(m,g)+4}function d(m,g){let T=0;return m.forEach(function(v){const q=f(v.mode,g);T+=q+v.getBitsLength()}),T}function y(m,g){for(let T=1;T<=40;T++)if(d(m,T)<=o.getCapacity(T,g,t.MIXED))return T}o.from=function(g,T){return n.isValid(g)?parseInt(g,10):T},o.getCapacity=function(g,T,v){if(!n.isValid(g))throw new Error("Invalid QR Code version");typeof v>"u"&&(v=t.BYTE);const q=r.getSymbolTotalCodewords(g),I=i.getTotalCodewordsCount(g,T),A=(q-I)*8;if(v===t.MIXED)return A;const l=A-f(v,g);switch(v){case t.NUMERIC:return Math.floor(l/10*3);case t.ALPHANUMERIC:return Math.floor(l/11*2);case t.KANJI:return Math.floor(l/13);case t.BYTE:default:return Math.floor(l/8)}},o.getBestVersionForData=function(g,T){let v;const q=e.from(T,e.M);if(Array.isArray(g)){if(g.length>1)return y(g,q);if(g.length===0)return 1;v=g[0]}else v=g;return u(v.mode,v.getLength(),q)},o.getEncodedBits=function(g){if(!n.isValid(g)||g<7)throw new Error("Invalid QR Code version");let T=g<<12;for(;r.getBCHDigit(T)-a>=0;)T^=s<<r.getBCHDigit(T)-a;return g<<12|T}})(St)),St}var At={},ue;function gn(){if(ue)return At;ue=1;const o=X(),r=1335,i=21522,e=o.getBCHDigit(r);return At.getEncodedBits=function(n,s){const a=n.bit<<3|s;let u=a<<10;for(;o.getBCHDigit(u)-e>=0;)u^=r<<o.getBCHDigit(u)-e;return(a<<10|u)^i},At}var Mt={},Pt,le;function hn(){if(le)return Pt;le=1;const o=Z();function r(i){this.mode=o.NUMERIC,this.data=i.toString()}return r.getBitsLength=function(e){return 10*Math.floor(e/3)+(e%3?e%3*3+1:0)},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(e){let t,n,s;for(t=0;t+3<=this.data.length;t+=3)n=this.data.substr(t,3),s=parseInt(n,10),e.put(s,10);const a=this.data.length-t;a>0&&(n=this.data.substr(t),s=parseInt(n,10),e.put(s,a*3+1))},Pt=r,Pt}var Nt,ce;function mn(){if(ce)return Nt;ce=1;const o=Z(),r=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function i(e){this.mode=o.ALPHANUMERIC,this.data=e}return i.getBitsLength=function(t){return 11*Math.floor(t/2)+6*(t%2)},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(t){let n;for(n=0;n+2<=this.data.length;n+=2){let s=r.indexOf(this.data[n])*45;s+=r.indexOf(this.data[n+1]),t.put(s,11)}this.data.length%2&&t.put(r.indexOf(this.data[n]),6)},Nt=i,Nt}var kt,fe;function pn(){if(fe)return kt;fe=1;const o=Z();function r(i){this.mode=o.BYTE,typeof i=="string"?this.data=new TextEncoder().encode(i):this.data=new Uint8Array(i)}return r.getBitsLength=function(e){return e*8},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(i){for(let e=0,t=this.data.length;e<t;e++)i.put(this.data[e],8)},kt=r,kt}var Lt,de;function vn(){if(de)return Lt;de=1;const o=Z(),r=X();function i(e){this.mode=o.KANJI,this.data=e}return i.getBitsLength=function(t){return t*13},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(e){let t;for(t=0;t<this.data.length;t++){let n=r.toSJIS(this.data[t]);if(n>=33088&&n<=40956)n-=33088;else if(n>=57408&&n<=60351)n-=49472;else throw new Error("Invalid SJIS character: "+this.data[t]+`
|
||
Make sure your charset is UTF-8`);n=(n>>>8&255)*192+(n&255),e.put(n,13)}},Lt=i,Lt}var qt={exports:{}},ge;function wn(){return ge||(ge=1,(function(o){var r={single_source_shortest_paths:function(i,e,t){var n={},s={};s[e]=0;var a=r.PriorityQueue.make();a.push(e,0);for(var u,f,d,y,m,g,T,v,q;!a.empty();){u=a.pop(),f=u.value,y=u.cost,m=i[f]||{};for(d in m)m.hasOwnProperty(d)&&(g=m[d],T=y+g,v=s[d],q=typeof s[d]>"u",(q||v>T)&&(s[d]=T,a.push(d,T),n[d]=f))}if(typeof t<"u"&&typeof s[t]>"u"){var I=["Could not find a path from ",e," to ",t,"."].join("");throw new Error(I)}return n},extract_shortest_path_from_predecessor_list:function(i,e){for(var t=[],n=e;n;)t.push(n),i[n],n=i[n];return t.reverse(),t},find_path:function(i,e,t){var n=r.single_source_shortest_paths(i,e,t);return r.extract_shortest_path_from_predecessor_list(n,t)},PriorityQueue:{make:function(i){var e=r.PriorityQueue,t={},n;i=i||{};for(n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t.queue=[],t.sorter=i.sorter||e.default_sorter,t},default_sorter:function(i,e){return i.cost-e.cost},push:function(i,e){var t={value:i,cost:e};this.queue.push(t),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};o.exports=r})(qt)),qt.exports}var he;function yn(){return he||(he=1,(function(o){const r=Z(),i=hn(),e=mn(),t=pn(),n=vn(),s=Re(),a=X(),u=wn();function f(I){return unescape(encodeURIComponent(I)).length}function d(I,A,l){const c=[];let k;for(;(k=I.exec(l))!==null;)c.push({data:k[0],index:k.index,mode:A,length:k[0].length});return c}function y(I){const A=d(s.NUMERIC,r.NUMERIC,I),l=d(s.ALPHANUMERIC,r.ALPHANUMERIC,I);let c,k;return a.isKanjiModeEnabled()?(c=d(s.BYTE,r.BYTE,I),k=d(s.KANJI,r.KANJI,I)):(c=d(s.BYTE_KANJI,r.BYTE,I),k=[]),A.concat(l,c,k).sort(function(B,b){return B.index-b.index}).map(function(B){return{data:B.data,mode:B.mode,length:B.length}})}function m(I,A){switch(A){case r.NUMERIC:return i.getBitsLength(I);case r.ALPHANUMERIC:return e.getBitsLength(I);case r.KANJI:return n.getBitsLength(I);case r.BYTE:return t.getBitsLength(I)}}function g(I){return I.reduce(function(A,l){const c=A.length-1>=0?A[A.length-1]:null;return c&&c.mode===l.mode?(A[A.length-1].data+=l.data,A):(A.push(l),A)},[])}function T(I){const A=[];for(let l=0;l<I.length;l++){const c=I[l];switch(c.mode){case r.NUMERIC:A.push([c,{data:c.data,mode:r.ALPHANUMERIC,length:c.length},{data:c.data,mode:r.BYTE,length:c.length}]);break;case r.ALPHANUMERIC:A.push([c,{data:c.data,mode:r.BYTE,length:c.length}]);break;case r.KANJI:A.push([c,{data:c.data,mode:r.BYTE,length:f(c.data)}]);break;case r.BYTE:A.push([{data:c.data,mode:r.BYTE,length:f(c.data)}])}}return A}function v(I,A){const l={},c={start:{}};let k=["start"];for(let h=0;h<I.length;h++){const B=I[h],b=[];for(let p=0;p<B.length;p++){const S=B[p],C=""+h+p;b.push(C),l[C]={node:S,lastCount:0},c[C]={};for(let E=0;E<k.length;E++){const _=k[E];l[_]&&l[_].node.mode===S.mode?(c[_][C]=m(l[_].lastCount+S.length,S.mode)-m(l[_].lastCount,S.mode),l[_].lastCount+=S.length):(l[_]&&(l[_].lastCount=S.length),c[_][C]=m(S.length,S.mode)+4+r.getCharCountIndicator(S.mode,A))}}k=b}for(let h=0;h<k.length;h++)c[k[h]].end=0;return{map:c,table:l}}function q(I,A){let l;const c=r.getBestModeForData(I);if(l=r.from(A,c),l!==r.BYTE&&l.bit<c.bit)throw new Error('"'+I+'" cannot be encoded with mode '+r.toString(l)+`.
|
||
Suggested mode is: `+r.toString(c));switch(l===r.KANJI&&!a.isKanjiModeEnabled()&&(l=r.BYTE),l){case r.NUMERIC:return new i(I);case r.ALPHANUMERIC:return new e(I);case r.KANJI:return new n(I);case r.BYTE:return new t(I)}}o.fromArray=function(A){return A.reduce(function(l,c){return typeof c=="string"?l.push(q(c,null)):c.data&&l.push(q(c.data,c.mode)),l},[])},o.fromString=function(A,l){const c=y(A,a.isKanjiModeEnabled()),k=T(c),h=v(k,l),B=u.find_path(h.map,"start","end"),b=[];for(let p=1;p<B.length-1;p++)b.push(h.table[B[p]].node);return o.fromArray(g(b))},o.rawSplit=function(A){return o.fromArray(y(A,a.isKanjiModeEnabled()))}})(Mt)),Mt}var me;function Cn(){if(me)return vt;me=1;const o=X(),r=Ot(),i=rn(),e=on(),t=sn(),n=an(),s=un(),a=Ie(),u=fn(),f=dn(),d=gn(),y=Z(),m=yn();function g(h,B){const b=h.size,p=n.getPositions(B);for(let S=0;S<p.length;S++){const C=p[S][0],E=p[S][1];for(let _=-1;_<=7;_++)if(!(C+_<=-1||b<=C+_))for(let M=-1;M<=7;M++)E+M<=-1||b<=E+M||(_>=0&&_<=6&&(M===0||M===6)||M>=0&&M<=6&&(_===0||_===6)||_>=2&&_<=4&&M>=2&&M<=4?h.set(C+_,E+M,!0,!0):h.set(C+_,E+M,!1,!0))}}function T(h){const B=h.size;for(let b=8;b<B-8;b++){const p=b%2===0;h.set(b,6,p,!0),h.set(6,b,p,!0)}}function v(h,B){const b=t.getPositions(B);for(let p=0;p<b.length;p++){const S=b[p][0],C=b[p][1];for(let E=-2;E<=2;E++)for(let _=-2;_<=2;_++)E===-2||E===2||_===-2||_===2||E===0&&_===0?h.set(S+E,C+_,!0,!0):h.set(S+E,C+_,!1,!0)}}function q(h,B){const b=h.size,p=f.getEncodedBits(B);let S,C,E;for(let _=0;_<18;_++)S=Math.floor(_/3),C=_%3+b-8-3,E=(p>>_&1)===1,h.set(S,C,E,!0),h.set(C,S,E,!0)}function I(h,B,b){const p=h.size,S=d.getEncodedBits(B,b);let C,E;for(C=0;C<15;C++)E=(S>>C&1)===1,C<6?h.set(C,8,E,!0):C<8?h.set(C+1,8,E,!0):h.set(p-15+C,8,E,!0),C<8?h.set(8,p-C-1,E,!0):C<9?h.set(8,15-C-1+1,E,!0):h.set(8,15-C-1,E,!0);h.set(p-8,8,1,!0)}function A(h,B){const b=h.size;let p=-1,S=b-1,C=7,E=0;for(let _=b-1;_>0;_-=2)for(_===6&&_--;;){for(let M=0;M<2;M++)if(!h.isReserved(S,_-M)){let J=!1;E<B.length&&(J=(B[E]>>>C&1)===1),h.set(S,_-M,J),C--,C===-1&&(E++,C=7)}if(S+=p,S<0||b<=S){S-=p,p=-p;break}}}function l(h,B,b){const p=new i;b.forEach(function(M){p.put(M.mode.bit,4),p.put(M.getLength(),y.getCharCountIndicator(M.mode,h)),M.write(p)});const S=o.getSymbolTotalCodewords(h),C=a.getTotalCodewordsCount(h,B),E=(S-C)*8;for(p.getLengthInBits()+4<=E&&p.put(0,4);p.getLengthInBits()%8!==0;)p.putBit(0);const _=(E-p.getLengthInBits())/8;for(let M=0;M<_;M++)p.put(M%2?17:236,8);return c(p,h,B)}function c(h,B,b){const p=o.getSymbolTotalCodewords(B),S=a.getTotalCodewordsCount(B,b),C=p-S,E=a.getBlocksCount(B,b),_=p%E,M=E-_,J=Math.floor(p/E),R=Math.floor(C/E),w=R+1,G=J-R,nt=new u(G);let $=0;const tt=new Array(E),rt=new Array(E);let ot=0;const at=new Uint8Array(h.buffer);for(let L=0;L<E;L++){const lt=L<M?R:w;tt[L]=at.slice($,$+lt),rt[L]=nt.encode(tt[L]),$+=lt,ot=Math.max(ot,lt)}const it=new Uint8Array(p);let ut=0,Q,x;for(Q=0;Q<ot;Q++)for(x=0;x<E;x++)Q<tt[x].length&&(it[ut++]=tt[x][Q]);for(Q=0;Q<G;Q++)for(x=0;x<E;x++)it[ut++]=rt[x][Q];return it}function k(h,B,b,p){let S;if(Array.isArray(h))S=m.fromArray(h);else if(typeof h=="string"){let J=B;if(!J){const R=m.rawSplit(h);J=f.getBestVersionForData(R,b)}S=m.fromString(h,J||40)}else throw new Error("Invalid data");const C=f.getBestVersionForData(S,b);if(!C)throw new Error("The amount of data is too big to be stored in a QR Code");if(!B)B=C;else if(B<C)throw new Error(`
|
||
The chosen QR Code version cannot contain this amount of data.
|
||
Minimum version required to store current data is: `+C+`.
|
||
`);const E=l(B,b,S),_=o.getSymbolSize(B),M=new e(_);return g(M,B),T(M),v(M,B),I(M,b,0),B>=7&&q(M,B),A(M,E),isNaN(p)&&(p=s.getBestMask(M,I.bind(null,M,b))),s.applyMask(p,M),I(M,b,p),{modules:M,version:B,errorCorrectionLevel:b,maskPattern:p,segments:S}}return vt.create=function(B,b){if(typeof B>"u"||B==="")throw new Error("No input text");let p=r.M,S,C;return typeof b<"u"&&(p=r.from(b.errorCorrectionLevel,r.M),S=f.from(b.version),C=s.from(b.maskPattern),b.toSJISFunc&&o.setToSJISFunction(b.toSJISFunc)),k(B,S,p,C)},vt}var Ut={},Dt={},pe;function Te(){return pe||(pe=1,(function(o){function r(i){if(typeof i=="number"&&(i=i.toString()),typeof i!="string")throw new Error("Color should be defined as hex string");let e=i.slice().replace("#","").split("");if(e.length<3||e.length===5||e.length>8)throw new Error("Invalid hex color: "+i);(e.length===3||e.length===4)&&(e=Array.prototype.concat.apply([],e.map(function(n){return[n,n]}))),e.length===6&&e.push("F","F");const t=parseInt(e.join(""),16);return{r:t>>24&255,g:t>>16&255,b:t>>8&255,a:t&255,hex:"#"+e.slice(0,6).join("")}}o.getOptions=function(e){e||(e={}),e.color||(e.color={});const t=typeof e.margin>"u"||e.margin===null||e.margin<0?4:e.margin,n=e.width&&e.width>=21?e.width:void 0,s=e.scale||4;return{width:n,scale:n?4:s,margin:t,color:{dark:r(e.color.dark||"#000000ff"),light:r(e.color.light||"#ffffffff")},type:e.type,rendererOpts:e.rendererOpts||{}}},o.getScale=function(e,t){return t.width&&t.width>=e+t.margin*2?t.width/(e+t.margin*2):t.scale},o.getImageWidth=function(e,t){const n=o.getScale(e,t);return Math.floor((e+t.margin*2)*n)},o.qrToImageData=function(e,t,n){const s=t.modules.size,a=t.modules.data,u=o.getScale(s,n),f=Math.floor((s+n.margin*2)*u),d=n.margin*u,y=[n.color.light,n.color.dark];for(let m=0;m<f;m++)for(let g=0;g<f;g++){let T=(m*f+g)*4,v=n.color.light;if(m>=d&&g>=d&&m<f-d&&g<f-d){const q=Math.floor((m-d)/u),I=Math.floor((g-d)/u);v=y[a[q*s+I]?1:0]}e[T++]=v.r,e[T++]=v.g,e[T++]=v.b,e[T]=v.a}}})(Dt)),Dt}var ve;function bn(){return ve||(ve=1,(function(o){const r=Te();function i(t,n,s){t.clearRect(0,0,n.width,n.height),n.style||(n.style={}),n.height=s,n.width=s,n.style.height=s+"px",n.style.width=s+"px"}function e(){try{return document.createElement("canvas")}catch{throw new Error("You need to specify a canvas element")}}o.render=function(n,s,a){let u=a,f=s;typeof u>"u"&&(!s||!s.getContext)&&(u=s,s=void 0),s||(f=e()),u=r.getOptions(u);const d=r.getImageWidth(n.modules.size,u),y=f.getContext("2d"),m=y.createImageData(d,d);return r.qrToImageData(m.data,n,u),i(y,f,d),y.putImageData(m,0,0),f},o.renderToDataURL=function(n,s,a){let u=a;typeof u>"u"&&(!s||!s.getContext)&&(u=s,s=void 0),u||(u={});const f=o.render(n,s,u),d=u.type||"image/png",y=u.rendererOpts||{};return f.toDataURL(d,y.quality)}})(Ut)),Ut}var zt={},we;function En(){if(we)return zt;we=1;const o=Te();function r(t,n){const s=t.a/255,a=n+'="'+t.hex+'"';return s<1?a+" "+n+'-opacity="'+s.toFixed(2).slice(1)+'"':a}function i(t,n,s){let a=t+n;return typeof s<"u"&&(a+=" "+s),a}function e(t,n,s){let a="",u=0,f=!1,d=0;for(let y=0;y<t.length;y++){const m=Math.floor(y%n),g=Math.floor(y/n);!m&&!f&&(f=!0),t[y]?(d++,y>0&&m>0&&t[y-1]||(a+=f?i("M",m+s,.5+g+s):i("m",u,0),u=0,f=!1),m+1<n&&t[y+1]||(a+=i("h",d),d=0)):u++}return a}return zt.render=function(n,s,a){const u=o.getOptions(s),f=n.modules.size,d=n.modules.data,y=f+u.margin*2,m=u.color.light.a?"<path "+r(u.color.light,"fill")+' d="M0 0h'+y+"v"+y+'H0z"/>':"",g="<path "+r(u.color.dark,"stroke")+' d="'+e(d,f,u.margin)+'"/>',T='viewBox="0 0 '+y+" "+y+'"',q='<svg xmlns="http://www.w3.org/2000/svg" '+(u.width?'width="'+u.width+'" height="'+u.width+'" ':"")+T+' shape-rendering="crispEdges">'+m+g+`</svg>
|
||
`;return typeof a=="function"&&a(null,q),q},zt}var ye;function _n(){if(ye)return et;ye=1;const o=nn(),r=Cn(),i=bn(),e=En();function t(n,s,a,u,f){const d=[].slice.call(arguments,1),y=d.length,m=typeof d[y-1]=="function";if(!m&&!o())throw new Error("Callback required as last argument");if(m){if(y<2)throw new Error("Too few arguments provided");y===2?(f=a,a=s,s=u=void 0):y===3&&(s.getContext&&typeof f>"u"?(f=u,u=void 0):(f=u,u=a,a=s,s=void 0))}else{if(y<1)throw new Error("Too few arguments provided");return y===1?(a=s,s=u=void 0):y===2&&!s.getContext&&(u=a,a=s,s=void 0),new Promise(function(g,T){try{const v=r.create(a,u);g(n(v,s,u))}catch(v){T(v)}})}try{const g=r.create(a,u);f(null,n(g,s,u))}catch(g){f(g)}}return et.create=r.create,et.toCanvas=t.bind(null,i.render),et.toDataURL=t.bind(null,i.renderToDataURL),et.toString=t.bind(null,function(n,s,a){return e.render(n,a)}),et}var Bn=_n();const In=Ae(Bn);async function Sn(o,r){const i={width:280,margin:2,color:{dark:"#000000",light:"#ffffff"}};return In.toDataURL(o,{...i,...r})}const Rn={class:"qr-login"},Tn={class:"qr-box"},An={key:0,class:"qr-state"},Mn={key:1,class:"qr-state"},Pn=["src"],Nn=["src"],kn={key:2,class:"qrcode-placeholder"},Ln={class:"muted"},qn={key:2,class:"qr-state"},Un={key:3,class:"qr-state"},Dn={key:4,class:"qr-state"},zn={class:"bad-text"},Fn={key:0,class:"actions"},On=be({__name:"QrLogin",emits:["loginSuccess","loginError"],setup(o,{emit:r}){const i=r,e=Me(),t=z(""),n=z(""),s=z(""),a=z("loading"),u=z(0),f=z(""),d=z(!1);let y=null,m=null;function g(){y&&clearInterval(y),m&&clearInterval(m),y=null,m=null}function T(){y=Ft(async()=>{try{const l=await Qe(s.value);if(l.expiresIn!==void 0&&(u.value=l.expiresIn),l.status==="scanned"){a.value="scanned";return}if(l.status==="bind_phone"){g(),V.info(l.message||"检测到新用户,请先绑定手机号"),await e.replace(`/bind-phone?token=${s.value}`);return}if(l.status==="expired"){a.value="expired",g();return}l.status==="confirmed"&&(g(),i("loginSuccess",l))}catch{}},2e3),m=Ft(()=>{u.value=Math.max(0,u.value-1),u.value<=0&&(a.value="expired",g())},1e3)}function v(l){const c=Math.floor(l/60),k=Math.max(0,l%60);return`${c}:${String(k).padStart(2,"0")}`}function q(l){if(l instanceof Error)return l.message;if(typeof l=="string")return l;if(typeof l=="object"&&l&&"message"in l){const c=l.message;if(typeof c=="string")return c}try{return String(l)}catch{return""}}async function I(){g(),a.value="loading",f.value="",t.value="";try{const l=await je();if(s.value=l.token,u.value=l.expiresIn||300,l.miniprogramQrCode){n.value=l.miniprogramQrCode,console.info("使用小程序码(Base64,长度: {})",n.value.length),a.value="active",T();return}n.value="",console.warn("后端未返回小程序码,降级到普通二维码");let c="";l.wechatScanUrl?(c=l.wechatScanUrl,console.info("使用微信扫码URL:",c)):l.qrCodeContent&&l.qrCodeContent.startsWith("http")?(c=l.qrCodeContent,console.info("使用 qrCodeContent:",c)):(c=`${window.location.origin}/wx-scan?token=${l.token}`,console.info("使用降级扫码URL:",c));try{t.value=await Sn(c,{width:280,margin:2,color:{dark:"#000000",light:"#ffffff"}})}catch(k){throw console.error("生成二维码失败:",k),new Error("生成二维码失败,请刷新重试")}a.value="active",T()}catch(l){a.value="error",f.value=q(l)||"生成二维码失败",V.error(f.value),i("loginError",f.value)}}async function A(){d.value=!0;try{await I()}finally{d.value=!1}}return Ee(()=>{I()}),_e(()=>{g()}),(l,c)=>{const k=j("a-spin"),h=j("a-button");return F(),O("div",Rn,[P("div",Tn,[a.value==="loading"?(F(),O("div",An,[N(k,{size:"large"}),c[0]||(c[0]=P("p",{class:"muted"},"正在生成二维码…",-1))])):a.value==="active"?(F(),O("div",Mn,[n.value?(F(),O("img",{key:0,src:n.value,class:"qrcode-img",alt:"小程序码登录",onClick:A},null,8,Pn)):t.value?(F(),O("img",{key:1,src:t.value,class:"qrcode-img",alt:"扫码登录",onClick:A},null,8,Nn)):(F(),O("div",kn,[N(k,{size:"large"})])),c[1]||(c[1]=P("p",{class:"tip"},"请使用微信扫一扫,扫码后自动登录",-1)),P("p",Ln,"有效期:"+U(v(u.value)),1)])):a.value==="scanned"?(F(),O("div",qn,[N(Y(Pe),{class:"icon ok"}),c[2]||(c[2]=P("p",{class:"ok-text"},"已识别扫码,请在手机上确认登录",-1))])):a.value==="expired"?(F(),O("div",Un,[N(Y(Ne),{class:"icon bad"}),c[4]||(c[4]=P("p",{class:"bad-text"},"二维码已过期",-1)),N(h,{type:"primary",onClick:A},{default:D(()=>[...c[3]||(c[3]=[H("刷新二维码",-1)])]),_:1})])):a.value==="error"?(F(),O("div",Dn,[N(Y(ke),{class:"icon bad"}),P("p",zn,U(f.value||"生成二维码失败"),1),N(h,{type:"primary",onClick:A},{default:D(()=>[...c[5]||(c[5]=[H("重新生成",-1)])]),_:1})])):Vt("",!0)]),a.value==="active"?(F(),O("div",Fn,[N(h,{type:"link",loading:d.value,onClick:A},{default:D(()=>[N(Y(Le)),c[6]||(c[6]=H(" 刷新二维码 ",-1))]),_:1},8,["loading"])])):Vt("",!0)])}}}),Vn=Object.assign(Be(On,[["__scopeId","data-v-63bcae9c"]]),{__name:"QrLogin"});function Hn(o,r){return Ye({url:"/api/app/product/field/config",method:"get",params:{tenantId:o,code:r}})}const jn={class:"login-page"},Qn={class:"left-content"},xn={class:"left-footer"},Jn={class:"login-right"},Kn={class:"form-wrapper"},Yn={class:"mobile-brand"},Gn=["src"],Wn={class:"mobile-brand-name"},Xn={class:"login-tabs"},Zn={class:"captcha-row"},$n=["disabled"],tr={key:0},er={key:1},nr={class:"agreement-row"},rr={class:"agreement-text"},or={class:"form-footer"},ir={class:"captcha-row modal-captcha"},sr=["src"],ar="https://oss.wsdns.cn/20240822/0252ad4ed46449cdafe12f8d3d96c2ea.svg",ur=be({__name:"login",setup(o){const r=qe(),i=z(),e=z(!1),t=z("scan"),n=z(""),s=z(""),a=z(!1),u=z(""),f=z(!1),d=z(0);let y=null;const m=z(!1),g=z([]),T=z(),v=Ht({phone:"",smsCode:"",remember:!0,agreement:!1}),I=Ht({phone:[{required:!0,message:"请输入手机号码",type:"string"},{pattern:/^1[3-9]\d{9}$/,message:"手机号格式不正确",trigger:"blur"}],smsCode:[{required:!0,message:"请输入短信验证码",type:"string"}]}),A=Ue(()=>{const R=i.value?.loginBgImg;return R?{backgroundImage:`url(${R})`}:{}});function l(R){t.value=R}function c(){t.value=t.value==="scan"?"sms":"scan"}function k(){y&&clearInterval(y),y=null,d.value=0}async function h(){try{const R=await xe();n.value=R.base64,s.value=R.text}catch(R){V.error(R instanceof Error?R.message:"登录失败")}}function B(){if(!v.phone)return V.error("请输入手机号码");u.value="",h(),a.value=!0}async function b(){if(!u.value)return V.error("请输入图形验证码");if(s.value&&u.value.toLowerCase()!==s.value.toLowerCase())return V.error("图形验证码不正确");f.value=!0;try{await Je({phone:v.phone}),V.success("短信验证码发送成功,请注意查收"),a.value=!1,d.value=30,k(),d.value=30,y=Ft(()=>{d.value-=1,d.value<=0&&k()},1e3)}catch(R){V.error(R instanceof Error?R.message:"发送失败")}finally{f.value=!1}}async function p(){const R=typeof r.query.from=="string"?r.query.from:"";await He(R||"/")}function S(R){const w=typeof R=="number"?R:Number(R);Number.isFinite(w)&&w>0&&localStorage.setItem("UserId",String(w))}async function C(R){S(R);try{if(localStorage.getItem("UserId"))return}catch{}try{const w=await We();S(w.userId)}catch{}}async function E(){if(T.value){if(!v.agreement)return V.error("请先阅读并同意《注册协议》和《隐私政策》");e.value=!0;try{await T.value.validate();const R=await Ke({phone:v.phone,code:String(v.smsCode||"").toLowerCase(),tenantId:v.tenantId,remember:!!v.remember});if(R==="请选择登录用户"){m.value=!0,g.value=await Ge({phone:v.phone,templateId:Number(Ve)});return}V.success(R||"登录成功"),await C(),await p()}catch(R){V.error(R instanceof Error?R.message:"登录失败")}finally{e.value=!1}}}async function _(R){v.tenantId=R.tenantId,m.value=!1,await E()}async function M(R){const w=R.accessToken||R.access_token;w&&Xe(String(w),!0),R.tenantId&&localStorage.setItem("TenantId",String(R.tenantId));const G=typeof R.userInfo=="object"&&R.userInfo&&"userId"in R.userInfo?R.userInfo.userId:void 0;await C(G),V.success("扫码登录成功"),await p()}function J(R){V.error(R||"扫码登录失败")}return Ee(async()=>{try{i.value=await Hn({lang:"zh-CN"})}catch{}h(),typeof r.query.loginPhone=="string"&&(v.phone=r.query.loginPhone,t.value="sms")}),_e(()=>{k()}),(R,w)=>{const G=j("a-input"),nt=j("a-form-item"),$=Fe,tt=j("a-checkbox"),rt=j("a-button"),ot=j("a-form"),at=j("a-modal"),it=j("a-avatar"),ut=j("a-list-item-meta"),Q=j("a-list-item"),x=j("a-list");return F(),O("div",jn,[P("div",{class:"login-left",style:De(A.value)},[w[11]||(w[11]=jt('<div class="left-overlay" data-v-48f7acdf></div><div class="left-grid" data-v-48f7acdf></div><div class="dot dot-1" data-v-48f7acdf></div><div class="dot dot-2" data-v-48f7acdf></div><div class="dot dot-3" data-v-48f7acdf></div>',5)),P("div",Qn,[w[10]||(w[10]=jt('<div class="brand" data-v-48f7acdf><div class="brand-logo-text" data-v-48f7acdf>决策咨询网</div><div class="brand-site-name" data-v-48f7acdf>GX Decision Consulting</div></div><div class="hero-text" data-v-48f7acdf><div class="hero-tag" data-v-48f7acdf>广西决策咨询中心</div><h1 class="hero-title" data-v-48f7acdf>汇聚专家智慧<br data-v-48f7acdf>服务政府决策</h1><p class="hero-desc" data-v-48f7acdf>广西决策咨询网是自治区党委政府决策咨询服务的重要平台<br data-v-48f7acdf>汇聚各领域专家学者,提供权威决策咨询服务</p><div class="hero-stats" data-v-48f7acdf><div class="stat-item" data-v-48f7acdf><span class="stat-num" data-v-48f7acdf>200+</span><span class="stat-label" data-v-48f7acdf>认证专家</span></div><div class="stat-divider" data-v-48f7acdf></div><div class="stat-item" data-v-48f7acdf><span class="stat-num" data-v-48f7acdf>500+</span><span class="stat-label" data-v-48f7acdf>会员单位</span></div><div class="stat-divider" data-v-48f7acdf></div><div class="stat-item" data-v-48f7acdf><span class="stat-num" data-v-48f7acdf>1000+</span><span class="stat-label" data-v-48f7acdf>建言献策</span></div></div></div>',2)),P("div",xn,[P("span",null,"© "+U(new Date().getFullYear())+" 广西决策咨询中心 保留所有权利",1)])])],4),P("div",Jn,[P("div",Kn,[P("div",Yn,[P("img",{src:i.value?.sysLogo||ar,class:"mobile-logo",alt:"logo"},null,8,Gn),P("span",Wn,U(i.value?.siteName||"广西决策咨询网"),1)]),w[19]||(w[19]=P("div",{class:"form-header"},[P("h2",{class:"form-title"},U("欢迎回来")),P("p",{class:"form-subtitle"},U("请登录您的账号以继续"))],-1)),P("div",Xn,[P("button",{class:ht(["login-tab",{active:t.value==="scan"}]),onClick:w[0]||(w[0]=L=>l("scan"))},[N(Y(gt)),w[12]||(w[12]=H(" "+U("扫码登录"),-1))],2),P("button",{class:ht(["login-tab",{active:t.value==="sms"}]),onClick:w[1]||(w[1]=L=>l("sms"))},[N(Y(dt)),w[13]||(w[13]=H(" "+U("手机号登录"),-1))],2)]),N(ot,{ref_key:"formRef",ref:T,model:v,rules:I,class:"login-form"},{default:D(()=>[t.value==="sms"?(F(),O(ze,{key:0},[N(nt,{name:"phone"},{default:D(()=>[N(G,{value:v.phone,"onUpdate:value":w[2]||(w[2]=L=>v.phone=L),size:"large","allow-clear":"",maxlength:11,placeholder:"请输入手机号码",class:"form-input"},{prefix:D(()=>[...w[14]||(w[14]=[P("span",{class:"phone-prefix"},"+86",-1),P("span",{class:"phone-prefix-divider"},null,-1)])]),_:1},8,["value"])]),_:1}),N(nt,{name:"smsCode"},{default:D(()=>[P("div",Zn,[N(G,{value:v.smsCode,"onUpdate:value":w[3]||(w[3]=L=>v.smsCode=L),size:"large","allow-clear":"",maxlength:6,placeholder:"请输入验证码",class:"form-input",onPressEnter:E},null,8,["value"]),P("button",{class:ht(["sms-btn",{disabled:d.value>0}]),disabled:d.value>0,onClick:ct(B,["prevent"])},[d.value<=0?(F(),O("span",tr,U("发送验证码"))):(F(),O("span",er,U(d.value)+U("s 后重发"),1))],10,$n)])]),_:1}),P("div",nr,[N(tt,{checked:v.agreement,"onUpdate:checked":w[6]||(w[6]=L=>v.agreement=L)},{default:D(()=>[P("span",rr,[w[17]||(w[17]=H(U("我已阅读并同意")+" ",-1)),N($,{to:"/agreement",target:"_blank",class:"agreement-link",onClick:w[4]||(w[4]=ct(()=>{},["stop"]))},{default:D(()=>[...w[15]||(w[15]=[H(U("《注册协议》"),-1)])]),_:1}),w[18]||(w[18]=H(" "+U("和")+" ",-1)),N($,{to:"/privacy",target:"_blank",class:"agreement-link",onClick:w[5]||(w[5]=ct(()=>{},["stop"]))},{default:D(()=>[...w[16]||(w[16]=[H(U("《隐私政策》"),-1)])]),_:1})])]),_:1},8,["checked"])]),N(nt,null,{default:D(()=>[N(rt,{block:"",size:"large",type:"primary",loading:e.value,class:"submit-btn",onClick:E},{default:D(()=>[H(U(e.value?"登录中…":"立即登录"),1)]),_:1},8,["loading"])]),_:1})],64)):(F(),mt(Vn,{key:1,onLoginSuccess:M,onLoginError:J}))]),_:1},8,["model","rules"]),P("div",or,[P("button",{class:"switch-scan-btn",onClick:c},[t.value!=="scan"?(F(),mt(Y(gt),{key:0})):(F(),mt(Y(dt),{key:1})),H(" "+U(t.value==="scan"?"切换到手机号登录":"切换到扫码登录"),1)])])])]),N(at,{open:a.value,"onUpdate:open":w[8]||(w[8]=L=>a.value=L),width:360,footer:null,title:"安全验证"},{default:D(()=>[w[21]||(w[21]=P("p",{class:"modal-tip"},U("请先完成图形验证码验证"),-1)),P("div",ir,[N(G,{value:u.value,"onUpdate:value":w[7]||(w[7]=L=>u.value=L),size:"large","allow-clear":"",maxlength:5,placeholder:"请输入图形验证码",onPressEnter:b},null,8,["value"]),P("button",{class:"captcha-img-btn",onClick:ct(h,["prevent"]),title:"点击刷新"},[P("img",{alt:"captcha",src:n.value},null,8,sr)])]),N(rt,{block:"",size:"large",type:"primary",loading:f.value,class:"submit-btn",onClick:b},{default:D(()=>[...w[20]||(w[20]=[H(U("发送验证码"),-1)])]),_:1},8,["loading"])]),_:1},8,["open"]),N(at,{open:m.value,"onUpdate:open":w[9]||(w[9]=L=>m.value=L),width:520,footer:null,title:"选择账号登录"},{default:D(()=>[N(x,{"item-layout":"horizontal","data-source":g.value},{renderItem:D(({item:L})=>[N(Q,{class:"list-item",onClick:lt=>_(L)},{actions:D(()=>[N(Y(Oe))]),default:D(()=>[N(ut,{description:`租户ID: ${L.tenantId}`},{title:D(()=>[H(U(L.tenantName||L.username),1)]),avatar:D(()=>[N(it,{src:L.avatar},null,8,["src"])]),_:2},1032,["description"])]),_:2},1032,["onClick"])]),_:1},8,["data-source"])]),_:1},8,["open"])])}}}),mr=Be(ur,[["__scopeId","data-v-48f7acdf"]]);export{mr as default};
|