jianghu-ui 1.0.6 → 1.0.7

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 (47) hide show
  1. package/dist/jianghu-ui.css +181 -110
  2. package/dist/jianghu-ui.js +1 -1
  3. package/package.json +1 -1
  4. package/src/components/JhDrawer/JhDrawer.stories.js +6 -6
  5. package/src/components/JhDrawerForm/JhDrawerForm.vue +1 -1
  6. package/src/components/JhForm/JhForm.stories.js +114 -95
  7. package/src/components/JhForm/JhForm.vue +148 -21
  8. package/src/components/JhFormFields/JhFormFields.vue +33 -14
  9. package/src/components/JhModal/JhModal.stories.js +6 -6
  10. package/src/components/JhModal/JhModal.vue +1 -1
  11. package/src/components/JhModalForm/JhModalForm.vue +1 -1
  12. package/src/components/JhTable/JhTable.stories.js +134 -167
  13. package/src/components/JhTable/JhTable.vue +83 -23
  14. package/src/style/globalCSSVuetifyV4.css +1 -2
  15. package/src/components/JhAddressSelect/JhAddressSelect.md +0 -267
  16. package/src/components/JhCard/JhCard.md +0 -246
  17. package/src/components/JhCheckCard/JhCheckCard.md +0 -245
  18. package/src/components/JhConfirmDialog/JhConfirmDialog.md +0 -70
  19. package/src/components/JhDateRangePicker/JhDateRangePicker.md +0 -56
  20. package/src/components/JhDescriptions/JhDescriptions.md +0 -724
  21. package/src/components/JhDraggable/JhDraggable.md +0 -66
  22. package/src/components/JhDrawer/JhDrawer.md +0 -68
  23. package/src/components/JhDrawerForm/JhDrawerForm.md +0 -69
  24. package/src/components/JhEditableTable/JhEditableTable.md +0 -507
  25. package/src/components/JhFileInput/JhFileInput.md +0 -56
  26. package/src/components/JhForm/JhForm.md +0 -676
  27. package/src/components/JhFormFields/JhFormFields.md +0 -647
  28. package/src/components/JhFormList/JhFormList.md +0 -303
  29. package/src/components/JhJsonEditor/JhJsonEditor.md +0 -54
  30. package/src/components/JhLayout/JhLayout.md +0 -580
  31. package/src/components/JhList/JhList.md +0 -441
  32. package/src/components/JhMarkdownEditor/JhMarkdownEditor.md +0 -56
  33. package/src/components/JhMask/JhMask.md +0 -62
  34. package/src/components/JhMenu/JhMenu.md +0 -85
  35. package/src/components/JhModal/JhModal.md +0 -68
  36. package/src/components/JhModalForm/JhModalForm.md +0 -69
  37. package/src/components/JhPageContainer/JhPageContainer.md +0 -409
  38. package/src/components/JhQueryFilter/JhQueryFilter.md +0 -77
  39. package/src/components/JhScene/JhScene.md +0 -64
  40. package/src/components/JhStatisticCard/JhStatisticCard.md +0 -363
  41. package/src/components/JhStepsForm/JhStepsForm.md +0 -666
  42. package/src/components/JhTable/JhTable.md +0 -730
  43. package/src/components/JhTableAttachment/JhTableAttachment.md +0 -70
  44. package/src/components/JhToast/JhToast.md +0 -67
  45. package/src/components/JhTreeSelect/JhTreeSelect.md +0 -82
  46. package/src/components/JhWaterMark/JhWaterMark.md +0 -190
  47. package/src/components/README.md +0 -52
