fast-crud-ui3 1.5.16 → 1.5.18-beta

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/lib/assets/fonts/iconfont.d.ts +0 -0
  2. package/lib/components/checkbox-group/index.d.ts +2 -0
  3. package/lib/components/checkbox-group/src/fast-checkbox-group.d.ts +72 -0
  4. package/lib/components/content-dialog/index.d.ts +2 -0
  5. package/lib/components/content-dialog/src/fast-cell-content.d.ts +83 -0
  6. package/lib/components/json-viewer/index.d.ts +2 -0
  7. package/lib/components/json-viewer/src/fast-json-viewer.d.ts +48 -0
  8. package/lib/components/mapping.d.ts +5 -0
  9. package/lib/components/object-picker/index.d.ts +2 -0
  10. package/lib/components/object-picker/src/fast-object-picker.d.ts +132 -0
  11. package/lib/components/select/index.d.ts +2 -0
  12. package/lib/components/select/src/fast-select.d.ts +83 -0
  13. package/lib/components/table/index.d.ts +2 -0
  14. package/lib/components/table/src/RowConfirm.d.ts +39 -0
  15. package/lib/components/table/src/dynamic-filter-form.d.ts +118 -0
  16. package/lib/components/table/src/dynamic-filter-list.d.ts +57 -0
  17. package/lib/components/table/src/easy-filter.d.ts +118 -0
  18. package/lib/components/table/src/export-confirm.d.ts +12 -0
  19. package/lib/components/table/src/quick-filter-form.d.ts +42 -0
  20. package/lib/components/table/src/row-form.d.ts +33 -0
  21. package/lib/components/table/src/stored-filter-manager.d.ts +55 -0
  22. package/lib/components/table/src/stored-filter.d.ts +37 -0
  23. package/lib/components/table/src/table-head-cell.d.ts +9 -0
  24. package/lib/components/table/src/table.d.ts +507 -0
  25. package/lib/components/table/src/util.d.ts +77 -0
  26. package/lib/components/table-column/config.d.ts +5 -0
  27. package/lib/components/table-column/index.d.ts +2 -0
  28. package/lib/components/table-column/src/table-column.d.ts +256 -0
  29. package/lib/components/table-column-date-picker/config.d.ts +5 -0
  30. package/lib/components/table-column-date-picker/index.d.ts +2 -0
  31. package/lib/components/table-column-date-picker/src/table-column-date-picker.d.ts +173 -0
  32. package/lib/components/table-column-file/config.d.ts +5 -0
  33. package/lib/components/table-column-file/index.d.ts +2 -0
  34. package/lib/components/table-column-file/src/table-column-file.d.ts +285 -0
  35. package/lib/components/table-column-img/config.d.ts +5 -0
  36. package/lib/components/table-column-img/index.d.ts +2 -0
  37. package/lib/components/table-column-img/src/table-column-img.d.ts +285 -0
  38. package/lib/components/table-column-input/config.d.ts +5 -0
  39. package/lib/components/table-column-input/index.d.ts +2 -0
  40. package/lib/components/table-column-input/src/table-column-input.d.ts +173 -0
  41. package/lib/components/table-column-number/config.d.ts +5 -0
  42. package/lib/components/table-column-number/index.d.ts +2 -0
  43. package/lib/components/table-column-number/src/table-column-number.d.ts +173 -0
  44. package/lib/components/table-column-object/config.d.ts +5 -0
  45. package/lib/components/table-column-object/index.d.ts +2 -0
  46. package/lib/components/table-column-object/src/table-column-object.d.ts +315 -0
  47. package/lib/components/table-column-select/config.d.ts +5 -0
  48. package/lib/components/table-column-select/index.d.ts +2 -0
  49. package/lib/components/table-column-select/src/table-column-select.d.ts +276 -0
  50. package/lib/components/table-column-switch/config.d.ts +5 -0
  51. package/lib/components/table-column-switch/index.d.ts +2 -0
  52. package/lib/components/table-column-switch/src/table-column-switch.d.ts +175 -0
  53. package/lib/components/table-column-textarea/config.d.ts +5 -0
  54. package/lib/components/table-column-textarea/index.d.ts +2 -0
  55. package/lib/components/table-column-textarea/src/table-column-textarea.d.ts +173 -0
  56. package/lib/components/table-column-time-picker/config.d.ts +5 -0
  57. package/lib/components/table-column-time-picker/index.d.ts +2 -0
  58. package/lib/components/table-column-time-picker/src/table-column-time-picker.d.ts +173 -0
  59. package/lib/components/upload/index.d.ts +2 -0
  60. package/lib/components/upload/src/fast-upload.d.ts +120 -0
  61. package/lib/fast-crud-ui3.cjs.js +44 -17
  62. package/lib/fast-crud-ui3.es.js +9991 -5946
  63. package/lib/fast-crud-ui3.umd.js +44 -17
  64. package/lib/global.d.ts +42 -0
  65. package/lib/index.d.ts +56 -0
  66. package/lib/mixins/table-column.d.ts +104 -0
  67. package/lib/mixins/upload.d.ts +15 -0
  68. package/lib/model/cond.d.ts +48 -0
  69. package/lib/model/editComponentConfig.d.ts +25 -0
  70. package/lib/model/fastTableOption.d.ts +513 -0
  71. package/lib/model/filterComponentConfig.d.ts +55 -0
  72. package/lib/model/opt.d.ts +20 -0
  73. package/lib/model/order.d.ts +28 -0
  74. package/lib/model/pageQuery.d.ts +43 -0
  75. package/lib/model/query.d.ts +101 -0
  76. package/lib/model/rel.d.ts +5 -0
  77. package/lib/style.css +1 -1
  78. package/lib/util/cache.d.ts +17 -0
  79. package/lib/util/dialog.d.ts +49 -0
  80. package/lib/util/escape.d.ts +7 -0
  81. package/lib/util/http.d.ts +8 -0
  82. package/lib/util/pick.d.ts +9 -0
  83. package/lib/util/util.d.ts +311 -0
  84. package/package.json +19 -5
  85. package/packages/assets/fonts/iconfont.css +163 -0
  86. package/packages/assets/fonts/iconfont.js +1 -0
  87. package/packages/assets/fonts/iconfont.ttf +0 -0
  88. package/packages/assets/fonts/iconfont.woff +0 -0
  89. package/packages/assets/fonts/iconfont.woff2 +0 -0
  90. package/packages/components/checkbox-group/index.js +7 -0
  91. package/packages/components/checkbox-group/src/fast-checkbox-group.vue +83 -0
  92. package/packages/components/content-dialog/index.js +7 -0
  93. package/packages/components/content-dialog/src/fast-cell-content.vue +115 -0
  94. package/packages/components/json-viewer/index.js +7 -0
  95. package/packages/components/json-viewer/src/fast-json-viewer.vue +54 -0
  96. package/packages/components/mapping.js +95 -0
  97. package/packages/components/object-picker/index.js +7 -0
  98. package/packages/components/object-picker/src/fast-object-picker.vue +170 -0
  99. package/packages/components/select/index.js +7 -0
  100. package/packages/components/select/src/fast-select.vue +90 -0
  101. package/packages/components/table/index.js +7 -0
  102. package/packages/components/table/src/RowConfirm.vue +87 -0
  103. package/packages/components/table/src/dynamic-filter-form.vue +253 -0
  104. package/packages/components/table/src/dynamic-filter-list.vue +172 -0
  105. package/packages/components/table/src/easy-filter.vue +129 -0
  106. package/packages/components/table/src/export-confirm.vue +55 -0
  107. package/packages/components/table/src/quick-filter-form.vue +140 -0
  108. package/packages/components/table/src/row-form.vue +137 -0
  109. package/packages/components/table/src/stored-filter-manager.vue +240 -0
  110. package/packages/components/table/src/stored-filter.vue +180 -0
  111. package/packages/components/table/src/table-head-cell.vue +41 -0
  112. package/packages/components/table/src/table.vue +1309 -0
  113. package/packages/components/table/src/util.js +496 -0
  114. package/packages/components/table-column/config.js +64 -0
  115. package/packages/components/table-column/index.js +7 -0
  116. package/packages/components/table-column/src/table-column.vue +44 -0
  117. package/packages/components/table-column-date-picker/config.js +139 -0
  118. package/packages/components/table-column-date-picker/index.js +7 -0
  119. package/packages/components/table-column-date-picker/src/table-column-date-picker.vue +54 -0
  120. package/packages/components/table-column-file/config.js +83 -0
  121. package/packages/components/table-column-file/index.js +7 -0
  122. package/packages/components/table-column-file/src/table-column-file.vue +79 -0
  123. package/packages/components/table-column-img/config.js +83 -0
  124. package/packages/components/table-column-img/index.js +7 -0
  125. package/packages/components/table-column-img/src/table-column-img.vue +82 -0
  126. package/packages/components/table-column-input/config.js +77 -0
  127. package/packages/components/table-column-input/index.js +7 -0
  128. package/packages/components/table-column-input/src/table-column-input.vue +60 -0
  129. package/packages/components/table-column-number/config.js +89 -0
  130. package/packages/components/table-column-number/index.js +7 -0
  131. package/packages/components/table-column-number/src/table-column-number.vue +54 -0
  132. package/packages/components/table-column-object/config.js +66 -0
  133. package/packages/components/table-column-object/index.js +7 -0
  134. package/packages/components/table-column-object/src/table-column-object.vue +75 -0
  135. package/packages/components/table-column-select/config.js +67 -0
  136. package/packages/components/table-column-select/index.js +7 -0
  137. package/packages/components/table-column-select/src/table-column-select.vue +101 -0
  138. package/packages/components/table-column-switch/config.js +55 -0
  139. package/packages/components/table-column-switch/index.js +7 -0
  140. package/packages/components/table-column-switch/src/table-column-switch.vue +82 -0
  141. package/packages/components/table-column-textarea/config.js +77 -0
  142. package/packages/components/table-column-textarea/index.js +7 -0
  143. package/packages/components/table-column-textarea/src/table-column-textarea.vue +56 -0
  144. package/packages/components/table-column-time-picker/config.js +62 -0
  145. package/packages/components/table-column-time-picker/index.js +7 -0
  146. package/packages/components/table-column-time-picker/src/table-column-time-picker.vue +53 -0
  147. package/packages/components/upload/index.js +7 -0
  148. package/packages/components/upload/src/fast-upload.vue +272 -0
  149. package/packages/global.d.ts +42 -0
  150. package/packages/index.js +145 -0
  151. package/packages/mixins/table-column.js +133 -0
  152. package/packages/mixins/upload.js +14 -0
  153. package/packages/model/cond.js +74 -0
  154. package/packages/model/editComponentConfig.js +72 -0
  155. package/packages/model/fastTableOption.js +769 -0
  156. package/packages/model/filterComponentConfig.js +191 -0
  157. package/packages/model/opt.js +21 -0
  158. package/packages/model/order.js +37 -0
  159. package/packages/model/pageQuery.js +52 -0
  160. package/packages/model/query.js +161 -0
  161. package/packages/model/rel.js +5 -0
  162. package/packages/style.scss +5 -0
  163. package/packages/util/cache.js +92 -0
  164. package/packages/util/dialog.js +133 -0
  165. package/packages/util/escape.js +34 -0
  166. package/packages/util/http.js +18 -0
  167. package/packages/util/pick.js +92 -0
  168. package/packages/util/util.js +892 -0
