vome-core 0.0.19 → 0.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/admin/config/plugin-dev.js +1 -1
  2. package/dist/admin/crud/config.js +1 -1
  3. package/dist/admin/crud/confirm.js +1 -1
  4. package/dist/admin/crud/dict.js +1 -1
  5. package/dist/admin/crud/index.d.ts +1 -0
  6. package/dist/admin/crud/index.js +1 -1
  7. package/dist/admin/crud/key.js +1 -1
  8. package/dist/admin/crud/mitt.js +1 -1
  9. package/dist/admin/crud/plugins.js +1 -1
  10. package/dist/admin/crud/span.js +1 -1
  11. package/dist/admin/crud/style.js +1 -1
  12. package/dist/admin/crud/validate.js +1 -1
  13. package/dist/admin/crud/vm-dialog.vue +1 -1
  14. package/dist/admin/crud/vm-export-btn.vue +169 -0
  15. package/dist/admin/crud/vm-search.vue +18 -3
  16. package/dist/admin/crud/vm-toolbar.vue +20 -0
  17. package/dist/admin/crud/vm-upsert.vue +163 -33
  18. package/dist/admin/directives/perm.js +1 -1
  19. package/dist/admin/hooks/useUpload.js +1 -1
  20. package/dist/admin/lib/browser.js +1 -1
  21. package/dist/admin/lib/cn.js +1 -1
  22. package/dist/admin/lib/dialog-float.js +1 -1
  23. package/dist/admin/lib/export-excel.d.ts +11 -0
  24. package/dist/admin/lib/export-excel.js +1 -0
  25. package/dist/admin/lib/menu.js +1 -1
  26. package/dist/admin/lib/tree.js +1 -1
  27. package/dist/admin/lib/upload.js +1 -1
  28. package/dist/index.js +1 -1
  29. package/dist/server/index.js +1 -1
  30. package/dist/shared/excel.d.ts +13 -0
  31. package/dist/shared/excel.js +1 -0
  32. package/dist/shared/index.js +1 -1
  33. package/dist/shared/tree.js +1 -1
  34. package/dist/src/core/context/index.d.ts +11 -1
  35. package/dist/src/routing/base.d.ts +2 -0
  36. package/dist/src/server/index.d.ts +2 -0
  37. package/dist/src/shared/excel.d.ts +13 -0
  38. package/dist/src/shared/index.d.ts +2 -0
  39. package/dist/typings/routing/crud.d.ts +2 -0
  40. package/package.json +3 -2
  41. package/src/shared/excel.d.ts +13 -0
  42. package/src/shared/excel.ts +46 -0
  43. package/src/shared/index.ts +6 -0
  44. package/typings/admin/comm/crud.d.ts +6 -0
  45. package/typings/admin/comm/crud.ts +6 -0
@@ -186,14 +186,29 @@ function resolveField(item: CrudSearchItem) {
186
186
  }
187
187
 
188
188
  function fieldProps(item: CrudSearchItem) {
189
+ const name = String(item.placeholder || item.label || '').trim()
190
+ const rangePlaceholders =
191
+ item.type === 'number-range' && name
192
+ ? {
193
+ startPlaceholder: `${name}最小值`,
194
+ endPlaceholder: `${name}最大值`,
195
+ }
196
+ : item.type === 'daterange' && name
197
+ ? {
198
+ startPlaceholder: `${name}开始`,
199
+ endPlaceholder: `${name}结束`,
200
+ }
201
+ : {}
189
202
  return {
190
203
  options: item.options,
191
204
  placeholder: item.placeholder || item.label,
192
205
  refreshOnChange: false,
193
206
  precision: item.range?.rangeType,
194
- mode: item.range?.rangeType === 'float' || item.range?.rangeType === 'int'
195
- ? item.range.rangeType
196
- : undefined,
207
+ mode:
208
+ item.range?.rangeType === 'float' || item.range?.rangeType === 'int'
209
+ ? item.range.rangeType
210
+ : undefined,
211
+ ...rangePlaceholders,
197
212
  ...(item.component?.props || {}),
198
213
  }
199
214
  }
@@ -20,6 +20,14 @@
20
20
  <i class="ri-delete-bin-line" />
21
21
  {{ deleteText || crud.dict.label.multiDelete }}
22
22
  </button>
23
+ <vm-export-btn
24
+ v-if="showExport"
25
+ :text="exportText || crud.dict.label.export"
26
+ :filename="exportFilename"
27
+ :max-export-limit="maxExportLimit"
28
+ :columns="exportColumns"
29
+ :data="exportData"
30
+ />
23
31
  <slot />
24
32
  </div>
25
33
  <div class="vm-crud-toolbar__right">
@@ -57,6 +65,7 @@
57
65
  <script setup lang="ts">
58
66
  import { computed } from 'vue'
59
67
  import { useCrud } from './useCrud'
68
+ import VmExportBtn from './vm-export-btn.vue'
60
69
  defineOptions({ name: 'vm-toolbar' })
61
70
 
62
71
  const props = withDefaults(
@@ -66,21 +75,32 @@ const props = withDefaults(
66
75
  search?: boolean
67
76
  showAdd?: boolean
68
77
  showDelete?: boolean
78
+ /** 显示导出(默认开;需 page/list 权限) */
79
+ showExport?: boolean
69
80
  /** 打开新增表单时的默认值 */
70
81
  addData?: Record<string, unknown> | (() => Record<string, unknown>)
71
82
  /** 回收站中是否隐藏新增(默认 true) */
72
83
  hideAddInTrash?: boolean
73
84
  addText?: string
74
85
  deleteText?: string
86
+ exportText?: string
87
+ exportFilename?: string | (() => string)
88
+ maxExportLimit?: number
89
+ exportColumns?: CrudColumn[]
90
+ exportData?:
91
+ | Record<string, unknown>[]
92
+ | ((params: Record<string, unknown>) => Promise<Record<string, unknown>[]>)
75
93
  }>(),
76
94
  {
77
95
  trash: true,
78
96
  search: true,
79
97
  showAdd: true,
80
98
  showDelete: true,
99
+ showExport: true,
81
100
  hideAddInTrash: true,
82
101
  addText: '新增',
83
102
  deleteText: '删除',
103
+ maxExportLimit: 5000,
84
104
  },
85
105
  )
86
106
 
@@ -1,12 +1,16 @@
1
1
  <template>
2
2
  <Dialog
3
3
  :open="crud.upsertVisible.value"
4
- @update:open="(v) => (!v ? crud.upsertClose() : undefined)"
4
+ @update:open="(v) => (!v ? onCloseClick() : undefined)"
5
5
  >
6
6
  <DialogContent
7
7
  shell="crud"
8
8
  class="vm-crud-upsert"
9
- :class="{ 'is-empty': isBodyEmpty }"
9
+ :class="{
10
+ 'is-empty': isBodyEmpty,
11
+ 'is-height': !!heightCss,
12
+ }"
13
+ :style="heightCss ? { '--vm-dialog-height': heightCss } : undefined"
10
14
  @pointer-down-outside="onPointerDownOutside"
11
15
  @focus-outside="onFocusOutside"
12
16
  @interact-outside="onInteractOutside"
@@ -14,7 +18,10 @@
14
18
  <DialogHeader class="vm-crud-upsert__head">
15
19
  <DialogTitle class="vm-crud-upsert__title">{{ titleText }}</DialogTitle>
16
20
  </DialogHeader>
17
- <div class="vm-crud-upsert__body">
21
+ <div
22
+ class="vm-crud-upsert__body"
23
+ :class="{ 'is-fill': layout === 'fill' }"
24
+ >
18
25
  <template v-if="!isBodyEmpty">
19
26
  <div
20
27
  v-for="item in formItemsBeforeSlot"
@@ -33,7 +40,7 @@
33
40
  :name="`upsert-${item.prop}`"
34
41
  :options="resolveOptions(item.options)"
35
42
  :model-value="String(crud.upsertForm.value[item.prop] ?? '')"
36
- :disabled="isInfo"
43
+ :disabled="isInfo || item.disabled"
37
44
  @update:model-value="(v) => setField(item.prop, v)"
38
45
  />
39
46
 
@@ -43,7 +50,7 @@
43
50
  :class="fieldClass(item)"
44
51
  v-bind="fieldProps(item)"
45
52
  :model-value="crud.upsertForm.value[item.prop]"
46
- :disabled="isInfo"
53
+ :disabled="isInfo || item.disabled"
47
54
  @update:model-value="(v: unknown) => setField(item.prop, v)"
48
55
  />
49
56
 
@@ -51,7 +58,7 @@
51
58
  v-else
52
59
  class="vm-crud-upsert__control"
53
60
  :placeholder="item.placeholder"
54
- :disabled="isInfo"
61
+ :disabled="isInfo || item.disabled"
55
62
  :aria-invalid="fieldErrors[item.prop] ? true : undefined"
56
63
  :model-value="String(crud.upsertForm.value[item.prop] ?? '')"
57
64
  @update:model-value="(v) => setField(item.prop, v)"
@@ -76,7 +83,7 @@
76
83
  <textarea
77
84
  class="vm-crud-upsert__textarea"
78
85
  :placeholder="item.placeholder"
79
- :disabled="isInfo"
86
+ :disabled="isInfo || item.disabled"
80
87
  :value="String(crud.upsertForm.value[item.prop] ?? '')"
81
88
  @input="setField(item.prop, ($event.target as HTMLTextAreaElement).value)"
82
89
  />
@@ -89,24 +96,34 @@
89
96
  <vm-empty kind="暂无内容" />
90
97
  </div>
91
98
  </div>
92
- <DialogFooter class="vm-crud-upsert__foot">
93
- <button
94
- type="button"
95
- class="vm-crud-upsert__btn is-ghost"
96
- :disabled="submitting"
97
- @click="crud.upsertClose()"
98
- >
99
- {{ crud.dict.label.close }}
100
- </button>
101
- <button
102
- v-if="showConfirm"
103
- type="button"
104
- class="vm-crud-upsert__btn is-primary"
105
- :disabled="submitting"
106
- @click="onSubmit"
107
- >
108
- {{ submitting ? '提交中…' : crud.dict.label.confirm }}
109
- </button>
99
+ <DialogFooter v-if="showFooter" class="vm-crud-upsert__foot">
100
+ <slot
101
+ v-if="slots.footer"
102
+ name="footer"
103
+ v-bind="footerSlotProps"
104
+ />
105
+ <template v-else>
106
+ <slot name="footer-prepend" v-bind="footerSlotProps" />
107
+ <button
108
+ v-if="showClose"
109
+ type="button"
110
+ class="vm-crud-upsert__btn is-ghost"
111
+ :disabled="submitting"
112
+ @click="onCloseClick"
113
+ >
114
+ {{ closeLabel }}
115
+ </button>
116
+ <button
117
+ v-if="showConfirm"
118
+ type="button"
119
+ class="vm-crud-upsert__btn is-primary"
120
+ :disabled="submitting"
121
+ @click="onConfirmClick"
122
+ >
123
+ {{ submitting ? '提交中…' : confirmLabel }}
124
+ </button>
125
+ <slot name="footer-append" v-bind="footerSlotProps" />
126
+ </template>
110
127
  </DialogFooter>
111
128
  </DialogContent>
112
129
  </Dialog>
