vome-core 0.3.69 → 0.3.71
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/Avatar.vue +18 -18
- package/dist/admin/components/ui/avatar/AvatarFallback.vue +21 -21
- package/dist/admin/components/ui/avatar/AvatarImage.vue +16 -16
- package/dist/admin/components/ui/avatar/index.js +1 -1
- package/dist/admin/components/ui/badge/Badge.vue +26 -26
- package/dist/admin/components/ui/button/Button.vue +31 -31
- package/dist/admin/components/ui/button/index.d.ts +1 -1
- package/dist/admin/components/ui/checkbox/Checkbox.vue +35 -35
- package/dist/admin/components/ui/checkbox/index.js +1 -1
- package/dist/admin/components/ui/dialog/Dialog.vue +19 -19
- package/dist/admin/components/ui/dialog/DialogClose.vue +15 -15
- package/dist/admin/components/ui/dialog/DialogContent.vue +267 -267
- package/dist/admin/components/ui/dialog/DialogDescription.vue +23 -23
- package/dist/admin/components/ui/dialog/DialogFooter.vue +27 -27
- package/dist/admin/components/ui/dialog/DialogHeader.vue +17 -17
- package/dist/admin/components/ui/dialog/DialogOverlay.vue +21 -21
- package/dist/admin/components/ui/dialog/DialogScrollContent.vue +60 -60
- package/dist/admin/components/ui/dialog/DialogTitle.vue +23 -23
- package/dist/admin/components/ui/dialog/DialogTrigger.vue +15 -15
- package/dist/admin/components/ui/dialog/index.js +1 -1
- package/dist/admin/components/ui/dropdown-menu/DropdownMenu.vue +19 -19
- package/dist/admin/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +39 -39
- package/dist/admin/components/ui/dropdown-menu/DropdownMenuContent.vue +39 -39
- package/dist/admin/components/ui/dropdown-menu/DropdownMenuGroup.vue +15 -15
- package/dist/admin/components/ui/dropdown-menu/DropdownMenuItem.vue +31 -31
- package/dist/admin/components/ui/dropdown-menu/DropdownMenuLabel.vue +23 -23
- package/dist/admin/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +21 -21
- package/dist/admin/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +40 -40
- package/dist/admin/components/ui/dropdown-menu/DropdownMenuSeparator.vue +23 -23
- package/dist/admin/components/ui/dropdown-menu/DropdownMenuShortcut.vue +17 -17
- package/dist/admin/components/ui/dropdown-menu/DropdownMenuSub.vue +18 -18
- package/dist/admin/components/ui/dropdown-menu/DropdownMenuSubContent.vue +27 -27
- package/dist/admin/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +31 -31
- package/dist/admin/components/ui/dropdown-menu/DropdownMenuTrigger.vue +17 -17
- package/dist/admin/components/ui/dropdown-menu/index.js +1 -1
- package/dist/admin/components/ui/input/Input.vue +183 -183
- package/dist/admin/components/ui/input/index.js +1 -1
- package/dist/admin/components/ui/label/Label.vue +26 -26
- package/dist/admin/components/ui/label/index.js +1 -1
- package/dist/admin/components/ui/scroll-area/ScrollArea.vue +33 -33
- package/dist/admin/components/ui/scroll-area/ScrollBar.vue +32 -32
- package/dist/admin/components/ui/scroll-area/index.js +1 -1
- package/dist/admin/components/ui/select/Select.vue +19 -19
- package/dist/admin/components/ui/select/SelectContent.vue +51 -51
- package/dist/admin/components/ui/select/SelectGroup.vue +15 -15
- package/dist/admin/components/ui/select/SelectItem.vue +53 -53
- package/dist/admin/components/ui/select/SelectItemText.vue +15 -15
- package/dist/admin/components/ui/select/SelectLabel.vue +17 -17
- package/dist/admin/components/ui/select/SelectScrollDownButton.vue +26 -26
- package/dist/admin/components/ui/select/SelectScrollUpButton.vue +26 -26
- package/dist/admin/components/ui/select/SelectSeparator.vue +19 -19
- package/dist/admin/components/ui/select/SelectTrigger.vue +44 -44
- package/dist/admin/components/ui/select/SelectValue.vue +15 -15
- package/dist/admin/components/ui/select/index.js +1 -1
- package/dist/admin/components/ui/separator/Separator.vue +29 -29
- package/dist/admin/components/ui/separator/index.js +1 -1
- package/dist/admin/components/ui/sheet/Sheet.vue +19 -19
- package/dist/admin/components/ui/sheet/SheetClose.vue +15 -15
- package/dist/admin/components/ui/sheet/SheetContent.vue +63 -63
- package/dist/admin/components/ui/sheet/SheetDescription.vue +21 -21
- package/dist/admin/components/ui/sheet/SheetFooter.vue +16 -16
- package/dist/admin/components/ui/sheet/SheetHeader.vue +15 -15
- package/dist/admin/components/ui/sheet/SheetOverlay.vue +21 -21
- package/dist/admin/components/ui/sheet/SheetTitle.vue +21 -21
- package/dist/admin/components/ui/sheet/SheetTrigger.vue +15 -15
- package/dist/admin/components/ui/sheet/index.js +1 -1
- package/dist/admin/components/ui/sonner/Toaster.vue +117 -117
- package/dist/admin/components/ui/sonner/index.js +1 -1
- package/dist/admin/components/ui/table/Table.vue +16 -16
- package/dist/admin/components/ui/table/TableBody.vue +17 -17
- package/dist/admin/components/ui/table/TableCaption.vue +17 -17
- package/dist/admin/components/ui/table/TableCell.vue +22 -22
- package/dist/admin/components/ui/table/TableEmpty.vue +34 -34
- package/dist/admin/components/ui/table/TableFooter.vue +17 -17
- package/dist/admin/components/ui/table/TableHead.vue +17 -17
- package/dist/admin/components/ui/table/TableHeader.vue +17 -17
- package/dist/admin/components/ui/table/TableRow.vue +17 -17
- package/dist/admin/components/ui/table/index.js +1 -1
- package/dist/admin/components/ui/tabs/Tabs.vue +24 -24
- package/dist/admin/components/ui/tabs/TabsContent.vue +21 -21
- package/dist/admin/components/ui/tabs/TabsList.vue +24 -24
- package/dist/admin/components/ui/tabs/TabsTrigger.vue +26 -26
- package/dist/admin/components/ui/tabs/index.js +1 -1
- package/dist/admin/components/ui/tooltip/Tooltip.vue +19 -19
- package/dist/admin/components/ui/tooltip/TooltipContent.vue +34 -34
- package/dist/admin/components/ui/tooltip/TooltipProvider.vue +14 -14
- package/dist/admin/components/ui/tooltip/TooltipTrigger.vue +15 -15
- package/dist/admin/components/ui/tooltip/index.js +1 -1
- package/dist/admin/components/vm-action-btn.vue +136 -136
- package/dist/admin/components/vm-aside-list-item.vue +136 -136
- package/dist/admin/components/vm-aside.vue +229 -229
- package/dist/admin/components/vm-auto-perm-dialog.vue +371 -371
- package/dist/admin/components/vm-card-grid.vue +37 -37
- package/dist/admin/components/vm-card-head.vue +45 -45
- package/dist/admin/components/vm-card-meta.vue +22 -22
- package/dist/admin/components/vm-card-title.vue +56 -56
- package/dist/admin/components/vm-card.vue +176 -176
- package/dist/admin/components/vm-check-tree.vue +340 -340
- package/dist/admin/components/vm-clamp-text.vue +39 -39
- package/dist/admin/components/vm-dept-tree.vue +497 -497
- package/dist/admin/components/vm-empty.vue +68 -68
- package/dist/admin/components/vm-eps-perm-picker.vue +123 -123
- package/dist/admin/components/vm-form-dialog.vue +632 -632
- package/dist/admin/components/vm-group-cascader.vue +560 -560
- package/dist/admin/components/vm-icon-btn.vue +88 -88
- package/dist/admin/components/vm-icon-picker.vue +647 -647
- package/dist/admin/components/vm-inline-search.vue +61 -61
- package/dist/admin/components/vm-loading.vue +114 -114
- package/dist/admin/components/vm-markdown.vue +405 -405
- package/dist/admin/components/vm-marquee.vue +265 -265
- package/dist/admin/components/vm-page-tabs.vue +94 -94
- package/dist/admin/components/vm-perm-section.vue +57 -57
- package/dist/admin/components/vm-ri-icon.vue +23 -23
- package/dist/admin/components/vm-role-picker.vue +314 -314
- package/dist/admin/components/vm-split-layout.vue +106 -106
- package/dist/admin/components/vm-thumb.vue +49 -49
- package/dist/admin/components/vm-view-path-picker.vue +59 -59
- package/dist/admin/crud/auto-fields.d.ts +7 -0
- package/dist/admin/crud/auto-fields.js +1 -1
- package/dist/admin/crud/components/vm-avatar.vue +104 -104
- package/dist/admin/crud/components/vm-color-picker.vue +1626 -1626
- package/dist/admin/crud/components/vm-column-custom.vue +193 -193
- package/dist/admin/crud/components/vm-context-menu.vue +105 -105
- package/dist/admin/crud/components/vm-copy-btn.vue +102 -102
- package/dist/admin/crud/components/vm-date-calendar-panel.vue +537 -537
- package/dist/admin/crud/components/vm-date-picker.vue +75 -75
- package/dist/admin/crud/components/vm-date-range.vue +88 -88
- package/dist/admin/crud/components/vm-date-text.vue +42 -42
- package/dist/admin/crud/components/vm-datetime-field.vue +215 -215
- package/dist/admin/crud/components/vm-datetime-picker.vue +9 -9
- package/dist/admin/crud/components/vm-dict-tag.vue +112 -112
- package/dist/admin/crud/components/vm-ellipsis-text.vue +34 -34
- package/dist/admin/crud/components/vm-form-hint.vue +81 -81
- package/dist/admin/crud/components/vm-json-code.vue +41 -41
- package/dist/admin/crud/components/vm-json-editor.vue +161 -161
- package/dist/admin/crud/components/vm-json-kv-editor.vue +318 -318
- package/dist/admin/crud/components/vm-kv-row.vue +51 -51
- package/dist/admin/crud/components/vm-multi-select.vue +279 -279
- package/dist/admin/crud/components/vm-number-range.vue +204 -204
- package/dist/admin/crud/components/vm-preview-viewer.vue +894 -894
- package/dist/admin/crud/components/vm-radio.vue +87 -87
- package/dist/admin/crud/components/vm-richtext.vue +313 -313
- package/dist/admin/crud/components/vm-select.vue +570 -570
- package/dist/admin/crud/components/vm-status-tag.vue +158 -158
- package/dist/admin/crud/components/vm-switch.vue +158 -158
- package/dist/admin/crud/components/vm-tag-list.vue +108 -108
- package/dist/admin/crud/components/vm-text-link.vue +52 -52
- package/dist/admin/crud/components/vm-toggle-switch.vue +84 -84
- package/dist/admin/crud/components/vm-tree-select.vue +450 -450
- package/dist/admin/crud/components/vm-upload-item.vue +298 -298
- package/dist/admin/crud/components/vm-upload.vue +436 -436
- 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/data-i18n.js +1 -1
- package/dist/admin/crud/dict.js +1 -1
- package/dist/admin/crud/export-fetch.js +1 -1
- package/dist/admin/crud/index.d.ts +1 -1
- package/dist/admin/crud/index.js +1 -0
- 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/crud/vm-add-btn.vue +70 -70
- package/dist/admin/crud/vm-adv-search.vue +83 -83
- package/dist/admin/crud/vm-crud.vue +711 -711
- package/dist/admin/crud/vm-data-i18n-btn.vue +456 -456
- package/dist/admin/crud/vm-data-i18n-lang.vue +183 -183
- package/dist/admin/crud/vm-export-btn.vue +183 -183
- package/dist/admin/crud/vm-flex.vue +14 -14
- package/dist/admin/crud/vm-import-btn.vue +747 -747
- package/dist/admin/crud/vm-multi-delete-btn.vue +49 -49
- package/dist/admin/crud/vm-pagination.vue +212 -212
- package/dist/admin/crud/vm-refresh-btn.vue +35 -35
- package/dist/admin/crud/vm-row.vue +55 -55
- package/dist/admin/crud/vm-search-key.vue +78 -78
- package/dist/admin/crud/vm-search.vue +466 -466
- package/dist/admin/crud/vm-table.vue +1390 -1390
- package/dist/admin/crud/vm-tabs.vue +94 -94
- package/dist/admin/crud/vm-toolbar.vue +357 -357
- package/dist/admin/crud/vm-upsert.vue +765 -765
- package/dist/admin/directives/perm.js +1 -1
- package/dist/admin/env.d.ts +1 -1
- package/dist/admin/hooks/useUpload.js +1 -1
- package/dist/admin/hooks/useVome.d.ts +2 -2
- 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/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/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/stores/app.d.ts +13 -1
- package/dist/admin/stores/tags.d.ts +14 -1
- package/dist/admin/stores/user.d.ts +48 -1
- package/dist/admin/styles/base.css +121 -121
- package/dist/admin/vendor/browser-image-compression.js +1144 -1144
- package/dist/admin/vendor/decimal-js.js +12 -12
- package/dist/admin/vendor/xlsx.js +263 -263
- package/dist/ai/index.js +1 -1
- package/dist/client/ai-model-registry.js +1 -1
- package/dist/client/base.js +1 -1
- package/dist/client/configure.js +1 -1
- package/dist/client/dict.js +1 -1
- package/dist/client/eps-payload.js +1 -1
- package/dist/client/eps.d.ts +7 -4
- package/dist/client/eps.js +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.js +1 -1
- package/dist/client/locale-change.js +1 -1
- package/dist/client/locale-store.d.ts +45 -1
- package/dist/client/locale-store.js +1 -1
- package/dist/client/path.js +1 -1
- package/dist/client/service.d.ts +8 -0
- package/dist/client/service.js +1 -1
- package/dist/client/vite-admin.js +1 -1
- package/dist/client/vite-auto-import.js +1 -1
- package/dist/client/vite-micro-proxy.js +1 -1
- package/dist/client/vite-plugin-eps.d.ts +5 -0
- package/dist/client/vite-plugin-eps.js +1 -1
- package/dist/client/vite-resolve.js +1 -1
- package/dist/config/index.js +1 -1
- package/dist/core/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/orm/index.d.ts +2 -0
- package/dist/orm/patch-bun-sql-jsonb.d.ts +1 -0
- package/dist/routing/context.d.ts +12 -2
- package/dist/routing/eps.d.ts +4 -1
- package/dist/routing/index.d.ts +2 -1
- package/dist/routing/metadata.d.ts +7 -3
- package/dist/server/index.d.ts +4 -2
- package/dist/server/index.js +1 -1
- package/dist/shared/datetime-picker.js +1 -1
- package/dist/shared/decimal.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/dist/typings/routing/eps.d.ts +3 -1
- package/dist/typings/routing/meta.d.ts +15 -0
- package/package.json +1 -1
- package/typings/admin/base/auth.ts +24 -24
- package/typings/admin/base/permission.ts +19 -19
- package/typings/admin/comm/cascader.ts +7 -7
- package/typings/admin/comm/check-tree.ts +7 -7
- package/typings/admin/comm/crud.ts +427 -427
- package/typings/admin/comm/eps.ts +88 -86
- package/typings/admin/comm/request.ts +16 -16
- package/typings/admin/comm/service.ts +43 -43
- package/typings/admin/comm/upload.ts +39 -39
- package/typings/admin/theme.ts +10 -10
- package/typings/admin/vome/browser.ts +11 -11
- package/typings/admin/vome/module.ts +13 -13
- package/typings/admin/vome/tags.ts +9 -9
- package/typings/comm/crud.ts +83 -83
- package/typings/comm/page.ts +18 -18
- package/typings/comm/scan.ts +6 -6
- package/typings/common.ts +4 -4
- package/typings/context/data.ts +10 -10
- package/typings/ext/market-seat.ts +42 -42
- package/typings/ext/market.ts +55 -55
- package/typings/ext/module.ts +64 -64
- package/typings/ext/plugin.ts +38 -38
- package/typings/ioc/metadata.ts +34 -34
- package/typings/logger/config.ts +6 -6
- package/typings/routing/crud.ts +199 -199
- package/typings/routing/eps.ts +90 -88
- package/typings/routing/meta.ts +80 -63
- package/typings/routing/register.ts +21 -21
- package/typings/routing/scan-context.ts +7 -7
|
@@ -1,106 +1,106 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div
|
|
3
|
-
class="vm-split-layout"
|
|
4
|
-
:class="{ 'has-toolbar': Boolean($slots.toolbar) }"
|
|
5
|
-
:style="gridStyle"
|
|
6
|
-
>
|
|
7
|
-
<div v-if="$slots.toolbar" class="vm-split-layout__toolbar">
|
|
8
|
-
<slot name="toolbar" />
|
|
9
|
-
</div>
|
|
10
|
-
<aside v-if="$slots.aside" class="vm-split-layout__aside">
|
|
11
|
-
<slot name="aside" />
|
|
12
|
-
</aside>
|
|
13
|
-
<div class="vm-split-layout__main">
|
|
14
|
-
<slot />
|
|
15
|
-
</div>
|
|
16
|
-
</div>
|
|
17
|
-
</template>
|
|
18
|
-
|
|
19
|
-
<script setup lang="ts">
|
|
20
|
-
import { computed } from 'vue'
|
|
21
|
-
|
|
22
|
-
defineOptions({ name: 'vm-split-layout' })
|
|
23
|
-
|
|
24
|
-
const props = withDefaults(
|
|
25
|
-
defineProps<{
|
|
26
|
-
asideWidth?: string
|
|
27
|
-
}>(),
|
|
28
|
-
{
|
|
29
|
-
asideWidth: '240px',
|
|
30
|
-
},
|
|
31
|
-
)
|
|
32
|
-
|
|
33
|
-
const gridStyle = computed(() => ({
|
|
34
|
-
'--vm-split-aside': props.asideWidth,
|
|
35
|
-
}))
|
|
36
|
-
</script>
|
|
37
|
-
|
|
38
|
-
<style lang="scss" scoped>
|
|
39
|
-
.vm-split-layout {
|
|
40
|
-
display: grid;
|
|
41
|
-
width: 100%;
|
|
42
|
-
flex: 1;
|
|
43
|
-
min-height: 0;
|
|
44
|
-
align-self: stretch;
|
|
45
|
-
overflow: hidden;
|
|
46
|
-
border-radius: var(--radius);
|
|
47
|
-
background: var(--card);
|
|
48
|
-
box-shadow: var(--shadow-soft);
|
|
49
|
-
grid-template-columns: var(--vm-split-aside, 240px) minmax(0, 1fr);
|
|
50
|
-
grid-template-rows: minmax(0, 1fr);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
.vm-split-layout.has-toolbar {
|
|
54
|
-
grid-template-rows: auto minmax(0, 1fr);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
.vm-split-layout__toolbar {
|
|
58
|
-
grid-row: 1;
|
|
59
|
-
grid-column: 1 / -1;
|
|
60
|
-
display: flex;
|
|
61
|
-
flex-wrap: wrap;
|
|
62
|
-
align-items: center;
|
|
63
|
-
justify-content: space-between;
|
|
64
|
-
gap: 8px;
|
|
65
|
-
padding: 12px 16px;
|
|
66
|
-
border-bottom: 1px solid color-mix(in srgb, var(--foreground) 8%, transparent);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
.vm-split-layout__aside {
|
|
70
|
-
grid-row: 1;
|
|
71
|
-
grid-column: 1;
|
|
72
|
-
min-height: 0;
|
|
73
|
-
overflow: hidden;
|
|
74
|
-
border-right: 1px solid color-mix(in srgb, var(--foreground) 8%, transparent);
|
|
75
|
-
|
|
76
|
-
:deep(.vm-aside) {
|
|
77
|
-
border-right: none;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
.has-toolbar .vm-split-layout__aside {
|
|
82
|
-
grid-row: 2;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
.vm-split-layout__main {
|
|
86
|
-
grid-row: 1;
|
|
87
|
-
grid-column: 2;
|
|
88
|
-
display: flex;
|
|
89
|
-
flex-direction: column;
|
|
90
|
-
min-width: 0;
|
|
91
|
-
min-height: 0;
|
|
92
|
-
overflow: hidden;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
.has-toolbar .vm-split-layout__main {
|
|
96
|
-
grid-row: 2;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
.vm-split-layout__main :deep(.vm-crud) {
|
|
100
|
-
flex: 1;
|
|
101
|
-
min-height: 0;
|
|
102
|
-
height: 100%;
|
|
103
|
-
border-radius: 0;
|
|
104
|
-
box-shadow: none;
|
|
105
|
-
}
|
|
106
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<div
|
|
3
|
+
class="vm-split-layout"
|
|
4
|
+
:class="{ 'has-toolbar': Boolean($slots.toolbar) }"
|
|
5
|
+
:style="gridStyle"
|
|
6
|
+
>
|
|
7
|
+
<div v-if="$slots.toolbar" class="vm-split-layout__toolbar">
|
|
8
|
+
<slot name="toolbar" />
|
|
9
|
+
</div>
|
|
10
|
+
<aside v-if="$slots.aside" class="vm-split-layout__aside">
|
|
11
|
+
<slot name="aside" />
|
|
12
|
+
</aside>
|
|
13
|
+
<div class="vm-split-layout__main">
|
|
14
|
+
<slot />
|
|
15
|
+
</div>
|
|
16
|
+
</div>
|
|
17
|
+
</template>
|
|
18
|
+
|
|
19
|
+
<script setup lang="ts">
|
|
20
|
+
import { computed } from 'vue'
|
|
21
|
+
|
|
22
|
+
defineOptions({ name: 'vm-split-layout' })
|
|
23
|
+
|
|
24
|
+
const props = withDefaults(
|
|
25
|
+
defineProps<{
|
|
26
|
+
asideWidth?: string
|
|
27
|
+
}>(),
|
|
28
|
+
{
|
|
29
|
+
asideWidth: '240px',
|
|
30
|
+
},
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
const gridStyle = computed(() => ({
|
|
34
|
+
'--vm-split-aside': props.asideWidth,
|
|
35
|
+
}))
|
|
36
|
+
</script>
|
|
37
|
+
|
|
38
|
+
<style lang="scss" scoped>
|
|
39
|
+
.vm-split-layout {
|
|
40
|
+
display: grid;
|
|
41
|
+
width: 100%;
|
|
42
|
+
flex: 1;
|
|
43
|
+
min-height: 0;
|
|
44
|
+
align-self: stretch;
|
|
45
|
+
overflow: hidden;
|
|
46
|
+
border-radius: var(--radius);
|
|
47
|
+
background: var(--card);
|
|
48
|
+
box-shadow: var(--shadow-soft);
|
|
49
|
+
grid-template-columns: var(--vm-split-aside, 240px) minmax(0, 1fr);
|
|
50
|
+
grid-template-rows: minmax(0, 1fr);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.vm-split-layout.has-toolbar {
|
|
54
|
+
grid-template-rows: auto minmax(0, 1fr);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.vm-split-layout__toolbar {
|
|
58
|
+
grid-row: 1;
|
|
59
|
+
grid-column: 1 / -1;
|
|
60
|
+
display: flex;
|
|
61
|
+
flex-wrap: wrap;
|
|
62
|
+
align-items: center;
|
|
63
|
+
justify-content: space-between;
|
|
64
|
+
gap: 8px;
|
|
65
|
+
padding: 12px 16px;
|
|
66
|
+
border-bottom: 1px solid color-mix(in srgb, var(--foreground) 8%, transparent);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.vm-split-layout__aside {
|
|
70
|
+
grid-row: 1;
|
|
71
|
+
grid-column: 1;
|
|
72
|
+
min-height: 0;
|
|
73
|
+
overflow: hidden;
|
|
74
|
+
border-right: 1px solid color-mix(in srgb, var(--foreground) 8%, transparent);
|
|
75
|
+
|
|
76
|
+
:deep(.vm-aside) {
|
|
77
|
+
border-right: none;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.has-toolbar .vm-split-layout__aside {
|
|
82
|
+
grid-row: 2;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.vm-split-layout__main {
|
|
86
|
+
grid-row: 1;
|
|
87
|
+
grid-column: 2;
|
|
88
|
+
display: flex;
|
|
89
|
+
flex-direction: column;
|
|
90
|
+
min-width: 0;
|
|
91
|
+
min-height: 0;
|
|
92
|
+
overflow: hidden;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.has-toolbar .vm-split-layout__main {
|
|
96
|
+
grid-row: 2;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.vm-split-layout__main :deep(.vm-crud) {
|
|
100
|
+
flex: 1;
|
|
101
|
+
min-height: 0;
|
|
102
|
+
height: 100%;
|
|
103
|
+
border-radius: 0;
|
|
104
|
+
box-shadow: none;
|
|
105
|
+
}
|
|
106
|
+
</style>
|
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<span class="vm-thumb" :style="boxStyle">
|
|
3
|
-
<img v-if="src" :src="src" alt="" />
|
|
4
|
-
<i v-else-if="icon" :class="icon" aria-hidden="true" />
|
|
5
|
-
<slot v-else />
|
|
6
|
-
</span>
|
|
7
|
-
</template>
|
|
8
|
-
|
|
9
|
-
<script setup lang="ts">
|
|
10
|
-
import { computed } from 'vue'
|
|
11
|
-
|
|
12
|
-
defineOptions({ name: 'vm-thumb' })
|
|
13
|
-
|
|
14
|
-
const props = withDefaults(
|
|
15
|
-
defineProps<{
|
|
16
|
-
src?: string
|
|
17
|
-
icon?: string
|
|
18
|
-
size?: number
|
|
19
|
-
}>(),
|
|
20
|
-
{
|
|
21
|
-
size: 32,
|
|
22
|
-
},
|
|
23
|
-
)
|
|
24
|
-
|
|
25
|
-
const boxStyle = computed(() => ({
|
|
26
|
-
width: `${props.size}px`,
|
|
27
|
-
height: `${props.size}px`,
|
|
28
|
-
}))
|
|
29
|
-
</script>
|
|
30
|
-
|
|
31
|
-
<style lang="scss" scoped>
|
|
32
|
-
.vm-thumb {
|
|
33
|
-
display: inline-flex;
|
|
34
|
-
flex-shrink: 0;
|
|
35
|
-
align-items: center;
|
|
36
|
-
justify-content: center;
|
|
37
|
-
overflow: hidden;
|
|
38
|
-
border-radius: 8px;
|
|
39
|
-
background: color-mix(in srgb, var(--brand) 12%, var(--card));
|
|
40
|
-
color: var(--brand);
|
|
41
|
-
font-size: 16px;
|
|
42
|
-
|
|
43
|
-
img {
|
|
44
|
-
width: 100%;
|
|
45
|
-
height: 100%;
|
|
46
|
-
object-fit: cover;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<span class="vm-thumb" :style="boxStyle">
|
|
3
|
+
<img v-if="src" :src="src" alt="" />
|
|
4
|
+
<i v-else-if="icon" :class="icon" aria-hidden="true" />
|
|
5
|
+
<slot v-else />
|
|
6
|
+
</span>
|
|
7
|
+
</template>
|
|
8
|
+
|
|
9
|
+
<script setup lang="ts">
|
|
10
|
+
import { computed } from 'vue'
|
|
11
|
+
|
|
12
|
+
defineOptions({ name: 'vm-thumb' })
|
|
13
|
+
|
|
14
|
+
const props = withDefaults(
|
|
15
|
+
defineProps<{
|
|
16
|
+
src?: string
|
|
17
|
+
icon?: string
|
|
18
|
+
size?: number
|
|
19
|
+
}>(),
|
|
20
|
+
{
|
|
21
|
+
size: 32,
|
|
22
|
+
},
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
const boxStyle = computed(() => ({
|
|
26
|
+
width: `${props.size}px`,
|
|
27
|
+
height: `${props.size}px`,
|
|
28
|
+
}))
|
|
29
|
+
</script>
|
|
30
|
+
|
|
31
|
+
<style lang="scss" scoped>
|
|
32
|
+
.vm-thumb {
|
|
33
|
+
display: inline-flex;
|
|
34
|
+
flex-shrink: 0;
|
|
35
|
+
align-items: center;
|
|
36
|
+
justify-content: center;
|
|
37
|
+
overflow: hidden;
|
|
38
|
+
border-radius: 8px;
|
|
39
|
+
background: color-mix(in srgb, var(--brand) 12%, var(--card));
|
|
40
|
+
color: var(--brand);
|
|
41
|
+
font-size: 16px;
|
|
42
|
+
|
|
43
|
+
img {
|
|
44
|
+
width: 100%;
|
|
45
|
+
height: 100%;
|
|
46
|
+
object-fit: cover;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
</style>
|
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<vm-group-cascader
|
|
3
|
-
:model-value="modelValue ?? ''"
|
|
4
|
-
:tree="tree"
|
|
5
|
-
:placeholder="placeholder ?? crudLabel('pickFilePath')"
|
|
6
|
-
:clearable="clearable"
|
|
7
|
-
:editable="editable"
|
|
8
|
-
:disabled="disabled"
|
|
9
|
-
@update:model-value="(v) => emit('update:modelValue', v)"
|
|
10
|
-
/>
|
|
11
|
-
</template>
|
|
12
|
-
|
|
13
|
-
<script setup lang="ts">
|
|
14
|
-
import { crudLabel } from '../crud/style'
|
|
15
|
-
import { ref, onMounted, onUnmounted } from 'vue'
|
|
16
|
-
import {
|
|
17
|
-
listViewsTree,
|
|
18
|
-
VIEWS_RESCAN_EVENT,
|
|
19
|
-
} from '../lib/module'
|
|
20
|
-
import type { ViewsTreeNode } from '../../../typings/admin/vome/module'
|
|
21
|
-
defineOptions({ name: 'vm-view-path-picker' })
|
|
22
|
-
|
|
23
|
-
withDefaults(
|
|
24
|
-
defineProps<{
|
|
25
|
-
modelValue?: string | null
|
|
26
|
-
placeholder?: string
|
|
27
|
-
clearable?: boolean
|
|
28
|
-
editable?: boolean
|
|
29
|
-
disabled?: boolean
|
|
30
|
-
}>(),
|
|
31
|
-
{
|
|
32
|
-
placeholder: undefined,
|
|
33
|
-
clearable: true,
|
|
34
|
-
editable: true,
|
|
35
|
-
},
|
|
36
|
-
)
|
|
37
|
-
|
|
38
|
-
const emit = defineEmits<{
|
|
39
|
-
'update:modelValue': [v: string]
|
|
40
|
-
}>()
|
|
41
|
-
|
|
42
|
-
const tree = ref<ViewsTreeNode[]>([])
|
|
43
|
-
|
|
44
|
-
function rescan() {
|
|
45
|
-
tree.value = listViewsTree()
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
onMounted(() => {
|
|
49
|
-
rescan()
|
|
50
|
-
window.addEventListener(VIEWS_RESCAN_EVENT, rescan)
|
|
51
|
-
})
|
|
52
|
-
|
|
53
|
-
onUnmounted(() => {
|
|
54
|
-
window.removeEventListener(VIEWS_RESCAN_EVENT, rescan)
|
|
55
|
-
})
|
|
56
|
-
|
|
57
|
-
// 打开选择器前再扫一次(配合 HMR 事件)
|
|
58
|
-
defineExpose({ rescan })
|
|
59
|
-
</script>
|
|
1
|
+
<template>
|
|
2
|
+
<vm-group-cascader
|
|
3
|
+
:model-value="modelValue ?? ''"
|
|
4
|
+
:tree="tree"
|
|
5
|
+
:placeholder="placeholder ?? crudLabel('pickFilePath')"
|
|
6
|
+
:clearable="clearable"
|
|
7
|
+
:editable="editable"
|
|
8
|
+
:disabled="disabled"
|
|
9
|
+
@update:model-value="(v) => emit('update:modelValue', v)"
|
|
10
|
+
/>
|
|
11
|
+
</template>
|
|
12
|
+
|
|
13
|
+
<script setup lang="ts">
|
|
14
|
+
import { crudLabel } from '../crud/style'
|
|
15
|
+
import { ref, onMounted, onUnmounted } from 'vue'
|
|
16
|
+
import {
|
|
17
|
+
listViewsTree,
|
|
18
|
+
VIEWS_RESCAN_EVENT,
|
|
19
|
+
} from '../lib/module'
|
|
20
|
+
import type { ViewsTreeNode } from '../../../typings/admin/vome/module'
|
|
21
|
+
defineOptions({ name: 'vm-view-path-picker' })
|
|
22
|
+
|
|
23
|
+
withDefaults(
|
|
24
|
+
defineProps<{
|
|
25
|
+
modelValue?: string | null
|
|
26
|
+
placeholder?: string
|
|
27
|
+
clearable?: boolean
|
|
28
|
+
editable?: boolean
|
|
29
|
+
disabled?: boolean
|
|
30
|
+
}>(),
|
|
31
|
+
{
|
|
32
|
+
placeholder: undefined,
|
|
33
|
+
clearable: true,
|
|
34
|
+
editable: true,
|
|
35
|
+
},
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
const emit = defineEmits<{
|
|
39
|
+
'update:modelValue': [v: string]
|
|
40
|
+
}>()
|
|
41
|
+
|
|
42
|
+
const tree = ref<ViewsTreeNode[]>([])
|
|
43
|
+
|
|
44
|
+
function rescan() {
|
|
45
|
+
tree.value = listViewsTree()
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
onMounted(() => {
|
|
49
|
+
rescan()
|
|
50
|
+
window.addEventListener(VIEWS_RESCAN_EVENT, rescan)
|
|
51
|
+
})
|
|
52
|
+
|
|
53
|
+
onUnmounted(() => {
|
|
54
|
+
window.removeEventListener(VIEWS_RESCAN_EVENT, rescan)
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
// 打开选择器前再扫一次(配合 HMR 事件)
|
|
58
|
+
defineExpose({ rescan })
|
|
59
|
+
</script>
|
|
@@ -32,9 +32,16 @@ type TableAutoPlugin = {
|
|
|
32
32
|
__plugin?: string;
|
|
33
33
|
ignoreFields?: string[];
|
|
34
34
|
};
|
|
35
|
+
/**
|
|
36
|
+
* 已有 userId 时:用户ID 后紧跟昵称、邮箱。
|
|
37
|
+
* 无 userId 时原样返回——禁止凭空造列(配置页等无用户字段的表)。
|
|
38
|
+
* 幂等:可重复调用。
|
|
39
|
+
*/
|
|
40
|
+
export declare function placeNickEmailAfterUserId(columns: CrudColumn[]): CrudColumn[];
|
|
35
41
|
/**
|
|
36
42
|
* 与 vm-table 同源:按 service.namespace 从 EPS 拉全列,再与页面手写 columns 浅合并。
|
|
37
43
|
* 导出按钮在表格兄弟节点,inject 不到 Table.getColumns(),须自己走同一套合并。
|
|
44
|
+
* 合并结果含 userId 时自动在其后插入昵称/邮箱(ignoreFields 含 userId 时跳过)。
|
|
38
45
|
*/
|
|
39
46
|
export declare function resolveMergedTableColumns(opts: {
|
|
40
47
|
service: Pick<CrudService, 'namespace' | 'permission' | '_permission'>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x2252f6=_0x4b5b;(function(_0x2cd898,_0x2113a7){const _0x1edb41=_0x4b5b,_0x126e64=_0x2cd898();while(!![]){try{const _0x8a7a13=-parseInt(_0x1edb41(0x1a3))/0x1*(-parseInt(_0x1edb41(0x196))/0x2)+-parseInt(_0x1edb41(0x1a2))/0x3*(parseInt(_0x1edb41(0x1b1))/0x4)+-parseInt(_0x1edb41(0x194))/0x5+parseInt(_0x1edb41(0x18b))/0x6+-parseInt(_0x1edb41(0x1b4))/0x7*(-parseInt(_0x1edb41(0x1af))/0x8)+parseInt(_0x1edb41(0x1a0))/0x9+-parseInt(_0x1edb41(0x17f))/0xa;if(_0x8a7a13===_0x2113a7)break;else _0x126e64['push'](_0x126e64['shift']());}catch(_0x486ea8){_0x126e64['push'](_0x126e64['shift']());}}}(_0xdd9f,0x87788));import{findEpsEntity}from'../lib/eps';import{getDictOptions}from'../../client';export const UPSERT_BUILTIN_IGNORE=['id',_0x2252f6(0x171),_0x2252f6(0x19d),_0x2252f6(0x175),_0x2252f6(0x16f)];export const TABLE_BUILTIN_IGNORE=[_0x2252f6(0x16f),'updateTime'];export function buildAutoOpButtons(_0x5d07a8){const _0x25d02b=_0x2252f6,_0x54d862=_0x5d07a8[_0x25d02b(0x193)],_0x62f21d=_0x1a5325=>_0x54d862!=null&&typeof _0x54d862===_0x25d02b(0x176)&&Object['prototype']['hasOwnProperty'][_0x25d02b(0x18f)](_0x54d862,_0x1a5325),_0x4a2242=_0x453bb7=>Boolean(_0x5d07a8[_0x25d02b(0x19b)]?.[_0x453bb7]),_0xbe340a=[];if(_0x62f21d(_0x25d02b(0x1a5))&&_0x4a2242('update'))_0xbe340a[_0x25d02b(0x18d)]('edit');if(_0x62f21d(_0x25d02b(0x16b))&&_0x4a2242(_0x25d02b(0x16b)))_0xbe340a['push'](_0x25d02b(0x16b));return _0xbe340a;}function dictKeyOf(_0x2b072d){const _0x418711=_0x2252f6;if(typeof _0x2b072d[_0x418711(0x17d)]===_0x418711(0x1ad)&&_0x2b072d[_0x418711(0x17d)])return _0x2b072d[_0x418711(0x17d)];if(Array[_0x418711(0x195)](_0x2b072d['dict'])&&_0x2b072d[_0x418711(0x17d)][0x0])return _0x2b072d[_0x418711(0x17d)][0x0];return;}function isSwitchDict(_0x5979e2){const _0x1fb208=_0x2252f6;return _0x5979e2===_0x1fb208(0x190)||_0x5979e2===_0x1fb208(0x197)||_0x5979e2==='yes_no_number';}function switchDefaultValue(_0x568a5d){const _0x457f09=_0x2252f6;if(_0x568a5d===_0x457f09(0x197))return![];if(_0x568a5d===_0x457f09(0x187))return 0x0;return 0x1;}function _0xdd9f(){const _0x123913=['C2vYDMLJzq','y2fSBa','C3rHDhvZ','ugDcB29SzwfU','DgfIBgvpChrZ','CgvYBwLZC2LVBG','mtCWntu0mffUr0TcsW','AxnbCNjHEq','mtb6uKntC3K','EwvZx25Vx2jVB2XLyw4','y29TBwvUDa','x19WBhvNAw4','y29SDw1UvhLWzq','x3bLCM1PC3nPB24','DgvZDa','y3jLyxrLvgLTzq','C2v0qxv0BW','ugDszwfS','mJq2otqWmM5ctLzeCq','C2vSzwn0Aw9U','mtuXnZy0ufflz0jy','mta5ntm3y0HAAKPX','C291CMnL','DxbKyxrL','Dgv4DgfYzwe','BNvSBgfIBgu','ugDtBwfSBfnLCMLHBa','yxv0BW','ugDeB3vIBgvqCMvJAxnPB24','ugDcAwDtzxjPywW','BMfTzxnWywnL','C3rYAw5N','C3rHCNrZv2L0Aa','mJy0D0D6BwHM','DhLWzq','mJHNzgfjwvO','C2vSzwn0','C2nHBgu','nZu3nJfiwurZEhK','ugDcAwDjBNq','zNvUy3rPB24','zgvSzxrL','ugDtzxjPywW','C3DPDgnO','BgvUz3rO','zgvSzxrLvgLTzq','DM0TC3DPDgnO','DgvUyw50swq','y29SDw1UCW','CMLNAhq','ChjVCgvYDhLoyw1L','DxbKyxrLvgLTzq','B2jQzwn0','Aw5WDxq','DgfIBgvqBhvNAw5Z','BgfIzwW','zMLSDgvY','AgfZ','ChjVCa','zgLJDa','ugDjBNrLz2vY','ndu1ntyXmg1gt1LQCG','DMfSDwu','CMvXDwLYzwq','Dg9mB3DLCKnHC2u','BwfW','CgfNzvf1zxj5t3a','BNvTyMvY','zMLUza','EwvZx25Vx251BwjLCG','AwDUB3jLrMLLBgrZ','BwfUDwfS','y29SB3i','mZe1odCWnNnbB2nxrG','ywrK','ChvZAa'];_0xdd9f=function(){return _0x123913;};return _0xdd9f();}function switchFormItem(_0x4e759d,_0x55a328,_0x1700eb){const _0x1622f5=_0x2252f6;return{..._0x4e759d,'type':_0x1622f5(0x16d),'value':_0x1700eb,'dict':_0x55a328,'component':{'props':()=>mapDictOptions(_0x55a328)}};}export function mapDictOptions(_0x109ca2){const _0x309f14=_0x2252f6;return getDictOptions(_0x109ca2)[_0x309f14(0x183)](_0x31eb57=>{const _0x3e7cc5=_0x309f14;let _0x595297=_0x31eb57['value'];return typeof _0x31eb57[_0x3e7cc5(0x180)]===_0x3e7cc5(0x1ad)&&/^-?\d+(\.\d+)?$/[_0x3e7cc5(0x19c)](_0x31eb57['value'])&&(_0x595297=Number(_0x31eb57[_0x3e7cc5(0x180)])),{'label':String(_0x31eb57[_0x3e7cc5(0x179)]??''),'value':_0x595297,'color':_0x31eb57[_0x3e7cc5(0x18a)]};});}export function dictFirstValue(_0x447910){const _0x3e6920=mapDictOptions(_0x447910)[0x0];return _0x3e6920?.['value'];}export function resolveFormItemValue(_0x11ba70){const _0x292842=_0x2252f6;return typeof _0x11ba70===_0x292842(0x1b6)?_0x11ba70():_0x11ba70;}function isMainTableCol(_0x59d79a){const _0xeba88c=_0x2252f6;return!_0x59d79a['source']||_0x59d79a[_0xeba88c(0x1a4)]['startsWith']('a.');}function epsTableIgnore(_0xb98783){const _0x17a252=_0x2252f6,_0x4c7ae3=_0xb98783[_0x17a252(0x1ac)]?findEpsEntity('/'+_0xb98783['namespace']):undefined,_0x47879f=_0x4c7ae3?.[_0x17a252(0x184)]?.['ignoreFields'];return Array[_0x17a252(0x195)](_0x47879f)?_0x47879f[_0x17a252(0x17a)](_0x5b2a3=>typeof _0x5b2a3===_0x17a252(0x1ad)&&_0x5b2a3):[];}function epsColumns(_0x292176){const _0x196076=_0x2252f6,_0x2f4f8a=_0x292176['namespace']?findEpsEntity('/'+_0x292176[_0x196076(0x1ac)]):undefined;if(!_0x2f4f8a)return[];const _0x5988f9=[..._0x2f4f8a['columns']||[],..._0x2f4f8a['pageColumns']||[]],_0x387690=new Set(),_0x504204=[];for(const _0x286eb0 of _0x5988f9){if(!_0x286eb0[_0x196076(0x174)]||!isMainTableCol(_0x286eb0))continue;if(_0x387690['has'](_0x286eb0[_0x196076(0x174)]))continue;_0x387690[_0x196076(0x18c)](_0x286eb0['propertyName']),_0x504204[_0x196076(0x18d)](_0x286eb0);}return _0x504204;}function columnTypeOf(_0x4aeaf9){const _0x245e72=_0x2252f6;return String(_0x4aeaf9[_0x245e72(0x19a)]||'');}function sqlTypeOf(_0x5ae163){const _0x1cbbf4=_0x2252f6;return String(_0x5ae163['sqlType']||'')[_0x1cbbf4(0x182)]();}function _0x4b5b(_0x14dcc9,_0x4d22d9){_0x14dcc9=_0x14dcc9-0x16b;const _0xdd9f20=_0xdd9f();let _0x4b5b72=_0xdd9f20[_0x14dcc9];if(_0x4b5b['FfcpOU']===undefined){var _0x513487=function(_0x2261f8){const _0x4de8a1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5d07a8='',_0x54d862='';for(let _0x62f21d=0x0,_0x4a2242,_0xbe340a,_0x1a5325=0x0;_0xbe340a=_0x2261f8['charAt'](_0x1a5325++);~_0xbe340a&&(_0x4a2242=_0x62f21d%0x4?_0x4a2242*0x40+_0xbe340a:_0xbe340a,_0x62f21d++%0x4)?_0x5d07a8+=String['fromCharCode'](0xff&_0x4a2242>>(-0x2*_0x62f21d&0x6)):0x0){_0xbe340a=_0x4de8a1['indexOf'](_0xbe340a);}for(let _0x453bb7=0x0,_0x2b072d=_0x5d07a8['length'];_0x453bb7<_0x2b072d;_0x453bb7++){_0x54d862+='%'+('00'+_0x5d07a8['charCodeAt'](_0x453bb7)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x54d862);};_0x4b5b['GqYEvI']=_0x513487,_0x4b5b['qYCMAl']={},_0x4b5b['FfcpOU']=!![];}const _0x44e0e0=_0xdd9f20[0x0],_0x486104=_0x14dcc9+_0x44e0e0,_0x5710e0=_0x4b5b['qYCMAl'][_0x486104];return!_0x5710e0?(_0x4b5b72=_0x4b5b['GqYEvI'](_0x4b5b72),_0x4b5b['qYCMAl'][_0x486104]=_0x4b5b72):_0x4b5b72=_0x5710e0,_0x4b5b72;}function isTextCol(_0xe4d09){const _0xeaa677=columnTypeOf(_0xe4d09);if(_0xeaa677==='PgText')return!![];return sqlTypeOf(_0xe4d09)==='text';}function isIntegerCol(_0x5d76f2){const _0x3f9738=_0x2252f6,_0x19ef3b=columnTypeOf(_0x5d76f2);if(_0x19ef3b===_0x3f9738(0x17e)||_0x19ef3b===_0x3f9738(0x16c)||_0x19ef3b==='PgSmallInt'||_0x19ef3b===_0x3f9738(0x1b5)||_0x19ef3b===_0x3f9738(0x1a8)||_0x19ef3b===_0x3f9738(0x1ab))return!![];if(_0x5d76f2[_0x3f9738(0x1b0)]==='number'&&!isNumericCol(_0x5d76f2))return!![];return/^(integer|serial|smallint|bigint|smallserial|bigserial)\b/[_0x3f9738(0x19c)](sqlTypeOf(_0x5d76f2));}function isNumericCol(_0x40d1ed){const _0x236ac4=_0x2252f6,_0x455b14=columnTypeOf(_0x40d1ed);if(_0x455b14==='PgNumeric'||_0x455b14===_0x236ac4(0x1aa)||_0x455b14===_0x236ac4(0x19f))return!![];return/^(numeric|decimal|double|real)\b/[_0x236ac4(0x19c)](sqlTypeOf(_0x40d1ed));}function isBooleanCol(_0x1ea2a){const _0x353672=_0x2252f6;return columnTypeOf(_0x1ea2a)===_0x353672(0x191)||_0x1ea2a[_0x353672(0x1b0)]==='boolean'||sqlTypeOf(_0x1ea2a)[_0x353672(0x1ae)]('boolean');}function numberPrecision(_0x23d84d){const _0x299e81=_0x2252f6;if(isIntegerCol(_0x23d84d))return 0x0;if(typeof _0x23d84d[_0x299e81(0x1b3)]===_0x299e81(0x185))return _0x23d84d['scale'];return 0x2;}export function mergeByProp(_0x490765,_0x421ef3){const _0x3baeff=_0x2252f6,_0x2f8be3=_0x421ef3[_0x3baeff(0x17a)](_0x50d047=>Boolean(_0x50d047[_0x3baeff(0x17c)])),_0x5de9d4=_0x421ef3[_0x3baeff(0x17a)](_0x1381ed=>!_0x1381ed[_0x3baeff(0x17c)]&&_0x1381ed[_0x3baeff(0x1b0)]),_0x1658c7=new Map(_0x2f8be3[_0x3baeff(0x183)](_0x5645f1=>[String(_0x5645f1[_0x3baeff(0x17c)]),_0x5645f1])),_0x155dba=new Set(_0x5de9d4['map'](_0x2bfdc5=>String(_0x2bfdc5[_0x3baeff(0x1b0)]))),_0x897551=new Set(),_0x12c227=[];for(const _0x50099b of _0x490765){if(!_0x50099b[_0x3baeff(0x17c)]&&_0x50099b[_0x3baeff(0x1b0)]){if(_0x155dba[_0x3baeff(0x17b)](String(_0x50099b[_0x3baeff(0x1b0)])))continue;_0x12c227[_0x3baeff(0x18d)](_0x50099b);continue;}if(!_0x50099b[_0x3baeff(0x17c)])continue;const _0x1fca11=String(_0x50099b[_0x3baeff(0x17c)]),_0x22835d=_0x1658c7['get'](_0x1fca11);_0x22835d?(_0x12c227[_0x3baeff(0x18d)]({..._0x50099b,..._0x22835d}),_0x897551[_0x3baeff(0x18c)](_0x1fca11)):_0x12c227[_0x3baeff(0x18d)](_0x50099b);}for(const _0x21649b of _0x2f8be3){const _0x32cae2=String(_0x21649b[_0x3baeff(0x17c)]);if(!_0x897551[_0x3baeff(0x17b)](_0x32cae2))_0x12c227[_0x3baeff(0x18d)](_0x21649b);}return _0x12c227[_0x3baeff(0x18d)](..._0x5de9d4),_0x12c227;}export function resolveMergedTableColumns(_0x1f300c){const _0x38e0f7=_0x2252f6,_0x20fcc3=_0x1f300c[_0x38e0f7(0x189)]?.['length']?_0x1f300c[_0x38e0f7(0x189)]:_0x1f300c[_0x38e0f7(0x192)]?.[_0x38e0f7(0x172)]||[],_0x23e616=(_0x1f300c[_0x38e0f7(0x178)]||[])[_0x38e0f7(0x186)](_0x1ce72c=>_0x1ce72c?.[_0x38e0f7(0x199)]===_0x38e0f7(0x19e)),_0x5194b0=_0x1f300c[_0x38e0f7(0x192)]?.[_0x38e0f7(0x1a9)]!==![]&&Boolean(_0x23e616);if(!_0x5194b0)return pinOpColumnsLast(_0x20fcc3);const _0x120c46=_0x23e616?.[_0x38e0f7(0x188)]||[],_0x58f163=_0x1f300c[_0x38e0f7(0x192)]?.[_0x38e0f7(0x188)]||[],_0x480008=buildAutoTableColumns(_0x1f300c[_0x38e0f7(0x18e)],{'ignoreFields':[..._0x120c46,..._0x58f163]});return pinOpColumnsLast(mergeByProp(_0x480008,_0x20fcc3));}export function pinOpColumnsLast(_0x22a8aa){const _0x299309=_0x2252f6,_0x479213=[],_0x2912c4=[];for(const _0x2e3c3a of _0x22a8aa){_0x2e3c3a[_0x299309(0x1b0)]==='op'?_0x479213[_0x299309(0x18d)]({..._0x2e3c3a,'fixed':'right'}):_0x2912c4[_0x299309(0x18d)](_0x2e3c3a);}if(!_0x479213[_0x299309(0x16e)])return _0x22a8aa;return[..._0x2912c4,..._0x479213];}export function sortRequiredFirst(_0x5df183){const _0x587e7e=_0x2252f6,_0x1e5922=[],_0x51aca6=[];for(const _0x5a1c89 of _0x5df183){_0x5a1c89['required']===!![]||typeof _0x5a1c89[_0x587e7e(0x181)]===_0x587e7e(0x1b6)?_0x1e5922[_0x587e7e(0x18d)](_0x5a1c89):_0x51aca6[_0x587e7e(0x18d)](_0x5a1c89);}return[..._0x1e5922,..._0x51aca6];}export function buildAutoUpsertItems(_0x146670,_0x5be35b={}){const _0x28036d=_0x2252f6,_0x167500=new Set([...UPSERT_BUILTIN_IGNORE,..._0x5be35b[_0x28036d(0x188)]||[]]),_0x5051c5=[];for(const _0x561186 of epsColumns(_0x146670)){const _0x1f827a=_0x561186[_0x28036d(0x174)];if(_0x167500['has'](_0x1f827a))continue;const _0x3808da=_0x561186[_0x28036d(0x198)]||_0x1f827a,_0x498ed5=dictKeyOf(_0x561186),_0x1d9412=_0x561186[_0x28036d(0x1a7)]===![]&&_0x561186['hasDefault']!==!![],_0x4dae3f={'prop':_0x1f827a,'label':_0x3808da,'span':0xc,..._0x1d9412?{'required':!![]}:{}};if(_0x1f827a===_0x28036d(0x190)){const _0x2bd614=_0x498ed5||_0x28036d(0x190);isSwitchDict(_0x2bd614)?_0x5051c5[_0x28036d(0x18d)](switchFormItem(_0x4dae3f,_0x2bd614,switchDefaultValue(_0x2bd614))):_0x5051c5[_0x28036d(0x18d)]({..._0x4dae3f,'type':_0x28036d(0x1b2),'dict':_0x2bd614,'value':()=>dictFirstValue(_0x2bd614)});continue;}if(_0x498ed5){isSwitchDict(_0x498ed5)?_0x5051c5[_0x28036d(0x18d)](switchFormItem(_0x4dae3f,_0x498ed5,switchDefaultValue(_0x498ed5))):_0x5051c5['push']({..._0x4dae3f,'type':_0x28036d(0x1b2),'dict':_0x498ed5,'value':()=>dictFirstValue(_0x498ed5)});continue;}if(isTextCol(_0x561186)){_0x5051c5[_0x28036d(0x18d)]({..._0x4dae3f,'type':_0x28036d(0x1a6),'span':0xc});continue;}if(isBooleanCol(_0x561186)){_0x5051c5[_0x28036d(0x18d)]({..._0x4dae3f,'type':_0x28036d(0x16d),'value':![],'component':{'props':()=>mapDictOptions(_0x28036d(0x197))},'dict':_0x28036d(0x197)});continue;}if(isIntegerCol(_0x561186)||isNumericCol(_0x561186)){const _0xafb697=numberPrecision(_0x561186);_0x5051c5['push']({..._0x4dae3f,'type':'number','component':{'props':{'type':_0x28036d(0x185),'precision':_0xafb697,'controls':![]}}});continue;}_0x5051c5['push']({..._0x4dae3f,'type':_0x28036d(0x177)});}return _0x5051c5;}export function buildAutoTableColumns(_0x347ca2,_0x1fe580={}){const _0x2fc488=_0x2252f6,_0x2c03d4=new Set([...TABLE_BUILTIN_IGNORE,...epsTableIgnore(_0x347ca2),..._0x1fe580[_0x2fc488(0x188)]||[]]),_0x762d13=[];!_0x2c03d4[_0x2fc488(0x17b)](_0x2fc488(0x1a1))&&_0x762d13['push']({'type':_0x2fc488(0x1a1),'width':0x32});for(const _0x4a512c of epsColumns(_0x347ca2)){const _0x55bc3b=_0x4a512c[_0x2fc488(0x174)];if(_0x2c03d4['has'](_0x55bc3b))continue;const _0xaaab13=_0x4a512c['comment']||_0x55bc3b,_0x490b7a=dictKeyOf(_0x4a512c);if(_0x55bc3b===_0x2fc488(0x190)){const _0x181111=_0x490b7a||'status';isSwitchDict(_0x181111)?_0x762d13[_0x2fc488(0x18d)]({'prop':_0x55bc3b,'label':_0xaaab13,'width':0x50,'component':{'name':_0x2fc488(0x170),'props':()=>mapDictOptions(_0x181111)}}):_0x762d13[_0x2fc488(0x18d)]({'prop':_0x55bc3b,'label':_0xaaab13,'width':0x64,'dict':()=>mapDictOptions(_0x181111)});continue;}if(_0x490b7a&&isSwitchDict(_0x490b7a)){_0x762d13['push']({'prop':_0x55bc3b,'label':_0xaaab13,'width':0x50,'component':{'name':'vm-switch','props':()=>mapDictOptions(_0x490b7a)}});continue;}if(_0x55bc3b==='id'){_0x762d13[_0x2fc488(0x18d)]({'prop':_0x55bc3b,'label':_0xaaab13,'width':0x50});continue;}if(_0x55bc3b===_0x2fc488(0x19d)){_0x762d13[_0x2fc488(0x18d)]({'prop':_0x55bc3b,'label':_0xaaab13,'width':0xa0});continue;}if(_0x490b7a){_0x762d13[_0x2fc488(0x18d)]({'prop':_0x55bc3b,'label':_0xaaab13,'minWidth':0x78,'dict':()=>mapDictOptions(_0x490b7a)});continue;}if(isTextCol(_0x4a512c)){_0x762d13['push']({'prop':_0x55bc3b,'label':_0xaaab13,'minWidth':0xa0,'showOverflowTooltip':!![]});continue;}_0x762d13['push']({'prop':_0x55bc3b,'label':_0xaaab13,'minWidth':0x78});}if(!_0x2c03d4[_0x2fc488(0x17b)]('op')){const _0x5a1519=buildAutoOpButtons(_0x347ca2);_0x5a1519[_0x2fc488(0x16e)]&&_0x762d13[_0x2fc488(0x18d)]({'type':'op','buttons':_0x5a1519,'fixed':_0x2fc488(0x173)});}return _0x762d13;}
|
|
1
|
+
const _0x18348d=_0x6943;(function(_0x540e3b,_0x2b8457){const _0x548ec3=_0x6943,_0x2b0bc0=_0x540e3b();while(!![]){try{const _0x2bbf91=-parseInt(_0x548ec3(0x167))/0x1*(-parseInt(_0x548ec3(0x19a))/0x2)+parseInt(_0x548ec3(0x19b))/0x3*(parseInt(_0x548ec3(0x15f))/0x4)+-parseInt(_0x548ec3(0x17e))/0x5+parseInt(_0x548ec3(0x178))/0x6*(-parseInt(_0x548ec3(0x17a))/0x7)+parseInt(_0x548ec3(0x174))/0x8*(parseInt(_0x548ec3(0x188))/0x9)+parseInt(_0x548ec3(0x194))/0xa+-parseInt(_0x548ec3(0x16a))/0xb*(-parseInt(_0x548ec3(0x18e))/0xc);if(_0x2bbf91===_0x2b8457)break;else _0x2b0bc0['push'](_0x2b0bc0['shift']());}catch(_0xd483e8){_0x2b0bc0['push'](_0x2b0bc0['shift']());}}}(_0x4f17,0x965bd));import{findEpsEntity}from'../lib/eps';import{getDictOptions}from'../../client';export const UPSERT_BUILTIN_IGNORE=['id',_0x18348d(0x14c),_0x18348d(0x160),_0x18348d(0x177),_0x18348d(0x152)];export const TABLE_BUILTIN_IGNORE=[_0x18348d(0x152),_0x18348d(0x177)];export function buildAutoOpButtons(_0x2ae238){const _0x8882a4=_0x18348d,_0x5b4b98=_0x2ae238[_0x8882a4(0x168)],_0x36ce62=_0x1c4f19=>_0x5b4b98!=null&&typeof _0x5b4b98===_0x8882a4(0x184)&&Object['prototype'][_0x8882a4(0x169)][_0x8882a4(0x198)](_0x5b4b98,_0x1c4f19),_0x3219ed=_0x21188f=>Boolean(_0x2ae238[_0x8882a4(0x183)]?.[_0x21188f]),_0x26cadf=[];if(_0x36ce62(_0x8882a4(0x182))&&_0x3219ed(_0x8882a4(0x182)))_0x26cadf['push'](_0x8882a4(0x197));if(_0x36ce62(_0x8882a4(0x17f))&&_0x3219ed(_0x8882a4(0x17f)))_0x26cadf['push'](_0x8882a4(0x17f));return _0x26cadf;}function dictKeyOf(_0x23f99e){const _0x4d9386=_0x18348d;if(typeof _0x23f99e[_0x4d9386(0x158)]==='string'&&_0x23f99e[_0x4d9386(0x158)])return _0x23f99e['dict'];if(Array[_0x4d9386(0x16f)](_0x23f99e[_0x4d9386(0x158)])&&_0x23f99e[_0x4d9386(0x158)][0x0])return _0x23f99e[_0x4d9386(0x158)][0x0];return;}function isSwitchDict(_0x53b32e){const _0x4c0a79=_0x18348d;return _0x53b32e==='status'||_0x53b32e===_0x4c0a79(0x151)||_0x53b32e===_0x4c0a79(0x162);}function switchDefaultValue(_0x314387){const _0x23b99b=_0x18348d;if(_0x314387===_0x23b99b(0x151))return![];if(_0x314387===_0x23b99b(0x162))return 0x0;return 0x1;}function switchFormItem(_0x401012,_0x3ad3ab,_0x3a8456){const _0xc9c14b=_0x18348d;return{..._0x401012,'type':_0xc9c14b(0x156),'value':_0x3a8456,'dict':_0x3ad3ab,'component':{'props':()=>mapDictOptions(_0x3ad3ab)}};}export function mapDictOptions(_0x733273){return getDictOptions(_0x733273)['map'](_0x1face9=>{const _0x55e295=_0x6943;let _0x40e9f6=_0x1face9[_0x55e295(0x1a1)];return typeof _0x1face9['value']===_0x55e295(0x185)&&/^-?\d+(\.\d+)?$/[_0x55e295(0x181)](_0x1face9['value'])&&(_0x40e9f6=Number(_0x1face9[_0x55e295(0x1a1)])),{'label':String(_0x1face9[_0x55e295(0x15c)]??''),'value':_0x40e9f6,'color':_0x1face9[_0x55e295(0x1a2)]};});}export function dictFirstValue(_0xabe8c5){const _0x45a5f5=_0x18348d,_0x407573=mapDictOptions(_0xabe8c5)[0x0];return _0x407573?.[_0x45a5f5(0x1a1)];}export function resolveFormItemValue(_0x497640){const _0x4ff1ab=_0x18348d;return typeof _0x497640===_0x4ff1ab(0x195)?_0x497640():_0x497640;}function isMainTableCol(_0x1dadd4){const _0x11315d=_0x18348d;return!_0x1dadd4[_0x11315d(0x14e)]||_0x1dadd4[_0x11315d(0x14e)][_0x11315d(0x199)]('a.');}function epsTableIgnore(_0x4cc1ab){const _0xc24697=_0x18348d,_0x10ba33=_0x4cc1ab[_0xc24697(0x191)]?findEpsEntity('/'+_0x4cc1ab[_0xc24697(0x191)]):undefined,_0x114c97=_0x10ba33?.[_0xc24697(0x16b)]?.[_0xc24697(0x192)];return Array['isArray'](_0x114c97)?_0x114c97[_0xc24697(0x15a)](_0xc8db20=>typeof _0xc8db20===_0xc24697(0x185)&&_0xc8db20):[];}function epsColumns(_0x522404){const _0x28a943=_0x18348d,_0x54b433=_0x522404['namespace']?findEpsEntity('/'+_0x522404[_0x28a943(0x191)]):undefined;if(!_0x54b433)return[];const _0x337e47=[..._0x54b433['columns']||[],..._0x54b433[_0x28a943(0x17c)]||[]],_0xeb813b=new Set(),_0x329552=[];for(const _0x28b72f of _0x337e47){if(!_0x28b72f['propertyName']||!isMainTableCol(_0x28b72f))continue;if(_0xeb813b[_0x28a943(0x18c)](_0x28b72f['propertyName']))continue;_0xeb813b[_0x28a943(0x153)](_0x28b72f[_0x28a943(0x159)]),_0x329552['push'](_0x28b72f);}return _0x329552;}function columnTypeOf(_0x5ec152){const _0x3ea3fe=_0x18348d;return String(_0x5ec152[_0x3ea3fe(0x157)]||'');}function sqlTypeOf(_0x67694){const _0x515ff8=_0x18348d;return String(_0x67694[_0x515ff8(0x172)]||'')[_0x515ff8(0x14b)]();}function isTextCol(_0xa34f05){const _0x388d83=_0x18348d,_0x265df9=columnTypeOf(_0xa34f05);if(_0x265df9===_0x388d83(0x150))return!![];return sqlTypeOf(_0xa34f05)===_0x388d83(0x189);}function isIntegerCol(_0x1f51c9){const _0x4bae08=_0x18348d,_0x409731=columnTypeOf(_0x1f51c9);if(_0x409731===_0x4bae08(0x19d)||_0x409731==='PgSerial'||_0x409731===_0x4bae08(0x165)||_0x409731==='PgBigInt'||_0x409731===_0x4bae08(0x19c)||_0x409731===_0x4bae08(0x15b))return!![];if(_0x1f51c9[_0x4bae08(0x175)]===_0x4bae08(0x18b)&&!isNumericCol(_0x1f51c9))return!![];return/^(integer|serial|smallint|bigint|smallserial|bigserial)\b/[_0x4bae08(0x181)](sqlTypeOf(_0x1f51c9));}function isNumericCol(_0x116a95){const _0x3f8137=_0x18348d,_0xeb9b19=columnTypeOf(_0x116a95);if(_0xeb9b19===_0x3f8137(0x19e)||_0xeb9b19===_0x3f8137(0x164)||_0xeb9b19===_0x3f8137(0x193))return!![];return/^(numeric|decimal|double|real)\b/[_0x3f8137(0x181)](sqlTypeOf(_0x116a95));}function isBooleanCol(_0x116770){const _0x55d40d=_0x18348d;return columnTypeOf(_0x116770)===_0x55d40d(0x18a)||_0x116770[_0x55d40d(0x175)]==='boolean'||sqlTypeOf(_0x116770)['startsWith'](_0x55d40d(0x149));}function numberPrecision(_0x3f1ca4){const _0x2d367b=_0x18348d;if(isIntegerCol(_0x3f1ca4))return 0x0;if(typeof _0x3f1ca4[_0x2d367b(0x166)]===_0x2d367b(0x18b))return _0x3f1ca4[_0x2d367b(0x166)];return 0x2;}export function mergeByProp(_0x518e07,_0x3b5fdb){const _0x4e931f=_0x18348d,_0xf52c8f=_0x3b5fdb[_0x4e931f(0x15a)](_0x2f98c2=>Boolean(_0x2f98c2[_0x4e931f(0x187)])),_0x52b17c=_0x3b5fdb[_0x4e931f(0x15a)](_0x16f734=>!_0x16f734[_0x4e931f(0x187)]&&_0x16f734[_0x4e931f(0x175)]),_0x28621d=new Map(_0xf52c8f[_0x4e931f(0x14f)](_0x4a8ce8=>[String(_0x4a8ce8['prop']),_0x4a8ce8])),_0x3cad1c=new Set(_0x52b17c[_0x4e931f(0x14f)](_0x282a26=>String(_0x282a26[_0x4e931f(0x175)]))),_0x15bad8=new Set(),_0x4334f9=[];for(const _0xce0bed of _0x518e07){if(!_0xce0bed[_0x4e931f(0x187)]&&_0xce0bed[_0x4e931f(0x175)]){if(_0x3cad1c[_0x4e931f(0x18c)](String(_0xce0bed['type'])))continue;_0x4334f9[_0x4e931f(0x1a0)](_0xce0bed);continue;}if(!_0xce0bed['prop'])continue;const _0x260bf2=String(_0xce0bed[_0x4e931f(0x187)]),_0x316906=_0x28621d['get'](_0x260bf2);_0x316906?(_0x4334f9[_0x4e931f(0x1a0)]({..._0xce0bed,..._0x316906}),_0x15bad8[_0x4e931f(0x153)](_0x260bf2)):_0x4334f9[_0x4e931f(0x1a0)](_0xce0bed);}for(const _0x27250a of _0xf52c8f){const _0x1e5c55=String(_0x27250a[_0x4e931f(0x187)]);if(!_0x15bad8[_0x4e931f(0x18c)](_0x1e5c55))_0x4334f9['push'](_0x27250a);}return _0x4334f9[_0x4e931f(0x1a0)](..._0x52b17c),_0x4334f9;}const USER_ID_COL={'prop':_0x18348d(0x19f),'label':_0x18348d(0x179),'labelKey':'common.userId'},NICK_COL={'prop':'nickName','label':'昵称','minWidth':0x78},EMAIL_COL={'prop':'email','label':'邮箱','minWidth':0xa0};export function placeNickEmailAfterUserId(_0x4dc4df){const _0x364081=_0x18348d,_0x6225f4=_0x4dc4df[_0x364081(0x14d)](_0x1ec8eb=>_0x1ec8eb?.[_0x364081(0x187)]===_0x364081(0x19f));if(_0x6225f4<0x0)return _0x4dc4df;const _0x1d14d0=_0x4dc4df['filter'](_0x2788fe=>_0x2788fe?.[_0x364081(0x187)]!==_0x364081(0x196)&&_0x2788fe?.['prop']!=='email'&&_0x2788fe?.[_0x364081(0x187)]!==_0x364081(0x16e)),_0x300ae8=_0x1d14d0['findIndex'](_0x281729=>_0x281729?.[_0x364081(0x187)]===_0x364081(0x19f)),_0x47d8f4=_0x1d14d0[_0x300ae8];return _0x1d14d0[_0x300ae8]={...USER_ID_COL,..._0x47d8f4,'label':USER_ID_COL['label'],'labelKey':USER_ID_COL[_0x364081(0x186)]},_0x1d14d0[_0x364081(0x16c)](_0x300ae8+0x1,0x0,{...NICK_COL},{...EMAIL_COL}),_0x1d14d0;}function _0x6943(_0x21f659,_0x2aaca8){_0x21f659=_0x21f659-0x149;const _0x4f17c3=_0x4f17();let _0x69439b=_0x4f17c3[_0x21f659];if(_0x6943['dAMlXL']===undefined){var _0x36d026=function(_0x124995){const _0x25310a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2ae238='',_0x5b4b98='';for(let _0x36ce62=0x0,_0x3219ed,_0x26cadf,_0x1c4f19=0x0;_0x26cadf=_0x124995['charAt'](_0x1c4f19++);~_0x26cadf&&(_0x3219ed=_0x36ce62%0x4?_0x3219ed*0x40+_0x26cadf:_0x26cadf,_0x36ce62++%0x4)?_0x2ae238+=String['fromCharCode'](0xff&_0x3219ed>>(-0x2*_0x36ce62&0x6)):0x0){_0x26cadf=_0x25310a['indexOf'](_0x26cadf);}for(let _0x21188f=0x0,_0x23f99e=_0x2ae238['length'];_0x21188f<_0x23f99e;_0x21188f++){_0x5b4b98+='%'+('00'+_0x2ae238['charCodeAt'](_0x21188f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5b4b98);};_0x6943['eDwcuH']=_0x36d026,_0x6943['oyFvBl']={},_0x6943['dAMlXL']=!![];}const _0x3bdc58=_0x4f17c3[0x0],_0x1d523a=_0x21f659+_0x3bdc58,_0x491ce9=_0x6943['oyFvBl'][_0x1d523a];return!_0x491ce9?(_0x69439b=_0x6943['eDwcuH'](_0x69439b),_0x6943['oyFvBl'][_0x1d523a]=_0x69439b):_0x69439b=_0x491ce9,_0x69439b;}export function resolveMergedTableColumns(_0x52f510){const _0xcfe9e8=_0x18348d,_0x4814de=_0x52f510['manual']?.['length']?_0x52f510[_0xcfe9e8(0x17d)]:_0x52f510[_0xcfe9e8(0x190)]?.[_0xcfe9e8(0x163)]||[],_0x36ff6b=(_0x52f510[_0xcfe9e8(0x173)]||[])[_0xcfe9e8(0x15d)](_0x4b7348=>_0x4b7348?.['__plugin']===_0xcfe9e8(0x17b)),_0xfb06a3=_0x52f510[_0xcfe9e8(0x190)]?.[_0xcfe9e8(0x18d)]!==![]&&Boolean(_0x36ff6b),_0x384a87=_0x36ff6b?.[_0xcfe9e8(0x192)]||[],_0x49fe61=_0x52f510[_0xcfe9e8(0x190)]?.[_0xcfe9e8(0x192)]||[],_0xa77198=new Set([..._0x384a87,..._0x49fe61]),_0x5405d3=_0x3b5de1=>{const _0x59cfdc=_0xcfe9e8,_0x3a5a8d=pinOpColumnsLast(_0x3b5de1);if(_0xa77198[_0x59cfdc(0x18c)](_0x59cfdc(0x19f)))return _0x3a5a8d;return placeNickEmailAfterUserId(_0x3a5a8d);};if(!_0xfb06a3)return _0x5405d3(_0x4814de);const _0x1ff2b1=buildAutoTableColumns(_0x52f510[_0xcfe9e8(0x180)],{'ignoreFields':[..._0x384a87,..._0x49fe61]});return _0x5405d3(mergeByProp(_0x1ff2b1,_0x4814de));}export function pinOpColumnsLast(_0x26d983){const _0x26809e=_0x18348d,_0x572543=[],_0x2654bb=[];for(const _0x5c097f of _0x26d983){_0x5c097f[_0x26809e(0x175)]==='op'?_0x572543[_0x26809e(0x1a0)]({..._0x5c097f,'fixed':'right'}):_0x2654bb[_0x26809e(0x1a0)](_0x5c097f);}if(!_0x572543[_0x26809e(0x18f)])return _0x26d983;return[..._0x2654bb,..._0x572543];}export function sortRequiredFirst(_0x9a71af){const _0x3169a8=_0x18348d,_0x1bb556=[],_0x376e7b=[];for(const _0xbfc7a6 of _0x9a71af){_0xbfc7a6[_0x3169a8(0x155)]===!![]||typeof _0xbfc7a6[_0x3169a8(0x155)]===_0x3169a8(0x195)?_0x1bb556['push'](_0xbfc7a6):_0x376e7b[_0x3169a8(0x1a0)](_0xbfc7a6);}return[..._0x1bb556,..._0x376e7b];}export function buildAutoUpsertItems(_0x2c95b8,_0x533139={}){const _0x56ace0=_0x18348d,_0x5a11bd=new Set([...UPSERT_BUILTIN_IGNORE,..._0x533139[_0x56ace0(0x192)]||[]]),_0x370552=[];for(const _0x20f700 of epsColumns(_0x2c95b8)){const _0x547d2a=_0x20f700[_0x56ace0(0x159)];if(_0x5a11bd[_0x56ace0(0x18c)](_0x547d2a))continue;const _0x55602f=_0x20f700[_0x56ace0(0x176)]||_0x547d2a,_0x137b5b=dictKeyOf(_0x20f700),_0x2dfd8e=_0x20f700['nullable']===![]&&_0x20f700[_0x56ace0(0x14a)]!==!![],_0x2aa0bf={'prop':_0x547d2a,'label':_0x55602f,'span':0xc,..._0x2dfd8e?{'required':!![]}:{}};if(_0x547d2a===_0x56ace0(0x171)){const _0x3efd62=_0x137b5b||_0x56ace0(0x171);isSwitchDict(_0x3efd62)?_0x370552['push'](switchFormItem(_0x2aa0bf,_0x3efd62,switchDefaultValue(_0x3efd62))):_0x370552[_0x56ace0(0x1a0)]({..._0x2aa0bf,'type':_0x56ace0(0x154),'dict':_0x3efd62,'value':()=>dictFirstValue(_0x3efd62)});continue;}if(_0x137b5b){isSwitchDict(_0x137b5b)?_0x370552[_0x56ace0(0x1a0)](switchFormItem(_0x2aa0bf,_0x137b5b,switchDefaultValue(_0x137b5b))):_0x370552[_0x56ace0(0x1a0)]({..._0x2aa0bf,'type':_0x56ace0(0x154),'dict':_0x137b5b,'value':()=>dictFirstValue(_0x137b5b)});continue;}if(isTextCol(_0x20f700)){_0x370552[_0x56ace0(0x1a0)]({..._0x2aa0bf,'type':_0x56ace0(0x15e),'span':0xc});continue;}if(isBooleanCol(_0x20f700)){_0x370552[_0x56ace0(0x1a0)]({..._0x2aa0bf,'type':_0x56ace0(0x156),'value':![],'component':{'props':()=>mapDictOptions('yes_no_boolean')},'dict':_0x56ace0(0x151)});continue;}if(isIntegerCol(_0x20f700)||isNumericCol(_0x20f700)){const _0x18bc9d=numberPrecision(_0x20f700);_0x370552[_0x56ace0(0x1a0)]({..._0x2aa0bf,'type':'number','component':{'props':{'type':_0x56ace0(0x18b),'precision':_0x18bc9d,'controls':![]}}});continue;}_0x370552[_0x56ace0(0x1a0)]({..._0x2aa0bf,'type':_0x56ace0(0x170)});}return _0x370552;}export function buildAutoTableColumns(_0x32d7f3,_0x20baff={}){const _0x3e0af2=_0x18348d,_0x3e4be7=new Set([...TABLE_BUILTIN_IGNORE,...epsTableIgnore(_0x32d7f3),..._0x20baff[_0x3e0af2(0x192)]||[]]),_0x34d8cb=[];!_0x3e4be7[_0x3e0af2(0x18c)](_0x3e0af2(0x161))&&_0x34d8cb[_0x3e0af2(0x1a0)]({'type':_0x3e0af2(0x161),'width':0x32});for(const _0x255b83 of epsColumns(_0x32d7f3)){const _0x3174d5=_0x255b83[_0x3e0af2(0x159)];if(_0x3e4be7[_0x3e0af2(0x18c)](_0x3174d5))continue;const _0x34eb99=_0x255b83[_0x3e0af2(0x176)]||_0x3174d5,_0x285a35=dictKeyOf(_0x255b83);if(_0x3174d5==='status'){const _0x394a2b=_0x285a35||_0x3e0af2(0x171);isSwitchDict(_0x394a2b)?_0x34d8cb[_0x3e0af2(0x1a0)]({'prop':_0x3174d5,'label':_0x34eb99,'width':0x50,'component':{'name':'vm-switch','props':()=>mapDictOptions(_0x394a2b)}}):_0x34d8cb['push']({'prop':_0x3174d5,'label':_0x34eb99,'width':0x64,'dict':()=>mapDictOptions(_0x394a2b)});continue;}if(_0x285a35&&isSwitchDict(_0x285a35)){_0x34d8cb[_0x3e0af2(0x1a0)]({'prop':_0x3174d5,'label':_0x34eb99,'width':0x50,'component':{'name':_0x3e0af2(0x16d),'props':()=>mapDictOptions(_0x285a35)}});continue;}if(_0x3174d5==='id'){_0x34d8cb[_0x3e0af2(0x1a0)]({'prop':_0x3174d5,'label':_0x34eb99,'width':0x50});continue;}if(_0x3174d5===_0x3e0af2(0x160)){_0x34d8cb[_0x3e0af2(0x1a0)]({'prop':_0x3174d5,'label':_0x34eb99,'width':0xa0});continue;}if(_0x285a35){_0x34d8cb[_0x3e0af2(0x1a0)]({'prop':_0x3174d5,'label':_0x34eb99,'minWidth':0x78,'dict':()=>mapDictOptions(_0x285a35)});continue;}if(isTextCol(_0x255b83)){_0x34d8cb['push']({'prop':_0x3174d5,'label':_0x34eb99,'minWidth':0xa0,'showOverflowTooltip':!![]});continue;}_0x34d8cb[_0x3e0af2(0x1a0)]({'prop':_0x3174d5,'label':_0x34eb99,'minWidth':0x78});}if(!_0x3e4be7[_0x3e0af2(0x18c)]('op')){const _0x30ba78=buildAutoOpButtons(_0x32d7f3);_0x30ba78['length']&&_0x34d8cb[_0x3e0af2(0x1a0)]({'type':'op','buttons':_0x30ba78,'fixed':'right'});}return _0x34d8cb;}function _0x4f17(){const _0x3223af=['zgLJDa','ChjVCgvYDhLoyw1L','zMLSDgvY','ugDcAwDtzxjPywW','BgfIzwW','zMLUza','Dgv4DgfYzwe','mtjjAMHWzxO','y3jLyxrLvgLTzq','C2vSzwn0Aw9U','EwvZx25Vx251BwjLCG','y29SDw1UCW','ugDeB3vIBgvqCMvJAxnPB24','ugDtBwfSBeLUDa','C2nHBgu','mJveCvzUwgG','CgvYBwLZC2LVBG','AgfZt3DUuhjVCgvYDhK','mtfwrhnfB0m','CgfNzvf1zxj5t3a','C3bSAwnL','DM0TC3DPDgnO','CgHVBMu','AxnbCNjHEq','Aw5WDxq','C3rHDhvZ','C3fSvhLWzq','DgfIBgvqBhvNAw5Z','mtzOEvrtAha','DhLWzq','y29TBwvUDa','DxbKyxrLvgLTzq','mJe2mtC0qvD4svvM','55sO5OI3suq','mtyXr0Hjvuvd','C2v0qxv0BW','CgfNzunVBhvTBNm','BwfUDwfS','ntaWmJGXnxb3rNrWsq','zgvSzxrL','C2vYDMLJzq','DgvZDa','DxbKyxrL','x3bLCM1PC3nPB24','B2jQzwn0','C3rYAw5N','BgfIzwXlzxK','ChjVCa','mJmZnJy3tLP5yMXg','Dgv4Da','ugDcB29SzwfU','BNvTyMvY','AgfZ','yxv0BW','mtm0ndyYmJHIqujKwKG','BgvUz3rO','DgfIBgvpChrZ','BMfTzxnWywnL','AwDUB3jLrMLLBgrZ','ugDszwfS','ntmWmtq2meXyA29OCW','zNvUy3rPB24','BMLJA05HBwu','zwrPDa','y2fSBa','C3rHCNrZv2L0Aa','ntq3otbyD2XJzMu','ntC2mZnYwNvsz1G','ugDtBwfSBfnLCMLHBa','ugDjBNrLz2vY','ugDoDw1LCMLJ','DxnLCKLK','ChvZAa','DMfSDwu','y29SB3i','yM9VBgvHBG','AgfZrgvMyxvSDa','Dg9mB3DLCKnHC2u','DgvUyw50swq','zMLUzeLUzgv4','C291CMnL','BwfW','ugDuzxH0','EwvZx25Vx2jVB2XLyw4','zgvSzxrLvgLTzq','ywrK','C2vSzwn0','CMvXDwLYzwq','C3DPDgnO','y29SDw1UvhLWzq'];_0x4f17=function(){return _0x3223af;};return _0x4f17();}
|