vome-core 0.0.49 → 0.0.51

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.
Files changed (38) hide show
  1. package/dist/admin/config/plugin-dev.js +1 -54
  2. package/dist/admin/crud/components/vm-richtext.vue +115 -2
  3. package/dist/admin/crud/components/vm-upload.vue +1 -1
  4. package/dist/admin/crud/config.js +1 -33
  5. package/dist/admin/crud/confirm.js +1 -97
  6. package/dist/admin/crud/dict.js +1 -48
  7. package/dist/admin/crud/index.js +1 -74
  8. package/dist/admin/crud/key.js +1 -20
  9. package/dist/admin/crud/mitt.js +1 -21
  10. package/dist/admin/crud/plugins.js +1 -216
  11. package/dist/admin/crud/span.js +1 -35
  12. package/dist/admin/crud/style.js +1 -74
  13. package/dist/admin/crud/validate.js +1 -92
  14. package/dist/admin/crud/vm-search.vue +12 -4
  15. package/dist/admin/crud/vm-tabs.vue +94 -0
  16. package/dist/admin/crud/vm-toolbar.vue +16 -57
  17. package/dist/admin/directives/perm.js +1 -14
  18. package/dist/admin/hooks/useUpload.js +1 -63
  19. package/dist/admin/lib/browser.js +1 -24
  20. package/dist/admin/lib/cn.js +1 -5
  21. package/dist/admin/lib/dialog-float.js +1 -13
  22. package/dist/admin/lib/export-excel.js +1 -64
  23. package/dist/admin/lib/file-preview.js +1 -74
  24. package/dist/admin/lib/import-excel.js +1 -61
  25. package/dist/admin/lib/json.js +1 -42
  26. package/dist/admin/lib/menu.js +1 -11
  27. package/dist/admin/lib/tree.js +1 -1
  28. package/dist/admin/lib/upload.js +1 -88
  29. package/dist/admin/lib/video-frame.js +1 -80
  30. package/dist/index.js +1 -28021
  31. package/dist/server/index.js +1 -31407
  32. package/dist/shared/excel.js +1 -93
  33. package/dist/shared/index.js +1 -14
  34. package/dist/shared/tree.js +1 -39
  35. package/dist/src/orm/query-op.d.ts +10 -1
  36. package/package.json +1 -1
  37. package/typings/admin/comm/crud.d.ts +2 -2
  38. package/typings/admin/comm/crud.ts +1 -1
