vome-core 0.1.96 → 0.1.98
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/components/ui/avatar/index.js +1 -1
- package/dist/admin/components/ui/checkbox/index.js +1 -1
- package/dist/admin/components/ui/dialog/index.js +1 -1
- package/dist/admin/components/ui/dropdown-menu/index.js +1 -1
- package/dist/admin/components/ui/input/index.js +1 -1
- package/dist/admin/components/ui/label/index.js +1 -1
- package/dist/admin/components/ui/scroll-area/index.js +1 -1
- package/dist/admin/components/ui/select/index.js +1 -1
- package/dist/admin/components/ui/separator/index.js +1 -1
- package/dist/admin/components/ui/sheet/index.js +1 -1
- package/dist/admin/components/ui/sonner/index.js +1 -1
- package/dist/admin/components/ui/table/index.js +1 -1
- package/dist/admin/components/ui/tabs/index.js +1 -1
- package/dist/admin/components/ui/tooltip/index.js +1 -1
- package/dist/admin/crud/components/vm-richtext-extensions.js +1 -1
- package/dist/admin/crud/config.js +1 -1
- package/dist/admin/crud/confirm.js +1 -1
- package/dist/admin/crud/crud-page-request.js +1 -1
- package/dist/admin/crud/data-i18n.d.ts +16 -6
- 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/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-crud.vue +39 -9
- package/dist/admin/crud/vm-data-i18n-btn.vue +45 -22
- package/dist/admin/crud/vm-data-i18n-lang.vue +66 -44
- package/dist/admin/crud/vm-table.vue +101 -28
- package/dist/admin/crud/vm-toolbar.vue +1 -1
- package/dist/admin/directives/perm.js +1 -1
- package/dist/admin/hooks/useUpload.js +1 -1
- 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/setup-crud-defaults.js +1 -1
- package/dist/admin/lib/shell.js +1 -1
- package/dist/admin/lib/theme-color-options.js +1 -1
- package/dist/admin/lib/tree.js +1 -1
- package/dist/admin/lib/upload.js +1 -1
- package/dist/admin/lib/video-frame.js +1 -1
- package/dist/admin/router/create.js +1 -1
- package/dist/admin/router/guards.js +1 -1
- package/dist/admin/themes/dark.js +1 -1
- package/dist/admin/themes/index.js +1 -1
- package/dist/admin/themes/light.js +1 -1
- package/dist/index.js +1 -1
- package/dist/server/index.js +1 -1
- package/dist/shared/datetime-picker.js +1 -1
- package/dist/shared/excel.js +1 -1
- package/dist/shared/index.js +1 -1
- package/dist/shared/locale-json.js +1 -1
- package/dist/shared/tree.js +1 -1
- package/dist/typings/routing/eps.d.ts +2 -0
- package/package.json +1 -1
- package/typings/admin/comm/crud.ts +2 -0
- package/typings/admin/comm/eps.ts +2 -0
- package/typings/routing/eps.ts +2 -0
|
@@ -1,40 +1,48 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
<
|
|
4
|
-
<
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
2
|
+
<div v-if="targetLangs.length" class="vm-data-i18n-lang">
|
|
3
|
+
<DropdownMenu :modal="false">
|
|
4
|
+
<DropdownMenuTrigger as-child>
|
|
5
|
+
<button
|
|
6
|
+
type="button"
|
|
7
|
+
class="vm-crud-toolbar__btn is-ghost vm-data-i18n-lang__btn"
|
|
8
|
+
:disabled="switching"
|
|
9
|
+
:title="
|
|
10
|
+
crudFormat(
|
|
11
|
+
crudLabel('dataI18nTargetLang', crud.dict.label),
|
|
12
|
+
targetCurrent?.name || targetCode,
|
|
13
|
+
)
|
|
14
|
+
"
|
|
15
|
+
>
|
|
16
|
+
<span class="vm-data-i18n-lang__flag" aria-hidden="true">
|
|
17
|
+
{{ targetCurrent?.flag || '🏳️' }}
|
|
18
|
+
</span>
|
|
19
|
+
{{ crudLabel('dataI18nSwitch', crud.dict.label) }}
|
|
20
|
+
</button>
|
|
21
|
+
</DropdownMenuTrigger>
|
|
22
|
+
<DropdownMenuContent align="start" class="vm-data-i18n-lang__menu">
|
|
23
|
+
<DropdownMenuItem
|
|
24
|
+
v-for="lang in targetLangs"
|
|
25
|
+
:key="lang.value"
|
|
26
|
+
class="vm-data-i18n-lang__item"
|
|
27
|
+
:class="{ 'is-active': targetCode === lang.value }"
|
|
28
|
+
:disabled="switching"
|
|
29
|
+
@click="switchTarget(lang.value)"
|
|
30
|
+
>
|
|
31
|
+
<span class="vm-data-i18n-lang__flag" aria-hidden="true">
|
|
32
|
+
{{ lang.flag || '🏳️' }}
|
|
33
|
+
</span>
|
|
34
|
+
<span class="vm-data-i18n-lang__label">{{ lang.name || lang.label }}</span>
|
|
35
|
+
</DropdownMenuItem>
|
|
36
|
+
</DropdownMenuContent>
|
|
37
|
+
</DropdownMenu>
|
|
38
|
+
</div>
|
|
32
39
|
</template>
|
|
33
40
|
|
|
34
41
|
<script setup lang="ts">
|
|
35
42
|
import { computed, onMounted, ref, watch } from 'vue'
|
|
36
43
|
import { useVome } from '../hooks/useVome'
|
|
37
44
|
import { useCrud } from './useCrud'
|
|
45
|
+
import { crudFormat, crudLabel } from './style'
|
|
38
46
|
import {
|
|
39
47
|
DropdownMenu,
|
|
40
48
|
DropdownMenuContent,
|
|
@@ -50,15 +58,21 @@ const { service } = useVome()
|
|
|
50
58
|
const langs = ref<DataI18nLangOption[]>([])
|
|
51
59
|
const switching = ref(false)
|
|
52
60
|
|
|
53
|
-
const
|
|
61
|
+
const targetCode = computed({
|
|
54
62
|
get: () => crud.dataI18nLangCode?.value || '',
|
|
55
63
|
set: (v: string) => {
|
|
56
64
|
if (crud.dataI18nLangCode) crud.dataI18nLangCode.value = v
|
|
57
65
|
},
|
|
58
66
|
})
|
|
59
67
|
|
|
60
|
-
const
|
|
61
|
-
|
|
68
|
+
const targetLangs = computed(() =>
|
|
69
|
+
langs.value.filter((l) => l.value !== 'zh-CN'),
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
const targetCurrent = computed(
|
|
73
|
+
() =>
|
|
74
|
+
targetLangs.value.find((l) => l.value === targetCode.value) ||
|
|
75
|
+
targetLangs.value[0],
|
|
62
76
|
)
|
|
63
77
|
|
|
64
78
|
async function loadLangs() {
|
|
@@ -66,7 +80,7 @@ async function loadLangs() {
|
|
|
66
80
|
.i18n?.lang
|
|
67
81
|
if (!langSvc?.list) {
|
|
68
82
|
langs.value = [{ label: 'en-US', value: 'en-US', name: 'en-US', flag: '🇺🇸' }]
|
|
69
|
-
|
|
83
|
+
ensureLangs()
|
|
70
84
|
return
|
|
71
85
|
}
|
|
72
86
|
try {
|
|
@@ -76,34 +90,37 @@ async function loadLangs() {
|
|
|
76
90
|
flag?: string
|
|
77
91
|
}>
|
|
78
92
|
langs.value = (rows || [])
|
|
79
|
-
.filter((r) => r.code
|
|
93
|
+
.filter((r) => r.code)
|
|
80
94
|
.map((r) => ({
|
|
81
95
|
label: `${r.name || r.code} (${r.code})`,
|
|
82
96
|
value: String(r.code),
|
|
83
97
|
name: String(r.name || r.code),
|
|
84
|
-
flag: r.flag || '🏳️',
|
|
98
|
+
flag: r.flag || (r.code === 'zh-CN' ? '🇨🇳' : '🏳️'),
|
|
85
99
|
}))
|
|
86
100
|
} catch {
|
|
87
101
|
langs.value = [{ label: 'en-US', value: 'en-US', name: 'en-US', flag: '🇺🇸' }]
|
|
88
102
|
}
|
|
89
|
-
|
|
103
|
+
ensureLangs()
|
|
90
104
|
if (crud.trashMode.value === 'dataI18n') {
|
|
91
105
|
await crud.refresh()
|
|
92
106
|
}
|
|
93
107
|
}
|
|
94
108
|
|
|
95
|
-
function
|
|
96
|
-
if (!
|
|
97
|
-
if (
|
|
98
|
-
|
|
109
|
+
function ensureLangs() {
|
|
110
|
+
if (!targetLangs.value.length) return
|
|
111
|
+
if (
|
|
112
|
+
!targetCode.value ||
|
|
113
|
+
!targetLangs.value.some((o) => o.value === targetCode.value)
|
|
114
|
+
) {
|
|
115
|
+
targetCode.value = targetLangs.value[0]!.value
|
|
99
116
|
}
|
|
100
117
|
}
|
|
101
118
|
|
|
102
|
-
async function
|
|
103
|
-
if (switching.value || !code || code ===
|
|
119
|
+
async function switchTarget(code: string) {
|
|
120
|
+
if (switching.value || !code || code === targetCode.value) return
|
|
104
121
|
switching.value = true
|
|
105
122
|
try {
|
|
106
|
-
|
|
123
|
+
targetCode.value = code
|
|
107
124
|
crud.pagination.value = { ...crud.pagination.value, page: 1 }
|
|
108
125
|
await crud.refresh()
|
|
109
126
|
} finally {
|
|
@@ -124,6 +141,11 @@ onMounted(() => {
|
|
|
124
141
|
</script>
|
|
125
142
|
|
|
126
143
|
<style lang="scss" scoped>
|
|
144
|
+
.vm-data-i18n-lang {
|
|
145
|
+
display: inline-flex;
|
|
146
|
+
align-items: center;
|
|
147
|
+
}
|
|
148
|
+
|
|
127
149
|
.vm-crud-toolbar__btn {
|
|
128
150
|
display: inline-flex;
|
|
129
151
|
height: 36px;
|
|
@@ -277,7 +277,9 @@
|
|
|
277
277
|
@interact-outside="preventDialogOutsideClose"
|
|
278
278
|
>
|
|
279
279
|
<DialogHeader class="vm-crud-shell__head">
|
|
280
|
-
<DialogTitle class="vm-crud-shell__title"
|
|
280
|
+
<DialogTitle class="vm-crud-shell__title">
|
|
281
|
+
{{ crudLabel('dataI18nEdit', crud.dict.label) }}
|
|
282
|
+
</DialogTitle>
|
|
281
283
|
<DialogClose class="vm-crud-shell__close">
|
|
282
284
|
<i class="ri-close-line" />
|
|
283
285
|
<span class="sr-only">Close</span>
|
|
@@ -296,16 +298,15 @@
|
|
|
296
298
|
/>
|
|
297
299
|
</div>
|
|
298
300
|
<div
|
|
301
|
+
v-for="f in dataI18nEditFields"
|
|
302
|
+
:key="f.name"
|
|
299
303
|
class="vm-data-i18n-edit__field"
|
|
300
304
|
:style="{ gridColumn: `span ${dataI18nEditSpan}` }"
|
|
301
305
|
>
|
|
302
|
-
<Label class="vm-data-i18n-edit__label">
|
|
303
|
-
value
|
|
304
|
-
<span class="vm-data-i18n-edit__req">*</span>
|
|
305
|
-
</Label>
|
|
306
|
+
<Label class="vm-data-i18n-edit__label">{{ f.name }}</Label>
|
|
306
307
|
<Input
|
|
307
308
|
class="vm-data-i18n-edit__control"
|
|
308
|
-
v-model="dataI18nEditForm.
|
|
309
|
+
v-model="dataI18nEditForm.values[f.name]"
|
|
309
310
|
/>
|
|
310
311
|
</div>
|
|
311
312
|
</div>
|
|
@@ -316,7 +317,7 @@
|
|
|
316
317
|
:disabled="dataI18nEditSubmitting"
|
|
317
318
|
@click="dataI18nEditOpen = false"
|
|
318
319
|
>
|
|
319
|
-
|
|
320
|
+
{{ crudLabel('close', crud.dict.label) }}
|
|
320
321
|
</button>
|
|
321
322
|
<button
|
|
322
323
|
type="button"
|
|
@@ -324,7 +325,11 @@
|
|
|
324
325
|
:disabled="dataI18nEditSubmitting"
|
|
325
326
|
@click="saveDataI18nEdit"
|
|
326
327
|
>
|
|
327
|
-
{{
|
|
328
|
+
{{
|
|
329
|
+
dataI18nEditSubmitting
|
|
330
|
+
? crudLabel('saving', crud.dict.label)
|
|
331
|
+
: crudLabel('save', crud.dict.label)
|
|
332
|
+
}}
|
|
328
333
|
</button>
|
|
329
334
|
</DialogFooter>
|
|
330
335
|
</DialogContent>
|
|
@@ -339,7 +344,7 @@ import { useCrud } from './useCrud'
|
|
|
339
344
|
import { injectTableOptions, TABLE_API_KEY } from './key'
|
|
340
345
|
import { flattenTree } from '../lib/tree'
|
|
341
346
|
import { resolveCrudComponent } from './registry'
|
|
342
|
-
import { getCrudStyle, crudLabel, crudT, crudLocaleRev } from './style'
|
|
347
|
+
import { getCrudStyle, crudLabel, crudT, crudFormat, crudLocaleRev } from './style'
|
|
343
348
|
import { findEpsEntity } from '../lib/eps'
|
|
344
349
|
import { useVome } from '../hooks/useVome'
|
|
345
350
|
import { vmConfirm } from './confirm'
|
|
@@ -391,17 +396,56 @@ let emptyRo: ResizeObserver | null = null
|
|
|
391
396
|
|
|
392
397
|
const overrideColumns = ref<CrudColumn[] | null>(null)
|
|
393
398
|
|
|
394
|
-
const
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
399
|
+
const DATA_I18N_ID_COL: CrudColumn = {
|
|
400
|
+
prop: 'id',
|
|
401
|
+
label: 'ID',
|
|
402
|
+
minWidth: 100,
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
const DATA_I18N_OP_COL: CrudColumn = {
|
|
406
|
+
type: 'op',
|
|
407
|
+
buttons: ['edit', 'delete'],
|
|
408
|
+
width: 140,
|
|
409
|
+
}
|
|
400
410
|
|
|
401
411
|
const isDataI18nView = computed(() => crud.trashMode.value === 'dataI18n')
|
|
402
412
|
|
|
403
|
-
|
|
404
|
-
|
|
413
|
+
/** 语言 Tab:按表头/当前页内容估 minWidth(限幅) */
|
|
414
|
+
function dataI18nColMinWidth(header: string, samples: string[]) {
|
|
415
|
+
let maxChars = [...header].length
|
|
416
|
+
for (const s of samples) {
|
|
417
|
+
const n = [...String(s || '')].length
|
|
418
|
+
if (n > maxChars) maxChars = n
|
|
419
|
+
}
|
|
420
|
+
return Math.min(360, Math.max(108, maxChars * 14 + 28))
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
const columns = computed((): CrudColumn[] => {
|
|
424
|
+
if (isDataI18nView.value) {
|
|
425
|
+
void crudLocaleRev.value
|
|
426
|
+
const fields = crud.dataI18nFields?.value || []
|
|
427
|
+
const rows = crud.list.value || []
|
|
428
|
+
const origSuffix = crudLabel('dataI18nOrigSuffix', crud.dict.label)
|
|
429
|
+
const fieldCols: CrudColumn[] = []
|
|
430
|
+
for (const f of fields) {
|
|
431
|
+
const fieldName = f.name
|
|
432
|
+
const srcProp = `__src_${fieldName}`
|
|
433
|
+
const srcHeader = `${fieldName}${origSuffix}`
|
|
434
|
+
const srcSamples = rows.map((r) => String(r[srcProp] ?? ''))
|
|
435
|
+
const valSamples = rows.map((r) => String(r[fieldName] ?? ''))
|
|
436
|
+
fieldCols.push({
|
|
437
|
+
prop: srcProp,
|
|
438
|
+
label: srcHeader,
|
|
439
|
+
minWidth: dataI18nColMinWidth(srcHeader, srcSamples),
|
|
440
|
+
})
|
|
441
|
+
fieldCols.push({
|
|
442
|
+
prop: fieldName,
|
|
443
|
+
label: fieldName,
|
|
444
|
+
minWidth: dataI18nColMinWidth(fieldName, valSamples),
|
|
445
|
+
})
|
|
446
|
+
}
|
|
447
|
+
return [DATA_I18N_ID_COL, ...fieldCols, DATA_I18N_OP_COL]
|
|
448
|
+
}
|
|
405
449
|
const raw =
|
|
406
450
|
overrideColumns.value ||
|
|
407
451
|
(props.columns?.length ? props.columns : tableOpts?.columns || [])
|
|
@@ -441,7 +485,7 @@ function epsFieldKey(prop: string): string | undefined {
|
|
|
441
485
|
return `${table}.${name}`
|
|
442
486
|
}
|
|
443
487
|
|
|
444
|
-
/** 表头文案:labelKey → field.* → label / op */
|
|
488
|
+
/** 表头文案:labelKey → field.* → label / op;语言 Tab 用实体字段名,不走 field.* */
|
|
445
489
|
function columnLabel(col: CrudColumn): string {
|
|
446
490
|
void crudLocaleRev.value
|
|
447
491
|
if (col.type === 'op') {
|
|
@@ -450,6 +494,9 @@ function columnLabel(col: CrudColumn): string {
|
|
|
450
494
|
: col.label || crudLabel('op', crud.dict.label)
|
|
451
495
|
}
|
|
452
496
|
const fb = col.label || col.prop || ''
|
|
497
|
+
if (isDataI18nView.value && col.prop && col.prop !== 'id') {
|
|
498
|
+
return fb
|
|
499
|
+
}
|
|
453
500
|
if (col.labelKey) return crudT(col.labelKey, fb)
|
|
454
501
|
const fk = col.fieldKey || (col.prop ? epsFieldKey(col.prop) : undefined)
|
|
455
502
|
if (fk) return crudT(`field.${fk}`, fb)
|
|
@@ -724,21 +771,36 @@ function deleteRowTargets(row: Record<string, unknown>) {
|
|
|
724
771
|
const { service: hostService } = useVome()
|
|
725
772
|
const dataI18nEditOpen = ref(false)
|
|
726
773
|
const dataI18nEditSubmitting = ref(false)
|
|
727
|
-
const dataI18nEditForm = ref
|
|
774
|
+
const dataI18nEditForm = ref<{
|
|
775
|
+
id: string
|
|
776
|
+
values: Record<string, string>
|
|
777
|
+
sources: Record<string, string>
|
|
778
|
+
}>({ id: '', values: {}, sources: {} })
|
|
728
779
|
const dataI18nEditFormCols = useFormCols()
|
|
729
780
|
const dataI18nEditSpan = computed(() =>
|
|
730
781
|
resolveFormSpan(12, dataI18nEditFormCols.value),
|
|
731
782
|
)
|
|
783
|
+
const dataI18nEditFields = computed(
|
|
784
|
+
() => crud.dataI18nFields?.value || [],
|
|
785
|
+
)
|
|
732
786
|
|
|
733
787
|
function onDataI18nEditOpenChange(v: boolean) {
|
|
734
788
|
dataI18nEditOpen.value = v
|
|
735
789
|
}
|
|
736
790
|
|
|
737
791
|
function openDataI18nEdit(row: Record<string, unknown>) {
|
|
792
|
+
const fields = crud.dataI18nFields?.value || []
|
|
793
|
+
const sources = (row.__sources as Record<string, string>) || {}
|
|
794
|
+
const values: Record<string, string> = {}
|
|
795
|
+
const src: Record<string, string> = {}
|
|
796
|
+
for (const f of fields) {
|
|
797
|
+
values[f.name] = String(row[f.name] ?? '')
|
|
798
|
+
src[f.name] = String(sources[f.name] ?? '')
|
|
799
|
+
}
|
|
738
800
|
dataI18nEditForm.value = {
|
|
739
801
|
id: String(row.id ?? ''),
|
|
740
|
-
|
|
741
|
-
|
|
802
|
+
values,
|
|
803
|
+
sources: src,
|
|
742
804
|
}
|
|
743
805
|
dataI18nEditOpen.value = true
|
|
744
806
|
}
|
|
@@ -749,7 +811,7 @@ async function saveDataI18nEdit() {
|
|
|
749
811
|
const dataPack = dataPackFromService(hostService)
|
|
750
812
|
const lang = crud.dataI18nLangCode?.value
|
|
751
813
|
if (!meta.ok || !dataPack?.updateEntry || !lang) {
|
|
752
|
-
toast.error('
|
|
814
|
+
toast.error(crudLabel('dataI18nNoService', crud.dict.label))
|
|
753
815
|
return
|
|
754
816
|
}
|
|
755
817
|
dataI18nEditSubmitting.value = true
|
|
@@ -758,8 +820,7 @@ async function saveDataI18nEdit() {
|
|
|
758
820
|
tableName: meta.tableName,
|
|
759
821
|
langCode: lang,
|
|
760
822
|
id: dataI18nEditForm.value.id,
|
|
761
|
-
|
|
762
|
-
value: dataI18nEditForm.value.value,
|
|
823
|
+
values: { ...dataI18nEditForm.value.values },
|
|
763
824
|
})
|
|
764
825
|
toast.success(crudLabel('saveSuccess', crud.dict.label))
|
|
765
826
|
dataI18nEditOpen.value = false
|
|
@@ -776,12 +837,17 @@ async function deleteDataI18nEntry(row: Record<string, unknown>) {
|
|
|
776
837
|
const dataPack = dataPackFromService(hostService)
|
|
777
838
|
const lang = crud.dataI18nLangCode?.value
|
|
778
839
|
if (!meta.ok || !dataPack?.deleteEntry || !lang) {
|
|
779
|
-
toast.error('
|
|
840
|
+
toast.error(crudLabel('dataI18nNoService', crud.dict.label))
|
|
780
841
|
return
|
|
781
842
|
}
|
|
843
|
+
const id = String(row.id ?? '')
|
|
844
|
+
if (!id) return
|
|
782
845
|
const ok = await vmConfirm({
|
|
783
846
|
title: crudLabel('tips', crud.dict.label),
|
|
784
|
-
message:
|
|
847
|
+
message: crudFormat(
|
|
848
|
+
crudLabel('dataI18nDeleteConfirm', crud.dict.label),
|
|
849
|
+
id,
|
|
850
|
+
),
|
|
785
851
|
confirmText: crudLabel('confirm', crud.dict.label),
|
|
786
852
|
cancelText: crudLabel('close', crud.dict.label),
|
|
787
853
|
})
|
|
@@ -790,8 +856,7 @@ async function deleteDataI18nEntry(row: Record<string, unknown>) {
|
|
|
790
856
|
await dataPack.deleteEntry({
|
|
791
857
|
tableName: meta.tableName,
|
|
792
858
|
langCode: lang,
|
|
793
|
-
id
|
|
794
|
-
key: String(row.key ?? ''),
|
|
859
|
+
id,
|
|
795
860
|
})
|
|
796
861
|
toast.success(crudLabel('deleteSuccess', crud.dict.label))
|
|
797
862
|
await crud.refresh()
|
|
@@ -1283,4 +1348,12 @@ defineExpose({
|
|
|
1283
1348
|
cursor: default;
|
|
1284
1349
|
}
|
|
1285
1350
|
}
|
|
1351
|
+
|
|
1352
|
+
.vm-data-i18n-edit__source {
|
|
1353
|
+
margin-top: 6px;
|
|
1354
|
+
font-size: 12px;
|
|
1355
|
+
line-height: 1.4;
|
|
1356
|
+
color: var(--muted-foreground);
|
|
1357
|
+
word-break: break-word;
|
|
1358
|
+
}
|
|
1286
1359
|
</style>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
(function(_0x5cb0ff,_0x33f77a){const _0x135e71=_0x1fab,_0x549cad=_0x5cb0ff();while(!![]){try{const _0x57b584=parseInt(_0x135e71(0x1ad))/0x1*(-parseInt(_0x135e71(0x1a9))/0x2)+-parseInt(_0x135e71(0x1a5))/0x3+-parseInt(_0x135e71(0x1a4))/0x4+parseInt(_0x135e71(0x1a3))/0x5*(-parseInt(_0x135e71(0x1a8))/0x6)+parseInt(_0x135e71(0x1a2))/0x7*(parseInt(_0x135e71(0x1a1))/0x8)+parseInt(_0x135e71(0x1aa))/0x9+parseInt(_0x135e71(0x1a6))/0xa;if(_0x57b584===_0x33f77a)break;else _0x549cad['push'](_0x549cad['shift']());}catch(_0x29046a){_0x549cad['push'](_0x549cad['shift']());}}}(_0x5412,0x50a65));import{useUserStore}from'../stores/user';export const vPerm={'mounted'(_0x5dc482,_0x4d796c){apply(_0x5dc482,_0x4d796c['value']);},'updated'(_0x4def56,_0x42d151){const _0x3c1f4c=_0x1fab;apply(_0x4def56,_0x42d151[_0x3c1f4c(0x1a7)]);}};function _0x1fab(_0x25975c,_0xfbc879){_0x25975c=_0x25975c-0x19f;const _0x541268=_0x5412();let _0x1fab3b=_0x541268[_0x25975c];if(_0x1fab['EamObx']===undefined){var _0x376c62=function(_0x404a28){const _0x1973b3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5dc482='',_0x4d796c='';for(let _0x4def56=0x0,_0x42d151,_0x13407f,_0x3f5039=0x0;_0x13407f=_0x404a28['charAt'](_0x3f5039++);~_0x13407f&&(_0x42d151=_0x4def56%0x4?_0x42d151*0x40+_0x13407f:_0x13407f,_0x4def56++%0x4)?_0x5dc482+=String['fromCharCode'](0xff&_0x42d151>>(-0x2*_0x4def56&0x6)):0x0){_0x13407f=_0x1973b3['indexOf'](_0x13407f);}for(let _0xc53dfc=0x0,_0x3f2751=_0x5dc482['length'];_0xc53dfc<_0x3f2751;_0xc53dfc++){_0x4d796c+='%'+('00'+_0x5dc482['charCodeAt'](_0xc53dfc)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4d796c);};_0x1fab['EhwZDI']=_0x376c62,_0x1fab['yrNxIH']={},_0x1fab['EamObx']=!![];}const _0xa01652=_0x541268[0x0],_0x56a740=_0x25975c+_0xa01652,_0xf1ed35=_0x1fab['yrNxIH'][_0x56a740];return!_0xf1ed35?(_0x1fab3b=_0x1fab['EhwZDI'](_0x1fab3b),_0x1fab['yrNxIH'][_0x56a740]=_0x1fab3b):_0x1fab3b=_0xf1ed35,_0x1fab3b;}function _0x5412(){const _0xa271ba=['mtuWntC0nvPzDKzQCW','otuWntKZmgPmEKLvvW','DMfSDwu','mZa2CM9yBhrO','mti0ote1nfvwtKXSyW','ntKXmJuWnwHxqwv5uG','zgLZCgXHEq','C3r5Bgu','mxPgqKrhEG','BM9Uzq','AgfZugvYBq','mtm2AuPZuwnk','mtm4ntq0C2PxwLbS','mJG3mdb6EwfgrNO','nZC3nZe2vuL2B3by'];_0x5412=function(){return _0xa271ba;};return _0x5412();}function apply(_0x13407f,_0x3f5039){const _0x5800c2=_0x1fab,_0xc53dfc=useUserStore(),_0x3f2751=_0xc53dfc[_0x5800c2(0x1a0)](_0x3f5039);_0x13407f[_0x5800c2(0x1ac)][_0x5800c2(0x1ab)]=_0x3f2751?'':_0x5800c2(0x19f);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const _0x1a9255=_0x2dca;(function(_0x5ae468,_0x2c5c19){const _0x3ea233=_0x2dca,_0x290c3f=_0x5ae468();while(!![]){try{const _0xf8bc0e=-parseInt(_0x3ea233(0x1f9))/0x1+-parseInt(_0x3ea233(0x1f8))/0x2+parseInt(_0x3ea233(0x1fc))/0x3*(-parseInt(_0x3ea233(0x1f6))/0x4)+-parseInt(_0x3ea233(0x20e))/0x5+-parseInt(_0x3ea233(0x208))/0x6*(parseInt(_0x3ea233(0x20d))/0x7)+parseInt(_0x3ea233(0x1ef))/0x8*(parseInt(_0x3ea233(0x211))/0x9)+parseInt(_0x3ea233(0x1f0))/0xa;if(_0xf8bc0e===_0x2c5c19)break;else _0x290c3f['push'](_0x290c3f['shift']());}catch(_0x49c5d5){_0x290c3f['push'](_0x290c3f['shift']());}}}(_0x3670,0xdec1e));import{toast}from'vue-sonner';import{request}from'../api/client';function _0x3670(){const _0xa9b043=['BwLU','mte3oti4mfHmuufnDq','nti5otK5DNLwr1Lw','5lIk5lYG5AsX6lsLicG','C2vUza','ntiZmJLgrNbzCKS','Ag9ZDa','A2v5','ue9tva','Dg90ywW','DxbSB2fKvxjS','C3rHDhvZ','5lIk5lYG572r57UC6zsz6k+V','CMvZCg9UC2vuzxH0','B25WCM9NCMvZCW','yxbWzw5K','AgfZ','nZi2BMjyzhbm','zxjYB3i','ChvIBgLJrg9TywLU','zMLSzq','C2XPy2u','mJm3nZLyy1vzzKq','mtu0odG5nwTftwv3Cq','B25SB2fK','C3rYAw5NAwz5','mtCXmfjMCNP3rG','nZi5odrcqwr5DNK','mJyWnJGXmJbkAenIwgi','5lIk5lYG5zYW5z2a5PEG5Pwi','BMfTzq','l2fKBwLUl2jHC2uVy29TBs91CgXVywq','DxbSB2fK','DxjS','mZy0rKviANvl'];_0x3670=function(){return _0xa9b043;};return _0x3670();}import{extname,filename,pathJoin,uploadUid}from'../lib/upload';const UPLOAD_PATH=_0x1a9255(0x1f3),SIGN_SKIP=new Set([_0x1a9255(0x1f5),_0x1a9255(0x1fd),'uploadUrl',_0x1a9255(0x20a),'previewUrl','preview']);export function useUpload(){async function _0x872310(_0x48e1bc,_0x2fdfab={}){const _0xa85268=_0x2dca,{prefixPath:prefixPath='app/public',onProgress:_0x48e657}=_0x2fdfab,_0x3c09ec=uploadUid(),_0x55d5fc=extname(_0x48e1bc[_0xa85268(0x1f2)]),_0x5a4470=filename(_0x48e1bc[_0xa85268(0x1f2)])+'_'+_0x3c09ec+(_0x55d5fc?'.'+_0x55d5fc:''),_0x329fd0=pathJoin(prefixPath,_0x5a4470),_0xe7e4ed=await request(UPLOAD_PATH,{'method':_0xa85268(0x1ff),'body':JSON[_0xa85268(0x210)]({})}),_0x2ee39a=String(_0xe7e4ed[_0xa85268(0x1fd)]||_0xe7e4ed[_0xa85268(0x1f5)]||_0xe7e4ed[_0xa85268(0x201)]||'');if(!_0x2ee39a)throw new Error(_0xa85268(0x1f1));const _0x3d10db=new FormData();_0x3d10db['append'](_0xa85268(0x1fe),_0x329fd0);for(const [_0x41d51b,_0x217130]of Object['entries'](_0xe7e4ed)){if(SIGN_SKIP[_0xa85268(0x207)](_0x41d51b)||_0x217130==null||_0x3d10db[_0xa85268(0x207)](_0x41d51b))continue;_0x3d10db[_0xa85268(0x206)](_0x41d51b,String(_0x217130));}_0x3d10db['append'](_0xa85268(0x20b),_0x48e1bc),await xhrUpload(_0x2ee39a,_0x3d10db,_0x48e657);const _0x2a8806=String(_0xe7e4ed['publicDomain']||_0xe7e4ed['previewUrl']||_0x2ee39a);return{'url':pathJoin(_0x2a8806,_0x329fd0),'key':_0x329fd0,'fileId':_0x3c09ec};}return{'toUpload':_0x872310};}function _0x2dca(_0xc110ab,_0x2df26c){_0xc110ab=_0xc110ab-0x1ef;const _0x3670d0=_0x3670();let _0x2dca23=_0x3670d0[_0xc110ab];if(_0x2dca['JfrSjl']===undefined){var _0xa097d6=function(_0x4828f4){const _0x3f4020='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x872310='',_0x48e1bc='';for(let _0x2fdfab=0x0,_0x48e657,_0x3c09ec,_0x55d5fc=0x0;_0x3c09ec=_0x4828f4['charAt'](_0x55d5fc++);~_0x3c09ec&&(_0x48e657=_0x2fdfab%0x4?_0x48e657*0x40+_0x3c09ec:_0x3c09ec,_0x2fdfab++%0x4)?_0x872310+=String['fromCharCode'](0xff&_0x48e657>>(-0x2*_0x2fdfab&0x6)):0x0){_0x3c09ec=_0x3f4020['indexOf'](_0x3c09ec);}for(let _0x5a4470=0x0,_0x329fd0=_0x872310['length'];_0x5a4470<_0x329fd0;_0x5a4470++){_0x48e1bc+='%'+('00'+_0x872310['charCodeAt'](_0x5a4470)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x48e1bc);};_0x2dca['LoSlMl']=_0xa097d6,_0x2dca['hrMFaV']={},_0x2dca['JfrSjl']=!![];}const _0x1a3fda=_0x3670d0[0x0],_0x1dd633=_0xc110ab+_0x1a3fda,_0x57587f=_0x2dca['hrMFaV'][_0x1dd633];return!_0x57587f?(_0x2dca23=_0x2dca['LoSlMl'](_0x2dca23),_0x2dca['hrMFaV'][_0x1dd633]=_0x2dca23):_0x2dca23=_0x57587f,_0x2dca23;}function xhrUpload(_0x4fe447,_0xd83086,_0x2ad78a){return new Promise((_0x1ec881,_0x288712)=>{const _0x61c605=_0x2dca,_0x353a61=new XMLHttpRequest();_0x353a61['open'](_0x61c605(0x1ff),_0x4fe447),_0x353a61[_0x61c605(0x1f4)][_0x61c605(0x205)]=_0x28095d=>{const _0xa0eaad=_0x61c605;if(!_0x28095d['lengthComputable'])return;_0x2ad78a?.(Math[_0xa0eaad(0x1f7)](0x64,Math['floor'](_0x28095d['loaded']/_0x28095d[_0xa0eaad(0x200)]*0x64)));},_0x353a61[_0x61c605(0x20f)]=()=>{const _0x213cf5=_0x61c605;if(_0x353a61['status']<0xc8||_0x353a61[_0x213cf5(0x202)]>=0x12c){const _0x397543=_0x353a61[_0x213cf5(0x204)]||_0x213cf5(0x1fa)+_0x353a61[_0x213cf5(0x202)]+')';toast[_0x213cf5(0x209)](_0x397543[_0x213cf5(0x20c)](0x0,0xc8)),_0x288712(new Error(_0x397543));return;}_0x2ad78a?.(0x64),_0x1ec881();},_0x353a61['onerror']=()=>_0x288712(new Error(_0x61c605(0x203))),_0x353a61[_0x61c605(0x1fb)](_0xd83086);});}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const _0x465e92=_0x2ae2;(function(_0x53e0bb,_0x3c3704){const _0x41191d=_0x2ae2,_0x16a5f3=_0x53e0bb();while(!![]){try{const _0x422b8d=parseInt(_0x41191d(0xb3))/0x1+-parseInt(_0x41191d(0xb5))/0x2*(parseInt(_0x41191d(0xc1))/0x3)+-parseInt(_0x41191d(0xb8))/0x4+-parseInt(_0x41191d(0xbc))/0x5*(parseInt(_0x41191d(0xbe))/0x6)+parseInt(_0x41191d(0xb4))/0x7+-parseInt(_0x41191d(0xbd))/0x8*(-parseInt(_0x41191d(0xc0))/0x9)+parseInt(_0x41191d(0xbf))/0xa;if(_0x422b8d===_0x3c3704)break;else _0x16a5f3['push'](_0x16a5f3['shift']());}catch(_0x4c2489){_0x16a5f3['push'](_0x16a5f3['shift']());}}}(_0x1cae,0xa3513));function _0x2ae2(_0x443bef,_0x551208){_0x443bef=_0x443bef-0xb2;const _0x1cae3e=_0x1cae();let _0x2ae29c=_0x1cae3e[_0x443bef];if(_0x2ae2['SAyveR']===undefined){var _0x563373=function(_0x1d9f3f){const _0x167e9a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x387b83='',_0x2de999='';for(let _0x4dd9e7=0x0,_0x4bbf57,_0x2de5bf,_0x332a89=0x0;_0x2de5bf=_0x1d9f3f['charAt'](_0x332a89++);~_0x2de5bf&&(_0x4bbf57=_0x4dd9e7%0x4?_0x4bbf57*0x40+_0x2de5bf:_0x2de5bf,_0x4dd9e7++%0x4)?_0x387b83+=String['fromCharCode'](0xff&_0x4bbf57>>(-0x2*_0x4dd9e7&0x6)):0x0){_0x2de5bf=_0x167e9a['indexOf'](_0x2de5bf);}for(let _0x3c4a90=0x0,_0x38eb4a=_0x387b83['length'];_0x3c4a90<_0x38eb4a;_0x3c4a90++){_0x2de999+='%'+('00'+_0x387b83['charCodeAt'](_0x3c4a90)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2de999);};_0x2ae2['OJYuxP']=_0x563373,_0x2ae2['CkDghM']={},_0x2ae2['SAyveR']=!![];}const _0x504358=_0x1cae3e[0x0],_0x123651=_0x443bef+_0x504358,_0x34ebca=_0x2ae2['CkDghM'][_0x123651];return!_0x34ebca?(_0x2ae29c=_0x2ae2['OJYuxP'](_0x2ae29c),_0x2ae2['CkDghM'][_0x123651]=_0x2ae29c):_0x2ae29c=_0x34ebca,_0x2ae29c;}function _0x1cae(){const _0x130ae2=['BxnPzq','nvPKv2fAsq','ndaYmdHdz1bfCNq','nZmYoti1oeD5z2HorW','mJe2ntyXndbjzfLSDNi','mJi1ouPovgj4Ea','mJuWmZqXnMH4Dw1jAG','Bwf0y2G','mJu5mde2C0XfsMHj','ody4nZm1q2rxCLHn','mLv2tw5JCG','B3rOzxi','DgvZDa','ndm0mte5nNfKCK1Ywq','Dw5KzwzPBMvK','zg9JDw1LBNrfBgvTzw50'];_0x1cae=function(){return _0x130ae2;};return _0x1cae();}const SSR_FALLBACK={'height':0x0,'width':0x780,'type':_0x465e92(0xb6),'screen':'full','isMini':![]};export function getBrowser(){const _0x3e5375=_0x465e92;if(typeof document===_0x3e5375(0xb9)||typeof navigator===_0x3e5375(0xb9))return{...SSR_FALLBACK};const {clientHeight:_0x387b83,clientWidth:_0x2de999}=document[_0x3e5375(0xba)],_0x4dd9e7=navigator['userAgent']['toLowerCase']();let _0x4bbf57=(_0x4dd9e7['match'](/firefox|chrome|safari|opera/g)||[_0x3e5375(0xb6)])[0x0];if((_0x4dd9e7[_0x3e5375(0xb2)](/msie|trident/g)||[])[0x0])_0x4bbf57=_0x3e5375(0xbb);let _0x2de5bf='full';if(_0x2de999<0x300)_0x2de5bf='xs';else{if(_0x2de999<0x3e0)_0x2de5bf='sm';else{if(_0x2de999<0x4b0)_0x2de5bf='md';else{if(_0x2de999<0x780)_0x2de5bf='xl';}}}const _0x332a89=!/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i[_0x3e5375(0xb7)](_0x4dd9e7);return{'height':_0x387b83,'width':_0x2de999,'type':_0x4bbf57,'screen':_0x2de5bf,'isMini':_0x2de5bf==='xs'||!_0x332a89};}
|
package/dist/admin/lib/cn.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function _0x2103(_0x1b1602,_0x41a3bb){_0x1b1602=_0x1b1602-0x16b;var _0x5345b8=_0x5345();var _0x210371=_0x5345b8[_0x1b1602];if(_0x2103['QTlbVf']===undefined){var _0xa3c3d4=function(_0x51c70d){var _0x18188f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x2cd5d7='',_0x4bd99d='';for(var _0x5ba04e=0x0,_0x1b3007,_0x55634b,_0x266eb9=0x0;_0x55634b=_0x51c70d['charAt'](_0x266eb9++);~_0x55634b&&(_0x1b3007=_0x5ba04e%0x4?_0x1b3007*0x40+_0x55634b:_0x55634b,_0x5ba04e++%0x4)?_0x2cd5d7+=String['fromCharCode'](0xff&_0x1b3007>>(-0x2*_0x5ba04e&0x6)):0x0){_0x55634b=_0x18188f['indexOf'](_0x55634b);}for(var _0x4be2df=0x0,_0x5c37c5=_0x2cd5d7['length'];_0x4be2df<_0x5c37c5;_0x4be2df++){_0x4bd99d+='%'+('00'+_0x2cd5d7['charCodeAt'](_0x4be2df)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4bd99d);};_0x2103['oqGFXK']=_0xa3c3d4,_0x2103['hSDlbV']={},_0x2103['QTlbVf']=!![];}var _0x5d0d72=_0x5345b8[0x0],_0x578d17=_0x1b1602+_0x5d0d72,_0x4fc481=_0x2103['hSDlbV'][_0x578d17];return!_0x4fc481?(_0x210371=_0x2103['oqGFXK'](_0x210371),_0x2103['hSDlbV'][_0x578d17]=_0x210371):_0x210371=_0x4fc481,_0x210371;}(function(_0x25ca4e,_0x56dfe1){var _0x5b02fe=_0x2103,_0x56f459=_0x25ca4e();while(!![]){try{var _0x1487b1=parseInt(_0x5b02fe(0x16e))/0x1*(parseInt(_0x5b02fe(0x16f))/0x2)+-parseInt(_0x5b02fe(0x171))/0x3+parseInt(_0x5b02fe(0x16b))/0x4+parseInt(_0x5b02fe(0x16c))/0x5*(-parseInt(_0x5b02fe(0x170))/0x6)+-parseInt(_0x5b02fe(0x174))/0x7+parseInt(_0x5b02fe(0x16d))/0x8+-parseInt(_0x5b02fe(0x173))/0x9*(parseInt(_0x5b02fe(0x172))/0xa);if(_0x1487b1===_0x56dfe1)break;else _0x56f459['push'](_0x56f459['shift']());}catch(_0x46789f){_0x56f459['push'](_0x56f459['shift']());}}}(_0x5345,0xc72b1));import{clsx}from'clsx';import{twMerge}from'tailwind-merge';function _0x5345(){var _0x3de95d=['mtiXota0ntzQAMfvBw4','ndbiDxnTB08','nZuXnZHsuhLrvKm','mtKWmdq1mKvbCwX6Eq','mJeWndyZnu9oELHoAG','nJbOCw9TEMS','mtuYmdy0mfH2D2XIzW','mtaYodCYnZbuq0Hny2m','nte2mdmZmLfmAuXcDW','nwPvqKHeCG'];_0x5345=function(){return _0x3de95d;};return _0x5345();}export function cn(..._0x2cd5d7){return twMerge(clsx(_0x2cd5d7));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const _0x5965a1=_0x1ae2;(function(_0x5a59d7,_0x22fb2f){const _0x23c347=_0x1ae2,_0x369ec3=_0x5a59d7();while(!![]){try{const _0x41084c=parseInt(_0x23c347(0xd9))/0x1+-parseInt(_0x23c347(0xd8))/0x2+parseInt(_0x23c347(0xd3))/0x3*(-parseInt(_0x23c347(0xd6))/0x4)+parseInt(_0x23c347(0xdd))/0x5*(parseInt(_0x23c347(0xd5))/0x6)+parseInt(_0x23c347(0xde))/0x7*(parseInt(_0x23c347(0xdb))/0x8)+parseInt(_0x23c347(0xd4))/0x9+parseInt(_0x23c347(0xd2))/0xa*(-parseInt(_0x23c347(0xd7))/0xb);if(_0x41084c===_0x22fb2f)break;else _0x369ec3['push'](_0x369ec3['shift']());}catch(_0x110427){_0x369ec3['push'](_0x369ec3['shift']());}}}(_0x46b1,0x302c6));export const DIALOG_FLOAT_CLASS=_0x5965a1(0xdf);function _0x1ae2(_0x5b4a19,_0xd4ea88){_0x5b4a19=_0x5b4a19-0xd2;const _0x46b157=_0x46b1();let _0x1ae227=_0x46b157[_0x5b4a19];if(_0x1ae2['SVNlwn']===undefined){var _0x5e8b94=function(_0x9868ad){const _0x23f527='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x59b77e='',_0x222a0f='';for(let _0xeaa9fc=0x0,_0x192b9b,_0x455a8a,_0xa5218f=0x0;_0x455a8a=_0x9868ad['charAt'](_0xa5218f++);~_0x455a8a&&(_0x192b9b=_0xeaa9fc%0x4?_0x192b9b*0x40+_0x455a8a:_0x455a8a,_0xeaa9fc++%0x4)?_0x59b77e+=String['fromCharCode'](0xff&_0x192b9b>>(-0x2*_0xeaa9fc&0x6)):0x0){_0x455a8a=_0x23f527['indexOf'](_0x455a8a);}for(let _0x5194ee=0x0,_0x168010=_0x59b77e['length'];_0x5194ee<_0x168010;_0x5194ee++){_0x222a0f+='%'+('00'+_0x59b77e['charCodeAt'](_0x5194ee)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x222a0f);};_0x1ae2['VSWaVU']=_0x5e8b94,_0x1ae2['mJKGQZ']={},_0x1ae2['SVNlwn']=!![];}const _0x38ac78=_0x46b157[0x0],_0x549231=_0x5b4a19+_0x38ac78,_0x37fa29=_0x1ae2['mJKGQZ'][_0x549231];return!_0x37fa29?(_0x1ae227=_0x1ae2['VSWaVU'](_0x1ae227),_0x1ae2['mJKGQZ'][_0x549231]=_0x1ae227):_0x1ae227=_0x37fa29,_0x1ae227;}function _0x46b1(){const _0x3d1d59=['B3jPz2LUywXfDMvUDa','otKZmJa1vhHYALfe','otHUrgzdCeS','DM0TzgLHBg9NlwzSB2f0','mtbktunYzMS','odfRCw1It2i','ntC5nJm2zMzwsMnb','nLDvCMrwrW','mtKYmtjiwvvcANG','mJy2nJi5Ag9Aq0P0','nde2oty0zwThtNPv','mJGWntmZsK5sEeTc','DgfYz2v0','otiYnhPcBfPntq'];_0x46b1=function(){return _0x3d1d59;};return _0x46b1();}export const POPUP_TRIGGER_GAP=0x2;export function isDialogFloatTarget(_0x59b77e){const _0x14e64c=_0x5965a1,_0x222a0f=_0x59b77e['detail'],_0xeaa9fc=_0x222a0f?.[_0x14e64c(0xdc)]?.[_0x14e64c(0xda)]??_0x59b77e[_0x14e64c(0xda)];if(!_0xeaa9fc)return![];const _0x192b9b=_0xeaa9fc instanceof Element?_0xeaa9fc:_0xeaa9fc['parentElement'];return Boolean(_0x192b9b?.['closest']('.'+DIALOG_FLOAT_CLASS));}export function preventDialogOutsideClose(_0x455a8a){if(isDialogFloatTarget(_0x455a8a))_0x455a8a['preventDefault']();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x123e79,_0x16a082){const _0x41c29f=_0xff67,_0x629696=_0x123e79();while(!![]){try{const _0x2bfbdc=parseInt(_0x41c29f(0xc1))/0x1+-parseInt(_0x41c29f(0xb4))/0x2+-parseInt(_0x41c29f(0xb5))/0x3+-parseInt(_0x41c29f(0xab))/0x4+-parseInt(_0x41c29f(0xaf))/0x5+parseInt(_0x41c29f(0xbd))/0x6+parseInt(_0x41c29f(0xaa))/0x7;if(_0x2bfbdc===_0x16a082)break;else _0x629696['push'](_0x629696['shift']());}catch(_0x47c277){_0x629696['push'](_0x629696['shift']());}}}(_0x3e43,0x20ba3));import{toValue}from'vue';import{buildExcelBuffer,excelFilename}from'../../shared/excel';function _0x3e43(){const _0x1ca8a2=['y2HPBgrYzw4','BgvUz3rO','zxHWyw5K','mZaYodi5ofLnrezLCq','nZm0ntyWuMLAsKfe','yxbWBgLJyxrPB24VDM5KlM9Wzw54BwXMB3jTyxrZlw9MzMLJzwrVy3vTzw50lNnWCMvHzhnOzwv0BwWUC2HLzxq','AgLKzgvU','ChjVCa','nJu1ntq1wgPXB2zO','zMLSDgvY','AxnbCNjHEq','y3jLyxrLt2jQzwn0vvjm','y3jLyxrLrwXLBwvUDa','mZaWota2u0Pesunj','mJC0ndmXt2vfEwHY','C29Tzq','C2vSzwn0Aw9U','CMv2B2TLt2jQzwn0vvjm','zMLUza','DMfSDwu','BgfIzwW','y2XPy2S','mte5mtuZnhbwzwLMzW','zM9YBwf0DgvY','DhLWzq','AhjLzG','ntK1mJDnv2ffuK8','zgLJDa','AM9PBG','Aw5KzxG'];_0x3e43=function(){return _0x1ca8a2;};return _0x3e43();}import{flattenTree}from'./tree';function _0xff67(_0x20a0ac,_0x26a6b1){_0x20a0ac=_0x20a0ac-0xa8;const _0x3e43ac=_0x3e43();let _0xff679d=_0x3e43ac[_0x20a0ac];if(_0xff67['fvahBK']===undefined){var _0x38b4c9=function(_0x46e641){const _0x5618e4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3d7a20='',_0x2437f2='';for(let _0x8ee97a=0x0,_0x5ae7d7,_0xfe300e,_0x32f6b1=0x0;_0xfe300e=_0x46e641['charAt'](_0x32f6b1++);~_0xfe300e&&(_0x5ae7d7=_0x8ee97a%0x4?_0x5ae7d7*0x40+_0xfe300e:_0xfe300e,_0x8ee97a++%0x4)?_0x3d7a20+=String['fromCharCode'](0xff&_0x5ae7d7>>(-0x2*_0x8ee97a&0x6)):0x0){_0xfe300e=_0x5618e4['indexOf'](_0xfe300e);}for(let _0x42e956=0x0,_0x53fdc2=_0x3d7a20['length'];_0x42e956<_0x53fdc2;_0x42e956++){_0x2437f2+='%'+('00'+_0x3d7a20['charCodeAt'](_0x42e956)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2437f2);};_0xff67['YVWRon']=_0x38b4c9,_0xff67['zPTWJW']={},_0xff67['fvahBK']=!![];}const _0x28bb22=_0x3e43ac[0x0],_0x3c72c6=_0x20a0ac+_0x28bb22,_0x2adeef=_0xff67['zPTWJW'][_0x3c72c6];return!_0x2adeef?(_0xff679d=_0xff67['YVWRon'](_0xff679d),_0xff67['zPTWJW'][_0x3c72c6]=_0xff679d):_0xff679d=_0x2adeef,_0xff679d;}export{buildExcelBuffer,excelFilename,excelResponseHeaders}from'../../shared/excel';export function pickExportColumns(_0x3d7a20){const _0x556e20=_0xff67;return _0x3d7a20['filter'](_0x2437f2=>Boolean(_0x2437f2[_0x556e20(0xae)])&&_0x2437f2[_0x556e20(0xbf)]!==_0x556e20(0xb7)&&_0x2437f2['type']!=='op'&&_0x2437f2['type']!==_0x556e20(0xa9)&&_0x2437f2[_0x556e20(0xbf)]!==_0x556e20(0xc4)&&!_0x2437f2[_0x556e20(0xad)]);}function formatExportCell(_0x8ee97a,_0x5ae7d7){const _0x275dd3=_0xff67;if(!_0x8ee97a[_0x275dd3(0xae)])return'';const _0xfe300e=_0x5ae7d7[_0x8ee97a[_0x275dd3(0xae)]];if(_0x8ee97a[_0x275dd3(0xbe)])return _0x8ee97a['formatter'](_0x5ae7d7,_0xfe300e);const _0x32f6b1=_0x8ee97a[_0x275dd3(0xc2)]==null?[]:toValue(_0x8ee97a['dict']);if(Array[_0x275dd3(0xb1)](_0x32f6b1)&&_0x32f6b1[_0x275dd3(0xa8)]&&_0xfe300e!=null&&_0xfe300e!==''){const _0x42e956=Array['isArray'](_0xfe300e)?_0xfe300e:[_0xfe300e],_0x53fdc2=_0x42e956['map'](_0x4f65c4=>{const _0x427a6a=_0x275dd3,_0x4d309d=_0x32f6b1[_0x427a6a(0xb9)](_0x4177e8=>_0x4177e8['value']===_0x4f65c4||String(_0x4177e8[_0x427a6a(0xba)])===String(_0x4f65c4));return _0x4d309d?.[_0x427a6a(0xbb)];})[_0x275dd3(0xb0)](Boolean);if(_0x53fdc2[_0x275dd3(0xa8)])return _0x53fdc2[_0x275dd3(0xc3)]('、');}if(_0xfe300e==null)return'';return String(_0xfe300e);}export function flattenExportRows(_0x164ff5,_0x1d86d4){const _0x6913b2=_0xff67;if(!_0x1d86d4)return _0x164ff5;const _0x4b1044=_0x164ff5[_0x6913b2(0xb6)](_0x5e1a5b=>Array[_0x6913b2(0xb1)](_0x5e1a5b[_0x6913b2(0xc5)])&&_0x5e1a5b['children'][_0x6913b2(0xa8)]);if(!_0x4b1044)return _0x164ff5;return flattenTree(_0x164ff5);}function crudColumnsToExcel(_0x4565ad){const _0x266bba=_0xff67;return pickExportColumns(_0x4565ad)['map'](_0x1410ee=>({'prop':_0x1410ee[_0x266bba(0xae)],'label':_0x1410ee['label']||_0x1410ee[_0x266bba(0xae)]}));}export function downloadExcelBuffer(_0x1d33a1,_0x613900){const _0x25ef7b=_0xff67,_0x29d681=new Blob([_0x1d33a1],{'type':_0x25ef7b(0xac)}),_0x301faf=URL[_0x25ef7b(0xb2)](_0x29d681),_0x518d3a=document[_0x25ef7b(0xb3)]('a');_0x518d3a[_0x25ef7b(0xc0)]=_0x301faf,_0x518d3a['download']=excelFilename(_0x613900),_0x518d3a[_0x25ef7b(0xbc)](),URL[_0x25ef7b(0xb8)](_0x301faf);}export function exportCrudExcel(_0x2d9749,_0x354dad,_0x25a4ff){const _0x5bb7c7=pickExportColumns(_0x2d9749),_0x291b08=crudColumnsToExcel(_0x5bb7c7),_0x178b85=buildExcelBuffer(_0x291b08,_0x354dad,(_0x51945d,_0x53ee32)=>{const _0x53e7d0=_0xff67,_0x30b8b8=_0x5bb7c7['find'](_0x35fec1=>_0x35fec1[_0x53e7d0(0xae)]===_0x51945d);return _0x30b8b8?formatExportCell(_0x30b8b8,_0x53ee32):String(_0x53ee32[_0x51945d]??'');});downloadExcelBuffer(_0x178b85,_0x25a4ff);}
|