vome-core 0.1.25 → 0.1.27

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.
@@ -1,41 +1,11 @@
1
1
  <template>
2
2
  <div
3
3
  class="vm-richtext"
4
- :class="{ 'is-readonly': readOnlyMode, 'is-disabled': disabled }"
4
+ :class="{
5
+ 'is-readonly': readOnlyMode,
6
+ 'is-disabled': disabled,
7
+ }"
5
8
  >
6
- <div v-if="!readOnlyMode" class="vm-richtext__toolbar" role="toolbar">
7
- <button
8
- v-for="btn in toolbar"
9
- :key="btn.cmd"
10
- type="button"
11
- class="vm-richtext__tool"
12
- :title="btn.title"
13
- :disabled="disabled"
14
- @mousedown.prevent
15
- @click="runCmd(btn.cmd, 'value' in btn ? btn.value : undefined)"
16
- >
17
- <i :class="btn.icon" aria-hidden="true" />
18
- </button>
19
- <button
20
- type="button"
21
- class="vm-richtext__tool"
22
- title="插入图片"
23
- :disabled="disabled || uploading || !uploadImage"
24
- @mousedown.prevent
25
- @click="pickImage"
26
- >
27
- <i class="ri-image-add-line" aria-hidden="true" />
28
- </button>
29
- <input
30
- ref="fileRef"
31
- type="file"
32
- accept="image/*"
33
- multiple
34
- class="vm-richtext__file"
35
- @change="onFileChange"
36
- />
37
- </div>
38
-
39
9
  <div
40
10
  v-if="readOnlyMode"
41
11
  class="vm-richtext__html"
@@ -44,32 +14,49 @@
44
14
 
45
15
  <div
46
16
  v-else
47
- ref="editorRef"
48
- class="vm-richtext__editor"
49
- :style="editorStyle"
50
- :contenteditable="!disabled"
51
- :data-placeholder="placeholder"
52
- @input="onInput"
53
- @blur="onInput"
54
- @paste="onPaste"
55
- />
17
+ class="vm-richtext__shell"
18
+ :style="shellStyle"
19
+ >
20
+ <Toolbar
21
+ class="vm-richtext__toolbar"
22
+ :editor="editorRef"
23
+ :default-config="toolbarConfig"
24
+ mode="default"
25
+ />
26
+ <Editor
27
+ class="vm-richtext__editor"
28
+ :default-config="editorConfig"
29
+ mode="default"
30
+ @on-created="onEditorCreated"
31
+ @on-change="onEditorChange"
32
+ />
33
+ </div>
56
34
  </div>
57
35
  </template>
58
36
 
59
37
  <script setup lang="ts">
60
- import { computed, nextTick, onMounted, ref, watch } from 'vue'
38
+ import '@wangeditor/editor/dist/css/style.css'
39
+ import { computed, onBeforeUnmount, shallowRef, watch } from 'vue'
61
40
  import DOMPurify from 'dompurify'
41
+ import { Editor, Toolbar } from '@wangeditor/editor-for-vue'
42
+ import type { IDomEditor, IEditorConfig, IToolbarConfig } from '@wangeditor/editor'
43
+ import { useUpload } from '../../hooks/useUpload'
62
44
 
63
45
  defineOptions({ name: 'vm-richtext' })
64
46
 
