vdesign-ui 0.1.24-beta → 0.2.0-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/components/activityviews/index.vue +1 -1
  2. package/dist/components/checkbox/checkbox-group/index.vue +2 -1
  3. package/dist/components/checkbox/index.vue +19 -20
  4. package/dist/components/dialog/index.vue +15 -11
  5. package/dist/components/footer/index.vue +5 -1
  6. package/dist/components/footnav/footnav-item/index.vue +10 -37
  7. package/dist/components/footnav/index.vue +13 -27
  8. package/dist/components/headnav/index.vue +52 -35
  9. package/dist/components/icon/font/iconfont.css +16 -16
  10. package/dist/components/icon/font/iconfont.js +1 -1
  11. package/dist/components/icon/index.vue +26 -18
  12. package/dist/components/input/index.vue +84 -109
  13. package/dist/components/input/search/index.vue +18 -22
  14. package/dist/components/input/stepper/index.vue +32 -26
  15. package/dist/components/input/style.less +20 -32
  16. package/dist/components/list/index.vue +57 -69
  17. package/dist/components/list/style.less +20 -92
  18. package/dist/components/loading/index.vue +17 -8
  19. package/dist/components/pagebreak/index.vue +12 -11
  20. package/dist/components/radio/index.vue +164 -135
  21. package/dist/components/radio/radio-group/index.vue +40 -52
  22. package/dist/components/selector/style.less +4 -0
  23. package/dist/components/step-item/index.vue +2 -2
  24. package/dist/components/tabs/index.vue +55 -32
  25. package/dist/components/tabs/tab/index.vue +13 -16
  26. package/dist/components/tag/index.vue +18 -4
  27. package/dist/components/tag/style.less +2 -2
  28. package/dist/components/title/index.vue +11 -8
  29. package/dist/components/title/style.less +6 -0
  30. package/dist/vdesign-ui.common.js +954 -939
  31. package/dist/vdesign-ui.css +1 -1
  32. package/dist/vdesign-ui.umd.js +954 -939
  33. package/dist/vdesign-ui.umd.min.js +3 -3
  34. package/package.json +1 -1
@@ -84,7 +84,7 @@ export default {
84
84
  return this.value
85
85
  },
86
86
  currentCloseIcon() {
87
- return this.isDarkTheme ? 'icon_btn_dialogclose_dark' : 'icon_btn_dialogclose';
87
+ return this.isDarkTheme ? 'icon_btn_dialogclose_dark_svg' : 'icon_btn_dialogclose_svg';
88
88
  },
89
89
  isDarkTheme() {
90
90
  return this.theme === 'dark';
@@ -18,7 +18,8 @@ export default {
18
18
  return [];
19
19
  }
20
20
  },
21
- type: String,
21
+ type: String, // 类型card
22
+
22
23
  },
