iov-pro-components 0.0.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 (133) hide show
  1. package/.eslintignore +5 -0
  2. package/.eslintrc.js +192 -0
  3. package/.gitignore +3 -0
  4. package/README.md +4 -0
  5. package/babel.config.js +5 -0
  6. package/docs/.vuepress/config.js +169 -0
  7. package/docs/.vuepress/styles/index.styl +62 -0
  8. package/docs/.vuepress/styles/palette.styl +20 -0
  9. package/docs/.vuepress/theme/enhanceApp.js +100 -0
  10. package/docs/.vuepress/theme/index.js +3 -0
  11. package/docs/README.md +13 -0
  12. package/docs/components/description.md +519 -0
  13. package/docs/components/dialog-select.md +91 -0
  14. package/docs/components/display.md +36 -0
  15. package/docs/components/enums.md +33 -0
  16. package/docs/components/icon.md +406 -0
  17. package/docs/components/link-group.md +39 -0
  18. package/docs/components/page-detail.md +48 -0
  19. package/docs/components/page-module.md +51 -0
  20. package/docs/components/pro-form.md +958 -0
  21. package/docs/components/pro-table.md +683 -0
  22. package/docs/components/request.md +44 -0
  23. package/docs/components/search-table.md +963 -0
  24. package/docs/components/space.md +35 -0
  25. package/docs/components/sub-title.md +24 -0
  26. package/docs/components/submit-module.md +24 -0
  27. package/docs/template/add.md +124 -0
  28. package/docs/template/confirm.md +28 -0
  29. package/docs/template/detail.md +240 -0
  30. package/docs/template/dialog.md +339 -0
  31. package/docs/template/list.md +464 -0
  32. package/docs/template/tabs-mini.md +32 -0
  33. package/docs/template/tabs.md +32 -0
  34. package/jsconfig.json +19 -0
  35. package/lib/iov-pro-components.css +1 -0
  36. package/lib/iov-pro-components.min.js +7 -0
  37. package/lib/postcss.config.js +8 -0
  38. package/package.json +75 -0
  39. package/patches/vue-server-renderer+2.7.16.patch +13 -0
  40. package/rollup.config.mjs +79 -0
  41. package/src/App.vue +103 -0
  42. package/src/main.js +33 -0
  43. package/src/packages/column-tooltip/index.js +7 -0
  44. package/src/packages/column-tooltip/src/main.vue +127 -0
  45. package/src/packages/description/index.js +7 -0
  46. package/src/packages/description/src/main.vue +375 -0
  47. package/src/packages/description/src/text.vue +103 -0
  48. package/src/packages/dialog-select/index.js +7 -0
  49. package/src/packages/dialog-select/src/main.vue +308 -0
  50. package/src/packages/display/index.js +7 -0
  51. package/src/packages/display/src/main.vue +44 -0
  52. package/src/packages/enums/index.js +7 -0
  53. package/src/packages/enums/src/main.vue +23 -0
  54. package/src/packages/export/index.js +7 -0
  55. package/src/packages/export/src/main.vue +316 -0
  56. package/src/packages/fixed-button-group/index.js +7 -0
  57. package/src/packages/fixed-button-group/src/main.vue +104 -0
  58. package/src/packages/form/index.js +7 -0
  59. package/src/packages/form/src/collapse.vue +149 -0
  60. package/src/packages/form/src/main.vue +1190 -0
  61. package/src/packages/form-collapse/index.js +7 -0
  62. package/src/packages/index.js +86 -0
  63. package/src/packages/link-group/index.js +7 -0
  64. package/src/packages/link-group/src/main.vue +52 -0
  65. package/src/packages/page-detail/index.js +7 -0
  66. package/src/packages/page-detail/src/main.vue +123 -0
  67. package/src/packages/page-module/index.js +7 -0
  68. package/src/packages/page-module/src/main.vue +56 -0
  69. package/src/packages/preview/index.js +7 -0
  70. package/src/packages/preview/src/eval-image-viewer.js +50 -0
  71. package/src/packages/preview/src/image-viewer.vue +366 -0
  72. package/src/packages/preview/src/main.vue +97 -0
  73. package/src/packages/request/index.js +7 -0
  74. package/src/packages/request/src/main.vue +125 -0
  75. package/src/packages/search-table/index.js +7 -0
  76. package/src/packages/search-table/src/inner-tabs.vue +237 -0
  77. package/src/packages/search-table/src/main.vue +472 -0
  78. package/src/packages/search-table/src/outer-tabs.vue +45 -0
  79. package/src/packages/search-table-inner-tabs/index.js +7 -0
  80. package/src/packages/search-table-outer-tabs/index.js +7 -0
  81. package/src/packages/space/index.js +7 -0
  82. package/src/packages/space/src/main.vue +74 -0
  83. package/src/packages/sub-title/index.js +7 -0
  84. package/src/packages/sub-title/src/main.vue +70 -0
  85. package/src/packages/submit-module/index.js +7 -0
  86. package/src/packages/submit-module/src/main.vue +67 -0
  87. package/src/packages/table/index.js +7 -0
  88. package/src/packages/table/src/filter.vue +89 -0
  89. package/src/packages/table/src/main.vue +668 -0
  90. package/src/packages/table/src/search.vue +90 -0
  91. package/src/packages/table/src/sort.vue +118 -0
  92. package/src/packages/theme/index.scss +15 -0
  93. package/src/packages/theme/src/column-tooltip.scss +23 -0
  94. package/src/packages/theme/src/common/color.scss +134 -0
  95. package/src/packages/theme/src/description.scss +56 -0
  96. package/src/packages/theme/src/dialog-select.scss +32 -0
  97. package/src/packages/theme/src/fixed-button-group.scss +25 -0
  98. package/src/packages/theme/src/form.scss +11 -0
  99. package/src/packages/theme/src/link-group.scss +43 -0
  100. package/src/packages/theme/src/page-detail.scss +61 -0
  101. package/src/packages/theme/src/page-module.scss +46 -0
  102. package/src/packages/theme/src/preview.scss +67 -0
  103. package/src/packages/theme/src/search-table.scss +185 -0
  104. package/src/packages/theme/src/space.scss +12 -0
  105. package/src/packages/theme/src/sub-title.scss +47 -0
  106. package/src/packages/theme/src/submit-module.scss +13 -0
  107. package/src/packages/theme/src/table.scss +129 -0
  108. package/src/packages/theme/src/toolbar.scss +109 -0
  109. package/src/packages/toolbar/index.js +7 -0
  110. package/src/packages/toolbar/src/main.vue +126 -0
  111. package/src/packages/toolbar/src/setting.vue +217 -0
  112. package/src/packages/toolbar/src/style.vue +68 -0
  113. package/src/packages/toolbar/src/zoom.vue +65 -0
  114. package/src/router.js +83 -0
  115. package/src/utils/config-center.js +218 -0
  116. package/src/utils/function-eval.js +84 -0
  117. package/src/utils/index.js +104 -0
  118. package/src/views/column-tooltip.vue +37 -0
  119. package/src/views/components/OtherSelect.vue +18 -0
  120. package/src/views/description.vue +60 -0
  121. package/src/views/detail.vue +146 -0
  122. package/src/views/directive/number.js +82 -0
  123. package/src/views/enums.vue +22 -0
  124. package/src/views/export.vue +9 -0
  125. package/src/views/form-collapse.vue +185 -0
  126. package/src/views/form.vue +402 -0
  127. package/src/views/link-group.vue +16 -0
  128. package/src/views/preview.vue +33 -0
  129. package/src/views/request.vue +56 -0
  130. package/src/views/search-table.vue +297 -0
  131. package/src/views/table.vue +145 -0
  132. package/src/views/toolbar.vue +30 -0
  133. package/vue.config.js +22 -0