@@ -1,267 +0,0 @@
1
- # JhAddressSelect - 省市区选择组件
2
-
3
- 省市区三级联动选择组件,支持自定义显示层级、标签文本和数据源。
4
-
5
- - ✅ **四级联动**: 支持省、市、区、镇四级联动选择
6
- - ✅ **自定义层级**: 可配置显示 1-4 级(仅省份、省市、省市区、省市区镇)
7
- - ✅ **自定义标签**: 支持自定义各级别的显示文本
8
- - ✅ **自定义数据**: 支持传入自定义省市区数据源
9
- - ✅ **样式透传**: 支持 Vuetify 的 outlined、dense、loading 等样式
10
- - ✅ **双向绑定**: 支持 v-model 双向数据绑定
11
- - ✅ **事件触发**: change 事件在值变化时触发
12
- - ✅ **清除功能**: 支持清除已选值
13
- - ✅ **返回完整信息**: 事件返回包�� code 和 name 的完整对象
14
- - ✅ **多种模式**: 支持普通联动选择 (select) 和级联选择 (cascader) 两种模式
15
-
16
- ## 基本用法
17
-
18
- ```vue
19
- <template>
20
- <jh-address-select
21
- v-model="address"
22
- :data="addressData"
23
- @change="handleAddressChange"
24
- ></jh-address-select>
25
- </template>
26
-
27
- <script>
28
- export default {
29
- data() {
30
- return {
31
- address: { province: null, city: null, district: null, town: null },
32
- addressData: [
33
- { code: '110000', name: '北京市', children: [...] },
34
- { code: '440000', name: '广东省', children: [...] }
35
- ]
36
- };
37
- },
38
- methods: {
39
- handleAddressChange(value) {
40
- console.log('省份:', value.province?.name, value.province?.code);
41
- console.log('城市:', value.city?.name, value.city?.code);
42
- console.log('区县:', value.district?.name, value.district?.code);
43
- console.log('乡镇:', value.town?.name, value.town?.code);
44
- }
45
- }
46
- };
47
- </script>
48
- ```
49
-
50
- ## API
51
-
52
- ### Props
53
-
54
- | 参数 | 说明 | 类型 | 默认值 |
55
- | --- | --- | --- | --- |
56
- | value / v-model | 绑定值,返回包含 code 和 name 的对象 | object | { province: null, city: null, district: null } |
57
- | level | 显示层级:1-仅省份,2-省市,3-省市区,4-省市区镇 | number | 3 |
58
- | type | 显示模式:'select' (默认) 或 'cascader' | string | 'select' |
59
- | label | 级联模式下的输入框标签 | string | '请选择地区' |
60
- | outlined | 是否使用 outlined 样式 | boolean | true |
61
- | dense | 是否使用紧凑模式 | boolean | false |
62
- | loading | 是否显示加载状态 | boolean | false |
63
- | labels | 自定义标签文本 | object | { province: '省份', city: '城市', district: '区/县', town: '乡镇' } |
64
- | data | 省市区数据源 | array | 内置示例数据 |
65
-
66
- ### Events
67
-
68
- | 事件名 | 说明 | 回调参数 |
69
- | --- | --- | --- |
70
- | input | 值变化时触发(v-model) | (value: object) |
71
- | change | 值变化时触发 | (value: object) |
72
-
73
- ### 返回值格式
74
-
75
- v-model 绑定值和事件回调参数的格式:
76
-
77
- ```javascript
78
- {
79
- province: { code: '440000', name: '广东省' },
80
- city: { code: '440300', name: '深圳市' },
81
- district: { code: '440305', name: '南山区' },
82
- town: { code: '440305001', name: '南头街道' } // level=4 时存在
83
- }
84
- ```
85
-
86
- 每个字段都是一个对象,包含 `code`(编码)和 `name`(名称)两个属性。未选择时为 `null`。
87
-
88
- ### 数据格式
89
-
90
- data 属性需要符合以下格式:
91
-
92
- ```javascript
93
- [
94
- {
95
- code: '110000', // 省份编码
96
- name: '北京市', // 省份名称
97
- children: [ // 城市列表
98
- {
99
- code: '110100', // 城市编码
100
- name: '市辖区', // 城市名称
101
- children: [ // 区县列表
102
- {
103
- code: '110101', // 区县编码
104
- name: '东城区' // 区县名称
105
- }
106
- ]
107
- }
108
- ]
109
- }
110
- ]
111
- ```
112
-
113
- ## 使用示例
114
-
115
- ### 默认三级联动
116
-
117
- ```vue
118
- <jh-address-select
119
- v-model="address"
120
- :data="addressData"
121
- ></jh-address-select>
122
- ```
123
-
124
- ### 级联选择模式
125
-
126
- 使用 `type="cascader"` 开启级联选择模式。
127
-
128
- ```vue
129
- <jh-address-select
130
- v-model="address"
131
- type="cascader"
132
- label="收货地址"
133
- :data="addressData"
134
- ></jh-address-select>
135
- ```
136
-
137
- ### 仅选择到城市
138
-
139
- ```vue
140
- <jh-address-select
141
- v-model="address"
142
- :level="2"
143
- :data="addressData"
144
- ></jh-address-select>
145
- ```
146
-
147
- ### 仅选择省份
148
-
149
- ```vue
150
- <jh-address-select
151
- v-model="address"
152
- :level="1"
153
- :data="addressData"
154
- ></jh-address-select>
155
- ```
156
-
157
- ### 四级联动(省市区镇)
158
-
159
- ```vue
160
- <jh-address-select
161
- v-model="address"
162
- :level="4"
163
- :data="addressData"
164
- ></jh-address-select>
165
- ```
166
-
167
- ### 四级联动(带初始值)
168
-
169
- ```vue
170
- <jh-address-select
171
- v-model="address"
172
- :level="4"
173
- :data="addressData"
174
- ></jh-address-select>
175
-
176
- <script>
177
- export default {
178
- data() {
179
- return {
180
- address: {
181
- province: { code: '440000', name: '广东省' },
182
- city: { code: '440300', name: '深圳市' },
183
- district: { code: '440305', name: '南山区' },
184
- town: { code: '440305001', name: '南头街道' }
185
- }
186
- };
187
- }
188
- };
189
- </script>
190
- ```
191
-
192
- ### 紧凑模式
193
-
194
- ```vue
195
- <jh-address-select
196
- v-model="address"
197
- dense
198
- :data="addressData"
199
- ></jh-address-select>
200
- ```
201
-
202
- ### 自定义标签文本
203
-
204
- ```vue
205
- <jh-address-select
206
- v-model="address"
207
- :labels="{ province: '所在省份', city: '所在城市', district: '所在区县' }"
208
- :data="addressData"
209
- ></jh-address-select>
210
- ```
211
-
212
- ### 加载状态
213
-
214
- ```vue
215
- <jh-address-select
216
- v-model="address"
217
- :loading="isLoading"
218
- :data="addressData"
219
- ></jh-address-select>
220
- ```
221
-
222
- ### 使用 filled 样式
223
-
224
- ```vue
225
- <jh-address-select
226
- v-model="address"
227
- :outlined="false"
228
- :data="addressData"
229
- ></jh-address-select>
230
- ```
231
-
232
- ### 监听变化
233
-
234
- ```vue
235
- <template>
236
- <jh-address-select
237
- v-model="address"
238
- :data="addressData"
239
- @change="handleAddressChange"
240
- ></jh-address-select>
241
- </template>
242
-
243
- <script>
244
- export default {
245
- methods: {
246
- handleAddressChange(value) {
247
- console.log('地址变化:', value);
248
- }
249
- }
250
- };
251
- </script>
252
- ```
253
-
254
- ## 注意事项
255
-
256
- 1. **数据格式**: data 属性必须符合指定的嵌套格式,包含 code 和 name 字段
257
- 2. **层级控制**: level 属性控制显示的级数,设置为 1 时只显示省份,2 时显示省市,3 时显示省市区,4 时显示省市区镇
258
- 3. **联动逻辑**: 选择省份后会清空城市、区县和乡镇,选择城市后会清空区县和乡镇,选择区县后会清空乡镇
259
- 4. **禁用状态**: 未选择上级时,下级选择器会自动禁用
260
- 5. **响应式布局**: 组件会根据 level 自动调整栅格布局(level=1 时占 12 列,level=2 时占 6 列,level=3 时占 4 列,level=4 时占 3 列)
261
- 6. **返回值格式**: v-model 和事件返回的值包含 code 和 name 两个字段,方便获取编码和名称
262
- 7. **级联模式**: 在 cascader 模式下,点击省份/城市/区县会展示下一级列表,直到选择完指定 level 级数后自动收起菜单
263
-
264
- ## 相关链接
265
-
266
- - [Vuetify Autocomplete](https://vuetifyjs.com/en/components/autocompletes/)
267
- - [中国行政区划代码](http://www.mca.gov.cn/article/sj/xzqh/)
@@ -1,246 +0,0 @@
1
- # JhCard - 高级卡片组件
2
-
3
- 高级卡片组件,完全参考 [Ant Design ProCard](https://procomponents.ant.design/components/card/) 设计规范。
4
-
5
- ## 功能特性
6
-
7
- - ✅ **标题和提示**: 支持标题、副标题、tooltip 提示信息
8
- - ✅ **额外内容**: 支持右上角额外内容区域
9
- - ✅ **边框控制**: 支持边框和标题分割线
10
- - ✅ **幽灵模式**: 可取消背景色和 padding,适合页面布局
11
- - ✅ **折叠功能**: 支持卡片内容折叠/展开
12
- - ✅ **尺寸控制**: 支持 default 和 small 两种尺寸
13
- - ✅ **加载状态**: 内置 loading 状态展示
14
- - ✅ **操作项**: 底部操作按钮区域,自动分割线
15
- - ✅ **布局模式**: 支持居中布局
16
- - ✅ **分栏布局**: 支持垂直和水平分栏,自动分割线
17
- - ✅ **栅格布局**: 支持 24 栅格系统,支持数字、像素、百分比
18
- - ✅ **间距控制**: 支持 gutter 设置栅格间距
19
- - ✅ **Flex 布局**: 支持 direction 控制 flex 方向
20
- - ✅ **悬浮效果**: 支持鼠标悬浮阴影效果
21
- - ✅ **标签页**: 支持内置标签页功能
22
-
23
- ## 基本用法
24
-
25
- ```vue
26
- <template>
27
- <jh-card
28
- title="卡片标题"
29
- tooltip="这是提示信息"
30
- extra="额外内容"
31
- >
32
- <div>卡片内容</div>
33
- </jh-card>
34
- </template>
35
- ```
36
-
37
- ## API
38
-
39
- ### Props
40
-
41
- | 参数 | 说明 | 类型 | 默认值 |
42
- | --- | --- | --- | --- |
43
- | title | 标题 | string | - |
44
- | subTitle | 副标题 | string | - |
45
- | tooltip | 标题旁边的提示信息 | string | - |
46
- | extra | 右上角额外内容 | string | - |
47
- | bordered | 是否有边框 | boolean | true |
48
- | headerBordered | 标题和内容之间是否有分割线 | boolean | false |
49
- | ghost | 幽灵模式,取消背景色和 padding | boolean | false |
50
- | collapsible | 是否可折叠 | boolean | false |
51
- | defaultCollapsed | 默认是否折叠 | boolean | false |
52
- | size | 尺寸 | 'default' \| 'small' | 'default' |
53
- | loading | 加载状态 | boolean | false |
54
- | actions | 底部操作按钮配置 | Array | [] |
55
- | layout | 布局方式 | 'default' \| 'center' | 'default' |
56
- | direction | Flex 方向 | 'row' \| 'column' | 'row' |
57
- | split | 分栏模式 | '' \| 'vertical' \| 'horizontal' | '' |
58
- | colSpan | 栅格占比,支持数字(0-24)、像素值、百分比 | number \| string | 24 |
59
- | gutter | 栅格间距 | number \| [number, number] | 0 |
60
- | tabs | 标签页配置 | object | null |
61
- | hoverable | 鼠标悬浮时是否有阴影效果 | boolean | false |
62
- | bodyStyle | 自定义内容区样式 | object | {} |
63
- | headStyle | 自定义头部样式 | object | {} |
64
-
65
- ### Events
66
-
67
- | 事件名 | 说明 | 回调参数 |
68
- | --- | --- | --- |
69
- | collapse | 折叠状态改变时触发 | (collapsed: boolean) |
70
- | tab-change | 标签页切换时触发 | (key: string \| number) |
71
-
72
- ### Slots
73
-
74
- | 名称 | 说明 |
75
- | --- | --- |
76
- | default | 卡片内容 |
77
- | title | 自定义标题 |
78
- | extra | 自定义右上角内容 |
79
-
80
- ## 使用示例
81
-
82
- ### 基础卡片
83
-
84
- ```vue
85
- <jh-card
86
- title="默认尺寸"
87
- tooltip="这是提示"
88
- extra="extra"
89
- >
90
- <div>Card content</div>
91
- </jh-card>
92
- ```
93
-
94
- ### 小尺寸卡片
95
-
96
- ```vue
97
- <jh-card
98
- title="小尺寸卡片"
99
- size="small"
100
- >
101
- <div>Card content</div>
102
- </jh-card>
103
- ```
104
-
105
- ### 带分割线的标题
106
-
107
- ```vue
108
- <jh-card
109
- title="标题"
110
- header-bordered
111
- >
112
- <div>Card content</div>
113
- </jh-card>
114
- ```
115
-
116
- ### 可折叠卡片
117
-
118
- ```vue
119
- <jh-card
120
- title="可折叠卡片"
121
- collapsible
122
- >
123
- <div>Card content</div>
124
- </jh-card>
125
- ```
126
-
127
- ### 加载状态
128
-
129
- ```vue
130
- <jh-card
131
- title="加载中"
132
- loading
133
- >
134
- <div>Card content</div>
135
- </jh-card>
136
- ```
137
-
138
- ### 操作项
139
-
140
- ```vue
141
- <jh-card
142
- title="Actions 操作项"
143
- :actions="[
144
- { icon: 'mdi-cog', text: '设置', onClick: () => {} },
145
- { icon: 'mdi-pencil', text: '编辑', onClick: () => {} },
146
- ]"
147
- >
148
- <div>Card content</div>
149
- </jh-card>
150
- ```
151
-
152
- ### 栅格布局
153
-
154
- ```vue
155
- <jh-card :gutter="8">
156
- <jh-card :col-span="12" bordered>
157
- colSpan - 12
158
- </jh-card>
159
- <jh-card :col-span="6" bordered>
160
- colSpan - 6
161
- </jh-card>
162
- <jh-card :col-span="6" bordered>
163
- colSpan - 6
164
- </jh-card>
165
- </jh-card>
166
- ```
167
-
168
- ### 左右分栏
169
-
170
- ```vue
171
- <jh-card
172
- title="左右分栏"
173
- split="vertical"
174
- bordered
175
- >
176
- <jh-card title="左侧" col-span="30%">
177
- 左侧内容
178
- </jh-card>
179
- <jh-card title="右侧">
180
- 右侧内容
181
- </jh-card>
182
- </jh-card>
183
- ```
184
-
185
- ### 上下分栏
186
-
187
- ```vue
188
- <jh-card
189
- title="上下分栏"
190
- split="horizontal"
191
- bordered
192
- >
193
- <jh-card title="上部">
194
- 上部内容
195
- </jh-card>
196
- <jh-card title="下部">
197
- 下部内容
198
- </jh-card>
199
- </jh-card>
200
- ```
201
-
202
- ### 幽灵模式
203
-
204
- ```vue
205
- <jh-card ghost>
206
- <div>无背景色和 padding</div>
207
- </jh-card>
208
- ```
209
-
210
- ### 居中布局
211
-
212
- ```vue
213
- <jh-card layout="center" style="min-height: 200px;">
214
- <div>内容居中</div>
215
- </jh-card>
216
- ```
217
-
218
- ### 悬浮效果
219
-
220
- ```vue
221
- <jh-card hoverable>
222
- <div>鼠标悬浮时有阴影</div>
223
- </jh-card>
224
- ```
225
-
226
- ## 设计规范
227
-
228
- 本组件完全参考 Ant Design ProCard 的设计规范:
229
-
230
- 1. **布局灵活**: 支持栅格、分栏、嵌套等多种布局方式
231
- 2. **样式统一**: 遵循 Ant Design 设计语言
232
- 3. **功能完整**: 包含标题、操作项、折叠、加载等常用功能
233
- 4. **易于使用**: API 设计简洁,上手容易
234
-
235
- ## 注意事项
236
-
237
- 1. 使用分栏布局(split)时,子卡片的圆角会被设置为 0
238
- 2. 幽灵模式(ghost)会取消背景色和 padding,适合用于页面布局
239
- 3. colSpan 支持多种格式:数字(0-24)、像素值(如 "200px")、百分比(如 "30%")
240
- 4. gutter 可以是数字或数组,数组格式为 [水平间距, 垂直间距]
241
- 5. 嵌套使用时,组件会自动切换为 flex 弹性盒布局
242
-
243
- ## 相关链接
244
-
245
- - [Ant Design ProCard](https://procomponents.ant.design/components/card/)
246
- - [Vuetify Card](https://vuetifyjs.com/en/components/cards/)