xt-element-ui 2.0.2 → 2.0.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.
- package/docs/README.md +2 -1
- package/docs/components/base/xt-badge.md +2 -2
- package/docs/components/base/xt-bar.md +1 -1
- package/docs/components/base/xt-map-provider.md +2 -0
- package/docs/components/base/xt-map.md +21 -10
- package/docs/components/base/xt-page.md +4 -2
- package/docs/components/base/xt-scroll-arrow.md +158 -0
- package/docs/components/base/xt-step-price.md +2 -1
- package/lib/index.common.js +15213 -12059
- package/lib/index.css +1 -1
- package/lib/index.umd.js +15218 -12064
- package/lib/index.umd.min.js +11 -11
- package/package.json +4 -3
- package/src/components/index.scss +4 -1
- package/src/components/xt-chart/XtBar.vue +33 -10
- package/src/components/xt-chart/XtLine.vue +33 -1
- package/src/components/xt-chart/XtMulti.vue +35 -1
- package/src/components/xt-chart/XtPie.vue +31 -1
- package/src/components/xt-chart/pieList.vue +0 -1
- package/src/components/xt-chart/utils.js +31 -0
- package/src/components/xt-date-picker/index.vue +8 -8
- package/src/components/xt-page/index.vue +1 -1
- package/src/components/xt-scroll-arrow/index.js +8 -0
- package/src/components/xt-scroll-arrow/index.vue +261 -0
- package/src/components/xt-scroll-arrow/style/index.scss +89 -0
- package/src/components/xt-select-tree/index.vue +0 -7
- package/src/components/xt-step-price/index.vue +4 -2
- package/src/components/xt-step-price-item/index.vue +2 -1
- package/src/components/xt-upload/index.vue +5 -8
- package/src/index.js +26 -2
- package/src/components/xt-card-item/index copy.vue +0 -93
package/docs/README.md
CHANGED
|
@@ -7,7 +7,7 @@ actionText: 🚀 快速上手
|
|
|
7
7
|
actionLink: /components/base/xt-button
|
|
8
8
|
features:
|
|
9
9
|
- title: 🎯 丰富的组件
|
|
10
|
-
details: 提供
|
|
10
|
+
details: 提供 20+ 组件,覆盖布局、表单、数据展示、图表等常见场景
|
|
11
11
|
- title: 📦 开箱即用
|
|
12
12
|
details: 基于 ElementUI 构建,与现有 ElementUI 项目无缝集成
|
|
13
13
|
- title: 🪶 按需引入
|
|
@@ -70,6 +70,7 @@ Vue.use(XtElementUI)
|
|
|
70
70
|
| **XtProgress** | 进度条组件 |
|
|
71
71
|
| **XtTabs** | 标签页组件 |
|
|
72
72
|
| **XtBadge** | 徽标组件 |
|
|
73
|
+
| **XtScrollArrow** | 滚动箭头组件 |
|
|
73
74
|
|
|
74
75
|
### 📊 图表组件
|
|
75
76
|
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
<XtBadge :value="5" type="warning">
|
|
43
43
|
<XtButton size="small">通知</XtButton>
|
|
44
44
|
</XtBadge>
|
|
45
|
-
<XtBadge
|
|
45
|
+
<XtBadge value="99+" type="danger">
|
|
46
46
|
<XtButton size="small">消息</XtButton>
|
|
47
47
|
</XtBadge>
|
|
48
48
|
</div>
|
|
@@ -126,7 +126,7 @@
|
|
|
126
126
|
<template>
|
|
127
127
|
<div style="display: flex; gap: 16px;">
|
|
128
128
|
<XtBadge :value="12" />
|
|
129
|
-
<XtBadge
|
|
129
|
+
<XtBadge value="99+" type="danger" />
|
|
130
130
|
<XtBadge is-dot type="success" />
|
|
131
131
|
</div>
|
|
132
132
|
</template>
|
|
@@ -53,13 +53,14 @@ export default {
|
|
|
53
53
|
|
|
54
54
|
使用 `XtMapProvider` 统一配置项目中所有地图,无需在每个 `<XtMap>` 上重复写密钥:
|
|
55
55
|
|
|
56
|
+
::: demo 基本用法
|
|
56
57
|
```vue
|
|
57
58
|
<template>
|
|
58
59
|
<XtMapProvider
|
|
59
60
|
provider="amap"
|
|
60
|
-
api-key="
|
|
61
|
-
security-js-code="
|
|
62
|
-
theme="
|
|
61
|
+
api-key="AMAP_KEY"
|
|
62
|
+
security-js-code="AMAP_SECURITY_CODE"
|
|
63
|
+
theme="dark"
|
|
63
64
|
>
|
|
64
65
|
<div style="width: 100%; height: 500px;">
|
|
65
66
|
<XtMap :center="[116.397428, 39.90923]" :zoom="11" />
|
|
@@ -70,6 +71,7 @@ export default {
|
|
|
70
71
|
</XtMapProvider>
|
|
71
72
|
</template>
|
|
72
73
|
```
|
|
74
|
+
:::
|
|
73
75
|
|
|
74
76
|
或通过 `Vue.prototype.$xt` 方式配置(入口文件):
|
|
75
77
|
|
|
@@ -92,18 +94,20 @@ setMapTheme('dark')
|
|
|
92
94
|
|
|
93
95
|
#### 高德地图(推荐)
|
|
94
96
|
|
|
97
|
+
::: demo
|
|
95
98
|
```vue
|
|
96
99
|
<XtMap
|
|
97
100
|
provider="amap"
|
|
98
|
-
api-key="
|
|
99
|
-
security-js-code="
|
|
101
|
+
api-key="4a32fafb17f9e5236c4bb5f2e538d43b"
|
|
102
|
+
security-js-code="50f302bf821cda57f798308236e7f8e2"
|
|
100
103
|
:center="[116.397428, 39.90923]"
|
|
101
104
|
:zoom="11"
|
|
102
105
|
/>
|
|
103
106
|
```
|
|
107
|
+
:::
|
|
104
108
|
|
|
105
109
|
#### 天地图
|
|
106
|
-
|
|
110
|
+
::: demo 天地图
|
|
107
111
|
```vue
|
|
108
112
|
<XtMap
|
|
109
113
|
provider="tianditu"
|
|
@@ -112,9 +116,10 @@ setMapTheme('dark')
|
|
|
112
116
|
:zoom="11"
|
|
113
117
|
/>
|
|
114
118
|
```
|
|
119
|
+
:::
|
|
115
120
|
|
|
116
121
|
#### 百度地图
|
|
117
|
-
|
|
122
|
+
::: demo 百度地图
|
|
118
123
|
```vue
|
|
119
124
|
<XtMap
|
|
120
125
|
provider="baidu"
|
|
@@ -123,9 +128,10 @@ setMapTheme('dark')
|
|
|
123
128
|
:zoom="11"
|
|
124
129
|
/>
|
|
125
130
|
```
|
|
131
|
+
:::
|
|
126
132
|
|
|
127
133
|
### 暗黑主题
|
|
128
|
-
|
|
134
|
+
::: demo 暗黑主题
|
|
129
135
|
```vue
|
|
130
136
|
<template>
|
|
131
137
|
<div style="width: 100%; height: 500px;">
|
|
@@ -139,11 +145,12 @@ setMapTheme('dark')
|
|
|
139
145
|
</div>
|
|
140
146
|
</template>
|
|
141
147
|
```
|
|
148
|
+
:::
|
|
142
149
|
|
|
143
150
|
高德地图原生支持 dark 主题样式;天地图、百度地图通过 CSS 滤镜实现近似效果。
|
|
144
151
|
|
|
145
152
|
### 地图类型切换
|
|
146
|
-
|
|
153
|
+
::: demo 地图类型切换
|
|
147
154
|
```vue
|
|
148
155
|
<template>
|
|
149
156
|
<div>
|
|
@@ -176,9 +183,10 @@ export default {
|
|
|
176
183
|
}
|
|
177
184
|
</script>
|
|
178
185
|
```
|
|
186
|
+
:::
|
|
179
187
|
|
|
180
188
|
### 通过 ref 调用实例方法
|
|
181
|
-
|
|
189
|
+
::: demo 通过 ref 调用实例方法
|
|
182
190
|
```vue
|
|
183
191
|
<template>
|
|
184
192
|
<div>
|
|
@@ -228,11 +236,13 @@ export default {
|
|
|
228
236
|
}
|
|
229
237
|
</script>
|
|
230
238
|
```
|
|
239
|
+
:::
|
|
231
240
|
|
|
232
241
|
### 自定义 API URL
|
|
233
242
|
|
|
234
243
|
如需使用自建代理或反向代理(例如解决密钥暴露问题),可通过 `api-url` 覆盖:
|
|
235
244
|
|
|
245
|
+
::: demo 自定义 API URL
|
|
236
246
|
```vue
|
|
237
247
|
<XtMap
|
|
238
248
|
provider="amap"
|
|
@@ -241,6 +251,7 @@ export default {
|
|
|
241
251
|
:zoom="11"
|
|
242
252
|
/>
|
|
243
253
|
```
|
|
254
|
+
:::
|
|
244
255
|
|
|
245
256
|
---
|
|
246
257
|
|
|
@@ -71,8 +71,10 @@ export default {
|
|
|
71
71
|
::: demo 仅主内容
|
|
72
72
|
```vue
|
|
73
73
|
<template>
|
|
74
|
-
<XtPage :show-header="false" :show-footer="false">
|
|
75
|
-
<template #default
|
|
74
|
+
<XtPage :show-header="false" :show-footer="false" style="height: 600px;">
|
|
75
|
+
<template #default="{ tableHeight }">
|
|
76
|
+
<div class="multiline-box" :style="{ height: tableHeight+'px' }">自适应容器</div>
|
|
77
|
+
</template>
|
|
76
78
|
</XtPage>
|
|
77
79
|
</template>
|
|
78
80
|
```
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
## XtScrollArrow 滚动箭头组件
|
|
2
|
+
|
|
3
|
+
滚动箭头组件用于在内容溢出时显示滚动箭头,支持水平和垂直方向的滚动。
|
|
4
|
+
|
|
5
|
+
## 基本用法
|
|
6
|
+
|
|
7
|
+
::: demo 水平滚动
|
|
8
|
+
```vue
|
|
9
|
+
<template>
|
|
10
|
+
<XtScrollArrow :width="300">
|
|
11
|
+
<div style="display: flex; gap: 16px; padding: 8px;">
|
|
12
|
+
<div v-for="i in 10" :key="i" style="width: 80px; height: 60px; background: #f5f7fa; border-radius: 8px; display: flex; align-items: center; justify-content: center;">
|
|
13
|
+
项目 {{ i }}
|
|
14
|
+
</div>
|
|
15
|
+
</div>
|
|
16
|
+
</XtScrollArrow>
|
|
17
|
+
</template>
|
|
18
|
+
```
|
|
19
|
+
:::
|
|
20
|
+
|
|
21
|
+
## 属性说明
|
|
22
|
+
| 属性 | 类型 | 默认值 | 可选值 | 说明 |
|
|
23
|
+
|------|------|--------|--------|------|
|
|
24
|
+
| `direction` | String | horizontal | `horizontal`、`vertical` | 滚动方向 |
|
|
25
|
+
| `scrollStep` | Number | 100 | - | 每次滚动的步长(像素) |
|
|
26
|
+
| `autoHide` | Boolean | true | - | 是否自动隐藏箭头(滚动到边界时隐藏) |
|
|
27
|
+
| `height` | String / Number | - | - | 容器高度 |
|
|
28
|
+
| `width` | String / Number | - | - | 容器宽度 |
|
|
29
|
+
|
|
30
|
+
## 事件说明
|
|
31
|
+
| 事件名称 | 说明 | 参数 |
|
|
32
|
+
|----------|------|------|
|
|
33
|
+
| `scroll` | 滚动时触发 | `scrollContainer` - 滚动容器元素 |
|
|
34
|
+
|
|
35
|
+
## 示例
|
|
36
|
+
|
|
37
|
+
### 垂直滚动
|
|
38
|
+
|
|
39
|
+
::: demo 垂直滚动
|
|
40
|
+
```vue
|
|
41
|
+
<template>
|
|
42
|
+
<XtScrollArrow direction="vertical" :height="200" :width="200">
|
|
43
|
+
<div style="display: flex; flex-direction: column; gap: 12px; padding: 8px;">
|
|
44
|
+
<div v-for="i in 10" :key="i" style="height: 60px; background: #f5f7fa; border-radius: 8px; display: flex; align-items: center; justify-content: center;">
|
|
45
|
+
项目 {{ i }}
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
</XtScrollArrow>
|
|
49
|
+
</template>
|
|
50
|
+
```
|
|
51
|
+
:::
|
|
52
|
+
|
|
53
|
+
### 自定义滚动步长
|
|
54
|
+
|
|
55
|
+
::: demo 自定义滚动步长
|
|
56
|
+
```vue
|
|
57
|
+
<template>
|
|
58
|
+
<XtScrollArrow :width="300" :scrollStep="50">
|
|
59
|
+
<div style="display: flex; gap: 16px; padding: 8px;">
|
|
60
|
+
<div v-for="i in 10" :key="i" style="width: 80px; height: 60px; background: #f5f7fa; border-radius: 8px; display: flex; align-items: center; justify-content: center;">
|
|
61
|
+
项目 {{ i }}
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
</XtScrollArrow>
|
|
65
|
+
</template>
|
|
66
|
+
```
|
|
67
|
+
:::
|
|
68
|
+
|
|
69
|
+
### 始终显示箭头
|
|
70
|
+
|
|
71
|
+
::: demo 始终显示箭头
|
|
72
|
+
```vue
|
|
73
|
+
<template>
|
|
74
|
+
<XtScrollArrow :width="300" :autoHide="false">
|
|
75
|
+
<div style="display: flex; gap: 16px; padding: 8px;">
|
|
76
|
+
<div v-for="i in 10" :key="i" style="width: 80px; height: 60px; background: #f5f7fa; border-radius: 8px; display: flex; align-items: center; justify-content: center;">
|
|
77
|
+
项目 {{ i }}
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
</XtScrollArrow>
|
|
81
|
+
</template>
|
|
82
|
+
```
|
|
83
|
+
:::
|
|
84
|
+
|
|
85
|
+
### 结合其他组件使用
|
|
86
|
+
|
|
87
|
+
::: demo 结合按钮组使用
|
|
88
|
+
```vue
|
|
89
|
+
<template>
|
|
90
|
+
<XtScrollArrow :width="400">
|
|
91
|
+
<div style="display: flex; gap: 8px; padding: 8px;">
|
|
92
|
+
<el-button v-for="i in 8" :key="i" type="primary" plain>按钮 {{ i }}</el-button>
|
|
93
|
+
</div>
|
|
94
|
+
</XtScrollArrow>
|
|
95
|
+
</template>
|
|
96
|
+
```
|
|
97
|
+
:::
|
|
98
|
+
|
|
99
|
+
### 动态内容
|
|
100
|
+
|
|
101
|
+
::: demo 动态内容
|
|
102
|
+
```vue
|
|
103
|
+
<template>
|
|
104
|
+
<div>
|
|
105
|
+
<el-button @click="addItem" style="margin-bottom: 12px;">添加项目</el-button>
|
|
106
|
+
<XtScrollArrow ref="arrow" :width="300" :appendMode="true">
|
|
107
|
+
<div style="display: flex; gap: 12px; padding: 8px;">
|
|
108
|
+
<div v-for="item in items" :key="item.id" style="width: 80px; height: 60px; background: #f5f7fa; border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0;">
|
|
109
|
+
{{ item.name }}
|
|
110
|
+
</div>
|
|
111
|
+
</div>
|
|
112
|
+
</XtScrollArrow>
|
|
113
|
+
</div>
|
|
114
|
+
</template>
|
|
115
|
+
|
|
116
|
+
<script>
|
|
117
|
+
export default {
|
|
118
|
+
data() {
|
|
119
|
+
return {
|
|
120
|
+
items: [
|
|
121
|
+
{ id: 1, name: '项目 1' },
|
|
122
|
+
{ id: 2, name: '项目 2' },
|
|
123
|
+
{ id: 3, name: '项目 3' },
|
|
124
|
+
{ id: 4, name: '项目 4' },
|
|
125
|
+
{ id: 5, name: '项目 5' }
|
|
126
|
+
],
|
|
127
|
+
count: 5
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
methods: {
|
|
131
|
+
addItem() {
|
|
132
|
+
this.count++
|
|
133
|
+
this.items.push({ id: this.count, name: `项目 ${this.count}` })
|
|
134
|
+
// this.$nextTick(() => {
|
|
135
|
+
// this.$refs.arrow.scrollToEnd()
|
|
136
|
+
// })
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
</script>
|
|
141
|
+
```
|
|
142
|
+
:::
|
|
143
|
+
|
|
144
|
+
### 响应式宽度
|
|
145
|
+
|
|
146
|
+
::: demo 响应式宽度
|
|
147
|
+
```vue
|
|
148
|
+
<template>
|
|
149
|
+
<XtScrollArrow width="100%">
|
|
150
|
+
<div style="display: flex; gap: 16px; padding: 8px;">
|
|
151
|
+
<div v-for="i in 10" :key="i" style="width: 100px; height: 60px; background: #f5f7fa; border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0;">
|
|
152
|
+
项目 {{ i }}
|
|
153
|
+
</div>
|
|
154
|
+
</div>
|
|
155
|
+
</XtScrollArrow>
|
|
156
|
+
</template>
|
|
157
|
+
```
|
|
158
|
+
:::
|
|
@@ -121,7 +121,8 @@ export default {
|
|
|
121
121
|
| `fieldKeys` | Object | `{ min: 'min', max: 'max', price: 'price' }` | 字段名映射,支持自定义字段名 |
|
|
122
122
|
| `limit` | Number | `0` | 阶梯数量上限,<=0 表示不限制 |
|
|
123
123
|
| `step` | Number | `10` | 阶梯增量,新增时自动填充下一级的 min 值 |
|
|
124
|
-
| `disabled` | Boolean | `false` | 是否禁用所有操作 |
|
|
124
|
+
| `disabled` | Boolean | `false` | 是否禁用所有操作 |
|
|
125
|
+
| `allowNegative` | Boolean | `false` | 是否允许输入负数价格和下限 |
|
|
125
126
|
| `tip` | String | `'区间左闭右闭 [min, max],最后一级为 [min, +∞),保证连续且不重叠。'` | 底部提示文本 |
|
|
126
127
|
| `defaultFirst` | Boolean | `true` | 空数组时是否自动生成默认阶梯 |
|
|
127
128
|
|