@@ -0,0 +1,519 @@
1
+ # 描述列表
2
+ 以列表形式呈现多个字段内容。当数据缺失时,统一展示兜底文案。
3
+
4
+ ## 基础用法
5
+
6
+ ::: demo
7
+ ```html
8
+ <template>
9
+ <iov-pro-description
10
+ :items="items"
11
+ :data-source="dataSource"
12
+ />
13
+ </template>
14
+
15
+ <script>
16
+ export default {
17
+ data() {
18
+ return {
19
+ items: [
20
+ { label: '姓名', prop: 'name' },
21
+ { label: '年龄', prop: 'age' }
22
+ ],
23
+ dataSource: { name: '张无忌', age: 18 }
24
+ }
25
+ }
26
+ }
27
+ </script>
28
+ ```
29
+ :::
30
+
31
+ ## 枚举
32
+
33
+ ::: demo
34
+ ```html
35
+ <template>
36
+ <iov-pro-description
37
+ :items="items"
38
+ :data-source="dataSource"
39
+ />
40
+ </template>
41
+
42
+ <script>
43
+ export default {
44
+ data() {
45
+ const DICT = {
46
+ SEX: [
47
+ { label: '男', value: 1 },
48
+ { label: '女', value: 2 }
49
+ ]
50
+ }
51
+
52
+ return {
53
+ items: [
54
+ { label: '姓名', prop: 'name' },
55
+ { label: '年龄', prop: 'age' },
56
+ { label: '性别', prop: 'sex', type: 'enum', enums: DICT.SEX }
57
+ ],
58
+ dataSource: { name: '张无忌', age: 18, sex: 1 }
59
+ }
60
+ }
61
+ }
62
+ </script>
63
+ ```
64
+ :::
65
+
66
+ ## 标签
67
+
68
+ ::: demo
69
+ ```html
70
+ <template>
71
+ <iov-pro-description
72
+ :items="items"
73
+ :data-source="dataSource"
74
+ />
75
+ </template>
76
+
77
+ <script>
78
+ export default {
79
+ data() {
80
+ const DICT = {
81
+ SEX: [
82
+ { label: '男', value: 1 },
83
+ { label: '女', value: 2 }
84
+ ],
85
+ USER_TAG: [
86
+ { label: '帅', value: 1 },
87
+ { label: '美', value: 2 },
88
+ { label: '穷', value: 3 }
89
+ ]
90
+ }
91
+
92
+ return {
93
+ items: [
94
+ { label: '姓名', prop: 'name' },
95
+ { label: '年龄', prop: 'age' },
96
+ { label: '性别', prop: 'sex', type: 'enum', enums: DICT.SEX },
97
+ { label: '画像标签', prop: 'tags', type: 'tag', enums: DICT.USER_TAG }
98
+ ],
99
+ dataSource: {
100
+ name: '张无忌',
101
+ age: 18,
102
+ sex: 1,
103
+ tags: [1, 2]
104
+ }
105
+ }
106
+ }
107
+ }
108
+ </script>
109
+ ```
110
+ :::
111
+
112
+ ## 富文本
113
+
114
+ ::: demo
115
+ ```html
116
+ <template>
117
+ <iov-pro-description
118
+ :items="items"
119
+ :data-source="dataSource"
120
+ />
121
+ </template>
122
+
123
+ <script>
124
+ export default {
125
+ data() {
126
+ const DICT = {
127
+ SEX: [
128
+ { label: '男', value: 1 },
129
+ { label: '女', value: 2 }
130
+ ],
131
+ USER_TAG: [
132
+ { label: '帅', value: 1 },
133
+ { label: '美', value: 2 },
134
+ { label: '穷', value: 3 }
135
+ ]
136
+ }
137
+
138
+ return {
139
+ items: [
140
+ { label: '姓名', prop: 'name' },
141
+ { label: '年龄', prop: 'age' },
142
+ { label: '性别', prop: 'sex', type: 'enum', enums: DICT.SEX },
143
+ { label: '画像标签', prop: 'tags', type: 'tag', enums: DICT.USER_TAG },
144
+ { label: '自我描述', prop: 'desc', type: 'rich-text' }
145
+ ],
146
+ dataSource: {
147
+ name: '张无忌',
148
+ age: 18,
149
+ sex: 1,
150
+ tags: [1, 2],
151
+ desc: '<p>我叫张无忌,来自武当山。曾经参与过6大门派围攻光明顶。对于处理冲突有丰富经验,希望老师们给我一个机会和大家一同工作。</p>'
152
+ }
153
+ }
154
+ }
155
+ }
156
+ </script>
157
+ ```
158
+ :::
159
+
160
+ ## 超链接
161
+
162
+ ::: demo
163
+ ```html
164
+ <template>
165
+ <iov-pro-description
166
+ :items="items"
167
+ :data-source="dataSource"
168
+ />
169
+ </template>
170
+
171
+ <script>
172
+ export default {
173
+ data() {
174
+ const DICT = {
175
+ SEX: [
176
+ { label: '男', value: 1 },
177
+ { label: '女', value: 2 }
178
+ ],
179
+ USER_TAG: [
180
+ { label: '帅', value: 1 },
181
+ { label: '美', value: 2 },
182
+ { label: '穷', value: 3 }
183
+ ]
184
+ }
185
+
186
+ return {
187
+ items: [
188
+ { label: '姓名', prop: 'name' },
189
+ { label: '年龄', prop: 'age' },
190
+ { label: '性别', prop: 'sex', type: 'enum', enums: DICT.SEX },
191
+ { label: '画像标签', prop: 'tags', type: 'tag', enums: DICT.USER_TAG },
192
+ { label: '自我描述', prop: 'desc', type: 'rich-text' },
193
+ { label: '简历', prop: 'link', type: 'link', onClick: this.onDownloadFile }
194
+ ],
195
+ dataSource: {
196
+ name: '张无忌',
197
+ age: 18,
198
+ sex: 1,
199
+ tags: [1, 2],
200
+ link: [{ icon: 'https://img.alicdn.com/imgextra/i3/O1CN01WVKxVr22NW6oPUd9C_!!6000000007108-2-tps-96-96.png', name: '张无忌简历.doc', uuid: 'uid918371270182' }],
201
+ desc: '<p>大家好:</p><p>&nbsp;&nbsp;&nbsp;&nbsp;我叫张无忌,来自武当山。曾经参与过6大门派围攻光明顶。对于处理冲突有丰富经验,希望老师们给我一个机会和大家一同工作。<br/></p>'
202
+ }
203
+ }
204
+ },
205
+
206
+ methods: {
207
+ /**
208
+ * 下载文件
209
+ */
210
+ onDownloadFile() {
211
+ window.location.href = 'https://www.baidu.com'
212
+ }
213
+ }
214
+ }
215
+ </script>
216
+ ```
217
+ :::
218
+
219
+ ## 文件
220
+
221
+ 数据中需要设置 `isPrivate` 字段,如果 `isPrivate` 为 `true`,则此文件是私有桶文件,需要通过 `uuid` 获取可访问文件链接。如果 `isPrivate` 为 `false`,则此文件是公有桶文件,可直接通过url访问文件链接。
222
+
223
+ ::: demo
224
+ ```html
225
+ <template>
226
+ <iov-pro-preview>
227
+ <iov-pro-description
228
+ :items="items"
229
+ :data-source="dataSource"
230
+ />
231
+ </iov-pro-preview>
232
+ </template>
233
+
234
+ <script>
235
+ export default {
236
+ data() {
237
+ const DICT = {
238
+ SEX: [
239
+ { label: '男', value: 1 },
240
+ { label: '女', value: 2 }
241
+ ],
242
+ USER_TAG: [
243
+ { label: '帅', value: 1 },
244
+ { label: '美', value: 2 },
245
+ { label: '穷', value: 3 }
246
+ ]
247
+ }
248
+
249
+ return {
250
+ items: [
251
+ { label: '姓名', prop: 'name' },
252
+ { label: '年龄', prop: 'age' },
253
+ { label: '性别', prop: 'sex', type: 'enum', enums: DICT.SEX },
254
+ { label: '画像标签', prop: 'tags', type: 'tag', enums: DICT.USER_TAG },
255
+ { label: '自我描述', prop: 'desc', type: 'rich-text' },
256
+ { label: '简历', prop: 'file', type: 'file' }
257
+ ],
258
+ dataSource: {
259
+ name: '张无忌',
260
+ age: 18,
261
+ sex: 1,
262
+ tags: [1, 2],
263
+ file: [
264
+ { name: '张无忌简历.png', uuid: 'uid918371270182', isPrivate: true },
265
+ { name: '周芷若简历.png', uuid: 'uid918371270182', isPrivate: false, url: 'https://prod-common-public.obs-helf.cucloud.cn/mall/goods/893f1000000000114669556' }
266
+ ],
267
+ desc: '<p>大家好:</p><p>&nbsp;&nbsp;&nbsp;&nbsp;我叫张无忌,来自武当山。曾经参与过6大门派围攻光明顶。对于处理冲突有丰富经验,希望老师们给我一个机会和大家一同工作。<br/></p>'
268
+ }
269
+ }
270
+ },
271
+
272
+ methods: {
273
+ /**
274
+ * 下载文件
275
+ */
276
+ onDownloadFile() {
277
+ window.location.href = 'https://www.baidu.com'
278
+ }
279
+ }
280
+ }
281
+ </script>
282
+ ```
283
+ :::
284
+
285
+ 如果要使用 `iov-pro-preview` 组件,则需要在初始化 `Iov Pro Components` 时配置私有桶接口以及私有桶缓存时长(不配置则无)。配置如下:
286
+ ```js
287
+ Vue.use(IovProComponents, {
288
+ // 说明此项配置是针对preview组件生效
289
+ preview: {
290
+ // 获取私有桶文件链接函数
291
+ // 入参:uuid - 文件id
292
+ // 返回值:文件url
293
+ request: Function,
294
+ // 私有桶缓存的时长
295
+ cacheTime: 0
296
+ }
297
+ })
298
+ ```
299
+
300
+ ## 插槽
301
+ 配置中需要有`value`字段或者`dataSource`对应`prop`需要有值。否则将展示兜底文案。
302
+ ::: demo
303
+ ```html
304
+ <template>
305
+ <iov-pro-description
306
+ :items="items"
307
+ :data-source="dataSource"
308
+ >
309
+ <template #phone>{{ dataSource.phone }}(请勿泄露*)</template>
310
+ </iov-pro-description>
311
+ </template>
312
+
313
+ <script>
314
+ export default {
315
+ data() {
316
+ const DICT = {
317
+ SEX: [
318
+ { label: '男', value: 1 },
319
+ { label: '女', value: 2 }
320
+ ],
321
+ USER_TAG: [
322
+ { label: '帅', value: 1 },
323
+ { label: '美', value: 2 },
324
+ { label: '穷', value: 3 }
325
+ ]
326
+ }
327
+
328
+ return {
329
+ items: [
330
+ { label: '姓名', prop: 'name' },
331
+ { label: '年龄', prop: 'age' },
332
+ { label: '性别', prop: 'sex', type: 'enum', enums: DICT.SEX },
333
+ { label: '年龄', prop: 'address' },
334
+ { label: '电话', prop: 'phone', type: 'slot' },
335
+ { label: '画像标签', prop: 'tags', type: 'tag', enums: DICT.USER_TAG },
336
+ { label: '自我描述', prop: 'desc', type: 'rich-text' },
337
+ { label: '简历', prop: 'link', type: 'link', onClick: this.onDownloadFile }
338
+ ],
339
+ dataSource: {
340
+ name: '张无忌',
341
+ age: 18,
342
+ sex: 1,
343
+ address: '南京市雨花台区',
344
+ phone: '13800000000',
345
+ tags: [1, 2],
346
+ link: [{ icon: 'https://img.alicdn.com/imgextra/i3/O1CN01WVKxVr22NW6oPUd9C_!!6000000007108-2-tps-96-96.png', name: '张无忌简历.doc', uuid: 'uid918371270182' }],
347
+ desc: '<p>大家好:</p><p>&nbsp;&nbsp;&nbsp;&nbsp;我叫张无忌,来自武当山。曾经参与过6大门派围攻光明顶。对于处理冲突有丰富经验,希望老师们给我一个机会和大家一同工作。<br/></p>'
348
+ }
349
+ }
350
+ },
351
+
352
+ methods: {
353
+ /**
354
+ * 下载文件
355
+ */
356
+ onDownloadFile() {
357
+ window.location.href = 'https://www.baidu.com'
358
+ }
359
+ }
360
+ }
361
+ </script>
362
+ ```
363
+ :::
364
+
365
+
366
+ ## 设置label宽度
367
+
368
+ ::: demo
369
+ ```html
370
+ <template>
371
+ <iov-pro-description
372
+ :items="items"
373
+ :data-source="dataSource"
374
+ label-width="200"
375
+ >
376
+ <template #phone>{{ dataSource.phone }}(请勿泄露*)</template>
377
+ </iov-pro-description>
378
+ </template>
379
+
380
+ <script>
381
+ export default {
382
+ data() {
383
+ const DICT = {
384
+ SEX: [
385
+ { label: '男', value: 1 },
386
+ { label: '女', value: 2 }
387
+ ],
388
+ USER_TAG: [
389
+ { label: '帅', value: 1 },
390
+ { label: '美', value: 2 },
391
+ { label: '穷', value: 3 }
392
+ ]
393
+ }
394
+
395
+ return {
396
+ items: [
397
+ { label: '姓名', prop: 'name' },
398
+ { label: '年龄', prop: 'age' },
399
+ { label: '性别', prop: 'sex', type: 'enum', enums: DICT.SEX },
400
+ { label: '年龄', prop: 'address' },
401
+ { label: '电话', prop: 'phone', type: 'slot' },
402
+ { label: '画像标签', prop: 'tags', type: 'tag', enums: DICT.USER_TAG },
403
+ { label: '自我描述', prop: 'desc', type: 'rich-text' },
404
+ { label: '简历', prop: 'link', type: 'link', onClick: this.onDownloadFile }
405
+ ],
406
+ dataSource: {
407
+ name: '张无忌',
408
+ age: 18,
409
+ sex: 1,
410
+ address: '南京市雨花台区',
411
+ phone: '13800000000',
412
+ tags: [1, 2],
413
+ link: [{ icon: 'https://img.alicdn.com/imgextra/i3/O1CN01WVKxVr22NW6oPUd9C_!!6000000007108-2-tps-96-96.png', name: '张无忌简历.doc', uuid: 'uid918371270182' }],
414
+ desc: '<p>大家好:</p><p>&nbsp;&nbsp;&nbsp;&nbsp;我叫张无忌,来自武当山。曾经参与过6大门派围攻光明顶。对于处理冲突有丰富经验,希望老师们给我一个机会和大家一同工作。<br/></p>'
415
+ }
416
+ }
417
+ },
418
+
419
+ methods: {
420
+ /**
421
+ * 下载文件
422
+ */
423
+ onDownloadFile() {
424
+ window.location.href = 'https://www.baidu.com'
425
+ }
426
+ }
427
+ }
428
+ </script>
429
+ ```
430
+ :::
431
+
432
+ ## 展示固定值
433
+ ::: demo
434
+ ```html
435
+ <template>
436
+ <iov-pro-description
437
+ :items="items"
438
+ :data-source="dataSource"
439
+ label-width="200"
440
+ >
441
+ <template #phone>{{ dataSource.phone }}(请勿泄露*)</template>
442
+ </iov-pro-description>
443
+ </template>
444
+
445
+ <script>
446
+ export default {
447
+ data() {
448
+ const DICT = {
449
+ SEX: [
450
+ { label: '男', value: 1 },
451
+ { label: '女', value: 2 }
452
+ ],
453
+ USER_TAG: [
454
+ { label: '帅', value: 1 },
455
+ { label: '美', value: 2 },
456
+ { label: '穷', value: 3 }
457
+ ]
458
+ }
459
+
460
+ return {
461
+ items: [
462
+ { label: '姓名', prop: 'name' },
463
+ { label: '年龄', prop: 'age' },
464
+ { label: '性别', prop: 'sex', type: 'enum', enums: DICT.SEX },
465
+ { label: '年龄', prop: 'address' },
466
+ { label: '电话', prop: 'phone', type: 'slot' },
467
+ { label: '画像标签', prop: 'tags', type: 'tag', enums: DICT.USER_TAG },
468
+ { label: '自我描述', prop: 'desc', type: 'rich-text' },
469
+ { label: '简历', prop: 'link', type: 'link', onClick: this.onDownloadFile },
470
+ { label: '备注', value: '金庸推荐' }
471
+ ],
472
+ dataSource: {
473
+ name: '张无忌',
474
+ age: 18,
475
+ sex: 1,
476
+ address: '南京市雨花台区',
477
+ phone: '13800000000',
478
+ tags: [1, 2],
479
+ link: [{ icon: 'https://img.alicdn.com/imgextra/i3/O1CN01WVKxVr22NW6oPUd9C_!!6000000007108-2-tps-96-96.png', name: '张无忌简历.doc', uuid: 'uid918371270182' }],
480
+ desc: '<p>大家好:</p><p>&nbsp;&nbsp;&nbsp;&nbsp;我叫张无忌,来自武当山。曾经参与过6大门派围攻光明顶。对于处理冲突有丰富经验,希望老师们给我一个机会和大家一同工作。<br/></p>'
481
+ }
482
+ }
483
+ },
484
+
485
+ methods: {
486
+ /**
487
+ * 下载文件
488
+ */
489
+ onDownloadFile() {
490
+ window.location.href = 'https://www.baidu.com'
491
+ }
492
+ }
493
+ }
494
+ </script>
495
+ ```
496
+ :::
497
+
498
+ ## Attributes
499
+
500
+ | 参数 | 说明 | 类型 | 可选值 | 默认值 |
501
+ | ------- | ------- | ------- | ------- | ------- |
502
+ | dataSource | 数据源 | Array | - | - |
503
+ | items | 描述项配置,详见下方Items配置 | Array | - | - |
504
+ | defaultValue | 兜底默认值 | String | - | - |
505
+ | labelWidth | 描述项文案宽度 | String | - | - |
506
+
507
+ ## Items Attributes
508
+
509
+ | 参数 | 说明 | 类型 | 可选值 | 默认值 |
510
+ | ------- | ------- | ------- | ------- | ------- |
511
+ | type | 描述项支持的类型 | String | text/tag/enum/rich-text/link/file/slot | text |
512
+ | label | 描述项文案 | String | - | - |
513
+ | value | 描述项值 | String | - | - |
514
+ | prop | 描述项从dataSource取值字段名 | String | - | - |
515
+ | span | 描述项展示栅格的数值 | Number | 1-24 | 12 |
516
+ | slotName | 当type设置为slot时,此字段将会作为插槽名称,如果未设置,则默认为prop值 | String | - | - |
517
+ | showOverflowTooltip | 文字提示超出限制显示模式 | Boolean | - | - |
518
+ | labelWidth | 描述项文案宽度 | Number/String | - | - |
519
+ | onClick | 当type为link/file时,点击链接将会触发此方法 | Function(value) | - | - |
@@ -0,0 +1,91 @@
1
+ # 弹窗搜索 DialogSelect
2
+
3
+ ## 基础使用
4
+ ::: demo
5
+ ```html
6
+ <template>
7
+ <div class="app-container">
8
+ <el-button icon="iov-icon-plus" size="small" @click="onClick">添加订购商品</el-button>
9
+ <br /><br />
10
+ <iov-pro-table :columns="SELECTED_GOODS_TABLE_COLUMNS" :data-source="form.goodsSkuList" :config="{table: { border: true }, pagination: getPaginationConfig(form.goodsSkuList)}">
11
+ <template #operation="scope">
12
+ <el-link type="primary" @click="onRemove(scope.$index)">移除</el-link>
13
+ </template>
14
+ </iov-pro-table>
15
+ <iov-pro-dialog-select
16
+ v-model="form.goodsSkuList"
17
+ title="添加订购商品"
18
+ row-key="skuNo"
19
+ placeholder="搜索商品名称或商品编码"
20
+ :data="goodsList"
21
+ :visible.sync="visible"
22
+ :filter-field="['skuNo', 'skuName']"
23
+ :unselect-columns="UNSELECT_GOODS_TABLE_COLUMNS"
24
+ :selected-columns="SELECTED_GOODS_TABLE_COLUMNS"
25
+ />
26
+ </div>
27
+ </template>
28
+ <script>
29
+ // 未选择商品表格列
30
+ const UNSELECT_GOODS_TABLE_COLUMNS = [
31
+ { type: 'selection', width: '60px', selectable: () => true, reserveSelection: true },
32
+ { label: '商品编码', prop: 'skuNo', minWidth: '150px', showOverflowTooltip: true },
33
+ { label: '商品名称', prop: 'skuName', minWidth: '150px', showOverflowTooltip: true }
34
+ ]
35
+ // 已选择商品表格列
36
+ const SELECTED_GOODS_TABLE_COLUMNS = [
37
+ { label: '商品编码', prop: 'skuNo', minWidth: '150px', showOverflowTooltip: true },
38
+ { label: '商品名称', prop: 'skuName', minWidth: '150px', showOverflowTooltip: true },
39
+ { label: '操作', prop: 'operation', minWidth: '80px', showOverflowTooltip: true, type: 'slot', slotName: 'operation', align: 'right' }
40
+ ]
41
+ export default {
42
+ data() {
43
+ return {
44
+ form: {
45
+ goodsSkuList: []
46
+ },
47
+ goodsList: [
48
+ { "skuName": "1119项目人民币2", "skuNo": "LLDZ5356CV59008" },
49
+ { "skuName": "1119项目人民币2", "skuNo": "LLDZ5356MT1F007" },
50
+ { "skuName": "1119项目人民币2", "skuNo": "LLDZ5356WT8Y006" },
51
+ { "skuName": "1119项目人民币2", "skuNo": "LLDZ5356W485005" }
52
+ ],
53
+ visible: false,
54
+ UNSELECT_GOODS_TABLE_COLUMNS,
55
+ SELECTED_GOODS_TABLE_COLUMNS
56
+ }
57
+ },
58
+ methods: {
59
+ onClick() {
60
+ this.visible = !this.visible
61
+ },
62
+
63
+ onRemove(index) {
64
+ this.form.goodsSkuList.splice(index, 1)
65
+ },
66
+
67
+ getPaginationConfig(list = []) {
68
+ return list?.length <= 5
69
+ ? false
70
+ : { pageSize: 5, pageSizes: [5, 10, 20, 50] }
71
+ },
72
+ }
73
+ }
74
+ </script>
75
+ ```
76
+ :::
77
+
78
+ ## Attributes
79
+
80
+ | 参数 | 说明 | 类型 | 可选值 | 默认值 |
81
+ | ------- | ------- | ------- | ------- | ------- |
82
+ | v-model | 绑定值 | [] | - | - |
83
+ | title | 弹窗标题 | String | - | - |
84
+ | row-key | 数据唯一标识 | String/Number | - | - |
85
+ | placeholder | 搜索框占位符 | String | - | - |
86
+ | data | 全部数据列表 | String | - | - |
87
+ | visible | 弹窗是否可见 | Boolean | - | false |
88
+ | filter-field | 搜索框过滤字段 | Array | - | - |
89
+ | unselect-columns | 全部数据表格scheme | Array | - | - |
90
+ | selected-columns | 已选数据表格scheme | Array | - | - |
91
+
@@ -0,0 +1,36 @@
1
+ # 显示组件
2
+ 组件初始化后,当显示状态为隐藏时,不渲染真实dom。当显示状态变更为显示后,才真正渲染dom。后面再切换显示状态,仅隐藏dom节点,并不移除dom。
3
+
4
+ ## 基础用法
5
+
6
+ ::: demo
7
+ ```vue
8
+ <template>
9
+ <el-tabs v-model="activeName">
10
+ <el-tab-pane label="页签1" name="tab1">
11
+ <iov-pro-display :visible="activeName === 'tab1'">页签1内容</iov-pro-display>
12
+ </el-tab-pane>
13
+ <el-tab-pane label="页签2" name="tab2">
14
+ <iov-pro-display :visible="activeName === 'tab2'">页签2内容</iov-pro-display>
15
+ </el-tab-pane>
16
+ </el-tabs>
17
+ </template>
18
+
19
+ <script>
20
+ export default {
21
+ data() {
22
+ return {
23
+ activeName: 'tab1'
24
+ }
25
+ }
26
+ }
27
+ </script>
28
+ ```
29
+ :::
30
+
31
+
32
+ ## Attributes
33
+
34
+ | 参数 | 说明 | 类型 | 可选值 | 默认值 |
35
+ | ------- | ------- | ------- | ------- | ------- |
36
+ | visible | 是否显示 | Boolean | - | false |
@@ -0,0 +1,33 @@
1
+ # 枚举 Enums
2
+
3
+ ## 基础用法
4
+ ::: demo
5
+ ```html
6
+ <template>
7
+ <iov-pro-enums
8
+ :value="1"
9
+ :enums="enums"
10
+ />
11
+ </template>
12
+
13
+ <script>
14
+ export default {
15
+ data() {
16
+ return {
17
+ enums: [
18
+ { label: '男', value: 1 },
19
+ { label: '女', value: 2 }
20
+ ]
21
+ }
22
+ }
23
+ }
24
+ </script>
25
+ ```
26
+ :::
27
+
28
+ ## Attributes
29
+
30
+ | 参数 | 说明 | 类型 | 可选值 | 默认值 |
31
+ | ------- | ------- | ------- | ------- | ------- |
32
+ | value | 数据 | Number/String | - | - |
33
+ | enums | 枚举,仅支持 `Label` + `Value` 格式 | Array | - | - |