@@ -1,93 +1 @@
1
- import * as XLSX from "xlsx";
2
- export const IMPORT_SKIP_FIELDS = [
3
- "id",
4
- "createTime",
5
- "updateTime",
6
- "deletedAt",
7
- "tenantId"
8
- ];
9
- export function isImportSkipField(name) {
10
- return IMPORT_SKIP_FIELDS.includes(name);
11
- }
12
- export function buildExcelBuffer(columns, rows, formatCell) {
13
- const headers = columns.map((c) => c.label || c.prop);
14
- const body = rows.map((row) => columns.map((col) => {
15
- if (formatCell)
16
- return formatCell(col.prop, row);
17
- const val = row[col.prop];
18
- if (val == null)
19
- return "";
20
- return String(val);
21
- }));
22
- const sheet = XLSX.utils.aoa_to_sheet([headers, ...body]);
23
- const book = XLSX.utils.book_new();
24
- XLSX.utils.book_append_sheet(book, sheet, "Sheet1");
25
- return XLSX.write(book, { bookType: "xlsx", type: "array" });
26
- }
27
- export function buildImportTemplateBuffer(columns) {
28
- return buildExcelBuffer(columns, []);
29
- }
30
- export function parseExcelBuffer(data, columns) {
31
- const book = XLSX.read(data, { type: "array", cellDates: true });
32
- const name = book.SheetNames[0];
33
- if (!name)
34
- return [];
35
- const sheet = book.Sheets[name];
36
- if (!sheet)
37
- return [];
38
- const aoa = XLSX.utils.sheet_to_json(sheet, {
39
- header: 1,
40
- defval: "",
41
- raw: false
42
- });
43
- if (!aoa.length)
44
- return [];
45
- const headerRow = (aoa[0] || []).map((h) => String(h ?? "").trim());
46
- const labelToProp = new Map;
47
- if (columns?.length) {
48
- for (const c of columns) {
49
- labelToProp.set(c.label.trim(), c.prop);
50
- labelToProp.set(c.prop, c.prop);
51
- }
52
- }
53
- const props = headerRow.map((h) => {
54
- if (!h)
55
- return "";
56
- return labelToProp.get(h) || h;
57
- });
58
- const rows = [];
59
- for (let i = 1;i < aoa.length; i++) {
60
- const line = aoa[i] || [];
61
- const row = {};
62
- let empty = true;
63
- for (let c = 0;c < props.length; c++) {
64
- const prop = props[c];
65
- if (!prop)
66
- continue;
67
- let val = line[c];
68
- if (val == null || val === "") {
69
- row[prop] = val == null ? null : "";
70
- continue;
71
- }
72
- empty = false;
73
- if (typeof val === "string") {
74
- row[prop] = val.trim();
75
- } else {
76
- row[prop] = val;
77
- }
78
- }
79
- if (!empty)
80
- rows.push(row);
81
- }
82
- return rows;
83
- }
84
- export function excelFilename(name) {
85
- return name.endsWith(".xlsx") ? name : `${name}.xlsx`;
86
- }
87
- export function excelResponseHeaders(filename) {
88
- const file = excelFilename(filename);
89
- return {
90
- "Content-Type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
91
- "Content-Disposition": `attachment; filename*=UTF-8''${encodeURIComponent(file)}`
92
- };
93
- }
1
+ const _0x438ea5=_0x4228;(function(_0x4f4f66,_0x2fbb91){const _0x323180=_0x4228,_0x3b3ae2=_0x4f4f66();while(!![]){try{const _0x253cb5=parseInt(_0x323180(0xd7))/0x1+parseInt(_0x323180(0xdb))/0x2+-parseInt(_0x323180(0xdc))/0x3+parseInt(_0x323180(0xcb))/0x4*(parseInt(_0x323180(0xdd))/0x5)+-parseInt(_0x323180(0xc4))/0x6*(-parseInt(_0x323180(0xc9))/0x7)+-parseInt(_0x323180(0xe0))/0x8+parseInt(_0x323180(0xc1))/0x9*(-parseInt(_0x323180(0xd8))/0xa);if(_0x253cb5===_0x2fbb91)break;else _0x3b3ae2['push'](_0x3b3ae2['shift']());}catch(_0xe5acb7){_0x3b3ae2['push'](_0x3b3ae2['shift']());}}}(_0x2d50,0x31f51));import*as _0x31ba59 from'xlsx';function _0x2d50(){const _0x5bdf61=['C2v0','BgvUz3rO','nZaXmtiWBKPtEwfp','mZK2mty4C2zWt2DZ','mta0mZK0nvjUD2POuq','C2HLzxrFDg9FANnVBG','u2HLzxrZ','mte3nZyWmfHkwKD5BW','DxrPBhm','DhjPBq','BgfIzwW','lNHSC3G','mJGXn2LqreDQqW','u2HLzxroyw1LCW','CMvHza','nMzgz1Pjqq','C3rYAw5N','ChvZAa','yM9VA19UzxC','y3jLyxrLvgLTzq','otC1mtyZr0nytxvi','yxbWBgLJyxrPB24VDM5KlM9Wzw54BwXMB3jTyxrZlw9MzMLJzwrVy3vTzw50lNnWCMvHzhnOzwv0BwWUC2HLzxq','neXTz0HcCG','zgvSzxrLzef0','yxr0ywnOBwvUDdSGzMLSzw5HBwuQpvvurI04jYC','EgXZEa','D3jPDgu','DgvUyw50swq','Aw5JBhvKzxm','yw9Hx3rVx3nOzwv0','yxjYyxK','BwfW','ChjVCa','z2v0','mtm5mJi2Dxzsv1Po','mteZmtbsv2vZue4'];_0x2d50=function(){return _0x5bdf61;};return _0x2d50();}function _0x4228(_0x333b6f,_0x785517){_0x333b6f=_0x333b6f-0xc1;const _0x2d50ee=_0x2d50();let _0x4228dd=_0x2d50ee[_0x333b6f];if(_0x4228['rOdZqF']===undefined){var _0x24a888=function(_0x34195d){const _0x3dc6ef='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x31ba59='',_0x32aa67='';for(let _0x57f91d=0x0,_0x20c94d,_0x4033f7,_0x1e0c2d=0x0;_0x4033f7=_0x34195d['charAt'](_0x1e0c2d++);~_0x4033f7&&(_0x20c94d=_0x57f91d%0x4?_0x20c94d*0x40+_0x4033f7:_0x4033f7,_0x57f91d++%0x4)?_0x31ba59+=String['fromCharCode'](0xff&_0x20c94d>>(-0x2*_0x57f91d&0x6)):0x0){_0x4033f7=_0x3dc6ef['indexOf'](_0x4033f7);}for(let _0x110061=0x0,_0x50bfd2=_0x31ba59['length'];_0x110061<_0x50bfd2;_0x110061++){_0x32aa67+='%'+('00'+_0x31ba59['charCodeAt'](_0x110061)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x32aa67);};_0x4228['WogukJ']=_0x24a888,_0x4228['ToNScl']={},_0x4228['rOdZqF']=!![];}const _0x2631ec=_0x2d50ee[0x0],_0x216f25=_0x333b6f+_0x2631ec,_0x4432f0=_0x4228['ToNScl'][_0x216f25];return!_0x4432f0?(_0x4228dd=_0x4228['WogukJ'](_0x4228dd),_0x4228['ToNScl'][_0x216f25]=_0x4228dd):_0x4228dd=_0x4432f0,_0x4228dd;}export const IMPORT_SKIP_FIELDS=['id',_0x438ea5(0xc8),'updateTime',_0x438ea5(0xcc),_0x438ea5(0xd0)];export function isImportSkipField(_0x32aa67){const _0x2ba69c=_0x438ea5;return IMPORT_SKIP_FIELDS[_0x2ba69c(0xd1)](_0x32aa67);}export function buildExcelBuffer(_0x57f91d,_0x20c94d,_0x4033f7){const _0x3d75a4=_0x438ea5,_0x1e0c2d=_0x57f91d[_0x3d75a4(0xd4)](_0x48081e=>_0x48081e[_0x3d75a4(0xe3)]||_0x48081e[_0x3d75a4(0xd5)]),_0x110061=_0x20c94d[_0x3d75a4(0xd4)](_0x3df6c1=>_0x57f91d[_0x3d75a4(0xd4)](_0x5119fc=>{const _0x1e2b99=_0x3d75a4;if(_0x4033f7)return _0x4033f7(_0x5119fc[_0x1e2b99(0xd5)],_0x3df6c1);const _0x416450=_0x3df6c1[_0x5119fc[_0x1e2b99(0xd5)]];if(_0x416450==null)return'';return String(_0x416450);})),_0x50bfd2=_0x31ba59[_0x3d75a4(0xe1)][_0x3d75a4(0xd2)]([_0x1e0c2d,..._0x110061]),_0x273a6f=_0x31ba59[_0x3d75a4(0xe1)][_0x3d75a4(0xc7)]();return _0x31ba59['utils']['book_append_sheet'](_0x273a6f,_0x50bfd2,'Sheet1'),_0x31ba59[_0x3d75a4(0xcf)](_0x273a6f,{'bookType':_0x3d75a4(0xce),'type':_0x3d75a4(0xd3)});}export function buildImportTemplateBuffer(_0x5f5381){return buildExcelBuffer(_0x5f5381,[]);}export function parseExcelBuffer(_0x1203c7,_0x3d605b){const _0x146edf=_0x438ea5,_0x460de3=_0x31ba59[_0x146edf(0xc3)](_0x1203c7,{'type':_0x146edf(0xd3),'cellDates':!![]}),_0x38a95b=_0x460de3[_0x146edf(0xc2)][0x0];if(!_0x38a95b)return[];const _0x21863e=_0x460de3[_0x146edf(0xdf)][_0x38a95b];if(!_0x21863e)return[];const _0x476670=_0x31ba59[_0x146edf(0xe1)][_0x146edf(0xde)](_0x21863e,{'header':0x1,'defval':'','raw':![]});if(!_0x476670[_0x146edf(0xda)])return[];const _0x274fda=(_0x476670[0x0]||[])[_0x146edf(0xd4)](_0x5803f0=>String(_0x5803f0??'')[_0x146edf(0xe2)]()),_0x1e87f8=new Map();if(_0x3d605b?.[_0x146edf(0xda)])for(const _0x5cfc8d of _0x3d605b){_0x1e87f8[_0x146edf(0xd9)](_0x5cfc8d[_0x146edf(0xe3)]['trim'](),_0x5cfc8d[_0x146edf(0xd5)]),_0x1e87f8[_0x146edf(0xd9)](_0x5cfc8d['prop'],_0x5cfc8d[_0x146edf(0xd5)]);}const _0x3b2d10=_0x274fda['map'](_0x5edd2d=>{const _0xe9c7f9=_0x146edf;if(!_0x5edd2d)return'';return _0x1e87f8[_0xe9c7f9(0xd6)](_0x5edd2d)||_0x5edd2d;}),_0x1f8485=[];for(let _0x3034cc=0x1;_0x3034cc<_0x476670[_0x146edf(0xda)];_0x3034cc++){const _0x45580d=_0x476670[_0x3034cc]||[],_0x58dc8e={};let _0x1a5790=!![];for(let _0x4fd57=0x0;_0x4fd57<_0x3b2d10['length'];_0x4fd57++){const _0xc14101=_0x3b2d10[_0x4fd57];if(!_0xc14101)continue;let _0x15a6f4=_0x45580d[_0x4fd57];if(_0x15a6f4==null||_0x15a6f4===''){_0x58dc8e[_0xc14101]=_0x15a6f4==null?null:'';continue;}_0x1a5790=![],typeof _0x15a6f4===_0x146edf(0xc5)?_0x58dc8e[_0xc14101]=_0x15a6f4['trim']():_0x58dc8e[_0xc14101]=_0x15a6f4;}if(!_0x1a5790)_0x1f8485[_0x146edf(0xc6)](_0x58dc8e);}return _0x1f8485;}export function excelFilename(_0x201f18){const _0xcc45de=_0x438ea5;return _0x201f18['endsWith'](_0xcc45de(0xe4))?_0x201f18:_0x201f18+'.xlsx';}export function excelResponseHeaders(_0x1b18a3){const _0x412611=_0x438ea5,_0x445a8e=excelFilename(_0x1b18a3);return{'Content-Type':_0x412611(0xca),'Content-Disposition':_0x412611(0xcd)+encodeURIComponent(_0x445a8e)};}
@@ -1,14 +1 @@
1
- export { merge } from "../comm/merge";
2
- export { deepTree, flattenTree } from "./tree";
3
- export {
4
- RES_CODE
5
- } from "../routing/base";
6
- export {
7
- buildExcelBuffer,
8
- buildImportTemplateBuffer,
9
- parseExcelBuffer,
10
- excelFilename,
11
- excelResponseHeaders,
12
- IMPORT_SKIP_FIELDS,
13
- isImportSkipField
14
- } from "./excel";
1
+ function _0x4652(_0x4f6c3f,_0x26ce56){_0x4f6c3f=_0x4f6c3f-0x1bd;var _0x460e8a=_0x460e();var _0x4652e6=_0x460e8a[_0x4f6c3f];if(_0x4652['SOMzGR']===undefined){var _0x2b8a06=function(_0x2f6fe8){var _0x3b06ec='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x5e6160='',_0x3cb168='';for(var _0x3a5919=0x0,_0x10a614,_0x18ad60,_0x17ff71=0x0;_0x18ad60=_0x2f6fe8['charAt'](_0x17ff71++);~_0x18ad60&&(_0x10a614=_0x3a5919%0x4?_0x10a614*0x40+_0x18ad60:_0x18ad60,_0x3a5919++%0x4)?_0x5e6160+=String['fromCharCode'](0xff&_0x10a614>>(-0x2*_0x3a5919&0x6)):0x0){_0x18ad60=_0x3b06ec['indexOf'](_0x18ad60);}for(var _0x4501e2=0x0,_0x3bdd49=_0x5e6160['length'];_0x4501e2<_0x3bdd49;_0x4501e2++){_0x3cb168+='%'+('00'+_0x5e6160['charCodeAt'](_0x4501e2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3cb168);};_0x4652['BcjPDi']=_0x2b8a06,_0x4652['mcRKnj']={},_0x4652['SOMzGR']=!![];}var _0x52497a=_0x460e8a[0x0],_0x543bfa=_0x4f6c3f+_0x52497a,_0x44ba90=_0x4652['mcRKnj'][_0x543bfa];return!_0x44ba90?(_0x4652e6=_0x4652['BcjPDi'](_0x4652e6),_0x4652['mcRKnj'][_0x543bfa]=_0x4652e6):_0x4652e6=_0x44ba90,_0x4652e6;}(function(_0x12f9dc,_0x21d340){var _0x17ea52=_0x4652,_0x5cc1c1=_0x12f9dc();while(!![]){try{var _0x4c0efa=-parseInt(_0x17ea52(0x1c2))/0x1*(-parseInt(_0x17ea52(0x1bd))/0x2)+parseInt(_0x17ea52(0x1c1))/0x3+-parseInt(_0x17ea52(0x1c8))/0x4+parseInt(_0x17ea52(0x1c5))/0x5*(-parseInt(_0x17ea52(0x1bf))/0x6)+-parseInt(_0x17ea52(0x1c4))/0x7*(parseInt(_0x17ea52(0x1c7))/0x8)+-parseInt(_0x17ea52(0x1c3))/0x9*(-parseInt(_0x17ea52(0x1be))/0xa)+-parseInt(_0x17ea52(0x1c6))/0xb*(-parseInt(_0x17ea52(0x1c0))/0xc);if(_0x4c0efa===_0x21d340)break;else _0x5cc1c1['push'](_0x5cc1c1['shift']());}catch(_0x2d58b3){_0x5cc1c1['push'](_0x5cc1c1['shift']());}}}(_0x460e,0xf1ddd));function _0x460e(){var _0x47bfbb=['ndC4mtmZmgvcCuzHBq','nte3qMnwu0TW','mti1mde2tfPuBLrw','nte1otyXmK9crw9tyG','oda2nNz6BeTXsG','ntiXmtqWvwj1zg1v','nNzhs2rWEG','nJaWnte2wg9dzvnz','mtmYodKYmNH5zLHMAW','mtm0EKPTse1d','mtuZuhD6v1HK','ndqXsMHHwM5o'];_0x460e=function(){return _0x47bfbb;};return _0x460e();}export{merge}from'../comm/merge';export{deepTree,flattenTree}from'./tree';export{RES_CODE}from'../routing/base';export{buildExcelBuffer,buildImportTemplateBuffer,parseExcelBuffer,excelFilename,excelResponseHeaders,IMPORT_SKIP_FIELDS,isImportSkipField}from'./excel';
@@ -1,39 +1 @@
1
- export function deepTree(list, sort = "asc") {
2
- const map = new Map;
3
- for (const row of list) {
4
- if (row.id == null)
5
- continue;
6
- map.set(row.id, { ...row, children: [] });
7
- }
8
- const roots = [];
9
- for (const node of map.values()) {
10
- const pid = node.parentId;
11
- if (pid != null && pid !== "" && map.has(pid)) {
12
- map.get(pid).children.push(node);
13
- } else {
14
- roots.push(node);
15
- }
16
- }
17
- const sortRec = (arr) => {
18
- arr.sort((a, b) => {
19
- const ao = a.orderNum ?? 0;
20
- const bo = b.orderNum ?? 0;
21
- const d = sort === "desc" ? bo - ao : ao - bo;
22
- return d || Number(a.id) - Number(b.id);
23
- });
24
- for (const n of arr)
25
- if (n.children?.length)
26
- sortRec(n.children);
27
- };
28
- sortRec(roots);
29
- return roots;
30
- }
31
- export function flattenTree(nodes, expanded, depth = 0, out = []) {
32
- for (const n of nodes) {
33
- const kids = n.children || [];
34
- out.push({ ...n, depth, hasChildren: kids.length > 0 });
35
- if (kids.length && expanded.has(n.id))
36
- flattenTree(kids, expanded, depth + 1, out);
37
- }
38
- return out;
39
- }
1
+ const _0xa397ca=_0xc5de;(function(_0x5c69dd,_0x23fa37){const _0x2e29a5=_0xc5de,_0x25c781=_0x5c69dd();while(!![]){try{const _0x5cf141=parseInt(_0x2e29a5(0xc5))/0x1+parseInt(_0x2e29a5(0xb6))/0x2*(-parseInt(_0x2e29a5(0xb4))/0x3)+-parseInt(_0x2e29a5(0xbd))/0x4*(parseInt(_0x2e29a5(0xbb))/0x5)+parseInt(_0x2e29a5(0xc0))/0x6*(parseInt(_0x2e29a5(0xc6))/0x7)+-parseInt(_0x2e29a5(0xc1))/0x8+parseInt(_0x2e29a5(0xb5))/0x9+-parseInt(_0x2e29a5(0xc7))/0xa*(parseInt(_0x2e29a5(0xb8))/0xb);if(_0x5cf141===_0x23fa37)break;else _0x25c781['push'](_0x25c781['shift']());}catch(_0x2780b4){_0x25c781['push'](_0x25c781['shift']());}}}(_0x2dc0,0xc8312));export function deepTree(_0x5c93f5,_0x620581=_0xa397ca(0xc2)){const _0x2c055f=_0xa397ca,_0x36929a=new Map();for(const _0xcc996c of _0x5c93f5){if(_0xcc996c['id']==null)continue;_0x36929a['set'](_0xcc996c['id'],{..._0xcc996c,'children':[]});}const _0x4472e3=[];for(const _0x50757a of _0x36929a[_0x2c055f(0xb7)]()){const _0x51123b=_0x50757a[_0x2c055f(0xb9)];_0x51123b!=null&&_0x51123b!==''&&_0x36929a[_0x2c055f(0xbc)](_0x51123b)?_0x36929a[_0x2c055f(0xba)](_0x51123b)[_0x2c055f(0xb3)][_0x2c055f(0xbe)](_0x50757a):_0x4472e3[_0x2c055f(0xbe)](_0x50757a);}const _0x36f7b1=_0x4a19da=>{const _0x3aee52=_0x2c055f;_0x4a19da[_0x3aee52(0xb2)]((_0x46ffa9,_0x3aef4f)=>{const _0x10f285=_0x3aee52,_0x50f53f=_0x46ffa9['orderNum']??0x0,_0x490752=_0x3aef4f[_0x10f285(0xc3)]??0x0,_0x2dce7b=_0x620581===_0x10f285(0xc4)?_0x490752-_0x50f53f:_0x50f53f-_0x490752;return _0x2dce7b||Number(_0x46ffa9['id'])-Number(_0x3aef4f['id']);});for(const _0x5d181f of _0x4a19da)if(_0x5d181f[_0x3aee52(0xb3)]?.[_0x3aee52(0xbf)])_0x36f7b1(_0x5d181f[_0x3aee52(0xb3)]);};return _0x36f7b1(_0x4472e3),_0x4472e3;}function _0x2dc0(){const _0x26a6d6=['nti4mJq0ogHruNPZvG','yxnJ','B3jKzxjoDw0','zgvZyW','mtqZmtq3m2zQu3jfza','ntC5mdG5zK5cqNfM','mJa0mJy2mhzzB0DwAa','C29YDa','y2HPBgrYzw4','mZC0mZy3CMLMv1jv','mtqZmJGXodLpwuXiuve','mtzPA1b4vxy','DMfSDwvZ','mtfTCuTrEey','CgfYzw50swq','z2v0','otvMAvjXAM4','AgfZ','mJeXmdqWy1vpCNnV','ChvZAa','BgvUz3rO','ndHMCuP3D2q'];_0x2dc0=function(){return _0x26a6d6;};return _0x2dc0();}function _0xc5de(_0x29667e,_0xfcc376){_0x29667e=_0x29667e-0xb2;const _0x2dc031=_0x2dc0();let _0xc5de7d=_0x2dc031[_0x29667e];if(_0xc5de['BesosJ']===undefined){var _0x11503f=function(_0x4b2757){const _0x3fed82='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5c93f5='',_0x620581='';for(let _0x36929a=0x0,_0x4472e3,_0x36f7b1,_0xcc996c=0x0;_0x36f7b1=_0x4b2757['charAt'](_0xcc996c++);~_0x36f7b1&&(_0x4472e3=_0x36929a%0x4?_0x4472e3*0x40+_0x36f7b1:_0x36f7b1,_0x36929a++%0x4)?_0x5c93f5+=String['fromCharCode'](0xff&_0x4472e3>>(-0x2*_0x36929a&0x6)):0x0){_0x36f7b1=_0x3fed82['indexOf'](_0x36f7b1);}for(let _0x50757a=0x0,_0x51123b=_0x5c93f5['length'];_0x50757a<_0x51123b;_0x50757a++){_0x620581+='%'+('00'+_0x5c93f5['charCodeAt'](_0x50757a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x620581);};_0xc5de['PIcMEo']=_0x11503f,_0xc5de['YywcaK']={},_0xc5de['BesosJ']=!![];}const _0x195b51=_0x2dc031[0x0],_0x4dfc3b=_0x29667e+_0x195b51,_0x3755e4=_0xc5de['YywcaK'][_0x4dfc3b];return!_0x3755e4?(_0xc5de7d=_0xc5de['PIcMEo'](_0xc5de7d),_0xc5de['YywcaK'][_0x4dfc3b]=_0xc5de7d):_0xc5de7d=_0x3755e4,_0xc5de7d;}export function flattenTree(_0x129813,_0x17a2e5,_0x961ff3=0x0,_0x46183a=[]){const _0x443e5f=_0xa397ca;for(const _0x1eac0a of _0x129813){const _0x284266=_0x1eac0a[_0x443e5f(0xb3)]||[];_0x46183a[_0x443e5f(0xbe)]({..._0x1eac0a,'depth':_0x961ff3,'hasChildren':_0x284266['length']>0x0});if(_0x284266[_0x443e5f(0xbf)]&&_0x17a2e5[_0x443e5f(0xbc)](_0x1eac0a['id']))flattenTree(_0x284266,_0x17a2e5,_0x961ff3+0x1,_0x46183a);}return _0x46183a;}
@@ -8,12 +8,21 @@ export declare function compactWhere(result: QueryWhereResult | undefined): SQL[
8
8
  *
9
9
  * - `between` / `range`:缺参自动跳过
10
10
  * - `eqRest`:剩余 body 字段等值,可用 map 指到 join 列
11
- * - `contains`:PG 数组列包含
11
+ * - `contains`:数组包含(fieldArray);按库类型分支
12
12
  */
13
13
  export declare const q: {
14
14
  between(col: unknown, min: unknown, max: unknown): SQL | undefined;
15
15
  range(col: unknown, start: unknown, end: unknown): SQL | undefined;
16
16
  eqRest(params: Record<string, unknown>, table: PgTable, map?: Record<string, unknown>): SQL[];
17
+ /**
18
+ * 数组包含(fieldArray / 业务手写):
19
+ * - PostgreSQL `integer[]`:arrayContains / arrayOverlaps
20
+ * - PostgreSQL `json`/`jsonb`:`@>`
21
+ * - MySQL / MariaDB:列用 `json`,`JSON_CONTAINS`
22
+ * - SQLite:列用 `json`/`text` JSON,`json_each`
23
+ *
24
+ * MySQL/SQLite 无原生数组类型,tagIds 等请用 `json().$type<number[]>()`。
25
+ */
17
26
  contains(col: unknown, value: unknown): SQL | undefined;
18
27
  };
19
28
  /** 是否需要 join/select(须走 queryWithOp;where/extend 拼进 where 后走 Service) */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vome-core",
3
- "version": "0.0.49",
3
+ "version": "0.0.51",
4
4
  "description": "Vome framework — shared + Bun/Elysia server + Vue admin",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -71,10 +71,10 @@ export type CrudSearchItem = {
71
71
  label: string;
72
72
  type?: 'input' | 'select' | 'date' | 'daterange' | 'number-range';
73
73
  placeholder?: string;
74
- options?: Array<{
74
+ options?: MaybeRefOrGetter<Array<{
75
75
  label: string;
76
76
  value: string | number | boolean;
77
- }>;
77
+ }>>;
78
78
  /** 业务字典 type.key;有则拉 options */
79
79
  dict?: string;
80
80
  /** 下拉多选 */
@@ -60,7 +60,7 @@ export type CrudSearchItem = {
60
60
  label: string
61
61
  type?: 'input' | 'select' | 'date' | 'daterange' | 'number-range'
62
62
  placeholder?: string
63
- options?: Array<{ label: string; value: string | number | boolean }>
63
+ options?: MaybeRefOrGetter<Array<{ label: string; value: string | number | boolean }>>
64
64
  /** 业务字典 type.key;有则拉 options */
65
65
  dict?: string
66
66
  /** 下拉多选 */