@10yun/cv-mobile-ui 0.4.2 → 0.4.4

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 (168) hide show
  1. package/package.json +1 -1
  2. package/ui-cv/cv-form-item/cv-form-item.vue +1 -1
  3. package/ui-cv/cv-input-password/cv-input-password.vue +2 -2
  4. package/ui-uni/amap-wx/js/util.js +166 -158
  5. package/ui-uni/page-foot/page-foot.vue +38 -0
  6. package/ui-uni/page-head/page-head.vue +16 -0
  7. package/ui-uni/product.vue +52 -52
  8. package/ui-uni/u-charts/u-charts.js +743 -1092
  9. package/ui-uni/u-link/u-link.vue +59 -0
  10. package/ui-uni/uni-badge/uni-badge.vue +250 -0
  11. package/ui-uni/uni-calendar/calendar.js +546 -0
  12. package/ui-uni/uni-calendar/uni-calendar-item.vue +171 -0
  13. package/ui-uni/uni-calendar/uni-calendar.vue +504 -0
  14. package/{ui-cv/cv-calendar → ui-uni/uni-calendar}/util.js +0 -0
  15. package/ui-uni/uni-card/uni-card.vue +420 -0
  16. package/ui-uni/uni-col/uni-col.vue +2968 -0
  17. package/ui-uni/uni-collapse/uni-collapse.vue +146 -0
  18. package/ui-uni/uni-collapse-item/uni-collapse-item.vue +378 -0
  19. package/ui-uni/uni-combox/uni-combox.vue +237 -0
  20. package/ui-uni/uni-countdown/uni-countdown.vue +234 -0
  21. package/ui-uni/uni-data-checkbox/uni-data-checkbox.vue +792 -0
  22. package/{ui-cv/cv-data-indexed-list → ui-uni/uni-data-indexed-list}/clientdb.js +0 -0
  23. package/ui-uni/uni-data-indexed-list/uni-data-indexed-list-item.vue +142 -0
  24. package/ui-uni/uni-data-indexed-list/uni-data-indexed-list.vue +364 -0
  25. package/{ui-cv/cv-data-picker → ui-uni/uni-data-picker}/keypress.js +0 -0
  26. package/ui-uni/uni-data-picker/uni-data-picker.vue +468 -0
  27. package/{ui-cv/cv-data-pickerview/cv-data-picker.js → ui-uni/uni-data-pickerview/uni-data-picker.js} +0 -0
  28. package/ui-uni/uni-data-pickerview/uni-data-pickerview.vue +298 -0
  29. package/{ui-cv/cv-dateformat → ui-uni/uni-dateformat}/date-format.js +0 -0
  30. package/ui-uni/uni-dateformat/uni-dateformat.vue +88 -0
  31. package/{ui-cv/cv-datetime-picker → ui-uni/uni-datetime-picker}/calendar-item.vue +0 -0
  32. package/{ui-cv/cv-datetime-picker → ui-uni/uni-datetime-picker}/calendar.js +0 -0
  33. package/ui-uni/uni-datetime-picker/calendar.vue +747 -0
  34. package/{ui-cv/cv-datetime-picker → ui-uni/uni-datetime-picker}/keypress.js +0 -0
  35. package/ui-uni/uni-datetime-picker/time-picker.vue +899 -0
  36. package/ui-uni/uni-datetime-picker/uni-datetime-picker.vue +874 -0
  37. package/{ui-cv/cv-datetime-picker → ui-uni/uni-datetime-picker}/util.js +0 -0
  38. package/ui-uni/uni-drawer/keypress.js +45 -0
  39. package/ui-uni/uni-drawer/uni-drawer.vue +178 -0
  40. package/{ui-cv/cv-easyinput → ui-uni/uni-easyinput}/common.js +0 -0
  41. package/ui-uni/uni-easyinput/uni-easyinput.vue +438 -0
  42. package/ui-uni/uni-fab/uni-fab.vue +443 -0
  43. package/{ui-cv/cv-fab/cv-fab.vue.bak → ui-uni/uni-fab/uni-fab.vue.bak} +2 -2
  44. package/ui-uni/uni-fav/uni-fav.vue +136 -0
  45. package/{ui-cv/cv-file-picker → ui-uni/uni-file-picker}/choose-and-upload-file.js +0 -0
  46. package/ui-uni/uni-file-picker/uni-file-picker.vue +614 -0
  47. package/{ui-cv/cv-file-picker → ui-uni/uni-file-picker}/upload-file.vue +0 -0
  48. package/{ui-cv/cv-file-picker → ui-uni/uni-file-picker}/upload-image.vue +0 -0
  49. package/{ui-cv/cv-file-picker → ui-uni/uni-file-picker}/utils.js +0 -0
  50. package/ui-uni/uni-forms/uni-forms.vue +467 -0
  51. package/ui-uni/uni-forms/validate.js +486 -0
  52. package/ui-uni/uni-forms-item/uni-forms-item.vue +500 -0
  53. package/{ui-cv/cv-goods-nav/cv-goods-nav.vue → ui-uni/uni-goods-nav/uni-goods-nav.vue} +1 -1
  54. package/ui-uni/uni-grid/uni-grid.vue +141 -0
  55. package/ui-uni/uni-grid-item/uni-grid-item.vue +123 -0
  56. package/ui-uni/uni-group/uni-group.vue +123 -0
  57. package/ui-uni/uni-icons/icons.js +132 -0
  58. package/ui-uni/uni-icons/uni-icons.vue +72 -0
  59. package/{ui-cv/cv-icon2 → ui-uni/uni-icons}/uni.ttf +0 -0
  60. package/ui-uni/uni-indexed-list/uni-indexed-list-item.vue +142 -0
  61. package/ui-uni/uni-indexed-list/uni-indexed-list.vue +357 -0
  62. package/ui-uni/uni-link/uni-link.vue +117 -0
  63. package/ui-uni/uni-list/uni-list.vue +107 -0
  64. package/ui-uni/uni-list/uni-refresh.vue +65 -0
  65. package/{ui-cv/cv-list → ui-uni/uni-list}/uni-refresh.wxs +0 -0
  66. package/ui-uni/uni-list-ad/uni-list-ad.vue +106 -0
  67. package/{ui-cv/cv-list-chat/cv-list-chat.scss → ui-uni/uni-list-chat/uni-list-chat.scss} +0 -0
  68. package/{ui-cv/cv-list-chat/cv-list-chat.vue → ui-uni/uni-list-chat/uni-list-chat.vue} +0 -0
  69. package/ui-uni/uni-list-item/uni-list-item.vue +428 -0
  70. package/ui-uni/uni-load-more/uni-load-more.vue +366 -0
  71. package/ui-uni/uni-nav-bar/uni-nav-bar.vue +244 -0
  72. package/{ui-cv/cv-nav-bar/cv-status-bar.vue → ui-uni/uni-nav-bar/uni-status-bar.vue} +0 -0
  73. package/ui-uni/uni-notice-bar/uni-notice-bar.vue +394 -0
  74. package/ui-uni/uni-number-box/uni-number-box.vue +224 -0
  75. package/ui-uni/uni-pagination/uni-pagination.vue +376 -0
  76. package/{ui-cv/cv-popup → ui-uni/uni-popup}/keypress.js +0 -0
  77. package/{ui-cv/cv-popup → ui-uni/uni-popup}/popup.js +0 -0
  78. package/ui-uni/uni-popup/uni-popup.vue +412 -0
  79. package/{ui-cv/cv-popup-dialog → ui-uni/uni-popup-dialog}/keypress.js +0 -0
  80. package/{ui-cv/cv-popup-dialog/cv-popup-dialog.vue → ui-uni/uni-popup-dialog/uni-popup-dialog.vue} +0 -0
  81. package/ui-uni/uni-popup-message/uni-popup-message.vue +143 -0
  82. package/{ui-cv/cv-popup-share/cv-popup-share.vue → ui-uni/uni-popup-share/uni-popup-share.vue} +0 -0
  83. package/ui-uni/uni-rate/uni-rate.vue +357 -0
  84. package/ui-uni/uni-row/uni-row.vue +155 -0
  85. package/ui-uni/uni-search-bar/uni-search-bar.vue +262 -0
  86. package/{ui-cv/cv-section/cv-section.vue → ui-uni/uni-section/uni-section.vue} +0 -0
  87. package/{ui-cv/cv-segmented-control/cv-segmented-control.vue → ui-uni/uni-segmented-control/uni-segmented-control.vue} +0 -0
  88. package/{ui-cv/cv-status-bar/cv-status-bar.vue → ui-uni/uni-status-bar/uni-status-bar.vue} +0 -0
  89. package/ui-uni/uni-steps/uni-steps.vue +250 -0
  90. package/{ui-cv/cv-swipe-action/cv-swipe-action.vue → ui-uni/uni-swipe-action/uni-swipe-action.vue} +0 -0
  91. package/{ui-cv/cv-swipe-action-item → ui-uni/uni-swipe-action-item}/bindingx.js +0 -0
  92. package/{ui-cv/cv-swipe-action-item → ui-uni/uni-swipe-action-item}/index.wxs +0 -0
  93. package/{ui-cv/cv-swipe-action-item → ui-uni/uni-swipe-action-item}/isPC.js +0 -0
  94. package/{ui-cv/cv-swipe-action-item → ui-uni/uni-swipe-action-item}/mpalipay.js +0 -0
  95. package/{ui-cv/cv-swipe-action-item → ui-uni/uni-swipe-action-item}/mpother.js +0 -0
  96. package/{ui-cv/cv-swipe-action-item → ui-uni/uni-swipe-action-item}/mpwxs.js +0 -0
  97. 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
  98. package/ui-uni/uni-swiper-dot/uni-swiper-dot.vue +205 -0
  99. package/ui-uni/uni-table/uni-table.vue +455 -0
  100. package/ui-uni/uni-tag/uni-tag.vue +283 -0
  101. package/ui-uni/uni-tbody/uni-tbody.vue +30 -0
  102. package/ui-uni/uni-td/uni-td.vue +88 -0
  103. package/{ui-cv/cv-test/cv-test.vue → ui-uni/uni-test/uni-test.vue} +0 -0
  104. package/{ui-cv/cv-th → ui-uni/uni-th}/filter-dropdown.vue +0 -0
  105. package/ui-uni/uni-th/uni-th.vue +259 -0
  106. package/ui-uni/uni-thead/uni-thead.vue +114 -0
  107. package/ui-uni/uni-title/uni-title.vue +171 -0
  108. package/{ui-cv/cv-tr → ui-uni/uni-tr}/table-checkbox.vue +0 -0
  109. package/ui-uni/uni-tr/uni-tr.vue +156 -0
  110. package/{ui-cv/cv-transition → ui-uni/uni-transition}/createAnimation.js +0 -0
  111. package/ui-uni/uni-transition/uni-transition.vue +287 -0
  112. package/ui-cv/cv-badge/cv-badge.vue +0 -249
  113. package/ui-cv/cv-calendar/calendar.js +0 -963
  114. package/ui-cv/cv-calendar/cv-calendar-item.vue +0 -198
  115. package/ui-cv/cv-calendar/cv-calendar.vue +0 -508
  116. package/ui-cv/cv-card/cv-card.vue +0 -427
  117. package/ui-cv/cv-col/cv-col.vue +0 -2965
  118. package/ui-cv/cv-collapse/cv-collapse.vue +0 -146
  119. package/ui-cv/cv-collapse-item/cv-collapse-item.vue +0 -395
  120. package/ui-cv/cv-combox/cv-combox.vue +0 -250
  121. package/ui-cv/cv-countdown/cv-countdown.vue +0 -245
  122. package/ui-cv/cv-data-checkbox/cv-data-checkbox.vue +0 -841
  123. package/ui-cv/cv-data-indexed-list/cv-data-indexed-list-item.vue +0 -154
  124. package/ui-cv/cv-data-indexed-list/cv-data-indexed-list.vue +0 -376
  125. package/ui-cv/cv-data-picker/cv-data-picker.vue +0 -486
  126. package/ui-cv/cv-data-pickerview/cv-data-pickerview.vue +0 -304
  127. package/ui-cv/cv-dateformat/cv-dateformat.vue +0 -86
  128. package/ui-cv/cv-datetime-picker/calendar.vue +0 -761
  129. package/ui-cv/cv-datetime-picker/cv-datetime-picker.vue +0 -958
  130. package/ui-cv/cv-datetime-picker/time-picker.vue +0 -907
  131. package/ui-cv/cv-drawer/cv-drawer.vue +0 -185
  132. package/ui-cv/cv-drawer/keypress.js +0 -45
  133. package/ui-cv/cv-easyinput/cv-easyinput.vue +0 -514
  134. package/ui-cv/cv-fab/cv-fab.vue +0 -465
  135. package/ui-cv/cv-fav/cv-fav.vue +0 -150
  136. package/ui-cv/cv-file-picker/cv-file-picker.vue +0 -619
  137. package/ui-cv/cv-form-base/cv-form-base.vue +0 -470
  138. package/ui-cv/cv-form-base/validate.js +0 -477
  139. package/ui-cv/cv-grid-group/cv-grid-group.vue +0 -148
  140. package/ui-cv/cv-grid-item/cv-grid-item.vue +0 -132
  141. package/ui-cv/cv-icon2/cv-icon2.vue +0 -78
  142. package/ui-cv/cv-icon2/icons.js +0 -132
  143. package/ui-cv/cv-indexed-list/cv-indexed-list-item.vue +0 -154
  144. package/ui-cv/cv-indexed-list/cv-indexed-list.vue +0 -371
  145. package/ui-cv/cv-link2/cv-link2.vue +0 -130
  146. package/ui-cv/cv-list/cv-list.vue +0 -107
  147. package/ui-cv/cv-list/cv-refresh.vue +0 -65
  148. package/ui-cv/cv-list-ad/cv-list-ad.vue +0 -113
  149. package/ui-cv/cv-list-item/cv-list-item.vue +0 -449
  150. package/ui-cv/cv-nav-bar/cv-nav-bar.vue +0 -256
  151. package/ui-cv/cv-notice-bar/cv-notice-bar.vue +0 -453
  152. package/ui-cv/cv-number-box/cv-number-box.vue +0 -223
  153. package/ui-cv/cv-pagination/cv-pagination.vue +0 -397
  154. package/ui-cv/cv-popup/cv-popup.vue +0 -429
  155. package/ui-cv/cv-popup-message/cv-popup-message.vue +0 -143
  156. package/ui-cv/cv-row/cv-row.vue +0 -157
  157. package/ui-cv/cv-search-bar/cv-search-bar.vue +0 -280
  158. package/ui-cv/cv-steps/cv-steps.vue +0 -293
  159. package/ui-cv/cv-swiper-dot/cv-swiper-dot.vue +0 -255
  160. package/ui-cv/cv-table/cv-table.vue +0 -460
  161. package/ui-cv/cv-tag/cv-tag.vue +0 -276
  162. package/ui-cv/cv-tbody/cv-tbody.vue +0 -28
  163. package/ui-cv/cv-td/cv-td.vue +0 -93
  164. package/ui-cv/cv-th/cv-th.vue +0 -270
  165. package/ui-cv/cv-thead/cv-thead.vue +0 -114
  166. package/ui-cv/cv-title/cv-title.vue +0 -168
  167. package/ui-cv/cv-tr/cv-tr.vue +0 -166
  168. package/ui-cv/cv-transition/cv-transition.vue +0 -279
