eoss-mobiles 0.1.13

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 (285) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/README.md +28 -0
  3. package/lib/action-sheet.js +313 -0
  4. package/lib/button-group.js +421 -0
  5. package/lib/button.js +278 -0
  6. package/lib/calendar.js +301 -0
  7. package/lib/cascader.js +336 -0
  8. package/lib/cell.js +366 -0
  9. package/lib/checkbox.js +2170 -0
  10. package/lib/circle.js +299 -0
  11. package/lib/config/api.js +31 -0
  12. package/lib/count-down.js +299 -0
  13. package/lib/date.js +956 -0
  14. package/lib/empty.js +274 -0
  15. package/lib/eoss-mobile.common.js +15072 -0
  16. package/lib/field.js +440 -0
  17. package/lib/flow.js +5664 -0
  18. package/lib/form.js +714 -0
  19. package/lib/grid-item.js +274 -0
  20. package/lib/grid.js +317 -0
  21. package/lib/image-preview.js +325 -0
  22. package/lib/index.js +1 -0
  23. package/lib/list.js +315 -0
  24. package/lib/loading.js +279 -0
  25. package/lib/nav-bar.js +283 -0
  26. package/lib/pagination.js +323 -0
  27. package/lib/picker.js +2714 -0
  28. package/lib/popover.js +306 -0
  29. package/lib/popup.js +297 -0
  30. package/lib/radio.js +2137 -0
  31. package/lib/rate.js +300 -0
  32. package/lib/search.js +316 -0
  33. package/lib/selector.js +3496 -0
  34. package/lib/skeleton.js +277 -0
  35. package/lib/stepper.js +300 -0
  36. package/lib/switch.js +304 -0
  37. package/lib/tab.js +274 -0
  38. package/lib/table-column.js +2991 -0
  39. package/lib/table.js +2652 -0
  40. package/lib/tabs.js +315 -0
  41. package/lib/tag.js +281 -0
  42. package/lib/theme-chalk/action-sheet.css +0 -0
  43. package/lib/theme-chalk/base.css +1 -0
  44. package/lib/theme-chalk/button-group.css +1 -0
  45. package/lib/theme-chalk/button.css +1 -0
  46. package/lib/theme-chalk/calendar.css +1 -0
  47. package/lib/theme-chalk/cascader.css +1 -0
  48. package/lib/theme-chalk/cell.css +1 -0
  49. package/lib/theme-chalk/checkbox.css +1 -0
  50. package/lib/theme-chalk/circle.css +1 -0
  51. package/lib/theme-chalk/count-down.css +0 -0
  52. package/lib/theme-chalk/date.css +0 -0
  53. package/lib/theme-chalk/empty.css +0 -0
  54. package/lib/theme-chalk/field.css +1 -0
  55. package/lib/theme-chalk/flow.css +1 -0
  56. package/lib/theme-chalk/fonts/iconfont.scss +530 -0
  57. package/lib/theme-chalk/fonts/iconfont.ttf +0 -0
  58. package/lib/theme-chalk/fonts/iconfont.woff +0 -0
  59. package/lib/theme-chalk/form.css +0 -0
  60. package/lib/theme-chalk/grid-item.css +1 -0
  61. package/lib/theme-chalk/grid.css +0 -0
  62. package/lib/theme-chalk/icon.css +1 -0
  63. package/lib/theme-chalk/image-preview.css +0 -0
  64. package/lib/theme-chalk/index.css +1 -0
  65. package/lib/theme-chalk/list.css +0 -0
  66. package/lib/theme-chalk/loading.css +0 -0
  67. package/lib/theme-chalk/nav-bar.css +0 -0
  68. package/lib/theme-chalk/navbar.css +1 -0
  69. package/lib/theme-chalk/pagination.css +1 -0
  70. package/lib/theme-chalk/picker.css +1 -0
  71. package/lib/theme-chalk/popover.css +0 -0
  72. package/lib/theme-chalk/popup.css +0 -0
  73. package/lib/theme-chalk/radio.css +1 -0
  74. package/lib/theme-chalk/rate.css +0 -0
  75. package/lib/theme-chalk/search.css +0 -0
  76. package/lib/theme-chalk/selector.css +1 -0
  77. package/lib/theme-chalk/skeleton.css +0 -0
  78. package/lib/theme-chalk/stepper.css +1 -0
  79. package/lib/theme-chalk/switch.css +1 -0
  80. package/lib/theme-chalk/tab.css +0 -0
  81. package/lib/theme-chalk/table-column.css +0 -0
  82. package/lib/theme-chalk/table.css +1 -0
  83. package/lib/theme-chalk/tabs.css +1 -0
  84. package/lib/theme-chalk/tag.css +1 -0
  85. package/lib/theme-chalk/theme.css +0 -0
  86. package/lib/theme-chalk/tree.css +1 -0
  87. package/lib/theme-chalk/uploader.css +0 -0
  88. package/lib/uploader.js +307 -0
  89. package/lib/utils/axios.js +199 -0
  90. package/lib/utils/date-util.js +320 -0
  91. package/lib/utils/http.js +74 -0
  92. package/lib/utils/rules.js +21 -0
  93. package/lib/utils/store.js +24 -0
  94. package/lib/utils/util.js +1315 -0
  95. package/package.json +153 -0
  96. package/packages/action-sheet/index.js +5 -0
  97. package/packages/action-sheet/src/main.vue +32 -0
  98. package/packages/button/index.js +5 -0
  99. package/packages/button/src/main.vue +15 -0
  100. package/packages/button-group/index.js +5 -0
  101. package/packages/button-group/src/main.vue +80 -0
  102. package/packages/calendar/index.js +5 -0
  103. package/packages/calendar/src/main.vue +34 -0
  104. package/packages/cascader/index.js +5 -0
  105. package/packages/cascader/src/main.vue +40 -0
  106. package/packages/cell/index.js +5 -0
  107. package/packages/cell/src/main.vue +72 -0
  108. package/packages/checkbox/index.js +5 -0
  109. package/packages/checkbox/src/main.vue +149 -0
  110. package/packages/circle/index.js +5 -0
  111. package/packages/circle/src/main.vue +27 -0
  112. package/packages/count-down/index.js +5 -0
  113. package/packages/count-down/src/main.vue +27 -0
  114. package/packages/date/index.js +5 -0
  115. package/packages/date/src/date-time.vue +290 -0
  116. package/packages/date/src/main.vue +319 -0
  117. package/packages/empty/index.js +5 -0
  118. package/packages/empty/src/main.vue +16 -0
  119. package/packages/field/index.js +5 -0
  120. package/packages/field/src/main.vue +130 -0
  121. package/packages/flow/index.js +5 -0
  122. package/packages/flow/src/components/Handle.vue +1031 -0
  123. package/packages/flow/src/components/Message.vue +96 -0
  124. package/packages/flow/src/components/Opinion.vue +112 -0
  125. package/packages/flow/src/components/Reject.vue +202 -0
  126. package/packages/flow/src/components/StartFlow.vue +440 -0
  127. package/packages/flow/src/components/TaskRead.vue +237 -0
  128. package/packages/flow/src/main.vue +43 -0
  129. package/packages/form/index.js +5 -0
  130. package/packages/form/src/main.vue +158 -0
  131. package/packages/grid/index.js +5 -0
  132. package/packages/grid/src/main.vue +28 -0
  133. package/packages/grid-item/index.js +5 -0
  134. package/packages/grid-item/src/main.vue +16 -0
  135. package/packages/image-preview/index.js +5 -0
  136. package/packages/image-preview/src/main.vue +34 -0
  137. package/packages/list/index.js +5 -0
  138. package/packages/list/src/main.vue +32 -0
  139. package/packages/loading/index.js +5 -0
  140. package/packages/loading/src/main.vue +20 -0
  141. package/packages/nav-bar/index.js +5 -0
  142. package/packages/nav-bar/src/main.vue +16 -0
  143. package/packages/pagination/index.js +5 -0
  144. package/packages/pagination/src/main.vue +29 -0
  145. package/packages/picker/index.js +5 -0
  146. package/packages/picker/src/main.vue +500 -0
  147. package/packages/popover/index.js +5 -0
  148. package/packages/popover/src/main.vue +32 -0
  149. package/packages/popup/index.js +5 -0
  150. package/packages/popup/src/main.vue +27 -0
  151. package/packages/radio/index.js +5 -0
  152. package/packages/radio/src/main.vue +147 -0
  153. package/packages/rate/index.js +5 -0
  154. package/packages/rate/src/main.vue +27 -0
  155. package/packages/search/index.js +5 -0
  156. package/packages/search/src/main.vue +39 -0
  157. package/packages/selector/index.js +5 -0
  158. package/packages/selector/src/main.vue +77 -0
  159. package/packages/selector/src/selector-field.vue +225 -0
  160. package/packages/selector/src/selector-tree.vue +472 -0
  161. package/packages/selector/src/tree.vue +179 -0
  162. package/packages/skeleton/index.js +5 -0
  163. package/packages/skeleton/src/main.vue +17 -0
  164. package/packages/stepper/index.js +5 -0
  165. package/packages/stepper/src/main.vue +25 -0
  166. package/packages/switch/index.js +5 -0
  167. package/packages/switch/src/main.vue +29 -0
  168. package/packages/tab/index.js +5 -0
  169. package/packages/tab/src/main.vue +16 -0
  170. package/packages/table/index.js +5 -0
  171. package/packages/table/src/main.vue +830 -0
  172. package/packages/table-column/index.js +5 -0
  173. package/packages/table-column/src/main.vue +742 -0
  174. package/packages/table-column/src/mixins/table.js +12 -0
  175. package/packages/tabs/index.js +5 -0
  176. package/packages/tabs/src/main.vue +34 -0
  177. package/packages/tag/index.js +5 -0
  178. package/packages/tag/src/main.vue +16 -0
  179. package/packages/theme-chalk/README.md +33 -0
  180. package/packages/theme-chalk/lib/action-sheet.css +0 -0
  181. package/packages/theme-chalk/lib/base.css +1 -0
  182. package/packages/theme-chalk/lib/button-group.css +1 -0
  183. package/packages/theme-chalk/lib/button.css +1 -0
  184. package/packages/theme-chalk/lib/calendar.css +1 -0
  185. package/packages/theme-chalk/lib/cascader.css +1 -0
  186. package/packages/theme-chalk/lib/cell.css +1 -0
  187. package/packages/theme-chalk/lib/checkbox.css +1 -0
  188. package/packages/theme-chalk/lib/circle.css +1 -0
  189. package/packages/theme-chalk/lib/count-down.css +0 -0
  190. package/packages/theme-chalk/lib/date.css +0 -0
  191. package/packages/theme-chalk/lib/empty.css +0 -0
  192. package/packages/theme-chalk/lib/field.css +1 -0
  193. package/packages/theme-chalk/lib/flow.css +1 -0
  194. package/packages/theme-chalk/lib/fonts/iconfont.scss +530 -0
  195. package/packages/theme-chalk/lib/fonts/iconfont.ttf +0 -0
  196. package/packages/theme-chalk/lib/fonts/iconfont.woff +0 -0
  197. package/packages/theme-chalk/lib/form.css +0 -0
  198. package/packages/theme-chalk/lib/grid-item.css +1 -0
  199. package/packages/theme-chalk/lib/grid.css +0 -0
  200. package/packages/theme-chalk/lib/icon.css +1 -0
  201. package/packages/theme-chalk/lib/image-preview.css +0 -0
  202. package/packages/theme-chalk/lib/index.css +1 -0
  203. package/packages/theme-chalk/lib/list.css +0 -0
  204. package/packages/theme-chalk/lib/loading.css +0 -0
  205. package/packages/theme-chalk/lib/nav-bar.css +0 -0
  206. package/packages/theme-chalk/lib/navbar.css +1 -0
  207. package/packages/theme-chalk/lib/pagination.css +1 -0
  208. package/packages/theme-chalk/lib/picker.css +1 -0
  209. package/packages/theme-chalk/lib/popover.css +0 -0
  210. package/packages/theme-chalk/lib/popup.css +0 -0
  211. package/packages/theme-chalk/lib/radio.css +1 -0
  212. package/packages/theme-chalk/lib/rate.css +0 -0
  213. package/packages/theme-chalk/lib/search.css +0 -0
  214. package/packages/theme-chalk/lib/selector.css +1 -0
  215. package/packages/theme-chalk/lib/skeleton.css +0 -0
  216. package/packages/theme-chalk/lib/stepper.css +1 -0
  217. package/packages/theme-chalk/lib/switch.css +1 -0
  218. package/packages/theme-chalk/lib/tab.css +0 -0
  219. package/packages/theme-chalk/lib/table-column.css +0 -0
  220. package/packages/theme-chalk/lib/table.css +1 -0
  221. package/packages/theme-chalk/lib/tabs.css +1 -0
  222. package/packages/theme-chalk/lib/tag.css +1 -0
  223. package/packages/theme-chalk/lib/theme.css +0 -0
  224. package/packages/theme-chalk/lib/tree.css +1 -0
  225. package/packages/theme-chalk/lib/uploader.css +0 -0
  226. package/packages/theme-chalk/package.json +35 -0
  227. package/packages/theme-chalk/src/action-sheet.scss +0 -0
  228. package/packages/theme-chalk/src/base.scss +182 -0
  229. package/packages/theme-chalk/src/button-group.scss +26 -0
  230. package/packages/theme-chalk/src/button.scss +3 -0
  231. package/packages/theme-chalk/src/calendar.scss +12 -0
  232. package/packages/theme-chalk/src/cascader.scss +12 -0
  233. package/packages/theme-chalk/src/cell.scss +14 -0
  234. package/packages/theme-chalk/src/checkbox.scss +10 -0
  235. package/packages/theme-chalk/src/circle.scss +7 -0
  236. package/packages/theme-chalk/src/common/var.scss +1525 -0
  237. package/packages/theme-chalk/src/count-down.scss +0 -0
  238. package/packages/theme-chalk/src/date.scss +0 -0
  239. package/packages/theme-chalk/src/empty.scss +0 -0
  240. package/packages/theme-chalk/src/field.scss +28 -0
  241. package/packages/theme-chalk/src/flow.scss +542 -0
  242. package/packages/theme-chalk/src/fonts/iconfont.scss +530 -0
  243. package/packages/theme-chalk/src/fonts/iconfont.ttf +0 -0
  244. package/packages/theme-chalk/src/fonts/iconfont.woff +0 -0
  245. package/packages/theme-chalk/src/form.scss +15 -0
  246. package/packages/theme-chalk/src/grid-item.scss +8 -0
  247. package/packages/theme-chalk/src/grid.scss +0 -0
  248. package/packages/theme-chalk/src/icon.scss +1661 -0
  249. package/packages/theme-chalk/src/image-preview.scss +0 -0
  250. package/packages/theme-chalk/src/index.scss +38 -0
  251. package/packages/theme-chalk/src/list.scss +0 -0
  252. package/packages/theme-chalk/src/loading.scss +0 -0
  253. package/packages/theme-chalk/src/mixins/color.scss +117 -0
  254. package/packages/theme-chalk/src/mixins/mixins.scss +25 -0
  255. package/packages/theme-chalk/src/nav-bar.scss +0 -0
  256. package/packages/theme-chalk/src/navbar.scss +6 -0
  257. package/packages/theme-chalk/src/pagination.scss +10 -0
  258. package/packages/theme-chalk/src/picker.scss +27 -0
  259. package/packages/theme-chalk/src/popover.scss +0 -0
  260. package/packages/theme-chalk/src/popup.scss +0 -0
  261. package/packages/theme-chalk/src/radio.scss +7 -0
  262. package/packages/theme-chalk/src/rate.scss +0 -0
  263. package/packages/theme-chalk/src/search.scss +0 -0
  264. package/packages/theme-chalk/src/selector.scss +218 -0
  265. package/packages/theme-chalk/src/skeleton.scss +0 -0
  266. package/packages/theme-chalk/src/stepper.scss +10 -0
  267. package/packages/theme-chalk/src/switch.scss +6 -0
  268. package/packages/theme-chalk/src/tab.scss +0 -0
  269. package/packages/theme-chalk/src/table-column.scss +0 -0
  270. package/packages/theme-chalk/src/table.scss +42 -0
  271. package/packages/theme-chalk/src/tabs.scss +21 -0
  272. package/packages/theme-chalk/src/tag.scss +13 -0
  273. package/packages/theme-chalk/src/theme.scss +2 -0
  274. package/packages/theme-chalk/src/tree.scss +115 -0
  275. package/packages/theme-chalk/src/uploader.scss +0 -0
  276. package/packages/uploader/index.js +5 -0
  277. package/packages/uploader/src/main.vue +31 -0
  278. package/src/config/api.js +29 -0
  279. package/src/index.js +130 -0
  280. package/src/utils/axios.js +198 -0
  281. package/src/utils/date-util.js +312 -0
  282. package/src/utils/http.js +66 -0
  283. package/src/utils/rules.js +18 -0
  284. package/src/utils/store.js +21 -0
  285. package/src/utils/util.js +1346 -0