@@ -128,10 +145,32 @@ const props = withDefaults(
128
145
  defineProps<{
129
146
  items?: CrudFormItem[]
130
147
  title?: string
148
+ /** 弹窗高度,如 800 / '800px';最高受壳层 800px 约束 */
149
+ height?: string | number
150
+ /** 是否显示确定;未设时 info 模式自动隐藏 */
151
+ confirm?: boolean
152
+ /** 是否显示关闭,默认 true */
153
+ close?: boolean
154
+ /** false 时隐藏整个底栏 */
155
+ footer?: boolean
156
+ confirmText?: string
157
+ closeText?: string
158
+ /** form=栅格表单;fill=纵向铺满(只读列表/文档) */
159
+ layout?: 'form' | 'fill'
131
160
  }>(),
132
- {},
161
+ {
162
+ close: undefined,
163
+ confirm: undefined,
164
+ footer: true,
165
+ layout: 'form',
166
+ },
133
167
  )
134
168
 
169
+ const emit = defineEmits<{
170
+ close: []
171
+ confirm: []
172
+ }>()
173
+
135
174
  const slots = useSlots()
136
175
  const crud = useCrud()
137
176
  const upsertOpts = injectUpsertOptions()
@@ -139,6 +178,16 @@ const formCols = useFormCols()
139
178
  const submitting = ref(false)
140
179
  const fieldErrors = ref<Record<string, string>>({})
141
180
 