@@ -1,276 +0,0 @@
1
- <template>
2
- <text class="uni-tag" v-if="text" :class="classes" :style="customStyle" @click="onClick">
3
- <slot />
4
- {{ text }}
5
- <slot name="right" />
6
- </text>
7
- </template>
8
-
9
- <script>
10
- /**
11
- * Tag 标签
12
- * @description 用于展示1个或多个文字标签,可点击切换选中、不选中的状态
13
- * @tutorial https://ext.dcloud.net.cn/plugin?id=35
14
- * @property {String} text 标签内容
15
- * @property {String} size = [normal|small] 大小尺寸
16
- * @value normal 正常
17
- * @value small 小尺寸
18
- * @property {String} type = [default|primary|success|warning|error|royal] 颜色类型
19
- * @value default 灰色
20
- * @value primary 蓝色
21
- * @value success 绿色
22
- * @value warning 黄色
23
- * @value error 红色
24
- * @value royal 紫色
25
- * @property {Boolean} disabled = [true|false] 是否为禁用状态
26
- * @property {Boolean} inverted = [true|false] 是否无需背景颜色(空心标签)
27
- * @property {Boolean} circle = [true|false] 是否为圆角
28
- * @event {Function} click 点击 Tag 触发事件
29
- */
30
-
31
- export default {
32
- name: 'cvTag',
33
- emits: ['click'],
34
- props: {
35
- type: {
36
- // 标签类型default、primary、success、warning、error、royal
37
- type: String,
38
- default: 'default'
39
- },
40
- size: {
41
- // 标签大小 normal, small
42
- type: String,
43
- default: 'normal'
44
- },
45
- // 标签内容
46
- text: {
47
- type: String,
48
- default: ''
49
- },
50
- disabled: {
51
- // 是否为禁用状态
52
- type: [Boolean, String],
53
- default: false
54
- },
55
- inverted: {
56
- // 是否为空心
57
- type: [Boolean, String],
58
- default: false
59
- },
60
- circle: {
61
- // 是否为圆角样式
62
- type: [Boolean, String],
63
- default: false
64
- },
65
- mark: {
66
- // 是否为标记样式
67
- type: [Boolean, String],
68
- default: false
69
- },
70
- customStyle: {
71
- type: String,
72
- default: ''
73
- }
74
- },
75
- computed: {
76
- classes() {
77
- const { type, disabled, inverted, circle, mark, size, isTrue } = this;
78
- const classArr = [
79
- 'uni-tag--' + type,
80
- isTrue(disabled) ? 'uni-tag--disabled' : '',
81
- isTrue(inverted) ? type + '-uni-tag--inverted' : '',
82
- isTrue(circle) ? 'uni-tag--circle' : '',
83
- isTrue(mark) ? 'uni-tag--mark' : '',
84
- 'uni-tag--' + size,
85
- type === 'default' ? 'uni-tag--default' : 'uni-tag-text',
86
- isTrue(inverted) ? 'uni-tag-text--' + type : '',
87
- size === 'small' ? 'uni-tag-text--small' : ''
88
- ];
89
- return classArr.join(' ');
90
- }
91
- },
92
- methods: {
93
- isTrue(value) {
94
- return value === true || value === 'true';
95
- },
96
- onClick() {
97
- if (this.isTrue(this.disabled)) return;
98
- this.$emit('click');
99
- }
100
- }
101
- };
102
- </script>
103
-
104
- <style scoped>
105
- .uni-tag {
106
- /* #ifndef APP-NVUE */
107
- display: inline-block;
108
- /* #endif */
109
- /* #ifdef APP-NVUE */
110
- align-self: flex-start;
111
- /* #endif */
112
- padding: 0px 16px;
113
- line-height: 30px;
114
- color: #333;
115
- border-radius: 3px;
116
- background-color: #f8f8f8;
117
- border-width: 1rpx;
118
- border-style: solid;
119
- border-color: #f8f8f8;
120
- /* #ifdef H5 */
121
- cursor: pointer;
122
- /* #endif */
123
- }
124
-
125
- .uni-tag--circle {
126
- border-radius: 15px;
127
- }
128
-
129
- .uni-tag--mark {
130
- border-top-left-radius: 0;
131
- border-bottom-left-radius: 0;
132
- border-top-right-radius: 15px;
133
- border-bottom-right-radius: 15px;
134
- }
135
-
136
- .uni-tag--disabled {
137
- opacity: 0.5;
138
- /* #ifdef H5 */
139
- cursor: not-allowed;
140
- /* #endif */
141
- }
142
-
143
- .uni-tag--small {
144
- height: 20px;
145
- padding: 0px 8px;
146
- line-height: 20px;
147
- font-size: 12px;
148
- }
149
-
150
- .uni-tag--default {
151
- color: #333;
152
- font-size: 14px;
153
- }
154
-
155
- .uni-tag--royal {
156
- color: #333;
157
- font-size: 14px;
158
- }
159
-
160
- .uni-tag-text--small {
161
- font-size: 12px;
162
- }
163
-
164
- .uni-tag-text {
165
- color: #fff;
166
- font-size: 14px;
167
- }
168
-
169
- .uni-tag-text--primary {
170
- color: #007aff;
171
- }
172
-
173
- .uni-tag-text--success {
174
- color: #4cd964;
175
- }
176
-
177
- .uni-tag-text--warning {
178
- color: #f0ad4e;
179
- }
180
-
181
- .uni-tag-text--error {
182
- color: #dd524d;
183
- }
184
-
185
- .uni-tag-text--royal {
186
- color: #4335d6;
187
- }
188
-
189
- .uni-tag--primary {
190
- color: #fff;
191
- background-color: #007aff;
192
- border-width: 1rpx;
193
- border-style: solid;
194
- border-color: #007aff;
195
- }
196
-
197
- .primary-uni-tag--inverted {
198
- color: #007aff;
199
- background-color: #ffffff;
200
- border-width: 1rpx;
201
- border-style: solid;
202
- border-color: #007aff;
203
- }
204
-
205
- .uni-tag--success {
206
- color: #fff;
207
- background-color: #4cd964;
208
- border-width: 1rpx;
209
- border-style: solid;
210
- border-color: #4cd964;
211
- }
212
-
213
- .success-uni-tag--inverted {
214
- color: #4cd964;
215
- background-color: #ffffff;
216
- border-width: 1rpx;
217
- border-style: solid;
218
- border-color: #4cd964;
219
- }
220
-
221
- .uni-tag--warning {
222
- color: #fff;
223
- background-color: #f0ad4e;
224
- border-width: 1rpx;
225
- border-style: solid;
226
- border-color: #f0ad4e;
227
- }
228
-
229
- .warning-uni-tag--inverted {
230
- color: #f0ad4e;
231
- background-color: #ffffff;
232
- border-width: 1rpx;
233
- border-style: solid;
234
- border-color: #f0ad4e;
235
- }
236
-
237
- .uni-tag--error {
238
- color: #fff;
239
- background-color: #dd524d;
240
- border-width: 1rpx;
241
- border-style: solid;
242
- border-color: #dd524d;
243
- }
244
-
245
- .error-uni-tag--inverted {
246
- color: #dd524d;
247
- background-color: #ffffff;
248
- border-width: 1rpx;
249
- border-style: solid;
250
- border-color: #dd524d;
251
- }
252
-
253
- .uni-tag--royal {
254
- color: #fff;
255
- background-color: #4335d6;
256
- border-width: 1rpx;
257
- border-style: solid;
258
- border-color: #4335d6;
259
- }
260
-
261
- .royal-uni-tag--inverted {
262
- color: #4335d6;
263
- background-color: #ffffff;
264
- border-width: 1rpx;
265
- border-style: solid;
266
- border-color: #4335d6;
267
- }
268
-
269
- .uni-tag--inverted {
270
- color: #333;
271
- background-color: #ffffff;
272
- border-width: 1rpx;
273
- border-style: solid;
274
- border-color: #f8f8f8;
275
- }
276
- </style>
@@ -1,28 +0,0 @@
1
- <template>
2
- <!-- #ifdef H5 -->
3
- <tbody>
4
- <slot></slot>
5
- </tbody>
6
- <!-- #endif -->
7
- <!-- #ifndef H5 -->
8
- <view>
9
- <slot></slot>
10
- </view>
11
- <!-- #endif -->
12
- </template>
13
-
14
- <script>
15
- export default {
16
- name: 'cvBody',
17
- options: {
18
- virtualHost: true
19
- },
20
- data() {
21
- return {};
22
- },
23
- created() {},
24
- methods: {}
25
- };
26
- </script>
27
-
28
- <style scoped></style>
@@ -1,93 +0,0 @@
1
- <template>
2
- <!-- #ifdef H5 -->
3
- <td
4
- class="uni-table-td"
5
- :rowspan="rowspan"
6
- :colspan="colspan"
7
- :class="{ 'table--border': border }"
8
- :style="{ width: width + 'px', 'text-align': align }"
9
- >
10
- <slot></slot>
11
- </td>
12
- <!-- #endif -->
13
- <!-- #ifndef H5 -->
14
- <!-- :class="{'table--border':border}" -->
15
- <view class="uni-table-td" :class="{ 'table--border': border }" :style="{ width: width + 'px', 'text-align': align }">
16
- <slot></slot>
17
- </view>
18
- <!-- #endif -->
19
- </template>
20
-
21
- <script>
22
- /**
23
- * Td 单元格
24
- * @description 表格中的标准单元格组件
25
- * @tutorial https://ext.dcloud.net.cn/plugin?id=3270
26
- * @property {Number} align = [left|center|right] 单元格对齐方式
27
- */
28
- export default {
29
- name: 'cvTd',
30
- options: {
31
- virtualHost: true
32
- },
33
- props: {
34
- width: {
35
- type: [String, Number],
36
- default: ''
37
- },
38
- align: {
39
- type: String,
40
- default: 'left'
41
- },
42
- rowspan: {
43
- type: [Number, String],
44
- default: 1
45
- },
46
- colspan: {
47
- type: [Number, String],
48
- default: 1
49
- }
50
- },
51
- data() {
52
- return {
53
- border: false
54
- };
55
- },
56
- created() {
57
- this.root = this.getTable();
58
- this.border = this.root.border;
59
- },
60
- methods: {
61
- /**
62
- * 获取父元素实例
63
- */
64
- getTable() {
65
- let parent = this.$parent;
66
- let parentName = parent.$options.name;
67
- while (parentName !== 'uniTable') {
68
- parent = parent.$parent;
69
- if (!parent) return false;
70
- parentName = parent.$options.name;
71
- }
72
- return parent;
73
- }
74
- }
75
- };
76
- </script>
77
-
78
- <style scoped>
79
- .uni-table-td {
80
- display: table-cell;
81
- padding: 8px 10px;
82
- font-size: 14px;
83
- border-bottom: 1px #ebeef5 solid;
84
- font-weight: 400;
85
- color: #606266;
86
- line-height: 23px;
87
- box-sizing: border-box;
88
- }
89
-
90
- .table--border {
91
- border-right: 1px #ebeef5 solid;
92
- }
93
- </style>
@@ -1,270 +0,0 @@
1
- <template>
2
- <!-- #ifdef H5 -->
3
- <th
4
- :rowspan="rowspan"
5
- :colspan="colspan"
6
- class="uni-table-th"
7
- :class="{ 'table--border': border }"
8
- :style="{ width: width + 'px', 'text-align': align }"
9
- >
10
- <view class="uni-table-th-row">
11
- <view class="uni-table-th-content" :style="{ 'justify-content': contentAlign }" @click="sort">
12
- <slot></slot>
13
- <view v-if="sortable" class="arrow-box">
14
- <text class="arrow up" :class="{ active: ascending }" @click.stop="ascendingFn"></text>
15
- <text class="arrow down" :class="{ active: descending }" @click.stop="descendingFn"></text>
16
- </view>
17
- </view>
18
- <dropdown
19
- v-if="filterType || filterData.length"
20
- :filterData="filterData"
21
- :filterType="filterType"
22
- @change="ondropdown"
23
- ></dropdown>
24
- </view>
25
- </th>
26
- <!-- #endif -->
27
- <!-- #ifndef H5 -->
28
- <view class="uni-table-th" :class="{ 'table--border': border }" :style="{ width: width + 'px', 'text-align': align }">
29
- <slot></slot>
30
- </view>
31
- <!-- #endif -->
32
- </template>
33
-
34
- <script>
35
- import dropdown from './filter-dropdown.vue';
36
- /**
37
- * Th 表头
38
- * @description 表格内的表头单元格组件
39
- * @tutorial https://ext.dcloud.net.cn/plugin?id=3270
40
- * @property {Number} width 单元格宽度
41
- * @property {Boolean} sortable 是否启用排序
42
- * @property {Number} align = [left|center|right] 单元格对齐方式
43
- * @value left 单元格文字左侧对齐
44
- * @value center 单元格文字居中
45
- * @value right 单元格文字右侧对齐
46
- * @property {Array} filterData 筛选数据
47
- * @property {String} filterType [search|select] 筛选类型
48
- * @value search 关键字搜素
49
- * @value select 条件选择
50
- * @event {Function} sort-change 排序触发事件
51
- */
52
- export default {
53
- name: 'cvTh',
54
- options: {
55
- virtualHost: true
56
- },
57
- components: {
58
- dropdown
59
- },
60
- emits: ['sort-change', 'filter-change'],
61
- props: {
62
- width: {
63
- type: [String, Number],
64
- default: ''
65
- },
66
- align: {
67
- type: String,
68
- default: 'left'
69
- },
70
- rowspan: {
71
- type: [Number, String],
72
- default: 1
73
- },
74
- colspan: {
75
- type: [Number, String],
76
- default: 1
77
- },
78
- sortable: {
79
- type: Boolean,
80
- default: false
81
- },
82
- filterType: {
83
- type: String,
84
- default: ''
85
- },
86
- filterData: {
87
- type: Array,
88
- default() {
89
- return [];
90
- }
91
- }
92
- },
93
- data() {
94
- return {
95
- border: false,
96
- ascending: false,
97
- descending: false
98
- };
99
- },
100
- computed: {
101
- contentAlign() {
102
- let align = 'left';
103
- switch (this.align) {
104
- case 'left':
105
- align = 'flex-start';
106
- break;
107
- case 'center':
108
- align = 'center';
109
- break;
110
- case 'right':
111
- align = 'flex-end';
112
- break;
113
- }
114
- return align;
115
- }
116
- },
117
- created() {
118
- this.root = this.getTable('uniTable');
119
- this.rootTr = this.getTable('uniTr');
120
- this.rootTr.minWidthUpdate(this.width ? this.width : 140);
121
- this.border = this.root.border;
122
- this.root.thChildren.push(this);
123
- },
124
- methods: {
125
- sort() {
126
- if (!this.sortable) return;
127
- this.clearOther();
128
- if (!this.ascending && !this.descending) {
129
- this.ascending = true;
130
- this.$emit('sort-change', {
131
- order: 'ascending'
132
- });
133
- return;
134
- }
135
- if (this.ascending && !this.descending) {
136
- this.ascending = false;
137
- this.descending = true;
138
- this.$emit('sort-change', {
139
- order: 'descending'
140
- });
141
- return;
142
- }
143
-
144
- if (!this.ascending && this.descending) {
145
- this.ascending = false;
146
- this.descending = false;
147
- this.$emit('sort-change', {
148
- order: null
149
- });
150
- }
151
- },
152
- ascendingFn() {
153
- this.clearOther();
154
- this.ascending = !this.ascending;
155
- this.descending = false;
156
- this.$emit('sort-change', {
157
- order: this.ascending ? 'ascending' : null
158
- });
159
- },
160
- descendingFn() {
161
- this.clearOther();
162
- this.descending = !this.descending;
163
- this.ascending = false;
164
- this.$emit('sort-change', {
165
- order: this.descending ? 'descending' : null
166
- });
167
- },
168
- clearOther() {
169
- this.root.thChildren.map((item) => {
170
- if (item !== this) {
171
- item.ascending = false;
172
- item.descending = false;
173
- }
174
- return item;
175
- });
176
- },
177
- ondropdown(e) {
178
- this.$emit('filter-change', e);
179
- },
180
- /**
181
- * 获取父元素实例
182
- */
183
- getTable(name) {
184
- let parent = this.$parent;
185
- let parentName = parent.$options.name;
186
- while (parentName !== name) {
187
- parent = parent.$parent;
188
- if (!parent) return false;
189
- parentName = parent.$options.name;
190
- }
191
- return parent;
192
- }
193
- }
194
- };
195
- </script>
196
-
197
- <style scoped>
198
- .uni-table-th {
199
- padding: 12px 10px;
200
- /* #ifndef APP-NVUE */
201
- display: table-cell;
202
- box-sizing: border-box;
203
- /* #endif */
204
- font-size: 14px;
205
- font-weight: bold;
206
- color: #909399;
207
- border-bottom: 1px #ebeef5 solid;
208
- }
209
-
210
- .uni-table-th-row {
211
- /* #ifndef APP-NVUE */
212
- display: flex;
213
- /* #endif */
214
- flex-direction: row;
215
- }
216
-
217
- .table--border {
218
- border-right: 1px #ebeef5 solid;
219
- }
220
-
221
- .uni-table-th-content {
222
- display: flex;
223
- align-items: center;
224
- flex: 1;
225
- }
226
-
227
- .arrow {
228
- display: block;
229
- position: relative;
230
- width: 10px;
231
- height: 8px;
232
- left: 5px;
233
- overflow: hidden;
234
- cursor: pointer;
235
- }
236
-
237
- .down {
238
- top: 3px;
239
- }
240
-
241
- .down ::after {
242
- content: '';
243
- width: 8px;
244
- height: 8px;
245
- position: absolute;
246
- left: 2px;
247
- top: -5px;
248
- transform: rotate(45deg);
249
- background-color: #ccc;
250
- }
251
-
252
- .down.active ::after {
253
- background-color: #007aff;
254
- }
255
-
256
- .up ::after {
257
- content: '';
258
- width: 8px;
259
- height: 8px;
260
- position: absolute;
261
- left: 2px;
262
- top: 5px;
263
- transform: rotate(45deg);
264
- background-color: #ccc;
265
- }
266
-
267
- .up.active ::after {
268
- background-color: #007aff;
269
- }
270
- </style>