@@ -0,0 +1,101 @@
1
+ import { default as Cond } from './cond.js';
2
+ import { default as Order } from './order.js';
3
+ export default Query;
4
+ /**
5
+ * 请求参数模型
6
+ */
7
+ declare class Query {
8
+ /**
9
+ * 请求的字段列表。若为空,则表示请求所有字段。字段必须是分页请求返回的字段(且对应数据表字段)
10
+ * @type {[]}
11
+ */
12
+ cols: [];
13
+ /**
14
+ * 查询条件
15
+ * @type {Cond[]}
16
+ */
17
+ conds: Cond[];
18
+ /**
19
+ * 是否distinct去重。默认false
20
+ * @type {boolean}
21
+ */
22
+ distinct: boolean;
23
+ /**
24
+ * 排序数组
25
+ * @type {Order[]}
26
+ */
27
+ orders: Order[];
28
+ /**
29
+ * 扩展字段
30
+ * @type {{}}
31
+ */
32
+ extra: {};
33
+ /**
34
+ * 设置查询字段数组
35
+ * @param cols {string[]} 字段必须是分页请求返回的字段(且对应数据表字段)
36
+ * @return {Query} 返回当前对象
37
+ */
38
+ setCols(cols: string[]): Query;
39
+ /**
40
+ * 添加筛选条件
41
+ * @param cond {Cond} 筛选条件
42
+ * @param repeatable {boolean} 是否允许重复的col, 默认true, 即若多次添加相同col的条件, 只会保留最新的
43
+ * @return {Query} 返回当前对象
44
+ */
45
+ addCond(cond: Cond, repeatable?: boolean): Query;
46
+ /**
47
+ * 按照字段移除已有条件。此字段所有条件都会被移除
48
+ * @param col {string} 字段名
49
+ * @return {Query} 返回当前对象
50
+ */
51
+ removeCond(col: string): Query;
52
+ /**
53
+ * 设置条件。会覆盖已有条件!
54
+ * @param conds {Array[Cond]} 条件数组
55
+ * @return {Query} 返回当前对象
56
+ */
57
+ setConds(conds: any): Query;
58
+ /**
59
+ * 获取指定字段的所有条件
60
+ * @param col {string}
61
+ * @return {Cond[]}
62
+ */
63
+ getConds(col: string): Cond[];
64
+ /**
65
+ * 设置distinct去重
66
+ * @return {Query} 返回当前对象
67
+ */
68
+ setDistinct(): Query;
69
+ /**
70
+ * 添加排序规则
71
+ * @param col {string} 字段名
72
+ * @param asc {boolean} 是否升序
73
+ * @return {Query} 返回当前对象
74
+ */
75
+ addOrder(col: string, asc: boolean): Query;
76
+ /**
77
+ * 移除排序规则
78
+ * @param col {string} 字段名
79
+ * @return {Query} 返回当前对象
80
+ */
81
+ removeOrder(col: string): Query;
82
+ /**
83
+ * 获取排序规则
84
+ * @param col {string}
85
+ * @return {Order} 可能为undefined
86
+ */
87
+ getOrder(col: string): Order;
88
+ /**
89
+ * 将当前查询实例转换为json
90
+ * @return {{conds: Cond[], extra: {[p: string]: null|*}, distinct: boolean, orders: Order[], cols: (*)[]}}
91
+ */
92
+ toJson(): {
93
+ conds: Cond[];
94
+ extra: {
95
+ [p: string]: null | any;
96
+ };
97
+ distinct: boolean;
98
+ orders: Order[];
99
+ cols: (any)[];
100
+ };
101
+ }
@@ -0,0 +1,5 @@
1
+ export default Rel;
2
+ declare const Rel: Readonly<{
3
+ AND: "and";
4
+ OR: "or";
5
+ }>;
package/lib/style.css CHANGED
@@ -1 +1 @@
1
- .fc-checkbox-group[data-v-61f6643f]{display:inline-block;margin-left:10px}.jv-node{position:relative}.jv-node:after{content:","}.jv-node:last-of-type:after{content:""}.jv-node.toggle{margin-left:13px!important}.jv-node .jv-node{margin-left:25px}.jv-container{box-sizing:border-box;position:relative}.jv-container.boxed{border:1px solid #eee;border-radius:6px}.jv-container.boxed:hover{box-shadow:0 2px 7px #00000026;border-color:transparent;position:relative}.jv-container.jv-light{background:#fff;white-space:nowrap;color:#525252;font-size:14px;font-family:Consolas,Menlo,Courier,monospace}.jv-container.jv-dark{background:#282c34;white-space:nowrap;color:#fff;font-size:14px;font-family:Consolas,Menlo,Courier,monospace}.jv-container.jv-light .jv-ellipsis{color:#999;background-color:#eee;display:inline-block;line-height:.9;font-size:.9em;padding:0 4px 2px;margin:0 4px;border-radius:3px;vertical-align:2px;cursor:pointer;-webkit-user-select:none;user-select:none}.jv-container.jv-dark .jv-ellipsis{color:#f8f8f8;background-color:#2c3e50;display:inline-block;line-height:.9;font-size:.9em;padding:0 4px 2px;margin:0 4px;border-radius:3px;vertical-align:2px;cursor:pointer;-webkit-user-select:none;user-select:none}.jv-container.jv-light .jv-button,.jv-container.jv-dark .jv-button{color:#49b3ff}.jv-container.jv-light .jv-key{color:#111;margin-right:4px}.jv-container.jv-dark .jv-key{color:#fff;margin-right:4px}.jv-container.jv-dark .jv-item.jv-array{color:#111}.jv-container.jv-dark .jv-item.jv-array{color:#fff}.jv-container.jv-dark .jv-item.jv-boolean{color:#fc1e70}.jv-container.jv-dark .jv-item.jv-function{color:#067bca}.jv-container.jv-dark .jv-item.jv-number{color:#fc1e70}.jv-container.jv-dark .jv-item.jv-object{color:#fff}.jv-container.jv-dark .jv-item.jv-undefined{color:#e08331}.jv-container.jv-dark .jv-item.jv-string{color:#42b983;word-break:break-word;white-space:normal}.jv-container.jv-dark .jv-item.jv-string .jv-link{color:#0366d6}.jv-container.jv-dark .jv-code .jv-toggle:before{padding:0 2px;border-radius:2px}.jv-container.jv-dark .jv-code .jv-toggle:hover:before{background:#eee}.jv-container.jv-light .jv-item.jv-array{color:#111}.jv-container.jv-light .jv-item.jv-boolean{color:#fc1e70}.jv-container.jv-light .jv-item.jv-function{color:#067bca}.jv-container.jv-light .jv-item.jv-number{color:#fc1e70}.jv-container.jv-light .jv-item.jv-object{color:#111}.jv-container.jv-light .jv-item.jv-undefined{color:#e08331}.jv-container.jv-light .jv-item.jv-string{color:#42b983;word-break:break-word;white-space:normal}.jv-container.jv-light .jv-item.jv-string .jv-link{color:#0366d6}.jv-container.jv-light .jv-code .jv-toggle:before{padding:0 2px;border-radius:2px}.jv-container.jv-light .jv-code .jv-toggle:hover:before{background:#eee}.jv-container .jv-code{overflow:hidden;padding:30px 20px}.jv-container .jv-code.boxed{max-height:300px}.jv-container .jv-code.open{max-height:initial!important;overflow:visible;overflow-x:auto;padding-bottom:45px}.jv-container .jv-toggle{background-image:url("data:image/svg+xml,%3csvg%20height='16'%20width='8'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpolygon%20points='0,0%208,8%200,16'%20style='fill:%23666;stroke:purple;stroke-width:0'%20/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:contain;background-position:center center;cursor:pointer;width:10px;height:10px;margin-right:2px;display:inline-block;transition:transform .1s}.jv-container .jv-toggle.open{transform:rotate(90deg)}.jv-container .jv-more{position:absolute;z-index:1;bottom:0;left:0;right:0;height:40px;width:100%;text-align:center;cursor:pointer}.jv-container .jv-more .jv-toggle{position:relative;top:40%;z-index:2;color:#888;transition:all .1s;transform:rotate(90deg)}.jv-container .jv-more .jv-toggle.open{transform:rotate(-90deg)}.jv-container .jv-more:after{content:"";width:100%;height:100%;position:absolute;bottom:0;left:0;z-index:1;background:linear-gradient(to bottom,#0000 20%,#e6e6e64d);transition:all .1s}.jv-container .jv-more:hover .jv-toggle{top:50%;color:#111}.jv-container .jv-more:hover:after{background:linear-gradient(to bottom,#0000 20%,#e6e6e64d)}.jv-container .jv-button{position:relative;cursor:pointer;display:inline-block;padding:5px;z-index:5}.jv-container .jv-button.copied{opacity:.4;cursor:default}.jv-container .jv-tooltip{position:absolute}.jv-container .jv-tooltip.right{right:15px}.jv-container .jv-tooltip.left{left:15px}.jv-container .j-icon{font-size:12px}.jv-node .jv-toggle.open+.jv-key+.jv-push>.jv-item.jv-object:last-of-type,.jv-node .jv-toggle.open+.jv-key+.jv-push>.jv-item.jv-array:last-of-type{margin-left:12px}.jv-node .jv-toggle:not(.open)+.jv-key+.jv-push>.jv-item.jv-object:last-of-type,.jv-node .jv-toggle:not(.open)+.jv-key+.jv-push>.jv-item.jv-array:last-of-type,.jv-node .jv-toggle:not(.open)+.jv-key+.jv-push>.jv-node:last-of-type{margin-left:0}.footer[data-v-2158782b]{display:flex;margin-top:10px}.footer .flex[data-v-2158782b]{flex:1}.fc-ellipsis[data-v-6005d337],.fc-ellipsis[data-v-6005d337] *{white-space:nowrap;overflow:hidden;overflow:clip;text-overflow:ellipsis;display:inline-block;width:100%}.fc-fast-upload[data-v-1ee55c85] .el-upload-list--picture-card{display:grid;grid-template-columns:repeat(auto-fill,48px);grid-gap:2px}.fc-fast-upload[data-v-1ee55c85] .el-upload-list--text .el-upload-list__item{margin:3px 0!important}.fc-fast-upload .el-upload-list__item-actions[data-v-1ee55c85]{display:flex;align-items:center;justify-content:space-around}.fc-fast-upload .el-upload-list__item-actions[data-v-1ee55c85]>*{margin:0!important}.fc-fast-upload .el-upload-list__item-actions>* i[data-v-1ee55c85]{font-size:14px}.fc-fast-upload .el-upload-list__item-actions[data-v-1ee55c85]:after{display:none}.fc-fast-upload img[data-v-1ee55c85]{height:100%;object-fit:cover}.fc-fast-upload.fc-fast-upload__hidden[data-v-1ee55c85] .el-upload{display:none}.fc-fast-upload.fc-fast-upload__disable[data-v-1ee55c85]{border:none!important}.fc-quick-filter-form>.el-form-item{margin:0!important}.fc-quick-filter-form .fc-quick-filter-form-btns[data-v-69969c93]{margin-left:10px}.fc-quick-filter-form[data-v-69969c93] .el-form-item__content>*{flex:1}.fc-easy-filter[data-v-0b8cdecb]{display:flex}.fc-easy-filter .fc-easy-filter-column[data-v-0b8cdecb]{width:100px}.fc-easy-filter .fc-easy-filter-column[data-v-0b8cdecb] .el-select__wrapper,.fc-easy-filter .fc-easy-filter-column[data-v-0b8cdecb] .el-input__wrapper{box-shadow:inset 0 1px #dcdfe6,inset 0 -1px #dcdfe6,inset 1px 0 #dcdfe6;border-top-right-radius:0;border-bottom-right-radius:0}.fc-easy-filter .fc-easy-filter-value[data-v-0b8cdecb]{width:280px}.fc-easy-filter .fc-easy-filter-value[data-v-0b8cdecb] .el-input__wrapper,.fc-easy-filter[data-v-0b8cdecb] .fc-easy-filter-value.el-input__wrapper,.fc-easy-filter[data-v-0b8cdecb] .fc-easy-filter-value .el-select__wrapper{border-top-left-radius:0!important;border-bottom-left-radius:0!important}.fc-stored-filter-manager .fc-stored-filter-manager-btns[data-v-fb40ebc0]{margin-bottom:20px}.fc-stored-filter-manager .fc-stored-filter-item[data-v-fb40ebc0]{margin:10px 0}.fc-stored-filter-manager .fc-stored-filter-item[data-v-fb40ebc0] .fc-stored-filter-item-header{display:flex;justify-content:space-between}.fc-stored-filter-manager .fc-stored-filter-item .fc-stored-filter-item-label[data-v-fb40ebc0]{width:200px}.fc-stored-filter-manager .fc-stored-filter-item .fc-dynamic-filter-list[data-v-fb40ebc0]{display:flex;flex-wrap:wrap;column-gap:5px;align-items:center}.fc-stored-filter-manager .fc-stored-filter-item .fc-dynamic-filter-list .fc-dynamic-filter-btns[data-v-fb40ebc0]{display:flex;align-items:center}.fc-stored-filter-manager .fc-stored-filter-item .fc-dynamic-filter-list .fc-dynamic-filter-btns:hover .fc-dynamic-filter-open-btn[data-v-fb40ebc0]{text-decoration:underline}.fc-stored-filter-manager .fc-stored-filter-item .fc-dynamic-filter-list .fc-dynamic-filter-btns:hover .fc-dynamic-filter-del-btn[data-v-fb40ebc0]{visibility:visible}.fc-stored-filter-manager .fc-stored-filter-item .fc-dynamic-filter-list .fc-dynamic-filter-open-btn[data-v-fb40ebc0]{color:gray;padding:3px 5px;border:1px solid #cacaca;border-radius:3px;font-size:15px!important}.fc-stored-filter-manager .fc-stored-filter-item .fc-dynamic-filter-list .fc-dynamic-filter-del-btn[data-v-fb40ebc0]{visibility:hidden;margin-left:5px;padding:5px 0;color:#8d4343;font-size:13px!important}.fc-stored-filter-manager .fc-stored-filter-item .fc-dynamic-filter-list .fc-dynamic-filter-clear-btn[data-v-fb40ebc0]{font-size:13px!important;margin-left:3px}.fc-stored-filter-manager .fc-stored-filter-item .component[data-v-fb40ebc0]{margin:10px 0;max-width:420px;max-height:300px;overflow:auto}.fc-stored-filter-manager .fc-stored-filter-item .component[data-v-fb40ebc0] .fc-checkbox-group,.fc-stored-filter-manager .fc-stored-filter-item .component[data-v-fb40ebc0] .fc-checkbox-group .el-checkbox{display:block}.fc-dynamic-filter-form[data-v-3e51a3c1]>*{margin-bottom:10px}.fc-dynamic-filter-form .title[data-v-3e51a3c1]{margin-bottom:5px;font-size:13px;display:flex;align-items:center;justify-content:space-between}.fc-dynamic-filter-form .fc-dynamic-filter-sort-btn[data-v-3e51a3c1],.fc-dynamic-filter-form .fc-dynamic-filter-component[data-v-3e51a3c1]{display:flex;justify-content:space-between}.fc-dynamic-filter-form .fc-dynamic-filter-sort-btn[data-v-3e51a3c1]>*,.fc-dynamic-filter-form .fc-dynamic-filter-component[data-v-3e51a3c1]>*{flex:1}.fc-dynamic-filter-form .fc-dynamic-filter-component-wrapper[data-v-3e51a3c1]{margin:20px 0}.fc-dynamic-filter-form .fc-dynamic-filter-distinct[data-v-3e51a3c1]{border:1px solid #e1e1e1;padding:10px;overflow:auto;max-height:300px}.fc-dynamic-filter-form .fc-dynamic-filter-distinct .fc-dynamic-filter-distinct-options[data-v-3e51a3c1]{margin-top:10px}.fc-dynamic-filter-form .fc-dynamic-filter-distinct .fc-dynamic-filter-distinct-options[data-v-3e51a3c1] .el-checkbox{display:block}.fc-dynamic-filter-form .fc-dynamic-filter-form-btn[data-v-3e51a3c1]{display:flex}.fc-dynamic-filter-list[data-v-ef59b1ba]{display:flex;flex-wrap:wrap;column-gap:5px}.fc-dynamic-filter-list .fc-dynamic-filter-btns:hover .fc-dynamic-filter-open-btn[data-v-ef59b1ba]{text-decoration:underline}.fc-dynamic-filter-list .fc-dynamic-filter-btns:hover .fc-dynamic-filter-del-btn[data-v-ef59b1ba]{visibility:visible}.fc-dynamic-filter-list .strikethrough[data-v-ef59b1ba]{text-decoration:line-through!important;color:#acacac!important}.fc-dynamic-filter-list .fc-dynamic-filter-open-btn[data-v-ef59b1ba]{color:gray;padding:3px 5px;border:1px solid #cacaca;border-radius:3px;font-size:13px!important}.fc-dynamic-filter-list .fc-dynamic-filter-del-btn[data-v-ef59b1ba]{visibility:hidden;margin-left:5px;padding:5px 0;color:#8d4343;font-size:13px!important}.fc-dynamic-filter-list .fc-dynamic-filter-clear-btn[data-v-ef59b1ba]{font-size:13px!important;margin-left:3px}.component.fc-fast-checkbox-group[data-v-ef59b1ba]{margin:10px 0;max-width:420px;max-height:300px;overflow:auto}.component.fc-fast-checkbox-group[data-v-ef59b1ba] .fc-checkbox-group,.component.fc-fast-checkbox-group[data-v-ef59b1ba] .fc-checkbox-group .el-checkbox{display:block}.fc-dynamic-filter-footer[data-v-ef59b1ba]{display:flex;justify-content:center;margin-top:10px}.fc-table-edit-form-wrapper .fc-table-edit-form-btns[data-v-980f457a]{display:flex;justify-content:right}.fc-fast-table[data-v-78454505]{height:100%;box-sizing:border-box;padding:10px;overflow:auto}.fc-fast-table .fc-fast-table-title[data-v-78454505]{font-weight:700}.fc-fast-table .fc-quick-filter-wrapper[data-v-78454505]{padding-bottom:10px;box-sizing:border-box;border-bottom:1px solid #dfdfdf;margin-bottom:10px}.fc-fast-table .fc-fast-table-divider[data-v-78454505]{margin:0 0 10px}.fc-fast-table .fc-fast-table-operation-bar[data-v-78454505]{margin-bottom:10px;display:flex;justify-content:space-between;align-items:center;position:relative}.fc-fast-table .fc-fast-table-operation-bar[data-v-78454505] .el-button--default{padding-left:10px;padding-right:10px}.fc-fast-table .fc-fast-table-operation-bar .fc-operation-filter[data-v-78454505]{display:flex}.fc-fast-table .fc-fast-table-operation-bar .fc-operation-filter[data-v-78454505]>:not(:first-child){margin-left:5px}.fc-fast-table .fc-fast-table-operation-bar .fc-operation-filter .fc-stored-btn-wrapper[data-v-78454505],.fc-fast-table .fc-fast-table-operation-bar .fc-fast-table-operation-more[data-v-78454505]{margin-left:10px}.fc-fast-table[data-v-78454505] .el-table__cell{padding:0}.fc-fast-table[data-v-78454505] td.fc-table-column>.cell{padding:0 10px}.fc-fast-table[data-v-78454505] td.fc-table-column>.cell .fc-table-inline-edit-component{width:100%}.fc-fast-table[data-v-78454505] td.fc-table-column>.cell .fc-table-inline-edit-component .el-input__inner{padding:0 4px}.fc-fast-table[data-v-78454505] td.fc-table-column>.cell .fc-table-inline-edit-component .el-input-number__decrease,.fc-fast-table[data-v-78454505] td.fc-table-column>.cell .fc-table-inline-edit-component .el-input-number__increase{width:15px}.fc-fast-table[data-v-78454505] td.fc-table-column>.cell .fc-table-inline-edit-component .el-input__prefix{display:none}.fc-fast-table[data-v-78454505] td.fc-table-column>.cell .fc-table-inline-edit-component input{text-align:left}.fc-fast-table[data-v-78454505] td.fc-table-column>.cell .fc-table-inline-edit-component .el-upload-list--picture-card .el-upload-list__item,.fc-fast-table[data-v-78454505] td.fc-table-column>.cell .fc-table-inline-edit-component .el-upload--picture-card{width:auto;height:100%;aspect-ratio:1/1;line-height:100%;margin:0}.fc-fast-table[data-v-78454505] td.fc-table-column>.cell .fc-table-inline-edit-component .el-upload-list--picture-card .el-upload-list__item .el-icon-plus,.fc-fast-table[data-v-78454505] td.fc-table-column>.cell .fc-table-inline-edit-component .el-upload--picture-card .el-icon-plus{font-size:18px;width:18px;height:18px;margin-top:calc(50% - 9px)}.fc-fast-table[data-v-78454505] td.fc-table-column>.cell .fc-table-inline-edit-component .el-upload-list--text .el-upload-list__item{margin:0;line-height:1}.fc-fast-table[data-v-78454505] td.fc-table-column>.cell .fc-table-inline-edit-component .el-upload-list--text .el-upload-list__item>*{display:inline}.fc-fast-table[data-v-78454505] td.fc-table-column>.cell .fc-table-inline-edit-component.fc-valid-error{border:1px dashed #F56C6C}.fc-fast-table[data-v-78454505] td.fc-table-column>.cell .el-upload-list__item{transition:none!important}.fc-fast-table .fc-pagination-wrapper[data-v-78454505]{display:flex;margin-top:3px;justify-content:space-between}.fc-fast-table .fc-pagination-wrapper .fc-footer-wrapper[data-v-78454505]{display:flex;align-items:center}.fc-fast-table .fc-pagination-wrapper .fc-footer-wrapper .fc-check-tip[data-v-78454505]{display:flex;margin-right:10px}.fc-table-column-head-cell[data-v-f65c5a37]{display:flex;align-items:center;justify-content:center;white-space:nowrap;height:38px;line-height:38px;margin:0 10px}.fc-table-column-head-cell.filter[data-v-f65c5a37]{cursor:pointer}.sort-icon[data-v-f65c5a37]{color:#409eff}.img-list[data-v-c680920f]{display:flex;flex-wrap:wrap;padding:3px 0}img[data-v-c680920f]{object-fit:cover}.fc-fast-upload-file[data-v-046d9cc0]{display:flex;flex-direction:column;justify-content:center}.fc-dynamic-dialog .el-dialog__body{padding:15px}
1
+ .fc-checkbox-group[data-v-61f6643f]{display:inline-block;margin-left:10px}.jv-node{position:relative}.jv-node:after{content:","}.jv-node:last-of-type:after{content:""}.jv-node.toggle{margin-left:13px!important}.jv-node .jv-node{margin-left:25px}.jv-container{box-sizing:border-box;position:relative}.jv-container.boxed{border:1px solid #eee;border-radius:6px}.jv-container.boxed:hover{box-shadow:0 2px 7px #00000026;border-color:transparent;position:relative}.jv-container.jv-light{background:#fff;white-space:nowrap;color:#525252;font-size:14px;font-family:Consolas,Menlo,Courier,monospace}.jv-container.jv-dark{background:#282c34;white-space:nowrap;color:#fff;font-size:14px;font-family:Consolas,Menlo,Courier,monospace}.jv-container.jv-light .jv-ellipsis{color:#999;background-color:#eee;display:inline-block;line-height:.9;font-size:.9em;padding:0 4px 2px;margin:0 4px;border-radius:3px;vertical-align:2px;cursor:pointer;-webkit-user-select:none;user-select:none}.jv-container.jv-dark .jv-ellipsis{color:#f8f8f8;background-color:#2c3e50;display:inline-block;line-height:.9;font-size:.9em;padding:0 4px 2px;margin:0 4px;border-radius:3px;vertical-align:2px;cursor:pointer;-webkit-user-select:none;user-select:none}.jv-container.jv-light .jv-button,.jv-container.jv-dark .jv-button{color:#49b3ff}.jv-container.jv-light .jv-key{color:#111;margin-right:4px}.jv-container.jv-dark .jv-key{color:#fff;margin-right:4px}.jv-container.jv-dark .jv-item.jv-array{color:#111}.jv-container.jv-dark .jv-item.jv-array{color:#fff}.jv-container.jv-dark .jv-item.jv-boolean{color:#fc1e70}.jv-container.jv-dark .jv-item.jv-function{color:#067bca}.jv-container.jv-dark .jv-item.jv-number{color:#fc1e70}.jv-container.jv-dark .jv-item.jv-object{color:#fff}.jv-container.jv-dark .jv-item.jv-undefined{color:#e08331}.jv-container.jv-dark .jv-item.jv-string{color:#42b983;word-break:break-word;white-space:normal}.jv-container.jv-dark .jv-item.jv-string .jv-link{color:#0366d6}.jv-container.jv-dark .jv-code .jv-toggle:before{padding:0 2px;border-radius:2px}.jv-container.jv-dark .jv-code .jv-toggle:hover:before{background:#eee}.jv-container.jv-light .jv-item.jv-array{color:#111}.jv-container.jv-light .jv-item.jv-boolean{color:#fc1e70}.jv-container.jv-light .jv-item.jv-function{color:#067bca}.jv-container.jv-light .jv-item.jv-number{color:#fc1e70}.jv-container.jv-light .jv-item.jv-object{color:#111}.jv-container.jv-light .jv-item.jv-undefined{color:#e08331}.jv-container.jv-light .jv-item.jv-string{color:#42b983;word-break:break-word;white-space:normal}.jv-container.jv-light .jv-item.jv-string .jv-link{color:#0366d6}.jv-container.jv-light .jv-code .jv-toggle:before{padding:0 2px;border-radius:2px}.jv-container.jv-light .jv-code .jv-toggle:hover:before{background:#eee}.jv-container .jv-code{overflow:hidden;padding:30px 20px}.jv-container .jv-code.boxed{max-height:300px}.jv-container .jv-code.open{max-height:initial!important;overflow:visible;overflow-x:auto;padding-bottom:45px}.jv-container .jv-toggle{background-image:url("data:image/svg+xml,%3csvg%20height='16'%20width='8'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpolygon%20points='0,0%208,8%200,16'%20style='fill:%23666;stroke:purple;stroke-width:0'%20/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:contain;background-position:center center;cursor:pointer;width:10px;height:10px;margin-right:2px;display:inline-block;transition:transform .1s}.jv-container .jv-toggle.open{transform:rotate(90deg)}.jv-container .jv-more{position:absolute;z-index:1;bottom:0;left:0;right:0;height:40px;width:100%;text-align:center;cursor:pointer}.jv-container .jv-more .jv-toggle{position:relative;top:40%;z-index:2;color:#888;transition:all .1s;transform:rotate(90deg)}.jv-container .jv-more .jv-toggle.open{transform:rotate(-90deg)}.jv-container .jv-more:after{content:"";width:100%;height:100%;position:absolute;bottom:0;left:0;z-index:1;background:linear-gradient(to bottom,#0000 20%,#e6e6e64d);transition:all .1s}.jv-container .jv-more:hover .jv-toggle{top:50%;color:#111}.jv-container .jv-more:hover:after{background:linear-gradient(to bottom,#0000 20%,#e6e6e64d)}.jv-container .jv-button{position:relative;cursor:pointer;display:inline-block;padding:5px;z-index:5}.jv-container .jv-button.copied{opacity:.4;cursor:default}.jv-container .jv-tooltip{position:absolute}.jv-container .jv-tooltip.right{right:15px}.jv-container .jv-tooltip.left{left:15px}.jv-container .j-icon{font-size:12px}.jv-node .jv-toggle.open+.jv-key+.jv-push>.jv-item.jv-object:last-of-type,.jv-node .jv-toggle.open+.jv-key+.jv-push>.jv-item.jv-array:last-of-type{margin-left:12px}.jv-node .jv-toggle:not(.open)+.jv-key+.jv-push>.jv-item.jv-object:last-of-type,.jv-node .jv-toggle:not(.open)+.jv-key+.jv-push>.jv-item.jv-array:last-of-type,.jv-node .jv-toggle:not(.open)+.jv-key+.jv-push>.jv-node:last-of-type{margin-left:0}.footer[data-v-2158782b]{display:flex;margin-top:10px}.footer .flex[data-v-2158782b]{flex:1}.fc-ellipsis[data-v-3683bcba],.fc-ellipsis[data-v-3683bcba] *{white-space:nowrap;overflow:hidden;overflow:clip;text-overflow:ellipsis;display:inline-block;width:100%}.fc-fast-upload[data-v-6ccd1f4d] .el-upload-list--picture-card{display:grid;grid-template-columns:repeat(auto-fill,48px);grid-gap:2px}.fc-fast-upload[data-v-6ccd1f4d] .el-upload-list--text .el-upload-list__item{margin:3px 0!important}.fc-fast-upload .el-upload-list__item-actions[data-v-6ccd1f4d]{display:flex;align-items:center;justify-content:space-around}.fc-fast-upload .el-upload-list__item-actions[data-v-6ccd1f4d]>*{margin:0!important}.fc-fast-upload .el-upload-list__item-actions>* i[data-v-6ccd1f4d]{font-size:14px}.fc-fast-upload .el-upload-list__item-actions[data-v-6ccd1f4d]:after{display:none}.fc-fast-upload img[data-v-6ccd1f4d]{height:100%;object-fit:cover}.fc-fast-upload.fc-fast-upload__hidden[data-v-6ccd1f4d] .el-upload{display:none}.fc-fast-upload.fc-fast-upload__disable[data-v-6ccd1f4d]{border:none!important}.fc-quick-filter-form>.el-form-item{margin:0!important}.fc-quick-filter-form .fc-quick-filter-form-btns[data-v-4ef6c2b5]{margin-left:10px}.fc-quick-filter-form[data-v-4ef6c2b5] .el-form-item__content>*{flex:1}.fc-easy-filter[data-v-0b8cdecb]{display:flex}.fc-easy-filter .fc-easy-filter-column[data-v-0b8cdecb]{width:100px}.fc-easy-filter .fc-easy-filter-column[data-v-0b8cdecb] .el-select__wrapper,.fc-easy-filter .fc-easy-filter-column[data-v-0b8cdecb] .el-input__wrapper{box-shadow:inset 0 1px #dcdfe6,inset 0 -1px #dcdfe6,inset 1px 0 #dcdfe6;border-top-right-radius:0;border-bottom-right-radius:0}.fc-easy-filter .fc-easy-filter-value[data-v-0b8cdecb]{width:280px}.fc-easy-filter .fc-easy-filter-value[data-v-0b8cdecb] .el-input__wrapper,.fc-easy-filter[data-v-0b8cdecb] .fc-easy-filter-value.el-input__wrapper,.fc-easy-filter[data-v-0b8cdecb] .fc-easy-filter-value .el-select__wrapper{border-top-left-radius:0!important;border-bottom-left-radius:0!important}.fc-stored-filter-manager .fc-stored-filter-manager-btns[data-v-e940e7e6]{margin-bottom:20px}.fc-stored-filter-manager .fc-stored-filter-item[data-v-e940e7e6]{margin:10px 0}.fc-stored-filter-manager .fc-stored-filter-item[data-v-e940e7e6] .fc-stored-filter-item-header{display:flex;justify-content:space-between}.fc-stored-filter-manager .fc-stored-filter-item .fc-stored-filter-item-label[data-v-e940e7e6]{width:200px}.fc-stored-filter-manager .fc-stored-filter-item .fc-dynamic-filter-list[data-v-e940e7e6]{display:flex;flex-wrap:wrap;column-gap:5px;align-items:center}.fc-stored-filter-manager .fc-stored-filter-item .fc-dynamic-filter-list .fc-dynamic-filter-btns[data-v-e940e7e6]{display:flex;align-items:center}.fc-stored-filter-manager .fc-stored-filter-item .fc-dynamic-filter-list .fc-dynamic-filter-btns:hover .fc-dynamic-filter-open-btn[data-v-e940e7e6]{text-decoration:underline}.fc-stored-filter-manager .fc-stored-filter-item .fc-dynamic-filter-list .fc-dynamic-filter-btns:hover .fc-dynamic-filter-del-btn[data-v-e940e7e6]{visibility:visible}.fc-stored-filter-manager .fc-stored-filter-item .fc-dynamic-filter-list .fc-dynamic-filter-open-btn[data-v-e940e7e6]{color:gray;padding:3px 5px;border:1px solid #cacaca;border-radius:3px;font-size:15px!important}.fc-stored-filter-manager .fc-stored-filter-item .fc-dynamic-filter-list .fc-dynamic-filter-del-btn[data-v-e940e7e6]{visibility:hidden;margin-left:5px;padding:5px 0;color:#8d4343;font-size:13px!important}.fc-stored-filter-manager .fc-stored-filter-item .fc-dynamic-filter-list .fc-dynamic-filter-clear-btn[data-v-e940e7e6]{font-size:13px!important;margin-left:3px}.fc-stored-filter-manager .fc-stored-filter-item .component[data-v-e940e7e6]{margin:10px 0;max-width:420px;max-height:300px;overflow:auto}.fc-stored-filter-manager .fc-stored-filter-item .component[data-v-e940e7e6] .fc-checkbox-group,.fc-stored-filter-manager .fc-stored-filter-item .component[data-v-e940e7e6] .fc-checkbox-group .el-checkbox{display:block}.fc-dynamic-filter-form[data-v-dc7bc9f5]>*{margin-bottom:10px}.fc-dynamic-filter-form .title[data-v-dc7bc9f5]{margin-bottom:5px;font-size:13px;display:flex;align-items:center;justify-content:space-between}.fc-dynamic-filter-form .fc-dynamic-filter-sort-btn[data-v-dc7bc9f5],.fc-dynamic-filter-form .fc-dynamic-filter-component[data-v-dc7bc9f5]{display:flex;justify-content:space-between}.fc-dynamic-filter-form .fc-dynamic-filter-sort-btn[data-v-dc7bc9f5]>*,.fc-dynamic-filter-form .fc-dynamic-filter-component[data-v-dc7bc9f5]>*{flex:1}.fc-dynamic-filter-form .fc-dynamic-filter-component-wrapper[data-v-dc7bc9f5]{margin:20px 0}.fc-dynamic-filter-form .fc-dynamic-filter-distinct[data-v-dc7bc9f5]{border:1px solid #e1e1e1;padding:10px;overflow:auto;max-height:300px}.fc-dynamic-filter-form .fc-dynamic-filter-distinct .fc-dynamic-filter-distinct-options[data-v-dc7bc9f5]{margin-top:10px}.fc-dynamic-filter-form .fc-dynamic-filter-distinct .fc-dynamic-filter-distinct-options[data-v-dc7bc9f5] .el-checkbox{display:block}.fc-dynamic-filter-form .fc-dynamic-filter-form-btn[data-v-dc7bc9f5]{display:flex}.fc-dynamic-filter-list[data-v-df9e04b8]{display:flex;flex-wrap:wrap;column-gap:5px}.fc-dynamic-filter-list .fc-dynamic-filter-btns:hover .fc-dynamic-filter-open-btn[data-v-df9e04b8]{text-decoration:underline}.fc-dynamic-filter-list .fc-dynamic-filter-btns:hover .fc-dynamic-filter-del-btn[data-v-df9e04b8]{visibility:visible}.fc-dynamic-filter-list .strikethrough[data-v-df9e04b8]{text-decoration:line-through!important;color:#acacac!important}.fc-dynamic-filter-list .fc-dynamic-filter-open-btn[data-v-df9e04b8]{color:gray;padding:3px 5px;border:1px solid #cacaca;border-radius:3px;font-size:13px!important}.fc-dynamic-filter-list .fc-dynamic-filter-del-btn[data-v-df9e04b8]{visibility:hidden;margin-left:5px;padding:5px 0;color:#8d4343;font-size:13px!important}.fc-dynamic-filter-list .fc-dynamic-filter-clear-btn[data-v-df9e04b8]{font-size:13px!important;margin-left:3px}.component.fc-fast-checkbox-group[data-v-df9e04b8]{margin:10px 0;max-width:420px;max-height:300px;overflow:auto}.component.fc-fast-checkbox-group[data-v-df9e04b8] .fc-checkbox-group,.component.fc-fast-checkbox-group[data-v-df9e04b8] .fc-checkbox-group .el-checkbox{display:block}.fc-dynamic-filter-footer[data-v-df9e04b8]{display:flex;justify-content:center;margin-top:10px}.fc-table-edit-form-wrapper .fc-table-edit-form-btns[data-v-22940f89]{display:flex;justify-content:right}.fc-fast-table[data-v-50fc372b]{height:100%;box-sizing:border-box;padding:10px;overflow:auto}.fc-fast-table .fc-fast-table-title[data-v-50fc372b]{font-weight:700}.fc-fast-table .fc-quick-filter-wrapper[data-v-50fc372b]{padding-bottom:10px;box-sizing:border-box;border-bottom:1px solid #dfdfdf;margin-bottom:10px}.fc-fast-table .fc-fast-table-divider[data-v-50fc372b]{margin:0 0 10px}.fc-fast-table .fc-fast-table-operation-bar[data-v-50fc372b]{margin-bottom:10px;display:flex;justify-content:space-between;align-items:center;position:relative}.fc-fast-table .fc-fast-table-operation-bar[data-v-50fc372b] .el-button--default{padding-left:10px;padding-right:10px}.fc-fast-table .fc-fast-table-operation-bar .fc-operation-filter[data-v-50fc372b]{display:flex}.fc-fast-table .fc-fast-table-operation-bar .fc-operation-filter[data-v-50fc372b]>:not(:first-child){margin-left:5px}.fc-fast-table .fc-fast-table-operation-bar .fc-operation-filter .fc-stored-btn-wrapper[data-v-50fc372b],.fc-fast-table .fc-fast-table-operation-bar .fc-fast-table-operation-more[data-v-50fc372b]{margin-left:10px}.fc-fast-table[data-v-50fc372b] .el-table__cell{padding:0}.fc-fast-table[data-v-50fc372b] td.fc-table-column>.cell{padding:0 10px}.fc-fast-table[data-v-50fc372b] td.fc-table-column>.cell .fc-table-inline-edit-component{width:100%}.fc-fast-table[data-v-50fc372b] td.fc-table-column>.cell .fc-table-inline-edit-component .el-input__inner{padding:0 4px}.fc-fast-table[data-v-50fc372b] td.fc-table-column>.cell .fc-table-inline-edit-component .el-input-number__decrease,.fc-fast-table[data-v-50fc372b] td.fc-table-column>.cell .fc-table-inline-edit-component .el-input-number__increase{width:15px}.fc-fast-table[data-v-50fc372b] td.fc-table-column>.cell .fc-table-inline-edit-component .el-input__prefix{display:none}.fc-fast-table[data-v-50fc372b] td.fc-table-column>.cell .fc-table-inline-edit-component input{text-align:left}.fc-fast-table[data-v-50fc372b] td.fc-table-column>.cell .fc-table-inline-edit-component .el-upload-list--picture-card .el-upload-list__item,.fc-fast-table[data-v-50fc372b] td.fc-table-column>.cell .fc-table-inline-edit-component .el-upload--picture-card{width:auto;height:100%;aspect-ratio:1/1;line-height:100%;margin:0}.fc-fast-table[data-v-50fc372b] td.fc-table-column>.cell .fc-table-inline-edit-component .el-upload-list--picture-card .el-upload-list__item .el-icon-plus,.fc-fast-table[data-v-50fc372b] td.fc-table-column>.cell .fc-table-inline-edit-component .el-upload--picture-card .el-icon-plus{font-size:18px;width:18px;height:18px;margin-top:calc(50% - 9px)}.fc-fast-table[data-v-50fc372b] td.fc-table-column>.cell .fc-table-inline-edit-component .el-upload-list--text .el-upload-list__item{margin:0;line-height:1}.fc-fast-table[data-v-50fc372b] td.fc-table-column>.cell .fc-table-inline-edit-component .el-upload-list--text .el-upload-list__item>*{display:inline}.fc-fast-table[data-v-50fc372b] td.fc-table-column>.cell .fc-table-inline-edit-component.fc-valid-error{border:1px dashed #F56C6C}.fc-fast-table[data-v-50fc372b] td.fc-table-column>.cell .el-upload-list__item{transition:none!important}.fc-fast-table .fc-pagination-wrapper[data-v-50fc372b]{display:flex;margin-top:3px;justify-content:space-between}.fc-fast-table .fc-pagination-wrapper .fc-footer-wrapper[data-v-50fc372b]{display:flex;align-items:center}.fc-fast-table .fc-pagination-wrapper .fc-footer-wrapper .fc-check-tip[data-v-50fc372b]{display:flex;margin-right:10px}.fc-table-column-head-cell[data-v-f65c5a37]{display:flex;align-items:center;justify-content:center;white-space:nowrap;height:38px;line-height:38px;margin:0 10px}.fc-table-column-head-cell.filter[data-v-f65c5a37]{cursor:pointer}.sort-icon[data-v-f65c5a37]{color:#409eff}.img-list[data-v-c680920f]{display:flex;flex-wrap:wrap;padding:3px 0}img[data-v-c680920f]{object-fit:cover}.fc-fast-upload-file[data-v-046d9cc0]{display:flex;flex-direction:column;justify-content:center}.fc-dynamic-dialog .el-dialog__body{padding:15px}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * 保存到localStorage中
3
+ * @param key 会拼接"FC:"前缀
4
+ * @param value any
5
+ * @param minutes 缓存有效期(null/undefined, 均表示不设置有效期)
6
+ */
7
+ export function setToLocalStorage(key: any, value: any, minutes: any): void;
8
+ /**
9
+ * 从localStorage中获取
10
+ * @param key 会拼接"FC:"前缀
11
+ * @return {string}
12
+ */
13
+ export function getFromLocalStorage(key: any): string;
14
+ export function deleteFromLocalStorage(key: any): void;
15
+ export function setToSessionStorage(key: any, value: any, minutes: any): void;
16
+ export function getFromSessionStorage(key: any): any;
17
+ export function deleteFromSessionStorage(key: any): void;
@@ -0,0 +1,49 @@
1
+ /**
2
+ * 动态打开弹窗。
3
+ * @param component 弹窗中的组件,可通过emit('ok', data)触发后续then, 或者 通过emit('cancel')取消弹窗触发catch
4
+ * @param props 传递给component的props
5
+ * @param dialogProps 传递给dialog的props, 其中还支持自定义的buttons数组,描述dialog按钮
6
+ * @example
7
+ * openDialog({
8
+ * component: YourComponent,
9
+ * props: {
10
+ * model: {...}
11
+ * },
12
+ * dialogProps: {
13
+ * width: '50%',
14
+ * // dialog支持的props...
15
+ * ...
16
+ * // 自定义的配置
17
+ * okClose: true, // 弹出组件如果emit ok后是否关闭dialog, 默认关闭
18
+ * handleOk: (param) => {}, // ok事件处理的回调函数(作用同then, 但当okClose=true时, then只会执行一次, 单handleOk可以多次执行)
19
+ * handleCancel: (param) => {}, // cancel事件处理回调函数
20
+ * handleCancel: () => {},
21
+ * buttons: [
22
+ * {
23
+ * text: '确定',
24
+ * type: 'primary',
25
+ * onClick: (component) => { // component是你传入的YourComponent组件实例
26
+ * if (!component.validate()) { // YourComponent里提供的校验方法
27
+ * ElMessage.warning('校验不通过!')
28
+ * return // 返回非Promise则不会关闭对话框
29
+ * }
30
+ * return Promise.resolve(component.getModel()) // YourComponent提供的getModel获取表单数据, 走resolve逻辑
31
+ * }
32
+ * },
33
+ * {
34
+ * text: '取消',
35
+ * onClick: (component) => {
36
+ * return Promise.reject() // 走catch逻辑
37
+ * }
38
+ * }
39
+ * // 其它自定义按钮
40
+ * ]
41
+ * }
42
+ * })
43
+ * @returns {Promise<unknown>} 可以通过返回的Promise.then和catch分别处理ok事件(可获取component抛出的参数)和弹窗关闭事件
44
+ */
45
+ export function openDialog({ component, props, dialogProps }: {
46
+ component: any;
47
+ props?: {};
48
+ dialogProps?: {};
49
+ }): Promise<unknown>;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * 根据组件判断将值转义为显示值
3
+ * @param component 组件名
4
+ * @param val 待转义的原始值, 如果是数组,返回的label也是对应的数组
5
+ * @param props 转义依据的配置
6
+ */
7
+ export function escapeValToLabel(component: any, val: any, props: any): Promise<any>;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * 发起post请求
3
+ * @param url
4
+ * @param data
5
+ * @param config
6
+ * @return {*}
7
+ */
8
+ export function post(url: any, data: any, config?: {}): any;
@@ -0,0 +1,9 @@
1
+ import { FastTableOption } from '../index';
2
+ /**
3
+ * pick弹窗选择表格数据
4
+ * @param option {FastTableOption} FastTableOption实例
5
+ * @param multiple {boolean} 是否多选
6
+ * @param dialog {Object} 弹窗配置
7
+ * @returns {Promise<*>|*} 返回Promise
8
+ */
9
+ export function pick({ option, multiple, dialog }: FastTableOption): Promise<any> | any;
@@ -0,0 +1,311 @@
1
+ /**
2
+ * 剪掉字符串指定的前缀, 如果不是此前缀开头,则直接返回str
3
+ * @param str 待操作的字符串
4
+ * @param prefix 指定前缀
5
+ */
6
+ export function cutPrefix(str: any, prefix: any): any;
7
+ /**
8
+ * 断言
9
+ * @param cond
10
+ * @param msg
11
+ */
12
+ export function assert(cond: any, msg: any): void;
13
+ /**
14
+ * 断言并利用错误提示, 会抛出异常
15
+ * @param cond
16
+ * @param msg
17
+ */
18
+ export function assertTip(cond: any, msg: any): void;
19
+ export function addStartWith(str: any, startWith: any): any;
20
+ /**
21
+ * 若为空字符串,则取默认值
22
+ * @param str {string}
23
+ * @param defaultStr {string}
24
+ * @return {*}
25
+ */
26
+ export function defaultIfBlank(str: string, defaultStr: string): any;
27
+ /**
28
+ * 是否是空字符串. undefined和null、均为空格也视为空字符串
29
+ * @param str {string}
30
+ * @return {boolean}
31
+ */
32
+ export function ifBlank(str: string): boolean;
33
+ export function toStr(val: any): string;
34
+ /**
35
+ * 三元元算符简化
36
+ * @param cond
37
+ * @param trueVal
38
+ * @param falseVal
39
+ * @returns {*}
40
+ */
41
+ export function ternary(cond: any, trueVal: any, falseVal: any): any;
42
+ /**
43
+ * val若为空则取默认值defaultVal
44
+ * @param val {string | Array | Object}
45
+ * @param defaultVal {any}
46
+ * @return {*}
47
+ */
48
+ export function defaultIfEmpty(val: string | any[] | any, defaultVal: any): any;
49
+ /**
50
+ * 驼峰转=>?(默认下划线)
51
+ * @param str {string} 待处理的字符串
52
+ * @param separator {string} 默认为下划线("_"), 表示驼峰转下划线
53
+ * @returns {*}
54
+ */
55
+ export function camelCaseTo(str: string, separator?: string): any;
56
+ /**
57
+ * ?(默认下划线)转驼峰。单个字符串转换
58
+ * @param str {string} 待处理字符串
59
+ * @param separator 默认下划线
60
+ */
61
+ export function caseToCamel(str: string, separator?: string): string;
62
+ /**
63
+ * ?(默认下划线)转驼峰。将一个对象类型中的所有key转换。若obj不是对象类型,则直接返回obj,否则将返回一个新的object
64
+ * @param obj 对象
65
+ * @param separator 默认下划线
66
+ */
67
+ export function convertKeyFromCaseToCamel(obj: any, separator?: string): any;
68
+ /**
69
+ * 判断值是否为对象. 数组、null等都将返回false, 只有严格的{}才会返回true
70
+ * @param val {any}
71
+ */
72
+ export function isObject(val: any): boolean;
73
+ /**
74
+ * 是否是数组类型
75
+ * @param val {any}
76
+ * @return {boolean}
77
+ */
78
+ export function isArray(val: any): boolean;
79
+ /**
80
+ * 是否是布尔值
81
+ * @param val {any}
82
+ * @return {boolean}
83
+ */
84
+ export function isBoolean(val: any): boolean;
85
+ /**
86
+ * 是否是字符串
87
+ * @param val {any}
88
+ * @return {boolean}
89
+ */
90
+ export function isString(val: any): boolean;
91
+ /**
92
+ * 是否是数值类型
93
+ * @param val {any}
94
+ * @return {boolean}
95
+ */
96
+ export function isNumber(val: any): boolean;
97
+ /**
98
+ * 是否是函数
99
+ * @param val {any}
100
+ * @return {boolean}
101
+ */
102
+ export function isFunction(val: any): boolean;
103
+ /**
104
+ * 是否是null值
105
+ * @param val {any}
106
+ * @return {boolean}
107
+ */
108
+ export function isNull(val: any): boolean;
109
+ /**
110
+ * 是否是undefined值
111
+ * @param val {any}
112
+ * @return {boolean}
113
+ */
114
+ export function isUndefined(val: any): boolean;
115
+ /**
116
+ * undefined、null、string、number、boolean视为简单类型,返回true
117
+ * @param val
118
+ * @return {boolean}
119
+ */
120
+ export function isSampleType(val: any): boolean;
121
+ /**
122
+ * 是否是json字符串
123
+ * @param val
124
+ */
125
+ export function isJsonStr(val: any): boolean;
126
+ /**
127
+ * 转换为json, 若无法转换则抛出异常
128
+ * @param val
129
+ * @return {*}
130
+ */
131
+ export function toJson(val: any): any;
132
+ /**
133
+ * 是否是http或https打头的url
134
+ * @param val
135
+ * @return {*|boolean}
136
+ */
137
+ export function isUrl(val: any): any | boolean;
138
+ /**
139
+ * 判断一个值是否超过长度
140
+ * @param val 可能是字符串、数字、json等
141
+ * @param width 长度,px像素值(Number类型)
142
+ * @param font 字体设置。默认 "14px Arial", 不同字体大小会影响计算
143
+ */
144
+ export function isOverLength(val: any, width: any, font?: string): boolean;
145
+ /**
146
+ * 给定一个值,计算其渲染长度(px)
147
+ * @param val
148
+ * @param font
149
+ */
150
+ export function calLength(val: any, font?: string): number;
151
+ /**
152
+ * 返回值的类型:
153
+ * [object String]、[object Number]、[object Object]、[object Boolean]、
154
+ * [object Array]、[object Function]、[object Null]、[object Undefined]
155
+ * @param value
156
+ * @returns {string}
157
+ */
158
+ export function typeOf(value: any): string;
159
+ /**
160
+ * 判断一个值是否为空。
161
+ * 如果是
162
+ * 1. 字符串, 则判断是否为空字符串(空格也被视为空)
163
+ * 2. 对象, 则判断是否无任何键值
164
+ * 3. 数组, 则判断是否无任何数组成员
165
+ * 4. null, 返回true
166
+ * 5. undefined, true
167
+ * 6. 其他情况均返回false
168
+ * @param value {string | Object | Array | undefined | null}
169
+ * @return {boolean}
170
+ */
171
+ export function isEmpty(value: string | any | any[] | undefined | null): boolean;
172
+ /**
173
+ * 清空对象所有的键值
174
+ * @param obj {Object}
175
+ */
176
+ export function clear(obj: any): void;
177
+ /**
178
+ * 将字符串转为对象或数组
179
+ * @param str {string}
180
+ * @returns {Object | Array}
181
+ */
182
+ export function parse(str: string): any | any[];
183
+ /**
184
+ * 深度拷贝。如果非对象或数组,直接返回。
185
+ * @param obj {Object | Array}
186
+ * @return {Object | Array | any}
187
+ */
188
+ export function deepClone(obj: any | any[]): any | any[] | any;
189
+ /**
190
+ * @description merge 策略: 将opt2 merge到opt1, 对于opt1已有的key-value, 默认不覆盖(可由predicate决定), 对于opt2中新的key-value, 追加到opt1中。传入
191
+ * deep值表示是否深度执行merge逻辑(不传入则为true). 函数将更改opt1的值, 同时返回opt1
192
+ * @param opt1 {Object} opt1中的k-v将保留。如果不是object类型或者是null类型,则直接返回op1
193
+ * @param opt2 {Object} 不会改变opt2。如果不是object类型或者是null类型,则直接返回op1
194
+ * @param deep {boolean} 是否深拷贝模式, 默认true
195
+ * @param ignoreNullAndUndefined {boolean} 若为true, 则当opt2中的键值如果是null或undefined, 则不会覆盖到opt1中。默认是false
196
+ * @param coverFn {Function} 具体k-v合并时的断言。当opt1, opt2有相同key时, 有时我们也希望能合并, 这时可以通过此参数来决定, 提供一个函数,参数: opt1, opt2, key, 返回true/false, 为true则表示也合并, 否则不合并
197
+ * @returns {Object} 返回merge后的opt1的深拷贝对象
198
+ */
199
+ export function merge(opt1: any, opt2: any, deep?: boolean, ignoreNullAndUndefined?: boolean, coverFn?: Function): any;
200
+ /**
201
+ * 将opt2中key的值,赋值到opt1中的同名key上;若opt1上没有同名key则忽略。返回值更新后的opt1
202
+ * @description
203
+ * @param opt1 {Object}
204
+ * @param opt2 {Object}
205
+ * @param deep {boolean}
206
+ * @param ignoreNullAndUndefined {boolean}
207
+ */
208
+ export function mergeValue(opt1: any, opt2: any, deep?: boolean, ignoreNullAndUndefined?: boolean): any;
209
+ /**
210
+ * @description merge 策略2: 对两个对象中的属性和值执行merge操作, 将opt2中的key-value根据key merge到opt1上: 若op1也存在这个key,则取opt2这个key的值
211
+ * 覆盖到opt1上; 若opt1中不存在, 则会被直接追加到opt1中, 因此函数会更改opt1, 执行完后, opt1将是merge后的对象。最后将opt1的深拷贝返回
212
+ * @param opt1 {Object} opt1中的k-v将被覆盖。如果不是object类型或者是null类型,则直接返回op1
213
+ * @param opt2 {Object} 如果不是object类型或者是null类型,则直接返回op1
214
+ * @param deep {boolean} 是否深拷贝模式, 默认true
215
+ * @param ignoreNullAndUndefined {boolean} 若为true, 则当opt2中的键值如果是null或undefined, 则不会覆盖到opt1中。默认是false
216
+ * @returns {Object} 返回merge后的opt1的深拷贝对象
217
+ */
218
+ export function coverMerge(opt1: any, opt2: any, deep?: boolean, ignoreNullAndUndefined?: boolean): any;
219
+ /**
220
+ * 解析语法彩蛋条件
221
+ * @param cond
222
+ * @param optMapping
223
+ * @return {*}
224
+ */
225
+ export function easyOptParse(cond: any, optMapping?: {}): any;
226
+ /**
227
+ * 向数组中去重添加元素, 如果重复, 则以item覆盖重复的元素(保持位置)。如果不存在重复元素,则添加,根据addToStart参数决定添加到数组的开头还是结尾(push/unshift)
228
+ * @param arr 数组
229
+ * @param item 待添加的元素
230
+ * @param repeatPredicate 去重断言函数, 返回去重判断的结果值(true/false)
231
+ * @param addToStart 添加到数组的开头还是结果(push/unshift)
232
+ */
233
+ export function noRepeatAdd(arr: any, item: any, repeatPredicate?: (ele: any, item: any) => boolean, addToStart?: boolean): void;
234
+ export function getNameFromUrl(url: any): string;
235
+ /**
236
+ * 从fileItems中获取第一个url。
237
+ * @param fileItems 期望是[{name:'', url:''}, ..],如果非数组或空数组,返回null; 为数组则取首个元素,首个元素为对象类型,取url属性返回, 否则直接返回
238
+ * @returns {*|null}
239
+ */
240
+ export function getFirstUrlFromFileItems(fileItems: any): any | null;
241
+ /**
242
+ * 获取元素的完整高度, 包括offsetHeight + 上下margin值
243
+ * @param ele
244
+ */
245
+ export function getFullHeight(ele: any): any;
246
+ /**
247
+ * 获取元素内部高度, 内高
248
+ * @param ele
249
+ * @returns {number}
250
+ */
251
+ export function getInnerHeight(ele: any): number;
252
+ /**
253
+ * 按前匹配或后匹配替换对象的键名。例如obj中有name_q, str为_q, 则替换后返回的对象里name_q变成name
254
+ * @param obj 对象
255
+ * @param str 前缀或后缀
256
+ * @param position 匹配位置. start: 前缀, end: 后缀。不传默认是end
257
+ * @returns {{}}
258
+ */
259
+ export function replaceKey(obj: any, str: any, position?: string): {};
260
+ /**
261
+ * 从属性key中提取事件名。例如: onChange 提取出来就是change
262
+ * @param key
263
+ * @return {string|null}
264
+ */
265
+ export function extractEventName(key: any): string | null;
266
+ /**
267
+ * 生成css grid布局中的gridTemplateAreas值
268
+ * @param rowNum 每行的数量
269
+ * @param totalItems 对象数组或者普通数组, 如果是对象数组, 则判断每个元素是否含有block, 若含有则将当前行全部命名为相同的区域名;若非对象数组或者不含有block则维持原逻辑
270
+ * @return {string} 可直接用于grid-template-areas
271
+ */
272
+ export function buildGridTemplateAreas(rowNum: any, totalItems: any): string;
273
+ /**
274
+ * 将str中的插值替换为obj中的真实值。例如"/user?id={id}" 则将取obj中的id属性值替换为 "/user?id=2"
275
+ * @param str
276
+ * @param obj
277
+ */
278
+ export function strFormat(str: any, obj: any): any;
279
+ /**
280
+ * 提取 URL 字符串中的 query 参数为对象
281
+ * @param {string} url
282
+ * @returns {Object} path和query为key组成的对象, 注意: 入参url若不是/开头,则返回的path值也不是/开头
283
+ */
284
+ export function extractUrlAndQueryParams(url: string): any;
285
+ /**
286
+ * 判断版本号是否大于等于目标版本, 若某个位不为数字,则视为0
287
+ * @param {string} current 当前版本号,如 "2.9.8"
288
+ * @param {string} target 目标版本号,如 "2.9.9"
289
+ * @returns {boolean} 当前版本 >= 目标版本 返回 true,否则 false
290
+ */
291
+ export function versionGte(current: string, target: string): boolean;
292
+ /**
293
+ * 转义值为label
294
+ * @param val 单个值或数组
295
+ * @param options
296
+ * @param valKey
297
+ * @param labelKey
298
+ * @return {*} 如果是数组返回的label值也是数据
299
+ */
300
+ export function escapeLabel(val: any, options: any, valKey: any, labelKey: any): any;
301
+ /**
302
+ * 递归地对对象的键进行排序
303
+ * * @param {*} obj
304
+ * @returns {*}
305
+ */
306
+ export function sortKey(obj: any): any;
307
+ export function ellipsis(val: any, len: any): string | any;
308
+ export function dateFormat(val: any, format: any): string;
309
+ export function getBeginOfDate(date: any): Date;
310
+ export function getBeginOfWeek(date: any): Date;
311
+ export function getBeginOfMonth(date: any): any;
package/package.json CHANGED
@@ -1,14 +1,24 @@
1
1
  {
2
2
  "name": "fast-crud-ui3",
3
- "version": "1.5.16",
3
+ "version": "1.5.18-beta",
4
4
  "type": "module",
5
5
  "main": "lib/fast-crud-ui3.cjs.js",
6
6
  "module": "lib/fast-crud-ui3.es.js",
7
+ "types": "lib/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./lib/index.d.ts",
11
+ "import": "./lib/fast-crud-ui3.es.js",
12
+ "require": "./lib/fast-crud-ui3.cjs.js"
13
+ },
14
+ "./lib/style.css": "./lib/style.css",
15
+ "./style.css": "./lib/style.css"
16
+ },
7
17
  "scripts": {
8
- "dev:local": "vite --mode local",
18
+ "dev:local": "vite --mode localhost",
9
19
  "dev:dev": "vite --mode dev",
10
20
  "build": "npm run build:lib && npm run build:demo",
11
- "build:lib": "vite build --mode library",
21
+ "build:lib": "vite build --mode library && cp packages/global.d.ts lib/global.d.ts",
12
22
  "build:demo": "vite build",
13
23
  "preview": "vite preview --port 4173",
14
24
  "pub:beta": "npm publish --tag beta --access public --registry https://registry.npmjs.org",
@@ -41,11 +51,14 @@
41
51
  "axios": "^1.7.9",
42
52
  "element-plus": "^2.3.12",
43
53
  "sass": "^1.82.0",
54
+ "typescript": "^5.9.3",
44
55
  "unplugin-auto-import": "^0.18.6",
45
56
  "unplugin-vue-components": "^0.27.5",
46
57
  "vite": "^4.5.5",
58
+ "vite-plugin-dts": "^4.5.4",
47
59
  "vitepress": "^1.6.3",
48
- "vue": "^3.4.0"
60
+ "vue": "^3.4.0",
61
+ "vue-tsc": "^3.1.8"
49
62
  },
50
63
  "peerDependencies": {
51
64
  "axios": "^1.7.9",
@@ -65,6 +78,7 @@
65
78
  },
66
79
  "files": [
67
80
  "lib",
68
- "README.md"
81
+ "README.md",
82
+ "packages"
69
83
  ]
70
84
  }