@vyr/design 0.0.32 → 0.0.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,14 +1,19 @@
1
1
  {
2
2
  "name": "@vyr/design",
3
- "version": "0.0.32",
3
+ "version": "0.0.34",
4
4
  "main": "./src/index.ts",
5
5
  "dependencies": {
6
+ "devui-theme": "^0.1.0",
7
+ "async-validator": "4.2.5",
6
8
  "@popperjs/core": "2.11.7",
7
- "ag-grid-community": "^35.0.0",
8
- "ag-grid-vue3": "^35.0.0",
9
+ "ag-grid-community": "35.0.0",
10
+ "ag-grid-vue3": "35.0.0",
9
11
  "tinycolor2": "1.6.0",
10
12
  "vue": "3.5.22"
11
13
  },
14
+ "devDependencies": {
15
+ "sass": "^1.32.0"
16
+ },
12
17
  "files": [
13
18
  "package.json",
14
19
  "src/"
@@ -1,29 +1,25 @@
1
1
  <template>
2
- <div class="vyr-card" :style="style">
3
- <div class="card-header" :class="{ 'handle': arrow }" @click="changeVisible">
2
+ <div class="vyr-card">
3
+ <div class="card-header" :class="{ 'handle': arrow }">
4
4
  <div class="header-title">
5
5
  <slot v-if="$slots.title" name="title"></slot>
6
6
  <div v-else class="title-text">
7
7
  {{ title }}
8
8
  </div>
9
9
  </div>
10
- <div class="header-icon" :class="{ 'expand': state.visible }">
10
+ <div class="header-icon">
11
11
  <slot name="icon">
12
12
  <i v-if="arrow" class="vyrfont vyr-arrow-down-bold"></i>
13
13
  </slot>
14
14
  </div>
15
15
  </div>
16
- <div class="card-body" :class="{ scroll }" ref="refBody" :style="state.style">
16
+ <div class="card-body" ref="refBody">
17
17
  <template v-if="scroll">
18
18
  <vyr-scroll :margin="8" :padding="8">
19
19
  <slot></slot>
20
20
  </vyr-scroll>
21
21
  </template>
22
- <template v-else>
23
- <div class="body-wrapper" ref="refWrapper">
24
- <slot></slot>
25
- </div>
26
- </template>
22
+ <slot v-else></slot>
27
23
  </div>
28
24
  <div class="card-tool" v-if="$slots.tool">
29
25
  <slot name="tool"></slot>
@@ -42,52 +38,6 @@ const props = defineProps({
42
38
  scroll: { default: false }
43
39
  })
44
40
 
45
- const refBody = useTemplateRef('refBody')
46
- const refWrapper = useTemplateRef('refWrapper')
47
- const state = ref({
48
- visible: true,
49
- style: '',
50
- showing: false,
51
- })
52
- const showBodyEnd = () => {
53
- state.value.showing = false
54
- state.value.style = ''
55
- }
56
- const showBody = () => {
57
- if (!refWrapper.value) return
58
- let height = refWrapper.value.clientHeight
59
- state.value.style = `height:${height}px;overflow:hidden;`
60
- setTimeout(showBodyEnd, Theme.config.animationTime.value)
61
- }
62
- const hideBodyEnd = () => {
63
- state.value.showing = false
64
- state.value.style = 'display:none;'
65
- }
66
- const hideBody = () => {
67
- if (!refBody.value) return
68
- state.value.style = `height:${refBody.value.clientHeight}px;overflow:hidden;`
69
- requestAnimationFrame(() => state.value.style = `height:0px;overflow:hidden;`)
70
- setTimeout(hideBodyEnd, Theme.config.animationTime.value)
71
- }
72
- const watchVisible = () => {
73
- state.value.showing = true
74
- if (state.value.visible === true) {
75
- state.value.style = 'height:0px;overflow:hidden;'
76
- requestAnimationFrame(showBody)
77
- } else {
78
- hideBody()
79
- }
80
- }
81
- watch(() => state.value.visible, watchVisible)
82
-
83
- const style = computed(() => {
84
- return props.scroll ? 'height:100%;' : ''
85
- })
86
-
87
- const changeVisible = () => {
88
- if (props.arrow === false || state.value.showing === true) return
89
- state.value.visible = !state.value.visible
90
- }
91
41
  </script>
92
42
 
93
43
  <style lang="less" scoped>
@@ -99,6 +49,7 @@ const changeVisible = () => {
99
49
  .vyr-card {
100
50
  .vyr-font-family;
101
51
  width: 100%;
52
+ height: 100%;
102
53
  font-size: var(--vyr-font-size);
103
54
  color: var(--vyr-font-color);
104
55
  border: 1px solid var(--vyr-border-color);
@@ -154,16 +105,12 @@ const changeVisible = () => {
154
105
  color: var(--vyr-helper-color);
155
106
  }
156
107
  }
157
-
158
- .header-icon.expand {
159
- .vyrfont {
160
- transform: rotate(-180deg);
161
- }
162
- }
163
108
  }
164
109
 
165
110
  .card-body {
166
111
  width: 100%;
112
+ height: 100%;
113
+ overflow: hidden;
167
114
  box-sizing: border-box;
168
115
  background-color: var(--vyr-topic-color);
169
116
  border-top: var(--vyr-border-size) solid var(--vyr-border-color);
@@ -177,11 +124,6 @@ const changeVisible = () => {
177
124
  }
178
125
  }
179
126
 
180
- .card-body.scroll {
181
- height: 100%;
182
- overflow: hidden;
183
- }
184
-
185
127
  .card-tool {
186
128
  border-top: var(--vyr-border-size) solid var(--vyr-border-color);
187
129
  padding: @card-pad-size;
@@ -19,7 +19,6 @@
19
19
  <div class="dialog-footer" :style="`height:${footer}px;`" v-if="$slots.footer">
20
20
  <slot name="footer"></slot>
21
21
  </div>
22
- <slot name="dialog"></slot>
23
22
  </div>
24
23
  </vyr-mask>
25
24
  </template>
@@ -1,15 +1,15 @@
1
1
  <template>
2
- <vyr-dialog v-model="state.visible" :mask="state.mask" :draggable="true" :width="state.width"
2
+ <vyr-dialog v-model="state.visible" :mask="state.mask" :draggable="true" :width="state.width" :height="state.height"
3
3
  :maxHeight="state.maxHeight" @close="close">
4
4
  <template #title>
5
5
  <template v-if="state.type === 'warning'">
6
6
  <i class="vyrfont vyr-warning tips-type"></i>
7
7
  </template>{{ state.title }}
8
8
  </template>
9
- <template v-if="state.component">
9
+ <template #[slotName] v-if="state.component">
10
10
  <component :is="state.component" v-bind="state.props"></component>
11
11
  </template>
12
- <template v-else>
12
+ <template #[slotName] v-else>
13
13
  <vyr-form>
14
14
  <div class="dynamic-item" v-for="(option, i) in state.options" :key="i">
15
15
  <div class="item-label">{{ option.label }}</div>
@@ -46,7 +46,7 @@
46
46
  </template>
47
47
 
48
48
  <script setup lang="ts">
49
- import { ref } from 'vue';
49
+ import { computed, ref } from 'vue';
50
50
  import { DialogOptions, useDialogState } from './utils';
51
51
  import { language } from '../locale'
52
52
  import VyrDialog from './Dialog.vue';
@@ -68,6 +68,10 @@ const privateState = ref({
68
68
  flag: false,
69
69
  })
70
70
 
71
+ const slotName = computed(() => {
72
+ return state.value.scroll === true ? 'default' : 'scroll'
73
+ })
74
+
71
75
  const currentData = (option: DialogOptions[number]) => {
72
76
  if (option.componentData === undefined) return []
73
77
  return Array.isArray(option.componentData) ? option.componentData : option.componentData(privateState.value.data)
@@ -4,7 +4,7 @@
4
4
  <slot></slot>
5
5
  </div>
6
6
  <div class="dynamic-sidebar" :style="sidebarStyle">
7
- <div :class="`vyr-${mode}-bar ${state.enable ? 'enable' : ''}`" @mousedown.stop.prevent="start"></div>
7
+ <div :class="`vyr-${mode}-bar ${state.enable ? 'enable' : ''}`" @mousedown.prevent="start"></div>
8
8
  <slot name="sidebar"></slot>
9
9
  </div>
10
10
  </div>
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div class="vyr-input" :class="{ 'clearable': curClearable, 'icon': $slots.icon }" :style="`width:${curInputWidth};`"
3
3
  @click="e => emit('click', e)" @mouseenter="mouseenter" @mouseleave="mouseleave" @mouseup="mouseup">
4
- <input ref="refInput" class="input-wrapper" tabindex="-1" v-focus="curReadonly ? false : autofocus"
4
+ <input ref="refInput" class="input-wrapper" v-focus="curReadonly ? false : autofocus"
5
5
  :class="{ 'readonly': curReadonly, 'icon': curClearable, 'draggable': drag.draggable }" :type="type"
6
6
  :placeholder="placeholder" :value="currentValue" :readonly="curReadonly" @input="inputValue" @focus="focus"
7
7
  @blur="blurValue" @compositionstart="compositionstart" @compositionend="compositionend" />
@@ -58,10 +58,11 @@ const compositionend = (e: CompositionEvent) => {
58
58
  inputValue()
59
59
  }
60
60
  const focus = () => {
61
- if (curReadonly.value === true) return
62
- emit('focus')
61
+ if (curReadonly.value === false) {
62
+ emit('focus')
63
+ isFocus.value = true
64
+ }
63
65
  window.addEventListener('keydown', confirm)
64
- isFocus.value = true
65
66
  }
66
67
  const inputValue = () => {
67
68
  if (composition.value === true) return
@@ -72,12 +73,13 @@ const inputValue = () => {
72
73
  const validateProvider = useValidateItemProvider()
73
74
  const blurValue = () => {
74
75
  composition.value = false
75
- if (curReadonly.value === true) return
76
- currentValue.value = refInput.value?.value ?? ''
77
- if (props.trigger === 'blur') emit('update:modelValue', currentValue.value)
78
- emit('blur', currentValue.value)
79
- validateProvider.value.validate(currentValue.value)
80
- isFocus.value = false
76
+ if (curReadonly.value === false) {
77
+ currentValue.value = refInput.value?.value ?? ''
78
+ if (props.trigger === 'blur') emit('update:modelValue', currentValue.value)
79
+ emit('blur', currentValue.value)
80
+ validateProvider.value.validate(currentValue.value)
81
+ isFocus.value = false
82
+ }
81
83
  window.removeEventListener('keydown', confirm)
82
84
  }
83
85
  const clear = (e: MouseEvent) => {
@@ -190,6 +190,7 @@ defineExpose(expose)
190
190
  position: relative;
191
191
  left: 0;
192
192
  top: 0;
193
+ border-radius: var(--vyr-radius-size);
193
194
  }
194
195
 
195
196
  .popover-wrapper.flex {
@@ -22,7 +22,7 @@ import { language } from '../locale'
22
22
  const props = defineProps(scrollCommonDefaultProps)
23
23
  const { marginStyle, paddingStyle } = useMarginStyle(props)
24
24
 
25
- const emit = defineEmits(['resize'])
25
+ const emit = defineEmits(['resize', 'wheel'])
26
26
  const refWrapper = useTemplateRef('refWrapper')
27
27
  const refBody = useTemplateRef('refBody')
28
28
  const state = ref({
@@ -58,7 +58,9 @@ const unlisten = () => {
58
58
  onMounted(listen)
59
59
  onBeforeUnmount(unlisten)
60
60
 
61
- const { opacity, layout, move, leave } = useScroll(computeTop, refWrapper as Ref<HTMLElement>)
61
+ const { opacity, layout, move, leave } = useScroll(computeTop, emit, refWrapper as Ref<HTMLElement>)
62
+
63
+ defineExpose({ wrapper: refWrapper })
62
64
  </script>
63
65
 
64
66
  <style lang="less" scoped>
@@ -1,6 +1,6 @@
1
1
  import { ref, Ref } from "vue"
2
2
 
3
- const useScroll = (computeTop: () => void, wrapper: Ref<HTMLElement>) => {
3
+ const useScroll = (computeTop: () => void, emit: (...arsg: any[]) => void, wrapper: Ref<HTMLElement>) => {
4
4
  const scroll = {
5
5
  tick: 0,
6
6
  count: 0,
@@ -22,6 +22,7 @@ const useScroll = (computeTop: () => void, wrapper: Ref<HTMLElement>) => {
22
22
  stop()
23
23
  }
24
24
  const layout = (e: WheelEvent) => {
25
+ emit('wheel', e)
25
26
  if (scroll.stopWheel === true) e.preventDefault()
26
27
  if (scroll.tick === 0) loop()
27
28
  scroll.count++
@@ -6,13 +6,20 @@ const confirm = (config: Partial<Confirm> = {}) => {
6
6
  const app = createApp(ConfirmVue)
7
7
 
8
8
  const promise = new Promise<Confirm>((resolve) => {
9
- const state = getConfirmState(config, (success) => {
9
+ let id = -1
10
+ const close = (success: boolean) => {
10
11
  state.value.visible = false
11
12
  app.unmount()
12
13
  config.value = state.value.value
13
14
  config.success = success
15
+ clearTimeout(id)
14
16
  resolve(config as Confirm)
15
- })
17
+ }
18
+ const state = getConfirmState(config, close)
19
+
20
+ if (state.value.timeout > 0) {
21
+ id = setTimeout(() => close(false), config.timeout)
22
+ }
16
23
 
17
24
  app.provide(confirmKey, state)
18
25
  app.mount(document.createElement('div'))
@@ -12,6 +12,7 @@ interface Confirm {
12
12
  options: ConfirmOptions
13
13
  mode: string
14
14
  placeholder: string
15
+ timeout: number
15
16
  success: boolean
16
17
  }
17
18
 
@@ -27,6 +28,7 @@ const getConfirmState = (config: Partial<Confirm>, close = (state: boolean) => {
27
28
  mode: config.mode,
28
29
  value: config.value,
29
30
  placeholder: config.placeholder,
31
+ timeout: config.timeout ?? 0,
30
32
  success: false,
31
33
  close
32
34
  })
@@ -16,10 +16,12 @@ interface Dialog {
16
16
  value: { [k: string]: any }
17
17
  options: DialogOptions
18
18
  width?: string
19
+ height?: string
19
20
  maxHeight?: string
20
21
  component?: DefineComponent<any, any, any>
21
22
  props?: { [k: string]: any }
22
23
  mask?: boolean
24
+ scroll?: boolean
23
25
  success: boolean
24
26
  }
25
27
 
@@ -33,10 +35,12 @@ const getDialogState = (config: Partial<Dialog>, close = (state: boolean) => { }
33
35
  options: config.options ?? [],
34
36
  value: config.value,
35
37
  width: config.width ?? '720px',
38
+ height: config.height,
36
39
  maxHeight: config.maxHeight ?? '70%',
37
40
  component: config.component ? markRaw(config.component) : undefined,
38
41
  props: config.props ?? {},
39
42
  mask: config.mask ?? false,
43
+ scroll: config.scroll ?? true,
40
44
  success: false,
41
45
  close
42
46
  })
@@ -55,33 +55,33 @@
55
55
  <ul class="icon_lists dib-box">
56
56
 
57
57
  <li class="dib">
58
- <span class="icon vyrfont">&#xe67d;</span>
59
- <div class="name">search</div>
60
- <div class="code-name">&amp;#xe67d;</div>
58
+ <span class="icon vyrfont">&#xe663;</span>
59
+ <div class="name">错误列表</div>
60
+ <div class="code-name">&amp;#xe663;</div>
61
61
  </li>
62
62
 
63
63
  <li class="dib">
64
- <span class="icon vyrfont">&#xe645;</span>
65
- <div class="name">删除</div>
66
- <div class="code-name">&amp;#xe645;</div>
64
+ <span class="icon vyrfont">&#xe872;</span>
65
+ <div class="name">ai</div>
66
+ <div class="code-name">&amp;#xe872;</div>
67
67
  </li>
68
68
 
69
69
  <li class="dib">
70
- <span class="icon vyrfont">&#xe6a5;</span>
71
- <div class="name">preset</div>
72
- <div class="code-name">&amp;#xe6a5;</div>
70
+ <span class="icon vyrfont">&#xe648;</span>
71
+ <div class="name">预制体</div>
72
+ <div class="code-name">&amp;#xe648;</div>
73
73
  </li>
74
74
 
75
75
  <li class="dib">
76
- <span class="icon vyrfont">&#xe64e;</span>
77
- <div class="name">激活</div>
78
- <div class="code-name">&amp;#xe64e;</div>
76
+ <span class="icon vyrfont">&#xe67d;</span>
77
+ <div class="name">search</div>
78
+ <div class="code-name">&amp;#xe67d;</div>
79
79
  </li>
80
80
 
81
81
  <li class="dib">
82
- <span class="icon vyrfont">&#xe75b;</span>
83
- <div class="name">动画</div>
84
- <div class="code-name">&amp;#xe75b;</div>
82
+ <span class="icon vyrfont">&#xe6a5;</span>
83
+ <div class="name">preset</div>
84
+ <div class="code-name">&amp;#xe6a5;</div>
85
85
  </li>
86
86
 
87
87
  <li class="dib">
@@ -126,12 +126,6 @@
126
126
  <div class="code-name">&amp;#xe60d;</div>
127
127
  </li>
128
128
 
129
- <li class="dib">
130
- <span class="icon vyrfont">&#xe65f;</span>
131
- <div class="name">预制体</div>
132
- <div class="code-name">&amp;#xe65f;</div>
133
- </li>
134
-
135
129
  <li class="dib">
136
130
  <span class="icon vyrfont">&#xe817;</span>
137
131
  <div class="name">json</div>
@@ -176,7 +170,7 @@
176
170
 
177
171
  <li class="dib">
178
172
  <span class="icon vyrfont">&#xe717;</span>
179
- <div class="name">数据集</div>
173
+ <div class="name">数据容器</div>
180
174
  <div class="code-name">&amp;#xe717;</div>
181
175
  </li>
182
176
 
@@ -372,9 +366,9 @@
372
366
  <pre><code class="language-css"
373
367
  >@font-face {
374
368
  font-family: 'vyrfont';
375
- src: url('iconfont.woff2?t=1767237848841') format('woff2'),
376
- url('iconfont.woff?t=1767237848841') format('woff'),
377
- url('iconfont.ttf?t=1767237848841') format('truetype');
369
+ src: url('iconfont.woff2?t=1773586535090') format('woff2'),
370
+ url('iconfont.woff?t=1773586535090') format('woff'),
371
+ url('iconfont.ttf?t=1773586535090') format('truetype');
378
372
  }
379
373
  </code></pre>
380
374
  <h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
@@ -401,47 +395,47 @@
401
395
  <ul class="icon_lists dib-box">
402
396
 
403
397
  <li class="dib">
404
- <span class="icon vyrfont vyr-search"></span>
398
+ <span class="icon vyrfont vyr-liebiao3"></span>
405
399
  <div class="name">
406
- search
400
+ 错误列表
407
401
  </div>
408
- <div class="code-name">.vyr-search
402
+ <div class="code-name">.vyr-liebiao3
409
403
  </div>
410
404
  </li>
411
405
 
412
406
  <li class="dib">
413
- <span class="icon vyrfont vyr-delete"></span>
407
+ <span class="icon vyrfont vyr-ai"></span>
414
408
  <div class="name">
415
- 删除
409
+ ai
416
410
  </div>
417
- <div class="code-name">.vyr-delete
411
+ <div class="code-name">.vyr-ai
418
412
  </div>
419
413
  </li>
420
414
 
421
415
  <li class="dib">
422
- <span class="icon vyrfont vyr-preset"></span>
416
+ <span class="icon vyrfont vyr-sidebar-prefab"></span>
423
417
  <div class="name">
424
- preset
418
+ 预制体
425
419
  </div>
426
- <div class="code-name">.vyr-preset
420
+ <div class="code-name">.vyr-sidebar-prefab
427
421
  </div>
428
422
  </li>
429
423
 
430
424
  <li class="dib">
431
- <span class="icon vyrfont vyr-active"></span>
425
+ <span class="icon vyrfont vyr-search"></span>
432
426
  <div class="name">
433
- 激活
427
+ search
434
428
  </div>
435
- <div class="code-name">.vyr-active
429
+ <div class="code-name">.vyr-search
436
430
  </div>
437
431
  </li>
438
432
 
439
433
  <li class="dib">
440
- <span class="icon vyrfont vyr-hover"></span>
434
+ <span class="icon vyrfont vyr-preset"></span>
441
435
  <div class="name">
442
- 动画
436
+ preset
443
437
  </div>
444
- <div class="code-name">.vyr-hover
438
+ <div class="code-name">.vyr-preset
445
439
  </div>
446
440
  </li>
447
441
 
@@ -473,11 +467,11 @@
473
467
  </li>
474
468
 
475
469
  <li class="dib">
476
- <span class="icon vyrfont vyr-changjing"></span>
470
+ <span class="icon vyrfont vyr-category-scene"></span>
477
471
  <div class="name">
478
472
  场景
479
473
  </div>
480
- <div class="code-name">.vyr-changjing
474
+ <div class="code-name">.vyr-category-scene
481
475
  </div>
482
476
  </li>
483
477
 
@@ -508,15 +502,6 @@
508
502
  </div>
509
503
  </li>
510
504
 
511
- <li class="dib">
512
- <span class="icon vyrfont vyr-category-prefab"></span>
513
- <div class="name">
514
- 预制体
515
- </div>
516
- <div class="code-name">.vyr-category-prefab
517
- </div>
518
- </li>
519
-
520
505
  <li class="dib">
521
506
  <span class="icon vyrfont vyr-category-json"></span>
522
507
  <div class="name">
@@ -581,11 +566,11 @@
581
566
  </li>
582
567
 
583
568
  <li class="dib">
584
- <span class="icon vyrfont vyr-category-dataset"></span>
569
+ <span class="icon vyrfont vyr-category-store"></span>
585
570
  <div class="name">
586
- 数据集
571
+ 数据容器
587
572
  </div>
588
- <div class="code-name">.vyr-category-dataset
573
+ <div class="code-name">.vyr-category-store
589
574
  </div>
590
575
  </li>
591
576
 
@@ -879,42 +864,42 @@
879
864
 
880
865
  <li class="dib">
881
866
  <svg class="icon svg-icon" aria-hidden="true">
882
- <use xlink:href="#vyr-search"></use>
867
+ <use xlink:href="#vyr-liebiao3"></use>
883
868
  </svg>
884
- <div class="name">search</div>
885
- <div class="code-name">#vyr-search</div>
869
+ <div class="name">错误列表</div>
870
+ <div class="code-name">#vyr-liebiao3</div>
886
871
  </li>
887
872
 
888
873
  <li class="dib">
889
874
  <svg class="icon svg-icon" aria-hidden="true">
890
- <use xlink:href="#vyr-delete"></use>
875
+ <use xlink:href="#vyr-ai"></use>
891
876
  </svg>
892
- <div class="name">删除</div>
893
- <div class="code-name">#vyr-delete</div>
877
+ <div class="name">ai</div>
878
+ <div class="code-name">#vyr-ai</div>
894
879
  </li>
895
880
 
896
881
  <li class="dib">
897
882
  <svg class="icon svg-icon" aria-hidden="true">
898
- <use xlink:href="#vyr-preset"></use>
883
+ <use xlink:href="#vyr-sidebar-prefab"></use>
899
884
  </svg>
900
- <div class="name">preset</div>
901
- <div class="code-name">#vyr-preset</div>
885
+ <div class="name">预制体</div>
886
+ <div class="code-name">#vyr-sidebar-prefab</div>
902
887
  </li>
903
888
 
904
889
  <li class="dib">
905
890
  <svg class="icon svg-icon" aria-hidden="true">
906
- <use xlink:href="#vyr-active"></use>
891
+ <use xlink:href="#vyr-search"></use>
907
892
  </svg>
908
- <div class="name">激活</div>
909
- <div class="code-name">#vyr-active</div>
893
+ <div class="name">search</div>
894
+ <div class="code-name">#vyr-search</div>
910
895
  </li>
911
896
 
912
897
  <li class="dib">
913
898
  <svg class="icon svg-icon" aria-hidden="true">
914
- <use xlink:href="#vyr-hover"></use>
899
+ <use xlink:href="#vyr-preset"></use>
915
900
  </svg>
916
- <div class="name">动画</div>
917
- <div class="code-name">#vyr-hover</div>
901
+ <div class="name">preset</div>
902
+ <div class="code-name">#vyr-preset</div>
918
903
  </li>
919
904
 
920
905
  <li class="dib">
@@ -943,10 +928,10 @@
943
928
 
944
929
  <li class="dib">
945
930
  <svg class="icon svg-icon" aria-hidden="true">
946
- <use xlink:href="#vyr-changjing"></use>
931
+ <use xlink:href="#vyr-category-scene"></use>
947
932
  </svg>
948
933
  <div class="name">场景</div>
949
- <div class="code-name">#vyr-changjing</div>
934
+ <div class="code-name">#vyr-category-scene</div>
950
935
  </li>
951
936
 
952
937
  <li class="dib">
@@ -973,14 +958,6 @@
973
958
  <div class="code-name">#vyr-tingzhi</div>
974
959
  </li>
975
960
 
976
- <li class="dib">
977
- <svg class="icon svg-icon" aria-hidden="true">
978
- <use xlink:href="#vyr-category-prefab"></use>
979
- </svg>
980
- <div class="name">预制体</div>
981
- <div class="code-name">#vyr-category-prefab</div>
982
- </li>
983
-
984
961
  <li class="dib">
985
962
  <svg class="icon svg-icon" aria-hidden="true">
986
963
  <use xlink:href="#vyr-category-json"></use>
@@ -1039,10 +1016,10 @@
1039
1016
 
1040
1017
  <li class="dib">
1041
1018
  <svg class="icon svg-icon" aria-hidden="true">
1042
- <use xlink:href="#vyr-category-dataset"></use>
1019
+ <use xlink:href="#vyr-category-store"></use>
1043
1020
  </svg>
1044
- <div class="name">数据集</div>
1045
- <div class="code-name">#vyr-category-dataset</div>
1021
+ <div class="name">数据容器</div>
1022
+ <div class="code-name">#vyr-category-store</div>
1046
1023
  </li>
1047
1024
 
1048
1025
  <li class="dib">