@@ -0,0 +1,472 @@
1
+ <template>
2
+ <div class="em-select-tree-content">
3
+ <em-nav-bar
4
+ v-if="showNavBar"
5
+ :class="isBgColor ? 'em-selector-nav-bar' : ''"
6
+ @click-left="navigateBack"
7
+ >
8
+ <template slot="left">
9
+ <van-icon name="arrow-left" />
10
+ </template>
11
+ <template slot="title">{{ navTitle }}</template>
12
+ </em-nav-bar>
13
+ <div class="em-search-box" v-if="showSearch">
14
+ <em-search
15
+ v-model="namelike"
16
+ @input="onSearch"
17
+ placeholder="请输入搜索关键词"
18
+ />
19
+ </div>
20
+ <div class="em-tree-box">
21
+ <em-tree
22
+ v-if="personnel && personnel.length > 0"
23
+ :model="personnel"
24
+ :value-key="valueKey"
25
+ :label-key="labelKey"
26
+ :enterprise="isEnterprise"
27
+ @popen="open"
28
+ @checke="checked"
29
+ :oldIsSearch="oldIsSearch"
30
+ :isSearch="isSearch"
31
+ :isOtherUnit="isOtherUnit"
32
+ :filid="filid"
33
+ ></em-tree>
34
+ </div>
35
+ <div class="em-btn-group">
36
+ <div class="select-list">
37
+ <div v-for="(r, i) in list" :key="i" class="item">
38
+ <!-- r[labelKey].length > 6
39
+ ? r[labelKey].slice(0, 6) + '...'
40
+ : r[labelKey] -->
41
+ <div class="name" v-if="r[labelKey]">
42
+ {{ r[labelKey] }}
43
+ </div>
44
+ <div class="delte" @click="delteList(i)">
45
+ <img
46
+ src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAAAAXNSR0IArs4c6QAABXxJREFUWEfVWUtIHVcY/v7YjVGSaBpFTAQ3JooLpSg+qxSapF30kY2bVshakNgo1rcmPioxtQSyDqTdZJMmXbSaQtH6RClmEWJ0I8SEEK1PfGxqTvkOM8PM3JnrnauF+sMFvXPmzDff+c/3/+e7giMSckRw4kBAlVJ5AEoAvA/gOIDTxt98/78BrADYMf4eFZHpaImJCqhSqhBAPYDPAz74MYBeEZkIeF8wRpVS+QD6AJQGfZBr/AiAWhGZinSeiBhVSnFZmwwWYyKdfJ9xe2QXQJeIMD3Cxr5AlVJxAP4AQDZDYnd3FwsLC3j58iXevHmjP4yUlBT9SUtLQ3p6OmJjY/2AkNWPRGQ7HNKwQJVS8QCGAHxgn0Qphbdv3+LJkyeYnp7GixcvsLa25vmchIQEXLhwAXl5ebh48SKSk5MhEvLYvwCUi8iWH1hfoEopUkAmC+w3r6+vY3BwEA8ePMDr16+xt8cV3D9iYmKQmpqKiooKXLp0CadOnXLfNGkwu+s1mydQA+TvAIrtNy0uLqKvrw/j4+Mgq9EE2SwqKkJtbS3OnTvnnmIMwMciEgLWD2insXmsiV69eoX29nY8ffo0Gnwh9+Tk5Oj5zp49677GzdXs/jIEqCHi4wDeMwevrq6io6MDY2N84cOL4uJitLW1ITEx0T7pPwCK3MXBC+ifdp3c3NzEjRs3MDw8HPVy+24QEZSVlaG1tRUnTpywDxsRkQ/tXziAGhWHbOpgHnLT3L59+9BBms9gzl6/fl1vMpcakFWrgrmBPrKXRWpiVVWV1kh3xMXFaTaooZQnv83Fh1OeqKVcle3tULmk1t69e1frri0ei8gX1gvZ2GOD4Shp9+/f1xN4SRA18ebNm2D+dnd3Y2SEVTE0SktL0djYqPOwpaVFa687KF0kpLKy0n0p38xVi1GlVA2A782RW1tbqKur04LuFVlZWVqqkpKSsLS0hJ6eHoyOjlrMksmSkhI0NDRYYyhJz58/95yPBeHWrVuIj2eNseIbEennf3agDkl69uwZqqurwc3kFSYQsnXmzBksLy+jq6tLg2UQZFNTk3WNrNtfxD0nN9OdO3eQnZ1tv2RJlR0okV8zRw0MDKC5OUTOQjCbS0uwZJZgGQRJtvkC4VLDPmFnZycuX75s/+oHEeFKOxj9EcBX5qh79+7p/IwkCNZcYuYsgzlppoRf/rrnZp5evXrV/vVPIvK1G+ivAD4xR5GFhw8fRoJTj3GLdzRF4sqVK3rj2eI3Efn0yAI9Mkt/ZDaTQ55mZ2e1PPk1xIctT2ywKU+ZmZn7ypND8Hd2dlBfX4+JCe8D4/nz59Hf3x9I8GtqajA3N+e5QQsLC9Hb24vjx3k8s8JT8AOVUOodW78gJZQtHfXZHYFKKG9WSv0MwGoEwjUlLHX5+fn6ODI/Px+2KcnIyNDHkKmpKbA0u8OnKXkkIl+aY49mm2ew6miceZhj1+OXqxFXBJ+BzE12Ya7DXvjG2QDKXHUcRXioY5c/MzNzUFyO+3Nzc3V37zrkRXYUMcB2A2iwz8pc5K4ks9GeQK18EwGZpKowd13RIyKOOuooofbBhoVD44HsWrGysqLBDg0N4d27d1Gxe+zYMZSXl2uQp0/T/HMEm18aESEWTzgDglbOsNsl2djY0BJzEAOC0nby5Ek3SLolZX7WTiSWDo0Ih1tit3QmJye1iPMFvIKAWBwKCgrCWTp0SWg8BLd0zIf6uSbmdR7WeMCjQeFlktFg4MGOh0Gf8HVH7OP3dfOMzUUfignODXaYtmMPgG4vC8f9UhEBtbH7/zZy3W9nGBXfAvgs4Nb/BcB3/7k17gGYDPPHBupMuB8b+KMDf2yI2Ao/0NIHZO9QhwfK0UN9csDJ/gXzxuhJ8IbhCwAAAABJRU5ErkJggg=="
47
+ />
48
+ </div>
49
+ </div>
50
+ </div>
51
+ <div class="btn" @click="dispose">确认({{ list.length }})</div>
52
+ </div>
53
+ </div>
54
+ </template>
55
+
56
+ <script>
57
+ import EmTree from './tree.vue';
58
+ import { selectObject } from '../../../src/config/api.js';
59
+ import $ from '../../../src/utils/util.js';
60
+ import request from '../../../src/utils/http.js';
61
+ export default {
62
+ components: { EmTree },
63
+ name: 'EmSelectorTree',
64
+ inheritAttrs: false,
65
+ props: {
66
+ isSelectAll: {
67
+ type: Boolean,
68
+ default: false
69
+ },
70
+ showSearch: {
71
+ type: Boolean,
72
+ default: true
73
+ },
74
+ multiple: {
75
+ type: Boolean, // 判断是否多选
76
+ default: true
77
+ },
78
+ selectList: {
79
+ type: Array, //传入选中数组
80
+ default: () => []
81
+ },
82
+ // pid: {
83
+ // type: String, // 父id或者是空
84
+ // default: 'root'
85
+ // },
86
+ param: {
87
+ type: Object,
88
+ default: () => {
89
+ return { pid: 'root' };
90
+ }
91
+ },
92
+ // depId:{
93
+ // type: String, //
94
+ // default:''
95
+ // },
96
+ isEnterprise: {
97
+ type: Boolean,
98
+ default: false
99
+ },
100
+ tabs: {
101
+ type: String, //enterprise:单位,department:部门,employee:用户
102
+ default: 'employee'
103
+ },
104
+ objType: {
105
+ type: String, // 点击对象类型(enterprise:单位,department:部门,employee:用户,person:人员,persongroup:群组)
106
+ default: 'enterprise'
107
+ },
108
+ isOtherUnit: {
109
+ //是否是其它单位
110
+ type: Boolean,
111
+ default: false
112
+ },
113
+ filid: {
114
+ type: String, // 指定企业
115
+ default: undefined
116
+ },
117
+ type: {
118
+ type: String, // 组件类型
119
+ default: 'components'
120
+ },
121
+ navTitle: {
122
+ type: String,
123
+ default: '请选择'
124
+ },
125
+ showNavBar: {
126
+ type: Boolean,
127
+ default: true
128
+ },
129
+ isBgColor: {
130
+ type: Boolean,
131
+ default: true
132
+ },
133
+ promptText: {
134
+ type: String,
135
+ default: '只能选择一个'
136
+ },
137
+ listKey: {
138
+ type: String,
139
+ default: ''
140
+ },
141
+ valueKey: {
142
+ type: String,
143
+ default: 'showid'
144
+ },
145
+ labelKey: {
146
+ type: String,
147
+ default: 'showname'
148
+ },
149
+ nodeList: Array
150
+ },
151
+ data() {
152
+ return {
153
+ genre: '',
154
+ personnel: '',
155
+ label: '',
156
+ namelike: undefined, //搜索关键字
157
+ list: [], //选中数组
158
+ timer: null,
159
+ isSearch: false,
160
+ oldIsSearch: false
161
+ };
162
+ },
163
+ watch: {
164
+ listKey: {
165
+ handler(val) {
166
+ this.label = val;
167
+ },
168
+ immediate: true
169
+ },
170
+ nodeList: {
171
+ handler(val) {
172
+ if (this.isSearch != this.oldIsSearch) {
173
+ this.getNodeList(true);
174
+ }
175
+ },
176
+ deep: true,
177
+ immediate: true
178
+ }
179
+ },
180
+ mounted() {
181
+ this.$nextTick(() => {
182
+ if (this.nodeList) {
183
+ this.getNodeList();
184
+ } else {
185
+ this.getContent();
186
+ }
187
+ });
188
+ },
189
+ methods: {
190
+ getNodeList(isSearch) {
191
+ this.personnel = this.nodeList;
192
+
193
+ !isSearch && (this.list = $.deepClone(this.selectList));
194
+ let _this = this;
195
+ if (this.list && this.list.length > 0) {
196
+ this.list.filter(r => {
197
+ _this.personnel.find(i => {
198
+ if (i[_this.valueKey] === r[_this.valueKey]) {
199
+ _this.$set(i, 'checked', true);
200
+ } else if (i.children) {
201
+ _this.getActiveChildren(i.children, r[_this.valueKey]);
202
+ } else {
203
+ _this.$set(i, 'checked', false);
204
+ }
205
+ });
206
+ });
207
+ } else {
208
+ _this.personnel.map(x => {
209
+ if (x.children && x.children.length > 0) {
210
+ this.setChecked(x.children);
211
+ } else {
212
+ _this.$set(x, 'checked', false);
213
+ }
214
+ });
215
+ }
216
+ },
217
+ getActiveChildren(data, id) {
218
+ const _this = this;
219
+ data.map(x => {
220
+ if (x[_this.valueKey] === id) {
221
+ _this.$set(x, 'checked', true);
222
+ } else if (x.children) {
223
+ _this.getActiveChildren(x.children, id);
224
+ } else {
225
+ _this.$set(x, 'checked', false);
226
+ }
227
+ });
228
+ },
229
+ setChecked(list) {
230
+ list.map(x => {
231
+ if (x.children && x.children.length > 0) {
232
+ this.setChecked(x.children);
233
+ } else {
234
+ this.$set(x, 'checked', false);
235
+ }
236
+ });
237
+ },
238
+ /**
239
+ * delteList
240
+ * @desc:删除选中的数据
241
+ * @date 2023年3月6日
242
+ * @author liufan
243
+ * @param {String,Number} i 点击数据的下标
244
+ */
245
+ delteList(i) {
246
+ this.oldIsSearch = this.isSearch;
247
+ let res = this.list[i];
248
+ this.getArray(this.personnel, res[this.valueKey]);
249
+ this.list.splice(i, 1);
250
+ },
251
+ // 树结构遍历
252
+ getArray(data, showid) {
253
+ for (let i in data) {
254
+ //满足条件
255
+ if (data[i][this.valueKey] == showid) {
256
+ this.$set(data[i], 'checked', false);
257
+ break;
258
+ } else {
259
+ //否则 继续遍历子元素
260
+ this.getArray(data[i].children, showid);
261
+ }
262
+ }
263
+ },
264
+ /**
265
+ * onSearch
266
+ * @desc:条件搜索
267
+ * @date 2023年3月6日
268
+ * @author liufan
269
+ */
270
+ onSearch() {
271
+ if (this.timer != null) {
272
+ clearTimeout(this.timer);
273
+ }
274
+ this.timer = setTimeout(() => {
275
+ if (this.$listeners.search) {
276
+ this.oldIsSearch = this.isSearch;
277
+ this.isSearch = !this.isSearch;
278
+ this.$emit('search', this.namelike);
279
+ } else {
280
+ this.getContent();
281
+ }
282
+ }, 1000);
283
+ },
284
+ /**
285
+ * getContent
286
+ * @desc:获取数据
287
+ * @date 2023年3月6日
288
+ * @author liufan
289
+ */
290
+ getContent(name) {
291
+ if (name) {
292
+ this.label = name;
293
+ }
294
+ this.list = $.deepClone(this.selectList);
295
+ this.$toast.loading({
296
+ message: '加载中...',
297
+ forbidClick: true,
298
+ loadingType: 'spinner',
299
+ overlay: true,
300
+ duration: 0
301
+ });
302
+ request({
303
+ url: selectObject,
304
+ params: {
305
+ // pid: this.pid,
306
+ // depId:this.depId,
307
+ objType: this.objType,
308
+ namelike: this.namelike,
309
+ selecttype: this.tabs,
310
+ filid: this.filid,
311
+ ...this.param
312
+ }
313
+ }).then(res => {
314
+ const { rCode, msg } = res;
315
+ if (rCode == 0) {
316
+ this.personnel = res.results;
317
+ let _this = this;
318
+ this.selectList.filter(r => {
319
+ _this.personnel.find(i => {
320
+ if (i[_this.valueKey] === r[_this.valueKey]) {
321
+ _this.$set(i, 'checked', true);
322
+ }
323
+ });
324
+ });
325
+ this.genre = res.results;
326
+ } else {
327
+ this.$toast(msg);
328
+ }
329
+ this.$toast.clear();
330
+ });
331
+ },
332
+ getData(obj) {
333
+ let params = {
334
+ pid: obj[this.valueKey],
335
+ selecttype: obj.selecttype,
336
+ objType: obj.objType
337
+ };
338
+ this.$toast.loading({
339
+ message: '加载中...',
340
+ forbidClick: true,
341
+ loadingType: 'spinner',
342
+ overlay: true,
343
+ duration: 0
344
+ });
345
+ request({ url: selectObject, params: params }).then(res => {
346
+ if (res.rCode == 0) {
347
+ this.$set(obj, 'children', res.results);
348
+ let _this = this;
349
+ this.selectList.filter(r => {
350
+ obj.children.find(i => {
351
+ if (i[_this.valueKey] === r[_this.valueKey]) {
352
+ _this.$set(i, 'checked', true);
353
+ }
354
+ });
355
+ });
356
+ }
357
+ this.$toast.clear();
358
+ });
359
+ },
360
+ open(res, isStart) {
361
+ const _that = this;
362
+ _that.oldIsSearch = _that.isSearch;
363
+ if (this.$listeners['node-click']) {
364
+ if (!isStart) {
365
+ if (res.obj.open) {
366
+ this.$set(res.obj, 'open', false);
367
+ } else {
368
+ this.$set(res.obj, 'open', true);
369
+ }
370
+ }
371
+ let newData = res.obj;
372
+ if (!newData.children) {
373
+ this.$toast.loading({
374
+ message: '加载中...',
375
+ forbidClick: true,
376
+ loadingType: 'spinner',
377
+ overlay: true,
378
+ duration: 0
379
+ });
380
+ let data = _that.$listeners['node-click'](res.obj);
381
+ if (!Array.isArray(data)) {
382
+ data.then(res => {
383
+ res.map(x => {
384
+ !x.subNode && _that.$set(x, 'nocheck', false);
385
+ });
386
+ _that.$set(newData, 'children', res);
387
+ if (_that.selectList && _that.selectList.length > 0) {
388
+ _that.selectList.filter(r => {
389
+ newData.children.find(i => {
390
+ if (i[_that.valueKey] === r[_that.valueKey]) {
391
+ _that.$set(i, 'checked', true);
392
+ }
393
+ });
394
+ });
395
+ } else {
396
+ newData.children.find(i => {
397
+ _that.$set(i, 'checked', false);
398
+ });
399
+ }
400
+ this.$toast.clear();
401
+ }).catch(err => {
402
+ console.log(err,'error')
403
+ this.$toast('数据返回错误')
404
+ });
405
+ } else {
406
+ data.map(x => {
407
+ !x.subNode && _that.$set(x, 'nocheck', false);
408
+ });
409
+ _that.$set(newData, 'children', data);
410
+ if (_that.selectList && _that.selectList.length > 0) {
411
+ _that.selectList.filter(r => {
412
+ newData.children.find(i => {
413
+ if (i[_that.valueKey] === r[_that.valueKey]) {
414
+ _that.$set(i, 'checked', true);
415
+ }
416
+ });
417
+ });
418
+ } else {
419
+ newData.children.find(i => {
420
+ _that.$set(i, 'checked', false);
421
+ });
422
+ }
423
+ this.$toast.clear();
424
+ }
425
+ }
426
+ } else {
427
+ if (!isStart) {
428
+ if (res.obj.open) {
429
+ this.$set(res.obj, 'open', false);
430
+ } else {
431
+ this.$set(res.obj, 'open', true);
432
+ }
433
+ }
434
+ if (!res.obj.children) {
435
+ this.getData(res.obj);
436
+ }
437
+ }
438
+ },
439
+ checked(res) {
440
+ this.oldIsSearch = this.isSearch;
441
+ if (res.obj.checked) {
442
+ for (let i in this.list) {
443
+ if (this.list[i][this.valueKey] == res.obj[this.valueKey]) {
444
+ this.list.splice(i, 1);
445
+ }
446
+ }
447
+
448
+ this.$set(res.obj, 'checked', false);
449
+ } else {
450
+ if (!this.multiple && this.list.length >= 1) {
451
+ this.$toast(this.promptText);
452
+ return;
453
+ }
454
+ this.$set(res.obj, 'checked', true);
455
+ this.list.unshift(res.obj);
456
+ }
457
+ },
458
+ dispose() {
459
+ let obj = {
460
+ list: this.list,
461
+ label: this.label ? this.label : undefined
462
+ };
463
+ this.oldIsSearch = this.isSearch;
464
+ this.$emit('dispose', obj);
465
+ this.$parent.$emit('change', obj);
466
+ },
467
+ navigateBack() {
468
+ this.$emit('close');
469
+ }
470
+ }
471
+ };
472
+ </script>
@@ -0,0 +1,179 @@
1
+ <template>
2
+ <ul class="em-tree">
3
+ <li
4
+ class="em-tree-item"
5
+ v-for="item in model"
6
+ :key="item.id"
7
+ :class="{ active: item.open }"
8
+ >
9
+ <div v-if="item.subNode && isShowNode(item[valueKey])">
10
+ <div v-tap="{ methods: opened, obj: item }" class="title">
11
+ <div class="text">
12
+ <div
13
+ class="label"
14
+ v-if="item.parentshowid === '' || item.parentshowid === 'root'"
15
+ >
16
+ <!-- item[labelKey] && item[labelKey].length > 12
17
+ ? item[labelKey].slice(0, 12) + '...'
18
+ : item[labelKey] -->
19
+ </div>
20
+ {{ item[labelKey] }}
21
+ </div>
22
+ <van-icon name="arrow" class="right" />
23
+ <i
24
+ class="iconfont icon-gou select-icon"
25
+ v-show="enterprise"
26
+ v-tap.stop="{ methods: checke, obj: item }"
27
+ v-if="item.checked"
28
+ ></i>
29
+ <i
30
+ class="iconfont icon-quan select-icon"
31
+ v-show="enterprise"
32
+ v-tap.stop="{ methods: checke, obj: item }"
33
+ v-else
34
+ ></i>
35
+ </div>
36
+ <template v-if="item.children && item.children.length > 0">
37
+ <em-tree
38
+ :model="item.children"
39
+ @popen="opened"
40
+ @checke="checke"
41
+ :isOtherUnit="isOtherUnit"
42
+ :filid="filid"
43
+ :oldIsSearch="oldIsSearch"
44
+ :isSearch="isSearch"
45
+ :label-key="labelKey"
46
+ :value-key="valueKey"
47
+ :enterprise="enterprise"
48
+ ></em-tree>
49
+ </template>
50
+ </div>
51
+ <div v-else class="check-box">
52
+ <div class="title">
53
+ <div class="text">
54
+ <div
55
+ class="label"
56
+ v-if="item.parentshowid === '' || item.parentshowid === 'root'"
57
+ ></div>
58
+ <div
59
+ class="head"
60
+ v-if="
61
+ (item.attr && JSON.parse(item.attr).sex) ||
62
+ item.sex ||
63
+ item.avatarUrl
64
+ "
65
+ >
66
+ <img
67
+ :src="
68
+ item.avatarUrl
69
+ ? item.avatarUrl
70
+ : 'data:image/png;base64,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'
71
+ "
72
+ v-if="
73
+ (item.attr && JSON.parse(item.attr).sex === '0') ||
74
+ item.sex == 0
75
+ "
76
+ />
77
+ <img
78
+ :src="
79
+ item.avatarUrl
80
+ ? item.avatarUrl
81
+ : 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD0AAAA9CAYAAAAeYmHpAAAAAXNSR0IArs4c6QAAD2BJREFUaEPVW3lYVOfV/917Z4MBEVxa40KtorGi4TGiJq27OOgXG8UYTdQv8atRiHs1dYkxSV3iEzVNtWljNYkGjSFa0S9xVxA0ZlRUQJAiICLIKsIM2zB3efu8l0AYZoC5F9qk5z+Ye897fu8579necxn8myj7VnbHrBq/Efk17FAOGCiC/FKQ2G48YX0JgUFeloENBGUcQwpYltzjRSZVw5EEjuPN88b6lv+bRAPTnozzMkp73CjUzrSJmGqxcyMkAo0q/gQiGJgBckxEbdQiU6dcVXyaealdQN+6VRSSafVYZqllQwXCcO0pIAARwBmA+zDcZDjXHrzbBDopqXB8psVjc0mNZnh7COMGj6uQyJvhk7wuuPFss4+oAv0oPbf7tUfef35YpZkuElUs2iIzQHCU8MzSiCmeD9UwUizxrVtFs9PKPD6y8pyPmgXb7x1iIeAWRZg8Dirl6TZokpGhv1TWadfdct1rwo+h3eaR7bGL+UuWTg6odRe8W6BJTo7vuYIOx+5ZdKPcZfyffY6Jlzw9pr4+kilzZ91WQZPMzK6nCjude1ClG+wOwx/rGQIkA1JIhMm7uDUZWgRNcnP9Tud6xeZU/LQB14OkwLVEGDs/1OdxS8CbBU3P8MXHnc6kl+tHt7ZzP6XfCUgcLxaYWjrjzYJOuFHy94RHnq+1ByCW48BxLGzVVSgtzkFZyQPUVJXDw9gRvl16wa+LPzyMRkiiBFGkuUjbiBDsjQg1Niu7S9BZqfmz4wu8D9SKbJtWp2AFvgbJ353A1ZgjuHfHjEprKYgkAQwDQghYhoWxgx96DwjGsLEvIOjZKdDpjW0GT8DOaS6cOYEmubndj97zTi2xaVXHYQYMGFZCzLHdOP3lDljLisByGjBM8y6EboAkCjD6dMLE6Usx8cVlADh5Y9QRsRA7O9BVAuMkxZWE4qPJpcZp6hYCWJZFaXEuPn73JeRmJYFluRbBNl1HBi+J6PHLQMxf9zm69eynWusEiI4wGcOaruEA+lFm3riTOR3PVwstqKSF3aCAH2bfxgd/eA7VVeWy6aolSZJg8PDCoj9GoW/gb0D/VkME7PgIk0dM43cdQMeaS83pFoPq4qGsJBfvLRmF6iprO9WsBBqtAav/HIMn/H+lEjhzNdzkOcIl6PKshxOiszucU+28GAlbF49B7r3bsom3F1Fz9+vaExt2fwdO46HoqNTLwBIuZEGo4Xz93w2ajr9ecuLOY8/JaoTlNBrZYUV/8hY4jVYNixbfEUUB46ZGYNaiHRB4XjF/ApyMMBn/xwE0yczseTivS/bjWo2qBkBNlQXrXw2E3VatWCB3XqD+m/qHP356Ex079wKtLRWSKILpvcjkKXdgZE2nJRWtiiv02qaQkfy4RqPB2SM7cWT3mha1TMWUBF61JUiiiPFhSzAjfCtEQbm2AfJGuMlrewPoGPPjy3ct+l+rAU0zrY0RzyL//p1mzxsFrGUZbH9zJVZt3gFBUqwpWTRvn85499MkaHV1fUWF9G24yfgbGTTJyvI5/rDzo8Iajaom3qPCe9gwL6hFDQoCj3cWL8CG1ctw6nwc5i5bjfLKKjmGKyGer8Wq7WcQMGgkCFEcwgSG9ey8MISxMJbM3NCv7vmeUtP2YRgWl05+gi92LmsWtCgIeOm5ifjsw63QVlUBBj1ySh9j0ep3cerSFTAs57a3pw4tZPpSvBixFbxdhYkTMik81Os0c/Nm8fprJcaNSna8/lmNVovdG+fgRvxRcJyjoUiEwFOnxZrX5+ONiFehrbbJ+XYdERAvL8RcuYYPdu9D3NUEVNfWgm4iDXfNpas0U+sb+CxW7Tin8lzjrXCTcRNzwfz4UIZFP0sNaJ1ej7fmPYWivEwHQWls7eLbAScj9yCob2+gpqYR4HrchHpBQK9HdmER4q9cxcmYy0jPzMKDwmJU1dhAN67pBnh6+2Lz/lRotHoVIjNR4SbPWczXl8qvPqzWDlPBAaLIY83LAbBVVzi8Ts/w/g/fw9zJEwFbYw27WIUWFNQCdFrAYIBgq8Vjmw01Nhu2bNuFvf/4fwcrotawcd9t+Pj9XI3ICeEmYzDz5UXLg/JaTU81HKxlBVg3d2ATLQMeOg5pcSfQ3WBw1nBrC9VXVVot/nbwMBZv3u4AWuDtWLMrHv4BQxTHawLkRpiMvZgDMZWVlTxjbE0W598ZlBSk4615Q6BtZGrUtPv06Ia0s0fB1NqVg65fiONw+EwMZv1+nSNowY6lm49hwNMTAIVlJwOmaqHJ04vZf6GSrxEY5eGKYZB//xY2hY9y8NwU9JN9/HH79FGgslI9aJbF8UtmhEWscABNE5P5b36Op0dOU15rE4jhoUYNs+98JW8T1YHOy7qOLYvHOwhFQffz74HUs0eBahcOzF2TYllEx32LFxatcgQtCpj3h70YNvZF9aA/v1BZWS2oMG+GQV7WNWxZPMEJ9BNd/JB+7hgM9U7KXaCNn9NwOHD8FF5Z+64z6Df2YNi4WYoTlAbzPhhb8aDCzip3ZNS8s29gU8QYp8SEkUSkxJ9CQAcv9eat1+GdP32MjR9/4gT6d2v2YejoMMWabnBkh+MsV0ttGhUhi0FRXgremT/cKWbSkPXNpx9h8oinAVFxulinb08PhL22DF/HXXGIDvRMR7wThcEjJisHTXA9ItQ4jPnmUvmhvGqtquSkvDQX6+YOAsc55tC0jbtw5jT8dfP6unOtlAiBDUDg5Bl4UFji8DbNv9/44Dz6/OoZxSELIFHhJq9ZTOy1svXpZTpVaWitrRJrZ/cHb6ciOpJfB29kxByHN+2iKG25MQwuJ6di5EvzodU6NiVoKvr23xPQtXtfpVtJn69LQ7NT80PP5PmcUsOBVkmrX+6DSkup0+u00Hh/zXKsnPcyoKQ4oM7PaMSMhSsQfSEOtHfemDiNDu8dSJMvChRTfcFBS8uDOV0fVfKs4lito85mfjDyc2gt7dgXo6HL6KFHwomv0LeTn/uJhIbDxcQUhMx+Ta7AGhOtwmlNvWlfiopmBCMwrEddaUmZHr9kuVxQrVHcRKBV1kcbXkTSd984VVmULwX+VN/eSDj+BeBmb6u01o6nQqejqMzqdCokIuEXAUOwemecfDGgkH5oItAXL5hLV2VYDIrbRdT0jn36Nk5H7XAJmlZJvbt2RsaRyLqCwuP7yqhp+lh/5nkBl6/fxMj5S6HV6ZyPjCggePQLWLghEnaa4iqiJu2i0syHPY9l+2TzkrLJIFr23YiPxt4t/+tgbtTZ0PuqgIAAvDBtGjY9HwLQBoJWIzcRoNUBtAdJ7Yw28XkBqLHJ1nDtwUOMff33cpVFfUbjdjJtIvz2lQ14bs4apV1R58Yg3bB/xFlOlNg0ilvAJQVZ2PB/QdBodLI5057Z1Oefx5IlSxAcPBQ6qrFaG3D7JkAdHj2ncousUZ+MaloSIfn4gRk8FPfzCxEbE4P9n++H2WyW94WSINixcttp9Bs8SlE25rIFTBlev1UUcqPY66wiiwHkcLX+lYGoriyHt5cRK1Ysx/r1653ZSCKQcQfIvV/XPGhERBRAuvuD6TfQwXnReB8fH49ly5ajuKQE5eVWbPwsGR0U19JkYrjJq2EGzeFa58tYq7nczrl9rSO3dzgRu1ZPBitY5Xaw1WrFrl27MHHiRNf7l/8A+OfththNz73UfxC47r1cXgXt2bNH5kctRpQIRk9biYHPTPte++50VVu41qESxl19NC6t3MOtwTSW0yLnThxiD29FTUWpQwLC8zz279+PIUNooe+CrOXAnUSIkgRhQBD0vn4uH4uOjsbatWvh6elZ9zshEAU7/Lr1xfiX3sbP/Qe13iuTyISmw3ZOV7WHYq1HLXau2ataql3eXoXYr7YgPeEktHoPJ4Hp2dbr9YiKioK/v7/T78Xp6fhq9suYtH0H+owZ4xLwlStXsGDBgjqf0IQofwo+aPRs/HrKYqCZytitq1rKOzHxUfeEEkOqIDEOl/J0IY1Wh7yM6zi9fw1sVRanbKmxbPRqtWPHjjhy5Ag6d+7c8FPutWvYM2UKmOJiiEYj5hw6hCenTHGAdffuXcyYMcMpp28KnvbofDr1wKR529DliX6ghU6jRqKFaJiBEeOdpwpdjgYcv2yZXVClOdB4ERqTb5zfB/Opv8rZV0tTBfXvUUfUu3dvREZGwtvbGw/NZnw8aRK48rqpZnoia/V6vPLFFxgQVnd3np+fj7CwMNTKLeFWJ77k0MiwLEZPXyOf9forH0kic1+f5OWAoV6uZrkevGDdUyFw8+uOEo+zkW8jM+mc4tYrFX748OHY9v77eHXOHAy6cAFaQWhwWjQOXxoyBJ9FR8NoNGLmzJkoKipqVctNtS7wtRg8chZGha2ku7l34USFgzaUYUZGhj7+frczlZXW0V/vWY7i3Dsq8t060QRBkM94lShicGEhAgsKQJNIuuO5vr4w+/vjZ35+6NatGxITE12eY9ce0fG/NI73CRwbN27uLtPSyUyzY5Mt2k9qqsVv5erfxRY8SB9MB2XaSjzHISgnBwElJahvLZR6eSGuf3+wgiBPGtCw1wZKttvtY1NTU9UNz9UvvGrVqq7xFy+e40WxzWOSdo7DmLt30cVqbcjH7Ho9TgwcCE5hO9fFxiSLohiSnJzctjHJesYrVqzw+/by5WO8IIxsgxYgsCxMaWkwVv9weU8YBqcGDYLQpG5WuM4lu90+tTUNt+rImi66c+dOfWRk5F8EQZCdm2L6vjM6KSUF2kZlJjXmMwMGoNJgUDucs7eiomJxZmZm+44+NwY4ZtSo2ZaKio8AKBuuo9OBkoTf3r4NkV7Mfc+UgqaOLK9TJ7DKTNwiSdLipKQkl2GpJaW0HghdvD1u3LjuFotllyRJbg/Z0ZjcwWbDhLS0Bs9NWdN+S0bXrkjs2RNaN2fFCCHRhJAlSUlJ/5nPGRrvwTPBwePtkrRZkqRWixSJYdC9rAwjsrPlz28an69iHx/E9+3bKmhCyDVJktYlJye7VR80p21Vmm7KbOjQoSGiKC4HYJIHOl2QyLJ4sqAAgfn5DqDpozV6PU4378HlT5QIIR8mJib++J8oNcUWHBzck+f5mQCeZxiGTuk1BF2eZTH83j30KitriNH0fWr2DMfh68BAkB+G7kRCiBnAMUEQolJSUn56H6O50mxQUFBHlmVHECIOBdjAWha9J9/55xMdamp8ARjkESvIPf0yFsg/379/ttVgSOE4LkGSJHNiYuJ/x2eHisPYj/TCvwCaSJiYs8cPLQAAAABJRU5ErkJggg=='
82
+ "
83
+ v-else
84
+ />
85
+ </div>
86
+ <!-- item[labelKey].length > 12
87
+ ? item[labelKey].slice(0, 12) + '...'
88
+ : item[labelKey] -->
89
+ {{ item[labelKey] }}
90
+ </div>
91
+ <span v-if="!item.nocheck || enterprise">
92
+ <i
93
+ class="iconfont icon-gou"
94
+ v-tap="{ methods: checke, obj: item }"
95
+ v-if="item.checked"
96
+ ></i>
97
+ <i
98
+ class="iconfont icon-quan"
99
+ v-tap="{ methods: checke, obj: item }"
100
+ v-else
101
+ ></i>
102
+ </span>
103
+ </div>
104
+ </div>
105
+ </li>
106
+ </ul>
107
+ </template>
108
+
109
+ <script>
110
+ export default {
111
+ name: 'em-tree',
112
+ inheritAttrs: false,
113
+ props: {
114
+ model: Array,
115
+ enterprise: {
116
+ type: Boolean,
117
+ default: false
118
+ },
119
+ isOtherUnit: {
120
+ type: Boolean,
121
+ default: false
122
+ },
123
+ filid: {
124
+ type: String,
125
+ default: undefined
126
+ },
127
+ valueKey: {
128
+ type: String,
129
+ default: 'showid'
130
+ },
131
+ labelKey: {
132
+ type: String,
133
+ default: 'showname'
134
+ },
135
+ oldIsSearch: Boolean,
136
+ isSearch: Boolean
137
+ },
138
+ components: {},
139
+ watch: {
140
+ model: {
141
+ handler(val) {
142
+ if (this.oldIsSearch != this.isSearch) {
143
+ this.model.map(x => {
144
+ if (x.open) {
145
+ this.opened({ obj: x }, true);
146
+ }
147
+ });
148
+ }
149
+ },
150
+ deep: true,
151
+ immediate: true
152
+ }
153
+ },
154
+ mounted() {
155
+ this.$nextTick(() => {
156
+ this.model.map(x => {
157
+ if (x.open) {
158
+ this.opened({ obj: x }, true);
159
+ }
160
+ });
161
+ });
162
+ },
163
+ methods: {
164
+ opened(res, isStart) {
165
+ this.$emit('popen', res, isStart);
166
+ },
167
+ checke(res) {
168
+ this.$emit('checke', res);
169
+ },
170
+ isShowNode(id) {
171
+ let isShow = true;
172
+ if (this.isOtherUnit && this.filid === id) {
173
+ isShow = false;
174
+ }
175
+ return isShow;
176
+ }
177
+ }
178
+ };
179
+ </script>
@@ -0,0 +1,5 @@
1
+ import EmSkeleton from './src/main';
2
+
3
+ EmSkeleton.install = Vue => Vue.component(EmSkeleton.name, EmSkeleton);
4
+
5
+ export default EmSkeleton;
@@ -0,0 +1,17 @@
1
+ <template>
2
+ <div>
3
+ <van-skeleton v-bind="$attrs">
4
+ <slot />
5
+ </van-skeleton>
6
+ </div>
7
+ </template>
8
+
9
+ <script>
10
+ export default {
11
+ name: 'EmSkeleton',
12
+ inheritAttrs:false,
13
+ mounted() {}
14
+ };
15
+ </script>
16
+
17
+ <style></style>
@@ -0,0 +1,5 @@
1
+ import EmStepper from './src/main';
2
+
3
+ EmStepper.install = Vue => Vue.component(EmStepper.name, EmStepper);
4
+
5
+ export default EmStepper;