| | |
| | | targetSdkVersion 32 |
| | | //建议此属性值设为21 io.dcloud.PandoraEntry 作为apk入口时 必须设置 targetSDKVersion>=21 沉浸式才生效 |
| | | |
| | | versionCode 2 |
| | | versionName "1.1.1" |
| | | versionCode 1 |
| | | versionName "1.1.0" |
| | | multiDexEnabled true |
| | | compileOptions { |
| | | sourceCompatibility JavaVersion.VERSION_1_8 |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <manifest xmlns:android="http://schemas.android.com/apk/res/android"> |
| | | <manifest xmlns:tools="http://schemas.android.com/tools" |
| | | xmlns:android="http://schemas.android.com/apk/res/android"> |
| | | |
| | | <supports-screens |
| | | android:anyDensity="true" |
| | |
| | | <uses-permission android:name="android.permission.BLUETOOTH" /> |
| | | <uses-permission android:name="android.permission.CAMERA" /> |
| | | <uses-permission android:name="android.permission.READ_PHONE_STATE" /> |
| | | <uses-permission android:name="android.permission.INSTALL_PACKAGES" |
| | | tools:ignore="ProtectedPermissions" /> |
| | | <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" |
| | | tools:ignore="RequestInstallPackagesPolicy" /> |
| | | <uses-feature android:name="android.hardware.Camera"/> |
| | | <uses-feature android:name="android.hardware.camera.autofocus" /> |
| | | |
| | |
| | | if("undefined"==typeof Promise||Promise.prototype.finally||(Promise.prototype.finally=function(e){const t=this.constructor;return this.then((a=>t.resolve(e()).then((()=>a))),(a=>t.resolve(e()).then((()=>{throw a}))))}),"undefined"!=typeof uni&&uni&&uni.requireGlobal){const e=uni.requireGlobal();ArrayBuffer=e.ArrayBuffer,Int8Array=e.Int8Array,Uint8Array=e.Uint8Array,Uint8ClampedArray=e.Uint8ClampedArray,Int16Array=e.Int16Array,Uint16Array=e.Uint16Array,Int32Array=e.Int32Array,Uint32Array=e.Uint32Array,Float32Array=e.Float32Array,Float64Array=e.Float64Array,BigInt64Array=e.BigInt64Array,BigUint64Array=e.BigUint64Array}uni.restoreGlobal&&uni.restoreGlobal(Vue,weex,plus,setTimeout,clearTimeout,setInterval,clearInterval),function(e){"use strict";function t(e){return weex.requireModule(e)}function a(e,t,...a){uni.__log__?uni.__log__(e,t,...a):console[e].apply(console,[...a,t])}const n=(t,a=0)=>(a,n=e.getCurrentInstance())=>{!e.isInSSRComponentSetup&&e.injectHook(t,a,n)},r=n("onShow",3),i=n("onHide",3),o=n("onLoad",2),s="device_ip",l="device_port",c=(e="")=>String(e).trim().replace(/^https?:\/\//,""),d=(e="")=>String(e).trim(),u=({ip:e,port:t})=>{const a=c(e),n=d(t);return a&&n?`http://${a}:${n}`:""},m=()=>({ip:c(uni.getStorageSync(s)||""),port:d(uni.getStorageSync(l)||"")}),p=({ip:e,port:t})=>{uni.setStorageSync(s,c(e)),uni.setStorageSync(l,d(t))},v=()=>{uni.removeStorageSync(s),uni.removeStorageSync(l)},g=()=>({deviceId:String(uni.getStorageSync("device_id")||"").trim(),deviceFingerprint:String(uni.getStorageSync("device_fingerprint")||"").trim()}),f=()=>{const{deviceId:e,deviceFingerprint:t}=g();return Boolean((()=>{const{ip:e,port:t}=m();return Boolean(e&&t)})()&&e&&t)},h=({url:e,method:t="GET",data:n={},header:r={},timeout:i=3e4,baseURL:o="",responseType:s="text"})=>new Promise(((l,c)=>{let d="";try{d=((e,t)=>{if(!e)throw new Error("请求的 URL 不能为空");if(/^https?:\/\//.test(e))return e;const a=t||u(m());if(!a)throw new Error("未配置服务地址,请先完成设备激活");const n=String(e);return`${a}${n.startsWith("/")?n:`/${n}`}`})(e,o)}catch(p){return void c({message:(null==p?void 0:p.message)||"请求地址解析失败"})}uni.request({url:d,method:t,data:n,header:r,timeout:i,responseType:s,success:e=>{const{statusCode:t,data:n}=e;if(a("log","at utils/request.js:121","请求成功:",e),t>=200&&t<300)return(e=>!(e&&"object"==typeof e&&!Array.isArray(e)&&Object.prototype.hasOwnProperty.call(e,"code")&&200!==Number(e.code)))(n)?void l(n):void c(n);c({...e,message:(null==n?void 0:n.message)||`请求失败,状态码:${t}`})},fail:e=>{c({...e,message:(null==e?void 0:e.errMsg)||"网络请求失败"})}})})),y=(e,t)=>{const a=e.__vccOpts||e;for(const[n,r]of t)a[n]=r;return a},w=y({__name:"index",setup:t=>(e.onMounted((()=>{uni.showLoading({title:"加载中...",mask:!0}),setTimeout((()=>{uni.hideLoading(),f()?uni.reLaunch({url:"/pages/home/index"}):uni.reLaunch({url:"/pages/device-init/index"})}),100)})),(t,a)=>(e.openBlock(),e.createElementBlock("view",{class:"splash-container"})))},[["__scopeId","data-v-09a9e844"]]);let E=null;"undefined"!=typeof uni&&(E=t("business-module"));let N=null,x=null;Promise.resolve();let V=0;const _=(e=[])=>E&&e.find((e=>"function"==typeof E[e]))||null,b={init:(e={})=>x?Promise.resolve(x):N||(N=new Promise(((t,n)=>{if(E){let a=!1,i=null;const o=(e,r=!1)=>{if(!a){if(a=!0,i&&(clearTimeout(i),i=null),r)return N=null,void n(e);x=e,t(e)}};try{E.init(e,(e=>{e&&o(e)})),i=setTimeout((()=>{o({code:200,msg:"init_called_without_callback"})}),300)}catch(r){N=null,n(r)}}else a("warn","at utils/visitorDevice.js:143","未找到硬件原生插件 business-module"),N=null,n(new Error("Plugin not found"))})),N),startReadCard(e){E&&E.startReadCard({},(t=>{const n=JSON.parse(t||"{}");if(n&&n.licId){e(n)}else a("error","at utils/visitorDevice.js:182","读卡失败或状态更新:",n)}))},stopReadCard:()=>new Promise((e=>{E?(E.stopReadCard({}),e()):e()})),startScan(e){E&&E.startScan({duration:2e3},(t=>{t?e(t):a("error","at utils/visitorDevice.js:233","扫码失败或状态更新:",t)}))},stopScan:()=>new Promise((e=>{E?(E.stopScan({}),e()):e()})),startFaceVerify(e={},t,n){const r=(null==e?void 0:e.face)||"",i=(null==e?void 0:e.photo)||"",o=_(["startRecognition"]);o?E[o]({face:r,photo:i},(e=>{e&&0===e.code?null==t||t(e):n?n({...e,message:(null==e?void 0:e.response)||(null==e?void 0:e.msg)||(null==e?void 0:e.message)||"人脸识别失败"}):a("error","at utils/visitorDevice.js:301","人证比对失败或状态更新:",e)})):n&&n({message:"当前插件未提供人脸识别能力"})},startJudgeFace(e={},t,a){const n=(null==e?void 0:e.face)||"",r=_(["startJudgeFace"]);r?E[r]({face:n},(e=>{e&&0===Number(e.code)?null==t||t(e):null==a||a({...e,message:(null==e?void 0:e.response)||(null==e?void 0:e.msg)||(null==e?void 0:e.message)||"未检测到人脸"})})):null==a||a({message:"当前插件未提供人脸检测能力"})},stopJudgeFace:()=>new Promise((e=>{const t=_(["stopJudgeFace"]);if(t)return E[t]({}),void e();e()})),stopFaceVerify:()=>new Promise((e=>{const t=_(["stopRecognition"]);if(t)return E[t]({}),void e();e()})),offlineActivateDevice:(e={})=>new Promise(((t,a)=>{const n=_(["offlineActivateDevice"]);n?E[n](e,(e=>{e&&0===e.code?t(e):a(new Error((null==e?void 0:e.response)||(null==e?void 0:e.msg)||(null==e?void 0:e.message)||"离线激活失败"))})):a(new Error("当前插件未提供离线激活能力"))})),onlineActivateDevice:(e={})=>new Promise(((t,a)=>{const n=_(["onlineActivateDevice"]);n?E[n](e,(e=>{e&&0===e.code?t(e.data||e):a(new Error((null==e?void 0:e.response)||(null==e?void 0:e.msg)||(null==e?void 0:e.message)||"在线激活失败"))})):a(new Error("当前插件未提供在线激活能力"))})),getDeviceFingerprint:(e={})=>new Promise(((t,a)=>{const n=_(["getDeviceFingerprint"]);n?E[n](e,(e=>{if(e){const a=e||"";if(a)return void t(String(a))}a(new Error("百度SDK指纹获取失败"))})):a(new Error("百度SDK指纹获取失败"))})),startPrint:e=>new Promise(((t,a)=>{const n=_(["startPrint"]);n?E[n]({options:e},(e=>{e&&2===e.code&&(()=>{const e=Date.now();e-V<1e4||(V=e,uni.$emit("Hardware-PrintOutOfPaper",{code:2,message:"打印机缺纸,请联系管理员"}))})(),e&&0===e.code?t(e):a(e)})):a(new Error("未找到打印方法 startPrint"))}))},k=y({__name:"index",setup(t){const n=e.reactive([{label:"设备ID:",placeholder:"请输入",value:"",readonly:!1},{label:"IP地址:",placeholder:"请输入",value:"",readonly:!1},{label:"端口号:",placeholder:"请输入",value:"",readonly:!1}]),r=e.ref(!1),i=e.ref("");o((()=>{const{ip:e,port:t}=m(),{deviceId:a,deviceFingerprint:r}=g();n[1].value=e,n[2].value=t,f()&&(n[0].value=a||"",i.value=r||"",uni.redirectTo({url:"/pages/home/index"}))})),e.onMounted((()=>{(async()=>{try{i.value=await b.getDeviceFingerprint()}catch(e){i.value="",a("error","at pages/device-init/index.vue:28","百度SDK指纹获取失败:",e)}})()}));const s=()=>{n[0].value="",n[1].value="",n[2].value=""},l=async()=>{if(r.value)return;const e=n[0].value.trim(),t=n[1].value.trim(),o=n[2].value.trim(),s=m();if(e)if(t)if(o)if(i.value)try{r.value=!0,uni.showLoading({title:"激活中...",mask:!0}),p({ip:t,port:o}),await(({machineId:e,fingerprint:t})=>h({url:"/api/visitmachine/activate",method:"POST",data:{machineId:e,fingerprint:t}}))({machineId:e,fingerprint:i.value}),await b.offlineActivateDevice({code:i.value}),uni.setStorageSync("device_id",e),uni.setStorageSync("device_fingerprint",i.value),uni.hideLoading(),setTimeout((()=>{uni.redirectTo({url:"/pages/home/index"})}),300)}catch(l){a("error","at pages/device-init/index.vue:141","设备激活失败:",l),uni.hideLoading(),s.ip&&s.port?p(s):v(),uni.showToast({title:(null==l?void 0:l.msg)||"激活失败,请检查网络或服务地址",icon:"none"})}finally{uni.hideLoading(),r.value=!1}else uni.showToast({title:"百度SDK指纹获取失败",icon:"none"});else uni.showToast({title:"请输入端口号",icon:"none"});else uni.showToast({title:"请输入IP地址",icon:"none"});else uni.showToast({title:"请输入设备ID",icon:"none"})};return(t,a)=>(e.openBlock(),e.createElementBlock("view",{class:"page"},[e.createElementVNode("view",{class:"overlay"}),e.createElementVNode("view",{class:"dialog"},[e.createElementVNode("text",{class:"title"},"设备激活"),e.createElementVNode("view",{class:"form-block"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n,(t=>(e.openBlock(),e.createElementBlock("view",{key:t.label,class:"form-row"},[e.createElementVNode("text",{class:"form-label"},e.toDisplayString(t.label),1),e.createElementVNode("view",{class:e.normalizeClass(["form-input",{readonly:t.readonly}])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":e=>t.value=e,class:"input-field",placeholder:t.placeholder,"placeholder-class":"placeholder",disabled:t.readonly},null,8,["onUpdate:modelValue","placeholder","disabled"]),[[e.vModelText,t.value]])],2)])))),128))]),e.createElementVNode("view",{class:"button-row"},[e.createElementVNode("view",{class:"btn btn-reset",onClick:s},[e.createElementVNode("text",{class:"btn-reset-text"},"重置")]),e.createElementVNode("view",{class:"btn btn-primary",onClick:l},[e.createElementVNode("text",{class:"btn-primary-text"},e.toDisplayString(r.value?"激活中...":"激活"),1)])])])]))}},[["__scopeId","data-v-17f3419f"]]),S="visitor_offline_db",B="_doc/visitor.db",C=e=>new Promise(((t,n)=>{plus.sqlite.executeSql({name:S,sql:e,success:e=>t(e),fail:t=>{a("error","at utils/db.js:34","[DB] SQL执行失败:",e,t),n(t)}})})),D=e=>new Promise(((t,n)=>{plus.sqlite.selectSql({name:S,sql:e,success:e=>t(e),fail:t=>{a("error","at utils/db.js:53","[DB] SQL查询失败:",e,t),n(t)}})})),A=async()=>{var e;const t=await D("SELECT COUNT(1) AS total FROM offline_records WHERE sync_status = 0");return Number((null==(e=null==t?void 0:t[0])?void 0:e.total)||0)},T=async e=>{const t=`UPDATE offline_records SET sync_status = 1 WHERE id = '${e}'`;await C([t])},I=async(e,t)=>{const a=Date.now(),n=`REPLACE INTO offline_config (key, value, update_time) VALUES ('${e}', '${JSON.stringify(t).replace(/'/g,"''")}', ${a})`;await C([n])},F=async e=>{const{value:t}=await(async e=>{const t=`SELECT value, update_time FROM offline_config WHERE key = '${e}'`,n=await D(t);if(n&&n.length>0)try{return{value:JSON.parse(n[0].value),updateTime:Number(n[0].update_time||0)}}catch(r){a("error","at utils/db.js:422","[DB] 解析离线配置失败:",r)}return{value:null,updateTime:0}})(e);return t};var P="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function R(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function L(e){if(e.__esModule)return e;var t=e.default;if("function"==typeof t){var a=function e(){return this instanceof e?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};a.prototype=t.prototype}else a={};return Object.defineProperty(a,"__esModule",{value:!0}),Object.keys(e).forEach((function(t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(a,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})})),a}var z={exports:{}},M=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,62,0,62,0,63,52,53,54,55,56,57,58,59,60,61,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,0,0,0,63,0,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51];const O={getRandomValues(e){if(!(e instanceof Int8Array||e instanceof Uint8Array||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Uint8ClampedArray))throw new Error("Expected an integer array");if(e.byteLength>65536)throw new Error("Can only request a maximum of 65536 bytes");return function(e,t){for(var a,n=e.length,r="="===e[n-2]?2:"="===e[n-1]?1:0,i=0,o=n-r&4294967292,s=0;s<o;s+=4)a=M[e.charCodeAt(s)]<<18|M[e.charCodeAt(s+1)]<<12|M[e.charCodeAt(s+2)]<<6|M[e.charCodeAt(s+3)],t[i++]=a>>16&255,t[i++]=a>>8&255,t[i++]=255&a;1===r&&(a=M[e.charCodeAt(s)]<<10|M[e.charCodeAt(s+1)]<<4|M[e.charCodeAt(s+2)]>>2,t[i++]=a>>8&255,t[i++]=255&a),2===r&&(a=M[e.charCodeAt(s)]<<2|M[e.charCodeAt(s+1)]>>4,t[i++]=255&a)}(t("DCloud-Crypto").getRandomValues(e.byteLength),new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),e}};var H={exports:{}};const U=L(Object.freeze(Object.defineProperty({__proto__:null,default:{}},Symbol.toStringTag,{value:"Module"})));var $;function j(){return $||($=1,H.exports=(e=e||function(e,t){var a;if("undefined"!=typeof window&&O&&(a=O),"undefined"!=typeof self&&self.crypto&&(a=self.crypto),"undefined"!=typeof globalThis&&globalThis.crypto&&(a=globalThis.crypto),!a&&"undefined"!=typeof window&&window.msCrypto&&(a=window.msCrypto),!a&&void 0!==P&&P.crypto&&(a=P.crypto),!a)try{a=U}catch(g){}var n=function(){if(a){if("function"==typeof a.getRandomValues)try{return a.getRandomValues(new Uint32Array(1))[0]}catch(g){}if("function"==typeof a.randomBytes)try{return a.randomBytes(4).readInt32LE()}catch(g){}}throw new Error("Native crypto module could not be used to get secure random number.")},r=Object.create||function(){function e(){}return function(t){var a;return e.prototype=t,a=new e,e.prototype=null,a}}(),i={},o=i.lib={},s=o.Base=function(){return{extend:function(e){var t=r(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),l=o.WordArray=s.extend({init:function(e,a){e=this.words=e||[],this.sigBytes=a!=t?a:4*e.length},toString:function(e){return(e||d).stringify(this)},concat:function(e){var t=this.words,a=e.words,n=this.sigBytes,r=e.sigBytes;if(this.clamp(),n%4)for(var i=0;i<r;i++){var o=a[i>>>2]>>>24-i%4*8&255;t[n+i>>>2]|=o<<24-(n+i)%4*8}else for(var s=0;s<r;s+=4)t[n+s>>>2]=a[s>>>2];return this.sigBytes+=r,this},clamp:function(){var t=this.words,a=this.sigBytes;t[a>>>2]&=4294967295<<32-a%4*8,t.length=e.ceil(a/4)},clone:function(){var e=s.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],a=0;a<e;a+=4)t.push(n());return new l.init(t,e)}}),c=i.enc={},d=c.Hex={stringify:function(e){for(var t=e.words,a=e.sigBytes,n=[],r=0;r<a;r++){var i=t[r>>>2]>>>24-r%4*8&255;n.push((i>>>4).toString(16)),n.push((15&i).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,a=[],n=0;n<t;n+=2)a[n>>>3]|=parseInt(e.substr(n,2),16)<<24-n%8*4;return new l.init(a,t/2)}},u=c.Latin1={stringify:function(e){for(var t=e.words,a=e.sigBytes,n=[],r=0;r<a;r++){var i=t[r>>>2]>>>24-r%4*8&255;n.push(String.fromCharCode(i))}return n.join("")},parse:function(e){for(var t=e.length,a=[],n=0;n<t;n++)a[n>>>2]|=(255&e.charCodeAt(n))<<24-n%4*8;return new l.init(a,t)}},m=c.Utf8={stringify:function(e){try{return decodeURIComponent(escape(u.stringify(e)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(e){return u.parse(unescape(encodeURIComponent(e)))}},p=o.BufferedBlockAlgorithm=s.extend({reset:function(){this._data=new l.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=m.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var a,n=this._data,r=n.words,i=n.sigBytes,o=this.blockSize,s=i/(4*o),c=(s=t?e.ceil(s):e.max((0|s)-this._minBufferSize,0))*o,d=e.min(4*c,i);if(c){for(var u=0;u<c;u+=o)this._doProcessBlock(r,u);a=r.splice(0,c),n.sigBytes-=d}return new l.init(a,d)},clone:function(){var e=s.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});o.Hasher=p.extend({cfg:s.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){p.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(t,a){return new e.init(a).finalize(t)}},_createHmacHelper:function(e){return function(t,a){return new v.HMAC.init(e,a).finalize(t)}}});var v=i.algo={};return i}(Math),e)),H.exports;var e}var W,K={exports:{}};function X(){return W||(W=1,K.exports=(o=j(),a=(t=o).lib,n=a.Base,r=a.WordArray,(i=t.x64={}).Word=n.extend({init:function(e,t){this.high=e,this.low=t}}),i.WordArray=n.extend({init:function(t,a){t=this.words=t||[],this.sigBytes=a!=e?a:8*t.length},toX32:function(){for(var e=this.words,t=e.length,a=[],n=0;n<t;n++){var i=e[n];a.push(i.high),a.push(i.low)}return r.create(a,this.sigBytes)},clone:function(){for(var e=n.clone.call(this),t=e.words=this.words.slice(0),a=t.length,r=0;r<a;r++)t[r]=t[r].clone();return e}}),o)),K.exports;var e,t,a,n,r,i,o}var G,q={exports:{}};function Z(){return G||(G=1,q.exports=(e=j(),function(){if("function"==typeof ArrayBuffer){var t=e.lib.WordArray,a=t.init,n=t.init=function(e){if(e instanceof ArrayBuffer&&(e=new Uint8Array(e)),(e instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array)&&(e=new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),e instanceof Uint8Array){for(var t=e.byteLength,n=[],r=0;r<t;r++)n[r>>>2]|=e[r]<<24-r%4*8;a.call(this,n,t)}else a.apply(this,arguments)};n.prototype=t}}(),e.lib.WordArray)),q.exports;var e}var Y,J={exports:{}};function Q(){return Y||(Y=1,J.exports=(e=j(),function(){var t=e,a=t.lib.WordArray,n=t.enc;function r(e){return e<<8&4278255360|e>>>8&16711935}n.Utf16=n.Utf16BE={stringify:function(e){for(var t=e.words,a=e.sigBytes,n=[],r=0;r<a;r+=2){var i=t[r>>>2]>>>16-r%4*8&65535;n.push(String.fromCharCode(i))}return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r++)n[r>>>1]|=e.charCodeAt(r)<<16-r%2*16;return a.create(n,2*t)}},n.Utf16LE={stringify:function(e){for(var t=e.words,a=e.sigBytes,n=[],i=0;i<a;i+=2){var o=r(t[i>>>2]>>>16-i%4*8&65535);n.push(String.fromCharCode(o))}return n.join("")},parse:function(e){for(var t=e.length,n=[],i=0;i<t;i++)n[i>>>1]|=r(e.charCodeAt(i)<<16-i%2*16);return a.create(n,2*t)}}}(),e.enc.Utf16)),J.exports;var e}var ee,te={exports:{}};function ae(){return ee||(ee=1,te.exports=(e=j(),function(){var t=e,a=t.lib.WordArray;function n(e,t,n){for(var r=[],i=0,o=0;o<t;o++)if(o%4){var s=n[e.charCodeAt(o-1)]<<o%4*2|n[e.charCodeAt(o)]>>>6-o%4*2;r[i>>>2]|=s<<24-i%4*8,i++}return a.create(r,i)}t.enc.Base64={stringify:function(e){var t=e.words,a=e.sigBytes,n=this._map;e.clamp();for(var r=[],i=0;i<a;i+=3)for(var o=(t[i>>>2]>>>24-i%4*8&255)<<16|(t[i+1>>>2]>>>24-(i+1)%4*8&255)<<8|t[i+2>>>2]>>>24-(i+2)%4*8&255,s=0;s<4&&i+.75*s<a;s++)r.push(n.charAt(o>>>6*(3-s)&63));var l=n.charAt(64);if(l)for(;r.length%4;)r.push(l);return r.join("")},parse:function(e){var t=e.length,a=this._map,r=this._reverseMap;if(!r){r=this._reverseMap=[];for(var i=0;i<a.length;i++)r[a.charCodeAt(i)]=i}var o=a.charAt(64);if(o){var s=e.indexOf(o);-1!==s&&(t=s)}return n(e,t,r)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),e.enc.Base64)),te.exports;var e}var ne,re={exports:{}};function ie(){return ne||(ne=1,re.exports=(e=j(),function(){var t=e,a=t.lib.WordArray;function n(e,t,n){for(var r=[],i=0,o=0;o<t;o++)if(o%4){var s=n[e.charCodeAt(o-1)]<<o%4*2|n[e.charCodeAt(o)]>>>6-o%4*2;r[i>>>2]|=s<<24-i%4*8,i++}return a.create(r,i)}t.enc.Base64url={stringify:function(e,t){void 0===t&&(t=!0);var a=e.words,n=e.sigBytes,r=t?this._safe_map:this._map;e.clamp();for(var i=[],o=0;o<n;o+=3)for(var s=(a[o>>>2]>>>24-o%4*8&255)<<16|(a[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|a[o+2>>>2]>>>24-(o+2)%4*8&255,l=0;l<4&&o+.75*l<n;l++)i.push(r.charAt(s>>>6*(3-l)&63));var c=r.charAt(64);if(c)for(;i.length%4;)i.push(c);return i.join("")},parse:function(e,t){void 0===t&&(t=!0);var a=e.length,r=t?this._safe_map:this._map,i=this._reverseMap;if(!i){i=this._reverseMap=[];for(var o=0;o<r.length;o++)i[r.charCodeAt(o)]=o}var s=r.charAt(64);if(s){var l=e.indexOf(s);-1!==l&&(a=l)}return n(e,a,i)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_safe_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"}}(),e.enc.Base64url)),re.exports;var e}var oe,se={exports:{}};function le(){return oe||(oe=1,se.exports=(e=j(),function(t){var a=e,n=a.lib,r=n.WordArray,i=n.Hasher,o=a.algo,s=[];!function(){for(var e=0;e<64;e++)s[e]=4294967296*t.abs(t.sin(e+1))|0}();var l=o.MD5=i.extend({_doReset:function(){this._hash=new r.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,t){for(var a=0;a<16;a++){var n=t+a,r=e[n];e[n]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8)}var i=this._hash.words,o=e[t+0],l=e[t+1],p=e[t+2],v=e[t+3],g=e[t+4],f=e[t+5],h=e[t+6],y=e[t+7],w=e[t+8],E=e[t+9],N=e[t+10],x=e[t+11],V=e[t+12],_=e[t+13],b=e[t+14],k=e[t+15],S=i[0],B=i[1],C=i[2],D=i[3];S=c(S,B,C,D,o,7,s[0]),D=c(D,S,B,C,l,12,s[1]),C=c(C,D,S,B,p,17,s[2]),B=c(B,C,D,S,v,22,s[3]),S=c(S,B,C,D,g,7,s[4]),D=c(D,S,B,C,f,12,s[5]),C=c(C,D,S,B,h,17,s[6]),B=c(B,C,D,S,y,22,s[7]),S=c(S,B,C,D,w,7,s[8]),D=c(D,S,B,C,E,12,s[9]),C=c(C,D,S,B,N,17,s[10]),B=c(B,C,D,S,x,22,s[11]),S=c(S,B,C,D,V,7,s[12]),D=c(D,S,B,C,_,12,s[13]),C=c(C,D,S,B,b,17,s[14]),S=d(S,B=c(B,C,D,S,k,22,s[15]),C,D,l,5,s[16]),D=d(D,S,B,C,h,9,s[17]),C=d(C,D,S,B,x,14,s[18]),B=d(B,C,D,S,o,20,s[19]),S=d(S,B,C,D,f,5,s[20]),D=d(D,S,B,C,N,9,s[21]),C=d(C,D,S,B,k,14,s[22]),B=d(B,C,D,S,g,20,s[23]),S=d(S,B,C,D,E,5,s[24]),D=d(D,S,B,C,b,9,s[25]),C=d(C,D,S,B,v,14,s[26]),B=d(B,C,D,S,w,20,s[27]),S=d(S,B,C,D,_,5,s[28]),D=d(D,S,B,C,p,9,s[29]),C=d(C,D,S,B,y,14,s[30]),S=u(S,B=d(B,C,D,S,V,20,s[31]),C,D,f,4,s[32]),D=u(D,S,B,C,w,11,s[33]),C=u(C,D,S,B,x,16,s[34]),B=u(B,C,D,S,b,23,s[35]),S=u(S,B,C,D,l,4,s[36]),D=u(D,S,B,C,g,11,s[37]),C=u(C,D,S,B,y,16,s[38]),B=u(B,C,D,S,N,23,s[39]),S=u(S,B,C,D,_,4,s[40]),D=u(D,S,B,C,o,11,s[41]),C=u(C,D,S,B,v,16,s[42]),B=u(B,C,D,S,h,23,s[43]),S=u(S,B,C,D,E,4,s[44]),D=u(D,S,B,C,V,11,s[45]),C=u(C,D,S,B,k,16,s[46]),S=m(S,B=u(B,C,D,S,p,23,s[47]),C,D,o,6,s[48]),D=m(D,S,B,C,y,10,s[49]),C=m(C,D,S,B,b,15,s[50]),B=m(B,C,D,S,f,21,s[51]),S=m(S,B,C,D,V,6,s[52]),D=m(D,S,B,C,v,10,s[53]),C=m(C,D,S,B,N,15,s[54]),B=m(B,C,D,S,l,21,s[55]),S=m(S,B,C,D,w,6,s[56]),D=m(D,S,B,C,k,10,s[57]),C=m(C,D,S,B,h,15,s[58]),B=m(B,C,D,S,_,21,s[59]),S=m(S,B,C,D,g,6,s[60]),D=m(D,S,B,C,x,10,s[61]),C=m(C,D,S,B,p,15,s[62]),B=m(B,C,D,S,E,21,s[63]),i[0]=i[0]+S|0,i[1]=i[1]+B|0,i[2]=i[2]+C|0,i[3]=i[3]+D|0},_doFinalize:function(){var e=this._data,a=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;a[r>>>5]|=128<<24-r%32;var i=t.floor(n/4294967296),o=n;a[15+(r+64>>>9<<4)]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),a[14+(r+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),e.sigBytes=4*(a.length+1),this._process();for(var s=this._hash,l=s.words,c=0;c<4;c++){var d=l[c];l[c]=16711935&(d<<8|d>>>24)|4278255360&(d<<24|d>>>8)}return s},clone:function(){var e=i.clone.call(this);return e._hash=this._hash.clone(),e}});function c(e,t,a,n,r,i,o){var s=e+(t&a|~t&n)+r+o;return(s<<i|s>>>32-i)+t}function d(e,t,a,n,r,i,o){var s=e+(t&n|a&~n)+r+o;return(s<<i|s>>>32-i)+t}function u(e,t,a,n,r,i,o){var s=e+(t^a^n)+r+o;return(s<<i|s>>>32-i)+t}function m(e,t,a,n,r,i,o){var s=e+(a^(t|~n))+r+o;return(s<<i|s>>>32-i)+t}a.MD5=i._createHelper(l),a.HmacMD5=i._createHmacHelper(l)}(Math),e.MD5)),se.exports;var e}var ce,de={exports:{}};function ue(){return ce||(ce=1,de.exports=(s=j(),t=(e=s).lib,a=t.WordArray,n=t.Hasher,r=e.algo,i=[],o=r.SHA1=n.extend({_doReset:function(){this._hash=new a.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var a=this._hash.words,n=a[0],r=a[1],o=a[2],s=a[3],l=a[4],c=0;c<80;c++){if(c<16)i[c]=0|e[t+c];else{var d=i[c-3]^i[c-8]^i[c-14]^i[c-16];i[c]=d<<1|d>>>31}var u=(n<<5|n>>>27)+l+i[c];u+=c<20?1518500249+(r&o|~r&s):c<40?1859775393+(r^o^s):c<60?(r&o|r&s|o&s)-1894007588:(r^o^s)-899497514,l=s,s=o,o=r<<30|r>>>2,r=n,n=u}a[0]=a[0]+n|0,a[1]=a[1]+r|0,a[2]=a[2]+o|0,a[3]=a[3]+s|0,a[4]=a[4]+l|0},_doFinalize:function(){var e=this._data,t=e.words,a=8*this._nDataBytes,n=8*e.sigBytes;return t[n>>>5]|=128<<24-n%32,t[14+(n+64>>>9<<4)]=Math.floor(a/4294967296),t[15+(n+64>>>9<<4)]=a,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=n.clone.call(this);return e._hash=this._hash.clone(),e}}),e.SHA1=n._createHelper(o),e.HmacSHA1=n._createHmacHelper(o),s.SHA1)),de.exports;var e,t,a,n,r,i,o,s}var me,pe={exports:{}};function ve(){return me||(me=1,pe.exports=(e=j(),function(t){var a=e,n=a.lib,r=n.WordArray,i=n.Hasher,o=a.algo,s=[],l=[];!function(){function e(e){for(var a=t.sqrt(e),n=2;n<=a;n++)if(!(e%n))return!1;return!0}function a(e){return 4294967296*(e-(0|e))|0}for(var n=2,r=0;r<64;)e(n)&&(r<8&&(s[r]=a(t.pow(n,.5))),l[r]=a(t.pow(n,1/3)),r++),n++}();var c=[],d=o.SHA256=i.extend({_doReset:function(){this._hash=new r.init(s.slice(0))},_doProcessBlock:function(e,t){for(var a=this._hash.words,n=a[0],r=a[1],i=a[2],o=a[3],s=a[4],d=a[5],u=a[6],m=a[7],p=0;p<64;p++){if(p<16)c[p]=0|e[t+p];else{var v=c[p-15],g=(v<<25|v>>>7)^(v<<14|v>>>18)^v>>>3,f=c[p-2],h=(f<<15|f>>>17)^(f<<13|f>>>19)^f>>>10;c[p]=g+c[p-7]+h+c[p-16]}var y=n&r^n&i^r&i,w=(n<<30|n>>>2)^(n<<19|n>>>13)^(n<<10|n>>>22),E=m+((s<<26|s>>>6)^(s<<21|s>>>11)^(s<<7|s>>>25))+(s&d^~s&u)+l[p]+c[p];m=u,u=d,d=s,s=o+E|0,o=i,i=r,r=n,n=E+(w+y)|0}a[0]=a[0]+n|0,a[1]=a[1]+r|0,a[2]=a[2]+i|0,a[3]=a[3]+o|0,a[4]=a[4]+s|0,a[5]=a[5]+d|0,a[6]=a[6]+u|0,a[7]=a[7]+m|0},_doFinalize:function(){var e=this._data,a=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;return a[r>>>5]|=128<<24-r%32,a[14+(r+64>>>9<<4)]=t.floor(n/4294967296),a[15+(r+64>>>9<<4)]=n,e.sigBytes=4*a.length,this._process(),this._hash},clone:function(){var e=i.clone.call(this);return e._hash=this._hash.clone(),e}});a.SHA256=i._createHelper(d),a.HmacSHA256=i._createHmacHelper(d)}(Math),e.SHA256)),pe.exports;var e}var ge,fe={exports:{}};var he,ye={exports:{}};function we(){return he||(he=1,ye.exports=(e=j(),X(),function(){var t=e,a=t.lib.Hasher,n=t.x64,r=n.Word,i=n.WordArray,o=t.algo;function s(){return r.create.apply(r,arguments)}var l=[s(1116352408,3609767458),s(1899447441,602891725),s(3049323471,3964484399),s(3921009573,2173295548),s(961987163,4081628472),s(1508970993,3053834265),s(2453635748,2937671579),s(2870763221,3664609560),s(3624381080,2734883394),s(310598401,1164996542),s(607225278,1323610764),s(1426881987,3590304994),s(1925078388,4068182383),s(2162078206,991336113),s(2614888103,633803317),s(3248222580,3479774868),s(3835390401,2666613458),s(4022224774,944711139),s(264347078,2341262773),s(604807628,2007800933),s(770255983,1495990901),s(1249150122,1856431235),s(1555081692,3175218132),s(1996064986,2198950837),s(2554220882,3999719339),s(2821834349,766784016),s(2952996808,2566594879),s(3210313671,3203337956),s(3336571891,1034457026),s(3584528711,2466948901),s(113926993,3758326383),s(338241895,168717936),s(666307205,1188179964),s(773529912,1546045734),s(1294757372,1522805485),s(1396182291,2643833823),s(1695183700,2343527390),s(1986661051,1014477480),s(2177026350,1206759142),s(2456956037,344077627),s(2730485921,1290863460),s(2820302411,3158454273),s(3259730800,3505952657),s(3345764771,106217008),s(3516065817,3606008344),s(3600352804,1432725776),s(4094571909,1467031594),s(275423344,851169720),s(430227734,3100823752),s(506948616,1363258195),s(659060556,3750685593),s(883997877,3785050280),s(958139571,3318307427),s(1322822218,3812723403),s(1537002063,2003034995),s(1747873779,3602036899),s(1955562222,1575990012),s(2024104815,1125592928),s(2227730452,2716904306),s(2361852424,442776044),s(2428436474,593698344),s(2756734187,3733110249),s(3204031479,2999351573),s(3329325298,3815920427),s(3391569614,3928383900),s(3515267271,566280711),s(3940187606,3454069534),s(4118630271,4000239992),s(116418474,1914138554),s(174292421,2731055270),s(289380356,3203993006),s(460393269,320620315),s(685471733,587496836),s(852142971,1086792851),s(1017036298,365543100),s(1126000580,2618297676),s(1288033470,3409855158),s(1501505948,4234509866),s(1607167915,987167468),s(1816402316,1246189591)],c=[];!function(){for(var e=0;e<80;e++)c[e]=s()}();var d=o.SHA512=a.extend({_doReset:function(){this._hash=new i.init([new r.init(1779033703,4089235720),new r.init(3144134277,2227873595),new r.init(1013904242,4271175723),new r.init(2773480762,1595750129),new r.init(1359893119,2917565137),new r.init(2600822924,725511199),new r.init(528734635,4215389547),new r.init(1541459225,327033209)])},_doProcessBlock:function(e,t){for(var a=this._hash.words,n=a[0],r=a[1],i=a[2],o=a[3],s=a[4],d=a[5],u=a[6],m=a[7],p=n.high,v=n.low,g=r.high,f=r.low,h=i.high,y=i.low,w=o.high,E=o.low,N=s.high,x=s.low,V=d.high,_=d.low,b=u.high,k=u.low,S=m.high,B=m.low,C=p,D=v,A=g,T=f,I=h,F=y,P=w,R=E,L=N,z=x,M=V,O=_,H=b,U=k,$=S,j=B,W=0;W<80;W++){var K,X,G=c[W];if(W<16)X=G.high=0|e[t+2*W],K=G.low=0|e[t+2*W+1];else{var q=c[W-15],Z=q.high,Y=q.low,J=(Z>>>1|Y<<31)^(Z>>>8|Y<<24)^Z>>>7,Q=(Y>>>1|Z<<31)^(Y>>>8|Z<<24)^(Y>>>7|Z<<25),ee=c[W-2],te=ee.high,ae=ee.low,ne=(te>>>19|ae<<13)^(te<<3|ae>>>29)^te>>>6,re=(ae>>>19|te<<13)^(ae<<3|te>>>29)^(ae>>>6|te<<26),ie=c[W-7],oe=ie.high,se=ie.low,le=c[W-16],ce=le.high,de=le.low;X=(X=(X=J+oe+((K=Q+se)>>>0<Q>>>0?1:0))+ne+((K+=re)>>>0<re>>>0?1:0))+ce+((K+=de)>>>0<de>>>0?1:0),G.high=X,G.low=K}var ue,me=L&M^~L&H,pe=z&O^~z&U,ve=C&A^C&I^A&I,ge=D&T^D&F^T&F,fe=(C>>>28|D<<4)^(C<<30|D>>>2)^(C<<25|D>>>7),he=(D>>>28|C<<4)^(D<<30|C>>>2)^(D<<25|C>>>7),ye=(L>>>14|z<<18)^(L>>>18|z<<14)^(L<<23|z>>>9),we=(z>>>14|L<<18)^(z>>>18|L<<14)^(z<<23|L>>>9),Ee=l[W],Ne=Ee.high,xe=Ee.low,Ve=$+ye+((ue=j+we)>>>0<j>>>0?1:0),_e=he+ge;$=H,j=U,H=M,U=O,M=L,O=z,L=P+(Ve=(Ve=(Ve=Ve+me+((ue+=pe)>>>0<pe>>>0?1:0))+Ne+((ue+=xe)>>>0<xe>>>0?1:0))+X+((ue+=K)>>>0<K>>>0?1:0))+((z=R+ue|0)>>>0<R>>>0?1:0)|0,P=I,R=F,I=A,F=T,A=C,T=D,C=Ve+(fe+ve+(_e>>>0<he>>>0?1:0))+((D=ue+_e|0)>>>0<ue>>>0?1:0)|0}v=n.low=v+D,n.high=p+C+(v>>>0<D>>>0?1:0),f=r.low=f+T,r.high=g+A+(f>>>0<T>>>0?1:0),y=i.low=y+F,i.high=h+I+(y>>>0<F>>>0?1:0),E=o.low=E+R,o.high=w+P+(E>>>0<R>>>0?1:0),x=s.low=x+z,s.high=N+L+(x>>>0<z>>>0?1:0),_=d.low=_+O,d.high=V+M+(_>>>0<O>>>0?1:0),k=u.low=k+U,u.high=b+H+(k>>>0<U>>>0?1:0),B=m.low=B+j,m.high=S+$+(B>>>0<j>>>0?1:0)},_doFinalize:function(){var e=this._data,t=e.words,a=8*this._nDataBytes,n=8*e.sigBytes;return t[n>>>5]|=128<<24-n%32,t[30+(n+128>>>10<<5)]=Math.floor(a/4294967296),t[31+(n+128>>>10<<5)]=a,e.sigBytes=4*t.length,this._process(),this._hash.toX32()},clone:function(){var e=a.clone.call(this);return e._hash=this._hash.clone(),e},blockSize:32});t.SHA512=a._createHelper(d),t.HmacSHA512=a._createHmacHelper(d)}(),e.SHA512)),ye.exports;var e}var Ee,Ne={exports:{}};var xe,Ve={exports:{}};function _e(){return xe||(xe=1,Ve.exports=(e=j(),X(),function(t){var a=e,n=a.lib,r=n.WordArray,i=n.Hasher,o=a.x64.Word,s=a.algo,l=[],c=[],d=[];!function(){for(var e=1,t=0,a=0;a<24;a++){l[e+5*t]=(a+1)*(a+2)/2%64;var n=(2*e+3*t)%5;e=t%5,t=n}for(e=0;e<5;e++)for(t=0;t<5;t++)c[e+5*t]=t+(2*e+3*t)%5*5;for(var r=1,i=0;i<24;i++){for(var s=0,u=0,m=0;m<7;m++){if(1&r){var p=(1<<m)-1;p<32?u^=1<<p:s^=1<<p-32}128&r?r=r<<1^113:r<<=1}d[i]=o.create(s,u)}}();var u=[];!function(){for(var e=0;e<25;e++)u[e]=o.create()}();var m=s.SHA3=i.extend({cfg:i.cfg.extend({outputLength:512}),_doReset:function(){for(var e=this._state=[],t=0;t<25;t++)e[t]=new o.init;this.blockSize=(1600-2*this.cfg.outputLength)/32},_doProcessBlock:function(e,t){for(var a=this._state,n=this.blockSize/2,r=0;r<n;r++){var i=e[t+2*r],o=e[t+2*r+1];i=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),o=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),(B=a[r]).high^=o,B.low^=i}for(var s=0;s<24;s++){for(var m=0;m<5;m++){for(var p=0,v=0,g=0;g<5;g++)p^=(B=a[m+5*g]).high,v^=B.low;var f=u[m];f.high=p,f.low=v}for(m=0;m<5;m++){var h=u[(m+4)%5],y=u[(m+1)%5],w=y.high,E=y.low;for(p=h.high^(w<<1|E>>>31),v=h.low^(E<<1|w>>>31),g=0;g<5;g++)(B=a[m+5*g]).high^=p,B.low^=v}for(var N=1;N<25;N++){var x=(B=a[N]).high,V=B.low,_=l[N];_<32?(p=x<<_|V>>>32-_,v=V<<_|x>>>32-_):(p=V<<_-32|x>>>64-_,v=x<<_-32|V>>>64-_);var b=u[c[N]];b.high=p,b.low=v}var k=u[0],S=a[0];for(k.high=S.high,k.low=S.low,m=0;m<5;m++)for(g=0;g<5;g++){var B=a[N=m+5*g],C=u[N],D=u[(m+1)%5+5*g],A=u[(m+2)%5+5*g];B.high=C.high^~D.high&A.high,B.low=C.low^~D.low&A.low}B=a[0];var T=d[s];B.high^=T.high,B.low^=T.low}},_doFinalize:function(){var e=this._data,a=e.words;this._nDataBytes;var n=8*e.sigBytes,i=32*this.blockSize;a[n>>>5]|=1<<24-n%32,a[(t.ceil((n+1)/i)*i>>>5)-1]|=128,e.sigBytes=4*a.length,this._process();for(var o=this._state,s=this.cfg.outputLength/8,l=s/8,c=[],d=0;d<l;d++){var u=o[d],m=u.high,p=u.low;m=16711935&(m<<8|m>>>24)|4278255360&(m<<24|m>>>8),p=16711935&(p<<8|p>>>24)|4278255360&(p<<24|p>>>8),c.push(p),c.push(m)}return new r.init(c,s)},clone:function(){for(var e=i.clone.call(this),t=e._state=this._state.slice(0),a=0;a<25;a++)t[a]=t[a].clone();return e}});a.SHA3=i._createHelper(m),a.HmacSHA3=i._createHmacHelper(m)}(Math),e.SHA3)),Ve.exports;var e}var be,ke={exports:{}};var Se,Be={exports:{}};function Ce(){return Se||(Se=1,Be.exports=(e=j(),a=(t=e).lib.Base,n=t.enc.Utf8,void(t.algo.HMAC=a.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=n.parse(t));var a=e.blockSize,r=4*a;t.sigBytes>r&&(t=e.finalize(t)),t.clamp();for(var i=this._oKey=t.clone(),o=this._iKey=t.clone(),s=i.words,l=o.words,c=0;c<a;c++)s[c]^=1549556828,l[c]^=909522486;i.sigBytes=o.sigBytes=r,this.reset()},reset:function(){var e=this._hasher;e.reset(),e.update(this._iKey)},update:function(e){return this._hasher.update(e),this},finalize:function(e){var t=this._hasher,a=t.finalize(e);return t.reset(),t.finalize(this._oKey.clone().concat(a))}})))),Be.exports;var e,t,a,n}var De,Ae={exports:{}};var Te,Ie={exports:{}};function Fe(){return Te||(Te=1,Ie.exports=(s=j(),ue(),Ce(),t=(e=s).lib,a=t.Base,n=t.WordArray,r=e.algo,i=r.MD5,o=r.EvpKDF=a.extend({cfg:a.extend({keySize:4,hasher:i,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var a,r=this.cfg,i=r.hasher.create(),o=n.create(),s=o.words,l=r.keySize,c=r.iterations;s.length<l;){a&&i.update(a),a=i.update(e).finalize(t),i.reset();for(var d=1;d<c;d++)a=i.finalize(a),i.reset();o.concat(a)}return o.sigBytes=4*l,o}}),e.EvpKDF=function(e,t,a){return o.create(a).compute(e,t)},s.EvpKDF)),Ie.exports;var e,t,a,n,r,i,o,s}var Pe,Re={exports:{}};function Le(){return Pe||(Pe=1,Re.exports=(e=j(),Fe(),void(e.lib.Cipher||function(t){var a=e,n=a.lib,r=n.Base,i=n.WordArray,o=n.BufferedBlockAlgorithm,s=a.enc;s.Utf8;var l=s.Base64,c=a.algo.EvpKDF,d=n.Cipher=o.extend({cfg:r.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,a){this.cfg=this.cfg.extend(a),this._xformMode=e,this._key=t,this.reset()},reset:function(){o.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){return e&&this._append(e),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function e(e){return"string"==typeof e?w:h}return function(t){return{encrypt:function(a,n,r){return e(n).encrypt(t,a,n,r)},decrypt:function(a,n,r){return e(n).decrypt(t,a,n,r)}}}}()});n.StreamCipher=d.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var u=a.mode={},m=n.BlockCipherMode=r.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}}),p=u.CBC=function(){var e=m.extend();function a(e,a,n){var r,i=this._iv;i?(r=i,this._iv=t):r=this._prevBlock;for(var o=0;o<n;o++)e[a+o]^=r[o]}return e.Encryptor=e.extend({processBlock:function(e,t){var n=this._cipher,r=n.blockSize;a.call(this,e,t,r),n.encryptBlock(e,t),this._prevBlock=e.slice(t,t+r)}}),e.Decryptor=e.extend({processBlock:function(e,t){var n=this._cipher,r=n.blockSize,i=e.slice(t,t+r);n.decryptBlock(e,t),a.call(this,e,t,r),this._prevBlock=i}}),e}(),v=(a.pad={}).Pkcs7={pad:function(e,t){for(var a=4*t,n=a-e.sigBytes%a,r=n<<24|n<<16|n<<8|n,o=[],s=0;s<n;s+=4)o.push(r);var l=i.create(o,n);e.concat(l)},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}};n.BlockCipher=d.extend({cfg:d.cfg.extend({mode:p,padding:v}),reset:function(){var e;d.reset.call(this);var t=this.cfg,a=t.iv,n=t.mode;this._xformMode==this._ENC_XFORM_MODE?e=n.createEncryptor:(e=n.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==e?this._mode.init(this,a&&a.words):(this._mode=e.call(n,this,a&&a.words),this._mode.__creator=e)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e,t=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(t.pad(this._data,this.blockSize),e=this._process(!0)):(e=this._process(!0),t.unpad(e)),e},blockSize:4});var g=n.CipherParams=r.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),f=(a.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext,a=e.salt;return(a?i.create([1398893684,1701076831]).concat(a).concat(t):t).toString(l)},parse:function(e){var t,a=l.parse(e),n=a.words;return 1398893684==n[0]&&1701076831==n[1]&&(t=i.create(n.slice(2,4)),n.splice(0,4),a.sigBytes-=16),g.create({ciphertext:a,salt:t})}},h=n.SerializableCipher=r.extend({cfg:r.extend({format:f}),encrypt:function(e,t,a,n){n=this.cfg.extend(n);var r=e.createEncryptor(a,n),i=r.finalize(t),o=r.cfg;return g.create({ciphertext:i,key:a,iv:o.iv,algorithm:e,mode:o.mode,padding:o.padding,blockSize:e.blockSize,formatter:n.format})},decrypt:function(e,t,a,n){return n=this.cfg.extend(n),t=this._parse(t,n.format),e.createDecryptor(a,n).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),y=(a.kdf={}).OpenSSL={execute:function(e,t,a,n,r){if(n||(n=i.random(8)),r)o=c.create({keySize:t+a,hasher:r}).compute(e,n);else var o=c.create({keySize:t+a}).compute(e,n);var s=i.create(o.words.slice(t),4*a);return o.sigBytes=4*t,g.create({key:o,iv:s,salt:n})}},w=n.PasswordBasedCipher=h.extend({cfg:h.cfg.extend({kdf:y}),encrypt:function(e,t,a,n){var r=(n=this.cfg.extend(n)).kdf.execute(a,e.keySize,e.ivSize,n.salt,n.hasher);n.iv=r.iv;var i=h.encrypt.call(this,e,t,r.key,n);return i.mixIn(r),i},decrypt:function(e,t,a,n){n=this.cfg.extend(n),t=this._parse(t,n.format);var r=n.kdf.execute(a,e.keySize,e.ivSize,t.salt,n.hasher);return n.iv=r.iv,h.decrypt.call(this,e,t,r.key,n)}})}()))),Re.exports;var e}var ze,Me={exports:{}};var Oe,He={exports:{}};var Ue,$e={exports:{}};function je(){return Ue||(Ue=1,$e.exports=(e=j(),Le(), |
| | | if("undefined"==typeof Promise||Promise.prototype.finally||(Promise.prototype.finally=function(e){const t=this.constructor;return this.then((a=>t.resolve(e()).then((()=>a))),(a=>t.resolve(e()).then((()=>{throw a}))))}),"undefined"!=typeof uni&&uni&&uni.requireGlobal){const e=uni.requireGlobal();ArrayBuffer=e.ArrayBuffer,Int8Array=e.Int8Array,Uint8Array=e.Uint8Array,Uint8ClampedArray=e.Uint8ClampedArray,Int16Array=e.Int16Array,Uint16Array=e.Uint16Array,Int32Array=e.Int32Array,Uint32Array=e.Uint32Array,Float32Array=e.Float32Array,Float64Array=e.Float64Array,BigInt64Array=e.BigInt64Array,BigUint64Array=e.BigUint64Array}uni.restoreGlobal&&uni.restoreGlobal(Vue,weex,plus,setTimeout,clearTimeout,setInterval,clearInterval),function(e){"use strict";function t(e){return weex.requireModule(e)}function a(e,t,...a){uni.__log__?uni.__log__(e,t,...a):console[e].apply(console,[...a,t])}const n=(t,a=0)=>(a,n=e.getCurrentInstance())=>{!e.isInSSRComponentSetup&&e.injectHook(t,a,n)},r=n("onShow",3),i=n("onHide",3),o=n("onLoad",2),s="device_ip",l="device_port",c=(e="")=>String(e).trim().replace(/^https?:\/\//,""),d=(e="")=>String(e).trim(),u=({ip:e,port:t})=>{const a=c(e),n=d(t);return a&&n?`http://${a}:${n}`:""},m=()=>({ip:c(uni.getStorageSync(s)||""),port:d(uni.getStorageSync(l)||"")}),p=({ip:e,port:t})=>{uni.setStorageSync(s,c(e)),uni.setStorageSync(l,d(t))},v=()=>{uni.removeStorageSync(s),uni.removeStorageSync(l)},g=()=>({deviceId:String(uni.getStorageSync("device_id")||"").trim(),deviceFingerprint:String(uni.getStorageSync("device_fingerprint")||"").trim()}),f=()=>{const{deviceId:e,deviceFingerprint:t}=g();return Boolean((()=>{const{ip:e,port:t}=m();return Boolean(e&&t)})()&&e&&t)},h=({url:e,method:t="GET",data:n={},header:r={},timeout:i=3e4,baseURL:o="",responseType:s="text"})=>new Promise(((l,c)=>{let d="";try{d=((e,t)=>{if(!e)throw new Error("请求的 URL 不能为空");if(/^https?:\/\//.test(e))return e;const a=t||u(m());if(!a)throw new Error("未配置服务地址,请先完成设备激活");const n=String(e);return`${a}${n.startsWith("/")?n:`/${n}`}`})(e,o)}catch(p){return void c({message:(null==p?void 0:p.message)||"请求地址解析失败"})}uni.request({url:d,method:t,data:n,header:r,timeout:i,responseType:s,success:e=>{const{statusCode:t,data:n}=e;if(a("log","at utils/request.js:121","请求成功:",e),t>=200&&t<300)return(e=>!(e&&"object"==typeof e&&!Array.isArray(e)&&Object.prototype.hasOwnProperty.call(e,"code")&&200!==Number(e.code)))(n)?void l(n):void c(n);c({...e,message:(null==n?void 0:n.message)||`请求失败,状态码:${t}`})},fail:e=>{c({...e,message:(null==e?void 0:e.errMsg)||"网络请求失败"})}})})),y=(e,t)=>{const a=e.__vccOpts||e;for(const[n,r]of t)a[n]=r;return a},w=y({__name:"index",setup:t=>(e.onMounted((()=>{uni.showLoading({title:"加载中...",mask:!0}),setTimeout((()=>{uni.hideLoading(),f()?uni.reLaunch({url:"/pages/home/index"}):uni.reLaunch({url:"/pages/device-init/index"})}),100)})),(t,a)=>(e.openBlock(),e.createElementBlock("view",{class:"splash-container"})))},[["__scopeId","data-v-09a9e844"]]);let E=null;"undefined"!=typeof uni&&(E=t("business-module"));let N=null,x=null;Promise.resolve();let V=0;const _=(e=[])=>E&&e.find((e=>"function"==typeof E[e]))||null,b={init:(e={})=>x?Promise.resolve(x):N||(N=new Promise(((t,n)=>{if(E){let a=!1,i=null;const o=(e,r=!1)=>{if(!a){if(a=!0,i&&(clearTimeout(i),i=null),r)return N=null,void n(e);x=e,t(e)}};try{E.init(e,(e=>{e&&o(e)})),i=setTimeout((()=>{o({code:200,msg:"init_called_without_callback"})}),300)}catch(r){N=null,n(r)}}else a("warn","at utils/visitorDevice.js:143","未找到硬件原生插件 business-module"),N=null,n(new Error("Plugin not found"))})),N),startReadCard(e){E&&E.startReadCard({},(t=>{const n=JSON.parse(t||"{}");if(n&&n.licId){e(n)}else a("error","at utils/visitorDevice.js:182","读卡失败或状态更新:",n)}))},stopReadCard:()=>new Promise((e=>{E?(E.stopReadCard({}),e()):e()})),startScan(e){E&&E.startScan({duration:2e3},(t=>{t?e(t):a("error","at utils/visitorDevice.js:233","扫码失败或状态更新:",t)}))},stopScan:()=>new Promise((e=>{E?(E.stopScan({}),e()):e()})),startFaceVerify(e={},t,n){const r=(null==e?void 0:e.face)||"",i=(null==e?void 0:e.photo)||"",o=_(["startRecognition"]);o?E[o]({face:r,photo:i},(e=>{e&&0===e.code?null==t||t(e):n?n({...e,message:(null==e?void 0:e.response)||(null==e?void 0:e.msg)||(null==e?void 0:e.message)||"人脸识别失败"}):a("error","at utils/visitorDevice.js:301","人证比对失败或状态更新:",e)})):n&&n({message:"当前插件未提供人脸识别能力"})},startJudgeFace(e={},t,a){const n=(null==e?void 0:e.face)||"",r=_(["startJudgeFace"]);r?E[r]({face:n},(e=>{e&&0===Number(e.code)?null==t||t(e):null==a||a({...e,message:(null==e?void 0:e.response)||(null==e?void 0:e.msg)||(null==e?void 0:e.message)||"未检测到人脸"})})):null==a||a({message:"当前插件未提供人脸检测能力"})},stopJudgeFace:()=>new Promise((e=>{const t=_(["stopJudgeFace"]);if(t)return E[t]({}),void e();e()})),stopFaceVerify:()=>new Promise((e=>{const t=_(["stopRecognition"]);if(t)return E[t]({}),void e();e()})),offlineActivateDevice:(e={})=>new Promise(((t,a)=>{const n=_(["offlineActivateDevice"]);n?E[n](e,(e=>{e&&0===e.code?t(e):a(new Error((null==e?void 0:e.response)||(null==e?void 0:e.msg)||(null==e?void 0:e.message)||"离线激活失败"))})):a(new Error("当前插件未提供离线激活能力"))})),onlineActivateDevice:(e={})=>new Promise(((t,a)=>{const n=_(["onlineActivateDevice"]);n?E[n](e,(e=>{e&&0===e.code?t(e.data||e):a(new Error((null==e?void 0:e.response)||(null==e?void 0:e.msg)||(null==e?void 0:e.message)||"在线激活失败"))})):a(new Error("当前插件未提供在线激活能力"))})),getDeviceFingerprint:(e={})=>new Promise(((t,a)=>{const n=_(["getDeviceFingerprint"]);n?E[n](e,(e=>{if(e){const a=e||"";if(a)return void t(String(a))}a(new Error("百度SDK指纹获取失败"))})):a(new Error("百度SDK指纹获取失败"))})),startPrint:e=>new Promise(((t,a)=>{const n=_(["startPrint"]);n?E[n]({options:e},(e=>{e&&2===e.code&&(()=>{const e=Date.now();e-V<1e4||(V=e,uni.$emit("Hardware-PrintOutOfPaper",{code:2,message:"打印机缺纸,请联系管理员"}))})(),e&&0===e.code?t(e):a(e)})):a(new Error("未找到打印方法 startPrint"))}))},k=y({__name:"index",setup(t){const n=e.reactive([{label:"设备ID:",placeholder:"请输入",value:"",readonly:!1},{label:"IP地址:",placeholder:"请输入",value:"",readonly:!1},{label:"端口号:",placeholder:"请输入",value:"",readonly:!1}]),r=e.ref(!1),i=e.ref("");o((()=>{const{ip:e,port:t}=m(),{deviceId:a,deviceFingerprint:r}=g();n[1].value=e,n[2].value=t,f()&&(n[0].value=a||"",i.value=r||"",uni.redirectTo({url:"/pages/home/index"}))})),e.onMounted((()=>{(async()=>{try{i.value=await b.getDeviceFingerprint()}catch(e){i.value="",a("error","at pages/device-init/index.vue:28","百度SDK指纹获取失败:",e)}})()}));const s=()=>{n[0].value="",n[1].value="",n[2].value=""},l=async()=>{if(r.value)return;const e=n[0].value.trim(),t=n[1].value.trim(),o=n[2].value.trim(),s=m();if(e)if(t)if(o)if(i.value)try{r.value=!0,uni.showLoading({title:"激活中...",mask:!0}),p({ip:t,port:o}),await(({machineId:e,fingerprint:t})=>h({url:"/api/visitmachine/activate",method:"POST",data:{machineId:e,fingerprint:t}}))({machineId:e,fingerprint:i.value}),await b.offlineActivateDevice({code:i.value}),uni.setStorageSync("device_id",e),uni.setStorageSync("device_fingerprint",i.value),uni.hideLoading(),setTimeout((()=>{uni.redirectTo({url:"/pages/home/index"})}),300)}catch(l){a("error","at pages/device-init/index.vue:141","设备激活失败:",l),uni.hideLoading(),s.ip&&s.port?p(s):v(),uni.showToast({title:(null==l?void 0:l.msg)||"激活失败,请检查网络或服务地址",icon:"none"})}finally{uni.hideLoading(),r.value=!1}else uni.showToast({title:"百度SDK指纹获取失败",icon:"none"});else uni.showToast({title:"请输入端口号",icon:"none"});else uni.showToast({title:"请输入IP地址",icon:"none"});else uni.showToast({title:"请输入设备ID",icon:"none"})};return(t,a)=>(e.openBlock(),e.createElementBlock("view",{class:"page"},[e.createElementVNode("view",{class:"overlay"}),e.createElementVNode("view",{class:"dialog"},[e.createElementVNode("text",{class:"title"},"设备激活"),e.createElementVNode("view",{class:"form-block"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n,(t=>(e.openBlock(),e.createElementBlock("view",{key:t.label,class:"form-row"},[e.createElementVNode("text",{class:"form-label"},e.toDisplayString(t.label),1),e.createElementVNode("view",{class:e.normalizeClass(["form-input",{readonly:t.readonly}])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":e=>t.value=e,class:"input-field",placeholder:t.placeholder,"placeholder-class":"placeholder",disabled:t.readonly},null,8,["onUpdate:modelValue","placeholder","disabled"]),[[e.vModelText,t.value]])],2)])))),128))]),e.createElementVNode("view",{class:"button-row"},[e.createElementVNode("view",{class:"btn btn-reset",onClick:s},[e.createElementVNode("text",{class:"btn-reset-text"},"重置")]),e.createElementVNode("view",{class:"btn btn-primary",onClick:l},[e.createElementVNode("text",{class:"btn-primary-text"},e.toDisplayString(r.value?"激活中...":"激活"),1)])])])]))}},[["__scopeId","data-v-17f3419f"]]),S="visitor_offline_db",B="_doc/visitor.db",C=e=>new Promise(((t,n)=>{plus.sqlite.executeSql({name:S,sql:e,success:e=>t(e),fail:t=>{a("error","at utils/db.js:34","[DB] SQL执行失败:",e,t),n(t)}})})),D=e=>new Promise(((t,n)=>{plus.sqlite.selectSql({name:S,sql:e,success:e=>t(e),fail:t=>{a("error","at utils/db.js:53","[DB] SQL查询失败:",e,t),n(t)}})})),A=async()=>{var e;const t=await D("SELECT COUNT(1) AS total FROM offline_records WHERE sync_status = 0");return Number((null==(e=null==t?void 0:t[0])?void 0:e.total)||0)},T=async e=>{const t=`UPDATE offline_records SET sync_status = 1 WHERE id = '${e}'`;await C([t])},I=async(e,t)=>{const a=Date.now(),n=`REPLACE INTO offline_config (key, value, update_time) VALUES ('${e}', '${JSON.stringify(t).replace(/'/g,"''")}', ${a})`;await C([n])},F=async e=>{const{value:t}=await(async e=>{const t=`SELECT value, update_time FROM offline_config WHERE key = '${e}'`,n=await D(t);if(n&&n.length>0)try{return{value:JSON.parse(n[0].value),updateTime:Number(n[0].update_time||0)}}catch(r){a("error","at utils/db.js:422","[DB] 解析离线配置失败:",r)}return{value:null,updateTime:0}})(e);return t};var P="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function R(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function z(e){if(e.__esModule)return e;var t=e.default;if("function"==typeof t){var a=function e(){return this instanceof e?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};a.prototype=t.prototype}else a={};return Object.defineProperty(a,"__esModule",{value:!0}),Object.keys(e).forEach((function(t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(a,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})})),a}var M={exports:{}},O=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,62,0,62,0,63,52,53,54,55,56,57,58,59,60,61,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,0,0,0,63,0,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51];const L={getRandomValues(e){if(!(e instanceof Int8Array||e instanceof Uint8Array||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Uint8ClampedArray))throw new Error("Expected an integer array");if(e.byteLength>65536)throw new Error("Can only request a maximum of 65536 bytes");return function(e,t){for(var a,n=e.length,r="="===e[n-2]?2:"="===e[n-1]?1:0,i=0,o=n-r&4294967292,s=0;s<o;s+=4)a=O[e.charCodeAt(s)]<<18|O[e.charCodeAt(s+1)]<<12|O[e.charCodeAt(s+2)]<<6|O[e.charCodeAt(s+3)],t[i++]=a>>16&255,t[i++]=a>>8&255,t[i++]=255&a;1===r&&(a=O[e.charCodeAt(s)]<<10|O[e.charCodeAt(s+1)]<<4|O[e.charCodeAt(s+2)]>>2,t[i++]=a>>8&255,t[i++]=255&a),2===r&&(a=O[e.charCodeAt(s)]<<2|O[e.charCodeAt(s+1)]>>4,t[i++]=255&a)}(t("DCloud-Crypto").getRandomValues(e.byteLength),new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),e}};var $={exports:{}};const H=z(Object.freeze(Object.defineProperty({__proto__:null,default:{}},Symbol.toStringTag,{value:"Module"})));var U;function j(){return U||(U=1,$.exports=(e=e||function(e,t){var a;if("undefined"!=typeof window&&L&&(a=L),"undefined"!=typeof self&&self.crypto&&(a=self.crypto),"undefined"!=typeof globalThis&&globalThis.crypto&&(a=globalThis.crypto),!a&&"undefined"!=typeof window&&window.msCrypto&&(a=window.msCrypto),!a&&void 0!==P&&P.crypto&&(a=P.crypto),!a)try{a=H}catch(g){}var n=function(){if(a){if("function"==typeof a.getRandomValues)try{return a.getRandomValues(new Uint32Array(1))[0]}catch(g){}if("function"==typeof a.randomBytes)try{return a.randomBytes(4).readInt32LE()}catch(g){}}throw new Error("Native crypto module could not be used to get secure random number.")},r=Object.create||function(){function e(){}return function(t){var a;return e.prototype=t,a=new e,e.prototype=null,a}}(),i={},o=i.lib={},s=o.Base=function(){return{extend:function(e){var t=r(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),l=o.WordArray=s.extend({init:function(e,a){e=this.words=e||[],this.sigBytes=a!=t?a:4*e.length},toString:function(e){return(e||d).stringify(this)},concat:function(e){var t=this.words,a=e.words,n=this.sigBytes,r=e.sigBytes;if(this.clamp(),n%4)for(var i=0;i<r;i++){var o=a[i>>>2]>>>24-i%4*8&255;t[n+i>>>2]|=o<<24-(n+i)%4*8}else for(var s=0;s<r;s+=4)t[n+s>>>2]=a[s>>>2];return this.sigBytes+=r,this},clamp:function(){var t=this.words,a=this.sigBytes;t[a>>>2]&=4294967295<<32-a%4*8,t.length=e.ceil(a/4)},clone:function(){var e=s.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],a=0;a<e;a+=4)t.push(n());return new l.init(t,e)}}),c=i.enc={},d=c.Hex={stringify:function(e){for(var t=e.words,a=e.sigBytes,n=[],r=0;r<a;r++){var i=t[r>>>2]>>>24-r%4*8&255;n.push((i>>>4).toString(16)),n.push((15&i).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,a=[],n=0;n<t;n+=2)a[n>>>3]|=parseInt(e.substr(n,2),16)<<24-n%8*4;return new l.init(a,t/2)}},u=c.Latin1={stringify:function(e){for(var t=e.words,a=e.sigBytes,n=[],r=0;r<a;r++){var i=t[r>>>2]>>>24-r%4*8&255;n.push(String.fromCharCode(i))}return n.join("")},parse:function(e){for(var t=e.length,a=[],n=0;n<t;n++)a[n>>>2]|=(255&e.charCodeAt(n))<<24-n%4*8;return new l.init(a,t)}},m=c.Utf8={stringify:function(e){try{return decodeURIComponent(escape(u.stringify(e)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(e){return u.parse(unescape(encodeURIComponent(e)))}},p=o.BufferedBlockAlgorithm=s.extend({reset:function(){this._data=new l.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=m.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var a,n=this._data,r=n.words,i=n.sigBytes,o=this.blockSize,s=i/(4*o),c=(s=t?e.ceil(s):e.max((0|s)-this._minBufferSize,0))*o,d=e.min(4*c,i);if(c){for(var u=0;u<c;u+=o)this._doProcessBlock(r,u);a=r.splice(0,c),n.sigBytes-=d}return new l.init(a,d)},clone:function(){var e=s.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});o.Hasher=p.extend({cfg:s.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){p.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(t,a){return new e.init(a).finalize(t)}},_createHmacHelper:function(e){return function(t,a){return new v.HMAC.init(e,a).finalize(t)}}});var v=i.algo={};return i}(Math),e)),$.exports;var e}var W,K={exports:{}};function X(){return W||(W=1,K.exports=(o=j(),a=(t=o).lib,n=a.Base,r=a.WordArray,(i=t.x64={}).Word=n.extend({init:function(e,t){this.high=e,this.low=t}}),i.WordArray=n.extend({init:function(t,a){t=this.words=t||[],this.sigBytes=a!=e?a:8*t.length},toX32:function(){for(var e=this.words,t=e.length,a=[],n=0;n<t;n++){var i=e[n];a.push(i.high),a.push(i.low)}return r.create(a,this.sigBytes)},clone:function(){for(var e=n.clone.call(this),t=e.words=this.words.slice(0),a=t.length,r=0;r<a;r++)t[r]=t[r].clone();return e}}),o)),K.exports;var e,t,a,n,r,i,o}var G,q={exports:{}};function Z(){return G||(G=1,q.exports=(e=j(),function(){if("function"==typeof ArrayBuffer){var t=e.lib.WordArray,a=t.init,n=t.init=function(e){if(e instanceof ArrayBuffer&&(e=new Uint8Array(e)),(e instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array)&&(e=new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),e instanceof Uint8Array){for(var t=e.byteLength,n=[],r=0;r<t;r++)n[r>>>2]|=e[r]<<24-r%4*8;a.call(this,n,t)}else a.apply(this,arguments)};n.prototype=t}}(),e.lib.WordArray)),q.exports;var e}var J,Y={exports:{}};function Q(){return J||(J=1,Y.exports=(e=j(),function(){var t=e,a=t.lib.WordArray,n=t.enc;function r(e){return e<<8&4278255360|e>>>8&16711935}n.Utf16=n.Utf16BE={stringify:function(e){for(var t=e.words,a=e.sigBytes,n=[],r=0;r<a;r+=2){var i=t[r>>>2]>>>16-r%4*8&65535;n.push(String.fromCharCode(i))}return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r++)n[r>>>1]|=e.charCodeAt(r)<<16-r%2*16;return a.create(n,2*t)}},n.Utf16LE={stringify:function(e){for(var t=e.words,a=e.sigBytes,n=[],i=0;i<a;i+=2){var o=r(t[i>>>2]>>>16-i%4*8&65535);n.push(String.fromCharCode(o))}return n.join("")},parse:function(e){for(var t=e.length,n=[],i=0;i<t;i++)n[i>>>1]|=r(e.charCodeAt(i)<<16-i%2*16);return a.create(n,2*t)}}}(),e.enc.Utf16)),Y.exports;var e}var ee,te={exports:{}};function ae(){return ee||(ee=1,te.exports=(e=j(),function(){var t=e,a=t.lib.WordArray;function n(e,t,n){for(var r=[],i=0,o=0;o<t;o++)if(o%4){var s=n[e.charCodeAt(o-1)]<<o%4*2|n[e.charCodeAt(o)]>>>6-o%4*2;r[i>>>2]|=s<<24-i%4*8,i++}return a.create(r,i)}t.enc.Base64={stringify:function(e){var t=e.words,a=e.sigBytes,n=this._map;e.clamp();for(var r=[],i=0;i<a;i+=3)for(var o=(t[i>>>2]>>>24-i%4*8&255)<<16|(t[i+1>>>2]>>>24-(i+1)%4*8&255)<<8|t[i+2>>>2]>>>24-(i+2)%4*8&255,s=0;s<4&&i+.75*s<a;s++)r.push(n.charAt(o>>>6*(3-s)&63));var l=n.charAt(64);if(l)for(;r.length%4;)r.push(l);return r.join("")},parse:function(e){var t=e.length,a=this._map,r=this._reverseMap;if(!r){r=this._reverseMap=[];for(var i=0;i<a.length;i++)r[a.charCodeAt(i)]=i}var o=a.charAt(64);if(o){var s=e.indexOf(o);-1!==s&&(t=s)}return n(e,t,r)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),e.enc.Base64)),te.exports;var e}var ne,re={exports:{}};function ie(){return ne||(ne=1,re.exports=(e=j(),function(){var t=e,a=t.lib.WordArray;function n(e,t,n){for(var r=[],i=0,o=0;o<t;o++)if(o%4){var s=n[e.charCodeAt(o-1)]<<o%4*2|n[e.charCodeAt(o)]>>>6-o%4*2;r[i>>>2]|=s<<24-i%4*8,i++}return a.create(r,i)}t.enc.Base64url={stringify:function(e,t){void 0===t&&(t=!0);var a=e.words,n=e.sigBytes,r=t?this._safe_map:this._map;e.clamp();for(var i=[],o=0;o<n;o+=3)for(var s=(a[o>>>2]>>>24-o%4*8&255)<<16|(a[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|a[o+2>>>2]>>>24-(o+2)%4*8&255,l=0;l<4&&o+.75*l<n;l++)i.push(r.charAt(s>>>6*(3-l)&63));var c=r.charAt(64);if(c)for(;i.length%4;)i.push(c);return i.join("")},parse:function(e,t){void 0===t&&(t=!0);var a=e.length,r=t?this._safe_map:this._map,i=this._reverseMap;if(!i){i=this._reverseMap=[];for(var o=0;o<r.length;o++)i[r.charCodeAt(o)]=o}var s=r.charAt(64);if(s){var l=e.indexOf(s);-1!==l&&(a=l)}return n(e,a,i)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_safe_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"}}(),e.enc.Base64url)),re.exports;var e}var oe,se={exports:{}};function le(){return oe||(oe=1,se.exports=(e=j(),function(t){var a=e,n=a.lib,r=n.WordArray,i=n.Hasher,o=a.algo,s=[];!function(){for(var e=0;e<64;e++)s[e]=4294967296*t.abs(t.sin(e+1))|0}();var l=o.MD5=i.extend({_doReset:function(){this._hash=new r.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,t){for(var a=0;a<16;a++){var n=t+a,r=e[n];e[n]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8)}var i=this._hash.words,o=e[t+0],l=e[t+1],p=e[t+2],v=e[t+3],g=e[t+4],f=e[t+5],h=e[t+6],y=e[t+7],w=e[t+8],E=e[t+9],N=e[t+10],x=e[t+11],V=e[t+12],_=e[t+13],b=e[t+14],k=e[t+15],S=i[0],B=i[1],C=i[2],D=i[3];S=c(S,B,C,D,o,7,s[0]),D=c(D,S,B,C,l,12,s[1]),C=c(C,D,S,B,p,17,s[2]),B=c(B,C,D,S,v,22,s[3]),S=c(S,B,C,D,g,7,s[4]),D=c(D,S,B,C,f,12,s[5]),C=c(C,D,S,B,h,17,s[6]),B=c(B,C,D,S,y,22,s[7]),S=c(S,B,C,D,w,7,s[8]),D=c(D,S,B,C,E,12,s[9]),C=c(C,D,S,B,N,17,s[10]),B=c(B,C,D,S,x,22,s[11]),S=c(S,B,C,D,V,7,s[12]),D=c(D,S,B,C,_,12,s[13]),C=c(C,D,S,B,b,17,s[14]),S=d(S,B=c(B,C,D,S,k,22,s[15]),C,D,l,5,s[16]),D=d(D,S,B,C,h,9,s[17]),C=d(C,D,S,B,x,14,s[18]),B=d(B,C,D,S,o,20,s[19]),S=d(S,B,C,D,f,5,s[20]),D=d(D,S,B,C,N,9,s[21]),C=d(C,D,S,B,k,14,s[22]),B=d(B,C,D,S,g,20,s[23]),S=d(S,B,C,D,E,5,s[24]),D=d(D,S,B,C,b,9,s[25]),C=d(C,D,S,B,v,14,s[26]),B=d(B,C,D,S,w,20,s[27]),S=d(S,B,C,D,_,5,s[28]),D=d(D,S,B,C,p,9,s[29]),C=d(C,D,S,B,y,14,s[30]),S=u(S,B=d(B,C,D,S,V,20,s[31]),C,D,f,4,s[32]),D=u(D,S,B,C,w,11,s[33]),C=u(C,D,S,B,x,16,s[34]),B=u(B,C,D,S,b,23,s[35]),S=u(S,B,C,D,l,4,s[36]),D=u(D,S,B,C,g,11,s[37]),C=u(C,D,S,B,y,16,s[38]),B=u(B,C,D,S,N,23,s[39]),S=u(S,B,C,D,_,4,s[40]),D=u(D,S,B,C,o,11,s[41]),C=u(C,D,S,B,v,16,s[42]),B=u(B,C,D,S,h,23,s[43]),S=u(S,B,C,D,E,4,s[44]),D=u(D,S,B,C,V,11,s[45]),C=u(C,D,S,B,k,16,s[46]),S=m(S,B=u(B,C,D,S,p,23,s[47]),C,D,o,6,s[48]),D=m(D,S,B,C,y,10,s[49]),C=m(C,D,S,B,b,15,s[50]),B=m(B,C,D,S,f,21,s[51]),S=m(S,B,C,D,V,6,s[52]),D=m(D,S,B,C,v,10,s[53]),C=m(C,D,S,B,N,15,s[54]),B=m(B,C,D,S,l,21,s[55]),S=m(S,B,C,D,w,6,s[56]),D=m(D,S,B,C,k,10,s[57]),C=m(C,D,S,B,h,15,s[58]),B=m(B,C,D,S,_,21,s[59]),S=m(S,B,C,D,g,6,s[60]),D=m(D,S,B,C,x,10,s[61]),C=m(C,D,S,B,p,15,s[62]),B=m(B,C,D,S,E,21,s[63]),i[0]=i[0]+S|0,i[1]=i[1]+B|0,i[2]=i[2]+C|0,i[3]=i[3]+D|0},_doFinalize:function(){var e=this._data,a=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;a[r>>>5]|=128<<24-r%32;var i=t.floor(n/4294967296),o=n;a[15+(r+64>>>9<<4)]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),a[14+(r+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),e.sigBytes=4*(a.length+1),this._process();for(var s=this._hash,l=s.words,c=0;c<4;c++){var d=l[c];l[c]=16711935&(d<<8|d>>>24)|4278255360&(d<<24|d>>>8)}return s},clone:function(){var e=i.clone.call(this);return e._hash=this._hash.clone(),e}});function c(e,t,a,n,r,i,o){var s=e+(t&a|~t&n)+r+o;return(s<<i|s>>>32-i)+t}function d(e,t,a,n,r,i,o){var s=e+(t&n|a&~n)+r+o;return(s<<i|s>>>32-i)+t}function u(e,t,a,n,r,i,o){var s=e+(t^a^n)+r+o;return(s<<i|s>>>32-i)+t}function m(e,t,a,n,r,i,o){var s=e+(a^(t|~n))+r+o;return(s<<i|s>>>32-i)+t}a.MD5=i._createHelper(l),a.HmacMD5=i._createHmacHelper(l)}(Math),e.MD5)),se.exports;var e}var ce,de={exports:{}};function ue(){return ce||(ce=1,de.exports=(s=j(),t=(e=s).lib,a=t.WordArray,n=t.Hasher,r=e.algo,i=[],o=r.SHA1=n.extend({_doReset:function(){this._hash=new a.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var a=this._hash.words,n=a[0],r=a[1],o=a[2],s=a[3],l=a[4],c=0;c<80;c++){if(c<16)i[c]=0|e[t+c];else{var d=i[c-3]^i[c-8]^i[c-14]^i[c-16];i[c]=d<<1|d>>>31}var u=(n<<5|n>>>27)+l+i[c];u+=c<20?1518500249+(r&o|~r&s):c<40?1859775393+(r^o^s):c<60?(r&o|r&s|o&s)-1894007588:(r^o^s)-899497514,l=s,s=o,o=r<<30|r>>>2,r=n,n=u}a[0]=a[0]+n|0,a[1]=a[1]+r|0,a[2]=a[2]+o|0,a[3]=a[3]+s|0,a[4]=a[4]+l|0},_doFinalize:function(){var e=this._data,t=e.words,a=8*this._nDataBytes,n=8*e.sigBytes;return t[n>>>5]|=128<<24-n%32,t[14+(n+64>>>9<<4)]=Math.floor(a/4294967296),t[15+(n+64>>>9<<4)]=a,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=n.clone.call(this);return e._hash=this._hash.clone(),e}}),e.SHA1=n._createHelper(o),e.HmacSHA1=n._createHmacHelper(o),s.SHA1)),de.exports;var e,t,a,n,r,i,o,s}var me,pe={exports:{}};function ve(){return me||(me=1,pe.exports=(e=j(),function(t){var a=e,n=a.lib,r=n.WordArray,i=n.Hasher,o=a.algo,s=[],l=[];!function(){function e(e){for(var a=t.sqrt(e),n=2;n<=a;n++)if(!(e%n))return!1;return!0}function a(e){return 4294967296*(e-(0|e))|0}for(var n=2,r=0;r<64;)e(n)&&(r<8&&(s[r]=a(t.pow(n,.5))),l[r]=a(t.pow(n,1/3)),r++),n++}();var c=[],d=o.SHA256=i.extend({_doReset:function(){this._hash=new r.init(s.slice(0))},_doProcessBlock:function(e,t){for(var a=this._hash.words,n=a[0],r=a[1],i=a[2],o=a[3],s=a[4],d=a[5],u=a[6],m=a[7],p=0;p<64;p++){if(p<16)c[p]=0|e[t+p];else{var v=c[p-15],g=(v<<25|v>>>7)^(v<<14|v>>>18)^v>>>3,f=c[p-2],h=(f<<15|f>>>17)^(f<<13|f>>>19)^f>>>10;c[p]=g+c[p-7]+h+c[p-16]}var y=n&r^n&i^r&i,w=(n<<30|n>>>2)^(n<<19|n>>>13)^(n<<10|n>>>22),E=m+((s<<26|s>>>6)^(s<<21|s>>>11)^(s<<7|s>>>25))+(s&d^~s&u)+l[p]+c[p];m=u,u=d,d=s,s=o+E|0,o=i,i=r,r=n,n=E+(w+y)|0}a[0]=a[0]+n|0,a[1]=a[1]+r|0,a[2]=a[2]+i|0,a[3]=a[3]+o|0,a[4]=a[4]+s|0,a[5]=a[5]+d|0,a[6]=a[6]+u|0,a[7]=a[7]+m|0},_doFinalize:function(){var e=this._data,a=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;return a[r>>>5]|=128<<24-r%32,a[14+(r+64>>>9<<4)]=t.floor(n/4294967296),a[15+(r+64>>>9<<4)]=n,e.sigBytes=4*a.length,this._process(),this._hash},clone:function(){var e=i.clone.call(this);return e._hash=this._hash.clone(),e}});a.SHA256=i._createHelper(d),a.HmacSHA256=i._createHmacHelper(d)}(Math),e.SHA256)),pe.exports;var e}var ge,fe={exports:{}};var he,ye={exports:{}};function we(){return he||(he=1,ye.exports=(e=j(),X(),function(){var t=e,a=t.lib.Hasher,n=t.x64,r=n.Word,i=n.WordArray,o=t.algo;function s(){return r.create.apply(r,arguments)}var l=[s(1116352408,3609767458),s(1899447441,602891725),s(3049323471,3964484399),s(3921009573,2173295548),s(961987163,4081628472),s(1508970993,3053834265),s(2453635748,2937671579),s(2870763221,3664609560),s(3624381080,2734883394),s(310598401,1164996542),s(607225278,1323610764),s(1426881987,3590304994),s(1925078388,4068182383),s(2162078206,991336113),s(2614888103,633803317),s(3248222580,3479774868),s(3835390401,2666613458),s(4022224774,944711139),s(264347078,2341262773),s(604807628,2007800933),s(770255983,1495990901),s(1249150122,1856431235),s(1555081692,3175218132),s(1996064986,2198950837),s(2554220882,3999719339),s(2821834349,766784016),s(2952996808,2566594879),s(3210313671,3203337956),s(3336571891,1034457026),s(3584528711,2466948901),s(113926993,3758326383),s(338241895,168717936),s(666307205,1188179964),s(773529912,1546045734),s(1294757372,1522805485),s(1396182291,2643833823),s(1695183700,2343527390),s(1986661051,1014477480),s(2177026350,1206759142),s(2456956037,344077627),s(2730485921,1290863460),s(2820302411,3158454273),s(3259730800,3505952657),s(3345764771,106217008),s(3516065817,3606008344),s(3600352804,1432725776),s(4094571909,1467031594),s(275423344,851169720),s(430227734,3100823752),s(506948616,1363258195),s(659060556,3750685593),s(883997877,3785050280),s(958139571,3318307427),s(1322822218,3812723403),s(1537002063,2003034995),s(1747873779,3602036899),s(1955562222,1575990012),s(2024104815,1125592928),s(2227730452,2716904306),s(2361852424,442776044),s(2428436474,593698344),s(2756734187,3733110249),s(3204031479,2999351573),s(3329325298,3815920427),s(3391569614,3928383900),s(3515267271,566280711),s(3940187606,3454069534),s(4118630271,4000239992),s(116418474,1914138554),s(174292421,2731055270),s(289380356,3203993006),s(460393269,320620315),s(685471733,587496836),s(852142971,1086792851),s(1017036298,365543100),s(1126000580,2618297676),s(1288033470,3409855158),s(1501505948,4234509866),s(1607167915,987167468),s(1816402316,1246189591)],c=[];!function(){for(var e=0;e<80;e++)c[e]=s()}();var d=o.SHA512=a.extend({_doReset:function(){this._hash=new i.init([new r.init(1779033703,4089235720),new r.init(3144134277,2227873595),new r.init(1013904242,4271175723),new r.init(2773480762,1595750129),new r.init(1359893119,2917565137),new r.init(2600822924,725511199),new r.init(528734635,4215389547),new r.init(1541459225,327033209)])},_doProcessBlock:function(e,t){for(var a=this._hash.words,n=a[0],r=a[1],i=a[2],o=a[3],s=a[4],d=a[5],u=a[6],m=a[7],p=n.high,v=n.low,g=r.high,f=r.low,h=i.high,y=i.low,w=o.high,E=o.low,N=s.high,x=s.low,V=d.high,_=d.low,b=u.high,k=u.low,S=m.high,B=m.low,C=p,D=v,A=g,T=f,I=h,F=y,P=w,R=E,z=N,M=x,O=V,L=_,$=b,H=k,U=S,j=B,W=0;W<80;W++){var K,X,G=c[W];if(W<16)X=G.high=0|e[t+2*W],K=G.low=0|e[t+2*W+1];else{var q=c[W-15],Z=q.high,J=q.low,Y=(Z>>>1|J<<31)^(Z>>>8|J<<24)^Z>>>7,Q=(J>>>1|Z<<31)^(J>>>8|Z<<24)^(J>>>7|Z<<25),ee=c[W-2],te=ee.high,ae=ee.low,ne=(te>>>19|ae<<13)^(te<<3|ae>>>29)^te>>>6,re=(ae>>>19|te<<13)^(ae<<3|te>>>29)^(ae>>>6|te<<26),ie=c[W-7],oe=ie.high,se=ie.low,le=c[W-16],ce=le.high,de=le.low;X=(X=(X=Y+oe+((K=Q+se)>>>0<Q>>>0?1:0))+ne+((K+=re)>>>0<re>>>0?1:0))+ce+((K+=de)>>>0<de>>>0?1:0),G.high=X,G.low=K}var ue,me=z&O^~z&$,pe=M&L^~M&H,ve=C&A^C&I^A&I,ge=D&T^D&F^T&F,fe=(C>>>28|D<<4)^(C<<30|D>>>2)^(C<<25|D>>>7),he=(D>>>28|C<<4)^(D<<30|C>>>2)^(D<<25|C>>>7),ye=(z>>>14|M<<18)^(z>>>18|M<<14)^(z<<23|M>>>9),we=(M>>>14|z<<18)^(M>>>18|z<<14)^(M<<23|z>>>9),Ee=l[W],Ne=Ee.high,xe=Ee.low,Ve=U+ye+((ue=j+we)>>>0<j>>>0?1:0),_e=he+ge;U=$,j=H,$=O,H=L,O=z,L=M,z=P+(Ve=(Ve=(Ve=Ve+me+((ue+=pe)>>>0<pe>>>0?1:0))+Ne+((ue+=xe)>>>0<xe>>>0?1:0))+X+((ue+=K)>>>0<K>>>0?1:0))+((M=R+ue|0)>>>0<R>>>0?1:0)|0,P=I,R=F,I=A,F=T,A=C,T=D,C=Ve+(fe+ve+(_e>>>0<he>>>0?1:0))+((D=ue+_e|0)>>>0<ue>>>0?1:0)|0}v=n.low=v+D,n.high=p+C+(v>>>0<D>>>0?1:0),f=r.low=f+T,r.high=g+A+(f>>>0<T>>>0?1:0),y=i.low=y+F,i.high=h+I+(y>>>0<F>>>0?1:0),E=o.low=E+R,o.high=w+P+(E>>>0<R>>>0?1:0),x=s.low=x+M,s.high=N+z+(x>>>0<M>>>0?1:0),_=d.low=_+L,d.high=V+O+(_>>>0<L>>>0?1:0),k=u.low=k+H,u.high=b+$+(k>>>0<H>>>0?1:0),B=m.low=B+j,m.high=S+U+(B>>>0<j>>>0?1:0)},_doFinalize:function(){var e=this._data,t=e.words,a=8*this._nDataBytes,n=8*e.sigBytes;return t[n>>>5]|=128<<24-n%32,t[30+(n+128>>>10<<5)]=Math.floor(a/4294967296),t[31+(n+128>>>10<<5)]=a,e.sigBytes=4*t.length,this._process(),this._hash.toX32()},clone:function(){var e=a.clone.call(this);return e._hash=this._hash.clone(),e},blockSize:32});t.SHA512=a._createHelper(d),t.HmacSHA512=a._createHmacHelper(d)}(),e.SHA512)),ye.exports;var e}var Ee,Ne={exports:{}};var xe,Ve={exports:{}};function _e(){return xe||(xe=1,Ve.exports=(e=j(),X(),function(t){var a=e,n=a.lib,r=n.WordArray,i=n.Hasher,o=a.x64.Word,s=a.algo,l=[],c=[],d=[];!function(){for(var e=1,t=0,a=0;a<24;a++){l[e+5*t]=(a+1)*(a+2)/2%64;var n=(2*e+3*t)%5;e=t%5,t=n}for(e=0;e<5;e++)for(t=0;t<5;t++)c[e+5*t]=t+(2*e+3*t)%5*5;for(var r=1,i=0;i<24;i++){for(var s=0,u=0,m=0;m<7;m++){if(1&r){var p=(1<<m)-1;p<32?u^=1<<p:s^=1<<p-32}128&r?r=r<<1^113:r<<=1}d[i]=o.create(s,u)}}();var u=[];!function(){for(var e=0;e<25;e++)u[e]=o.create()}();var m=s.SHA3=i.extend({cfg:i.cfg.extend({outputLength:512}),_doReset:function(){for(var e=this._state=[],t=0;t<25;t++)e[t]=new o.init;this.blockSize=(1600-2*this.cfg.outputLength)/32},_doProcessBlock:function(e,t){for(var a=this._state,n=this.blockSize/2,r=0;r<n;r++){var i=e[t+2*r],o=e[t+2*r+1];i=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),o=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),(B=a[r]).high^=o,B.low^=i}for(var s=0;s<24;s++){for(var m=0;m<5;m++){for(var p=0,v=0,g=0;g<5;g++)p^=(B=a[m+5*g]).high,v^=B.low;var f=u[m];f.high=p,f.low=v}for(m=0;m<5;m++){var h=u[(m+4)%5],y=u[(m+1)%5],w=y.high,E=y.low;for(p=h.high^(w<<1|E>>>31),v=h.low^(E<<1|w>>>31),g=0;g<5;g++)(B=a[m+5*g]).high^=p,B.low^=v}for(var N=1;N<25;N++){var x=(B=a[N]).high,V=B.low,_=l[N];_<32?(p=x<<_|V>>>32-_,v=V<<_|x>>>32-_):(p=V<<_-32|x>>>64-_,v=x<<_-32|V>>>64-_);var b=u[c[N]];b.high=p,b.low=v}var k=u[0],S=a[0];for(k.high=S.high,k.low=S.low,m=0;m<5;m++)for(g=0;g<5;g++){var B=a[N=m+5*g],C=u[N],D=u[(m+1)%5+5*g],A=u[(m+2)%5+5*g];B.high=C.high^~D.high&A.high,B.low=C.low^~D.low&A.low}B=a[0];var T=d[s];B.high^=T.high,B.low^=T.low}},_doFinalize:function(){var e=this._data,a=e.words;this._nDataBytes;var n=8*e.sigBytes,i=32*this.blockSize;a[n>>>5]|=1<<24-n%32,a[(t.ceil((n+1)/i)*i>>>5)-1]|=128,e.sigBytes=4*a.length,this._process();for(var o=this._state,s=this.cfg.outputLength/8,l=s/8,c=[],d=0;d<l;d++){var u=o[d],m=u.high,p=u.low;m=16711935&(m<<8|m>>>24)|4278255360&(m<<24|m>>>8),p=16711935&(p<<8|p>>>24)|4278255360&(p<<24|p>>>8),c.push(p),c.push(m)}return new r.init(c,s)},clone:function(){for(var e=i.clone.call(this),t=e._state=this._state.slice(0),a=0;a<25;a++)t[a]=t[a].clone();return e}});a.SHA3=i._createHelper(m),a.HmacSHA3=i._createHmacHelper(m)}(Math),e.SHA3)),Ve.exports;var e}var be,ke={exports:{}};var Se,Be={exports:{}};function Ce(){return Se||(Se=1,Be.exports=(e=j(),a=(t=e).lib.Base,n=t.enc.Utf8,void(t.algo.HMAC=a.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=n.parse(t));var a=e.blockSize,r=4*a;t.sigBytes>r&&(t=e.finalize(t)),t.clamp();for(var i=this._oKey=t.clone(),o=this._iKey=t.clone(),s=i.words,l=o.words,c=0;c<a;c++)s[c]^=1549556828,l[c]^=909522486;i.sigBytes=o.sigBytes=r,this.reset()},reset:function(){var e=this._hasher;e.reset(),e.update(this._iKey)},update:function(e){return this._hasher.update(e),this},finalize:function(e){var t=this._hasher,a=t.finalize(e);return t.reset(),t.finalize(this._oKey.clone().concat(a))}})))),Be.exports;var e,t,a,n}var De,Ae={exports:{}};var Te,Ie={exports:{}};function Fe(){return Te||(Te=1,Ie.exports=(s=j(),ue(),Ce(),t=(e=s).lib,a=t.Base,n=t.WordArray,r=e.algo,i=r.MD5,o=r.EvpKDF=a.extend({cfg:a.extend({keySize:4,hasher:i,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var a,r=this.cfg,i=r.hasher.create(),o=n.create(),s=o.words,l=r.keySize,c=r.iterations;s.length<l;){a&&i.update(a),a=i.update(e).finalize(t),i.reset();for(var d=1;d<c;d++)a=i.finalize(a),i.reset();o.concat(a)}return o.sigBytes=4*l,o}}),e.EvpKDF=function(e,t,a){return o.create(a).compute(e,t)},s.EvpKDF)),Ie.exports;var e,t,a,n,r,i,o,s}var Pe,Re={exports:{}};function ze(){return Pe||(Pe=1,Re.exports=(e=j(),Fe(),void(e.lib.Cipher||function(t){var a=e,n=a.lib,r=n.Base,i=n.WordArray,o=n.BufferedBlockAlgorithm,s=a.enc;s.Utf8;var l=s.Base64,c=a.algo.EvpKDF,d=n.Cipher=o.extend({cfg:r.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,a){this.cfg=this.cfg.extend(a),this._xformMode=e,this._key=t,this.reset()},reset:function(){o.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){return e&&this._append(e),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function e(e){return"string"==typeof e?w:h}return function(t){return{encrypt:function(a,n,r){return e(n).encrypt(t,a,n,r)},decrypt:function(a,n,r){return e(n).decrypt(t,a,n,r)}}}}()});n.StreamCipher=d.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var u=a.mode={},m=n.BlockCipherMode=r.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}}),p=u.CBC=function(){var e=m.extend();function a(e,a,n){var r,i=this._iv;i?(r=i,this._iv=t):r=this._prevBlock;for(var o=0;o<n;o++)e[a+o]^=r[o]}return e.Encryptor=e.extend({processBlock:function(e,t){var n=this._cipher,r=n.blockSize;a.call(this,e,t,r),n.encryptBlock(e,t),this._prevBlock=e.slice(t,t+r)}}),e.Decryptor=e.extend({processBlock:function(e,t){var n=this._cipher,r=n.blockSize,i=e.slice(t,t+r);n.decryptBlock(e,t),a.call(this,e,t,r),this._prevBlock=i}}),e}(),v=(a.pad={}).Pkcs7={pad:function(e,t){for(var a=4*t,n=a-e.sigBytes%a,r=n<<24|n<<16|n<<8|n,o=[],s=0;s<n;s+=4)o.push(r);var l=i.create(o,n);e.concat(l)},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}};n.BlockCipher=d.extend({cfg:d.cfg.extend({mode:p,padding:v}),reset:function(){var e;d.reset.call(this);var t=this.cfg,a=t.iv,n=t.mode;this._xformMode==this._ENC_XFORM_MODE?e=n.createEncryptor:(e=n.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==e?this._mode.init(this,a&&a.words):(this._mode=e.call(n,this,a&&a.words),this._mode.__creator=e)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e,t=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(t.pad(this._data,this.blockSize),e=this._process(!0)):(e=this._process(!0),t.unpad(e)),e},blockSize:4});var g=n.CipherParams=r.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),f=(a.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext,a=e.salt;return(a?i.create([1398893684,1701076831]).concat(a).concat(t):t).toString(l)},parse:function(e){var t,a=l.parse(e),n=a.words;return 1398893684==n[0]&&1701076831==n[1]&&(t=i.create(n.slice(2,4)),n.splice(0,4),a.sigBytes-=16),g.create({ciphertext:a,salt:t})}},h=n.SerializableCipher=r.extend({cfg:r.extend({format:f}),encrypt:function(e,t,a,n){n=this.cfg.extend(n);var r=e.createEncryptor(a,n),i=r.finalize(t),o=r.cfg;return g.create({ciphertext:i,key:a,iv:o.iv,algorithm:e,mode:o.mode,padding:o.padding,blockSize:e.blockSize,formatter:n.format})},decrypt:function(e,t,a,n){return n=this.cfg.extend(n),t=this._parse(t,n.format),e.createDecryptor(a,n).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),y=(a.kdf={}).OpenSSL={execute:function(e,t,a,n,r){if(n||(n=i.random(8)),r)o=c.create({keySize:t+a,hasher:r}).compute(e,n);else var o=c.create({keySize:t+a}).compute(e,n);var s=i.create(o.words.slice(t),4*a);return o.sigBytes=4*t,g.create({key:o,iv:s,salt:n})}},w=n.PasswordBasedCipher=h.extend({cfg:h.cfg.extend({kdf:y}),encrypt:function(e,t,a,n){var r=(n=this.cfg.extend(n)).kdf.execute(a,e.keySize,e.ivSize,n.salt,n.hasher);n.iv=r.iv;var i=h.encrypt.call(this,e,t,r.key,n);return i.mixIn(r),i},decrypt:function(e,t,a,n){n=this.cfg.extend(n),t=this._parse(t,n.format);var r=n.kdf.execute(a,e.keySize,e.ivSize,t.salt,n.hasher);return n.iv=r.iv,h.decrypt.call(this,e,t,r.key,n)}})}()))),Re.exports;var e}var Me,Oe={exports:{}};var Le,$e={exports:{}};var He,Ue={exports:{}};function je(){return He||(He=1,Ue.exports=(e=j(),ze(), |
| | | /** @preserve |
| | | * Counter block mode compatible with Dr Brian Gladman fileenc.c |
| | | * derived from CryptoJS.mode.CTR |
| | | * Jan Hruby jhruby.web@gmail.com |
| | | */ |
| | | e.mode.CTRGladman=function(){var t=e.lib.BlockCipherMode.extend();function a(e){if(255==(e>>24&255)){var t=e>>16&255,a=e>>8&255,n=255&e;255===t?(t=0,255===a?(a=0,255===n?n=0:++n):++a):++t,e=0,e+=t<<16,e+=a<<8,e+=n}else e+=1<<24;return e}function n(e){return 0===(e[0]=a(e[0]))&&(e[1]=a(e[1])),e}var r=t.Encryptor=t.extend({processBlock:function(e,t){var a=this._cipher,r=a.blockSize,i=this._iv,o=this._counter;i&&(o=this._counter=i.slice(0),this._iv=void 0),n(o);var s=o.slice(0);a.encryptBlock(s,0);for(var l=0;l<r;l++)e[t+l]^=s[l]}});return t.Decryptor=r,t}(),e.mode.CTRGladman)),$e.exports;var e}var We,Ke={exports:{}};var Xe,Ge={exports:{}};var qe,Ze={exports:{}};var Ye,Je={exports:{}};var Qe,et={exports:{}};var tt,at={exports:{}};var nt,rt={exports:{}};var it,ot={exports:{}};var st,lt={exports:{}};var ct,dt={exports:{}};function ut(){return ct||(ct=1,dt.exports=(e=j(),ae(),le(),Fe(),Le(),function(){var t=e,a=t.lib,n=a.WordArray,r=a.BlockCipher,i=t.algo,o=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],s=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],l=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],c=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],d=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],u=i.DES=r.extend({_doReset:function(){for(var e=this._key.words,t=[],a=0;a<56;a++){var n=o[a]-1;t[a]=e[n>>>5]>>>31-n%32&1}for(var r=this._subKeys=[],i=0;i<16;i++){var c=r[i]=[],d=l[i];for(a=0;a<24;a++)c[a/6|0]|=t[(s[a]-1+d)%28]<<31-a%6,c[4+(a/6|0)]|=t[28+(s[a+24]-1+d)%28]<<31-a%6;for(c[0]=c[0]<<1|c[0]>>>31,a=1;a<7;a++)c[a]=c[a]>>>4*(a-1)+3;c[7]=c[7]<<5|c[7]>>>27}var u=this._invSubKeys=[];for(a=0;a<16;a++)u[a]=r[15-a]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._subKeys)},decryptBlock:function(e,t){this._doCryptBlock(e,t,this._invSubKeys)},_doCryptBlock:function(e,t,a){this._lBlock=e[t],this._rBlock=e[t+1],m.call(this,4,252645135),m.call(this,16,65535),p.call(this,2,858993459),p.call(this,8,16711935),m.call(this,1,1431655765);for(var n=0;n<16;n++){for(var r=a[n],i=this._lBlock,o=this._rBlock,s=0,l=0;l<8;l++)s|=c[l][((o^r[l])&d[l])>>>0];this._lBlock=o,this._rBlock=i^s}var u=this._lBlock;this._lBlock=this._rBlock,this._rBlock=u,m.call(this,1,1431655765),p.call(this,8,16711935),p.call(this,2,858993459),m.call(this,16,65535),m.call(this,4,252645135),e[t]=this._lBlock,e[t+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function m(e,t){var a=(this._lBlock>>>e^this._rBlock)&t;this._rBlock^=a,this._lBlock^=a<<e}function p(e,t){var a=(this._rBlock>>>e^this._lBlock)&t;this._lBlock^=a,this._rBlock^=a<<e}t.DES=r._createHelper(u);var v=i.TripleDES=r.extend({_doReset:function(){var e=this._key.words;if(2!==e.length&&4!==e.length&&e.length<6)throw new Error("Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.");var t=e.slice(0,2),a=e.length<4?e.slice(0,2):e.slice(2,4),r=e.length<6?e.slice(0,2):e.slice(4,6);this._des1=u.createEncryptor(n.create(t)),this._des2=u.createEncryptor(n.create(a)),this._des3=u.createEncryptor(n.create(r))},encryptBlock:function(e,t){this._des1.encryptBlock(e,t),this._des2.decryptBlock(e,t),this._des3.encryptBlock(e,t)},decryptBlock:function(e,t){this._des3.decryptBlock(e,t),this._des2.encryptBlock(e,t),this._des1.decryptBlock(e,t)},keySize:6,ivSize:2,blockSize:2});t.TripleDES=r._createHelper(v)}(),e.TripleDES)),dt.exports;var e}var mt,pt={exports:{}};var vt,gt={exports:{}};var ft,ht={exports:{}};var yt,wt,Et,Nt,xt,Vt,_t,bt={exports:{}};function kt(){return yt||(yt=1,bt.exports=(e=j(),ae(),le(),Fe(),Le(),function(){var t=e,a=t.lib.BlockCipher,n=t.algo;const r=16,i=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],o=[[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946],[1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055],[3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504],[976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462]];var s={pbox:[],sbox:[]};function l(e,t){let a=t>>24&255,n=t>>16&255,r=t>>8&255,i=255&t,o=e.sbox[0][a]+e.sbox[1][n];return o^=e.sbox[2][r],o+=e.sbox[3][i],o}function c(e,t,a){let n,i=t,o=a;for(let s=0;s<r;++s)i^=e.pbox[s],o=l(e,i)^o,n=i,i=o,o=n;return n=i,i=o,o=n,o^=e.pbox[r],i^=e.pbox[r+1],{left:i,right:o}}function d(e,t,a){let n,i=t,o=a;for(let s=r+1;s>1;--s)i^=e.pbox[s],o=l(e,i)^o,n=i,i=o,o=n;return n=i,i=o,o=n,o^=e.pbox[1],i^=e.pbox[0],{left:i,right:o}}function u(e,t,a){for(let r=0;r<4;r++){e.sbox[r]=[];for(let t=0;t<256;t++)e.sbox[r][t]=o[r][t]}let n=0;for(let o=0;o<r+2;o++)e.pbox[o]=i[o]^t[n],n++,n>=a&&(n=0);let s=0,l=0,d=0;for(let i=0;i<r+2;i+=2)d=c(e,s,l),s=d.left,l=d.right,e.pbox[i]=s,e.pbox[i+1]=l;for(let r=0;r<4;r++)for(let t=0;t<256;t+=2)d=c(e,s,l),s=d.left,l=d.right,e.sbox[r][t]=s,e.sbox[r][t+1]=l;return!0}var m=n.Blowfish=a.extend({_doReset:function(){if(this._keyPriorReset!==this._key){var e=this._keyPriorReset=this._key,t=e.words,a=e.sigBytes/4;u(s,t,a)}},encryptBlock:function(e,t){var a=c(s,e[t],e[t+1]);e[t]=a.left,e[t+1]=a.right},decryptBlock:function(e,t){var a=d(s,e[t],e[t+1]);e[t]=a.left,e[t+1]=a.right},blockSize:2,keySize:4,ivSize:2});t.Blowfish=a._createHelper(m)}(),e.Blowfish)),bt.exports;var e}z.exports=function(e){return e}(j(),X(),Z(),Q(),ae(),ie(),le(),ue(),ve(),ge||(ge=1,fe.exports=(_t=j(),ve(),Et=(wt=_t).lib.WordArray,Nt=wt.algo,xt=Nt.SHA256,Vt=Nt.SHA224=xt.extend({_doReset:function(){this._hash=new Et.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var e=xt._doFinalize.call(this);return e.sigBytes-=4,e}}),wt.SHA224=xt._createHelper(Vt),wt.HmacSHA224=xt._createHmacHelper(Vt),_t.SHA224)),we(),function(){return Ee||(Ee=1,Ne.exports=(s=j(),X(),we(),t=(e=s).x64,a=t.Word,n=t.WordArray,r=e.algo,i=r.SHA512,o=r.SHA384=i.extend({_doReset:function(){this._hash=new n.init([new a.init(3418070365,3238371032),new a.init(1654270250,914150663),new a.init(2438529370,812702999),new a.init(355462360,4144912697),new a.init(1731405415,4290775857),new a.init(2394180231,1750603025),new a.init(3675008525,1694076839),new a.init(1203062813,3204075428)])},_doFinalize:function(){var e=i._doFinalize.call(this);return e.sigBytes-=16,e}}),e.SHA384=i._createHelper(o),e.HmacSHA384=i._createHmacHelper(o),s.SHA384)),Ne.exports;var e,t,a,n,r,i,o,s}(),_e(),function(){return be||(be=1,ke.exports=(e=j(), |
| | | e.mode.CTRGladman=function(){var t=e.lib.BlockCipherMode.extend();function a(e){if(255==(e>>24&255)){var t=e>>16&255,a=e>>8&255,n=255&e;255===t?(t=0,255===a?(a=0,255===n?n=0:++n):++a):++t,e=0,e+=t<<16,e+=a<<8,e+=n}else e+=1<<24;return e}function n(e){return 0===(e[0]=a(e[0]))&&(e[1]=a(e[1])),e}var r=t.Encryptor=t.extend({processBlock:function(e,t){var a=this._cipher,r=a.blockSize,i=this._iv,o=this._counter;i&&(o=this._counter=i.slice(0),this._iv=void 0),n(o);var s=o.slice(0);a.encryptBlock(s,0);for(var l=0;l<r;l++)e[t+l]^=s[l]}});return t.Decryptor=r,t}(),e.mode.CTRGladman)),Ue.exports;var e}var We,Ke={exports:{}};var Xe,Ge={exports:{}};var qe,Ze={exports:{}};var Je,Ye={exports:{}};var Qe,et={exports:{}};var tt,at={exports:{}};var nt,rt={exports:{}};var it,ot={exports:{}};var st,lt={exports:{}};var ct,dt={exports:{}};function ut(){return ct||(ct=1,dt.exports=(e=j(),ae(),le(),Fe(),ze(),function(){var t=e,a=t.lib,n=a.WordArray,r=a.BlockCipher,i=t.algo,o=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],s=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],l=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],c=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],d=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],u=i.DES=r.extend({_doReset:function(){for(var e=this._key.words,t=[],a=0;a<56;a++){var n=o[a]-1;t[a]=e[n>>>5]>>>31-n%32&1}for(var r=this._subKeys=[],i=0;i<16;i++){var c=r[i]=[],d=l[i];for(a=0;a<24;a++)c[a/6|0]|=t[(s[a]-1+d)%28]<<31-a%6,c[4+(a/6|0)]|=t[28+(s[a+24]-1+d)%28]<<31-a%6;for(c[0]=c[0]<<1|c[0]>>>31,a=1;a<7;a++)c[a]=c[a]>>>4*(a-1)+3;c[7]=c[7]<<5|c[7]>>>27}var u=this._invSubKeys=[];for(a=0;a<16;a++)u[a]=r[15-a]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._subKeys)},decryptBlock:function(e,t){this._doCryptBlock(e,t,this._invSubKeys)},_doCryptBlock:function(e,t,a){this._lBlock=e[t],this._rBlock=e[t+1],m.call(this,4,252645135),m.call(this,16,65535),p.call(this,2,858993459),p.call(this,8,16711935),m.call(this,1,1431655765);for(var n=0;n<16;n++){for(var r=a[n],i=this._lBlock,o=this._rBlock,s=0,l=0;l<8;l++)s|=c[l][((o^r[l])&d[l])>>>0];this._lBlock=o,this._rBlock=i^s}var u=this._lBlock;this._lBlock=this._rBlock,this._rBlock=u,m.call(this,1,1431655765),p.call(this,8,16711935),p.call(this,2,858993459),m.call(this,16,65535),m.call(this,4,252645135),e[t]=this._lBlock,e[t+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function m(e,t){var a=(this._lBlock>>>e^this._rBlock)&t;this._rBlock^=a,this._lBlock^=a<<e}function p(e,t){var a=(this._rBlock>>>e^this._lBlock)&t;this._lBlock^=a,this._rBlock^=a<<e}t.DES=r._createHelper(u);var v=i.TripleDES=r.extend({_doReset:function(){var e=this._key.words;if(2!==e.length&&4!==e.length&&e.length<6)throw new Error("Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.");var t=e.slice(0,2),a=e.length<4?e.slice(0,2):e.slice(2,4),r=e.length<6?e.slice(0,2):e.slice(4,6);this._des1=u.createEncryptor(n.create(t)),this._des2=u.createEncryptor(n.create(a)),this._des3=u.createEncryptor(n.create(r))},encryptBlock:function(e,t){this._des1.encryptBlock(e,t),this._des2.decryptBlock(e,t),this._des3.encryptBlock(e,t)},decryptBlock:function(e,t){this._des3.decryptBlock(e,t),this._des2.encryptBlock(e,t),this._des1.decryptBlock(e,t)},keySize:6,ivSize:2,blockSize:2});t.TripleDES=r._createHelper(v)}(),e.TripleDES)),dt.exports;var e}var mt,pt={exports:{}};var vt,gt={exports:{}};var ft,ht={exports:{}};var yt,wt,Et,Nt,xt,Vt,_t,bt={exports:{}};function kt(){return yt||(yt=1,bt.exports=(e=j(),ae(),le(),Fe(),ze(),function(){var t=e,a=t.lib.BlockCipher,n=t.algo;const r=16,i=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],o=[[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946],[1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055],[3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504],[976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462]];var s={pbox:[],sbox:[]};function l(e,t){let a=t>>24&255,n=t>>16&255,r=t>>8&255,i=255&t,o=e.sbox[0][a]+e.sbox[1][n];return o^=e.sbox[2][r],o+=e.sbox[3][i],o}function c(e,t,a){let n,i=t,o=a;for(let s=0;s<r;++s)i^=e.pbox[s],o=l(e,i)^o,n=i,i=o,o=n;return n=i,i=o,o=n,o^=e.pbox[r],i^=e.pbox[r+1],{left:i,right:o}}function d(e,t,a){let n,i=t,o=a;for(let s=r+1;s>1;--s)i^=e.pbox[s],o=l(e,i)^o,n=i,i=o,o=n;return n=i,i=o,o=n,o^=e.pbox[1],i^=e.pbox[0],{left:i,right:o}}function u(e,t,a){for(let r=0;r<4;r++){e.sbox[r]=[];for(let t=0;t<256;t++)e.sbox[r][t]=o[r][t]}let n=0;for(let o=0;o<r+2;o++)e.pbox[o]=i[o]^t[n],n++,n>=a&&(n=0);let s=0,l=0,d=0;for(let i=0;i<r+2;i+=2)d=c(e,s,l),s=d.left,l=d.right,e.pbox[i]=s,e.pbox[i+1]=l;for(let r=0;r<4;r++)for(let t=0;t<256;t+=2)d=c(e,s,l),s=d.left,l=d.right,e.sbox[r][t]=s,e.sbox[r][t+1]=l;return!0}var m=n.Blowfish=a.extend({_doReset:function(){if(this._keyPriorReset!==this._key){var e=this._keyPriorReset=this._key,t=e.words,a=e.sigBytes/4;u(s,t,a)}},encryptBlock:function(e,t){var a=c(s,e[t],e[t+1]);e[t]=a.left,e[t+1]=a.right},decryptBlock:function(e,t){var a=d(s,e[t],e[t+1]);e[t]=a.left,e[t+1]=a.right},blockSize:2,keySize:4,ivSize:2});t.Blowfish=a._createHelper(m)}(),e.Blowfish)),bt.exports;var e}M.exports=function(e){return e}(j(),X(),Z(),Q(),ae(),ie(),le(),ue(),ve(),ge||(ge=1,fe.exports=(_t=j(),ve(),Et=(wt=_t).lib.WordArray,Nt=wt.algo,xt=Nt.SHA256,Vt=Nt.SHA224=xt.extend({_doReset:function(){this._hash=new Et.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var e=xt._doFinalize.call(this);return e.sigBytes-=4,e}}),wt.SHA224=xt._createHelper(Vt),wt.HmacSHA224=xt._createHmacHelper(Vt),_t.SHA224)),we(),function(){return Ee||(Ee=1,Ne.exports=(s=j(),X(),we(),t=(e=s).x64,a=t.Word,n=t.WordArray,r=e.algo,i=r.SHA512,o=r.SHA384=i.extend({_doReset:function(){this._hash=new n.init([new a.init(3418070365,3238371032),new a.init(1654270250,914150663),new a.init(2438529370,812702999),new a.init(355462360,4144912697),new a.init(1731405415,4290775857),new a.init(2394180231,1750603025),new a.init(3675008525,1694076839),new a.init(1203062813,3204075428)])},_doFinalize:function(){var e=i._doFinalize.call(this);return e.sigBytes-=16,e}}),e.SHA384=i._createHelper(o),e.HmacSHA384=i._createHmacHelper(o),s.SHA384)),Ne.exports;var e,t,a,n,r,i,o,s}(),_e(),function(){return be||(be=1,ke.exports=(e=j(), |
| | | /** @preserve |
| | | (c) 2012 by Cédric Mesnil. All rights reserved. |
| | | |
| | |
| | | |
| | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| | | */ |
| | | function(t){var a=e,n=a.lib,r=n.WordArray,i=n.Hasher,o=a.algo,s=r.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),l=r.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),c=r.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),d=r.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),u=r.create([0,1518500249,1859775393,2400959708,2840853838]),m=r.create([1352829926,1548603684,1836072691,2053994217,0]),p=o.RIPEMD160=i.extend({_doReset:function(){this._hash=r.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var a=0;a<16;a++){var n=t+a,r=e[n];e[n]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8)}var i,o,p,E,N,x,V,_,b,k,S,B=this._hash.words,C=u.words,D=m.words,A=s.words,T=l.words,I=c.words,F=d.words;for(x=i=B[0],V=o=B[1],_=p=B[2],b=E=B[3],k=N=B[4],a=0;a<80;a+=1)S=i+e[t+A[a]]|0,S+=a<16?v(o,p,E)+C[0]:a<32?g(o,p,E)+C[1]:a<48?f(o,p,E)+C[2]:a<64?h(o,p,E)+C[3]:y(o,p,E)+C[4],S=(S=w(S|=0,I[a]))+N|0,i=N,N=E,E=w(p,10),p=o,o=S,S=x+e[t+T[a]]|0,S+=a<16?y(V,_,b)+D[0]:a<32?h(V,_,b)+D[1]:a<48?f(V,_,b)+D[2]:a<64?g(V,_,b)+D[3]:v(V,_,b)+D[4],S=(S=w(S|=0,F[a]))+k|0,x=k,k=b,b=w(_,10),_=V,V=S;S=B[1]+p+b|0,B[1]=B[2]+E+k|0,B[2]=B[3]+N+x|0,B[3]=B[4]+i+V|0,B[4]=B[0]+o+_|0,B[0]=S},_doFinalize:function(){var e=this._data,t=e.words,a=8*this._nDataBytes,n=8*e.sigBytes;t[n>>>5]|=128<<24-n%32,t[14+(n+64>>>9<<4)]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),e.sigBytes=4*(t.length+1),this._process();for(var r=this._hash,i=r.words,o=0;o<5;o++){var s=i[o];i[o]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}return r},clone:function(){var e=i.clone.call(this);return e._hash=this._hash.clone(),e}});function v(e,t,a){return e^t^a}function g(e,t,a){return e&t|~e&a}function f(e,t,a){return(e|~t)^a}function h(e,t,a){return e&a|t&~a}function y(e,t,a){return e^(t|~a)}function w(e,t){return e<<t|e>>>32-t}a.RIPEMD160=i._createHelper(p),a.HmacRIPEMD160=i._createHmacHelper(p)}(),e.RIPEMD160)),ke.exports;var e}(),Ce(),function(){return De||(De=1,Ae.exports=(l=j(),ve(),Ce(),t=(e=l).lib,a=t.Base,n=t.WordArray,r=e.algo,i=r.SHA256,o=r.HMAC,s=r.PBKDF2=a.extend({cfg:a.extend({keySize:4,hasher:i,iterations:25e4}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var a=this.cfg,r=o.create(a.hasher,e),i=n.create(),s=n.create([1]),l=i.words,c=s.words,d=a.keySize,u=a.iterations;l.length<d;){var m=r.update(t).finalize(s);r.reset();for(var p=m.words,v=p.length,g=m,f=1;f<u;f++){g=r.finalize(g),r.reset();for(var h=g.words,y=0;y<v;y++)p[y]^=h[y]}i.concat(m),c[0]++}return i.sigBytes=4*d,i}}),e.PBKDF2=function(e,t,a){return s.create(a).compute(e,t)},l.PBKDF2)),Ae.exports;var e,t,a,n,r,i,o,s,l}(),Fe(),Le(),function(){return ze||(ze=1,Me.exports=(e=j(),Le(),e.mode.CFB=function(){var t=e.lib.BlockCipherMode.extend();function a(e,t,a,n){var r,i=this._iv;i?(r=i.slice(0),this._iv=void 0):r=this._prevBlock,n.encryptBlock(r,0);for(var o=0;o<a;o++)e[t+o]^=r[o]}return t.Encryptor=t.extend({processBlock:function(e,t){var n=this._cipher,r=n.blockSize;a.call(this,e,t,r,n),this._prevBlock=e.slice(t,t+r)}}),t.Decryptor=t.extend({processBlock:function(e,t){var n=this._cipher,r=n.blockSize,i=e.slice(t,t+r);a.call(this,e,t,r,n),this._prevBlock=i}}),t}(),e.mode.CFB)),Me.exports;var e}(),function(){return Oe||(Oe=1,He.exports=(a=j(),Le(),a.mode.CTR=(e=a.lib.BlockCipherMode.extend(),t=e.Encryptor=e.extend({processBlock:function(e,t){var a=this._cipher,n=a.blockSize,r=this._iv,i=this._counter;r&&(i=this._counter=r.slice(0),this._iv=void 0);var o=i.slice(0);a.encryptBlock(o,0),i[n-1]=i[n-1]+1|0;for(var s=0;s<n;s++)e[t+s]^=o[s]}}),e.Decryptor=t,e),a.mode.CTR)),He.exports;var e,t,a}(),je(),function(){return We||(We=1,Ke.exports=(a=j(),Le(),a.mode.OFB=(e=a.lib.BlockCipherMode.extend(),t=e.Encryptor=e.extend({processBlock:function(e,t){var a=this._cipher,n=a.blockSize,r=this._iv,i=this._keystream;r&&(i=this._keystream=r.slice(0),this._iv=void 0),a.encryptBlock(i,0);for(var o=0;o<n;o++)e[t+o]^=i[o]}}),e.Decryptor=t,e),a.mode.OFB)),Ke.exports;var e,t,a}(),function(){return Xe||(Xe=1,Ge.exports=(t=j(),Le(),t.mode.ECB=((e=t.lib.BlockCipherMode.extend()).Encryptor=e.extend({processBlock:function(e,t){this._cipher.encryptBlock(e,t)}}),e.Decryptor=e.extend({processBlock:function(e,t){this._cipher.decryptBlock(e,t)}}),e),t.mode.ECB)),Ge.exports;var e,t}(),function(){return qe||(qe=1,Ze.exports=(e=j(),Le(),e.pad.AnsiX923={pad:function(e,t){var a=e.sigBytes,n=4*t,r=n-a%n,i=a+r-1;e.clamp(),e.words[i>>>2]|=r<<24-i%4*8,e.sigBytes+=r},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},e.pad.Ansix923)),Ze.exports;var e}(),function(){return Ye||(Ye=1,Je.exports=(e=j(),Le(),e.pad.Iso10126={pad:function(t,a){var n=4*a,r=n-t.sigBytes%n;t.concat(e.lib.WordArray.random(r-1)).concat(e.lib.WordArray.create([r<<24],1))},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},e.pad.Iso10126)),Je.exports;var e}(),function(){return Qe||(Qe=1,et.exports=(e=j(),Le(),e.pad.Iso97971={pad:function(t,a){t.concat(e.lib.WordArray.create([2147483648],1)),e.pad.ZeroPadding.pad(t,a)},unpad:function(t){e.pad.ZeroPadding.unpad(t),t.sigBytes--}},e.pad.Iso97971)),et.exports;var e}(),function(){return tt||(tt=1,at.exports=(e=j(),Le(),e.pad.ZeroPadding={pad:function(e,t){var a=4*t;e.clamp(),e.sigBytes+=a-(e.sigBytes%a||a)},unpad:function(e){var t=e.words,a=e.sigBytes-1;for(a=e.sigBytes-1;a>=0;a--)if(t[a>>>2]>>>24-a%4*8&255){e.sigBytes=a+1;break}}},e.pad.ZeroPadding)),at.exports;var e}(),function(){return nt||(nt=1,rt.exports=(e=j(),Le(),e.pad.NoPadding={pad:function(){},unpad:function(){}},e.pad.NoPadding)),rt.exports;var e}(),function(){return it||(it=1,ot.exports=(n=j(),Le(),t=(e=n).lib.CipherParams,a=e.enc.Hex,e.format.Hex={stringify:function(e){return e.ciphertext.toString(a)},parse:function(e){var n=a.parse(e);return t.create({ciphertext:n})}},n.format.Hex)),ot.exports;var e,t,a,n}(),function(){return st||(st=1,lt.exports=(e=j(),ae(),le(),Fe(),Le(),function(){var t=e,a=t.lib.BlockCipher,n=t.algo,r=[],i=[],o=[],s=[],l=[],c=[],d=[],u=[],m=[],p=[];!function(){for(var e=[],t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;var a=0,n=0;for(t=0;t<256;t++){var v=n^n<<1^n<<2^n<<3^n<<4;v=v>>>8^255&v^99,r[a]=v,i[v]=a;var g=e[a],f=e[g],h=e[f],y=257*e[v]^16843008*v;o[a]=y<<24|y>>>8,s[a]=y<<16|y>>>16,l[a]=y<<8|y>>>24,c[a]=y,y=16843009*h^65537*f^257*g^16843008*a,d[v]=y<<24|y>>>8,u[v]=y<<16|y>>>16,m[v]=y<<8|y>>>24,p[v]=y,a?(a=g^e[e[e[h^g]]],n^=e[e[n]]):a=n=1}}();var v=[0,1,2,4,8,16,32,64,128,27,54],g=n.AES=a.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var e=this._keyPriorReset=this._key,t=e.words,a=e.sigBytes/4,n=4*((this._nRounds=a+6)+1),i=this._keySchedule=[],o=0;o<n;o++)o<a?i[o]=t[o]:(c=i[o-1],o%a?a>6&&o%a==4&&(c=r[c>>>24]<<24|r[c>>>16&255]<<16|r[c>>>8&255]<<8|r[255&c]):(c=r[(c=c<<8|c>>>24)>>>24]<<24|r[c>>>16&255]<<16|r[c>>>8&255]<<8|r[255&c],c^=v[o/a|0]<<24),i[o]=i[o-a]^c);for(var s=this._invKeySchedule=[],l=0;l<n;l++){if(o=n-l,l%4)var c=i[o];else c=i[o-4];s[l]=l<4||o<=4?c:d[r[c>>>24]]^u[r[c>>>16&255]]^m[r[c>>>8&255]]^p[r[255&c]]}}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,o,s,l,c,r)},decryptBlock:function(e,t){var a=e[t+1];e[t+1]=e[t+3],e[t+3]=a,this._doCryptBlock(e,t,this._invKeySchedule,d,u,m,p,i),a=e[t+1],e[t+1]=e[t+3],e[t+3]=a},_doCryptBlock:function(e,t,a,n,r,i,o,s){for(var l=this._nRounds,c=e[t]^a[0],d=e[t+1]^a[1],u=e[t+2]^a[2],m=e[t+3]^a[3],p=4,v=1;v<l;v++){var g=n[c>>>24]^r[d>>>16&255]^i[u>>>8&255]^o[255&m]^a[p++],f=n[d>>>24]^r[u>>>16&255]^i[m>>>8&255]^o[255&c]^a[p++],h=n[u>>>24]^r[m>>>16&255]^i[c>>>8&255]^o[255&d]^a[p++],y=n[m>>>24]^r[c>>>16&255]^i[d>>>8&255]^o[255&u]^a[p++];c=g,d=f,u=h,m=y}g=(s[c>>>24]<<24|s[d>>>16&255]<<16|s[u>>>8&255]<<8|s[255&m])^a[p++],f=(s[d>>>24]<<24|s[u>>>16&255]<<16|s[m>>>8&255]<<8|s[255&c])^a[p++],h=(s[u>>>24]<<24|s[m>>>16&255]<<16|s[c>>>8&255]<<8|s[255&d])^a[p++],y=(s[m>>>24]<<24|s[c>>>16&255]<<16|s[d>>>8&255]<<8|s[255&u])^a[p++],e[t]=g,e[t+1]=f,e[t+2]=h,e[t+3]=y},keySize:8});t.AES=a._createHelper(g)}(),e.AES)),lt.exports;var e}(),ut(),function(){return mt||(mt=1,pt.exports=(e=j(),ae(),le(),Fe(),Le(),function(){var t=e,a=t.lib.StreamCipher,n=t.algo,r=n.RC4=a.extend({_doReset:function(){for(var e=this._key,t=e.words,a=e.sigBytes,n=this._S=[],r=0;r<256;r++)n[r]=r;r=0;for(var i=0;r<256;r++){var o=r%a,s=t[o>>>2]>>>24-o%4*8&255;i=(i+n[r]+s)%256;var l=n[r];n[r]=n[i],n[i]=l}this._i=this._j=0},_doProcessBlock:function(e,t){e[t]^=i.call(this)},keySize:8,ivSize:0});function i(){for(var e=this._S,t=this._i,a=this._j,n=0,r=0;r<4;r++){a=(a+e[t=(t+1)%256])%256;var i=e[t];e[t]=e[a],e[a]=i,n|=e[(e[t]+e[a])%256]<<24-8*r}return this._i=t,this._j=a,n}t.RC4=a._createHelper(r);var o=n.RC4Drop=r.extend({cfg:r.cfg.extend({drop:192}),_doReset:function(){r._doReset.call(this);for(var e=this.cfg.drop;e>0;e--)i.call(this)}});t.RC4Drop=a._createHelper(o)}(),e.RC4)),pt.exports;var e}(),function(){return vt||(vt=1,gt.exports=(e=j(),ae(),le(),Fe(),Le(),function(){var t=e,a=t.lib.StreamCipher,n=t.algo,r=[],i=[],o=[],s=n.Rabbit=a.extend({_doReset:function(){for(var e=this._key.words,t=this.cfg.iv,a=0;a<4;a++)e[a]=16711935&(e[a]<<8|e[a]>>>24)|4278255360&(e[a]<<24|e[a]>>>8);var n=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],r=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];for(this._b=0,a=0;a<4;a++)l.call(this);for(a=0;a<8;a++)r[a]^=n[a+4&7];if(t){var i=t.words,o=i[0],s=i[1],c=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),d=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),u=c>>>16|4294901760&d,m=d<<16|65535&c;for(r[0]^=c,r[1]^=u,r[2]^=d,r[3]^=m,r[4]^=c,r[5]^=u,r[6]^=d,r[7]^=m,a=0;a<4;a++)l.call(this)}},_doProcessBlock:function(e,t){var a=this._X;l.call(this),r[0]=a[0]^a[5]>>>16^a[3]<<16,r[1]=a[2]^a[7]>>>16^a[5]<<16,r[2]=a[4]^a[1]>>>16^a[7]<<16,r[3]=a[6]^a[3]>>>16^a[1]<<16;for(var n=0;n<4;n++)r[n]=16711935&(r[n]<<8|r[n]>>>24)|4278255360&(r[n]<<24|r[n]>>>8),e[t+n]^=r[n]},blockSize:4,ivSize:2});function l(){for(var e=this._X,t=this._C,a=0;a<8;a++)i[a]=t[a];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0<i[0]>>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0<i[1]>>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0<i[2]>>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0<i[3]>>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0<i[4]>>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0<i[5]>>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0<i[6]>>>0?1:0)|0,this._b=t[7]>>>0<i[7]>>>0?1:0,a=0;a<8;a++){var n=e[a]+t[a],r=65535&n,s=n>>>16,l=((r*r>>>17)+r*s>>>15)+s*s,c=((4294901760&n)*n|0)+((65535&n)*n|0);o[a]=l^c}e[0]=o[0]+(o[7]<<16|o[7]>>>16)+(o[6]<<16|o[6]>>>16)|0,e[1]=o[1]+(o[0]<<8|o[0]>>>24)+o[7]|0,e[2]=o[2]+(o[1]<<16|o[1]>>>16)+(o[0]<<16|o[0]>>>16)|0,e[3]=o[3]+(o[2]<<8|o[2]>>>24)+o[1]|0,e[4]=o[4]+(o[3]<<16|o[3]>>>16)+(o[2]<<16|o[2]>>>16)|0,e[5]=o[5]+(o[4]<<8|o[4]>>>24)+o[3]|0,e[6]=o[6]+(o[5]<<16|o[5]>>>16)+(o[4]<<16|o[4]>>>16)|0,e[7]=o[7]+(o[6]<<8|o[6]>>>24)+o[5]|0}t.Rabbit=a._createHelper(s)}(),e.Rabbit)),gt.exports;var e}(),function(){return ft||(ft=1,ht.exports=(e=j(),ae(),le(),Fe(),Le(),function(){var t=e,a=t.lib.StreamCipher,n=t.algo,r=[],i=[],o=[],s=n.RabbitLegacy=a.extend({_doReset:function(){var e=this._key.words,t=this.cfg.iv,a=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],n=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];this._b=0;for(var r=0;r<4;r++)l.call(this);for(r=0;r<8;r++)n[r]^=a[r+4&7];if(t){var i=t.words,o=i[0],s=i[1],c=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),d=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),u=c>>>16|4294901760&d,m=d<<16|65535&c;for(n[0]^=c,n[1]^=u,n[2]^=d,n[3]^=m,n[4]^=c,n[5]^=u,n[6]^=d,n[7]^=m,r=0;r<4;r++)l.call(this)}},_doProcessBlock:function(e,t){var a=this._X;l.call(this),r[0]=a[0]^a[5]>>>16^a[3]<<16,r[1]=a[2]^a[7]>>>16^a[5]<<16,r[2]=a[4]^a[1]>>>16^a[7]<<16,r[3]=a[6]^a[3]>>>16^a[1]<<16;for(var n=0;n<4;n++)r[n]=16711935&(r[n]<<8|r[n]>>>24)|4278255360&(r[n]<<24|r[n]>>>8),e[t+n]^=r[n]},blockSize:4,ivSize:2});function l(){for(var e=this._X,t=this._C,a=0;a<8;a++)i[a]=t[a];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0<i[0]>>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0<i[1]>>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0<i[2]>>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0<i[3]>>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0<i[4]>>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0<i[5]>>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0<i[6]>>>0?1:0)|0,this._b=t[7]>>>0<i[7]>>>0?1:0,a=0;a<8;a++){var n=e[a]+t[a],r=65535&n,s=n>>>16,l=((r*r>>>17)+r*s>>>15)+s*s,c=((4294901760&n)*n|0)+((65535&n)*n|0);o[a]=l^c}e[0]=o[0]+(o[7]<<16|o[7]>>>16)+(o[6]<<16|o[6]>>>16)|0,e[1]=o[1]+(o[0]<<8|o[0]>>>24)+o[7]|0,e[2]=o[2]+(o[1]<<16|o[1]>>>16)+(o[0]<<16|o[0]>>>16)|0,e[3]=o[3]+(o[2]<<8|o[2]>>>24)+o[1]|0,e[4]=o[4]+(o[3]<<16|o[3]>>>16)+(o[2]<<16|o[2]>>>16)|0,e[5]=o[5]+(o[4]<<8|o[4]>>>24)+o[3]|0,e[6]=o[6]+(o[5]<<16|o[5]>>>16)+(o[4]<<16|o[4]>>>16)|0,e[7]=o[7]+(o[6]<<8|o[6]>>>24)+o[5]|0}t.RabbitLegacy=a._createHelper(s)}(),e.RabbitLegacy)),ht.exports;var e}(),kt());const St=R(z.exports),Bt={encryptEnabled:!0,aesKey:"WwXxYyZz1234!@#$",aesIv:"AaBbCcDd1234!@#$"},Ct=async(e,t={})=>{const a=(e=>{if("string"==typeof e)return e.trim();if(!e||"object"!=typeof e)return"";const t=["text","content","result","scanResult","qrCode","codeText","value"];for(const a of t)if("string"==typeof e[a]&&e[a].trim())return e[a].trim();return""})(e);if(!a)throw new Error("未读取到预约二维码内容");const n=await(async(e,t={})=>{const a={...Bt,...t},n=String(e||"").trim();if(!n)throw new Error("预约二维码内容为空");if(!a.encryptEnabled||n.startsWith("{")||n.startsWith("["))return n;const r=St.enc.Utf8.parse(a.aesKey),i=St.enc.Utf8.parse(a.aesIv);try{const e=St.AES.decrypt(n,r,{iv:i,mode:St.mode.CBC,padding:St.pad.Pkcs7}).toString(St.enc.Utf8);if(!e)throw new Error("解密结果为空,可能密钥不匹配");return e}catch(o){throw new Error("二维码解密失败,请检查加密配置或数据格式: "+o.message)}})(a,t),r=(e=>{try{return JSON.parse(e)}catch(t){return null}})(n);if(!r)throw new Error("预约二维码解密成功,但内容不是合法 JSON");return{rawText:a,plainText:n,payload:Ft(r)}},Dt=e=>{const t=String(e||"").trim();if(!/^\d{14}$/.test(t))return null;const a=Number(t.slice(0,4)),n=Number(t.slice(4,6))-1,r=Number(t.slice(6,8)),i=Number(t.slice(8,10)),o=Number(t.slice(10,12)),s=Number(t.slice(12,14));return new Date(a,n,r,i,o,s)},At=e=>{const t=e instanceof Date?e:new Date(e);if(!(t instanceof Date)||Number.isNaN(t.getTime()))return"";return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")} ${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}:${String(t.getSeconds()).padStart(2,"0")}`},Tt=e=>{const t=Dt(e);if(t)return t;const a=new Date(e);return a instanceof Date&&!Number.isNaN(a.getTime())?a:null},It=(e,t)=>{if(!e||"object"!=typeof e)return;const a=e[t];if(!a)return;const n=Dt(a);if(n)return void(e[t]=At(n));const r=At(a);r&&(e[t]=r)},Ft=e=>{const t=e&&"object"==typeof e?{...e}:{};return It(t,"startTime"),It(t,"endTime"),t},Pt=(e,t=[])=>t.some((t=>{const a=null==e?void 0:e[t];return""!==String(a||"").trim()})),Rt=e=>{if(!e||"object"!=typeof e)return{valid:!1,reason:"invalid_qrcode"};if(!((e={})=>{const t=Pt(e,["visitorName"]),a=Pt(e,["beVisitorName"]),n=Pt(e,["visitorIdCard"]),r=Pt(e,["startTime","endTime"]);return t&&a&&n&&r})(e))return{valid:!1,reason:"invalid_qrcode"};const{startTime:t,endTime:a}=(e=>({startTime:Tt(null==e?void 0:e.startTime),endTime:Tt(null==e?void 0:e.endTime)}))(e),n=new Date;if(t&&a&&(n<t||n>a))return{valid:!1,reason:"out_of_time_range"};return[e.entered,e.hasEntered,e.checkedIn,e.inStatus,e.entryStatus,e.status].some((e=>!0===e||1===e||"1"===e||"entered"===e||"IN"===e))?{valid:!1,reason:"already_entered"}:{valid:!0,reason:"ok"}},Lt=async()=>{try{const e=await((e={})=>h({url:"/api/visitorconfig/detail",method:"POST",data:e}))();if(e&&200===e.code&&e.data)return await I("system_config",e.data),uni.setStorageSync("system_config",e.data),e.data}catch(e){a("error","at api/visitorConfig.js:43","同步全局系统配置失败:",e)}return null},zt=async()=>{try{const e=await((e={})=>h({url:"/api/admission/detail",method:"POST",data:e}))();if(e&&200===e.code&&e.data)return await I("commitment_config",e.data),uni.setStorageSync("commitment_config",e.data),e.data}catch(e){a("error","at api/visitorConfig.js:71","同步入园承诺配置失败:",e)}return null},Mt="employee_verify_list";let Ot=null;const Ht=(e=0)=>new Promise((t=>{setTimeout(t,e)})),Ut="employee_verify_list_last_sync",$t=(e="")=>String(e||"").replace(/[\u200B-\u200F\u202A-\u202E\u2060\uFEFF]/g,"").replace(/\s+/g,"").replace(/[^A-Za-z0-9+/=]/g,""),jt=(e="",t="employee-face")=>new Promise(((a,n)=>{try{const{extension:r,base64Data:i}=((e="")=>{const t=String(e||"").trim(),a=t.match(/data:image\/([a-zA-Z0-9+.-]+);base64,/i);if(a){const e=a[0],n=t.indexOf(e);return{extension:"jpeg"===a[1]?"jpg":a[1],base64Data:$t(t.slice(n+e.length))}}return{extension:"png",base64Data:$t(t)}})(e),o=$t(i);if(!o)return void n(new Error("Base64 数据为空"));if("undefined"==typeof plus||!plus.nativeObj||!plus.nativeObj.Bitmap)return void n(new Error("当前环境不支持 plus.nativeObj.Bitmap"));const s=`_doc/employee-face-images/${`${t}-${Date.now()}-${Math.random().toString(36).slice(2,8)}.${r||"png"}`}`,l=`data:image/${"jpg"===r?"jpeg":r||"png"};base64,${o}`,c=new plus.nativeObj.Bitmap(`employee_face_${Date.now()}`);c.loadBase64Data(l,(()=>{c.save(s,{},(e=>{c.clear();const t=plus.io.convertLocalFileSystemURL(e.target||s);a(t)}),(e=>{c.clear(),n(e)}))}),(e=>{c.clear(),n(e)}))}catch(r){n(r)}})),Wt=async(e={},t=0,n=new Map)=>{if(!e||"object"!=typeof e)return e;const r={...e},i=String(e.faceImage||"").trim();if(!i||!((e="")=>{const t=String(e||"").trim();return!!t&&(!!/data:image\/[a-zA-Z0-9+.-]+;base64,/i.test(t)||$t(t).length>0)})(i))return r;const o=i.length,s=o<100?`${e.name}_${i}`:`${e.name}_${o}_${i.substring(0,50)}_${i.substring(o-50)}`;if(n.has(s)){const e=n.get(s);return r.faceImage=e,r._faceImageHash=s,r}try{const e=await jt(i,`employee-${t}`);return r.faceImage=e,r._faceImageHash=s,r}catch(l){return a("error","at api/employee.js:173","员工人脸图片 base64 转本地文件失败:",l),r}},Kt=async()=>{const e=await Xt();if(e&&200===e.code){const t=(e=>{if(Array.isArray(e))return e;if(!e||"object"!=typeof e)return[];const t=["records","list","rows","items","data"];for(const a of t)if(Array.isArray(e[a]))return e[a];return[]})(e.data),a=await F(Mt)||[],n=uni.getStorageSync(Mt)||[],r=Array.isArray(a)&&a.length>0?a:Array.isArray(n)?n:[],i=new Map;r.forEach((e=>{e._faceImageHash&&e.faceImage&&String(e.faceImage).includes("_doc/")&&i.set(e._faceImageHash,e.faceImage)}));const o=await(async(e=[],t=new Map)=>{const a=[];for(let n=0;n<e.length;n+=1){const r=e[n],i=await Wt(r,n,t);a.push(i),await Ht(0)}return a})(t,i);return await(async(e=[])=>{await I(Mt,e),uni.setStorageSync(Mt,e),uni.setStorageSync(Ut,Date.now())})(o),o}throw new Error((null==e?void 0:e.msg)||"同步员工验证列表失败")},Xt=(e={})=>h({url:"/api/employee/verify/allEmployee",method:"POST",data:e}),Gt=async(e=!1)=>{try{const t=uni.getStorageSync(Ut)||0,n=Date.now()-t>72e5;if(!e&&!n){const e=await F(Mt)||[],t=uni.getStorageSync(Mt)||[],n=Array.isArray(e)&&e.length>0?e:Array.isArray(t)?t:[];if(n.length>0)return a("log","at api/employee.js:327","员工缓存未过期,跳过全量接口同步"),n}return await(async()=>{if(Ot)return Ot;Ot=Kt();try{return await Ot}finally{Ot=null}})()}catch(t){return a("error","at api/employee.js:334","同步员工验证列表失败:",t),[]}},qt=e=>new Promise(((t,n)=>{e&&e.includes("_doc/")?plus.io.resolveLocalFileSystemURL(e,(r=>{r.remove((()=>{a("log","at utils/fs.js:70","[FS] 成功删除本地文件:",e),t()}),(e=>{a("error","at utils/fs.js:73","[FS] 删除文件失败:",e),n(e)}))}),(e=>{a("error","at utils/fs.js:77","[FS] 未找到需删除的文件:",e),t()})):t()})),Zt=(e,t={})=>{const{directoryName:n="downloads",fileNamePrefix:r="file",fallbackExtension:i="jpg"}=t;return new Promise(((t,o)=>{const s=String(e||"").trim();s?uni.downloadFile({url:s,success:e=>{if(200!==e.statusCode||!e.tempFilePath)return void o(new Error(`远程文件下载失败,状态码:${e.statusCode||"unknown"}`));const l=((e="",t="jpg")=>{const a=String(e||"").split("?")[0].match(/\.([a-zA-Z0-9]+)$/);return a?a[1].toLowerCase():t})(s,i),c=`${r}_${Date.now()}_${Math.floor(1e3*Math.random())}.${l}`;((e,t="images",n="")=>new Promise(((r,i)=>{plus.io.resolveLocalFileSystemURL(e,(e=>{plus.io.resolveLocalFileSystemURL("_doc/",(o=>{o.getDirectory(t,{create:!0},(t=>{e.moveTo(t,n,(e=>{r(e.fullPath)}),(e=>{a("error","at utils/fs.js:21","[FS] 移动文件失败:",e),i(e)}))}),(e=>{a("error","at utils/fs.js:25","[FS] 创建目录失败:",e),i(e)}))}),(e=>{a("error","at utils/fs.js:29","[FS] 访问_doc目录失败:",e),i(e)}))}),(e=>{a("error","at utils/fs.js:33","[FS] 访问临时文件失败:",e),i(e)}))})))(e.tempFilePath,n,c).then(t).catch(o)},fail:e=>{a("error","at utils/fs.js:120","[FS] 下载远程文件失败:",e),o(e)}}):o(new Error("远程文件地址为空"))}))},Yt=y({__name:"CommonNoticeDialog",props:{visible:{type:Boolean,default:!1},title:{type:String,default:""},description:{type:String,default:""},duration:{type:Number,default:5},buttonText:{type:String,default:"关闭"},showPrimaryButton:{type:Boolean,default:!1},primaryButtonText:{type:String,default:"重新打印"}},emits:["close","primary"],setup(t,{emit:a}){const n=t,r=a,i=e.ref(n.duration);let o=null;const s=()=>{o&&(clearInterval(o),o=null)},l=()=>{s(),r("close")},c=()=>{s(),r("primary")};return e.watch((()=>n.visible),(e=>{if(e)return s(),i.value=n.duration,void(o=setInterval((()=>{i.value-=1,i.value<=0&&(s(),r("close"))}),1e3));s(),i.value=n.duration}),{immediate:!0}),e.watch((()=>n.duration),(e=>{i.value=e})),e.onUnmounted((()=>{s()})),(a,n)=>t.visible?(e.openBlock(),e.createElementBlock("view",{key:0,class:"dialog-wrapper"},[e.createElementVNode("view",{class:"page-mask"}),e.createElementVNode("view",{class:"dialog-card"},[e.createElementVNode("view",{class:"copy-block"},[e.createElementVNode("text",{class:"dialog-title"},e.toDisplayString(t.title),1),t.description?(e.openBlock(),e.createElementBlock("text",{key:0,class:"dialog-desc"},e.toDisplayString(t.description),1)):e.createCommentVNode("",!0)]),e.createElementVNode("view",{class:"button-row"},[e.createElementVNode("view",{class:"close-btn",onClick:l},[e.createElementVNode("text",{class:"close-btn-text"},e.toDisplayString(t.buttonText)+"("+e.toDisplayString(i.value)+")",1)]),t.showPrimaryButton?(e.openBlock(),e.createElementBlock("view",{key:0,class:"primary-btn",onClick:c},[e.createElementVNode("text",{class:"primary-btn-text"},e.toDisplayString(t.primaryButtonText),1)])):e.createCommentVNode("",!0)])])])):e.createCommentVNode("",!0)}},[["__scopeId","data-v-1c8acc03"]]),Jt="/static/home/logo.png",Qt="home_logo_cache",ea=y({__name:"index",setup(t){const n=e.ref(!0),o=e.ref(!0),s=e.ref(!0),l=e.ref("华南光电"),c=e.ref(Jt),d=e.ref(!1),p=e.ref("系统配置加载中,请稍后..."),v={backgroundImage:"url(/static/home/home-bg.png)"},g={backgroundImage:"url(/static/home/admin-btn-bg.png)"},f={backgroundImage:"url(/static/home/welcome-bg.png)"},h=(e={})=>e&&"object"==typeof e?((e="")=>{const t=String(e||"").trim();if(!t)return"";if(/^https?:\/\//.test(t))return t;if(t.startsWith("/")){const e=u(m());return e?`${e}${t}`:""}return t})(e.logoUrl||e.logo||e.homeLogo||e.logoPath||e.systemLogo):"",y=async()=>{const e=await F(Qt);if(e&&"object"==typeof e)return e;const t=uni.getStorageSync(Qt);return t&&"object"==typeof t?t:{}},w=async(e="")=>{const t=String(e||"").trim();if(!/^https?:\/\//.test(t))return"";const n=await y();if(n.sourceUrl===t&&String(n.localPath||"").trim())return n.localPath;const r=await Zt(t,{directoryName:"logo-cache",fileNamePrefix:"home-logo",fallbackExtension:"png"});if(await(async(e={})=>{await I(Qt,e),uni.setStorageSync(Qt,e)})({sourceUrl:t,localPath:r}),n.localPath&&n.localPath!==r)try{await qt(n.localPath)}catch(i){a("error","at pages/home/index.vue:124","清理旧首页Logo缓存失败:",i)}return r},E=e.ref(""),N=async()=>{try{const e=await F("system_config"),t=uni.getStorageSync("system_config"),a=uni.getStorageSync("home_config"),r=Object.assign({},a,e,t),i=h(r),d=await y(),u=i&&d.sourceUrl===i&&String(d.localPath||"").trim()?d.localPath:"";c.value=u||i||Jt,r.hasOwnProperty("visitorMachineEntryEnabled")&&(n.value=Boolean(r.visitorMachineEntryEnabled)),r.hasOwnProperty("onsiteRegistrationEnabled")&&(o.value=Boolean(r.onsiteRegistrationEnabled)),r.hasOwnProperty("appointmentRegistrationEnabled")&&(s.value=Boolean(r.appointmentRegistrationEnabled)),r.systemName&&(l.value=r.systemName)}catch(e){a("error","at pages/home/index.vue:166","加载首页Logo和配置失败:",e),c.value=Jt}};let x=null,V=0,_=!1,b=null;const k=()=>{x=setTimeout((()=>{B()}),3e3)},S=()=>{x&&(clearTimeout(x),x=null)},B=()=>{uni.navigateTo({url:"/pages/admin-home/index"})},C=()=>{uni.navigateTo({url:"/pages/appointment-scan/n-index?mode=appointment&step=1"})},D=()=>{uni.navigateTo({url:"/pages/commitment/index"})},A=()=>{uni.navigateTo({url:"/pages/appointment-scan/n-index?mode=signout&step=1"})},T=e.ref({visible:!1,title:"",description:""}),P=(e,t)=>{T.value={visible:!0,title:e,description:t}},R=()=>{T.value.visible=!1},L=()=>{V+=1;const e=V;_=!1,b=async t=>{if(e===V&&!_)if(t){_=!0;try{const a=(await Ct(t)).payload,n=Rt(a);if(!n.valid)return void("out_of_time_range"===n.reason?P("预约码不在进场时间内,请联系工作人员","请检查您的预约时间"):"already_entered"===n.reason?P("该预约码已进场","您已进场,请签离"):P("未识别二维码,请联系工作人员",""));(e=>{uni.setStorageSync("appointment_qr_payload",e||null)})(a),V+=1,uni.navigateTo({url:"/pages/appointment-scan/n-index?mode=appointment&step=2"})}catch(n){a("error","at pages/home/index.vue:288","首页扫码解析失败:",n),P("未识别二维码,请联系工作人员","")}finally{e===V&&(_=!1)}}else P("未识别二维码,请联系工作人员","")},uni.$on("Hardware-Scan",b)};return e.onMounted((()=>{(async()=>{try{d.value=!0,await N(),await Promise.all([Lt(),zt()]),await N();try{const e=uni.getStorageSync("system_config")||{},t=h(e);if(t){const e=await w(t);e&&(c.value=e)}}catch(e){a("error","at pages/home/index.vue:336","缓存首页Logo到本地失败:",e)}await new Promise((e=>{setTimeout(e,200)})),await Gt()}catch(e){a("error","at pages/home/index.vue:345","首页初始化失败:",e)}finally{d.value=!1}})()})),r((()=>{L()})),i((()=>{V+=1,_=!1,b&&(uni.$off("Hardware-Scan",b),b=null)})),(t,a)=>(e.openBlock(),e.createElementBlock("view",{class:"screen",style:v},[T.value.visible?(e.openBlock(),e.createBlock(Yt,{key:0,visible:T.value.visible,title:T.value.title,description:T.value.description,onClose:R},null,8,["visible","title","description"])):e.createCommentVNode("",!0),d.value?(e.openBlock(),e.createElementBlock("view",{key:1,class:"home-loading-mask"},[e.createElementVNode("view",{class:"home-loading-dialog"},[e.createElementVNode("view",{class:"home-loading-spinner"}),e.createElementVNode("text",{class:"home-loading-text"},e.toDisplayString(p.value),1)])])):e.createCommentVNode("",!0),e.createElementVNode("view",{class:"top-bar"},[e.createElementVNode("image",{class:"logo",src:c.value,mode:"heightFix"},null,8,["src"]),e.createElementVNode("view",{class:e.normalizeClass(["admin-btn",{"hidden-entry":!n.value}]),style:e.normalizeStyle(n.value?g:null),onTouchstart:k,onTouchend:S,onTouchcancel:S,onClick:B},[n.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("image",{class:"admin-icon",src:e.unref("/static/home/avatar.png"),mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"admin-text"},"管理员登录")],64)):e.createCommentVNode("",!0)],38)]),e.createElementVNode("view",{class:"hero"},[e.createElementVNode("view",{class:"hero-copy"},[e.createElementVNode("view",{class:"welcome-badge",style:f},[e.createElementVNode("view",{class:"welcome-text"},"欢迎到访")]),e.createElementVNode("view",{class:"company-name"},e.toDisplayString(l.value),1)]),e.createElementVNode("view",{class:"hero-figure"},[e.createElementVNode("image",{class:"operation",src:e.unref("/static/home/operation.png"),mode:"aspectFit"},null,8,["src"])])]),e.createElementVNode("view",{class:"entry-panel"},[s.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"entry-card blue",onClick:C},[e.createElementVNode("text",{class:"entry-title"},"预约登记"),e.createElementVNode("image",{class:"entry-icon",src:e.unref("/static/home/appointment.png"),mode:"aspectFit"},null,8,["src"])])):e.createCommentVNode("",!0),o.value?(e.openBlock(),e.createElementBlock("view",{key:1,class:"entry-card purple",onClick:D},[e.createElementVNode("text",{class:"entry-title"},"现场登记"),e.createElementVNode("image",{class:"entry-icon",src:e.unref("/static/home/register.png"),mode:"aspectFit"},null,8,["src"])])):e.createCommentVNode("",!0),e.createElementVNode("view",{class:"entry-card orange",onClick:A},[e.createElementVNode("text",{class:"entry-title"},"签离"),e.createElementVNode("image",{class:"entry-icon",src:e.unref("/static/home/sign-out.png"),mode:"aspectFit"},null,8,["src"])])]),E.value?(e.openBlock(),e.createElementBlock("view",{key:2,class:"provider-footer"},[e.createElementVNode("text",{class:"provider-text"},e.toDisplayString(E.value),1)])):e.createCommentVNode("",!0)]))}},[["__scopeId","data-v-84c434d3"]]),ta="/static/appointment-scan/back.png",aa="/static/appointment-scan/success.png",na=y({__name:"index",setup(t){const a=e.ref(15),n=e.ref("预约登记");let r=null;o((e=>{n.value="online"===e.mode?"现场登记":"预约登记"})),e.onMounted((()=>{r=setInterval((()=>{a.value--,a.value<=0&&(clearInterval(r),s())}),1e3)})),e.onUnmounted((()=>{r&&clearInterval(r)}));const i=()=>{s()},s=()=>{uni.reLaunch({url:"/pages/home/index"})};return(t,r)=>(e.openBlock(),e.createElementBlock("view",{class:"page-container"},[e.createElementVNode("view",{class:"bg-glow"}),e.createElementVNode("view",{class:"header-area"},[e.createElementVNode("view",{class:"left-action",onClick:i},[e.createElementVNode("view",{class:"back-btn"},[e.createElementVNode("image",{src:e.unref(ta),class:"back-icon-img",mode:"aspectFit"},null,8,["src"])]),e.createElementVNode("text",{class:"page-title"},e.toDisplayString(n.value),1)])]),e.createElementVNode("view",{class:"success-card"},[e.createElementVNode("view",{class:"success-badge"},[e.createElementVNode("text",{class:"success-badge-text"},"登记已完成")]),e.createElementVNode("view",{class:"success-icon-area"},[e.createElementVNode("view",{class:"icon-outer-circle"},[e.createElementVNode("view",{class:"icon-inner-circle"},[e.createElementVNode("image",{src:e.unref(aa),class:"success-icon-img",mode:"aspectFit"},null,8,["src"])])])]),e.createElementVNode("text",{class:"success-title"},"欢迎来访,签到成功"),e.createElementVNode("view",{class:"reminder-bar"},[e.createElementVNode("view",{class:"reminder-icon-bg"},[e.createElementVNode("text",{class:"reminder-icon-text"},"i")]),e.createElementVNode("text",{class:"reminder-text"},"请妥善保管个人证件与访客凭条,避免遗失")]),e.createElementVNode("view",{class:"action-area"},[e.createElementVNode("view",{class:"home-btn",onClick:s},[e.createElementVNode("text",{class:"home-btn-text"},"返回首页")]),e.createElementVNode("view",{class:"countdown-hint"},[e.createElementVNode("text",{class:"countdown-text"},"页面将在 "+e.toDisplayString(a.value)+" 秒后自动返回首页",1)])])])]))}},[["__scopeId","data-v-03062543"]]),ra=y({__name:"index",setup(t){const a=e.ref(15);let n=null;e.onMounted((()=>{n=setInterval((()=>{a.value--,a.value<=0&&(clearInterval(n),r())}),1e3)})),e.onUnmounted((()=>{n&&clearInterval(n)}));const r=()=>{uni.reLaunch({url:"/pages/home/index"})};return(t,n)=>(e.openBlock(),e.createElementBlock("view",{class:"page-container"},[e.createElementVNode("view",{class:"bg-glow"}),e.createElementVNode("view",{class:"header-area"},[e.createElementVNode("view",{class:"left-action",onClick:r},[e.createElementVNode("view",{class:"back-btn"},[e.createElementVNode("image",{src:e.unref(ta),class:"back-icon-img",mode:"aspectFit"},null,8,["src"])]),e.createElementVNode("text",{class:"page-title"},"签离")])]),e.createElementVNode("view",{class:"success-card"},[e.createElementVNode("view",{class:"success-badge"},[e.createElementVNode("text",{class:"success-badge-text"},"签离已完成")]),e.createElementVNode("view",{class:"success-icon-area"},[e.createElementVNode("view",{class:"icon-outer-circle"},[e.createElementVNode("view",{class:"icon-inner-circle"},[e.createElementVNode("image",{src:e.unref(aa),class:"success-icon-img",mode:"aspectFit"},null,8,["src"])])])]),e.createElementVNode("text",{class:"success-title"},"感谢来访,签离成功"),e.createElementVNode("view",{class:"reminder-bar"},[e.createElementVNode("view",{class:"reminder-icon-bg"},[e.createElementVNode("text",{class:"reminder-icon-text"},"i")]),e.createElementVNode("text",{class:"reminder-text"},"请妥善保管个人证件与访客凭条,避免遗失")]),e.createElementVNode("view",{class:"action-area"},[e.createElementVNode("view",{class:"home-btn",onClick:r},[e.createElementVNode("text",{class:"home-btn-text"},"返回首页")]),e.createElementVNode("view",{class:"countdown-hint"},[e.createElementVNode("text",{class:"countdown-text"},"页面将在 "+e.toDisplayString(a.value)+" 秒后自动返回首页",1)])])])]))}},[["__scopeId","data-v-bb8f9581"]]),ia=y({__name:"index",setup(t){const a=e.ref(5);let n=null;const r=()=>{uni.navigateBack({fail:()=>{uni.redirectTo({url:"/pages/home/index"})}})};return e.onMounted((()=>{n=setInterval((()=>{a.value-=1,a.value<=0&&(clearInterval(n),r())}),1e3)})),e.onUnmounted((()=>{n&&clearInterval(n)})),(t,n)=>(e.openBlock(),e.createElementBlock("view",{class:"page-container"},[e.createElementVNode("view",{class:"page-mask"}),e.createElementVNode("view",{class:"dialog-card"},[e.createElementVNode("view",{class:"copy-block"},[e.createElementVNode("text",{class:"dialog-title"},"预约码不在进场时间内,请联系工作人员"),e.createElementVNode("text",{class:"dialog-desc"},"请核对预约时段信息,或前往前台获取现场协助")]),e.createElementVNode("view",{class:"button-row"},[e.createElementVNode("view",{class:"close-btn",onClick:r},[e.createElementVNode("text",{class:"close-btn-text"},"关闭("+e.toDisplayString(a.value)+")",1)])])])]))}},[["__scopeId","data-v-7567bc65"]]),oa=y({__name:"index",setup(t){const a=e.ref(5);let n=null;const r=()=>{uni.navigateBack({fail:()=>{uni.redirectTo({url:"/pages/home/index"})}})},i=()=>{uni.redirectTo({url:"/pages/online-print-ticket/index"})};return e.onMounted((()=>{n=setInterval((()=>{a.value-=1,a.value<=0&&(clearInterval(n),r())}),1e3)})),e.onUnmounted((()=>{n&&clearInterval(n)})),(t,n)=>(e.openBlock(),e.createElementBlock("view",{class:"page-container"},[e.createElementVNode("view",{class:"page-mask"}),e.createElementVNode("view",{class:"dialog-card"},[e.createElementVNode("view",{class:"copy-block"},[e.createElementVNode("text",{class:"dialog-title"},"打印设备缺纸,请联系工作人员"),e.createElementVNode("text",{class:"dialog-desc"},"可先关闭弹窗,或在补纸后重新打印凭条")]),e.createElementVNode("view",{class:"button-row"},[e.createElementVNode("view",{class:"close-btn",onClick:r},[e.createElementVNode("text",{class:"close-btn-text"},"关闭("+e.toDisplayString(a.value)+")",1)]),e.createElementVNode("view",{class:"primary-btn",onClick:i},[e.createElementVNode("text",{class:"primary-btn-text"},"重新打印")])])])]))}},[["__scopeId","data-v-6d7d7765"]]),sa=y({__name:"AdminShell",props:{title:{type:String,default:"自主访客登记管理端"},showBottomNav:{type:Boolean,default:!0}},setup(t){const a=()=>{uni.reLaunch({url:"/pages/home/index"})};return(n,r)=>(e.openBlock(),e.createElementBlock("view",{class:"page-shell"},[e.createElementVNode("view",{class:"bg-glow"}),e.createElementVNode("view",{class:"header-bar"},[e.createElementVNode("view",{class:"title-zone"},[e.createElementVNode("image",{src:e.unref("/static/admin-home/PpVQg.png"),class:"title-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"page-title"},e.toDisplayString(t.title),1)]),e.createElementVNode("view",{class:"back-btn",onClick:a},[e.createElementVNode("image",{src:e.unref("/static/admin-home/Dgd7x.png"),class:"back-arrow",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"back-btn-text"},"返回预约端")])]),e.createElementVNode("view",{class:"content-wrap"},[e.renderSlot(n.$slots,"default",{},void 0,!0)]),e.createElementVNode("view",{class:"footer-info-wrap"},[e.renderSlot(n.$slots,"footer-info",{},void 0,!0)]),t.showBottomNav?e.renderSlot(n.$slots,"bottom-nav",{key:0},void 0,!0):e.createCommentVNode("",!0),e.renderSlot(n.$slots,"overlay",{},void 0,!0)]))}},[["__scopeId","data-v-6e4a5290"]]),la=y({__name:"AdminTabBar",props:{activeTab:{type:String,default:"home"}},emits:["change"],setup(t,{emit:a}){const n=a,r=e=>{n("change",e)};return(a,n)=>(e.openBlock(),e.createElementBlock("view",{class:"bottom-nav"},[e.createElementVNode("view",{class:e.normalizeClass(["nav-item",{active:"home"===t.activeTab}]),onClick:n[0]||(n[0]=e=>r("home"))},[e.createElementVNode("view",{class:e.normalizeClass(["nav-icon-box",{active:"home"===t.activeTab}])},[e.createElementVNode("image",{src:e.unref("/static/admin-home/myhDj3.png"),class:"nav-icon",mode:"aspectFit"},null,8,["src"])],2),e.createElementVNode("text",{class:"nav-text"},"首页")],2),e.createElementVNode("view",{class:e.normalizeClass(["nav-item",{active:"records"===t.activeTab}]),onClick:n[1]||(n[1]=e=>r("records"))},[e.createElementVNode("view",{class:e.normalizeClass(["nav-icon-box",{active:"records"===t.activeTab}])},[e.createElementVNode("image",{src:e.unref("/static/admin-home/v4oODO.png"),class:"nav-icon",mode:"aspectFit"},null,8,["src"])],2),e.createElementVNode("text",{class:"nav-text"},"历史记录")],2),e.createElementVNode("view",{class:e.normalizeClass(["nav-item",{active:"config"===t.activeTab}]),onClick:n[2]||(n[2]=e=>r("config"))},[e.createElementVNode("view",{class:e.normalizeClass(["nav-icon-box",{active:"config"===t.activeTab}])},[e.createElementVNode("image",{src:e.unref("/static/admin-home/iRGV0L.png"),class:"nav-icon",mode:"aspectFit"},null,8,["src"])],2),e.createElementVNode("text",{class:"nav-text"},"配置管理")],2)]))}},[["__scopeId","data-v-779763e5"]]),ca=e=>h({url:"/api/visitorRecord/add",method:"POST",data:e}),da=()=>h({url:"/api/visitArea/tree",method:"POST"}),ua="/static/admin-pages/QzvXP.png",ma="/static/admin-pages/T0i0lp.png",pa="/static/admin-pages/Bmn5y.png",va="/static/admin-pages/HXHf5.png",ga="/static/admin-pages/O1Ob8a.png",fa="/static/admin-pages/D1nht.png",ha="/static/admin-pages/NUszJ.png",ya=y({__name:"AdminRecordsPanel",setup(t,{expose:n}){const r=e.reactive({host:"",department:"",guest:"",area:"",reason:"",startDate:"",endDate:""}),i=e.reactive({host:"",department:"",guest:"",area:"",reason:"",startDate:"",endDate:""}),o=e.ref([]),s=e.ref(1);e.ref(10);const l=e.ref(0),c=e.ref(!1),d=e=>{switch(e){case"VISITING":return{text:"来访中",tone:"green",icon:va};case"SIGNED_OUT":return{text:"已签离",tone:"blue",icon:ga};case"PENDING_CONFIRM":return{text:"逾期滞留",tone:"orange",icon:fa};case"OVERDUE_AUTO_SIGNED_OUT":return{text:"超期自动",tone:"purple",icon:ha};case"CANCELLED":return{text:"已取消",tone:"orange",icon:fa};default:return{text:e||"未知",tone:"green",icon:va}}},u=e=>"APPOINTMENT"===e?"预约登记":"ONSITE"===e?"现场登记":e||"未知",m=(e,t=!1)=>e?`${e} ${t?"23:59:59":"00:00:00"}`:"",p=(e="")=>{if(!e)return"";const t=String(e).split("/").map((e=>e.trim())).filter(Boolean);return t[t.length-1]||""};e.computed((()=>Boolean(i.host||i.department||i.guest||i.area||i.reason||i.startDate||i.endDate)));const v=async()=>{if(!c.value){c.value=!0;try{const t={pageNum:1,pageSize:9999,intervieweeKeyword:i.host,intervieweeDept:i.department,visitorKeyword:i.guest,visitAreaKeyword:p(i.area),visitReason:i.reason,validStartTime:m(i.startDate),validEndTime:m(i.endDate,!0)};uni.showLoading({title:"加载中..."});const a=await(e=t,h({url:"/api/visitorRecord/page",method:"POST",data:e}));let n=[];if(!a||200!==a.code||!a.data)throw new Error((null==a?void 0:a.msg)||"获取线上记录失败");n=a.data.records||a.data.list||[],l.value=n.length,s.value=1,o.value=n.map((e=>{const t=d(e.status),a=e.visitorName||"未知",n=((e={})=>{const t=d(e.status);return{name:e.visitorName||"未知",status:e.statusName||t.text,statusClass:{green:"stay",blue:"done",orange:"warn",purple:"idle"}[t.tone]||"stay",type:e.registerTypeName||u(e.registerType),idCard:e.idCardMask||e.idCard||"-",recordNo:e.registerNo||e.recordId||"-",registerTime:e.registerTime||"-",registerCaptureTime:e.registerCollectTime||e.registerTime||"-",plateNumber:e.plateNo||"-",host:e.intervieweeName||"-",receiver:e.receiverName||e.signReceiverName||e.intervieweeName||"-",hostVerify:e.receiverVerifyMethodName||e.receiverVerifyMethod||"-",areaTags:Array.isArray(e.visitAreaNameList)?e.visitAreaNameList:(e.visitAreaNames||"").split(",").map((e=>e.trim())).filter(Boolean),validityText:e.validTimeText||(e.validStartTime&&e.validEndTime?`${e.validStartTime} 至 ${e.validEndTime}`:"-"),signoutCaptureTime:e.signCollectTime||e.signTime||"-",signoutTime:e.signTime||"-",signoutReceiver:e.signReceiverName||"-",signoutVerify:e.signVerifyMethodName||e.signVerifyMethod||"-",faceImageUrl:e.faceImageUrl||"",signoutImageUrl:e.signImageUrl||""}})(e);return{id:e.recordId||e.id||Math.random().toString(36).substring(2),initial:a.charAt(0),name:a,idCard:e.idCard||"",host:`${e.intervieweeName||""}(${e.intervieweeDept||"暂无部门"})`,department:e.intervieweeDept||"暂无部门",type:u(e.registerType),area:e.visitAreaNames||e.visitAreaIds||"无",reason:e.visitReason||"无",time:e.validStartTime&&e.validEndTime?`${e.validStartTime} 至 ${e.validEndTime}`:"无",visitDate:(e.validStartTime||e.registerTime||"").split(" ")[0]||"",status:t.text,tone:t.tone,statusIcon:t.icon,detailSnapshot:n}}))}catch(t){a("error","at components/admin/AdminRecordsPanel.vue:503","加载访客记录失败",t),o.value=[],l.value=0,uni.showToast({title:"网络异常,获取失败",icon:"none"})}finally{c.value=!1,uni.hideLoading()}var e}};e.onMounted((()=>{(async()=>{var e;try{const t=await da();if(t&&200===t.code&&Array.isArray(t.data)){const a=t.data;g.value=a.map((e=>({name:e.name||e.areaName||e.label||e.areaId||e.id,children:(e.children&&e.children.length>0?e.children:[e]).map((e=>e.name||e.areaName||e.label||e.areaId||e.id))}))),y.value||(y.value=(null==(e=g.value[0])?void 0:e.name)||"")}}catch(t){a("error","at components/admin/AdminRecordsPanel.vue:529","获取区域树失败:",t)}})(),v()}));const g=e.ref([]),f=e.ref(""),y=e.ref(""),w=e.ref(""),E=e.ref("start"),N=e.ref(r.startDate),x=e.ref(r.endDate),V=(new Date).getFullYear(),_=Array.from({length:10},((e,t)=>String(V-5+t))),b=Array.from({length:12},((e,t)=>String(t+1).padStart(2,"0"))),k=e.ref(""),S=e.ref(""),B=e.ref(""),C=e.ref([0,0,0]),D=e.computed((()=>{if(!k.value||!S.value)return[];const e=new Date(Number(k.value),Number(S.value),0).getDate();return Array.from({length:e},((e,t)=>String(t+1).padStart(2,"0")))})),A=e.computed((()=>{var e;return(null==(e=g.value.find((e=>e.name===y.value)))?void 0:e.children)||[]})),T=e.computed((()=>o.value)),I=()=>{f.value=""},F=()=>{w.value=r.area;const[e]=r.area.split(" / ");y.value=e||(g.value.length>0?g.value[0].name:""),f.value="area"},P=()=>{r.area=w.value,I(),U()},R=e=>{if(!e)return;const[t,a,n]=e.split("-");k.value=t,S.value=a,B.value=n,C.value=[Math.max(_.indexOf(t),0),Math.max(b.indexOf(a),0),Math.max(D.value.indexOf(n),0)]},L=()=>{const e=(()=>{const e=new Date;return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`})();N.value=r.startDate||e,x.value=r.endDate||e,E.value="start",R(N.value),f.value="date"},z=e=>{E.value=e,R("start"===e?N.value:x.value)},M=e=>{const[t,a,n]=e.detail.value;k.value=_[t],S.value=b[a];const r=Array.from({length:new Date(Number(k.value),Number(S.value),0).getDate()},((e,t)=>String(t+1).padStart(2,"0")));B.value=r[Math.min(n,r.length-1)],C.value=[t,a,r.indexOf(B.value)];const i=`${k.value}-${S.value}-${B.value}`;"start"===E.value?N.value=i:x.value=i},O=()=>{N.value&&x.value&&N.value>x.value?uni.showToast({title:"开始日期不能大于结束日期",icon:"none"}):(r.startDate=N.value,r.endDate=x.value,I())},H=()=>{Object.assign(r,{host:"",department:"",guest:"",area:"",reason:"",startDate:"",endDate:""}),Object.assign(i,{host:"",department:"",guest:"",area:"",reason:"",startDate:"",endDate:""}),v(),I()},U=()=>{Object.assign(i,{host:r.host,department:r.department,guest:r.guest,area:r.area,reason:r.reason,startDate:r.startDate,endDate:r.endDate}),v(),I()},$=async()=>{if(0!==l.value){uni.showLoading({title:"正在请求导出..."});try{const t={pageNum:1,pageSize:9999,intervieweeKeyword:i.host,intervieweeDept:i.department,visitorKeyword:i.guest,visitAreaKeyword:p(i.area),visitReason:i.reason,validStartTime:m(i.startDate),validEndTime:m(i.endDate,!0)},n=await(e=t,h({url:"/api/visitorRecord/export",method:"POST",data:e,responseType:"arraybuffer"}));if(n instanceof ArrayBuffer){const e=`访客记录_${Date.now()}.xls`;return"undefined"!=typeof plus&&plus.io?void plus.io.resolveLocalFileSystemURL("_doc/",(t=>{t.getFile(e,{create:!0},(e=>{e.createWriter((t=>{t.onwrite=()=>{uni.hideLoading();const t=e.toLocalURL();a("log","at components/admin/AdminRecordsPanel.vue:735","访客记录导出成功,文件路径:",t),uni.showToast({title:"导出成功,文件地址:"+t,icon:"none"})},t.onerror=e=>{uni.hideLoading(),uni.showToast({title:"文件保存失败",icon:"none"}),a("error","at components/admin/AdminRecordsPanel.vue:741","文件保存失败:",e)},t.seek(0),t.truncate(0),t.writeAsBinary(n)}),(e=>{uni.hideLoading(),a("error","at components/admin/AdminRecordsPanel.vue:748","创建文件写入器失败:",e)}))}),(e=>{uni.hideLoading(),a("error","at components/admin/AdminRecordsPanel.vue:752","创建导出文件失败:",e)}))}),(e=>{uni.hideLoading(),a("error","at components/admin/AdminRecordsPanel.vue:756","访问_doc目录失败:",e)})):(uni.hideLoading(),void uni.showToast({title:"当前环境不支持导出",icon:"none"}))}if(n&&"string"==typeof n&&n.startsWith("http"))return uni.downloadFile({url:n,success:e=>{200===e.statusCode&&(a("log","at components/admin/AdminRecordsPanel.vue:772","访客记录导出成功,文件路径:",e.tempFilePath),uni.showToast({title:"导出成功,文件地址:"+e.tempFilePath,icon:"none"}))}}),void uni.hideLoading();uni.hideLoading(),uni.showToast({title:"导出成功",icon:"success"})}catch(t){uni.hideLoading(),a("error","at components/admin/AdminRecordsPanel.vue:788","导出失败",t),uni.showToast({title:"导出失败",icon:"none"})}var e}else uni.showToast({title:"暂无数据可导出",icon:"none"})};return n({closePanelOverlays:I}),(t,a)=>(e.openBlock(),e.createElementBlock("view",{class:"records-page"},[e.createElementVNode("view",{class:"filter-card surface-card"},[e.createElementVNode("view",{class:"field-grid"},[e.createElementVNode("view",{class:"field-col"},[e.createElementVNode("view",{class:"field-label-row"},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/YxRvg.png"),class:"field-label-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"field-label"},"被访人")]),e.createElementVNode("view",{class:"field-box"},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":a[0]||(a[0]=e=>r.host=e),class:"field-native-input",placeholder:"姓名 / 工号","placeholder-class":"field-native-placeholder","confirm-type":"search",onConfirm:U},null,544),[[e.vModelText,r.host,void 0,{trim:!0}]])])]),e.createElementVNode("view",{class:"field-col"},[e.createElementVNode("view",{class:"field-label-row"},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/d3NSc.png"),class:"field-label-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"field-label"},"被访人部门")]),e.createElementVNode("view",{class:"field-box"},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":a[1]||(a[1]=e=>r.department=e),class:"field-native-input",placeholder:"请输入部门名称","placeholder-class":"field-native-placeholder","confirm-type":"search",onConfirm:U},null,544),[[e.vModelText,r.department,void 0,{trim:!0}]])])]),e.createElementVNode("view",{class:"field-col"},[e.createElementVNode("view",{class:"field-label-row"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/e1XWUs.png"),class:"field-label-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"field-label"},"访客")]),e.createElementVNode("view",{class:"field-box"},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":a[2]||(a[2]=e=>r.guest=e),class:"field-native-input",placeholder:"姓名 / 证件号","placeholder-class":"field-native-placeholder","confirm-type":"search",onConfirm:U},null,544),[[e.vModelText,r.guest,void 0,{trim:!0}]])])])]),e.createElementVNode("view",{class:"field-grid"},[e.createElementVNode("view",{class:"field-col"},[e.createElementVNode("view",{class:"field-label-row"},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/cMr9L.png"),class:"field-label-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"field-label"},"访问区域")]),e.createElementVNode("view",{class:"field-box pressable-box",onClick:F},[e.createElementVNode("text",{class:e.normalizeClass(["field-value-text",{"field-placeholder":!r.area}])},e.toDisplayString(r.area||"区域 / 楼层"),3),e.createElementVNode("image",{src:e.unref(ma),class:"field-arrow",mode:"aspectFit"},null,8,["src"])])]),e.createElementVNode("view",{class:"field-col"},[e.createElementVNode("view",{class:"field-label-row"},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/eQnWl.png"),class:"field-label-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"field-label"},"来访事由")]),e.createElementVNode("view",{class:"field-box"},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":a[3]||(a[3]=e=>r.reason=e),class:"field-native-input",placeholder:"请输入事由","placeholder-class":"field-native-placeholder","confirm-type":"search",onConfirm:U},null,544),[[e.vModelText,r.reason,void 0,{trim:!0}]])])]),e.createElementVNode("view",{class:"field-col empty-col"})]),e.createElementVNode("view",{class:"field-row-bottom"},[e.createElementVNode("view",{class:"field-col full-width"},[e.createElementVNode("view",{class:"field-label-row"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/bZ9UH.png"),class:"field-label-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"field-label"},"来访时间范围")]),e.createElementVNode("view",{class:"field-box pressable-box",onClick:L},[e.createElementVNode("view",{class:"date-range"},[e.createElementVNode("text",{class:e.normalizeClass(["field-value-text",{"field-placeholder":!r.startDate}])},e.toDisplayString(r.startDate||"开始日期"),3),e.createElementVNode("text",{class:"date-dash"},"—"),e.createElementVNode("text",{class:e.normalizeClass(["field-value-text",{"field-placeholder":!r.endDate}])},e.toDisplayString(r.endDate||"结束日期"),3)]),e.createElementVNode("image",{src:e.unref(ma),class:"field-arrow",mode:"aspectFit"},null,8,["src"])])]),e.createElementVNode("view",{class:"toolbar-actions"},[e.createElementVNode("view",{class:"reset-btn pressable-box",onClick:H},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/slDEC.png"),class:"btn-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"reset-btn-text"},"重置")]),e.createElementVNode("view",{class:"search-btn pressable-box",onClick:U},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/PNShK.png"),class:"btn-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"search-btn-text"},"搜索")])])])]),e.createElementVNode("view",{class:"records-panel surface-card"},[e.createElementVNode("view",{class:"records-head"},[e.createElementVNode("view",{class:"records-title-wrap"},[e.createElementVNode("view",{class:"records-title-icon-box"},[e.createElementVNode("image",{src:e.unref(ua),class:"records-title-icon",mode:"aspectFit"},null,8,["src"])]),e.createElementVNode("text",{class:"records-title"},"当前登记记录 - 共 "+e.toDisplayString(T.value.length)+" 条",1)]),e.createElementVNode("view",{class:"export-btn pressable-box",onClick:$},[e.createElementVNode("image",{src:e.unref(ua),class:"export-btn-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"export-btn-text"},"Excel导出")])]),T.value.length>0?(e.openBlock(),e.createElementBlock("scroll-view",{key:0,class:"records-scroll-container","scroll-y":"","show-scrollbar":"true"},[e.createElementVNode("view",{class:"records-grid"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(T.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:e.normalizeClass(["record-item",t.tone]),key:t.id,onClick:e=>(e=>{const t=(null==e?void 0:e.id)||"";uni.navigateTo({url:`/pages/admin-record-detail/index?id=${t}`})})(t)},[e.createElementVNode("view",{class:"record-top-bg"}),e.createElementVNode("view",{class:e.normalizeClass(["record-side-bar",t.tone])},null,2),e.createElementVNode("view",{class:"record-head-row"},[e.createElementVNode("view",{class:"record-user"},[e.createElementVNode("view",{class:e.normalizeClass(["avatar-box",t.tone])},[e.createElementVNode("text",{class:"avatar-text"},e.toDisplayString(t.initial),1)],2),e.createElementVNode("view",{class:"record-user-copy"},[e.createElementVNode("text",{class:"record-name"},e.toDisplayString(t.name),1),e.createElementVNode("text",{class:"record-id"},e.toDisplayString(t.idCard),1)])]),e.createElementVNode("view",{class:"record-status"},[e.createElementVNode("image",{src:t.statusIcon,class:"status-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:e.normalizeClass(["status-text",t.tone])},e.toDisplayString(t.status),3)])]),e.createElementVNode("view",{class:"record-fields"},[e.createElementVNode("view",{class:"record-field"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/e1XWUs.png"),class:"record-field-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"record-field-value"},"被访人:"+e.toDisplayString(t.host),1)]),e.createElementVNode("view",{class:"record-field"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/bTKar.png"),class:"record-field-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"record-field-value"},"登记方式:"+e.toDisplayString(t.type),1)]),e.createElementVNode("view",{class:"record-field"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/e9zsTA.png"),class:"record-field-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"record-field-value"},"访问区域:"+e.toDisplayString(t.area),1)]),e.createElementVNode("view",{class:"record-field"},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/PLU6O.png"),class:"record-field-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"record-field-value"},"来访事由:"+e.toDisplayString(t.reason),1)]),e.createElementVNode("view",{class:"record-field record-field-bottom"},[e.createElementVNode("view",{class:"record-field-left"},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/mh7Th.png"),class:"record-field-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"record-field-value"},"有效期:"+e.toDisplayString(t.time),1)]),e.createElementVNode("view",{class:"detail-chip"},[e.createElementVNode("text",{class:"detail-chip-text"},"详情"),e.createElementVNode("image",{src:e.unref(pa),class:"detail-chip-arrow",mode:"aspectFit"},null,8,["src"])])])])],10,["onClick"])))),128))])])):(e.openBlock(),e.createElementBlock("view",{key:1,class:"empty-state"},[e.createElementVNode("text",{class:"empty-text"},"暂无符合条件的访客记录")]))]),f.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:e.normalizeClass(["overlay-mask",{"date-overlay-mask":"date"===f.value}]),onClick:I},null,2)):e.createCommentVNode("",!0),"area"===f.value?(e.openBlock(),e.createElementBlock("view",{key:1,class:"overlay-sheet selector-sheet"},[e.createElementVNode("view",{class:"sheet-head"},[e.createElementVNode("text",{class:"sheet-title"},"选择访问区域"),e.createElementVNode("text",{class:"sheet-close",onClick:I},"关闭")]),e.createElementVNode("view",{class:"tree-layout"},[e.createElementVNode("view",{class:"tree-column tree-parent-column"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value,(t=>(e.openBlock(),e.createElementBlock("view",{key:t.name,class:e.normalizeClass(["tree-parent-row",{"tree-parent-row-active":y.value===t.name}]),onClick:e=>y.value=t.name},[e.createElementVNode("text",{class:e.normalizeClass(["tree-parent-text",{"tree-parent-text-active":y.value===t.name}])},e.toDisplayString(t.name),3),e.createElementVNode("image",{src:e.unref(pa),class:"tree-arrow",mode:"aspectFit"},null,8,["src"])],10,["onClick"])))),128))]),e.createElementVNode("view",{class:"tree-column tree-child-column"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(A.value,(t=>(e.openBlock(),e.createElementBlock("view",{key:t,class:e.normalizeClass(["tree-child-row",{"tree-child-row-active":w.value===`${y.value} / ${t}`}]),onClick:e=>((e,t)=>{w.value=`${e} / ${t}`})(y.value,t)},[e.createElementVNode("text",{class:e.normalizeClass(["tree-child-text",{"tree-child-text-active":w.value===`${y.value} / ${t}`}])},e.toDisplayString(t),3)],10,["onClick"])))),128))])]),e.createElementVNode("view",{class:"sheet-confirm-btn",onClick:P},[e.createElementVNode("text",{class:"sheet-confirm-text"},"确定")])])):e.createCommentVNode("",!0),"date"===f.value?(e.openBlock(),e.createElementBlock("view",{key:2,class:"overlay-sheet date-sheet admin-home-date-sheet"},[e.createElementVNode("view",{class:"sheet-head"},[e.createElementVNode("text",{class:"sheet-title"},"选择来访时间范围"),e.createElementVNode("text",{class:"sheet-close",onClick:I},"关闭")]),e.createElementVNode("view",{class:"date-tab-row"},[e.createElementVNode("view",{class:e.normalizeClass(["date-tab",{"date-tab-active":"start"===E.value}]),onClick:a[4]||(a[4]=e=>z("start"))},[e.createElementVNode("text",{class:"date-tab-text"},"开始日期"),e.createElementVNode("text",{class:"date-tab-value"},e.toDisplayString(N.value),1)],2),e.createElementVNode("view",{class:e.normalizeClass(["date-tab",{"date-tab-active":"end"===E.value}]),onClick:a[5]||(a[5]=e=>z("end"))},[e.createElementVNode("text",{class:"date-tab-text"},"结束日期"),e.createElementVNode("text",{class:"date-tab-value"},e.toDisplayString(x.value),1)],2)]),e.createElementVNode("picker-view",{class:"date-picker-view",value:C.value,onChange:M},[e.createElementVNode("picker-view-column",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(_),(t=>(e.openBlock(),e.createElementBlock("view",{class:"picker-item",key:t},e.toDisplayString(t)+"年",1)))),128))]),e.createElementVNode("picker-view-column",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(b),(t=>(e.openBlock(),e.createElementBlock("view",{class:"picker-item",key:t},e.toDisplayString(t)+"月",1)))),128))]),e.createElementVNode("picker-view-column",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(D.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:"picker-item",key:t},e.toDisplayString(t)+"日",1)))),128))])],40,["value"]),e.createElementVNode("view",{class:"sheet-confirm-btn",onClick:O},[e.createElementVNode("text",{class:"sheet-confirm-text"},"确定")])])):e.createCommentVNode("",!0)]))}},[["__scopeId","data-v-3b42e07f"]]),wa="/static/admin-pages/rfxAr.png",Ea="/static/admin-pages/pDMhJ.png",Na=e=>new Promise(((t,a)=>{const n=u(m());if(!n)return void a(new Error("未配置服务地址,请先完成设备激活"));const r=uni.getStorageSync("token")||"";uni.uploadFile({url:`${n}/common/upload`,filePath:e,name:"file",header:{Authorization:`Bearer ${r}`},success:e=>{var n;try{const a=JSON.parse(e.data),r=((e="")=>String(e||"").replace(/`/g,"").trim())(a.url||a.fileName||(null==(n=a.data)?void 0:n.url)||"");t({code:a.code,url:r})}catch(r){a(r)}},fail:e=>{a(e)}})}));let xa=!1;const Va=async()=>new Promise((e=>{uni.getNetworkType({success:t=>e(t.networkType),fail:()=>e("unknown")})})),_a=async()=>{if(a("log","at utils/syncEngine.js:27","[Sync] startSyncQueue 进入,当前同步状态:",{isSyncing:xa}),xa)return void a("warn","at utils/syncEngine.js:31","[Sync] 同步队列已在执行中,本次跳过");const e=await Va();if(a("log","at utils/syncEngine.js:37","[Sync] 当前网络状态:",e),"none"!==e){xa=!0;try{let e=[];try{e=await(async()=>{try{return(await D("SELECT * FROM offline_records WHERE sync_status = 0 ORDER BY create_time ASC LIMIT 20")).map((e=>{try{return{...e,payload:JSON.parse(e.payload)}}catch(t){return a("error","at utils/db.js:151","[DB] JSON 解析失败:",e.payload,t),uni.showModal({title:"数据解析失败",content:`ID: ${e.id}\nError: ${t.message}`,showCancel:!1}),{...e,payload:{}}}}))}catch(e){throw e}})(),a("log","at utils/syncEngine.js:50","[Sync] 读取到待同步记录:",{count:e.length,records:e.map((e=>({id:e.id,type:e.type,localImgPath:e.local_img_path,createTime:e.create_time})))})}catch(n){return void a("error","at utils/syncEngine.js:60","[Sync] 读取待同步记录失败:",n)}if(0===e.length)return void a("warn","at utils/syncEngine.js:65","[Sync] 当前没有待同步记录");const o=[],s=[],l=[];for(let t of e){const e=Date.now()-t.create_time>3e5;try{let n={...t.payload||{}};if(t.local_img_path){a("log","at utils/syncEngine.js:85","[Sync] 开始上传本地图片:",{recordId:t.id,type:t.type,localImgPath:t.local_img_path});const e=await Na(t.local_img_path);if(a("log","at utils/syncEngine.js:91","[Sync] 图片上传结果:",{recordId:t.id,type:t.type,localImgPath:t.local_img_path,uploadRes:e}),!e||200!==e.code||!e.url)throw new Error("图片上传失败");"signout"===t.type?n.signImageUrl=e.url:n.faceImageUrl=e.url}e?"signout"===t.type?s.push({recordId:t.id,localImgPath:t.local_img_path,payload:n}):o.push({recordId:t.id,localImgPath:t.local_img_path,payload:n}):l.push({recordId:t.id,localImgPath:t.local_img_path,type:t.type,payload:n})}catch(r){a("error","at utils/syncEngine.js:121",`[Sync] 处理记录 ${t.id} 的图片或数据时失败:`,r)}}for(let n of l)try{let e;"signout"===n.type?(a("log","at utils/syncEngine.js:131","[Sync] 开始调用签离接口:",{recordId:n.recordId,payload:n.payload}),e=await(t=n.payload,h({url:"/api/visitorRecord/idCardSingOut",method:"POST",data:t}))):(a("log","at utils/syncEngine.js:148","[Sync] 开始调用登记接口:",{recordId:n.recordId,type:n.type,payload:n.payload}),e=await ca(n.payload)),a("log","at utils/syncEngine.js:166","[Sync] 单条业务接口返回:",{recordId:n.recordId,type:n.type,submitRes:e}),e&&200===e.code&&(await T(n.recordId),n.localImgPath&&await qt(n.localImgPath))}catch(i){a("error","at utils/syncEngine.js:177",`[Sync] 单条同步 ${n.recordId} 失败:`,i)}if(o.length>0)try{const e=o.map((e=>e.payload));a("log","at utils/syncEngine.js:185","[Sync] 开始调用批量补发签到接口:",{count:e.length,payloads:e});const t=await(e=>h({url:"/api/visitorRecord/pull-singin-data",method:"POST",data:e}))(e);if(a("log","at utils/syncEngine.js:190","[Sync] 批量补发签到接口结果:",t),t&&200===t.code)for(let a of o)await T(a.recordId),a.localImgPath&&await qt(a.localImgPath)}catch(i){a("error","at utils/syncEngine.js:198","[Sync] 批量补发签到数据失败:",i)}if(s.length>0)try{const e=s.map((e=>e.payload));a("log","at utils/syncEngine.js:206","[Sync] 开始调用批量补发签离接口:",{count:e.length,payloads:e});const t=await(e=>h({url:"/api/visitorRecord/pull-singout-data",method:"POST",data:e}))(e);if(a("log","at utils/syncEngine.js:211","[Sync] 批量补发签离接口结果:",t),t&&200===t.code)for(let a of s)await T(a.recordId),a.localImgPath&&await qt(a.localImgPath)}catch(i){a("error","at utils/syncEngine.js:219","[Sync] 批量补发签离数据失败:",i)}}catch(o){a("error","at utils/syncEngine.js:224","[Sync] 队列执行异常:",o)}finally{xa=!1}var t}else a("warn","at utils/syncEngine.js:40","[Sync] 当前离线,跳过同步队列")},ba=async()=>{(async()=>{const e="DELETE FROM offline_records WHERE create_time < "+(Date.now()-1728e5);await C([e])})().catch((e=>{a("error","at utils/syncEngine.js:308","[Sync] 清理过期记录失败:",e)}));try{if("none"!==await new Promise((e=>{uni.getNetworkType({success:t=>e(t.networkType)})}))){const e=await da();e&&200===e.code&&Array.isArray(e.data)&&await I("visit_area_tree",e.data)}}catch(e){a("error","at utils/syncEngine.js:325","[Sync] 每日同步访问区域树失败:",e)}},ka="visitor_machine_ip",Sa=y({__name:"AdminConfigPanel",setup(t,{expose:n}){const r=e.ref(""),i=e.ref(""),o=e.ref(!1),s=e.ref(!1),l=e.ref(!1),c=e.ref(!1),d=e.ref(!1),u=e.ref(!1),g=e.ref(null),f=e.ref("v1.0.0"),y=e.ref(""),w=e.ref(!1),E=e.ref(null),N=(e="")=>String(e||"").trim().replace(/^[vV]/,""),x=(e="")=>String(e).trim().replace(/^https?:\/\//,""),V=e=>!!e&&(/^(\d{1,3}\.){3}\d{1,3}$/.test(e)&&"127.0.0.1"!==e&&"0.0.0.0"!==e),_=()=>new Promise((e=>{try{const t=(()=>{try{const e=plus.android.importClass("java.net.NetworkInterface"),t=plus.android.importClass("java.net.Inet4Address"),a=e.getNetworkInterfaces(),n=[];for(;a&&a.hasMoreElements();){const e=a.nextElement();if(plus.android.importClass(e),!e.isUp()||e.isLoopback())continue;const r=String(e.getName()||"").toLowerCase(),i=e.getInetAddresses();for(;i&&i.hasMoreElements();){const e=i.nextElement();if(plus.android.importClass(e),!(e instanceof t)||e.isLoopbackAddress())continue;const a=String(e.getHostAddress()||"");if(V(a)){if(r.startsWith("eth"))return a;r.startsWith("wlan")||r.startsWith("ap")?n.unshift(a):n.push(a)}}}return n[0]||""}catch(e){return a("error","at components/admin/AdminConfigPanel.vue:292","获取设备网络接口IP失败:",e),""}})();if(t)return void e(t);const n=plus.android.runtimeMainActivity(),r=plus.android.importClass("android.content.Context"),i=n.getSystemService(r.WIFI_SERVICE);plus.android.importClass(i);const o=i.getConnectionInfo();plus.android.importClass(o),e((e=>{const t=Number(e);return t?[255&t,t>>8&255,t>>16&255,t>>24&255].join("."):""})(o.getIpAddress()))}catch(t){a("error","at components/admin/AdminConfigPanel.vue:323","获取终端设备IP失败:",t),e("")}})),b=()=>{const e=x(r.value),t=x(i.value),{port:a}=m();r.value=e,i.value=t,uni.setStorageSync(ka,e),p({ip:t,port:a}),uni.showToast({title:"保存成功",icon:"success"})},k=async()=>{var e,t;if(u.value)return;const n=(null==(e=E.value)?void 0:e.packageUrl)||"",r=(null==(t=E.value)?void 0:t.packageName)||"visitor-update.apk";if(w.value&&n)try{u.value=!0,uni.showLoading({title:"更新包下载中...",mask:!0});const e=String(r||"visitor-update").replace(/\.[^.]+$/,"").replace(/[^a-zA-Z0-9_-]/g,"-")||"visitor-update",t=await Zt(n,{directoryName:"apk-updates",fileNamePrefix:e,fallbackExtension:"apk"});uni.hideLoading(),plus.runtime.install(t,{},(()=>{uni.showToast({title:"安装包已打开,请按提示完成更新",icon:"none"})}),(e=>{a("error","at components/admin/AdminConfigPanel.vue:417","安装更新包失败:",e),uni.showToast({title:(null==e?void 0:e.message)||"安装更新包失败",icon:"none"})}))}catch(i){a("error","at components/admin/AdminConfigPanel.vue:424","下载更新包失败:",i),uni.showToast({title:(null==i?void 0:i.message)||"下载更新包失败",icon:"none"})}finally{uni.hideLoading(),u.value=!1}else uni.showToast({title:"未获取到更新包地址",icon:"none"})},S=async()=>{if(!d.value)try{d.value=!0;try{await Gt(!0)}catch(e){a("error","at components/admin/AdminConfigPanel.vue:447","强制同步员工数据异常:",e)}const t=await(async()=>{if(xa)return{success:!1,reason:"syncing",total:0,synced:0,remaining:await A()};if("none"===await Va())return{success:!1,reason:"offline",total:0,synced:0,remaining:await A()};const e=await A();if(0===e)return{success:!0,reason:"empty",total:0,synced:0,remaining:0};let t=0,a=e,n=0;for(;a>0&&n<20;){const e=await A();if(e<=0){a=0;break}await _a();const r=await A();if(t+=Math.max(e-r,0),a=r,n+=1,r>=e)break}return{success:0===a,reason:0===a?"completed":"partial",total:e,synced:t,remaining:a}})();if("offline"===t.reason)return void uni.showToast({title:"当前网络不可用,请联网后重试",icon:"none"});if("syncing"===t.reason)return void uni.showToast({title:"同步任务执行中,请稍后重试",icon:"none"});if("empty"===t.reason)return void uni.showToast({title:"暂无待同步数据",icon:"none"});if(t.success)return void uni.showToast({title:`同步完成,共同步${t.synced}条`,icon:"success"});uni.showModal({title:"同步未完成",content:`本次已同步 ${t.synced} 条,仍有 ${t.remaining} 条待同步,请检查网络或异常数据后重试`,showCancel:!1})}catch(t){a("error","at components/admin/AdminConfigPanel.vue:489","手动同步离线数据失败:",t),uni.showToast({title:(null==t?void 0:t.msg)||(null==t?void 0:t.message)||"同步失败,请重试",icon:"none"})}finally{d.value=!1}},B=()=>{c.value||(g.value&&(clearTimeout(g.value),g.value=null),o.value=!1,s.value=!1,l.value=!1)},C=()=>{o.value=!1,s.value=!0},D=async()=>{if(!c.value)try{c.value=!0;const e=uni.getStorageSync("device_id");let t="";t=uni.getStorageSync("device_fingerprint")||"",e&&await(({machineId:e,fingerprint:t})=>h({url:"/api/visitmachine/deactivate",method:"POST",data:{machineId:e,fingerprint:t}}))({machineId:e,fingerprint:t}),uni.removeStorageSync("device_id"),uni.removeStorageSync("device_fingerprint"),v(),uni.showToast({title:"设备已注销",icon:"success"}),setTimeout((()=>{s.value=!1,l.value=!1,c.value=!1,uni.reLaunch({url:"/pages/device-init/index"})}),1e3)}catch(e){a("error","at components/admin/AdminConfigPanel.vue:557","注销失败:",e),c.value=!1,s.value=!1,l.value=!1,setTimeout((()=>{uni.showToast({title:(null==e?void 0:e.msg)||(null==e?void 0:e.message)||"注销失败,请重试",icon:"none"})}),100)}},T=()=>{c.value||(s.value=!1,l.value=!0)},I=()=>{c.value||g.value||(g.value=setTimeout((()=>{g.value=null,D()}),3e3))},F=()=>{g.value&&(clearTimeout(g.value),g.value=null)},P=async()=>{try{const e=uni.getAppBaseInfo().appWgtVersion||"";f.value=N(e)||"v1.0.0";const t=await h({url:"/api/visitorRecord/latestVersion",method:"POST"});if(t&&200===t.code&&t.data){const e="object"==typeof t.data?t.data:{},a=N(e.versionNo||"");E.value=e,y.value=a,w.value=Boolean(a&&a!==N(f.value))}}catch(e){a("error","at components/admin/AdminConfigPanel.vue:610","获取最新版本失败:",e),w.value=!1}};return e.onMounted((()=>{(async()=>{const{ip:e}=m(),t=x(uni.getStorageSync(ka)||"");i.value=e||"",r.value=t||await _()})(),P()})),n({closePanelOverlays:B}),(t,a)=>(e.openBlock(),e.createElementBlock("view",{class:"config-page"},[e.createElementVNode("view",{class:"config-main-card"},[e.createElementVNode("view",{class:"page-title-row"},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/L2Nja.png"),class:"page-title-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"page-title-text"},"系统配置")]),e.createElementVNode("view",{class:"section-card"},[e.createElementVNode("view",{class:"section-head"},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/n83u2.png"),class:"section-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"section-title"},"本机信息配置")]),e.createElementVNode("view",{class:"ip-stack"},[e.createElementVNode("view",{class:"ip-item"},[e.createElementVNode("text",{class:"item-label"},"访客机IP"),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":a[0]||(a[0]=e=>r.value=e),class:"ip-input",type:"text","confirm-type":"done",maxlength:"15",placeholder:"请输入访客机IP","placeholder-class":"ip-placeholder"},null,512),[[e.vModelText,r.value]])]),e.createElementVNode("view",{class:"ip-item"},[e.createElementVNode("text",{class:"item-label"},"服务端IP"),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":a[1]||(a[1]=e=>i.value=e),class:"ip-input",type:"text","confirm-type":"done",maxlength:"15",placeholder:"请输入服务端IP","placeholder-class":"ip-placeholder"},null,512),[[e.vModelText,i.value]])])])]),e.createElementVNode("view",{class:"section-card"},[e.createElementVNode("view",{class:"section-head"},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/tLgNe.png"),class:"section-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"section-title"},"系统信息")]),e.createElementVNode("view",{class:"version-row"},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/MKP8p.png"),class:"inline-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"version-label"},"当前版本号:"),e.createElementVNode("text",{class:"version-value"},e.toDisplayString(f.value),1)]),w.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"update-banner"},[e.createElementVNode("view",{class:"update-copy"},[e.createElementVNode("image",{src:e.unref(wa),class:"inline-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"update-text"},"检测到新版本 "+e.toDisplayString(y.value)+" 可用",1)]),e.createElementVNode("view",{class:"update-btn",onClick:k},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/xIj6w.png"),class:"banner-btn-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"update-btn-text"},e.toDisplayString(u.value?"下载中...":"立即更新"),1)])])):(e.openBlock(),e.createElementBlock("view",{key:1,class:"update-banner"},[e.createElementVNode("view",{class:"update-copy"},[e.createElementVNode("image",{src:e.unref(wa),class:"inline-icon",mode:"aspectFit",style:{opacity:"0.5"}},null,8,["src"]),e.createElementVNode("text",{class:"update-text",style:{color:"#6D7F9B"}},"当前已是最新版本")])]))]),e.createElementVNode("view",{class:"section-card"},[e.createElementVNode("view",{class:"section-head"},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/CkN98.png"),class:"section-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"section-title"},"信息同步")]),e.createElementVNode("view",{class:"sync-banner"},[e.createElementVNode("view",{class:"sync-copy"},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/bKxyf.png"),class:"inline-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"sync-text"},"多台访客机同步:操作后将同步至同单位所有设备")]),e.createElementVNode("view",{class:"sync-btn",onClick:S},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/hNTBx.png"),class:"banner-btn-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"sync-btn-text"},e.toDisplayString(d.value?"同步中...":"立即同步"),1)])])]),e.createElementVNode("view",{class:"more-card",onClick:a[2]||(a[2]=e=>o.value=!0)},[e.createElementVNode("view",{class:"more-left"},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/xwVeC.png"),class:"section-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"more-text"},"更多操作")]),e.createElementVNode("image",{src:e.unref(pa),class:"more-arrow",mode:"aspectFit"},null,8,["src"])]),e.createElementVNode("view",{class:"save-row"},[e.createElementVNode("view",{class:"save-btn",onClick:b},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/ySqSZ.png"),class:"save-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"save-btn-text"},"保存配置")])])]),o.value||s.value||l.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"overlay-mask",onClick:B})):e.createCommentVNode("",!0),o.value?(e.openBlock(),e.createElementBlock("view",{key:1,class:"more-dialog"},[e.createElementVNode("view",{class:"dialog-head"},[e.createElementVNode("view",{class:"dialog-placeholder"}),e.createElementVNode("text",{class:"dialog-title"},"更多操作"),e.createElementVNode("view",{class:"dialog-close-btn",onClick:B},[e.createElementVNode("image",{src:e.unref(Ea),class:"dialog-close-icon",mode:"aspectFit"},null,8,["src"])])]),e.createElementVNode("view",{class:"dialog-action-item",onClick:C},[e.createElementVNode("view",{class:"dialog-action-left"},[e.createElementVNode("view",{class:"dialog-action-icon-box"},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/uZNeV.png"),class:"dialog-action-icon",mode:"aspectFit"},null,8,["src"])]),e.createElementVNode("text",{class:"dialog-action-text"},"注销设备")]),e.createElementVNode("image",{src:e.unref(pa),class:"dialog-action-arrow",mode:"aspectFit"},null,8,["src"])])])):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock("view",{key:2,class:"logout-dialog"},[e.createElementVNode("view",{class:"logout-copy"},[e.createElementVNode("text",{class:"logout-title"},"注销设备"),e.createElementVNode("text",{class:"logout-desc"},"注销后本设备数据清空不可恢复,是否确认注销?")]),e.createElementVNode("view",{class:"logout-actions"},[e.createElementVNode("view",{class:"ghost-btn",onClick:B},[e.createElementVNode("text",{class:"ghost-btn-text"},"取消")]),e.createElementVNode("view",{class:"confirm-btn",onClick:T},[e.createElementVNode("text",{class:"confirm-btn-text"},e.toDisplayString(c.value?"注销中...":"确定"),1)])])])):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createElementBlock("view",{key:3,class:"logout-hold-dialog"},[e.createElementVNode("view",{class:"dialog-head dialog-head-plain"},[e.createElementVNode("view",{class:"dialog-placeholder"}),e.createElementVNode("view",{class:"dialog-close-btn",onClick:B},[e.createElementVNode("image",{src:e.unref(Ea),class:"dialog-close-icon",mode:"aspectFit"},null,8,["src"])])]),e.createElementVNode("view",{class:"logout-hold-copy"},[e.createElementVNode("text",{class:"logout-hold-title"},"请长按确定按钮3秒")]),e.createElementVNode("view",{class:"logout-hold-confirm-btn",onTouchstart:I,onTouchend:F,onTouchcancel:F,onMousedown:I,onMouseup:F,onMouseleave:F},[e.createElementVNode("text",{class:"logout-hold-confirm-text"},e.toDisplayString(c.value?"注销中...":"确定"),1)],32)])):e.createCommentVNode("",!0)]))}},[["__scopeId","data-v-66c2f69c"]]),Ba=y({__name:"index",setup(t){const n=e.ref("home"),r=e.ref(null),i=e.ref(null),s=[{label:"今日",value:"today"},{label:"近7天",value:"week"},{label:"近30天",value:"month"}],l=e=>`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`,c=e=>{const t=new Date;if(t.setHours(0,0,0,0),"today"===e)return{startDate:l(t),endDate:l(t)};if("week"===e){const e=new Date(t);return e.setDate(t.getDate()-6),{startDate:l(e),endDate:l(t)}}const a=new Date(t);return a.setDate(t.getDate()-29),{startDate:l(a),endDate:l(t)}},d=c("today"),u=e.ref("today"),m=e.ref("today"),p=e.ref(d.startDate),v=e.ref(d.endDate),g=e.ref(d.startDate),f=e.ref(d.endDate),y=e.ref(!1),w=e.ref("start"),E=e.ref(""),N=e.ref(""),x=e.ref(""),V=e.ref(""),_=e.ref(""),b=e.ref([0,0,0]),k=(new Date).getFullYear(),S=Array.from({length:10},((e,t)=>String(k-5+t))),B=Array.from({length:12},((e,t)=>String(t+1).padStart(2,"0"))),C=e.computed((()=>{if(!x.value||!V.value)return[];const e=new Date(Number(x.value),Number(V.value),0).getDate();return Array.from({length:e},((e,t)=>String(t+1).padStart(2,"0")))})),D=e=>{if(!e)return;const[t,a,n]=e.split("-");x.value=t,V.value=a,_.value=n,b.value=[Math.max(S.indexOf(t),0),Math.max(B.indexOf(a),0),Math.max(C.value.indexOf(n),0)]},A=()=>{E.value=p.value,N.value=v.value,w.value="start",D(E.value),y.value=!0},T=()=>{y.value=!1},I=e=>{w.value=e,D("start"===e?E.value:N.value)},P=e=>{const[t,a,n]=e.detail.value;x.value=S[t],V.value=B[a];const r=Array.from({length:new Date(Number(x.value),Number(V.value),0).getDate()},((e,t)=>String(t+1).padStart(2,"0")));_.value=r[Math.min(n,r.length-1)],b.value=[t,a,r.indexOf(_.value)];const i=`${x.value}-${V.value}-${_.value}`;"start"===w.value?E.value=i:N.value=i},R=()=>{E.value&&N.value&&E.value>N.value?uni.showToast({title:"开始日期不能大于结束日期",icon:"none"}):(p.value=E.value,v.value=N.value,u.value="custom",T())},L=e.ref({onlineAppointments:0,onlineCars:0,onsiteAppointments:0,onsiteCars:0,stayingVisitors:0,checkedInVisitors:0,overdueVisitors:0}),z=e.ref([]),M=async()=>{try{const a={};if("custom"===m.value){a.beginTime=`${g.value} 00:00:00`;const e=new Date(f.value);e.setDate(e.getDate()+1);const t=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0");a.endTime=`${t}-${n}-${r} 00:00:00`}else a.periodType="today"===(t=m.value)?"TODAY":"week"===t?"RECENT_7_DAYS":"month"===t?"RECENT_30_DAYS":"";uni.showLoading({title:"加载中"});const n=await(e=a,h({url:"/api/dashboard/overview",method:"POST",data:e}));if(n&&200===n.code&&n.data)return void((e={})=>{var t,a,n,r,i,o,s;if(L.value={onlineAppointments:(null==(t=e.onlineAppointment)?void 0:t.registerCount)||0,onlineCars:(null==(a=e.onlineAppointment)?void 0:a.vehicleCount)||0,onsiteAppointments:(null==(n=e.onsiteAppointment)?void 0:n.registerCount)||0,onsiteCars:(null==(r=e.onsiteAppointment)?void 0:r.vehicleCount)||0,stayingVisitors:(null==(i=e.statusSummary)?void 0:i.visitingCount)||0,checkedInVisitors:(null==(o=e.statusSummary)?void 0:o.signedOutCount)||0,overdueVisitors:(null==(s=e.statusSummary)?void 0:s.overdueCount)||0},e.trend&&Array.isArray(e.trend.labels)){const{labels:t,onsite:a,appointment:n}=e.trend,r=t.map(((e,t)=>({label:e,onlineAppointments:(null==n?void 0:n[t])||0,onsiteAppointments:(null==a?void 0:a[t])||0}))),i=Math.max(...r.map((e=>Math.max(e.onlineAppointments,e.onsiteAppointments))),1);z.value=r.map((e=>{const t=e=>Math.max(24,Math.round(e/i*228));return{label:e.label,total:`${e.onlineAppointments}/${e.onsiteAppointments}`,online:t(e.onlineAppointments),onsite:t(e.onsiteAppointments)}}))}else z.value=[]})(n.data);throw new Error((null==n?void 0:n.msg)||"获取看板数据失败")}catch(n){a("error","at pages/admin-home/index.vue:566","获取看板数据失败",n),L.value={onlineAppointments:0,onlineCars:0,onsiteAppointments:0,onsiteCars:0,stayingVisitors:0,checkedInVisitors:0,overdueVisitors:0},z.value=[],uni.showToast({title:"网络异常,获取失败",icon:"none"})}finally{uni.hideLoading()}var e,t},O=e.ref([{id:"version",icon:"/static/admin-home/n69cys.png",text:"当前版本号:获取中..."},{id:"vendor",icon:"/static/admin-home/e2IF1A.png",text:"服务厂家:获取中..."},{id:"support",icon:"/static/admin-home/nDZgA.png",text:"技术支持:获取中..."},{id:"terminal",icon:"/static/admin-home/zuvnL.png",text:"终端编号:获取中..."}]),H=async()=>{try{const e=await(async()=>await F("system_config")||uni.getStorageSync("system_config")||{})(),t=O.value.findIndex((e=>"version"===e.id)),a=O.value.findIndex((e=>"vendor"===e.id)),n=O.value.findIndex((e=>"support"===e.id)),r=uni.getAppBaseInfo().appWgtVersion||"";t>-1&&(O.value[t].text=`当前版本号:${r||"v1.0.0"}`),a>-1&&(O.value[a].text=`服务厂家:${e.serviceProvider||e.manufacturer||"未知"}`),n>-1&&(O.value[n].text=`技术支持:${e.technicalSupport||e.supportPhone||"未知"}`)}catch(e){a("error","at pages/admin-home/index.vue:608","获取系统底部配置失败:",e)}},U=["home","records","config"],$=e=>{var t,a,o,s;U.includes(e)&&(null==(a=null==(t=r.value)?void 0:t.closePanelOverlays)||a.call(t),null==(s=null==(o=i.value)?void 0:o.closePanelOverlays)||s.call(o),n.value=e)},j=()=>{p.value&&v.value?p.value>v.value?uni.showToast({title:"开始日期不能大于结束日期",icon:"none"}):(m.value=u.value,g.value=p.value,f.value=v.value,M()):uni.showToast({title:"请选择完整日期范围",icon:"none"})};return o((e=>{const t=null==e?void 0:e.tab;U.includes(t)&&(n.value=t),M(),(async()=>{try{const e=uni.getSystemInfoSync(),t=e.deviceId||e.model||"未知设备",a=O.value.findIndex((e=>"terminal"===e.id));a>-1&&(O.value[a].text=`终端编号:${t}`)}catch(e){a("error","at pages/admin-home/index.vue:622","获取设备编号失败",e);const t=O.value.findIndex((e=>"terminal"===e.id));t>-1&&(O.value[t].text="终端编号:获取失败")}})(),H()})),(t,a)=>(e.openBlock(),e.createBlock(sa,null,{"footer-info":e.withCtx((()=>[e.withDirectives(e.createElementVNode("view",{class:"device-info-row"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(O.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:"device-info-item",key:t.text},[e.createElementVNode("image",{src:t.icon,class:"device-info-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"device-info-text"},e.toDisplayString(t.text),1)])))),128))],512),[[e.vShow,"home"===n.value]])])),"bottom-nav":e.withCtx((()=>[e.createVNode(la,{"active-tab":n.value,onChange:$},null,8,["active-tab"])])),overlay:e.withCtx((()=>[y.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"overlay-mask",onClick:T})):e.createCommentVNode("",!0),y.value?(e.openBlock(),e.createElementBlock("view",{key:1,class:"overlay-sheet date-sheet"},[e.createElementVNode("view",{class:"sheet-head"},[e.createElementVNode("text",{class:"sheet-title"},"选择统计日期范围"),e.createElementVNode("text",{class:"sheet-close",onClick:T},"关闭")]),e.createElementVNode("view",{class:"date-tab-row"},[e.createElementVNode("view",{class:e.normalizeClass(["date-tab",{"date-tab-active":"start"===w.value}]),onClick:a[0]||(a[0]=e=>I("start"))},[e.createElementVNode("text",{class:"date-tab-text"},"开始日期"),e.createElementVNode("text",{class:"date-tab-value"},e.toDisplayString(E.value),1)],2),e.createElementVNode("view",{class:e.normalizeClass(["date-tab",{"date-tab-active":"end"===w.value}]),onClick:a[1]||(a[1]=e=>I("end"))},[e.createElementVNode("text",{class:"date-tab-text"},"结束日期"),e.createElementVNode("text",{class:"date-tab-value"},e.toDisplayString(N.value),1)],2)]),e.createElementVNode("picker-view",{class:"date-picker-view",value:b.value,onChange:P},[e.createElementVNode("picker-view-column",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(S),(t=>(e.openBlock(),e.createElementBlock("view",{class:"picker-item",key:t},e.toDisplayString(t)+"年",1)))),128))]),e.createElementVNode("picker-view-column",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(B),(t=>(e.openBlock(),e.createElementBlock("view",{class:"picker-item",key:t},e.toDisplayString(t)+"月",1)))),128))]),e.createElementVNode("picker-view-column",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:"picker-item",key:t},e.toDisplayString(t)+"日",1)))),128))])],40,["value"]),e.createElementVNode("view",{class:"sheet-confirm-btn",onClick:R},[e.createElementVNode("text",{class:"sheet-confirm-text"},"确定")])])):e.createCommentVNode("",!0)])),default:e.withCtx((()=>[e.withDirectives(e.createElementVNode("view",{class:"home-tab-panel"},[e.createElementVNode("view",{class:"toolbar-card surface-card"},[e.createElementVNode("view",{class:"segmented"},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(s,(t=>e.createElementVNode("view",{key:t.value,class:e.normalizeClass(["segment-item",{active:u.value===t.value}]),onClick:e=>(e=>{u.value=e;const t=c(e);p.value=t.startDate,v.value=t.endDate,m.value=e,g.value=t.startDate,f.value=t.endDate,M()})(t.value)},[e.createElementVNode("text",{class:e.normalizeClass(["segment-text",{"active-text":u.value===t.value}])},e.toDisplayString(t.label),3)],10,["onClick"]))),64))]),e.createElementVNode("view",{class:"range-row"},[e.createElementVNode("view",{class:"date-range",onClick:A},[e.createElementVNode("view",{class:"date-field"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/bZ9UH.png"),class:"date-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:e.normalizeClass(["date-text",{"date-text-value":!!p.value}])},e.toDisplayString(p.value||"开始日期"),3)]),e.createElementVNode("text",{class:"date-separator"},"—"),e.createElementVNode("view",{class:"date-field"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/bZ9UH.png"),class:"date-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:e.normalizeClass(["date-text",{"date-text-value":!!v.value}])},e.toDisplayString(v.value||"结束日期"),3)])]),e.createElementVNode("view",{class:"apply-btn",onClick:j},[e.createElementVNode("text",{class:"apply-btn-text"},"应用")])])]),e.createElementVNode("view",{class:"module-row"},[e.createElementVNode("view",{class:"module-card online-module"},[e.createElementVNode("view",{class:"module-glow primary online-glow"}),e.createElementVNode("view",{class:"module-glow secondary"}),e.createElementVNode("image",{src:e.unref("/static/admin-home/ct7YQ.png"),class:"module-bg-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("view",{class:"module-head"},[e.createElementVNode("view",{class:"module-title-group"},[e.createElementVNode("view",{class:"module-icon-box blue-box"},[e.createElementVNode("image",{src:e.unref("/static/admin-home/gooak.png"),class:"module-icon",mode:"aspectFit"},null,8,["src"])]),e.createElementVNode("view",{class:"module-copy"},[e.createElementVNode("text",{class:"module-title"},"线上预约"),e.createElementVNode("text",{class:"module-subtitle"},"基于筛选周期")])])]),e.createElementVNode("view",{class:"module-panel-row"},[e.createElementVNode("view",{class:"module-panel panel-blue"},[e.createElementVNode("view",{class:"panel-tag"},[e.createElementVNode("view",{class:"panel-tag-icon-box"},[e.createElementVNode("image",{src:e.unref("/static/admin-home/ShimA.png"),class:"panel-tag-icon",mode:"aspectFit"},null,8,["src"])]),e.createElementVNode("text",{class:"panel-tag-text"},"预约登记数")]),e.createElementVNode("view",{class:"panel-value-row"},[e.createElementVNode("text",{class:"panel-value"},e.toDisplayString(L.value.onlineAppointments),1),e.createElementVNode("text",{class:"panel-unit light-unit"},"次")])]),e.createElementVNode("view",{class:"module-panel panel-deep-blue"},[e.createElementVNode("view",{class:"panel-tag"},[e.createElementVNode("view",{class:"panel-tag-icon-box"},[e.createElementVNode("image",{src:e.unref("/static/admin-home/b5DTW5.png"),class:"panel-tag-icon",mode:"aspectFit"},null,8,["src"])]),e.createElementVNode("text",{class:"panel-tag-text"},"来访车辆数")]),e.createElementVNode("view",{class:"panel-value-row"},[e.createElementVNode("text",{class:"panel-value"},e.toDisplayString(L.value.onlineCars),1),e.createElementVNode("text",{class:"panel-unit light-unit"},"辆")])])])]),e.createElementVNode("view",{class:"module-card onsite-module"},[e.createElementVNode("view",{class:"module-glow primary onsite-glow"}),e.createElementVNode("view",{class:"module-glow secondary"}),e.createElementVNode("image",{src:e.unref("/static/admin-home/T4s7T8.png"),class:"module-bg-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("view",{class:"module-head"},[e.createElementVNode("view",{class:"module-title-group"},[e.createElementVNode("view",{class:"module-icon-box green-box"},[e.createElementVNode("image",{src:e.unref("/static/admin-home/Ma3sq.png"),class:"module-icon",mode:"aspectFit"},null,8,["src"])]),e.createElementVNode("view",{class:"module-copy"},[e.createElementVNode("text",{class:"module-title"},"现场预约"),e.createElementVNode("text",{class:"module-subtitle"},"基于筛选周期")])])]),e.createElementVNode("view",{class:"module-panel-row"},[e.createElementVNode("view",{class:"module-panel panel-green"},[e.createElementVNode("view",{class:"panel-tag"},[e.createElementVNode("view",{class:"panel-tag-icon-box"},[e.createElementVNode("image",{src:e.unref("/static/admin-home/ShimA.png"),class:"panel-tag-icon",mode:"aspectFit"},null,8,["src"])]),e.createElementVNode("text",{class:"panel-tag-text"},"预约登记数")]),e.createElementVNode("view",{class:"panel-value-row"},[e.createElementVNode("text",{class:"panel-value"},e.toDisplayString(L.value.onsiteAppointments),1),e.createElementVNode("text",{class:"panel-unit light-unit"},"次")])]),e.createElementVNode("view",{class:"module-panel panel-deep-green"},[e.createElementVNode("view",{class:"panel-tag"},[e.createElementVNode("view",{class:"panel-tag-icon-box"},[e.createElementVNode("image",{src:e.unref("/static/admin-home/b5DTW5.png"),class:"panel-tag-icon",mode:"aspectFit"},null,8,["src"])]),e.createElementVNode("text",{class:"panel-tag-text"},"来访车辆数")]),e.createElementVNode("view",{class:"panel-value-row"},[e.createElementVNode("text",{class:"panel-value"},e.toDisplayString(L.value.onsiteCars),1),e.createElementVNode("text",{class:"panel-unit light-unit"},"辆")])])])])]),e.createElementVNode("view",{class:"summary-row"},[e.createElementVNode("view",{class:"summary-card summary-blue surface-card"},[e.createElementVNode("view",{class:"summary-top"},[e.createElementVNode("view",{class:"summary-title-row"},[e.createElementVNode("view",{class:"summary-dot stay-dot"}),e.createElementVNode("text",{class:"summary-title stay-title"},"来访中")]),e.createElementVNode("view",{class:"summary-accent stay-accent"})]),e.createElementVNode("view",{class:"summary-value-row"},[e.createElementVNode("text",{class:"summary-value"},e.toDisplayString(L.value.stayingVisitors),1),e.createElementVNode("text",{class:"summary-unit"},"人")]),e.createElementVNode("view",{class:"summary-foot stay-foot"},[e.createElementVNode("image",{src:e.unref("/static/admin-home/k2RT0t.png"),class:"summary-foot-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"summary-foot-text"},"实时访客统计")])]),e.createElementVNode("view",{class:"summary-card summary-green surface-card"},[e.createElementVNode("view",{class:"summary-top"},[e.createElementVNode("view",{class:"summary-title-row"},[e.createElementVNode("view",{class:"summary-dot checkin-dot"}),e.createElementVNode("text",{class:"summary-title checkin-title"},"已签离")]),e.createElementVNode("view",{class:"summary-accent checkin-accent"})]),e.createElementVNode("view",{class:"summary-value-row"},[e.createElementVNode("text",{class:"summary-value"},e.toDisplayString(L.value.checkedInVisitors),1),e.createElementVNode("text",{class:"summary-unit"},"人")]),e.createElementVNode("view",{class:"summary-foot checkin-foot"},[e.createElementVNode("image",{src:e.unref("/static/admin-home/zGFsd.png"),class:"summary-foot-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"summary-foot-text"},"实时访客统计")])]),e.createElementVNode("view",{class:"summary-card summary-orange surface-card"},[e.createElementVNode("view",{class:"summary-top"},[e.createElementVNode("view",{class:"summary-title-row"},[e.createElementVNode("view",{class:"summary-dot overdue-dot"}),e.createElementVNode("text",{class:"summary-title overdue-title"},"逾期滞留")]),e.createElementVNode("view",{class:"summary-accent overdue-accent"})]),e.createElementVNode("view",{class:"summary-value-row"},[e.createElementVNode("text",{class:"summary-value"},e.toDisplayString(L.value.overdueVisitors),1),e.createElementVNode("text",{class:"summary-unit"},"人")]),e.createElementVNode("view",{class:"summary-foot overdue-foot"},[e.createElementVNode("image",{src:e.unref("/static/admin-home/vlipv.png"),class:"summary-foot-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"summary-foot-text"},"实时访客统计")])])]),e.createElementVNode("view",{class:"trend-card surface-card"},[e.createElementVNode("view",{class:"trend-header"},[e.createElementVNode("view",{class:"trend-title-group"},[e.createElementVNode("view",{class:"trend-icon-box"},[e.createElementVNode("image",{src:e.unref("/static/admin-home/dZ3Pf.png"),class:"trend-icon",mode:"aspectFit"},null,8,["src"])]),e.createElementVNode("view",{class:"trend-copy"},[e.createElementVNode("text",{class:"trend-title"},"进出场趋势分析"),e.createElementVNode("text",{class:"trend-subtitle"},"预约登记趋势")])]),e.createElementVNode("view",{class:"trend-legend-group"},[e.createElementVNode("view",{class:"trend-legend"},[e.createElementVNode("view",{class:"legend-dot online-dot"}),e.createElementVNode("text",{class:"legend-text online-legend-text"},"线上预约")]),e.createElementVNode("view",{class:"trend-legend"},[e.createElementVNode("view",{class:"legend-dot onsite-dot"}),e.createElementVNode("text",{class:"legend-text onsite-legend-text"},"现场预约")])])]),e.createElementVNode("view",{class:"chart-panel"},[e.createElementVNode("view",{class:"chart-grid-line line-1"}),e.createElementVNode("view",{class:"chart-grid-line line-2"}),e.createElementVNode("view",{class:"chart-grid-line line-3"}),e.createElementVNode("view",{class:"chart-grid-line line-4"}),e.createElementVNode("view",{class:"chart-panel-head"},[e.createElementVNode("text",{class:"chart-panel-caption"},"日度预约量"),e.createElementVNode("text",{class:"chart-panel-unit"},"单位:次")]),z.value.length?(e.openBlock(),e.createElementBlock("scroll-view",{key:0,class:"chart-scroll-view","scroll-x":"true","show-scrollbar":"true"},[e.createElementVNode("view",{class:"chart-columns"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(z.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:"chart-column",key:t.label},[e.createElementVNode("view",{class:"chart-value-pill"},[e.createElementVNode("text",{class:"chart-value-pill-text"},e.toDisplayString(t.total),1)]),e.createElementVNode("view",{class:"chart-bars"},[e.createElementVNode("view",{class:"chart-bar online-bar",style:e.normalizeStyle({height:`${t.online}px`})},null,4),e.createElementVNode("view",{class:"chart-bar onsite-bar",style:e.normalizeStyle({height:`${t.onsite}px`})},null,4)]),e.createElementVNode("text",{class:"chart-label"},e.toDisplayString(t.label),1)])))),128))])])):(e.openBlock(),e.createElementBlock("view",{key:1,class:"chart-empty-state"},[e.createElementVNode("text",{class:"chart-empty-text"},"当前筛选范围暂无统计数据")]))]),e.createElementVNode("view",{class:"trend-footnote"},[e.createElementVNode("text",{class:"trend-footnote-text"},"基于登记日期统计,支持快速对比线上与现场预约波动")])])],512),[[e.vShow,"home"===n.value]]),e.withDirectives(e.createVNode(ya,{ref_key:"recordsPanelRef",ref:r},null,512),[[e.vShow,"records"===n.value]]),e.withDirectives(e.createVNode(Sa,{ref_key:"configPanelRef",ref:i},null,512),[[e.vShow,"config"===n.value]])])),_:1}))}},[["__scopeId","data-v-6cc359fb"]]),Ca=y({__name:"index",setup:t=>(o((()=>{uni.reLaunch({url:"/pages/admin-home/index?tab=records"})})),(t,a)=>(e.openBlock(),e.createElementBlock("view",{class:"redirect-page"})))},[["__scopeId","data-v-c344f4e5"]]),Da="/static/admin-detail/Ay837.png",Aa=y({__name:"index",setup(t){const n=e.ref(""),r=e.ref({name:"-",status:"-",statusClass:"stay",type:"-",idCard:"-",recordNo:"-",registerTime:"-",registerCaptureTime:"-",plateNumber:"-",host:"-",receiver:"-",hostVerify:"-",areaTags:[],validityText:"-",signoutCaptureTime:"-",signoutTime:"-",signoutReceiver:"-",signoutVerify:"-",faceImageUrl:"",signoutImageUrl:""}),i=async e=>{uni.showLoading({title:"加载中..."});try{const a=await(t={recordId:e},h({url:"/api/visitorRecord/detail",method:"POST",data:t}));if(!a||200!==a.code||!a.data)throw new Error((null==a?void 0:a.msg)||"获取详情失败");r.value=((e={})=>{const t=(e=>{switch(e){case"VISITING":return{text:"来访中",class:"stay"};case"SIGNED_OUT":return{text:"已签离",class:"done"};case"PENDING_CONFIRM":case"OVERDUE":return{text:"逾期滞留",class:"warn"};case"OVERDUE_AUTO_SIGNED_OUT":case"AUTO_SIGNED_OUT":return{text:"超期自动",class:"idle"};case"CANCELLED":return{text:"已取消",class:"warn"};default:return{text:e||"未知",class:"stay"}}})(e.status),a=Array.isArray(e.visitAreaNameList)?e.visitAreaNameList:(e.visitAreaNames||"").split(",").map((e=>e.trim())).filter(Boolean);return{name:e.visitorName||e.name||"-",status:e.statusName||e.status||t.text,statusClass:e.statusClass||t.class,type:e.registerTypeName||e.type||(n=e.registerType,"APPOINTMENT"===n?"预约登记":"ONSITE"===n?"现场登记":n||"未知"),idCard:e.idCardMask||e.idCard||"-",recordNo:e.registerNo||e.recordNo||e.recordId||"-",registerTime:e.registerTime||"-",registerCaptureTime:e.registerCollectTime||e.registerCaptureTime||e.registerTime||"-",plateNumber:e.plateNo||e.plateNumber||"-",host:e.intervieweeName||e.host||"-",receiver:e.receiverName||e.signReceiverName||e.receiver||e.intervieweeName||"-",hostVerify:e.receiverVerifyMethodName||e.receiverVerifyMethod||e.hostVerify||"-",areaTags:a,validityText:e.validTimeText||e.validityText||(e.validStartTime&&e.validEndTime?`${e.validStartTime} 至 ${e.validEndTime}`:"-"),signoutCaptureTime:e.signCollectTime||e.signoutCaptureTime||e.signTime||"-",signoutTime:e.signTime||e.signoutTime||"-",signoutReceiver:e.signReceiverName||e.signoutReceiver||"-",signoutVerify:e.signVerifyMethodName||e.signVerifyMethod||e.signoutVerify||"-",faceImageUrl:e.faceImageUrl||"",signoutImageUrl:e.signImageUrl||e.signoutImageUrl||""};var n})(a.data)}catch(n){a("error","at pages/admin-record-detail/index.vue:287","获取在线详情失败:",n),uni.showToast({title:"网络异常,获取详情失败",icon:"none"})}finally{uni.hideLoading()}var t};o((e=>{n.value=(null==e?void 0:e.id)||"",n.value&&i(n.value)}));const s=e.computed((()=>({stay:va,done:ga,warn:fa,idle:ha}[r.value.statusClass]||va))),l=e.computed((()=>[{label:"姓名",value:r.value.name,icon:"/static/admin-detail/e1XWUs.png"},{label:"登记方式",value:r.value.type,icon:"/static/admin-detail/bTKar.png"},{label:"证件号码",value:r.value.idCard,icon:"/static/admin-detail/IiGss.png"}])),c=e.computed((()=>[{label:"登记编号",value:r.value.recordNo,icon:"/static/admin-detail/dDvxL.png"},{label:"登记时间",value:r.value.registerTime,icon:"/static/admin-detail/SRQAF.png"},{label:"车牌号",value:r.value.plateNumber,icon:"/static/admin-detail/y5iYAG.png"}])),d=()=>{uni.navigateBack({delta:1,fail:()=>{uni.reLaunch({url:"/pages/admin-records/index"})}})};return(t,a)=>(e.openBlock(),e.createBlock(sa,{"show-bottom-nav":!1},{default:e.withCtx((()=>[e.createElementVNode("view",{class:"detail-card"},[e.createElementVNode("view",{class:"detail-head"},[e.createElementVNode("view",{class:"head-left",onClick:d},[e.createElementVNode("view",{class:"back-btn"},[e.createElementVNode("image",{src:e.unref(Da),class:"back-icon",mode:"aspectFit"},null,8,["src"])]),e.createElementVNode("text",{class:"page-title"},"访客登记详情")]),e.createElementVNode("view",{class:e.normalizeClass(["status-pill",r.value.statusClass])},[e.createElementVNode("image",{src:s.value,class:"status-pill-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:e.normalizeClass(["status-pill-text",r.value.statusClass])},e.toDisplayString(r.value.status),3)],2)]),e.createElementVNode("view",{class:"section-card"},[e.createElementVNode("view",{class:"section-head"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/e7v1T.png"),class:"section-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"section-title"},"访客信息")]),e.createElementVNode("view",{class:"visitor-layout"},[e.createElementVNode("view",{class:"capture-col"},[e.createElementVNode("image",{src:r.value.faceImageUrl||e.unref("/static/admin-detail/aWmHf.png"),class:"capture-image",mode:"widthFix"},null,8,["src"]),e.createElementVNode("text",{class:"capture-time"},"登记采集"+e.toDisplayString("\n")+e.toDisplayString(r.value.registerCaptureTime)+" 录入",1)]),e.createElementVNode("view",{class:"field-col"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:"detail-field",key:t.label},[e.createElementVNode("image",{src:t.icon,class:"field-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("view",{class:"field-copy"},[e.createElementVNode("text",{class:"field-label"},e.toDisplayString(t.label),1),e.createElementVNode("text",{class:"field-value"},e.toDisplayString(t.value),1)])])))),128))]),e.createElementVNode("view",{class:"field-col field-col-right"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:"detail-field",key:t.label},[e.createElementVNode("image",{src:t.icon,class:"field-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("view",{class:"field-copy"},[e.createElementVNode("text",{class:"field-label"},e.toDisplayString(t.label),1),e.createElementVNode("text",{class:"field-value"},e.toDisplayString(t.value),1)])])))),128))])])]),e.createElementVNode("view",{class:"section-card"},[e.createElementVNode("view",{class:"section-head"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/VkMZk.png"),class:"section-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"section-title"},"被访者")]),e.createElementVNode("view",{class:"host-layout"},[e.createElementVNode("view",{class:"host-item"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/e1XWUs.png"),class:"field-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("view",{class:"field-copy"},[e.createElementVNode("text",{class:"field-label"},"被访人"),e.createElementVNode("text",{class:"field-value"},e.toDisplayString(r.value.host),1)])]),e.createElementVNode("view",{class:"host-item"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/X8vSXE.png"),class:"field-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("view",{class:"field-copy"},[e.createElementVNode("text",{class:"field-label"},"登记接待人"),e.createElementVNode("text",{class:"field-value"},e.toDisplayString(r.value.receiver),1)])]),e.createElementVNode("view",{class:"host-item host-method-item"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/a6rRE.png"),class:"field-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("view",{class:"field-copy"},[e.createElementVNode("text",{class:"field-label host-method-label"},"接待人验证方式"),e.createElementVNode("view",{class:"method-badge"},[e.createElementVNode("text",{class:"method-badge-text"},e.toDisplayString(r.value.hostVerify),1)])])])])]),e.createElementVNode("view",{class:"section-card"},[e.createElementVNode("view",{class:"section-head"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/lvVVM.png"),class:"section-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"section-title"},"访问权限")]),e.createElementVNode("view",{class:"permission-layout"},[e.createElementVNode("view",{class:"permission-title-row"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/e9zsTA.png"),class:"field-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"field-label"},"可访问区域")]),e.createElementVNode("view",{class:"tag-row"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value.areaTags,(t=>(e.openBlock(),e.createElementBlock("view",{class:"tag-chip",key:t},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/gDoHZ.png"),class:"tag-check-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"tag-text"},e.toDisplayString(t),1)])))),128))]),e.createElementVNode("view",{class:"permission-title-row"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/bZ9UH.png"),class:"field-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"field-label"},"访问有效期")]),e.createElementVNode("view",{class:"validity-box"},[e.createElementVNode("text",{class:"validity-text"},e.toDisplayString(r.value.validityText),1)])])]),e.createElementVNode("view",{class:"section-card"},[e.createElementVNode("view",{class:"section-head"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/y2Wztk.png"),class:"section-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"section-title"},"签离记录")]),e.createElementVNode("view",{class:"visitor-layout"},[e.createElementVNode("view",{class:"capture-col"},[e.createElementVNode("image",{src:r.value.signoutImageUrl||e.unref("/static/admin-detail/jAROZ.png"),class:"capture-image",mode:"widthFix"},null,8,["src"]),e.createElementVNode("text",{class:"capture-time"},"签离采集"+e.toDisplayString("\n")+e.toDisplayString(r.value.signoutCaptureTime)+" 录入",1)]),e.createElementVNode("view",{class:"signout-fields"},[e.createElementVNode("view",{class:"detail-field"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/c1DOt.png"),class:"field-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("view",{class:"field-copy"},[e.createElementVNode("text",{class:"field-label"},"签离时间"),e.createElementVNode("text",{class:"field-value"},e.toDisplayString(r.value.signoutTime),1)])]),e.createElementVNode("view",{class:"detail-field"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/X8vSXE.png"),class:"field-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("view",{class:"field-copy"},[e.createElementVNode("text",{class:"field-label"},"签离接待人"),e.createElementVNode("text",{class:"field-value"},e.toDisplayString(r.value.signoutReceiver),1)])]),e.createElementVNode("view",{class:"detail-field"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/a6rRE.png"),class:"field-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("view",{class:"field-copy"},[e.createElementVNode("text",{class:"field-label"},"接待人验证方式"),e.createElementVNode("view",{class:"method-badge method-badge-warn"},[e.createElementVNode("text",{class:"method-badge-text method-badge-text-warn"},e.toDisplayString(r.value.signoutVerify),1)])])])])])])])])),_:1}))}},[["__scopeId","data-v-07a54638"]]),Ta=y({__name:"index",setup:t=>(o((()=>{uni.reLaunch({url:"/pages/admin-home/index?tab=config"})})),(t,a)=>(e.openBlock(),e.createElementBlock("view",{class:"redirect-page"})))},[["__scopeId","data-v-37a3cbaf"]]),Ia=y({__name:"index",setup(t){const n=e.ref(5),r=e.ref(60),i=e.ref(""),o=e.ref("");let s=null,l=null;const c=async()=>{try{uni.showLoading({title:"加载中..."});const e=await(async()=>await F("commitment_config")||uni.getStorageSync("commitment_config")||{})();e&&e.protocolContent&&(o.value=e.protocolName||"入园承诺",i.value=e.protocolContent)}catch(e){a("error","at pages/commitment/index.vue:52","获取入园承诺配置失败:",e)}finally{uni.hideLoading()}},d=()=>{uni.navigateBack({fail:()=>uni.reLaunch({url:"/pages/home/index"})})},u=()=>{n.value>0||uni.redirectTo({url:"/pages/appointment-scan/n-index?mode=online&step=1"})},m=()=>{r.value=60};return e.onMounted((()=>{c(),s=setInterval((()=>{n.value>0?n.value--:clearInterval(s)}),1e3),l=setInterval((()=>{r.value--,r.value<=0&&uni.reLaunch({url:"/pages/home/index"})}),1e3)})),e.onUnmounted((()=>{s&&clearInterval(s),l&&clearInterval(l)})),(t,a)=>(e.openBlock(),e.createElementBlock("view",{class:"page-container",onTouchstart:m},[e.createElementVNode("view",{class:"header-area"},[e.createElementVNode("view",{class:"left-action",onClick:d},[e.createElementVNode("view",{class:"back-btn"},[e.createElementVNode("image",{src:Da,class:"back-icon",mode:"aspectFit"})])])]),e.createElementVNode("view",{class:"content-wrapper"},[e.createElementVNode("text",{class:"page-title"},e.toDisplayString(o.value),1),e.createElementVNode("scroll-view",{class:"scroll-area","scroll-y":"",onScroll:m},[e.createElementVNode("view",{class:"paragraphs"},[e.createElementVNode("rich-text",{class:"commitment-rich-text",nodes:i.value},null,8,["nodes"])])],32),e.createElementVNode("view",{class:"footer-area"},[e.createElementVNode("view",{class:e.normalizeClass(["confirm-btn",{disabled:n.value>0}]),onClick:u},[e.createElementVNode("text",{class:"btn-text"},"我已知晓"+e.toDisplayString(n.value>0?`(${n.value}s)`:""),1)],2)])])],32))}},[["__scopeId","data-v-0481900f"]]);__definePage("pages/splash/index",w),__definePage("pages/device-init/index",k),__definePage("pages/home/index",ea),__definePage("pages/online-complete/index",na),__definePage("pages/signout-complete/index",ra),__definePage("pages/modal-appointment-time-invalid/index",ia),__definePage("pages/dialog-print-no-paper/index",oa),__definePage("pages/admin-home/index",Ba),__definePage("pages/admin-records/index",Ca),__definePage("pages/admin-record-detail/index",Aa),__definePage("pages/admin-config/index",Ta),__definePage("pages/commitment/index",Ia);const Fa={onLaunch(){a("log","at App.vue:9","App Launch"),b.init().then((async()=>{a("log","at App.vue:12","硬件插件全局初始化完成"),await this.restoreOfflineActivation(),b.startScan((e=>{uni.$emit("Hardware-Scan",e)})),b.startReadCard((e=>{uni.$emit("Hardware-ReadCard",e)}))})).catch((e=>{a("error","at App.vue:23","硬件插件全局初始化失败:",e)})),new Promise(((e,t)=>{const n=plus.sqlite.isOpenDatabase({name:S,path:B}),r=async()=>{try{await C(["CREATE TABLE IF NOT EXISTS offline_records (\n id TEXT PRIMARY KEY,\n type TEXT NOT NULL,\n payload TEXT NOT NULL,\n local_img_path TEXT,\n sync_status INTEGER DEFAULT 0,\n create_time INTEGER NOT NULL\n )","CREATE TABLE IF NOT EXISTS offline_config (\n key TEXT PRIMARY KEY,\n value TEXT NOT NULL,\n update_time INTEGER NOT NULL\n )"]),a("log","at utils/db.js:97","[DB] 初始化表结构成功"),e()}catch(n){a("error","at utils/db.js:100","[DB] 初始化表结构失败:",n),uni.showModal({title:"初始化表结构失败",content:JSON.stringify(n),showCancel:!1}),t(n)}};n?r():plus.sqlite.openDatabase({name:S,path:B,success:()=>r(),fail:e=>{a("error","at utils/db.js:114","[DB] 打开数据库失败:",e),uni.showModal({title:"打开数据库失败",content:JSON.stringify(e),showCancel:!1}),t(e)}})})).then((()=>{a("log","at App.vue:27","数据库初始化完毕"),_a()})).catch((e=>{a("error","at App.vue:30","数据库初始化失败:",e)})),uni.onNetworkStatusChange((e=>{e.isConnected&&"none"!==e.networkType&&(a("log","at App.vue:35","[App] 监听到网络恢复,触发同步队列"),_a())})),ba()},onShow(){a("log","at App.vue:47","App Show")},onHide(){a("log","at App.vue:50","App Hide")},methods:{async restoreOfflineActivation(){if(!f())return;const{deviceFingerprint:e}=g();if(e)try{await b.offlineActivateDevice({code:e}),a("log","at App.vue:70","已激活设备启动时离线激活成功")}catch(t){a("error","at App.vue:72","已激活设备启动时离线激活失败:",t)}}}};const{app:Pa,Vuex:Ra,Pinia:La}={app:e.createVueApp(Fa)};uni.Vuex=Ra,uni.Pinia=La,Pa.provide("__globalStyles",__uniConfig.styles),Pa._component.mpType="app",Pa._component.render=()=>{},Pa.mount("#app")}(Vue); |
| | | function(t){var a=e,n=a.lib,r=n.WordArray,i=n.Hasher,o=a.algo,s=r.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),l=r.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),c=r.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),d=r.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),u=r.create([0,1518500249,1859775393,2400959708,2840853838]),m=r.create([1352829926,1548603684,1836072691,2053994217,0]),p=o.RIPEMD160=i.extend({_doReset:function(){this._hash=r.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var a=0;a<16;a++){var n=t+a,r=e[n];e[n]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8)}var i,o,p,E,N,x,V,_,b,k,S,B=this._hash.words,C=u.words,D=m.words,A=s.words,T=l.words,I=c.words,F=d.words;for(x=i=B[0],V=o=B[1],_=p=B[2],b=E=B[3],k=N=B[4],a=0;a<80;a+=1)S=i+e[t+A[a]]|0,S+=a<16?v(o,p,E)+C[0]:a<32?g(o,p,E)+C[1]:a<48?f(o,p,E)+C[2]:a<64?h(o,p,E)+C[3]:y(o,p,E)+C[4],S=(S=w(S|=0,I[a]))+N|0,i=N,N=E,E=w(p,10),p=o,o=S,S=x+e[t+T[a]]|0,S+=a<16?y(V,_,b)+D[0]:a<32?h(V,_,b)+D[1]:a<48?f(V,_,b)+D[2]:a<64?g(V,_,b)+D[3]:v(V,_,b)+D[4],S=(S=w(S|=0,F[a]))+k|0,x=k,k=b,b=w(_,10),_=V,V=S;S=B[1]+p+b|0,B[1]=B[2]+E+k|0,B[2]=B[3]+N+x|0,B[3]=B[4]+i+V|0,B[4]=B[0]+o+_|0,B[0]=S},_doFinalize:function(){var e=this._data,t=e.words,a=8*this._nDataBytes,n=8*e.sigBytes;t[n>>>5]|=128<<24-n%32,t[14+(n+64>>>9<<4)]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),e.sigBytes=4*(t.length+1),this._process();for(var r=this._hash,i=r.words,o=0;o<5;o++){var s=i[o];i[o]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}return r},clone:function(){var e=i.clone.call(this);return e._hash=this._hash.clone(),e}});function v(e,t,a){return e^t^a}function g(e,t,a){return e&t|~e&a}function f(e,t,a){return(e|~t)^a}function h(e,t,a){return e&a|t&~a}function y(e,t,a){return e^(t|~a)}function w(e,t){return e<<t|e>>>32-t}a.RIPEMD160=i._createHelper(p),a.HmacRIPEMD160=i._createHmacHelper(p)}(),e.RIPEMD160)),ke.exports;var e}(),Ce(),function(){return De||(De=1,Ae.exports=(l=j(),ve(),Ce(),t=(e=l).lib,a=t.Base,n=t.WordArray,r=e.algo,i=r.SHA256,o=r.HMAC,s=r.PBKDF2=a.extend({cfg:a.extend({keySize:4,hasher:i,iterations:25e4}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var a=this.cfg,r=o.create(a.hasher,e),i=n.create(),s=n.create([1]),l=i.words,c=s.words,d=a.keySize,u=a.iterations;l.length<d;){var m=r.update(t).finalize(s);r.reset();for(var p=m.words,v=p.length,g=m,f=1;f<u;f++){g=r.finalize(g),r.reset();for(var h=g.words,y=0;y<v;y++)p[y]^=h[y]}i.concat(m),c[0]++}return i.sigBytes=4*d,i}}),e.PBKDF2=function(e,t,a){return s.create(a).compute(e,t)},l.PBKDF2)),Ae.exports;var e,t,a,n,r,i,o,s,l}(),Fe(),ze(),function(){return Me||(Me=1,Oe.exports=(e=j(),ze(),e.mode.CFB=function(){var t=e.lib.BlockCipherMode.extend();function a(e,t,a,n){var r,i=this._iv;i?(r=i.slice(0),this._iv=void 0):r=this._prevBlock,n.encryptBlock(r,0);for(var o=0;o<a;o++)e[t+o]^=r[o]}return t.Encryptor=t.extend({processBlock:function(e,t){var n=this._cipher,r=n.blockSize;a.call(this,e,t,r,n),this._prevBlock=e.slice(t,t+r)}}),t.Decryptor=t.extend({processBlock:function(e,t){var n=this._cipher,r=n.blockSize,i=e.slice(t,t+r);a.call(this,e,t,r,n),this._prevBlock=i}}),t}(),e.mode.CFB)),Oe.exports;var e}(),function(){return Le||(Le=1,$e.exports=(a=j(),ze(),a.mode.CTR=(e=a.lib.BlockCipherMode.extend(),t=e.Encryptor=e.extend({processBlock:function(e,t){var a=this._cipher,n=a.blockSize,r=this._iv,i=this._counter;r&&(i=this._counter=r.slice(0),this._iv=void 0);var o=i.slice(0);a.encryptBlock(o,0),i[n-1]=i[n-1]+1|0;for(var s=0;s<n;s++)e[t+s]^=o[s]}}),e.Decryptor=t,e),a.mode.CTR)),$e.exports;var e,t,a}(),je(),function(){return We||(We=1,Ke.exports=(a=j(),ze(),a.mode.OFB=(e=a.lib.BlockCipherMode.extend(),t=e.Encryptor=e.extend({processBlock:function(e,t){var a=this._cipher,n=a.blockSize,r=this._iv,i=this._keystream;r&&(i=this._keystream=r.slice(0),this._iv=void 0),a.encryptBlock(i,0);for(var o=0;o<n;o++)e[t+o]^=i[o]}}),e.Decryptor=t,e),a.mode.OFB)),Ke.exports;var e,t,a}(),function(){return Xe||(Xe=1,Ge.exports=(t=j(),ze(),t.mode.ECB=((e=t.lib.BlockCipherMode.extend()).Encryptor=e.extend({processBlock:function(e,t){this._cipher.encryptBlock(e,t)}}),e.Decryptor=e.extend({processBlock:function(e,t){this._cipher.decryptBlock(e,t)}}),e),t.mode.ECB)),Ge.exports;var e,t}(),function(){return qe||(qe=1,Ze.exports=(e=j(),ze(),e.pad.AnsiX923={pad:function(e,t){var a=e.sigBytes,n=4*t,r=n-a%n,i=a+r-1;e.clamp(),e.words[i>>>2]|=r<<24-i%4*8,e.sigBytes+=r},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},e.pad.Ansix923)),Ze.exports;var e}(),function(){return Je||(Je=1,Ye.exports=(e=j(),ze(),e.pad.Iso10126={pad:function(t,a){var n=4*a,r=n-t.sigBytes%n;t.concat(e.lib.WordArray.random(r-1)).concat(e.lib.WordArray.create([r<<24],1))},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},e.pad.Iso10126)),Ye.exports;var e}(),function(){return Qe||(Qe=1,et.exports=(e=j(),ze(),e.pad.Iso97971={pad:function(t,a){t.concat(e.lib.WordArray.create([2147483648],1)),e.pad.ZeroPadding.pad(t,a)},unpad:function(t){e.pad.ZeroPadding.unpad(t),t.sigBytes--}},e.pad.Iso97971)),et.exports;var e}(),function(){return tt||(tt=1,at.exports=(e=j(),ze(),e.pad.ZeroPadding={pad:function(e,t){var a=4*t;e.clamp(),e.sigBytes+=a-(e.sigBytes%a||a)},unpad:function(e){var t=e.words,a=e.sigBytes-1;for(a=e.sigBytes-1;a>=0;a--)if(t[a>>>2]>>>24-a%4*8&255){e.sigBytes=a+1;break}}},e.pad.ZeroPadding)),at.exports;var e}(),function(){return nt||(nt=1,rt.exports=(e=j(),ze(),e.pad.NoPadding={pad:function(){},unpad:function(){}},e.pad.NoPadding)),rt.exports;var e}(),function(){return it||(it=1,ot.exports=(n=j(),ze(),t=(e=n).lib.CipherParams,a=e.enc.Hex,e.format.Hex={stringify:function(e){return e.ciphertext.toString(a)},parse:function(e){var n=a.parse(e);return t.create({ciphertext:n})}},n.format.Hex)),ot.exports;var e,t,a,n}(),function(){return st||(st=1,lt.exports=(e=j(),ae(),le(),Fe(),ze(),function(){var t=e,a=t.lib.BlockCipher,n=t.algo,r=[],i=[],o=[],s=[],l=[],c=[],d=[],u=[],m=[],p=[];!function(){for(var e=[],t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;var a=0,n=0;for(t=0;t<256;t++){var v=n^n<<1^n<<2^n<<3^n<<4;v=v>>>8^255&v^99,r[a]=v,i[v]=a;var g=e[a],f=e[g],h=e[f],y=257*e[v]^16843008*v;o[a]=y<<24|y>>>8,s[a]=y<<16|y>>>16,l[a]=y<<8|y>>>24,c[a]=y,y=16843009*h^65537*f^257*g^16843008*a,d[v]=y<<24|y>>>8,u[v]=y<<16|y>>>16,m[v]=y<<8|y>>>24,p[v]=y,a?(a=g^e[e[e[h^g]]],n^=e[e[n]]):a=n=1}}();var v=[0,1,2,4,8,16,32,64,128,27,54],g=n.AES=a.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var e=this._keyPriorReset=this._key,t=e.words,a=e.sigBytes/4,n=4*((this._nRounds=a+6)+1),i=this._keySchedule=[],o=0;o<n;o++)o<a?i[o]=t[o]:(c=i[o-1],o%a?a>6&&o%a==4&&(c=r[c>>>24]<<24|r[c>>>16&255]<<16|r[c>>>8&255]<<8|r[255&c]):(c=r[(c=c<<8|c>>>24)>>>24]<<24|r[c>>>16&255]<<16|r[c>>>8&255]<<8|r[255&c],c^=v[o/a|0]<<24),i[o]=i[o-a]^c);for(var s=this._invKeySchedule=[],l=0;l<n;l++){if(o=n-l,l%4)var c=i[o];else c=i[o-4];s[l]=l<4||o<=4?c:d[r[c>>>24]]^u[r[c>>>16&255]]^m[r[c>>>8&255]]^p[r[255&c]]}}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,o,s,l,c,r)},decryptBlock:function(e,t){var a=e[t+1];e[t+1]=e[t+3],e[t+3]=a,this._doCryptBlock(e,t,this._invKeySchedule,d,u,m,p,i),a=e[t+1],e[t+1]=e[t+3],e[t+3]=a},_doCryptBlock:function(e,t,a,n,r,i,o,s){for(var l=this._nRounds,c=e[t]^a[0],d=e[t+1]^a[1],u=e[t+2]^a[2],m=e[t+3]^a[3],p=4,v=1;v<l;v++){var g=n[c>>>24]^r[d>>>16&255]^i[u>>>8&255]^o[255&m]^a[p++],f=n[d>>>24]^r[u>>>16&255]^i[m>>>8&255]^o[255&c]^a[p++],h=n[u>>>24]^r[m>>>16&255]^i[c>>>8&255]^o[255&d]^a[p++],y=n[m>>>24]^r[c>>>16&255]^i[d>>>8&255]^o[255&u]^a[p++];c=g,d=f,u=h,m=y}g=(s[c>>>24]<<24|s[d>>>16&255]<<16|s[u>>>8&255]<<8|s[255&m])^a[p++],f=(s[d>>>24]<<24|s[u>>>16&255]<<16|s[m>>>8&255]<<8|s[255&c])^a[p++],h=(s[u>>>24]<<24|s[m>>>16&255]<<16|s[c>>>8&255]<<8|s[255&d])^a[p++],y=(s[m>>>24]<<24|s[c>>>16&255]<<16|s[d>>>8&255]<<8|s[255&u])^a[p++],e[t]=g,e[t+1]=f,e[t+2]=h,e[t+3]=y},keySize:8});t.AES=a._createHelper(g)}(),e.AES)),lt.exports;var e}(),ut(),function(){return mt||(mt=1,pt.exports=(e=j(),ae(),le(),Fe(),ze(),function(){var t=e,a=t.lib.StreamCipher,n=t.algo,r=n.RC4=a.extend({_doReset:function(){for(var e=this._key,t=e.words,a=e.sigBytes,n=this._S=[],r=0;r<256;r++)n[r]=r;r=0;for(var i=0;r<256;r++){var o=r%a,s=t[o>>>2]>>>24-o%4*8&255;i=(i+n[r]+s)%256;var l=n[r];n[r]=n[i],n[i]=l}this._i=this._j=0},_doProcessBlock:function(e,t){e[t]^=i.call(this)},keySize:8,ivSize:0});function i(){for(var e=this._S,t=this._i,a=this._j,n=0,r=0;r<4;r++){a=(a+e[t=(t+1)%256])%256;var i=e[t];e[t]=e[a],e[a]=i,n|=e[(e[t]+e[a])%256]<<24-8*r}return this._i=t,this._j=a,n}t.RC4=a._createHelper(r);var o=n.RC4Drop=r.extend({cfg:r.cfg.extend({drop:192}),_doReset:function(){r._doReset.call(this);for(var e=this.cfg.drop;e>0;e--)i.call(this)}});t.RC4Drop=a._createHelper(o)}(),e.RC4)),pt.exports;var e}(),function(){return vt||(vt=1,gt.exports=(e=j(),ae(),le(),Fe(),ze(),function(){var t=e,a=t.lib.StreamCipher,n=t.algo,r=[],i=[],o=[],s=n.Rabbit=a.extend({_doReset:function(){for(var e=this._key.words,t=this.cfg.iv,a=0;a<4;a++)e[a]=16711935&(e[a]<<8|e[a]>>>24)|4278255360&(e[a]<<24|e[a]>>>8);var n=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],r=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];for(this._b=0,a=0;a<4;a++)l.call(this);for(a=0;a<8;a++)r[a]^=n[a+4&7];if(t){var i=t.words,o=i[0],s=i[1],c=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),d=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),u=c>>>16|4294901760&d,m=d<<16|65535&c;for(r[0]^=c,r[1]^=u,r[2]^=d,r[3]^=m,r[4]^=c,r[5]^=u,r[6]^=d,r[7]^=m,a=0;a<4;a++)l.call(this)}},_doProcessBlock:function(e,t){var a=this._X;l.call(this),r[0]=a[0]^a[5]>>>16^a[3]<<16,r[1]=a[2]^a[7]>>>16^a[5]<<16,r[2]=a[4]^a[1]>>>16^a[7]<<16,r[3]=a[6]^a[3]>>>16^a[1]<<16;for(var n=0;n<4;n++)r[n]=16711935&(r[n]<<8|r[n]>>>24)|4278255360&(r[n]<<24|r[n]>>>8),e[t+n]^=r[n]},blockSize:4,ivSize:2});function l(){for(var e=this._X,t=this._C,a=0;a<8;a++)i[a]=t[a];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0<i[0]>>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0<i[1]>>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0<i[2]>>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0<i[3]>>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0<i[4]>>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0<i[5]>>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0<i[6]>>>0?1:0)|0,this._b=t[7]>>>0<i[7]>>>0?1:0,a=0;a<8;a++){var n=e[a]+t[a],r=65535&n,s=n>>>16,l=((r*r>>>17)+r*s>>>15)+s*s,c=((4294901760&n)*n|0)+((65535&n)*n|0);o[a]=l^c}e[0]=o[0]+(o[7]<<16|o[7]>>>16)+(o[6]<<16|o[6]>>>16)|0,e[1]=o[1]+(o[0]<<8|o[0]>>>24)+o[7]|0,e[2]=o[2]+(o[1]<<16|o[1]>>>16)+(o[0]<<16|o[0]>>>16)|0,e[3]=o[3]+(o[2]<<8|o[2]>>>24)+o[1]|0,e[4]=o[4]+(o[3]<<16|o[3]>>>16)+(o[2]<<16|o[2]>>>16)|0,e[5]=o[5]+(o[4]<<8|o[4]>>>24)+o[3]|0,e[6]=o[6]+(o[5]<<16|o[5]>>>16)+(o[4]<<16|o[4]>>>16)|0,e[7]=o[7]+(o[6]<<8|o[6]>>>24)+o[5]|0}t.Rabbit=a._createHelper(s)}(),e.Rabbit)),gt.exports;var e}(),function(){return ft||(ft=1,ht.exports=(e=j(),ae(),le(),Fe(),ze(),function(){var t=e,a=t.lib.StreamCipher,n=t.algo,r=[],i=[],o=[],s=n.RabbitLegacy=a.extend({_doReset:function(){var e=this._key.words,t=this.cfg.iv,a=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],n=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];this._b=0;for(var r=0;r<4;r++)l.call(this);for(r=0;r<8;r++)n[r]^=a[r+4&7];if(t){var i=t.words,o=i[0],s=i[1],c=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),d=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),u=c>>>16|4294901760&d,m=d<<16|65535&c;for(n[0]^=c,n[1]^=u,n[2]^=d,n[3]^=m,n[4]^=c,n[5]^=u,n[6]^=d,n[7]^=m,r=0;r<4;r++)l.call(this)}},_doProcessBlock:function(e,t){var a=this._X;l.call(this),r[0]=a[0]^a[5]>>>16^a[3]<<16,r[1]=a[2]^a[7]>>>16^a[5]<<16,r[2]=a[4]^a[1]>>>16^a[7]<<16,r[3]=a[6]^a[3]>>>16^a[1]<<16;for(var n=0;n<4;n++)r[n]=16711935&(r[n]<<8|r[n]>>>24)|4278255360&(r[n]<<24|r[n]>>>8),e[t+n]^=r[n]},blockSize:4,ivSize:2});function l(){for(var e=this._X,t=this._C,a=0;a<8;a++)i[a]=t[a];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0<i[0]>>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0<i[1]>>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0<i[2]>>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0<i[3]>>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0<i[4]>>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0<i[5]>>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0<i[6]>>>0?1:0)|0,this._b=t[7]>>>0<i[7]>>>0?1:0,a=0;a<8;a++){var n=e[a]+t[a],r=65535&n,s=n>>>16,l=((r*r>>>17)+r*s>>>15)+s*s,c=((4294901760&n)*n|0)+((65535&n)*n|0);o[a]=l^c}e[0]=o[0]+(o[7]<<16|o[7]>>>16)+(o[6]<<16|o[6]>>>16)|0,e[1]=o[1]+(o[0]<<8|o[0]>>>24)+o[7]|0,e[2]=o[2]+(o[1]<<16|o[1]>>>16)+(o[0]<<16|o[0]>>>16)|0,e[3]=o[3]+(o[2]<<8|o[2]>>>24)+o[1]|0,e[4]=o[4]+(o[3]<<16|o[3]>>>16)+(o[2]<<16|o[2]>>>16)|0,e[5]=o[5]+(o[4]<<8|o[4]>>>24)+o[3]|0,e[6]=o[6]+(o[5]<<16|o[5]>>>16)+(o[4]<<16|o[4]>>>16)|0,e[7]=o[7]+(o[6]<<8|o[6]>>>24)+o[5]|0}t.RabbitLegacy=a._createHelper(s)}(),e.RabbitLegacy)),ht.exports;var e}(),kt());const St=R(M.exports),Bt={encryptEnabled:!0,aesKey:"WwXxYyZz1234!@#$",aesIv:"AaBbCcDd1234!@#$"},Ct=async(e,t={})=>{const a=(e=>{if("string"==typeof e)return e.trim();if(!e||"object"!=typeof e)return"";const t=["text","content","result","scanResult","qrCode","codeText","value"];for(const a of t)if("string"==typeof e[a]&&e[a].trim())return e[a].trim();return""})(e);if(!a)throw new Error("未读取到预约二维码内容");const n=await(async(e,t={})=>{const a={...Bt,...t},n=String(e||"").trim();if(!n)throw new Error("预约二维码内容为空");if(!a.encryptEnabled||n.startsWith("{")||n.startsWith("["))return n;const r=St.enc.Utf8.parse(a.aesKey),i=St.enc.Utf8.parse(a.aesIv);try{const e=St.AES.decrypt(n,r,{iv:i,mode:St.mode.CBC,padding:St.pad.Pkcs7}).toString(St.enc.Utf8);if(!e)throw new Error("解密结果为空,可能密钥不匹配");return e}catch(o){throw new Error("二维码解密失败,请检查加密配置或数据格式: "+o.message)}})(a,t),r=(e=>{try{return JSON.parse(e)}catch(t){return null}})(n);if(!r)throw new Error("预约二维码解密成功,但内容不是合法 JSON");return{rawText:a,plainText:n,payload:Ft(r)}},Dt=e=>{const t=String(e||"").trim();if(!/^\d{14}$/.test(t))return null;const a=Number(t.slice(0,4)),n=Number(t.slice(4,6))-1,r=Number(t.slice(6,8)),i=Number(t.slice(8,10)),o=Number(t.slice(10,12)),s=Number(t.slice(12,14));return new Date(a,n,r,i,o,s)},At=e=>{const t=e instanceof Date?e:new Date(e);if(!(t instanceof Date)||Number.isNaN(t.getTime()))return"";return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")} ${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}:${String(t.getSeconds()).padStart(2,"0")}`},Tt=e=>{const t=Dt(e);if(t)return t;const a=new Date(e);return a instanceof Date&&!Number.isNaN(a.getTime())?a:null},It=(e,t)=>{if(!e||"object"!=typeof e)return;const a=e[t];if(!a)return;const n=Dt(a);if(n)return void(e[t]=At(n));const r=At(a);r&&(e[t]=r)},Ft=e=>{const t=e&&"object"==typeof e?{...e}:{};return It(t,"startTime"),It(t,"endTime"),t},Pt=(e,t=[])=>t.some((t=>{const a=null==e?void 0:e[t];return""!==String(a||"").trim()})),Rt=e=>{if(!e||"object"!=typeof e)return{valid:!1,reason:"invalid_qrcode"};if(!((e={})=>{const t=Pt(e,["visitorName"]),a=Pt(e,["beVisitorName"]),n=Pt(e,["visitorIdCard"]),r=Pt(e,["startTime","endTime"]);return t&&a&&n&&r})(e))return{valid:!1,reason:"invalid_qrcode"};const{startTime:t,endTime:a}=(e=>({startTime:Tt(null==e?void 0:e.startTime),endTime:Tt(null==e?void 0:e.endTime)}))(e),n=new Date;if(t&&a&&(n<t||n>a))return{valid:!1,reason:"out_of_time_range"};return[e.entered,e.hasEntered,e.checkedIn,e.inStatus,e.entryStatus,e.status].some((e=>!0===e||1===e||"1"===e||"entered"===e||"IN"===e))?{valid:!1,reason:"already_entered"}:{valid:!0,reason:"ok"}},zt=async()=>{try{const e=await((e={})=>h({url:"/api/visitorconfig/detail",method:"POST",data:e}))();if(e&&200===e.code&&e.data)return await I("system_config",e.data),uni.setStorageSync("system_config",e.data),e.data}catch(e){a("error","at api/visitorConfig.js:43","同步全局系统配置失败:",e)}return null},Mt=async()=>{try{const e=await((e={})=>h({url:"/api/admission/detail",method:"POST",data:e}))();if(e&&200===e.code&&e.data)return await I("commitment_config",e.data),uni.setStorageSync("commitment_config",e.data),e.data}catch(e){a("error","at api/visitorConfig.js:71","同步入园承诺配置失败:",e)}return null},Ot="employee_verify_list";let Lt=null;const $t=(e=0)=>new Promise((t=>{setTimeout(t,e)})),Ht="employee_verify_list_last_sync",Ut=(e="")=>String(e||"").replace(/[\u200B-\u200F\u202A-\u202E\u2060\uFEFF]/g,"").replace(/\s+/g,"").replace(/[^A-Za-z0-9+/=]/g,""),jt=(e="",t="employee-face")=>new Promise(((a,n)=>{try{const{extension:r,base64Data:i}=((e="")=>{const t=String(e||"").trim(),a=t.match(/data:image\/([a-zA-Z0-9+.-]+);base64,/i);if(a){const e=a[0],n=t.indexOf(e);return{extension:"jpeg"===a[1]?"jpg":a[1],base64Data:Ut(t.slice(n+e.length))}}return{extension:"png",base64Data:Ut(t)}})(e),o=Ut(i);if(!o)return void n(new Error("Base64 数据为空"));if("undefined"==typeof plus||!plus.nativeObj||!plus.nativeObj.Bitmap)return void n(new Error("当前环境不支持 plus.nativeObj.Bitmap"));const s=`_doc/employee-face-images/${`${t}-${Date.now()}-${Math.random().toString(36).slice(2,8)}.${r||"png"}`}`,l=`data:image/${"jpg"===r?"jpeg":r||"png"};base64,${o}`,c=new plus.nativeObj.Bitmap(`employee_face_${Date.now()}`);c.loadBase64Data(l,(()=>{c.save(s,{},(e=>{c.clear();const t=plus.io.convertLocalFileSystemURL(e.target||s);a(t)}),(e=>{c.clear(),n(e)}))}),(e=>{c.clear(),n(e)}))}catch(r){n(r)}})),Wt=async(e={},t=0,n=new Map)=>{if(!e||"object"!=typeof e)return e;const r={...e},i=String(e.faceImage||"").trim();if(!i||!((e="")=>{const t=String(e||"").trim();return!!t&&(!!/data:image\/[a-zA-Z0-9+.-]+;base64,/i.test(t)||Ut(t).length>0)})(i))return r;const o=i.length,s=o<100?`${e.name}_${i}`:`${e.name}_${o}_${i.substring(0,50)}_${i.substring(o-50)}`;if(n.has(s)){const e=n.get(s);return r.faceImage=e,r._faceImageHash=s,r}try{const e=await jt(i,`employee-${t}`);return r.faceImage=e,r._faceImageHash=s,r}catch(l){return a("error","at api/employee.js:173","员工人脸图片 base64 转本地文件失败:",l),r}},Kt=async()=>{const e=await Xt();if(e&&200===e.code){const t=(e=>{if(Array.isArray(e))return e;if(!e||"object"!=typeof e)return[];const t=["records","list","rows","items","data"];for(const a of t)if(Array.isArray(e[a]))return e[a];return[]})(e.data),a=await F(Ot)||[],n=uni.getStorageSync(Ot)||[],r=Array.isArray(a)&&a.length>0?a:Array.isArray(n)?n:[],i=new Map;r.forEach((e=>{e._faceImageHash&&e.faceImage&&String(e.faceImage).includes("_doc/")&&i.set(e._faceImageHash,e.faceImage)}));const o=await(async(e=[],t=new Map)=>{const a=[];for(let n=0;n<e.length;n+=1){const r=e[n],i=await Wt(r,n,t);a.push(i),await $t(0)}return a})(t,i);return await(async(e=[])=>{await I(Ot,e),uni.setStorageSync(Ot,e),uni.setStorageSync(Ht,Date.now())})(o),o}throw new Error((null==e?void 0:e.msg)||"同步员工验证列表失败")},Xt=(e={})=>h({url:"/api/employee/verify/allEmployee",method:"POST",data:e}),Gt=async(e=!1)=>{try{const t=uni.getStorageSync(Ht)||0,n=Date.now()-t>72e5;if(!e&&!n){const e=await F(Ot)||[],t=uni.getStorageSync(Ot)||[],n=Array.isArray(e)&&e.length>0?e:Array.isArray(t)?t:[];if(n.length>0)return a("log","at api/employee.js:327","员工缓存未过期,跳过全量接口同步"),n}return await(async()=>{if(Lt)return Lt;Lt=Kt();try{return await Lt}finally{Lt=null}})()}catch(t){return a("error","at api/employee.js:334","同步员工验证列表失败:",t),[]}},qt=e=>new Promise(((t,n)=>{e&&e.includes("_doc/")?plus.io.resolveLocalFileSystemURL(e,(r=>{r.remove((()=>{a("log","at utils/fs.js:70","[FS] 成功删除本地文件:",e),t()}),(e=>{a("error","at utils/fs.js:73","[FS] 删除文件失败:",e),n(e)}))}),(e=>{a("error","at utils/fs.js:77","[FS] 未找到需删除的文件:",e),t()})):t()})),Zt=(e,t={})=>{const{directoryName:n="downloads",fileNamePrefix:r="file",fallbackExtension:i="jpg",onProgress:o=null}=t;return new Promise(((t,s)=>{const l=String(e||"").trim();if(!l)return void s(new Error("远程文件地址为空"));const c=uni.downloadFile({url:l,success:e=>{if(200!==e.statusCode||!e.tempFilePath)return void s(new Error(`远程文件下载失败,状态码:${e.statusCode||"unknown"}`));const o=((e="",t="jpg")=>{const a=String(e||"").split("?")[0].match(/\.([a-zA-Z0-9]+)$/);return a?a[1].toLowerCase():t})(l,i),c=`${r}_${Date.now()}_${Math.floor(1e3*Math.random())}.${o}`;((e,t="images",n="")=>new Promise(((r,i)=>{plus.io.resolveLocalFileSystemURL(e,(e=>{plus.io.resolveLocalFileSystemURL("_doc/",(o=>{o.getDirectory(t,{create:!0},(t=>{e.moveTo(t,n,(e=>{r(e.fullPath)}),(e=>{a("error","at utils/fs.js:21","[FS] 移动文件失败:",e),i(e)}))}),(e=>{a("error","at utils/fs.js:25","[FS] 创建目录失败:",e),i(e)}))}),(e=>{a("error","at utils/fs.js:29","[FS] 访问_doc目录失败:",e),i(e)}))}),(e=>{a("error","at utils/fs.js:33","[FS] 访问临时文件失败:",e),i(e)}))})))(e.tempFilePath,n,c).then(t).catch(s)},fail:e=>{a("error","at utils/fs.js:121","[FS] 下载远程文件失败:",e),s(e)}});c&&"function"==typeof c.onProgressUpdate&&"function"==typeof o&&c.onProgressUpdate((e=>{o({progress:Number((null==e?void 0:e.progress)||0),totalBytesWritten:Number((null==e?void 0:e.totalBytesWritten)||0),totalBytesExpectedToWrite:Number((null==e?void 0:e.totalBytesExpectedToWrite)||0)})}))}))},Jt=y({__name:"CommonNoticeDialog",props:{visible:{type:Boolean,default:!1},title:{type:String,default:""},description:{type:String,default:""},duration:{type:Number,default:5},buttonText:{type:String,default:"关闭"},showPrimaryButton:{type:Boolean,default:!1},primaryButtonText:{type:String,default:"重新打印"}},emits:["close","primary"],setup(t,{emit:a}){const n=t,r=a,i=e.ref(n.duration);let o=null;const s=()=>{o&&(clearInterval(o),o=null)},l=()=>{s(),r("close")},c=()=>{s(),r("primary")};return e.watch((()=>n.visible),(e=>{if(e)return s(),i.value=n.duration,void(o=setInterval((()=>{i.value-=1,i.value<=0&&(s(),r("close"))}),1e3));s(),i.value=n.duration}),{immediate:!0}),e.watch((()=>n.duration),(e=>{i.value=e})),e.onUnmounted((()=>{s()})),(a,n)=>t.visible?(e.openBlock(),e.createElementBlock("view",{key:0,class:"dialog-wrapper"},[e.createElementVNode("view",{class:"page-mask"}),e.createElementVNode("view",{class:"dialog-card"},[e.createElementVNode("view",{class:"copy-block"},[e.createElementVNode("text",{class:"dialog-title"},e.toDisplayString(t.title),1),t.description?(e.openBlock(),e.createElementBlock("text",{key:0,class:"dialog-desc"},e.toDisplayString(t.description),1)):e.createCommentVNode("",!0)]),e.createElementVNode("view",{class:"button-row"},[e.createElementVNode("view",{class:"close-btn",onClick:l},[e.createElementVNode("text",{class:"close-btn-text"},e.toDisplayString(t.buttonText)+"("+e.toDisplayString(i.value)+")",1)]),t.showPrimaryButton?(e.openBlock(),e.createElementBlock("view",{key:0,class:"primary-btn",onClick:c},[e.createElementVNode("text",{class:"primary-btn-text"},e.toDisplayString(t.primaryButtonText),1)])):e.createCommentVNode("",!0)])])])):e.createCommentVNode("",!0)}},[["__scopeId","data-v-1c8acc03"]]),Yt="/static/home/logo.png",Qt="home_logo_cache",ea=y({__name:"index",setup(t){const n=e.ref(!0),o=e.ref(!0),s=e.ref(!0),l=e.ref("华南光电"),c=e.ref(Yt),d=e.ref(!1),p=e.ref("系统配置加载中,请稍后..."),v={backgroundImage:"url(/static/home/home-bg.png)"},g={backgroundImage:"url(/static/home/admin-btn-bg.png)"},f={backgroundImage:"url(/static/home/welcome-bg.png)"},h=(e={})=>e&&"object"==typeof e?((e="")=>{const t=String(e||"").trim();if(!t)return"";if(/^https?:\/\//.test(t))return t;if(t.startsWith("/")){const e=u(m());return e?`${e}${t}`:""}return t})(e.logoUrl||e.logo||e.homeLogo||e.logoPath||e.systemLogo):"",y=async()=>{const e=await F(Qt);if(e&&"object"==typeof e)return e;const t=uni.getStorageSync(Qt);return t&&"object"==typeof t?t:{}},w=async(e="")=>{const t=String(e||"").trim();if(!/^https?:\/\//.test(t))return"";const n=await y();if(n.sourceUrl===t&&String(n.localPath||"").trim())return n.localPath;const r=await Zt(t,{directoryName:"logo-cache",fileNamePrefix:"home-logo",fallbackExtension:"png"});if(await(async(e={})=>{await I(Qt,e),uni.setStorageSync(Qt,e)})({sourceUrl:t,localPath:r}),n.localPath&&n.localPath!==r)try{await qt(n.localPath)}catch(i){a("error","at pages/home/index.vue:124","清理旧首页Logo缓存失败:",i)}return r},E=e.ref(""),N=async()=>{try{const e=await F("system_config"),t=uni.getStorageSync("system_config"),a=uni.getStorageSync("home_config"),r=Object.assign({},a,e,t),i=h(r),d=await y(),u=i&&d.sourceUrl===i&&String(d.localPath||"").trim()?d.localPath:"";c.value=u||i||Yt,r.hasOwnProperty("visitorMachineEntryEnabled")&&(n.value=Boolean(r.visitorMachineEntryEnabled)),r.hasOwnProperty("onsiteRegistrationEnabled")&&(o.value=Boolean(r.onsiteRegistrationEnabled)),r.hasOwnProperty("appointmentRegistrationEnabled")&&(s.value=Boolean(r.appointmentRegistrationEnabled)),r.systemName&&(l.value=r.systemName)}catch(e){a("error","at pages/home/index.vue:166","加载首页Logo和配置失败:",e),c.value=Yt}};let x=null,V=0,_=!1,b=null;const k=()=>{x=setTimeout((()=>{B()}),3e3)},S=()=>{x&&(clearTimeout(x),x=null)},B=()=>{uni.navigateTo({url:"/pages/admin-home/index"})},C=()=>{uni.navigateTo({url:"/pages/appointment-scan/n-index?mode=appointment&step=1"})},D=()=>{uni.navigateTo({url:"/pages/commitment/index"})},A=()=>{uni.navigateTo({url:"/pages/appointment-scan/n-index?mode=signout&step=1"})},T=e.ref({visible:!1,title:"",description:""}),P=(e,t)=>{T.value={visible:!0,title:e,description:t}},R=()=>{T.value.visible=!1},z=()=>{V+=1;const e=V;_=!1,b=async t=>{if(e===V&&!_)if(t){_=!0;try{const a=(await Ct(t)).payload,n=Rt(a);if(!n.valid)return void("out_of_time_range"===n.reason?P("预约码不在进场时间内,请联系工作人员","请检查您的预约时间"):"already_entered"===n.reason?P("该预约码已进场","您已进场,请签离"):P("未识别二维码,请联系工作人员",""));(e=>{uni.setStorageSync("appointment_qr_payload",e||null)})(a),V+=1,uni.navigateTo({url:"/pages/appointment-scan/n-index?mode=appointment&step=2"})}catch(n){a("error","at pages/home/index.vue:288","首页扫码解析失败:",n),P("未识别二维码,请联系工作人员","")}finally{e===V&&(_=!1)}}else P("未识别二维码,请联系工作人员","")},uni.$on("Hardware-Scan",b)};return e.onMounted((()=>{(async()=>{try{d.value=!0,await N(),await Promise.all([zt(),Mt()]),await N();try{const e=uni.getStorageSync("system_config")||{},t=h(e);if(t){const e=await w(t);e&&(c.value=e)}}catch(e){a("error","at pages/home/index.vue:336","缓存首页Logo到本地失败:",e)}await new Promise((e=>{setTimeout(e,200)})),await Gt()}catch(e){a("error","at pages/home/index.vue:345","首页初始化失败:",e)}finally{d.value=!1}})()})),r((()=>{z()})),i((()=>{V+=1,_=!1,b&&(uni.$off("Hardware-Scan",b),b=null)})),(t,a)=>(e.openBlock(),e.createElementBlock("view",{class:"screen",style:v},[T.value.visible?(e.openBlock(),e.createBlock(Jt,{key:0,visible:T.value.visible,title:T.value.title,description:T.value.description,onClose:R},null,8,["visible","title","description"])):e.createCommentVNode("",!0),d.value?(e.openBlock(),e.createElementBlock("view",{key:1,class:"home-loading-mask"},[e.createElementVNode("view",{class:"home-loading-dialog"},[e.createElementVNode("view",{class:"home-loading-spinner"}),e.createElementVNode("text",{class:"home-loading-text"},e.toDisplayString(p.value),1)])])):e.createCommentVNode("",!0),e.createElementVNode("view",{class:"top-bar"},[e.createElementVNode("image",{class:"logo",src:c.value,mode:"heightFix"},null,8,["src"]),e.createElementVNode("view",{class:e.normalizeClass(["admin-btn",{"hidden-entry":!n.value}]),style:e.normalizeStyle(n.value?g:null),onTouchstart:k,onTouchend:S,onTouchcancel:S,onClick:B},[n.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("image",{class:"admin-icon",src:e.unref("/static/home/avatar.png"),mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"admin-text"},"管理员登录")],64)):e.createCommentVNode("",!0)],38)]),e.createElementVNode("view",{class:"hero"},[e.createElementVNode("view",{class:"hero-copy"},[e.createElementVNode("view",{class:"welcome-badge",style:f},[e.createElementVNode("view",{class:"welcome-text"},"欢迎到访")]),e.createElementVNode("view",{class:"company-name"},e.toDisplayString(l.value),1)]),e.createElementVNode("view",{class:"hero-figure"},[e.createElementVNode("image",{class:"operation",src:e.unref("/static/home/operation.png"),mode:"aspectFit"},null,8,["src"])])]),e.createElementVNode("view",{class:"entry-panel"},[s.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"entry-card blue",onClick:C},[e.createElementVNode("text",{class:"entry-title"},"预约登记"),e.createElementVNode("image",{class:"entry-icon",src:e.unref("/static/home/appointment.png"),mode:"aspectFit"},null,8,["src"])])):e.createCommentVNode("",!0),o.value?(e.openBlock(),e.createElementBlock("view",{key:1,class:"entry-card purple",onClick:D},[e.createElementVNode("text",{class:"entry-title"},"现场登记"),e.createElementVNode("image",{class:"entry-icon",src:e.unref("/static/home/register.png"),mode:"aspectFit"},null,8,["src"])])):e.createCommentVNode("",!0),e.createElementVNode("view",{class:"entry-card orange",onClick:A},[e.createElementVNode("text",{class:"entry-title"},"签离"),e.createElementVNode("image",{class:"entry-icon",src:e.unref("/static/home/sign-out.png"),mode:"aspectFit"},null,8,["src"])])]),E.value?(e.openBlock(),e.createElementBlock("view",{key:2,class:"provider-footer"},[e.createElementVNode("text",{class:"provider-text"},e.toDisplayString(E.value),1)])):e.createCommentVNode("",!0)]))}},[["__scopeId","data-v-84c434d3"]]),ta="/static/appointment-scan/back.png",aa="/static/appointment-scan/success.png",na=y({__name:"index",setup(t){const a=e.ref(15),n=e.ref("预约登记");let r=null;o((e=>{n.value="online"===e.mode?"现场登记":"预约登记"})),e.onMounted((()=>{r=setInterval((()=>{a.value--,a.value<=0&&(clearInterval(r),s())}),1e3)})),e.onUnmounted((()=>{r&&clearInterval(r)}));const i=()=>{s()},s=()=>{uni.reLaunch({url:"/pages/home/index"})};return(t,r)=>(e.openBlock(),e.createElementBlock("view",{class:"page-container"},[e.createElementVNode("view",{class:"bg-glow"}),e.createElementVNode("view",{class:"header-area"},[e.createElementVNode("view",{class:"left-action",onClick:i},[e.createElementVNode("view",{class:"back-btn"},[e.createElementVNode("image",{src:e.unref(ta),class:"back-icon-img",mode:"aspectFit"},null,8,["src"])]),e.createElementVNode("text",{class:"page-title"},e.toDisplayString(n.value),1)])]),e.createElementVNode("view",{class:"success-card"},[e.createElementVNode("view",{class:"success-badge"},[e.createElementVNode("text",{class:"success-badge-text"},"登记已完成")]),e.createElementVNode("view",{class:"success-icon-area"},[e.createElementVNode("view",{class:"icon-outer-circle"},[e.createElementVNode("view",{class:"icon-inner-circle"},[e.createElementVNode("image",{src:e.unref(aa),class:"success-icon-img",mode:"aspectFit"},null,8,["src"])])])]),e.createElementVNode("text",{class:"success-title"},"欢迎来访,签到成功"),e.createElementVNode("view",{class:"reminder-bar"},[e.createElementVNode("view",{class:"reminder-icon-bg"},[e.createElementVNode("text",{class:"reminder-icon-text"},"i")]),e.createElementVNode("text",{class:"reminder-text"},"请妥善保管个人证件与访客凭条,避免遗失")]),e.createElementVNode("view",{class:"action-area"},[e.createElementVNode("view",{class:"home-btn",onClick:s},[e.createElementVNode("text",{class:"home-btn-text"},"返回首页")]),e.createElementVNode("view",{class:"countdown-hint"},[e.createElementVNode("text",{class:"countdown-text"},"页面将在 "+e.toDisplayString(a.value)+" 秒后自动返回首页",1)])])])]))}},[["__scopeId","data-v-03062543"]]),ra=y({__name:"index",setup(t){const a=e.ref(15);let n=null;e.onMounted((()=>{n=setInterval((()=>{a.value--,a.value<=0&&(clearInterval(n),r())}),1e3)})),e.onUnmounted((()=>{n&&clearInterval(n)}));const r=()=>{uni.reLaunch({url:"/pages/home/index"})};return(t,n)=>(e.openBlock(),e.createElementBlock("view",{class:"page-container"},[e.createElementVNode("view",{class:"bg-glow"}),e.createElementVNode("view",{class:"header-area"},[e.createElementVNode("view",{class:"left-action",onClick:r},[e.createElementVNode("view",{class:"back-btn"},[e.createElementVNode("image",{src:e.unref(ta),class:"back-icon-img",mode:"aspectFit"},null,8,["src"])]),e.createElementVNode("text",{class:"page-title"},"签离")])]),e.createElementVNode("view",{class:"success-card"},[e.createElementVNode("view",{class:"success-badge"},[e.createElementVNode("text",{class:"success-badge-text"},"签离已完成")]),e.createElementVNode("view",{class:"success-icon-area"},[e.createElementVNode("view",{class:"icon-outer-circle"},[e.createElementVNode("view",{class:"icon-inner-circle"},[e.createElementVNode("image",{src:e.unref(aa),class:"success-icon-img",mode:"aspectFit"},null,8,["src"])])])]),e.createElementVNode("text",{class:"success-title"},"感谢来访,签离成功"),e.createElementVNode("view",{class:"reminder-bar"},[e.createElementVNode("view",{class:"reminder-icon-bg"},[e.createElementVNode("text",{class:"reminder-icon-text"},"i")]),e.createElementVNode("text",{class:"reminder-text"},"请妥善保管个人证件与访客凭条,避免遗失")]),e.createElementVNode("view",{class:"action-area"},[e.createElementVNode("view",{class:"home-btn",onClick:r},[e.createElementVNode("text",{class:"home-btn-text"},"返回首页")]),e.createElementVNode("view",{class:"countdown-hint"},[e.createElementVNode("text",{class:"countdown-text"},"页面将在 "+e.toDisplayString(a.value)+" 秒后自动返回首页",1)])])])]))}},[["__scopeId","data-v-bb8f9581"]]),ia=y({__name:"index",setup(t){const a=e.ref(5);let n=null;const r=()=>{uni.navigateBack({fail:()=>{uni.redirectTo({url:"/pages/home/index"})}})};return e.onMounted((()=>{n=setInterval((()=>{a.value-=1,a.value<=0&&(clearInterval(n),r())}),1e3)})),e.onUnmounted((()=>{n&&clearInterval(n)})),(t,n)=>(e.openBlock(),e.createElementBlock("view",{class:"page-container"},[e.createElementVNode("view",{class:"page-mask"}),e.createElementVNode("view",{class:"dialog-card"},[e.createElementVNode("view",{class:"copy-block"},[e.createElementVNode("text",{class:"dialog-title"},"预约码不在进场时间内,请联系工作人员"),e.createElementVNode("text",{class:"dialog-desc"},"请核对预约时段信息,或前往前台获取现场协助")]),e.createElementVNode("view",{class:"button-row"},[e.createElementVNode("view",{class:"close-btn",onClick:r},[e.createElementVNode("text",{class:"close-btn-text"},"关闭("+e.toDisplayString(a.value)+")",1)])])])]))}},[["__scopeId","data-v-7567bc65"]]),oa=y({__name:"index",setup(t){const a=e.ref(5);let n=null;const r=()=>{uni.navigateBack({fail:()=>{uni.redirectTo({url:"/pages/home/index"})}})},i=()=>{uni.redirectTo({url:"/pages/online-print-ticket/index"})};return e.onMounted((()=>{n=setInterval((()=>{a.value-=1,a.value<=0&&(clearInterval(n),r())}),1e3)})),e.onUnmounted((()=>{n&&clearInterval(n)})),(t,n)=>(e.openBlock(),e.createElementBlock("view",{class:"page-container"},[e.createElementVNode("view",{class:"page-mask"}),e.createElementVNode("view",{class:"dialog-card"},[e.createElementVNode("view",{class:"copy-block"},[e.createElementVNode("text",{class:"dialog-title"},"打印设备缺纸,请联系工作人员"),e.createElementVNode("text",{class:"dialog-desc"},"可先关闭弹窗,或在补纸后重新打印凭条")]),e.createElementVNode("view",{class:"button-row"},[e.createElementVNode("view",{class:"close-btn",onClick:r},[e.createElementVNode("text",{class:"close-btn-text"},"关闭("+e.toDisplayString(a.value)+")",1)]),e.createElementVNode("view",{class:"primary-btn",onClick:i},[e.createElementVNode("text",{class:"primary-btn-text"},"重新打印")])])])]))}},[["__scopeId","data-v-6d7d7765"]]),sa=y({__name:"AdminShell",props:{title:{type:String,default:"自主访客登记管理端"},showBottomNav:{type:Boolean,default:!0}},setup(t){const a=()=>{uni.reLaunch({url:"/pages/home/index"})};return(n,r)=>(e.openBlock(),e.createElementBlock("view",{class:"page-shell"},[e.createElementVNode("view",{class:"bg-glow"}),e.createElementVNode("view",{class:"header-bar"},[e.createElementVNode("view",{class:"title-zone"},[e.createElementVNode("image",{src:e.unref("/static/admin-home/PpVQg.png"),class:"title-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"page-title"},e.toDisplayString(t.title),1)]),e.createElementVNode("view",{class:"back-btn",onClick:a},[e.createElementVNode("image",{src:e.unref("/static/admin-home/Dgd7x.png"),class:"back-arrow",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"back-btn-text"},"返回预约端")])]),e.createElementVNode("view",{class:"content-wrap"},[e.renderSlot(n.$slots,"default",{},void 0,!0)]),e.createElementVNode("view",{class:"footer-info-wrap"},[e.renderSlot(n.$slots,"footer-info",{},void 0,!0)]),t.showBottomNav?e.renderSlot(n.$slots,"bottom-nav",{key:0},void 0,!0):e.createCommentVNode("",!0),e.renderSlot(n.$slots,"overlay",{},void 0,!0)]))}},[["__scopeId","data-v-6e4a5290"]]),la=y({__name:"AdminTabBar",props:{activeTab:{type:String,default:"home"}},emits:["change"],setup(t,{emit:a}){const n=a,r=e=>{n("change",e)};return(a,n)=>(e.openBlock(),e.createElementBlock("view",{class:"bottom-nav"},[e.createElementVNode("view",{class:e.normalizeClass(["nav-item",{active:"home"===t.activeTab}]),onClick:n[0]||(n[0]=e=>r("home"))},[e.createElementVNode("view",{class:e.normalizeClass(["nav-icon-box",{active:"home"===t.activeTab}])},[e.createElementVNode("image",{src:e.unref("/static/admin-home/myhDj3.png"),class:"nav-icon",mode:"aspectFit"},null,8,["src"])],2),e.createElementVNode("text",{class:"nav-text"},"首页")],2),e.createElementVNode("view",{class:e.normalizeClass(["nav-item",{active:"records"===t.activeTab}]),onClick:n[1]||(n[1]=e=>r("records"))},[e.createElementVNode("view",{class:e.normalizeClass(["nav-icon-box",{active:"records"===t.activeTab}])},[e.createElementVNode("image",{src:e.unref("/static/admin-home/v4oODO.png"),class:"nav-icon",mode:"aspectFit"},null,8,["src"])],2),e.createElementVNode("text",{class:"nav-text"},"历史记录")],2),e.createElementVNode("view",{class:e.normalizeClass(["nav-item",{active:"config"===t.activeTab}]),onClick:n[2]||(n[2]=e=>r("config"))},[e.createElementVNode("view",{class:e.normalizeClass(["nav-icon-box",{active:"config"===t.activeTab}])},[e.createElementVNode("image",{src:e.unref("/static/admin-home/iRGV0L.png"),class:"nav-icon",mode:"aspectFit"},null,8,["src"])],2),e.createElementVNode("text",{class:"nav-text"},"配置管理")],2)]))}},[["__scopeId","data-v-779763e5"]]),ca=e=>h({url:"/api/visitorRecord/add",method:"POST",data:e}),da=()=>h({url:"/api/visitArea/tree",method:"POST"}),ua="/static/admin-pages/QzvXP.png",ma="/static/admin-pages/T0i0lp.png",pa="/static/admin-pages/Bmn5y.png",va="/static/admin-pages/HXHf5.png",ga="/static/admin-pages/O1Ob8a.png",fa="/static/admin-pages/D1nht.png",ha="/static/admin-pages/NUszJ.png",ya=y({__name:"AdminRecordsPanel",setup(t,{expose:n}){const r=e.reactive({host:"",department:"",guest:"",area:"",reason:"",startDate:"",endDate:""}),i=e.reactive({host:"",department:"",guest:"",area:"",reason:"",startDate:"",endDate:""}),o=e.ref([]),s=e.ref(1);e.ref(10);const l=e.ref(0),c=e.ref(!1),d=e=>{switch(e){case"VISITING":return{text:"来访中",tone:"green",icon:va};case"SIGNED_OUT":return{text:"已签离",tone:"blue",icon:ga};case"PENDING_CONFIRM":return{text:"逾期滞留",tone:"orange",icon:fa};case"OVERDUE_AUTO_SIGNED_OUT":return{text:"超期自动",tone:"purple",icon:ha};case"CANCELLED":return{text:"已取消",tone:"orange",icon:fa};default:return{text:e||"未知",tone:"green",icon:va}}},u=e=>"APPOINTMENT"===e?"预约登记":"ONSITE"===e?"现场登记":e||"未知",m=(e,t=!1)=>e?`${e} ${t?"23:59:59":"00:00:00"}`:"",p=(e,t)=>new Promise(((a,n)=>{try{if("undefined"==typeof plus||!plus.android||!plus.io)return void n(new Error("当前环境不支持原生文件写入"));const r=(e=>{if(!(e instanceof ArrayBuffer))return"";const t=new Uint8Array(e);let a="";for(let n=0;n<t.length;n+=32768){const e=t.subarray(n,n+32768);a+=String.fromCharCode.apply(null,e)}return btoa(a)})(e);if(!r)return void n(new Error("导出内容为空"));const i=plus.android.importClass("android.util.Base64"),o=plus.android.importClass("java.io.File"),s=plus.android.importClass("java.io.FileOutputStream"),l=plus.io.convertLocalFileSystemURL("_doc/exports"),c=new o(l);c.exists()||c.mkdirs();const d=`${l}/${t}`,u=new s(new o(d));try{const e=i.decode(r,i.DEFAULT);u.write(e),u.flush()}finally{u.close()}a(d)}catch(r){n(r)}})),v=(e="")=>{if(!e)return"";const t=String(e).split("/").map((e=>e.trim())).filter(Boolean);return t[t.length-1]||""};e.computed((()=>Boolean(i.host||i.department||i.guest||i.area||i.reason||i.startDate||i.endDate)));const g=async()=>{if(!c.value){c.value=!0;try{const t={pageNum:1,pageSize:9999,intervieweeKeyword:i.host,intervieweeDept:i.department,visitorKeyword:i.guest,visitAreaKeyword:v(i.area),visitReason:i.reason,validStartTime:m(i.startDate),validEndTime:m(i.endDate,!0)};uni.showLoading({title:"加载中..."});const a=await(e=t,h({url:"/api/visitorRecord/page",method:"POST",data:e}));let n=[];if(!a||200!==a.code||!a.data)throw new Error((null==a?void 0:a.msg)||"获取线上记录失败");n=a.data.records||a.data.list||[],l.value=n.length,s.value=1,o.value=n.map((e=>{const t=d(e.status),a=e.visitorName||"未知",n=((e={})=>{const t=d(e.status);return{name:e.visitorName||"未知",status:e.statusName||t.text,statusClass:{green:"stay",blue:"done",orange:"warn",purple:"idle"}[t.tone]||"stay",type:e.registerTypeName||u(e.registerType),idCard:e.idCardMask||e.idCard||"-",recordNo:e.registerNo||e.recordId||"-",registerTime:e.registerTime||"-",registerCaptureTime:e.registerCollectTime||e.registerTime||"-",plateNumber:e.plateNo||"-",host:e.intervieweeName||"-",receiver:e.receiverName||e.signReceiverName||e.intervieweeName||"-",hostVerify:e.receiverVerifyMethodName||e.receiverVerifyMethod||"-",areaTags:Array.isArray(e.visitAreaNameList)?e.visitAreaNameList:(e.visitAreaNames||"").split(",").map((e=>e.trim())).filter(Boolean),validityText:e.validTimeText||(e.validStartTime&&e.validEndTime?`${e.validStartTime} 至 ${e.validEndTime}`:"-"),signoutCaptureTime:e.signCollectTime||e.signTime||"-",signoutTime:e.signTime||"-",signoutReceiver:e.signReceiverName||"-",signoutVerify:e.signVerifyMethodName||e.signVerifyMethod||"-",faceImageUrl:e.faceImageUrl||"",signoutImageUrl:e.signImageUrl||""}})(e);return{id:e.recordId||e.id||Math.random().toString(36).substring(2),initial:a.charAt(0),name:a,idCard:e.idCard||"",host:`${e.intervieweeName||""}(${e.intervieweeDept||"暂无部门"})`,department:e.intervieweeDept||"暂无部门",type:u(e.registerType),area:e.visitAreaNames||e.visitAreaIds||"无",reason:e.visitReason||"无",time:e.validStartTime&&e.validEndTime?`${e.validStartTime} 至 ${e.validEndTime}`:"无",visitDate:(e.validStartTime||e.registerTime||"").split(" ")[0]||"",status:t.text,tone:t.tone,statusIcon:t.icon,detailSnapshot:n}}))}catch(t){a("error","at components/admin/AdminRecordsPanel.vue:569","加载访客记录失败",t),o.value=[],l.value=0,uni.showToast({title:"网络异常,获取失败",icon:"none"})}finally{c.value=!1,uni.hideLoading()}var e}};e.onMounted((()=>{(async()=>{var e;try{const t=await da();if(t&&200===t.code&&Array.isArray(t.data)){const a=t.data;f.value=a.map((e=>({name:e.name||e.areaName||e.label||e.areaId||e.id,children:(e.children&&e.children.length>0?e.children:[e]).map((e=>e.name||e.areaName||e.label||e.areaId||e.id))}))),w.value||(w.value=(null==(e=f.value[0])?void 0:e.name)||"")}}catch(t){a("error","at components/admin/AdminRecordsPanel.vue:595","获取区域树失败:",t)}})(),g()}));const f=e.ref([]),y=e.ref(""),w=e.ref(""),E=e.ref(""),N=e.ref("start"),x=e.ref(r.startDate),V=e.ref(r.endDate),_=(new Date).getFullYear(),b=Array.from({length:10},((e,t)=>String(_-5+t))),k=Array.from({length:12},((e,t)=>String(t+1).padStart(2,"0"))),S=e.ref(""),B=e.ref(""),C=e.ref(""),D=e.ref([0,0,0]),A=e.computed((()=>{if(!S.value||!B.value)return[];const e=new Date(Number(S.value),Number(B.value),0).getDate();return Array.from({length:e},((e,t)=>String(t+1).padStart(2,"0")))})),T=e.computed((()=>{var e;return(null==(e=f.value.find((e=>e.name===w.value)))?void 0:e.children)||[]})),I=e.computed((()=>o.value)),F=()=>{y.value=""},P=()=>{E.value=r.area;const[e]=r.area.split(" / ");w.value=e||(f.value.length>0?f.value[0].name:""),y.value="area"},R=()=>{r.area=E.value,F(),U()},z=e=>{if(!e)return;const[t,a,n]=e.split("-");S.value=t,B.value=a,C.value=n,D.value=[Math.max(b.indexOf(t),0),Math.max(k.indexOf(a),0),Math.max(A.value.indexOf(n),0)]},M=()=>{const e=(()=>{const e=new Date;return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`})();x.value=r.startDate||e,V.value=r.endDate||e,N.value="start",z(x.value),y.value="date"},O=e=>{N.value=e,z("start"===e?x.value:V.value)},L=e=>{const[t,a,n]=e.detail.value;S.value=b[t],B.value=k[a];const r=Array.from({length:new Date(Number(S.value),Number(B.value),0).getDate()},((e,t)=>String(t+1).padStart(2,"0")));C.value=r[Math.min(n,r.length-1)],D.value=[t,a,r.indexOf(C.value)];const i=`${S.value}-${B.value}-${C.value}`;"start"===N.value?x.value=i:V.value=i},$=()=>{x.value&&V.value&&x.value>V.value?uni.showToast({title:"开始日期不能大于结束日期",icon:"none"}):(r.startDate=x.value,r.endDate=V.value,F())},H=()=>{Object.assign(r,{host:"",department:"",guest:"",area:"",reason:"",startDate:"",endDate:""}),Object.assign(i,{host:"",department:"",guest:"",area:"",reason:"",startDate:"",endDate:""}),g(),F()},U=()=>{Object.assign(i,{host:r.host,department:r.department,guest:r.guest,area:r.area,reason:r.reason,startDate:r.startDate,endDate:r.endDate}),g(),F()},j=async()=>{if(0!==l.value){uni.showLoading({title:"正在请求导出..."});try{const n={pageNum:1,pageSize:9999,intervieweeKeyword:i.host,intervieweeDept:i.department,visitorKeyword:i.guest,visitAreaKeyword:v(i.area),visitReason:i.reason,validStartTime:m(i.startDate),validEndTime:m(i.endDate,!0)},r=await(e=n,h({url:"/api/visitorRecord/export",method:"POST",data:e,responseType:"arraybuffer"}));if(r instanceof ArrayBuffer){const e=`访客记录_${Date.now()}.xls`;if("undefined"==typeof plus||!plus.io)return uni.hideLoading(),void uni.showToast({title:"当前环境不支持导出",icon:"none"});try{const t=await p(r,e);uni.hideLoading(),a("log","at components/admin/AdminRecordsPanel.vue:797","访客记录导出成功,文件路径:",t),uni.showToast({title:"导出成功,文件地址:"+t,icon:"none"})}catch(t){uni.hideLoading(),uni.showToast({title:"文件保存失败",icon:"none"}),a("error","at components/admin/AdminRecordsPanel.vue:802","文件保存失败:",t)}return}if(r&&"string"==typeof r&&r.startsWith("http"))return uni.downloadFile({url:r,success:e=>{200===e.statusCode&&(a("log","at components/admin/AdminRecordsPanel.vue:818","访客记录导出成功,文件路径:",e.tempFilePath),uni.showToast({title:"导出成功,文件地址:"+e.tempFilePath,icon:"none"}))}}),void uni.hideLoading();uni.hideLoading(),uni.showToast({title:"导出成功",icon:"success"})}catch(n){uni.hideLoading(),a("error","at components/admin/AdminRecordsPanel.vue:834","导出失败",n),uni.showToast({title:"导出失败",icon:"none"})}var e}else uni.showToast({title:"暂无数据可导出",icon:"none"})};return n({closePanelOverlays:F}),(t,a)=>(e.openBlock(),e.createElementBlock("view",{class:"records-page"},[e.createElementVNode("view",{class:"filter-card surface-card"},[e.createElementVNode("view",{class:"field-grid"},[e.createElementVNode("view",{class:"field-col"},[e.createElementVNode("view",{class:"field-label-row"},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/YxRvg.png"),class:"field-label-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"field-label"},"被访人")]),e.createElementVNode("view",{class:"field-box"},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":a[0]||(a[0]=e=>r.host=e),class:"field-native-input",placeholder:"姓名 / 工号","placeholder-class":"field-native-placeholder","confirm-type":"search",onConfirm:U},null,544),[[e.vModelText,r.host,void 0,{trim:!0}]])])]),e.createElementVNode("view",{class:"field-col"},[e.createElementVNode("view",{class:"field-label-row"},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/d3NSc.png"),class:"field-label-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"field-label"},"被访人部门")]),e.createElementVNode("view",{class:"field-box"},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":a[1]||(a[1]=e=>r.department=e),class:"field-native-input",placeholder:"请输入部门名称","placeholder-class":"field-native-placeholder","confirm-type":"search",onConfirm:U},null,544),[[e.vModelText,r.department,void 0,{trim:!0}]])])]),e.createElementVNode("view",{class:"field-col"},[e.createElementVNode("view",{class:"field-label-row"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/e1XWUs.png"),class:"field-label-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"field-label"},"访客")]),e.createElementVNode("view",{class:"field-box"},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":a[2]||(a[2]=e=>r.guest=e),class:"field-native-input",placeholder:"姓名 / 证件号","placeholder-class":"field-native-placeholder","confirm-type":"search",onConfirm:U},null,544),[[e.vModelText,r.guest,void 0,{trim:!0}]])])])]),e.createElementVNode("view",{class:"field-grid"},[e.createElementVNode("view",{class:"field-col"},[e.createElementVNode("view",{class:"field-label-row"},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/cMr9L.png"),class:"field-label-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"field-label"},"访问区域")]),e.createElementVNode("view",{class:"field-box pressable-box",onClick:P},[e.createElementVNode("text",{class:e.normalizeClass(["field-value-text",{"field-placeholder":!r.area}])},e.toDisplayString(r.area||"区域 / 楼层"),3),e.createElementVNode("image",{src:e.unref(ma),class:"field-arrow",mode:"aspectFit"},null,8,["src"])])]),e.createElementVNode("view",{class:"field-col"},[e.createElementVNode("view",{class:"field-label-row"},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/eQnWl.png"),class:"field-label-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"field-label"},"来访事由")]),e.createElementVNode("view",{class:"field-box"},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":a[3]||(a[3]=e=>r.reason=e),class:"field-native-input",placeholder:"请输入事由","placeholder-class":"field-native-placeholder","confirm-type":"search",onConfirm:U},null,544),[[e.vModelText,r.reason,void 0,{trim:!0}]])])]),e.createElementVNode("view",{class:"field-col empty-col"})]),e.createElementVNode("view",{class:"field-row-bottom"},[e.createElementVNode("view",{class:"field-col full-width"},[e.createElementVNode("view",{class:"field-label-row"},[e.createElementVNode("image",{src:e.unref("/static/admin-home/ZsxPJ.png"),class:"field-label-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"field-label"},"来访时间范围")]),e.createElementVNode("view",{class:"field-box pressable-box",onClick:M},[e.createElementVNode("view",{class:"date-range"},[e.createElementVNode("text",{class:e.normalizeClass(["field-value-text",{"field-placeholder":!r.startDate}])},e.toDisplayString(r.startDate||"开始日期"),3),e.createElementVNode("text",{class:"date-dash"},"—"),e.createElementVNode("text",{class:e.normalizeClass(["field-value-text",{"field-placeholder":!r.endDate}])},e.toDisplayString(r.endDate||"结束日期"),3)]),e.createElementVNode("image",{src:e.unref(ma),class:"field-arrow",mode:"aspectFit"},null,8,["src"])])]),e.createElementVNode("view",{class:"toolbar-actions"},[e.createElementVNode("view",{class:"reset-btn pressable-box",onClick:H},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/slDEC.png"),class:"btn-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"reset-btn-text"},"重置")]),e.createElementVNode("view",{class:"search-btn pressable-box",onClick:U},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/PNShK.png"),class:"btn-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"search-btn-text"},"搜索")])])])]),e.createElementVNode("view",{class:"records-panel surface-card"},[e.createElementVNode("view",{class:"records-head"},[e.createElementVNode("view",{class:"records-title-wrap"},[e.createElementVNode("view",{class:"records-title-icon-box"},[e.createElementVNode("image",{src:e.unref(ua),class:"records-title-icon",mode:"aspectFit"},null,8,["src"])]),e.createElementVNode("text",{class:"records-title"},"当前登记记录 - 共 "+e.toDisplayString(I.value.length)+" 条",1)]),e.createElementVNode("view",{class:"export-btn pressable-box",onClick:j},[e.createElementVNode("image",{src:e.unref(ua),class:"export-btn-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"export-btn-text"},"Excel导出")])]),I.value.length>0?(e.openBlock(),e.createElementBlock("scroll-view",{key:0,class:"records-scroll-container","scroll-y":"","show-scrollbar":"true"},[e.createElementVNode("view",{class:"records-grid"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(I.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:e.normalizeClass(["record-item",t.tone]),key:t.id,onClick:e=>(e=>{const t=(null==e?void 0:e.id)||"";uni.navigateTo({url:`/pages/admin-record-detail/index?id=${t}`})})(t)},[e.createElementVNode("view",{class:"record-top-bg"}),e.createElementVNode("view",{class:e.normalizeClass(["record-side-bar",t.tone])},null,2),e.createElementVNode("view",{class:"record-head-row"},[e.createElementVNode("view",{class:"record-user"},[e.createElementVNode("view",{class:e.normalizeClass(["avatar-box",t.tone])},[e.createElementVNode("text",{class:"avatar-text"},e.toDisplayString(t.initial),1)],2),e.createElementVNode("view",{class:"record-user-copy"},[e.createElementVNode("text",{class:"record-name"},e.toDisplayString(t.name),1),e.createElementVNode("text",{class:"record-id"},e.toDisplayString(t.idCard),1)])]),e.createElementVNode("view",{class:"record-status"},[e.createElementVNode("image",{src:t.statusIcon,class:"status-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:e.normalizeClass(["status-text",t.tone])},e.toDisplayString(t.status),3)])]),e.createElementVNode("view",{class:"record-fields"},[e.createElementVNode("view",{class:"record-field"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/e1XWUs.png"),class:"record-field-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"record-field-value"},"被访人:"+e.toDisplayString(t.host),1)]),e.createElementVNode("view",{class:"record-field"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/bTKar.png"),class:"record-field-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"record-field-value"},"登记方式:"+e.toDisplayString(t.type),1)]),e.createElementVNode("view",{class:"record-field"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/e9zsTA.png"),class:"record-field-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"record-field-value"},"访问区域:"+e.toDisplayString(t.area),1)]),e.createElementVNode("view",{class:"record-field"},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/PLU6O.png"),class:"record-field-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"record-field-value"},"来访事由:"+e.toDisplayString(t.reason),1)]),e.createElementVNode("view",{class:"record-field record-field-bottom"},[e.createElementVNode("view",{class:"record-field-left"},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/mh7Th.png"),class:"record-field-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"record-field-value"},"有效期:"+e.toDisplayString(t.time),1)]),e.createElementVNode("view",{class:"detail-chip"},[e.createElementVNode("text",{class:"detail-chip-text"},"详情"),e.createElementVNode("image",{src:e.unref(pa),class:"detail-chip-arrow",mode:"aspectFit"},null,8,["src"])])])])],10,["onClick"])))),128))])])):(e.openBlock(),e.createElementBlock("view",{key:1,class:"empty-state"},[e.createElementVNode("text",{class:"empty-text"},"暂无符合条件的访客记录")]))]),y.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:e.normalizeClass(["overlay-mask",{"date-overlay-mask":"date"===y.value}]),onClick:F},null,2)):e.createCommentVNode("",!0),"area"===y.value?(e.openBlock(),e.createElementBlock("view",{key:1,class:"overlay-sheet selector-sheet"},[e.createElementVNode("view",{class:"sheet-head"},[e.createElementVNode("text",{class:"sheet-title"},"选择访问区域"),e.createElementVNode("text",{class:"sheet-close",onClick:F},"关闭")]),e.createElementVNode("view",{class:"tree-layout"},[e.createElementVNode("view",{class:"tree-column tree-parent-column"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,(t=>(e.openBlock(),e.createElementBlock("view",{key:t.name,class:e.normalizeClass(["tree-parent-row",{"tree-parent-row-active":w.value===t.name}]),onClick:e=>w.value=t.name},[e.createElementVNode("text",{class:e.normalizeClass(["tree-parent-text",{"tree-parent-text-active":w.value===t.name}])},e.toDisplayString(t.name),3),e.createElementVNode("image",{src:e.unref(pa),class:"tree-arrow",mode:"aspectFit"},null,8,["src"])],10,["onClick"])))),128))]),e.createElementVNode("view",{class:"tree-column tree-child-column"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(T.value,(t=>(e.openBlock(),e.createElementBlock("view",{key:t,class:e.normalizeClass(["tree-child-row",{"tree-child-row-active":E.value===`${w.value} / ${t}`}]),onClick:e=>((e,t)=>{E.value=`${e} / ${t}`})(w.value,t)},[e.createElementVNode("text",{class:e.normalizeClass(["tree-child-text",{"tree-child-text-active":E.value===`${w.value} / ${t}`}])},e.toDisplayString(t),3)],10,["onClick"])))),128))])]),e.createElementVNode("view",{class:"sheet-confirm-btn",onClick:R},[e.createElementVNode("text",{class:"sheet-confirm-text"},"确定")])])):e.createCommentVNode("",!0),"date"===y.value?(e.openBlock(),e.createElementBlock("view",{key:2,class:"overlay-sheet date-sheet admin-home-date-sheet"},[e.createElementVNode("view",{class:"sheet-head"},[e.createElementVNode("text",{class:"sheet-title"},"选择来访时间范围"),e.createElementVNode("text",{class:"sheet-close",onClick:F},"关闭")]),e.createElementVNode("view",{class:"date-tab-row"},[e.createElementVNode("view",{class:e.normalizeClass(["date-tab",{"date-tab-active":"start"===N.value}]),onClick:a[4]||(a[4]=e=>O("start"))},[e.createElementVNode("text",{class:"date-tab-text"},"开始日期"),e.createElementVNode("text",{class:"date-tab-value"},e.toDisplayString(x.value),1)],2),e.createElementVNode("view",{class:e.normalizeClass(["date-tab",{"date-tab-active":"end"===N.value}]),onClick:a[5]||(a[5]=e=>O("end"))},[e.createElementVNode("text",{class:"date-tab-text"},"结束日期"),e.createElementVNode("text",{class:"date-tab-value"},e.toDisplayString(V.value),1)],2)]),e.createElementVNode("picker-view",{class:"date-picker-view",value:D.value,onChange:L},[e.createElementVNode("picker-view-column",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(b),(t=>(e.openBlock(),e.createElementBlock("view",{class:"picker-item",key:t},e.toDisplayString(t)+"年",1)))),128))]),e.createElementVNode("picker-view-column",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(k),(t=>(e.openBlock(),e.createElementBlock("view",{class:"picker-item",key:t},e.toDisplayString(t)+"月",1)))),128))]),e.createElementVNode("picker-view-column",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(A.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:"picker-item",key:t},e.toDisplayString(t)+"日",1)))),128))])],40,["value"]),e.createElementVNode("view",{class:"sheet-confirm-btn",onClick:$},[e.createElementVNode("text",{class:"sheet-confirm-text"},"确定")])])):e.createCommentVNode("",!0)]))}},[["__scopeId","data-v-3df22efb"]]),wa="/static/admin-pages/rfxAr.png",Ea="/static/admin-pages/pDMhJ.png",Na=e=>new Promise(((t,a)=>{const n=u(m());if(!n)return void a(new Error("未配置服务地址,请先完成设备激活"));const r=uni.getStorageSync("token")||"";uni.uploadFile({url:`${n}/common/upload`,filePath:e,name:"file",header:{Authorization:`Bearer ${r}`},success:e=>{var n;try{const a=JSON.parse(e.data),r=((e="")=>String(e||"").replace(/`/g,"").trim())(a.url||a.fileName||(null==(n=a.data)?void 0:n.url)||"");t({code:a.code,url:r})}catch(r){a(r)}},fail:e=>{a(e)}})}));let xa=!1;const Va=async()=>new Promise((e=>{uni.getNetworkType({success:t=>e(t.networkType),fail:()=>e("unknown")})})),_a=async()=>{if(a("log","at utils/syncEngine.js:27","[Sync] startSyncQueue 进入,当前同步状态:",{isSyncing:xa}),xa)return void a("warn","at utils/syncEngine.js:31","[Sync] 同步队列已在执行中,本次跳过");const e=await Va();if(a("log","at utils/syncEngine.js:37","[Sync] 当前网络状态:",e),"none"!==e){xa=!0;try{let e=[];try{e=await(async()=>{try{return(await D("SELECT * FROM offline_records WHERE sync_status = 0 ORDER BY create_time ASC LIMIT 20")).map((e=>{try{return{...e,payload:JSON.parse(e.payload)}}catch(t){return a("error","at utils/db.js:151","[DB] JSON 解析失败:",e.payload,t),uni.showModal({title:"数据解析失败",content:`ID: ${e.id}\nError: ${t.message}`,showCancel:!1}),{...e,payload:{}}}}))}catch(e){throw e}})(),a("log","at utils/syncEngine.js:50","[Sync] 读取到待同步记录:",{count:e.length,records:e.map((e=>({id:e.id,type:e.type,localImgPath:e.local_img_path,createTime:e.create_time})))})}catch(n){return void a("error","at utils/syncEngine.js:60","[Sync] 读取待同步记录失败:",n)}if(0===e.length)return void a("warn","at utils/syncEngine.js:65","[Sync] 当前没有待同步记录");const o=[],s=[],l=[];for(let t of e){const e=Date.now()-t.create_time>3e5;try{let n={...t.payload||{}};if(t.local_img_path){a("log","at utils/syncEngine.js:85","[Sync] 开始上传本地图片:",{recordId:t.id,type:t.type,localImgPath:t.local_img_path});const e=await Na(t.local_img_path);if(a("log","at utils/syncEngine.js:91","[Sync] 图片上传结果:",{recordId:t.id,type:t.type,localImgPath:t.local_img_path,uploadRes:e}),!e||200!==e.code||!e.url)throw new Error("图片上传失败");"signout"===t.type?n.signImageUrl=e.url:n.faceImageUrl=e.url}e?"signout"===t.type?s.push({recordId:t.id,localImgPath:t.local_img_path,payload:n}):o.push({recordId:t.id,localImgPath:t.local_img_path,payload:n}):l.push({recordId:t.id,localImgPath:t.local_img_path,type:t.type,payload:n})}catch(r){a("error","at utils/syncEngine.js:121",`[Sync] 处理记录 ${t.id} 的图片或数据时失败:`,r)}}for(let n of l)try{let e;"signout"===n.type?(a("log","at utils/syncEngine.js:131","[Sync] 开始调用签离接口:",{recordId:n.recordId,payload:n.payload}),e=await(t=n.payload,h({url:"/api/visitorRecord/idCardSingOut",method:"POST",data:t}))):(a("log","at utils/syncEngine.js:148","[Sync] 开始调用登记接口:",{recordId:n.recordId,type:n.type,payload:n.payload}),e=await ca(n.payload)),a("log","at utils/syncEngine.js:166","[Sync] 单条业务接口返回:",{recordId:n.recordId,type:n.type,submitRes:e}),e&&200===e.code&&(await T(n.recordId),n.localImgPath&&await qt(n.localImgPath))}catch(i){a("error","at utils/syncEngine.js:177",`[Sync] 单条同步 ${n.recordId} 失败:`,i)}if(o.length>0)try{const e=o.map((e=>e.payload));a("log","at utils/syncEngine.js:185","[Sync] 开始调用批量补发签到接口:",{count:e.length,payloads:e});const t=await(e=>h({url:"/api/visitorRecord/pull-singin-data",method:"POST",data:e}))(e);if(a("log","at utils/syncEngine.js:190","[Sync] 批量补发签到接口结果:",t),t&&200===t.code)for(let a of o)await T(a.recordId),a.localImgPath&&await qt(a.localImgPath)}catch(i){a("error","at utils/syncEngine.js:198","[Sync] 批量补发签到数据失败:",i)}if(s.length>0)try{const e=s.map((e=>e.payload));a("log","at utils/syncEngine.js:206","[Sync] 开始调用批量补发签离接口:",{count:e.length,payloads:e});const t=await(e=>h({url:"/api/visitorRecord/pull-singout-data",method:"POST",data:e}))(e);if(a("log","at utils/syncEngine.js:211","[Sync] 批量补发签离接口结果:",t),t&&200===t.code)for(let a of s)await T(a.recordId),a.localImgPath&&await qt(a.localImgPath)}catch(i){a("error","at utils/syncEngine.js:219","[Sync] 批量补发签离数据失败:",i)}}catch(o){a("error","at utils/syncEngine.js:224","[Sync] 队列执行异常:",o)}finally{xa=!1}var t}else a("warn","at utils/syncEngine.js:40","[Sync] 当前离线,跳过同步队列")},ba=async()=>{(async()=>{const e="DELETE FROM offline_records WHERE create_time < "+(Date.now()-1728e5);await C([e])})().catch((e=>{a("error","at utils/syncEngine.js:308","[Sync] 清理过期记录失败:",e)}));try{if("none"!==await new Promise((e=>{uni.getNetworkType({success:t=>e(t.networkType)})}))){const e=await da();e&&200===e.code&&Array.isArray(e.data)&&await I("visit_area_tree",e.data)}}catch(e){a("error","at utils/syncEngine.js:325","[Sync] 每日同步访问区域树失败:",e)}},ka="visitor_machine_ip",Sa=y({__name:"AdminConfigPanel",setup(t,{expose:n}){const r=e.ref(""),i=e.ref(""),o=e.ref(!1),s=e.ref(!1),l=e.ref(!1),c=e.ref(!1),d=e.ref(!1),g=e.ref(!1),f=e.ref(-1),y=e.ref(!1),w=e.ref(null),E=e.ref("v1.0.0"),N=e.ref(""),x=e.ref(!1),V=e.ref(null),_=e.computed((()=>g.value?y.value?"安装中...":f.value>=0?`下载中 ${f.value}%`:"下载中...":"立即更新")),b=(e="")=>String(e||"").trim().replace(/^[vV]/,""),k=(e="")=>String(e).trim().replace(/^https?:\/\//,""),S=e=>!!e&&(/^(\d{1,3}\.){3}\d{1,3}$/.test(e)&&"127.0.0.1"!==e&&"0.0.0.0"!==e),B=()=>new Promise((e=>{try{const t=(()=>{try{const e=plus.android.importClass("java.net.NetworkInterface"),t=plus.android.importClass("java.net.Inet4Address"),a=e.getNetworkInterfaces(),n=[];for(;a&&a.hasMoreElements();){const e=a.nextElement();if(plus.android.importClass(e),!e.isUp()||e.isLoopback())continue;const r=String(e.getName()||"").toLowerCase(),i=e.getInetAddresses();for(;i&&i.hasMoreElements();){const e=i.nextElement();if(plus.android.importClass(e),!(e instanceof t)||e.isLoopbackAddress())continue;const a=String(e.getHostAddress()||"");if(S(a)){if(r.startsWith("eth"))return a;r.startsWith("wlan")||r.startsWith("ap")?n.unshift(a):n.push(a)}}}return n[0]||""}catch(e){return a("error","at components/admin/AdminConfigPanel.vue:310","获取设备网络接口IP失败:",e),""}})();if(t)return void e(t);const n=plus.android.runtimeMainActivity(),r=plus.android.importClass("android.content.Context"),i=n.getSystemService(r.WIFI_SERVICE);plus.android.importClass(i);const o=i.getConnectionInfo();plus.android.importClass(o),e((e=>{const t=Number(e);return t?[255&t,t>>8&255,t>>16&255,t>>24&255].join("."):""})(o.getIpAddress()))}catch(t){a("error","at components/admin/AdminConfigPanel.vue:341","获取终端设备IP失败:",t),e("")}})),C=()=>{const e=k(r.value),t=k(i.value),{port:a}=m();r.value=e,i.value=t,uni.setStorageSync(ka,e),p({ip:t,port:a}),uni.showToast({title:"保存成功",icon:"success"})},D=async()=>{var e,t;if(g.value)return;const n=(null==(e=V.value)?void 0:e.packageUrl)||"",r=(null==(t=V.value)?void 0:t.packageName)||"visitor-update.apk",i=((e="")=>{const t=String(e||"").trim();if(!t)return"";if(/^https?:\/\//.test(t))return t;const a=u(m());return a?`${a}${t.startsWith("/")?t:`/${t}`}`:""})(n);if(x.value&&i)try{g.value=!0,f.value=0,y.value=!1;let e=-1;const t=String(r||"visitor-update").replace(/\.[^.]+$/,"").replace(/[^a-zA-Z0-9_-]/g,"-")||"visitor-update",a=await Zt(i,{directoryName:"apk-updates",fileNamePrefix:t,fallbackExtension:"apk",onProgress:({progress:t})=>{const a=Math.max(0,Math.min(100,Number(t||0)));a!==e&&(e=a,f.value=a)}});f.value=100,y.value=!0,uni.showToast({title:"下载完成,正在拉起安装",icon:"none"}),await new Promise(((e,t)=>{plus.runtime.install(a,{},(()=>{uni.showToast({title:"安装包已打开,请按提示完成更新",icon:"none"}),e()}),(e=>{t(e)}))}))}catch(o){const e=y.value?"安装更新包失败":"下载更新包失败";a("error","at components/admin/AdminConfigPanel.vue:473",`${e}:`,o),uni.showToast({title:(null==o?void 0:o.message)||e,icon:"none"})}finally{g.value=!1,f.value=-1,y.value=!1}else uni.showToast({title:"未获取到更新包地址",icon:"none"})},T=async()=>{if(!d.value)try{d.value=!0;try{await Gt(!0)}catch(e){a("error","at components/admin/AdminConfigPanel.vue:497","强制同步员工数据异常:",e)}const t=await(async()=>{if(xa)return{success:!1,reason:"syncing",total:0,synced:0,remaining:await A()};if("none"===await Va())return{success:!1,reason:"offline",total:0,synced:0,remaining:await A()};const e=await A();if(0===e)return{success:!0,reason:"empty",total:0,synced:0,remaining:0};let t=0,a=e,n=0;for(;a>0&&n<20;){const e=await A();if(e<=0){a=0;break}await _a();const r=await A();if(t+=Math.max(e-r,0),a=r,n+=1,r>=e)break}return{success:0===a,reason:0===a?"completed":"partial",total:e,synced:t,remaining:a}})();if("offline"===t.reason)return void uni.showToast({title:"当前网络不可用,请联网后重试",icon:"none"});if("syncing"===t.reason)return void uni.showToast({title:"同步任务执行中,请稍后重试",icon:"none"});if("empty"===t.reason)return void uni.showToast({title:"暂无待同步数据",icon:"none"});if(t.success)return void uni.showToast({title:`同步完成,共同步${t.synced}条`,icon:"success"});uni.showModal({title:"同步未完成",content:`本次已同步 ${t.synced} 条,仍有 ${t.remaining} 条待同步,请检查网络或异常数据后重试`,showCancel:!1})}catch(t){a("error","at components/admin/AdminConfigPanel.vue:539","手动同步离线数据失败:",t),uni.showToast({title:(null==t?void 0:t.msg)||(null==t?void 0:t.message)||"同步失败,请重试",icon:"none"})}finally{d.value=!1}},I=()=>{c.value||(w.value&&(clearTimeout(w.value),w.value=null),o.value=!1,s.value=!1,l.value=!1)},F=()=>{o.value=!1,s.value=!0},P=async()=>{if(!c.value)try{c.value=!0;const e=uni.getStorageSync("device_id");let t="";t=uni.getStorageSync("device_fingerprint")||"",e&&await(({machineId:e,fingerprint:t})=>h({url:"/api/visitmachine/deactivate",method:"POST",data:{machineId:e,fingerprint:t}}))({machineId:e,fingerprint:t}),uni.removeStorageSync("device_id"),uni.removeStorageSync("device_fingerprint"),v(),uni.showToast({title:"设备已注销",icon:"success"}),setTimeout((()=>{s.value=!1,l.value=!1,c.value=!1,uni.reLaunch({url:"/pages/device-init/index"})}),1e3)}catch(e){a("error","at components/admin/AdminConfigPanel.vue:607","注销失败:",e),c.value=!1,s.value=!1,l.value=!1,setTimeout((()=>{uni.showToast({title:(null==e?void 0:e.msg)||(null==e?void 0:e.message)||"注销失败,请重试",icon:"none"})}),100)}},R=()=>{c.value||(s.value=!1,l.value=!0)},z=()=>{c.value||w.value||(w.value=setTimeout((()=>{w.value=null,P()}),3e3))},M=()=>{w.value&&(clearTimeout(w.value),w.value=null)},O=async()=>{try{const e=uni.getAppBaseInfo().appWgtVersion||"";E.value=b(e)||"v1.0.0";const t=await h({url:"/api/visitorRecord/latestVersion",method:"POST"});if(t&&200===t.code&&t.data){const e="object"==typeof t.data?t.data:{},a=b(e.versionNo||"");V.value=e,N.value=a,x.value=Boolean(a&&a!==b(E.value))}}catch(e){a("error","at components/admin/AdminConfigPanel.vue:660","获取最新版本失败:",e),x.value=!1}};return e.onMounted((()=>{(async()=>{const{ip:e}=m(),t=k(uni.getStorageSync(ka)||"");i.value=e||"",r.value=t||await B()})(),O()})),n({closePanelOverlays:I}),(t,a)=>(e.openBlock(),e.createElementBlock("view",{class:"config-page"},[e.createElementVNode("view",{class:"config-main-card"},[e.createElementVNode("view",{class:"page-title-row"},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/L2Nja.png"),class:"page-title-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"page-title-text"},"系统配置")]),e.createElementVNode("view",{class:"section-card"},[e.createElementVNode("view",{class:"section-head"},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/n83u2.png"),class:"section-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"section-title"},"本机信息配置")]),e.createElementVNode("view",{class:"ip-stack"},[e.createElementVNode("view",{class:"ip-item"},[e.createElementVNode("text",{class:"item-label"},"访客机IP"),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":a[0]||(a[0]=e=>r.value=e),class:"ip-input",type:"text","confirm-type":"done",maxlength:"15",placeholder:"请输入访客机IP","placeholder-class":"ip-placeholder"},null,512),[[e.vModelText,r.value]])]),e.createElementVNode("view",{class:"ip-item"},[e.createElementVNode("text",{class:"item-label"},"服务端IP"),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":a[1]||(a[1]=e=>i.value=e),class:"ip-input",type:"text","confirm-type":"done",maxlength:"15",placeholder:"请输入服务端IP","placeholder-class":"ip-placeholder"},null,512),[[e.vModelText,i.value]])])])]),e.createElementVNode("view",{class:"section-card"},[e.createElementVNode("view",{class:"section-head"},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/tLgNe.png"),class:"section-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"section-title"},"系统信息")]),e.createElementVNode("view",{class:"version-row"},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/MKP8p.png"),class:"inline-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"version-label"},"当前版本号:"),e.createElementVNode("text",{class:"version-value"},e.toDisplayString(E.value),1)]),x.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"update-banner"},[e.createElementVNode("view",{class:"update-copy"},[e.createElementVNode("image",{src:e.unref(wa),class:"inline-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"update-text"},"检测到新版本 "+e.toDisplayString(N.value)+" 可用",1)]),e.createElementVNode("view",{class:"update-btn",onClick:D},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/xIj6w.png"),class:"banner-btn-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"update-btn-text"},e.toDisplayString(_.value),1)])])):(e.openBlock(),e.createElementBlock("view",{key:1,class:"update-banner"},[e.createElementVNode("view",{class:"update-copy"},[e.createElementVNode("image",{src:e.unref(wa),class:"inline-icon",mode:"aspectFit",style:{opacity:"0.5"}},null,8,["src"]),e.createElementVNode("text",{class:"update-text",style:{color:"#6D7F9B"}},"当前已是最新版本")])]))]),e.createElementVNode("view",{class:"section-card"},[e.createElementVNode("view",{class:"section-head"},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/CkN98.png"),class:"section-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"section-title"},"信息同步")]),e.createElementVNode("view",{class:"sync-banner"},[e.createElementVNode("view",{class:"sync-copy"},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/bKxyf.png"),class:"inline-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"sync-text"},"多台访客机同步:操作后将同步至同单位所有设备")]),e.createElementVNode("view",{class:"sync-btn",onClick:T},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/hNTBx.png"),class:"banner-btn-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"sync-btn-text"},e.toDisplayString(d.value?"同步中...":"立即同步"),1)])])]),e.createElementVNode("view",{class:"more-card",onClick:a[2]||(a[2]=e=>o.value=!0)},[e.createElementVNode("view",{class:"more-left"},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/xwVeC.png"),class:"section-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"more-text"},"更多操作")]),e.createElementVNode("image",{src:e.unref(pa),class:"more-arrow",mode:"aspectFit"},null,8,["src"])]),e.createElementVNode("view",{class:"save-row"},[e.createElementVNode("view",{class:"save-btn",onClick:C},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/ySqSZ.png"),class:"save-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"save-btn-text"},"保存配置")])])]),o.value||s.value||l.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"overlay-mask",onClick:I})):e.createCommentVNode("",!0),o.value?(e.openBlock(),e.createElementBlock("view",{key:1,class:"more-dialog"},[e.createElementVNode("view",{class:"dialog-head"},[e.createElementVNode("view",{class:"dialog-placeholder"}),e.createElementVNode("text",{class:"dialog-title"},"更多操作"),e.createElementVNode("view",{class:"dialog-close-btn",onClick:I},[e.createElementVNode("image",{src:e.unref(Ea),class:"dialog-close-icon",mode:"aspectFit"},null,8,["src"])])]),e.createElementVNode("view",{class:"dialog-action-item",onClick:F},[e.createElementVNode("view",{class:"dialog-action-left"},[e.createElementVNode("view",{class:"dialog-action-icon-box"},[e.createElementVNode("image",{src:e.unref("/static/admin-pages/uZNeV.png"),class:"dialog-action-icon",mode:"aspectFit"},null,8,["src"])]),e.createElementVNode("text",{class:"dialog-action-text"},"注销设备")]),e.createElementVNode("image",{src:e.unref(pa),class:"dialog-action-arrow",mode:"aspectFit"},null,8,["src"])])])):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock("view",{key:2,class:"logout-dialog"},[e.createElementVNode("view",{class:"logout-copy"},[e.createElementVNode("text",{class:"logout-title"},"注销设备"),e.createElementVNode("text",{class:"logout-desc"},"注销后本设备数据清空不可恢复,是否确认注销?")]),e.createElementVNode("view",{class:"logout-actions"},[e.createElementVNode("view",{class:"ghost-btn",onClick:I},[e.createElementVNode("text",{class:"ghost-btn-text"},"取消")]),e.createElementVNode("view",{class:"confirm-btn",onClick:R},[e.createElementVNode("text",{class:"confirm-btn-text"},e.toDisplayString(c.value?"注销中...":"确定"),1)])])])):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createElementBlock("view",{key:3,class:"logout-hold-dialog"},[e.createElementVNode("view",{class:"dialog-head dialog-head-plain"},[e.createElementVNode("view",{class:"dialog-placeholder"}),e.createElementVNode("view",{class:"dialog-close-btn",onClick:I},[e.createElementVNode("image",{src:e.unref(Ea),class:"dialog-close-icon",mode:"aspectFit"},null,8,["src"])])]),e.createElementVNode("view",{class:"logout-hold-copy"},[e.createElementVNode("text",{class:"logout-hold-title"},"请长按确定按钮3秒")]),e.createElementVNode("view",{class:"logout-hold-confirm-btn",onTouchstart:z,onTouchend:M,onTouchcancel:M,onMousedown:z,onMouseup:M,onMouseleave:M},[e.createElementVNode("text",{class:"logout-hold-confirm-text"},e.toDisplayString(c.value?"注销中...":"确定"),1)],32)])):e.createCommentVNode("",!0)]))}},[["__scopeId","data-v-4f643e15"]]),Ba=y({__name:"index",setup(t){const n=e.ref("home"),r=e.ref(null),i=e.ref(null),s=[{label:"今日",value:"today"},{label:"近7天",value:"week"},{label:"近30天",value:"month"}],l=e=>`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`,c=e=>{const t=new Date;if(t.setHours(0,0,0,0),"today"===e)return{startDate:l(t),endDate:l(t)};if("week"===e){const e=new Date(t);return e.setDate(t.getDate()-6),{startDate:l(e),endDate:l(t)}}const a=new Date(t);return a.setDate(t.getDate()-29),{startDate:l(a),endDate:l(t)}},d=c("today"),u=e.ref("today"),m=e.ref("today"),p=e.ref(d.startDate),v=e.ref(d.endDate),g=e.ref(d.startDate),f=e.ref(d.endDate),y=e.ref(!1),w=e.ref("start"),E=e.ref(""),N=e.ref(""),x=e.ref(""),V=e.ref(""),_=e.ref(""),b=e.ref([0,0,0]),k=(new Date).getFullYear(),S=Array.from({length:10},((e,t)=>String(k-5+t))),B=Array.from({length:12},((e,t)=>String(t+1).padStart(2,"0"))),C=e.computed((()=>{if(!x.value||!V.value)return[];const e=new Date(Number(x.value),Number(V.value),0).getDate();return Array.from({length:e},((e,t)=>String(t+1).padStart(2,"0")))})),D=e=>{if(!e)return;const[t,a,n]=e.split("-");x.value=t,V.value=a,_.value=n,b.value=[Math.max(S.indexOf(t),0),Math.max(B.indexOf(a),0),Math.max(C.value.indexOf(n),0)]},A=()=>{E.value=p.value,N.value=v.value,w.value="start",D(E.value),y.value=!0},T=()=>{y.value=!1},I=e=>{w.value=e,D("start"===e?E.value:N.value)},P=e=>{const[t,a,n]=e.detail.value;x.value=S[t],V.value=B[a];const r=Array.from({length:new Date(Number(x.value),Number(V.value),0).getDate()},((e,t)=>String(t+1).padStart(2,"0")));_.value=r[Math.min(n,r.length-1)],b.value=[t,a,r.indexOf(_.value)];const i=`${x.value}-${V.value}-${_.value}`;"start"===w.value?E.value=i:N.value=i},R=()=>{E.value&&N.value&&E.value>N.value?uni.showToast({title:"开始日期不能大于结束日期",icon:"none"}):(p.value=E.value,v.value=N.value,u.value="custom",T())},z=e.ref({onlineAppointments:0,onlineCars:0,onsiteAppointments:0,onsiteCars:0,stayingVisitors:0,checkedInVisitors:0,overdueVisitors:0}),M=e.ref([]),O=async()=>{try{const a={};if("custom"===m.value){a.beginTime=`${g.value} 00:00:00`;const e=new Date(f.value);e.setDate(e.getDate()+1);const t=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0");a.endTime=`${t}-${n}-${r} 00:00:00`}else a.periodType="today"===(t=m.value)?"TODAY":"week"===t?"RECENT_7_DAYS":"month"===t?"RECENT_30_DAYS":"";uni.showLoading({title:"加载中"});const n=await(e=a,h({url:"/api/dashboard/overview",method:"POST",data:e}));if(n&&200===n.code&&n.data)return void((e={})=>{var t,a,n,r,i,o,s;if(z.value={onlineAppointments:(null==(t=e.onlineAppointment)?void 0:t.registerCount)||0,onlineCars:(null==(a=e.onlineAppointment)?void 0:a.vehicleCount)||0,onsiteAppointments:(null==(n=e.onsiteAppointment)?void 0:n.registerCount)||0,onsiteCars:(null==(r=e.onsiteAppointment)?void 0:r.vehicleCount)||0,stayingVisitors:(null==(i=e.statusSummary)?void 0:i.visitingCount)||0,checkedInVisitors:(null==(o=e.statusSummary)?void 0:o.signedOutCount)||0,overdueVisitors:(null==(s=e.statusSummary)?void 0:s.overdueCount)||0},e.trend&&Array.isArray(e.trend.labels)){const{labels:t,onsite:a,appointment:n}=e.trend,r=t.map(((e,t)=>({label:e,onlineAppointments:(null==n?void 0:n[t])||0,onsiteAppointments:(null==a?void 0:a[t])||0}))),i=Math.max(...r.map((e=>Math.max(e.onlineAppointments,e.onsiteAppointments))),1);M.value=r.map((e=>{const t=e=>Math.max(24,Math.round(e/i*228));return{label:e.label,total:`${e.onlineAppointments}/${e.onsiteAppointments}`,online:t(e.onlineAppointments),onsite:t(e.onsiteAppointments)}}))}else M.value=[]})(n.data);throw new Error((null==n?void 0:n.msg)||"获取看板数据失败")}catch(n){a("error","at pages/admin-home/index.vue:566","获取看板数据失败",n),z.value={onlineAppointments:0,onlineCars:0,onsiteAppointments:0,onsiteCars:0,stayingVisitors:0,checkedInVisitors:0,overdueVisitors:0},M.value=[],uni.showToast({title:"网络异常,获取失败",icon:"none"})}finally{uni.hideLoading()}var e,t},L=e.ref([{id:"version",icon:"/static/admin-home/n69cys.png",text:"当前版本号:获取中..."},{id:"vendor",icon:"/static/admin-home/e2IF1A.png",text:"服务厂家:获取中..."},{id:"support",icon:"/static/admin-home/nDZgA.png",text:"技术支持:获取中..."},{id:"terminal",icon:"/static/admin-home/zuvnL.png",text:"终端编号:获取中..."}]),$=async()=>{try{const e=await(async()=>await F("system_config")||uni.getStorageSync("system_config")||{})(),t=L.value.findIndex((e=>"version"===e.id)),a=L.value.findIndex((e=>"vendor"===e.id)),n=L.value.findIndex((e=>"support"===e.id)),r=uni.getAppBaseInfo().appWgtVersion||"";t>-1&&(L.value[t].text=`当前版本号:${r||"v1.0.0"}`),a>-1&&(L.value[a].text=`服务厂家:${e.serviceProvider||e.manufacturer||"未知"}`),n>-1&&(L.value[n].text=`技术支持:${e.technicalSupport||e.supportPhone||"未知"}`)}catch(e){a("error","at pages/admin-home/index.vue:608","获取系统底部配置失败:",e)}},H=["home","records","config"],U=e=>{var t,a,o,s;H.includes(e)&&(null==(a=null==(t=r.value)?void 0:t.closePanelOverlays)||a.call(t),null==(s=null==(o=i.value)?void 0:o.closePanelOverlays)||s.call(o),n.value=e)},j=()=>{p.value&&v.value?p.value>v.value?uni.showToast({title:"开始日期不能大于结束日期",icon:"none"}):(m.value=u.value,g.value=p.value,f.value=v.value,O()):uni.showToast({title:"请选择完整日期范围",icon:"none"})};return o((e=>{const t=null==e?void 0:e.tab;H.includes(t)&&(n.value=t),O(),(async()=>{try{const e=uni.getSystemInfoSync(),t=e.deviceId||e.model||"未知设备",a=L.value.findIndex((e=>"terminal"===e.id));a>-1&&(L.value[a].text=`终端编号:${t}`)}catch(e){a("error","at pages/admin-home/index.vue:622","获取设备编号失败",e);const t=L.value.findIndex((e=>"terminal"===e.id));t>-1&&(L.value[t].text="终端编号:获取失败")}})(),$()})),(t,a)=>(e.openBlock(),e.createBlock(sa,null,{"footer-info":e.withCtx((()=>[e.withDirectives(e.createElementVNode("view",{class:"device-info-row"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(L.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:"device-info-item",key:t.text},[e.createElementVNode("image",{src:t.icon,class:"device-info-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"device-info-text"},e.toDisplayString(t.text),1)])))),128))],512),[[e.vShow,"home"===n.value]])])),"bottom-nav":e.withCtx((()=>[e.createVNode(la,{"active-tab":n.value,onChange:U},null,8,["active-tab"])])),overlay:e.withCtx((()=>[y.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"overlay-mask",onClick:T})):e.createCommentVNode("",!0),y.value?(e.openBlock(),e.createElementBlock("view",{key:1,class:"overlay-sheet date-sheet"},[e.createElementVNode("view",{class:"sheet-head"},[e.createElementVNode("text",{class:"sheet-title"},"选择统计日期范围"),e.createElementVNode("text",{class:"sheet-close",onClick:T},"关闭")]),e.createElementVNode("view",{class:"date-tab-row"},[e.createElementVNode("view",{class:e.normalizeClass(["date-tab",{"date-tab-active":"start"===w.value}]),onClick:a[0]||(a[0]=e=>I("start"))},[e.createElementVNode("text",{class:"date-tab-text"},"开始日期"),e.createElementVNode("text",{class:"date-tab-value"},e.toDisplayString(E.value),1)],2),e.createElementVNode("view",{class:e.normalizeClass(["date-tab",{"date-tab-active":"end"===w.value}]),onClick:a[1]||(a[1]=e=>I("end"))},[e.createElementVNode("text",{class:"date-tab-text"},"结束日期"),e.createElementVNode("text",{class:"date-tab-value"},e.toDisplayString(N.value),1)],2)]),e.createElementVNode("picker-view",{class:"date-picker-view",value:b.value,onChange:P},[e.createElementVNode("picker-view-column",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(S),(t=>(e.openBlock(),e.createElementBlock("view",{class:"picker-item",key:t},e.toDisplayString(t)+"年",1)))),128))]),e.createElementVNode("picker-view-column",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(B),(t=>(e.openBlock(),e.createElementBlock("view",{class:"picker-item",key:t},e.toDisplayString(t)+"月",1)))),128))]),e.createElementVNode("picker-view-column",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:"picker-item",key:t},e.toDisplayString(t)+"日",1)))),128))])],40,["value"]),e.createElementVNode("view",{class:"sheet-confirm-btn",onClick:R},[e.createElementVNode("text",{class:"sheet-confirm-text"},"确定")])])):e.createCommentVNode("",!0)])),default:e.withCtx((()=>[e.withDirectives(e.createElementVNode("view",{class:"home-tab-panel"},[e.createElementVNode("view",{class:"toolbar-card surface-card"},[e.createElementVNode("view",{class:"segmented"},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(s,(t=>e.createElementVNode("view",{key:t.value,class:e.normalizeClass(["segment-item",{active:u.value===t.value}]),onClick:e=>(e=>{u.value=e;const t=c(e);p.value=t.startDate,v.value=t.endDate,m.value=e,g.value=t.startDate,f.value=t.endDate,O()})(t.value)},[e.createElementVNode("text",{class:e.normalizeClass(["segment-text",{"active-text":u.value===t.value}])},e.toDisplayString(t.label),3)],10,["onClick"]))),64))]),e.createElementVNode("view",{class:"range-row"},[e.createElementVNode("view",{class:"date-range",onClick:A},[e.createElementVNode("view",{class:"date-field"},[e.createElementVNode("image",{src:e.unref("/static/admin-home/ZsxPJ.png"),class:"date-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:e.normalizeClass(["date-text",{"date-text-value":!!p.value}])},e.toDisplayString(p.value||"开始日期"),3)]),e.createElementVNode("text",{class:"date-separator"},"—"),e.createElementVNode("view",{class:"date-field"},[e.createElementVNode("image",{src:e.unref("/static/admin-home/ZsxPJ.png"),class:"date-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:e.normalizeClass(["date-text",{"date-text-value":!!v.value}])},e.toDisplayString(v.value||"结束日期"),3)])]),e.createElementVNode("view",{class:"apply-btn",onClick:j},[e.createElementVNode("text",{class:"apply-btn-text"},"应用")])])]),e.createElementVNode("view",{class:"module-row"},[e.createElementVNode("view",{class:"module-card online-module"},[e.createElementVNode("view",{class:"module-glow primary online-glow"}),e.createElementVNode("view",{class:"module-glow secondary"}),e.createElementVNode("image",{src:e.unref("/static/admin-home/ct7YQ.png"),class:"module-bg-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("view",{class:"module-head"},[e.createElementVNode("view",{class:"module-title-group"},[e.createElementVNode("view",{class:"module-icon-box blue-box"},[e.createElementVNode("image",{src:e.unref("/static/admin-home/gooak.png"),class:"module-icon",mode:"aspectFit"},null,8,["src"])]),e.createElementVNode("view",{class:"module-copy"},[e.createElementVNode("text",{class:"module-title"},"线上预约"),e.createElementVNode("text",{class:"module-subtitle"},"基于筛选周期")])])]),e.createElementVNode("view",{class:"module-panel-row"},[e.createElementVNode("view",{class:"module-panel panel-blue"},[e.createElementVNode("view",{class:"panel-tag"},[e.createElementVNode("view",{class:"panel-tag-icon-box"},[e.createElementVNode("image",{src:e.unref("/static/admin-home/ShimA.png"),class:"panel-tag-icon",mode:"aspectFit"},null,8,["src"])]),e.createElementVNode("text",{class:"panel-tag-text"},"预约登记数")]),e.createElementVNode("view",{class:"panel-value-row"},[e.createElementVNode("text",{class:"panel-value"},e.toDisplayString(z.value.onlineAppointments),1),e.createElementVNode("text",{class:"panel-unit light-unit"},"次")])]),e.createElementVNode("view",{class:"module-panel panel-deep-blue"},[e.createElementVNode("view",{class:"panel-tag"},[e.createElementVNode("view",{class:"panel-tag-icon-box"},[e.createElementVNode("image",{src:e.unref("/static/admin-home/b5DTW5.png"),class:"panel-tag-icon",mode:"aspectFit"},null,8,["src"])]),e.createElementVNode("text",{class:"panel-tag-text"},"来访车辆数")]),e.createElementVNode("view",{class:"panel-value-row"},[e.createElementVNode("text",{class:"panel-value"},e.toDisplayString(z.value.onlineCars),1),e.createElementVNode("text",{class:"panel-unit light-unit"},"辆")])])])]),e.createElementVNode("view",{class:"module-card onsite-module"},[e.createElementVNode("view",{class:"module-glow primary onsite-glow"}),e.createElementVNode("view",{class:"module-glow secondary"}),e.createElementVNode("image",{src:e.unref("/static/admin-home/T4s7T8.png"),class:"module-bg-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("view",{class:"module-head"},[e.createElementVNode("view",{class:"module-title-group"},[e.createElementVNode("view",{class:"module-icon-box green-box"},[e.createElementVNode("image",{src:e.unref("/static/admin-home/Ma3sq.png"),class:"module-icon",mode:"aspectFit"},null,8,["src"])]),e.createElementVNode("view",{class:"module-copy"},[e.createElementVNode("text",{class:"module-title"},"现场预约"),e.createElementVNode("text",{class:"module-subtitle"},"基于筛选周期")])])]),e.createElementVNode("view",{class:"module-panel-row"},[e.createElementVNode("view",{class:"module-panel panel-green"},[e.createElementVNode("view",{class:"panel-tag"},[e.createElementVNode("view",{class:"panel-tag-icon-box"},[e.createElementVNode("image",{src:e.unref("/static/admin-home/ShimA.png"),class:"panel-tag-icon",mode:"aspectFit"},null,8,["src"])]),e.createElementVNode("text",{class:"panel-tag-text"},"预约登记数")]),e.createElementVNode("view",{class:"panel-value-row"},[e.createElementVNode("text",{class:"panel-value"},e.toDisplayString(z.value.onsiteAppointments),1),e.createElementVNode("text",{class:"panel-unit light-unit"},"次")])]),e.createElementVNode("view",{class:"module-panel panel-deep-green"},[e.createElementVNode("view",{class:"panel-tag"},[e.createElementVNode("view",{class:"panel-tag-icon-box"},[e.createElementVNode("image",{src:e.unref("/static/admin-home/b5DTW5.png"),class:"panel-tag-icon",mode:"aspectFit"},null,8,["src"])]),e.createElementVNode("text",{class:"panel-tag-text"},"来访车辆数")]),e.createElementVNode("view",{class:"panel-value-row"},[e.createElementVNode("text",{class:"panel-value"},e.toDisplayString(z.value.onsiteCars),1),e.createElementVNode("text",{class:"panel-unit light-unit"},"辆")])])])])]),e.createElementVNode("view",{class:"summary-row"},[e.createElementVNode("view",{class:"summary-card summary-blue surface-card"},[e.createElementVNode("view",{class:"summary-top"},[e.createElementVNode("view",{class:"summary-title-row"},[e.createElementVNode("view",{class:"summary-dot stay-dot"}),e.createElementVNode("text",{class:"summary-title stay-title"},"来访中")]),e.createElementVNode("view",{class:"summary-accent stay-accent"})]),e.createElementVNode("view",{class:"summary-value-row"},[e.createElementVNode("text",{class:"summary-value"},e.toDisplayString(z.value.stayingVisitors),1),e.createElementVNode("text",{class:"summary-unit"},"人")]),e.createElementVNode("view",{class:"summary-foot stay-foot"},[e.createElementVNode("image",{src:e.unref("/static/admin-home/k2RT0t.png"),class:"summary-foot-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"summary-foot-text"},"实时访客统计")])]),e.createElementVNode("view",{class:"summary-card summary-green surface-card"},[e.createElementVNode("view",{class:"summary-top"},[e.createElementVNode("view",{class:"summary-title-row"},[e.createElementVNode("view",{class:"summary-dot checkin-dot"}),e.createElementVNode("text",{class:"summary-title checkin-title"},"已签离")]),e.createElementVNode("view",{class:"summary-accent checkin-accent"})]),e.createElementVNode("view",{class:"summary-value-row"},[e.createElementVNode("text",{class:"summary-value"},e.toDisplayString(z.value.checkedInVisitors),1),e.createElementVNode("text",{class:"summary-unit"},"人")]),e.createElementVNode("view",{class:"summary-foot checkin-foot"},[e.createElementVNode("image",{src:e.unref("/static/admin-home/zGFsd.png"),class:"summary-foot-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"summary-foot-text"},"实时访客统计")])]),e.createElementVNode("view",{class:"summary-card summary-orange surface-card"},[e.createElementVNode("view",{class:"summary-top"},[e.createElementVNode("view",{class:"summary-title-row"},[e.createElementVNode("view",{class:"summary-dot overdue-dot"}),e.createElementVNode("text",{class:"summary-title overdue-title"},"逾期滞留")]),e.createElementVNode("view",{class:"summary-accent overdue-accent"})]),e.createElementVNode("view",{class:"summary-value-row"},[e.createElementVNode("text",{class:"summary-value"},e.toDisplayString(z.value.overdueVisitors),1),e.createElementVNode("text",{class:"summary-unit"},"人")]),e.createElementVNode("view",{class:"summary-foot overdue-foot"},[e.createElementVNode("image",{src:e.unref("/static/admin-home/vlipv.png"),class:"summary-foot-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"summary-foot-text"},"实时访客统计")])])]),e.createElementVNode("view",{class:"trend-card surface-card"},[e.createElementVNode("view",{class:"trend-header"},[e.createElementVNode("view",{class:"trend-title-group"},[e.createElementVNode("view",{class:"trend-icon-box"},[e.createElementVNode("image",{src:e.unref("/static/admin-home/dZ3Pf.png"),class:"trend-icon",mode:"aspectFit"},null,8,["src"])]),e.createElementVNode("view",{class:"trend-copy"},[e.createElementVNode("text",{class:"trend-title"},"进出场趋势分析"),e.createElementVNode("text",{class:"trend-subtitle"},"预约登记趋势")])]),e.createElementVNode("view",{class:"trend-legend-group"},[e.createElementVNode("view",{class:"trend-legend"},[e.createElementVNode("view",{class:"legend-dot online-dot"}),e.createElementVNode("text",{class:"legend-text online-legend-text"},"线上预约")]),e.createElementVNode("view",{class:"trend-legend"},[e.createElementVNode("view",{class:"legend-dot onsite-dot"}),e.createElementVNode("text",{class:"legend-text onsite-legend-text"},"现场预约")])])]),e.createElementVNode("view",{class:"chart-panel"},[e.createElementVNode("view",{class:"chart-grid-line line-1"}),e.createElementVNode("view",{class:"chart-grid-line line-2"}),e.createElementVNode("view",{class:"chart-grid-line line-3"}),e.createElementVNode("view",{class:"chart-grid-line line-4"}),e.createElementVNode("view",{class:"chart-panel-head"},[e.createElementVNode("text",{class:"chart-panel-caption"},"日度预约量"),e.createElementVNode("text",{class:"chart-panel-unit"},"单位:次")]),M.value.length?(e.openBlock(),e.createElementBlock("scroll-view",{key:0,class:"chart-scroll-view","scroll-x":"true","show-scrollbar":"true"},[e.createElementVNode("view",{class:"chart-columns"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(M.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:"chart-column",key:t.label},[e.createElementVNode("view",{class:"chart-value-pill"},[e.createElementVNode("text",{class:"chart-value-pill-text"},e.toDisplayString(t.total),1)]),e.createElementVNode("view",{class:"chart-bars"},[e.createElementVNode("view",{class:"chart-bar online-bar",style:e.normalizeStyle({height:`${t.online}px`})},null,4),e.createElementVNode("view",{class:"chart-bar onsite-bar",style:e.normalizeStyle({height:`${t.onsite}px`})},null,4)]),e.createElementVNode("text",{class:"chart-label"},e.toDisplayString(t.label),1)])))),128))])])):(e.openBlock(),e.createElementBlock("view",{key:1,class:"chart-empty-state"},[e.createElementVNode("text",{class:"chart-empty-text"},"当前筛选范围暂无统计数据")]))]),e.createElementVNode("view",{class:"trend-footnote"},[e.createElementVNode("text",{class:"trend-footnote-text"},"基于登记日期统计,支持快速对比线上与现场预约波动")])])],512),[[e.vShow,"home"===n.value]]),e.withDirectives(e.createVNode(ya,{ref_key:"recordsPanelRef",ref:r},null,512),[[e.vShow,"records"===n.value]]),e.withDirectives(e.createVNode(Sa,{ref_key:"configPanelRef",ref:i},null,512),[[e.vShow,"config"===n.value]])])),_:1}))}},[["__scopeId","data-v-6cc359fb"]]),Ca=y({__name:"index",setup:t=>(o((()=>{uni.reLaunch({url:"/pages/admin-home/index?tab=records"})})),(t,a)=>(e.openBlock(),e.createElementBlock("view",{class:"redirect-page"})))},[["__scopeId","data-v-c344f4e5"]]),Da="/static/admin-detail/Ay837.png",Aa=y({__name:"index",setup(t){const n=e.ref(""),r=e.ref({name:"-",status:"-",statusClass:"stay",type:"-",idCard:"-",recordNo:"-",registerTime:"-",registerCaptureTime:"-",plateNumber:"-",host:"-",receiver:"-",hostVerify:"-",areaTags:[],validityText:"-",signoutCaptureTime:"-",signoutTime:"-",signoutReceiver:"-",signoutVerify:"-",faceImageUrl:"",signoutImageUrl:""}),i=(e="")=>String(e||"").includes("刷卡"),s=async e=>{uni.showLoading({title:"加载中..."});try{const a=await(t={recordId:e},h({url:"/api/visitorRecord/detail",method:"POST",data:t}));if(!a||200!==a.code||!a.data)throw new Error((null==a?void 0:a.msg)||"获取详情失败");r.value=((e={})=>{const t=(e=>{switch(e){case"VISITING":return{text:"来访中",class:"stay"};case"SIGNED_OUT":return{text:"已签离",class:"done"};case"PENDING_CONFIRM":case"OVERDUE":return{text:"逾期滞留",class:"warn"};case"OVERDUE_AUTO_SIGNED_OUT":case"AUTO_SIGNED_OUT":return{text:"超期自动",class:"idle"};case"CANCELLED":return{text:"已取消",class:"warn"};default:return{text:e||"未知",class:"stay"}}})(e.status),a=Array.isArray(e.visitAreaNameList)?e.visitAreaNameList:(e.visitAreaNames||"").split(",").map((e=>e.trim())).filter(Boolean);return{name:e.visitorName||e.name||"-",status:e.statusName||e.status||t.text,statusClass:e.statusClass||t.class,type:e.registerTypeName||e.type||(n=e.registerType,"APPOINTMENT"===n?"预约登记":"ONSITE"===n?"现场登记":n||"未知"),idCard:e.idCardMask||e.idCard||"-",recordNo:e.registerNo||e.recordNo||e.recordId||"-",registerTime:e.registerTime||"-",registerCaptureTime:e.registerCollectTime||e.registerCaptureTime||e.registerTime||"-",plateNumber:e.plateNo||e.plateNumber||"-",host:e.intervieweeName||e.host||"-",receiver:e.receiverName||e.signReceiverName||e.receiver||e.intervieweeName||"-",hostVerify:e.receiverVerifyMethodName||e.receiverVerifyMethod||e.hostVerify||"-",areaTags:a,validityText:e.validTimeText||e.validityText||(e.validStartTime&&e.validEndTime?`${e.validStartTime} 至 ${e.validEndTime}`:"-"),signoutCaptureTime:e.signCollectTime||e.signoutCaptureTime||e.signTime||"-",signoutTime:e.signTime||e.signoutTime||"-",signoutReceiver:e.signReceiverName||e.signoutReceiver||"-",signoutVerify:e.signVerifyMethodName||e.signVerifyMethod||e.signoutVerify||"-",faceImageUrl:e.faceImageUrl||"",signoutImageUrl:e.signImageUrl||e.signoutImageUrl||""};var n})(a.data)}catch(n){a("error","at pages/admin-record-detail/index.vue:291","获取在线详情失败:",n),uni.showToast({title:"网络异常,获取详情失败",icon:"none"})}finally{uni.hideLoading()}var t};o((e=>{n.value=(null==e?void 0:e.id)||"",n.value&&s(n.value)}));const l=e.computed((()=>({stay:va,done:ga,warn:fa,idle:ha}[r.value.statusClass]||va))),c=e.computed((()=>[{label:"姓名",value:r.value.name,icon:"/static/admin-detail/e1XWUs.png"},{label:"登记方式",value:r.value.type,icon:"/static/admin-detail/bTKar.png"},{label:"证件号码",value:r.value.idCard,icon:"/static/admin-detail/IiGss.png"}])),d=e.computed((()=>[{label:"登记编号",value:r.value.recordNo,icon:"/static/admin-detail/dDvxL.png"},{label:"登记时间",value:r.value.registerTime,icon:"/static/admin-detail/SRQAF.png"},{label:"车牌号",value:r.value.plateNumber,icon:"/static/admin-detail/y5iYAG.png"}])),u=()=>{uni.navigateBack({delta:1,fail:()=>{uni.reLaunch({url:"/pages/admin-records/index"})}})};return(t,a)=>(e.openBlock(),e.createBlock(sa,{"show-bottom-nav":!1},{default:e.withCtx((()=>[e.createElementVNode("view",{class:"detail-card"},[e.createElementVNode("view",{class:"detail-head"},[e.createElementVNode("view",{class:"head-left",onClick:u},[e.createElementVNode("view",{class:"back-btn"},[e.createElementVNode("image",{src:e.unref(Da),class:"back-icon",mode:"aspectFit"},null,8,["src"])]),e.createElementVNode("text",{class:"page-title"},"访客登记详情")]),e.createElementVNode("view",{class:e.normalizeClass(["status-pill",r.value.statusClass])},[e.createElementVNode("image",{src:l.value,class:"status-pill-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:e.normalizeClass(["status-pill-text",r.value.statusClass])},e.toDisplayString(r.value.status),3)],2)]),e.createElementVNode("view",{class:"section-card"},[e.createElementVNode("view",{class:"section-head"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/e7v1T.png"),class:"section-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"section-title"},"访客信息")]),e.createElementVNode("view",{class:"visitor-layout"},[e.createElementVNode("view",{class:"capture-col"},[e.createElementVNode("image",{src:r.value.faceImageUrl||e.unref("/static/admin-detail/aWmHf.png"),class:"capture-image",mode:"widthFix"},null,8,["src"]),e.createElementVNode("text",{class:"capture-time"},"登记采集"+e.toDisplayString("\n")+e.toDisplayString(r.value.registerCaptureTime)+" 录入",1)]),e.createElementVNode("view",{class:"field-col"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:"detail-field",key:t.label},[e.createElementVNode("image",{src:t.icon,class:"field-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("view",{class:"field-copy"},[e.createElementVNode("text",{class:"field-label"},e.toDisplayString(t.label),1),e.createElementVNode("text",{class:"field-value"},e.toDisplayString(t.value),1)])])))),128))]),e.createElementVNode("view",{class:"field-col field-col-right"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:"detail-field",key:t.label},[e.createElementVNode("image",{src:t.icon,class:"field-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("view",{class:"field-copy"},[e.createElementVNode("text",{class:"field-label"},e.toDisplayString(t.label),1),e.createElementVNode("text",{class:"field-value"},e.toDisplayString(t.value),1)])])))),128))])])]),e.createElementVNode("view",{class:"section-card"},[e.createElementVNode("view",{class:"section-head"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/VkMZk.png"),class:"section-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"section-title"},"被访者")]),e.createElementVNode("view",{class:"host-layout"},[e.createElementVNode("view",{class:"host-item"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/e1XWUs.png"),class:"field-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("view",{class:"field-copy"},[e.createElementVNode("text",{class:"field-label"},"被访人"),e.createElementVNode("text",{class:"field-value"},e.toDisplayString(r.value.host),1)])]),e.createElementVNode("view",{class:"host-item"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/X8vSXE.png"),class:"field-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("view",{class:"field-copy"},[e.createElementVNode("text",{class:"field-label"},"登记接待人"),e.createElementVNode("text",{class:"field-value"},e.toDisplayString(r.value.receiver),1)])]),e.createElementVNode("view",{class:"host-item host-method-item"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/a6rRE.png"),class:"field-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("view",{class:"field-copy"},[e.createElementVNode("text",{class:"field-label host-method-label"},"接待人验证方式"),e.createElementVNode("view",{class:e.normalizeClass(["method-badge",{"method-badge-warn":i(r.value.hostVerify)}])},[e.createElementVNode("text",{class:e.normalizeClass(["method-badge-text",{"method-badge-text-warn":i(r.value.hostVerify)}])},e.toDisplayString(r.value.hostVerify),3)],2)])])])]),e.createElementVNode("view",{class:"section-card"},[e.createElementVNode("view",{class:"section-head"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/lvVVM.png"),class:"section-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"section-title"},"访问权限")]),e.createElementVNode("view",{class:"permission-layout"},[e.createElementVNode("view",{class:"permission-title-row"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/e9zsTA.png"),class:"field-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"field-label"},"可访问区域")]),e.createElementVNode("view",{class:"tag-row"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value.areaTags,(t=>(e.openBlock(),e.createElementBlock("view",{class:"tag-chip",key:t},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/gDoHZ.png"),class:"tag-check-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"tag-text"},e.toDisplayString(t),1)])))),128))]),e.createElementVNode("view",{class:"permission-title-row"},[e.createElementVNode("image",{src:e.unref("/static/admin-home/ZsxPJ.png"),class:"field-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"field-label"},"访问有效期")]),e.createElementVNode("view",{class:"validity-box"},[e.createElementVNode("text",{class:"validity-text"},e.toDisplayString(r.value.validityText),1)])])]),e.createElementVNode("view",{class:"section-card"},[e.createElementVNode("view",{class:"section-head"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/y2Wztk.png"),class:"section-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("text",{class:"section-title"},"签离记录")]),e.createElementVNode("view",{class:"visitor-layout"},[e.createElementVNode("view",{class:"capture-col"},[e.createElementVNode("image",{src:r.value.signoutImageUrl||e.unref("/static/admin-detail/jAROZ.png"),class:"capture-image",mode:"widthFix"},null,8,["src"]),e.createElementVNode("text",{class:"capture-time"},"签离采集"+e.toDisplayString("\n")+e.toDisplayString(r.value.signoutCaptureTime)+" 录入",1)]),e.createElementVNode("view",{class:"signout-fields"},[e.createElementVNode("view",{class:"detail-field"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/c1DOt.png"),class:"field-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("view",{class:"field-copy"},[e.createElementVNode("text",{class:"field-label"},"签离时间"),e.createElementVNode("text",{class:"field-value"},e.toDisplayString(r.value.signoutTime),1)])]),e.createElementVNode("view",{class:"detail-field"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/X8vSXE.png"),class:"field-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("view",{class:"field-copy"},[e.createElementVNode("text",{class:"field-label"},"签离接待人"),e.createElementVNode("text",{class:"field-value"},e.toDisplayString(r.value.signoutReceiver),1)])]),e.createElementVNode("view",{class:"detail-field"},[e.createElementVNode("image",{src:e.unref("/static/admin-detail/a6rRE.png"),class:"field-icon",mode:"aspectFit"},null,8,["src"]),e.createElementVNode("view",{class:"field-copy"},[e.createElementVNode("text",{class:"field-label"},"接待人验证方式"),e.createElementVNode("view",{class:e.normalizeClass(["method-badge",{"method-badge-warn":i(r.value.signoutVerify)}])},[e.createElementVNode("text",{class:e.normalizeClass(["method-badge-text",{"method-badge-text-warn":i(r.value.signoutVerify)}])},e.toDisplayString(r.value.signoutVerify),3)],2)])])])])])])])),_:1}))}},[["__scopeId","data-v-98a69212"]]),Ta=y({__name:"index",setup:t=>(o((()=>{uni.reLaunch({url:"/pages/admin-home/index?tab=config"})})),(t,a)=>(e.openBlock(),e.createElementBlock("view",{class:"redirect-page"})))},[["__scopeId","data-v-37a3cbaf"]]),Ia=y({__name:"index",setup(t){const n=e.ref(5),r=e.ref(60),i=e.ref(""),o=e.ref("");let s=null,l=null;const c=async()=>{try{uni.showLoading({title:"加载中..."});const e=await(async()=>await F("commitment_config")||uni.getStorageSync("commitment_config")||{})();e&&e.protocolContent&&(o.value=e.protocolName||"入园承诺",i.value=e.protocolContent)}catch(e){a("error","at pages/commitment/index.vue:52","获取入园承诺配置失败:",e)}finally{uni.hideLoading()}},d=()=>{uni.navigateBack({fail:()=>uni.reLaunch({url:"/pages/home/index"})})},u=()=>{n.value>0||uni.redirectTo({url:"/pages/appointment-scan/n-index?mode=online&step=1"})},m=()=>{r.value=60};return e.onMounted((()=>{c(),s=setInterval((()=>{n.value>0?n.value--:clearInterval(s)}),1e3),l=setInterval((()=>{r.value--,r.value<=0&&uni.reLaunch({url:"/pages/home/index"})}),1e3)})),e.onUnmounted((()=>{s&&clearInterval(s),l&&clearInterval(l)})),(t,a)=>(e.openBlock(),e.createElementBlock("view",{class:"page-container",onTouchstart:m},[e.createElementVNode("view",{class:"header-area"},[e.createElementVNode("view",{class:"left-action",onClick:d},[e.createElementVNode("view",{class:"back-btn"},[e.createElementVNode("image",{src:Da,class:"back-icon",mode:"aspectFit"})])])]),e.createElementVNode("view",{class:"content-wrapper"},[e.createElementVNode("text",{class:"page-title"},e.toDisplayString(o.value),1),e.createElementVNode("scroll-view",{class:"scroll-area","scroll-y":"",onScroll:m},[e.createElementVNode("view",{class:"paragraphs"},[e.createElementVNode("rich-text",{class:"commitment-rich-text",nodes:i.value},null,8,["nodes"])])],32),e.createElementVNode("view",{class:"footer-area"},[e.createElementVNode("view",{class:e.normalizeClass(["confirm-btn",{disabled:n.value>0}]),onClick:u},[e.createElementVNode("text",{class:"btn-text"},"我已知晓"+e.toDisplayString(n.value>0?`(${n.value}s)`:""),1)],2)])])],32))}},[["__scopeId","data-v-0481900f"]]);__definePage("pages/splash/index",w),__definePage("pages/device-init/index",k),__definePage("pages/home/index",ea),__definePage("pages/online-complete/index",na),__definePage("pages/signout-complete/index",ra),__definePage("pages/modal-appointment-time-invalid/index",ia),__definePage("pages/dialog-print-no-paper/index",oa),__definePage("pages/admin-home/index",Ba),__definePage("pages/admin-records/index",Ca),__definePage("pages/admin-record-detail/index",Aa),__definePage("pages/admin-config/index",Ta),__definePage("pages/commitment/index",Ia);const Fa={onLaunch(){a("log","at App.vue:9","App Launch"),b.init().then((async()=>{a("log","at App.vue:12","硬件插件全局初始化完成"),await this.restoreOfflineActivation(),b.startScan((e=>{uni.$emit("Hardware-Scan",e)})),b.startReadCard((e=>{uni.$emit("Hardware-ReadCard",e)}))})).catch((e=>{a("error","at App.vue:23","硬件插件全局初始化失败:",e)})),new Promise(((e,t)=>{const n=plus.sqlite.isOpenDatabase({name:S,path:B}),r=async()=>{try{await C(["CREATE TABLE IF NOT EXISTS offline_records (\n id TEXT PRIMARY KEY,\n type TEXT NOT NULL,\n payload TEXT NOT NULL,\n local_img_path TEXT,\n sync_status INTEGER DEFAULT 0,\n create_time INTEGER NOT NULL\n )","CREATE TABLE IF NOT EXISTS offline_config (\n key TEXT PRIMARY KEY,\n value TEXT NOT NULL,\n update_time INTEGER NOT NULL\n )"]),a("log","at utils/db.js:97","[DB] 初始化表结构成功"),e()}catch(n){a("error","at utils/db.js:100","[DB] 初始化表结构失败:",n),uni.showModal({title:"初始化表结构失败",content:JSON.stringify(n),showCancel:!1}),t(n)}};n?r():plus.sqlite.openDatabase({name:S,path:B,success:()=>r(),fail:e=>{a("error","at utils/db.js:114","[DB] 打开数据库失败:",e),uni.showModal({title:"打开数据库失败",content:JSON.stringify(e),showCancel:!1}),t(e)}})})).then((()=>{a("log","at App.vue:27","数据库初始化完毕"),_a()})).catch((e=>{a("error","at App.vue:30","数据库初始化失败:",e)})),uni.onNetworkStatusChange((e=>{e.isConnected&&"none"!==e.networkType&&(a("log","at App.vue:35","[App] 监听到网络恢复,触发同步队列"),_a())})),ba()},onShow(){a("log","at App.vue:47","App Show")},onHide(){a("log","at App.vue:50","App Hide")},methods:{async restoreOfflineActivation(){if(!f())return;const{deviceFingerprint:e}=g();if(e)try{await b.offlineActivateDevice({code:e}),a("log","at App.vue:70","已激活设备启动时离线激活成功")}catch(t){a("error","at App.vue:72","已激活设备启动时离线激活失败:",t)}}}};const{app:Pa,Vuex:Ra,Pinia:za}={app:e.createVueApp(Fa)};uni.Vuex=Ra,uni.Pinia=za,Pa.provide("__globalStyles",__uniConfig.styles),Pa._component.mpType="app",Pa._component.render=()=>{},Pa.mount("#app")}(Vue); |
| | |
| | | .page-shell[data-v-6e4a5290]{position:relative;width:1080px;height:1920px;box-sizing:border-box;padding:30px 36px 40px;background:linear-gradient(180deg,#3b78ff,#2860e8,#163ebc);overflow:hidden;display:flex;flex-direction:column}.bg-glow[data-v-6e4a5290]{position:absolute;left:-128px;top:412px;width:300px;height:300px;border-radius:50%;background:rgba(127,177,255,.1);filter:blur(50px);pointer-events:none}.header-bar[data-v-6e4a5290]{position:relative;z-index:1;width:100%;height:88px;display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.title-zone[data-v-6e4a5290]{display:flex;align-items:center;gap:10px}.title-icon[data-v-6e4a5290]{width:22px;height:22px}.page-title[data-v-6e4a5290]{font-family:Inter,sans-serif;font-size:30px;font-weight:700;line-height:1.2;color:#fff}.back-btn[data-v-6e4a5290]{height:46px;padding:0 20px;border-radius:23px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.26);box-shadow:0 10px 22px rgba(15,46,133,.14);display:flex;align-items:center;justify-content:center;gap:8px}.back-arrow[data-v-6e4a5290]{width:20px;height:20px}.back-btn-text[data-v-6e4a5290]{font-family:Inter,sans-serif;font-size:16px;font-weight:600;color:#fff}.content-wrap[data-v-6e4a5290]{position:relative;min-height:1536px;display:flex;flex-direction:column;gap:24px;flex:1}.footer-info-wrap[data-v-6e4a5290]{position:relative;min-height:22px;margin-top:24px}.bottom-nav[data-v-779763e5]{position:relative;width:100%;height:132px;margin-top:24px;border-radius:30px;background:#fff;border:1px solid #E7EDF8;box-shadow:0 12px 28px rgba(11,23,48,.08);display:flex;align-items:center;justify-content:space-between;padding:18px 22px;box-sizing:border-box}.nav-item[data-v-779763e5]{flex:1;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.nav-icon-box[data-v-779763e5]{width:46px;height:46px;border-radius:16px;display:flex;align-items:center;justify-content:center}.nav-icon-box.active[data-v-779763e5]{background:#2f6bff;box-shadow:0 8px 18px rgba(47,107,255,.15)}.nav-icon[data-v-779763e5]{width:26px;height:26px;display:block;filter:brightness(0) saturate(100%) invert(58%) sepia(12%) saturate(514%) hue-rotate(184deg) brightness(91%) contrast(88%)}.nav-text[data-v-779763e5]{font-family:Inter,sans-serif;font-size:14px;font-weight:600;color:#8a97b2}.nav-item.active .nav-text[data-v-779763e5]{color:#2f6bff;font-weight:700}.nav-item.active .nav-icon[data-v-779763e5]{filter:brightness(0) saturate(100%) invert(100%)}.surface-card[data-v-3b42e07f]{border:1px solid #E4ECF8;background:linear-gradient(180deg,#fff,#f8fbff);box-shadow:0 12px 28px rgba(11,23,48,.06)}.records-page[data-v-3b42e07f]{position:relative;flex:1;display:flex;flex-direction:column;gap:24px;height:100%}.pressable-box[data-v-3b42e07f]{cursor:pointer}.filter-card[data-v-3b42e07f]{width:100%;border-radius:30px;padding:24px;box-sizing:border-box;display:flex;flex-direction:column;gap:16px}.field-grid[data-v-3b42e07f]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.field-row-bottom[data-v-3b42e07f]{display:flex;gap:16px;align-items:flex-end}.field-col[data-v-3b42e07f]{display:flex;flex-direction:column;gap:10px}.full-width[data-v-3b42e07f]{flex:1}.empty-col[data-v-3b42e07f]{min-height:1px}.field-label-row[data-v-3b42e07f]{display:flex;align-items:center;gap:8px}.field-label-icon[data-v-3b42e07f]{width:16px;height:16px}.field-label[data-v-3b42e07f]{font-family:Inter,sans-serif;font-size:14px;font-weight:700;line-height:1.2;color:#1f2a44}.field-box[data-v-3b42e07f]{width:100%;height:50px;border-radius:18px;padding:0 16px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid #E3EBF8;box-shadow:0 4px 10px rgba(11,23,48,.03)}.field-value-text[data-v-3b42e07f],.field-placeholder[data-v-3b42e07f]{font-family:Inter,sans-serif;font-size:14px;font-weight:600;line-height:1.2}.field-value-text[data-v-3b42e07f]{color:#4a5672}.field-placeholder[data-v-3b42e07f]{color:#7b88a8}.field-native-input[data-v-3b42e07f]{width:100%;height:100%;font-family:Inter,sans-serif;font-size:14px;font-weight:600;color:#4a5672}.field-native-placeholder[data-v-3b42e07f]{color:#7b88a8}.field-arrow[data-v-3b42e07f]{width:16px;height:16px;flex-shrink:0}.date-range[data-v-3b42e07f]{display:flex;align-items:center;gap:10px}.date-dash[data-v-3b42e07f]{font-family:Inter,sans-serif;font-size:16px;font-weight:600;color:#7b88a8}.toolbar-actions[data-v-3b42e07f]{display:flex;gap:16px}.reset-btn[data-v-3b42e07f],.search-btn[data-v-3b42e07f]{height:46px;border-radius:18px;display:flex;align-items:center;justify-content:center;gap:8px;box-sizing:border-box}.reset-btn[data-v-3b42e07f]{padding:0 20px;background:#f4f7fd;border:1px solid #E3EBF8}.search-btn[data-v-3b42e07f]{padding:0 22px;background:linear-gradient(180deg,#4f87ff,#2f6bff);box-shadow:0 8px 18px rgba(47,107,255,.14)}.btn-icon[data-v-3b42e07f]{width:18px;height:18px}.reset-btn-text[data-v-3b42e07f],.search-btn-text[data-v-3b42e07f]{font-family:Inter,sans-serif;font-size:14px;font-weight:700;line-height:1.2}.reset-btn-text[data-v-3b42e07f]{color:#7b88a8}.search-btn-text[data-v-3b42e07f]{color:#fff}.records-panel[data-v-3b42e07f]{flex:1;width:100%;border-radius:30px;padding:20px;box-sizing:border-box;display:flex;flex-direction:column;gap:14px;overflow:hidden}.records-head[data-v-3b42e07f]{height:56px;display:flex;align-items:center;justify-content:space-between}.records-title-wrap[data-v-3b42e07f]{display:flex;align-items:center;gap:10px}.records-title-icon-box[data-v-3b42e07f]{width:36px;height:36px;border-radius:14px;background:#eaf1ff;display:flex;align-items:center;justify-content:center}.records-title-icon[data-v-3b42e07f]{width:18px;height:18px}.records-title[data-v-3b42e07f]{font-family:Inter,sans-serif;font-size:18px;font-weight:700;line-height:1.2;color:#1f2a44}.export-btn[data-v-3b42e07f]{height:42px;padding:0 16px;border-radius:18px;border:1px solid #DCE7FA;background:#f3f7fe;display:flex;align-items:center;gap:8px}.export-btn-icon[data-v-3b42e07f]{width:18px;height:18px}.export-btn-text[data-v-3b42e07f]{font-family:Inter,sans-serif;font-size:14px;font-weight:500;color:#2e6cff}.records-scroll-container[data-v-3b42e07f]{flex:1;height:0;width:100%}.records-scroll-container[data-v-3b42e07f] ::-webkit-scrollbar{width:6px;background-color:transparent}.records-scroll-container[data-v-3b42e07f] ::-webkit-scrollbar-thumb{background-color:#b8c9e8;border-radius:3px}.records-scroll-container[data-v-3b42e07f] ::-webkit-scrollbar-track{background-color:transparent}.records-grid[data-v-3b42e07f]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;padding:0 24px 12px 0}.record-item[data-v-3b42e07f]{position:relative;min-height:258px;border-radius:26px;padding:20px 22px 18px;box-sizing:border-box;overflow:hidden;border:1px solid #E7F0FF;background:linear-gradient(180deg,#fff,#fafcff);box-shadow:0 10px 24px rgba(11,23,48,.06)}.record-item.green[data-v-3b42e07f]{border-color:#d8eedf;background:linear-gradient(180deg,#fff,#fbfefc)}.record-item.blue[data-v-3b42e07f]{border-color:#d9e7ff}.record-item.orange[data-v-3b42e07f]{border-color:#f6e7d9;background:linear-gradient(180deg,#fff,#fff9f5)}.record-item.purple[data-v-3b42e07f]{border-color:#ece9ff;background:linear-gradient(180deg,#fff,#fbfaff)}.record-top-bg[data-v-3b42e07f]{position:absolute;left:0;top:0;width:100%;height:96px;background:rgba(43,182,115,.1)}.record-item.blue .record-top-bg[data-v-3b42e07f]{background:rgba(47,107,255,.11)}.record-item.orange .record-top-bg[data-v-3b42e07f]{background:rgba(255,138,61,.12)}.record-item.purple .record-top-bg[data-v-3b42e07f]{background:rgba(110,106,248,.12)}.record-side-bar[data-v-3b42e07f]{position:absolute;left:0;top:0;width:6px;height:100%;border-radius:3px}.record-side-bar.green[data-v-3b42e07f]{background:#2bb673}.record-side-bar.blue[data-v-3b42e07f]{background:#2f6bff}.record-side-bar.orange[data-v-3b42e07f]{background:#ff8a3d}.record-side-bar.purple[data-v-3b42e07f]{background:#6e6af8}.record-head-row[data-v-3b42e07f],.record-fields[data-v-3b42e07f]{position:relative;z-index:1}.record-head-row[data-v-3b42e07f]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.record-user[data-v-3b42e07f]{display:flex;align-items:center;gap:12px}.avatar-box[data-v-3b42e07f]{width:44px;height:44px;border-radius:22px;display:flex;align-items:center;justify-content:center}.avatar-box.green[data-v-3b42e07f]{background:#2bb673}.avatar-box.blue[data-v-3b42e07f]{background:#2f6bff}.avatar-box.orange[data-v-3b42e07f]{background:#ff8a3d}.avatar-box.purple[data-v-3b42e07f]{background:#6e6af8}.avatar-text[data-v-3b42e07f]{font-family:Inter,sans-serif;font-size:18px;font-weight:800;color:#fff}.record-user-copy[data-v-3b42e07f]{display:flex;flex-direction:column;gap:4px}.record-name[data-v-3b42e07f]{font-family:Inter,sans-serif;font-size:22px;font-weight:700;line-height:1.2;color:#1f2a44}.record-id[data-v-3b42e07f]{font-family:Inter,sans-serif;font-size:14px;font-weight:600;line-height:1.2;color:#7b88a8}.record-status[data-v-3b42e07f]{display:flex;align-items:center;gap:8px}.status-icon[data-v-3b42e07f]{width:14px;height:14px;flex-shrink:0}.status-text[data-v-3b42e07f]{font-family:Inter,sans-serif;font-size:12px;font-weight:700;line-height:1.2}.status-text.green[data-v-3b42e07f]{color:#2bb673}.status-text.blue[data-v-3b42e07f]{color:#2f6bff}.status-text.orange[data-v-3b42e07f]{color:#ff8a3d}.status-text.purple[data-v-3b42e07f]{color:#6e6af8}.record-fields[data-v-3b42e07f]{display:flex;flex-direction:column;gap:10px;padding-top:26px}.record-field[data-v-3b42e07f]{display:flex;align-items:center;gap:10px}.record-field-bottom[data-v-3b42e07f]{justify-content:space-between;gap:16px}.record-field-left[data-v-3b42e07f]{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.record-field-icon[data-v-3b42e07f]{width:16px;height:16px;flex-shrink:0}.record-field-value[data-v-3b42e07f]{font-family:Inter,sans-serif;font-size:13px;font-weight:600;line-height:1.2;color:#4a5672}.detail-chip[data-v-3b42e07f]{min-width:54px;height:28px;padding:0 10px;border-radius:14px;background:#eef2fa;display:flex;align-items:center;justify-content:center;gap:4px;flex-shrink:0;box-sizing:border-box}.detail-chip-text[data-v-3b42e07f]{font-family:Inter,sans-serif;font-size:12px;font-weight:600;line-height:1;color:#6a7b98;white-space:nowrap}.detail-chip-arrow[data-v-3b42e07f]{width:12px;height:12px}.overlay-mask[data-v-3b42e07f]{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(15,27,52,.38);z-index:99;border-radius:0}.overlay-sheet[data-v-3b42e07f]{position:fixed;left:0;right:0;bottom:0;width:100%;border-radius:32px 32px 0 0;background:#fff;box-shadow:0 18px 42px rgba(11,23,48,.18);z-index:100;box-sizing:border-box}.selector-sheet[data-v-3b42e07f],.reason-sheet[data-v-3b42e07f],.date-sheet[data-v-3b42e07f]{bottom:0;padding:24px}.sheet-head[data-v-3b42e07f]{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.sheet-title[data-v-3b42e07f]{font-family:Inter,sans-serif;font-size:24px;font-weight:700;line-height:1.2;color:#1f2a44}.sheet-close[data-v-3b42e07f]{font-family:Inter,sans-serif;font-size:16px;font-weight:600;color:#7b88a8}.sheet-confirm-btn[data-v-3b42e07f]{height:52px;border-radius:14px;padding:0 24px;display:flex;align-items:center;justify-content:center;box-sizing:border-box;background:linear-gradient(180deg,#4f87ff,#2f6bff);box-shadow:0 10px 22px rgba(47,107,255,.18)}.sheet-confirm-text[data-v-3b42e07f]{font-family:Inter,sans-serif;font-size:16px;font-weight:700;line-height:1.2;color:#fff}.tree-layout[data-v-3b42e07f]{display:flex;gap:16px;height:420px;margin-bottom:18px}.tree-column[data-v-3b42e07f]{border-radius:24px;border:1px solid #E6EDF8;background:#f8fbff;overflow:hidden}.tree-parent-column[data-v-3b42e07f]{width:324px}.tree-child-column[data-v-3b42e07f]{flex:1;background:#fff}.tree-parent-row[data-v-3b42e07f],.tree-child-row[data-v-3b42e07f]{min-height:70px;padding:0 22px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #EEF3FB}.tree-parent-row-active[data-v-3b42e07f]{background:#edf4ff}.tree-child-row-active[data-v-3b42e07f]{background:rgba(47,107,255,.08)}.tree-parent-text[data-v-3b42e07f],.tree-child-text[data-v-3b42e07f]{font-family:Inter,sans-serif;font-size:18px;font-weight:600;color:#4a5672}.tree-parent-text-active[data-v-3b42e07f],.tree-child-text-active[data-v-3b42e07f]{color:#2f6bff;font-weight:700}.tree-arrow[data-v-3b42e07f]{width:16px;height:16px}.reason-list[data-v-3b42e07f]{display:flex;flex-direction:column;gap:12px;margin-bottom:32px}.reason-item[data-v-3b42e07f]{height:72px;border-radius:0;border:2px solid transparent;background:#eef2f8;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.reason-item-active[data-v-3b42e07f]{border-color:#3e7bff;background:#fff}.reason-item-text[data-v-3b42e07f]{font-family:Inter,sans-serif;font-size:18px;font-weight:600;color:#a7afbc}.reason-item-text-active[data-v-3b42e07f]{color:#2f6bff;font-weight:700}.reason-sheet[data-v-3b42e07f]{bottom:0;padding:24px 34px 28px;border-radius:34px 34px 0 0}.reason-sheet-head[data-v-3b42e07f]{height:56px;display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}.reason-close-btn[data-v-3b42e07f],.reason-head-placeholder[data-v-3b42e07f]{width:34px;height:34px;flex-shrink:0}.reason-close-btn[data-v-3b42e07f]{position:relative;border-radius:50%;border:2px solid #6B6B6B;box-sizing:border-box}.reason-close-line[data-v-3b42e07f]{position:absolute;left:8px;top:14px;width:14px;height:2px;background:#6b6b6b;transform:rotate(45deg)}.reason-close-line-reverse[data-v-3b42e07f]{transform:rotate(-45deg)}.reason-sheet-title[data-v-3b42e07f]{font-family:Inter,sans-serif;font-size:18px;font-weight:700;line-height:1.2;color:#1f2a44}.reason-submit-btn[data-v-3b42e07f]{width:100%;height:64px;border-radius:32px;background:linear-gradient(90deg,#1674ff,#1f6fff);box-shadow:0 12px 24px rgba(31,111,255,.18);display:flex;align-items:center;justify-content:center}.reason-submit-text[data-v-3b42e07f]{font-family:Inter,sans-serif;font-size:18px;font-weight:700;line-height:1.2;color:#fff}.date-tab-row[data-v-3b42e07f]{display:flex;gap:14px;margin-bottom:18px}.date-tab[data-v-3b42e07f]{flex:1;border-radius:20px;border:1px solid #E3EBF8;background:#f8fbff;padding:14px 18px;box-sizing:border-box;display:flex;flex-direction:column;gap:6px}.date-tab-active[data-v-3b42e07f]{border-color:#bcd4ff;background:#eef5ff}.date-tab-text[data-v-3b42e07f]{font-family:Inter,sans-serif;font-size:14px;font-weight:700;color:#7b88a8}.date-tab-value[data-v-3b42e07f]{font-family:Inter,sans-serif;font-size:20px;font-weight:700;color:#1f2a44}.date-picker-view[data-v-3b42e07f]{width:100%;height:280px;margin-bottom:18px}.picker-item[data-v-3b42e07f]{height:56px;line-height:56px;text-align:center;font-family:Inter,sans-serif;font-size:22px;font-weight:700;color:#1f2a44}.date-overlay-mask[data-v-3b42e07f]{background:rgba(31,42,68,.6)}.admin-home-date-sheet[data-v-3b42e07f]{height:600px;padding:0;border-radius:28px 28px 0 0;display:flex;flex-direction:column}.admin-home-date-sheet .sheet-head[data-v-3b42e07f]{height:72px;padding:0 32px;display:flex;align-items:center;justify-content:space-between;margin-bottom:0;border-bottom:1px solid #EEF2FA;box-sizing:border-box}.admin-home-date-sheet .sheet-title[data-v-3b42e07f]{font-family:Inter,sans-serif;font-size:20px;font-weight:700;color:#1f2a44}.admin-home-date-sheet .sheet-close[data-v-3b42e07f]{font-family:Inter,sans-serif;font-size:16px;font-weight:600;color:#7b88a8;padding:10px}.admin-home-date-sheet .date-tab-row[data-v-3b42e07f]{display:flex;padding:20px 32px 10px;gap:24px;margin-bottom:0}.admin-home-date-sheet .date-tab[data-v-3b42e07f]{flex:1;height:64px;border-radius:12px;border:1px solid #EEF2FA;display:flex;flex-direction:column;justify-content:center;padding:0 16px;gap:4px;background:#fff;box-sizing:border-box}.admin-home-date-sheet .date-tab-active[data-v-3b42e07f]{border-color:#2f6bff;background:#f4f8ff}.admin-home-date-sheet .date-tab-text[data-v-3b42e07f]{font-family:Inter,sans-serif;font-size:13px;font-weight:600;color:#7b88a8}.admin-home-date-sheet .date-tab-active .date-tab-text[data-v-3b42e07f]{color:#2f6bff}.admin-home-date-sheet .date-tab-value[data-v-3b42e07f]{font-family:Inter,sans-serif;font-size:16px;font-weight:700;color:#1f2a44}.admin-home-date-sheet .date-picker-view[data-v-3b42e07f]{flex:1;width:100%;height:auto;margin-bottom:0}.admin-home-date-sheet .picker-item[data-v-3b42e07f]{display:flex;align-items:center;justify-content:center;height:34px;line-height:normal;text-align:center;font-family:Inter,sans-serif;font-size:18px;font-weight:600;color:#1f2a44}.admin-home-date-sheet .sheet-confirm-btn[data-v-3b42e07f]{margin:16px 32px 32px;height:52px;border-radius:14px;background:#2f6bff;display:flex;align-items:center;justify-content:center;box-shadow:none}.admin-home-date-sheet .sheet-confirm-text[data-v-3b42e07f]{font-family:Inter,sans-serif;font-size:16px;font-weight:700;color:#fff}.empty-state[data-v-3b42e07f]{display:flex;align-items:center;justify-content:center;padding:60px 0}.empty-text[data-v-3b42e07f]{font-family:Inter,sans-serif;font-size:16px;color:#7b88a8}.config-page[data-v-66c2f69c]{position:relative;width:100%;flex:1}.config-main-card[data-v-66c2f69c]{width:100%;flex:1;border-radius:38px;border:1px solid #E4ECF8;background:#fff;box-shadow:0 16px 36px rgba(11,23,48,.07);padding:26px 24px 30px;box-sizing:border-box;display:flex;flex-direction:column;gap:18px}.page-title-row[data-v-66c2f69c],.section-head[data-v-66c2f69c],.more-left[data-v-66c2f69c]{display:flex;align-items:center;gap:12px}.page-title-icon[data-v-66c2f69c]{width:22px;height:22px}.page-title-text[data-v-66c2f69c]{font-family:Inter,sans-serif;font-size:28px;font-weight:700;color:#1f2a44}.section-card[data-v-66c2f69c],.more-card[data-v-66c2f69c]{border-radius:24px;border:1px solid #E8EEF8;background:linear-gradient(180deg,#f8fbff,#f4f8fd);padding:22px;box-sizing:border-box}.section-card[data-v-66c2f69c]{display:flex;flex-direction:column;gap:18px}.section-icon[data-v-66c2f69c]{width:18px;height:18px}.section-title[data-v-66c2f69c],.more-text[data-v-66c2f69c]{font-family:Inter,sans-serif;font-size:20px;font-weight:700;color:#1f2a44}.ip-stack[data-v-66c2f69c]{display:flex;flex-direction:column;gap:14px}.ip-item[data-v-66c2f69c]{display:flex;flex-direction:column;gap:8px}.item-label[data-v-66c2f69c],.version-label[data-v-66c2f69c]{font-family:Inter,sans-serif;font-size:14px;font-weight:600;color:#7b88a8}.version-value[data-v-66c2f69c]{font-family:Inter,sans-serif;font-size:14px;font-weight:700;color:#1f2a44}.ip-input[data-v-66c2f69c]{width:100%;height:44px;padding:0 14px;box-sizing:border-box;border-radius:12px;border:1px solid #DCE6F5;background:#fff;font-family:Inter,sans-serif;font-size:14px;font-weight:700;color:#1f2a44}.ip-placeholder[data-v-66c2f69c]{color:#a8b3c8;font-size:14px;font-weight:600}.version-row[data-v-66c2f69c],.update-copy[data-v-66c2f69c],.sync-copy[data-v-66c2f69c]{display:flex;align-items:center;gap:10px}.inline-icon[data-v-66c2f69c]{width:18px;height:18px;flex-shrink:0}.update-banner[data-v-66c2f69c],.sync-banner[data-v-66c2f69c]{min-height:80px;border-radius:22px;padding:18px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:18px}.update-banner[data-v-66c2f69c]{border:1px solid #DFE9FC;background:linear-gradient(180deg,#f6faff,#eef4fe)}.sync-banner[data-v-66c2f69c]{border:1px solid #D8EEDF;background:linear-gradient(180deg,#f4fbf7,#edf8f1)}.update-text[data-v-66c2f69c],.sync-text[data-v-66c2f69c]{font-family:Inter,sans-serif;font-size:14px;font-weight:600;line-height:1.2}.update-text[data-v-66c2f69c]{color:#2f6bff}.sync-text[data-v-66c2f69c]{color:#2bb673}.update-btn[data-v-66c2f69c],.sync-btn[data-v-66c2f69c]{height:42px;padding:0 16px;border-radius:18px;display:flex;align-items:center;justify-content:center;gap:8px;flex-shrink:0}.update-btn[data-v-66c2f69c]{background:linear-gradient(180deg,#78a6ff,#2f6bff);box-shadow:0 10px 22px rgba(47,107,255,.2)}.sync-btn[data-v-66c2f69c]{background:linear-gradient(180deg,#59d793,#21b868);box-shadow:0 10px 22px rgba(33,184,104,.2)}.update-btn-text[data-v-66c2f69c],.sync-btn-text[data-v-66c2f69c],.save-btn-text[data-v-66c2f69c]{font-family:Inter,sans-serif;font-size:16px;font-weight:700;color:#fff}.banner-btn-icon[data-v-66c2f69c]{width:18px;height:18px;flex-shrink:0}.sync-note[data-v-66c2f69c]{font-family:Inter,sans-serif;font-size:12px;font-weight:600;line-height:1.2;color:#7b88a8}.more-card[data-v-66c2f69c]{display:flex;align-items:center;justify-content:space-between}.more-arrow[data-v-66c2f69c]{width:20px;height:20px}.save-row[data-v-66c2f69c]{display:flex;justify-content:center}.save-btn[data-v-66c2f69c]{width:420px;height:58px;border-radius:18px;background:linear-gradient(180deg,#4a82ff,#2f6bff);box-shadow:0 10px 22px rgba(47,107,255,.18);display:flex;align-items:center;justify-content:center;gap:10px}.save-icon[data-v-66c2f69c]{width:20px;height:20px}.overlay-mask[data-v-66c2f69c]{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(31,42,68,.6);z-index:9999}.more-dialog[data-v-66c2f69c]{position:fixed;left:170px;top:760px;width:740px;border-radius:28px;background:#fff;padding:52px 36px;box-sizing:border-box;display:flex;flex-direction:column;gap:26px;box-shadow:0 18px 40px rgba(11,23,48,.12);z-index:10000}.dialog-head[data-v-66c2f69c]{display:flex;align-items:center;justify-content:space-between}.dialog-placeholder[data-v-66c2f69c],.dialog-close-btn[data-v-66c2f69c]{width:40px;height:40px;display:flex;align-items:center;justify-content:center}.dialog-title[data-v-66c2f69c]{font-family:Inter,sans-serif;font-size:32px;font-weight:700;color:#1f2a44}.dialog-close-icon[data-v-66c2f69c]{width:24px;height:24px}.dialog-action-item[data-v-66c2f69c]{width:100%;height:96px;border-radius:20px;background:#f8faff;padding:0 22px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between}.dialog-action-left[data-v-66c2f69c]{display:flex;align-items:center;gap:14px}.dialog-action-icon-box[data-v-66c2f69c]{width:40px;height:40px;border-radius:14px;background:#eaf1ff;display:flex;align-items:center;justify-content:center}.dialog-action-icon[data-v-66c2f69c]{width:20px;height:20px}.dialog-action-text[data-v-66c2f69c]{font-family:Inter,sans-serif;font-size:22px;font-weight:700;color:#1f2a44}.dialog-action-arrow[data-v-66c2f69c]{width:24px;height:24px}.logout-dialog[data-v-66c2f69c]{position:fixed;left:165px;top:811px;width:750px;border-radius:28px;background:#fff;padding:52px 40px;box-sizing:border-box;display:flex;flex-direction:column;gap:44px;box-shadow:0 18px 40px rgba(11,23,48,.12);z-index:10001}.logout-hold-dialog[data-v-66c2f69c]{position:fixed;left:165px;top:720px;width:750px;padding:36px 40px 52px;border-radius:28px;background:#fff;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;z-index:10000}.dialog-head-plain[data-v-66c2f69c]{width:100%;justify-content:flex-end}.logout-copy[data-v-66c2f69c]{display:flex;flex-direction:column;align-items:center;gap:14px}.logout-title[data-v-66c2f69c]{font-family:Inter,sans-serif;font-size:34px;font-weight:700;color:#1f2a44}.logout-desc[data-v-66c2f69c]{font-family:Inter,sans-serif;font-size:20px;font-weight:500;line-height:1.3;color:#7b88a8;text-align:center}.logout-actions[data-v-66c2f69c]{display:flex;align-items:center;justify-content:center;gap:28px}.ghost-btn[data-v-66c2f69c],.confirm-btn[data-v-66c2f69c]{width:220px;height:56px;border-radius:18px;display:flex;align-items:center;justify-content:center}.ghost-btn[data-v-66c2f69c]{background:#f5f5f5}.confirm-btn[data-v-66c2f69c]{background:#2f6bff}.ghost-btn-text[data-v-66c2f69c],.confirm-btn-text[data-v-66c2f69c]{font-family:Inter,sans-serif;font-size:20px;font-weight:700}.ghost-btn-text[data-v-66c2f69c]{color:#666}.confirm-btn-text[data-v-66c2f69c]{color:#fff}.logout-hold-copy[data-v-66c2f69c]{width:100%;margin-top:18px;display:flex;justify-content:center}.logout-hold-title[data-v-66c2f69c]{font-family:Inter,sans-serif;font-size:34px;font-weight:700;color:#1f2a44;text-align:center}.logout-hold-confirm-btn[data-v-66c2f69c]{width:220px;height:72px;margin-top:72px;border-radius:20px;background:#2f6bff;display:flex;align-items:center;justify-content:center}.logout-hold-confirm-text[data-v-66c2f69c]{font-family:Inter,sans-serif;font-size:24px;font-weight:700;color:#fff}.surface-card[data-v-6cc359fb]{border:1px solid #E4ECFA;background:#fff;box-shadow:0 12px 28px rgba(11,23,48,.07)}.home-tab-panel[data-v-6cc359fb]{display:flex;flex-direction:column;gap:24px}.toolbar-card[data-v-6cc359fb]{width:100%;border-radius:30px;padding:20px;box-sizing:border-box;display:flex;flex-direction:column;gap:16px;border-color:#e7edf8}.segmented[data-v-6cc359fb]{width:100%;height:52px;padding:5px;border-radius:24px;box-sizing:border-box;display:flex;gap:6px;border:1px solid #E0E8F6;background:linear-gradient(180deg,#f7faff,#eef3fc);box-shadow:0 8px 18px rgba(11,23,48,.04)}.segment-item[data-v-6cc359fb]{flex:1;height:100%;border-radius:20px;border:1px solid #E4EBF7;background:#fff;display:flex;align-items:center;justify-content:center;box-sizing:border-box;cursor:pointer}.segment-item.active[data-v-6cc359fb]{border-color:transparent;background:linear-gradient(180deg,#3e7bff,#2f6bff);box-shadow:0 6px 14px rgba(47,107,255,.15)}.segment-text[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:15px;font-weight:700;line-height:1.2;color:#6d7f9b}.active-text[data-v-6cc359fb]{font-weight:800;color:#fff}.range-row[data-v-6cc359fb]{display:flex;align-items:center;gap:14px}.date-range[data-v-6cc359fb]{flex:1;display:flex;align-items:center;gap:12px}.date-picker-trigger[data-v-6cc359fb]{flex:1;display:flex}.date-field[data-v-6cc359fb]{flex:1;height:44px;padding:0 16px;box-sizing:border-box;border-radius:16px;border:1px solid #EEF2FA;background:#fff;display:flex;align-items:center;gap:10px}.date-icon[data-v-6cc359fb]{width:16px;height:16px}.date-text[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:14px;font-weight:400;line-height:1.2;color:#7b88a8}.date-text-value[data-v-6cc359fb]{color:#34425d;font-weight:700}.date-separator[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:15px;font-weight:700;line-height:1.2;color:#9aa8c2}.apply-btn[data-v-6cc359fb]{width:144px;height:44px;border-radius:18px;background:#2f6bff;display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer}.apply-btn-text[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:16px;font-weight:700;line-height:1.2;color:#fff}.module-row[data-v-6cc359fb]{display:flex;gap:24px}.module-card[data-v-6cc359fb]{position:relative;flex:1;height:252px;padding:22px;box-sizing:border-box;border-radius:30px;overflow:hidden;border:1px solid rgba(255,255,255,.4);box-shadow:0 14px 28px rgba(11,23,48,.14)}.online-module[data-v-6cc359fb]{background:linear-gradient(180deg,#eff5ff,#d8e7ff)}.onsite-module[data-v-6cc359fb]{background:linear-gradient(180deg,#eef9f2,#d7f3e4)}.module-glow[data-v-6cc359fb]{position:absolute;border-radius:50%;pointer-events:none}.module-glow.primary[data-v-6cc359fb]{top:-36px;right:-18px;width:220px;height:220px}.online-glow[data-v-6cc359fb]{background:rgba(47,107,255,.14)}.onsite-glow[data-v-6cc359fb]{background:rgba(43,182,115,.14)}.module-glow.secondary[data-v-6cc359fb]{left:-48px;top:78px;width:180px;height:180px;background:rgba(255,255,255,.22)}.module-bg-icon[data-v-6cc359fb]{position:absolute;right:38px;top:42px;width:110px;height:110px;z-index:0}.module-head[data-v-6cc359fb],.module-panel-row[data-v-6cc359fb]{position:relative;z-index:1}.module-head[data-v-6cc359fb]{margin-bottom:18px}.module-title-group[data-v-6cc359fb]{display:flex;align-items:center;gap:12px}.module-icon-box[data-v-6cc359fb]{width:38px;height:38px;border-radius:19px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.blue-box[data-v-6cc359fb]{background:#2f6bff}.green-box[data-v-6cc359fb]{background:#2bb673}.module-icon[data-v-6cc359fb]{width:22px;height:22px}.module-copy[data-v-6cc359fb]{display:flex;flex-direction:column;gap:4px}.module-title[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:27px;font-weight:800;line-height:1.1;color:#16315f}.module-subtitle[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:13px;font-weight:600;line-height:1.2;color:#496389}.module-panel-row[data-v-6cc359fb]{display:flex;gap:14px}.module-panel[data-v-6cc359fb]{flex:1;height:126px;padding:20px 18px 18px;box-sizing:border-box;border-radius:24px;display:flex;flex-direction:column;justify-content:space-between}.panel-blue[data-v-6cc359fb]{background:#2f6bff;border:1px solid #81A8FF;box-shadow:0 8px 18px rgba(47,107,255,.2)}.panel-deep-blue[data-v-6cc359fb]{background:#1946ba;border:1px solid #6F95F3;box-shadow:0 8px 18px rgba(25,70,186,.2)}.panel-green[data-v-6cc359fb]{background:#2bb673;border:1px solid #7ED9A6;box-shadow:0 8px 18px rgba(43,182,115,.2)}.panel-deep-green[data-v-6cc359fb]{background:#178d58;border:1px solid #68C690;box-shadow:0 8px 18px rgba(23,141,88,.2)}.panel-tag[data-v-6cc359fb]{display:flex;align-items:center;gap:8px}.panel-tag-icon-box[data-v-6cc359fb]{width:26px;height:26px;border-radius:13px;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;flex-shrink:0}.panel-tag-icon[data-v-6cc359fb]{width:14px;height:14px}.panel-tag-text[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:13px;font-weight:700;line-height:1.2;color:#eef4ff}.panel-value-row[data-v-6cc359fb]{display:flex;align-items:flex-end;gap:6px}.panel-value[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:48px;font-weight:800;line-height:1;color:#fff}.panel-unit[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:15px;font-weight:700;line-height:1.2}.light-unit[data-v-6cc359fb]{color:#e4eeff}.summary-row[data-v-6cc359fb]{display:flex;gap:18px}.summary-card[data-v-6cc359fb]{flex:1;height:176px;padding:18px 18px 16px;box-sizing:border-box;border-radius:24px;display:flex;flex-direction:column;justify-content:space-between}.summary-blue[data-v-6cc359fb]{border-color:#d7e7ff;background:linear-gradient(180deg,#f6faff,#edf5ff 72%,#fbfdff);box-shadow:0 14px 26px rgba(47,107,255,.06)}.summary-green[data-v-6cc359fb]{border-color:#d5eedf;background:linear-gradient(180deg,#f6fcf8,#edf8f1);box-shadow:0 10px 24px rgba(43,182,115,.07)}.summary-orange[data-v-6cc359fb]{border-color:#f6e1c3;background:linear-gradient(180deg,#fff9f2,#fff1e0 72%,#fffdfc);box-shadow:0 14px 26px rgba(235,162,69,.07)}.summary-top[data-v-6cc359fb]{display:flex;align-items:center;justify-content:space-between}.summary-title-row[data-v-6cc359fb]{display:flex;align-items:center;gap:10px}.summary-dot[data-v-6cc359fb]{width:10px;height:10px;border-radius:50%}.stay-dot[data-v-6cc359fb]{background:#2f6bff}.checkin-dot[data-v-6cc359fb]{background:#2bb673}.overdue-dot[data-v-6cc359fb]{background:#ff8a3d}.summary-title[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:17px;font-weight:800;line-height:1.2}.stay-title[data-v-6cc359fb]{color:#2e6cff}.checkin-title[data-v-6cc359fb]{color:#2bb673}.overdue-title[data-v-6cc359fb]{color:#ff8a3d}.summary-accent[data-v-6cc359fb]{width:28px;height:28px;border-radius:10px}.stay-accent[data-v-6cc359fb]{background:#eaf1ff}.checkin-accent[data-v-6cc359fb]{background:#e7f7ee}.overdue-accent[data-v-6cc359fb]{background:#fff0e4}.summary-value-row[data-v-6cc359fb]{display:flex;align-items:flex-end;gap:6px}.summary-value[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:52px;font-weight:800;line-height:1;color:#16233f}.summary-unit[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:17px;font-weight:600;line-height:1.2;color:#7483a1}.summary-foot[data-v-6cc359fb]{display:flex;align-items:center;gap:6px;height:18px}.summary-foot-icon[data-v-6cc359fb]{width:13px;height:13px}.summary-foot-text[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:13px;font-weight:700;line-height:1.2}.stay-foot[data-v-6cc359fb],.stay-foot .summary-foot-text[data-v-6cc359fb]{color:#627493}.checkin-foot[data-v-6cc359fb],.checkin-foot .summary-foot-text[data-v-6cc359fb]{color:#5b7f69}.overdue-foot[data-v-6cc359fb],.overdue-foot .summary-foot-text[data-v-6cc359fb]{color:#9a6a45}.trend-card[data-v-6cc359fb]{width:100%;border-radius:30px;padding:24px;box-sizing:border-box;display:flex;flex-direction:column;gap:18px}.trend-header[data-v-6cc359fb]{display:flex;align-items:center;justify-content:space-between;gap:12px}.trend-title-group[data-v-6cc359fb]{display:flex;align-items:center;gap:12px}.trend-icon-box[data-v-6cc359fb]{width:42px;height:42px;border-radius:16px;background:#eaf1ff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.trend-icon[data-v-6cc359fb]{width:18px;height:18px}.trend-copy[data-v-6cc359fb]{display:flex;flex-direction:column;gap:4px}.trend-title[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:22px;font-weight:800;line-height:1.2;color:#183463}.trend-subtitle[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:13px;font-weight:600;line-height:1.2;color:#6a7f9f}.trend-legend-group[data-v-6cc359fb]{display:flex;align-items:center;gap:18px;flex-wrap:wrap;justify-content:flex-end}.trend-legend[data-v-6cc359fb]{display:flex;align-items:center;gap:8px}.legend-dot[data-v-6cc359fb]{width:10px;height:10px;border-radius:50%}.online-dot[data-v-6cc359fb]{background:#5b8dff}.onsite-dot[data-v-6cc359fb]{background:#7a6bff}.legend-text[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:13px;font-weight:700;line-height:1.2}.online-legend-text[data-v-6cc359fb]{color:#2f6bff}.onsite-legend-text[data-v-6cc359fb]{color:#6e6af8}.chart-panel[data-v-6cc359fb]{position:relative;height:452px;padding:22px 20px 20px;box-sizing:border-box;border-radius:24px;background:linear-gradient(180deg,#101b3a,#0a1228);overflow:hidden}.chart-grid-line[data-v-6cc359fb]{position:absolute;left:20px;width:960px;height:1px;background:rgba(255,255,255,.09)}.line-1[data-v-6cc359fb]{top:104px}.line-2[data-v-6cc359fb]{top:188px}.line-3[data-v-6cc359fb]{top:272px}.line-4[data-v-6cc359fb]{top:356px}.chart-panel-head[data-v-6cc359fb]{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.chart-panel-caption[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:12px;font-weight:700;line-height:1.2;color:#bfd2f7}.chart-panel-unit[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:12px;font-weight:700;line-height:1.2;color:#8fa6d2}.chart-scroll-view[data-v-6cc359fb]{position:relative;z-index:1;width:100%;height:380px}[data-v-6cc359fb] .chart-scroll-view ::-webkit-scrollbar{width:4px;height:4px;background-color:transparent}[data-v-6cc359fb] .chart-scroll-view ::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgba(255,255,255,.2)}[data-v-6cc359fb] .chart-scroll-view ::-webkit-scrollbar-track{background-color:rgba(255,255,255,.05);border-radius:4px}.chart-columns[data-v-6cc359fb]{display:flex;align-items:flex-end;justify-content:center;gap:22px;height:370px;padding-bottom:10px;min-width:100%}.chart-empty-state[data-v-6cc359fb]{position:relative;z-index:1;height:370px;display:flex;align-items:center;justify-content:center}.chart-empty-text[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:14px;font-weight:600;line-height:1.2;color:#9db0d2}.chart-column[data-v-6cc359fb]{flex-shrink:0;min-width:60px;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:10px}.chart-value-pill[data-v-6cc359fb]{min-width:54px;height:24px;padding:0 8px;box-sizing:border-box;border-radius:12px;background:rgba(255,255,255,.07);display:flex;align-items:center;justify-content:center}.chart-value-pill-text[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:11px;font-weight:700;line-height:1.2;color:#dce8ff}.chart-bars[data-v-6cc359fb]{height:320px;display:flex;align-items:flex-end;gap:8px}.chart-bar[data-v-6cc359fb]{width:18px;border-radius:9px}.online-bar[data-v-6cc359fb]{background:#5b8dff}.onsite-bar[data-v-6cc359fb]{background:#7a6bff}.chart-label[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:12px;font-weight:700;line-height:1.2;color:#9db0d2}.trend-footnote[data-v-6cc359fb]{display:flex;justify-content:center}.trend-footnote-text[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:12px;font-weight:600;line-height:1.2;color:#90a2bf}.device-info-row[data-v-6cc359fb]{width:100%;display:flex;align-items:center;justify-content:space-between;gap:18px}.device-info-item[data-v-6cc359fb]{display:flex;align-items:center;gap:10px}.device-info-icon[data-v-6cc359fb]{width:22px;height:22px;flex-shrink:0}.device-info-text[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:14px;font-weight:600;line-height:1.2;color:#fff;white-space:nowrap}.overlay-mask[data-v-6cc359fb]{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(31,42,68,.6);z-index:99}.overlay-sheet[data-v-6cc359fb]{position:fixed;left:0;right:0;bottom:0;border-radius:28px 28px 0 0;background:#fff;z-index:100;display:flex;flex-direction:column}.date-sheet[data-v-6cc359fb]{height:600px}.sheet-head[data-v-6cc359fb]{height:72px;padding:0 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #EEF2FA}.sheet-title[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:20px;font-weight:700;color:#1f2a44}.sheet-close[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:16px;font-weight:600;color:#7b88a8;padding:10px}.date-tab-row[data-v-6cc359fb]{display:flex;padding:20px 32px 10px;gap:24px}.date-tab[data-v-6cc359fb]{flex:1;height:64px;border-radius:12px;border:1px solid #EEF2FA;display:flex;flex-direction:column;justify-content:center;padding:0 16px;gap:4px}.date-tab-active[data-v-6cc359fb]{border-color:#2f6bff;background:#f4f8ff}.date-tab-text[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:13px;font-weight:600;color:#7b88a8}.date-tab-active .date-tab-text[data-v-6cc359fb]{color:#2f6bff}.date-tab-value[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:16px;font-weight:700;color:#1f2a44}.date-picker-view[data-v-6cc359fb]{flex:1;width:100%}.picker-item[data-v-6cc359fb]{display:flex;align-items:center;justify-content:center;font-family:Inter,sans-serif;font-size:18px;font-weight:600;color:#1f2a44}.sheet-confirm-btn[data-v-6cc359fb]{margin:16px 32px 32px;height:52px;border-radius:14px;background:#2f6bff;display:flex;align-items:center;justify-content:center}.sheet-confirm-text[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:16px;font-weight:700;color:#fff} |
| | | .page-shell[data-v-6e4a5290]{position:relative;width:1080px;height:1920px;box-sizing:border-box;padding:30px 36px 40px;background:linear-gradient(180deg,#3b78ff,#2860e8,#163ebc);overflow:hidden;display:flex;flex-direction:column}.bg-glow[data-v-6e4a5290]{position:absolute;left:-128px;top:412px;width:300px;height:300px;border-radius:50%;background:rgba(127,177,255,.1);filter:blur(50px);pointer-events:none}.header-bar[data-v-6e4a5290]{position:relative;z-index:1;width:100%;height:88px;display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.title-zone[data-v-6e4a5290]{display:flex;align-items:center;gap:10px}.title-icon[data-v-6e4a5290]{width:22px;height:22px}.page-title[data-v-6e4a5290]{font-family:Inter,sans-serif;font-size:30px;font-weight:700;line-height:1.2;color:#fff}.back-btn[data-v-6e4a5290]{height:46px;padding:0 20px;border-radius:23px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.26);box-shadow:0 10px 22px rgba(15,46,133,.14);display:flex;align-items:center;justify-content:center;gap:8px}.back-arrow[data-v-6e4a5290]{width:20px;height:20px}.back-btn-text[data-v-6e4a5290]{font-family:Inter,sans-serif;font-size:16px;font-weight:600;color:#fff}.content-wrap[data-v-6e4a5290]{position:relative;min-height:1536px;display:flex;flex-direction:column;gap:24px;flex:1}.footer-info-wrap[data-v-6e4a5290]{position:relative;min-height:22px;margin-top:24px}.bottom-nav[data-v-779763e5]{position:relative;width:100%;height:132px;margin-top:24px;border-radius:30px;background:#fff;border:1px solid #E7EDF8;box-shadow:0 12px 28px rgba(11,23,48,.08);display:flex;align-items:center;justify-content:space-between;padding:18px 22px;box-sizing:border-box}.nav-item[data-v-779763e5]{flex:1;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.nav-icon-box[data-v-779763e5]{width:46px;height:46px;border-radius:16px;display:flex;align-items:center;justify-content:center}.nav-icon-box.active[data-v-779763e5]{background:#2f6bff;box-shadow:0 8px 18px rgba(47,107,255,.15)}.nav-icon[data-v-779763e5]{width:26px;height:26px;display:block;filter:brightness(0) saturate(100%) invert(58%) sepia(12%) saturate(514%) hue-rotate(184deg) brightness(91%) contrast(88%)}.nav-text[data-v-779763e5]{font-family:Inter,sans-serif;font-size:14px;font-weight:600;color:#8a97b2}.nav-item.active .nav-text[data-v-779763e5]{color:#2f6bff;font-weight:700}.nav-item.active .nav-icon[data-v-779763e5]{filter:brightness(0) saturate(100%) invert(100%)}.surface-card[data-v-3df22efb]{border:1px solid #E4ECF8;background:linear-gradient(180deg,#fff,#f8fbff);box-shadow:0 12px 28px rgba(11,23,48,.06)}.records-page[data-v-3df22efb]{position:relative;flex:1;display:flex;flex-direction:column;gap:24px;height:100%}.pressable-box[data-v-3df22efb]{cursor:pointer}.filter-card[data-v-3df22efb]{width:100%;border-radius:30px;padding:24px;box-sizing:border-box;display:flex;flex-direction:column;gap:16px}.field-grid[data-v-3df22efb]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.field-row-bottom[data-v-3df22efb]{display:flex;gap:16px;align-items:flex-end}.field-col[data-v-3df22efb]{display:flex;flex-direction:column;gap:10px}.full-width[data-v-3df22efb]{flex:1}.empty-col[data-v-3df22efb]{min-height:1px}.field-label-row[data-v-3df22efb]{display:flex;align-items:center;gap:8px}.field-label-icon[data-v-3df22efb]{width:16px;height:16px}.field-label[data-v-3df22efb]{font-family:Inter,sans-serif;font-size:14px;font-weight:700;line-height:1.2;color:#1f2a44}.field-box[data-v-3df22efb]{width:100%;height:50px;border-radius:18px;padding:0 16px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid #E3EBF8;box-shadow:0 4px 10px rgba(11,23,48,.03)}.field-value-text[data-v-3df22efb],.field-placeholder[data-v-3df22efb]{font-family:Inter,sans-serif;font-size:14px;font-weight:600;line-height:1.2}.field-value-text[data-v-3df22efb]{color:#4a5672}.field-placeholder[data-v-3df22efb]{color:#7b88a8}.field-native-input[data-v-3df22efb]{width:100%;height:100%;font-family:Inter,sans-serif;font-size:14px;font-weight:600;color:#4a5672}.field-native-placeholder[data-v-3df22efb]{color:#7b88a8}.field-arrow[data-v-3df22efb]{width:16px;height:16px;flex-shrink:0}.date-range[data-v-3df22efb]{display:flex;align-items:center;gap:10px}.date-dash[data-v-3df22efb]{font-family:Inter,sans-serif;font-size:16px;font-weight:600;color:#7b88a8}.toolbar-actions[data-v-3df22efb]{display:flex;gap:16px}.reset-btn[data-v-3df22efb],.search-btn[data-v-3df22efb]{height:46px;border-radius:18px;display:flex;align-items:center;justify-content:center;gap:8px;box-sizing:border-box}.reset-btn[data-v-3df22efb]{padding:0 20px;background:#f4f7fd;border:1px solid #E3EBF8}.search-btn[data-v-3df22efb]{padding:0 22px;background:linear-gradient(180deg,#4f87ff,#2f6bff);box-shadow:0 8px 18px rgba(47,107,255,.14)}.btn-icon[data-v-3df22efb]{width:18px;height:18px}.reset-btn-text[data-v-3df22efb],.search-btn-text[data-v-3df22efb]{font-family:Inter,sans-serif;font-size:14px;font-weight:700;line-height:1.2}.reset-btn-text[data-v-3df22efb]{color:#7b88a8}.search-btn-text[data-v-3df22efb]{color:#fff}.records-panel[data-v-3df22efb]{flex:1;width:100%;border-radius:30px;padding:20px;box-sizing:border-box;display:flex;flex-direction:column;gap:14px;overflow:hidden}.records-head[data-v-3df22efb]{height:56px;display:flex;align-items:center;justify-content:space-between}.records-title-wrap[data-v-3df22efb]{display:flex;align-items:center;gap:10px}.records-title-icon-box[data-v-3df22efb]{width:36px;height:36px;border-radius:14px;background:#eaf1ff;display:flex;align-items:center;justify-content:center}.records-title-icon[data-v-3df22efb]{width:18px;height:18px}.records-title[data-v-3df22efb]{font-family:Inter,sans-serif;font-size:18px;font-weight:700;line-height:1.2;color:#1f2a44}.export-btn[data-v-3df22efb]{height:42px;padding:0 16px;border-radius:18px;border:1px solid #DCE7FA;background:#f3f7fe;display:flex;align-items:center;gap:8px}.export-btn-icon[data-v-3df22efb]{width:18px;height:18px}.export-btn-text[data-v-3df22efb]{font-family:Inter,sans-serif;font-size:14px;font-weight:500;color:#2e6cff}.records-scroll-container[data-v-3df22efb]{flex:1;height:0;width:100%}.records-scroll-container[data-v-3df22efb] ::-webkit-scrollbar{width:6px;background-color:transparent}.records-scroll-container[data-v-3df22efb] ::-webkit-scrollbar-thumb{background-color:#b8c9e8;border-radius:3px}.records-scroll-container[data-v-3df22efb] ::-webkit-scrollbar-track{background-color:transparent}.records-grid[data-v-3df22efb]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;padding:0 24px 12px 0}.record-item[data-v-3df22efb]{position:relative;min-height:258px;border-radius:26px;padding:20px 22px 18px;box-sizing:border-box;overflow:hidden;border:1px solid #E7F0FF;background:linear-gradient(180deg,#fff,#fafcff);box-shadow:0 10px 24px rgba(11,23,48,.06)}.record-item.green[data-v-3df22efb]{border-color:#d8eedf;background:linear-gradient(180deg,#fff,#fbfefc)}.record-item.blue[data-v-3df22efb]{border-color:#d9e7ff}.record-item.orange[data-v-3df22efb]{border-color:#f6e7d9;background:linear-gradient(180deg,#fff,#fff9f5)}.record-item.purple[data-v-3df22efb]{border-color:#ece9ff;background:linear-gradient(180deg,#fff,#fbfaff)}.record-top-bg[data-v-3df22efb]{position:absolute;left:0;top:0;width:100%;height:96px;background:rgba(43,182,115,.1)}.record-item.blue .record-top-bg[data-v-3df22efb]{background:rgba(47,107,255,.11)}.record-item.orange .record-top-bg[data-v-3df22efb]{background:rgba(255,138,61,.12)}.record-item.purple .record-top-bg[data-v-3df22efb]{background:rgba(110,106,248,.12)}.record-side-bar[data-v-3df22efb]{position:absolute;left:0;top:0;width:6px;height:100%;border-radius:3px}.record-side-bar.green[data-v-3df22efb]{background:#2bb673}.record-side-bar.blue[data-v-3df22efb]{background:#2f6bff}.record-side-bar.orange[data-v-3df22efb]{background:#ff8a3d}.record-side-bar.purple[data-v-3df22efb]{background:#6e6af8}.record-head-row[data-v-3df22efb],.record-fields[data-v-3df22efb]{position:relative;z-index:1}.record-head-row[data-v-3df22efb]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.record-user[data-v-3df22efb]{display:flex;align-items:center;gap:12px}.avatar-box[data-v-3df22efb]{width:44px;height:44px;border-radius:22px;display:flex;align-items:center;justify-content:center}.avatar-box.green[data-v-3df22efb]{background:#2bb673}.avatar-box.blue[data-v-3df22efb]{background:#2f6bff}.avatar-box.orange[data-v-3df22efb]{background:#ff8a3d}.avatar-box.purple[data-v-3df22efb]{background:#6e6af8}.avatar-text[data-v-3df22efb]{font-family:Inter,sans-serif;font-size:18px;font-weight:800;color:#fff}.record-user-copy[data-v-3df22efb]{display:flex;flex-direction:column;gap:4px}.record-name[data-v-3df22efb]{font-family:Inter,sans-serif;font-size:22px;font-weight:700;line-height:1.2;color:#1f2a44}.record-id[data-v-3df22efb]{font-family:Inter,sans-serif;font-size:14px;font-weight:600;line-height:1.2;color:#7b88a8}.record-status[data-v-3df22efb]{display:flex;align-items:center;gap:8px}.status-icon[data-v-3df22efb]{width:14px;height:14px;flex-shrink:0}.status-text[data-v-3df22efb]{font-family:Inter,sans-serif;font-size:12px;font-weight:700;line-height:1.2}.status-text.green[data-v-3df22efb]{color:#2bb673}.status-text.blue[data-v-3df22efb]{color:#2f6bff}.status-text.orange[data-v-3df22efb]{color:#ff8a3d}.status-text.purple[data-v-3df22efb]{color:#6e6af8}.record-fields[data-v-3df22efb]{display:flex;flex-direction:column;gap:10px;padding-top:26px}.record-field[data-v-3df22efb]{display:flex;align-items:center;gap:10px}.record-field-bottom[data-v-3df22efb]{justify-content:space-between;gap:16px}.record-field-left[data-v-3df22efb]{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.record-field-icon[data-v-3df22efb]{width:16px;height:16px;flex-shrink:0}.record-field-value[data-v-3df22efb]{font-family:Inter,sans-serif;font-size:13px;font-weight:600;line-height:1.2;color:#4a5672}.detail-chip[data-v-3df22efb]{min-width:54px;height:28px;padding:0 10px;border-radius:14px;background:#eef2fa;display:flex;align-items:center;justify-content:center;gap:4px;flex-shrink:0;box-sizing:border-box}.detail-chip-text[data-v-3df22efb]{font-family:Inter,sans-serif;font-size:12px;font-weight:600;line-height:1;color:#6a7b98;white-space:nowrap}.detail-chip-arrow[data-v-3df22efb]{width:12px;height:12px}.overlay-mask[data-v-3df22efb]{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(15,27,52,.38);z-index:99;border-radius:0}.overlay-sheet[data-v-3df22efb]{position:fixed;left:0;right:0;bottom:0;width:100%;border-radius:32px 32px 0 0;background:#fff;box-shadow:0 18px 42px rgba(11,23,48,.18);z-index:100;box-sizing:border-box}.selector-sheet[data-v-3df22efb],.reason-sheet[data-v-3df22efb],.date-sheet[data-v-3df22efb]{bottom:0;padding:24px}.sheet-head[data-v-3df22efb]{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.sheet-title[data-v-3df22efb]{font-family:Inter,sans-serif;font-size:24px;font-weight:700;line-height:1.2;color:#1f2a44}.sheet-close[data-v-3df22efb]{font-family:Inter,sans-serif;font-size:16px;font-weight:600;color:#7b88a8}.sheet-confirm-btn[data-v-3df22efb]{height:52px;border-radius:14px;padding:0 24px;display:flex;align-items:center;justify-content:center;box-sizing:border-box;background:linear-gradient(180deg,#4f87ff,#2f6bff);box-shadow:0 10px 22px rgba(47,107,255,.18)}.sheet-confirm-text[data-v-3df22efb]{font-family:Inter,sans-serif;font-size:16px;font-weight:700;line-height:1.2;color:#fff}.tree-layout[data-v-3df22efb]{display:flex;gap:16px;height:420px;margin-bottom:18px}.tree-column[data-v-3df22efb]{border-radius:24px;border:1px solid #E6EDF8;background:#f8fbff;overflow:hidden}.tree-parent-column[data-v-3df22efb]{width:324px}.tree-child-column[data-v-3df22efb]{flex:1;background:#fff}.tree-parent-row[data-v-3df22efb],.tree-child-row[data-v-3df22efb]{min-height:70px;padding:0 22px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #EEF3FB}.tree-parent-row-active[data-v-3df22efb]{background:#edf4ff}.tree-child-row-active[data-v-3df22efb]{background:rgba(47,107,255,.08)}.tree-parent-text[data-v-3df22efb],.tree-child-text[data-v-3df22efb]{font-family:Inter,sans-serif;font-size:18px;font-weight:600;color:#4a5672}.tree-parent-text-active[data-v-3df22efb],.tree-child-text-active[data-v-3df22efb]{color:#2f6bff;font-weight:700}.tree-arrow[data-v-3df22efb]{width:16px;height:16px}.reason-list[data-v-3df22efb]{display:flex;flex-direction:column;gap:12px;margin-bottom:32px}.reason-item[data-v-3df22efb]{height:72px;border-radius:0;border:2px solid transparent;background:#eef2f8;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.reason-item-active[data-v-3df22efb]{border-color:#3e7bff;background:#fff}.reason-item-text[data-v-3df22efb]{font-family:Inter,sans-serif;font-size:18px;font-weight:600;color:#a7afbc}.reason-item-text-active[data-v-3df22efb]{color:#2f6bff;font-weight:700}.reason-sheet[data-v-3df22efb]{bottom:0;padding:24px 34px 28px;border-radius:34px 34px 0 0}.reason-sheet-head[data-v-3df22efb]{height:56px;display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}.reason-close-btn[data-v-3df22efb],.reason-head-placeholder[data-v-3df22efb]{width:34px;height:34px;flex-shrink:0}.reason-close-btn[data-v-3df22efb]{position:relative;border-radius:50%;border:2px solid #6B6B6B;box-sizing:border-box}.reason-close-line[data-v-3df22efb]{position:absolute;left:8px;top:14px;width:14px;height:2px;background:#6b6b6b;transform:rotate(45deg)}.reason-close-line-reverse[data-v-3df22efb]{transform:rotate(-45deg)}.reason-sheet-title[data-v-3df22efb]{font-family:Inter,sans-serif;font-size:18px;font-weight:700;line-height:1.2;color:#1f2a44}.reason-submit-btn[data-v-3df22efb]{width:100%;height:64px;border-radius:32px;background:linear-gradient(90deg,#1674ff,#1f6fff);box-shadow:0 12px 24px rgba(31,111,255,.18);display:flex;align-items:center;justify-content:center}.reason-submit-text[data-v-3df22efb]{font-family:Inter,sans-serif;font-size:18px;font-weight:700;line-height:1.2;color:#fff}.date-tab-row[data-v-3df22efb]{display:flex;gap:14px;margin-bottom:18px}.date-tab[data-v-3df22efb]{flex:1;border-radius:20px;border:1px solid #E3EBF8;background:#f8fbff;padding:14px 18px;box-sizing:border-box;display:flex;flex-direction:column;gap:6px}.date-tab-active[data-v-3df22efb]{border-color:#bcd4ff;background:#eef5ff}.date-tab-text[data-v-3df22efb]{font-family:Inter,sans-serif;font-size:14px;font-weight:700;color:#7b88a8}.date-tab-value[data-v-3df22efb]{font-family:Inter,sans-serif;font-size:20px;font-weight:700;color:#1f2a44}.date-picker-view[data-v-3df22efb]{width:100%;height:280px;margin-bottom:18px}.picker-item[data-v-3df22efb]{height:56px;line-height:56px;text-align:center;font-family:Inter,sans-serif;font-size:22px;font-weight:700;color:#1f2a44}.date-overlay-mask[data-v-3df22efb]{background:rgba(31,42,68,.6)}.admin-home-date-sheet[data-v-3df22efb]{height:600px;padding:0;border-radius:28px 28px 0 0;display:flex;flex-direction:column}.admin-home-date-sheet .sheet-head[data-v-3df22efb]{height:72px;padding:0 32px;display:flex;align-items:center;justify-content:space-between;margin-bottom:0;border-bottom:1px solid #EEF2FA;box-sizing:border-box}.admin-home-date-sheet .sheet-title[data-v-3df22efb]{font-family:Inter,sans-serif;font-size:20px;font-weight:700;color:#1f2a44}.admin-home-date-sheet .sheet-close[data-v-3df22efb]{font-family:Inter,sans-serif;font-size:16px;font-weight:600;color:#7b88a8;padding:10px}.admin-home-date-sheet .date-tab-row[data-v-3df22efb]{display:flex;padding:20px 32px 10px;gap:24px;margin-bottom:0}.admin-home-date-sheet .date-tab[data-v-3df22efb]{flex:1;height:64px;border-radius:12px;border:1px solid #EEF2FA;display:flex;flex-direction:column;justify-content:center;padding:0 16px;gap:4px;background:#fff;box-sizing:border-box}.admin-home-date-sheet .date-tab-active[data-v-3df22efb]{border-color:#2f6bff;background:#f4f8ff}.admin-home-date-sheet .date-tab-text[data-v-3df22efb]{font-family:Inter,sans-serif;font-size:13px;font-weight:600;color:#7b88a8}.admin-home-date-sheet .date-tab-active .date-tab-text[data-v-3df22efb]{color:#2f6bff}.admin-home-date-sheet .date-tab-value[data-v-3df22efb]{font-family:Inter,sans-serif;font-size:16px;font-weight:700;color:#1f2a44}.admin-home-date-sheet .date-picker-view[data-v-3df22efb]{flex:1;width:100%;height:auto;margin-bottom:0}.admin-home-date-sheet .picker-item[data-v-3df22efb]{display:flex;align-items:center;justify-content:center;height:34px;line-height:normal;text-align:center;font-family:Inter,sans-serif;font-size:18px;font-weight:600;color:#1f2a44}.admin-home-date-sheet .sheet-confirm-btn[data-v-3df22efb]{margin:16px 32px 32px;height:52px;border-radius:14px;background:#2f6bff;display:flex;align-items:center;justify-content:center;box-shadow:none}.admin-home-date-sheet .sheet-confirm-text[data-v-3df22efb]{font-family:Inter,sans-serif;font-size:16px;font-weight:700;color:#fff}.empty-state[data-v-3df22efb]{display:flex;align-items:center;justify-content:center;padding:60px 0}.empty-text[data-v-3df22efb]{font-family:Inter,sans-serif;font-size:16px;color:#7b88a8}.config-page[data-v-4f643e15]{position:relative;width:100%;flex:1}.config-main-card[data-v-4f643e15]{width:100%;flex:1;border-radius:38px;border:1px solid #E4ECF8;background:#fff;box-shadow:0 16px 36px rgba(11,23,48,.07);padding:26px 24px 30px;box-sizing:border-box;display:flex;flex-direction:column;gap:18px}.page-title-row[data-v-4f643e15],.section-head[data-v-4f643e15],.more-left[data-v-4f643e15]{display:flex;align-items:center;gap:12px}.page-title-icon[data-v-4f643e15]{width:22px;height:22px}.page-title-text[data-v-4f643e15]{font-family:Inter,sans-serif;font-size:28px;font-weight:700;color:#1f2a44}.section-card[data-v-4f643e15],.more-card[data-v-4f643e15]{border-radius:24px;border:1px solid #E8EEF8;background:linear-gradient(180deg,#f8fbff,#f4f8fd);padding:22px;box-sizing:border-box}.section-card[data-v-4f643e15]{display:flex;flex-direction:column;gap:18px}.section-icon[data-v-4f643e15]{width:18px;height:18px}.section-title[data-v-4f643e15],.more-text[data-v-4f643e15]{font-family:Inter,sans-serif;font-size:20px;font-weight:700;color:#1f2a44}.ip-stack[data-v-4f643e15]{display:flex;flex-direction:column;gap:14px}.ip-item[data-v-4f643e15]{display:flex;flex-direction:column;gap:8px}.item-label[data-v-4f643e15],.version-label[data-v-4f643e15]{font-family:Inter,sans-serif;font-size:14px;font-weight:600;color:#7b88a8}.version-value[data-v-4f643e15]{font-family:Inter,sans-serif;font-size:14px;font-weight:700;color:#1f2a44}.ip-input[data-v-4f643e15]{width:100%;height:44px;padding:0 14px;box-sizing:border-box;border-radius:12px;border:1px solid #DCE6F5;background:#fff;font-family:Inter,sans-serif;font-size:14px;font-weight:700;color:#1f2a44}.ip-placeholder[data-v-4f643e15]{color:#a8b3c8;font-size:14px;font-weight:600}.version-row[data-v-4f643e15],.update-copy[data-v-4f643e15],.sync-copy[data-v-4f643e15]{display:flex;align-items:center;gap:10px}.inline-icon[data-v-4f643e15]{width:18px;height:18px;flex-shrink:0}.update-banner[data-v-4f643e15],.sync-banner[data-v-4f643e15]{min-height:80px;border-radius:22px;padding:18px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:18px}.update-banner[data-v-4f643e15]{border:1px solid #DFE9FC;background:linear-gradient(180deg,#f6faff,#eef4fe)}.sync-banner[data-v-4f643e15]{border:1px solid #D8EEDF;background:linear-gradient(180deg,#f4fbf7,#edf8f1)}.update-text[data-v-4f643e15],.sync-text[data-v-4f643e15]{font-family:Inter,sans-serif;font-size:14px;font-weight:600;line-height:1.2}.update-text[data-v-4f643e15]{color:#2f6bff}.sync-text[data-v-4f643e15]{color:#2bb673}.update-btn[data-v-4f643e15],.sync-btn[data-v-4f643e15]{height:42px;padding:0 16px;border-radius:18px;display:flex;align-items:center;justify-content:center;gap:8px;flex-shrink:0}.update-btn[data-v-4f643e15]{background:linear-gradient(180deg,#78a6ff,#2f6bff);box-shadow:0 10px 22px rgba(47,107,255,.2)}.sync-btn[data-v-4f643e15]{background:linear-gradient(180deg,#59d793,#21b868);box-shadow:0 10px 22px rgba(33,184,104,.2)}.update-btn-text[data-v-4f643e15],.sync-btn-text[data-v-4f643e15],.save-btn-text[data-v-4f643e15]{font-family:Inter,sans-serif;font-size:16px;font-weight:700;color:#fff}.banner-btn-icon[data-v-4f643e15]{width:18px;height:18px;flex-shrink:0}.sync-note[data-v-4f643e15]{font-family:Inter,sans-serif;font-size:12px;font-weight:600;line-height:1.2;color:#7b88a8}.more-card[data-v-4f643e15]{display:flex;align-items:center;justify-content:space-between}.more-arrow[data-v-4f643e15]{width:20px;height:20px}.save-row[data-v-4f643e15]{display:flex;justify-content:center}.save-btn[data-v-4f643e15]{width:420px;height:58px;border-radius:18px;background:linear-gradient(180deg,#4a82ff,#2f6bff);box-shadow:0 10px 22px rgba(47,107,255,.18);display:flex;align-items:center;justify-content:center;gap:10px}.save-icon[data-v-4f643e15]{width:20px;height:20px}.overlay-mask[data-v-4f643e15]{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(31,42,68,.6);z-index:9999}.more-dialog[data-v-4f643e15]{position:fixed;left:170px;top:760px;width:740px;border-radius:28px;background:#fff;padding:52px 36px;box-sizing:border-box;display:flex;flex-direction:column;gap:26px;box-shadow:0 18px 40px rgba(11,23,48,.12);z-index:10000}.dialog-head[data-v-4f643e15]{display:flex;align-items:center;justify-content:space-between}.dialog-placeholder[data-v-4f643e15],.dialog-close-btn[data-v-4f643e15]{width:40px;height:40px;display:flex;align-items:center;justify-content:center}.dialog-title[data-v-4f643e15]{font-family:Inter,sans-serif;font-size:32px;font-weight:700;color:#1f2a44}.dialog-close-icon[data-v-4f643e15]{width:24px;height:24px}.dialog-action-item[data-v-4f643e15]{width:100%;height:96px;border-radius:20px;background:#f8faff;padding:0 22px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between}.dialog-action-left[data-v-4f643e15]{display:flex;align-items:center;gap:14px}.dialog-action-icon-box[data-v-4f643e15]{width:40px;height:40px;border-radius:14px;background:#eaf1ff;display:flex;align-items:center;justify-content:center}.dialog-action-icon[data-v-4f643e15]{width:20px;height:20px}.dialog-action-text[data-v-4f643e15]{font-family:Inter,sans-serif;font-size:22px;font-weight:700;color:#1f2a44}.dialog-action-arrow[data-v-4f643e15]{width:24px;height:24px}.logout-dialog[data-v-4f643e15]{position:fixed;left:165px;top:811px;width:750px;border-radius:28px;background:#fff;padding:52px 40px;box-sizing:border-box;display:flex;flex-direction:column;gap:44px;box-shadow:0 18px 40px rgba(11,23,48,.12);z-index:10001}.logout-hold-dialog[data-v-4f643e15]{position:fixed;left:165px;top:720px;width:750px;padding:36px 40px 52px;border-radius:28px;background:#fff;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;z-index:10000}.dialog-head-plain[data-v-4f643e15]{width:100%;justify-content:flex-end}.logout-copy[data-v-4f643e15]{display:flex;flex-direction:column;align-items:center;gap:14px}.logout-title[data-v-4f643e15]{font-family:Inter,sans-serif;font-size:34px;font-weight:700;color:#1f2a44}.logout-desc[data-v-4f643e15]{font-family:Inter,sans-serif;font-size:20px;font-weight:500;line-height:1.3;color:#7b88a8;text-align:center}.logout-actions[data-v-4f643e15]{display:flex;align-items:center;justify-content:center;gap:28px}.ghost-btn[data-v-4f643e15],.confirm-btn[data-v-4f643e15]{width:220px;height:56px;border-radius:18px;display:flex;align-items:center;justify-content:center}.ghost-btn[data-v-4f643e15]{background:#f5f5f5}.confirm-btn[data-v-4f643e15]{background:#2f6bff}.ghost-btn-text[data-v-4f643e15],.confirm-btn-text[data-v-4f643e15]{font-family:Inter,sans-serif;font-size:20px;font-weight:700}.ghost-btn-text[data-v-4f643e15]{color:#666}.confirm-btn-text[data-v-4f643e15]{color:#fff}.logout-hold-copy[data-v-4f643e15]{width:100%;margin-top:18px;display:flex;justify-content:center}.logout-hold-title[data-v-4f643e15]{font-family:Inter,sans-serif;font-size:34px;font-weight:700;color:#1f2a44;text-align:center}.logout-hold-confirm-btn[data-v-4f643e15]{width:220px;height:72px;margin-top:72px;border-radius:20px;background:#2f6bff;display:flex;align-items:center;justify-content:center}.logout-hold-confirm-text[data-v-4f643e15]{font-family:Inter,sans-serif;font-size:24px;font-weight:700;color:#fff}.surface-card[data-v-6cc359fb]{border:1px solid #E4ECFA;background:#fff;box-shadow:0 12px 28px rgba(11,23,48,.07)}.home-tab-panel[data-v-6cc359fb]{display:flex;flex-direction:column;gap:24px}.toolbar-card[data-v-6cc359fb]{width:100%;border-radius:30px;padding:20px;box-sizing:border-box;display:flex;flex-direction:column;gap:16px;border-color:#e7edf8}.segmented[data-v-6cc359fb]{width:100%;height:52px;padding:5px;border-radius:24px;box-sizing:border-box;display:flex;gap:6px;border:1px solid #E0E8F6;background:linear-gradient(180deg,#f7faff,#eef3fc);box-shadow:0 8px 18px rgba(11,23,48,.04)}.segment-item[data-v-6cc359fb]{flex:1;height:100%;border-radius:20px;border:1px solid #E4EBF7;background:#fff;display:flex;align-items:center;justify-content:center;box-sizing:border-box;cursor:pointer}.segment-item.active[data-v-6cc359fb]{border-color:transparent;background:linear-gradient(180deg,#3e7bff,#2f6bff);box-shadow:0 6px 14px rgba(47,107,255,.15)}.segment-text[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:15px;font-weight:700;line-height:1.2;color:#6d7f9b}.active-text[data-v-6cc359fb]{font-weight:800;color:#fff}.range-row[data-v-6cc359fb]{display:flex;align-items:center;gap:14px}.date-range[data-v-6cc359fb]{flex:1;display:flex;align-items:center;gap:12px}.date-picker-trigger[data-v-6cc359fb]{flex:1;display:flex}.date-field[data-v-6cc359fb]{flex:1;height:44px;padding:0 16px;box-sizing:border-box;border-radius:16px;border:1px solid #EEF2FA;background:#fff;display:flex;align-items:center;gap:10px}.date-icon[data-v-6cc359fb]{width:16px;height:16px}.date-text[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:14px;font-weight:400;line-height:1.2;color:#7b88a8}.date-text-value[data-v-6cc359fb]{color:#34425d;font-weight:700}.date-separator[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:15px;font-weight:700;line-height:1.2;color:#9aa8c2}.apply-btn[data-v-6cc359fb]{width:144px;height:44px;border-radius:18px;background:#2f6bff;display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer}.apply-btn-text[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:16px;font-weight:700;line-height:1.2;color:#fff}.module-row[data-v-6cc359fb]{display:flex;gap:24px}.module-card[data-v-6cc359fb]{position:relative;flex:1;height:252px;padding:22px;box-sizing:border-box;border-radius:30px;overflow:hidden;border:1px solid rgba(255,255,255,.4);box-shadow:0 14px 28px rgba(11,23,48,.14)}.online-module[data-v-6cc359fb]{background:linear-gradient(180deg,#eff5ff,#d8e7ff)}.onsite-module[data-v-6cc359fb]{background:linear-gradient(180deg,#eef9f2,#d7f3e4)}.module-glow[data-v-6cc359fb]{position:absolute;border-radius:50%;pointer-events:none}.module-glow.primary[data-v-6cc359fb]{top:-36px;right:-18px;width:220px;height:220px}.online-glow[data-v-6cc359fb]{background:rgba(47,107,255,.14)}.onsite-glow[data-v-6cc359fb]{background:rgba(43,182,115,.14)}.module-glow.secondary[data-v-6cc359fb]{left:-48px;top:78px;width:180px;height:180px;background:rgba(255,255,255,.22)}.module-bg-icon[data-v-6cc359fb]{position:absolute;right:38px;top:42px;width:110px;height:110px;z-index:0}.module-head[data-v-6cc359fb],.module-panel-row[data-v-6cc359fb]{position:relative;z-index:1}.module-head[data-v-6cc359fb]{margin-bottom:18px}.module-title-group[data-v-6cc359fb]{display:flex;align-items:center;gap:12px}.module-icon-box[data-v-6cc359fb]{width:38px;height:38px;border-radius:19px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.blue-box[data-v-6cc359fb]{background:#2f6bff}.green-box[data-v-6cc359fb]{background:#2bb673}.module-icon[data-v-6cc359fb]{width:22px;height:22px}.module-copy[data-v-6cc359fb]{display:flex;flex-direction:column;gap:4px}.module-title[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:27px;font-weight:800;line-height:1.1;color:#16315f}.module-subtitle[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:13px;font-weight:600;line-height:1.2;color:#496389}.module-panel-row[data-v-6cc359fb]{display:flex;gap:14px}.module-panel[data-v-6cc359fb]{flex:1;height:126px;padding:20px 18px 18px;box-sizing:border-box;border-radius:24px;display:flex;flex-direction:column;justify-content:space-between}.panel-blue[data-v-6cc359fb]{background:#2f6bff;border:1px solid #81A8FF;box-shadow:0 8px 18px rgba(47,107,255,.2)}.panel-deep-blue[data-v-6cc359fb]{background:#1946ba;border:1px solid #6F95F3;box-shadow:0 8px 18px rgba(25,70,186,.2)}.panel-green[data-v-6cc359fb]{background:#2bb673;border:1px solid #7ED9A6;box-shadow:0 8px 18px rgba(43,182,115,.2)}.panel-deep-green[data-v-6cc359fb]{background:#178d58;border:1px solid #68C690;box-shadow:0 8px 18px rgba(23,141,88,.2)}.panel-tag[data-v-6cc359fb]{display:flex;align-items:center;gap:8px}.panel-tag-icon-box[data-v-6cc359fb]{width:26px;height:26px;border-radius:13px;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;flex-shrink:0}.panel-tag-icon[data-v-6cc359fb]{width:14px;height:14px}.panel-tag-text[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:13px;font-weight:700;line-height:1.2;color:#eef4ff}.panel-value-row[data-v-6cc359fb]{display:flex;align-items:flex-end;gap:6px}.panel-value[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:48px;font-weight:800;line-height:1;color:#fff}.panel-unit[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:15px;font-weight:700;line-height:1.2}.light-unit[data-v-6cc359fb]{color:#e4eeff}.summary-row[data-v-6cc359fb]{display:flex;gap:18px}.summary-card[data-v-6cc359fb]{flex:1;height:176px;padding:18px 18px 16px;box-sizing:border-box;border-radius:24px;display:flex;flex-direction:column;justify-content:space-between}.summary-blue[data-v-6cc359fb]{border-color:#d7e7ff;background:linear-gradient(180deg,#f6faff,#edf5ff 72%,#fbfdff);box-shadow:0 14px 26px rgba(47,107,255,.06)}.summary-green[data-v-6cc359fb]{border-color:#d5eedf;background:linear-gradient(180deg,#f6fcf8,#edf8f1);box-shadow:0 10px 24px rgba(43,182,115,.07)}.summary-orange[data-v-6cc359fb]{border-color:#f6e1c3;background:linear-gradient(180deg,#fff9f2,#fff1e0 72%,#fffdfc);box-shadow:0 14px 26px rgba(235,162,69,.07)}.summary-top[data-v-6cc359fb]{display:flex;align-items:center;justify-content:space-between}.summary-title-row[data-v-6cc359fb]{display:flex;align-items:center;gap:10px}.summary-dot[data-v-6cc359fb]{width:10px;height:10px;border-radius:50%}.stay-dot[data-v-6cc359fb]{background:#2f6bff}.checkin-dot[data-v-6cc359fb]{background:#2bb673}.overdue-dot[data-v-6cc359fb]{background:#ff8a3d}.summary-title[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:17px;font-weight:800;line-height:1.2}.stay-title[data-v-6cc359fb]{color:#2e6cff}.checkin-title[data-v-6cc359fb]{color:#2bb673}.overdue-title[data-v-6cc359fb]{color:#ff8a3d}.summary-accent[data-v-6cc359fb]{width:28px;height:28px;border-radius:10px}.stay-accent[data-v-6cc359fb]{background:#eaf1ff}.checkin-accent[data-v-6cc359fb]{background:#e7f7ee}.overdue-accent[data-v-6cc359fb]{background:#fff0e4}.summary-value-row[data-v-6cc359fb]{display:flex;align-items:flex-end;gap:6px}.summary-value[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:52px;font-weight:800;line-height:1;color:#16233f}.summary-unit[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:17px;font-weight:600;line-height:1.2;color:#7483a1}.summary-foot[data-v-6cc359fb]{display:flex;align-items:center;gap:6px;height:18px}.summary-foot-icon[data-v-6cc359fb]{width:13px;height:13px}.summary-foot-text[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:13px;font-weight:700;line-height:1.2}.stay-foot[data-v-6cc359fb],.stay-foot .summary-foot-text[data-v-6cc359fb]{color:#627493}.checkin-foot[data-v-6cc359fb],.checkin-foot .summary-foot-text[data-v-6cc359fb]{color:#5b7f69}.overdue-foot[data-v-6cc359fb],.overdue-foot .summary-foot-text[data-v-6cc359fb]{color:#9a6a45}.trend-card[data-v-6cc359fb]{width:100%;border-radius:30px;padding:24px;box-sizing:border-box;display:flex;flex-direction:column;gap:18px}.trend-header[data-v-6cc359fb]{display:flex;align-items:center;justify-content:space-between;gap:12px}.trend-title-group[data-v-6cc359fb]{display:flex;align-items:center;gap:12px}.trend-icon-box[data-v-6cc359fb]{width:42px;height:42px;border-radius:16px;background:#eaf1ff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.trend-icon[data-v-6cc359fb]{width:18px;height:18px}.trend-copy[data-v-6cc359fb]{display:flex;flex-direction:column;gap:4px}.trend-title[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:22px;font-weight:800;line-height:1.2;color:#183463}.trend-subtitle[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:13px;font-weight:600;line-height:1.2;color:#6a7f9f}.trend-legend-group[data-v-6cc359fb]{display:flex;align-items:center;gap:18px;flex-wrap:wrap;justify-content:flex-end}.trend-legend[data-v-6cc359fb]{display:flex;align-items:center;gap:8px}.legend-dot[data-v-6cc359fb]{width:10px;height:10px;border-radius:50%}.online-dot[data-v-6cc359fb]{background:#5b8dff}.onsite-dot[data-v-6cc359fb]{background:#7a6bff}.legend-text[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:13px;font-weight:700;line-height:1.2}.online-legend-text[data-v-6cc359fb]{color:#2f6bff}.onsite-legend-text[data-v-6cc359fb]{color:#6e6af8}.chart-panel[data-v-6cc359fb]{position:relative;height:452px;padding:22px 20px 20px;box-sizing:border-box;border-radius:24px;background:linear-gradient(180deg,#101b3a,#0a1228);overflow:hidden}.chart-grid-line[data-v-6cc359fb]{position:absolute;left:20px;width:960px;height:1px;background:rgba(255,255,255,.09)}.line-1[data-v-6cc359fb]{top:104px}.line-2[data-v-6cc359fb]{top:188px}.line-3[data-v-6cc359fb]{top:272px}.line-4[data-v-6cc359fb]{top:356px}.chart-panel-head[data-v-6cc359fb]{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.chart-panel-caption[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:12px;font-weight:700;line-height:1.2;color:#bfd2f7}.chart-panel-unit[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:12px;font-weight:700;line-height:1.2;color:#8fa6d2}.chart-scroll-view[data-v-6cc359fb]{position:relative;z-index:1;width:100%;height:380px}[data-v-6cc359fb] .chart-scroll-view ::-webkit-scrollbar{width:4px;height:4px;background-color:transparent}[data-v-6cc359fb] .chart-scroll-view ::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgba(255,255,255,.2)}[data-v-6cc359fb] .chart-scroll-view ::-webkit-scrollbar-track{background-color:rgba(255,255,255,.05);border-radius:4px}.chart-columns[data-v-6cc359fb]{display:flex;align-items:flex-end;justify-content:center;gap:22px;height:370px;padding-bottom:10px;min-width:100%}.chart-empty-state[data-v-6cc359fb]{position:relative;z-index:1;height:370px;display:flex;align-items:center;justify-content:center}.chart-empty-text[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:14px;font-weight:600;line-height:1.2;color:#9db0d2}.chart-column[data-v-6cc359fb]{flex-shrink:0;min-width:60px;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:10px}.chart-value-pill[data-v-6cc359fb]{min-width:54px;height:24px;padding:0 8px;box-sizing:border-box;border-radius:12px;background:rgba(255,255,255,.07);display:flex;align-items:center;justify-content:center}.chart-value-pill-text[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:11px;font-weight:700;line-height:1.2;color:#dce8ff}.chart-bars[data-v-6cc359fb]{height:320px;display:flex;align-items:flex-end;gap:8px}.chart-bar[data-v-6cc359fb]{width:18px;border-radius:9px}.online-bar[data-v-6cc359fb]{background:#5b8dff}.onsite-bar[data-v-6cc359fb]{background:#7a6bff}.chart-label[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:12px;font-weight:700;line-height:1.2;color:#9db0d2}.trend-footnote[data-v-6cc359fb]{display:flex;justify-content:center}.trend-footnote-text[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:12px;font-weight:600;line-height:1.2;color:#90a2bf}.device-info-row[data-v-6cc359fb]{width:100%;display:flex;align-items:center;justify-content:space-between;gap:18px}.device-info-item[data-v-6cc359fb]{display:flex;align-items:center;gap:10px}.device-info-icon[data-v-6cc359fb]{width:22px;height:22px;flex-shrink:0}.device-info-text[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:14px;font-weight:600;line-height:1.2;color:#fff;white-space:nowrap}.overlay-mask[data-v-6cc359fb]{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(31,42,68,.6);z-index:99}.overlay-sheet[data-v-6cc359fb]{position:fixed;left:0;right:0;bottom:0;border-radius:28px 28px 0 0;background:#fff;z-index:100;display:flex;flex-direction:column}.date-sheet[data-v-6cc359fb]{height:600px}.sheet-head[data-v-6cc359fb]{height:72px;padding:0 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #EEF2FA}.sheet-title[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:20px;font-weight:700;color:#1f2a44}.sheet-close[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:16px;font-weight:600;color:#7b88a8;padding:10px}.date-tab-row[data-v-6cc359fb]{display:flex;padding:20px 32px 10px;gap:24px}.date-tab[data-v-6cc359fb]{flex:1;height:64px;border-radius:12px;border:1px solid #EEF2FA;display:flex;flex-direction:column;justify-content:center;padding:0 16px;gap:4px}.date-tab-active[data-v-6cc359fb]{border-color:#2f6bff;background:#f4f8ff}.date-tab-text[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:13px;font-weight:600;color:#7b88a8}.date-tab-active .date-tab-text[data-v-6cc359fb]{color:#2f6bff}.date-tab-value[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:16px;font-weight:700;color:#1f2a44}.date-picker-view[data-v-6cc359fb]{flex:1;width:100%}.picker-item[data-v-6cc359fb]{display:flex;align-items:center;justify-content:center;font-family:Inter,sans-serif;font-size:18px;font-weight:600;color:#1f2a44}.sheet-confirm-btn[data-v-6cc359fb]{margin:16px 32px 32px;height:52px;border-radius:14px;background:#2f6bff;display:flex;align-items:center;justify-content:center}.sheet-confirm-text[data-v-6cc359fb]{font-family:Inter,sans-serif;font-size:16px;font-weight:700;color:#fff} |
| | |
| | | .page-shell[data-v-6e4a5290]{position:relative;width:1080px;height:1920px;box-sizing:border-box;padding:30px 36px 40px;background:linear-gradient(180deg,#3b78ff,#2860e8,#163ebc);overflow:hidden;display:flex;flex-direction:column}.bg-glow[data-v-6e4a5290]{position:absolute;left:-128px;top:412px;width:300px;height:300px;border-radius:50%;background:rgba(127,177,255,.1);filter:blur(50px);pointer-events:none}.header-bar[data-v-6e4a5290]{position:relative;z-index:1;width:100%;height:88px;display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.title-zone[data-v-6e4a5290]{display:flex;align-items:center;gap:10px}.title-icon[data-v-6e4a5290]{width:22px;height:22px}.page-title[data-v-6e4a5290]{font-family:Inter,sans-serif;font-size:30px;font-weight:700;line-height:1.2;color:#fff}.back-btn[data-v-6e4a5290]{height:46px;padding:0 20px;border-radius:23px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.26);box-shadow:0 10px 22px rgba(15,46,133,.14);display:flex;align-items:center;justify-content:center;gap:8px}.back-arrow[data-v-6e4a5290]{width:20px;height:20px}.back-btn-text[data-v-6e4a5290]{font-family:Inter,sans-serif;font-size:16px;font-weight:600;color:#fff}.content-wrap[data-v-6e4a5290]{position:relative;min-height:1536px;display:flex;flex-direction:column;gap:24px;flex:1}.footer-info-wrap[data-v-6e4a5290]{position:relative;min-height:22px;margin-top:24px}.detail-card[data-v-07a54638]{width:100%;flex:1;min-height:1738px;border-radius:38px;border:1px solid #E4ECF8;background:#fff;box-shadow:0 16px 36px rgba(11,23,48,.07);padding:26px 24px 30px;box-sizing:border-box;display:flex;flex-direction:column;gap:18px}.detail-head[data-v-07a54638]{height:68px;display:flex;align-items:center;justify-content:space-between}.head-left[data-v-07a54638]{display:flex;align-items:center;gap:12px}.back-btn[data-v-07a54638]{width:44px;height:44px;border-radius:22px;border:1px solid #E1EAF8;background:#f5f8fd;box-shadow:0 6px 14px rgba(11,23,48,.03);display:flex;align-items:center;justify-content:center}.back-icon[data-v-07a54638]{width:20px;height:20px}.page-title[data-v-07a54638]{font-family:Inter,sans-serif;font-size:26px;font-weight:700;line-height:1.2;color:#1f2a44}.status-pill[data-v-07a54638]{min-width:108px;height:36px;padding:0 14px;box-sizing:border-box;border-radius:18px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent}.status-pill.stay[data-v-07a54638]{background:#eaf8f0;border-color:#cdecd8}.status-pill.done[data-v-07a54638]{background:rgba(47,107,255,.12);border-color:rgba(47,107,255,.22)}.status-pill.warn[data-v-07a54638]{background:rgba(255,138,61,.12);border-color:rgba(255,138,61,.22)}.status-pill.idle[data-v-07a54638]{background:rgba(110,106,248,.12);border-color:rgba(110,106,248,.22)}.status-pill-icon[data-v-07a54638]{width:16px;height:16px}.status-pill-text[data-v-07a54638]{font-family:Inter,sans-serif;font-size:14px;font-weight:700;line-height:1.2}.status-pill-text.stay[data-v-07a54638]{color:#2bb673}.status-pill-text.done[data-v-07a54638]{color:#2f6bff}.status-pill-text.warn[data-v-07a54638]{color:#ff8a3d}.status-pill-text.idle[data-v-07a54638]{color:#6e6af8}.section-card[data-v-07a54638]{border-radius:24px;border:1px solid #E8EEF8;background:linear-gradient(180deg,#f8fbff,#f4f8fd);padding:22px;box-sizing:border-box;display:flex;flex-direction:column;gap:18px}.section-head[data-v-07a54638]{display:flex;align-items:center;gap:10px}.section-icon[data-v-07a54638]{width:18px;height:18px}.section-title[data-v-07a54638]{font-family:Inter,sans-serif;font-size:20px;font-weight:700;line-height:1.2;color:#1f2a44}.visitor-layout[data-v-07a54638]{display:flex;gap:36px}.capture-col[data-v-07a54638]{width:140px;display:flex;flex-direction:column;align-items:center;gap:10px}.capture-image[data-v-07a54638]{width:110px;flex-shrink:0}.capture-time[data-v-07a54638]{font-family:Inter,sans-serif;font-size:12px;font-weight:400;line-height:1.3;text-align:center;color:#7b88a8;white-space:pre-line}.field-col[data-v-07a54638],.signout-fields[data-v-07a54638]{flex:1;display:flex;flex-direction:column;gap:14px}.field-col-right[data-v-07a54638]{max-width:320px}.detail-field[data-v-07a54638],.host-item[data-v-07a54638],.permission-title-row[data-v-07a54638]{display:flex;gap:10px}.field-icon[data-v-07a54638]{width:16px;height:16px;flex-shrink:0}.field-copy[data-v-07a54638]{display:flex;flex-direction:column;gap:4px}.field-label[data-v-07a54638]{font-family:Inter,sans-serif;font-size:12px;font-weight:600;line-height:1.2;color:#7b88a8}.field-value[data-v-07a54638],.validity-text[data-v-07a54638]{font-family:Inter,sans-serif;font-size:18px;font-weight:700;line-height:1.2;color:#1f2a44}.host-layout[data-v-07a54638]{display:flex;gap:28px}.host-item[data-v-07a54638]{flex:1}.host-method-item[data-v-07a54638]{align-items:flex-start}.host-method-label[data-v-07a54638]{font-size:11px}.method-badge[data-v-07a54638]{height:30px;padding:0 12px;border-radius:16px;border:1px solid #CDECD8;background:#eaf8f0;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.method-badge-warn[data-v-07a54638]{border-color:transparent;background:#fff2e7}.method-badge-text[data-v-07a54638]{font-family:Inter,sans-serif;font-size:11px;font-weight:700;line-height:1.2;color:#2bb673}.method-badge-text-warn[data-v-07a54638]{font-size:12px;color:#ff8a3d}.permission-layout[data-v-07a54638]{display:flex;flex-direction:column;gap:16px}.tag-row[data-v-07a54638]{display:flex;gap:12px;flex-wrap:wrap}.tag-chip[data-v-07a54638]{height:38px;padding:0 14px;border-radius:18px;border:1px solid #D8E5FF;background:#eef5ff;display:flex;align-items:center;justify-content:center;gap:8px;box-sizing:border-box}.tag-check-icon[data-v-07a54638]{width:16px;height:16px;flex-shrink:0}.tag-text[data-v-07a54638]{font-family:Inter,sans-serif;font-size:14px;font-weight:700;line-height:1.2;color:#2f6bff}.validity-box[data-v-07a54638]{width:100%;border-radius:18px;border:1px solid #E8EEF8;background:linear-gradient(180deg,#f9fbfe,#f3f7fc);padding:12px 16px;box-sizing:border-box} |
| | | .page-shell[data-v-6e4a5290]{position:relative;width:1080px;height:1920px;box-sizing:border-box;padding:30px 36px 40px;background:linear-gradient(180deg,#3b78ff,#2860e8,#163ebc);overflow:hidden;display:flex;flex-direction:column}.bg-glow[data-v-6e4a5290]{position:absolute;left:-128px;top:412px;width:300px;height:300px;border-radius:50%;background:rgba(127,177,255,.1);filter:blur(50px);pointer-events:none}.header-bar[data-v-6e4a5290]{position:relative;z-index:1;width:100%;height:88px;display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.title-zone[data-v-6e4a5290]{display:flex;align-items:center;gap:10px}.title-icon[data-v-6e4a5290]{width:22px;height:22px}.page-title[data-v-6e4a5290]{font-family:Inter,sans-serif;font-size:30px;font-weight:700;line-height:1.2;color:#fff}.back-btn[data-v-6e4a5290]{height:46px;padding:0 20px;border-radius:23px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.26);box-shadow:0 10px 22px rgba(15,46,133,.14);display:flex;align-items:center;justify-content:center;gap:8px}.back-arrow[data-v-6e4a5290]{width:20px;height:20px}.back-btn-text[data-v-6e4a5290]{font-family:Inter,sans-serif;font-size:16px;font-weight:600;color:#fff}.content-wrap[data-v-6e4a5290]{position:relative;min-height:1536px;display:flex;flex-direction:column;gap:24px;flex:1}.footer-info-wrap[data-v-6e4a5290]{position:relative;min-height:22px;margin-top:24px}.detail-card[data-v-98a69212]{width:100%;flex:1;min-height:1738px;border-radius:38px;border:1px solid #E4ECF8;background:#fff;box-shadow:0 16px 36px rgba(11,23,48,.07);padding:26px 24px 30px;box-sizing:border-box;display:flex;flex-direction:column;gap:18px}.detail-head[data-v-98a69212]{height:68px;display:flex;align-items:center;justify-content:space-between}.head-left[data-v-98a69212]{display:flex;align-items:center;gap:12px}.back-btn[data-v-98a69212]{width:44px;height:44px;border-radius:22px;border:1px solid #E1EAF8;background:#f5f8fd;box-shadow:0 6px 14px rgba(11,23,48,.03);display:flex;align-items:center;justify-content:center}.back-icon[data-v-98a69212]{width:20px;height:20px}.page-title[data-v-98a69212]{font-family:Inter,sans-serif;font-size:26px;font-weight:700;line-height:1.2;color:#1f2a44}.status-pill[data-v-98a69212]{min-width:108px;height:36px;padding:0 14px;box-sizing:border-box;border-radius:18px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent}.status-pill.stay[data-v-98a69212]{background:#eaf8f0;border-color:#cdecd8}.status-pill.done[data-v-98a69212]{background:rgba(47,107,255,.12);border-color:rgba(47,107,255,.22)}.status-pill.warn[data-v-98a69212]{background:rgba(255,138,61,.12);border-color:rgba(255,138,61,.22)}.status-pill.idle[data-v-98a69212]{background:rgba(110,106,248,.12);border-color:rgba(110,106,248,.22)}.status-pill-icon[data-v-98a69212]{width:16px;height:16px}.status-pill-text[data-v-98a69212]{font-family:Inter,sans-serif;font-size:14px;font-weight:700;line-height:1.2}.status-pill-text.stay[data-v-98a69212]{color:#2bb673}.status-pill-text.done[data-v-98a69212]{color:#2f6bff}.status-pill-text.warn[data-v-98a69212]{color:#ff8a3d}.status-pill-text.idle[data-v-98a69212]{color:#6e6af8}.section-card[data-v-98a69212]{border-radius:24px;border:1px solid #E8EEF8;background:linear-gradient(180deg,#f8fbff,#f4f8fd);padding:22px;box-sizing:border-box;display:flex;flex-direction:column;gap:18px}.section-head[data-v-98a69212]{display:flex;align-items:center;gap:10px}.section-icon[data-v-98a69212]{width:18px;height:18px}.section-title[data-v-98a69212]{font-family:Inter,sans-serif;font-size:20px;font-weight:700;line-height:1.2;color:#1f2a44}.visitor-layout[data-v-98a69212]{display:flex;gap:36px}.capture-col[data-v-98a69212]{width:140px;display:flex;flex-direction:column;align-items:center;gap:10px}.capture-image[data-v-98a69212]{width:110px;flex-shrink:0}.capture-time[data-v-98a69212]{font-family:Inter,sans-serif;font-size:12px;font-weight:400;line-height:1.3;text-align:center;color:#7b88a8;white-space:pre-line}.field-col[data-v-98a69212],.signout-fields[data-v-98a69212]{flex:1;display:flex;flex-direction:column;gap:14px}.field-col-right[data-v-98a69212]{max-width:320px}.detail-field[data-v-98a69212],.host-item[data-v-98a69212],.permission-title-row[data-v-98a69212]{display:flex;gap:10px}.field-icon[data-v-98a69212]{width:16px;height:16px;flex-shrink:0}.field-copy[data-v-98a69212]{display:flex;flex-direction:column;gap:4px}.field-label[data-v-98a69212]{font-family:Inter,sans-serif;font-size:12px;font-weight:600;line-height:1.2;color:#7b88a8}.field-value[data-v-98a69212],.validity-text[data-v-98a69212]{font-family:Inter,sans-serif;font-size:18px;font-weight:700;line-height:1.2;color:#1f2a44}.host-layout[data-v-98a69212]{display:flex;gap:28px}.host-item[data-v-98a69212]{flex:1}.host-method-item[data-v-98a69212]{align-items:flex-start}.host-method-label[data-v-98a69212]{font-size:11px}.method-badge[data-v-98a69212]{height:30px;padding:0 12px;border-radius:16px;border:1px solid #CDECD8;background:#eaf8f0;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.method-badge-warn[data-v-98a69212]{border-color:transparent;background:#fff2e7}.method-badge-text[data-v-98a69212]{font-family:Inter,sans-serif;font-size:11px;font-weight:700;line-height:1.2;color:#2bb673}.method-badge-text-warn[data-v-98a69212]{font-size:12px;color:#ff8a3d}.permission-layout[data-v-98a69212]{display:flex;flex-direction:column;gap:16px}.tag-row[data-v-98a69212]{display:flex;gap:12px;flex-wrap:wrap}.tag-chip[data-v-98a69212]{height:38px;padding:0 14px;border-radius:18px;border:1px solid #D8E5FF;background:#eef5ff;display:flex;align-items:center;justify-content:center;gap:8px;box-sizing:border-box}.tag-check-icon[data-v-98a69212]{width:16px;height:16px;flex-shrink:0}.tag-text[data-v-98a69212]{font-family:Inter,sans-serif;font-size:14px;font-weight:700;line-height:1.2;color:#2f6bff}.validity-box[data-v-98a69212]{width:100%;border-radius:18px;border:1px solid #E8EEF8;background:linear-gradient(180deg,#f9fbfe,#f3f7fc);padding:12px 16px;box-sizing:border-box} |