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,686 @@
1
+ <script>
2
+ import util from 'eoss-ui/src/utils/util';
3
+ export default {
4
+ name: 'EsSelectGanged',
5
+ componentName: 'EsSelectGanged',
6
+ inheritAttrs: false,
7
+ provide() {
8
+ return {
9
+ ganged: this
10
+ };
11
+ },
12
+ props: {
13
+ method: {
14
+ type: String,
15
+ default: 'get'
16
+ },
17
+ //接口请求携带的参数
18
+ param: {
19
+ type: [Object, Array],
20
+ default() {
21
+ return {};
22
+ }
23
+ },
24
+ // 显示隐藏组件
25
+ display: {
26
+ type: Boolean,
27
+ default: true
28
+ },
29
+ // 是否不渲染组件
30
+ hide: {
31
+ type: Boolean,
32
+ default: false
33
+ },
34
+ placeholder: {
35
+ type: String,
36
+ default: '请选择'
37
+ },
38
+ valueType: {
39
+ type: String,
40
+ default: 'object'
41
+ },
42
+ data: {
43
+ type: Array,
44
+ default() {
45
+ return [];
46
+ }
47
+ },
48
+ // 选择项远程地址
49
+ url: {
50
+ type: String,
51
+ default: ''
52
+ },
53
+ // 开启联动选择
54
+ ganged: {
55
+ type: Number,
56
+ default: 0
57
+ },
58
+ //是否多选
59
+ multiple: [Boolean, Array],
60
+ // 选择项的值字段
61
+ value: {
62
+ type: [String, Array],
63
+ default: ''
64
+ },
65
+ filtrate: [String, Number],
66
+ filtrateKey: {
67
+ type: String,
68
+ default: 'pid'
69
+ },
70
+ // 请求参数
71
+ queryKey: [Object, Array, String],
72
+ //选择项的值字段
73
+ valueKey: {
74
+ type: String,
75
+ default: 'value'
76
+ },
77
+ labelKey: {
78
+ type: String,
79
+ default: 'name'
80
+ },
81
+ sysCode: String,
82
+ integrality: {
83
+ type: Boolean,
84
+ default: false
85
+ },
86
+ separator: {
87
+ type: String,
88
+ default: '/'
89
+ },
90
+ symbol: {
91
+ type: String,
92
+ default: ','
93
+ },
94
+ readonly: Boolean,
95
+ plain: Boolean,
96
+ parseData: Function,
97
+ group: Boolean,
98
+ hasSub: {
99
+ type: String,
100
+ default: 'hasSub'
101
+ },
102
+ defaultValue: Boolean
103
+ },
104
+ data() {
105
+ return {
106
+ lists: [],
107
+ options: null,
108
+ disabled: [],
109
+ values: [],
110
+ filtrates: [this.filtrate],
111
+ wheres: [{}],
112
+ first: true,
113
+ height: undefined,
114
+ gangedNum: null
115
+ };
116
+ },
117
+ computed: {
118
+ getGanged: {
119
+ get() {
120
+ if (this.ganged > 0) {
121
+ return this.ganged;
122
+ } else if (this.results.length > 0 && Array.isArray(this.results[0])) {
123
+ return this.results.length;
124
+ } else {
125
+ return 1;
126
+ }
127
+ },
128
+ set(val) {
129
+ return val;
130
+ }
131
+ },
132
+ multiples: {
133
+ get() {
134
+ if (!this.gangedNum) {
135
+ if (this.ganged && this.value.length <= this.getGanged) {
136
+ this.gangedNum = this.getGanged;
137
+ } else {
138
+ let val = this.value.length
139
+ ? this.value[this.value.length - 1]
140
+ : null;
141
+ if (
142
+ val &&
143
+ Object.prototype.hasOwnProperty.call(val, 'hasSub') &&
144
+ val.hasSub === false
145
+ ) {
146
+ this.gangedNum = this.value.length;
147
+ } else {
148
+ this.gangedNum = this.value.length + 1;
149
+ }
150
+ }
151
+ }
152
+ let multiples = [];
153
+ if (this.multiple === undefined && this.value.length) {
154
+ multiples = this.value.map(item => {
155
+ return Array.isArray(item);
156
+ });
157
+ } else if (Array.isArray(this.multiple) && this.multiple.length) {
158
+ if (this.multiple.length < this.gangedNum) {
159
+ for (let i = 0; i < this.gangedNum; i++) {
160
+ multiples.push(
161
+ this.multiple[i] == undefined
162
+ ? multiples[i - 1]
163
+ : this.multiple[i]
164
+ );
165
+ }
166
+ } else {
167
+ multiples = this.multiple;
168
+ }
169
+ } else {
170
+ for (let i = 0; i < this.gangedNum; i++) {
171
+ multiples.push(this.multiple);
172
+ }
173
+ }
174
+ return multiples;
175
+ },
176
+ set(val) {
177
+ return val;
178
+ }
179
+ },
180
+ results() {
181
+ if (this.integrality) {
182
+ return this.lists;
183
+ }
184
+ return this.data;
185
+ }
186
+ },
187
+ watch: {
188
+ value: {
189
+ immediate: true,
190
+ deep: true,
191
+ handler(val) {
192
+ if (this.first) {
193
+ this.getValue();
194
+ if (val && (util.isObject(val) || val.length)) {
195
+ this.getChildren(this.results, this.values);
196
+ }
197
+ }
198
+ }
199
+ },
200
+ // 监听级联层数,便于动态修改级联数据
201
+ ganged: {
202
+ deep: true,
203
+ handler(val, oldVal) {
204
+ if (val !== oldVal) {
205
+ this.gangedNum = val;
206
+ // 当级联数增加时,重新执行handeChange,以便最后一层数据从倒数第二层的位置开始找
207
+ if (val > oldVal) {
208
+ let value = this.values[oldVal - 1];
209
+ this.handeChange(value, oldVal - 1);
210
+ } else {
211
+ let value = this.values[val - 1];
212
+ this.handeChange(value, val - 1);
213
+ }
214
+ }
215
+ }
216
+ }
217
+ },
218
+ created() {
219
+ this.getData();
220
+ },
221
+ mounted() {},
222
+ methods: {
223
+ getData() {
224
+ if (!this.integrality || !this.url) {
225
+ return false;
226
+ }
227
+ util
228
+ .ajax({
229
+ url: this.sysCode ? findSysCode : this.url,
230
+ method: this.method,
231
+ params: this.param,
232
+ data: this.param
233
+ })
234
+ .then(res => {
235
+ if (res.rCode === 0) {
236
+ this.lists = res.results;
237
+ this.getChildren(this.results, this.values);
238
+ }
239
+ })
240
+ .catch(e => {
241
+ if (err.message && err.message !== 'canceled') {
242
+ this.$message.error(err.message);
243
+ }
244
+ });
245
+ },
246
+ getChildren(data, values) {
247
+ if (!this.gangedNum) {
248
+ if (
249
+ (this.ganged && this.value.length < this.getGanged) ||
250
+ Array.isArray(this.results[0])
251
+ ) {
252
+ this.gangedNum = this.getGanged;
253
+ } else {
254
+ let val = this.value.length
255
+ ? this.value[this.value.length - 1]
256
+ : null;
257
+ if (
258
+ val &&
259
+ Object.prototype.hasOwnProperty.call(val, 'hasSub') &&
260
+ val.hasSub === false
261
+ ) {
262
+ this.gangedNum = this.value.length;
263
+ } else {
264
+ this.gangedNum = this.value.length + 1;
265
+ }
266
+ }
267
+ }
268
+ for (let i = 0; i < values.length; i++) {
269
+ if (i > 0) {
270
+ if (
271
+ (values[i] || values[i] == 0) &&
272
+ (util.isObject(values[i]) || values[i].length)
273
+ ) {
274
+ this.$set(this.disabled, i, false);
275
+ }
276
+ }
277
+ if (i < values.length - 1) {
278
+ if (
279
+ values[i] &&
280
+ Object.prototype.hasOwnProperty.call(values[i], 'multiple')
281
+ ) {
282
+ this.$set(this.multiples, i + 1, Boolean(this.values[i].multiple));
283
+ }
284
+ if (i + 1 <= values.length) {
285
+ this.$set(
286
+ this.filtrates,
287
+ i + 1,
288
+ this.multiples[i + 1]
289
+ ? Array.isArray(values[i])
290
+ ? values[i]
291
+ : [values[i]]
292
+ : values[i]
293
+ );
294
+ }
295
+
296
+ if (this.url && i + 1 <= values.length) {
297
+ let params = {};
298
+ if (this.queryKey !== undefined) {
299
+ if (typeof this.queryKey === 'string') {
300
+ if (Array.isArray(values[i])) {
301
+ params[this.queryKey] = values[i].map(item => {
302
+ return item[this.queryKey];
303
+ });
304
+ } else {
305
+ params[this.queryKey] = values[i][this.queryKey];
306
+ }
307
+ } else {
308
+ for (let x in this.queryKey) {
309
+ if (Array.isArray(values[i])) {
310
+ params[x] = values[i].map(item => {
311
+ return item[this.queryKey[x]];
312
+ });
313
+ } else {
314
+ params[x] = values[i][this.queryKey[x]];
315
+ }
316
+ }
317
+ }
318
+ }
319
+ this.$set(this.wheres, i + 1, params);
320
+ }
321
+ }
322
+ }
323
+ if (values.length && values.length < this.gangedNum) {
324
+ this.$set(this.disabled, values.length, false);
325
+ }
326
+ },
327
+ getValue() {
328
+ if (!this.gangedNum) {
329
+ if (
330
+ (this.ganged && this.value.length <= this.getGanged) ||
331
+ Array.isArray(this.results[0])
332
+ ) {
333
+ this.gangedNum = this.getGanged;
334
+ } else {
335
+ let val = this.value.length
336
+ ? this.value[this.value.length - 1]
337
+ : null;
338
+ if (
339
+ val &&
340
+ Object.prototype.hasOwnProperty.call(val, 'hasSub') &&
341
+ val.hasSub === false
342
+ ) {
343
+ this.gangedNum = this.value.length;
344
+ } else {
345
+ this.gangedNum = this.value.length + 1;
346
+ }
347
+ }
348
+ }
349
+ if (
350
+ !this.ganged ||
351
+ (this.value.length < this.gangedNum - 1 && this.gangedNum > 0)
352
+ ) {
353
+ let val = this.value.length
354
+ ? JSON.parse(JSON.stringify(this.value))
355
+ : [];
356
+ let disabled = [];
357
+ for (let i = 0; i < this.gangedNum; i++) {
358
+ if (i > this.value.length - 1) {
359
+ val.push(this.multiples[i] ? [] : '');
360
+ }
361
+ disabled.push(i > this.value.length);
362
+ }
363
+ this.disabled = disabled;
364
+ this.values = val;
365
+ } else {
366
+ let disabled = [];
367
+ if (this.multiple) {
368
+ this.values = this.value.map((item, index) => {
369
+ return this.multiples[index]
370
+ ? Array.isArray(item)
371
+ ? item
372
+ : [item]
373
+ : item;
374
+ });
375
+ for (let i = 0; i < this.gangedNum; i++) {
376
+ disabled.push(
377
+ this.values[i] && this.values[i].length ? false : i > 0
378
+ );
379
+ }
380
+ } else {
381
+ for (let i = 0; i < this.gangedNum; i++) {
382
+ if (Array.isArray(this.value[i])) {
383
+ this.$set(this.multiples, i, true);
384
+ disabled.push(this.value[i].length ? false : i > 0);
385
+ } else {
386
+ this.$set(
387
+ this.multiples,
388
+ i,
389
+ util.isObject(this.value[i]) ? this.value[i].multiple : false
390
+ );
391
+ disabled.push(this.value[i] ? false : i > 0);
392
+ }
393
+ }
394
+ this.values = JSON.parse(JSON.stringify(this.value));
395
+ }
396
+ this.disabled = disabled;
397
+ }
398
+ },
399
+ handeChange(val, key) {
400
+ if (!this.gangedNum) {
401
+ if (this.ganged && this.value.length < this.getGanged) {
402
+ this.gangedNum = this.getGanged;
403
+ } else {
404
+ let val = this.value.length
405
+ ? this.value[this.value.length - 1]
406
+ : null;
407
+ if (
408
+ val &&
409
+ Object.prototype.hasOwnProperty.call(val, 'hasSub') &&
410
+ val.hasSub === false
411
+ ) {
412
+ this.gangedNum = this.value.length;
413
+ } else {
414
+ this.gangedNum = this.value.length + 1;
415
+ }
416
+ }
417
+ }
418
+ if (key === this.gangedNum - 1 && val[this.hasSub]) {
419
+ this.gangedNum += 1;
420
+ } else if (val[this.hasSub] === false) {
421
+ this.gangedNum = key + 1;
422
+ }
423
+ this.first = false;
424
+ this.parentData = null;
425
+ if (this.url && key + 1 < this.gangedNum) {
426
+ this.parentData = val;
427
+ let params = {};
428
+ if (this.queryKey !== undefined) {
429
+ if (typeof this.queryKey === 'string') {
430
+ params[this.queryKey] = Array.isArray(val)
431
+ ? val.map(item => {
432
+ return item[this.queryKey];
433
+ })
434
+ : val[this.queryKey];
435
+ } else {
436
+ for (let i in this.queryKey) {
437
+ params[i] = Array.isArray(val)
438
+ ? val.map(item => {
439
+ return item[this.queryKey[i]];
440
+ })
441
+ : val[this.queryKey[i]];
442
+ }
443
+ }
444
+ } else {
445
+ params.id = Array.isArray(val)
446
+ ? val.map(item => {
447
+ return item[this.valueKey];
448
+ })
449
+ : val[this.valueKey];
450
+ }
451
+ this.$set(this.wheres, key + 1, params);
452
+ }
453
+ this.$set(this.values, key, val);
454
+ if (key + 1 < this.gangedNum) {
455
+ }
456
+ for (let i = key + 1; i < this.gangedNum; i++) {
457
+ if (this.multiples[i - 1]) {
458
+ let newVal = [];
459
+ this.values[i - 1].forEach(element => {
460
+ this.values[i].forEach(itemVal => {
461
+ if (element[this.valueKey] === itemVal[this.filtrateKey]) {
462
+ newVal.push(itemVal);
463
+ }
464
+ });
465
+ });
466
+ this.$set(this.values, i, newVal);
467
+ }
468
+ if (
469
+ this.values[i - 1] &&
470
+ (util.isObject(this.values[i - 1]) || this.values[i - 1].length)
471
+ ) {
472
+ this.$set(this.disabled, i, false);
473
+ } else {
474
+ this.$set(this.disabled, i, true);
475
+ }
476
+ this.$set(this.filtrates, i, this.values[i - 1]);
477
+ if (!this.multiple) {
478
+ if (
479
+ util.isObject(val) &&
480
+ Object.prototype.hasOwnProperty.call(val, 'multiple')
481
+ ) {
482
+ this.$set(this.multiples, i, Boolean(val.multiple));
483
+ }
484
+ }
485
+ if (!this.multiples[i - 1] || val.length == 0) {
486
+ this.$set(this.values, i, this.multiples[i] ? [] : '');
487
+ }
488
+ }
489
+ if (key + 1 === this.gangedNum) {
490
+ this.$emit('input', this.values);
491
+ }
492
+ this.$emit('change', { value: val, index: key, data: this.values });
493
+ },
494
+ getLabel(res, index) {
495
+ let results = this.results;
496
+ if (Array.isArray(this.results[0])) {
497
+ results = this.results[index];
498
+ }
499
+ for (let i = 0; i < results.length; i++) {
500
+ let item = results[i];
501
+ if (item[this.valueKey] == res) {
502
+ return item;
503
+ }
504
+ if (
505
+ Object.prototype.hasOwnProperty.call(item, 'children') &&
506
+ item.children &&
507
+ item.children.length
508
+ ) {
509
+ return this.getLabel(item.children, res);
510
+ }
511
+ }
512
+ }
513
+ },
514
+ render(h) {
515
+ if (!this.hide) {
516
+ if (this.readonly) {
517
+ let value = [];
518
+ if (this.value) {
519
+ if (this.group) {
520
+ let path = {};
521
+ let values = [];
522
+ this.value.forEach((item, index) => {
523
+ if (Array.isArray(item)) {
524
+ item.forEach(ele => {
525
+ let obj = ele;
526
+ if (!ele[this.filtrateKey]) {
527
+ obj = this.getLabel(ele[this.valueKey] || ele, index);
528
+ }
529
+ if (path[obj[this.filtrateKey]]) {
530
+ path[obj[this.valueKey]] =
531
+ path[obj[this.filtrateKey]] +
532
+ this.separator +
533
+ (obj[this.labelKey] || obj.label);
534
+ values.push(path[obj[this.valueKey]]);
535
+ } else {
536
+ path[obj[this.valueKey]] = obj[this.labelKey] || obj.label;
537
+ }
538
+ });
539
+ } else {
540
+ let obj = item;
541
+ if (!item[this.filtrateKey]) {
542
+ obj = this.getLabel(item[this.valueKey] || item, index);
543
+ }
544
+ if (path[obj[this.filtrateKey]]) {
545
+ path[obj[this.valueKey]] =
546
+ path[obj[this.filtrateKey]] +
547
+ this.separator +
548
+ (obj[this.labelKey] || obj.label);
549
+ values.push(path[obj[this.valueKey]]);
550
+ } else {
551
+ path[obj[this.valueKey]] = obj[this.labelKey] || obj.label;
552
+ }
553
+ }
554
+ });
555
+ values.forEach((item, index) => {
556
+ let flag = true;
557
+ for (let i = index + 1; i < values.length; i++) {
558
+ if (values[i].indexOf(item) > -1) {
559
+ flag = false;
560
+ break;
561
+ }
562
+ }
563
+ if (flag) {
564
+ value.push(item);
565
+ }
566
+ });
567
+ } else {
568
+ value = [
569
+ this.value
570
+ .map((item, indexs) => {
571
+ if (Array.isArray(item)) {
572
+ return item
573
+ .map((ele, index) => {
574
+ return util.isObject(ele)
575
+ ? ele[this.labelKey] ||
576
+ ele.label ||
577
+ this.getLabel(
578
+ ele[this.valueKey] || ele.label,
579
+ index
580
+ )
581
+ : this.getLabel(ele, index) || ele;
582
+ })
583
+ .join(this.symbol);
584
+ }
585
+ return util.isObject(item)
586
+ ? item[this.labelKey] ||
587
+ item.label ||
588
+ this.getLabel(item[this.valueKey] || item.label, indexs)
589
+ : this.getLabel(item, indexs) || item;
590
+ })
591
+ .join(this.separator)
592
+ ];
593
+ }
594
+ }
595
+ return h('es-select', {
596
+ attrs: {
597
+ ...this.$attrs,
598
+ separator: this.separator,
599
+ readonly: true,
600
+ multiple: value.length > 1,
601
+ value: value
602
+ }
603
+ });
604
+ }
605
+ if (!this.gangedNum) {
606
+ if (this.ganged && this.value.length < this.getGanged) {
607
+ this.gangedNum = this.getGanged;
608
+ } else {
609
+ let val = this.value.length
610
+ ? this.value[this.value.length - 1]
611
+ : null;
612
+ if (
613
+ val &&
614
+ Object.prototype.hasOwnProperty.call(val, 'hasSub') &&
615
+ val.hasSub === false
616
+ ) {
617
+ this.gangedNum = this.value.length;
618
+ } else {
619
+ this.gangedNum = this.value.length + 1;
620
+ }
621
+ }
622
+ }
623
+ let doms = [];
624
+ for (let i = 0; i < this.gangedNum; i++) {
625
+ doms.push(
626
+ h('es-select', {
627
+ attrs: {
628
+ ...this.$attrs,
629
+ data: this.results[i]
630
+ ? Array.isArray(this.results[0])
631
+ ? this.results[i]
632
+ : this.results
633
+ : [],
634
+ sysCode: this.integrality ? undefined : this.sysCode,
635
+ url: this.integrality ? undefined : this.url,
636
+ wait: this.ganged ? i <= this.value.length : true,
637
+ param: Array.isArray(this.param)
638
+ ? { ...this.param[i], ...this.wheres[i] }
639
+ : { ...this.param, ...this.wheres[i] },
640
+ disabled: this.disabled[i],
641
+ multiple: this.multiples[i],
642
+ height: this.height,
643
+ value: this.values[i],
644
+ valueType: this.valueType,
645
+ valueKey: this.valueKey,
646
+ labelKey: this.labelKey,
647
+ filtrateKey: this.filtrateKey,
648
+ filtrate: this.url
649
+ ? this.integrality
650
+ ? this.filtrates[i]
651
+ : undefined
652
+ : this.filtrates[i],
653
+ placeholder: this.placeholder,
654
+ parseData: this.parseData,
655
+ defaultValue: i === 0 ? this.defaultValue : false
656
+ },
657
+ on: {
658
+ change: val => {
659
+ this.handeChange(val, i);
660
+ },
661
+ resetInputHeight: val => {
662
+ this.height = val;
663
+ }
664
+ }
665
+ })
666
+ );
667
+ }
668
+ return h(
669
+ 'div',
670
+ {
671
+ class: 'es-select-ganged',
672
+ directives: [
673
+ {
674
+ name: 'show',
675
+ value: this.display
676
+ }
677
+ ]
678
+ },
679
+ doms
680
+ );
681
+ } else {
682
+ return '';
683
+ }
684
+ }
685
+ };
686
+ </script>
@@ -0,0 +1,5 @@
1
+ import EsSelector from './src/main';
2
+
3
+ EsSelector.install = Vue => Vue.component(EsSelector.name, EsSelector);
4
+
5
+ export default EsSelector;