181
+ function normalizeHeight(h?: string | number) {
182
+ if (h == null || h === '') return ''
183
+ if (typeof h === 'number') return `${h}px`
184
+ return String(h)
185
+ }
186
+
187
+ const heightCss = computed(() =>
188
+ normalizeHeight(props.height ?? upsertOpts?.dialog?.height),
189
+ )
190
+
142
191
  const mergedItems = computed(() => {
143
192
  const raw = props.items?.length ? props.items : upsertOpts?.items || []
144
193
  const useRules = getCrudStyle().form.plugins.some(
@@ -171,16 +220,46 @@ const formItemsAfterSlot = computed(() =>
171
220
  )
172
221
 
173
222
  const isInfo = computed(() => crud.upsertMode.value === 'info')
174
- /** dialog.confirm 显式控制;未设时 info 模式自动隐藏确定 */
223
+ /** prop > dialog.confirm > info 自动隐藏 */
175
224
  const showConfirm = computed(() => {
225
+ if (typeof props.confirm === 'boolean') return props.confirm
176
226
  const flag = upsertOpts?.dialog?.confirm
177
227
  if (typeof flag === 'boolean') return flag
178
228
  return !isInfo.value
179
229
  })
230
+ const showClose = computed(() => {
231
+ if (typeof props.close === 'boolean') return props.close
232
+ const flag = upsertOpts?.dialog?.close
233
+ if (typeof flag === 'boolean') return flag
234
+ return true
235
+ })
236
+ const showFooter = computed(() => props.footer !== false)
237
+ const confirmLabel = computed(
238
+ () =>
239
+ props.confirmText ||
240
+ upsertOpts?.dialog?.confirmText ||
241
+ crud.dict.label.confirm,
242
+ )
243
+ const closeLabel = computed(
244
+ () =>
245
+ props.closeText ||
246
+ upsertOpts?.dialog?.closeText ||
247
+ crud.dict.label.close,
248
+ )
180
249
  const isBodyEmpty = computed(
181
250
  () => !visibleItems.value.length && !slots.default,
182
251
  )
183
252
 
253
+ const footerSlotProps = computed(() => ({
254
+ close: onCloseClick,
255
+ submit: onSubmit,
256
+ confirm: onConfirmClick,
257
+ submitting: submitting.value,
258
+ showConfirm: showConfirm.value,
259
+ showClose: showClose.value,
260
+ form: crud.upsertForm.value,
261
+ }))
262
+
184
263
  function onPointerDownOutside(event: Event) {
185
264
  if (isDialogFloatTarget(event)) event.preventDefault()
186
265
  }
@@ -263,9 +342,25 @@ function itemSpan(item: CrudFormItem) {
263
342
  return resolveFormSpan(item.span, formCols.value)
264
343
  }
265
344
 
345
+ function onCloseClick() {
346
+ const done = () => crud.upsertClose()
347
+ if (upsertOpts?.onClose) {
348
+ upsertOpts.onClose('close', done)
349
+ emit('close')
350
+ return
351
+ }
352
+ done()
353
+ emit('close')
354
+ }
355
+
356
+ function onConfirmClick() {
357
+ emit('confirm')
358
+ void onSubmit()
359
+ }
360
+
266
361
  async function onSubmit() {
267
362
  if (isInfo.value) {
268
- crud.upsertClose()
363
+ onCloseClick()
269
364
  return
270
365
  }
271
366
  if (submitting.value) return
@@ -345,7 +440,7 @@ defineExpose({
345
440
  form: crud.upsertForm,
346
441
  mode: crud.upsertMode,
347
442
  submit: onSubmit,
348
- close: () => crud.upsertClose(),
443
+ close: onCloseClick,
349
444
  add: () => crud.rowAdd(),
350
445
  append: (data?: Record<string, unknown>) => crud.rowAppend(data),
351
446
  edit: (data: Record<string, unknown>) => crud.rowEdit(data),
@@ -382,6 +477,19 @@ defineExpose({
382
477
  padding: 18px 22px;
383
478
  align-content: start;
384
479
 
480
+ &.is-fill {
481
+ display: flex;
482
+ flex-direction: column;
483
+ align-items: stretch;
484
+ gap: 0;
485
+ padding: 0;
486
+
487
+ > * {
488
+ width: 100%;
489
+ min-width: 0;
490
+ }
491
+ }
492
+
385
493
  /* slot 内容在宿主 SFC,须 :deep 才能命中 label / control 样式 */
386
494
  :deep(.vm-crud-upsert__field) {
387
495
  display: grid;
@@ -408,6 +516,25 @@ defineExpose({
408
516
  line-height: 1.4 !important;
409
517
  }
410
518
 
519
+ /* 单行 input:白底;select / tree-select 等:淡蓝底 */
520
+ :deep(input.vm-crud-upsert__control),
521
+ :deep(.vm-crud-upsert__control[data-slot='input']) {
522
+ background: var(--card) !important;
523
+ }
524
+
525
+ :deep(.vm-crud-select.vm-crud-upsert__control),
526
+ :deep(.vm-group-cascader.vm-crud-upsert__control),
527
+ :deep(.vm-multi-select.vm-crud-upsert__control),
528
+ :deep(.vm-user-select.vm-crud-upsert__control),
529
+ :deep(.vm-date-picker.vm-crud-upsert__control),
530
+ :deep(.vm-icon-picker.vm-crud-upsert__control) {
531
+ background: var(--muted) !important;
532
+ }
533
+
534
+ :deep(.vm-tree-select.vm-crud-upsert__control .vm-tree-select__trigger) {
535
+ background: var(--muted) !important;
536
+ }
537
+
411
538
  @media (max-width: 768px) {
412
539
  grid-template-columns: repeat(12, minmax(0, 1fr));
413
540
  flex: 1 1 auto;
@@ -443,11 +570,12 @@ defineExpose({
443
570
  min-height: var(--vm-control-height);
444
571
  }
445
572
 
446
- /* 上传:按 size 撑开,勿套用单行输入框高度 */
573
+ /* 上传:按 size 撑开,勿套用单行输入框高度;淡蓝底 */
447
574
  :deep(.vm-upload.vm-crud-upsert__upload-field) {
448
575
  width: 100%;
449
576
  height: auto !important;
450
577
  min-height: 0;
578
+ background: var(--muted) !important;
451
579
  }
452
580
 
453
581
  :deep(.vm-crud-upsert__switch-field.vm-switch) {
@@ -456,13 +584,14 @@ defineExpose({
456
584
  margin-top: 8px;
457
585
  }
458
586
 
459
- .vm-crud-upsert__textarea {
587
+ .vm-crud-upsert__textarea,
588
+ :deep(.vm-crud-upsert__textarea) {
460
589
  width: 100%;
461
590
  min-height: 72px;
462
591
  padding: 8px var(--vm-control-padding-x);
463
592
  border: 1px solid var(--input);
464
593
  border-radius: var(--vm-control-radius);
465
- background: var(--background);
594
+ background: var(--muted);
466
595
  color: var(--foreground);
467
596
  font-size: 14px;
468
597
  line-height: 1.5;
@@ -496,7 +625,8 @@ defineExpose({
496
625
  }
497
626
  }
498
627
 
499
- .vm-crud-upsert__btn {
628
+ .vm-crud-upsert__btn,
629
+ :slotted(.vm-crud-upsert__btn) {
500
630
  height: 36px;
501
631
  padding: 0 16px;
502
632
  border: none;
@@ -1 +1 @@
1
- (function(_0x51d9ee,_0x416211){const _0x43aa68=_0x3b18,_0x5136fe=_0x51d9ee();while(!![]){try{const _0x93faf5=-parseInt(_0x43aa68(0x7c))/0x1+parseInt(_0x43aa68(0x85))/0x2+-parseInt(_0x43aa68(0x83))/0x3*(parseInt(_0x43aa68(0x86))/0x4)+-parseInt(_0x43aa68(0x7d))/0x5+parseInt(_0x43aa68(0x7a))/0x6*(parseInt(_0x43aa68(0x84))/0x7)+-parseInt(_0x43aa68(0x87))/0x8*(-parseInt(_0x43aa68(0x81))/0x9)+parseInt(_0x43aa68(0x7b))/0xa;if(_0x93faf5===_0x416211)break;else _0x5136fe['push'](_0x5136fe['shift']());}catch(_0x51d379){_0x5136fe['push'](_0x5136fe['shift']());}}}(_0x399a,0xc4093));import{useUserStore}from'../stores/user';export const vPerm={'mounted'(_0x135249,_0x30e478){const _0x3f76cb=_0x3b18;apply(_0x135249,_0x30e478[_0x3f76cb(0x82)]);},'updated'(_0x1a9f7d,_0x364c04){const _0x3164d5=_0x3b18;apply(_0x1a9f7d,_0x364c04[_0x3164d5(0x82)]);}};function _0x3b18(_0x21860e,_0xd3d92f){_0x21860e=_0x21860e-0x7a;const _0x399afd=_0x399a();let _0x3b1802=_0x399afd[_0x21860e];if(_0x3b18['KqWDAu']===undefined){var _0x3be32f=function(_0x72bcae){const _0x175390='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x135249='',_0x30e478='';for(let _0x1a9f7d=0x0,_0x364c04,_0x4ec3f0,_0x11f19d=0x0;_0x4ec3f0=_0x72bcae['charAt'](_0x11f19d++);~_0x4ec3f0&&(_0x364c04=_0x1a9f7d%0x4?_0x364c04*0x40+_0x4ec3f0:_0x4ec3f0,_0x1a9f7d++%0x4)?_0x135249+=String['fromCharCode'](0xff&_0x364c04>>(-0x2*_0x1a9f7d&0x6)):0x0){_0x4ec3f0=_0x175390['indexOf'](_0x4ec3f0);}for(let _0x41e751=0x0,_0x1abff1=_0x135249['length'];_0x41e751<_0x1abff1;_0x41e751++){_0x30e478+='%'+('00'+_0x135249['charCodeAt'](_0x41e751)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x30e478);};_0x3b18['EKcsWu']=_0x3be32f,_0x3b18['hFeORR']={},_0x3b18['KqWDAu']=!![];}const _0x4e896c=_0x399afd[0x0],_0x550521=_0x21860e+_0x4e896c,_0x46c2be=_0x3b18['hFeORR'][_0x550521];return!_0x46c2be?(_0x3b1802=_0x3b18['EKcsWu'](_0x3b1802),_0x3b18['hFeORR'][_0x550521]=_0x3b1802):_0x3b1802=_0x46c2be,_0x3b1802;}function apply(_0x4ec3f0,_0x11f19d){const _0x3290f4=_0x3b18,_0x41e751=useUserStore(),_0x1abff1=_0x41e751[_0x3290f4(0x7f)](_0x11f19d);_0x4ec3f0[_0x3290f4(0x80)][_0x3290f4(0x7e)]=_0x1abff1?'':'none';}function _0x399a(){const _0xe6793f=['AgfZugvYBq','C3r5Bgu','mJDvq2vLBg0','DMfSDwu','ntuXmZe5we9HD0Ln','mJi5mJi2mKrHrKzbCW','nZeYmdG0uMf5svDx','neXwy3fiwa','mJaXmJq4uxn2rgTj','mtjSD1nKA3K','mtGXnduYodbVDgjqDuq','nJy4ndC2uwnQvuzJ','nJiYodC5mgXctvPQsq','zgLZCgXHEq'];_0x399a=function(){return _0xe6793f;};return _0x399a();}
1
+ function _0x622a(_0x3ab13a,_0x441a97){_0x3ab13a=_0x3ab13a-0x18c;const _0xaa6562=_0xaa65();let _0x622ad4=_0xaa6562[_0x3ab13a];if(_0x622a['osojKD']===undefined){var _0xd8df14=function(_0x28d264){const _0x99e36a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1c9e9c='',_0x3a3ea5='';for(let _0x3f0e96=0x0,_0x59bd40,_0x1378ab,_0x242ac0=0x0;_0x1378ab=_0x28d264['charAt'](_0x242ac0++);~_0x1378ab&&(_0x59bd40=_0x3f0e96%0x4?_0x59bd40*0x40+_0x1378ab:_0x1378ab,_0x3f0e96++%0x4)?_0x1c9e9c+=String['fromCharCode'](0xff&_0x59bd40>>(-0x2*_0x3f0e96&0x6)):0x0){_0x1378ab=_0x99e36a['indexOf'](_0x1378ab);}for(let _0x50d856=0x0,_0x2ef7e6=_0x1c9e9c['length'];_0x50d856<_0x2ef7e6;_0x50d856++){_0x3a3ea5+='%'+('00'+_0x1c9e9c['charCodeAt'](_0x50d856)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3a3ea5);};_0x622a['bRkgta']=_0xd8df14,_0x622a['CcUuPJ']={},_0x622a['osojKD']=!![];}const _0x494071=_0xaa6562[0x0],_0x22a695=_0x3ab13a+_0x494071,_0x2b562b=_0x622a['CcUuPJ'][_0x22a695];return!_0x2b562b?(_0x622ad4=_0x622a['bRkgta'](_0x622ad4),_0x622a['CcUuPJ'][_0x22a695]=_0x622ad4):_0x622ad4=_0x2b562b,_0x622ad4;}(function(_0x36c97a,_0x3a20e0){const _0x5baba2=_0x622a,_0x36835a=_0x36c97a();while(!![]){try{const _0x201fee=-parseInt(_0x5baba2(0x192))/0x1*(parseInt(_0x5baba2(0x194))/0x2)+parseInt(_0x5baba2(0x195))/0x3+parseInt(_0x5baba2(0x18d))/0x4*(-parseInt(_0x5baba2(0x190))/0x5)+parseInt(_0x5baba2(0x197))/0x6*(-parseInt(_0x5baba2(0x198))/0x7)+parseInt(_0x5baba2(0x196))/0x8+-parseInt(_0x5baba2(0x18c))/0x9+-parseInt(_0x5baba2(0x191))/0xa*(-parseInt(_0x5baba2(0x18e))/0xb);if(_0x201fee===_0x3a20e0)break;else _0x36835a['push'](_0x36835a['shift']());}catch(_0x5b410a){_0x36835a['push'](_0x36835a['shift']());}}}(_0xaa65,0xdbc7e));import{useUserStore}from'../stores/user';export const vPerm={'mounted'(_0x1c9e9c,_0x3a3ea5){const _0x16e233=_0x622a;apply(_0x1c9e9c,_0x3a3ea5[_0x16e233(0x18f)]);},'updated'(_0x3f0e96,_0x59bd40){const _0x4421=_0x622a;apply(_0x3f0e96,_0x59bd40[_0x4421(0x18f)]);}};function _0xaa65(){const _0x1e61ad=['mJq4oduXmMfXAxr3tW','mte2mduZmtj6ENzxtNK','nJztufzMC1G','ndi2nJqZBML0AK1Q','BM9Uzq','AgfZugvYBq','mJm5nZi4nwXxvhbdyG','nhn5yKnOEa','mJe0nJfmuLngz0m','DMfSDwu','nZyXnJG0nuDXrfjACq','mtqWmtbMv3LksgK','nZuXndjRCK5Vv20','zgLZCgXHEq','ndrNrhncsK0'];_0xaa65=function(){return _0x1e61ad;};return _0xaa65();}function apply(_0x1378ab,_0x242ac0){const _0x4ea219=_0x622a,_0x50d856=useUserStore(),_0x2ef7e6=_0x50d856[_0x4ea219(0x19a)](_0x242ac0);_0x1378ab['style'][_0x4ea219(0x193)]=_0x2ef7e6?'':_0x4ea219(0x199);}
@@ -1 +1 @@
1
- const _0x43e273=_0x2b1e;(function(_0x278d8d,_0x49ae9b){const _0x9f284a=_0x2b1e,_0x4d40b4=_0x278d8d();while(!![]){try{const _0x40886e=-parseInt(_0x9f284a(0xa0))/0x1+parseInt(_0x9f284a(0xba))/0x2*(parseInt(_0x9f284a(0xa6))/0x3)+parseInt(_0x9f284a(0xb6))/0x4*(parseInt(_0x9f284a(0x97))/0x5)+parseInt(_0x9f284a(0xa8))/0x6+-parseInt(_0x9f284a(0xb7))/0x7+-parseInt(_0x9f284a(0xa3))/0x8+parseInt(_0x9f284a(0xac))/0x9;if(_0x40886e===_0x49ae9b)break;else _0x4d40b4['push'](_0x4d40b4['shift']());}catch(_0x47f81f){_0x4d40b4['push'](_0x4d40b4['shift']());}}}(_0x1d41,0x9933d));import{toast}from'vue-sonner';import{request}from'../api/client';function _0x2b1e(_0x5bc51f,_0x419343){_0x5bc51f=_0x5bc51f-0x97;const _0x1d414a=_0x1d41();let _0x2b1eeb=_0x1d414a[_0x5bc51f];if(_0x2b1e['RKlglF']===undefined){var _0x3ca486=function(_0xb44715){const _0x49b0ec='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5207da='',_0x19cddf='';for(let _0x215322=0x0,_0x395a0f,_0x4163d3,_0x3d5c64=0x0;_0x4163d3=_0xb44715['charAt'](_0x3d5c64++);~_0x4163d3&&(_0x395a0f=_0x215322%0x4?_0x395a0f*0x40+_0x4163d3:_0x4163d3,_0x215322++%0x4)?_0x5207da+=String['fromCharCode'](0xff&_0x395a0f>>(-0x2*_0x215322&0x6)):0x0){_0x4163d3=_0x49b0ec['indexOf'](_0x4163d3);}for(let _0x58205f=0x0,_0x4f96c1=_0x5207da['length'];_0x58205f<_0x4f96c1;_0x58205f++){_0x19cddf+='%'+('00'+_0x5207da['charCodeAt'](_0x58205f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x19cddf);};_0x2b1e['seZMRS']=_0x3ca486,_0x2b1e['KNZCyQ']={},_0x2b1e['RKlglF']=!![];}const _0x1913b7=_0x1d414a[0x0],_0x4942bb=_0x5bc51f+_0x1913b7,_0x5e2be9=_0x2b1e['KNZCyQ'][_0x4942bb];return!_0x5e2be9?(_0x2b1eeb=_0x2b1e['seZMRS'](_0x2b1eeb),_0x2b1e['KNZCyQ'][_0x4942bb]=_0x2b1eeb):_0x2b1eeb=_0x5e2be9,_0x2b1eeb;}import{extname,filename,pathJoin,uploadUid}from'../lib/upload';const UPLOAD_PATH=_0x43e273(0x98),SIGN_SKIP=new Set([_0x43e273(0x9f),_0x43e273(0xad),_0x43e273(0xab),_0x43e273(0x9b),_0x43e273(0xb5),_0x43e273(0xa2)]);export function useUpload(){async function _0x5207da(_0x19cddf,_0x215322={}){const _0x35b154=_0x2b1e,{prefixPath:prefixPath=_0x35b154(0xb9),onProgress:_0x395a0f}=_0x215322,_0x4163d3=uploadUid(),_0x3d5c64=extname(_0x19cddf[_0x35b154(0xb2)]),_0x58205f=filename(_0x19cddf['name'])+'_'+_0x4163d3+(_0x3d5c64?'.'+_0x3d5c64:''),_0x4f96c1=pathJoin(prefixPath,_0x58205f),_0x543f04=await request(UPLOAD_PATH,{'method':_0x35b154(0xaf),'body':JSON[_0x35b154(0xa5)]({})}),_0x21fc0e=String(_0x543f04[_0x35b154(0xad)]||_0x543f04[_0x35b154(0x9f)]||_0x543f04[_0x35b154(0xab)]||'');if(!_0x21fc0e)throw new Error(_0x35b154(0x9a));const _0x4aacda=new FormData();_0x4aacda[_0x35b154(0xa4)](_0x35b154(0xb1),_0x4f96c1);for(const [_0x4576bc,_0x4d6376]of Object[_0x35b154(0x99)](_0x543f04)){if(SIGN_SKIP[_0x35b154(0x9d)](_0x4576bc)||_0x4d6376==null||_0x4aacda['has'](_0x4576bc))continue;_0x4aacda[_0x35b154(0xa4)](_0x4576bc,String(_0x4d6376));}_0x4aacda[_0x35b154(0xa4)](_0x35b154(0xb3),_0x19cddf),await xhrUpload(_0x21fc0e,_0x4aacda,_0x395a0f);const _0x411cf7=String(_0x543f04[_0x35b154(0x9b)]||_0x543f04['previewUrl']||_0x21fc0e);return{'url':pathJoin(_0x411cf7,_0x4f96c1),'key':_0x4f96c1,'fileId':_0x4163d3};}return{'toUpload':_0x5207da};}function xhrUpload(_0x37393f,_0x5abc1d,_0x3853c8){return new Promise((_0x95e1a3,_0x147a0a)=>{const _0x3ef549=_0x2b1e,_0x155f36=new XMLHttpRequest();_0x155f36[_0x3ef549(0xa7)](_0x3ef549(0xaf),_0x37393f),_0x155f36[_0x3ef549(0xaa)][_0x3ef549(0x9c)]=_0x580214=>{const _0x1ec784=_0x3ef549;if(!_0x580214[_0x1ec784(0xb0)])return;_0x3853c8?.(Math[_0x1ec784(0xa9)](0x64,Math['floor'](_0x580214['loaded']/_0x580214[_0x1ec784(0xa1)]*0x64)));},_0x155f36['onload']=()=>{const _0x237a41=_0x3ef549;if(_0x155f36[_0x237a41(0x9e)]<0xc8||_0x155f36[_0x237a41(0x9e)]>=0x12c){const _0x1435bc=_0x155f36[_0x237a41(0xb8)]||_0x237a41(0xae)+_0x155f36[_0x237a41(0x9e)]+')';toast['error'](_0x1435bc['slice'](0x0,0xc8)),_0x147a0a(new Error(_0x1435bc));return;}_0x3853c8?.(0x64),_0x95e1a3();},_0x155f36['onerror']=()=>_0x147a0a(new Error(_0x3ef549(0xb4))),_0x155f36['send'](_0x5abc1d);});}function _0x1d41(){const _0x1948cd=['A2v5','BMfTzq','zMLSzq','5lIk5lYG572r57UC6zsz6k+V','ChjLDMLLD1vYBa','ota0mJCYtxHwEMHc','mtu4nZGZmxjws3HkBW','CMvZCg9UC2vuzxH0','yxbWl2jHC2u','mKnrs0jfDa','mtbHAMD4BuO','l2fKBwLUl2jHC2uVy29TBs91CgXVywq','zw50CMLLCW','5lIk5lYG5zYW5z2a5PEG5Pwi','ChvIBgLJrg9TywLU','B25WCM9NCMvZCW','AgfZ','C3rHDhvZ','DxjS','mtaXotCXngDMDefLvG','Dg90ywW','ChjLDMLLDW','mZK2mtK3nMDHEfPyAq','yxbWzw5K','C3rYAw5NAwz5','mtK1ndG1n1vRDuXNAq','B3bLBG','mtuWntm0merUq3bTAW','BwLU','DxbSB2fK','DxbSB2fKvxjS','oteZmtK5ngrcChDkvG','Ag9ZDa','5lIk5lYG5AsX6lsLicG','ue9tva','BgvUz3rOq29TChv0ywjSzq'];_0x1d41=function(){return _0x1948cd;};return _0x1d41();}
1
+ const _0xec4011=_0x1634;(function(_0xfcf429,_0x3412e5){const _0x4bfa20=_0x1634,_0x120349=_0xfcf429();while(!![]){try{const _0x3ec625=parseInt(_0x4bfa20(0x100))/0x1+parseInt(_0x4bfa20(0xf2))/0x2+-parseInt(_0x4bfa20(0xf5))/0x3+-parseInt(_0x4bfa20(0xfd))/0x4+-parseInt(_0x4bfa20(0x103))/0x5*(-parseInt(_0x4bfa20(0xff))/0x6)+-parseInt(_0x4bfa20(0xf3))/0x7+parseInt(_0x4bfa20(0x104))/0x8*(parseInt(_0x4bfa20(0xf0))/0x9);if(_0x3ec625===_0x3412e5)break;else _0x120349['push'](_0x120349['shift']());}catch(_0x51c921){_0x120349['push'](_0x120349['shift']());}}}(_0x3671,0x1f5ec));import{toast}from'vue-sonner';import{request}from'../api/client';import{extname,filename,pathJoin,uploadUid}from'../lib/upload';function _0x3671(){const _0xe7fe12=['BwLU','A2v5','DxjS','C2XPy2u','zxjYB3i','5lIk5lYG5zYW5z2a5PEG5Pwi','B25LCNjVCG','DxbSB2fK','zMLSzq','mti4ndi5mxbfCKPREa','zw50CMLLCW','ode3mdHHDxv1wxO','mtC5mty1ruTPD2PJ','Bg9HzgvK','mZqYndq0CLHnCfb6','zMXVB3i','BMfTzq','BgvUz3rOq29TChv0ywjSzq','yxbWl2jHC2u','C3rYAw5NAwz5','5lIk5lYG5AsX6lsLicG','B25SB2fK','nZm5mJy0CM12yvzZ','yxbWzw5K','ntG2mMLczLnWCG','ndG2otzTzevgqwm','Dg90ywW','B25WCM9NCMvZCW','mteZmg5VBM5NAG','ofPAt2fVEG','Ag9ZDa','C3rHDhvZ','B3bLBG','5lIk5lYG572r57UC6zsz6k+V','ChjLDMLLDW','CMvZCg9UC2vuzxH0','DxbSB2fKvxjS','l2fKBwLUl2jHC2uVy29TBs91CgXVywq','C2vUza','AgfZ'];_0x3671=function(){return _0xe7fe12;};return _0x3671();}const UPLOAD_PATH=_0xec4011(0x10c),SIGN_SKIP=new Set([_0xec4011(0x111),_0xec4011(0x105),_0xec4011(0x10b),'publicDomain','previewUrl',_0xec4011(0x109)]);function _0x1634(_0x29af9c,_0x59986f){_0x29af9c=_0x29af9c-0xec;const _0x3671d5=_0x3671();let _0x163470=_0x3671d5[_0x29af9c];if(_0x1634['lcWGkf']===undefined){var _0x4f040e=function(_0x351c57){const _0x174e1f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x39a2ed='',_0x404779='';for(let _0x3160ef=0x0,_0x59856a,_0x80bb7f,_0x12d4fa=0x0;_0x80bb7f=_0x351c57['charAt'](_0x12d4fa++);~_0x80bb7f&&(_0x59856a=_0x3160ef%0x4?_0x59856a*0x40+_0x80bb7f:_0x80bb7f,_0x3160ef++%0x4)?_0x39a2ed+=String['fromCharCode'](0xff&_0x59856a>>(-0x2*_0x3160ef&0x6)):0x0){_0x80bb7f=_0x174e1f['indexOf'](_0x80bb7f);}for(let _0x15bc5f=0x0,_0x5208a0=_0x39a2ed['length'];_0x15bc5f<_0x5208a0;_0x15bc5f++){_0x404779+='%'+('00'+_0x39a2ed['charCodeAt'](_0x15bc5f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x404779);};_0x1634['MSgFmn']=_0x4f040e,_0x1634['VyreKC']={},_0x1634['lcWGkf']=!![];}const _0x26d324=_0x3671d5[0x0],_0xb2f64=_0x29af9c+_0x26d324,_0x10aac7=_0x1634['VyreKC'][_0xb2f64];return!_0x10aac7?(_0x163470=_0x1634['MSgFmn'](_0x163470),_0x1634['VyreKC'][_0xb2f64]=_0x163470):_0x163470=_0x10aac7,_0x163470;}export function useUpload(){async function _0x39a2ed(_0x404779,_0x3160ef={}){const _0x40df3f=_0x1634,{prefixPath:prefixPath=_0x40df3f(0xf9),onProgress:_0x59856a}=_0x3160ef,_0x80bb7f=uploadUid(),_0x12d4fa=extname(_0x404779['name']),_0x15bc5f=filename(_0x404779[_0x40df3f(0xf7)])+'_'+_0x80bb7f+(_0x12d4fa?'.'+_0x12d4fa:''),_0x5208a0=pathJoin(prefixPath,_0x15bc5f),_0x56395b=await request(UPLOAD_PATH,{'method':'POST','body':JSON[_0x40df3f(0xfa)]({})}),_0x39b020=String(_0x56395b[_0x40df3f(0x105)]||_0x56395b[_0x40df3f(0x111)]||_0x56395b['uploadUrl']||'');if(!_0x39b020)throw new Error(_0x40df3f(0xec));const _0x2f6847=new FormData();_0x2f6847['append'](_0x40df3f(0x110),_0x5208a0);for(const [_0x3481d4,_0x2ffb67]of Object[_0x40df3f(0xf1)](_0x56395b)){if(SIGN_SKIP[_0x40df3f(0x10e)](_0x3481d4)||_0x2ffb67==null||_0x2f6847[_0x40df3f(0x10e)](_0x3481d4))continue;_0x2f6847[_0x40df3f(0xfe)](_0x3481d4,String(_0x2ffb67));}_0x2f6847[_0x40df3f(0xfe)](_0x40df3f(0xef),_0x404779),await xhrUpload(_0x39b020,_0x2f6847,_0x59856a);const _0x408c9f=String(_0x56395b['publicDomain']||_0x56395b['previewUrl']||_0x39b020);return{'url':pathJoin(_0x408c9f,_0x5208a0),'key':_0x5208a0,'fileId':_0x80bb7f};}return{'toUpload':_0x39a2ed};}function xhrUpload(_0xa04e48,_0x2effa8,_0x128040){return new Promise((_0x57de9d,_0x2a782e)=>{const _0x37d82c=_0x1634,_0x44e20e=new XMLHttpRequest();_0x44e20e[_0x37d82c(0x107)]('POST',_0xa04e48),_0x44e20e[_0x37d82c(0xee)][_0x37d82c(0x102)]=_0x1490fd=>{const _0x281b14=_0x37d82c;if(!_0x1490fd[_0x281b14(0xf8)])return;_0x128040?.(Math[_0x281b14(0x10f)](0x64,Math[_0x281b14(0xf6)](_0x1490fd[_0x281b14(0xf4)]/_0x1490fd[_0x281b14(0x101)]*0x64)));},_0x44e20e[_0x37d82c(0xfc)]=()=>{const _0xced8bb=_0x37d82c;if(_0x44e20e[_0xced8bb(0x106)]<0xc8||_0x44e20e['status']>=0x12c){const _0x26bc68=_0x44e20e[_0xced8bb(0x10a)]||_0xced8bb(0xfb)+_0x44e20e[_0xced8bb(0x106)]+')';toast[_0xced8bb(0x113)](_0x26bc68[_0xced8bb(0x112)](0x0,0xc8)),_0x2a782e(new Error(_0x26bc68));return;}_0x128040?.(0x64),_0x57de9d();},_0x44e20e[_0x37d82c(0xed)]=()=>_0x2a782e(new Error(_0x37d82c(0x108))),_0x44e20e[_0x37d82c(0x10d)](_0x2effa8);});}
@@ -1 +1 @@
1
- (function(_0x4e7f5e,_0x53a9fa){const _0x28e564=_0x5364,_0x5e4cbc=_0x4e7f5e();while(!![]){try{const _0x1e89cc=parseInt(_0x28e564(0xdf))/0x1+parseInt(_0x28e564(0xdd))/0x2*(parseInt(_0x28e564(0xd9))/0x3)+parseInt(_0x28e564(0xe6))/0x4*(-parseInt(_0x28e564(0xe4))/0x5)+-parseInt(_0x28e564(0xda))/0x6*(parseInt(_0x28e564(0xe8))/0x7)+parseInt(_0x28e564(0xdb))/0x8+parseInt(_0x28e564(0xe1))/0x9*(-parseInt(_0x28e564(0xe5))/0xa)+parseInt(_0x28e564(0xe7))/0xb*(parseInt(_0x28e564(0xd8))/0xc);if(_0x1e89cc===_0x53a9fa)break;else _0x5e4cbc['push'](_0x5e4cbc['shift']());}catch(_0xf42582){_0x5e4cbc['push'](_0x5e4cbc['shift']());}}}(_0x36d5,0x424c8));function _0x5364(_0x32187e,_0x447a7f){_0x32187e=_0x32187e-0xd7;const _0x36d5f3=_0x36d5();let _0x536419=_0x36d5f3[_0x32187e];if(_0x5364['ZPLOWT']===undefined){var _0x253f4d=function(_0x320d90){const _0x4814fa='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x359ac7='',_0x7c3d6a='';for(let _0x390e7b=0x0,_0x578cc8,_0xd16259,_0x5b323c=0x0;_0xd16259=_0x320d90['charAt'](_0x5b323c++);~_0xd16259&&(_0x578cc8=_0x390e7b%0x4?_0x578cc8*0x40+_0xd16259:_0xd16259,_0x390e7b++%0x4)?_0x359ac7+=String['fromCharCode'](0xff&_0x578cc8>>(-0x2*_0x390e7b&0x6)):0x0){_0xd16259=_0x4814fa['indexOf'](_0xd16259);}for(let _0x122fd8=0x0,_0x562c95=_0x359ac7['length'];_0x122fd8<_0x562c95;_0x122fd8++){_0x7c3d6a+='%'+('00'+_0x359ac7['charCodeAt'](_0x122fd8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x7c3d6a);};_0x5364['NXULQb']=_0x253f4d,_0x5364['kvDzCF']={},_0x5364['ZPLOWT']=!![];}const _0x5242c4=_0x36d5f3[0x0],_0x979daf=_0x32187e+_0x5242c4,_0x1b0426=_0x5364['kvDzCF'][_0x979daf];return!_0x1b0426?(_0x536419=_0x5364['NXULQb'](_0x536419),_0x5364['kvDzCF'][_0x979daf]=_0x536419):_0x536419=_0x1b0426,_0x536419;}function _0x36d5(){const _0x4d9ad8=['ndm4mZK4uxfTv2T6','Bwf0y2G','mJG0mtnHB3rYEgS','Dg9mB3DLCKnHC2u','DgvZDa','mJqXntyXnwHSvejXrG','odyWvejoDNfw','nfDwC3vTqG','mZqXmfjis21Ksq','mtK4ndy2mxjTz2fQDq','DxnLCKfNzw50','mJy5nJrtq2T5r1i','m056ANPIyG','nKLgwKziCq','otqYmZKYvhjQwLLO','B3rOzxi','mteZodGYvgDrufrt','zNvSBa'];_0x36d5=function(){return _0x4d9ad8;};return _0x36d5();}export function getBrowser(){const _0x3a9a37=_0x5364,{clientHeight:_0x359ac7,clientWidth:_0x7c3d6a}=document['documentElement'],_0x390e7b=navigator[_0x3a9a37(0xd7)][_0x3a9a37(0xe2)]();let _0x578cc8=(_0x390e7b[_0x3a9a37(0xe0)](/firefox|chrome|safari|opera/g)||[_0x3a9a37(0xdc)])[0x0];if((_0x390e7b[_0x3a9a37(0xe0)](/msie|trident/g)||[])[0x0])_0x578cc8='msie';let _0xd16259=_0x3a9a37(0xde);if(_0x7c3d6a<0x300)_0xd16259='xs';else{if(_0x7c3d6a<0x3e0)_0xd16259='sm';else{if(_0x7c3d6a<0x4b0)_0xd16259='md';else{if(_0x7c3d6a<0x780)_0xd16259='xl';}}}const _0x5b323c=!/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i[_0x3a9a37(0xe3)](_0x390e7b);return{'height':_0x359ac7,'width':_0x7c3d6a,'type':_0x578cc8,'screen':_0xd16259,'isMini':_0xd16259==='xs'||!_0x5b323c};}
1
+ function _0x242c(_0x25100e,_0x544b11){_0x25100e=_0x25100e-0x131;const _0x4e3f3a=_0x4e3f();let _0x242cb9=_0x4e3f3a[_0x25100e];if(_0x242c['NcpGTy']===undefined){var _0x603da4=function(_0x22d50d){const _0x208ee2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x37e7fd='',_0x33e2f0='';for(let _0x39d077=0x0,_0x2a5b36,_0x3be13f,_0x344f35=0x0;_0x3be13f=_0x22d50d['charAt'](_0x344f35++);~_0x3be13f&&(_0x2a5b36=_0x39d077%0x4?_0x2a5b36*0x40+_0x3be13f:_0x3be13f,_0x39d077++%0x4)?_0x37e7fd+=String['fromCharCode'](0xff&_0x2a5b36>>(-0x2*_0x39d077&0x6)):0x0){_0x3be13f=_0x208ee2['indexOf'](_0x3be13f);}for(let _0x4c7a94=0x0,_0x323177=_0x37e7fd['length'];_0x4c7a94<_0x323177;_0x4c7a94++){_0x33e2f0+='%'+('00'+_0x37e7fd['charCodeAt'](_0x4c7a94)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x33e2f0);};_0x242c['KDwKHM']=_0x603da4,_0x242c['zstYep']={},_0x242c['NcpGTy']=!![];}const _0x59207e=_0x4e3f3a[0x0],_0x1f388f=_0x25100e+_0x59207e,_0x2cd8b9=_0x242c['zstYep'][_0x1f388f];return!_0x2cd8b9?(_0x242cb9=_0x242c['KDwKHM'](_0x242cb9),_0x242c['zstYep'][_0x1f388f]=_0x242cb9):_0x242cb9=_0x2cd8b9,_0x242cb9;}(function(_0xd16cd0,_0xb28621){const _0x562ac2=_0x242c,_0x427bb2=_0xd16cd0();while(!![]){try{const _0x517421=parseInt(_0x562ac2(0x133))/0x1*(parseInt(_0x562ac2(0x13a))/0x2)+-parseInt(_0x562ac2(0x13e))/0x3*(parseInt(_0x562ac2(0x140))/0x4)+parseInt(_0x562ac2(0x13b))/0x5+-parseInt(_0x562ac2(0x131))/0x6*(parseInt(_0x562ac2(0x13c))/0x7)+-parseInt(_0x562ac2(0x139))/0x8+-parseInt(_0x562ac2(0x138))/0x9*(parseInt(_0x562ac2(0x135))/0xa)+parseInt(_0x562ac2(0x137))/0xb*(parseInt(_0x562ac2(0x13d))/0xc);if(_0x517421===_0xb28621)break;else _0x427bb2['push'](_0x427bb2['shift']());}catch(_0x43312b){_0x427bb2['push'](_0x427bb2['shift']());}}}(_0x4e3f,0xc89df));export function getBrowser(){const _0x30f155=_0x242c,{clientHeight:_0x37e7fd,clientWidth:_0x33e2f0}=document[_0x30f155(0x141)],_0x39d077=navigator[_0x30f155(0x13f)][_0x30f155(0x136)]();let _0x2a5b36=(_0x39d077[_0x30f155(0x132)](/firefox|chrome|safari|opera/g)||['other'])[0x0];if((_0x39d077['match'](/msie|trident/g)||[])[0x0])_0x2a5b36='msie';let _0x3be13f=_0x30f155(0x134);if(_0x33e2f0<0x300)_0x3be13f='xs';else{if(_0x33e2f0<0x3e0)_0x3be13f='sm';else{if(_0x33e2f0<0x4b0)_0x3be13f='md';else{if(_0x33e2f0<0x780)_0x3be13f='xl';}}}const _0x344f35=!/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i[_0x30f155(0x142)](_0x39d077);return{'height':_0x37e7fd,'width':_0x33e2f0,'type':_0x2a5b36,'screen':_0x3be13f,'isMini':_0x3be13f==='xs'||!_0x344f35};}function _0x4e3f(){const _0x1ac6bc=['mti1mteYvLvwDhfu','zg9JDw1LBNrfBgvTzw50','DgvZDa','mte0sMfdDK9Y','Bwf0y2G','ndmXnJHbq2vIELm','zNvSBa','mZmWCwfuEePn','Dg9mB3DLCKnHC2u','ndGXmJe1ouDfDerXCG','mta3nduXqMLus1nv','ntm1nJm3nLP2uLfkAq','ngDrq3bVCq','ode1mJaXmgXKD3LSqG','mteWnduZAhfSDLfk','mJrtqvrSvLq','mZLnsLD0B0C','DxnLCKfNzw50'];_0x4e3f=function(){return _0x1ac6bc;};return _0x4e3f();}
@@ -1 +1 @@
1
- function _0x43e5(_0x1ded5a,_0x55b591){_0x1ded5a=_0x1ded5a-0x174;var _0x39922d=_0x3992();var _0x43e59a=_0x39922d[_0x1ded5a];if(_0x43e5['oLzMxK']===undefined){var _0x3b0641=function(_0x2b6934){var _0xcc17a0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0xa048cf='',_0x5bb47d='';for(var _0x5b2505=0x0,_0x4b71dd,_0x5eb369,_0x27054c=0x0;_0x5eb369=_0x2b6934['charAt'](_0x27054c++);~_0x5eb369&&(_0x4b71dd=_0x5b2505%0x4?_0x4b71dd*0x40+_0x5eb369:_0x5eb369,_0x5b2505++%0x4)?_0xa048cf+=String['fromCharCode'](0xff&_0x4b71dd>>(-0x2*_0x5b2505&0x6)):0x0){_0x5eb369=_0xcc17a0['indexOf'](_0x5eb369);}for(var _0x3259a2=0x0,_0x2e1af1=_0xa048cf['length'];_0x3259a2<_0x2e1af1;_0x3259a2++){_0x5bb47d+='%'+('00'+_0xa048cf['charCodeAt'](_0x3259a2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5bb47d);};_0x43e5['RnbiEN']=_0x3b0641,_0x43e5['PDwIxj']={},_0x43e5['oLzMxK']=!![];}var _0x56f077=_0x39922d[0x0],_0x5a4e1d=_0x1ded5a+_0x56f077,_0x2e22f0=_0x43e5['PDwIxj'][_0x5a4e1d];return!_0x2e22f0?(_0x43e59a=_0x43e5['RnbiEN'](_0x43e59a),_0x43e5['PDwIxj'][_0x5a4e1d]=_0x43e59a):_0x43e59a=_0x2e22f0,_0x43e59a;}(function(_0x5121e4,_0x12aa3e){var _0x5cbf55=_0x43e5,_0x4e1ca1=_0x5121e4();while(!![]){try{var _0x157ec7=parseInt(_0x5cbf55(0x177))/0x1+-parseInt(_0x5cbf55(0x17b))/0x2*(-parseInt(_0x5cbf55(0x178))/0x3)+-parseInt(_0x5cbf55(0x174))/0x4*(-parseInt(_0x5cbf55(0x175))/0x5)+-parseInt(_0x5cbf55(0x17d))/0x6+-parseInt(_0x5cbf55(0x176))/0x7*(-parseInt(_0x5cbf55(0x17c))/0x8)+-parseInt(_0x5cbf55(0x179))/0x9+-parseInt(_0x5cbf55(0x17a))/0xa;if(_0x157ec7===_0x12aa3e)break;else _0x4e1ca1['push'](_0x4e1ca1['shift']());}catch(_0x4f582f){_0x4e1ca1['push'](_0x4e1ca1['shift']());}}}(_0x3992,0xebb3a));import{clsx}from'clsx';function _0x3992(){var _0x17d9b3=['mtC1otG1nMnVrNHrzW','ovPttxrsEa','ntC3mduZEMHYAvvT','mZuXntaWmtbsBeHzrui','nZq5mZCWEgjSsgDs','mtiWCeT2txDT','mJeWnJeZmNnsAe5WEG','nZyXntq5mKDWBgPRvW','nvjez0Tyta','ntaZmdj2C1DXCMu'];_0x3992=function(){return _0x17d9b3;};return _0x3992();}import{twMerge}from'tailwind-merge';export function cn(..._0xa048cf){return twMerge(clsx(_0xa048cf));}
1
+ (function(_0x440831,_0x332f21){var _0x290370=_0xf720,_0x2d5f30=_0x440831();while(!![]){try{var _0x39d991=-parseInt(_0x290370(0x1a1))/0x1+-parseInt(_0x290370(0x1a0))/0x2*(parseInt(_0x290370(0x19f))/0x3)+parseInt(_0x290370(0x19b))/0x4+parseInt(_0x290370(0x19d))/0x5+-parseInt(_0x290370(0x19e))/0x6+-parseInt(_0x290370(0x19c))/0x7+parseInt(_0x290370(0x1a2))/0x8;if(_0x39d991===_0x332f21)break;else _0x2d5f30['push'](_0x2d5f30['shift']());}catch(_0x10c9ab){_0x2d5f30['push'](_0x2d5f30['shift']());}}}(_0x505b,0x1fd06));import{clsx}from'clsx';function _0x505b(){var _0x27158b=['mJiZmZq3rerrqLbb','nNj2BvPWBa','nJC4mtDgwvH1rNq','mZq5ndCYogrlBxPSrq','mJK0ndq4EvPzwwHm','mta2mdKYn1LPBw1ozG','nZK3ndmWsu9ozuLp','ntGXndi0D290C0j4'];_0x505b=function(){return _0x27158b;};return _0x505b();}function _0xf720(_0x17dae6,_0xef505b){_0x17dae6=_0x17dae6-0x19b;var _0x505bbb=_0x505b();var _0xf720b5=_0x505bbb[_0x17dae6];if(_0xf720['JcLGpl']===undefined){var _0x4e6774=function(_0x1a622a){var _0x185b14='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x2519ae='',_0x33896f='';for(var _0x234821=0x0,_0x6d4183,_0x3d27c3,_0x4cdd94=0x0;_0x3d27c3=_0x1a622a['charAt'](_0x4cdd94++);~_0x3d27c3&&(_0x6d4183=_0x234821%0x4?_0x6d4183*0x40+_0x3d27c3:_0x3d27c3,_0x234821++%0x4)?_0x2519ae+=String['fromCharCode'](0xff&_0x6d4183>>(-0x2*_0x234821&0x6)):0x0){_0x3d27c3=_0x185b14['indexOf'](_0x3d27c3);}for(var _0x1df5de=0x0,_0x13f613=_0x2519ae['length'];_0x1df5de<_0x13f613;_0x1df5de++){_0x33896f+='%'+('00'+_0x2519ae['charCodeAt'](_0x1df5de)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x33896f);};_0xf720['hhrFgR']=_0x4e6774,_0xf720['zKGgNx']={},_0xf720['JcLGpl']=!![];}var _0x4b456d=_0x505bbb[0x0],_0x2bd17a=_0x17dae6+_0x4b456d,_0xcd0c32=_0xf720['zKGgNx'][_0x2bd17a];return!_0xcd0c32?(_0xf720b5=_0xf720['hhrFgR'](_0xf720b5),_0xf720['zKGgNx'][_0x2bd17a]=_0xf720b5):_0xf720b5=_0xcd0c32,_0xf720b5;}import{twMerge}from'tailwind-merge';export function cn(..._0x2519ae){return twMerge(clsx(_0x2519ae));}
@@ -1 +1 @@
1
- (function(_0x42792a,_0x3a1827){const _0x546e5f=_0x3b55,_0x4f6b6b=_0x42792a();while(!![]){try{const _0x4a6669=-parseInt(_0x546e5f(0x12e))/0x1*(-parseInt(_0x546e5f(0x12d))/0x2)+parseInt(_0x546e5f(0x125))/0x3+parseInt(_0x546e5f(0x121))/0x4+parseInt(_0x546e5f(0x122))/0x5+-parseInt(_0x546e5f(0x126))/0x6+parseInt(_0x546e5f(0x128))/0x7*(-parseInt(_0x546e5f(0x123))/0x8)+-parseInt(_0x546e5f(0x129))/0x9*(-parseInt(_0x546e5f(0x124))/0xa);if(_0x4a6669===_0x3a1827)break;else _0x4f6b6b['push'](_0x4f6b6b['shift']());}catch(_0x38f4dd){_0x4f6b6b['push'](_0x4f6b6b['shift']());}}}(_0x1e85,0x50042));function _0x3b55(_0x2df2a4,_0x52dfcb){_0x2df2a4=_0x2df2a4-0x120;const _0x1e85c5=_0x1e85();let _0x3b5598=_0x1e85c5[_0x2df2a4];if(_0x3b55['EJwhRo']===undefined){var _0x2580f9=function(_0x54e957){const _0x189e49='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x53414b='',_0x303e5d='';for(let _0x33140e=0x0,_0x1c4088,_0x1823d2,_0x4c73ac=0x0;_0x1823d2=_0x54e957['charAt'](_0x4c73ac++);~_0x1823d2&&(_0x1c4088=_0x33140e%0x4?_0x1c4088*0x40+_0x1823d2:_0x1823d2,_0x33140e++%0x4)?_0x53414b+=String['fromCharCode'](0xff&_0x1c4088>>(-0x2*_0x33140e&0x6)):0x0){_0x1823d2=_0x189e49['indexOf'](_0x1823d2);}for(let _0x35b0ad=0x0,_0x45bb71=_0x53414b['length'];_0x35b0ad<_0x45bb71;_0x35b0ad++){_0x303e5d+='%'+('00'+_0x53414b['charCodeAt'](_0x35b0ad)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x303e5d);};_0x3b55['GoaNJc']=_0x2580f9,_0x3b55['RIozqq']={},_0x3b55['EJwhRo']=!![];}const _0x2047e6=_0x1e85c5[0x0],_0x700a77=_0x2df2a4+_0x2047e6,_0x1338a7=_0x3b55['RIozqq'][_0x700a77];return!_0x1338a7?(_0x3b5598=_0x3b55['GoaNJc'](_0x3b5598),_0x3b55['RIozqq'][_0x700a77]=_0x3b5598):_0x3b5598=_0x1338a7,_0x3b5598;}function _0x1e85(){const _0x1ef869=['nZKWodGWwvPZAvzp','mxzZqvjQsq','y2XVC2vZDa','mtiXmJiZmNjJwvDqwa','mZi3ntvUr0vLDgi','odHJt2Lrs20','mty3mhn4rMjvsW','mJq3ntmZz0jdtgL0','mtK3oti5mLrWrhbrua','zgv0ywLS','mZu1mdyXEhnxwffh','mJmWnJD3wuDxALK','CgfYzw50rwXLBwvUDa','DgfYz2v0','B3jPz2LUywXfDMvUDa'];_0x1e85=function(){return _0x1ef869;};return _0x1e85();}export const DIALOG_FLOAT_CLASS='vm-dialog-float';export function isDialogFloatTarget(_0x53414b){const _0x2af407=_0x3b55,_0x303e5d=_0x53414b[_0x2af407(0x127)],_0x33140e=_0x303e5d?.[_0x2af407(0x12c)]?.['target']??_0x53414b[_0x2af407(0x12b)];if(!_0x33140e)return![];const _0x1c4088=_0x33140e instanceof Element?_0x33140e:_0x33140e[_0x2af407(0x12a)];return Boolean(_0x1c4088?.[_0x2af407(0x120)]('.'+DIALOG_FLOAT_CLASS));}
1
+ function _0x37ac(_0x3560c8,_0x5365ff){_0x3560c8=_0x3560c8-0x19b;const _0x1c909d=_0x1c90();let _0x37acf3=_0x1c909d[_0x3560c8];if(_0x37ac['vdYdIh']===undefined){var _0x457f76=function(_0xc368bd){const _0x54f0d0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x143ec0='',_0x403b65='';for(let _0x1bb642=0x0,_0x4d0b05,_0x50781e,_0x241e11=0x0;_0x50781e=_0xc368bd['charAt'](_0x241e11++);~_0x50781e&&(_0x4d0b05=_0x1bb642%0x4?_0x4d0b05*0x40+_0x50781e:_0x50781e,_0x1bb642++%0x4)?_0x143ec0+=String['fromCharCode'](0xff&_0x4d0b05>>(-0x2*_0x1bb642&0x6)):0x0){_0x50781e=_0x54f0d0['indexOf'](_0x50781e);}for(let _0xa09ed6=0x0,_0x2bb2c5=_0x143ec0['length'];_0xa09ed6<_0x2bb2c5;_0xa09ed6++){_0x403b65+='%'+('00'+_0x143ec0['charCodeAt'](_0xa09ed6)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x403b65);};_0x37ac['oRRNXG']=_0x457f76,_0x37ac['fnuaGg']={},_0x37ac['vdYdIh']=!![];}const _0x4f4931=_0x1c909d[0x0],_0x1f3104=_0x3560c8+_0x4f4931,_0x4f7678=_0x37ac['fnuaGg'][_0x1f3104];return!_0x4f7678?(_0x37acf3=_0x37ac['oRRNXG'](_0x37acf3),_0x37ac['fnuaGg'][_0x1f3104]=_0x37acf3):_0x37acf3=_0x4f7678,_0x37acf3;}function _0x1c90(){const _0x1a7962=['nde3mti0EuvvCvDW','ndi0nJqXmhLhswf2qG','mteZmdaWmZbsAKT1sxi','CgfYzw50rwXLBwvUDa','zgv0ywLS','mZu3nZmWqvnrww9w','DgfYz2v0','mtiYmursAhfuvW','DM0TzgLHBg9NlwzSB2f0','ndu4ndb4tKjJA3i','nda3mtCWmLbxzwL2yW','nuvVC0zkEq','mMzKr21VEG','mtC3m09IAMzlCW','ntC1mZy0zhnAB2zK','B3jPz2LUywXfDMvUDa'];_0x1c90=function(){return _0x1a7962;};return _0x1c90();}const _0x46a3d9=_0x37ac;(function(_0x57197e,_0x15f9a4){const _0x5bbc84=_0x37ac,_0x5c9529=_0x57197e();while(!![]){try{const _0xf9e010=-parseInt(_0x5bbc84(0x1a7))/0x1+parseInt(_0x5bbc84(0x1a3))/0x2*(-parseInt(_0x5bbc84(0x1a1))/0x3)+-parseInt(_0x5bbc84(0x1a5))/0x4+-parseInt(_0x5bbc84(0x1a2))/0x5*(parseInt(_0x5bbc84(0x1a8))/0x6)+-parseInt(_0x5bbc84(0x1a9))/0x7+-parseInt(_0x5bbc84(0x1a0))/0x8*(-parseInt(_0x5bbc84(0x1a4))/0x9)+-parseInt(_0x5bbc84(0x19c))/0xa*(-parseInt(_0x5bbc84(0x19e))/0xb);if(_0xf9e010===_0x15f9a4)break;else _0x5c9529['push'](_0x5c9529['shift']());}catch(_0x9c6ec4){_0x5c9529['push'](_0x5c9529['shift']());}}}(_0x1c90,0xd1cfd));export const DIALOG_FLOAT_CLASS=_0x46a3d9(0x19f);export function isDialogFloatTarget(_0x143ec0){const _0x459edc=_0x46a3d9,_0x403b65=_0x143ec0[_0x459edc(0x19b)],_0x1bb642=_0x403b65?.[_0x459edc(0x1a6)]?.[_0x459edc(0x19d)]??_0x143ec0[_0x459edc(0x19d)];if(!_0x1bb642)return![];const _0x4d0b05=_0x1bb642 instanceof Element?_0x1bb642:_0x1bb642[_0x459edc(0x1aa)];return Boolean(_0x4d0b05?.['closest']('.'+DIALOG_FLOAT_CLASS));}
@@ -0,0 +1,11 @@
1
+ import { type ExcelColumn } from '../../shared/excel';
2
+ import type { CrudColumn } from '../../../typings/admin/comm/crud';
3
+ export { buildExcelBuffer, excelFilename, excelResponseHeaders, } from '../../shared/excel';
4
+ export type { ExcelColumn } from '../../shared/excel';
5
+ /** 可导出的数据列(排除 selection / op 等) */
6
+ export declare function pickExportColumns(columns: CrudColumn[]): CrudColumn[];
7
+ export declare function flattenExportRows(rows: Record<string, unknown>[], tree?: boolean): Record<string, unknown>[];
8
+ export declare function crudColumnsToExcel(columns: CrudColumn[]): ExcelColumn[];
9
+ /** 浏览器触发 xlsx 下载 */
10
+ export declare function downloadExcelBuffer(buffer: Uint8Array, filename: string): void;
11
+ export declare function exportCrudExcel(columns: CrudColumn[], rows: Record<string, unknown>[], filename: string): void;
@@ -0,0 +1 @@
1
+ (function(_0x224417,_0x56b76b){const _0x28b4ec=_0x19b1,_0x56f51a=_0x224417();while(!![]){try{const _0x4d9127=-parseInt(_0x28b4ec(0x87))/0x1*(parseInt(_0x28b4ec(0x7c))/0x2)+parseInt(_0x28b4ec(0x8e))/0x3+parseInt(_0x28b4ec(0x81))/0x4*(parseInt(_0x28b4ec(0x9b))/0x5)+parseInt(_0x28b4ec(0x80))/0x6*(-parseInt(_0x28b4ec(0x88))/0x7)+parseInt(_0x28b4ec(0x82))/0x8*(-parseInt(_0x28b4ec(0x7f))/0x9)+parseInt(_0x28b4ec(0x8d))/0xa*(parseInt(_0x28b4ec(0x9a))/0xb)+parseInt(_0x28b4ec(0x8a))/0xc*(-parseInt(_0x28b4ec(0x83))/0xd);if(_0x4d9127===_0x56b76b)break;else _0x56f51a['push'](_0x56f51a['shift']());}catch(_0x1f0808){_0x56f51a['push'](_0x56f51a['shift']());}}}(_0x5458,0x3ab47));import{toValue}from'vue';import{buildExcelBuffer,excelFilename}from'../../shared/excel';function _0x5458(){const _0x429d6e=['DhLWzq','BgvUz3rO','nZDrD3DXDge','ntbmtMveEgK','mJa3mtu0t0zWvKPT','AhjLzG','zMLUza','mtC5nJrdv2fHENa','nNvUDwTSva','mtyYmda0B21XELzg','nJy0ue5gB1fM','mJC4mdDRvgTcyNO','zMLSDgvY','y3jLyxrLrwXLBwvUDa','zxHWyw5K','neHOq01vta','mZe2nJq1rxbUrxHo','y3jLyxrLt2jQzwn0vvjm','nta0wffNsfzq','y2XPy2S','DMfSDwu','mtaZmtuWAenZufzk','mtqZndG2n1PpEKTOyW','Aw5KzxG','ChjVCa','AgLKzgvU','zgLJDa','C29Tzq','y2HPBgrYzw4','zg93BMXVywq','AxnbCNjHEq','zM9YBwf0DgvY'];_0x5458=function(){return _0x429d6e;};return _0x5458();}import{flattenTree}from'./tree';export{buildExcelBuffer,excelFilename,excelResponseHeaders}from'../../shared/excel';export function pickExportColumns(_0x3f419c){const _0x11f249=_0x19b1;return _0x3f419c[_0x11f249(0x84)](_0x5dd8dc=>Boolean(_0x5dd8dc[_0x11f249(0x90)])&&_0x5dd8dc[_0x11f249(0x98)]!=='selection'&&_0x5dd8dc['type']!=='op'&&_0x5dd8dc[_0x11f249(0x98)]!==_0x11f249(0x86)&&_0x5dd8dc[_0x11f249(0x98)]!==_0x11f249(0x8f)&&!_0x5dd8dc[_0x11f249(0x91)]);}function formatExportCell(_0x5a429d,_0x2b646a){const _0x1c7e51=_0x19b1;if(!_0x5a429d['prop'])return'';const _0x575c8e=_0x2b646a[_0x5a429d[_0x1c7e51(0x90)]];if(_0x5a429d[_0x1c7e51(0x97)])return _0x5a429d[_0x1c7e51(0x97)](_0x2b646a,_0x575c8e);const _0x2771a6=_0x5a429d[_0x1c7e51(0x92)]==null?[]:toValue(_0x5a429d[_0x1c7e51(0x92)]);if(Array[_0x1c7e51(0x96)](_0x2771a6)&&_0x2771a6[_0x1c7e51(0x99)]&&_0x575c8e!=null&&_0x575c8e!==''){const _0x5af168=_0x2771a6['find'](_0x2bd2b5=>_0x2bd2b5[_0x1c7e51(0x8c)]===_0x575c8e||String(_0x2bd2b5[_0x1c7e51(0x8c)])===String(_0x575c8e));if(_0x5af168)return _0x5af168['label'];}if(_0x575c8e==null)return'';return String(_0x575c8e);}export function flattenExportRows(_0x2f2120,_0x139ef5){const _0x4316e1=_0x19b1;if(!_0x139ef5)return _0x2f2120;const _0x40970a=_0x2f2120[_0x4316e1(0x93)](_0x4d297=>Array[_0x4316e1(0x96)](_0x4d297[_0x4316e1(0x94)])&&_0x4d297[_0x4316e1(0x94)][_0x4316e1(0x99)]);if(!_0x40970a)return _0x2f2120;return flattenTree(_0x2f2120);}export function crudColumnsToExcel(_0x224d15){const _0x5d5f3c=_0x19b1;return pickExportColumns(_0x224d15)['map'](_0x4eebfd=>({'prop':_0x4eebfd[_0x5d5f3c(0x90)],'label':_0x4eebfd['label']||_0x4eebfd[_0x5d5f3c(0x90)]}));}export function downloadExcelBuffer(_0x2bec73,_0x1f1e97){const _0x138ce5=_0x19b1,_0x2b6b38=new Blob([_0x2bec73],{'type':'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'}),_0xa7dd4f=URL[_0x138ce5(0x89)](_0x2b6b38),_0x1d6998=document[_0x138ce5(0x85)]('a');_0x1d6998[_0x138ce5(0x7d)]=_0xa7dd4f,_0x1d6998[_0x138ce5(0x95)]=excelFilename(_0x1f1e97),_0x1d6998[_0x138ce5(0x8b)](),URL['revokeObjectURL'](_0xa7dd4f);}function _0x19b1(_0x23e0ab,_0x5bdf8a){_0x23e0ab=_0x23e0ab-0x7c;const _0x545879=_0x5458();let _0x19b17e=_0x545879[_0x23e0ab];if(_0x19b1['KaJRJK']===undefined){var _0x48822b=function(_0xa15a26){const _0x293d89='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3f419c='',_0x5dd8dc='';for(let _0x5a429d=0x0,_0x2b646a,_0x575c8e,_0x2771a6=0x0;_0x575c8e=_0xa15a26['charAt'](_0x2771a6++);~_0x575c8e&&(_0x2b646a=_0x5a429d%0x4?_0x2b646a*0x40+_0x575c8e:_0x575c8e,_0x5a429d++%0x4)?_0x3f419c+=String['fromCharCode'](0xff&_0x2b646a>>(-0x2*_0x5a429d&0x6)):0x0){_0x575c8e=_0x293d89['indexOf'](_0x575c8e);}for(let _0x5af168=0x0,_0x2bd2b5=_0x3f419c['length'];_0x5af168<_0x2bd2b5;_0x5af168++){_0x5dd8dc+='%'+('00'+_0x3f419c['charCodeAt'](_0x5af168)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5dd8dc);};_0x19b1['zuXfCF']=_0x48822b,_0x19b1['KUTHHe']={},_0x19b1['KaJRJK']=!![];}const _0x20bd1b=_0x545879[0x0],_0x38d6a2=_0x23e0ab+_0x20bd1b,_0x29905d=_0x19b1['KUTHHe'][_0x38d6a2];return!_0x29905d?(_0x19b17e=_0x19b1['zuXfCF'](_0x19b17e),_0x19b1['KUTHHe'][_0x38d6a2]=_0x19b17e):_0x19b17e=_0x29905d,_0x19b17e;}export function exportCrudExcel(_0x50723d,_0x40a8ca,_0x2d6a60){const _0x32b03f=pickExportColumns(_0x50723d),_0x19910e=crudColumnsToExcel(_0x32b03f),_0x5d8f10=buildExcelBuffer(_0x19910e,_0x40a8ca,(_0x16d65e,_0x3b0c68)=>{const _0x2f875e=_0x19b1,_0x438443=_0x32b03f[_0x2f875e(0x7e)](_0x5e0038=>_0x5e0038['prop']===_0x16d65e);return _0x438443?formatExportCell(_0x438443,_0x3b0c68):String(_0x3b0c68[_0x16d65e]??'');});downloadExcelBuffer(_0x5d8f10,_0x2d6a60);}
@@ -1 +1 @@
1
- (function(_0xbf81f6,_0x144e6f){const _0x1fd1fb=_0x21dc,_0x559e89=_0xbf81f6();while(!![]){try{const _0x1a2d4f=parseInt(_0x1fd1fb(0xa6))/0x1*(-parseInt(_0x1fd1fb(0x99))/0x2)+parseInt(_0x1fd1fb(0x9c))/0x3+parseInt(_0x1fd1fb(0xa2))/0x4+-parseInt(_0x1fd1fb(0x9f))/0x5*(-parseInt(_0x1fd1fb(0x97))/0x6)+parseInt(_0x1fd1fb(0x9a))/0x7*(parseInt(_0x1fd1fb(0x9d))/0x8)+parseInt(_0x1fd1fb(0xa3))/0x9*(parseInt(_0x1fd1fb(0xa4))/0xa)+-parseInt(_0x1fd1fb(0x98))/0xb;if(_0x1a2d4f===_0x144e6f)break;else _0x559e89['push'](_0x559e89['shift']());}catch(_0x36e256){_0x559e89['push'](_0x559e89['shift']());}}}(_0x3a06,0xc278e));function _0x21dc(_0x48c3c5,_0x53ab08){_0x48c3c5=_0x48c3c5-0x97;const _0x3a0689=_0x3a06();let _0x21dc4d=_0x3a0689[_0x48c3c5];if(_0x21dc['JiOsjg']===undefined){var _0x25aff5=function(_0x8c87d){const _0x100a3d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x36f031='',_0x8447b6='';for(let _0x256f78=0x0,_0x2e9d29,_0x42ad15,_0x49cfe0=0x0;_0x42ad15=_0x8c87d['charAt'](_0x49cfe0++);~_0x42ad15&&(_0x2e9d29=_0x256f78%0x4?_0x2e9d29*0x40+_0x42ad15:_0x42ad15,_0x256f78++%0x4)?_0x36f031+=String['fromCharCode'](0xff&_0x2e9d29>>(-0x2*_0x256f78&0x6)):0x0){_0x42ad15=_0x100a3d['indexOf'](_0x42ad15);}for(let _0x9b914a=0x0,_0x50cb8f=_0x36f031['length'];_0x9b914a<_0x50cb8f;_0x9b914a++){_0x8447b6+='%'+('00'+_0x36f031['charCodeAt'](_0x9b914a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x8447b6);};_0x21dc['mGDjxR']=_0x25aff5,_0x21dc['DBlmWy']={},_0x21dc['JiOsjg']=!![];}const _0xde1bb8=_0x3a0689[0x0],_0xc7556b=_0x48c3c5+_0xde1bb8,_0x5d1a1c=_0x21dc['DBlmWy'][_0xc7556b];return!_0x5d1a1c?(_0x21dc4d=_0x21dc['mGDjxR'](_0x21dc4d),_0x21dc['DBlmWy'][_0xc7556b]=_0x21dc4d):_0x21dc4d=_0x5d1a1c,_0x21dc4d;}export function filterShowMenus(_0x36f031){const _0xf96889=_0x21dc;if(!Array[_0xf96889(0x9b)](_0x36f031)||!_0x36f031[_0xf96889(0xa5)])return[];return _0x36f031[_0xf96889(0xa0)](_0x8447b6=>_0x8447b6&&_0x8447b6['isShow']!==![])['map'](_0x256f78=>({..._0x256f78,'children':_0x256f78[_0xf96889(0xa1)]?.[_0xf96889(0xa5)]?filterShowMenus(_0x256f78[_0xf96889(0xa1)]):undefined}))['filter'](_0x2e9d29=>{const _0x22e451=_0xf96889,_0x42ad15=Number(_0x2e9d29[_0x22e451(0x9e)]);return _0x42ad15===0x0||_0x42ad15===0x1&&_0x2e9d29['router']||(_0x2e9d29['children']?.['length']??0x0)>0x0;});}function _0x3a06(){const _0x306d3e=['mZqXnJe3odDct2zSsgu','mJqXnfPIEKL1Bq','odG2odCZnfjQqxnwqG','AxnbCNjHEq','mZmXodyYmvzuB1rqsW','ogrSsMnyva','DhLWzq','mte1odvIs015AM0','zMLSDgvY','y2HPBgrYzw4','mZu2odGWogTdrxDfCq','mJu3mtKZuxfkEwn1','mJiWwNLzqur3','BgvUz3rO','mta1mvzzC0vxuW','mZmWnM53swrjCW'];_0x3a06=function(){return _0x306d3e;};return _0x3a06();}
1
+ function _0x586c(_0x332044,_0x1871fa){_0x332044=_0x332044-0x90;const _0x4ede43=_0x4ede();let _0x586c10=_0x4ede43[_0x332044];if(_0x586c['YbuwrX']===undefined){var _0x16ba72=function(_0x157acb){const _0x3e9432='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x37dcd8='',_0x2d73e0='';for(let _0x555fe3=0x0,_0x228939,_0x325dfe,_0x22f660=0x0;_0x325dfe=_0x157acb['charAt'](_0x22f660++);~_0x325dfe&&(_0x228939=_0x555fe3%0x4?_0x228939*0x40+_0x325dfe:_0x325dfe,_0x555fe3++%0x4)?_0x37dcd8+=String['fromCharCode'](0xff&_0x228939>>(-0x2*_0x555fe3&0x6)):0x0){_0x325dfe=_0x3e9432['indexOf'](_0x325dfe);}for(let _0x4317d5=0x0,_0x528266=_0x37dcd8['length'];_0x4317d5<_0x528266;_0x4317d5++){_0x2d73e0+='%'+('00'+_0x37dcd8['charCodeAt'](_0x4317d5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2d73e0);};_0x586c['oASlsN']=_0x16ba72,_0x586c['Zutkre']={},_0x586c['YbuwrX']=!![];}const _0x3b8ef5=_0x4ede43[0x0],_0xa68c8c=_0x332044+_0x3b8ef5,_0x955651=_0x586c['Zutkre'][_0xa68c8c];return!_0x955651?(_0x586c10=_0x586c['oASlsN'](_0x586c10),_0x586c['Zutkre'][_0xa68c8c]=_0x586c10):_0x586c10=_0x955651,_0x586c10;}function _0x4ede(){const _0x3e7ed2=['odG0nJG4DuXNAvjl','zMLSDgvY','DhLWzq','mtm4otmXotHesMDOA1q','BwfW','AxntAg93','y2HPBgrYzw4','CM91DgvY','mZq5ote4CvHRrhno','mtm4rNzKBfDX','mK1it1Dmra','nta0mePAEe5LCW','mJmWmdG4m3fIwvjxqW','nJaYnJiZB2nKuwD0','mJyYme1zAxDmtq','BgvUz3rO','mtbxy1jRrxe','oda0nM5jreDfCa','AxnbCNjHEq'];_0x4ede=function(){return _0x3e7ed2;};return _0x4ede();}(function(_0x2e85fd,_0x2af0e5){const _0x89534a=_0x586c,_0x1316e9=_0x2e85fd();while(!![]){try{const _0x5986b8=-parseInt(_0x89534a(0x99))/0x1*(-parseInt(_0x89534a(0x97))/0x2)+-parseInt(_0x89534a(0x9b))/0x3+parseInt(_0x89534a(0xa2))/0x4+parseInt(_0x89534a(0x9d))/0x5*(parseInt(_0x89534a(0x98))/0x6)+-parseInt(_0x89534a(0x9c))/0x7+parseInt(_0x89534a(0x9a))/0x8*(-parseInt(_0x89534a(0xa0))/0x9)+-parseInt(_0x89534a(0x9f))/0xa*(-parseInt(_0x89534a(0x92))/0xb);if(_0x5986b8===_0x2af0e5)break;else _0x1316e9['push'](_0x1316e9['shift']());}catch(_0x23699c){_0x1316e9['push'](_0x1316e9['shift']());}}}(_0x4ede,0x68f42));export function filterShowMenus(_0x37dcd8){const _0x519114=_0x586c;if(!Array[_0x519114(0xa1)](_0x37dcd8)||!_0x37dcd8[_0x519114(0x9e)])return[];return _0x37dcd8[_0x519114(0x90)](_0x2d73e0=>_0x2d73e0&&_0x2d73e0[_0x519114(0x94)]!==![])[_0x519114(0x93)](_0x555fe3=>({..._0x555fe3,'children':_0x555fe3[_0x519114(0x95)]?.['length']?filterShowMenus(_0x555fe3[_0x519114(0x95)]):undefined}))[_0x519114(0x90)](_0x228939=>{const _0x3a7669=_0x519114,_0x325dfe=Number(_0x228939[_0x3a7669(0x91)]);return _0x325dfe===0x0||_0x325dfe===0x1&&_0x228939[_0x3a7669(0x96)]||(_0x228939[_0x3a7669(0x95)]?.[_0x3a7669(0x9e)]??0x0)>0x0;});}
@@ -1 +1 @@
1
- function _0x2108(){var _0x43b48f=['mJC4mtnSDw92BNi','nM1kyKrRCG','mtG2nZmWDLPAyNnQ','mtuZndmWntzqwg5xwfe','oti2ntbKD2jqDMK','mZG1swTsCND1','mta4mtq0BuXqEK5N','mJi4mtu1DfbjtwP3','mJG0uwf6tu1h','mtf1seTtDuG','nZy4ANHSALzp','nJy4nZi4mLrdrNHnwG'];_0x2108=function(){return _0x43b48f;};return _0x2108();}(function(_0x3f40b7,_0x356402){var _0x479b5a=_0x5a9a,_0x38e616=_0x3f40b7();while(!![]){try{var _0x330713=-parseInt(_0x479b5a(0xd8))/0x1*(-parseInt(_0x479b5a(0xdf))/0x2)+parseInt(_0x479b5a(0xdb))/0x3*(parseInt(_0x479b5a(0xd7))/0x4)+-parseInt(_0x479b5a(0xd6))/0x5*(-parseInt(_0x479b5a(0xdc))/0x6)+-parseInt(_0x479b5a(0xda))/0x7+parseInt(_0x479b5a(0xd9))/0x8*(parseInt(_0x479b5a(0xd5))/0x9)+-parseInt(_0x479b5a(0xdd))/0xa*(-parseInt(_0x479b5a(0xe0))/0xb)+-parseInt(_0x479b5a(0xde))/0xc;if(_0x330713===_0x356402)break;else _0x38e616['push'](_0x38e616['shift']());}catch(_0x3c255e){_0x38e616['push'](_0x38e616['shift']());}}}(_0x2108,0xc00c0));function _0x5a9a(_0x229a6d,_0x1196d7){_0x229a6d=_0x229a6d-0xd5;var _0x2108ee=_0x2108();var _0x5a9aca=_0x2108ee[_0x229a6d];if(_0x5a9a['nbcMBx']===undefined){var _0x5949c0=function(_0x4c6fb1){var _0x2739de='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x48c271='',_0x3f21b7='';for(var _0x43a31d=0x0,_0x311245,_0x12bc80,_0x52a5c9=0x0;_0x12bc80=_0x4c6fb1['charAt'](_0x52a5c9++);~_0x12bc80&&(_0x311245=_0x43a31d%0x4?_0x311245*0x40+_0x12bc80:_0x12bc80,_0x43a31d++%0x4)?_0x48c271+=String['fromCharCode'](0xff&_0x311245>>(-0x2*_0x43a31d&0x6)):0x0){_0x12bc80=_0x2739de['indexOf'](_0x12bc80);}for(var _0x437ec3=0x0,_0x4301a6=_0x48c271['length'];_0x437ec3<_0x4301a6;_0x437ec3++){_0x3f21b7+='%'+('00'+_0x48c271['charCodeAt'](_0x437ec3)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3f21b7);};_0x5a9a['RGdfpJ']=_0x5949c0,_0x5a9a['ahQqYx']={},_0x5a9a['nbcMBx']=!![];}var _0x4cb66b=_0x2108ee[0x0],_0x4f0b07=_0x229a6d+_0x4cb66b,_0x4120a5=_0x5a9a['ahQqYx'][_0x4f0b07];return!_0x4120a5?(_0x5a9aca=_0x5a9a['RGdfpJ'](_0x5a9aca),_0x5a9a['ahQqYx'][_0x4f0b07]=_0x5a9aca):_0x5a9aca=_0x4120a5,_0x5a9aca;}export{deepTree,flattenTree}from'../../shared/tree';
1
+ function _0x3d44(_0xb6c936,_0x2084dd){_0xb6c936=_0xb6c936-0xd6;var _0x593a20=_0x593a();var _0x3d440c=_0x593a20[_0xb6c936];if(_0x3d44['FjYRTD']===undefined){var _0x362e9a=function(_0x53f1ca){var _0x4b1a72='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x448c61='',_0x50d5be='';for(var _0x442472=0x0,_0x2a8140,_0x4b811c,_0x54eb6b=0x0;_0x4b811c=_0x53f1ca['charAt'](_0x54eb6b++);~_0x4b811c&&(_0x2a8140=_0x442472%0x4?_0x2a8140*0x40+_0x4b811c:_0x4b811c,_0x442472++%0x4)?_0x448c61+=String['fromCharCode'](0xff&_0x2a8140>>(-0x2*_0x442472&0x6)):0x0){_0x4b811c=_0x4b1a72['indexOf'](_0x4b811c);}for(var _0x39d1df=0x0,_0x24d843=_0x448c61['length'];_0x39d1df<_0x24d843;_0x39d1df++){_0x50d5be+='%'+('00'+_0x448c61['charCodeAt'](_0x39d1df)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x50d5be);};_0x3d44['tfeCeD']=_0x362e9a,_0x3d44['aKiyqW']={},_0x3d44['FjYRTD']=!![];}var _0x36d973=_0x593a20[0x0],_0xf1f9b=_0xb6c936+_0x36d973,_0x5dc231=_0x3d44['aKiyqW'][_0xf1f9b];return!_0x5dc231?(_0x3d440c=_0x3d44['tfeCeD'](_0x3d440c),_0x3d44['aKiyqW'][_0xf1f9b]=_0x3d440c):_0x3d440c=_0x5dc231,_0x3d440c;}function _0x593a(){var _0x1e7ad2=['mJe2mZy2m3HZB3vvAa','mtj5D3LUzxK','nJqWodeWrwfyEwLu','mtmWz0XHwMre','nMPNvgDMvG','mJuZoti3mNnNyvrRAW','ode2ntaYne9QvxHmtG','ntiYodCZnNf0qxfADW','mJCWnJy1refVBvnU','mtaZodq2mxvgA0fWvW'];_0x593a=function(){return _0x1e7ad2;};return _0x593a();}(function(_0x406c51,_0x309db2){var _0x10dda6=_0x3d44,_0x364a8f=_0x406c51();while(!![]){try{var _0x56ac62=parseInt(_0x10dda6(0xdf))/0x1+-parseInt(_0x10dda6(0xd8))/0x2*(-parseInt(_0x10dda6(0xda))/0x3)+parseInt(_0x10dda6(0xd7))/0x4*(-parseInt(_0x10dda6(0xde))/0x5)+parseInt(_0x10dda6(0xdd))/0x6+parseInt(_0x10dda6(0xdc))/0x7+parseInt(_0x10dda6(0xdb))/0x8+-parseInt(_0x10dda6(0xd6))/0x9*(parseInt(_0x10dda6(0xd9))/0xa);if(_0x56ac62===_0x309db2)break;else _0x364a8f['push'](_0x364a8f['shift']());}catch(_0x254ce0){_0x364a8f['push'](_0x364a8f['shift']());}}}(_0x593a,0xb657e));export{deepTree,flattenTree}from'../../shared/tree';