vome-core 0.1.82 → 0.1.83
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/components/ui/avatar/index.js +1 -1
- package/dist/admin/components/ui/badge/index.d.ts +1 -1
- package/dist/admin/components/ui/badge/index.js +1 -1
- package/dist/admin/components/ui/button/index.d.ts +1 -1
- package/dist/admin/components/ui/button/index.js +1 -1
- package/dist/admin/components/ui/checkbox/index.js +1 -1
- package/dist/admin/components/ui/dialog/index.js +1 -1
- package/dist/admin/components/ui/dropdown-menu/index.js +1 -1
- package/dist/admin/components/ui/input/index.js +1 -1
- package/dist/admin/components/ui/label/index.js +1 -1
- package/dist/admin/components/ui/scroll-area/index.js +1 -1
- package/dist/admin/components/ui/select/index.js +1 -1
- package/dist/admin/components/ui/separator/index.js +1 -1
- package/dist/admin/components/ui/sheet/index.js +1 -1
- package/dist/admin/components/ui/sonner/index.js +1 -1
- package/dist/admin/components/ui/table/index.js +1 -1
- package/dist/admin/components/ui/tabs/index.js +1 -1
- package/dist/admin/components/ui/tooltip/index.js +1 -1
- package/dist/admin/components/vm-role-picker.vue +10 -3
- package/dist/admin/crud/components/vm-richtext-extensions.js +1 -1
- package/dist/admin/crud/config.js +1 -1
- package/dist/admin/crud/confirm.js +1 -1
- package/dist/admin/crud/crud-page-request.js +1 -1
- package/dist/admin/crud/dict.js +1 -1
- package/dist/admin/crud/export-fetch.js +1 -1
- package/dist/admin/crud/key.js +1 -1
- package/dist/admin/crud/plugins.js +1 -1
- package/dist/admin/crud/span.js +1 -1
- package/dist/admin/crud/style.js +1 -1
- package/dist/admin/crud/validate.js +1 -1
- package/dist/admin/directives/perm.js +1 -1
- package/dist/admin/hooks/useUpload.js +1 -1
- package/dist/admin/index.d.ts +0 -5
- package/dist/admin/index.js +0 -4
- package/dist/admin/lib/browser.js +1 -1
- package/dist/admin/lib/cn.js +1 -1
- package/dist/admin/lib/dialog-float.js +1 -1
- package/dist/admin/lib/export-excel.js +1 -1
- package/dist/admin/lib/file-preview.js +6 -2
- package/dist/admin/lib/import-excel.js +1 -1
- package/dist/admin/lib/json.js +1 -1
- package/dist/admin/lib/menu.js +1 -1
- package/dist/admin/lib/micro-locale.js +1 -1
- package/dist/admin/lib/micro-theme.js +1 -1
- package/dist/admin/lib/setup-crud-defaults.js +1 -1
- package/dist/admin/lib/shell.js +1 -1
- package/dist/admin/lib/theme-color-options.js +1 -1
- package/dist/admin/lib/tree.js +1 -1
- package/dist/admin/lib/upload.js +1 -1
- package/dist/admin/lib/video-frame.js +1 -1
- package/dist/admin/router/create.js +1 -1
- package/dist/admin/router/guards.js +1 -1
- package/dist/admin/themes/dark.js +1 -1
- package/dist/admin/themes/index.js +1 -1
- package/dist/admin/themes/light.js +1 -1
- package/dist/ai/index.js +298 -9
- package/dist/client/configure.js +13 -4
- package/dist/client/vite-admin.d.ts +16 -1
- package/dist/client/vite-admin.js +33 -13
- package/dist/client/vite-auto-import.js +3 -3
- package/dist/client/vite-resolve.js +28 -4
- package/dist/index.js +1 -1
- package/dist/server/index.js +1 -1
- package/dist/shared/datetime-picker.js +1 -1
- package/dist/shared/excel.js +1 -1
- package/dist/shared/index.js +1 -1
- package/dist/shared/locale-json.js +1 -1
- package/dist/shared/tree.js +1 -1
- package/package.json +1 -1
- package/dist/admin/components/layout/vm-app-header.vue +0 -341
- package/dist/admin/components/layout/vm-app-sidebar.vue +0 -187
- package/dist/admin/components/layout/vm-sidebar-flyout.vue +0 -268
- package/dist/admin/components/layout/vm-sidebar-nav-item.vue +0 -490
- package/dist/admin/components/layout/vm-sidebar-nav.vue +0 -104
- package/dist/admin/components/layout/vm-tags-view.vue +0 -233
- package/dist/admin/lib/document-title.d.ts +0 -6
- package/dist/admin/lib/document-title.js +0 -1
- package/dist/admin/stores/dict.d.ts +0 -13
- package/dist/admin/stores/dict.js +0 -1
- package/dist/admin/stores/locale.d.ts +0 -3
- package/dist/admin/stores/locale.js +0 -1
- package/dist/admin/stores/theme.d.ts +0 -1
- package/dist/admin/stores/theme.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function _0x3558(_0x5bd17d,_0x5b7afb){_0x5bd17d=_0x5bd17d-0xbd;const _0x9ca92a=_0x9ca9();let _0x355827=_0x9ca92a[_0x5bd17d];if(_0x3558['ZXpILt']===undefined){var _0x5ec3c1=function(_0x3d91a2){const _0x44ac69='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x332c68='',_0x137384='';for(let _0x1ce009=0x0,_0x558175,_0x1f1d2f,_0xb9e3c6=0x0;_0x1f1d2f=_0x3d91a2['charAt'](_0xb9e3c6++);~_0x1f1d2f&&(_0x558175=_0x1ce009%0x4?_0x558175*0x40+_0x1f1d2f:_0x1f1d2f,_0x1ce009++%0x4)?_0x332c68+=String['fromCharCode'](0xff&_0x558175>>(-0x2*_0x1ce009&0x6)):0x0){_0x1f1d2f=_0x44ac69['indexOf'](_0x1f1d2f);}for(let _0x47ebde=0x0,_0x29cc86=_0x332c68['length'];_0x47ebde<_0x29cc86;_0x47ebde++){_0x137384+='%'+('00'+_0x332c68['charCodeAt'](_0x47ebde)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x137384);};_0x3558['BCuZHG']=_0x5ec3c1,_0x3558['hSouDU']={},_0x3558['ZXpILt']=!![];}const _0x18be0d=_0x9ca92a[0x0],_0x2775fa=_0x5bd17d+_0x18be0d,_0xad0222=_0x3558['hSouDU'][_0x2775fa];return!_0xad0222?(_0x355827=_0x3558['BCuZHG'](_0x355827),_0x3558['hSouDU'][_0x2775fa]=_0x355827):_0x355827=_0xad0222,_0x355827;}const _0xc3543c=_0x3558;(function(_0x420fb9,_0x47eb1c){const _0x230c02=_0x3558,_0x19d30a=_0x420fb9();while(!![]){try{const _0x4a1fc0=parseInt(_0x230c02(0xd2))/0x1*(parseInt(_0x230c02(0xd1))/0x2)+parseInt(_0x230c02(0xc2))/0x3*(parseInt(_0x230c02(0xd3))/0x4)+parseInt(_0x230c02(0xbd))/0x5*(-parseInt(_0x230c02(0xcf))/0x6)+parseInt(_0x230c02(0xcc))/0x7+parseInt(_0x230c02(0xcd))/0x8*(parseInt(_0x230c02(0xc1))/0x9)+-parseInt(_0x230c02(0xbe))/0xa+parseInt(_0x230c02(0xd6))/0xb;if(_0x4a1fc0===_0x47eb1c)break;else _0x19d30a['push'](_0x19d30a['shift']());}catch(_0x2b8765){_0x19d30a['push'](_0x19d30a['shift']());}}}(_0x9ca9,0xc476f));const PRECISIONS=[_0xc3543c(0xd5),'month',_0xc3543c(0xc9),_0xc3543c(0xbf)];export function normalizeDateTimePrecision(_0x332c68){const _0x4e8f67=_0xc3543c,_0x137384=String(_0x332c68||'')[_0x4e8f67(0xc6)]()[_0x4e8f67(0xc7)]();return PRECISIONS[_0x4e8f67(0xc8)](_0x137384)?_0x137384:'day';}export function clampTimePart(_0x1ce009,_0x558175){const _0x20f49f=_0xc3543c,_0x1f1d2f=_0x1ce009==='h'?0x17:0x3b;return Math[_0x20f49f(0xc3)](0x0,Math[_0x20f49f(0xd4)](_0x1f1d2f,Math[_0x20f49f(0xd0)](_0x558175)));}function pad2(_0xb9e3c6){return String(_0xb9e3c6)['padStart'](0x2,'0');}function _0x9ca9(){const _0x563330=['DhjPBq','Dg9mB3DLCKnHC2u','Aw5JBhvKzxm','zgf5','z2v0twLUDxrLCW','z2v0tw9UDgG','odKYnJiWnejNsNHlAa','mtaZmJq4zgfVEMfV','ChvZAa','mJe2s1vArNDy','Dhj1BMm','ntbsy0fmuM8','ndaYnZDmDvH5D2K','mtmZmMjxzM1Kqq','BwLU','EwvHCG','otm4ntC1DMjvruH4','C2v0sg91CNm','z2v0sg91CNm','C2XPy2u','z2v0rNvSBfLLyxi','zxHLyW','z2v0rgf5','mtyXnZu1ywzUCNH0','ody5mtaWmgXju29isG','zgf0zxrPBwu','Axnoyu4','mtH1vfLbueC','ndaXmxLAtLzfDq','Bwf4','z2v0u2vJB25KCW','z2v0rgf0zq'];_0x9ca9=function(){return _0x563330;};return _0x9ca9();}export function formatYmd(_0x47ebde){const _0x4131b0=_0xc3543c;return _0x47ebde['getFullYear']()+'-'+pad2(_0x47ebde[_0x4131b0(0xcb)]()+0x1)+'-'+pad2(_0x47ebde[_0x4131b0(0xc5)]());}export function parseApiDateTime(_0x29cc86){const _0x104cae=_0xc3543c;if(!_0x29cc86)return null;const _0x31cf9c=String(_0x29cc86)[_0x104cae(0xc6)](),_0x18411e=/^(\d{4})-(\d{2})-(\d{2})/[_0x104cae(0xdb)](_0x31cf9c);if(!_0x18411e)return null;const _0x44a5b1=new Date(Number(_0x18411e[0x1]),Number(_0x18411e[0x2])-0x1,Number(_0x18411e[0x3]));if(Number[_0x104cae(0xc0)](_0x44a5b1['getTime']()))return null;const _0x41a701=/(?:T|\s)(\d{2}):(\d{2})(?::(\d{2}))?/[_0x104cae(0xdb)](_0x31cf9c);return _0x41a701&&_0x44a5b1[_0x104cae(0xd7)](Number(_0x41a701[0x1]),Number(_0x41a701[0x2]),Number(_0x41a701[0x3]||0x0),0x0),_0x44a5b1;}export function dateTimeDisplayText(_0x315be7,_0x5052ec){const _0x4cccf1=_0xc3543c;if(!_0x315be7)return'';if(_0x5052ec===_0x4cccf1(0xd5))return String(_0x315be7)[_0x4cccf1(0xd9)](0x0,0x4);if(_0x5052ec==='month'){const _0x301d7a=String(_0x315be7)['slice'](0x0,0x7),_0x1804cf=/^(\d{4})-(\d{2})$/[_0x4cccf1(0xdb)](_0x301d7a);return _0x1804cf?_0x1804cf[0x1]+'年'+Number(_0x1804cf[0x2])+'月':_0x301d7a;}const _0x37e373=parseApiDateTime(_0x315be7);if(!_0x37e373)return String(_0x315be7);const _0x4ce82c=_0x37e373[_0x4cccf1(0xda)]()+'年'+pad2(_0x37e373[_0x4cccf1(0xcb)]()+0x1)+'月'+pad2(_0x37e373[_0x4cccf1(0xc5)]())+'日';if(_0x5052ec===_0x4cccf1(0xc9))return _0x4ce82c;return _0x4ce82c+'\x20'+pad2(_0x37e373[_0x4cccf1(0xd8)]())+':'+pad2(_0x37e373[_0x4cccf1(0xca)]())+':'+pad2(_0x37e373[_0x4cccf1(0xc4)]());}export function buildMonthGrid(_0x5353c2,_0x487bbc){const _0xb3f455=_0xc3543c,_0x3b7afc=new Date(_0x5353c2,_0x487bbc,0x1),_0x3fe0bd=new Date(_0x5353c2,_0x487bbc,0x1-_0x3b7afc[_0xb3f455(0xdc)]()),_0x5eb78b=formatYmd(new Date()),_0x1b3747=[];for(let _0x5e8adb=0x0;_0x5e8adb<0x2a;_0x5e8adb++){const _0x172dc1=new Date(_0x3fe0bd[_0xb3f455(0xda)](),_0x3fe0bd[_0xb3f455(0xcb)](),_0x3fe0bd[_0xb3f455(0xc5)]()+_0x5e8adb),_0x39ddd2=formatYmd(_0x172dc1);_0x1b3747[_0xb3f455(0xce)]({'day':_0x172dc1[_0xb3f455(0xc5)](),'inMonth':_0x172dc1[_0xb3f455(0xcb)]()===_0x487bbc,'iso':_0x39ddd2,'isToday':_0x39ddd2===_0x5eb78b});}return _0x1b3747;}
|
package/dist/shared/excel.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const _0x380308=_0x1b2c;(function(_0x25e1b6,_0x2cfcf6){const _0xae31cc=_0x1b2c,_0x1964d7=_0x25e1b6();while(!![]){try{const _0x33093e=parseInt(_0xae31cc(0x17d))/0x1+-parseInt(_0xae31cc(0x180))/0x2+-parseInt(_0xae31cc(0x198))/0x3+parseInt(_0xae31cc(0x185))/0x4*(-parseInt(_0xae31cc(0x18b))/0x5)+parseInt(_0xae31cc(0x188))/0x6+parseInt(_0xae31cc(0x199))/0x7+parseInt(_0xae31cc(0x182))/0x8;if(_0x33093e===_0x2cfcf6)break;else _0x1964d7['push'](_0x1964d7['shift']());}catch(_0x3e5f0f){_0x1964d7['push'](_0x1964d7['shift']());}}}(_0x1adb,0x3b831));function _0x1b2c(_0x48b367,_0x471b67){_0x48b367=_0x48b367-0x17c;const _0x1adbba=_0x1adb();let _0x1b2c3a=_0x1adbba[_0x48b367];if(_0x1b2c['VOpDmP']===undefined){var _0x1d3115=function(_0xc1ff82){const _0x1f15af='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x40dec0='',_0x59f046='';for(let _0x4d661c=0x0,_0x5a751a,_0x5199be,_0x1c6e6d=0x0;_0x5199be=_0xc1ff82['charAt'](_0x1c6e6d++);~_0x5199be&&(_0x5a751a=_0x4d661c%0x4?_0x5a751a*0x40+_0x5199be:_0x5199be,_0x4d661c++%0x4)?_0x40dec0+=String['fromCharCode'](0xff&_0x5a751a>>(-0x2*_0x4d661c&0x6)):0x0){_0x5199be=_0x1f15af['indexOf'](_0x5199be);}for(let _0x5bb7df=0x0,_0x3e5f59=_0x40dec0['length'];_0x5bb7df<_0x3e5f59;_0x5bb7df++){_0x59f046+='%'+('00'+_0x40dec0['charCodeAt'](_0x5bb7df)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x59f046);};_0x1b2c['wkOtXQ']=_0x1d3115,_0x1b2c['SuSFPR']={},_0x1b2c['VOpDmP']=!![];}const _0x7ec6a5=_0x1adbba[0x0],_0x1d1058=_0x48b367+_0x7ec6a5,_0x42667d=_0x1b2c['SuSFPR'][_0x1d1058];return!_0x42667d?(_0x1b2c3a=_0x1b2c['wkOtXQ'](_0x1b2c3a),_0x1b2c['SuSFPR'][_0x1d1058]=_0x1b2c3a):_0x1b2c3a=_0x42667d,_0x1b2c3a;}import*as _0x40dec0 from'xlsx';const XLSX=_0x40dec0[_0x380308(0x19c)]!=null?_0x40dec0:_0x40dec0[_0x380308(0x183)]??_0x40dec0;export const IMPORT_SKIP_FIELDS=['id','createTime',_0x380308(0x17f),_0x380308(0x18c),_0x380308(0x17c)];function _0x1adb(){const _0x3b4e89=['mZbUt3HWB1G','zgvSzxrLzef0','yxr0ywnOBwvUDdSGzMLSzw5HBwuQpvvurI04jYC','C2HLzxrFDg9FANnVBG','ChvZAa','yM9VA19UzxC','lNHSC3G','yxbWBgLJyxrPB24VDM5KlM9Wzw54BwXMB3jTyxrZlw9MzMLJzwrVy3vTzw50lNnWCMvHzhnOzwv0BwWUC2HLzxq','u2HLzxqX','u2HLzxrZ','zw5KC1DPDgG','yxjYyxK','EgXZEa','odK5ntm4u2DurLbL','mtmYmdq2nMXRrgv1wq','BwfW','BgfIzwW','DxrPBhm','DgvUyw50swq','mJG0nJuYB3jItNHq','DhjPBq','DxbKyxrLvgLTzq','otq3nda2v3DVy2TA','u2HLzxroyw1LCW','ntGXntG1nNjiAKHxwa','zgvMyxvSDa','CMvHza','mJKZotG4vvfvDvv2','BgvUz3rO','ChjVCa','mtu0odeYmgPdz3vOAW','yM9VA19HChbLBMrFC2HLzxq','D3jPDgu'];_0x1adb=function(){return _0x3b4e89;};return _0x1adb();}export function isImportSkipField(_0x59f046){return IMPORT_SKIP_FIELDS['includes'](_0x59f046);}export function buildExcelBuffer(_0x4d661c,_0x5a751a,_0x5199be,_0x1c6e6d){const _0x5205a2=_0x380308,_0x5bb7df=_0x1c6e6d?.['header']??_0x5205a2(0x19b),_0x3e5f59=_0x4d661c[_0x5205a2(0x19a)](_0x9464b5=>_0x5bb7df==='prop'?_0x9464b5[_0x5205a2(0x187)]:_0x9464b5['label']||_0x9464b5[_0x5205a2(0x187)]),_0x45f8ba=_0x5a751a[_0x5205a2(0x19a)](_0x1e0592=>_0x4d661c['map'](_0x30993e=>{const _0x3500b2=_0x5205a2;if(_0x5199be)return _0x5199be(_0x30993e[_0x3500b2(0x187)],_0x1e0592);const _0x255d7e=_0x1e0592[_0x30993e[_0x3500b2(0x187)]];if(_0x255d7e==null)return'';return String(_0x255d7e);})),_0x36f0a1=XLSX[_0x5205a2(0x19c)]['aoa_to_sheet']([_0x3e5f59,..._0x45f8ba]),_0x997ee3=XLSX[_0x5205a2(0x19c)][_0x5205a2(0x190)]();return XLSX[_0x5205a2(0x19c)][_0x5205a2(0x189)](_0x997ee3,_0x36f0a1,_0x5205a2(0x193)),XLSX[_0x5205a2(0x18a)](_0x997ee3,{'bookType':_0x5205a2(0x197),'type':_0x5205a2(0x196)});}export function buildImportTemplateBuffer(_0x479510){const _0xef5135=_0x479510['map'](_0x95574a=>({'prop':_0x95574a,'label':_0x95574a}));return buildExcelBuffer(_0xef5135,[],undefined,{'header':'prop'});}export function parseExcelBuffer(_0x3f91be){const _0x125f15=_0x380308,_0x144d23=XLSX[_0x125f15(0x184)](_0x3f91be,{'type':_0x125f15(0x196),'cellDates':!![]}),_0x109ae6=_0x144d23[_0x125f15(0x181)][0x0];if(!_0x109ae6)return[];const _0x16ab3b=_0x144d23[_0x125f15(0x194)][_0x109ae6];if(!_0x16ab3b)return[];const _0x318c87=XLSX[_0x125f15(0x19c)][_0x125f15(0x18e)](_0x16ab3b,{'header':0x1,'defval':'','raw':![]});if(!_0x318c87[_0x125f15(0x186)])return[];const _0x144516=(_0x318c87[0x0]||[])[_0x125f15(0x19a)](_0x4adbf9=>String(_0x4adbf9??'')[_0x125f15(0x17e)]()),_0x1137c4=[];for(let _0x2881ee=0x1;_0x2881ee<_0x318c87[_0x125f15(0x186)];_0x2881ee++){const _0x1ac4a9=_0x318c87[_0x2881ee]||[],_0x53f03f={};let _0xe5796e=!![];for(let _0x64950a=0x0;_0x64950a<_0x144516[_0x125f15(0x186)];_0x64950a++){const _0x38cc47=_0x144516[_0x64950a];if(!_0x38cc47)continue;let _0x38973c=_0x1ac4a9[_0x64950a];if(_0x38973c==null||_0x38973c===''){_0x53f03f[_0x38cc47]=_0x38973c==null?null:'';continue;}_0xe5796e=![],typeof _0x38973c==='string'?_0x53f03f[_0x38cc47]=_0x38973c['trim']():_0x53f03f[_0x38cc47]=_0x38973c;}if(!_0xe5796e)_0x1137c4[_0x125f15(0x18f)](_0x53f03f);}return _0x1137c4;}export function excelFilename(_0x250463){const _0x46724d=_0x380308;return _0x250463[_0x46724d(0x195)](_0x46724d(0x191))?_0x250463:_0x250463+'.xlsx';}export function excelResponseHeaders(_0x5c5fac){const _0x5ca11b=_0x380308,_0x1997a0=excelFilename(_0x5c5fac);return{'Content-Type':_0x5ca11b(0x192),'Content-Disposition':_0x5ca11b(0x18d)+encodeURIComponent(_0x1997a0)};}
|
package/dist/shared/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x289677,_0x172360){var _0x4ce2d6=_0x2ad8,_0x25b4e7=_0x289677();while(!![]){try{var _0x5db6cc=-parseInt(_0x4ce2d6(0x158))/0x1+parseInt(_0x4ce2d6(0x15b))/0x2+-parseInt(_0x4ce2d6(0x15f))/0x3*(-parseInt(_0x4ce2d6(0x159))/0x4)+parseInt(_0x4ce2d6(0x15a))/0x5+parseInt(_0x4ce2d6(0x15c))/0x6+parseInt(_0x4ce2d6(0x15e))/0x7+-parseInt(_0x4ce2d6(0x15d))/0x8;if(_0x5db6cc===_0x172360)break;else _0x25b4e7['push'](_0x25b4e7['shift']());}catch(_0x211954){_0x25b4e7['push'](_0x25b4e7['shift']());}}}(_0x1f45,0x7fb45));export{merge}from'../comm/merge';function _0x2ad8(_0xb8d609,_0x3f34f3){_0xb8d609=_0xb8d609-0x158;var _0x1f45f=_0x1f45();var _0x2ad82f=_0x1f45f[_0xb8d609];if(_0x2ad8['RXDNst']===undefined){var _0x4a11f1=function(_0x181d3e){var _0x2bb0a0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x2cd600='',_0x22e036='';for(var _0x4dd1e4=0x0,_0x35979e,_0x49b890,_0x4b00bc=0x0;_0x49b890=_0x181d3e['charAt'](_0x4b00bc++);~_0x49b890&&(_0x35979e=_0x4dd1e4%0x4?_0x35979e*0x40+_0x49b890:_0x49b890,_0x4dd1e4++%0x4)?_0x2cd600+=String['fromCharCode'](0xff&_0x35979e>>(-0x2*_0x4dd1e4&0x6)):0x0){_0x49b890=_0x2bb0a0['indexOf'](_0x49b890);}for(var _0x3294cd=0x0,_0x20b4d2=_0x2cd600['length'];_0x3294cd<_0x20b4d2;_0x3294cd++){_0x22e036+='%'+('00'+_0x2cd600['charCodeAt'](_0x3294cd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x22e036);};_0x2ad8['gzOirz']=_0x4a11f1,_0x2ad8['koARpP']={},_0x2ad8['RXDNst']=!![];}var _0x442665=_0x1f45f[0x0],_0x190ead=_0xb8d609+_0x442665,_0x3baf55=_0x2ad8['koARpP'][_0x190ead];return!_0x3baf55?(_0x2ad82f=_0x2ad8['gzOirz'](_0x2ad82f),_0x2ad8['koARpP'][_0x190ead]=_0x2ad82f):_0x2ad82f=_0x3baf55,_0x2ad82f;}export{deepTree,flattenTree}from'./tree';export{RES_CODE}from'../routing/base';export{buildExcelBuffer,buildImportTemplateBuffer,parseExcelBuffer,excelFilename,excelResponseHeaders,IMPORT_SKIP_FIELDS,isImportSkipField}from'./excel';function _0x1f45(){var _0x5b73dd=['otC2mZyZmLHQzuLwza','ndq0mZa0EM55A3zu','mZG4nJe3sxnZA0fp','mJGXmtmXBLbhswHL','neHZrgD2CG','mJG1ntK3nw5yugnouW','mtmYmJi2nNrduMXcyq','mZu5ntKZofPkwxL0wa'];_0x1f45=function(){return _0x5b73dd;};return _0x1f45();}export{flattenLocale,unflattenLocale,hashLocaleJson,extractJsonObject}from'./locale-json';export{normalizeDateTimePrecision,dateTimeDisplayText}from'./datetime-picker';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x238c31,_0x5e0e29){const _0x9631ca=_0x4b64,_0x5027ed=_0x238c31();while(!![]){try{const _0x4d8e41=-parseInt(_0x9631ca(0x162))/0x1*(parseInt(_0x9631ca(0x165))/0x2)+parseInt(_0x9631ca(0x160))/0x3*(parseInt(_0x9631ca(0x175))/0x4)+parseInt(_0x9631ca(0x163))/0x5*(parseInt(_0x9631ca(0x16e))/0x6)+parseInt(_0x9631ca(0x15e))/0x7+parseInt(_0x9631ca(0x16a))/0x8+parseInt(_0x9631ca(0x16f))/0x9+parseInt(_0x9631ca(0x16c))/0xa*(-parseInt(_0x9631ca(0x161))/0xb);if(_0x4d8e41===_0x5e0e29)break;else _0x5027ed['push'](_0x5027ed['shift']());}catch(_0x1cc100){_0x5027ed['push'](_0x5027ed['shift']());}}}(_0x3cea,0x3ea93));import{createHash}from'node:crypto';export function flattenLocale(_0x56b1a2,_0x42f2fe=''){const _0x50a5fd=_0x4b64,_0x3ee790={};for(const [_0x3249cd,_0x2d61e5]of Object[_0x50a5fd(0x174)](_0x56b1a2)){const _0x3aa354=_0x42f2fe?_0x42f2fe+'.'+_0x3249cd:_0x3249cd;if(_0x2d61e5!=null&&typeof _0x2d61e5===_0x50a5fd(0x172)&&!Array[_0x50a5fd(0x16d)](_0x2d61e5))Object['assign'](_0x3ee790,flattenLocale(_0x2d61e5,_0x3aa354));else{if(typeof _0x2d61e5===_0x50a5fd(0x15f))_0x3ee790[_0x3aa354]=_0x2d61e5;else _0x2d61e5!=null&&(_0x3ee790[_0x3aa354]=String(_0x2d61e5));}}return _0x3ee790;}function _0x4b64(_0x13e927,_0x12fdfd){_0x13e927=_0x13e927-0x15c;const _0x3cea25=_0x3cea();let _0x4b64cb=_0x3cea25[_0x13e927];if(_0x4b64['svrkTG']===undefined){var _0x47c471=function(_0x2d23e3){const _0x40e80c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x56b1a2='',_0x42f2fe='';for(let _0x3ee790=0x0,_0x3249cd,_0x2d61e5,_0x3aa354=0x0;_0x2d61e5=_0x2d23e3['charAt'](_0x3aa354++);~_0x2d61e5&&(_0x3249cd=_0x3ee790%0x4?_0x3249cd*0x40+_0x2d61e5:_0x2d61e5,_0x3ee790++%0x4)?_0x56b1a2+=String['fromCharCode'](0xff&_0x3249cd>>(-0x2*_0x3ee790&0x6)):0x0){_0x2d61e5=_0x40e80c['indexOf'](_0x2d61e5);}for(let _0x79ffd1=0x0,_0x21593e=_0x56b1a2['length'];_0x79ffd1<_0x21593e;_0x79ffd1++){_0x42f2fe+='%'+('00'+_0x56b1a2['charCodeAt'](_0x79ffd1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x42f2fe);};_0x4b64['tcNYTs']=_0x47c471,_0x4b64['zcQFrc']={},_0x4b64['svrkTG']=!![];}const _0x5544da=_0x3cea25[0x0],_0xb0136=_0x13e927+_0x5544da,_0x412e23=_0x4b64['zcQFrc'][_0xb0136];return!_0x412e23?(_0x4b64cb=_0x4b64['tcNYTs'](_0x4b64cb),_0x4b64['zcQFrc'][_0xb0136]=_0x4b64cb):_0x4b64cb=_0x412e23,_0x4b64cb;}export function unflattenLocale(_0x79ffd1){const _0x4d857d=_0x4b64,_0x21593e={};for(const [_0x7aa646,_0x2bb547]of Object[_0x4d857d(0x174)](_0x79ffd1)){const _0x213155=_0x7aa646[_0x4d857d(0x169)]('.')[_0x4d857d(0x170)](Boolean);if(!_0x213155[_0x4d857d(0x168)])continue;let _0x1520d2=_0x21593e;for(let _0x4673ff=0x0;_0x4673ff<_0x213155[_0x4d857d(0x168)]-0x1;_0x4673ff++){const _0x2dc6bc=_0x213155[_0x4673ff],_0x413da1=_0x1520d2[_0x2dc6bc];(!_0x413da1||typeof _0x413da1!==_0x4d857d(0x172)||Array[_0x4d857d(0x16d)](_0x413da1))&&(_0x1520d2[_0x2dc6bc]={}),_0x1520d2=_0x1520d2[_0x2dc6bc];}_0x1520d2[_0x213155[_0x213155['length']-0x1]]=_0x2bb547;}return _0x21593e;}export function hashLocaleJson(_0x205cf7){const _0x366174=_0x4b64,_0x334a86=flattenLocale(_0x205cf7),_0x296d5d=Object[_0x366174(0x173)](_0x334a86)['sort'](),_0x20bc51=_0x296d5d[_0x366174(0x166)](_0x1f1454=>_0x1f1454+'='+_0x334a86[_0x1f1454])['join']('\x0a');return createHash('sha256')['update'](_0x20bc51)['digest']('hex')['slice'](0x0,0x20);}export function extractJsonObject(_0x516e0f){const _0xc81751=_0x4b64,_0x1f48b5=String(_0x516e0f||'')[_0xc81751(0x177)]();if(!_0x1f48b5)throw new Error(_0xc81751(0x15c));try{const _0x48746b=JSON[_0xc81751(0x167)](_0x1f48b5);if(_0x48746b&&typeof _0x48746b===_0xc81751(0x172)&&!Array[_0xc81751(0x16d)](_0x48746b))return _0x48746b;}catch{}const _0x463e52=_0x1f48b5[_0xc81751(0x171)](/```(?:json)?\s*([\s\S]*?)```/i);if(_0x463e52?.[0x1]){const _0x14a168=JSON[_0xc81751(0x167)](_0x463e52[0x1][_0xc81751(0x177)]());if(_0x14a168&&typeof _0x14a168===_0xc81751(0x172)&&!Array[_0xc81751(0x16d)](_0x14a168))return _0x14a168;}const _0x280464=_0x1f48b5[_0xc81751(0x15d)]('{'),_0x12049a=_0x1f48b5[_0xc81751(0x16b)]('}');if(_0x280464>=0x0&&_0x12049a>_0x280464){const _0x4180b6=JSON['parse'](_0x1f48b5[_0xc81751(0x176)](_0x280464,_0x12049a+0x1));if(_0x4180b6&&typeof _0x4180b6===_0xc81751(0x172)&&!Array[_0xc81751(0x16d)](_0x4180b6))return _0x4180b6;}throw new Error(_0xc81751(0x164));}function _0x3cea(){const _0xc6f46=['zw50CMLLCW','mtu5mMvkDvrXsq','C2XPy2u','DhjPBq','quKG6l+u5zUE56M65yAf5A65','Aw5KzxHpzG','mtu3mJKXnfvNEKPhAW','C3rYAw5N','mZG0oxbLDfb5yG','mte4otC2yxntEwHR','otK5mtrKsLb6Cwm','nJvLBNPqqKO','quKG6l+u5zUE5PEG5Rov6kEJ5P6q5lI6iePtt04G5A+56lgH','ogHtEfPoza','BwfW','CgfYC2u','BgvUz3rO','C3bSAxq','mtq4ndu1mK1Ms3DSua','BgfZDeLUzgv4t2y','mta5mevfsgDjCa','AxnbCNjHEq','mJmZmJC0DxLgyw5d','mZy4mdm0m2TWze9Iyq','zMLSDgvY','Bwf0y2G','B2jQzwn0','A2v5CW'];_0x3cea=function(){return _0xc6f46;};return _0x3cea();}
|
package/dist/shared/tree.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function _0x2e5f(){const _0x3caca8=['mJG5mJm4mhj2sNL6ta','B3jKzxjoDw0','mtu0ndK4nxvbr1LqBq','mteXnde2uxzxvxL6','C29YDa','odeXndHywvv1BuW','mtfoAfv4B2y','BgvUz3rO','mtG4mZiZmhvAwvnfwq','mtiXntu0nMfYuxnIEa','mMXODujltG','AgfZ','nZbjD2Lythm','CgfYzw50swq','y2HPBgrYzw4','zgvZyW','ChvZAa','nNzNsgz6BG','z2v0','mtC0mdC3mgXsyKXYsa'];_0x2e5f=function(){return _0x3caca8;};return _0x2e5f();}function _0x5d11(_0x515fe6,_0x3e133d){_0x515fe6=_0x515fe6-0x162;const _0x2e5f01=_0x2e5f();let _0x5d11ec=_0x2e5f01[_0x515fe6];if(_0x5d11['sSPkRR']===undefined){var _0x1064cd=function(_0x4142ed){const _0x398330='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x23e392='',_0x4c3a62='';for(let _0x285609=0x0,_0x2908ae,_0x161add,_0x17d527=0x0;_0x161add=_0x4142ed['charAt'](_0x17d527++);~_0x161add&&(_0x2908ae=_0x285609%0x4?_0x2908ae*0x40+_0x161add:_0x161add,_0x285609++%0x4)?_0x23e392+=String['fromCharCode'](0xff&_0x2908ae>>(-0x2*_0x285609&0x6)):0x0){_0x161add=_0x398330['indexOf'](_0x161add);}for(let _0x6db4f3=0x0,_0x36f88a=_0x23e392['length'];_0x6db4f3<_0x36f88a;_0x6db4f3++){_0x4c3a62+='%'+('00'+_0x23e392['charCodeAt'](_0x6db4f3)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4c3a62);};_0x5d11['xQsnyt']=_0x1064cd,_0x5d11['NzCmnK']={},_0x5d11['sSPkRR']=!![];}const _0xda2a65=_0x2e5f01[0x0],_0x575502=_0x515fe6+_0xda2a65,_0x175ed6=_0x5d11['NzCmnK'][_0x575502];return!_0x175ed6?(_0x5d11ec=_0x5d11['xQsnyt'](_0x5d11ec),_0x5d11['NzCmnK'][_0x575502]=_0x5d11ec):_0x5d11ec=_0x175ed6,_0x5d11ec;}(function(_0x269059,_0x2410e5){const _0x18dec5=_0x5d11,_0x4e9975=_0x269059();while(!![]){try{const _0x3dc3b2=-parseInt(_0x18dec5(0x164))/0x1*(-parseInt(_0x18dec5(0x173))/0x2)+parseInt(_0x18dec5(0x163))/0x3+parseInt(_0x18dec5(0x16e))/0x4+-parseInt(_0x18dec5(0x16d))/0x5*(parseInt(_0x18dec5(0x16b))/0x6)+parseInt(_0x18dec5(0x166))/0x7*(-parseInt(_0x18dec5(0x171))/0x8)+-parseInt(_0x18dec5(0x170))/0x9+parseInt(_0x18dec5(0x162))/0xa*(parseInt(_0x18dec5(0x174))/0xb);if(_0x3dc3b2===_0x2410e5)break;else _0x4e9975['push'](_0x4e9975['shift']());}catch(_0xf09ca1){_0x4e9975['push'](_0x4e9975['shift']());}}}(_0x2e5f,0xb4563));export function deepTree(_0x23e392,_0x4c3a62='asc'){const _0x28279b=_0x5d11,_0x285609=new Map();for(const _0x17d527 of _0x23e392){if(_0x17d527['id']==null)continue;_0x285609['set'](_0x17d527['id'],{..._0x17d527,'children':[]});}const _0x2908ae=[];for(const _0x6db4f3 of _0x285609['values']()){const _0x36f88a=_0x6db4f3[_0x28279b(0x167)];_0x36f88a!=null&&_0x36f88a!==''&&_0x285609[_0x28279b(0x165)](_0x36f88a)?_0x285609[_0x28279b(0x16c)](_0x36f88a)[_0x28279b(0x168)]['push'](_0x6db4f3):_0x2908ae[_0x28279b(0x16a)](_0x6db4f3);}const _0x161add=_0x152b57=>{const _0x46ac98=_0x28279b;_0x152b57[_0x46ac98(0x172)]((_0x5a9f8f,_0x12eaff)=>{const _0x11b9f1=_0x46ac98,_0x5be0c3=_0x5a9f8f[_0x11b9f1(0x16f)]??0x0,_0x29e55d=_0x12eaff[_0x11b9f1(0x16f)]??0x0,_0x5bf4f8=_0x4c3a62===_0x11b9f1(0x169)?_0x29e55d-_0x5be0c3:_0x5be0c3-_0x29e55d;return _0x5bf4f8||Number(_0x5a9f8f['id'])-Number(_0x12eaff['id']);});for(const _0x4a28ef of _0x152b57)if(_0x4a28ef[_0x46ac98(0x168)]?.[_0x46ac98(0x175)])_0x161add(_0x4a28ef['children']);};return _0x161add(_0x2908ae),_0x2908ae;}export function flattenTree(_0x2afe73,_0x11ed55,_0x4017d3=0x0,_0xd23c05=[]){const _0x275508=_0x5d11;for(const _0x1514da of _0x2afe73){const _0x41201e=_0x1514da[_0x275508(0x168)]||[];_0xd23c05[_0x275508(0x16a)]({..._0x1514da,'depth':_0x4017d3,'hasChildren':_0x41201e[_0x275508(0x175)]>0x0});if(_0x41201e['length']&&_0x11ed55['has'](_0x1514da['id']))flattenTree(_0x41201e,_0x11ed55,_0x4017d3+0x1,_0xd23c05);}return _0xd23c05;}
|
package/package.json
CHANGED
|
@@ -1,341 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="vm-header">
|
|
3
|
-
<header class="vm-header__bar">
|
|
4
|
-
<div class="vm-header__tools">
|
|
5
|
-
<button
|
|
6
|
-
v-if="browser.isMini"
|
|
7
|
-
type="button"
|
|
8
|
-
class="vm-header__icon-btn"
|
|
9
|
-
title="菜单"
|
|
10
|
-
@click="app.setMobileOpen(true)"
|
|
11
|
-
>
|
|
12
|
-
<i class="ri-menu-line" />
|
|
13
|
-
</button>
|
|
14
|
-
<button
|
|
15
|
-
v-else
|
|
16
|
-
type="button"
|
|
17
|
-
class="vm-header__icon-btn"
|
|
18
|
-
title="折叠侧栏"
|
|
19
|
-
@click="app.toggleSidebarFold()"
|
|
20
|
-
>
|
|
21
|
-
<i :class="app.sidebarFold ? 'ri-menu-unfold-line' : 'ri-menu-fold-line'" />
|
|
22
|
-
</button>
|
|
23
|
-
<button
|
|
24
|
-
type="button"
|
|
25
|
-
class="vm-header__icon-btn"
|
|
26
|
-
title="上一页"
|
|
27
|
-
@click="goBack"
|
|
28
|
-
>
|
|
29
|
-
<i class="ri-arrow-go-back-line" />
|
|
30
|
-
</button>
|
|
31
|
-
<button
|
|
32
|
-
type="button"
|
|
33
|
-
class="vm-header__icon-btn"
|
|
34
|
-
title="刷新页面"
|
|
35
|
-
@click="reloadPage"
|
|
36
|
-
>
|
|
37
|
-
<i class="ri-refresh-line" />
|
|
38
|
-
</button>
|
|
39
|
-
<button
|
|
40
|
-
type="button"
|
|
41
|
-
class="vm-header__icon-btn"
|
|
42
|
-
title="首页"
|
|
43
|
-
@click="goHome"
|
|
44
|
-
>
|
|
45
|
-
<i class="ri-home-4-line" />
|
|
46
|
-
</button>
|
|
47
|
-
|
|
48
|
-
<!-- 移动端不显示多页签,避免挤占工具栏 -->
|
|
49
|
-
<vm-tags-view v-if="!browser.isMini" />
|
|
50
|
-
</div>
|
|
51
|
-
|
|
52
|
-
<div class="vm-header__right">
|
|
53
|
-
<button
|
|
54
|
-
type="button"
|
|
55
|
-
class="vm-header__icon-btn"
|
|
56
|
-
:title="theme.themeId === 'dark' ? locale.t('header.themeLight', '浅色') : locale.t('header.themeDark', '深色')"
|
|
57
|
-
@click="toggleTheme"
|
|
58
|
-
>
|
|
59
|
-
<i :class="theme.themeId === 'dark' ? 'ri-sun-line' : 'ri-moon-line'" />
|
|
60
|
-
</button>
|
|
61
|
-
|
|
62
|
-
<DropdownMenu :modal="false">
|
|
63
|
-
<DropdownMenuTrigger as-child>
|
|
64
|
-
<button
|
|
65
|
-
type="button"
|
|
66
|
-
class="vm-header__icon-btn vm-header__locale-btn"
|
|
67
|
-
:title="locale.currentLang?.name || locale.locale"
|
|
68
|
-
:disabled="localeSwitching"
|
|
69
|
-
>
|
|
70
|
-
<span class="vm-header__flag" aria-hidden="true">
|
|
71
|
-
{{ locale.currentLang?.flag || '🏳️' }}
|
|
72
|
-
</span>
|
|
73
|
-
</button>
|
|
74
|
-
</DropdownMenuTrigger>
|
|
75
|
-
<DropdownMenuContent align="start" class="vm-header__locale-menu">
|
|
76
|
-
<DropdownMenuItem
|
|
77
|
-
v-for="lang in locale.langs"
|
|
78
|
-
:key="lang.code"
|
|
79
|
-
class="vm-header__locale-item"
|
|
80
|
-
:class="{ 'is-active': locale.locale === lang.code }"
|
|
81
|
-
:disabled="localeSwitching"
|
|
82
|
-
@click="switchLocale(lang.code)"
|
|
83
|
-
>
|
|
84
|
-
<span class="vm-header__flag" aria-hidden="true">
|
|
85
|
-
{{ lang.flag || '🏳️' }}
|
|
86
|
-
</span>
|
|
87
|
-
<span class="vm-header__locale-label">{{ lang.name }}</span>
|
|
88
|
-
</DropdownMenuItem>
|
|
89
|
-
</DropdownMenuContent>
|
|
90
|
-
</DropdownMenu>
|
|
91
|
-
|
|
92
|
-
<DropdownMenu>
|
|
93
|
-
<DropdownMenuTrigger as-child>
|
|
94
|
-
<button type="button" class="vm-header__user">
|
|
95
|
-
<span class="vm-header__avatar">
|
|
96
|
-
{{ (user.username || 'A').slice(0, 1).toUpperCase() }}
|
|
97
|
-
</span>
|
|
98
|
-
<span class="vm-header__name">{{ user.username }}</span>
|
|
99
|
-
<i class="ri-arrow-down-s-line" />
|
|
100
|
-
</button>
|
|
101
|
-
</DropdownMenuTrigger>
|
|
102
|
-
<DropdownMenuContent align="end" class="w-44">
|
|
103
|
-
<DropdownMenuLabel class="text-xs font-normal text-muted-foreground">
|
|
104
|
-
{{ user.username }}
|
|
105
|
-
</DropdownMenuLabel>
|
|
106
|
-
<DropdownMenuSeparator />
|
|
107
|
-
<DropdownMenuItem
|
|
108
|
-
class="text-xs"
|
|
109
|
-
:disabled="loggingOut"
|
|
110
|
-
@click="logout"
|
|
111
|
-
>
|
|
112
|
-
<i class="ri-logout-box-r-line" />
|
|
113
|
-
{{
|
|
114
|
-
loggingOut
|
|
115
|
-
? '退出中…'
|
|
116
|
-
: locale.t('header.logout', '退出登录')
|
|
117
|
-
}}
|
|
118
|
-
</DropdownMenuItem>
|
|
119
|
-
</DropdownMenuContent>
|
|
120
|
-
</DropdownMenu>
|
|
121
|
-
</div>
|
|
122
|
-
</header>
|
|
123
|
-
</div>
|
|
124
|
-
</template>
|
|
125
|
-
|
|
126
|
-
<script setup lang="ts">
|
|
127
|
-
import { api } from '../../api/client'
|
|
128
|
-
import { getAdminShellHooks } from '../../lib/shell'
|
|
129
|
-
import { useThemeStore } from '../../stores/theme'
|
|
130
|
-
import { useLocaleStore } from '../../stores/locale'
|
|
131
|
-
|
|
132
|
-
defineOptions({ name: 'vm-app-header' })
|
|
133
|
-
|
|
134
|
-
const app = useAppStore()
|
|
135
|
-
const theme = useThemeStore()
|
|
136
|
-
const locale = useLocaleStore()
|
|
137
|
-
const user = useUserStore()
|
|
138
|
-
const tags = useTagsStore()
|
|
139
|
-
const router = useRouter()
|
|
140
|
-
const { browser } = useBrowser()
|
|
141
|
-
|
|
142
|
-
const loggingOut = ref(false)
|
|
143
|
-
const localeSwitching = ref(false)
|
|
144
|
-
|
|
145
|
-
async function switchLocale(code: string) {
|
|
146
|
-
if (localeSwitching.value) return
|
|
147
|
-
localeSwitching.value = true
|
|
148
|
-
try {
|
|
149
|
-
await locale.setLocale(code)
|
|
150
|
-
} finally {
|
|
151
|
-
localeSwitching.value = false
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
async function logout() {
|
|
156
|
-
if (loggingOut.value) return
|
|
157
|
-
loggingOut.value = true
|
|
158
|
-
try {
|
|
159
|
-
await api.logout()
|
|
160
|
-
} finally {
|
|
161
|
-
const hooks = getAdminShellHooks()
|
|
162
|
-
await hooks.onLogoutCleanup?.()
|
|
163
|
-
user.logout()
|
|
164
|
-
tags.clear()
|
|
165
|
-
hooks.resetMenuRoutes?.()
|
|
166
|
-
// 硬跳转:卸掉 Layout 与动态路由残留,避免 URL 已是 /login 仍停在壳层
|
|
167
|
-
location.href = '/login'
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
function toggleTheme() {
|
|
172
|
-
theme.setTheme(theme.themeId === 'dark' ? 'light' : 'dark')
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
function goBack() {
|
|
176
|
-
if (window.history.length > 1) router.back()
|
|
177
|
-
else void router.push('/')
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
function reloadPage() {
|
|
181
|
-
void app.reloadView()
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
function goHome() {
|
|
185
|
-
void router.push('/')
|
|
186
|
-
}
|
|
187
|
-
</script>
|
|
188
|
-
|
|
189
|
-
<style lang="scss" scoped>
|
|
190
|
-
.vm-header {
|
|
191
|
-
flex-shrink: 0;
|
|
192
|
-
/* 顶栏只要上边距,贴紧下方内容区(不要下边距) */
|
|
193
|
-
margin: 12px 0 0;
|
|
194
|
-
background: color-mix(in srgb, var(--background) 88%, transparent);
|
|
195
|
-
backdrop-filter: blur(10px);
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
.vm-header__bar {
|
|
199
|
-
display: flex;
|
|
200
|
-
/* 与按钮/Tab 同高,避免顶栏底部多出一截被当成「上边距」 */
|
|
201
|
-
height: 32px;
|
|
202
|
-
align-items: center;
|
|
203
|
-
justify-content: space-between;
|
|
204
|
-
gap: 12px;
|
|
205
|
-
/* 左右与内容区 --vm-gutter 对齐 */
|
|
206
|
-
padding: 0 12px;
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
.vm-header__tools {
|
|
210
|
-
display: flex;
|
|
211
|
-
min-width: 0;
|
|
212
|
-
flex: 1;
|
|
213
|
-
align-items: center;
|
|
214
|
-
gap: 4px;
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
.vm-header__right {
|
|
218
|
-
display: flex;
|
|
219
|
-
flex-shrink: 0;
|
|
220
|
-
align-items: center;
|
|
221
|
-
gap: 4px;
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
.vm-header__icon-btn {
|
|
225
|
-
display: inline-flex;
|
|
226
|
-
width: 32px;
|
|
227
|
-
height: 32px;
|
|
228
|
-
flex-shrink: 0;
|
|
229
|
-
align-items: center;
|
|
230
|
-
justify-content: center;
|
|
231
|
-
border: none;
|
|
232
|
-
border-radius: 10px;
|
|
233
|
-
background: var(--muted);
|
|
234
|
-
color: var(--foreground);
|
|
235
|
-
font-size: 16px;
|
|
236
|
-
cursor: pointer;
|
|
237
|
-
transition: background 0.15s ease, color 0.15s ease;
|
|
238
|
-
|
|
239
|
-
&:hover {
|
|
240
|
-
background: color-mix(in srgb, var(--muted) 70%, var(--foreground) 8%);
|
|
241
|
-
color: var(--foreground);
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
&:active {
|
|
245
|
-
background: color-mix(in srgb, var(--muted) 45%, var(--foreground) 18%);
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
.vm-header__locale-btn {
|
|
250
|
-
&:disabled {
|
|
251
|
-
opacity: 0.6;
|
|
252
|
-
cursor: not-allowed;
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
.vm-header__locale-menu {
|
|
257
|
-
min-width: 0 !important;
|
|
258
|
-
width: max-content;
|
|
259
|
-
max-width: 160px;
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
.vm-header__flag {
|
|
263
|
-
font-size: 18px;
|
|
264
|
-
line-height: 1;
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
.vm-header__locale-item {
|
|
268
|
-
display: flex;
|
|
269
|
-
align-items: center;
|
|
270
|
-
gap: 8px;
|
|
271
|
-
font-size: 12px;
|
|
272
|
-
|
|
273
|
-
&.is-active {
|
|
274
|
-
background: color-mix(in srgb, var(--brand) 14%, transparent);
|
|
275
|
-
color: var(--brand);
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
&.is-active:focus,
|
|
279
|
-
&.is-active:hover {
|
|
280
|
-
background: color-mix(in srgb, var(--brand) 20%, transparent);
|
|
281
|
-
color: var(--brand);
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
.vm-header__locale-label {
|
|
286
|
-
flex: 1;
|
|
287
|
-
min-width: 0;
|
|
288
|
-
overflow: hidden;
|
|
289
|
-
text-overflow: ellipsis;
|
|
290
|
-
white-space: nowrap;
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
.vm-header__user {
|
|
294
|
-
display: inline-flex;
|
|
295
|
-
height: 32px;
|
|
296
|
-
align-items: center;
|
|
297
|
-
gap: 8px;
|
|
298
|
-
padding: 0 8px 0 0;
|
|
299
|
-
border: none;
|
|
300
|
-
border-radius: 999px;
|
|
301
|
-
background: transparent;
|
|
302
|
-
color: var(--foreground);
|
|
303
|
-
cursor: pointer;
|
|
304
|
-
transition: background 0.15s ease;
|
|
305
|
-
|
|
306
|
-
&:hover {
|
|
307
|
-
background: var(--muted);
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
> i {
|
|
311
|
-
font-size: 14px;
|
|
312
|
-
opacity: 0.45;
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
.vm-header__avatar {
|
|
317
|
-
display: inline-flex;
|
|
318
|
-
width: 32px;
|
|
319
|
-
height: 32px;
|
|
320
|
-
align-items: center;
|
|
321
|
-
justify-content: center;
|
|
322
|
-
border-radius: 50%;
|
|
323
|
-
background: var(--brand-soft);
|
|
324
|
-
color: var(--brand);
|
|
325
|
-
font-size: 12px;
|
|
326
|
-
font-weight: 700;
|
|
327
|
-
}
|
|
328
|
-
|
|
329
|
-
.vm-header__name {
|
|
330
|
-
display: none;
|
|
331
|
-
max-width: 100px;
|
|
332
|
-
overflow: hidden;
|
|
333
|
-
text-overflow: ellipsis;
|
|
334
|
-
white-space: nowrap;
|
|
335
|
-
font-size: 13px;
|
|
336
|
-
|
|
337
|
-
@media (min-width: 640px) {
|
|
338
|
-
display: inline;
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
</style>
|