65
47
  const RICH_TAGS = [
66
48
  'p',
67
49
  'br',
50
+ 'div',
51
+ 'span',
68
52
  'strong',
69
53
  'b',
70
54
  'em',
71
55
  'i',
72
56
  'u',
57
+ 's',
58
+ 'del',
59
+ 'strike',
73
60
  'a',
74
61
  'ul',
75
62
  'ol',
@@ -78,30 +65,43 @@ const RICH_TAGS = [
78
65
  'h2',
79
66
  'h3',
80
67
  'h4',
68
+ 'h5',
69
+ 'h6',
81
70
  'blockquote',
82
71
  'code',
83
72
  'pre',
84
- 'span',
85
- 'div',
86
73
  'img',
74
+ 'table',
75
+ 'thead',
76
+ 'tbody',
77
+ 'tr',
78
+ 'th',
79
+ 'td',
80
+ 'hr',
81
+ 'sup',
82
+ 'sub',
87
83
  ]
88
84
 
89
85
  const props = withDefaults(
90
86
  defineProps<{
91
87
  modelValue?: string | null
92
- /** 只读展示(表格列) */
93
88
  readonly?: boolean
94
89
  disabled?: boolean
95
90
  placeholder?: string
96
- /** 编辑区高度 */
97
91
  height?: number | string
98
- /** 上传图片,返回可访问 url;未传则无插图按钮且忽略图片粘贴 */
92
+ /** 自定义上传;未传且 autoUpload=true 时走 useUpload 直传 OSS */
99
93
  uploadImage?: (file: File) => Promise<string>
94
+ /** autoUpload 默认前缀(须 app/public/**) */
95
+ uploadPrefixPath?: string
96
+ /** false 时禁用插图/粘贴上传(不自动 useUpload) */
97
+ autoUpload?: boolean
100
98
  }>(),
101
99
  {
102
100
  readonly: false,
103
101
  placeholder: '请输入内容…',
104
- height: 220,
102
+ height: 320,
103
+ uploadPrefixPath: 'app/public/richtext',
104
+ autoUpload: true,
105
105
  },
106
106
  )
107
107
 
@@ -109,161 +109,119 @@ const emit = defineEmits<{
109
109
  'update:modelValue': [v: string]
110
110
  }>()
111
111
 
112
- const editorRef = ref<HTMLElement | null>(null)
113
- const fileRef = ref<HTMLInputElement | null>(null)
114
- const innerHtml = ref('')
115
- const uploading = ref(false)
116
-
117
- const toolbar = [
118
- { cmd: 'bold', icon: 'ri-bold', title: '加粗' },
119
- { cmd: 'italic', icon: 'ri-italic', title: '斜体' },
120
- { cmd: 'underline', icon: 'ri-underline', title: '下划线' },
121
- { cmd: 'insertUnorderedList', icon: 'ri-list-unordered', title: '无序列表' },
122
- { cmd: 'insertOrderedList', icon: 'ri-list-ordered', title: '有序列表' },
123
- { cmd: 'formatBlock', icon: 'ri-heading', title: '小标题', value: 'h3' },
124
- { cmd: 'createLink', icon: 'ri-link', title: '链接' },
125
- { cmd: 'removeFormat', icon: 'ri-format-clear', title: '清除格式' },
126
- ] as const
112
+ const { toUpload } = useUpload()
113
+ const editorRef = shallowRef<IDomEditor>()
114
+ const syncing = shallowRef(false)
115
+
116
+ const readOnlyMode = computed(() => props.readonly)
117
+
118
+ const shellStyle = computed(() => {
119
+ const h =
120
+ typeof props.height === 'number' ? `${props.height}px` : String(props.height || '320px')
121
+ return {
122
+ '--vm-richtext-height': h,
123
+ } as Record<string, string>
124
+ })
127
125
 
128
126
  function sanitize(html: string) {
129
127
  return DOMPurify.sanitize(html, {
130
128
  ALLOWED_TAGS: RICH_TAGS,
131
- ALLOWED_ATTR: ['href', 'target', 'rel', 'class', 'src', 'alt', 'title', 'width', 'height'],
129
+ ALLOWED_ATTR: [
130
+ 'href',
131
+ 'target',
132
+ 'rel',
133
+ 'class',
134
+ 'src',
135
+ 'alt',
136
+ 'title',
137
+ 'width',
138
+ 'height',
139
+ 'colspan',
140
+ 'rowspan',
141
+ 'align',
142
+ ],
132
143
  })
133
144
  }
134
145
 
135
146
  const safeHtml = computed(() => sanitize(String(props.modelValue || '')))
136
- const readOnlyMode = computed(() => props.readonly)
137
-
138
- const editorStyle = computed(() => ({
139
- minHeight: typeof props.height === 'number' ? `${props.height}px` : props.height,
140
- }))
141
-
142
- function syncEditorFromModel() {
143
- if (props.readonly || !editorRef.value) return
144
- const next = safeHtml.value
145
- if (editorRef.value.innerHTML !== next) {
146
- editorRef.value.innerHTML = next || ''
147
- }
148
- innerHtml.value = next
149
- }
150
-
151
- function emitHtml(html: string) {
152
- const clean = sanitize(html)
153
- innerHtml.value = clean
154
- emit('update:modelValue', clean)
155
- }
156
147
 
157
- function onInput() {
158
- if (!editorRef.value) return
159
- emitHtml(editorRef.value.innerHTML)
160
- }
148
+ const toolbarConfig: Partial<IToolbarConfig> = {}
161
149
 
162
- function insertImageAtCursor(url: string, alt = 'image') {
163
- const ed = editorRef.value
164
- if (!ed) return
165
- ed.focus()
166
- const img = document.createElement('img')
167
- img.src = url
168
- img.alt = alt
169
- const sel = window.getSelection()
170
- if (sel?.rangeCount) {
171
- const range = sel.getRangeAt(0)
172
- if (ed.contains(range.commonAncestorContainer)) {
173
- range.deleteContents()
174
- range.insertNode(img)
175
- range.setStartAfter(img)
176
- range.collapse(true)
177
- sel.removeAllRanges()
178
- sel.addRange(range)
179
- } else {
180
- ed.appendChild(img)
181
- }
182
- } else {
183
- ed.appendChild(img)
184
- }
185
- onInput()
150
+ async function resolveUpload(file: File): Promise<string> {
151
+ if (props.uploadImage) return props.uploadImage(file)
152
+ if (props.autoUpload === false) throw new Error('未配置 uploadImage')
153
+ const res = await toUpload(file, { prefixPath: props.uploadPrefixPath })
154
+ return res.url
186
155
  }
187
156
 
188
- async function uploadFiles(files: File[]) {
189
- if (!props.uploadImage || !files.length || props.disabled || uploading.value) return
190
- uploading.value = true
191
- try {
192
- for (const file of files) {
193
- const url = await props.uploadImage(file)
194
- const alt =
195
- (file.name || 'image').replace(/\.[^.]+$/, '').trim() || 'image'
196
- insertImageAtCursor(url, alt)
197
- }
198
- } finally {
199
- uploading.value = false
157
+ const editorConfig = computed<Partial<IEditorConfig>>(() => {
158
+ const uploadEnabled = Boolean(props.uploadImage) || props.autoUpload !== false
159
+ return {
160
+ placeholder: props.placeholder,
161
+ readOnly: props.disabled,
162
+ autoFocus: false,
163
+ MENU_CONF: uploadEnabled
164
+ ? {
165
+ uploadImage: {
166
+ maxFileSize: 10 * 1024 * 1024,
167
+ allowedFileTypes: ['image/*'],
168
+ async customUpload(file: File, insertFn: (url: string, alt: string, href: string) => void) {
169
+ const url = await resolveUpload(file)
170
+ const alt =
171
+ (file.name || 'image').replace(/\.[^.]+$/, '').trim() || 'image'
172
+ insertFn(url, alt, url)
173
+ },
174
+ },
175
+ }
176
+ : {},
200
177
  }
201
- }
202
-
203
- function pickImage() {
204
- if (props.disabled || uploading.value || !props.uploadImage) return
205
- fileRef.value?.click()
206
- }
178
+ })
207
179
 
208
- async function onFileChange(e: Event) {
209
- const input = e.target as HTMLInputElement
210
- const files = Array.from(input.files || []).filter((f) =>
211
- f.type.startsWith('image/'),
212
- )
213
- input.value = ''
214
- await uploadFiles(files)
180
+ function emitHtml(html: string) {
181
+ emit('update:modelValue', sanitize(html))
215
182
  }
216
183
 
217
- async function onPaste(e: ClipboardEvent) {
218
- if (props.uploadImage && !props.disabled && !uploading.value) {
219
- const items = e.clipboardData?.items
220
- const files: File[] = []
221
- if (items?.length) {
222
- for (const item of Array.from(items)) {
223
- if (item.kind === 'file' && item.type.startsWith('image/')) {
224
- const file = item.getAsFile()
225
- if (file) files.push(file)
226
- }
227
- }
228
- }
229
- if (files.length) {
230
- e.preventDefault()
231
- await uploadFiles(files)
232
- return
233
- }
234
- }
235
- e.preventDefault()
236
- const text = e.clipboardData?.getData('text/plain') || ''
237
- document.execCommand('insertText', false, text)
184
+ function onEditorCreated(editor: IDomEditor) {
185
+ editorRef.value = editor
186
+ if (props.disabled) editor.disable()
187
+ syncing.value = true
188
+ const html = safeHtml.value
189
+ if (html) editor.setHtml(html)
190
+ else editor.clear()
191
+ syncing.value = false
238
192
  }
239
193
 
240
- function runCmd(cmd: string, value?: string) {
241
- if (props.disabled || props.readonly) return
242
- editorRef.value?.focus()
243
- if (cmd === 'createLink') {
244
- const url = window.prompt('链接地址', 'https://')
245
- if (!url) return
246
- document.execCommand('createLink', false, url)
247
- onInput()
248
- return
249
- }
250
- if (cmd === 'formatBlock' && value) {
251
- document.execCommand('formatBlock', false, value)
252
- } else {
253
- document.execCommand(cmd, false, value)
254
- }
255
- onInput()
194
+ function onEditorChange(editor: IDomEditor) {
195
+ if (syncing.value) return
196
+ emitHtml(editor.getHtml())
256
197
  }
257
198
 
258
199
  watch(
259
200
  () => props.modelValue,
260
- () => {
261
- syncEditorFromModel()
201
+ (next) => {
202
+ const editor = editorRef.value
203
+ if (!editor || readOnlyMode.value) return
204
+ const html = sanitize(String(next || ''))
205
+ if (editor.getHtml() === html) return
206
+ syncing.value = true
207
+ if (html) editor.setHtml(html)
208
+ else editor.clear()
209
+ syncing.value = false
210
+ },
211
+ )
212
+
213
+ watch(
214
+ () => props.disabled,
215
+ (v) => {
216
+ const editor = editorRef.value
217
+ if (!editor) return
218
+ if (v) editor.disable()
219
+ else editor.enable()
262
220
  },
263
221
  )
264
222
 
265
- onMounted(() => {
266
- void nextTick(() => syncEditorFromModel())
223
+ onBeforeUnmount(() => {
224
+ editorRef.value?.destroy()
267
225
  })
268
226
  </script>
269
227
 
@@ -271,10 +229,7 @@ onMounted(() => {
271
229
  .vm-richtext {
272
230
  width: 100%;
273
231
  min-width: 0;
274
- border: 1px solid var(--input);
275
- border-radius: var(--vm-control-radius);
276
- background: var(--card);
277
- overflow: hidden;
232
+ box-sizing: border-box;
278
233
  }
279
234
 
280
235
  .vm-richtext.is-disabled {
@@ -282,64 +237,25 @@ onMounted(() => {
282
237
  pointer-events: none;
283
238
  }
284
239
 
285
- .vm-richtext__toolbar {
240
+ .vm-richtext__shell {
286
241
  display: flex;
287
- flex-wrap: wrap;
288
- gap: 4px;
289
- padding: 8px 10px;
290
- border-bottom: 1px solid var(--border);
291
- background: var(--muted);
292
- }
293
-
294
- .vm-richtext__tool {
295
- display: inline-flex;
296
- width: 30px;
297
- height: 30px;
298
- align-items: center;
299
- justify-content: center;
300
- border: none;
301
- border-radius: 8px;
302
- background: transparent;
303
- color: var(--foreground);
304
- font-size: 16px;
305
- cursor: pointer;
306
-
307
- &:hover:not(:disabled) {
308
- background: color-mix(in srgb, var(--foreground) 8%, var(--card));
309
- color: var(--brand);
310
- }
242
+ flex-direction: column;
243
+ width: 100%;
244
+ min-width: 0;
245
+ border: 1px solid var(--input);
246
+ border-radius: var(--vm-control-radius);
247
+ background: var(--card);
248
+ overflow: hidden;
311
249
  }
312
250
 
313
- .vm-richtext__file {
314
- display: none;
251
+ .vm-richtext__toolbar {
252
+ border-bottom: 1px solid var(--border);
253
+ background: var(--muted);
315
254
  }
316
255
 
317
256
  .vm-richtext__editor {
318
- padding: 12px 14px;
319
- outline: none;
320
- color: var(--foreground);
321
- font-size: 14px;
322
- line-height: 1.65;
323
- overflow: auto;
324
- word-break: break-word;
325
-
326
- &:empty::before {
327
- content: attr(data-placeholder);
328
- color: var(--muted-foreground);
329
- pointer-events: none;
330
- }
331
-
332
- :deep(a) {
333
- color: var(--brand);
334
- text-decoration: underline;
335
- }
336
-
337
- :deep(img) {
338
- max-width: 100%;
339
- height: auto;
340
- margin: 8px 0;
341
- border-radius: 8px;
342
- }
257
+ height: var(--vm-richtext-height, 320px);
258
+ overflow-y: auto;
343
259
  }
344
260
 
345
261
  .vm-richtext__html {
@@ -371,6 +287,18 @@ onMounted(() => {
371
287
  border-radius: 8px;
372
288
  }
373
289
 
290
+ :deep(table) {
291
+ width: 100%;
292
+ border-collapse: collapse;
293
+ margin: 8px 0;
294
+ }
295
+
296
+ :deep(th),
297
+ :deep(td) {
298
+ border: 1px solid var(--border);
299
+ padding: 6px 8px;
300
+ }
301
+
374
302
  :deep(h1),
375
303
  :deep(h2),
376
304
  :deep(h3),
@@ -387,3 +315,19 @@ onMounted(() => {
387
315
  background: transparent;
388
316
  }
389
317
  </style>
318
+
319
+ <style lang="scss">
320
+ /* wangEditor 全局层:对齐后台 token(勿 scoped,编辑器 DOM 在组件外生成) */
321
+ .vm-richtext__shell .w-e-text-container {
322
+ background: var(--card);
323
+ color: var(--foreground);
324
+ }
325
+
326
+ .vm-richtext__shell .w-e-scroll {
327
+ background: var(--card);
328
+ }
329
+
330
+ .vm-richtext__shell .w-e-bar {
331
+ background: var(--muted);
332
+ }
333
+ </style>
@@ -1 +1 @@
1
- (function(_0x221bcf,_0x4a7491){const _0x4b2689=_0x4368,_0x3eb049=_0x221bcf();while(!![]){try{const _0x67f024=-parseInt(_0x4b2689(0xa0))/0x1*(-parseInt(_0x4b2689(0xad))/0x2)+parseInt(_0x4b2689(0xa4))/0x3*(-parseInt(_0x4b2689(0xa9))/0x4)+parseInt(_0x4b2689(0xb0))/0x5+-parseInt(_0x4b2689(0xb1))/0x6*(-parseInt(_0x4b2689(0xab))/0x7)+-parseInt(_0x4b2689(0xa7))/0x8+parseInt(_0x4b2689(0xac))/0x9*(-parseInt(_0x4b2689(0xa5))/0xa)+parseInt(_0x4b2689(0xaf))/0xb*(-parseInt(_0x4b2689(0xa6))/0xc);if(_0x67f024===_0x4a7491)break;else _0x3eb049['push'](_0x3eb049['shift']());}catch(_0xf72018){_0x3eb049['push'](_0x3eb049['shift']());}}}(_0xe660,0xbbe17));import{getCrudConfig}from'./style';import{CRUD_LABELS,DEFAULT_CRUD_DICT}from'./dict';export{CRUD_LABELS,DEFAULT_CRUD_DICT};export const DEFAULT_CRUD_PERMISSION={'page':!![],'list':!![],'info':!![],'add':!![],'delete':!![],'update':!![]};function _0xe660(){const _0x37fd0c=['nZq4m2jqDLrzwG','ntrQvwvQs1O','mJuZndu5nenxwwviAa','zgLJDa','mtfkEw5bveK','nZmXmteYnwvZzNHHyW','mZeYnMj0vu5sqq','mwDgugv1wq','yxbP','BgfIzwW','C29YDa','mZCWntntr3LOEgi','mtu1mtu4mhr4vhDTrG','mtmZmZK1mdb4EfnluMu','mZq5odi4ogvhv2rvua','C2vHCMnO','mtjvt2jQA3G','CgfNAw5HDgLVBG'];_0xe660=function(){return _0x37fd0c;};return _0xe660();}export function mergeDict(_0x586eef){const _0x38c8ca=_0x4368,_0x478405=getCrudConfig()[_0x38c8ca(0xae)];if(!_0x586eef)return{..._0x478405,'label':{..._0x478405[_0x38c8ca(0xa2)]}};return{..._0x478405,..._0x586eef,'api':{..._0x478405[_0x38c8ca(0xa1)],..._0x586eef[_0x38c8ca(0xa1)]},'pagination':{..._0x478405[_0x38c8ca(0xaa)],..._0x586eef[_0x38c8ca(0xaa)]},'search':{..._0x478405[_0x38c8ca(0xa8)],..._0x586eef[_0x38c8ca(0xa8)]},'sort':{..._0x478405[_0x38c8ca(0xa3)],..._0x586eef[_0x38c8ca(0xa3)]},'label':{..._0x478405[_0x38c8ca(0xa2)],..._0x586eef[_0x38c8ca(0xa2)]}};}function _0x4368(_0xc3429d,_0x5dad22){_0xc3429d=_0xc3429d-0xa0;const _0xe660e=_0xe660();let _0x43683a=_0xe660e[_0xc3429d];if(_0x4368['MRByRm']===undefined){var _0x1c3714=function(_0x1333d4){const _0x50cd1f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x586eef='',_0x478405='';for(let _0x2d242c=0x0,_0x137f28,_0x46f38f,_0x56f268=0x0;_0x46f38f=_0x1333d4['charAt'](_0x56f268++);~_0x46f38f&&(_0x137f28=_0x2d242c%0x4?_0x137f28*0x40+_0x46f38f:_0x46f38f,_0x2d242c++%0x4)?_0x586eef+=String['fromCharCode'](0xff&_0x137f28>>(-0x2*_0x2d242c&0x6)):0x0){_0x46f38f=_0x50cd1f['indexOf'](_0x46f38f);}for(let _0x2e8a68=0x0,_0x5cfc44=_0x586eef['length'];_0x2e8a68<_0x5cfc44;_0x2e8a68++){_0x478405+='%'+('00'+_0x586eef['charCodeAt'](_0x2e8a68)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x478405);};_0x4368['VnPGkP']=_0x1c3714,_0x4368['HxNAcJ']={},_0x4368['MRByRm']=!![];}const _0x5d3863=_0xe660e[0x0],_0x22c34a=_0xc3429d+_0x5d3863,_0x4a963d=_0x4368['HxNAcJ'][_0x22c34a];return!_0x4a963d?(_0x43683a=_0x4368['VnPGkP'](_0x43683a),_0x4368['HxNAcJ'][_0x22c34a]=_0x43683a):_0x43683a=_0x4a963d,_0x43683a;}export function mergePermission(_0x2d242c,_0x137f28){return{...DEFAULT_CRUD_PERMISSION,..._0x137f28,..._0x2d242c};}
1
+ (function(_0x826569,_0xd5f065){const _0x5453f8=_0x456c,_0x4d599c=_0x826569();while(!![]){try{const _0x50d486=-parseInt(_0x5453f8(0x1be))/0x1*(parseInt(_0x5453f8(0x1bc))/0x2)+-parseInt(_0x5453f8(0x1b9))/0x3*(-parseInt(_0x5453f8(0x1bb))/0x4)+-parseInt(_0x5453f8(0x1c3))/0x5*(-parseInt(_0x5453f8(0x1c4))/0x6)+parseInt(_0x5453f8(0x1b5))/0x7*(-parseInt(_0x5453f8(0x1ba))/0x8)+parseInt(_0x5453f8(0x1b8))/0x9+parseInt(_0x5453f8(0x1c6))/0xa*(parseInt(_0x5453f8(0x1b7))/0xb)+parseInt(_0x5453f8(0x1c5))/0xc*(parseInt(_0x5453f8(0x1bf))/0xd);if(_0x50d486===_0xd5f065)break;else _0x4d599c['push'](_0x4d599c['shift']());}catch(_0x45080f){_0x4d599c['push'](_0x4d599c['shift']());}}}(_0x9673,0x4dd57));function _0x456c(_0x1d13bf,_0x23b9ef){_0x1d13bf=_0x1d13bf-0x1b5;const _0x967317=_0x9673();let _0x456ca2=_0x967317[_0x1d13bf];if(_0x456c['CgeZXM']===undefined){var _0x184268=function(_0x5db693){const _0x387aef='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x125789='',_0x564a6b='';for(let _0xd7c0e9=0x0,_0x2b5ef5,_0x17315d,_0x80a5f1=0x0;_0x17315d=_0x5db693['charAt'](_0x80a5f1++);~_0x17315d&&(_0x2b5ef5=_0xd7c0e9%0x4?_0x2b5ef5*0x40+_0x17315d:_0x17315d,_0xd7c0e9++%0x4)?_0x125789+=String['fromCharCode'](0xff&_0x2b5ef5>>(-0x2*_0xd7c0e9&0x6)):0x0){_0x17315d=_0x387aef['indexOf'](_0x17315d);}for(let _0x372956=0x0,_0x358475=_0x125789['length'];_0x372956<_0x358475;_0x372956++){_0x564a6b+='%'+('00'+_0x125789['charCodeAt'](_0x372956)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x564a6b);};_0x456c['ENOBkQ']=_0x184268,_0x456c['clwRDm']={},_0x456c['CgeZXM']=!![];}const _0x4d56cf=_0x967317[0x0],_0x439416=_0x1d13bf+_0x4d56cf,_0x39e880=_0x456c['clwRDm'][_0x439416];return!_0x39e880?(_0x456ca2=_0x456c['ENOBkQ'](_0x456ca2),_0x456c['clwRDm'][_0x439416]=_0x456ca2):_0x456ca2=_0x39e880,_0x456ca2;}import{getCrudConfig}from'./style';function _0x9673(){const _0x204aba=['nNLrrNbKsG','mtu2z2HZD01X','mZa4mJe1merWvfPPCG','mtC1mJfsDe5eBg0','yxbP','mtfPv0v5y1y','mtyWodu1mLzSsxLjuG','mteXCfLXA0LN','mtG0wKPlvhLy','mta4mdrbDwLjt2u','mZa1nMD3ELj3uW','CgfNAw5HDgLVBG','mZq3z2rhqxfK','mJqXnZyXr2z4Bxfx','C29YDa','BgfIzwW','C2vHCMnO','mZG5nZu1AvvPvKv5'];_0x9673=function(){return _0x204aba;};return _0x9673();}import{CRUD_LABELS,DEFAULT_CRUD_DICT}from'./dict';export{CRUD_LABELS,DEFAULT_CRUD_DICT};export const DEFAULT_CRUD_PERMISSION={'page':!![],'list':!![],'info':!![],'add':!![],'delete':!![],'update':!![]};export function mergeDict(_0x125789){const _0x2cd363=_0x456c,_0x564a6b=getCrudConfig()['dict'];if(!_0x125789)return{..._0x564a6b,'label':{..._0x564a6b['label']}};return{..._0x564a6b,..._0x125789,'api':{..._0x564a6b[_0x2cd363(0x1b6)],..._0x125789[_0x2cd363(0x1b6)]},'pagination':{..._0x564a6b[_0x2cd363(0x1bd)],..._0x125789[_0x2cd363(0x1bd)]},'search':{..._0x564a6b[_0x2cd363(0x1c2)],..._0x125789['search']},'sort':{..._0x564a6b[_0x2cd363(0x1c0)],..._0x125789[_0x2cd363(0x1c0)]},'label':{..._0x564a6b[_0x2cd363(0x1c1)],..._0x125789[_0x2cd363(0x1c1)]}};}export function mergePermission(_0xd7c0e9,_0x2b5ef5){return{...DEFAULT_CRUD_PERMISSION,..._0x2b5ef5,..._0xd7c0e9};}
@@ -1 +1 @@
1
- const _0x5a8b21=_0x3c1f;(function(_0x37e6ea,_0x41b74b){const _0x3f4fc4=_0x3c1f,_0x5bbedc=_0x37e6ea();while(!![]){try{const _0x540c25=parseInt(_0x3f4fc4(0xa5))/0x1+-parseInt(_0x3f4fc4(0xaa))/0x2*(parseInt(_0x3f4fc4(0xaf))/0x3)+-parseInt(_0x3f4fc4(0xa2))/0x4+-parseInt(_0x3f4fc4(0xa1))/0x5+-parseInt(_0x3f4fc4(0xb0))/0x6*(parseInt(_0x3f4fc4(0x94))/0x7)+parseInt(_0x3f4fc4(0x92))/0x8*(-parseInt(_0x3f4fc4(0xb2))/0x9)+parseInt(_0x3f4fc4(0xae))/0xa;if(_0x540c25===_0x41b74b)break;else _0x5bbedc['push'](_0x5bbedc['shift']());}catch(_0x5794f2){_0x5bbedc['push'](_0x5bbedc['shift']());}}}(_0x4a62,0x1907b));function _0x4a62(){const _0x595b7b=['Bw91BNq','y3jLyxrLrwXLBwvUDa','DMfSDwu','CMvTB3zL','mJy1mJqWB3brwxbg','mtuYntqWr1nque1q','DM0Ty29UzMLYBv9FyNrUigLZlwDOB3n0','Dgv4DenVBNrLBNq','nZa2mJDIzef3sMu','Dw5TB3vUDa','BwvZC2fNzq','z2v0rwXLBwvUDej5swq','DM0Ty29UzMLYBs1ZDhLSzq','mZq4ntm2Chr0veno','y29UzMLYBvrLEhq','yxbWzw5Kq2HPBgq','C3rYAw5N','ntaWnJC3mfzNt3fTra','m0Tct21OBa','nZK0nZy2uMXotwj0','yNv0Dg9U','mJeYnJa3wvLqBeXj','cI52Bs1JB25MAxjTw2rHDgeTC2XVDd0NzgLHBg9NlwnVBNrLBNqNxsb7cIaGD2LKDgG6ig1PBIG0mdbWEcWGy2fSyYGXmdb2DYaTidmYChGPksaHAw1WB3j0yw50oWOGig1HEc13Awr0AdOGBwLUkdqWmhb4lcbJywXJkdeWmhz3ic0GmZjWEcKPicfPBxbVCNrHBNq7cIaGz2fWoIaWicfPBxbVCNrHBNq7cIaGCgfKzgLUzZOGmcaHAw1WB3j0yw50oWOGigjVCMrLCJOGBM9UzsaHAw1WB3j0yw50oWOGigjVCMrLCI1YywrPDxm6idi0ChGGiwLTCg9YDgfUDdSkicbIB3GTC2HHzg93oIb2yxiOls1ZAgfKB3CTC29MDcKGiwLTCg9YDgfUDdSkFqOUDM0Ty29UzMLYBv9FAgvHzcb7ihbHzgrPBMC6ide4ChGGmJjWEcaWoYbIB3jKzxiTyM90Dg9ToIbUB25LoYb9cI52Bs1JB25MAxjTx190AxrSzsb7igzVBNqTC2L6ztOGmtzWEdSGzM9UDc13zwLNAhq6idy1mdSGFqOUDM0Ty29UzMLYBv9FyM9KEsb7cIaGCgfKzgLUzZOGmtjWEcaYmNb4idHWEdSkicbJB2XVCJOGDMfYkc0TzM9YzwDYB3vUzcK7cIaGzM9UDc1ZAxPLoIaXnhb4oWOGigXPBMuTAgvPz2H0oIaXlJy7cN0klNzTlwnVBMzPCM1Fx2zVB3qGEWOGigrPC3bSyxK6igzSzxG7cIaGANvZDgLMEs1JB250zw50oIbMBgv4lwvUzdSkicbNyxa6idHWEdSkicbWywrKAw5NoIaXnhb4idiYChG7cN0klNzTlwnVBMzPCM1Fx2j0BIb7cIaGAgvPz2H0oIaZnNb4oWOGihbHzgrPBMC6idaGmtzWEdSkicbIB3jKzxi6ig5VBMu7cIaGyM9YzgvYlxjHzgL1CZOGmtjWEdSkicbMB250lxnPEMu6ideZChG7cIaGzM9UDc13zwLNAhq6idyWmdSkicbJDxjZB3i6ihbVAw50zxi7cN0klNzTlwnVBMzPCM1Fx2j0BI5PCY1WCMLTyxj5ihSGyMfJA2DYB3vUzdOGDMfYkc0TyNjHBMqPoYbJB2XVCJOGi2zMzJSGFqOUDM0Ty29UzMLYBv9FyNrUlMLZlxbYAw1HCNK6Ag92zxiGEYbIywnRz3jVDw5KoIb2yxiOls1ICMfUzc1KzwvWktSGFqOUDM0Ty29UzMLYBv9FyNrUlMLZlwDOB3n0ihSGyMfJA2DYB3vUzdOGDMfYkc0TBxv0zwqPoYbJB2XVCJOGDMfYkc0TzM9YzwDYB3vUzcK7ih0k','mJrmEKLTz04','DgL0Bgu','n3LfDK1VCG','DM0Ty29UzMLYBv9FyM9KEq','DM0Ty29UzMLYBv9FyNrUigLZlxbYAw1HCNK','DM0Ty29UzMLYBv9FAgvHza','AgvHza','zgL2','y2fUy2vSvgv4Da','Dw5KzwzPBMvK','DM0Ty29UzMLYBq'];_0x4a62=function(){return _0x595b7b;};return _0x4a62();}import{createApp,h,ref}from'vue';import{Dialog,DialogContent,DialogFooter,DialogHeader,DialogTitle}from'#vome-host/components/ui/dialog';function _0x3c1f(_0x106206,_0xa99b12){_0x106206=_0x106206-0x91;const _0x4a6254=_0x4a62();let _0x3c1f58=_0x4a6254[_0x106206];if(_0x3c1f['XnGOYp']===undefined){var _0x505a04=function(_0x5e9bc3){const _0x475a81='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x48a727='',_0x44ae71='';for(let _0x3206c6=0x0,_0x205327,_0x204609,_0x71c3ff=0x0;_0x204609=_0x5e9bc3['charAt'](_0x71c3ff++);~_0x204609&&(_0x205327=_0x3206c6%0x4?_0x205327*0x40+_0x204609:_0x204609,_0x3206c6++%0x4)?_0x48a727+=String['fromCharCode'](0xff&_0x205327>>(-0x2*_0x3206c6&0x6)):0x0){_0x204609=_0x475a81['indexOf'](_0x204609);}for(let _0x2c2384=0x0,_0x349b25=_0x48a727['length'];_0x2c2384<_0x349b25;_0x2c2384++){_0x44ae71+='%'+('00'+_0x48a727['charCodeAt'](_0x2c2384)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x44ae71);};_0x3c1f['SQfSyS']=_0x505a04,_0x3c1f['tfKtEb']={},_0x3c1f['XnGOYp']=!![];}const _0x332007=_0x4a6254[0x0],_0x3e6435=_0x106206+_0x332007,_0x96251e=_0x3c1f['tfKtEb'][_0x3e6435];return!_0x96251e?(_0x3c1f58=_0x3c1f['SQfSyS'](_0x3c1f58),_0x3c1f['tfKtEb'][_0x3e6435]=_0x3c1f58):_0x3c1f58=_0x96251e,_0x3c1f58;}export function vmConfirm(_0x48a727){const _0x57ec31=_0x3c1f,_0x44ae71=typeof _0x48a727===_0x57ec31(0xad)?{'message':_0x48a727}:_0x48a727;return new Promise(_0x3206c6=>{const _0x4966ff=_0x57ec31,_0x205327=ref(!![]),_0x204609=document['createElement'](_0x4966ff(0x99));document['body'][_0x4966ff(0xac)](_0x204609);const _0x71c3ff=createApp({'setup'(){const _0xf77a21=_0x4966ff;function _0x2c2384(_0x349b25){const _0x2f2e4c=_0x3c1f;_0x205327[_0x2f2e4c(0x9f)]=![],_0x3206c6(_0x349b25),setTimeout(()=>{const _0x10ac3e=_0x2f2e4c;_0x71c3ff[_0x10ac3e(0xa6)](),_0x204609[_0x10ac3e(0xa0)]();},0xc8);}return()=>h(Dialog,{'open':_0x205327[_0xf77a21(0x9f)],'onUpdate:open':_0x3c2489=>{if(!_0x3c2489)_0x2c2384(![]);}},{'default':()=>h(DialogContent,{'class':_0xf77a21(0x9c),'showCloseButton':![]},{'default':()=>[h(DialogHeader,{'class':_0xf77a21(0x97)},()=>h(DialogTitle,{'class':'vm-confirm__title'},()=>_0x44ae71[_0xf77a21(0x93)]||'提示')),h(_0xf77a21(0x99),{'class':_0xf77a21(0x95)},_0x44ae71[_0xf77a21(0xa7)]),h(DialogFooter,{'class':'vm-confirm__foot'},()=>[h(_0xf77a21(0xb1),{'type':_0xf77a21(0xb1),'class':_0xf77a21(0xa3),'onClick':()=>_0x2c2384(![])},_0x44ae71[_0xf77a21(0x9a)]||'取消'),h(_0xf77a21(0xb1),{'type':_0xf77a21(0xb1),'class':_0xf77a21(0x96),'onClick':()=>_0x2c2384(!![])},_0x44ae71[_0xf77a21(0xab)]||'确定')])]})});}});_0x71c3ff[_0x4966ff(0x9d)](_0x204609);});}if(typeof document!==_0x5a8b21(0x9b)&&!document[_0x5a8b21(0xa8)](_0x5a8b21(0xa9))){const style=document[_0x5a8b21(0x9e)]('style');style['id']='vm-confirm-style',style[_0x5a8b21(0xa4)]=_0x5a8b21(0x91),document[_0x5a8b21(0x98)][_0x5a8b21(0xac)](style);}
1
+ const _0x4a3814=_0x5d9b;(function(_0x322690,_0x372369){const _0x5b9b91=_0x5d9b,_0x43314c=_0x322690();while(!![]){try{const _0x5a2873=-parseInt(_0x5b9b91(0xc8))/0x1*(-parseInt(_0x5b9b91(0xc9))/0x2)+parseInt(_0x5b9b91(0xb7))/0x3+parseInt(_0x5b9b91(0xc5))/0x4*(parseInt(_0x5b9b91(0xa9))/0x5)+parseInt(_0x5b9b91(0xcb))/0x6*(-parseInt(_0x5b9b91(0xb5))/0x7)+-parseInt(_0x5b9b91(0xc6))/0x8*(-parseInt(_0x5b9b91(0xac))/0x9)+-parseInt(_0x5b9b91(0xbf))/0xa*(-parseInt(_0x5b9b91(0xc2))/0xb)+parseInt(_0x5b9b91(0xb8))/0xc*(-parseInt(_0x5b9b91(0xba))/0xd);if(_0x5a2873===_0x372369)break;else _0x43314c['push'](_0x43314c['shift']());}catch(_0x30c665){_0x43314c['push'](_0x43314c['shift']());}}}(_0x1c85,0xcc64f));import{createApp,h,ref}from'vue';function _0x5d9b(_0x2d1013,_0x49a5d4){_0x2d1013=_0x2d1013-0xa9;const _0x1c8550=_0x1c85();let _0x5d9b07=_0x1c8550[_0x2d1013];if(_0x5d9b['LzklvQ']===undefined){var _0x55040c=function(_0x41e21a){const _0x5b67c9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x569966='',_0x430a1d='';for(let _0x39c684=0x0,_0x314703,_0x5a9265,_0x3f1f2b=0x0;_0x5a9265=_0x41e21a['charAt'](_0x3f1f2b++);~_0x5a9265&&(_0x314703=_0x39c684%0x4?_0x314703*0x40+_0x5a9265:_0x5a9265,_0x39c684++%0x4)?_0x569966+=String['fromCharCode'](0xff&_0x314703>>(-0x2*_0x39c684&0x6)):0x0){_0x5a9265=_0x5b67c9['indexOf'](_0x5a9265);}for(let _0x36e910=0x0,_0x8f4874=_0x569966['length'];_0x36e910<_0x8f4874;_0x36e910++){_0x430a1d+='%'+('00'+_0x569966['charCodeAt'](_0x36e910)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x430a1d);};_0x5d9b['HSFYgZ']=_0x55040c,_0x5d9b['mRVMMd']={},_0x5d9b['LzklvQ']=!![];}const _0x414c37=_0x1c8550[0x0],_0x356218=_0x2d1013+_0x414c37,_0x3523ae=_0x5d9b['mRVMMd'][_0x356218];return!_0x3523ae?(_0x5d9b07=_0x5d9b['HSFYgZ'](_0x5d9b07),_0x5d9b['mRVMMd'][_0x356218]=_0x5d9b07):_0x5d9b07=_0x3523ae,_0x5d9b07;}import{Dialog,DialogContent,DialogFooter,DialogHeader,DialogTitle}from'#vome-host/components/ui/dialog';export function vmConfirm(_0x569966){const _0x56c574=_0x5d9b,_0x430a1d=typeof _0x569966===_0x56c574(0xbd)?{'message':_0x569966}:_0x569966;return new Promise(_0x39c684=>{const _0x5e6d40=_0x56c574,_0x314703=ref(!![]),_0x5a9265=document['createElement']('div');document['body'][_0x5e6d40(0xb9)](_0x5a9265);const _0x3f1f2b=createApp({'setup'(){const _0xaffb7b=_0x5e6d40;function _0x36e910(_0x8f4874){_0x314703['value']=![],_0x39c684(_0x8f4874),setTimeout(()=>{const _0x15e6a2=_0x5d9b;_0x3f1f2b[_0x15e6a2(0xc4)](),_0x5a9265['remove']();},0xc8);}return()=>h(Dialog,{'open':_0x314703[_0xaffb7b(0xb4)],'onUpdate:open':_0x21095a=>{if(!_0x21095a)_0x36e910(![]);}},{'default':()=>h(DialogContent,{'class':_0xaffb7b(0xb3),'showCloseButton':![]},{'default':()=>[h(DialogHeader,{'class':_0xaffb7b(0xbc)},()=>h(DialogTitle,{'class':'vm-confirm__title'},()=>_0x430a1d[_0xaffb7b(0xca)]||'提示')),h(_0xaffb7b(0xb2),{'class':_0xaffb7b(0xad)},_0x430a1d[_0xaffb7b(0xab)]),h(DialogFooter,{'class':'vm-confirm__foot'},()=>[h(_0xaffb7b(0xc3),{'type':'button','class':_0xaffb7b(0xb1),'onClick':()=>_0x36e910(![])},_0x430a1d['cancelText']||'取消'),h('button',{'type':'button','class':_0xaffb7b(0xc0),'onClick':()=>_0x36e910(!![])},_0x430a1d[_0xaffb7b(0xbe)]||'确定')])]})});}});_0x3f1f2b[_0x5e6d40(0xaf)](_0x5a9265);});}function _0x1c85(){const _0x18ce70=['DM0Ty29UzMLYBv9FyNrUigLZlwDOB3n0','zgL2','DM0Ty29UzMLYBq','DMfSDwu','n3bLu21Yzq','AgvHza','mtaYntaYofjAENDiuq','mJi1nJyWBhnvy1zw','yxbWzw5Kq2HPBgq','mtq0m0nVtg9rzq','cI52Bs1JB25MAxjTw2rHDgeTC2XVDd0NzgLHBg9NlwnVBNrLBNqNxsb7cIaGD2LKDgG6ig1PBIG0mdbWEcWGy2fSyYGXmdb2DYaTidmYChGPksaHAw1WB3j0yw50oWOGig1HEc13Awr0AdOGBwLUkdqWmhb4lcbJywXJkdeWmhz3ic0GmZjWEcKPicfPBxbVCNrHBNq7cIaGz2fWoIaWicfPBxbVCNrHBNq7cIaGCgfKzgLUzZOGmcaHAw1WB3j0yw50oWOGigjVCMrLCJOGBM9UzsaHAw1WB3j0yw50oWOGigjVCMrLCI1YywrPDxm6idi0ChGGiwLTCg9YDgfUDdSkicbIB3GTC2HHzg93oIb2yxiOls1ZAgfKB3CTC29MDcKGiwLTCg9YDgfUDdSkFqOUDM0Ty29UzMLYBv9FAgvHzcb7ihbHzgrPBMC6ide4ChGGmJjWEcaWoYbIB3jKzxiTyM90Dg9ToIbUB25LoYb9cI52Bs1JB25MAxjTx190AxrSzsb7igzVBNqTC2L6ztOGmtzWEdSGzM9UDc13zwLNAhq6idy1mdSGFqOUDM0Ty29UzMLYBv9FyM9KEsb7cIaGCgfKzgLUzZOGmtjWEcaYmNb4idHWEdSkicbJB2XVCJOGDMfYkc0TzM9YzwDYB3vUzcK7cIaGzM9UDc1ZAxPLoIaXnhb4oWOGigXPBMuTAgvPz2H0oIaXlJy7cN0klNzTlwnVBMzPCM1Fx2zVB3qGEWOGigrPC3bSyxK6igzSzxG7cIaGANvZDgLMEs1JB250zw50oIbMBgv4lwvUzdSkicbNyxa6idHWEdSkicbWywrKAw5NoIaXnhb4idiYChG7cN0klNzTlwnVBMzPCM1Fx2j0BIb7cIaGAgvPz2H0oIaZnNb4oWOGihbHzgrPBMC6idaGmtzWEdSkicbIB3jKzxi6ig5VBMu7cIaGyM9YzgvYlxjHzgL1CZOGmtjWEdSkicbMB250lxnPEMu6ideZChG7cIaGzM9UDc13zwLNAhq6idyWmdSkicbJDxjZB3i6ihbVAw50zxi7cN0klNzTlwnVBMzPCM1Fx2j0BI5PCY1WCMLTyxj5ihSGyMfJA2DYB3vUzdOGDMfYkc0TyNjHBMqPoYbJB2XVCJOGi2zMzJSGFqOUDM0Ty29UzMLYBv9FyNrUlMLZlxbYAw1HCNK6Ag92zxiGEYbIywnRz3jVDw5KoIb2yxiOls1ICMfUzc1KzwvWktSGFqOUDM0Ty29UzMLYBv9FyNrUlMLZlwDOB3n0ihSGyMfJA2DYB3vUzdOGDMfYkc0TBxv0zwqPoYbJB2XVCJOGDMfYkc0TzM9YzwDYB3vUzcK7ih0k','DM0Ty29UzMLYBv9FAgvHza','C3rYAw5N','y29UzMLYBvrLEhq','nZy4odG2men2AfDtAW','DM0Ty29UzMLYBv9FyNrUigLZlxbYAw1HCNK','y3jLyxrLrwXLBwvUDa','mtfsB3zvrNC','yNv0Dg9U','Dw5TB3vUDa','mta4DgXSuhHs','nJK1nJKXmNjsywruAW','z2v0rwXLBwvUDej5swq','mJeYnZGZt2jwzg5x','ngnvrwfewG','DgL0Bgu','mteXotCWmNbVDgfZvq','mtmWnJm1seHgB09p','DM0Ty29UzMLYBs1ZDhLSzq','BwvZC2fNzq','ovbur1L4Bq','DM0Ty29UzMLYBv9FyM9KEq','C3r5Bgu','Bw91BNq','Dw5KzwzPBMvK'];_0x1c85=function(){return _0x18ce70;};return _0x1c85();}if(typeof document!==_0x4a3814(0xb0)&&!document[_0x4a3814(0xc7)](_0x4a3814(0xaa))){const style=document[_0x4a3814(0xc1)](_0x4a3814(0xae));style['id']=_0x4a3814(0xaa),style['textContent']=_0x4a3814(0xbb),document[_0x4a3814(0xb6)][_0x4a3814(0xb9)](style);}
@@ -1 +1 @@
1
- const _0x5151e9=_0x5bf8;(function(_0x3ee079,_0x370520){const _0x30b75c=_0x5bf8,_0x51efaa=_0x3ee079();while(!![]){try{const _0x52c88c=-parseInt(_0x30b75c(0x1b3))/0x1*(parseInt(_0x30b75c(0x1d4))/0x2)+-parseInt(_0x30b75c(0x1c1))/0x3+parseInt(_0x30b75c(0x1c2))/0x4*(parseInt(_0x30b75c(0x1d8))/0x5)+-parseInt(_0x30b75c(0x1cb))/0x6+-parseInt(_0x30b75c(0x1c5))/0x7*(-parseInt(_0x30b75c(0x1bd))/0x8)+parseInt(_0x30b75c(0x1d6))/0x9*(parseInt(_0x30b75c(0x1c7))/0xa)+parseInt(_0x30b75c(0x1c4))/0xb*(parseInt(_0x30b75c(0x1cd))/0xc);if(_0x52c88c===_0x370520)break;else _0x51efaa['push'](_0x51efaa['shift']());}catch(_0x588698){_0x51efaa['push'](_0x51efaa['shift']());}}}(_0x1dab,0xda23b));function _0x5bf8(_0x46ddda,_0x2589aa){_0x46ddda=_0x46ddda-0x1b1;const _0x1dab0d=_0x1dab();let _0x5bf864=_0x1dab0d[_0x46ddda];if(_0x5bf8['ITFeqy']===undefined){var _0x12a211=function(_0x5eb2ab){const _0x4b37e5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x54154e='',_0x2769a3='';for(let _0x1c8c2a=0x0,_0x4b5d9a,_0x1e310f,_0x42a568=0x0;_0x1e310f=_0x5eb2ab['charAt'](_0x42a568++);~_0x1e310f&&(_0x4b5d9a=_0x1c8c2a%0x4?_0x4b5d9a*0x40+_0x1e310f:_0x1e310f,_0x1c8c2a++%0x4)?_0x54154e+=String['fromCharCode'](0xff&_0x4b5d9a>>(-0x2*_0x1c8c2a&0x6)):0x0){_0x1e310f=_0x4b37e5['indexOf'](_0x1e310f);}for(let _0x528db1=0x0,_0x5023d5=_0x54154e['length'];_0x528db1<_0x5023d5;_0x528db1++){_0x2769a3+='%'+('00'+_0x54154e['charCodeAt'](_0x528db1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2769a3);};_0x5bf8['AHheWY']=_0x12a211,_0x5bf8['HyEzst']={},_0x5bf8['ITFeqy']=!![];}const _0x25f5b2=_0x1dab0d[0x0],_0x3488d6=_0x46ddda+_0x25f5b2,_0x44e394=_0x5bf8['HyEzst'][_0x3488d6];return!_0x44e394?(_0x5bf864=_0x5bf8['AHheWY'](_0x5bf864),_0x5bf8['HyEzst'][_0x3488d6]=_0x5bf864):_0x5bf864=_0x44e394,_0x5bf864;}function _0x1dab(){const _0x15f87f=['DxbKyxrL','B3jKzxi','5PQc5PEG5PwW5O2U','mJe1mJiWmg5YvNvIAq','mJbqrg9gC0y','6zQq6jEp5yAf5A65','otK3odiYmwXKv2fQzq','mJaZy0Dezxjs','5PYa5Bcp5yc8','mJiWy1LlugTJ','ywrK','5ywXihSWFsdMNAe','5lIk5lIa6Ag1','mZKZndy2ohv2tgTWzq','5l+D5A2y5OIq5yQF','mtjACfrIrM4','5lIl5lIa6Ag1','BgLZDa','CgfNzq','5P+L55Yl5PU05AsA','C2L6zq','A2v5v29Yza','ndiZnZu4wfnuz2zK','5PcC57sI5ywZ6zsU5A2x','ntm0ntCZDwvkyuT0','5B275BQv5yIG6zMK','mtaZnZmZnu5LA0fQBG','5lIn6io95lI656M6','5BEY5B275BQv5yIG6zMK','5Q2K5Pon5l2C5Bcg5Rc45lMf5yIG6zMK6ycj5lIT5PwW5O2U77Ym5PIV5zcM57UN57UT77YF','ofPWEgTsta','5yQG6l295lIT4OcM','6k+36l6t5ywL','5Q2K5Pon5l2C5Bcg5PwW5O2U5Qch6k6W5lI65BEY5yIG6zMK77Ym5PIV5zcM57UN57UT77YF','5yIG6zMK5OIq5yQF','5ywZ6zsU5A2x','6ycj5OUPEZb9','5zUE5Ps256Uz','5y+w5RAi6ycj5OUP','5BEY5yIG6zMK','mtK2mda4t091zMzZ'];_0x1dab=function(){return _0x15f87f;};return _0x1dab();}export const CRUD_LABELS={'op':'操作','add':'新增','delete':'删除','multiDelete':'删除','export':'导出','import':'导入','update':'编辑','refresh':'刷新','info':'详情','search':'搜索','reset':'重置','clear':'清空','save':'保存','close':'取消','confirm':'确定','advSearch':'高级搜索','searchKey':_0x5151e9(0x1d5),'placeholder':_0x5151e9(0x1b5),'tips':'提示','saveSuccess':_0x5151e9(0x1cc),'deleteSuccess':_0x5151e9(0x1b7),'deleteConfirm':_0x5151e9(0x1b6),'forceDeleteConfirm':_0x5151e9(0x1b2),'empty':_0x5151e9(0x1c0),'desc':'降序','asc':'升序','select':'选择','deselect':_0x5151e9(0x1bb),'seeMore':_0x5151e9(0x1d1),'hideContent':_0x5151e9(0x1c3),'nonEmpty':_0x5151e9(0x1d9),'list':'列表','trash':_0x5151e9(0x1ba),'searchNamed':'搜索{0}','selectNamed':_0x5151e9(0x1b9),'keyword':_0x5151e9(0x1b8),'range':'区间','min':_0x5151e9(0x1c6),'max':'最大值','start':'开始','end':'结束','total':_0x5151e9(0x1c9),'pageSize':'{0}\x20/\x20页','prevPage':_0x5151e9(0x1ca),'nextPage':_0x5151e9(0x1ce),'forceDeleted':_0x5151e9(0x1b1),'deleted':_0x5151e9(0x1bc),'restore':'恢复','forceDelete':_0x5151e9(0x1d7),'loading':_0x5151e9(0x1b4)};export const DEFAULT_CRUD_DICT={'primaryId':'id','api':{'list':_0x5151e9(0x1cf),'add':_0x5151e9(0x1c8),'update':_0x5151e9(0x1be),'delete':'delete','info':'info','page':'page'},'pagination':{'page':_0x5151e9(0x1d0),'size':_0x5151e9(0x1d2)},'search':{'keyWord':_0x5151e9(0x1d3),'query':'query'},'sort':{'prop':_0x5151e9(0x1bf),'order':'sort'},'label':CRUD_LABELS};
1
+ const _0xb0f0ad=_0x29be;(function(_0x169ab4,_0x555515){const _0x1b7be6=_0x29be,_0x4b68de=_0x169ab4();while(!![]){try{const _0x2ab180=-parseInt(_0x1b7be6(0x174))/0x1+-parseInt(_0x1b7be6(0x159))/0x2+-parseInt(_0x1b7be6(0x15d))/0x3*(parseInt(_0x1b7be6(0x166))/0x4)+-parseInt(_0x1b7be6(0x158))/0x5+-parseInt(_0x1b7be6(0x156))/0x6+-parseInt(_0x1b7be6(0x16f))/0x7+parseInt(_0x1b7be6(0x16a))/0x8*(parseInt(_0x1b7be6(0x168))/0x9);if(_0x2ab180===_0x555515)break;else _0x4b68de['push'](_0x4b68de['shift']());}catch(_0x46075b){_0x4b68de['push'](_0x4b68de['shift']());}}}(_0x452d,0x467ef));function _0x29be(_0xab0ea9,_0x39b6a2){_0xab0ea9=_0xab0ea9-0x153;const _0x452de7=_0x452d();let _0x29be29=_0x452de7[_0xab0ea9];if(_0x29be['ByTOHG']===undefined){var _0x1aa7e4=function(_0x1511c3){const _0x174a36='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x140223='',_0x25c9d8='';for(let _0x271c81=0x0,_0x2602a2,_0xcc8a1b,_0x3a9f10=0x0;_0xcc8a1b=_0x1511c3['charAt'](_0x3a9f10++);~_0xcc8a1b&&(_0x2602a2=_0x271c81%0x4?_0x2602a2*0x40+_0xcc8a1b:_0xcc8a1b,_0x271c81++%0x4)?_0x140223+=String['fromCharCode'](0xff&_0x2602a2>>(-0x2*_0x271c81&0x6)):0x0){_0xcc8a1b=_0x174a36['indexOf'](_0xcc8a1b);}for(let _0x14de88=0x0,_0x8e4bb3=_0x140223['length'];_0x14de88<_0x8e4bb3;_0x14de88++){_0x25c9d8+='%'+('00'+_0x140223['charCodeAt'](_0x14de88)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x25c9d8);};_0x29be['xyGujZ']=_0x1aa7e4,_0x29be['NwmGUG']={},_0x29be['ByTOHG']=!![];}const _0xf5087=_0x452de7[0x0],_0x40d875=_0xab0ea9+_0xf5087,_0x4b1fb0=_0x29be['NwmGUG'][_0x40d875];return!_0x4b1fb0?(_0x29be29=_0x29be['xyGujZ'](_0x29be29),_0x29be['NwmGUG'][_0x40d875]=_0x29be29):_0x29be29=_0x4b1fb0,_0x29be29;}export const CRUD_LABELS={'op':'操作','add':'新增','delete':'删除','multiDelete':'删除','export':'导出','import':'导入','update':'编辑','refresh':'刷新','info':'详情','search':'搜索','reset':'重置','clear':'清空','save':'保存','close':'取消','confirm':'确定','advSearch':_0xb0f0ad(0x15b),'searchKey':_0xb0f0ad(0x16c),'placeholder':_0xb0f0ad(0x169),'tips':'提示','saveSuccess':_0xb0f0ad(0x163),'deleteSuccess':'删除成功','deleteConfirm':_0xb0f0ad(0x160),'forceDeleteConfirm':'此操作将永久删除选中数据,是否继续?','empty':_0xb0f0ad(0x153),'desc':'降序','asc':'升序','select':'选择','deselect':_0xb0f0ad(0x165),'seeMore':'查看更多','hideContent':_0xb0f0ad(0x167),'nonEmpty':_0xb0f0ad(0x173),'list':'列表','trash':_0xb0f0ad(0x15e),'searchNamed':'搜索{0}','selectNamed':_0xb0f0ad(0x171),'keyword':_0xb0f0ad(0x175),'range':'区间','min':'最小值','max':_0xb0f0ad(0x16e),'start':'开始','end':'结束','total':'共\x20{0}\x20','pageSize':_0xb0f0ad(0x176),'prevPage':_0xb0f0ad(0x16b),'nextPage':'下一页','forceDeleted':_0xb0f0ad(0x157),'deleted':_0xb0f0ad(0x172),'restore':'恢复','forceDelete':_0xb0f0ad(0x162),'loading':_0xb0f0ad(0x16d)};export const DEFAULT_CRUD_DICT={'primaryId':'id','api':{'list':_0xb0f0ad(0x15f),'add':'add','update':_0xb0f0ad(0x161),'delete':_0xb0f0ad(0x170),'info':_0xb0f0ad(0x164),'page':'page'},'pagination':{'page':_0xb0f0ad(0x154),'size':_0xb0f0ad(0x15c)},'search':{'keyWord':_0xb0f0ad(0x15a),'query':'query'},'sort':{'prop':_0xb0f0ad(0x155),'order':_0xb0f0ad(0x177)},'label':CRUD_LABELS};function _0x452d(){const _0x18ef5a=['BgLZDa','5Q2K5Pon5l2C5Bcg5PwW5O2U5Qch6k6W5lI65BEY5yIG6zMK77Ym5PIV5zcM57UN57UT77YF','DxbKyxrL','5B275BQv5yIG6zMK','5l+D5A2y5OIq5yQF','Aw5MBW','5y+w5RAi6ycj5OUP','mtu2mZaWDg5quuPK','6zQq6jEp5yAf5A65','mtCXotu3ndj4uu11wMq','6k+36l6t5ywL','oe1iuwzkuq','5lIk5lIa6Ag1','5PcC57sI5ywZ6zsU5A2x','5yQG6l295lIT4OcM','5PYa5AsN5yc8','mJi3mZKWmwPSA0HNEa','zgvSzxrL','6ycj5OUPEZb9','5BEY5yIG6zMK','5lIn6io95lI656M6','mte5oteYwfjqDKHL','5ywZ6zsU5A2x','EZb9ic8G6Ag1','C29YDa','5PQc5PEG5PwW5O2U','CgfNzq','B3jKzxi','mZe5otq0mfnvA1vUCa','5BEY5B275BQv5yIG6zMK','mJeXmZG5mgnczwTmyG','mJa3nZC4yLHrDMzT','A2v5v29Yza','6AUy57QN5PcC57sI','C2L6zq','ouTZqLHtsq','5zUE5Ps256Uz'];_0x452d=function(){return _0x18ef5a;};return _0x452d();}
@@ -1 +1 @@
1
- const _0x1a0cbc=_0xa531;(function(_0x28df23,_0x537285){const _0x2e9994=_0xa531,_0x4a8758=_0x28df23();while(!![]){try{const _0x174b48=-parseInt(_0x2e9994(0x6f))/0x1+parseInt(_0x2e9994(0x68))/0x2+parseInt(_0x2e9994(0x6e))/0x3+-parseInt(_0x2e9994(0x6d))/0x4*(-parseInt(_0x2e9994(0x6a))/0x5)+-parseInt(_0x2e9994(0x71))/0x6*(-parseInt(_0x2e9994(0x6b))/0x7)+parseInt(_0x2e9994(0x72))/0x8+parseInt(_0x2e9994(0x70))/0x9*(-parseInt(_0x2e9994(0x6c))/0xa);if(_0x174b48===_0x537285)break;else _0x4a8758['push'](_0x4a8758['shift']());}catch(_0x2155e8){_0x4a8758['push'](_0x4a8758['shift']());}}}(_0xbc1f,0xe708a));import{inject}from'vue';export const CRUD_KEY=Symbol('vm-crud');function _0xa531(_0x510baf,_0x40bd78){_0x510baf=_0x510baf-0x66;const _0xbc1f74=_0xbc1f();let _0xa5314f=_0xbc1f74[_0x510baf];if(_0xa531['PEuHnZ']===undefined){var _0x3dbcf2=function(_0x57f0f5){const _0x244f8c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x59addd='',_0x1ae2cf='';for(let _0x594123=0x0,_0x5be7f6,_0x52496f,_0x3b22fb=0x0;_0x52496f=_0x57f0f5['charAt'](_0x3b22fb++);~_0x52496f&&(_0x5be7f6=_0x594123%0x4?_0x5be7f6*0x40+_0x52496f:_0x52496f,_0x594123++%0x4)?_0x59addd+=String['fromCharCode'](0xff&_0x5be7f6>>(-0x2*_0x594123&0x6)):0x0){_0x52496f=_0x244f8c['indexOf'](_0x52496f);}for(let _0x5683d4=0x0,_0x15d6da=_0x59addd['length'];_0x5683d4<_0x15d6da;_0x5683d4++){_0x1ae2cf+='%'+('00'+_0x59addd['charCodeAt'](_0x5683d4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1ae2cf);};_0xa531['oRyKMC']=_0x3dbcf2,_0xa531['XBVyUD']={},_0xa531['PEuHnZ']=!![];}const _0x1ad63e=_0xbc1f74[0x0],_0x2c4000=_0x510baf+_0x1ad63e,_0x45686b=_0xa531['XBVyUD'][_0x2c4000];return!_0x45686b?(_0xa5314f=_0xa531['oRyKMC'](_0xa5314f),_0xa531['XBVyUD'][_0x2c4000]=_0xa5314f):_0xa5314f=_0x45686b,_0xa5314f;}export const CRUD_MITT_KEY=Symbol(_0x1a0cbc(0x69));export const CRUD_OPTIONS_KEY=Symbol(_0x1a0cbc(0x67));export const TABLE_OPTIONS_KEY=Symbol('useTable__options');export const UPSERT_OPTIONS_KEY=Symbol(_0x1a0cbc(0x73));export const SEARCH_OPTIONS_KEY=Symbol(_0x1a0cbc(0x66));export const TABLE_API_KEY=Symbol('vm-table-api');export function injectCrudOptions(){return inject(CRUD_OPTIONS_KEY,undefined);}export function injectTableOptions(){return inject(TABLE_OPTIONS_KEY,undefined);}export function injectUpsertOptions(){return inject(UPSERT_OPTIONS_KEY,undefined);}export function injectSearchOptions(){return inject(SEARCH_OPTIONS_KEY,undefined);}function _0xbc1f(){const _0x42be8b=['mtiZmJK4mtzgqMPvCxa','DxnLvxbZzxj0x19VChrPB25Z','DxnLu2vHCMnOx19VChrPB25Z','DxnLq3j1zf9FB3b0Aw9UCW','mZi5otK0ne1gqK9QvW','DM0Ty3j1zc1TAxr0','mtvmDK1UD2K','mtrPwgvswwW','odiWmdmWDgLZv1DA','mtGZmte4ofHrruLZrG','nti2nty5mhzkteTSta','odi1nZyXCe5iCvPe','ntq5uePHENHL','mtm2mZmXnff4DMjjrq'];_0xbc1f=function(){return _0x42be8b;};return _0xbc1f();}
1
+ function _0x3744(_0x2f9f61,_0x338b1b){_0x2f9f61=_0x2f9f61-0x186;const _0x16c91e=_0x16c9();let _0x3744b7=_0x16c91e[_0x2f9f61];if(_0x3744['FNLTvS']===undefined){var _0xbfff43=function(_0x1d3ead){const _0x37be9e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3b7321='',_0x3aabb6='';for(let _0x1a5359=0x0,_0x85afa5,_0x405b61,_0x4322b7=0x0;_0x405b61=_0x1d3ead['charAt'](_0x4322b7++);~_0x405b61&&(_0x85afa5=_0x1a5359%0x4?_0x85afa5*0x40+_0x405b61:_0x405b61,_0x1a5359++%0x4)?_0x3b7321+=String['fromCharCode'](0xff&_0x85afa5>>(-0x2*_0x1a5359&0x6)):0x0){_0x405b61=_0x37be9e['indexOf'](_0x405b61);}for(let _0x360a7d=0x0,_0x3779b6=_0x3b7321['length'];_0x360a7d<_0x3779b6;_0x360a7d++){_0x3aabb6+='%'+('00'+_0x3b7321['charCodeAt'](_0x360a7d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3aabb6);};_0x3744['daFaUj']=_0xbfff43,_0x3744['LXfIHr']={},_0x3744['FNLTvS']=!![];}const _0x506b37=_0x16c91e[0x0],_0x36c58c=_0x2f9f61+_0x506b37,_0x3975ea=_0x3744['LXfIHr'][_0x36c58c];return!_0x3975ea?(_0x3744b7=_0x3744['daFaUj'](_0x3744b7),_0x3744['LXfIHr'][_0x36c58c]=_0x3744b7):_0x3744b7=_0x3975ea,_0x3744b7;}function _0x16c9(){const _0xe54429=['nte3mtqZnK9utKfdqW','mtC2mtm4mgjkD0nQyq','mJK2mty4t3LhDxjX','ntq1mZaWnwf6uLP6DG','DxnLvxbZzxj0x19VChrPB25Z','mJrbs0P2Afm','DM0Ty3j1zc1TAxr0','DxnLu2vHCMnOx19VChrPB25Z','mJjVsMPKt28','DM0TDgfIBguTyxbP','mZaZmZa5sM13tNDI','mti4rgPTvvvs','nJa5mde4sg1twu1L','DM0Ty3j1za','oda4odaXv2PdzfDr','mJrmzKr1A0O','mwDYAwjHsa','DxnLq3j1zf9FB3b0Aw9UCW'];_0x16c9=function(){return _0xe54429;};return _0x16c9();}const _0x3bce24=_0x3744;(function(_0x90b0d7,_0x580346){const _0x7c66e6=_0x3744,_0x5dbc58=_0x90b0d7();while(!![]){try{const _0x3a08db=parseInt(_0x7c66e6(0x193))/0x1*(parseInt(_0x7c66e6(0x18f))/0x2)+parseInt(_0x7c66e6(0x188))/0x3*(-parseInt(_0x7c66e6(0x197))/0x4)+-parseInt(_0x7c66e6(0x186))/0x5+parseInt(_0x7c66e6(0x192))/0x6*(parseInt(_0x7c66e6(0x191))/0x7)+parseInt(_0x7c66e6(0x18e))/0x8*(parseInt(_0x7c66e6(0x18d))/0x9)+parseInt(_0x7c66e6(0x196))/0xa+-parseInt(_0x7c66e6(0x18b))/0xb*(-parseInt(_0x7c66e6(0x195))/0xc);if(_0x3a08db===_0x580346)break;else _0x5dbc58['push'](_0x5dbc58['shift']());}catch(_0xdcaf02){_0x5dbc58['push'](_0x5dbc58['shift']());}}}(_0x16c9,0xa160c));import{inject}from'vue';export const CRUD_KEY=Symbol(_0x3bce24(0x190));export const CRUD_MITT_KEY=Symbol(_0x3bce24(0x189));export const CRUD_OPTIONS_KEY=Symbol(_0x3bce24(0x194));export const TABLE_OPTIONS_KEY=Symbol('useTable__options');export const UPSERT_OPTIONS_KEY=Symbol(_0x3bce24(0x187));export const SEARCH_OPTIONS_KEY=Symbol(_0x3bce24(0x18a));export const TABLE_API_KEY=Symbol(_0x3bce24(0x18c));export function injectCrudOptions(){return inject(CRUD_OPTIONS_KEY,undefined);}export function injectTableOptions(){return inject(TABLE_OPTIONS_KEY,undefined);}export function injectUpsertOptions(){return inject(UPSERT_OPTIONS_KEY,undefined);}export function injectSearchOptions(){return inject(SEARCH_OPTIONS_KEY,undefined);}