stellar-ui-v2 1.35.3

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 (141) hide show
  1. package/common/css/common.scss +61 -0
  2. package/components/ste-animate/README.md +117 -0
  3. package/components/ste-animate/animate.scss +247 -0
  4. package/components/ste-animate/ste-animate.vue +200 -0
  5. package/components/ste-badge/README.md +171 -0
  6. package/components/ste-badge/ste-badge.vue +238 -0
  7. package/components/ste-barcode/README.md +36 -0
  8. package/components/ste-barcode/encode2.js +317 -0
  9. package/components/ste-barcode/ste-barcode.vue +213 -0
  10. package/components/ste-button/README.md +129 -0
  11. package/components/ste-button/ste-button.vue +345 -0
  12. package/components/ste-calendar/README.md +304 -0
  13. package/components/ste-calendar/self-date.js +119 -0
  14. package/components/ste-calendar/ste-calendar.vue +578 -0
  15. package/components/ste-checkbox/README.md +297 -0
  16. package/components/ste-checkbox/ste-checkbox.vue +305 -0
  17. package/components/ste-checkbox-group/ste-checkbox-group.vue +133 -0
  18. package/components/ste-code-input/README.md +67 -0
  19. package/components/ste-code-input/ste-code-input.vue +302 -0
  20. package/components/ste-date-picker/README.md +135 -0
  21. package/components/ste-date-picker/ste-date-picker.vue +407 -0
  22. package/components/ste-drag/README.md +103 -0
  23. package/components/ste-drag/ste-drag.vue +203 -0
  24. package/components/ste-dropdown-menu/README.md +358 -0
  25. package/components/ste-dropdown-menu/ste-dropdown-menu.vue +405 -0
  26. package/components/ste-dropdown-menu-item/ste-dropdown-menu-item.vue +176 -0
  27. package/components/ste-icon/README.md +90 -0
  28. package/components/ste-icon/iconfont.css +8 -0
  29. package/components/ste-icon/ste-icon.vue +147 -0
  30. package/components/ste-image/README.md +154 -0
  31. package/components/ste-image/ste-image.vue +218 -0
  32. package/components/ste-index-item/ste-index-item.vue +96 -0
  33. package/components/ste-index-list/README.md +153 -0
  34. package/components/ste-index-list/ste-index-list.vue +128 -0
  35. package/components/ste-input/README.md +146 -0
  36. package/components/ste-input/ste-input.vue +480 -0
  37. package/components/ste-loading/README.md +81 -0
  38. package/components/ste-loading/ste-loading.vue +166 -0
  39. package/components/ste-media-preview/README.md +243 -0
  40. package/components/ste-media-preview/TouchScaleing.js +102 -0
  41. package/components/ste-media-preview/ste-media-preview.vue +267 -0
  42. package/components/ste-message-box/README.md +217 -0
  43. package/components/ste-message-box/ste-message-box.js +72 -0
  44. package/components/ste-message-box/ste-message-box.vue +380 -0
  45. package/components/ste-notice-bar/README.md +129 -0
  46. package/components/ste-notice-bar/ste-notice-bar.vue +331 -0
  47. package/components/ste-number-keyboard/README.md +246 -0
  48. package/components/ste-number-keyboard/keyboard.vue +140 -0
  49. package/components/ste-number-keyboard/ste-number-keyboard.vue +240 -0
  50. package/components/ste-picker/ste-picker.vue +258 -0
  51. package/components/ste-popup/README.md +148 -0
  52. package/components/ste-popup/ste-popup.vue +337 -0
  53. package/components/ste-price/README.md +129 -0
  54. package/components/ste-price/ste-price.vue +258 -0
  55. package/components/ste-progress/README.md +87 -0
  56. package/components/ste-progress/ste-progress.vue +200 -0
  57. package/components/ste-qrcode/README.md +50 -0
  58. package/components/ste-qrcode/ste-qrcode.vue +164 -0
  59. package/components/ste-qrcode/uqrcode.js +34 -0
  60. package/components/ste-radio/README.md +286 -0
  61. package/components/ste-radio/ste-radio.vue +293 -0
  62. package/components/ste-radio-group/ste-radio-group.vue +128 -0
  63. package/components/ste-rate/README.md +115 -0
  64. package/components/ste-rate/ste-rate.vue +202 -0
  65. package/components/ste-read-more/README.md +111 -0
  66. package/components/ste-read-more/ste-read-more.vue +133 -0
  67. package/components/ste-rich-text/README.md +31 -0
  68. package/components/ste-rich-text/ste-rich-text.vue +70 -0
  69. package/components/ste-scroll-to/README.md +68 -0
  70. package/components/ste-scroll-to/mixin.js +173 -0
  71. package/components/ste-scroll-to/ste-scroll-to.vue +45 -0
  72. package/components/ste-scroll-to-item/ste-scroll-to-item.vue +25 -0
  73. package/components/ste-search/README.md +262 -0
  74. package/components/ste-search/ste-search.vue +547 -0
  75. package/components/ste-select/README.md +434 -0
  76. package/components/ste-select/datapager.vue +62 -0
  77. package/components/ste-select/datetime.vue +106 -0
  78. package/components/ste-select/defaultDate.js +142 -0
  79. package/components/ste-select/ste-select.vue +843 -0
  80. package/components/ste-signature/README.md +105 -0
  81. package/components/ste-signature/ste-signature.vue +220 -0
  82. package/components/ste-slider/README.md +165 -0
  83. package/components/ste-slider/ste-slider.vue +544 -0
  84. package/components/ste-step/ste-step.vue +264 -0
  85. package/components/ste-stepper/README.md +170 -0
  86. package/components/ste-stepper/ste-stepper.vue +373 -0
  87. package/components/ste-steps/README.md +132 -0
  88. package/components/ste-steps/ste-steps.vue +65 -0
  89. package/components/ste-sticky/README.md +52 -0
  90. package/components/ste-sticky/ste-sticky.vue +127 -0
  91. package/components/ste-swipe-action/README.md +197 -0
  92. package/components/ste-swipe-action/ste-swipe-action.vue +303 -0
  93. package/components/ste-swipe-action-group/ste-swipe-action-group.vue +104 -0
  94. package/components/ste-swiper/README.md +173 -0
  95. package/components/ste-swiper/ste-swiper.vue +462 -0
  96. package/components/ste-swiper-item/ste-swiper-item.vue +41 -0
  97. package/components/ste-switch/README.md +110 -0
  98. package/components/ste-switch/ste-switch.vue +144 -0
  99. package/components/ste-tab/ste-tab.vue +87 -0
  100. package/components/ste-table/README.md +785 -0
  101. package/components/ste-table/common.js +8 -0
  102. package/components/ste-table/ste-table.vue +666 -0
  103. package/components/ste-table/utils.js +20 -0
  104. package/components/ste-table-column/checkbox-icon.vue +65 -0
  105. package/components/ste-table-column/common.scss +65 -0
  106. package/components/ste-table-column/radio-icon.vue +110 -0
  107. package/components/ste-table-column/ste-table-column.vue +255 -0
  108. package/components/ste-table-column/sub-table.vue +116 -0
  109. package/components/ste-table-column/table-popover.vue +204 -0
  110. package/components/ste-table-column/var.scss +1 -0
  111. package/components/ste-tabs/README.md +475 -0
  112. package/components/ste-tabs/props.js +212 -0
  113. package/components/ste-tabs/ste-tabs.vue +758 -0
  114. package/components/ste-text/README.md +66 -0
  115. package/components/ste-text/ste-text.vue +72 -0
  116. package/components/ste-toast/README.md +243 -0
  117. package/components/ste-toast/ste-toast.js +69 -0
  118. package/components/ste-toast/ste-toast.vue +231 -0
  119. package/components/ste-touch-swipe/README.md +104 -0
  120. package/components/ste-touch-swipe/TouchEvent.js +72 -0
  121. package/components/ste-touch-swipe/ste-touch-swipe.vue +327 -0
  122. package/components/ste-touch-swipe-item/ste-touch-swipe-item.vue +33 -0
  123. package/components/ste-tour/README.md +194 -0
  124. package/components/ste-tour/ste-tour.vue +355 -0
  125. package/components/ste-tree/README.md +240 -0
  126. package/components/ste-tree/ste-tree.vue +350 -0
  127. package/components/ste-upload/README.md +276 -0
  128. package/components/ste-upload/ReadFile.js +229 -0
  129. package/components/ste-upload/ste-upload.vue +526 -0
  130. package/components/ste-video/README.md +60 -0
  131. package/components/ste-video/props.js +149 -0
  132. package/components/ste-video/ste-video.vue +647 -0
  133. package/config/color.js +22 -0
  134. package/index.js +2 -0
  135. package/package.json +19 -0
  136. package/utils/Color.js +66 -0
  137. package/utils/System.js +110 -0
  138. package/utils/dayjs.min.js +1 -0
  139. package/utils/mixin.js +67 -0
  140. package/utils/store.js +7 -0
  141. package/utils/utils.js +604 -0
