vome-core 0.0.38 → 0.0.40

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,16 +1,92 @@
1
1
  <template>
2
- <div class="vm-markdown" v-html="html" />
2
+ <div
3
+ class="vm-markdown"
4
+ :class="{
5
+ 'is-shell': showShell,
6
+ 'is-disabled': disabled,
7
+ }"
8
+ >
9
+ <div v-if="showTabs" class="vm-markdown__tabs" role="tablist">
10
+ <button
11
+ type="button"
12
+ class="vm-markdown__tab"
13
+ :class="{ 'is-on': tab === 'edit' }"
14
+ role="tab"
15
+ :aria-selected="tab === 'edit'"
16
+ @click="tab = 'edit'"
17
+ >
18
+ 编辑
19
+ </button>
20
+ <button
21
+ type="button"
22
+ class="vm-markdown__tab"
23
+ :class="{ 'is-on': tab === 'preview' }"
24
+ role="tab"
25
+ :aria-selected="tab === 'preview'"
26
+ @click="tab = 'preview'"
27
+ >
28
+ 预览
29
+ </button>
30
+ </div>
31
+
32
+ <textarea
33
+ v-if="editEnabled && (!previewEnabled || tab === 'edit')"
34
+ ref="editorRef"
35
+ class="vm-markdown__editor"
36
+ :style="editorStyle"
37
+ :value="text"
38
+ :disabled="disabled || uploading"
39
+ :placeholder="placeholder"
40
+ @input="onInput"
41
+ @paste="onPaste"
42
+ />
43
+
44
+ <div
45
+ v-if="previewEnabled && (!editEnabled || tab === 'preview')"
46
+ class="vm-markdown__preview"
47
+ :class="{ 'is-bare': !editEnabled }"
48
+ :style="editEnabled ? editorStyle : undefined"
49
+ v-html="html"
50
+ />
51
+
52
+ <p v-if="uploading" class="vm-markdown__hint">图片上传中…</p>
53
+ </div>
3
54
  </template>
4
55
 
5
56
  <script setup lang="ts">
6
- import { computed } from 'vue'
57
+ import { computed, nextTick, ref, watch } from 'vue'
7
58
  import DOMPurify from 'dompurify'
8
59
  import { marked } from 'marked'
9
60
 
10
61
  defineOptions({ name: 'vm-markdown' })
11
62
 
