eoss-ui 0.3.97

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 (378) hide show
  1. package/CHANGELOG.md +929 -0
  2. package/README.md +30 -0
  3. package/lib/button-group.js +2857 -0
  4. package/lib/button.js +2884 -0
  5. package/lib/card.js +603 -0
  6. package/lib/cascader.js +373 -0
  7. package/lib/checkbox-group.js +3099 -0
  8. package/lib/clients.js +375 -0
  9. package/lib/config/api.js +205 -0
  10. package/lib/data-table-form.js +3848 -0
  11. package/lib/data-table.js +6315 -0
  12. package/lib/date-picker.js +2821 -0
  13. package/lib/dialog.js +3730 -0
  14. package/lib/enterprise.js +372 -0
  15. package/lib/eoss-ui.common.js +65365 -0
  16. package/lib/error-page.js +293 -0
  17. package/lib/flow-group.js +4200 -0
  18. package/lib/flow-list.js +4350 -0
  19. package/lib/flow.js +12893 -0
  20. package/lib/form.js +15635 -0
  21. package/lib/handle-user.js +2900 -0
  22. package/lib/handler.js +3118 -0
  23. package/lib/index.js +1 -0
  24. package/lib/input-number.js +2743 -0
  25. package/lib/input.js +2935 -0
  26. package/lib/label.js +411 -0
  27. package/lib/login.js +5048 -0
  28. package/lib/main.js +5816 -0
  29. package/lib/mainComp.js +6530 -0
  30. package/lib/menu.js +529 -0
  31. package/lib/nav.js +3048 -0
  32. package/lib/notify.js +1079 -0
  33. package/lib/page.js +3036 -0
  34. package/lib/pagination.js +354 -0
  35. package/lib/player.js +2904 -0
  36. package/lib/qr-code.js +2860 -0
  37. package/lib/radio-group.js +3091 -0
  38. package/lib/select-ganged.js +3242 -0
  39. package/lib/select.js +3295 -0
  40. package/lib/selector-panel.js +4425 -0
  41. package/lib/selector.js +3722 -0
  42. package/lib/sizer.js +3067 -0
  43. package/lib/steps.js +2943 -0
  44. package/lib/switch.js +2784 -0
  45. package/lib/table-form.js +6211 -0
  46. package/lib/tabs-panel.js +274 -0
  47. package/lib/tabs.js +4988 -0
  48. package/lib/theme-chalk/base.css +1 -0
  49. package/lib/theme-chalk/button-group.css +1 -0
  50. package/lib/theme-chalk/button.css +0 -0
  51. package/lib/theme-chalk/card.css +1 -0
  52. package/lib/theme-chalk/cascader.css +0 -0
  53. package/lib/theme-chalk/checkbox-group.css +1 -0
  54. package/lib/theme-chalk/clients.css +1 -0
  55. package/lib/theme-chalk/data-table-form.css +1 -0
  56. package/lib/theme-chalk/data-table.css +1 -0
  57. package/lib/theme-chalk/date-picker.css +1 -0
  58. package/lib/theme-chalk/dialog.css +1 -0
  59. package/lib/theme-chalk/enterprise.css +1 -0
  60. package/lib/theme-chalk/error-page.css +1 -0
  61. package/lib/theme-chalk/flow-chart.css +0 -0
  62. package/lib/theme-chalk/flow-group.css +1 -0
  63. package/lib/theme-chalk/flow-list.css +1 -0
  64. package/lib/theme-chalk/flow.css +1 -0
  65. package/lib/theme-chalk/fonts/iconfont.ttf +0 -0
  66. package/lib/theme-chalk/fonts/iconfont.woff +0 -0
  67. package/lib/theme-chalk/form.css +1 -0
  68. package/lib/theme-chalk/handle-user.css +1 -0
  69. package/lib/theme-chalk/handler.css +1 -0
  70. package/lib/theme-chalk/icon.css +1 -0
  71. package/lib/theme-chalk/index.css +1 -0
  72. package/lib/theme-chalk/input-number.css +0 -0
  73. package/lib/theme-chalk/input.css +1 -0
  74. package/lib/theme-chalk/label.css +1 -0
  75. package/lib/theme-chalk/login.css +1 -0
  76. package/lib/theme-chalk/main.css +1 -0
  77. package/lib/theme-chalk/mainComp.css +0 -0
  78. package/lib/theme-chalk/menu.css +1 -0
  79. package/lib/theme-chalk/nav.css +1 -0
  80. package/lib/theme-chalk/notify.css +0 -0
  81. package/lib/theme-chalk/page.css +1 -0
  82. package/lib/theme-chalk/pagination.css +1 -0
  83. package/lib/theme-chalk/player.css +1 -0
  84. package/lib/theme-chalk/qr-code.css +1 -0
  85. package/lib/theme-chalk/radio-group.css +1 -0
  86. package/lib/theme-chalk/radio.css +1 -0
  87. package/lib/theme-chalk/select-ganged.css +1 -0
  88. package/lib/theme-chalk/select.css +0 -0
  89. package/lib/theme-chalk/selector-panel.css +1 -0
  90. package/lib/theme-chalk/selector.css +1 -0
  91. package/lib/theme-chalk/sizer.css +1 -0
  92. package/lib/theme-chalk/steps.css +1 -0
  93. package/lib/theme-chalk/switch.css +1 -0
  94. package/lib/theme-chalk/table-form.css +0 -0
  95. package/lib/theme-chalk/tabs-panel.css +0 -0
  96. package/lib/theme-chalk/tabs.css +1 -0
  97. package/lib/theme-chalk/tips.css +1 -0
  98. package/lib/theme-chalk/toolbar.css +1 -0
  99. package/lib/theme-chalk/tree-group.css +1 -0
  100. package/lib/theme-chalk/tree.css +1 -0
  101. package/lib/theme-chalk/upload.css +1 -0
  102. package/lib/theme-chalk/wujie.css +0 -0
  103. package/lib/theme-chalk/wxlogin.css +1 -0
  104. package/lib/tips.js +2830 -0
  105. package/lib/toolbar.js +531 -0
  106. package/lib/tree-group.js +3373 -0
  107. package/lib/tree.js +3482 -0
  108. package/lib/upload.js +3913 -0
  109. package/lib/utils/bus.js +9 -0
  110. package/lib/utils/date-util.js +318 -0
  111. package/lib/utils/http.js +58 -0
  112. package/lib/utils/rules.js +19 -0
  113. package/lib/utils/store.js +22 -0
  114. package/lib/utils/util.js +2056 -0
  115. package/lib/wujie.js +2845 -0
  116. package/lib/wxlogin.js +2799 -0
  117. package/package.json +151 -0
  118. package/packages/button/index.js +5 -0
  119. package/packages/button/src/main.vue +264 -0
  120. package/packages/button-group/index.js +5 -0
  121. package/packages/button-group/src/main.vue +130 -0
  122. package/packages/card/index.js +5 -0
  123. package/packages/card/src/main.vue +144 -0
  124. package/packages/cascader/index.js +5 -0
  125. package/packages/cascader/src/main.vue +144 -0
  126. package/packages/checkbox-group/index.js +5 -0
  127. package/packages/checkbox-group/src/main.vue +285 -0
  128. package/packages/clients/index.js +5 -0
  129. package/packages/clients/src/main.vue +50 -0
  130. package/packages/data-table/index.js +5 -0
  131. package/packages/data-table/src/children.vue +40 -0
  132. package/packages/data-table/src/column.vue +796 -0
  133. package/packages/data-table/src/main copy.vue +1383 -0
  134. package/packages/data-table/src/main.vue +1229 -0
  135. package/packages/data-table/src/mixins/table.js +12 -0
  136. package/packages/data-table/src/sizer.vue +160 -0
  137. package/packages/data-table-form/index.js +5 -0
  138. package/packages/data-table-form/src/colgroup.vue +17 -0
  139. package/packages/data-table-form/src/main.vue +167 -0
  140. package/packages/data-table-form/src/table.vue +192 -0
  141. package/packages/data-table-form/src/tbody.vue +219 -0
  142. package/packages/data-table-form/src/thead.vue +68 -0
  143. package/packages/date-picker/index.js +5 -0
  144. package/packages/date-picker/src/main.vue +185 -0
  145. package/packages/dialog/index.js +5 -0
  146. package/packages/dialog/src/main.vue +442 -0
  147. package/packages/enterprise/index.js +5 -0
  148. package/packages/enterprise/src/main.vue +66 -0
  149. package/packages/error-page/index.js +5 -0
  150. package/packages/error-page/src/main.vue +44 -0
  151. package/packages/flow/index.js +5 -0
  152. package/packages/flow/src/component/CommonOpinions.vue +290 -0
  153. package/packages/flow/src/component/CustomPreset.vue +311 -0
  154. package/packages/flow/src/component/FileList.vue +97 -0
  155. package/packages/flow/src/component/Preset.vue +253 -0
  156. package/packages/flow/src/component/SendMsg.vue +221 -0
  157. package/packages/flow/src/component/TimeLimit.vue +190 -0
  158. package/packages/flow/src/component/taskUnionExamine.vue +507 -0
  159. package/packages/flow/src/form.vue +120 -0
  160. package/packages/flow/src/main.vue +2107 -0
  161. package/packages/flow/src/processForm.vue +866 -0
  162. package/packages/flow/src/processReject.vue +262 -0
  163. package/packages/flow/src/selectUser.vue +425 -0
  164. package/packages/flow/src/startTaskRead.vue +556 -0
  165. package/packages/flow/src/table.vue +51 -0
  166. package/packages/flow-group/index.js +5 -0
  167. package/packages/flow-group/src/main.vue +540 -0
  168. package/packages/flow-list/index.js +5 -0
  169. package/packages/flow-list/src/flow-table.vue +445 -0
  170. package/packages/flow-list/src/main.vue +456 -0
  171. package/packages/form/index.js +5 -0
  172. package/packages/form/src/main.vue +4429 -0
  173. package/packages/form/src/table.vue +1196 -0
  174. package/packages/handle-user/index.js +5 -0
  175. package/packages/handle-user/src/main.vue +122 -0
  176. package/packages/handler/index.js +5 -0
  177. package/packages/handler/src/main.vue +306 -0
  178. package/packages/input/index.js +5 -0
  179. package/packages/input/src/main.vue +307 -0
  180. package/packages/input-number/index.js +5 -0
  181. package/packages/input-number/src/main.vue +106 -0
  182. package/packages/label/index.js +5 -0
  183. package/packages/label/src/main.vue +208 -0
  184. package/packages/login/index.js +5 -0
  185. package/packages/login/src/main.vue +1193 -0
  186. package/packages/login/src/resetPassword.vue +332 -0
  187. package/packages/main/index.js +5 -0
  188. package/packages/main/src/main.vue +1496 -0
  189. package/packages/main/src/message.vue +239 -0
  190. package/packages/main/src/notice.vue +145 -0
  191. package/packages/main/src/settings.vue +105 -0
  192. package/packages/main/src/userinfo.vue +430 -0
  193. package/packages/mainComp/index.js +5 -0
  194. package/packages/mainComp/src/async-component/index.vue +85 -0
  195. package/packages/mainComp/src/main.vue +1934 -0
  196. package/packages/mainComp/src/message.vue +239 -0
  197. package/packages/mainComp/src/notice.vue +152 -0
  198. package/packages/mainComp/src/settings.vue +105 -0
  199. package/packages/mainComp/src/userinfo.vue +423 -0
  200. package/packages/menu/index.js +5 -0
  201. package/packages/menu/src/main.vue +401 -0
  202. package/packages/nav/index.js +5 -0
  203. package/packages/nav/src/main.vue +250 -0
  204. package/packages/notify/index.js +5 -0
  205. package/packages/notify/src/main.vue +538 -0
  206. package/packages/page/index.js +5 -0
  207. package/packages/page/src/main.vue +167 -0
  208. package/packages/pagination/index.js +5 -0
  209. package/packages/pagination/src/main.vue +77 -0
  210. package/packages/player/index.js +5 -0
  211. package/packages/player/src/main.vue +194 -0
  212. package/packages/qr-code/index.js +5 -0
  213. package/packages/qr-code/src/main.vue +154 -0
  214. package/packages/radio/index.js +5 -0
  215. package/packages/radio/src/main.vue +259 -0
  216. package/packages/radio-group/index.js +6 -0
  217. package/packages/radio-group/src/main.vue +267 -0
  218. package/packages/select/index.js +5 -0
  219. package/packages/select/src/main.vue +683 -0
  220. package/packages/select-ganged/index.js +5 -0
  221. package/packages/select-ganged/src/main.vue +686 -0
  222. package/packages/selector/index.js +5 -0
  223. package/packages/selector/src/main.vue +588 -0
  224. package/packages/selector-panel/index.js +5 -0
  225. package/packages/selector-panel/src/main.vue +968 -0
  226. package/packages/selector-panel/src/selection.vue +142 -0
  227. package/packages/selector-panel/src/tree.vue +129 -0
  228. package/packages/sizer/index.js +5 -0
  229. package/packages/sizer/src/main.vue +254 -0
  230. package/packages/steps/index.js +5 -0
  231. package/packages/steps/src/main.vue +175 -0
  232. package/packages/switch/index.js +5 -0
  233. package/packages/switch/src/main.vue +154 -0
  234. package/packages/table-form/index.js +5 -0
  235. package/packages/tabs/index.js +5 -0
  236. package/packages/tabs/src/main.vue +749 -0
  237. package/packages/tabs-panel/index.js +5 -0
  238. package/packages/tabs-panel/src/main.vue +18 -0
  239. package/packages/theme-chalk/README.md +33 -0
  240. package/packages/theme-chalk/lib/base.css +1 -0
  241. package/packages/theme-chalk/lib/button-group.css +1 -0
  242. package/packages/theme-chalk/lib/button.css +0 -0
  243. package/packages/theme-chalk/lib/card.css +1 -0
  244. package/packages/theme-chalk/lib/cascader.css +0 -0
  245. package/packages/theme-chalk/lib/checkbox-group.css +1 -0
  246. package/packages/theme-chalk/lib/clients.css +1 -0
  247. package/packages/theme-chalk/lib/data-table-form.css +1 -0
  248. package/packages/theme-chalk/lib/data-table.css +1 -0
  249. package/packages/theme-chalk/lib/date-picker.css +1 -0
  250. package/packages/theme-chalk/lib/dialog.css +1 -0
  251. package/packages/theme-chalk/lib/enterprise.css +1 -0
  252. package/packages/theme-chalk/lib/error-page.css +1 -0
  253. package/packages/theme-chalk/lib/flow-chart.css +0 -0
  254. package/packages/theme-chalk/lib/flow-group.css +1 -0
  255. package/packages/theme-chalk/lib/flow-list.css +1 -0
  256. package/packages/theme-chalk/lib/flow.css +1 -0
  257. package/packages/theme-chalk/lib/fonts/iconfont.ttf +0 -0
  258. package/packages/theme-chalk/lib/fonts/iconfont.woff +0 -0
  259. package/packages/theme-chalk/lib/form.css +1 -0
  260. package/packages/theme-chalk/lib/handle-user.css +1 -0
  261. package/packages/theme-chalk/lib/handler.css +1 -0
  262. package/packages/theme-chalk/lib/icon.css +1 -0
  263. package/packages/theme-chalk/lib/index.css +1 -0
  264. package/packages/theme-chalk/lib/input-number.css +0 -0
  265. package/packages/theme-chalk/lib/input.css +1 -0
  266. package/packages/theme-chalk/lib/label.css +1 -0
  267. package/packages/theme-chalk/lib/login.css +1 -0
  268. package/packages/theme-chalk/lib/main.css +1 -0
  269. package/packages/theme-chalk/lib/mainComp.css +0 -0
  270. package/packages/theme-chalk/lib/menu.css +1 -0
  271. package/packages/theme-chalk/lib/nav.css +1 -0
  272. package/packages/theme-chalk/lib/notify.css +0 -0
  273. package/packages/theme-chalk/lib/page.css +1 -0
  274. package/packages/theme-chalk/lib/pagination.css +1 -0
  275. package/packages/theme-chalk/lib/player.css +1 -0
  276. package/packages/theme-chalk/lib/qr-code.css +1 -0
  277. package/packages/theme-chalk/lib/radio-group.css +1 -0
  278. package/packages/theme-chalk/lib/radio.css +1 -0
  279. package/packages/theme-chalk/lib/select-ganged.css +1 -0
  280. package/packages/theme-chalk/lib/select.css +0 -0
  281. package/packages/theme-chalk/lib/selector-panel.css +1 -0
  282. package/packages/theme-chalk/lib/selector.css +1 -0
  283. package/packages/theme-chalk/lib/sizer.css +1 -0
  284. package/packages/theme-chalk/lib/steps.css +1 -0
  285. package/packages/theme-chalk/lib/switch.css +1 -0
  286. package/packages/theme-chalk/lib/table-form.css +0 -0
  287. package/packages/theme-chalk/lib/tabs-panel.css +0 -0
  288. package/packages/theme-chalk/lib/tabs.css +1 -0
  289. package/packages/theme-chalk/lib/tips.css +1 -0
  290. package/packages/theme-chalk/lib/toolbar.css +1 -0
  291. package/packages/theme-chalk/lib/tree-group.css +1 -0
  292. package/packages/theme-chalk/lib/tree.css +1 -0
  293. package/packages/theme-chalk/lib/upload.css +1 -0
  294. package/packages/theme-chalk/lib/wujie.css +0 -0
  295. package/packages/theme-chalk/lib/wxlogin.css +1 -0
  296. package/packages/theme-chalk/package.json +35 -0
  297. package/packages/theme-chalk/src/base.scss +165 -0
  298. package/packages/theme-chalk/src/button-group.scss +9 -0
  299. package/packages/theme-chalk/src/button.scss +0 -0
  300. package/packages/theme-chalk/src/card.scss +55 -0
  301. package/packages/theme-chalk/src/cascader.scss +0 -0
  302. package/packages/theme-chalk/src/checkbox-group.scss +8 -0
  303. package/packages/theme-chalk/src/clients.scss +72 -0
  304. package/packages/theme-chalk/src/common/var.scss +1516 -0
  305. package/packages/theme-chalk/src/data-table-form.scss +55 -0
  306. package/packages/theme-chalk/src/data-table.scss +202 -0
  307. package/packages/theme-chalk/src/date-picker.scss +8 -0
  308. package/packages/theme-chalk/src/dialog.scss +52 -0
  309. package/packages/theme-chalk/src/enterprise.scss +5 -0
  310. package/packages/theme-chalk/src/error-page.scss +18 -0
  311. package/packages/theme-chalk/src/flow-chart.scss +0 -0
  312. package/packages/theme-chalk/src/flow-group.scss +101 -0
  313. package/packages/theme-chalk/src/flow-list.scss +41 -0
  314. package/packages/theme-chalk/src/flow.scss +285 -0
  315. package/packages/theme-chalk/src/fonts/iconfont.ttf +0 -0
  316. package/packages/theme-chalk/src/fonts/iconfont.woff +0 -0
  317. package/packages/theme-chalk/src/form.scss +451 -0
  318. package/packages/theme-chalk/src/handle-user.scss +40 -0
  319. package/packages/theme-chalk/src/handler.scss +131 -0
  320. package/packages/theme-chalk/src/icon.scss +1714 -0
  321. package/packages/theme-chalk/src/index.scss +50 -0
  322. package/packages/theme-chalk/src/input-number.scss +0 -0
  323. package/packages/theme-chalk/src/input.scss +3 -0
  324. package/packages/theme-chalk/src/label.scss +24 -0
  325. package/packages/theme-chalk/src/login.scss +490 -0
  326. package/packages/theme-chalk/src/main.scss +483 -0
  327. package/packages/theme-chalk/src/mainComp.scss +0 -0
  328. package/packages/theme-chalk/src/menu.scss +201 -0
  329. package/packages/theme-chalk/src/mixins/color.scss +117 -0
  330. package/packages/theme-chalk/src/mixins/mixins.scss +25 -0
  331. package/packages/theme-chalk/src/nav.scss +73 -0
  332. package/packages/theme-chalk/src/notify.scss +0 -0
  333. package/packages/theme-chalk/src/page.scss +3 -0
  334. package/packages/theme-chalk/src/pagination.scss +14 -0
  335. package/packages/theme-chalk/src/player.scss +9 -0
  336. package/packages/theme-chalk/src/qr-code.scss +17 -0
  337. package/packages/theme-chalk/src/radio-group.scss +9 -0
  338. package/packages/theme-chalk/src/radio.scss +3 -0
  339. package/packages/theme-chalk/src/select-ganged.scss +9 -0
  340. package/packages/theme-chalk/src/select.scss +0 -0
  341. package/packages/theme-chalk/src/selector-panel.scss +203 -0
  342. package/packages/theme-chalk/src/selector.scss +85 -0
  343. package/packages/theme-chalk/src/sizer.scss +36 -0
  344. package/packages/theme-chalk/src/steps.scss +88 -0
  345. package/packages/theme-chalk/src/switch.scss +3 -0
  346. package/packages/theme-chalk/src/table-form.scss +1 -0
  347. package/packages/theme-chalk/src/tabs-panel.scss +0 -0
  348. package/packages/theme-chalk/src/tabs.scss +91 -0
  349. package/packages/theme-chalk/src/tips.scss +7 -0
  350. package/packages/theme-chalk/src/toolbar.scss +121 -0
  351. package/packages/theme-chalk/src/tree-group.scss +64 -0
  352. package/packages/theme-chalk/src/tree.scss +140 -0
  353. package/packages/theme-chalk/src/upload.scss +131 -0
  354. package/packages/theme-chalk/src/wujie.scss +0 -0
  355. package/packages/theme-chalk/src/wxlogin.scss +3 -0
  356. package/packages/tips/index.js +5 -0
  357. package/packages/tips/src/main.vue +126 -0
  358. package/packages/toolbar/index.js +5 -0
  359. package/packages/toolbar/src/main.vue +377 -0
  360. package/packages/tree/index.js +5 -0
  361. package/packages/tree/src/main.vue +636 -0
  362. package/packages/tree-group/index.js +5 -0
  363. package/packages/tree-group/src/main.vue +435 -0
  364. package/packages/upload/index.js +5 -0
  365. package/packages/upload/src/main.vue +1033 -0
  366. package/packages/upload/src/picture.js +15 -0
  367. package/packages/wujie/index.js +5 -0
  368. package/packages/wujie/src/main.vue +137 -0
  369. package/packages/wxlogin/index.js +5 -0
  370. package/packages/wxlogin/src/main.vue +110 -0
  371. package/src/config/api.js +211 -0
  372. package/src/index.js +167 -0
  373. package/src/utils/bus.js +3 -0
  374. package/src/utils/date-util.js +312 -0
  375. package/src/utils/http.js +50 -0
  376. package/src/utils/rules.js +18 -0
  377. package/src/utils/store.js +21 -0
  378. package/src/utils/util.js +2105 -0
