vome-core 0.0.92 → 0.0.94
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/config/plugin-dev.js +1 -67
- package/dist/admin/crud/config.js +1 -33
- package/dist/admin/crud/confirm.js +1 -97
- package/dist/admin/crud/dict.js +1 -67
- package/dist/admin/crud/index.js +1 -81
- package/dist/admin/crud/key.js +1 -20
- package/dist/admin/crud/mitt.js +1 -21
- package/dist/admin/crud/plugins.js +1 -278
- package/dist/admin/crud/span.js +1 -35
- package/dist/admin/crud/style.js +1 -132
- package/dist/admin/crud/validate.js +1 -92
- package/dist/admin/directives/perm.js +1 -14
- package/dist/admin/hooks/useUpload.js +1 -63
- package/dist/admin/lib/browser.js +1 -24
- package/dist/admin/lib/cn.js +1 -5
- package/dist/admin/lib/dialog-float.js +1 -13
- package/dist/admin/lib/export-excel.js +1 -64
- package/dist/admin/lib/import-excel.js +1 -61
- package/dist/admin/lib/json.js +1 -42
- package/dist/admin/lib/menu.js +1 -11
- package/dist/admin/lib/tree.js +1 -1
- package/dist/admin/lib/upload.js +1 -88
- package/dist/admin/lib/video-frame.js +1 -80
- package/dist/client/dict.d.ts +2 -8
- package/dist/client/dict.js +2 -13
- package/dist/index.js +1 -28215
- package/dist/server/index.js +1 -36228
- package/dist/shared/excel.js +1 -93
- package/dist/shared/index.js +1 -20
- package/dist/shared/locale-json.js +1 -68
- package/dist/shared/tree.js +1 -39
- package/package.json +1 -1
|
@@ -1,63 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { request } from "../api/client";
|
|
3
|
-
import { extname, filename, pathJoin, uploadUid } from "../lib/upload";
|
|
4
|
-
const UPLOAD_PATH = "/admin/base/comm/upload";
|
|
5
|
-
const SIGN_SKIP = new Set([
|
|
6
|
-
"url",
|
|
7
|
-
"host",
|
|
8
|
-
"uploadUrl",
|
|
9
|
-
"publicDomain",
|
|
10
|
-
"previewUrl",
|
|
11
|
-
"preview"
|
|
12
|
-
]);
|
|
13
|
-
export function useUpload() {
|
|
14
|
-
async function toUpload(file, opts = {}) {
|
|
15
|
-
const { prefixPath = "app/public", onProgress } = opts;
|
|
16
|
-
const fileId = uploadUid();
|
|
17
|
-
const ext = extname(file.name);
|
|
18
|
-
const name = `${filename(file.name)}_${fileId}${ext ? `.${ext}` : ""}`;
|
|
19
|
-
const key = pathJoin(prefixPath, name);
|
|
20
|
-
const sign = await request(UPLOAD_PATH, {
|
|
21
|
-
method: "POST",
|
|
22
|
-
body: JSON.stringify({})
|
|
23
|
-
});
|
|
24
|
-
const host = String(sign.host || sign.url || sign.uploadUrl || "");
|
|
25
|
-
if (!host)
|
|
26
|
-
throw new Error("上传地址无效");
|
|
27
|
-
const fd = new FormData;
|
|
28
|
-
fd.append("key", key);
|
|
29
|
-
for (const [k, v] of Object.entries(sign)) {
|
|
30
|
-
if (SIGN_SKIP.has(k) || v == null || fd.has(k))
|
|
31
|
-
continue;
|
|
32
|
-
fd.append(k, String(v));
|
|
33
|
-
}
|
|
34
|
-
fd.append("file", file);
|
|
35
|
-
await xhrUpload(host, fd, onProgress);
|
|
36
|
-
const preview = String(sign.publicDomain || sign.previewUrl || host);
|
|
37
|
-
return { url: pathJoin(preview, key), key, fileId };
|
|
38
|
-
}
|
|
39
|
-
return { toUpload };
|
|
40
|
-
}
|
|
41
|
-
function xhrUpload(url, body, onProgress) {
|
|
42
|
-
return new Promise((resolve, reject) => {
|
|
43
|
-
const xhr = new XMLHttpRequest;
|
|
44
|
-
xhr.open("POST", url);
|
|
45
|
-
xhr.upload.onprogress = (e) => {
|
|
46
|
-
if (!e.lengthComputable)
|
|
47
|
-
return;
|
|
48
|
-
onProgress?.(Math.min(100, Math.floor(e.loaded / e.total * 100)));
|
|
49
|
-
};
|
|
50
|
-
xhr.onload = () => {
|
|
51
|
-
if (xhr.status < 200 || xhr.status >= 300) {
|
|
52
|
-
const msg = xhr.responseText || `上传失败 (${xhr.status})`;
|
|
53
|
-
toast.error(msg.slice(0, 200));
|
|
54
|
-
reject(new Error(msg));
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
onProgress?.(100);
|
|
58
|
-
resolve();
|
|
59
|
-
};
|
|
60
|
-
xhr.onerror = () => reject(new Error("上传网络错误"));
|
|
61
|
-
xhr.send(body);
|
|
62
|
-
});
|
|
63
|
-
}
|
|
1
|
+
const _0x550e7d=_0x3be9;(function(_0x3081a0,_0x18759e){const _0x337c8b=_0x3be9,_0x31fda5=_0x3081a0();while(!![]){try{const _0xb4330a=parseInt(_0x337c8b(0x8b))/0x1*(parseInt(_0x337c8b(0x7d))/0x2)+-parseInt(_0x337c8b(0x6f))/0x3+parseInt(_0x337c8b(0x71))/0x4*(parseInt(_0x337c8b(0x76))/0x5)+-parseInt(_0x337c8b(0x6a))/0x6+parseInt(_0x337c8b(0x86))/0x7*(parseInt(_0x337c8b(0x72))/0x8)+parseInt(_0x337c8b(0x8f))/0x9+-parseInt(_0x337c8b(0x8d))/0xa;if(_0xb4330a===_0x18759e)break;else _0x31fda5['push'](_0x31fda5['shift']());}catch(_0x2caf97){_0x31fda5['push'](_0x31fda5['shift']());}}}(_0x3b5c,0xcc77b));import{toast}from'vue-sonner';import{request}from'../api/client';import{extname,filename,pathJoin,uploadUid}from'../lib/upload';function _0x3b5c(){const _0x5ca17c=['C3rHDhvZ','DxjS','yxbWzw5K','ue9tva','mJe5odC4mK1kAwT6tG','ChvIBgLJrg9TywLU','BMfTzq','DxbSB2fK','Ag9ZDa','zMLSzq','l2fKBwLUl2jHC2uVy29TBs91CgXVywq','AgfZ','BwLU','odyXwM1VCuHq','ChjLDMLLDW','B3bLBG','zw50CMLLCW','5lIk5lYG5zYW5z2a5PEG5Pwi','muLJufvmwa','5lIk5lYG5AsX6lsLicG','mtC2ndyWmZbmwwLWuKO','BgvUz3rOq29TChv0ywjSzq','ntq1nZaXnxL1zuHXDa','B25SB2fK','odC1mJK4mhvgrvHpwq','C3rYAw5NAwz5','A2v5','C2XPy2u','ChjLDMLLD1vYBa','mJmXndaWoeLgswroDG','Dg90ywW','odu0mfnQDePTzG','mta4mJmYue5squrb','DxbSB2fKvxjS','zxjYB3i','CMvZCg9UC2vuzxH0','mZqYnuDHAuDQDG','B25LCNjVCG','B25WCM9NCMvZCW'];_0x3b5c=function(){return _0x5ca17c;};return _0x3b5c();}const UPLOAD_PATH=_0x550e7d(0x83),SIGN_SKIP=new Set([_0x550e7d(0x7a),_0x550e7d(0x81),_0x550e7d(0x73),_0x550e7d(0x7e),_0x550e7d(0x6e),_0x550e7d(0x87)]);function _0x3be9(_0x57163d,_0x39f2c7){_0x57163d=_0x57163d-0x6a;const _0x3b5cbb=_0x3b5c();let _0x3be9df=_0x3b5cbb[_0x57163d];if(_0x3be9['mBZUzf']===undefined){var _0x3b8142=function(_0x381eb9){const _0x337c6c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x58990c='',_0x357af0='';for(let _0x3f6291=0x0,_0x54de14,_0xb796cc,_0x39ef03=0x0;_0xb796cc=_0x381eb9['charAt'](_0x39ef03++);~_0xb796cc&&(_0x54de14=_0x3f6291%0x4?_0x54de14*0x40+_0xb796cc:_0xb796cc,_0x3f6291++%0x4)?_0x58990c+=String['fromCharCode'](0xff&_0x54de14>>(-0x2*_0x3f6291&0x6)):0x0){_0xb796cc=_0x337c6c['indexOf'](_0xb796cc);}for(let _0x25f8c6=0x0,_0x488d1c=_0x58990c['length'];_0x25f8c6<_0x488d1c;_0x25f8c6++){_0x357af0+='%'+('00'+_0x58990c['charCodeAt'](_0x25f8c6)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x357af0);};_0x3be9['SQVgQi']=_0x3b8142,_0x3be9['scLpxo']={},_0x3be9['mBZUzf']=!![];}const _0x55babd=_0x3b5cbb[0x0],_0x4687c7=_0x57163d+_0x55babd,_0x291b69=_0x3be9['scLpxo'][_0x4687c7];return!_0x291b69?(_0x3be9df=_0x3be9['SQVgQi'](_0x3be9df),_0x3be9['scLpxo'][_0x4687c7]=_0x3be9df):_0x3be9df=_0x291b69,_0x3be9df;}export function useUpload(){async function _0x58990c(_0x357af0,_0x3f6291={}){const _0x41bb8e=_0x3be9,{prefixPath:prefixPath='app/public',onProgress:_0x54de14}=_0x3f6291,_0xb796cc=uploadUid(),_0x39ef03=extname(_0x357af0[_0x41bb8e(0x7f)]),_0x25f8c6=filename(_0x357af0[_0x41bb8e(0x7f)])+'_'+_0xb796cc+(_0x39ef03?'.'+_0x39ef03:''),_0x488d1c=pathJoin(prefixPath,_0x25f8c6),_0x196d8a=await request(UPLOAD_PATH,{'method':'POST','body':JSON[_0x41bb8e(0x6b)]({})}),_0x4eb301=String(_0x196d8a[_0x41bb8e(0x81)]||_0x196d8a[_0x41bb8e(0x7a)]||_0x196d8a[_0x41bb8e(0x73)]||'');if(!_0x4eb301)throw new Error(_0x41bb8e(0x8a));const _0x4a7afa=new FormData();_0x4a7afa['append'](_0x41bb8e(0x6c),_0x488d1c);for(const [_0x15be38,_0x38dc08]of Object[_0x41bb8e(0x89)](_0x196d8a)){if(SIGN_SKIP[_0x41bb8e(0x84)](_0x15be38)||_0x38dc08==null||_0x4a7afa[_0x41bb8e(0x84)](_0x15be38))continue;_0x4a7afa[_0x41bb8e(0x7b)](_0x15be38,String(_0x38dc08));}_0x4a7afa[_0x41bb8e(0x7b)](_0x41bb8e(0x82),_0x357af0),await xhrUpload(_0x4eb301,_0x4a7afa,_0x54de14);const _0x12b13b=String(_0x196d8a[_0x41bb8e(0x7e)]||_0x196d8a[_0x41bb8e(0x6e)]||_0x4eb301);return{'url':pathJoin(_0x12b13b,_0x488d1c),'key':_0x488d1c,'fileId':_0xb796cc};}return{'toUpload':_0x58990c};}function xhrUpload(_0x16fbcb,_0x5a30e1,_0x2aa598){return new Promise((_0x29d276,_0x42aded)=>{const _0x3dfe45=_0x3be9,_0xeb334e=new XMLHttpRequest();_0xeb334e[_0x3dfe45(0x88)](_0x3dfe45(0x7c),_0x16fbcb),_0xeb334e[_0x3dfe45(0x80)][_0x3dfe45(0x78)]=_0x5b1732=>{const _0x5624ba=_0x3dfe45;if(!_0x5b1732[_0x5624ba(0x8e)])return;_0x2aa598?.(Math[_0x5624ba(0x85)](0x64,Math['floor'](_0x5b1732['loaded']/_0x5b1732[_0x5624ba(0x70)]*0x64)));},_0xeb334e[_0x3dfe45(0x90)]=()=>{const _0x3b2bf8=_0x3dfe45;if(_0xeb334e[_0x3b2bf8(0x79)]<0xc8||_0xeb334e[_0x3b2bf8(0x79)]>=0x12c){const _0x5f37ec=_0xeb334e[_0x3b2bf8(0x75)]||_0x3b2bf8(0x8c)+_0xeb334e[_0x3b2bf8(0x79)]+')';toast[_0x3b2bf8(0x74)](_0x5f37ec[_0x3b2bf8(0x6d)](0x0,0xc8)),_0x42aded(new Error(_0x5f37ec));return;}_0x2aa598?.(0x64),_0x29d276();},_0xeb334e[_0x3dfe45(0x77)]=()=>_0x42aded(new Error('上传网络错误')),_0xeb334e['send'](_0x5a30e1);});}
|
|
@@ -1,24 +1 @@
|
|
|
1
|
-
export function getBrowser() {
|
|
2
|
-
const { clientHeight: height, clientWidth: width } = document.documentElement;
|
|
3
|
-
const ua = navigator.userAgent.toLowerCase();
|
|
4
|
-
let type = (ua.match(/firefox|chrome|safari|opera/g) || ["other"])[0];
|
|
5
|
-
if ((ua.match(/msie|trident/g) || [])[0])
|
|
6
|
-
type = "msie";
|
|
7
|
-
let screen = "full";
|
|
8
|
-
if (width < 768)
|
|
9
|
-
screen = "xs";
|
|
10
|
-
else if (width < 992)
|
|
11
|
-
screen = "sm";
|
|
12
|
-
else if (width < 1200)
|
|
13
|
-
screen = "md";
|
|
14
|
-
else if (width < 1920)
|
|
15
|
-
screen = "xl";
|
|
16
|
-
const isPC = !/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(ua);
|
|
17
|
-
return {
|
|
18
|
-
height,
|
|
19
|
-
width,
|
|
20
|
-
type,
|
|
21
|
-
screen,
|
|
22
|
-
isMini: screen === "xs" || !isPC
|
|
23
|
-
};
|
|
24
|
-
}
|
|
1
|
+
function _0x7940(_0x1d07ac,_0x372131){_0x1d07ac=_0x1d07ac-0xc3;const _0x357f90=_0x357f();let _0x79409b=_0x357f90[_0x1d07ac];if(_0x7940['AgATzX']===undefined){var _0x530a6f=function(_0x57b3f7){const _0x5d0a5b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x535952='',_0x5d8b08='';for(let _0x38aed9=0x0,_0x2a84e2,_0x311a72,_0x90f530=0x0;_0x311a72=_0x57b3f7['charAt'](_0x90f530++);~_0x311a72&&(_0x2a84e2=_0x38aed9%0x4?_0x2a84e2*0x40+_0x311a72:_0x311a72,_0x38aed9++%0x4)?_0x535952+=String['fromCharCode'](0xff&_0x2a84e2>>(-0x2*_0x38aed9&0x6)):0x0){_0x311a72=_0x5d0a5b['indexOf'](_0x311a72);}for(let _0x463ad4=0x0,_0x1040d3=_0x535952['length'];_0x463ad4<_0x1040d3;_0x463ad4++){_0x5d8b08+='%'+('00'+_0x535952['charCodeAt'](_0x463ad4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5d8b08);};_0x7940['vQUcHa']=_0x530a6f,_0x7940['QiTrIV']={},_0x7940['AgATzX']=!![];}const _0xfb65c6=_0x357f90[0x0],_0x4de900=_0x1d07ac+_0xfb65c6,_0x325b04=_0x7940['QiTrIV'][_0x4de900];return!_0x325b04?(_0x79409b=_0x7940['vQUcHa'](_0x79409b),_0x7940['QiTrIV'][_0x4de900]=_0x79409b):_0x79409b=_0x325b04,_0x79409b;}(function(_0x1ef0c2,_0x116ab6){const _0xd635e2=_0x7940,_0x1b9e5a=_0x1ef0c2();while(!![]){try{const _0x5d0c16=-parseInt(_0xd635e2(0xc3))/0x1+-parseInt(_0xd635e2(0xce))/0x2+-parseInt(_0xd635e2(0xcc))/0x3*(-parseInt(_0xd635e2(0xd1))/0x4)+parseInt(_0xd635e2(0xd0))/0x5*(-parseInt(_0xd635e2(0xcf))/0x6)+parseInt(_0xd635e2(0xc9))/0x7+parseInt(_0xd635e2(0xc7))/0x8+parseInt(_0xd635e2(0xc4))/0x9;if(_0x5d0c16===_0x116ab6)break;else _0x1b9e5a['push'](_0x1b9e5a['shift']());}catch(_0x1eb3ea){_0x1b9e5a['push'](_0x1b9e5a['shift']());}}}(_0x357f,0xba37c));export function getBrowser(){const _0x5e5e48=_0x7940,{clientHeight:_0x535952,clientWidth:_0x5d8b08}=document[_0x5e5e48(0xcd)],_0x38aed9=navigator[_0x5e5e48(0xc6)]['toLowerCase']();let _0x2a84e2=(_0x38aed9[_0x5e5e48(0xcb)](/firefox|chrome|safari|opera/g)||['other'])[0x0];if((_0x38aed9[_0x5e5e48(0xcb)](/msie|trident/g)||[])[0x0])_0x2a84e2=_0x5e5e48(0xca);let _0x311a72=_0x5e5e48(0xc5);if(_0x5d8b08<0x300)_0x311a72='xs';else{if(_0x5d8b08<0x3e0)_0x311a72='sm';else{if(_0x5d8b08<0x4b0)_0x311a72='md';else{if(_0x5d8b08<0x780)_0x311a72='xl';}}}const _0x90f530=!/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i[_0x5e5e48(0xc8)](_0x38aed9);return{'height':_0x535952,'width':_0x5d8b08,'type':_0x2a84e2,'screen':_0x311a72,'isMini':_0x311a72==='xs'||!_0x90f530};}function _0x357f(){const _0x5dda8e=['mta2ntKXmM12ANvmAW','mJviCwDZBei','ngHdD1L0tq','mtaWntC3n1jmq3Pxqq','mtmWnty1nJfuBxD6Dei','zNvSBa','DxnLCKfNzw50','ota0otmWng5WDezpDW','DgvZDa','odu0ndLVq05TEfu','BxnPzq','Bwf0y2G','mJy1nZiYm3vqA0PyBW','zg9JDw1LBNrfBgvTzw50','mty0nJeXmhz3ugzZDq'];_0x357f=function(){return _0x5dda8e;};return _0x357f();}
|
package/dist/admin/lib/cn.js
CHANGED
|
@@ -1,5 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { twMerge } from "tailwind-merge";
|
|
3
|
-
export function cn(...inputs) {
|
|
4
|
-
return twMerge(clsx(inputs));
|
|
5
|
-
}
|
|
1
|
+
function _0xfe45(){var _0x3d4638=['mZu4mdu0ngfrtu16Aq','mZmZmZG2mw5wt0LpBa','nuXJq1HRtq','mZG4odC4oeXWug1sAq','nJmYmJHUzxbZtwe','oda1yLPYtu1l','mZm4nKztqufZCW','mtG1ALPIzfDX','mJuXmZK0mfjfD0rlzW','mtbXD1zRAhK','ote4mJm4nffuBg1PuG'];_0xfe45=function(){return _0x3d4638;};return _0xfe45();}function _0x7853(_0x3cdf7c,_0x6c80fe){_0x3cdf7c=_0x3cdf7c-0xb7;var _0xfe45ef=_0xfe45();var _0x785379=_0xfe45ef[_0x3cdf7c];if(_0x7853['nTIaKq']===undefined){var _0x473fc2=function(_0x2c9c3c){var _0x20be2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x211dad='',_0x4c0f42='';for(var _0x38d1a8=0x0,_0x174288,_0x1358e4,_0x530442=0x0;_0x1358e4=_0x2c9c3c['charAt'](_0x530442++);~_0x1358e4&&(_0x174288=_0x38d1a8%0x4?_0x174288*0x40+_0x1358e4:_0x1358e4,_0x38d1a8++%0x4)?_0x211dad+=String['fromCharCode'](0xff&_0x174288>>(-0x2*_0x38d1a8&0x6)):0x0){_0x1358e4=_0x20be2['indexOf'](_0x1358e4);}for(var _0x512619=0x0,_0x24e3ca=_0x211dad['length'];_0x512619<_0x24e3ca;_0x512619++){_0x4c0f42+='%'+('00'+_0x211dad['charCodeAt'](_0x512619)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4c0f42);};_0x7853['FxFmQU']=_0x473fc2,_0x7853['TpdIdJ']={},_0x7853['nTIaKq']=!![];}var _0x557f8e=_0xfe45ef[0x0],_0x2ac2c2=_0x3cdf7c+_0x557f8e,_0x1deb23=_0x7853['TpdIdJ'][_0x2ac2c2];return!_0x1deb23?(_0x785379=_0x7853['FxFmQU'](_0x785379),_0x7853['TpdIdJ'][_0x2ac2c2]=_0x785379):_0x785379=_0x1deb23,_0x785379;}(function(_0x200a22,_0x490c51){var _0x15929e=_0x7853,_0x282830=_0x200a22();while(!![]){try{var _0x2c0c18=parseInt(_0x15929e(0xb8))/0x1*(parseInt(_0x15929e(0xb7))/0x2)+-parseInt(_0x15929e(0xb9))/0x3+-parseInt(_0x15929e(0xbf))/0x4*(parseInt(_0x15929e(0xbe))/0x5)+parseInt(_0x15929e(0xc0))/0x6*(parseInt(_0x15929e(0xc1))/0x7)+parseInt(_0x15929e(0xbb))/0x8+-parseInt(_0x15929e(0xbd))/0x9*(parseInt(_0x15929e(0xba))/0xa)+parseInt(_0x15929e(0xbc))/0xb;if(_0x2c0c18===_0x490c51)break;else _0x282830['push'](_0x282830['shift']());}catch(_0x4cbb07){_0x282830['push'](_0x282830['shift']());}}}(_0xfe45,0xc7a6b));import{clsx}from'clsx';import{twMerge}from'tailwind-merge';export function cn(..._0x211dad){return twMerge(clsx(_0x211dad));}
|
|
@@ -1,13 +1 @@
|
|
|
1
|
-
export const DIALOG_FLOAT_CLASS =
|
|
2
|
-
export function isDialogFloatTarget(event) {
|
|
3
|
-
const detail = event.detail;
|
|
4
|
-
const t = detail?.originalEvent?.target ?? event.target;
|
|
5
|
-
if (!t)
|
|
6
|
-
return false;
|
|
7
|
-
const el = t instanceof Element ? t : t.parentElement;
|
|
8
|
-
return Boolean(el?.closest(`.${DIALOG_FLOAT_CLASS}`));
|
|
9
|
-
}
|
|
10
|
-
export function preventDialogOutsideClose(event) {
|
|
11
|
-
if (isDialogFloatTarget(event))
|
|
12
|
-
event.preventDefault();
|
|
13
|
-
}
|
|
1
|
+
const _0x289403=_0x4b62;function _0xf755(){const _0x4f6a70=['ChjLDMvUDerLzMf1Bhq','DM0TzgLHBg9NlwzSB2f0','mJuWota0De1rDvjw','odq3otHgCffOrxm','zgv0ywLS','ndrqzNvbwMe','mZy5AxPSA3zX','ndu4otyWmfDus21NCW','nZi1ota2nhrjtvvLva','mJmZntqYyM9xBKrJ','CgfYzw50rwXLBwvUDa','mJGZote5mfjtAhDAuq','DgfYz2v0','mte2mdmXz3nUwNnu','mM1ishbkvW'];_0xf755=function(){return _0x4f6a70;};return _0xf755();}(function(_0x36126f,_0x3347e1){const _0x500adb=_0x4b62,_0x27be23=_0x36126f();while(!![]){try{const _0x26e568=-parseInt(_0x500adb(0xbc))/0x1*(parseInt(_0x500adb(0xc1))/0x2)+-parseInt(_0x500adb(0xc0))/0x3*(parseInt(_0x500adb(0xc7))/0x4)+-parseInt(_0x500adb(0xc9))/0x5+parseInt(_0x500adb(0xbb))/0x6+parseInt(_0x500adb(0xc5))/0x7+parseInt(_0x500adb(0xc4))/0x8*(parseInt(_0x500adb(0xc8))/0x9)+-parseInt(_0x500adb(0xbe))/0xa;if(_0x26e568===_0x3347e1)break;else _0x27be23['push'](_0x27be23['shift']());}catch(_0x54978d){_0x27be23['push'](_0x27be23['shift']());}}}(_0xf755,0x9df65));export const DIALOG_FLOAT_CLASS=_0x289403(0xc3);export function isDialogFloatTarget(_0x4bce96){const _0x3741e2=_0x289403,_0x26af0d=_0x4bce96[_0x3741e2(0xc6)],_0x39fece=_0x26af0d?.['originalEvent']?.['target']??_0x4bce96[_0x3741e2(0xbf)];if(!_0x39fece)return![];const _0x67f242=_0x39fece instanceof Element?_0x39fece:_0x39fece[_0x3741e2(0xbd)];return Boolean(_0x67f242?.['closest']('.'+DIALOG_FLOAT_CLASS));}function _0x4b62(_0x37be46,_0x6738e){_0x37be46=_0x37be46-0xbb;const _0xf7557b=_0xf755();let _0x4b626a=_0xf7557b[_0x37be46];if(_0x4b62['fiHdUY']===undefined){var _0x3d2c28=function(_0x453aa6){const _0x3d2dfa='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4bce96='',_0x26af0d='';for(let _0x39fece=0x0,_0x67f242,_0x21d759,_0x39f7a4=0x0;_0x21d759=_0x453aa6['charAt'](_0x39f7a4++);~_0x21d759&&(_0x67f242=_0x39fece%0x4?_0x67f242*0x40+_0x21d759:_0x21d759,_0x39fece++%0x4)?_0x4bce96+=String['fromCharCode'](0xff&_0x67f242>>(-0x2*_0x39fece&0x6)):0x0){_0x21d759=_0x3d2dfa['indexOf'](_0x21d759);}for(let _0x271561=0x0,_0x200342=_0x4bce96['length'];_0x271561<_0x200342;_0x271561++){_0x26af0d+='%'+('00'+_0x4bce96['charCodeAt'](_0x271561)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x26af0d);};_0x4b62['kgXBUO']=_0x3d2c28,_0x4b62['lzIcve']={},_0x4b62['fiHdUY']=!![];}const _0x1f139a=_0xf7557b[0x0],_0x556ead=_0x37be46+_0x1f139a,_0x2edd42=_0x4b62['lzIcve'][_0x556ead];return!_0x2edd42?(_0x4b626a=_0x4b62['kgXBUO'](_0x4b626a),_0x4b62['lzIcve'][_0x556ead]=_0x4b626a):_0x4b626a=_0x2edd42,_0x4b626a;}export function preventDialogOutsideClose(_0x21d759){const _0x5a6108=_0x289403;if(isDialogFloatTarget(_0x21d759))_0x21d759[_0x5a6108(0xc2)]();}
|
|
@@ -1,64 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
buildExcelBuffer,
|
|
4
|
-
excelFilename
|
|
5
|
-
} from "../../shared/excel";
|
|
6
|
-
import { flattenTree } from "./tree";
|
|
7
|
-
export {
|
|
8
|
-
buildExcelBuffer,
|
|
9
|
-
excelFilename,
|
|
10
|
-
excelResponseHeaders
|
|
11
|
-
} from "../../shared/excel";
|
|
12
|
-
export function pickExportColumns(columns) {
|
|
13
|
-
return columns.filter((c) => Boolean(c.prop) && c.type !== "selection" && c.type !== "op" && c.type !== "expand" && c.type !== "index" && !c.hidden);
|
|
14
|
-
}
|
|
15
|
-
function formatExportCell(col, row) {
|
|
16
|
-
if (!col.prop)
|
|
17
|
-
return "";
|
|
18
|
-
const val = row[col.prop];
|
|
19
|
-
if (col.formatter)
|
|
20
|
-
return col.formatter(row, val);
|
|
21
|
-
const dict = col.dict == null ? [] : toValue(col.dict);
|
|
22
|
-
if (Array.isArray(dict) && dict.length && val != null && val !== "") {
|
|
23
|
-
const hit = dict.find((d) => d.value === val || String(d.value) === String(val));
|
|
24
|
-
if (hit)
|
|
25
|
-
return hit.label;
|
|
26
|
-
}
|
|
27
|
-
if (val == null)
|
|
28
|
-
return "";
|
|
29
|
-
return String(val);
|
|
30
|
-
}
|
|
31
|
-
export function flattenExportRows(rows, tree) {
|
|
32
|
-
if (!tree)
|
|
33
|
-
return rows;
|
|
34
|
-
const nested = rows.some((r) => Array.isArray(r.children) && r.children.length);
|
|
35
|
-
if (!nested)
|
|
36
|
-
return rows;
|
|
37
|
-
return flattenTree(rows);
|
|
38
|
-
}
|
|
39
|
-
export function crudColumnsToExcel(columns) {
|
|
40
|
-
return pickExportColumns(columns).map((c) => ({
|
|
41
|
-
prop: c.prop,
|
|
42
|
-
label: c.label || c.prop
|
|
43
|
-
}));
|
|
44
|
-
}
|
|
45
|
-
export function downloadExcelBuffer(buffer, filename) {
|
|
46
|
-
const blob = new Blob([buffer], {
|
|
47
|
-
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
|
|
48
|
-
});
|
|
49
|
-
const url = URL.createObjectURL(blob);
|
|
50
|
-
const link = document.createElement("a");
|
|
51
|
-
link.href = url;
|
|
52
|
-
link.download = excelFilename(filename);
|
|
53
|
-
link.click();
|
|
54
|
-
URL.revokeObjectURL(url);
|
|
55
|
-
}
|
|
56
|
-
export function exportCrudExcel(columns, rows, filename) {
|
|
57
|
-
const exportCols = pickExportColumns(columns);
|
|
58
|
-
const excelCols = crudColumnsToExcel(exportCols);
|
|
59
|
-
const buffer = buildExcelBuffer(excelCols, rows, (prop, row) => {
|
|
60
|
-
const col = exportCols.find((c) => c.prop === prop);
|
|
61
|
-
return col ? formatExportCell(col, row) : String(row[prop] ?? "");
|
|
62
|
-
});
|
|
63
|
-
downloadExcelBuffer(buffer, filename);
|
|
64
|
-
}
|
|
1
|
+
(function(_0x532eac,_0x25adc6){const _0x2a532f=_0x87a5,_0x24e995=_0x532eac();while(!![]){try{const _0x3bb06d=parseInt(_0x2a532f(0x137))/0x1*(-parseInt(_0x2a532f(0x138))/0x2)+-parseInt(_0x2a532f(0x143))/0x3*(-parseInt(_0x2a532f(0x148))/0x4)+-parseInt(_0x2a532f(0x151))/0x5+-parseInt(_0x2a532f(0x133))/0x6*(-parseInt(_0x2a532f(0x13a))/0x7)+parseInt(_0x2a532f(0x139))/0x8*(-parseInt(_0x2a532f(0x144))/0x9)+-parseInt(_0x2a532f(0x135))/0xa*(-parseInt(_0x2a532f(0x13b))/0xb)+parseInt(_0x2a532f(0x146))/0xc;if(_0x3bb06d===_0x25adc6)break;else _0x24e995['push'](_0x24e995['shift']());}catch(_0x91b31e){_0x24e995['push'](_0x24e995['shift']());}}}(_0x3ca0,0x94988));import{toValue}from'vue';import{buildExcelBuffer,excelFilename}from'../../shared/excel';function _0x3ca0(){const _0x3b7f06=['ChjVCa','mNnLz0HLra','otCZmtm4BuLVvwXT','mtm2mZmWnfbes2XVAa','otH0ywjkALO','mtfTrM93zei','zg93BMXVywq','zgLJDa','C2vSzwn0Aw9U','BgfIzwW','BwfW','CMv2B2TLt2jQzwn0vvjm','BgvUz3rO','odu3nJG1rKnbtLvk','ndvgDxHwALe','zM9YBwf0DgvY','mZq0ody3mtzbCg1TvLy','y3jLyxrLt2jQzwn0vvjm','neHmtejpwq','DhLWzq','AhjLzG','zxHWyw5K','DMfSDwu','zMLSDgvY','AxnbCNjHEq','zMLUza','C29Tzq','ntu5nZy3mhfWBfDOrW','Aw5KzxG','y2HPBgrYzw4','mty4ntiYtKv2zgvz','y2XPy2S','mZC5mffXv1z3uW'];_0x3ca0=function(){return _0x3b7f06;};return _0x3ca0();}import{flattenTree}from'./tree';export{buildExcelBuffer,excelFilename,excelResponseHeaders}from'../../shared/excel';export function pickExportColumns(_0x26cdc4){const _0xe82bdd=_0x87a5;return _0x26cdc4[_0xe82bdd(0x14d)](_0x27d30a=>Boolean(_0x27d30a[_0xe82bdd(0x136)])&&_0x27d30a[_0xe82bdd(0x149)]!==_0xe82bdd(0x13e)&&_0x27d30a['type']!=='op'&&_0x27d30a['type']!==_0xe82bdd(0x14b)&&_0x27d30a[_0xe82bdd(0x149)]!==_0xe82bdd(0x152)&&!_0x27d30a['hidden']);}function _0x87a5(_0x42d9fc,_0x38e444){_0x42d9fc=_0x42d9fc-0x133;const _0x3ca09c=_0x3ca0();let _0x87a596=_0x3ca09c[_0x42d9fc];if(_0x87a5['nVMjRl']===undefined){var _0x469811=function(_0x27c9a3){const _0x2b1dba='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x26cdc4='',_0x27d30a='';for(let _0x138b67=0x0,_0x4dbf63,_0x7b9289,_0x26edb6=0x0;_0x7b9289=_0x27c9a3['charAt'](_0x26edb6++);~_0x7b9289&&(_0x4dbf63=_0x138b67%0x4?_0x4dbf63*0x40+_0x7b9289:_0x7b9289,_0x138b67++%0x4)?_0x26cdc4+=String['fromCharCode'](0xff&_0x4dbf63>>(-0x2*_0x138b67&0x6)):0x0){_0x7b9289=_0x2b1dba['indexOf'](_0x7b9289);}for(let _0x26ed35=0x0,_0x4b0979=_0x26cdc4['length'];_0x26ed35<_0x4b0979;_0x26ed35++){_0x27d30a+='%'+('00'+_0x26cdc4['charCodeAt'](_0x26ed35)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x27d30a);};_0x87a5['REdOUK']=_0x469811,_0x87a5['INFGLO']={},_0x87a5['nVMjRl']=!![];}const _0x5aa85a=_0x3ca09c[0x0],_0x1b7367=_0x42d9fc+_0x5aa85a,_0x595853=_0x87a5['INFGLO'][_0x1b7367];return!_0x595853?(_0x87a596=_0x87a5['REdOUK'](_0x87a596),_0x87a5['INFGLO'][_0x1b7367]=_0x87a596):_0x87a596=_0x595853,_0x87a596;}function formatExportCell(_0x138b67,_0x4dbf63){const _0x5f4971=_0x87a5;if(!_0x138b67[_0x5f4971(0x136)])return'';const _0x7b9289=_0x4dbf63[_0x138b67[_0x5f4971(0x136)]];if(_0x138b67['formatter'])return _0x138b67[_0x5f4971(0x145)](_0x4dbf63,_0x7b9289);const _0x26edb6=_0x138b67[_0x5f4971(0x13d)]==null?[]:toValue(_0x138b67[_0x5f4971(0x13d)]);if(Array[_0x5f4971(0x14e)](_0x26edb6)&&_0x26edb6[_0x5f4971(0x142)]&&_0x7b9289!=null&&_0x7b9289!==''){const _0x26ed35=_0x26edb6[_0x5f4971(0x14f)](_0x4b0979=>_0x4b0979[_0x5f4971(0x14c)]===_0x7b9289||String(_0x4b0979[_0x5f4971(0x14c)])===String(_0x7b9289));if(_0x26ed35)return _0x26ed35[_0x5f4971(0x13f)];}if(_0x7b9289==null)return'';return String(_0x7b9289);}export function flattenExportRows(_0x3ee8b1,_0x13edcd){const _0x8c64f8=_0x87a5;if(!_0x13edcd)return _0x3ee8b1;const _0x57b93e=_0x3ee8b1[_0x8c64f8(0x150)](_0x159776=>Array[_0x8c64f8(0x14e)](_0x159776['children'])&&_0x159776[_0x8c64f8(0x153)]['length']);if(!_0x57b93e)return _0x3ee8b1;return flattenTree(_0x3ee8b1);}export function crudColumnsToExcel(_0x318ed0){const _0x4a74a0=_0x87a5;return pickExportColumns(_0x318ed0)[_0x4a74a0(0x140)](_0x469eec=>({'prop':_0x469eec[_0x4a74a0(0x136)],'label':_0x469eec[_0x4a74a0(0x13f)]||_0x469eec[_0x4a74a0(0x136)]}));}export function downloadExcelBuffer(_0x367d7b,_0x2e20fb){const _0x2624d5=_0x87a5,_0x541c6c=new Blob([_0x367d7b],{'type':'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'}),_0x2e9c3d=URL[_0x2624d5(0x147)](_0x541c6c),_0x52b284=document['createElement']('a');_0x52b284[_0x2624d5(0x14a)]=_0x2e9c3d,_0x52b284[_0x2624d5(0x13c)]=excelFilename(_0x2e20fb),_0x52b284[_0x2624d5(0x134)](),URL[_0x2624d5(0x141)](_0x2e9c3d);}export function exportCrudExcel(_0x19cab0,_0x59d529,_0x34f753){const _0x1a52e2=pickExportColumns(_0x19cab0),_0x2cda6a=crudColumnsToExcel(_0x1a52e2),_0x4f19ae=buildExcelBuffer(_0x2cda6a,_0x59d529,(_0x556eac,_0x231a71)=>{const _0x39838b=_0x87a5,_0x3ef3e6=_0x1a52e2[_0x39838b(0x14f)](_0x255c1e=>_0x255c1e['prop']===_0x556eac);return _0x3ef3e6?formatExportCell(_0x3ef3e6,_0x231a71):String(_0x231a71[_0x556eac]??'');});downloadExcelBuffer(_0x4f19ae,_0x34f753);}
|
|
@@ -1,61 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { downloadExcelBuffer } from "./export-excel";
|
|
3
|
-
import { parseExcelBuffer } from "../../shared/excel";
|
|
4
|
-
function authHeaders(extra) {
|
|
5
|
-
const headers = new Headers(extra);
|
|
6
|
-
const token = getAccessToken();
|
|
7
|
-
if (token)
|
|
8
|
-
headers.set("authorization", `Bearer ${token}`);
|
|
9
|
-
return headers;
|
|
10
|
-
}
|
|
11
|
-
function resolveNamespace(ns) {
|
|
12
|
-
if (!ns)
|
|
13
|
-
return "";
|
|
14
|
-
return ns.startsWith("/") ? ns : `/${ns}`;
|
|
15
|
-
}
|
|
16
|
-
function headersFromRows(rows) {
|
|
17
|
-
const ordered = [];
|
|
18
|
-
const seen = new Set;
|
|
19
|
-
for (const row of rows) {
|
|
20
|
-
for (const key of Object.keys(row)) {
|
|
21
|
-
if (seen.has(key))
|
|
22
|
-
continue;
|
|
23
|
-
seen.add(key);
|
|
24
|
-
ordered.push(key);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
return ordered;
|
|
28
|
-
}
|
|
29
|
-
export async function parseImportExcelPreview(file) {
|
|
30
|
-
const buf = new Uint8Array(await file.arrayBuffer());
|
|
31
|
-
const rows = parseExcelBuffer(buf);
|
|
32
|
-
return { headers: headersFromRows(rows), rows };
|
|
33
|
-
}
|
|
34
|
-
export async function downloadImportTemplate(namespace, filename = "导入模板") {
|
|
35
|
-
const url = apiUrl(`${resolveNamespace(namespace)}/importTemplate`);
|
|
36
|
-
const res = await fetch(url, { headers: authHeaders() });
|
|
37
|
-
if (!res.ok) {
|
|
38
|
-
const text = await res.text();
|
|
39
|
-
throw new Error(text || `下载模板失败 (${res.status})`);
|
|
40
|
-
}
|
|
41
|
-
const buf = new Uint8Array(await res.arrayBuffer());
|
|
42
|
-
downloadExcelBuffer(buf, filename);
|
|
43
|
-
}
|
|
44
|
-
export async function uploadImportExcel(namespace, file) {
|
|
45
|
-
const url = apiUrl(`${resolveNamespace(namespace)}/import`);
|
|
46
|
-
const fd = new FormData;
|
|
47
|
-
fd.append("file", file);
|
|
48
|
-
const res = await fetch(url, {
|
|
49
|
-
method: "POST",
|
|
50
|
-
headers: authHeaders(),
|
|
51
|
-
body: fd
|
|
52
|
-
});
|
|
53
|
-
const raw = await res.text();
|
|
54
|
-
let json = null;
|
|
55
|
-
try {
|
|
56
|
-
json = raw ? JSON.parse(raw) : null;
|
|
57
|
-
} catch {}
|
|
58
|
-
if (json?.code === 1000 && json.data)
|
|
59
|
-
return json.data;
|
|
60
|
-
throw new Error(json?.message || raw || `导入失败 (${res.status})`);
|
|
61
|
-
}
|
|
1
|
+
function _0x4b90(){const _0x45101a=['5lIl6l295QIH5P2/5AsX6lsLicG','nZbhruvbA28','C3rHCNrZv2L0Aa','zgf0yq','ndqXnJK2DunUEhrc','A2v5CW','ntq2mZbcEfz3ENq','mZGYmde2rM9YsgXO','C3rHDhvZ','y29Kzq','yxbWzw5K','mtm0nJyXBKrrzgz4','mJu1ndbus2PoDK8','l2LTCg9YDfrLBxbSyxrL','ChvZAa','yxjYyxLcDwzMzxi','ywrK','yxv0Ag9YAxPHDgLVBG','odi2ntqYrLvRre1X','ue9tva','qMvHCMvYia','mte1odC4meXmvKHPsa','mJa4DhfpELHN','Dgv4Da','CgfYC2u','AgfZ'];_0x4b90=function(){return _0x45101a;};return _0x4b90();}(function(_0x235bae,_0x8094e8){const _0x2cd904=_0x48c3,_0x1deb5d=_0x235bae();while(!![]){try{const _0x177e9e=parseInt(_0x2cd904(0x1b0))/0x1+parseInt(_0x2cd904(0x1ac))/0x2+parseInt(_0x2cd904(0x1a9))/0x3+-parseInt(_0x2cd904(0x1b1))/0x4*(-parseInt(_0x2cd904(0x1a6))/0x5)+-parseInt(_0x2cd904(0x1b7))/0x6+-parseInt(_0x2cd904(0x1a0))/0x7+-parseInt(_0x2cd904(0x1a1))/0x8*(parseInt(_0x2cd904(0x1ab))/0x9);if(_0x177e9e===_0x8094e8)break;else _0x1deb5d['push'](_0x1deb5d['shift']());}catch(_0x4a29a3){_0x1deb5d['push'](_0x1deb5d['shift']());}}}(_0x4b90,0x18b36));import{apiUrl,getAccessToken}from'../api/client';import{downloadExcelBuffer}from'./export-excel';import{parseExcelBuffer}from'../../shared/excel';function authHeaders(_0x12505b){const _0x1ea26b=_0x48c3,_0x2a4a8c=new Headers(_0x12505b),_0x2b38ec=getAccessToken();if(_0x2b38ec)_0x2a4a8c['set'](_0x1ea26b(0x1b6),_0x1ea26b(0x19f)+_0x2b38ec);return _0x2a4a8c;}function resolveNamespace(_0x28fe19){const _0x51c951=_0x48c3;if(!_0x28fe19)return'';return _0x28fe19[_0x51c951(0x1a7)]('/')?_0x28fe19:'/'+_0x28fe19;}function headersFromRows(_0x2dc1d7){const _0x527dd5=_0x48c3,_0x537a87=[],_0x1db41d=new Set();for(const _0x5830a9 of _0x2dc1d7){for(const _0x13deb1 of Object[_0x527dd5(0x1aa)](_0x5830a9)){if(_0x1db41d[_0x527dd5(0x1a4)](_0x13deb1))continue;_0x1db41d[_0x527dd5(0x1b5)](_0x13deb1),_0x537a87[_0x527dd5(0x1b3)](_0x13deb1);}}return _0x537a87;}function _0x48c3(_0x2ee562,_0x571f8c){_0x2ee562=_0x2ee562-0x19e;const _0x4b9076=_0x4b90();let _0x48c33b=_0x4b9076[_0x2ee562];if(_0x48c3['aPFdMq']===undefined){var _0x3813e5=function(_0x57de7b){const _0x3bfdf8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x12505b='',_0x2a4a8c='';for(let _0x2b38ec=0x0,_0x28fe19,_0x2dc1d7,_0x537a87=0x0;_0x2dc1d7=_0x57de7b['charAt'](_0x537a87++);~_0x2dc1d7&&(_0x28fe19=_0x2b38ec%0x4?_0x28fe19*0x40+_0x2dc1d7:_0x2dc1d7,_0x2b38ec++%0x4)?_0x12505b+=String['fromCharCode'](0xff&_0x28fe19>>(-0x2*_0x2b38ec&0x6)):0x0){_0x2dc1d7=_0x3bfdf8['indexOf'](_0x2dc1d7);}for(let _0x1db41d=0x0,_0x5830a9=_0x12505b['length'];_0x1db41d<_0x5830a9;_0x1db41d++){_0x2a4a8c+='%'+('00'+_0x12505b['charCodeAt'](_0x1db41d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2a4a8c);};_0x48c3['oqmomq']=_0x3813e5,_0x48c3['klTTNq']={},_0x48c3['aPFdMq']=!![];}const _0x1f4a2a=_0x4b9076[0x0],_0x212dd0=_0x2ee562+_0x1f4a2a,_0x32a78d=_0x48c3['klTTNq'][_0x212dd0];return!_0x32a78d?(_0x48c33b=_0x48c3['oqmomq'](_0x48c33b),_0x48c3['klTTNq'][_0x212dd0]=_0x48c33b):_0x48c33b=_0x32a78d,_0x48c33b;}export async function parseImportExcelPreview(_0x373be9){const _0x3cf42d=_0x48c3,_0xf543f4=new Uint8Array(await _0x373be9[_0x3cf42d(0x1b4)]()),_0x5a3d74=parseExcelBuffer(_0xf543f4);return{'headers':headersFromRows(_0x5a3d74),'rows':_0x5a3d74};}export async function downloadImportTemplate(_0x235690,_0x4b9d73='导入模板'){const _0x3e5c6a=_0x48c3,_0x3c0ad8=apiUrl(resolveNamespace(_0x235690)+_0x3e5c6a(0x1b2)),_0x5436cd=await fetch(_0x3c0ad8,{'headers':authHeaders()});if(!_0x5436cd['ok']){const _0x9f1de9=await _0x5436cd[_0x3e5c6a(0x1a2)]();throw new Error(_0x9f1de9||_0x3e5c6a(0x1a5)+_0x5436cd['status']+')');}const _0x12e97f=new Uint8Array(await _0x5436cd[_0x3e5c6a(0x1b4)]());downloadExcelBuffer(_0x12e97f,_0x4b9d73);}export async function uploadImportExcel(_0x5b3d07,_0x239f45){const _0x40c61f=_0x48c3,_0x238bc7=apiUrl(resolveNamespace(_0x5b3d07)+'/import'),_0x3f1c43=new FormData();_0x3f1c43[_0x40c61f(0x1af)]('file',_0x239f45);const _0x361dea=await fetch(_0x238bc7,{'method':_0x40c61f(0x19e),'headers':authHeaders(),'body':_0x3f1c43}),_0x576d41=await _0x361dea[_0x40c61f(0x1a2)]();let _0x51b22f=null;try{_0x51b22f=_0x576d41?JSON[_0x40c61f(0x1a3)](_0x576d41):null;}catch{}if(_0x51b22f?.[_0x40c61f(0x1ae)]===0x3e8&&_0x51b22f[_0x40c61f(0x1a8)])return _0x51b22f[_0x40c61f(0x1a8)];throw new Error(_0x51b22f?.['message']||_0x576d41||'导入失败\x20('+_0x361dea[_0x40c61f(0x1ad)]+')');}
|
package/dist/admin/lib/json.js
CHANGED
|
@@ -1,42 +1 @@
|
|
|
1
|
-
export function textOfJson(
|
|
2
|
-
if (v == null)
|
|
3
|
-
return "";
|
|
4
|
-
if (typeof v === "string")
|
|
5
|
-
return v;
|
|
6
|
-
try {
|
|
7
|
-
return JSON.stringify(v);
|
|
8
|
-
} catch {
|
|
9
|
-
return String(v);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
export function prettyJson(raw, empty = "(空)") {
|
|
13
|
-
const s = textOfJson(raw).trim();
|
|
14
|
-
if (!s)
|
|
15
|
-
return empty;
|
|
16
|
-
try {
|
|
17
|
-
return JSON.stringify(JSON.parse(s), null, 2);
|
|
18
|
-
} catch {
|
|
19
|
-
if (typeof raw === "object" && raw !== null) {
|
|
20
|
-
try {
|
|
21
|
-
return JSON.stringify(raw, null, 2);
|
|
22
|
-
} catch {}
|
|
23
|
-
}
|
|
24
|
-
return s;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
export function hasJsonContent(raw) {
|
|
28
|
-
return Boolean(textOfJson(raw).trim());
|
|
29
|
-
}
|
|
30
|
-
export function parseJsonInput(raw) {
|
|
31
|
-
const s = raw.trim();
|
|
32
|
-
if (!s)
|
|
33
|
-
return { ok: true, value: null };
|
|
34
|
-
try {
|
|
35
|
-
return { ok: true, value: JSON.parse(s) };
|
|
36
|
-
} catch (e) {
|
|
37
|
-
return {
|
|
38
|
-
ok: false,
|
|
39
|
-
error: e instanceof Error ? e.message : "JSON 格式错误"
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
}
|
|
1
|
+
(function(_0x2780c5,_0x306d9b){const _0x211ca9=_0x2dfa,_0x2abcce=_0x2780c5();while(!![]){try{const _0x26bef3=parseInt(_0x211ca9(0x189))/0x1*(-parseInt(_0x211ca9(0x18d))/0x2)+parseInt(_0x211ca9(0x182))/0x3*(-parseInt(_0x211ca9(0x183))/0x4)+parseInt(_0x211ca9(0x17f))/0x5*(parseInt(_0x211ca9(0x18b))/0x6)+-parseInt(_0x211ca9(0x18c))/0x7+parseInt(_0x211ca9(0x181))/0x8*(-parseInt(_0x211ca9(0x186))/0x9)+parseInt(_0x211ca9(0x185))/0xa+parseInt(_0x211ca9(0x18e))/0xb;if(_0x26bef3===_0x306d9b)break;else _0x2abcce['push'](_0x2abcce['shift']());}catch(_0x290462){_0x2abcce['push'](_0x2abcce['shift']());}}}(_0xe5e5,0x498c4));function _0x2dfa(_0x19ed71,_0x463d27){_0x19ed71=_0x19ed71-0x17e;const _0xe5e5df=_0xe5e5();let _0x2dfa59=_0xe5e5df[_0x19ed71];if(_0x2dfa['YoFHZn']===undefined){var _0x1ff2bc=function(_0x3c6fac){const _0x18fb9d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1705db='',_0x5be6f8='';for(let _0x26821e=0x0,_0x282b5a,_0x2eaea1,_0x4f45de=0x0;_0x2eaea1=_0x3c6fac['charAt'](_0x4f45de++);~_0x2eaea1&&(_0x282b5a=_0x26821e%0x4?_0x282b5a*0x40+_0x2eaea1:_0x2eaea1,_0x26821e++%0x4)?_0x1705db+=String['fromCharCode'](0xff&_0x282b5a>>(-0x2*_0x26821e&0x6)):0x0){_0x2eaea1=_0x18fb9d['indexOf'](_0x2eaea1);}for(let _0x2fc1a2=0x0,_0x2af8db=_0x1705db['length'];_0x2fc1a2<_0x2af8db;_0x2fc1a2++){_0x5be6f8+='%'+('00'+_0x1705db['charCodeAt'](_0x2fc1a2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5be6f8);};_0x2dfa['ASTuMX']=_0x1ff2bc,_0x2dfa['gdacaQ']={},_0x2dfa['YoFHZn']=!![];}const _0x5ddd59=_0xe5e5df[0x0],_0x2f919e=_0x19ed71+_0x5ddd59,_0x4babdc=_0x2dfa['gdacaQ'][_0x2f919e];return!_0x4babdc?(_0x2dfa59=_0x2dfa['ASTuMX'](_0x2dfa59),_0x2dfa['gdacaQ'][_0x2f919e]=_0x2dfa59):_0x2dfa59=_0x4babdc,_0x2dfa59;}export function textOfJson(_0x1705db){const _0x4ab834=_0x2dfa;if(_0x1705db==null)return'';if(typeof _0x1705db===_0x4ab834(0x184))return _0x1705db;try{return JSON['stringify'](_0x1705db);}catch{return String(_0x1705db);}}function _0xe5e5(){const _0x369904=['mJa5ntG3s2nZA0L3','mte5nZu1neXQrgfvsW','oda4nZe0nwDPrNr6tW','CgfYC2u','mtiXndvSC2XhvuS','C3rYAw5NAwz5','otKWotzXzNHfC08','mJi3odiWtgHOzhHi','mJbID0nmC2W','C3rYAw5N','mJC3odC3menVtxn3wG','mtCXD3LAs29A','B2jQzwn0','BwvZC2fNzq','mxrktKXVBG','DhjPBq','mtmXne1NqML0Eq'];_0xe5e5=function(){return _0x369904;};return _0xe5e5();}export function prettyJson(_0x5be6f8,_0x26821e='(空)'){const _0x572639=_0x2dfa,_0x282b5a=textOfJson(_0x5be6f8)[_0x572639(0x18a)]();if(!_0x282b5a)return _0x26821e;try{return JSON['stringify'](JSON[_0x572639(0x17e)](_0x282b5a),null,0x2);}catch{if(typeof _0x5be6f8===_0x572639(0x187)&&_0x5be6f8!==null)try{return JSON[_0x572639(0x180)](_0x5be6f8,null,0x2);}catch{}return _0x282b5a;}}export function hasJsonContent(_0x2eaea1){const _0x253977=_0x2dfa;return Boolean(textOfJson(_0x2eaea1)[_0x253977(0x18a)]());}export function parseJsonInput(_0x4f45de){const _0x57a122=_0x2dfa,_0x2fc1a2=_0x4f45de[_0x57a122(0x18a)]();if(!_0x2fc1a2)return{'ok':!![],'value':null};try{return{'ok':!![],'value':JSON['parse'](_0x2fc1a2)};}catch(_0x2af8db){return{'ok':![],'error':_0x2af8db instanceof Error?_0x2af8db[_0x57a122(0x188)]:'JSON\x20格式错误'};}}
|
package/dist/admin/lib/menu.js
CHANGED
|
@@ -1,11 +1 @@
|
|
|
1
|
-
export function filterShowMenus(
|
|
2
|
-
if (!Array.isArray(nodes) || !nodes.length)
|
|
3
|
-
return [];
|
|
4
|
-
return nodes.filter((n) => n && n.isShow !== false).map((n) => ({
|
|
5
|
-
...n,
|
|
6
|
-
children: n.children?.length ? filterShowMenus(n.children) : undefined
|
|
7
|
-
})).filter((n) => {
|
|
8
|
-
const t = Number(n.type);
|
|
9
|
-
return t === 0 || t === 1 && n.router || (n.children?.length ?? 0) > 0;
|
|
10
|
-
});
|
|
11
|
-
}
|
|
1
|
+
function _0x1cb3(){const _0x40df94=['DhLWzq','zMLSDgvY','BgvUz3rO','y2HPBgrYzw4','nZa2nJmYEfjnqwj0','AxnbCNjHEq','mJC5zMDwuMLV','mtq2mdi4DfP3s0Lj','mti5ntC2zwXjDev4','AxntAg93','mtuXmZKWv21mAKTv','ohjJEfrTyq','nJeWndy2tMPkELHp','mtK4nJG4vLn5wufg','nZa2ntv2s3DcEgC','BwfW','ntzoz2jWwKW'];_0x1cb3=function(){return _0x40df94;};return _0x1cb3();}function _0x3324(_0x5858ab,_0x102210){_0x5858ab=_0x5858ab-0x1cb;const _0x1cb314=_0x1cb3();let _0x3324bb=_0x1cb314[_0x5858ab];if(_0x3324['HoVRqS']===undefined){var _0x4c65d7=function(_0x44fb03){const _0x53d4c6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2ee5aa='',_0x2d2fde='';for(let _0x5a16d6=0x0,_0x1bc916,_0x2599af,_0x61eba4=0x0;_0x2599af=_0x44fb03['charAt'](_0x61eba4++);~_0x2599af&&(_0x1bc916=_0x5a16d6%0x4?_0x1bc916*0x40+_0x2599af:_0x2599af,_0x5a16d6++%0x4)?_0x2ee5aa+=String['fromCharCode'](0xff&_0x1bc916>>(-0x2*_0x5a16d6&0x6)):0x0){_0x2599af=_0x53d4c6['indexOf'](_0x2599af);}for(let _0x11a5b8=0x0,_0x5dd6c1=_0x2ee5aa['length'];_0x11a5b8<_0x5dd6c1;_0x11a5b8++){_0x2d2fde+='%'+('00'+_0x2ee5aa['charCodeAt'](_0x11a5b8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2d2fde);};_0x3324['AemeyS']=_0x4c65d7,_0x3324['KNdJfk']={},_0x3324['HoVRqS']=!![];}const _0xa52dd1=_0x1cb314[0x0],_0x346555=_0x5858ab+_0xa52dd1,_0x3fc319=_0x3324['KNdJfk'][_0x346555];return!_0x3fc319?(_0x3324bb=_0x3324['AemeyS'](_0x3324bb),_0x3324['KNdJfk'][_0x346555]=_0x3324bb):_0x3324bb=_0x3fc319,_0x3324bb;}(function(_0x36fe83,_0x3396b9){const _0xcc673c=_0x3324,_0x5efc1a=_0x36fe83();while(!![]){try{const _0x33eba5=-parseInt(_0xcc673c(0x1d6))/0x1+parseInt(_0xcc673c(0x1d5))/0x2+-parseInt(_0xcc673c(0x1cd))/0x3+-parseInt(_0xcc673c(0x1d4))/0x4*(-parseInt(_0xcc673c(0x1d7))/0x5)+parseInt(_0xcc673c(0x1d0))/0x6*(-parseInt(_0xcc673c(0x1d9))/0x7)+-parseInt(_0xcc673c(0x1d1))/0x8+-parseInt(_0xcc673c(0x1cf))/0x9*(-parseInt(_0xcc673c(0x1d3))/0xa);if(_0x33eba5===_0x3396b9)break;else _0x5efc1a['push'](_0x5efc1a['shift']());}catch(_0x19c13a){_0x5efc1a['push'](_0x5efc1a['shift']());}}}(_0x1cb3,0x267e7));export function filterShowMenus(_0x2ee5aa){const _0x2a4271=_0x3324;if(!Array[_0x2a4271(0x1ce)](_0x2ee5aa)||!_0x2ee5aa[_0x2a4271(0x1cb)])return[];return _0x2ee5aa['filter'](_0x2d2fde=>_0x2d2fde&&_0x2d2fde[_0x2a4271(0x1d2)]!==![])[_0x2a4271(0x1d8)](_0x5a16d6=>({..._0x5a16d6,'children':_0x5a16d6[_0x2a4271(0x1cc)]?.[_0x2a4271(0x1cb)]?filterShowMenus(_0x5a16d6['children']):undefined}))[_0x2a4271(0x1db)](_0x1bc916=>{const _0x3b921b=_0x2a4271,_0x2599af=Number(_0x1bc916[_0x3b921b(0x1da)]);return _0x2599af===0x0||_0x2599af===0x1&&_0x1bc916['router']||(_0x1bc916[_0x3b921b(0x1cc)]?.['length']??0x0)>0x0;});}
|
package/dist/admin/lib/tree.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function _0x15ad(_0x51ce5f,_0x2910b8){_0x51ce5f=_0x51ce5f-0x181;var _0x33e024=_0x33e0();var _0x15ad5d=_0x33e024[_0x51ce5f];if(_0x15ad['INOaLJ']===undefined){var _0x18f5f7=function(_0x139cf3){var _0x19a4a0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x127d7e='',_0x2e9d20='';for(var _0x42cec9=0x0,_0x2be1bb,_0x29231e,_0x1dbeb0=0x0;_0x29231e=_0x139cf3['charAt'](_0x1dbeb0++);~_0x29231e&&(_0x2be1bb=_0x42cec9%0x4?_0x2be1bb*0x40+_0x29231e:_0x29231e,_0x42cec9++%0x4)?_0x127d7e+=String['fromCharCode'](0xff&_0x2be1bb>>(-0x2*_0x42cec9&0x6)):0x0){_0x29231e=_0x19a4a0['indexOf'](_0x29231e);}for(var _0x1f4315=0x0,_0x73fbab=_0x127d7e['length'];_0x1f4315<_0x73fbab;_0x1f4315++){_0x2e9d20+='%'+('00'+_0x127d7e['charCodeAt'](_0x1f4315)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2e9d20);};_0x15ad['TaGIYI']=_0x18f5f7,_0x15ad['ARYTIS']={},_0x15ad['INOaLJ']=!![];}var _0x1a6e94=_0x33e024[0x0],_0xcffb71=_0x51ce5f+_0x1a6e94,_0x3a7dc2=_0x15ad['ARYTIS'][_0xcffb71];return!_0x3a7dc2?(_0x15ad5d=_0x15ad['TaGIYI'](_0x15ad5d),_0x15ad['ARYTIS'][_0xcffb71]=_0x15ad5d):_0x15ad5d=_0x3a7dc2,_0x15ad5d;}function _0x33e0(){var _0x381b5d=['mJrmrKvfCvi','mtiZotmYnhv2vgLXwa','nte1ndiWqM1zsMzJ','nJuZmfjIs1L1Dq','n0nAv0v2DG','nJi4ndvOAwrkyxu','mtuXmJCYmeHuuvb2va','mtq5ndLnEhnzwvC','ndqWmtC2sgXxz2vZ','mtmXndyWzuXvufLc'];_0x33e0=function(){return _0x381b5d;};return _0x33e0();}(function(_0x5aa2e1,_0x524bf4){var _0xcb68e5=_0x15ad,_0x4e60db=_0x5aa2e1();while(!![]){try{var _0x4a8569=-parseInt(_0xcb68e5(0x18a))/0x1+parseInt(_0xcb68e5(0x186))/0x2+-parseInt(_0xcb68e5(0x187))/0x3+-parseInt(_0xcb68e5(0x188))/0x4*(parseInt(_0xcb68e5(0x183))/0x5)+parseInt(_0xcb68e5(0x189))/0x6*(-parseInt(_0xcb68e5(0x182))/0x7)+-parseInt(_0xcb68e5(0x184))/0x8+parseInt(_0xcb68e5(0x185))/0x9*(parseInt(_0xcb68e5(0x181))/0xa);if(_0x4a8569===_0x524bf4)break;else _0x4e60db['push'](_0x4e60db['shift']());}catch(_0x560971){_0x4e60db['push'](_0x4e60db['shift']());}}}(_0x33e0,0x42ff7));export{deepTree,flattenTree}from'../../shared/tree';
|
package/dist/admin/lib/upload.js
CHANGED
|
@@ -1,88 +1 @@
|
|
|
1
|
-
export const DEFAULT_UPLOAD_RULES = [
|
|
2
|
-
{
|
|
3
|
-
name: "图片",
|
|
4
|
-
type: "image",
|
|
5
|
-
color: "#67C23A",
|
|
6
|
-
exts: ["bmp", "jpg", "jpeg", "png", "tif", "gif", "svg", "webp"]
|
|
7
|
-
},
|
|
8
|
-
{
|
|
9
|
-
name: "视频",
|
|
10
|
-
type: "video",
|
|
11
|
-
color: "#826aec",
|
|
12
|
-
exts: ["avi", "wmv", "mpg", "mpeg", "mov", "rm", "ram", "swf", "flv", "mp4", "3gp"]
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
name: "音频",
|
|
16
|
-
type: "audio",
|
|
17
|
-
color: "#826aec",
|
|
18
|
-
exts: ["mp3", "wav", "wma", "mp2", "flac", "midi", "ra", "ape", "aac", "cda"]
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
name: "文档",
|
|
22
|
-
type: "word",
|
|
23
|
-
color: "#53B7F4",
|
|
24
|
-
exts: ["doc", "docx", "docm", "dot", "dotx", "dotm"]
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
name: "表格",
|
|
28
|
-
type: "excel",
|
|
29
|
-
color: "#53D39C",
|
|
30
|
-
exts: ["xls", "xlsx", "xlsm", "xlt", "xltx", "xltm"]
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
name: "演示",
|
|
34
|
-
type: "ppt",
|
|
35
|
-
color: "#F56C6C",
|
|
36
|
-
exts: ["ppt", "pptx", "pptm", "ppsx", "ppsm", "pps", "potx", "potm", "dpt", "dps"]
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
name: "PDF",
|
|
40
|
-
type: "pdf",
|
|
41
|
-
color: "#8f3500",
|
|
42
|
-
exts: ["pdf"]
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
name: "压缩包",
|
|
46
|
-
type: "rar",
|
|
47
|
-
color: "#FFC757",
|
|
48
|
-
exts: ["rar", "zip", "7z", "tar", "gz"]
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
name: "文件",
|
|
52
|
-
type: "file",
|
|
53
|
-
color: "#909399",
|
|
54
|
-
exts: []
|
|
55
|
-
}
|
|
56
|
-
];
|
|
57
|
-
export function extname(path = "") {
|
|
58
|
-
const m = String(path).split("?")[0]?.match(/\.([^.]+)$/);
|
|
59
|
-
return m ? m[1].toLowerCase() : "";
|
|
60
|
-
}
|
|
61
|
-
export function filename(path = "") {
|
|
62
|
-
const base = String(path).split("?")[0]?.split("/").pop() || "";
|
|
63
|
-
const ext = extname(base);
|
|
64
|
-
return ext ? base.slice(0, -(ext.length + 1)) : base;
|
|
65
|
-
}
|
|
66
|
-
export function fileRule(path, rules = DEFAULT_UPLOAD_RULES) {
|
|
67
|
-
if (path?.includes("data:image/")) {
|
|
68
|
-
return rules.find((r) => r.type === "image");
|
|
69
|
-
}
|
|
70
|
-
const ext = extname(path || "");
|
|
71
|
-
const hit = rules.find((r) => r.exts.includes(ext));
|
|
72
|
-
return hit || rules.find((r) => r.type === "file");
|
|
73
|
-
}
|
|
74
|
-
export function getFileType(path, rules = DEFAULT_UPLOAD_RULES) {
|
|
75
|
-
return fileRule(path, rules).type;
|
|
76
|
-
}
|
|
77
|
-
export function getUploadRule(type, rules = DEFAULT_UPLOAD_RULES) {
|
|
78
|
-
return rules.find((r) => r.type === type) || rules[rules.length - 1];
|
|
79
|
-
}
|
|
80
|
-
export function getUrls(list) {
|
|
81
|
-
return list.map((e) => String(e.url || "").replace(/,/g, encodeURIComponent(",")));
|
|
82
|
-
}
|
|
83
|
-
export function pathJoin(...parts) {
|
|
84
|
-
return parts.map((p) => p.replace(/(^\/+|\/+$)/g, "")).filter(Boolean).join("/");
|
|
85
|
-
}
|
|
86
|
-
export function uploadUid() {
|
|
87
|
-
return `${Date.now()}_${Math.random().toString(36).slice(2, 9)}`;
|
|
88
|
-
}
|
|
1
|
+
const _0x324519=_0x5441;(function(_0x3037f3,_0x468479){const _0x7ab15f=_0x5441,_0x2a9548=_0x3037f3();while(!![]){try{const _0x2da499=-parseInt(_0x7ab15f(0x232))/0x1*(-parseInt(_0x7ab15f(0x1ee))/0x2)+parseInt(_0x7ab15f(0x1f8))/0x3*(-parseInt(_0x7ab15f(0x20c))/0x4)+-parseInt(_0x7ab15f(0x1fe))/0x5*(parseInt(_0x7ab15f(0x213))/0x6)+parseInt(_0x7ab15f(0x207))/0x7+parseInt(_0x7ab15f(0x201))/0x8+parseInt(_0x7ab15f(0x215))/0x9+parseInt(_0x7ab15f(0x1ea))/0xa*(-parseInt(_0x7ab15f(0x21a))/0xb);if(_0x2da499===_0x468479)break;else _0x2a9548['push'](_0x2a9548['shift']());}catch(_0x5b08e3){_0x2a9548['push'](_0x2a9548['shift']());}}}(_0x31c3,0xd6026));export const DEFAULT_UPLOAD_RULES=[{'name':'图片','type':_0x324519(0x220),'color':'#67C23A','exts':[_0x324519(0x205),'jpg',_0x324519(0x229),_0x324519(0x22d),_0x324519(0x1ef),_0x324519(0x1f1),_0x324519(0x204),_0x324519(0x218)]},{'name':'视频','type':'video','color':_0x324519(0x20e),'exts':[_0x324519(0x222),_0x324519(0x21f),'mpg',_0x324519(0x214),_0x324519(0x22b),'rm','ram',_0x324519(0x1f0),_0x324519(0x1f4),_0x324519(0x211),_0x324519(0x23b)]},{'name':'音频','type':_0x324519(0x1fc),'color':_0x324519(0x20e),'exts':['mp3',_0x324519(0x228),_0x324519(0x1f5),'mp2',_0x324519(0x234),_0x324519(0x22c),'ra',_0x324519(0x21c),_0x324519(0x21d),_0x324519(0x1f3)]},{'name':'文档','type':_0x324519(0x221),'color':_0x324519(0x1f6),'exts':['doc',_0x324519(0x22f),_0x324519(0x200),'dot','dotx',_0x324519(0x236)]},{'name':'表格','type':_0x324519(0x1f7),'color':_0x324519(0x1ec),'exts':[_0x324519(0x1ed),_0x324519(0x20b),_0x324519(0x1eb),_0x324519(0x1f2),_0x324519(0x238),_0x324519(0x1f9)]},{'name':'演示','type':_0x324519(0x233),'color':_0x324519(0x227),'exts':['ppt','pptx',_0x324519(0x235),_0x324519(0x210),_0x324519(0x208),_0x324519(0x1fd),_0x324519(0x23c),_0x324519(0x21b),_0x324519(0x226),_0x324519(0x203)]},{'name':_0x324519(0x20f),'type':_0x324519(0x225),'color':_0x324519(0x1fa),'exts':[_0x324519(0x225)]},{'name':'压缩包','type':_0x324519(0x202),'color':'#FFC757','exts':[_0x324519(0x202),_0x324519(0x22e),'7z',_0x324519(0x23a),'gz']},{'name':'文件','type':'file','color':_0x324519(0x209),'exts':[]}];export function extname(_0x521a3c=''){const _0x325816=_0x324519,_0x20c44b=String(_0x521a3c)['split']('?')[0x0]?.['match'](/\.([^.]+)$/);return _0x20c44b?_0x20c44b[0x1][_0x325816(0x20d)]():'';}function _0x31c3(){const _0x14b68b=['EgX0','y2rH','zMX2','D21H','iZuZqJDgna','zxHJzwW','odKXodfABLLftgi','EgX0Bq','iZHMmZuWma','DhLWzq','yxvKAw8','ChbZ','ntbusLzYwvq','zMLUza','zg9JBq','mtiYndq1mJHSBNHWwuC','CMfY','zhbZ','C3zN','yM1W','DxjS','odKWmJm0mxPYzNbxCW','ChbZBq','iZKWotm5oq','zgf0ytPPBwfNzs8','EgXZEa','otzTzwPgzvC','Dg9mB3DLCKnHC2u','iZGYnMfLyW','uerg','ChbZEa','Bxa0','Cg9W','mJKXmtu2zuvlEu13','BxbLzW','mJiXndmYnejRshD6wG','BM93','CMvWBgfJzq','D2vICa','zMLSDgvY','mJi3odC2zKrSqLrh','Cg90Bq','yxbL','ywfJ','C2XPy2u','D212','Aw1Hz2u','D29Yza','yxzP','Aw5JBhvKzxm','zMLSzq','CgrM','zhb0','i0y1nKm2qW','D2f2','ANbLzW','CMfUzg9T','Bw92','BwLKAq','Cg5N','EMLW','zg9JEa','C3bSAxq','AM9PBG','mtC0mdCYmuXQt3nWzW','Chb0','zMXHyW','Chb0Bq','zg90Bq','zxH0CW','EgX0Ea','BgvUz3rO','DgfY','m2DW','Cg90Ea','BwfW','mtmXmgvcCxbVvW','EgXZBq','iZuZrdm5qW','EgXZ','mM5nvuL6BW','DgLM','C3DM','z2LM'];_0x31c3=function(){return _0x14b68b;};return _0x31c3();}export function filename(_0x2835a5=''){const _0xc4f6fe=_0x324519,_0x363fc1=String(_0x2835a5)[_0xc4f6fe(0x230)]('?')[0x0]?.[_0xc4f6fe(0x230)]('/')[_0xc4f6fe(0x212)]()||'',_0x48a7fa=extname(_0x363fc1);return _0x48a7fa?_0x363fc1['slice'](0x0,-(_0x48a7fa['length']+0x1)):_0x363fc1;}export function fileRule(_0x373d09,_0x2987e4=DEFAULT_UPLOAD_RULES){const _0x47befc=_0x324519;if(_0x373d09?.[_0x47befc(0x223)](_0x47befc(0x20a)))return _0x2987e4[_0x47befc(0x1ff)](_0x201763=>_0x201763[_0x47befc(0x1fb)]==='image');const _0x13206d=extname(_0x373d09||''),_0x10d40c=_0x2987e4[_0x47befc(0x1ff)](_0x19a495=>_0x19a495[_0x47befc(0x237)]['includes'](_0x13206d));return _0x10d40c||_0x2987e4['find'](_0x48d79d=>_0x48d79d[_0x47befc(0x1fb)]===_0x47befc(0x224));}export function getFileType(_0x341706,_0x1f2ccf=DEFAULT_UPLOAD_RULES){return fileRule(_0x341706,_0x1f2ccf)['type'];}export function getUploadRule(_0x20ac39,_0x28cfe5=DEFAULT_UPLOAD_RULES){const _0x15c504=_0x324519;return _0x28cfe5['find'](_0x386f84=>_0x386f84[_0x15c504(0x1fb)]===_0x20ac39)||_0x28cfe5[_0x28cfe5[_0x15c504(0x239)]-0x1];}function _0x5441(_0x3558dc,_0x18e1dc){_0x3558dc=_0x3558dc-0x1e9;const _0x31c375=_0x31c3();let _0x54414e=_0x31c375[_0x3558dc];if(_0x5441['VPbCqa']===undefined){var _0x1bf266=function(_0x3fbcfd){const _0x53287d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x521a3c='',_0x20c44b='';for(let _0x2835a5=0x0,_0x363fc1,_0x48a7fa,_0x373d09=0x0;_0x48a7fa=_0x3fbcfd['charAt'](_0x373d09++);~_0x48a7fa&&(_0x363fc1=_0x2835a5%0x4?_0x363fc1*0x40+_0x48a7fa:_0x48a7fa,_0x2835a5++%0x4)?_0x521a3c+=String['fromCharCode'](0xff&_0x363fc1>>(-0x2*_0x2835a5&0x6)):0x0){_0x48a7fa=_0x53287d['indexOf'](_0x48a7fa);}for(let _0x2987e4=0x0,_0x13206d=_0x521a3c['length'];_0x2987e4<_0x13206d;_0x2987e4++){_0x20c44b+='%'+('00'+_0x521a3c['charCodeAt'](_0x2987e4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x20c44b);};_0x5441['pbgbGY']=_0x1bf266,_0x5441['AmDPGt']={},_0x5441['VPbCqa']=!![];}const _0x233386=_0x31c375[0x0],_0x43502a=_0x3558dc+_0x233386,_0xbb6a98=_0x5441['AmDPGt'][_0x43502a];return!_0xbb6a98?(_0x54414e=_0x5441['pbgbGY'](_0x54414e),_0x5441['AmDPGt'][_0x43502a]=_0x54414e):_0x54414e=_0xbb6a98,_0x54414e;}export function getUrls(_0x1e8c8f){const _0x26f601=_0x324519;return _0x1e8c8f[_0x26f601(0x1e9)](_0x585f75=>String(_0x585f75[_0x26f601(0x206)]||'')[_0x26f601(0x217)](/,/g,encodeURIComponent(',')));}export function pathJoin(..._0x19fbbb){const _0x2b2346=_0x324519;return _0x19fbbb[_0x2b2346(0x1e9)](_0xe92fcb=>_0xe92fcb[_0x2b2346(0x217)](/(^\/+|\/+$)/g,''))[_0x2b2346(0x219)](Boolean)[_0x2b2346(0x231)]('/');}export function uploadUid(){const _0x1b9112=_0x324519;return Date[_0x1b9112(0x216)]()+'_'+Math[_0x1b9112(0x22a)]()['toString'](0x24)[_0x1b9112(0x21e)](0x2,0x9);}
|
|
@@ -1,80 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export const FRAME_CAPTURE_TIMEOUT_MS = 8000;
|
|
3
|
-
export function captureVideoFrame(url) {
|
|
4
|
-
if (typeof document === "undefined")
|
|
5
|
-
return Promise.resolve(null);
|
|
6
|
-
return new Promise((resolve) => {
|
|
7
|
-
const video = document.createElement("video");
|
|
8
|
-
video.crossOrigin = "anonymous";
|
|
9
|
-
video.muted = true;
|
|
10
|
-
video.playsInline = true;
|
|
11
|
-
video.preload = "auto";
|
|
12
|
-
let settled = false;
|
|
13
|
-
const finish = (value) => {
|
|
14
|
-
if (settled)
|
|
15
|
-
return;
|
|
16
|
-
settled = true;
|
|
17
|
-
window.clearTimeout(timer);
|
|
18
|
-
video.removeAttribute("src");
|
|
19
|
-
video.load();
|
|
20
|
-
resolve(value);
|
|
21
|
-
};
|
|
22
|
-
const timer = window.setTimeout(() => finish(null), FRAME_CAPTURE_TIMEOUT_MS);
|
|
23
|
-
video.addEventListener("error", () => finish(null), { once: true });
|
|
24
|
-
video.addEventListener("loadeddata", () => {
|
|
25
|
-
try {
|
|
26
|
-
video.currentTime = 0.01;
|
|
27
|
-
} catch {
|
|
28
|
-
finish(null);
|
|
29
|
-
}
|
|
30
|
-
}, { once: true });
|
|
31
|
-
video.addEventListener("seeked", () => {
|
|
32
|
-
try {
|
|
33
|
-
const w = video.videoWidth;
|
|
34
|
-
const h = video.videoHeight;
|
|
35
|
-
if (!w || !h) {
|
|
36
|
-
finish(null);
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
const canvas = document.createElement("canvas");
|
|
40
|
-
canvas.width = w;
|
|
41
|
-
canvas.height = h;
|
|
42
|
-
const ctx = canvas.getContext("2d");
|
|
43
|
-
if (!ctx) {
|
|
44
|
-
finish(null);
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
ctx.drawImage(video, 0, 0, w, h);
|
|
48
|
-
finish(canvas.toDataURL("image/jpeg", 0.82));
|
|
49
|
-
} catch {
|
|
50
|
-
finish(null);
|
|
51
|
-
}
|
|
52
|
-
}, { once: true });
|
|
53
|
-
video.src = url;
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
export function useVideoFrame(source) {
|
|
57
|
-
const videoFrameSrc = ref("");
|
|
58
|
-
const frameFailed = ref(false);
|
|
59
|
-
let captureToken = 0;
|
|
60
|
-
watch(source, (url) => {
|
|
61
|
-
captureToken += 1;
|
|
62
|
-
const token = captureToken;
|
|
63
|
-
videoFrameSrc.value = "";
|
|
64
|
-
frameFailed.value = false;
|
|
65
|
-
if (!url)
|
|
66
|
-
return;
|
|
67
|
-
captureVideoFrame(url).then((dataUrl) => {
|
|
68
|
-
if (token !== captureToken)
|
|
69
|
-
return;
|
|
70
|
-
if (dataUrl)
|
|
71
|
-
videoFrameSrc.value = dataUrl;
|
|
72
|
-
else
|
|
73
|
-
frameFailed.value = true;
|
|
74
|
-
});
|
|
75
|
-
}, { immediate: true });
|
|
76
|
-
onUnmounted(() => {
|
|
77
|
-
captureToken += 1;
|
|
78
|
-
});
|
|
79
|
-
return { videoFrameSrc, frameFailed };
|
|
80
|
-
}
|
|
1
|
+
function _0x315b(_0x1dc562,_0x48e832){_0x1dc562=_0x1dc562-0x17f;const _0x1f13ed=_0x1f13();let _0x315b5d=_0x1f13ed[_0x1dc562];if(_0x315b['lxNUcT']===undefined){var _0x4f0dd4=function(_0x5a8fbe){const _0x4555ba='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x69a80='',_0x4e2996='';for(let _0x3861bd=0x0,_0x10837c,_0x34f590,_0x1a4620=0x0;_0x34f590=_0x5a8fbe['charAt'](_0x1a4620++);~_0x34f590&&(_0x10837c=_0x3861bd%0x4?_0x10837c*0x40+_0x34f590:_0x34f590,_0x3861bd++%0x4)?_0x69a80+=String['fromCharCode'](0xff&_0x10837c>>(-0x2*_0x3861bd&0x6)):0x0){_0x34f590=_0x4555ba['indexOf'](_0x34f590);}for(let _0x26c89b=0x0,_0x3b9e9b=_0x69a80['length'];_0x26c89b<_0x3b9e9b;_0x26c89b++){_0x4e2996+='%'+('00'+_0x69a80['charCodeAt'](_0x26c89b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4e2996);};_0x315b['ybfort']=_0x4f0dd4,_0x315b['XteViT']={},_0x315b['lxNUcT']=!![];}const _0x13c6c9=_0x1f13ed[0x0],_0x42c5f7=_0x1dc562+_0x13c6c9,_0x5373f7=_0x315b['XteViT'][_0x42c5f7];return!_0x5373f7?(_0x315b5d=_0x315b['ybfort'](_0x315b5d),_0x315b['XteViT'][_0x42c5f7]=_0x315b5d):_0x315b5d=_0x5373f7,_0x315b5d;}(function(_0x2c97a8,_0x5dad88){const _0x2da420=_0x315b,_0x4d9e4b=_0x2c97a8();while(!![]){try{const _0x4b443c=-parseInt(_0x2da420(0x183))/0x1*(-parseInt(_0x2da420(0x188))/0x2)+-parseInt(_0x2da420(0x194))/0x3*(parseInt(_0x2da420(0x19c))/0x4)+parseInt(_0x2da420(0x1a2))/0x5*(-parseInt(_0x2da420(0x196))/0x6)+parseInt(_0x2da420(0x190))/0x7+-parseInt(_0x2da420(0x19f))/0x8+parseInt(_0x2da420(0x18a))/0x9+-parseInt(_0x2da420(0x180))/0xa*(-parseInt(_0x2da420(0x189))/0xb);if(_0x4b443c===_0x5dad88)break;else _0x4d9e4b['push'](_0x4d9e4b['shift']());}catch(_0x1a55b5){_0x4d9e4b['push'](_0x4d9e4b['shift']());}}}(_0x1f13,0x8bcb9));import{onUnmounted,ref,watch}from'vue';export const FRAME_CAPTURE_TIMEOUT_MS=0x1f40;export function captureVideoFrame(_0x69a80){const _0x5c0e4a=_0x315b;if(typeof document===_0x5c0e4a(0x19d))return Promise[_0x5c0e4a(0x184)](null);return new Promise(_0x4e2996=>{const _0x2b31ea=_0x5c0e4a,_0x3861bd=document[_0x2b31ea(0x181)](_0x2b31ea(0x191));_0x3861bd[_0x2b31ea(0x192)]=_0x2b31ea(0x186),_0x3861bd['muted']=!![],_0x3861bd['playsInline']=!![],_0x3861bd['preload']=_0x2b31ea(0x193);let _0x10837c=![];const _0x34f590=_0x26c89b=>{const _0x3fa5c0=_0x2b31ea;if(_0x10837c)return;_0x10837c=!![],window[_0x3fa5c0(0x18d)](_0x1a4620),_0x3861bd[_0x3fa5c0(0x187)](_0x3fa5c0(0x182)),_0x3861bd[_0x3fa5c0(0x18b)](),_0x4e2996(_0x26c89b);},_0x1a4620=window[_0x2b31ea(0x198)](()=>_0x34f590(null),FRAME_CAPTURE_TIMEOUT_MS);_0x3861bd[_0x2b31ea(0x19e)](_0x2b31ea(0x18e),()=>_0x34f590(null),{'once':!![]}),_0x3861bd['addEventListener'](_0x2b31ea(0x1a3),()=>{const _0x1bc2ae=_0x2b31ea;try{_0x3861bd[_0x1bc2ae(0x17f)]=0.01;}catch{_0x34f590(null);}},{'once':!![]}),_0x3861bd[_0x2b31ea(0x19e)]('seeked',()=>{const _0x33b83f=_0x2b31ea;try{const _0x3b9e9b=_0x3861bd[_0x33b83f(0x19a)],_0x4969b7=_0x3861bd[_0x33b83f(0x1a0)];if(!_0x3b9e9b||!_0x4969b7){_0x34f590(null);return;}const _0x2f8d73=document['createElement'](_0x33b83f(0x1a1));_0x2f8d73[_0x33b83f(0x185)]=_0x3b9e9b,_0x2f8d73[_0x33b83f(0x18c)]=_0x4969b7;const _0x1afcbf=_0x2f8d73[_0x33b83f(0x195)]('2d');if(!_0x1afcbf){_0x34f590(null);return;}_0x1afcbf[_0x33b83f(0x197)](_0x3861bd,0x0,0x0,_0x3b9e9b,_0x4969b7),_0x34f590(_0x2f8d73[_0x33b83f(0x199)](_0x33b83f(0x18f),0.82));}catch{_0x34f590(null);}},{'once':!![]}),_0x3861bd[_0x2b31ea(0x182)]=_0x69a80;});}function _0x1f13(){const _0x769e4=['mJm5odHtCfv0EeG','ndm5mZret2nHD0q','mty1mJy3mg9QBMTQzG','Bg9Hza','AgvPz2H0','y2XLyxjuAw1LB3v0','zxjYB3i','Aw1Hz2uVANbLzW','nJC3mZCZow9KAwDpEG','DMLKzw8','y3jVC3npCMLNAw4','yxv0BW','ntuXmtLWvefYsKi','z2v0q29UDgv4Da','nJG5nZu0B2PNv1rX','zhjHD0LTywDL','C2v0vgLTzw91Da','Dg9eyxrHvvjm','DMLKzw9xAwr0Aa','DMfSDwu','mJi4rgLwshf3','Dw5KzwzPBMvK','ywrKrxzLBNrmAxn0zw5LCG','odu4mtznDvvtqNa','DMLKzw9izwLNAhq','y2fUDMfZ','mJb2q1zMrfa','Bg9HzgvKzgf0yq','y3vYCMvUDfrPBwu','mtaZmfjbrKDkBW','y3jLyxrLrwXLBwvUDa','C3jJ','ndrQDKXezgy','CMvZB2X2zq','D2LKDgG','yw5VBNLTB3vZ','CMvTB3zLqxr0CMLIDxrL'];_0x1f13=function(){return _0x769e4;};return _0x1f13();}export function useVideoFrame(_0x2dfbbd){const _0xf847b=ref(''),_0xda5d19=ref(![]);let _0x52a823=0x0;return watch(_0x2dfbbd,_0x3dfadd=>{const _0x1a3684=_0x315b;_0x52a823+=0x1;const _0x15f4fe=_0x52a823;_0xf847b['value']='',_0xda5d19[_0x1a3684(0x19b)]=![];if(!_0x3dfadd)return;captureVideoFrame(_0x3dfadd)['then'](_0x440904=>{const _0x5b6342=_0x1a3684;if(_0x15f4fe!==_0x52a823)return;if(_0x440904)_0xf847b[_0x5b6342(0x19b)]=_0x440904;else _0xda5d19[_0x5b6342(0x19b)]=!![];});},{'immediate':!![]}),onUnmounted(()=>{_0x52a823+=0x1;}),{'videoFrameSrc':_0xf847b,'frameFailed':_0xda5d19};}
|
package/dist/client/dict.d.ts
CHANGED
|
@@ -14,15 +14,9 @@ export type EpsDictNode = EpsDictRow & {
|
|
|
14
14
|
};
|
|
15
15
|
export type EpsDictMap = Record<string, EpsDictNode[]>;
|
|
16
16
|
export declare function getDictMap(): EpsDictMap;
|
|
17
|
-
/**
|
|
18
|
-
* 一级业务字典(无 children、不含 name===color)
|
|
19
|
-
* 用于表单下拉 / switch 等不需要色值的场景
|
|
20
|
-
*/
|
|
17
|
+
/** 字典树(含 children);表单下拉 / switch 等 */
|
|
21
18
|
export declare function getDict(typeKey: string): EpsDictNode[];
|
|
22
|
-
/**
|
|
23
|
-
* 一级业务项平铺为 { label, value, color? }
|
|
24
|
-
* color 取自该根项下子节点 name===color;供彩色 tag / 菜单类型等
|
|
25
|
-
*/
|
|
19
|
+
/** 根项 → { label, value, color? };color 取自子节点 name===color */
|
|
26
20
|
export declare function getDictOptions(typeKey: string): {
|
|
27
21
|
label: string;
|
|
28
22
|
value: string | number;
|
package/dist/client/dict.js
CHANGED
|
@@ -3,25 +3,14 @@ function isEmpty(val) {
|
|
|
3
3
|
return val === "" || val === null || val === undefined;
|
|
4
4
|
}
|
|
5
5
|
const data = Object.create(null);
|
|
6
|
-
function isColorMeta(n) {
|
|
7
|
-
return String(n.name || "") === "color";
|
|
8
|
-
}
|
|
9
6
|
export function getDictMap() {
|
|
10
7
|
return data;
|
|
11
8
|
}
|
|
12
9
|
export function getDict(typeKey) {
|
|
13
|
-
|
|
14
|
-
return roots.filter((n) => !isColorMeta(n)).map((n) => {
|
|
15
|
-
const { children: _c, ...rest } = n;
|
|
16
|
-
return {
|
|
17
|
-
...rest,
|
|
18
|
-
label: n.label || n.name
|
|
19
|
-
};
|
|
20
|
-
});
|
|
10
|
+
return data[typeKey] || [];
|
|
21
11
|
}
|
|
22
12
|
export function getDictOptions(typeKey) {
|
|
23
|
-
|
|
24
|
-
return roots.filter((n) => !isColorMeta(n)).map((n) => {
|
|
13
|
+
return getDict(typeKey).map((n) => {
|
|
25
14
|
const colorChild = n.children?.find((c) => c.name === "color");
|
|
26
15
|
return {
|
|
27
16
|
label: n.label || n.name,
|