vue-super-crud 1.7.1

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 (291) hide show
  1. package/.browserslistrc +3 -0
  2. package/.versionrc.json +36 -0
  3. package/CHANGELOG.md +232 -0
  4. package/LICENSE +201 -0
  5. package/README.md +46 -0
  6. package/babel.config.js +12 -0
  7. package/build/alias.js +10 -0
  8. package/build/build.js +52 -0
  9. package/build/config.js +70 -0
  10. package/deploy.bat +14 -0
  11. package/docs/.vuepress/components/button/base.vue +88 -0
  12. package/docs/.vuepress/components/common/code-format.vue +331 -0
  13. package/docs/.vuepress/components/commonConfig/presetCodeTemplate/base.vue +68 -0
  14. package/docs/.vuepress/components/commonConfig/presetCodeTemplate/customParams.vue +73 -0
  15. package/docs/.vuepress/components/commonConfig/renderType/component.vue +160 -0
  16. package/docs/.vuepress/components/commonConfig/renderType/formatter.vue +49 -0
  17. package/docs/.vuepress/components/commonConfig/renderType/render.vue +91 -0
  18. package/docs/.vuepress/components/commonConfig/renderType/slot.vue +63 -0
  19. package/docs/.vuepress/components/crud/baseUse/baseUse.vue +98 -0
  20. package/docs/.vuepress/components/crud/baseUse/columnAction.vue +72 -0
  21. package/docs/.vuepress/components/crud/baseUse/columnWidth.vue +107 -0
  22. package/docs/.vuepress/components/crud/baseUse/handleRow.vue +65 -0
  23. package/docs/.vuepress/components/crud/baseUse/height.vue +82 -0
  24. package/docs/.vuepress/components/crud/baseUse/index.vue +54 -0
  25. package/docs/.vuepress/components/crud/baseUse/loading.vue +70 -0
  26. package/docs/.vuepress/components/crud/baseUse/pagination.vue +108 -0
  27. package/docs/.vuepress/components/crud/baseUse/selection.vue +114 -0
  28. package/docs/.vuepress/components/crud/baseUse/summaryMethod.vue +118 -0
  29. package/docs/.vuepress/components/crud/baseUse/title.vue +54 -0
  30. package/docs/.vuepress/components/crud/baseUse/toolbar.vue +69 -0
  31. package/docs/.vuepress/components/crud/buttons/common.vue +115 -0
  32. package/docs/.vuepress/components/crud/buttons/fast.vue +82 -0
  33. package/docs/.vuepress/components/crud/contextMenu/base.vue +72 -0
  34. package/docs/.vuepress/components/crud/copy.vue +52 -0
  35. package/docs/.vuepress/components/crud/crudEvents/api.vue +157 -0
  36. package/docs/.vuepress/components/crud/crudEvents/deleteTip.vue +93 -0
  37. package/docs/.vuepress/components/crud/crudEvents/events.vue +188 -0
  38. package/docs/.vuepress/components/crud/dataSort/base.vue +142 -0
  39. package/docs/.vuepress/components/crud/genDynamicColumns/base.vue +53 -0
  40. package/docs/.vuepress/components/crud/genDynamicColumns/dynamicAndFixed.vue +111 -0
  41. package/docs/.vuepress/components/crud/genDynamicColumns/treeDynamic.vue +68 -0
  42. package/docs/.vuepress/components/crud/handleBar/handleRow.vue +65 -0
  43. package/docs/.vuepress/components/crud/handleBar/toolbar.vue +69 -0
  44. package/docs/.vuepress/components/crud/renderType/1.vue +57 -0
  45. package/docs/.vuepress/components/crud/renderType/2.vue +63 -0
  46. package/docs/.vuepress/components/crud/renderType/3.vue +105 -0
  47. package/docs/.vuepress/components/crud/renderType/5.vue +91 -0
  48. package/docs/.vuepress/components/crud/search/1.vue +90 -0
  49. package/docs/.vuepress/components/crud/search/2.vue +78 -0
  50. package/docs/.vuepress/components/crud/search/3.vue +107 -0
  51. package/docs/.vuepress/components/crud/search/base.vue +123 -0
  52. package/docs/.vuepress/components/crud/search/localSearch.vue +124 -0
  53. package/docs/.vuepress/components/crud/search/special.vue +148 -0
  54. package/docs/.vuepress/components/crud/selection/events.vue +47 -0
  55. package/docs/.vuepress/components/crud/selection/pagination.vue +94 -0
  56. package/docs/.vuepress/components/crud/selection/singleSelection.vue +64 -0
  57. package/docs/.vuepress/components/crud/span/base.vue +69 -0
  58. package/docs/.vuepress/components/crud/span/special.vue +75 -0
  59. package/docs/.vuepress/components/crud/summary/base.vue +99 -0
  60. package/docs/.vuepress/components/crud/tableEdit/addDeleteBtn.vue +174 -0
  61. package/docs/.vuepress/components/crud/tableEdit/cellEdit.vue +194 -0
  62. package/docs/.vuepress/components/crud/tableEdit/controlEdit.vue +219 -0
  63. package/docs/.vuepress/components/crud/tableEdit/dialog.vue +172 -0
  64. package/docs/.vuepress/components/crud/tableEdit/free.vue +88 -0
  65. package/docs/.vuepress/components/crud/tableEdit/freeColumn.vue +82 -0
  66. package/docs/.vuepress/components/crud/tableEdit/methods.vue +154 -0
  67. package/docs/.vuepress/components/crud/tableEdit/rowAction.vue +107 -0
  68. package/docs/.vuepress/components/crud/tableEdit/rowBatch.vue +116 -0
  69. package/docs/.vuepress/components/crud/tableEdit/rowClick.vue +98 -0
  70. package/docs/.vuepress/components/crud/validate/base.vue +122 -0
  71. package/docs/.vuepress/components/crud/validate/custom.vue +82 -0
  72. package/docs/.vuepress/components/crud/validate/regulars.vue +88 -0
  73. package/docs/.vuepress/components/crud/validate/relation.vue +91 -0
  74. package/docs/.vuepress/components/crud/validate/tree.vue +82 -0
  75. package/docs/.vuepress/components/dialog/baseUse/base.vue +92 -0
  76. package/docs/.vuepress/components/dialog/baseUse/beforeConfirm.vue +78 -0
  77. package/docs/.vuepress/components/dialog/baseUse/control.vue +79 -0
  78. package/docs/.vuepress/components/dialog/baseUse/drawer.vue +59 -0
  79. package/docs/.vuepress/components/dialog/baseUse/footer.vue +87 -0
  80. package/docs/.vuepress/components/dialog/baseUse/insertSlot.vue +79 -0
  81. package/docs/.vuepress/components/dict/DictLinkage.vue +91 -0
  82. package/docs/.vuepress/components/dict/baseUse.vue +72 -0
  83. package/docs/.vuepress/components/dict/component.vue +82 -0
  84. package/docs/.vuepress/components/dict/localDict.vue +68 -0
  85. package/docs/.vuepress/components/form/baseUse/base.vue +48 -0
  86. package/docs/.vuepress/components/form/baseUse/dataFormat.vue +92 -0
  87. package/docs/.vuepress/components/form/baseUse/deep.vue +57 -0
  88. package/docs/.vuepress/components/form/baseUse/gridLayout.vue +47 -0
  89. package/docs/.vuepress/components/form/baseUse/group.vue +66 -0
  90. package/docs/.vuepress/components/form/baseUse/hidden.vue +40 -0
  91. package/docs/.vuepress/components/form/baseUse/inlineLayout.vue +48 -0
  92. package/docs/.vuepress/components/form/baseUse/label.vue +51 -0
  93. package/docs/.vuepress/components/form/baseUse/tooltip.vue +40 -0
  94. package/docs/.vuepress/components/form/baseUse/validate.vue +52 -0
  95. package/docs/.vuepress/components/form/detail/base.vue +78 -0
  96. package/docs/.vuepress/components/form/detail/border.vue +90 -0
  97. package/docs/.vuepress/components/form/detail/singleDetail.vue +72 -0
  98. package/docs/.vuepress/components/formatData/baseUse.vue +131 -0
  99. package/docs/.vuepress/components/mock/index.js +347 -0
  100. package/docs/.vuepress/components/mockData/custom.vue +69 -0
  101. package/docs/.vuepress/components/mockData/example.vue +290 -0
  102. package/docs/.vuepress/components/positionSlot/base.vue +24 -0
  103. package/docs/.vuepress/components/positionSlot/form.vue +71 -0
  104. package/docs/.vuepress/components/positionSlot/table.vue +85 -0
  105. package/docs/.vuepress/components/tabs/base.vue +57 -0
  106. package/docs/.vuepress/components/temp.js +195 -0
  107. package/docs/.vuepress/config.js +146 -0
  108. package/docs/.vuepress/enhanceApp.js +142 -0
  109. package/docs/.vuepress/public/favicon.ico +0 -0
  110. package/docs/.vuepress/public/super.png +0 -0
  111. package/docs/.vuepress/styles/index.styl +25 -0
  112. package/docs/.vuepress/styles/palette.styl +6 -0
  113. package/docs/README.md +14 -0
  114. package/docs/guide/button/base.md +31 -0
  115. package/docs/guide/commonConfig/jsx.md +166 -0
  116. package/docs/guide/commonConfig/presetCodeTemplate.md +68 -0
  117. package/docs/guide/commonConfig/renderType.md +181 -0
  118. package/docs/guide/crud/baseUse.md +120 -0
  119. package/docs/guide/crud/buttons.md +18 -0
  120. package/docs/guide/crud/config.md +217 -0
  121. package/docs/guide/crud/contextMenu.md +18 -0
  122. package/docs/guide/crud/dataSort.md +66 -0
  123. package/docs/guide/crud/genDynamicColumns.md +145 -0
  124. package/docs/guide/crud/handleBar.md +26 -0
  125. package/docs/guide/crud/renderType.md +4 -0
  126. package/docs/guide/crud/search.md +150 -0
  127. package/docs/guide/crud/selection.md +73 -0
  128. package/docs/guide/crud/span.md +98 -0
  129. package/docs/guide/crud/summary.md +167 -0
  130. package/docs/guide/crud/tableEdit.md +377 -0
  131. package/docs/guide/crud/validate.md +158 -0
  132. package/docs/guide/dialog/baseUse.md +81 -0
  133. package/docs/guide/dict/baseUse.md +174 -0
  134. package/docs/guide/dict/component.md +88 -0
  135. package/docs/guide/dict/config.md +44 -0
  136. package/docs/guide/form/baseUse.md +142 -0
  137. package/docs/guide/form/detail.md +38 -0
  138. package/docs/guide/formatData/baseUse.md +98 -0
  139. package/docs/guide/formatData/config.md +142 -0
  140. package/docs/guide/mockData/base.md +26 -0
  141. package/docs/guide/positionSlot/base.md +41 -0
  142. package/docs/guide/question/base.md +44 -0
  143. package/docs/guide/start/base.md +30 -0
  144. package/docs/guide/tabs/base.md +63 -0
  145. package/examples/App.vue +52 -0
  146. package/examples/Layout/components/AppMain.vue +40 -0
  147. package/examples/Layout/components/Item.vue +29 -0
  148. package/examples/Layout/components/Link.vue +44 -0
  149. package/examples/Layout/components/SidebarItem.vue +93 -0
  150. package/examples/Layout/index.vue +69 -0
  151. package/examples/assets/logo.png +0 -0
  152. package/examples/favicon.ico +0 -0
  153. package/examples/index.html +18 -0
  154. package/examples/main.js +54 -0
  155. package/examples/router/index.js +140 -0
  156. package/examples/store/index.js +0 -0
  157. package/examples/styles/index.scss +63 -0
  158. package/examples/styles/sidebar.scss +226 -0
  159. package/examples/styles/transition.scss +48 -0
  160. package/examples/styles/variables.scss +25 -0
  161. package/examples/views/crud/base.vue +68 -0
  162. package/examples/views/crud/handleRow.vue +84 -0
  163. package/examples/views/crud/search.vue +116 -0
  164. package/examples/views/dashboard/index.vue +244 -0
  165. package/examples/views/dashboard/index1.vue +234 -0
  166. package/examples/views/dashboard/test.vue +9 -0
  167. package/examples/views/formTest/index.vue +168 -0
  168. package/examples/views/nested/menu1/index.vue +7 -0
  169. package/examples/views/nested/menu1/menu1-1/index.vue +7 -0
  170. package/examples/views/nested/menu1/menu1-2/index.vue +7 -0
  171. package/examples/views/nested/menu1/menu1-2/menu1-2-1/index.vue +5 -0
  172. package/examples/views/nested/menu1/menu1-2/menu1-2-2/index.vue +5 -0
  173. package/examples/views/nested/menu1/menu1-3/index.vue +5 -0
  174. package/examples/views/nested/menu2/index.vue +5 -0
  175. package/gulpfile.js +84 -0
  176. package/lib/index.css +1 -0
  177. package/lib/super-crud.min.js +15 -0
  178. package/package.json +66 -0
  179. package/packages/button/index.vue +189 -0
  180. package/packages/core/components/comp.vue +223 -0
  181. package/packages/core/components/position.vue +135 -0
  182. package/packages/core/components/render.vue +460 -0
  183. package/packages/core/configManager.js +302 -0
  184. package/packages/core/create.js +8 -0
  185. package/packages/core/defaultRender.js +64 -0
  186. package/packages/core/dict/global.js +10 -0
  187. package/packages/core/dict/index.js +432 -0
  188. package/packages/core/dict/mixin.js +94 -0
  189. package/packages/core/event.js +60 -0
  190. package/packages/core/index.js +6 -0
  191. package/packages/core/init.js +122 -0
  192. package/packages/core/mock/genConfig.js +228 -0
  193. package/packages/core/mock/genData.js +422 -0
  194. package/packages/core/mock/index.js +4 -0
  195. package/packages/core/rules.js +111 -0
  196. package/packages/crud/column.vue +205 -0
  197. package/packages/crud/columnAction.vue +207 -0
  198. package/packages/crud/columnCell.vue +146 -0
  199. package/packages/crud/defaultColumn.vue +130 -0
  200. package/packages/crud/drawerColumn.vue +225 -0
  201. package/packages/crud/form.vue +69 -0
  202. package/packages/crud/index.vue +564 -0
  203. package/packages/crud/menuBar.vue +298 -0
  204. package/packages/crud/mixins/cacheHandler.js +36 -0
  205. package/packages/crud/mixins/calcColumnWidth.js +79 -0
  206. package/packages/crud/mixins/calcHeight.js +105 -0
  207. package/packages/crud/mixins/columnHandler.js +128 -0
  208. package/packages/crud/mixins/contextMenu.js +98 -0
  209. package/packages/crud/mixins/dataProcessor.js +202 -0
  210. package/packages/crud/mixins/dialog.js +109 -0
  211. package/packages/crud/mixins/excelHandler.js +150 -0
  212. package/packages/crud/mixins/exposeMethods.js +107 -0
  213. package/packages/crud/mixins/generateDynamicColumns.js +250 -0
  214. package/packages/crud/mixins/props.js +38 -0
  215. package/packages/crud/mixins/searchHandler.js +151 -0
  216. package/packages/crud/mixins/select.js +359 -0
  217. package/packages/crud/mixins/spanMethod.js +288 -0
  218. package/packages/crud/mixins/summary.js +177 -0
  219. package/packages/crud/mixins/tableEdit.js +547 -0
  220. package/packages/crud/mixins/validate.js +219 -0
  221. package/packages/crud/pagination.vue +110 -0
  222. package/packages/crud/search.vue +119 -0
  223. package/packages/crud/searchHeader.vue +231 -0
  224. package/packages/crud/selectBanner.vue +138 -0
  225. package/packages/crud/utils/EditState.js +319 -0
  226. package/packages/crud/utils/excelExport.js +112 -0
  227. package/packages/crud/utils/excelImport.js +112 -0
  228. package/packages/crud/utils/index.js +98 -0
  229. package/packages/dialog/dialog.js +233 -0
  230. package/packages/dialog/dialog.vue +15 -0
  231. package/packages/dialog/index.js +22 -0
  232. package/packages/dict/cascadeFormat.vue +179 -0
  233. package/packages/dict/dateFormat.vue +40 -0
  234. package/packages/dict/form/cascade.vue +61 -0
  235. package/packages/dict/form/checkbox.vue +90 -0
  236. package/packages/dict/form/extendMethod.js +22 -0
  237. package/packages/dict/form/input-base.js +31 -0
  238. package/packages/dict/form/input.js +20 -0
  239. package/packages/dict/form/radio.vue +69 -0
  240. package/packages/dict/form/select.vue +118 -0
  241. package/packages/dict/form/switch.vue +75 -0
  242. package/packages/dict/valueFormat.vue +188 -0
  243. package/packages/directive/dialog/drag.js +86 -0
  244. package/packages/directive/dialog/dragSize.js +42 -0
  245. package/packages/directive/index.js +9 -0
  246. package/packages/directive/insertSlot.js +10 -0
  247. package/packages/form/contextMenu.js +192 -0
  248. package/packages/form/draftDrawer.vue +391 -0
  249. package/packages/form/formAction.vue +97 -0
  250. package/packages/form/formItem.vue +259 -0
  251. package/packages/form/index.vue +451 -0
  252. package/packages/form/props.js +15 -0
  253. package/packages/grid/cell.vue +65 -0
  254. package/packages/grid/index.vue +130 -0
  255. package/packages/group/index.vue +96 -0
  256. package/packages/tabs/index.vue +290 -0
  257. package/packages/tooltip/index.js +9 -0
  258. package/packages/tooltip/tooltip.vue +32 -0
  259. package/packages/tooltip/tooltipComponent.js +38 -0
  260. package/packages/verifyInput/index.vue +131 -0
  261. package/src/config/common.js +88 -0
  262. package/src/config/crud.js +567 -0
  263. package/src/config/dialog.js +87 -0
  264. package/src/config/form.js +215 -0
  265. package/src/config/index.js +9 -0
  266. package/src/constants/index.js +72 -0
  267. package/src/index.js +67 -0
  268. package/src/template/btn/crud.js +6 -0
  269. package/src/template/btn/dialog.js +1 -0
  270. package/src/template/btn/form.js +3 -0
  271. package/src/template/btn/index.js +9 -0
  272. package/src/template/dicts.js +1 -0
  273. package/src/template/formatData.js +507 -0
  274. package/src/template/index.js +19 -0
  275. package/src/template/render.js +124 -0
  276. package/src/template/rules.js +53 -0
  277. package/src/utils/bem.js +49 -0
  278. package/src/utils/cache.js +77 -0
  279. package/src/utils/getType.js +34 -0
  280. package/src/utils/index.js +212 -0
  281. package/src/utils/mergeTemp.js +124 -0
  282. package/styles/button.scss +3 -0
  283. package/styles/crud.scss +425 -0
  284. package/styles/dialog.scss +95 -0
  285. package/styles/form.scss +532 -0
  286. package/styles/group.scss +78 -0
  287. package/styles/index.scss +94 -0
  288. package/styles/tabs.scss +139 -0
  289. package/styles/verifyInput.scss +56 -0
  290. package/vue-jsx-sync.js +90 -0
  291. package/vue.config.js +54 -0