@@ -0,0 +1,749 @@
1
+ <template>
2
+ <el-tabs
3
+ class="es-tabs"
4
+ v-bind="{ type: mold, ...$attrs }"
5
+ v-on="$listeners"
6
+ v-model="activeName"
7
+ ref="elTab"
8
+ :before-leave="handleBefore"
9
+ :class="{ 'es-tabs-full': isFull }"
10
+ :style="style"
11
+ >
12
+ <slot></slot>
13
+ <template v-for="(items, indexs) in tabs">
14
+ <el-tab-pane
15
+ v-if="!items.hide"
16
+ :key="indexs"
17
+ :label="items.label"
18
+ :immediate="items.immediate"
19
+ :name="items.name || String(indexs)"
20
+ >
21
+ <template slot="label" v-if="items.title">
22
+ <span>
23
+ <template v-if="typeof items.title === 'object'">
24
+ <i v-if="items.title.icon" :class="items.title.icon"></i>
25
+ <el-badge
26
+ v-if="
27
+ Object.prototype.hasOwnProperty.call(items.title, 'count')
28
+ "
29
+ type="primary"
30
+ :value="items.title.count"
31
+ :max="99"
32
+ >
33
+ </el-badge>
34
+ {{ items.title.text }}
35
+ </template>
36
+ <template v-else>{{ items.title }}</template>
37
+ </span>
38
+ </template>
39
+ <es-tabs-panel v-bind="items" :show="activeName === String(indexs)">
40
+ <template slot-scope="{ contents, average, data, title, show }">
41
+ <template v-if="Array.isArray(contents)">
42
+ <template v-for="(item, index) in contents">
43
+ <div class="es-tab-pane-list" :key="index" v-if="average">
44
+ <div class="es-tab-pane-main">
45
+ <template v-if="item.htmlType">
46
+ <template v-if="item.htmlType === 'h1'">
47
+ <h1
48
+ v-if="item.html"
49
+ :style="item.style"
50
+ v-html="item.html"
51
+ ></h1>
52
+ <h1 v-else :style="item.style">
53
+ {{ item.text }}
54
+ </h1>
55
+ </template>
56
+ <template v-if="item.htmlType === 'h2'">
57
+ <h2
58
+ v-if="item.html"
59
+ :style="item.style"
60
+ v-html="item.html"
61
+ ></h2>
62
+ <h2 v-else :style="item.style">
63
+ {{ item.text }}
64
+ </h2>
65
+ </template>
66
+ <ul v-if="item.htmlType === 'ul'" :style="item.style">
67
+ <template v-for="(liItem, liIndex) in data">
68
+ <li
69
+ v-if="liitems.html"
70
+ :key="liIndex"
71
+ v-html="liitems.html"
72
+ ></li>
73
+ <li v-else :key="liIndex">
74
+ {{ liItem }}
75
+ </li>
76
+ </template>
77
+ </ul>
78
+ <img
79
+ v-if="
80
+ item.htmlType === 'image' || item.htmlType === 'img'
81
+ "
82
+ :src="item.url"
83
+ :style="item.style"
84
+ />
85
+ <template v-if="item.htmlType === 'p'">
86
+ <p
87
+ v-if="item.html"
88
+ :style="item.style"
89
+ v-html="item.html"
90
+ ></p>
91
+ <p v-else :style="item.style">
92
+ {{ item.text }}
93
+ </p>
94
+ </template>
95
+ <template v-if="item.htmlType === 'div'">
96
+ <div
97
+ v-if="item.html"
98
+ :style="item.style"
99
+ v-html="item.html"
100
+ ></div>
101
+ <div v-else :style="item.style">
102
+ {{ item.text }}
103
+ </div>
104
+ </template>
105
+ </template>
106
+ <template v-else>
107
+ <es-data-table
108
+ v-if="
109
+ item.type === 'data-table' ||
110
+ item.type === 'dataTable' ||
111
+ item.type === 'flow-list' ||
112
+ item.type === 'flowList'
113
+ "
114
+ v-bind="
115
+ handleExclAttribute({
116
+ data: item,
117
+ attrs: ['events', 'visible', 'type']
118
+ })
119
+ "
120
+ :display="show"
121
+ :class="{
122
+ 'es-flow-group-data-table':
123
+ item.type === 'data-table' ||
124
+ item.type === 'dataTable',
125
+ 'es-flow-list':
126
+ item.type === 'flow-list' ||
127
+ item.type === 'flowList'
128
+ }"
129
+ v-on="item.events"
130
+ >
131
+ <template v-if="item.dialog" slot="dialog">
132
+ <template v-if="Array.isArray(item.dialog)">
133
+ <es-dialog
134
+ v-for="(ele, ids) in item.dialog"
135
+ :isReload="true"
136
+ v-bind="
137
+ handleExclAttribute({
138
+ data: ele,
139
+ attrs: ['visible']
140
+ })
141
+ "
142
+ :key="ids"
143
+ :visible.sync="ele.visible"
144
+ v-on="{ ...ele.events }"
145
+ >
146
+ </es-dialog>
147
+ </template>
148
+ <es-dialog
149
+ v-else
150
+ :isReload="true"
151
+ v-bind="
152
+ handleExclAttribute({
153
+ data: item.dialog,
154
+ attrs: ['visible']
155
+ })
156
+ "
157
+ :visible.sync="item.dialog.visible"
158
+ v-on="{ ...item.dialog.events }"
159
+ >
160
+ </es-dialog>
161
+ </template>
162
+ </es-data-table>
163
+ <es-tree-group
164
+ v-if="
165
+ item.type === 'tree-group' ||
166
+ item.type === 'treeGroup'
167
+ "
168
+ v-bind="
169
+ handleExclAttribute({
170
+ data: item,
171
+ attrs: ['events', 'visible', 'type']
172
+ })
173
+ "
174
+ :display="show"
175
+ v-on="{ ...item.events }"
176
+ ></es-tree-group>
177
+ <iframe
178
+ v-if="item.type === 'iframe' && !item.blank"
179
+ :id="item.id || item.name"
180
+ :name="item.name"
181
+ frameborder="0"
182
+ width="100%"
183
+ height="100%"
184
+ :src="
185
+ handleUrlJoinParams({
186
+ url: item.url,
187
+ param: item.param || {}
188
+ })
189
+ "
190
+ ></iframe>
191
+ <es-upload
192
+ v-if="item.type === 'attachment'"
193
+ :file-count.sync="title.count"
194
+ height="auto"
195
+ class="es-attachment"
196
+ v-bind="
197
+ handleExclAttribute({
198
+ data: item,
199
+ attrs: ['events', 'type']
200
+ })
201
+ "
202
+ :display="show"
203
+ v-on="{ ...item.events }"
204
+ ></es-upload>
205
+ </template>
206
+ </div>
207
+ </div>
208
+ <template v-else>
209
+ <template v-if="item.htmlType === 'h1'">
210
+ <h1
211
+ v-if="item.html"
212
+ v-bind="
213
+ handleExclAttribute({
214
+ data: item,
215
+ attrs: ['html', 'htmlType']
216
+ })
217
+ "
218
+ :key="index"
219
+ v-html="item.html"
220
+ ></h1>
221
+ <h1
222
+ v-else
223
+ v-bind="
224
+ handleExclAttribute({
225
+ data: item,
226
+ attrs: ['html', 'htmlType']
227
+ })
228
+ "
229
+ :key="index"
230
+ >
231
+ {{ item.text }}
232
+ </h1>
233
+ </template>
234
+ <template v-if="item.htmlType === 'h2'">
235
+ <h2
236
+ v-if="item.html"
237
+ v-bind="
238
+ handleExclAttribute({
239
+ data: item,
240
+ attrs: ['html', 'htmlType']
241
+ })
242
+ "
243
+ :key="index"
244
+ v-html="item.html"
245
+ ></h2>
246
+ <h2
247
+ v-else
248
+ v-bind="
249
+ handleExclAttribute({
250
+ data: item,
251
+ attrs: ['html', 'htmlType']
252
+ })
253
+ "
254
+ :key="index"
255
+ >
256
+ {{ item.text }}
257
+ </h2>
258
+ </template>
259
+ <template v-if="item.htmlType === 'ul'">
260
+ <ul
261
+ v-if="item.html"
262
+ v-bind="
263
+ handleExclAttribute({
264
+ data: item,
265
+ attrs: ['html', 'htmlType']
266
+ })
267
+ "
268
+ :key="index"
269
+ v-html="item.html"
270
+ ></ul>
271
+ <ul
272
+ v-else
273
+ v-bind="
274
+ handleExclAttribute({
275
+ data: item,
276
+ attrs: ['html', 'htmlType']
277
+ })
278
+ "
279
+ :key="index"
280
+ >
281
+ <template v-for="(liItem, liIndex) in data">
282
+ <li
283
+ v-if="liitems.html"
284
+ :key="liIndex"
285
+ v-html="liitems.html"
286
+ ></li>
287
+ <li v-else :key="liIndex">
288
+ {{ liItem }}
289
+ </li>
290
+ </template>
291
+ </ul>
292
+ </template>
293
+ <template
294
+ v-if="item.htmlType === 'image' || item.htmlType === 'img'"
295
+ >
296
+ <img
297
+ :key="index"
298
+ v-bind="
299
+ handleExclAttribute({
300
+ data: item,
301
+ attrs: ['html', 'htmlType', 'src']
302
+ })
303
+ "
304
+ :src="item.url || item.src"
305
+ />
306
+ </template>
307
+ <template v-if="item.htmlType === 'p'">
308
+ <p
309
+ v-if="item.html"
310
+ v-bind="
311
+ handleExclAttribute({
312
+ data: item,
313
+ attrs: ['html', 'htmlType']
314
+ })
315
+ "
316
+ :key="index"
317
+ v-html="item.html"
318
+ ></p>
319
+ <p
320
+ v-else
321
+ v-bind="
322
+ handleExclAttribute({
323
+ data: item,
324
+ attrs: ['text', 'htmlType']
325
+ })
326
+ "
327
+ :key="index"
328
+ >
329
+ {{ item.text }}
330
+ </p>
331
+ </template>
332
+ <template v-if="item.htmlType === 'div'">
333
+ <div
334
+ v-if="item.html"
335
+ v-bind="
336
+ handleExclAttribute({
337
+ data: item,
338
+ attrs: ['html', 'htmlType']
339
+ })
340
+ "
341
+ :key="index"
342
+ v-html="item.html"
343
+ ></div>
344
+ <div
345
+ v-else
346
+ v-bind="
347
+ handleExclAttribute({
348
+ data: item,
349
+ attrs: ['html', 'htmlType']
350
+ })
351
+ "
352
+ :key="index"
353
+ >
354
+ {{ item.text }}
355
+ </div>
356
+ </template>
357
+ <es-form
358
+ v-if="item.type === 'form'"
359
+ ref="esFlowForm"
360
+ v-bind="
361
+ handleExclAttribute({
362
+ data: item,
363
+ attrs: ['events', 'visible', 'model', 'type', 'ref']
364
+ })
365
+ "
366
+ full
367
+ :model.sync="item.model"
368
+ :display="show"
369
+ :key="index"
370
+ :closeDialog="false"
371
+ v-on="{ ...item.events }"
372
+ ></es-form>
373
+ <es-data-table
374
+ v-if="
375
+ item.type === 'data-table' ||
376
+ item.type === 'dataTable' ||
377
+ item.type === 'flow-list' ||
378
+ item.type === 'flowList'
379
+ "
380
+ v-bind="
381
+ handleExclAttribute({
382
+ data: item,
383
+ attrs: ['events', 'visible', 'type']
384
+ })
385
+ "
386
+ :class="{
387
+ 'es-flow-group-data-table':
388
+ item.type === 'data-table' || item.type === 'dataTable',
389
+ 'es-flow-list':
390
+ item.type === 'flow-list' || item.type === 'flowList'
391
+ }"
392
+ :display="show"
393
+ :key="index"
394
+ v-on="item.events"
395
+ >
396
+ <template v-if="item.dialog" slot="dialog">
397
+ <template v-if="Array.isArray(item.dialog)">
398
+ <es-dialog
399
+ v-for="(ele, ids) in item.dialog"
400
+ :isReload="true"
401
+ v-bind="
402
+ handleExclAttribute({
403
+ data: ele,
404
+ attrs: ['visible']
405
+ })
406
+ "
407
+ :key="ids"
408
+ :visible.sync="ele.visible"
409
+ v-on="{ ...ele.events }"
410
+ >
411
+ </es-dialog>
412
+ </template>
413
+ <es-dialog
414
+ v-else
415
+ :isReload="true"
416
+ v-bind="
417
+ handleExclAttribute({
418
+ data: item.dialog,
419
+ attrs: ['visible']
420
+ })
421
+ "
422
+ :visible.sync="item.dialog.visible"
423
+ v-on="{ ...item.dialog.events }"
424
+ >
425
+ </es-dialog>
426
+ </template>
427
+ </es-data-table>
428
+ <es-tree-group
429
+ v-if="
430
+ item.type === 'tree-group' || item.type === 'treeGroup'
431
+ "
432
+ v-bind="
433
+ handleExclAttribute({
434
+ data: item,
435
+ attrs: ['events', 'visible', 'type']
436
+ })
437
+ "
438
+ :key="index"
439
+ :display="show"
440
+ v-on="{ ...item.events }"
441
+ ></es-tree-group>
442
+ <iframe
443
+ v-if="item.type === 'iframe' && !item.blank"
444
+ frameborder="0"
445
+ width="100%"
446
+ height="100%"
447
+ :key="index"
448
+ :id="item.id || item.name"
449
+ :name="item.name"
450
+ :src="
451
+ handleUrlJoinParams({
452
+ url: item.url,
453
+ param: item.param || {}
454
+ })
455
+ "
456
+ ></iframe>
457
+ <es-upload
458
+ v-if="item.type === 'attachment'"
459
+ height="auto"
460
+ class="es-attachment"
461
+ v-bind="
462
+ handleExclAttribute({
463
+ data: item,
464
+ attrs: ['events', 'type']
465
+ })
466
+ "
467
+ :file-count.sync="title.count"
468
+ :key="index"
469
+ :display="show"
470
+ v-on="{ ...item.events }"
471
+ ></es-upload>
472
+ <es-dialog
473
+ v-if="item.type === 'dialog'"
474
+ :isReload="true"
475
+ v-bind="
476
+ handleExclAttribute({
477
+ data: item,
478
+ attrs: ['visible', 'type']
479
+ })
480
+ "
481
+ :key="index"
482
+ :visible.sync="item.visible"
483
+ v-on="{ ...item.events }"
484
+ >
485
+ </es-dialog>
486
+ </template>
487
+ </template>
488
+ </template>
489
+ <template v-else>
490
+ <es-form
491
+ v-if="contents.type === 'form'"
492
+ ref="esFlowForm"
493
+ v-bind="
494
+ handleExclAttribute({
495
+ data: contents,
496
+ attrs: ['events', 'visible', 'model', 'type', 'ref']
497
+ })
498
+ "
499
+ full
500
+ :model.sync="contents.model"
501
+ :display="show"
502
+ :closeDialog="false"
503
+ v-on="{ ...contents.events }"
504
+ ></es-form>
505
+ <es-data-table
506
+ v-if="
507
+ contents.type === 'data-table' ||
508
+ contents.type === 'dataTable' ||
509
+ contents.type === 'flow-list' ||
510
+ items.contents.type === 'flowList'
511
+ "
512
+ v-bind="
513
+ handleExclAttribute({
514
+ data: contents,
515
+ attrs: ['events', 'visible', 'type']
516
+ })
517
+ "
518
+ :class="{
519
+ 'es-flow-group-data-table':
520
+ contents.type === 'data-table' ||
521
+ items.contents.type === 'dataTable',
522
+ 'es-flow-list':
523
+ contents.type === 'flow-list' ||
524
+ contents.type === 'flowList'
525
+ }"
526
+ :display="show"
527
+ v-on="contents.events"
528
+ >
529
+ <template v-if="contents.dialog" slot="dialog">
530
+ <template v-if="Array.isArray(contents.dialog)">
531
+ <es-dialog
532
+ v-for="(ele, ids) in contents.dialog"
533
+ :isReload="true"
534
+ v-bind="
535
+ handleExclAttribute({
536
+ data: ele,
537
+ attrs: ['visible']
538
+ })
539
+ "
540
+ :key="ids"
541
+ :visible.sync="ele.visible"
542
+ v-on="{ ...ele.events }"
543
+ >
544
+ </es-dialog>
545
+ </template>
546
+ <es-dialog
547
+ v-else
548
+ :isReload="true"
549
+ v-bind="
550
+ handleExclAttribute({
551
+ data: contents.dialog,
552
+ attrs: ['visible']
553
+ })
554
+ "
555
+ :visible.sync="contents.dialog.visible"
556
+ v-on="{ ...contents.dialog.events }"
557
+ >
558
+ </es-dialog>
559
+ </template>
560
+ </es-data-table>
561
+ <es-tree-group
562
+ v-if="
563
+ contents.type === 'tree-group' ||
564
+ contents.type === 'treeGroup'
565
+ "
566
+ v-bind="
567
+ handleExclAttribute({
568
+ data: contents,
569
+ attrs: ['events', 'visible', 'type']
570
+ })
571
+ "
572
+ :display="show"
573
+ v-on="{ ...contents.events }"
574
+ ></es-tree-group>
575
+ <iframe
576
+ v-if="contents.type === 'iframe' && !contents.blank"
577
+ :id="contents.id || contents.name"
578
+ :name="contents.name"
579
+ frameborder="0"
580
+ width="100%"
581
+ height="100%"
582
+ :src="
583
+ handleUrlJoinParams({
584
+ url: contents.url,
585
+ param: contents.param || {}
586
+ })
587
+ "
588
+ ></iframe>
589
+ <es-upload
590
+ v-if="contents.type === 'attachment'"
591
+ v-bind="
592
+ handleExclAttribute({
593
+ data: contents,
594
+ attrs: ['events', 'type']
595
+ })
596
+ "
597
+ :display="show"
598
+ :file-count.sync="title.count"
599
+ height="auto"
600
+ class="es-attachment"
601
+ v-on="{ ...contents.events }"
602
+ ></es-upload>
603
+ </template>
604
+ </template>
605
+ </es-tabs-panel>
606
+ </el-tab-pane>
607
+ </template>
608
+ </el-tabs>
609
+ </template>
610
+
611
+ <script>
612
+ import util from 'eoss-ui/src/utils/util';
613
+ export default {
614
+ name: 'EsTabs',
615
+ inheritAttrs: false,
616
+ provide() {
617
+ return {
618
+ esTabs: this
619
+ };
620
+ },
621
+ props: {
622
+ mold: String,
623
+ full: {
624
+ type: Boolean,
625
+ default: undefined
626
+ },
627
+ height: String,
628
+ value: {
629
+ type: String,
630
+ default: '0'
631
+ },
632
+ isSubmit: Boolean,
633
+ multiple: Boolean,
634
+ // 页面主体内容
635
+ contents: {
636
+ type: Array,
637
+ default() {
638
+ return [];
639
+ }
640
+ }
641
+ },
642
+ watch: {
643
+ activeName(val) {
644
+ this.$emit('input', val);
645
+ },
646
+ tabs: {
647
+ immediate: true,
648
+ deep: true,
649
+ handler(val) {
650
+ if (val.length) {
651
+ if (this.isSubmit) {
652
+ let obj = {};
653
+ val.forEach((item, index) => {
654
+ let key = item.name || String(index);
655
+ if (Array.isArray(item.contents)) {
656
+ obj[key] = true;
657
+ for (let i = 0; i < item.contents.length; i++) {
658
+ if (item.contents[i].type === 'form') {
659
+ obj[key] = Object.prototype.hasOwnProperty.call(
660
+ item.contents[i],
661
+ 'isSubmit'
662
+ )
663
+ ? item.contents[i].isSubmit
664
+ : this.isSubmit
665
+ ? false
666
+ : true;
667
+ break;
668
+ }
669
+ }
670
+ } else {
671
+ obj[key] =
672
+ item.contents.type === 'form'
673
+ ? (obj[key] = Object.prototype.hasOwnProperty.call(
674
+ item.contents,
675
+ 'isSubmit'
676
+ )
677
+ ? item.contents.isSubmit
678
+ : this.isSubmit
679
+ ? false
680
+ : true)
681
+ : true;
682
+ }
683
+ });
684
+ this.state = obj;
685
+ }
686
+ }
687
+ }
688
+ }
689
+ },
690
+ computed: {
691
+ tabs() {
692
+ return this.contents ? this.contents : [];
693
+ },
694
+ isFull() {
695
+ return this.full !== undefined ? this.full : this.fill;
696
+ },
697
+ style() {
698
+ return {
699
+ height: this.height ? this.height : this.full || this.fill ? '100%' : ''
700
+ };
701
+ }
702
+ },
703
+ data() {
704
+ return {
705
+ activeName: this.value,
706
+ state: {},
707
+ id: null,
708
+ fill: false
709
+ };
710
+ },
711
+ mounted() {
712
+ if (
713
+ this.$el.parentNode.children.length == 1 &&
714
+ util.getStyle(this.$el.parentNode, 'height')
715
+ ) {
716
+ this.fill = true;
717
+ }
718
+ },
719
+ methods: {
720
+ handleExclAttribute({ data, attrs }) {
721
+ return util.exclAttribute({
722
+ data: data,
723
+ attrs: attrs
724
+ });
725
+ },
726
+ handleUrlJoinParams({ url, param }) {
727
+ return util.urlJoinParams({ url, param });
728
+ },
729
+ handleBefore(active, old) {
730
+ return new Promise((resolve, reject) => {
731
+ if (this.isSubmit && old !== undefined && !this.state[old]) {
732
+ reject();
733
+ this.$alert('请先保存基本信息', '提示!', {
734
+ confirmButtonText: '确定'
735
+ }).catch(() => {});
736
+ } else {
737
+ resolve();
738
+ }
739
+ });
740
+ },
741
+ handleTabState(res) {
742
+ this.isSubmit && this.$set(this.state, this.activeName, res);
743
+ },
744
+ handleChangeData(res) {
745
+ this.$emit('changeData', res);
746
+ }
747
+ }
748
+ };
749
+ </script>