@@ -0,0 +1,173 @@
1
+ import utils from '../../utils/utils.js';
2
+
3
+ function isNum(num) {
4
+ return typeof num === 'number' && !isNaN(num);
5
+ }
6
+
7
+ export default {
8
+ props: {
9
+ active: {
10
+ type: Number,
11
+ default: () => 0,
12
+ },
13
+ height: {
14
+ type: [String, Number],
15
+ default: () => '100%',
16
+ },
17
+ },
18
+ data() {
19
+ return {
20
+ dataActive: 0,
21
+ childrenTops: [],
22
+ scrollType: 'init',
23
+ scrollTop: 0,
24
+ _scrollTop: 0,
25
+ initEnd: false,
26
+ contentHeight: 0,
27
+ _scrollTypeTimeout: null,
28
+ _childrenTimeout: null,
29
+ _setActiveTimeout: null,
30
+ _setScrollTopTimeout: null,
31
+ };
32
+ },
33
+ watch: {
34
+ children: {
35
+ handler() {
36
+ this.init();
37
+ },
38
+ immediate: true,
39
+ },
40
+ active: {
41
+ handler(v) {
42
+ if (this.dataActive !== v) this.dataActive = v;
43
+ this.initChildren()
44
+ },
45
+ immediate: true,
46
+ },
47
+ dataActive(v) {
48
+ if (!this.children.length) return;
49
+ if (this.activeChange) this.activeChange(v);
50
+ if (this.scrollType === 'scroll') return;
51
+ const top = this.childrenTops[v];
52
+ if (!isNum(top)) return;
53
+ this.setScrollType('active');
54
+ this.setScrollTopByIndex(v);
55
+ },
56
+ childrenTops() {
57
+ if (!this.children.length) return;
58
+ this.scrollType = 'init';
59
+ this.setScrollTopByIndex(this.dataActive);
60
+ },
61
+
62
+ },
63
+ computed: {
64
+ cmpRootStyle() {
65
+ const style = {
66
+ '--scroll-to-height': utils.formatPx(this.height)
67
+ };
68
+ return style;
69
+ },
70
+ },
71
+ methods: {
72
+ init() {
73
+ this.initChildren(true);
74
+ },
75
+ initChildren(init) {
76
+ clearTimeout(this._childrenTimeout);
77
+ if (init) this.initEnd = false;
78
+ if (this.initEnd) return
79
+ this._childrenTimeout = setTimeout(async () => {
80
+ const view = await utils.querySelector('.ste-scroll-to-root', this);
81
+ const box = await utils.querySelector('.ste-scroll-to-content', this);
82
+ if (this.contentHeight === box.height) {
83
+ this.initEnd = true;
84
+ } else {
85
+ this.contentHeight = box.height;
86
+ }
87
+ let max = box.height - view.height;
88
+ if (max < 0) max = 0;
89
+ const childrenTops = [];
90
+ for (let i = 0; i < this.children.length; i++) {
91
+ const comp = this.children[i];
92
+ const child = await utils.querySelector('.ste-scroll-to-item-root', comp);
93
+ const top = child.top - box.top;
94
+ childrenTops.push(top > max + 10 ? max + 10 : top);
95
+ }
96
+ let diff = this.childrenTops.length !== childrenTops.length;
97
+ if (!diff) {
98
+ for (let i = 0; i < childrenTops.length; i++) {
99
+ if (childrenTops[i] !== this.childrenTops[i]) {
100
+ diff = true;
101
+ break;
102
+ }
103
+ }
104
+ }
105
+ if (diff) this.childrenTops = childrenTops;
106
+ }, 50);
107
+ },
108
+ setScrollType(type) {
109
+ this.scrollType = type;
110
+ clearTimeout(this._scrollTypeTimeout);
111
+ this._scrollTypeTimeout = setTimeout(() => {
112
+ this.scrollType = 'init';
113
+ }, 150);
114
+ },
115
+ setScrollTopByIndex(index) {
116
+ clearTimeout(this._setScrollTopTimeout);
117
+ this._setScrollTopTimeout = setTimeout(() => {
118
+ if (!index) {
119
+ this.scrollTop = 0;
120
+ this._scrollTop = 0;
121
+ return;
122
+ }
123
+ const childrenTops = this.childrenTops;
124
+ const top = childrenTops[index];
125
+ if (!isNum(top)) return;
126
+ const scrollTop = this._scrollTop;
127
+ if (scrollTop >= top) {
128
+ const next = childrenTops[index + 1];
129
+ if (!isNum(next)) return;
130
+ if (next > scrollTop + 10) return;
131
+ }
132
+ this.scrollTop = top || 0;
133
+ this._scrollTop = top || 0;
134
+ }, 50);
135
+ },
136
+ setActive(index) {
137
+ if (this.dataActive === index) return;
138
+ this.dataActive = index;
139
+ this.$emit('change', index);
140
+ this.$emit('update:active', index);
141
+ },
142
+ setActiveByTop(scrollTop) {
143
+ clearTimeout(this._setActiveTimeout);
144
+ this._setActiveTimeout = setTimeout(() => {
145
+ if (!scrollTop) {
146
+ this.setActive(0);
147
+ return;
148
+ }
149
+ const childrenTops = this.childrenTops;
150
+ for (let i = 0; i < childrenTops.length; i++) {
151
+ const top = childrenTops[i];
152
+ if (!isNum(top)) continue;
153
+ const next = childrenTops[i + 1];
154
+ if (!isNum(next) || next === top || (scrollTop >= top && next > scrollTop)) {
155
+ this.setActive(i);
156
+ return;
157
+ }
158
+ }
159
+ }, 20);
160
+ },
161
+ onScroll({
162
+ detail: {
163
+ scrollTop
164
+ }
165
+ }) {
166
+ this._scrollTop = scrollTop;
167
+ if (this.scrollType === 'active') return;
168
+ this.setScrollType('scroll');
169
+ this.setActiveByTop(scrollTop);
170
+ this.initChildren()
171
+ },
172
+ },
173
+ };
@@ -0,0 +1,45 @@
1
+ <template>
2
+ <scroll-view
3
+ class="ste-scroll-to-root"
4
+ scroll-y
5
+ scroll-anchoring
6
+ :scroll-top="scrollTop"
7
+ :style="[cmpRootStyle]"
8
+ @scroll="onScroll"
9
+ >
10
+ <view class="ste-scroll-to-content">
11
+ <slot />
12
+ </view>
13
+ </scroll-view>
14
+ </template>
15
+
16
+ <script>
17
+ import { parentMixin } from '../../utils/mixin.js';
18
+ import mixin from './mixin.js';
19
+
20
+ function isNum(num) {
21
+ return typeof num === 'number' && !isNaN(num);
22
+ }
23
+
24
+ /**
25
+ * ste-scroll-to 滚动锚点
26
+ * @description 滚动锚点
27
+ * @tutorial https://stellar-ui.intecloud.com.cn/pc/index/index?name=ste-scroll-to
28
+ * @property {Number} active 当前激活的锚点index,支持sync双向绑定,默认值0
29
+ * @property {String|Number} height 高度,默认值100%
30
+ * @event {Function} change 滚动锚点时触发
31
+ */
32
+ export default {
33
+ group: '导航组件',
34
+ title: 'ScrollTo 滚动锚点',
35
+ name: 'ste-scroll-to',
36
+ mixins: [parentMixin('ste-scroll-to'), mixin],
37
+ };
38
+ </script>
39
+
40
+ <style lang="scss" scoped>
41
+ .ste-scroll-to-root {
42
+ width: 100%;
43
+ height: var(--scroll-to-height);
44
+ }
45
+ </style>
@@ -0,0 +1,25 @@
1
+ <template>
2
+ <view class="ste-scroll-to-item-root">
3
+ <slot />
4
+ </view>
5
+ </template>
6
+
7
+ <script>
8
+ import utils from '../../utils/utils.js';
9
+ import { childMixin } from '../../utils/mixin.js';
10
+ /**
11
+ * ste-scroll-to-item 锚点项
12
+ * @description 锚点项
13
+ * @tutorial https://stellar-ui.intecloud.com.cn/pc/index/index?name=ste-scroll-to
14
+ */
15
+ export default {
16
+ name: 'ste-scroll-to-item',
17
+ mixins: [childMixin('ste-scroll-to')],
18
+ };
19
+ </script>
20
+
21
+ <style lang="scss" scoped>
22
+ .ste-scroll-to-item-root {
23
+ width: 100%;
24
+ }
25
+ </style>
@@ -0,0 +1,262 @@
1
+ # Search 搜索
2
+ 搜索组件,集成了常见搜索框所需功能。
3
+
4
+ ---$
5
+
6
+ ### 代码演示
7
+ **JavaScript**
8
+ ```javascript
9
+ export default {
10
+ data() {
11
+ return {
12
+ value: 'RTX4060Ti',
13
+ hotWords: ['RTX4060', 'RTX4070', 'RTX4080', '小米电视', '华为手机'],
14
+ focus: false,
15
+ };
16
+ },
17
+ watch: {
18
+ text(v) {
19
+ console.log('watch', v);
20
+ },
21
+ },
22
+ created() {},
23
+ methods: {
24
+ onInput(v) {
25
+ console.log('input', v);
26
+ },
27
+ onSearch(v) {
28
+ console.log('search', v);
29
+ this.showToast({
30
+ icon: 'none',
31
+ title: `搜索:${v}`,
32
+ });
33
+ },
34
+ this.showToast({
35
+ icon: 'none',
36
+ title: `点击触发:${v}`,
37
+ });
38
+ },
39
+ };
40
+ ```
41
+
42
+ #### 基础用法
43
+ - 通过`input`事件可以捕获用户输入行为,参数为输入的value内容
44
+ - 通过`search`事件可以捕获用户点击`搜索按钮`或`软键盘上的回车`行为,参数为输入的value内容
45
+ - 使用`v-model`属性进行输入框内容的双向绑定
46
+ - 使用`placeholder`属性设置输入框的占位符
47
+ - 使用`disabled`属性禁用组件,组件禁用后全部功能失效
48
+
49
+ ```html
50
+ <ste-search @input="onInput" @search="onSearch" />
51
+ <ste-search v-model="value" @search="onSearch" />
52
+ <ste-search placeholder="搜索商品" @search="onSearch" />
53
+ <ste-search disabled />
54
+ ```
55
+
56
+ #### 搜索建议
57
+ - 给`suggestionsList`属性赋值时,会在输入框下方显示,数据结构见下方示例
58
+ - 点击某条建议后会触发搜索的`selectSuggestion`事件,参数为搜索建议对象
59
+ ```html
60
+ <ste-input :suggestion-list="suggestionList" @input="suggestionInput" @selectSuggestion="selectSuggestion"/>
61
+ <script>
62
+ export default {
63
+ data() {
64
+ return {
65
+ suggestionList: [],
66
+ // 本地模拟数据搜索
67
+ data: [
68
+ { label: '三全鲜食(北新泾店)', value: '1全' },
69
+ { label: 'Hot honey 首尔炸鸡(仙霞路)', value: '2全' },
70
+ { label: '三贡茶', value: '3全' },
71
+ { label: '三浮生若茶(凌空soho店', value: '4全' },
72
+ { label: '三枪会山', value: '5全' },
73
+ { label: '三爱茜茜里(西郊百联)', value: '6全' },
74
+ { label: '三港式小铺', value: '7全' },
75
+ { label: '三蜀香源麻辣香锅', value: '8全' },
76
+ { label: '饭典*新简餐', value: '9全' },
77
+ { label: '浏阳蒸菜', value: '10全' },
78
+ ],
79
+ }
80
+ },
81
+ methods: {
82
+ suggestionInput(v) {
83
+ if (v) {
84
+ setTimeout(() => {
85
+ this.suggestionList = this.data.filter((e) => e.label.indexOf(v) > -1);
86
+ }, 450);
87
+ } else {
88
+ this.suggestionList = [];
89
+ }
90
+ },
91
+ selectSuggestion(v) {
92
+ this.showToast({
93
+ icon: 'none',
94
+ title: `选了:${v.label}`,
95
+ });
96
+ }
97
+ }
98
+ }
99
+ </script>
100
+ ```
101
+
102
+ #### 热词列表
103
+ - 可以通过`hotWords`属性传入热词列表
104
+ - 可以通过`interval`属性设置热词切换间隔,单位为毫秒
105
+
106
+ ```html
107
+ <ste-search placeholder="搜索商品" @input="onInput" @search="onSearch" />
108
+ <ste-search :hotWords="hotWords" :interval="1000" @input="onInput" @search="onSearch" />
109
+ ```
110
+ #### 自定义按钮文本内容
111
+ - 可以通过`btnText`属性自定义按钮文本内容
112
+
113
+ ```html
114
+ <ste-search btnText="查询" @search="onSearch" />
115
+ ```
116
+ #### 隐藏分割线以及按钮
117
+ - 可以通过`hiddenLine`属性隐藏分割线
118
+ - 可以通过`hiddenBtn`属性隐藏按钮,隐藏按钮时也会隐藏分割线
119
+
120
+ ```html
121
+ <ste-search hiddenLine @search="onSearch" />
122
+ <ste-search hiddenBtn @search="onSearch" />
123
+ ```
124
+
125
+
126
+ #### 隐藏输入框以及按钮
127
+ - 可以通过设置`hiddenInput`属性隐藏输入框 和 `hiddenBtn`属性隐藏按钮只保留放大镜的功能
128
+
129
+ ```html
130
+ <view style="width: 60rpx">
131
+ <ste-search hiddenInput hiddenBtn @click="onClick" />
132
+ </view>
133
+ ```
134
+ #### 不显示清除图标
135
+ - 可以通过`clearable`属性来切换清除图标是否显示
136
+
137
+ ```html
138
+ <ste-search :clearable="false" @search="onSearch" />
139
+ ```
140
+ #### 颜色和背景
141
+ - 可以通过`borderColor`属性设置边框颜色
142
+ - 可以通过`background`属性设置背景颜色或者背景图片
143
+ - 可以通过`prefixIconColor`属性设置左侧图标颜色
144
+ - 可以通过`placeholderColor`属性设置占位符颜色
145
+ - 可以通过`inputTextColor`属性设置输入框文字颜色
146
+ - 可以通过`clearIconColor`属性设置清除按钮图标颜色
147
+ - 可以通过`btnBackground`属性设置搜索按钮背景颜色或者背景图片
148
+ - 可以通过`btnTextColor`属性设置搜索按钮文字颜色
149
+
150
+ ```html
151
+ <ste-search
152
+ placeholder="全部颜色"
153
+ borderColor="#F00"
154
+ background="#000"
155
+ prefixIconColor="#a55"
156
+ placeholderColor="#a55"
157
+ inputTextColor="#fff"
158
+ clearIconColor="#a55"
159
+ btnBackground="#fff"
160
+ btnTextColor="#000"
161
+ @search="onSearch"
162
+ />
163
+
164
+ <ste-search
165
+ placeholder="背景渐变和按钮背景渐变"
166
+ hiddenLine
167
+ borderColor="#F00"
168
+ background="linear-gradient(to right, #aaaaaa, #aaa000)"
169
+ prefixIconColor="#fff"
170
+ placeholderColor="#fff"
171
+ inputTextColor="#fff"
172
+ clearIconColor="#a55"
173
+ btnBackground="linear-gradient(to right, #0AAAAA, #000FFF)"
174
+ btnTextColor="#fff"
175
+ @search="onSearch"
176
+ />
177
+
178
+ <ste-search
179
+ placeholder="背景图片和按钮背景图片"
180
+ hiddenLine
181
+ borderColor="#F00"
182
+ background="https://image.whzb.com/chain/StellarUI/背景1.png"
183
+ prefixIconColor="#fff"
184
+ placeholderColor="#fff"
185
+ inputTextColor="#fff"
186
+ clearIconColor="#a55"
187
+ btnBackground="https://image.whzb.com/chain/StellarUI/背景2.png"
188
+ btnTextColor="#fff"
189
+ @search="onSearch"
190
+ />
191
+ ```
192
+
193
+ #### 自定义高度以及圆角弧度
194
+ - 可以通过`height`属性设置搜索框高度,默认值`64`
195
+ - 可以通过`radius`属性设置圆角弧度,默认值`32`
196
+ ```
197
+ <ste-search :height="120" :radius="60" @search="onSearch" />
198
+ ```
199
+ #### 导航模式
200
+ - 可以通过`type`属性设置`nav`开启导航模式;开启后,点击搜索框任意区域都会触发`click`事件,其他功能失效。
201
+ ```
202
+ <ste-search type="nav" @click="onClick" :hotWords="hotWords" />
203
+ ```
204
+
205
+ #### 聚焦
206
+ - 可以通过`fous`属性控制搜索框聚焦,双向绑定
207
+ ```
208
+ <ste-search @click="onClick" :focus.sync="focus" />
209
+ <!--聚焦按钮-->
210
+ <view style="margin: 10px auto 0 auto">
211
+ <ste-button @click="focus = true" width="100%">聚焦</ste-button>
212
+ </view>
213
+ ```
214
+
215
+
216
+ ---$
217
+ ### API
218
+ #### Props
219
+ | 属性名 | 说明 | 类型 | 默认值 | 可选值 |支持版本 |
220
+ | ----- |----- |----- |----- |----- |----- |
221
+ | `type` | 组件类型 | `String` | `"default"` | `"default"`正常搜索<br/>`"nav"`导航栏 | - |
222
+ | `value` | 输入框默认值,支持`v-model`双向绑定 | `String` | `""` | - | - |
223
+ | `placeholder` | 占位提示符 | `String` | `""` | - | - |
224
+ | `hotWords` | 热词列表 | `String[]`| `[]` | - | - |
225
+ | `interval` | 热词列表自动切换时间间隔,单位`ms` | `Number` | `3000` | - | - |
226
+ | `disabled` | 是否禁用状态 | `Boolean` | `false` | - | - |
227
+ | `hiddenLine` | 是否隐藏分割线 | `Boolean` | `false` | - | - |
228
+ | `hiddenBtn` | 是否隐藏按钮,同时也会隐藏分割线 | `Boolean` | `false` | - | - |
229
+ | `btnText` | 按钮文本内容 | `String` | `"搜索"` | - | - |
230
+ | `hiddenInput` | 是否隐藏输入框 | `Boolean` | `false` | - | - |
231
+ | `clearable` | 是否可清空内容 | `Boolean` | `true` | - | - |
232
+ | `height` | 搜索框高度,单位`rpx` | `Number` | `64` | - | - |
233
+ | `radius` | 圆角弧度,单位`rpx` | `Number` | `32` | - | - |
234
+ | `borderColor` | 边框颜色 | `String` | `"#EEEEEE66"` | - | - |
235
+ | `background` | 背景,可直接传颜色值或者图片 | `String` | `"#FFFFFF"` | - | - |
236
+ | `placeholderColor`| 占位符文本颜色 | `String` | `"#BBBBBB"` | - | - |
237
+ | `prefixIconColor` | 前缀图标颜色 | `String` | `"#BBBBBB"` | - | - |
238
+ | `inputTextColor` | 输入框文本颜色 | `String` | `"#000000"` | - | - |
239
+ | `clearIconColor` | 清除图标颜色 | `String` | `"#BBBBBB"` | - | - |
240
+ | `btnTextColor` | 搜索按钮文本颜色,分割线会跟随文本颜色变化 | `String` | `"#0090FF"` | - | - |
241
+ | `btnBackground` | 搜索按钮背景,可直接传颜色值或者图片 | `String` | - | - | - |
242
+ | `focus` | 是否聚焦(双向绑定) | `Boolean` | `false` | - | `1.1.5` |
243
+ | `autoplay` | 热词列表自动切换 | `Boolean` | `true` | - | `1.11.1` |
244
+ | `suggestionList` | 搜索建议对应的数据 | `Array` | - | | `1.30.1` |
245
+
246
+ #### Events
247
+ 您可以通过监听`input`事件,事件参数为用户输入的`value`值,您可以监听该事件获取用户输入的内容。<br/>
248
+ 但如"基本使用"中的说明一样,您可以直接使用双向绑定,而无需再次监听`input`事件。
249
+ |事件名 |说明 |事件参数 |支持版本 |
250
+ |--- |--- |--- |--- |
251
+ | `input` | 监听用户输入事件 | `value`: 输入框的值 | - |
252
+ | `search` | 用户确定搜索时触发,用户按回车键,或者手机键盘右下角的"搜索"键时触发 | `value`: 输入框的值 | - |
253
+ | `focus` | 输入框获取焦点时触发 | `value`: 输入框的值 | - |
254
+ | `blur` | 输入框失去焦点时触发 | `value`: 输入框的值 | - |
255
+ | `clear` | 配置了`clearabled`后,清空内容时会发出此事件 | - | - |
256
+ | `click` | 点击任意区域触发 | `value`: 输入框的值 | - |
257
+ | `selectSuggestion`| 点击搜索建议触发 | `value`: 对应的建议对象 | - |
258
+
259
+ ---$
260
+ {{xuyajun}}
261
+
262
+ {{qinpengfei}}