@10yun/cv-mobile-ui 0.4.2 → 0.4.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 (166) hide show
  1. package/package.json +1 -1
  2. package/ui-uni/amap-wx/js/util.js +166 -158
  3. package/ui-uni/page-foot/page-foot.vue +38 -0
  4. package/ui-uni/page-head/page-head.vue +16 -0
  5. package/ui-uni/product.vue +52 -52
  6. package/ui-uni/u-charts/u-charts.js +743 -1092
  7. package/ui-uni/u-link/u-link.vue +59 -0
  8. package/ui-uni/uni-badge/uni-badge.vue +250 -0
  9. package/ui-uni/uni-calendar/calendar.js +546 -0
  10. package/ui-uni/uni-calendar/uni-calendar-item.vue +171 -0
  11. package/ui-uni/uni-calendar/uni-calendar.vue +504 -0
  12. package/{ui-cv/cv-calendar → ui-uni/uni-calendar}/util.js +0 -0
  13. package/ui-uni/uni-card/uni-card.vue +420 -0
  14. package/ui-uni/uni-col/uni-col.vue +2968 -0
  15. package/ui-uni/uni-collapse/uni-collapse.vue +146 -0
  16. package/ui-uni/uni-collapse-item/uni-collapse-item.vue +378 -0
  17. package/ui-uni/uni-combox/uni-combox.vue +237 -0
  18. package/ui-uni/uni-countdown/uni-countdown.vue +234 -0
  19. package/ui-uni/uni-data-checkbox/uni-data-checkbox.vue +792 -0
  20. package/{ui-cv/cv-data-indexed-list → ui-uni/uni-data-indexed-list}/clientdb.js +0 -0
  21. package/ui-uni/uni-data-indexed-list/uni-data-indexed-list-item.vue +142 -0
  22. package/ui-uni/uni-data-indexed-list/uni-data-indexed-list.vue +364 -0
  23. package/{ui-cv/cv-data-picker → ui-uni/uni-data-picker}/keypress.js +0 -0
  24. package/ui-uni/uni-data-picker/uni-data-picker.vue +468 -0
  25. package/{ui-cv/cv-data-pickerview/cv-data-picker.js → ui-uni/uni-data-pickerview/uni-data-picker.js} +0 -0
  26. package/ui-uni/uni-data-pickerview/uni-data-pickerview.vue +298 -0
  27. package/{ui-cv/cv-dateformat → ui-uni/uni-dateformat}/date-format.js +0 -0
  28. package/ui-uni/uni-dateformat/uni-dateformat.vue +88 -0
  29. package/{ui-cv/cv-datetime-picker → ui-uni/uni-datetime-picker}/calendar-item.vue +0 -0
  30. package/{ui-cv/cv-datetime-picker → ui-uni/uni-datetime-picker}/calendar.js +0 -0
  31. package/ui-uni/uni-datetime-picker/calendar.vue +747 -0
  32. package/{ui-cv/cv-datetime-picker → ui-uni/uni-datetime-picker}/keypress.js +0 -0
  33. package/ui-uni/uni-datetime-picker/time-picker.vue +899 -0
  34. package/ui-uni/uni-datetime-picker/uni-datetime-picker.vue +874 -0
  35. package/{ui-cv/cv-datetime-picker → ui-uni/uni-datetime-picker}/util.js +0 -0
  36. package/ui-uni/uni-drawer/keypress.js +45 -0
  37. package/ui-uni/uni-drawer/uni-drawer.vue +178 -0
  38. package/{ui-cv/cv-easyinput → ui-uni/uni-easyinput}/common.js +0 -0
  39. package/ui-uni/uni-easyinput/uni-easyinput.vue +438 -0
  40. package/ui-uni/uni-fab/uni-fab.vue +443 -0
  41. package/{ui-cv/cv-fab/cv-fab.vue.bak → ui-uni/uni-fab/uni-fab.vue.bak} +2 -2
  42. package/ui-uni/uni-fav/uni-fav.vue +136 -0
  43. package/{ui-cv/cv-file-picker → ui-uni/uni-file-picker}/choose-and-upload-file.js +0 -0
  44. package/ui-uni/uni-file-picker/uni-file-picker.vue +614 -0
  45. package/{ui-cv/cv-file-picker → ui-uni/uni-file-picker}/upload-file.vue +0 -0
  46. package/{ui-cv/cv-file-picker → ui-uni/uni-file-picker}/upload-image.vue +0 -0
  47. package/{ui-cv/cv-file-picker → ui-uni/uni-file-picker}/utils.js +0 -0
  48. package/ui-uni/uni-forms/uni-forms.vue +467 -0
  49. package/ui-uni/uni-forms/validate.js +486 -0
  50. package/ui-uni/uni-forms-item/uni-forms-item.vue +500 -0
  51. package/{ui-cv/cv-goods-nav/cv-goods-nav.vue → ui-uni/uni-goods-nav/uni-goods-nav.vue} +1 -1
  52. package/ui-uni/uni-grid/uni-grid.vue +141 -0
  53. package/ui-uni/uni-grid-item/uni-grid-item.vue +123 -0
  54. package/ui-uni/uni-group/uni-group.vue +123 -0
  55. package/ui-uni/uni-icons/icons.js +132 -0
  56. package/ui-uni/uni-icons/uni-icons.vue +72 -0
  57. package/{ui-cv/cv-icon2 → ui-uni/uni-icons}/uni.ttf +0 -0
  58. package/ui-uni/uni-indexed-list/uni-indexed-list-item.vue +142 -0
  59. package/ui-uni/uni-indexed-list/uni-indexed-list.vue +357 -0
  60. package/ui-uni/uni-link/uni-link.vue +117 -0
  61. package/ui-uni/uni-list/uni-list.vue +107 -0
  62. package/ui-uni/uni-list/uni-refresh.vue +65 -0
  63. package/{ui-cv/cv-list → ui-uni/uni-list}/uni-refresh.wxs +0 -0
  64. package/ui-uni/uni-list-ad/uni-list-ad.vue +106 -0
  65. package/{ui-cv/cv-list-chat/cv-list-chat.scss → ui-uni/uni-list-chat/uni-list-chat.scss} +0 -0
  66. package/{ui-cv/cv-list-chat/cv-list-chat.vue → ui-uni/uni-list-chat/uni-list-chat.vue} +0 -0
  67. package/ui-uni/uni-list-item/uni-list-item.vue +428 -0
  68. package/ui-uni/uni-load-more/uni-load-more.vue +366 -0
  69. package/ui-uni/uni-nav-bar/uni-nav-bar.vue +244 -0
  70. package/{ui-cv/cv-nav-bar/cv-status-bar.vue → ui-uni/uni-nav-bar/uni-status-bar.vue} +0 -0
  71. package/ui-uni/uni-notice-bar/uni-notice-bar.vue +394 -0
  72. package/ui-uni/uni-number-box/uni-number-box.vue +224 -0
  73. package/ui-uni/uni-pagination/uni-pagination.vue +376 -0
  74. package/{ui-cv/cv-popup → ui-uni/uni-popup}/keypress.js +0 -0
  75. package/{ui-cv/cv-popup → ui-uni/uni-popup}/popup.js +0 -0
  76. package/ui-uni/uni-popup/uni-popup.vue +412 -0
  77. package/{ui-cv/cv-popup-dialog → ui-uni/uni-popup-dialog}/keypress.js +0 -0
  78. package/{ui-cv/cv-popup-dialog/cv-popup-dialog.vue → ui-uni/uni-popup-dialog/uni-popup-dialog.vue} +0 -0
  79. package/ui-uni/uni-popup-message/uni-popup-message.vue +143 -0
  80. package/{ui-cv/cv-popup-share/cv-popup-share.vue → ui-uni/uni-popup-share/uni-popup-share.vue} +0 -0
  81. package/ui-uni/uni-rate/uni-rate.vue +357 -0
  82. package/ui-uni/uni-row/uni-row.vue +155 -0
  83. package/ui-uni/uni-search-bar/uni-search-bar.vue +262 -0
  84. package/{ui-cv/cv-section/cv-section.vue → ui-uni/uni-section/uni-section.vue} +0 -0
  85. package/{ui-cv/cv-segmented-control/cv-segmented-control.vue → ui-uni/uni-segmented-control/uni-segmented-control.vue} +0 -0
  86. package/{ui-cv/cv-status-bar/cv-status-bar.vue → ui-uni/uni-status-bar/uni-status-bar.vue} +0 -0
  87. package/ui-uni/uni-steps/uni-steps.vue +250 -0
  88. package/{ui-cv/cv-swipe-action/cv-swipe-action.vue → ui-uni/uni-swipe-action/uni-swipe-action.vue} +0 -0
  89. package/{ui-cv/cv-swipe-action-item → ui-uni/uni-swipe-action-item}/bindingx.js +0 -0
  90. package/{ui-cv/cv-swipe-action-item → ui-uni/uni-swipe-action-item}/index.wxs +0 -0
  91. package/{ui-cv/cv-swipe-action-item → ui-uni/uni-swipe-action-item}/isPC.js +0 -0
  92. package/{ui-cv/cv-swipe-action-item → ui-uni/uni-swipe-action-item}/mpalipay.js +0 -0
  93. package/{ui-cv/cv-swipe-action-item → ui-uni/uni-swipe-action-item}/mpother.js +0 -0
  94. package/{ui-cv/cv-swipe-action-item → ui-uni/uni-swipe-action-item}/mpwxs.js +0 -0
  95. package/{ui-cv/cv-swipe-action-item/cv-swipe-action-item.vue → ui-uni/uni-swipe-action-item/uni-swipe-action-item.vue} +0 -0
  96. package/ui-uni/uni-swiper-dot/uni-swiper-dot.vue +205 -0
  97. package/ui-uni/uni-table/uni-table.vue +455 -0
  98. package/ui-uni/uni-tag/uni-tag.vue +283 -0
  99. package/ui-uni/uni-tbody/uni-tbody.vue +30 -0
  100. package/ui-uni/uni-td/uni-td.vue +88 -0
  101. package/{ui-cv/cv-test/cv-test.vue → ui-uni/uni-test/uni-test.vue} +0 -0
  102. package/{ui-cv/cv-th → ui-uni/uni-th}/filter-dropdown.vue +0 -0
  103. package/ui-uni/uni-th/uni-th.vue +259 -0
  104. package/ui-uni/uni-thead/uni-thead.vue +114 -0
  105. package/ui-uni/uni-title/uni-title.vue +171 -0
  106. package/{ui-cv/cv-tr → ui-uni/uni-tr}/table-checkbox.vue +0 -0
  107. package/ui-uni/uni-tr/uni-tr.vue +156 -0
  108. package/{ui-cv/cv-transition → ui-uni/uni-transition}/createAnimation.js +0 -0
  109. package/ui-uni/uni-transition/uni-transition.vue +287 -0
  110. package/ui-cv/cv-badge/cv-badge.vue +0 -249
  111. package/ui-cv/cv-calendar/calendar.js +0 -963
  112. package/ui-cv/cv-calendar/cv-calendar-item.vue +0 -198
  113. package/ui-cv/cv-calendar/cv-calendar.vue +0 -508
  114. package/ui-cv/cv-card/cv-card.vue +0 -427
  115. package/ui-cv/cv-col/cv-col.vue +0 -2965
  116. package/ui-cv/cv-collapse/cv-collapse.vue +0 -146
  117. package/ui-cv/cv-collapse-item/cv-collapse-item.vue +0 -395
  118. package/ui-cv/cv-combox/cv-combox.vue +0 -250
  119. package/ui-cv/cv-countdown/cv-countdown.vue +0 -245
  120. package/ui-cv/cv-data-checkbox/cv-data-checkbox.vue +0 -841
  121. package/ui-cv/cv-data-indexed-list/cv-data-indexed-list-item.vue +0 -154
  122. package/ui-cv/cv-data-indexed-list/cv-data-indexed-list.vue +0 -376
  123. package/ui-cv/cv-data-picker/cv-data-picker.vue +0 -486
  124. package/ui-cv/cv-data-pickerview/cv-data-pickerview.vue +0 -304
  125. package/ui-cv/cv-dateformat/cv-dateformat.vue +0 -86
  126. package/ui-cv/cv-datetime-picker/calendar.vue +0 -761
  127. package/ui-cv/cv-datetime-picker/cv-datetime-picker.vue +0 -958
  128. package/ui-cv/cv-datetime-picker/time-picker.vue +0 -907
  129. package/ui-cv/cv-drawer/cv-drawer.vue +0 -185
  130. package/ui-cv/cv-drawer/keypress.js +0 -45
  131. package/ui-cv/cv-easyinput/cv-easyinput.vue +0 -514
  132. package/ui-cv/cv-fab/cv-fab.vue +0 -465
  133. package/ui-cv/cv-fav/cv-fav.vue +0 -150
  134. package/ui-cv/cv-file-picker/cv-file-picker.vue +0 -619
  135. package/ui-cv/cv-form-base/cv-form-base.vue +0 -470
  136. package/ui-cv/cv-form-base/validate.js +0 -477
  137. package/ui-cv/cv-grid-group/cv-grid-group.vue +0 -148
  138. package/ui-cv/cv-grid-item/cv-grid-item.vue +0 -132
  139. package/ui-cv/cv-icon2/cv-icon2.vue +0 -78
  140. package/ui-cv/cv-icon2/icons.js +0 -132
  141. package/ui-cv/cv-indexed-list/cv-indexed-list-item.vue +0 -154
  142. package/ui-cv/cv-indexed-list/cv-indexed-list.vue +0 -371
  143. package/ui-cv/cv-link2/cv-link2.vue +0 -130
  144. package/ui-cv/cv-list/cv-list.vue +0 -107
  145. package/ui-cv/cv-list/cv-refresh.vue +0 -65
  146. package/ui-cv/cv-list-ad/cv-list-ad.vue +0 -113
  147. package/ui-cv/cv-list-item/cv-list-item.vue +0 -449
  148. package/ui-cv/cv-nav-bar/cv-nav-bar.vue +0 -256
  149. package/ui-cv/cv-notice-bar/cv-notice-bar.vue +0 -453
  150. package/ui-cv/cv-number-box/cv-number-box.vue +0 -223
  151. package/ui-cv/cv-pagination/cv-pagination.vue +0 -397
  152. package/ui-cv/cv-popup/cv-popup.vue +0 -429
  153. package/ui-cv/cv-popup-message/cv-popup-message.vue +0 -143
  154. package/ui-cv/cv-row/cv-row.vue +0 -157
  155. package/ui-cv/cv-search-bar/cv-search-bar.vue +0 -280
  156. package/ui-cv/cv-steps/cv-steps.vue +0 -293
  157. package/ui-cv/cv-swiper-dot/cv-swiper-dot.vue +0 -255
  158. package/ui-cv/cv-table/cv-table.vue +0 -460
  159. package/ui-cv/cv-tag/cv-tag.vue +0 -276
  160. package/ui-cv/cv-tbody/cv-tbody.vue +0 -28
  161. package/ui-cv/cv-td/cv-td.vue +0 -93
  162. package/ui-cv/cv-th/cv-th.vue +0 -270
  163. package/ui-cv/cv-thead/cv-thead.vue +0 -114
  164. package/ui-cv/cv-title/cv-title.vue +0 -168
  165. package/ui-cv/cv-tr/cv-tr.vue +0 -166
  166. package/ui-cv/cv-transition/cv-transition.vue +0 -279