23
24
  data() {
24
25
  return {
@@ -1,12 +1,15 @@
1
1
  <template>
2
2
  <label :class="wrapClasses" v-if="!checkboxButton">
3
3
  <span :class="checkboxClasses">
4
+ <!-- 处理分组和单个情况的输入元素 -->
4
5
  <span :class="innerClasses"></span>
6
+ <!-- 处理分组和单个情况的输入元素 -->
5
7
  <input v-if="group" type="checkbox" :class="inputClasses" :disabled="disabled" :value="name" v-model="model"
6
8
  @change="change" />
7
9
  <input v-else type="checkbox" :class="inputClasses" :disabled="disabled" :checked="currentValue"
8
10
  @change="change" />
9
11
  </span>
12
+ <!-- 标签和可选的描述 -->
10
13
  <div class="vd-checkbox__label" v-if="$slots.default">
11
14
  <p class="vd-checkbox__text">
12
15
  <slot></slot>
@@ -15,6 +18,7 @@
15
18
  </div>
16
19
  </label>
17
20
 
21
+ <!-- 复选框按钮变体 -->
18
22
  <label class="vd-checkbox vd-checkbox-button" :class="checkboxButtonClasses" v-else>
19
23
  <input type="checkbox" :class="inputClasses" :disabled="disabled" :checked="currentValue" @change="change" />
20
24
  <template v-if="type === 'small'">
@@ -46,32 +50,29 @@ const prefixCls = "vd-checkbox";
46
50
  export default {
47
51
  name: "vd-checkbox",
48
52
  props: {
49
- checkboxButton: Boolean,
50
- disabled: Boolean,
51
- extra: [String, Number, Boolean],
52
- descriptionText: [String, Number, Boolean],
53
- iconDescriptionText: [String, Number, Boolean],
54
- value: [String, Number, Boolean],
53
+ value: [String, Number, Boolean], // 复选框的当前值
54
+ checkboxButton: Boolean, // 是否为复选框按钮
55
+ disabled: Boolean, // 是否禁用
56
+ extra: [String, Number, Boolean], // 额外的描述文本
55
57
  trueValue: {
56
58
  type: [String, Number, Boolean],
57
- default: true,
59
+ default: true, // 复选框被选中时的值
58
60
  },
59
61
  falseValue: {
60
62
  type: [String, Number, Boolean],
61
- default: false,
63
+ default: false, // 复选框未被选中时的值
62
64
  },
63
- name: null,
64
- indeterminate: Boolean,
65
- icon: String,
66
- iconText: [String, Number, Boolean],
67
- type: String,
65
+ name: null, //复选框的 name 属性
66
+ indeterminate: Boolean, // 复选框的不确定状态
67
+ icon: String, // 使用复选框按钮时显示的图标
68
+ type: String, // 复选框按钮的尺寸类型('small','medium','large')
68
69
  },
69
70
  data() {
70
71
  return {
71
- model: [],
72
- currentValue: this.value,
73
- group: false,
74
- parent: findComponentUpward(this, "vd-checkbox-group"),
72
+ model: [], // 复选框组的模型值
73
+ currentValue: this.value, // 复选框的当前值
74
+ group: false, // 是否为复选框组
75
+ parent: null, // 对父级复选框组组件的引用
75
76
  };
76
77
  },
77
78
  computed: {
@@ -111,9 +112,7 @@ export default {
111
112
  mounted() {
112
113
  this.parent = findComponentUpward(this, "vd-checkbox-group");
113
114
  if (this.parent) {
114
- this.group = true;
115
- }
116
- if (this.group) {
115
+ this.isGroup = true;
117
116
  this.parent.updateModel(true);
118
117
  } else {
119
118
  this.updateModel();
@@ -1,9 +1,9 @@
1
1
  <template>
2
2
  <div class="vd-dialog-wrap">
3
3
  <div class="vd-overlay" v-if="visible && isOverlayVisible && overlay" :style="{ zIndex: overlayZIndex }"
4
- @click="handleOverlayClick()"></div>
4
+ @click="handleOverlayClick"></div>
5
5
  <transition name="vd-dialog-fade">
6
- <div class="vd-dialog" v-if="visible" :class="className ? `vd-dialog--${className}` : ''" :style="{width : width, zIndex: overlayZIndex + 1}">
6
+ <div class="vd-dialog" v-if="visible" :class="computedClassName" :style="{width : width, zIndex: overlayZIndex + 1}">
7
7
  <header class="vd-dialog__header" :class="{ 'vd-dialog__header--img': $slots.imgs }">
8
8
  <div class="vd-dialog__header--img-content" v-if="$slots.imgs">
9
9
  <slot name="imgs"></slot>
@@ -13,9 +13,7 @@
13
13
  <div class="vd-dialog__content">
14
14
  <div class="vd-dialog__message" :class="{ 'vd-dialog__message--head': !title }"
15
15
  v-if="message || $slots.content">
16
- <slot name="content">{{
17
- message
18
- }}</slot>
16
+ <slot name="content">{{message}}</slot>
19
17
  </div>
20
18
  </div>
21
19
  <footer class="vd-dialog__footer">
@@ -89,18 +87,24 @@ export default {
89
87
  }
90
88
  },
91
89
  watch: {
92
- visible(val) {
93
- if (val) {
90
+ visible: {
91
+ immediate: true,
92
+ handler(val) {
93
+ if (val) {
94
94
  this.showOverlayLayer();
95
- } else {
95
+ } else {
96
96
  this.hideOverlayLayer();
97
- }
98
- }
97
+ }
98
+ },
99
+ },
99
100
  },
100
101
  computed: {
101
102
  visible() {
102
103
  return this.value
103
- }
104
+ },
105
+ computedClassName() {
106
+ return this.className ? `vd-dialog--${this.className}` : '';
107
+ },
104
108
  },
105
109
  methods: {
106
110
  showOverlayLayer() {
@@ -4,7 +4,11 @@
4
4
  <slot>
5
5
  </slot>
6
6
  </div>
7
- <p class="vd-footer__text" v-if="text">{{ text }}</p>
7
+ <div class="vd-footer__text" v-if="text || $slots.text">
8
+ <slot name="text">
9
+ {{ text }}
10
+ </slot>
11
+ </div>
8
12
  </div>
9
13
  </template>
10
14
 
@@ -1,7 +1,7 @@
1
1
  <template>
2
- <div class="vd-foot-nav-item" :class="{ 'vd-foot-nav-item--active': active }" @click="onClick">
2
+ <div class="vd-foot-nav-item" :class="{ 'vd-foot-nav-item--active': isActive }" @click="onClick">
3
3
  <vd-badge v-if="iconName|| $slots.icon" :is-dot="dot" :value="badge" :max="99">
4
- <slot name="icon"><vd-icon :name="iconName" size="large" :svg="isSvg"></vd-icon></slot>
4
+ <slot name="icon"><vd-icon :name="iconName" size="large"></vd-icon></slot>
5
5
  </vd-badge>
6
6
  <slot></slot>
7
7
  </div>
@@ -15,50 +15,23 @@ export default {
15
15
  name: 'vd-foot-nav-item',
16
16
  mixins: [RouterLink],
17
17
  props: {
18
- iconName: {
19
- type: String,
20
- },
21
- icon: {
22
- type: String,
23
- },
24
- name: {
25
- type: String,
26
- },
27
- dot: {
28
- type: Boolean,
29
- },
30
- badge: {
31
- type: [Number, String],
32
- },
33
- isSvg: {
34
- type: Boolean,
35
- },
18
+ iconName: String,
19
+ dot: Boolean,
20
+ badge: [Number, String],
36
21
  },
37
22
  computed: {
38
- // isActive() {
39
- // return this.$parent.active === this.$parent.$children.indexOf(this);
40
- // // return this.activeIndex === this.index;
41
-
42
- // },
23
+ isActive() {
24
+ return this.$parent.value === this.$parent.$slots.default.indexOf(this.$vnode);
25
+ },
43
26
  },
44
27
  data() {
45
28
  return {
46
- active: false
47
29
  };
48
30
  },
49
-
50
- beforeCreate() {
51
- this.$parent.items.push(this);
52
- },
53
-
54
- destroyed() {
55
- this.$parent.items.splice(this.$parent.items.indexOf(this), 1);
56
- },
57
31
  methods: {
58
32
  onClick(event) {
59
- // this.$parent.updateActive(this.$parent.$children.indexOf(this));
60
- // this.$emit('click', event);
61
- this.$parent.onChange(this.$parent.items.indexOf(this));
33
+ const index = this.$parent.$slots.default.indexOf(this.$vnode);
34
+ this.$parent.onChange(index);
62
35
  this.$emit('click', event);
63
36
  this.routerLink();
64
37
  },
@@ -27,14 +27,14 @@ export default {
27
27
  default: null,
28
28
  },
29
29
  placeholder: Boolean,
30
+ beforeChange: {
31
+ type: Function,
32
+ default: null,
33
+ },
30
34
  },
31
35
  computed: {
32
36
  fit() {
33
- if (this.safeAreaInsetBottom !== null) {
34
- return this.safeAreaInsetBottom;
35
- }
36
- // enable safe-area-inset-bottom by default when fixed
37
- return this.fixed;
37
+ return this.safeAreaInsetBottom !== null ? this.safeAreaInsetBottom : this.fixed;
38
38
  },
39
39
  style() {
40
40
  return {
@@ -44,39 +44,24 @@ export default {
44
44
  },
45
45
  data() {
46
46
  return {
47
- // active: 0,
48
- items: [],
49
47
  height: null,
50
48
  }
51
49
  },
52
50
  watch: {
53
- items() {
54
- this.setActiveItem();
55
- },
56
-
57
- value() {
58
- this.setActiveItem();
59
- }
60
51
  },
61
52
  methods: {
62
- setActiveItem() {
63
- this.items.forEach((item, index) => {
64
- item.active = index === this.value;
65
- });
66
- },
53
+ async onChange(active) {
54
+ // 处理 before-change 回调,允许用户决定是否切换
55
+ if (this.beforeChange) {
56
+ const canChange = await this.beforeChange(active);
57
+ if (!canChange) return;
58
+ }
67
59
 
68
- onChange(active) {
69
60
  if (active !== this.value) {
70
61
  this.$emit('input', active);
71
62
  this.$emit('change', active);
72
63
  }
73
64
  },
74
- // updateActive(index) {
75
- // this.active = index;
76
- // },
77
- // handleClick() {
78
- // this.$emit('click',this.active)
79
- // }
80
65
  },
81
66
  mounted() {
82
67
  if (this.placeholder && this.fixed) {
@@ -85,7 +70,8 @@ export default {
85
70
  };
86
71
 
87
72
  setHeight();
88
- setTimeout(setHeight, 100);
73
+ window.addEventListener('resize', setHeight);
74
+ this.$once('hook:beforeDestroy', () => window.removeEventListener('resize', setHeight));
89
75
  }
90
76
  }
91
77
 
@@ -1,62 +1,73 @@
1
1
  <template>
2
2
  <div class="vd-head-nav--placeholder" :style="{height:height + 'px'}">
3
3
  <div class="vd-head-nav" :class="wrapClasses" :style="{zIndex:zIndex}" ref="headNav">
4
-
5
4
  <div v-if="showLeftSection" class="vd-head-nav--left">
6
-
5
+ <!-- 左一icon -->
7
6
  <span v-if="showSidebar" class="vd-head-nav__icon">
8
7
  <slot name="left-primary">
9
8
  <vd-icon name="icon_nav_sidebar"></vd-icon>
10
9
  </slot>
11
10
  </span>
12
-
11
+ <!-- 左二icon -->
13
12
  <span v-if="$slots['left-secondary']" class="vd-head-nav__icon">
14
13
  <slot name="left-secondary"></slot>
15
14
  </span>
15
+
16
+ <!-- hno类型下的 左对齐文本-->
16
17
  <span v-if="leftTitle" class="vd-head-nav__left-title">{{ leftTitle }}</span>
18
+ <!-- hno类型下的 编辑文本 -->
17
19
  <span v-if="editLeftText" class="vd-head-nav__edit-left-text">{{ editLeftText }}</span>
18
20
  </div>
19
21
 
20
22
  <div v-if="showContentSection" class="vd-head-nav__content" :class="contentClasses">
23
+ <!-- 标题选择器 -->
21
24
  <div v-if="$slots.selector" class="vd-head-nav__content--selector">
22
25
  <slot name="selector"></slot>
23
26
  </div>
24
-
27
+ <!-- 标题 -->
25
28
  <span v-if="title" class="vd-head-nav__title vd-ellipsis" :class="titleClasses">{{ title }}</span>
29
+ <!-- hno 副标题 -->
26
30
  <span v-if="description" class="vd-head-nav__description">{{ description }}</span>
27
31
 
32
+ <!-- hno 股票价格 -->
28
33
  <span class="vd-head-nav__stock" :class="stockColor" v-if="colors">
34
+ <!-- 股票开市状态 -->
29
35
  <slot name="state"></slot>
30
36
  <span class="vd-head-nav__price--price">{{ price }}</span>
31
37
  <span class="vd-head-nav__price--chgp">{{ chgp }}</span>
32
38
  <span class="vd-head-nav__price--chg">{{ chg }}</span>
33
39
  </span>
34
40
 
41
+ <!-- hno title 账户类型选择器 -->
35
42
  <slot name="selector-bottom"></slot>
36
-
43
+ <!-- hno 账户类型选择器结果 -->
37
44
  <span v-if="accountIcon || accountType" class="vd-head-nav__icontype">
38
- <vd-icon svg :name="accountIcon" class="vd-head-nav__account-type--icon"></vd-icon>
45
+ <vd-icon :name="accountIcon" class="vd-head-nav__account-type--icon"></vd-icon>
39
46
  <span class="vd-head-nav__account-type">{{ accountType }}</span>
40
47
  </span>
41
48
  </div>
42
49
 
43
50
  <div class="vd-head-nav--right" v-if="showRightSection">
51
+ <!-- 右二icon -->
44
52
  <span v-if="rightSecondary || $slots['right-secondary']" class="vd-head-nav__icon">
45
53
  <slot name="right-secondary">
46
54
  <vd-icon name="icon_nav_search" style="transform: scale(1);"></vd-icon>
47
55
  </slot>
48
56
  </span>
49
-
57
+ <!-- 右一icon -->
50
58
  <span v-if="rightPrimary || $slots['right-primary']" class="vd-head-nav__icon">
51
59
  <slot name="right-primary">
52
60
  <vd-icon name="icon_nav_trade" style="transform: scale(1);"></vd-icon>
53
61
  </slot>
54
62
  </span>
55
63
 
64
+ <!-- hno-编辑右侧文字 -->
56
65
  <span class="vd-head-nav__edit-right-text" v-if="editRightText">{{ editRightText }}</span>
66
+ <!-- hno-账户类型右侧文字 -->
57
67
  <span class="vd-head-nav__account-text" v-if="accountText">{{ accountText }}</span>
58
68
  </div>
59
69
 
70
+ <!-- 股票开市状态 -->
60
71
  <div class="vd-head-nav__info" v-if="$slots['stock-time'] || time">
61
72
  <slot name="stock-time"></slot>
62
73
  <span v-if="time" class="vd-head-nav__time">{{ time }}</span>
@@ -71,28 +82,28 @@ const prefixCls = 'vd-head-nav';
71
82
  export default {
72
83
  name: 'vd-head-nav',
73
84
  props: {
74
- title: String,
75
- time: String,
76
- type: String,
77
- leftPrimary: Boolean,
78
- rightPrimary: Boolean,
79
- rightSecondary: Boolean,
80
- start: Boolean,
81
- description: String,
82
- price: String,
83
- chg: String,
84
- chgp: String,
85
- colors: String,
86
- leftTitle: String,
87
- editLeftText: String,
88
- editRightText: String,
89
- accountText: String,
90
- accountType: String,
91
- accountIcon: String,
92
- fixed: Boolean,
93
- zIndex: [Number, String],
94
- safeAreaInsetTop: Boolean,
95
- placeholder: Boolean,
85
+ title: String, // 标题
86
+ time: String, // 标题下面的股票开市时间
87
+ type: String, // 默认hnp 设置normal为hno
88
+ leftPrimary: Boolean, // 左侧边栏图标,左一,有默认图标icon_nav_sidebar,也可以是同名slot
89
+ rightPrimary: Boolean, // 右侧边栏图标,右一,有默认图标icon_nav_search,也可以是同名slot
90
+ rightSecondary: Boolean, // 右侧边栏图标,右二,有默认图标icon_nav_trade,也可以是同名slot
91
+ start: Boolean, // hno类型下的,居左对齐
92
+ description: String, // 标题下面的描述文字
93
+ price: String, // 股票价格
94
+ chgp: String, // 股票涨跌百分比 如:+0.01%
95
+ chg: String, // 股票涨跌,如:+0.01
96
+ colors: String, // 股票涨跌颜色,默认rise,可选值fall,rise为涨,fall为跌
97
+ leftTitle: String, // hno类型下的,左侧边栏文字,字号大一些
98
+ editLeftText: String, // hno类型下的,编辑左边栏文字
99
+ editRightText: String, // hno类型下的,编辑右边栏文字
100
+ accountText: String, // 账户类型右侧边栏文字
101
+ accountType: String, // 账户类型文本
102
+ accountIcon: String, // 账户类型图标
103
+ fixed: Boolean, // 固定在顶部
104
+ zIndex: [Number, String], // 固定在顶部时,设置z-index
105
+ safeAreaInsetTop: Boolean, // 固定在顶部时,是否使用安全区域
106
+ placeholder: Boolean, // 是否使用占位,用于固定在顶部时,占位高度
96
107
  },
97
108
  data() {
98
109
  return {
@@ -139,20 +150,26 @@ export default {
139
150
  return this.showSidebar || this.$slots['left-secondary'] || this.leftTitle || this.editLeftText;
140
151
  },
141
152
  showContentSection() {
142
- return this.title || this.$slots.selector || this.$slots['selector-bottom'] || this.account || this.colors;
153
+ return this.title || this.description || this.$slots.selector || this.$slots['selector-bottom'] || this.accountIcon || this.accountType || this.colors;
143
154
  },
144
155
  showRightSection() {
145
156
  return this.rightPrimary || this.$slots['right-primary'] || this.rightSecondary || this.$slots['right-secondary'] || this.editRightText || this.accountText;
146
157
  }
147
158
  },
148
159
  mounted() {
160
+ // if (this.placeholder && this.fixed) {
161
+ // const setHeight = () => {
162
+ // this.height = this.$refs.headNav.getBoundingClientRect().height;
163
+ // };
164
+
165
+ // setHeight();
166
+ // setTimeout(setHeight, 100);
167
+ // }
168
+
149
169
  if (this.placeholder && this.fixed) {
150
- const setHeight = () => {
170
+ this.$nextTick(() => {
151
171
  this.height = this.$refs.headNav.getBoundingClientRect().height;
152
- };
153
-
154
- setHeight();
155
- setTimeout(setHeight, 100);
172
+ });
156
173
  }
157
174
  },
158
175
  }
@@ -1,9 +1,9 @@
1
1
  @font-face {
2
2
  font-family: "vd-iconfont"; /* Project id 4683824 */
3
3
  src:
4
- url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'),
5
- url('//at.alicdn.com/t/c/font_4683824_pxui7awjp7h.woff?t=1726218229853') format('woff'),
6
- url('//at.alicdn.com/t/c/font_4683824_pxui7awjp7h.ttf?t=1726218229853') format('truetype');
4
+ url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'),
5
+ url('//at.alicdn.com/t/c/font_4683824_95nozrto2qj.woff?t=1729064431754') format('woff'),
6
+ url('//at.alicdn.com/t/c/font_4683824_95nozrto2qj.ttf?t=1729064431754') format('truetype');
7
7
  }
8
8
 
9
9
  .vd-iconfont {
@@ -30,31 +30,31 @@
30
30
  content: "\e66f";
31
31
  }
32
32
 
33
- .vd-icon-icon_btn_sort:before {
33
+ .vd-icon-icon_btn_sort_svg:before {
34
34
  content: "\e644";
35
35
  }
36
36
 
37
- .vd-icon-icon_btn_sortdown_slt:before {
37
+ .vd-icon-icon_btn_sortdown_slt_svg:before {
38
38
  content: "\e611";
39
39
  }
40
40
 
41
- .vd-icon-icon_btn_sortup:before {
41
+ .vd-icon-icon_btn_sortup_svg:before {
42
42
  content: "\e612";
43
43
  }
44
44
 
45
- .vd-icon-icon_btn_sortup_slt:before {
45
+ .vd-icon-icon_btn_sortup_slt_svg:before {
46
46
  content: "\e615";
47
47
  }
48
48
 
49
- .vd-icon-icon_btn_sortdown:before {
49
+ .vd-icon-icon_btn_sortdown_svg:before {
50
50
  content: "\e618";
51
51
  }
52
52
 
53
- .vd-icon-icon_btn_sortdown_dark:before {
53
+ .vd-icon-icon_btn_sortdown_dark_svg:before {
54
54
  content: "\e704";
55
55
  }
56
56
 
57
- .vd-icon-icon_btn_sortup_dark:before {
57
+ .vd-icon-icon_btn_sortup_dark_svg:before {
58
58
  content: "\e703";
59
59
  }
60
60
 
@@ -94,27 +94,27 @@
94
94
  content: "\e6af";
95
95
  }
96
96
 
97
- .vd-icon-icon_btn_dialogclose:before {
97
+ .vd-icon-icon_btn_dialogclose_svg:before {
98
98
  content: "\e6e5";
99
99
  }
100
100
 
101
- .vd-icon-icon_show_steping:before {
101
+ .vd-icon-icon_show_steping_svg:before {
102
102
  content: "\e61c";
103
103
  }
104
104
 
105
- .vd-icon-icon_show_stepwrong:before {
105
+ .vd-icon-icon_show_stepwrong_svg:before {
106
106
  content: "\e61d";
107
107
  }
108
108
 
109
- .vd-icon-icon_show_stepwrong1:before {
109
+ .vd-icon-icon_show_stepwrong1_svg:before {
110
110
  content: "\e61f";
111
111
  }
112
112
 
113
- .vd-icon-icon_show_steping1:before {
113
+ .vd-icon-icon_show_steping1_svg:before {
114
114
  content: "\e61e";
115
115
  }
116
116
 
117
- .vd-icon-icon_btn_dialogclose_dark:before {
117
+ .vd-icon-icon_btn_dialogclose_dark_svg:before {
118
118
  content: "\e702";
119
119
  }
120
120