12
- const props = defineProps<{
13
- source?: string
63
+ const props = withDefaults(
64
+ defineProps<{
65
+ /** 只读预览源(兼容旧用法);与 v-model 二选一,优先 modelValue */
66
+ source?: string
67
+ modelValue?: string | null
68
+ /** 是否可编辑 Markdown 源码,默认 false */
69
+ edit?: boolean
70
+ /** 是否显示预览,默认 true */
71
+ preview?: boolean
72
+ disabled?: boolean
73
+ placeholder?: string
74
+ /** 编辑区 / 预览区最小高度 */
75
+ height?: number | string
76
+ /** 粘贴图片时上传,返回可访问 url;未传则忽略图片粘贴 */
77
+ uploadImage?: (file: File) => Promise<string>
78
+ }>(),
79
+ {
80
+ edit: false,
81
+ preview: true,
82
+ disabled: false,
83
+ placeholder: '支持 Markdown;可粘贴图片(需配置 uploadImage)',
84
+ height: 280,
85
+ },
86
+ )
87
+
88
+ const emit = defineEmits<{
89
+ 'update:modelValue': [v: string]
14
90
  }>()
15
91
 
16
92
  marked.setOptions({
@@ -18,14 +94,97 @@ marked.setOptions({
18
94
  breaks: false,
19
95
  })
20
96
 
97
+ const editorRef = ref<HTMLTextAreaElement | null>(null)
98
+ const uploading = ref(false)
99
+ const tab = ref<'edit' | 'preview'>('edit')
100
+
101
+ const editEnabled = computed(() => Boolean(props.edit))
102
+ const previewEnabled = computed(() => {
103
+ // 至少保留一种能力:两者都关时按只读预览
104
+ if (!props.edit && !props.preview) return true
105
+ return Boolean(props.preview)
106
+ })
107
+
108
+ const showTabs = computed(() => editEnabled.value && previewEnabled.value)
109
+ const showShell = computed(() => editEnabled.value || showTabs.value)
110
+
111
+ const text = computed(() => {
112
+ if (props.modelValue != null) return String(props.modelValue)
113
+ return String(props.source ?? '')
114
+ })
115
+
21
116
  const html = computed(() => {
22
- const raw = String(props.source || '')
117
+ const raw = text.value
23
118
  if (!raw.trim()) return ''
24
119
  const parsed = marked.parse(raw, { async: false }) as string
25
120
  return DOMPurify.sanitize(parsed, {
26
121
  USE_PROFILES: { html: true },
27
122
  })
28
123
  })
124
+
125
+ const editorStyle = computed(() => ({
126
+ minHeight:
127
+ typeof props.height === 'number' ? `${props.height}px` : props.height,
128
+ }))
129
+
130
+ watch(
131
+ showTabs,
132
+ (both) => {
133
+ if (both) tab.value = 'edit'
134
+ },
135
+ { immediate: true },
136
+ )
137
+
138
+ function onInput(e: Event) {
139
+ const v = (e.target as HTMLTextAreaElement).value
140
+ emit('update:modelValue', v)
141
+ }
142
+
143
+ function insertAtCursor(snippet: string) {
144
+ const el = editorRef.value
145
+ const cur = text.value
146
+ if (!el) {
147
+ emit('update:modelValue', `${cur}${snippet}`)
148
+ return
149
+ }
150
+ const start = el.selectionStart ?? cur.length
151
+ const end = el.selectionEnd ?? cur.length
152
+ const next = cur.slice(0, start) + snippet + cur.slice(end)
153
+ emit('update:modelValue', next)
154
+ void nextTick(() => {
155
+ const pos = start + snippet.length
156
+ el.focus()
157
+ el.setSelectionRange(pos, pos)
158
+ })
159
+ }
160
+
161
+ async function onPaste(e: ClipboardEvent) {
162
+ if (!props.uploadImage || props.disabled || uploading.value) return
163
+ const items = e.clipboardData?.items
164
+ if (!items?.length) return
165
+
166
+ const files: File[] = []
167
+ for (const item of Array.from(items)) {
168
+ if (item.kind === 'file' && item.type.startsWith('image/')) {
169
+ const file = item.getAsFile()
170
+ if (file) files.push(file)
171
+ }
172
+ }
173
+ if (!files.length) return
174
+
175
+ e.preventDefault()
176
+ uploading.value = true
177
+ try {
178
+ for (const file of files) {
179
+ const url = await props.uploadImage(file)
180
+ const alt =
181
+ (file.name || 'image').replace(/\.[^.]+$/, '').trim() || 'image'
182
+ insertAtCursor(`\n![${alt}](${url})\n`)
183
+ }
184
+ } finally {
185
+ uploading.value = false
186
+ }
187
+ }
29
188
  </script>
30
189
 
31
190
  <style lang="scss" scoped>
@@ -34,7 +193,82 @@ const html = computed(() => {
34
193
  font-size: 14px;
35
194
  line-height: 1.7;
36
195
  word-break: break-word;
196
+ }
37
197
 
198
+ .vm-markdown.is-shell {
199
+ border: 1px solid var(--border);
200
+ border-radius: var(--radius, 12px);
201
+ overflow: hidden;
202
+ background: var(--card, #fff);
203
+ }
204
+
205
+ .vm-markdown.is-disabled {
206
+ opacity: 0.65;
207
+ pointer-events: none;
208
+ }
209
+
210
+ .vm-markdown__tabs {
211
+ display: flex;
212
+ border-bottom: 1px solid var(--border);
213
+ background: var(--muted, #f7f8fc);
214
+ }
215
+
216
+ .vm-markdown__tab {
217
+ appearance: none;
218
+ border: 0;
219
+ background: transparent;
220
+ padding: 10px 16px;
221
+ font: inherit;
222
+ font-size: 14px;
223
+ font-weight: 600;
224
+ color: var(--muted-foreground);
225
+ cursor: pointer;
226
+ }
227
+
228
+ .vm-markdown__tab.is-on {
229
+ color: var(--brand);
230
+ background: var(--card, #fff);
231
+ box-shadow: inset 0 -2px 0 var(--brand);
232
+ }
233
+
234
+ .vm-markdown__editor {
235
+ display: block;
236
+ width: 100%;
237
+ margin: 0;
238
+ padding: 14px 16px;
239
+ border: 0;
240
+ resize: vertical;
241
+ box-sizing: border-box;
242
+ background: color-mix(in srgb, var(--brand) 3%, var(--background, #fff));
243
+ color: var(--foreground);
244
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
245
+ font-size: 13.5px;
246
+ line-height: 1.6;
247
+ }
248
+
249
+ .vm-markdown__editor:focus {
250
+ outline: none;
251
+ background: var(--card, #fff);
252
+ }
253
+
254
+ .vm-markdown__preview {
255
+ padding: 14px 16px;
256
+ box-sizing: border-box;
257
+ }
258
+
259
+ .vm-markdown__preview.is-bare {
260
+ padding: 0;
261
+ min-height: 0;
262
+ }
263
+
264
+ .vm-markdown__hint {
265
+ margin: 0;
266
+ padding: 8px 16px 12px;
267
+ font-size: 13px;
268
+ color: var(--muted-foreground);
269
+ }
270
+
271
+ .vm-markdown__preview {
38
272
  :deep(h1),
39
273
  :deep(h2),
40
274
  :deep(h3),
@@ -138,5 +372,11 @@ const html = computed(() => {
138
372
  background: color-mix(in srgb, var(--foreground) 4%, var(--background));
139
373
  font-weight: 650;
140
374
  }
375
+
376
+ :deep(img) {
377
+ max-width: 100%;
378
+ height: auto;
379
+ border-radius: 8px;
380
+ }
141
381
  }
142
382
  </style>
@@ -0,0 +1,265 @@
1
+ <template>
2
+ <div
3
+ class="vm-marquee"
4
+ :class="{ 'is-paused': hoverPaused }"
5
+ @mouseenter="onEnter"
6
+ @mouseleave="onLeave"
7
+ >
8
+ <div v-if="showIcon" class="vm-marquee__icon" aria-hidden="true">
9
+ <slot name="icon">
10
+ <VmRiIcon v-if="icon" :name="icon" />
11
+ </slot>
12
+ </div>
13
+ <div ref="viewportRef" class="vm-marquee__viewport">
14
+ <div ref="trackRef" class="vm-marquee__track">
15
+ {{ currentText }}
16
+ </div>
17
+ </div>
18
+ </div>
19
+ </template>
20
+
21
+ <script setup lang="ts">
22
+ import {
23
+ computed,
24
+ nextTick,
25
+ onMounted,
26
+ onUnmounted,
27
+ ref,
28
+ useSlots,
29
+ watch,
30
+ } from 'vue'
31
+ import VmRiIcon from './vm-ri-icon.vue'
32
+
33
+ defineOptions({ name: 'vm-marquee' })
34
+
35
+ const props = withDefaults(
36
+ defineProps<{
37
+ /** 消息列表;仅 1 条时单条循环 */
38
+ messages?: string[]
39
+ /** Remix Icon 名,如 ri-notification-3-line;也可用 #icon 插槽完全自定义 */
40
+ icon?: string
41
+ /** 单条滚完后的停顿(毫秒) */
42
+ pause?: number
43
+ /** 滚动速度(px/s) */
44
+ speed?: number
45
+ /** 悬停暂停 */
46
+ pauseOnHover?: boolean
47
+ }>(),
48
+ {
49
+ messages: () => [],
50
+ pause: 3000,
51
+ speed: 60,
52
+ pauseOnHover: true,
53
+ },
54
+ )
55
+
56
+ const slots = useSlots()
57
+ const showIcon = computed(() => Boolean(props.icon) || Boolean(slots.icon))
58
+
59
+ const list = computed(() =>
60
+ (props.messages || []).map((s) => String(s ?? '').trim()).filter(Boolean),
61
+ )
62
+
63
+ const index = ref(0)
64
+ const currentText = computed(() => list.value[index.value] ?? '')
65
+
66
+ const viewportRef = ref<HTMLElement | null>(null)
67
+ const trackRef = ref<HTMLElement | null>(null)
68
+ const hoverPaused = ref(false)
69
+
70
+ let anim: Animation | null = null
71
+ let pauseTimer: ReturnType<typeof setTimeout> | null = null
72
+ let pauseResolve: (() => void) | null = null
73
+ /** 递增后旧循环全部退出,避免 messages 变更时双循环 */
74
+ let loopGen = 0
75
+
76
+ function clearPauseTimer() {
77
+ if (pauseTimer != null) {
78
+ clearTimeout(pauseTimer)
79
+ pauseTimer = null
80
+ }
81
+ if (pauseResolve) {
82
+ const resolve = pauseResolve
83
+ pauseResolve = null
84
+ resolve()
85
+ }
86
+ }
87
+
88
+ function cancelAnim() {
89
+ anim?.cancel()
90
+ anim = null
91
+ }
92
+
93
+ function advanceIndex() {
94
+ const n = list.value.length
95
+ if (n <= 0) {
96
+ index.value = 0
97
+ return
98
+ }
99
+ index.value = (index.value + 1) % n
100
+ }
101
+
102
+ function sleep(ms: number) {
103
+ return new Promise<void>((resolve) => {
104
+ clearPauseTimer()
105
+ pauseResolve = resolve
106
+ pauseTimer = setTimeout(() => {
107
+ pauseTimer = null
108
+ pauseResolve = null
109
+ resolve()
110
+ }, ms)
111
+ })
112
+ }
113
+
114
+ async function waitWhileHovered(gen: number) {
115
+ while (hoverPaused.value && gen === loopGen) {
116
+ await sleep(100)
117
+ }
118
+ }
119
+
120
+ async function runOnce(gen: number): Promise<void> {
121
+ const viewport = viewportRef.value
122
+ const track = trackRef.value
123
+ if (!viewport || !track || !list.value.length || gen !== loopGen) return
124
+
125
+ await nextTick()
126
+ if (gen !== loopGen) return
127
+ await nextTick()
128
+ if (gen !== loopGen) return
129
+
130
+ const from = viewport.clientWidth
131
+ const textW = Math.max(track.scrollWidth, 1)
132
+ const to = -textW
133
+ const distance = from - to
134
+ const duration = Math.max(
135
+ 800,
136
+ Math.round((distance / Math.max(props.speed, 1)) * 1000),
137
+ )
138
+
139
+ cancelAnim()
140
+ // translateY(-50%) 与 top:50% 配合做垂直居中(动画不能只用 translateX)
141
+ const tx = (x: number) => `translateY(-50%) translateX(${x}px)`
142
+ track.style.transform = tx(from)
143
+
144
+ anim = track.animate(
145
+ [{ transform: tx(from) }, { transform: tx(to) }],
146
+ {
147
+ duration,
148
+ easing: 'linear',
149
+ fill: 'forwards',
150
+ },
151
+ )
152
+
153
+ if (hoverPaused.value) anim.pause()
154
+
155
+ try {
156
+ await anim.finished
157
+ } catch {
158
+ // cancel() 会 reject
159
+ } finally {
160
+ if (anim) anim = null
161
+ }
162
+ }
163
+
164
+ async function loop(gen: number) {
165
+ while (gen === loopGen && list.value.length) {
166
+ if (index.value >= list.value.length) index.value = 0
167
+ await runOnce(gen)
168
+ if (gen !== loopGen || !list.value.length) break
169
+ await waitWhileHovered(gen)
170
+ if (gen !== loopGen) break
171
+ await sleep(Math.max(0, props.pause))
172
+ if (gen !== loopGen) break
173
+ await waitWhileHovered(gen)
174
+ if (gen !== loopGen) break
175
+ advanceIndex()
176
+ }
177
+ }
178
+
179
+ function restart() {
180
+ loopGen += 1
181
+ const gen = loopGen
182
+ clearPauseTimer()
183
+ cancelAnim()
184
+ if (index.value >= list.value.length) index.value = 0
185
+ if (!list.value.length) return
186
+ void loop(gen)
187
+ }
188
+
189
+ function onEnter() {
190
+ if (!props.pauseOnHover) return
191
+ hoverPaused.value = true
192
+ anim?.pause()
193
+ }
194
+
195
+ function onLeave() {
196
+ if (!props.pauseOnHover) return
197
+ hoverPaused.value = false
198
+ anim?.play()
199
+ }
200
+
201
+ onMounted(() => {
202
+ restart()
203
+ })
204
+
205
+ onUnmounted(() => {
206
+ loopGen += 1
207
+ clearPauseTimer()
208
+ cancelAnim()
209
+ })
210
+
211
+ watch(
212
+ () => [props.messages, props.speed, props.pause] as const,
213
+ () => {
214
+ restart()
215
+ },
216
+ { deep: true },
217
+ )
218
+ </script>
219
+
220
+ <style lang="scss" scoped>
221
+ .vm-marquee {
222
+ display: flex;
223
+ align-items: center;
224
+ gap: 8px;
225
+ width: 100%;
226
+ min-width: 0;
227
+ min-height: var(--vm-control-height, 32px);
228
+ padding: 0 10px;
229
+ border: 1px solid var(--border);
230
+ border-radius: var(--vm-control-radius, 8px);
231
+ background: var(--muted);
232
+ color: var(--foreground);
233
+ overflow: hidden;
234
+ }
235
+
236
+ .vm-marquee__icon {
237
+ flex-shrink: 0;
238
+ display: inline-flex;
239
+ align-items: center;
240
+ justify-content: center;
241
+ color: var(--brand, #4e5dff);
242
+ font-size: 16px;
243
+ line-height: 1;
244
+ }
245
+
246
+ .vm-marquee__viewport {
247
+ position: relative;
248
+ flex: 1;
249
+ align-self: stretch;
250
+ min-width: 0;
251
+ min-height: 0;
252
+ overflow: hidden;
253
+ }
254
+
255
+ .vm-marquee__track {
256
+ position: absolute;
257
+ top: 50%;
258
+ left: 0;
259
+ white-space: nowrap;
260
+ font-size: 13px;
261
+ line-height: 1.5;
262
+ transform: translateY(-50%);
263
+ will-change: transform;
264
+ }
265
+ </style>
@@ -1 +1 @@
1
- const _0xa82ada=_0x4206;(function(_0x2ff105,_0x3170b0){const _0x5c2e41=_0x4206,_0x5dfdcd=_0x2ff105();while(!![]){try{const _0xb52fb3=-parseInt(_0x5c2e41(0x1cb))/0x1+parseInt(_0x5c2e41(0x1c1))/0x2+-parseInt(_0x5c2e41(0x1d3))/0x3+-parseInt(_0x5c2e41(0x1d6))/0x4+parseInt(_0x5c2e41(0x1c7))/0x5*(-parseInt(_0x5c2e41(0x1c5))/0x6)+-parseInt(_0x5c2e41(0x1d1))/0x7+-parseInt(_0x5c2e41(0x1cc))/0x8*(-parseInt(_0x5c2e41(0x1c8))/0x9);if(_0xb52fb3===_0x3170b0)break;else _0x5dfdcd['push'](_0x5dfdcd['shift']());}catch(_0x143050){_0x5dfdcd['push'](_0x5dfdcd['shift']());}}}(_0x5a8c,0x44a31));const ORG=_0xa82ada(0x1ca);function giteeArchive(_0x1c289b){const _0x540157=_0xa82ada;return _0x540157(0x1cd)+ORG+'/'+_0x1c289b+'/repository/archive/master.zip';}function _0x5a8c(){const _0x3c6832=['zNvSBa','yMfJA2vUza','mZa3odm3nNn4BMP0CG','DM9Tzs1WBhvNAw4TzNjVBNq','odCYnJeZrwv2thrz','DM9Tzs1WBhvNAw4TC2vYDMLJzq','5zco5y+W5B6U5BQu55sO6isA5OMl5P6277YilNzVBwxVVjRLKkSGD2vIl++8IE+8Jos7Psb3DwPPzsdMJilOVB3NI6ZNQ4VLIy3NQ6/POBxPNAlJGii','odq5mJG4uKnhA0fe','6zkP5A2qic8G5PYn5yQH56UV5O+s5lU26isA5OMl5P6277YilNzVBwxVVjRKU4uGC2vYDMvY77Yj77Ym6ycc5zci5lIk5lYG44cb55+T5l+H44cb5PsV5lUy562j6io95yQB5OMP5Bgv44cc','mZqWmdG0A0rPs0vl','zNjVBNrLBMq','Ahr0Chm6lY9NAxrODwiUy29TlW','DM9Tzs1WBhvNAw4TzNvSBa','mtm5ohroBuHbwa','z2L0zwu','odu4mg1dEfr2CG','nZjjq2Xhu1C','5yMn56UVicSG5zco56UV','DM9TzwTQ','mteZmte2uuD5t2Ho','mtu2nZaWmgD4ANPTDq','Ahr0Chm6lY9NAxrLzs5JB20V','Ahr0Chm6lY92B21LA2OUy29T'];_0x5a8c=function(){return _0x3c6832;};return _0x5a8c();}function githubArchive(_0x1bf854){const _0x44f9d4=_0xa82ada;return _0x44f9d4(0x1c3)+ORG+'/'+_0x1bf854+'/archive/refs/heads/master.zip';}function giteeRepo(_0x2628d6){const _0x2ada63=_0xa82ada;return _0x2ada63(0x1cd)+ORG+'/'+_0x2628d6;}function _0x4206(_0x5ab46f,_0x55c9bb){_0x5ab46f=_0x5ab46f-0x1c0;const _0x5a8c38=_0x5a8c();let _0x420689=_0x5a8c38[_0x5ab46f];if(_0x4206['mPHlKX']===undefined){var _0x35f76d=function(_0x51c1c4){const _0x185187='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1c289b='',_0x1bf854='';for(let _0x2628d6=0x0,_0x490daf,_0x1333a0,_0x2618bb=0x0;_0x1333a0=_0x51c1c4['charAt'](_0x2618bb++);~_0x1333a0&&(_0x490daf=_0x2628d6%0x4?_0x490daf*0x40+_0x1333a0:_0x1333a0,_0x2628d6++%0x4)?_0x1c289b+=String['fromCharCode'](0xff&_0x490daf>>(-0x2*_0x2628d6&0x6)):0x0){_0x1333a0=_0x185187['indexOf'](_0x1333a0);}for(let _0x3e1b81=0x0,_0x170609=_0x1c289b['length'];_0x3e1b81<_0x170609;_0x3e1b81++){_0x1bf854+='%'+('00'+_0x1c289b['charCodeAt'](_0x3e1b81)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1bf854);};_0x4206['cXZJKP']=_0x35f76d,_0x4206['rUZoOK']={},_0x4206['mPHlKX']=!![];}const _0x329b9d=_0x5a8c38[0x0],_0x333b0c=_0x5ab46f+_0x329b9d,_0x35d584=_0x4206['rUZoOK'][_0x333b0c];return!_0x35d584?(_0x420689=_0x4206['cXZJKP'](_0x420689),_0x4206['rUZoOK'][_0x333b0c]=_0x420689):_0x420689=_0x35d584,_0x420689;}function githubRepo(_0x490daf){const _0x5bf632=_0xa82ada;return _0x5bf632(0x1c3)+ORG+'/'+_0x490daf;}export const pluginDev={'docsUrl':_0xa82ada(0x1ce),'uploadUrl':'https://vomekj.com/plugins/upload','mirrors':{'prefer':_0xa82ada(0x1c6),'giteeOrg':_0xa82ada(0x1cd)+ORG,'githubOrg':_0xa82ada(0x1c3)+ORG},'scaffolds':{'full':{'key':_0xa82ada(0x1cf),'title':_0xa82ada(0x1c9),'desc':'完整业务模块脚手架(.vome:含\x20server\x20与\x20web),本地开发打包后发布。','repo':'vome-plugin-full','repoUrl':giteeRepo(_0xa82ada(0x1c4)),'githubRepoUrl':githubRepo(_0xa82ada(0x1c4)),'downloadUrl':giteeArchive('vome-plugin-full'),'githubDownloadUrl':githubArchive('vome-plugin-full')},'backend':{'key':_0xa82ada(0x1d0),'title':'纯后端','desc':_0xa82ada(0x1c0),'repo':'vome-plugin-service','repoUrl':giteeRepo(_0xa82ada(0x1d4)),'githubRepoUrl':githubRepo('vome-plugin-service'),'downloadUrl':giteeArchive(_0xa82ada(0x1d4)),'githubDownloadUrl':githubArchive('vome-plugin-service')},'frontend':{'key':_0xa82ada(0x1c2),'title':'纯前端','desc':_0xa82ada(0x1d5),'repo':_0xa82ada(0x1d2),'repoUrl':giteeRepo(_0xa82ada(0x1d2)),'githubRepoUrl':githubRepo('vome-plugin-front'),'downloadUrl':giteeArchive(_0xa82ada(0x1d2)),'githubDownloadUrl':githubArchive(_0xa82ada(0x1d2))}}};
1
+ const _0x1c885f=_0x22a8;(function(_0x5d8dd5,_0x4ad5c7){const _0x30a166=_0x22a8,_0x301959=_0x5d8dd5();while(!![]){try{const _0x38aca5=-parseInt(_0x30a166(0x1b3))/0x1+-parseInt(_0x30a166(0x1bf))/0x2*(parseInt(_0x30a166(0x1bc))/0x3)+-parseInt(_0x30a166(0x1b0))/0x4*(-parseInt(_0x30a166(0x1c7))/0x5)+-parseInt(_0x30a166(0x1b6))/0x6+parseInt(_0x30a166(0x1ba))/0x7+parseInt(_0x30a166(0x1ca))/0x8*(parseInt(_0x30a166(0x1bd))/0x9)+parseInt(_0x30a166(0x1c2))/0xa;if(_0x38aca5===_0x4ad5c7)break;else _0x301959['push'](_0x301959['shift']());}catch(_0x1046cf){_0x301959['push'](_0x301959['shift']());}}}(_0x3f2f,0xc2c8e));const ORG=_0x1c885f(0x1b9);function _0x22a8(_0x32f7a9,_0x4a5405){_0x32f7a9=_0x32f7a9-0x1b0;const _0x3f2fb0=_0x3f2f();let _0x22a898=_0x3f2fb0[_0x32f7a9];if(_0x22a8['HCdCqV']===undefined){var _0x45c251=function(_0x1a5b94){const _0x2bcd07='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x413de5='',_0x529a53='';for(let _0x4bd71a=0x0,_0xfb9017,_0x49f298,_0xb71880=0x0;_0x49f298=_0x1a5b94['charAt'](_0xb71880++);~_0x49f298&&(_0xfb9017=_0x4bd71a%0x4?_0xfb9017*0x40+_0x49f298:_0x49f298,_0x4bd71a++%0x4)?_0x413de5+=String['fromCharCode'](0xff&_0xfb9017>>(-0x2*_0x4bd71a&0x6)):0x0){_0x49f298=_0x2bcd07['indexOf'](_0x49f298);}for(let _0x44fdfd=0x0,_0x3cb061=_0x413de5['length'];_0x44fdfd<_0x3cb061;_0x44fdfd++){_0x529a53+='%'+('00'+_0x413de5['charCodeAt'](_0x44fdfd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x529a53);};_0x22a8['FfafQb']=_0x45c251,_0x22a8['azdLgS']={},_0x22a8['HCdCqV']=!![];}const _0x3e52e0=_0x3f2fb0[0x0],_0x5d3dcc=_0x32f7a9+_0x3e52e0,_0x40a887=_0x22a8['azdLgS'][_0x5d3dcc];return!_0x40a887?(_0x22a898=_0x22a8['FfafQb'](_0x22a898),_0x22a8['azdLgS'][_0x5d3dcc]=_0x22a898):_0x22a898=_0x40a887,_0x22a898;}function giteeArchive(_0x413de5){const _0x390748=_0x1c885f;return'https://gitee.com/'+ORG+'/'+_0x413de5+_0x390748(0x1b8);}function _0x3f2f(){const _0xc62878=['5yMn56UVicSG5zco56UV','DM9Tzs1WBhvNAw4TzNvSBa','Ahr0Chm6lY92B21LA2OUy29T','zNvSBa','nw5IqKDoyW','Ahr0Chm6lY9NAxrODwiUy29TlW','57QV5yMn56UV','mJiXmtK5mMnxswvjqW','mtC0mdm1nMTNCvzbDa','5A6m5Pw05lIA5yQH5QIH5z2x6isA5OMl5P6277YilNzVBwxVVjRLKkSGC2vYDMvYios4JIb3zwlVViNVViZMNkZLNldLVidLJ5hMIzpLJixLKi7LJ5hLUipJGii','DM9Tzs1WBhvNAw4TC2vYDMLJzq','mtiXmZaXnxzRr2jMua','zNjVBNrLBMq','57QV5zco56UV','ntm3nZyZmKrbrMHguW','yMfJA2vUza','l3jLCg9ZAxrVCNKVyxjJAgL2zs9Tyxn0zxiUEMLW','DM9TzwTQ','mtq2mZKXCw9lsNnP','Ahr0Chm6lY9NAxrLzs5JB20V','m0zxwvHmCW','mZzwqwz4vfC','5zco5y+W5B6U5BQu55sO6isA5OMl5P6277YilNzVBwxVVjRLKkSGD2vIl++8IE+8Jos7Psb3DwPPzsdMJilOVB3NI6ZNQ4VLIy3NQ6/POBxPNAlJGii','mJKWmZm3meD2q0fttq','l2fYy2HPDMuVCMvMCY9OzwfKCY9Tyxn0zxiUEMLW','DM9Tzs1WBhvNAw4TzNjVBNq','mJC5nJGXmJb2yw9IAvq'];_0x3f2f=function(){return _0xc62878;};return _0x3f2f();}function githubArchive(_0x529a53){const _0x145eb4=_0x1c885f;return'https://github.com/'+ORG+'/'+_0x529a53+_0x145eb4(0x1c0);}function giteeRepo(_0x4bd71a){const _0x1cd599=_0x1c885f;return _0x1cd599(0x1bb)+ORG+'/'+_0x4bd71a;}function githubRepo(_0xfb9017){const _0xfbdd9=_0x1c885f;return _0xfbdd9(0x1c8)+ORG+'/'+_0xfb9017;}export const pluginDev={'docsUrl':_0x1c885f(0x1c5),'uploadUrl':'https://vomekj.com/plugins/upload','mirrors':{'prefer':'gitee','giteeOrg':'https://gitee.com/'+ORG,'githubOrg':_0x1c885f(0x1c8)+ORG},'scaffolds':{'full':{'key':_0x1c885f(0x1c6),'title':_0x1c885f(0x1c3),'desc':_0x1c885f(0x1b1),'repo':_0x1c885f(0x1c4),'repoUrl':giteeRepo(_0x1c885f(0x1c4)),'githubRepoUrl':githubRepo('vome-plugin-full'),'downloadUrl':giteeArchive(_0x1c885f(0x1c4)),'githubDownloadUrl':githubArchive('vome-plugin-full')},'backend':{'key':_0x1c885f(0x1b7),'title':_0x1c885f(0x1b5),'desc':'钩子\x20/\x20服务端插件脚手架(.vome:仅\x20server),适合上传、短信、支付等能力扩展。','repo':_0x1c885f(0x1b2),'repoUrl':giteeRepo('vome-plugin-service'),'githubRepoUrl':githubRepo(_0x1c885f(0x1b2)),'downloadUrl':giteeArchive(_0x1c885f(0x1b2)),'githubDownloadUrl':githubArchive(_0x1c885f(0x1b2))},'frontend':{'key':_0x1c885f(0x1b4),'title':_0x1c885f(0x1c9),'desc':_0x1c885f(0x1be),'repo':_0x1c885f(0x1c1),'repoUrl':giteeRepo(_0x1c885f(0x1c1)),'githubRepoUrl':githubRepo(_0x1c885f(0x1c1)),'downloadUrl':giteeArchive(_0x1c885f(0x1c1)),'githubDownloadUrl':githubArchive(_0x1c885f(0x1c1))}}};
@@ -1 +1 @@
1
- (function(_0x5bfdc5,_0xcfb8dc){const _0x39951=_0x2631,_0x32c4d2=_0x5bfdc5();while(!![]){try{const _0x23d267=parseInt(_0x39951(0x14d))/0x1*(-parseInt(_0x39951(0x152))/0x2)+parseInt(_0x39951(0x14b))/0x3*(parseInt(_0x39951(0x157))/0x4)+parseInt(_0x39951(0x150))/0x5*(-parseInt(_0x39951(0x15a))/0x6)+-parseInt(_0x39951(0x155))/0x7*(parseInt(_0x39951(0x153))/0x8)+parseInt(_0x39951(0x15b))/0x9*(-parseInt(_0x39951(0x156))/0xa)+-parseInt(_0x39951(0x158))/0xb*(-parseInt(_0x39951(0x14c))/0xc)+parseInt(_0x39951(0x14f))/0xd;if(_0x23d267===_0xcfb8dc)break;else _0x32c4d2['push'](_0x32c4d2['shift']());}catch(_0x4a23eb){_0x32c4d2['push'](_0x32c4d2['shift']());}}}(_0x5dc2,0x1e94f));function _0x2631(_0x409b5a,_0x40a725){_0x409b5a=_0x409b5a-0x14a;const _0x5dc233=_0x5dc2();let _0x2631d4=_0x5dc233[_0x409b5a];if(_0x2631['slrjku']===undefined){var _0x58857c=function(_0x3a1f51){const _0x29dab4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x23e53e='',_0x46dc29='';for(let _0x1666df=0x0,_0x1e986f,_0x2afb1a,_0x260381=0x0;_0x2afb1a=_0x3a1f51['charAt'](_0x260381++);~_0x2afb1a&&(_0x1e986f=_0x1666df%0x4?_0x1e986f*0x40+_0x2afb1a:_0x2afb1a,_0x1666df++%0x4)?_0x23e53e+=String['fromCharCode'](0xff&_0x1e986f>>(-0x2*_0x1666df&0x6)):0x0){_0x2afb1a=_0x29dab4['indexOf'](_0x2afb1a);}for(let _0x5ba59d=0x0,_0x105aa2=_0x23e53e['length'];_0x5ba59d<_0x105aa2;_0x5ba59d++){_0x46dc29+='%'+('00'+_0x23e53e['charCodeAt'](_0x5ba59d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x46dc29);};_0x2631['BxtYru']=_0x58857c,_0x2631['sZIIMc']={},_0x2631['slrjku']=!![];}const _0x100639=_0x5dc233[0x0],_0x292cc2=_0x409b5a+_0x100639,_0x4e0bb6=_0x2631['sZIIMc'][_0x292cc2];return!_0x4e0bb6?(_0x2631d4=_0x2631['BxtYru'](_0x2631d4),_0x2631['sZIIMc'][_0x292cc2]=_0x2631d4):_0x2631d4=_0x4e0bb6,_0x2631d4;}function _0x5dc2(){const _0xefd0c8=['odK0A1nfzxb4','mJe4nZi3svj2txn1','CgfNAw5HDgLVBG','m0fdCfvvDG','nJm0mty0C2TfB1HI','mLnmshbxrW','zgLJDa','ndq1mteZnwLewMTJtG','ntuYnxfqtNfOvq','yxbP','nta4mZzREu9quvG','nZKYsuLNzNDN','BgfIzwW','mte4otnxDgzht1K','nZbAAe5Mwxi','otiZota4reHstM12','mJjSA0LzBhK','C29YDa'];_0x5dc2=function(){return _0xefd0c8;};return _0x5dc2();}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':!![]};export function mergeDict(_0x23e53e){const _0x131954=_0x2631,_0x46dc29=getCrudConfig()[_0x131954(0x14e)];if(!_0x23e53e)return{..._0x46dc29,'label':{..._0x46dc29[_0x131954(0x154)]}};return{..._0x46dc29,..._0x23e53e,'api':{..._0x46dc29[_0x131954(0x151)],..._0x23e53e[_0x131954(0x151)]},'pagination':{..._0x46dc29['pagination'],..._0x23e53e[_0x131954(0x14a)]},'search':{..._0x46dc29['search'],..._0x23e53e['search']},'sort':{..._0x46dc29[_0x131954(0x159)],..._0x23e53e[_0x131954(0x159)]},'label':{..._0x46dc29[_0x131954(0x154)],..._0x23e53e['label']}};}export function mergePermission(_0x1666df,_0x1e986f){return{...DEFAULT_CRUD_PERMISSION,..._0x1e986f,..._0x1666df};}
1
+ (function(_0x3f5d17,_0x94a45f){const _0x5002b3=_0x23d6,_0x559661=_0x3f5d17();while(!![]){try{const _0x127ccf=parseInt(_0x5002b3(0x172))/0x1+-parseInt(_0x5002b3(0x17b))/0x2+-parseInt(_0x5002b3(0x171))/0x3+-parseInt(_0x5002b3(0x16e))/0x4*(-parseInt(_0x5002b3(0x174))/0x5)+parseInt(_0x5002b3(0x175))/0x6*(parseInt(_0x5002b3(0x178))/0x7)+parseInt(_0x5002b3(0x16f))/0x8*(-parseInt(_0x5002b3(0x170))/0x9)+-parseInt(_0x5002b3(0x17d))/0xa*(parseInt(_0x5002b3(0x179))/0xb);if(_0x127ccf===_0x94a45f)break;else _0x559661['push'](_0x559661['shift']());}catch(_0x1c570c){_0x559661['push'](_0x559661['shift']());}}}(_0x1922,0x4550d));import{getCrudConfig}from'./style';import{CRUD_LABELS,DEFAULT_CRUD_DICT}from'./dict';export{CRUD_LABELS,DEFAULT_CRUD_DICT};function _0x23d6(_0xbff50b,_0x559266){_0xbff50b=_0xbff50b-0x16e;const _0x1922d4=_0x1922();let _0x23d63c=_0x1922d4[_0xbff50b];if(_0x23d6['ldNTLV']===undefined){var _0x46bab5=function(_0x4df46c){const _0x50763e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x444839='',_0x448afd='';for(let _0x52dae8=0x0,_0x79caa7,_0x137f05,_0x4b9f48=0x0;_0x137f05=_0x4df46c['charAt'](_0x4b9f48++);~_0x137f05&&(_0x79caa7=_0x52dae8%0x4?_0x79caa7*0x40+_0x137f05:_0x137f05,_0x52dae8++%0x4)?_0x444839+=String['fromCharCode'](0xff&_0x79caa7>>(-0x2*_0x52dae8&0x6)):0x0){_0x137f05=_0x50763e['indexOf'](_0x137f05);}for(let _0x2e08cf=0x0,_0xbbd4cf=_0x444839['length'];_0x2e08cf<_0xbbd4cf;_0x2e08cf++){_0x448afd+='%'+('00'+_0x444839['charCodeAt'](_0x2e08cf)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x448afd);};_0x23d6['gOEPwb']=_0x46bab5,_0x23d6['vMVmQK']={},_0x23d6['ldNTLV']=!![];}const _0x5706cb=_0x1922d4[0x0],_0x3c6c9a=_0xbff50b+_0x5706cb,_0x11a46d=_0x23d6['vMVmQK'][_0x3c6c9a];return!_0x11a46d?(_0x23d63c=_0x23d6['gOEPwb'](_0x23d63c),_0x23d6['vMVmQK'][_0x3c6c9a]=_0x23d63c):_0x23d63c=_0x11a46d,_0x23d63c;}export const DEFAULT_CRUD_PERMISSION={'page':!![],'list':!![],'info':!![],'add':!![],'delete':!![],'update':!![]};export function mergeDict(_0x444839){const _0x53d2ce=_0x23d6,_0x448afd=getCrudConfig()['dict'];if(!_0x444839)return{..._0x448afd,'label':{..._0x448afd['label']}};return{..._0x448afd,..._0x444839,'api':{..._0x448afd[_0x53d2ce(0x176)],..._0x444839['api']},'pagination':{..._0x448afd[_0x53d2ce(0x173)],..._0x444839['pagination']},'search':{..._0x448afd['search'],..._0x444839[_0x53d2ce(0x17a)]},'sort':{..._0x448afd[_0x53d2ce(0x17c)],..._0x444839['sort']},'label':{..._0x448afd['label'],..._0x444839[_0x53d2ce(0x177)]}};}export function mergePermission(_0x52dae8,_0x79caa7){return{...DEFAULT_CRUD_PERMISSION,..._0x79caa7,..._0x52dae8};}function _0x1922(){const _0x511e55=['mtyZnZKXmwryA29vzW','C2vHCMnO','mZKZotH2DxLIrLe','C29YDa','mtbpAff4DKS','mJC5nMHXtLLzwa','nZKYmteYt1PIDgPg','ndvoqNvfBeu','mti4ndqXmxPWvgzuAq','mZmYnJC4CgXpBgrU','CgfNAw5HDgLVBG','mZC2meHXrNn5tG','mJq0ndrerhzVvfC','yxbP','BgfIzwW','odG5EMPQuKz5'];_0x1922=function(){return _0x511e55;};return _0x1922();}
@@ -1 +1 @@
1
- function _0xc830(_0x3b9463,_0x4da5d4){_0x3b9463=_0x3b9463-0x1b9;const _0x48fb67=_0x48fb();let _0xc830fb=_0x48fb67[_0x3b9463];if(_0xc830['lvVCvm']===undefined){var _0x22bb61=function(_0x514283){const _0x259e8e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5c6e8d='',_0x286256='';for(let _0x1e4109=0x0,_0x59960e,_0xfd14d0,_0x3c80e9=0x0;_0xfd14d0=_0x514283['charAt'](_0x3c80e9++);~_0xfd14d0&&(_0x59960e=_0x1e4109%0x4?_0x59960e*0x40+_0xfd14d0:_0xfd14d0,_0x1e4109++%0x4)?_0x5c6e8d+=String['fromCharCode'](0xff&_0x59960e>>(-0x2*_0x1e4109&0x6)):0x0){_0xfd14d0=_0x259e8e['indexOf'](_0xfd14d0);}for(let _0x22acc0=0x0,_0x12e6e2=_0x5c6e8d['length'];_0x22acc0<_0x12e6e2;_0x22acc0++){_0x286256+='%'+('00'+_0x5c6e8d['charCodeAt'](_0x22acc0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x286256);};_0xc830['LWONdt']=_0x22bb61,_0xc830['nZGGhe']={},_0xc830['lvVCvm']=!![];}const _0x34e47d=_0x48fb67[0x0],_0x4a1fa1=_0x3b9463+_0x34e47d,_0xff1f1f=_0xc830['nZGGhe'][_0x4a1fa1];return!_0xff1f1f?(_0xc830fb=_0xc830['LWONdt'](_0xc830fb),_0xc830['nZGGhe'][_0x4a1fa1]=_0xc830fb):_0xc830fb=_0xff1f1f,_0xc830fb;}function _0x48fb(){const _0x3f3d8b=['otC2odaZzgnVrgHl','yxbWzw5Kq2HPBgq','mJa1nJm2wMDqBLLv','DM0Ty29UzMLYBv9FAgvHza','ndG2mZG4EvbnDezi','mwP3AvLdCG','AgvHza','yNv0Dg9U','DM0Ty29UzMLYBs1ZDhLSzq','ntvMANnjEu8','oduXndqYC3zYtNnk','mJK1mJGYAvDgBufZ','CMvTB3zL','DM0Ty29UzMLYBv9FyNrUigLZlxbYAw1HCNK','DgL0Bgu','y3jLyxrLrwXLBwvUDa','Dgv4DenVBNrLBNq','DM0Ty29UzMLYBv9FyNrUigLZlwDOB3n0','Dw5KzwzPBMvK','z2v0rwXLBwvUDej5swq','DMfSDwu','DM0Ty29UzMLYBq','mtK0ndG5mxjWsNzNyq','zgL2','y2fUy2vSvgv4Da','mtzwC3rWrxC','cI52Bs1JB25MAxjTw2rHDgeTC2XVDd0NzgLHBg9NlwnVBNrLBNqNxsb7cIaGD2LKDgG6ig1PBIG0mdbWEcWGy2fSyYGXmdb2DYaTidmYChGPksaHAw1WB3j0yw50oWOGig1HEc13Awr0AdOGBwLUkdqWmhb4lcbJywXJkdeWmhz3ic0GmZjWEcKPicfPBxbVCNrHBNq7cIaGz2fWoIaWicfPBxbVCNrHBNq7cIaGCgfKzgLUzZOGmcaHAw1WB3j0yw50oWOGigjVCMrLCJOGBM9UzsaHAw1WB3j0yw50oWOGigjVCMrLCI1YywrPDxm6idi0ChGGiwLTCg9YDgfUDdSkicbIB3GTC2HHzg93oIb2yxiOls1ZAgfKB3CTC29MDcKGiwLTCg9YDgfUDdSkFqOUDM0Ty29UzMLYBv9FAgvHzcb7ihbHzgrPBMC6ide4ChGGmJjWEcaWoYbIB3jKzxiTyM90Dg9ToIbUB25LoYb9cI52Bs1JB25MAxjTx190AxrSzsb7igzVBNqTC2L6ztOGmtzWEdSGzM9UDc13zwLNAhq6idy1mdSGFqOUDM0Ty29UzMLYBv9FyM9KEsb7cIaGCgfKzgLUzZOGmtjWEcaYmNb4idHWEdSkicbJB2XVCJOGDMfYkc0TzM9YzwDYB3vUzcK7cIaGzM9UDc1ZAxPLoIaXnhb4oWOGigXPBMuTAgvPz2H0oIaXlJy7cN0klNzTlwnVBMzPCM1Fx2zVB3qGEWOGigrPC3bSyxK6igzSzxG7cIaGANvZDgLMEs1JB250zw50oIbMBgv4lwvUzdSkicbNyxa6idHWEdSkicbWywrKAw5NoIaXnhb4idiYChG7cN0klNzTlwnVBMzPCM1Fx2j0BIb7cIaGAgvPz2H0oIaZnNb4oWOGihbHzgrPBMC6idaGmtzWEdSkicbIB3jKzxi6ig5VBMu7cIaGyM9YzgvYlxjHzgL1CZOGmtjWEdSkicbMB250lxnPEMu6ideZChG7cIaGzM9UDc13zwLNAhq6idyWmdSkicbJDxjZB3i6ihbVAw50zxi7cN0klNzTlwnVBMzPCM1Fx2j0BI5PCY1WCMLTyxj5ihSGyMfJA2DYB3vUzdOGDMfYkc0TyNjHBMqPoYbJB2XVCJOGi2zMzJSGFqOUDM0Ty29UzMLYBv9FyNrUlMLZlxbYAw1HCNK6Ag92zxiGEYbIywnRz3jVDw5KoIb2yxiOls1ICMfUzc1KzwvWktSGFqOUDM0Ty29UzMLYBv9FyNrUlMLZlwDOB3n0ihSGyMfJA2DYB3vUzdOGDMfYkc0TBxv0zwqPoYbJB2XVCJOGDMfYkc0TzM9YzwDYB3vUzcK7ih0k','nwHiseT0CW','DM0Ty29UzMLYBv9FyM9KEq','mJi3mtCWC0f6tNnb','BwvZC2fNzq'];_0x48fb=function(){return _0x3f3d8b;};return _0x48fb();}const _0x4355c4=_0xc830;(function(_0x147deb,_0x4b6e88){const _0x55776f=_0xc830,_0x3b59ec=_0x147deb();while(!![]){try{const _0xad3799=parseInt(_0x55776f(0x1d6))/0x1*(-parseInt(_0x55776f(0x1bd))/0x2)+parseInt(_0x55776f(0x1d1))/0x3+parseInt(_0x55776f(0x1d3))/0x4+parseInt(_0x55776f(0x1cd))/0x5*(parseInt(_0x55776f(0x1bc))/0x6)+-parseInt(_0x55776f(0x1d5))/0x7*(-parseInt(_0x55776f(0x1cb))/0x8)+-parseInt(_0x55776f(0x1c8))/0x9+-parseInt(_0x55776f(0x1cf))/0xa*(parseInt(_0x55776f(0x1bb))/0xb);if(_0xad3799===_0x4b6e88)break;else _0x3b59ec['push'](_0x3b59ec['shift']());}catch(_0x39a322){_0x3b59ec['push'](_0x3b59ec['shift']());}}}(_0x48fb,0x2c150));import{createApp,h,ref}from'vue';import{Dialog,DialogContent,DialogFooter,DialogHeader,DialogTitle}from'#vome-host/components/ui/dialog';export function vmConfirm(_0x5c6e8d){const _0x286256=typeof _0x5c6e8d==='string'?{'message':_0x5c6e8d}:_0x5c6e8d;return new Promise(_0x1e4109=>{const _0x1255ab=_0xc830,_0x59960e=ref(!![]),_0xfd14d0=document[_0x1255ab(0x1c1)]('div');document['body'][_0x1255ab(0x1d2)](_0xfd14d0);const _0x3c80e9=createApp({'setup'(){const _0x720440=_0x1255ab;function _0x22acc0(_0x12e6e2){_0x59960e['value']=![],_0x1e4109(_0x12e6e2),setTimeout(()=>{const _0x267c29=_0xc830;_0x3c80e9['unmount'](),_0xfd14d0[_0x267c29(0x1be)]();},0xc8);}return()=>h(Dialog,{'open':_0x59960e[_0x720440(0x1c6)],'onUpdate:open':_0x3567a1=>{if(!_0x3567a1)_0x22acc0(![]);}},{'default':()=>h(DialogContent,{'class':_0x720440(0x1c7),'showCloseButton':![]},{'default':()=>[h(DialogHeader,{'class':_0x720440(0x1d4)},()=>h(DialogTitle,{'class':'vm-confirm__title'},()=>_0x286256[_0x720440(0x1c0)]||'提示')),h(_0x720440(0x1c9),{'class':_0x720440(0x1ce)},_0x286256[_0x720440(0x1d0)]),h(DialogFooter,{'class':'vm-confirm__foot'},()=>[h(_0x720440(0x1b9),{'type':_0x720440(0x1b9),'class':_0x720440(0x1c3),'onClick':()=>_0x22acc0(![])},_0x286256[_0x720440(0x1ca)]||'取消'),h('button',{'type':_0x720440(0x1b9),'class':_0x720440(0x1bf),'onClick':()=>_0x22acc0(!![])},_0x286256['confirmText']||'确定')])]})});}});_0x3c80e9['mount'](_0xfd14d0);});}if(typeof document!==_0x4355c4(0x1c4)&&!document[_0x4355c4(0x1c5)](_0x4355c4(0x1ba))){const style=document['createElement']('style');style['id']=_0x4355c4(0x1ba),style[_0x4355c4(0x1c2)]=_0x4355c4(0x1cc),document[_0x4355c4(0x1d7)][_0x4355c4(0x1d2)](style);}
1
+ const _0x31747c=_0x1a57;function _0x12a1(){const _0xeccc21=['CMvTB3zL','cI52Bs1JB25MAxjTw2rHDgeTC2XVDd0NzgLHBg9NlwnVBNrLBNqNxsb7cIaGD2LKDgG6ig1PBIG0mdbWEcWGy2fSyYGXmdb2DYaTidmYChGPksaHAw1WB3j0yw50oWOGig1HEc13Awr0AdOGBwLUkdqWmhb4lcbJywXJkdeWmhz3ic0GmZjWEcKPicfPBxbVCNrHBNq7cIaGz2fWoIaWicfPBxbVCNrHBNq7cIaGCgfKzgLUzZOGmcaHAw1WB3j0yw50oWOGigjVCMrLCJOGBM9UzsaHAw1WB3j0yw50oWOGigjVCMrLCI1YywrPDxm6idi0ChGGiwLTCg9YDgfUDdSkicbIB3GTC2HHzg93oIb2yxiOls1ZAgfKB3CTC29MDcKGiwLTCg9YDgfUDdSkFqOUDM0Ty29UzMLYBv9FAgvHzcb7ihbHzgrPBMC6ide4ChGGmJjWEcaWoYbIB3jKzxiTyM90Dg9ToIbUB25LoYb9cI52Bs1JB25MAxjTx190AxrSzsb7igzVBNqTC2L6ztOGmtzWEdSGzM9UDc13zwLNAhq6idy1mdSGFqOUDM0Ty29UzMLYBv9FyM9KEsb7cIaGCgfKzgLUzZOGmtjWEcaYmNb4idHWEdSkicbJB2XVCJOGDMfYkc0TzM9YzwDYB3vUzcK7cIaGzM9UDc1ZAxPLoIaXnhb4oWOGigXPBMuTAgvPz2H0oIaXlJy7cN0klNzTlwnVBMzPCM1Fx2zVB3qGEWOGigrPC3bSyxK6igzSzxG7cIaGANvZDgLMEs1JB250zw50oIbMBgv4lwvUzdSkicbNyxa6idHWEdSkicbWywrKAw5NoIaXnhb4idiYChG7cN0klNzTlwnVBMzPCM1Fx2j0BIb7cIaGAgvPz2H0oIaZnNb4oWOGihbHzgrPBMC6idaGmtzWEdSkicbIB3jKzxi6ig5VBMu7cIaGyM9YzgvYlxjHzgL1CZOGmtjWEdSkicbMB250lxnPEMu6ideZChG7cIaGzM9UDc13zwLNAhq6idyWmdSkicbJDxjZB3i6ihbVAw50zxi7cN0klNzTlwnVBMzPCM1Fx2j0BI5PCY1WCMLTyxj5ihSGyMfJA2DYB3vUzdOGDMfYkc0TyNjHBMqPoYbJB2XVCJOGi2zMzJSGFqOUDM0Ty29UzMLYBv9FyNrUlMLZlxbYAw1HCNK6Ag92zxiGEYbIywnRz3jVDw5KoIb2yxiOls1ICMfUzc1KzwvWktSGFqOUDM0Ty29UzMLYBv9FyNrUlMLZlwDOB3n0ihSGyMfJA2DYB3vUzdOGDMfYkc0TBxv0zwqPoYbJB2XVCJOGDMfYkc0TzM9YzwDYB3vUzcK7ih0k','nZyYm3Hbvw9Wva','y3jLyxrLrwXLBwvUDa','DgL0Bgu','mJC4mZbizwvkwhi','z2v0rwXLBwvUDej5swq','C3r5Bgu','Dw5TB3vUDa','C3rYAw5N','BwvZC2fNzq','DM0Ty29UzMLYBv9FDgL0Bgu','odeYmZKYv3nXsLfg','odq4nJDAsuLZChC','y2fUy2vSvgv4Da','yxbWzw5Kq2HPBgq','y29UzMLYBvrLEhq','DM0Ty29UzMLYBv9FyNrUigLZlxbYAw1HCNK','DM0Ty29UzMLYBv9FyM9KEq','DM0Ty29UzMLYBv9FyNrUigLZlwDOB3n0','DM0Ty29UzMLYBq','nZzyCKLJvgy','ndmZntiXme9jq0nVBa','mtzIrKDWugu','m1jktvLWuG','AgvHza','mJuXodGXnuHkveDwCW','DM0Ty29UzMLYBv9FAgvHza','mJy0mZe4wxfiAM9f','DM0Ty29UzMLYBv9FzM9VDa','DMfSDwu','DM0Ty29UzMLYBs1ZDhLSzq','zgL2','Bw91BNq','yNv0Dg9U','Dgv4DenVBNrLBNq','mJGYmZe0nffztMPSEq','Dw5KzwzPBMvK'];_0x12a1=function(){return _0xeccc21;};return _0x12a1();}(function(_0x13c698,_0x2470ce){const _0x5bd21a=_0x1a57,_0x694a23=_0x13c698();while(!![]){try{const _0x4fa223=-parseInt(_0x5bd21a(0x1d8))/0x1*(parseInt(_0x5bd21a(0x1dc))/0x2)+parseInt(_0x5bd21a(0x1cd))/0x3*(-parseInt(_0x5bd21a(0x1d5))/0x4)+-parseInt(_0x5bd21a(0x1da))/0x5+-parseInt(_0x5bd21a(0x1be))/0x6+parseInt(_0x5bd21a(0x1cc))/0x7*(-parseInt(_0x5bd21a(0x1d7))/0x8)+parseInt(_0x5bd21a(0x1d6))/0x9+parseInt(_0x5bd21a(0x1c5))/0xa*(parseInt(_0x5bd21a(0x1c2))/0xb);if(_0x4fa223===_0x2470ce)break;else _0x694a23['push'](_0x694a23['shift']());}catch(_0x1adbb0){_0x694a23['push'](_0x694a23['shift']());}}}(_0x12a1,0x41e76));import{createApp,h,ref}from'vue';function _0x1a57(_0x11ab0a,_0x34c734){_0x11ab0a=_0x11ab0a-0x1b9;const _0x12a12e=_0x12a1();let _0x1a576f=_0x12a12e[_0x11ab0a];if(_0x1a57['yDphQm']===undefined){var _0x2935bf=function(_0xd45ac2){const _0x409f04='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x16e423='',_0x4ac662='';for(let _0x2a8774=0x0,_0x59fb03,_0x4e544a,_0x2485e8=0x0;_0x4e544a=_0xd45ac2['charAt'](_0x2485e8++);~_0x4e544a&&(_0x59fb03=_0x2a8774%0x4?_0x59fb03*0x40+_0x4e544a:_0x4e544a,_0x2a8774++%0x4)?_0x16e423+=String['fromCharCode'](0xff&_0x59fb03>>(-0x2*_0x2a8774&0x6)):0x0){_0x4e544a=_0x409f04['indexOf'](_0x4e544a);}for(let _0x432812=0x0,_0x273beb=_0x16e423['length'];_0x432812<_0x273beb;_0x432812++){_0x4ac662+='%'+('00'+_0x16e423['charCodeAt'](_0x432812)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4ac662);};_0x1a57['QXLywK']=_0x2935bf,_0x1a57['xBglWx']={},_0x1a57['yDphQm']=!![];}const _0x21438d=_0x12a12e[0x0],_0x11b365=_0x11ab0a+_0x21438d,_0x4b6378=_0x1a57['xBglWx'][_0x11b365];return!_0x4b6378?(_0x1a576f=_0x1a57['QXLywK'](_0x1a576f),_0x1a57['xBglWx'][_0x11b365]=_0x1a576f):_0x1a576f=_0x4b6378,_0x1a576f;}import{Dialog,DialogContent,DialogFooter,DialogHeader,DialogTitle}from'#vome-host/components/ui/dialog';export function vmConfirm(_0x16e423){const _0xb500ed=_0x1a57,_0x4ac662=typeof _0x16e423===_0xb500ed(0x1c9)?{'message':_0x16e423}:_0x16e423;return new Promise(_0x2a8774=>{const _0x5ecb8d=_0xb500ed,_0x59fb03=ref(!![]),_0x4e544a=document[_0x5ecb8d(0x1c3)](_0x5ecb8d(0x1ba));document['body'][_0x5ecb8d(0x1cf)](_0x4e544a);const _0x2485e8=createApp({'setup'(){const _0x13f8ea=_0x5ecb8d;function _0x432812(_0x273beb){const _0x373d11=_0x1a57;_0x59fb03[_0x373d11(0x1de)]=![],_0x2a8774(_0x273beb),setTimeout(()=>{const _0x5eb7fe=_0x373d11;_0x2485e8[_0x5eb7fe(0x1c8)](),_0x4e544a[_0x5eb7fe(0x1c0)]();},0xc8);}return()=>h(Dialog,{'open':_0x59fb03['value'],'onUpdate:open':_0x4fccc1=>{if(!_0x4fccc1)_0x432812(![]);}},{'default':()=>h(DialogContent,{'class':_0x13f8ea(0x1d4),'showCloseButton':![]},{'default':()=>[h(DialogHeader,{'class':_0x13f8ea(0x1db)},()=>h(DialogTitle,{'class':_0x13f8ea(0x1cb)},()=>_0x4ac662[_0x13f8ea(0x1c4)]||'提示')),h(_0x13f8ea(0x1ba),{'class':_0x13f8ea(0x1d2)},_0x4ac662[_0x13f8ea(0x1ca)]),h(DialogFooter,{'class':_0x13f8ea(0x1dd)},()=>[h(_0x13f8ea(0x1bc),{'type':_0x13f8ea(0x1bc),'class':_0x13f8ea(0x1d3),'onClick':()=>_0x432812(![])},_0x4ac662[_0x13f8ea(0x1ce)]||'取消'),h(_0x13f8ea(0x1bc),{'type':'button','class':_0x13f8ea(0x1d1),'onClick':()=>_0x432812(!![])},_0x4ac662[_0x13f8ea(0x1d0)]||'确定')])]})});}});_0x2485e8[_0x5ecb8d(0x1bb)](_0x4e544a);});}if(typeof document!==_0x31747c(0x1bf)&&!document[_0x31747c(0x1c6)](_0x31747c(0x1b9))){const style=document['createElement'](_0x31747c(0x1c7));style['id']='vm-confirm-style',style[_0x31747c(0x1bd)]=_0x31747c(0x1c1),document[_0x31747c(0x1d9)][_0x31747c(0x1cf)](style);}
@@ -1 +1 @@
1
- const _0xb99ad0=_0x3d87;(function(_0x2c313f,_0x4801f3){const _0x3815ac=_0x3d87,_0x443d6c=_0x2c313f();while(!![]){try{const _0x1ea15b=parseInt(_0x3815ac(0xb0))/0x1*(-parseInt(_0x3815ac(0xa6))/0x2)+-parseInt(_0x3815ac(0xb2))/0x3+parseInt(_0x3815ac(0xa5))/0x4*(-parseInt(_0x3815ac(0xb7))/0x5)+-parseInt(_0x3815ac(0xa7))/0x6+-parseInt(_0x3815ac(0xa0))/0x7*(-parseInt(_0x3815ac(0xad))/0x8)+parseInt(_0x3815ac(0xae))/0x9+-parseInt(_0x3815ac(0xb1))/0xa*(-parseInt(_0x3815ac(0xb4))/0xb);if(_0x1ea15b===_0x4801f3)break;else _0x443d6c['push'](_0x443d6c['shift']());}catch(_0x2dfab2){_0x443d6c['push'](_0x443d6c['shift']());}}}(_0x144f,0x5bdcc));function _0x144f(){const _0x3c2384=['zgvSzxrL','muvcsevJsq','mtbetxrJr0q','mty5nJKZnu5LwKvoDa','5l+D5A2y5OIq5yQF','mJaXodqXndj0ugvyDKG','ywrK','CxvLCNK','odGWDfb5Eezr','6AUy57QN5PcC57sI','5yIG6zMK5OIq5yQF','odu0uhDZA1LV','C2L6zq','6k+36l6t5ywL','5y+w5RAi6ycj5OUP','CgfNzq','mtq1odHJqunrueq','mte1nde5mhrlqwveyq','mJi2nZGZmNvSugzNrG','BgLZDa','6zQq6jEp5yAf5A65','5P+L55Yl5PU05AsA','5Q2K5Pon5l2C5Bcg5PwW5O2U5Qch6k6W5lI65BEY5yIG6zMK77Ym5PIV5zcM57UN57UT77YF','DxbKyxrL','nty1nKHUq2f3tq','ntu1ota4nhPzBeX3tG'];_0x144f=function(){return _0x3c2384;};return _0x144f();}export const CRUD_LABELS={'op':'操作','add':'新增','delete':'删除','multiDelete':'删除','export':'导出','import':'导入','update':'编辑','refresh':'刷新','info':'详情','search':'搜索','reset':'重置','clear':'清空','save':'保存','close':'取消','confirm':'确定','advSearch':_0xb99ad0(0x9e),'searchKey':'搜索关键字','placeholder':_0xb99ad0(0xa2),'tips':'提示','saveSuccess':_0xb99ad0(0xb3),'deleteSuccess':_0xb99ad0(0x9f),'deleteConfirm':_0xb99ad0(0xab),'forceDeleteConfirm':'此操作将永久删除选中数据,是否继续?','empty':'暂无数据','desc':'降序','asc':'升序','select':'选择','deselect':_0xb99ad0(0xa3),'seeMore':_0xb99ad0(0xaa),'hideContent':_0xb99ad0(0xa9),'nonEmpty':'不能为空'};function _0x3d87(_0x3ea520,_0x71804e){_0x3ea520=_0x3ea520-0x9e;const _0x144f21=_0x144f();let _0x3d87be=_0x144f21[_0x3ea520];if(_0x3d87['KRTiHg']===undefined){var _0x5ebf5b=function(_0x266bdf){const _0x2e8027='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1d47f0='',_0xb20050='';for(let _0xbd9bbe=0x0,_0x7055d1,_0x17bdb7,_0x352742=0x0;_0x17bdb7=_0x266bdf['charAt'](_0x352742++);~_0x17bdb7&&(_0x7055d1=_0xbd9bbe%0x4?_0x7055d1*0x40+_0x17bdb7:_0x17bdb7,_0xbd9bbe++%0x4)?_0x1d47f0+=String['fromCharCode'](0xff&_0x7055d1>>(-0x2*_0xbd9bbe&0x6)):0x0){_0x17bdb7=_0x2e8027['indexOf'](_0x17bdb7);}for(let _0x56d2af=0x0,_0x50f2bc=_0x1d47f0['length'];_0x56d2af<_0x50f2bc;_0x56d2af++){_0xb20050+='%'+('00'+_0x1d47f0['charCodeAt'](_0x56d2af)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xb20050);};_0x3d87['aFqtCM']=_0x5ebf5b,_0x3d87['jCTKCz']={},_0x3d87['KRTiHg']=!![];}const _0x3d4d15=_0x144f21[0x0],_0x141ee3=_0x3ea520+_0x3d4d15,_0x33a733=_0x3d87['jCTKCz'][_0x141ee3];return!_0x33a733?(_0x3d87be=_0x3d87['aFqtCM'](_0x3d87be),_0x3d87['jCTKCz'][_0x141ee3]=_0x3d87be):_0x3d87be=_0x33a733,_0x3d87be;}export const DEFAULT_CRUD_DICT={'primaryId':'id','api':{'list':_0xb99ad0(0xa8),'add':_0xb99ad0(0xb5),'update':_0xb99ad0(0xac),'delete':_0xb99ad0(0xaf),'info':'info','page':_0xb99ad0(0xa4)},'pagination':{'page':_0xb99ad0(0xa4),'size':_0xb99ad0(0xa1)},'search':{'keyWord':'keyWord','query':_0xb99ad0(0xb6)},'sort':{'prop':'order','order':'sort'},'label':CRUD_LABELS};
1
+ function _0x48fb(_0x4ee715,_0x833acc){_0x4ee715=_0x4ee715-0xc9;const _0x8ccfbf=_0x8ccf();let _0x48fbeb=_0x8ccfbf[_0x4ee715];if(_0x48fb['aYoZSY']===undefined){var _0x505d92=function(_0x30645b){const _0x1074a9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x30eaf5='',_0x4d9953='';for(let _0x21fe77=0x0,_0x386496,_0x5822a8,_0x5186ad=0x0;_0x5822a8=_0x30645b['charAt'](_0x5186ad++);~_0x5822a8&&(_0x386496=_0x21fe77%0x4?_0x386496*0x40+_0x5822a8:_0x5822a8,_0x21fe77++%0x4)?_0x30eaf5+=String['fromCharCode'](0xff&_0x386496>>(-0x2*_0x21fe77&0x6)):0x0){_0x5822a8=_0x1074a9['indexOf'](_0x5822a8);}for(let _0xec8aac=0x0,_0xa8b967=_0x30eaf5['length'];_0xec8aac<_0xa8b967;_0xec8aac++){_0x4d9953+='%'+('00'+_0x30eaf5['charCodeAt'](_0xec8aac)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4d9953);};_0x48fb['RDheVT']=_0x505d92,_0x48fb['vrjqkX']={},_0x48fb['aYoZSY']=!![];}const _0x34bb87=_0x8ccfbf[0x0],_0x314891=_0x4ee715+_0x34bb87,_0x513bce=_0x48fb['vrjqkX'][_0x314891];return!_0x513bce?(_0x48fbeb=_0x48fb['RDheVT'](_0x48fbeb),_0x48fb['vrjqkX'][_0x314891]=_0x48fbeb):_0x48fbeb=_0x513bce,_0x48fbeb;}const _0x14ef45=_0x48fb;function _0x8ccf(){const _0x43cca0=['5P+L55Yl5PU05AsA','6zQq6jEp5yAf5A65','B3jKzxi','5PcC57sI5ywZ6zsU5A2x','C29YDa','otLJzxrnEuu','zgvSzxrL','odG5mtCWug92BgvI','A2v5v29Yza','CgfNzq','mJi3nJrMueHty2y','odaYnZe2ognetNDIDG','DxbKyxrL','neHqB0fvvq','mtC1oeziA2Xurq','mJu2mZiWCuvcD1Pb','mtz0B3feEMi','5yIG6zMK5OIq5yQF','5y+w5RAi6ycj5OUP','nJK3nJqXm0vNzuXfBW','nZa0nJiXCePluM1s','6k+36l6t5ywL','BgLZDa','ndGZote1wwn0CfjT'];_0x8ccf=function(){return _0x43cca0;};return _0x8ccf();}(function(_0x1636f9,_0xafef29){const _0x3a8a33=_0x48fb,_0x142ffe=_0x1636f9();while(!![]){try{const _0x1bddd7=parseInt(_0x3a8a33(0xc9))/0x1+-parseInt(_0x3a8a33(0xda))/0x2*(parseInt(_0x3a8a33(0xcc))/0x3)+-parseInt(_0x3a8a33(0xdd))/0x4*(-parseInt(_0x3a8a33(0xdc))/0x5)+parseInt(_0x3a8a33(0xdb))/0x6*(parseInt(_0x3a8a33(0xd7))/0x7)+-parseInt(_0x3a8a33(0xd8))/0x8+-parseInt(_0x3a8a33(0xe0))/0x9+parseInt(_0x3a8a33(0xd4))/0xa*(parseInt(_0x3a8a33(0xd2))/0xb);if(_0x1bddd7===_0xafef29)break;else _0x142ffe['push'](_0x142ffe['shift']());}catch(_0x3f21c5){_0x142ffe['push'](_0x142ffe['shift']());}}}(_0x8ccf,0x891c3));export const CRUD_LABELS={'op':'操作','add':'新增','delete':'删除','multiDelete':'删除','export':'导出','import':'导入','update':'编辑','refresh':'刷新','info':'详情','search':'搜索','reset':'重置','clear':'清空','save':'保存','close':'取消','confirm':'确定','advSearch':'高级搜索','searchKey':_0x14ef45(0xd0),'placeholder':_0x14ef45(0xca),'tips':'提示','saveSuccess':'保存成功','deleteSuccess':_0x14ef45(0xde),'deleteConfirm':'此操作将数据标记为已删除,是否继续?','forceDeleteConfirm':'此操作将永久删除选中数据,是否继续?','empty':'暂无数据','desc':'降序','asc':'升序','select':'选择','deselect':_0x14ef45(0xdf),'seeMore':_0x14ef45(0xcd),'hideContent':_0x14ef45(0xce),'nonEmpty':'不能为空'};export const DEFAULT_CRUD_DICT={'primaryId':'id','api':{'list':_0x14ef45(0xcb),'add':'add','update':_0x14ef45(0xd9),'delete':_0x14ef45(0xd3),'info':'info','page':_0x14ef45(0xd6)},'pagination':{'page':_0x14ef45(0xd6),'size':'size'},'search':{'keyWord':_0x14ef45(0xd5),'query':'query'},'sort':{'prop':_0x14ef45(0xcf),'order':_0x14ef45(0xd1)},'label':CRUD_LABELS};