@@ -1,304 +0,0 @@
1
- <template>
2
- <view class="uni-data-pickerview">
3
- <scroll-view class="selected-area" scroll-x="true" scroll-y="false" :show-scrollbar="false">
4
- <view class="selected-list">
5
- <template v-for="(item, index) in selected">
6
- <view
7
- class="selected-item"
8
- :class="{ 'selected-item-active': index == selectedIndex }"
9
- :key="index"
10
- v-if="item.text"
11
- @click="handleSelect(index)"
12
- >
13
- <text class="">{{ item.text }}</text>
14
- </view>
15
- </template>
16
- </view>
17
- </scroll-view>
18
- <view class="tab-c">
19
- <template v-for="(child, i) in dataList">
20
- <scroll-view class="list" :key="i" v-if="i == selectedIndex" :scroll-y="true">
21
- <view
22
- class="item"
23
- :class="{ 'is-disabled': !!item.disable }"
24
- v-for="(item, j) in child"
25
- :key="j"
26
- @click="handleNodeClick(item, i, j)"
27
- >
28
- <text class="item-text">{{ item.text }}</text>
29
- <view class="check" v-if="selected.length > i && item.value == selected[i].value"></view>
30
- </view>
31
- </scroll-view>
32
- </template>
33
-
34
- <view class="loading-cover" v-if="loading">
35
- <cv-load-more class="load-more" :contentText="loadMore" status="loading"></cv-load-more>
36
- </view>
37
- <view class="error-message" v-if="errorMessage">
38
- <text class="error-text">{{ errorMessage }}</text>
39
- </view>
40
- </view>
41
- </view>
42
- </template>
43
-
44
- <script>
45
- import dataPicker from './cv-data-picker.js';
46
-
47
- /**
48
- * DataPickerview
49
- * @description cv-data-pickerview
50
- * @tutorial https://ext.dcloud.net.cn/plugin?id=3796
51
- * @property {Array} localdata 本地数据,参考
52
- * @property {Boolean} step-searh = [true|false] 是否分布查询
53
- * @value true 启用分布查询,仅查询当前选中节点
54
- * @value false 关闭分布查询,一次查询出所有数据
55
- * @property {String|DBFieldString} self-field 分布查询当前字段名称
56
- * @property {String|DBFieldString} parent-field 分布查询父字段名称
57
- * @property {String|DBCollectionString} collection 表名
58
- * @property {String|DBFieldString} field 查询字段,多个字段用 `,` 分割
59
- * @property {String} orderby 排序字段及正序倒叙设置
60
- * @property {String|JQLString} where 查询条件
61
- */
62
- export default {
63
- name: 'UniDataPickerView',
64
- emits: ['nodeclick', 'change', 'datachange', 'update:modelValue'],
65
- mixins: [dataPicker],
66
- props: {
67
- managedMode: {
68
- type: Boolean,
69
- default: false
70
- }
71
- },
72
- data() {
73
- return {};
74
- },
75
- created() {
76
- if (this.managedMode) {
77
- return;
78
- }
79
-
80
- this.$nextTick(() => {
81
- this.load();
82
- });
83
- },
84
- methods: {
85
- onPropsChange() {
86
- this._treeData = [];
87
- this.selectedIndex = 0;
88
- this.load();
89
- },
90
- load() {
91
- if (this.isLocaldata) {
92
- this.loadData();
93
- } else if (this.dataValue.length) {
94
- this.getTreePath((res) => {
95
- this.loadData();
96
- });
97
- }
98
- },
99
- handleSelect(index) {
100
- this.selectedIndex = index;
101
- },
102
- handleNodeClick(item, i, j) {
103
- if (item.disable) {
104
- return;
105
- }
106
-
107
- const node = this.dataList[i][j];
108
- const { value, text } = node;
109
-
110
- if (i < this.selected.length - 1) {
111
- this.selected.splice(i, this.selected.length - i);
112
- this.selected.push(node);
113
- } else if (i === this.selected.length - 1) {
114
- this.selected[i] = node;
115
- }
116
-
117
- if (node.isleaf) {
118
- this.onSelectedChange(node, node.isleaf);
119
- return;
120
- }
121
-
122
- const { isleaf, hasNodes } = this._updateBindData();
123
-
124
- if (!this._isTreeView() && !hasNodes) {
125
- this.onSelectedChange(node, true);
126
- return;
127
- }
128
-
129
- if (this.isLocaldata && (!hasNodes || isleaf)) {
130
- this.onSelectedChange(node, true);
131
- return;
132
- }
133
-
134
- if (!isleaf && !hasNodes) {
135
- this._loadNodeData((data) => {
136
- if (!data.length) {
137
- node.isleaf = true;
138
- } else {
139
- this._treeData.push(...data);
140
- this._updateBindData(node);
141
- }
142
- this.onSelectedChange(node, node.isleaf);
143
- }, this._nodeWhere());
144
- return;
145
- }
146
-
147
- this.onSelectedChange(node, false);
148
- },
149
- updateData(data) {
150
- this._treeData = data.treeData;
151
- this.selected = data.selected;
152
- if (!this._treeData.length) {
153
- this.loadData();
154
- } else {
155
- //this.selected = data.selected
156
- this._updateBindData();
157
- }
158
- },
159
- onDataChange() {
160
- this.$emit('datachange');
161
- },
162
- onSelectedChange(node, isleaf) {
163
- if (isleaf) {
164
- this._dispatchEvent();
165
- }
166
-
167
- if (node) {
168
- this.$emit('nodeclick', node);
169
- }
170
- },
171
- _dispatchEvent() {
172
- this.$emit('change', this.selected.slice(0));
173
- }
174
- }
175
- };
176
- </script>
177
-
178
- <style scoped>
179
- .uni-data-pickerview {
180
- flex: 1;
181
- /* #ifndef APP-NVUE */
182
- display: flex;
183
- /* #endif */
184
- flex-direction: column;
185
- overflow: hidden;
186
- height: 100%;
187
- }
188
-
189
- .error-text {
190
- color: #dd524d;
191
- }
192
-
193
- .loading-cover {
194
- position: absolute;
195
- left: 0;
196
- top: 0;
197
- right: 0;
198
- bottom: 0;
199
- background-color: rgba(255, 255, 255, 0.5);
200
- /* #ifndef APP-NVUE */
201
- display: flex;
202
- /* #endif */
203
- flex-direction: column;
204
- align-items: center;
205
- z-index: 1001;
206
- }
207
-
208
- .load-more {
209
- /* #ifndef APP-NVUE */
210
- margin: auto;
211
- /* #endif */
212
- }
213
-
214
- .error-message {
215
- background-color: #fff;
216
- position: absolute;
217
- left: 0;
218
- top: 0;
219
- right: 0;
220
- bottom: 0;
221
- padding: 15px;
222
- opacity: 0.9;
223
- z-index: 102;
224
- }
225
-
226
- /* #ifdef APP-NVUE */
227
- .selected-area {
228
- width: 750rpx;
229
- }
230
-
231
- /* #endif */
232
- .selected-list {
233
- /* #ifndef APP-NVUE */
234
- display: flex;
235
- /* #endif */
236
- flex-direction: row;
237
- flex-wrap: nowrap;
238
- padding: 0 5px;
239
- border-bottom: 1px solid #f8f8f8;
240
- }
241
-
242
- .selected-item {
243
- margin-left: 10px;
244
- margin-right: 10px;
245
- padding: 12px 0;
246
- /* #ifndef APP-NVUE */
247
- white-space: nowrap;
248
- /* #endif */
249
- }
250
-
251
- .selected-item-active {
252
- border-bottom: 2px solid #007aff;
253
- }
254
-
255
- .selected-item-text {
256
- color: #007aff;
257
- }
258
-
259
- .tab-c {
260
- position: relative;
261
- flex: 1;
262
- /* #ifndef APP-NVUE */
263
- display: flex;
264
- /* #endif */
265
- flex-direction: row;
266
- overflow: hidden;
267
- }
268
-
269
- .list {
270
- flex: 1;
271
- }
272
-
273
- .item {
274
- padding: 12px 15px;
275
- border-bottom: 1px solid #f0f0f0;
276
- /* #ifndef APP-NVUE */
277
- display: flex;
278
- /* #endif */
279
- flex-direction: row;
280
- }
281
-
282
- .is-disabled {
283
- opacity: 0.5;
284
- }
285
-
286
- .item-text {
287
- flex: 1;
288
- color: #333333;
289
- }
290
-
291
- .check {
292
- margin-right: 5px;
293
- border: 2px solid #007aff;
294
- border-left: 0;
295
- border-top: 0;
296
- height: 12px;
297
- width: 6px;
298
- transform-origin: center;
299
- /* #ifndef APP-NVUE */
300
- transition: all 0.3s;
301
- /* #endif */
302
- transform: rotate(45deg);
303
- }
304
- </style>
@@ -1,86 +0,0 @@
1
- <template>
2
- <text>{{ dateShow }}</text>
3
- </template>
4
-
5
- <script>
6
- import { friendlyDate } from './date-format.js';
7
- /**
8
- * Dateformat 日期格式化
9
- * @description 日期格式化组件
10
- * @tutorial https://ext.dcloud.net.cn/plugin?id=3279
11
- * @property {Object|String|Number} date 日期对象/日期字符串/时间戳
12
- * @property {String} locale 格式化使用的语言
13
- * @value zh 中文
14
- * @value en 英文
15
- * @property {Array} threshold 应用不同类型格式化的阈值
16
- * @property {String} format 输出日期字符串时的格式
17
- */
18
- export default {
19
- name: 'cvDateformat',
20
- props: {
21
- date: {
22
- type: [Object, String, Number],
23
- default() {
24
- return '-';
25
- }
26
- },
27
- locale: {
28
- type: String,
29
- default: 'zh'
30
- },
31
- threshold: {
32
- type: Array,
33
- default() {
34
- return [0, 0];
35
- }
36
- },
37
- format: {
38
- type: String,
39
- default: 'yyyy/MM/dd hh:mm:ss'
40
- },
41
- // refreshRate使用不当可能导致性能问题,谨慎使用
42
- refreshRate: {
43
- type: [Number, String],
44
- default: 0
45
- }
46
- },
47
- data() {
48
- return {
49
- refreshMark: 0
50
- };
51
- },
52
- computed: {
53
- dateShow() {
54
- this.refreshMark;
55
- return friendlyDate(this.date, {
56
- locale: this.locale,
57
- threshold: this.threshold,
58
- format: this.format
59
- });
60
- }
61
- },
62
- watch: {
63
- refreshRate: {
64
- handler() {
65
- this.setAutoRefresh();
66
- },
67
- immediate: true
68
- }
69
- },
70
- methods: {
71
- refresh() {
72
- this.refreshMark++;
73
- },
74
- setAutoRefresh() {
75
- clearInterval(this.refreshInterval);
76
- if (this.refreshRate) {
77
- this.refreshInterval = setInterval(() => {
78
- this.refresh();
79
- }, parseInt(this.refreshRate));
80
- }
81
- }
82
- }
83
- };
84
- </script>
85
-
86
- <style scoped></style>