@@ -0,0 +1,168 @@
1
+ <template>
2
+ <div>
3
+ <sc-form v-model="formData" ref="form" :options="options"> </sc-form>
4
+ <el-button type="primary" size="default" @click="openDialog(false)"
5
+ >Dialog</el-button
6
+ >
7
+ <el-button type="primary" size="default" @click="openDialog(true)"
8
+ >Drawer</el-button
9
+ >
10
+ <div>字典数据:{{ $sc_dicts.data["sys_notice_status"] }}</div>
11
+ </div>
12
+ </template>
13
+
14
+ <script>
15
+ export default {
16
+ data() {
17
+ return {
18
+ checkList: [],
19
+ formData: {
20
+ checkList1: ["张三", "李四"],
21
+ dateStart: "2022-01-03",
22
+ dateEnd: "2022-01-25",
23
+ },
24
+ dictData: [
25
+ {
26
+ value: "张三",
27
+ label: "1111",
28
+ },
29
+ {
30
+ value: "李四",
31
+ label: "2222",
32
+ },
33
+ ],
34
+ a: {
35
+ value: "张三",
36
+ label: "1111",
37
+ },
38
+ };
39
+ },
40
+ mounted() {
41
+ this.$sc_dicts.get(["sys_status", "sys_notice_status", "listAll"]);
42
+
43
+ setTimeout(() => {
44
+ console.log(this.$sc_dicts.getMap("listAll"));
45
+ }, 1000);
46
+ },
47
+ computed: {
48
+ options() {
49
+ return {
50
+ // detail: true,
51
+ action: {
52
+ search: {},
53
+ reset: {},
54
+ },
55
+ renderColumns: [
56
+ {
57
+ label: "11111",
58
+ icon: "el-icon-user",
59
+ collapse: false,
60
+ children: [
61
+ {
62
+ label: "年龄",
63
+ prop: "name",
64
+ labelPosition: "top",
65
+ comp: (scope) => {
66
+ return {
67
+ name: "el-select",
68
+ clearable: true,
69
+ on: {
70
+ change(v, a, vm) {
71
+ console.log(v, a, vm, scope);
72
+ },
73
+ },
74
+ children: (this.$sc_dicts.data["sys_notice_status"] || []).map(
75
+ (i) => ({
76
+ name: "el-option",
77
+ label: i.label,
78
+ value: i.value,
79
+ })
80
+ ),
81
+ };
82
+ },
83
+ rules: {
84
+ required: {},
85
+ },
86
+ },
87
+ {
88
+ label: "日期",
89
+ prop: "dateStart-dateEnd",
90
+ formatTemp: {
91
+ inner: (value, key, inner, outer) => {
92
+ return value;
93
+ },
94
+ outer: (value, key, outer, inner) => {
95
+ return value;
96
+ },
97
+ },
98
+ render: (h, { form }) => {
99
+ return (
100
+ <el-date-picker
101
+ v-model={form["dateStart-dateEnd"]}
102
+ value-format="yyyy-MM-dd"
103
+ type="daterange"
104
+ range-separator="至"
105
+ start-placeholder="开始日期"
106
+ end-placeholder="结束日期"
107
+ ></el-date-picker>
108
+ );
109
+ },
110
+ },
111
+ ],
112
+ },
113
+ {
114
+ label: "11111",
115
+ children: [
116
+ {
117
+ label: "年龄",
118
+ prop: "checkList",
119
+ rules: {
120
+ required: {},
121
+ },
122
+ formatTemp: "str2array",
123
+ comp: (scope) => {
124
+ return {
125
+ name: "el-checkbox-group",
126
+ children: this.dictData.map((i) => ({
127
+ name: "el-checkbox",
128
+ label: i.value,
129
+ children: i.label,
130
+ })),
131
+ };
132
+ },
133
+ },
134
+ ],
135
+ },
136
+ ],
137
+ };
138
+ },
139
+ },
140
+ methods: {
141
+ openDialog(drawer) {
142
+ const dialog = this.$dialog({
143
+ drawer,
144
+ presetType: "success-msg",
145
+ // class: "1231231",
146
+ // title: "测试",
147
+ // width: "1000px",
148
+ // cache: true,
149
+ // comp: {
150
+ // name: "div",
151
+ // children: "12321312",
152
+ // },
153
+ // render: () => {
154
+ // return <div ref="test">23423432</div>;
155
+ // },
156
+ beforeClose: (done, val) => {
157
+ if (val === "cancel") {
158
+ done();
159
+ }
160
+ },
161
+ });
162
+ dialog.show().then((res) => {});
163
+ },
164
+ },
165
+ };
166
+ </script>
167
+
168
+ <style lang="scss" scoped></style>
@@ -0,0 +1,7 @@
1
+ <template>
2
+ <div style="padding:30px;">
3
+ <el-alert :closable="false" title="menu 1">
4
+ <router-view />
5
+ </el-alert>
6
+ </div>
7
+ </template>
@@ -0,0 +1,7 @@
1
+ <template>
2
+ <div style="padding:30px;">
3
+ <el-alert :closable="false" title="menu 1-1" type="success">
4
+ <router-view />
5
+ </el-alert>
6
+ </div>
7
+ </template>
@@ -0,0 +1,7 @@
1
+ <template>
2
+ <div style="padding:30px;">
3
+ <el-alert :closable="false" title="menu 1-2" type="success">
4
+ <router-view />
5
+ </el-alert>
6
+ </div>
7
+ </template>
@@ -0,0 +1,5 @@
1
+ <template functional>
2
+ <div style="padding:30px;">
3
+ <el-alert :closable="false" title="menu 1-2-1" type="warning" />
4
+ </div>
5
+ </template>
@@ -0,0 +1,5 @@
1
+ <template functional>
2
+ <div style="padding:30px;">
3
+ <el-alert :closable="false" title="menu 1-2-2" type="warning" />
4
+ </div>
5
+ </template>
@@ -0,0 +1,5 @@
1
+ <template functional>
2
+ <div style="padding:30px;">
3
+ <el-alert :closable="false" title="menu 1-3" type="success" />
4
+ </div>
5
+ </template>
@@ -0,0 +1,5 @@
1
+ <template>
2
+ <div style="padding:30px;">
3
+ <el-alert :closable="false" title="menu 2" />
4
+ </div>
5
+ </template>
package/gulpfile.js ADDED
@@ -0,0 +1,84 @@
1
+ const gulp = require("gulp");
2
+ const sass = require("gulp-sass")(require("sass"));
3
+ var autoprefixer = require("gulp-autoprefixer");
4
+ var cssmin = require("gulp-cssmin");
5
+ const webpack = require("webpack");
6
+ const webpackConf = require("./build/build.js");
7
+
8
+ // 构建webpack配置
9
+ gulp.task("webpack", async function () {
10
+ try {
11
+ const stats = await new Promise((resolve, reject) => {
12
+ webpack(webpackConf, (err, stats) => {
13
+ if (err) {
14
+ reject(err);
15
+ return;
16
+ }
17
+ resolve(stats);
18
+ });
19
+ });
20
+
21
+ // 处理编译过程中的错误和警告
22
+ const info = stats.toJson();
23
+
24
+ if (stats.hasErrors()) {
25
+ console.error("\x1b[31m%s\x1b[0m", "打包失败!"); // 红色文字
26
+ console.error(info.errors);
27
+ throw new Error("Webpack 编译失败");
28
+ }
29
+
30
+ if (stats.hasWarnings()) {
31
+ console.warn("\x1b[33m%s\x1b[0m", "打包警告:"); // 黄色文字
32
+ console.warn(info.warnings);
33
+ }
34
+
35
+ console.log("\x1b[32m%s\x1b[0m", "打包成功!"); // 绿色文字
36
+ } catch (error) {
37
+ console.error("\x1b[31m%s\x1b[0m", "打包过程发生错误:"); // 红色文字
38
+ console.error(error);
39
+ throw error; // 抛出错误以中断 gulp 任务
40
+ }
41
+ });
42
+
43
+ // 处理样式的配置
44
+ gulp.task("compile", function () {
45
+ return gulp
46
+ .src("./styles/index.scss")
47
+ .pipe(sass())
48
+ .pipe(
49
+ autoprefixer({
50
+ browsers: ["ie > 9", "last 2 versions"],
51
+ cascade: false,
52
+ })
53
+ )
54
+ .pipe(cssmin())
55
+ .pipe(gulp.dest("./lib/"));
56
+ });
57
+
58
+ // 打包文件
59
+ gulp.task("build", gulp.series(["compile", "webpack"]));
60
+
61
+ function debounce(func, wait) {
62
+ let timeout;
63
+
64
+ return function () {
65
+ let context = this;
66
+ let args = arguments;
67
+
68
+ clearTimeout(timeout);
69
+ timeout = setTimeout(function () {
70
+ func.apply(context, args);
71
+ }, wait);
72
+ };
73
+ }
74
+
75
+ // 监听文件变化
76
+ gulp.task("listen", async function () {
77
+ gulp.watch(["./styles/**"], debounce(gulp.series(["compile"]), 2000));
78
+ gulp.watch(
79
+ ["./src/**", "./packages/**"],
80
+ debounce(gulp.series(["webpack"]), 2000)
81
+ );
82
+ });
83
+
84
+ gulp.task("watch", gulp.series(["compile", "webpack", "listen"]));
package/lib/index.css ADDED
@@ -0,0 +1 @@
1
+ .sc-crud .sc-crud-cell .el-form-item__content>.el-input-number .el-input .el-input__inner,.sc-crud .sc-crud-cell>.el-input-number .el-input .el-input__inner,.sc-crud td .cell>.el-input-number .el-input .el-input__inner,.sc-crud-search-header>.el-input-number .el-input .el-input__inner,.sc-form .el-form-item .el-input-number .el-input .el-input__inner{text-align:left}.sc-crud .el-table thead th,.sc-crud .el-table thead.is-group th{background-color:var(--background-color-base)}.sc-crud .el-table th.el-table__cell.is-sortable{cursor:auto}.sc-crud__maximize{position:fixed;top:0;left:0;overflow:auto;width:100%!important;height:100%!important;background-color:var(--color-white);z-index:1001}.sc-crud__handleRow,.sc-crud__toolbar{display:-webkit-box;display:-ms-flexbox;display:flex}.sc-crud__is-auto-height{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%;overflow:hidden}.sc-crud__is-auto-height .height--form{-webkit-box-flex:1;-ms-flex:1;flex:1;height:100%;overflow:hidden}.sc-crud__is-change-show-search .el-table__body-wrapper{overflow:hidden}.sc-crud .sc-crud-search{display:grid;overflow:hidden;-webkit-transition:all .3s;transition:all .3s;grid-template-rows:0fr}.sc-crud .sc-crud-search>.el-form{min-height:0}.sc-crud .sc-crud-search--show-search{margin-top:10px;grid-template-rows:1fr}.sc-crud .sc-crud-menuBar{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.sc-crud .sc-crud-menuBar__handleRow:not(:empty),.sc-crud .sc-crud-menuBar__toolbar:not(:empty){margin-bottom:10px}.sc-crud .sc-crud-column--header{display:inline-block}.sc-crud .sc-crud-column--header .search-btn{cursor:pointer;margin-left:5px}.sc-crud .sc-crud-column--header button:not(.el-button--primary){background-color:var(--background-color-base)}.sc-crud .el-table .is-required{position:relative}.sc-crud .el-table .is-required::before{position:absolute;top:0;left:4px;content:"*";color:var(--color-danger);margin-right:4px}.sc-crud .edit-cell .cell{padding:0!important}.sc-crud .edit-cell input{border:0;background-color:transparent}.sc-crud .edit-cell.error-badge:before,.sc-crud .edit-cell:before{top:-5px;left:-5px;border-width:5px;border-style:solid;position:absolute}.sc-crud .edit-cell .el-input__inner{padding:15px}.sc-crud .edit-cell .el-input__prefix{left:-5px}.sc-crud .edit-cell .el-input__prefix .el-icon-date:before,.sc-crud .edit-cell .el-input__prefix .el-icon-time:before{display:none}.sc-crud .edit-cell .el-input__suffix{right:-5px}.sc-crud .edit-cell:before{content:"";border-color:transparent var(--color-primary) transparent transparent;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.sc-crud .edit-cell.error-badge:before{content:"";border-color:transparent var(--color-danger) transparent transparent;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.sc-crud .edit-cell.error-badge{background:#fee6e6!important}.sc-crud .edit-cell.error-badge .el-input__inner::-webkit-input-placeholder{color:var(--color-danger)!important}.sc-crud .edit-cell.error-badge .el-input__inner::-moz-placeholder{color:var(--color-danger)!important}.sc-crud .edit-cell.error-badge .el-input__inner::-ms-input-placeholder{color:var(--color-danger)!important}.sc-crud .edit-cell.error-badge .el-input__inner::placeholder{color:var(--color-danger)!important}.sc-crud .sc-crud-cell__edit--active{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%}.sc-crud .sc-crud-cell__edit--active .save-icon{-ms-flex-negative:0;flex-shrink:0;width:51px;margin-left:5px}.sc-crud .custom-cell .cell,.sc-crud__add-button{display:-webkit-box;display:-ms-flexbox;-webkit-box-align:center}.sc-crud .sc-crud-cell__edit{position:relative}.sc-crud .sc-crud-cell__edit .content{-webkit-transition:all .3s;transition:all .3s}.sc-crud .sc-crud-cell__edit--hover:hover .content{opacity:0}.sc-crud .custom-cell .cell{display:flex;-ms-flex-align:center;align-items:center;width:auto!important}.sc-crud .sc-crud-cell .el-form-item__content>.el-cascader,.sc-crud .sc-crud-cell .el-form-item__content>.el-date-editor,.sc-crud .sc-crud-cell .el-form-item__content>.el-input-number,.sc-crud .sc-crud-cell .el-form-item__content>.el-select,.sc-crud .sc-crud-cell .el-form-item__content>.el-textarea,.sc-crud .sc-crud-cell>.el-cascader,.sc-crud .sc-crud-cell>.el-date-editor,.sc-crud .sc-crud-cell>.el-input-number,.sc-crud .sc-crud-cell>.el-select,.sc-crud .sc-crud-cell>.el-textarea,.sc-crud td .cell>.el-cascader,.sc-crud td .cell>.el-date-editor,.sc-crud td .cell>.el-input-number,.sc-crud td .cell>.el-select,.sc-crud td .cell>.el-textarea,.sc-crud-search-header>.el-cascader,.sc-crud-search-header>.el-date-editor,.sc-crud-search-header>.el-input-number,.sc-crud-search-header>.el-select,.sc-crud-search-header>.el-textarea{width:100%!important}.sc-crud .cell>.el-form-item{margin-bottom:0}.sc-crud .sc-crud-action-column{white-space:nowrap}.sc-crud .sc-crud-action-column .el-button+.el-dropdown,.sc-crud .sc-crud-action-column .el-dropdown+.el-button{margin-left:10px}.sc-crud .sc-crud-pagination{padding:11px 0;background-color:var(--color-white)}.sc-crud__add-button{margin-top:15px;font-size:14px;height:32px;background:var(--color-white);border:1px dashed var(--color-primary);border-radius:4px;display:flex;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;color:var(--color-primary);cursor:pointer;-webkit-transition:border-style .5s;transition:border-style .5s}.sc-crud .sc-crud-select-banner,.sc-crud__add-button:active{background-color:var(--color-primary-light-9)}.sc-crud__add-button .el-icon-plus{margin-right:10px}.sc-crud__add-button:hover{border-style:solid}.sc-crud .sc-crud-cell .el-form-item__content>.el-input-number .el-input,.sc-crud .sc-crud-cell>.el-input-number .el-input,.sc-crud td .cell>.el-input-number .el-input{width:inherit}.sc-crud .sc-crud-cell--center .el-input__inner{text-align:center}.sc-crud .sc-crud-select-banner{border:1px solid var(--color-primary-light-7);padding:8px 16px;margin-bottom:12px;border-radius:4px;font-size:13px}.sc-crud .sc-crud-select-banner__banner-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--color-text-regular)}.sc-crud .sc-crud-select-banner__selected-items,.sc-crud .sc-crud-select-banner__selected-preview{margin:0 8px;color:var(--color-primary)}.sc-crud .sc-crud-select-banner__remove-tag{margin-left:4px;cursor:pointer}.sc-crud .sc-crud-select-banner__remove-tag.el-tag{background-color:transparent;border-color:transparent;padding:0 4px}.sc-crud .sc-crud-select-banner__remove-tag.el-tag .el-tag__close{color:var(--color-primary)}.sc-crud .sc-crud-select-banner__remove-tag.el-tag .el-tag__close:hover{color:var(--color-white);background-color:var(--color-primary)}.sc-crud .sc-crud-select-banner__banner-actions{margin-left:auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:16px}.sc-crud .sc-crud-select-banner__banner-actions .el-button--text{padding:0;height:auto}.sc-crud-select-banner__popover{min-width:200px;max-width:300px}.sc-crud-select-banner__popover-list{max-height:200px;overflow-y:auto}.sc-crud-select-banner__popover-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:6px 8px;font-size:13px}.sc-crud-select-banner__popover-item:not(:last-child){border-bottom:1px solid var(--border-color-lighter)}.sc-crud-select-banner__popover-remove-tag{margin-left:4px;cursor:pointer}.sc-crud-select-banner__popover-remove-tag.el-tag{background-color:transparent;border-color:transparent;padding:0 4px}.sc-crud-select-banner__popover-remove-tag.el-tag .el-tag__close{color:var(--color-primary)}.sc-crud-select-banner__popover-remove-tag.el-tag .el-tag__close:hover{color:var(--color-white);background-color:var(--color-primary)}.sc-crud-search-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.sc-crud-search-header>.el-input-number .el-input{width:inherit}.sc-crud__error-tip.el-tooltip__popper{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border:1px solid var(--color-danger);color:var(--color-white);background-color:var(--color-danger)}.sc-crud__error-tip.el-tooltip__popper.is-light .popper__arrow,.sc-crud__error-tip.el-tooltip__popper.is-light .popper__arrow::after{border-top-color:var(--color-danger)}.sc-crud-drawer .wrapper{padding:0 10px}.sc-crud-drawer .wrapper .el-card__body{padding:10px}.sc-crud-drawer .header .title{float:right;color:var(--color-text-secondary)}.sc-crud-drawer .reset-btn{width:100%;margin-top:10px}.sc-crud-drawer .col-list{margin-top:15px}.sc-crud-drawer .col-list .col-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;width:100%;padding:10px 0}.sc-crud-drawer .col-list .col-item .col-item--left{max-width:calc(100% - 70px);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.sc-crud-drawer .col-list .col-item .col-item--left .el-checkbox__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sc-crud-drawer .col-list .col-item .col-item--right{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:12px}.sc-group--arrow .el-collapse-item__arrow,.sc-group--header .el-collapse-item__header{display:none}.sc-crud-drawer .col-list .col-item .col-item--right .fixed-btn{padding:0}.sc-crud-drawer .col-list .col-item .col-item--right .sort-drag{cursor:move;margin-left:10px}.sc-crud-drawer .col-list .col-item .col-item--right .un-drag{cursor:no-drop;margin-left:10px}.contextmenu_menu{z-index:9999!important}.sc-group{width:100%}.sc-group .el-collapse,.sc-group .el-collapse-item__wrap{border-color:#fff}.sc-group .el-collapse-item__header{height:inherit;border:none}.sc-group .el-collapse-item__content{padding-bottom:0}.sc-group--border .el-collapse-item__header{border-bottom:1px solid #eee}.sc-group--none{margin:0!important;border:none!important}.sc-group--collapse .el-collapse-item__arrow,.sc-group--collapse .el-collapse-item__header{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.sc-group__item{margin-bottom:10px;background-color:#fff;border-bottom:1px solid #eee;border-radius:5px;-webkit-box-sizing:border-box;box-sizing:border-box}.sc-group__item:last-child{border-bottom:none}.sc-group__header{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:40px;line-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box}.sc-group__icon{margin-right:8px;font-size:20px;color:rgba(0,0,0,.85)}.sc-group__title{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:16px;font-weight:600;color:rgba(0,0,0,.85);margin:0}.sc-group__tag::before{content:"";width:5px;height:18px;margin-right:8px;border-radius:2px;background:var(--color-primary)}.sc-form .el-form-item,.sc-form .el-form-item .el-form-item__content .el-cascader,.sc-form .el-form-item .el-form-item__content .el-date-editor,.sc-form .el-form-item .el-form-item__content .el-select,.sc-form .el-form-item .el-form-item__content .el-textarea{width:100%}.sc-form .el-form-item .el-form-item__content .el-input-number .el-input{width:inherit}.sc-form .hidden-label .el-form-item__label{display:none!important}.sc-form .is-detail .el-input-number__decrease,.sc-form .is-detail .el-input-number__increase,.sc-form .is-detail .el-input__prefix,.sc-form .is-detail .el-input__suffix,.sc-form .is-detail.el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before,.sc-form .is-detail.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before{display:none}.sc-form .hidden-label .el-form-item__content{margin-left:0!important}.sc-form .shrink-label .el-form-item__label{font-weight:500}.sc-form .has-form-children{margin-bottom:0!important}.sc-form .sc-form-action--center{text-align:center}.sc-form .sc-form-action--center .el-button{margin:0 5px}.sc-form .is-detail,.sc-form .is-detail .el-collapse-item__header,.sc-form .is-detail.el-form-item--medium.el-form-item,.sc-form .is-detail.el-form-item--mini.el-form-item,.sc-form .is-detail.el-form-item--small.el-form-item{margin-bottom:0}.sc-form .sc-form-action--left{text-align:left}.sc-dialog__footer--right,.sc-form .sc-form-action--right{text-align:right}.sc-form .is-detail .el-input.is-disabled .el-input__inner,.sc-form .is-detail .el-range-editor.is-disabled,.sc-form .is-detail .el-range-editor.is-disabled input,.sc-form .is-detail .el-textarea.is-disabled .el-textarea__inner{color:var(--color-text-regular);background-color:#fff;padding-left:0}.sc-form .is-detail .el-input-group__append,.sc-form .is-detail .el-input-group__prepend{background-color:transparent;border:none}.sc-form .is-detail .el-input__inner,.sc-form .is-detail .el-textarea__inner{border:none}.sc-form .is-detail .el-input__inner::-webkit-input-placeholder,.sc-form .is-detail .el-textarea__inner::-webkit-input-placeholder{color:transparent!important}.sc-form .is-detail .el-input__inner::-moz-placeholder,.sc-form .is-detail .el-textarea__inner::-moz-placeholder{color:transparent!important}.sc-form .is-detail .el-input__inner::-ms-input-placeholder,.sc-form .is-detail .el-textarea__inner::-ms-input-placeholder{color:transparent!important}.sc-form .is-detail .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:var(--color-primary);border-color:var(--color-primary)}.sc-form .is-detail .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after{border-color:#fff}.sc-form .is-detail .el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:var(--color-primary);border-color:var(--color-primary)}.sc-form .is-detail .el-radio__input.is-disabled.is-checked .el-radio__inner::after{background-color:#fff}.sc-form .is-detail .el-checkbox__input.is-disabled+span.el-checkbox__label,.sc-form .is-detail .el-radio__input.is-disabled+span.el-radio__label{color:var(--color-text-regular)}.sc-form .is-detail .el-form-item__content,.sc-form .is-detail .el-form-item__label{padding:2px 0}.sc-form .is-detail .el-form-item__label{padding-right:20px;-webkit-box-sizing:border-box;box-sizing:border-box}.sc-form .is-detail .el-tag{margin-left:0!important;margin-right:6px!important}.sc-form .is-detail .sc-crud .el-form-item__content{border:none}.sc-form .is-detail .el-form-item__content{padding-left:20px;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:#fff}.sc-form--group .is-first-row:not(.is-detail){margin-top:20px}.sc-form--border .el-form{border-left:1px solid var(--border-color-lighter);-webkit-box-sizing:border-box;box-sizing:border-box}.sc-form--border .el-form .el-form-item{display:-webkit-box;display:-ms-flexbox;display:flex;border-bottom:1px solid var(--border-color-lighter);border-right:1px solid var(--border-color-lighter);margin:0;background:var(--background-color-base);-webkit-box-sizing:border-box;box-sizing:border-box;height:100%}.sc-form--border .el-form .el-form-item .el-form-item__label{width:var(--label-width);background:var(--background-color-base);float:none;padding:0 10px;line-height:35px}.sc-form--border .el-form .el-form-item .el-form-item__content{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;overflow:hidden;margin-left:0!important;border-left:1px solid var(--border-color-lighter);-webkit-box-sizing:border-box;box-sizing:border-box;background-color:#fff;height:100%;padding:0 10px;line-height:30px}.sc-form--border .is-first-row{border-top:1px solid var(--border-color-lighter)}.sc-form:hover .sc-form-toolbar{opacity:1;visibility:visible}.sc-form .sc-form-toolbar{position:absolute;right:0;bottom:0;z-index:1;-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:8px;display:-webkit-box;display:-ms-flexbox;display:flex;opacity:0;visibility:hidden;-webkit-transition:opacity .3s ease,visibility .3s ease;transition:opacity .3s ease,visibility .3s ease}.sc-dialog .el-dialog,.sc-dialog .el-drawer,.sc-form .sc-form-toolbar .toolbar-items,.sc-form-draft{-webkit-box-orient:vertical;-webkit-box-direction:normal}.sc-form .sc-form-toolbar .toolbar-trigger{width:48px;height:48px;border-radius:50%;background:#409eff;color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;cursor:pointer;-webkit-box-shadow:0 2px 8px 0 rgba(0,0,0,.1);box-shadow:0 2px 8px 0 rgba(0,0,0,.1);-webkit-transition:all .3s cubic-bezier(.4,0,.2,1);transition:all .3s cubic-bezier(.4,0,.2,1);z-index:1}.sc-form .sc-form-toolbar .toolbar-trigger i{font-size:24px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.sc-form .sc-form-toolbar .toolbar-trigger:hover{background:#66b1ff;-webkit-transform:scale(1.1);transform:scale(1.1)}.sc-form .sc-form-toolbar .toolbar-items{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:12px;margin-bottom:12px;opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px);visibility:hidden;-webkit-transition:all .3s cubic-bezier(.4,0,.2,1);transition:all .3s cubic-bezier(.4,0,.2,1)}.sc-form .sc-form-toolbar .toolbar-item{width:40px;height:40px;border-radius:50%;background:#fff;color:#606266;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;cursor:pointer;-webkit-box-shadow:0 2px 8px 0 rgba(0,0,0,.1);box-shadow:0 2px 8px 0 rgba(0,0,0,.1);-webkit-transition:all .3s;transition:all .3s}.sc-form .sc-form-toolbar .toolbar-item i{font-size:20px}.sc-form .sc-form-toolbar .toolbar-item:hover{background:#f5f7fa;-webkit-transform:scale(1.1);transform:scale(1.1);color:#409eff}.sc-form .sc-form-toolbar.is-expanded .toolbar-items{opacity:1;-webkit-transform:translateY(0);transform:translateY(0);visibility:visible}.sc-form .sc-form-toolbar.is-expanded .toolbar-trigger i{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.sc-form .dark .sc-form-toolbar .toolbar-item{background:#363636;color:#e0e0e0}.sc-form .dark .sc-form-toolbar .toolbar-item:hover{background:#404040}.sc-form .sc-form-toolbar--default .toolbar-trigger{width:44px;height:44px}.sc-form .sc-form-toolbar--default .toolbar-trigger i{font-size:24px}.sc-form .sc-form-toolbar--default .toolbar-items{gap:12px;margin-bottom:12px}.sc-form .sc-form-toolbar--medium .toolbar-items,.sc-form .sc-form-toolbar--small .toolbar-items{gap:10px;margin-bottom:10px}.sc-form .sc-form-toolbar--default .toolbar-item{width:36px;height:36px}.sc-form .sc-form-toolbar--default .toolbar-item i{font-size:18px}.sc-form .sc-form-toolbar--medium .toolbar-trigger{width:40px;height:40px}.sc-form .sc-form-toolbar--medium .toolbar-trigger i{font-size:22px}.sc-form .sc-form-toolbar--medium .toolbar-item{width:32px;height:32px}.sc-form .sc-form-toolbar--medium .toolbar-item i{font-size:16px}.sc-form .sc-form-toolbar--small .toolbar-trigger{width:36px;height:36px}.sc-form .sc-form-toolbar--small .toolbar-trigger i{font-size:20px}.sc-form .sc-form-toolbar--small .toolbar-item{width:30px;height:30px}.sc-form .sc-form-toolbar--small .toolbar-item i{font-size:16px}.sc-form .sc-form-toolbar--mini .toolbar-trigger{width:32px;height:32px}.sc-form .sc-form-toolbar--mini .toolbar-trigger i{font-size:18px}.sc-form .sc-form-toolbar--mini .toolbar-items{gap:8px;margin-bottom:8px}.sc-form .sc-form-toolbar--mini .toolbar-item{width:28px;height:28px}.sc-form .sc-form-toolbar--mini .toolbar-item i{font-size:14px}.sc-form-draft{padding:15px;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;background:#f5f7fa}.sc-form-draft .draft-header{padding:0 0 12px;margin-bottom:12px;border-bottom:1px solid #e4e7ed;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.sc-form-draft .draft-header__left{display:-webkit-box;display:-ms-flexbox;display:flex;gap:8px;margin-right:10px}.sc-form-draft .draft-header__right{width:200px}.sc-form-draft .draft-header__right .el-input .el-input__inner{height:32px;line-height:32px}.sc-form-draft .draft-header__right .el-input .el-input__prefix{line-height:32px}.sc-form-draft .draft-list{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow-y:auto;padding:2px;margin-top:2px}.sc-form-draft .draft-list .el-empty{padding:30px 0}.sc-form-draft .draft-item{background:#fff;border-radius:6px;padding:12px 15px;margin-bottom:8px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.05);box-shadow:0 1px 3px rgba(0,0,0,.05);-webkit-transition:all .2s ease;transition:all .2s ease;border:1px solid transparent}.sc-form-draft .draft-item__name::before,.sc-title::before{content:"";background:var(--color-primary)}.sc-form-draft .draft-item:hover{border-color:var(--color-primary);-webkit-transform:translateY(-1px);transform:translateY(-1px);-webkit-box-shadow:0 2px 8px rgba(0,0,0,.08);box-shadow:0 2px 8px rgba(0,0,0,.08)}.sc-form-draft .draft-item__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:12px}.sc-form-draft .draft-item__name{font-size:14px;font-weight:500;color:#303133;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-right:10px}.sc-form-draft .draft-item__name::before{display:inline-block;width:3px;height:3px;border-radius:50%;margin-right:6px}.sc-form-draft .draft-item__time{font-size:12px;color:#909399}.sc-form-draft .draft-item__footer{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;gap:12px;padding-top:10px;border-top:1px solid #f0f2f5}.sc-form-draft .draft-item__footer .el-button{padding:6px 0;font-size:12px}.sc-form-draft .draft-item__footer .el-button+.el-button{margin-left:0}.sc-form-draft .draft-item__footer .el-button:hover{color:var(--color-primary)}.sc-form-draft__preview-dialog .el-message-box__content{max-height:400px;overflow-y:auto;white-space:pre-wrap;font-family:monospace;padding:20px;background:#f8f9fb;border-radius:4px;margin:10px 0;line-height:1.6;font-size:13px;color:#444}.sc-form-draft__preview-dialog .el-message-box__header{padding-bottom:15px;border-bottom:1px solid #ebeef5}.sc-dialog{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;overflow:visible}.sc-dialog__title{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-right:50px;color:#72767b}.sc-dialog__title i{color:#909399}.sc-dialog__title i+i{margin-left:10px}.sc-dialog__title i:hover{cursor:pointer;color:var(--color-primary)}.sc-dialog__footer{display:block;padding:10px 15px;-webkit-box-sizing:border-box;box-sizing:border-box;border-top:1px solid #f0f0f0;width:100%;position:absolute;left:0;bottom:0;background-color:#fff}.sc-dialog__footer--left{text-align:left}.sc-dialog__footer--center{text-align:center}.sc-dialog .has-footer{margin-bottom:61px}.sc-dialog .el-dialog{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;border-radius:4px;overflow:hidden}.sc-position .top,.sc-title{display:-ms-flexbox;display:-webkit-box}.sc-dialog .el-dialog .el-dialog__header{border-radius:4px 4px 0 0;height:50px;line-height:50px;padding:0 0 0 20px;border-bottom:1px solid #e4e7ed}.sc-dialog .el-dialog .el-dialog__header .el-dialog__headerbtn{top:17px}.sc-dialog .el-dialog .el-dialog__header .el-dialog__headerbtn .el-dialog__close{font-weight:700}.sc-dialog .el-dialog__body,.sc-dialog .el-drawer__body{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden;overflow-y:auto;padding:20px;color:var(--color-text-regular);max-height:calc(100vh - 112px)}.sc-dialog .el-drawer{position:absolute;right:0;top:0;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.sc-dialog .el-drawer__header{margin:0;min-height:20px;padding:16px 10px 16px 24px;border-bottom:1px solid #f0f0f0}.sc-dialog .el-drawer,.sc-dialog .el-drawer__body{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:auto}.sc-dialog .el-form-item__label{font-weight:400}.sc-button+.sc-button{margin-left:10px}@-webkit-keyframes rotate{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.sc-tabs .rotating{-webkit-animation:rotate .45s linear infinite;animation:rotate .45s linear infinite}.sc-tabs .sc-tabs__content{position:relative;min-height:100px;-webkit-transition:height .3s ease-in-out;transition:height .3s ease-in-out;height:auto}.sc-tabs .tab-pane{position:absolute;left:0;top:0;padding:20px;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;will-change:transform,opacity}.sc-tabs .tab-pane.is-active{position:relative}.sc-tabs .fade-transform-enter-active,.sc-tabs .fade-transform-leave-active{-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);position:absolute;left:0;top:0}.sc-tabs .fade-transform-enter{opacity:0;-webkit-transform:translateX(20px);transform:translateX(20px)}.sc-tabs .fade-transform-leave-to{opacity:0;-webkit-transform:translateX(-20px);transform:translateX(-20px)}.sc-tabs .el-tabs__nav-wrap::after{height:1px;background-color:var(--border-color-lighter)}.sc-tabs .el-tabs__content{overflow-x:hidden;overflow-y:auto}.sc-tabs .el-tabs__content::-webkit-scrollbar{width:6px;height:6px}.sc-tabs .el-tabs__content::-webkit-scrollbar-thumb{background:var(--border-color-light);border-radius:3px}.sc-tabs .el-tabs__content::-webkit-scrollbar-track{background:var(--background-color-light);border-radius:3px}.sc-tabs__border .el-tabs__header{margin-bottom:0}.sc-tabs__border .el-tabs--card>.el-tabs__header{border-bottom:none}.sc-tabs__border .sc-tabs__content{position:relative;overflow:visible;border:1px solid var(--border-color-lighter);border-radius:0 4px 4px;background-color:var(--color-white)}.sc-tabs__border .sc-tabs__content.sc-tabs__is-refresh{border:none;-webkit-box-shadow:none;box-shadow:none}.sc-tabs__border .el-tabs__item{height:40px;line-height:40px;color:var(--color-text-regular)}.sc-tabs__border .el-tabs__item.is-active{font-weight:500;color:var(--color-primary)}.sc-tabs__border .el-tabs__item .el-icon-refresh{margin-left:5px;font-size:14px;cursor:pointer;color:var(--color-text-secondary);-webkit-transition:color .3s;transition:color .3s}.sc-tabs__border .el-tabs__item .el-icon-refresh:hover{color:var(--color-primary)}.sc-default-formatter,.sc-title{color:var(--color-text-regular)}.sc-verify-input input{caret-color:transparent;border-radius:2px;border:1px solid #eee;text-align:center;-webkit-transition:border-color .3s ease;transition:border-color .3s ease}.sc-verify-input input::-webkit-inner-spin-button,.sc-verify-input input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.sc-verify-input input:valid{border-color:#dcdfe6}.sc-verify-input input:focus-visible{outline:0;border-color:var(--color-primary)}.sc-verify-input--mini input{height:28px;width:22px;font-size:12px;margin:6px}.sc-verify-input--small input{height:32px;width:24px;font-size:13px;margin:8px}.sc-verify-input--medium input{height:36px;width:28px;font-size:14px;margin:10px}.sc-verify-input--default input{height:40px;width:32px;font-size:15px;margin:11px}:root{--color-text-regular:#606266;--border-color-lighter:#ebeef5;--background-color-base:#fafafa;--color-primary:#409eff;--color-primary-light-9:#ecf5ff;--color-primary-light-7:#d9ecff;--color-white:#ffffff;--color-danger:#f56c6c;--color-success:#67c23a;--color-warning:#e6a23c;--color-info:#909399;--color-text-primary:#303133;--color-text-secondary:#909399;--color-text-placeholder:#c0c4cc;--border-color-base:#dcdfe6;--border-color-light:#e4e7ed;--background-color-light:#f5f7fa}.sc-title{display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-weight:700;padding:10px 0}.sc-title::before{width:5px;height:18px;margin-right:8px;border-radius:2px}.sc-default-formatter{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sc-render-left,.sc-render-right{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.sc-over-ellipsis{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sc-position{display:grid}.sc-position .top{grid-area:top;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.sc-position .left,.sc-position .right{display:-webkit-box;display:-ms-flexbox;-webkit-box-align:center}.sc-position .left{grid-area:left;display:flex;-ms-flex-align:center;align-items:center}.sc-position .content{grid-area:content}.sc-position .right{grid-area:right;display:flex;-ms-flex-align:center;align-items:center}.sc-position .bottom{grid-area:bottom;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}