@smallwei/avue 3.8.2 → 3.8.3

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 (374) hide show
  1. package/README.md +206 -86
  2. package/dist/avue.js +37301 -0
  3. package/dist/avue.js.map +1 -0
  4. package/dist/avue.min.js +6 -0
  5. package/dist/avue.min.mjs +2 -0
  6. package/dist/avue.mjs +2 -0
  7. package/dist/index.css +1 -0
  8. package/es/avue.min.mjs +2 -0
  9. package/es/avue.min.ts +2 -0
  10. package/es/avue.mjs +2 -0
  11. package/es/avue.ts +2 -0
  12. package/es/core/create.mjs +8 -0
  13. package/es/core/create.ts +16 -0
  14. package/es/core/dataformat.mjs +184 -0
  15. package/es/core/dataformat.ts +190 -0
  16. package/es/core/detail.mjs +74 -0
  17. package/es/core/detail.ts +81 -0
  18. package/es/core/dic.mjs +213 -0
  19. package/es/core/dic.ts +235 -0
  20. package/es/core/locale.mjs +8 -0
  21. package/es/core/locale.ts +9 -0
  22. package/es/core/packages.mjs +61 -0
  23. package/es/core/packages.ts +62 -0
  24. package/es/core/slot.mjs +32 -0
  25. package/es/core/slot.ts +30 -0
  26. package/es/global/variable.mjs +80 -0
  27. package/es/global/variable.ts +84 -0
  28. package/es/icon.mjs +9 -0
  29. package/es/icon.ts +11 -0
  30. package/es/index.mjs +127 -0
  31. package/es/index.ts +177 -0
  32. package/es/locale/browser/en.mjs +288 -0
  33. package/es/locale/browser/zh-cn.mjs +288 -0
  34. package/es/locale/browser/zh.mjs +288 -0
  35. package/es/locale/index.mjs +141 -0
  36. package/es/locale/index.ts +196 -0
  37. package/es/locale/lang/en.mjs +282 -0
  38. package/es/locale/lang/en.ts +282 -0
  39. package/es/locale/lang/zh-cn.mjs +282 -0
  40. package/es/locale/lang/zh-cn.ts +282 -0
  41. package/es/locale/lang/zh.mjs +282 -0
  42. package/es/locale/lang/zh.ts +282 -0
  43. package/es/packages/core/common/event.mjs +58 -0
  44. package/es/packages/core/common/event.ts +56 -0
  45. package/es/packages/core/common/init.mjs +134 -0
  46. package/es/packages/core/common/init.ts +133 -0
  47. package/es/packages/core/common/props.mjs +239 -0
  48. package/es/packages/core/common/props.ts +240 -0
  49. package/es/packages/core/components/dialog-form/index.mjs +29 -0
  50. package/es/packages/core/components/dialog-form/index.ts +29 -0
  51. package/es/packages/core/components/dialog-form/index.vue +108 -0
  52. package/es/packages/core/components/form/custom.mjs +41 -0
  53. package/es/packages/core/components/form/custom.ts +41 -0
  54. package/es/packages/core/components/form/index.vue +176 -0
  55. package/es/packages/core/components/icon/index.vue +37 -0
  56. package/es/packages/core/components/image-preview/index.mjs +34 -0
  57. package/es/packages/core/components/image-preview/index.ts +37 -0
  58. package/es/packages/core/components/image-preview/index.vue +215 -0
  59. package/es/packages/core/directive/contextmenu.mjs +92 -0
  60. package/es/packages/core/directive/contextmenu.ts +103 -0
  61. package/es/packages/core/directive/permission.mjs +19 -0
  62. package/es/packages/core/directive/permission.ts +18 -0
  63. package/es/packages/data/box/index.vue +66 -0
  64. package/es/packages/data/card/index.vue +62 -0
  65. package/es/packages/data/cardText/index.vue +56 -0
  66. package/es/packages/data/countdown/index.vue +81 -0
  67. package/es/packages/data/dashboard/index.vue +72 -0
  68. package/es/packages/data/display/index.vue +63 -0
  69. package/es/packages/data/icons/index.vue +68 -0
  70. package/es/packages/data/imgText/index.vue +72 -0
  71. package/es/packages/data/list/index.vue +69 -0
  72. package/es/packages/data/notice/index.vue +63 -0
  73. package/es/packages/data/operaText/index.vue +62 -0
  74. package/es/packages/data/panel/index.vue +62 -0
  75. package/es/packages/data/pay/index.vue +92 -0
  76. package/es/packages/data/price/index.vue +55 -0
  77. package/es/packages/data/product/index.vue +106 -0
  78. package/es/packages/data/profile/index.vue +91 -0
  79. package/es/packages/data/progress/index.vue +64 -0
  80. package/es/packages/data/rank/index.vue +92 -0
  81. package/es/packages/data/rotate/index.vue +69 -0
  82. package/es/packages/data/statistic/index.vue +71 -0
  83. package/es/packages/data/tabs/index.vue +64 -0
  84. package/es/packages/data/task/index.vue +82 -0
  85. package/es/packages/data/weather/index.vue +103 -0
  86. package/es/packages/element-plus/array/index.vue +115 -0
  87. package/es/packages/element-plus/article/index.vue +73 -0
  88. package/es/packages/element-plus/card/index.vue +103 -0
  89. package/es/packages/element-plus/cascader/index.vue +132 -0
  90. package/es/packages/element-plus/chat/index.vue +513 -0
  91. package/es/packages/element-plus/checkbox/index.vue +84 -0
  92. package/es/packages/element-plus/comment/index.vue +76 -0
  93. package/es/packages/element-plus/count-up/index.vue +107 -0
  94. package/es/packages/element-plus/crud/column/column-default.vue +128 -0
  95. package/es/packages/element-plus/crud/column/column-dynamic.vue +86 -0
  96. package/es/packages/element-plus/crud/column/column-menu.vue +267 -0
  97. package/es/packages/element-plus/crud/column/column-slot.vue +348 -0
  98. package/es/packages/element-plus/crud/column/column.vue +119 -0
  99. package/es/packages/element-plus/crud/column/menu.vue +78 -0
  100. package/es/packages/element-plus/crud/config.mjs +74 -0
  101. package/es/packages/element-plus/crud/config.ts +74 -0
  102. package/es/packages/element-plus/crud/dialog/dialog-column.vue +102 -0
  103. package/es/packages/element-plus/crud/dialog/dialog-excel.vue +204 -0
  104. package/es/packages/element-plus/crud/dialog/dialog-filter.vue +159 -0
  105. package/es/packages/element-plus/crud/dialog/dialog-form.vue +352 -0
  106. package/es/packages/element-plus/crud/grid/index.vue +271 -0
  107. package/es/packages/element-plus/crud/grid/item.vue +39 -0
  108. package/es/packages/element-plus/crud/index.vue +1018 -0
  109. package/es/packages/element-plus/crud/menu/header-menu.vue +175 -0
  110. package/es/packages/element-plus/crud/menu/header-search.vue +228 -0
  111. package/es/packages/element-plus/crud/menu/table-page.vue +108 -0
  112. package/es/packages/element-plus/date/index.vue +81 -0
  113. package/es/packages/element-plus/draggable/index.vue +444 -0
  114. package/es/packages/element-plus/dynamic/index.vue +353 -0
  115. package/es/packages/element-plus/flow/index.vue +339 -0
  116. package/es/packages/element-plus/flow/node.vue +84 -0
  117. package/es/packages/element-plus/form/config.mjs +6 -0
  118. package/es/packages/element-plus/form/config.ts +6 -0
  119. package/es/packages/element-plus/form/index.vue +954 -0
  120. package/es/packages/element-plus/form/menu.vue +63 -0
  121. package/es/packages/element-plus/group/index.vue +90 -0
  122. package/es/packages/element-plus/input/index.vue +1264 -0
  123. package/es/packages/element-plus/input-color/index.vue +70 -0
  124. package/es/packages/element-plus/input-cron/index.vue +363 -0
  125. package/es/packages/element-plus/input-icon/index.vue +143 -0
  126. package/es/packages/element-plus/input-map/index.vue +311 -0
  127. package/es/packages/element-plus/input-number/index.vue +91 -0
  128. package/es/packages/element-plus/input-table/index.vue +279 -0
  129. package/es/packages/element-plus/input-tag/index.vue +79 -0
  130. package/es/packages/element-plus/input-tree/index.vue +194 -0
  131. package/es/packages/element-plus/license/index.vue +155 -0
  132. package/es/packages/element-plus/login/index.vue +203 -0
  133. package/es/packages/element-plus/mention/index.vue +117 -0
  134. package/es/packages/element-plus/radio/index.vue +38 -0
  135. package/es/packages/element-plus/rate/index.vue +51 -0
  136. package/es/packages/element-plus/search/index.vue +129 -0
  137. package/es/packages/element-plus/select/index.vue +292 -0
  138. package/es/packages/element-plus/sign/index.vue +230 -0
  139. package/es/packages/element-plus/slider/index.vue +66 -0
  140. package/es/packages/element-plus/switch/index.vue +72 -0
  141. package/es/packages/element-plus/tabs/index.vue +62 -0
  142. package/es/packages/element-plus/text-ellipsis/index.vue +104 -0
  143. package/es/packages/element-plus/time/index.vue +81 -0
  144. package/es/packages/element-plus/title/index.vue +30 -0
  145. package/es/packages/element-plus/tree/index.vue +460 -0
  146. package/es/packages/element-plus/upload/index.vue +728 -0
  147. package/es/packages/element-plus/verify/index.vue +62 -0
  148. package/es/packages/element-plus/video/index.vue +90 -0
  149. package/es/plugin/ali/index.mjs +4 -0
  150. package/es/plugin/ali/index.ts +6 -0
  151. package/es/plugin/clipboard/index.mjs +61 -0
  152. package/es/plugin/clipboard/index.ts +67 -0
  153. package/es/plugin/export/_blob.mjs +151 -0
  154. package/es/plugin/export/_blob.ts +176 -0
  155. package/es/plugin/export/_export2Excel.mjs +141 -0
  156. package/es/plugin/export/_export2Excel.ts +166 -0
  157. package/es/plugin/export/index.mjs +263 -0
  158. package/es/plugin/export/index.ts +274 -0
  159. package/es/plugin/logs/index.mjs +46 -0
  160. package/es/plugin/logs/index.ts +66 -0
  161. package/es/plugin/print/index.mjs +145 -0
  162. package/es/plugin/print/index.ts +155 -0
  163. package/es/plugin/qiniu/index.mjs +78 -0
  164. package/es/plugin/qiniu/index.ts +88 -0
  165. package/es/plugin/screenshot/index.mjs +8 -0
  166. package/es/plugin/screenshot/index.ts +9 -0
  167. package/es/plugin/video/index.mjs +52 -0
  168. package/es/plugin/video/index.ts +60 -0
  169. package/es/plugin/watermark/index.mjs +114 -0
  170. package/es/plugin/watermark/index.ts +127 -0
  171. package/es/plugin/watermark/watermark.mjs +109 -0
  172. package/es/plugin/watermark/watermark.ts +121 -0
  173. package/es/ui/data/index.mjs +49 -0
  174. package/es/ui/data/index.ts +51 -0
  175. package/es/ui/element-plus/index.mjs +87 -0
  176. package/es/ui/element-plus/index.ts +89 -0
  177. package/es/ui/index.mjs +4 -0
  178. package/es/ui/index.ts +6 -0
  179. package/es/utils/bem.mjs +29 -0
  180. package/es/utils/bem.ts +36 -0
  181. package/es/utils/mock.mjs +137 -0
  182. package/es/utils/mock.ts +151 -0
  183. package/es/utils/util.mjs +370 -0
  184. package/es/utils/util.ts +392 -0
  185. package/es/utils/validate.mjs +18 -0
  186. package/es/utils/validate.ts +23 -0
  187. package/es/version.mjs +1 -0
  188. package/es/version.ts +1 -0
  189. package/lib/avue.js +11 -35880
  190. package/lib/avue.min.js +11 -6
  191. package/lib/avue.min.ts +2 -0
  192. package/lib/avue.ts +2 -0
  193. package/lib/core/create.js +14 -0
  194. package/lib/core/create.ts +16 -0
  195. package/lib/core/dataformat.js +194 -0
  196. package/lib/core/dataformat.ts +190 -0
  197. package/lib/core/detail.js +81 -0
  198. package/lib/core/detail.ts +81 -0
  199. package/lib/core/dic.js +220 -0
  200. package/lib/core/dic.ts +235 -0
  201. package/lib/core/locale.js +10 -0
  202. package/lib/core/locale.ts +9 -0
  203. package/lib/core/packages.js +66 -0
  204. package/lib/core/packages.ts +62 -0
  205. package/lib/core/slot.js +34 -0
  206. package/lib/core/slot.ts +30 -0
  207. package/lib/global/variable.js +83 -0
  208. package/lib/global/variable.ts +84 -0
  209. package/lib/icon.js +44 -0
  210. package/lib/icon.ts +11 -0
  211. package/lib/index.js +134 -0
  212. package/lib/index.ts +177 -0
  213. package/lib/locale/browser/en.js +288 -0
  214. package/lib/locale/browser/zh-cn.js +288 -0
  215. package/lib/locale/browser/zh.js +288 -0
  216. package/lib/locale/index.js +153 -47
  217. package/lib/locale/index.ts +196 -0
  218. package/lib/locale/lang/en.js +284 -100
  219. package/lib/locale/lang/en.ts +282 -0
  220. package/lib/locale/lang/zh-cn.js +284 -0
  221. package/lib/locale/lang/zh-cn.ts +282 -0
  222. package/lib/locale/lang/zh.js +284 -100
  223. package/lib/locale/lang/zh.ts +282 -0
  224. package/lib/packages/core/common/event.js +61 -0
  225. package/lib/packages/core/common/event.ts +56 -0
  226. package/lib/packages/core/common/init.js +140 -0
  227. package/lib/packages/core/common/init.ts +133 -0
  228. package/lib/packages/core/common/props.js +245 -0
  229. package/lib/packages/core/common/props.ts +240 -0
  230. package/lib/packages/core/components/dialog-form/index.js +35 -0
  231. package/lib/packages/core/components/dialog-form/index.ts +29 -0
  232. package/lib/packages/core/components/dialog-form/index.vue +108 -0
  233. package/lib/packages/core/components/form/custom.js +43 -0
  234. package/lib/packages/core/components/form/custom.ts +41 -0
  235. package/lib/packages/core/components/form/index.vue +176 -0
  236. package/lib/packages/core/components/icon/index.vue +37 -0
  237. package/lib/packages/core/components/image-preview/index.js +40 -0
  238. package/lib/packages/core/components/image-preview/index.ts +37 -0
  239. package/lib/packages/core/components/image-preview/index.vue +215 -0
  240. package/lib/packages/core/directive/contextmenu.js +94 -0
  241. package/lib/packages/core/directive/contextmenu.ts +103 -0
  242. package/lib/packages/core/directive/permission.js +21 -0
  243. package/lib/packages/core/directive/permission.ts +18 -0
  244. package/lib/packages/data/box/index.vue +66 -0
  245. package/lib/packages/data/card/index.vue +62 -0
  246. package/lib/packages/data/cardText/index.vue +56 -0
  247. package/lib/packages/data/countdown/index.vue +81 -0
  248. package/lib/packages/data/dashboard/index.vue +72 -0
  249. package/lib/packages/data/display/index.vue +63 -0
  250. package/lib/packages/data/icons/index.vue +68 -0
  251. package/lib/packages/data/imgText/index.vue +72 -0
  252. package/lib/packages/data/list/index.vue +69 -0
  253. package/lib/packages/data/notice/index.vue +63 -0
  254. package/lib/packages/data/operaText/index.vue +62 -0
  255. package/lib/packages/data/panel/index.vue +62 -0
  256. package/lib/packages/data/pay/index.vue +92 -0
  257. package/lib/packages/data/price/index.vue +55 -0
  258. package/lib/packages/data/product/index.vue +106 -0
  259. package/lib/packages/data/profile/index.vue +91 -0
  260. package/lib/packages/data/progress/index.vue +64 -0
  261. package/lib/packages/data/rank/index.vue +92 -0
  262. package/lib/packages/data/rotate/index.vue +69 -0
  263. package/lib/packages/data/statistic/index.vue +71 -0
  264. package/lib/packages/data/tabs/index.vue +64 -0
  265. package/lib/packages/data/task/index.vue +82 -0
  266. package/lib/packages/data/weather/index.vue +103 -0
  267. package/lib/packages/element-plus/array/index.vue +115 -0
  268. package/lib/packages/element-plus/article/index.vue +73 -0
  269. package/lib/packages/element-plus/card/index.vue +103 -0
  270. package/lib/packages/element-plus/cascader/index.vue +132 -0
  271. package/lib/packages/element-plus/chat/index.vue +513 -0
  272. package/lib/packages/element-plus/checkbox/index.vue +84 -0
  273. package/lib/packages/element-plus/comment/index.vue +76 -0
  274. package/lib/packages/element-plus/count-up/index.vue +107 -0
  275. package/lib/packages/element-plus/crud/column/column-default.vue +128 -0
  276. package/lib/packages/element-plus/crud/column/column-dynamic.vue +86 -0
  277. package/lib/packages/element-plus/crud/column/column-menu.vue +267 -0
  278. package/lib/packages/element-plus/crud/column/column-slot.vue +348 -0
  279. package/lib/packages/element-plus/crud/column/column.vue +119 -0
  280. package/lib/packages/element-plus/crud/column/menu.vue +78 -0
  281. package/lib/packages/element-plus/crud/config.js +76 -0
  282. package/lib/packages/element-plus/crud/config.ts +74 -0
  283. package/lib/packages/element-plus/crud/dialog/dialog-column.vue +102 -0
  284. package/lib/packages/element-plus/crud/dialog/dialog-excel.vue +204 -0
  285. package/lib/packages/element-plus/crud/dialog/dialog-filter.vue +159 -0
  286. package/lib/packages/element-plus/crud/dialog/dialog-form.vue +352 -0
  287. package/lib/packages/element-plus/crud/grid/index.vue +271 -0
  288. package/lib/packages/element-plus/crud/grid/item.vue +39 -0
  289. package/lib/packages/element-plus/crud/index.vue +1018 -0
  290. package/lib/packages/element-plus/crud/menu/header-menu.vue +175 -0
  291. package/lib/packages/element-plus/crud/menu/header-search.vue +228 -0
  292. package/lib/packages/element-plus/crud/menu/table-page.vue +108 -0
  293. package/lib/packages/element-plus/date/index.vue +81 -0
  294. package/lib/packages/element-plus/draggable/index.vue +444 -0
  295. package/lib/packages/element-plus/dynamic/index.vue +353 -0
  296. package/lib/packages/element-plus/flow/index.vue +339 -0
  297. package/lib/packages/element-plus/flow/node.vue +84 -0
  298. package/lib/packages/element-plus/form/config.js +8 -0
  299. package/lib/packages/element-plus/form/config.ts +6 -0
  300. package/lib/packages/element-plus/form/index.vue +954 -0
  301. package/lib/packages/element-plus/form/menu.vue +63 -0
  302. package/lib/packages/element-plus/group/index.vue +90 -0
  303. package/lib/packages/element-plus/input/index.vue +1264 -0
  304. package/lib/packages/element-plus/input-color/index.vue +70 -0
  305. package/lib/packages/element-plus/input-cron/index.vue +363 -0
  306. package/lib/packages/element-plus/input-icon/index.vue +143 -0
  307. package/lib/packages/element-plus/input-map/index.vue +311 -0
  308. package/lib/packages/element-plus/input-number/index.vue +91 -0
  309. package/lib/packages/element-plus/input-table/index.vue +279 -0
  310. package/lib/packages/element-plus/input-tag/index.vue +79 -0
  311. package/lib/packages/element-plus/input-tree/index.vue +194 -0
  312. package/lib/packages/element-plus/license/index.vue +155 -0
  313. package/lib/packages/element-plus/login/index.vue +203 -0
  314. package/lib/packages/element-plus/mention/index.vue +117 -0
  315. package/lib/packages/element-plus/radio/index.vue +38 -0
  316. package/lib/packages/element-plus/rate/index.vue +51 -0
  317. package/lib/packages/element-plus/search/index.vue +129 -0
  318. package/lib/packages/element-plus/select/index.vue +292 -0
  319. package/lib/packages/element-plus/sign/index.vue +230 -0
  320. package/lib/packages/element-plus/slider/index.vue +66 -0
  321. package/lib/packages/element-plus/switch/index.vue +72 -0
  322. package/lib/packages/element-plus/tabs/index.vue +62 -0
  323. package/lib/packages/element-plus/text-ellipsis/index.vue +104 -0
  324. package/lib/packages/element-plus/time/index.vue +81 -0
  325. package/lib/packages/element-plus/title/index.vue +30 -0
  326. package/lib/packages/element-plus/tree/index.vue +460 -0
  327. package/lib/packages/element-plus/upload/index.vue +728 -0
  328. package/lib/packages/element-plus/verify/index.vue +62 -0
  329. package/lib/packages/element-plus/video/index.vue +90 -0
  330. package/lib/plugin/ali/index.js +8 -0
  331. package/lib/plugin/ali/index.ts +6 -0
  332. package/lib/plugin/clipboard/index.js +64 -0
  333. package/lib/plugin/clipboard/index.ts +67 -0
  334. package/lib/plugin/export/_blob.js +151 -0
  335. package/lib/plugin/export/_blob.ts +176 -0
  336. package/lib/plugin/export/_export2Excel.js +145 -0
  337. package/lib/plugin/export/_export2Excel.ts +166 -0
  338. package/lib/plugin/export/index.js +268 -0
  339. package/lib/plugin/export/index.ts +274 -0
  340. package/lib/plugin/logs/index.js +48 -0
  341. package/lib/plugin/logs/index.ts +66 -0
  342. package/lib/plugin/print/index.js +147 -0
  343. package/lib/plugin/print/index.ts +155 -0
  344. package/lib/plugin/qiniu/index.js +82 -0
  345. package/lib/plugin/qiniu/index.ts +88 -0
  346. package/lib/plugin/screenshot/index.js +14 -0
  347. package/lib/plugin/screenshot/index.ts +9 -0
  348. package/lib/plugin/video/index.js +55 -0
  349. package/lib/plugin/video/index.ts +60 -0
  350. package/lib/plugin/watermark/index.js +121 -0
  351. package/lib/plugin/watermark/index.ts +127 -0
  352. package/lib/plugin/watermark/watermark.js +111 -0
  353. package/lib/plugin/watermark/watermark.ts +121 -0
  354. package/lib/ui/data/index.js +54 -0
  355. package/lib/ui/data/index.ts +51 -0
  356. package/lib/ui/element-plus/index.js +92 -0
  357. package/lib/ui/element-plus/index.ts +89 -0
  358. package/lib/ui/index.js +9 -0
  359. package/lib/ui/index.ts +6 -0
  360. package/lib/utils/bem.js +31 -0
  361. package/lib/utils/bem.ts +36 -0
  362. package/lib/utils/mock.js +142 -0
  363. package/lib/utils/mock.ts +151 -0
  364. package/lib/utils/util.js +403 -0
  365. package/lib/utils/util.ts +392 -0
  366. package/lib/utils/validate.js +21 -0
  367. package/lib/utils/validate.ts +23 -0
  368. package/lib/version.js +4 -0
  369. package/lib/version.ts +1 -0
  370. package/package.json +20 -10
  371. package/types/index.d.ts +139 -47
  372. package/types/shims-aliases.d.ts +4 -0
  373. package/lib/avue.js.map +0 -1
  374. package/lib/locale/format.js +0 -44
@@ -0,0 +1,81 @@
1
+ import { validatenull } from '../utils/validate';
2
+ import { getPasswordChar, getDicValue, getAsVal, detailDataType } from '../utils/util';
3
+ import {
4
+ DIC_SPLIT,
5
+ DIC_SHOW_SPLIT,
6
+ DATE_LIST,
7
+ MULTIPLE_LIST,
8
+ ARRAY_VALUE_LIST,
9
+ } from '../global/variable';
10
+ import dayjs from 'dayjs';
11
+
12
+ export const detail = (
13
+ row: Record<string, any> = {},
14
+ column: Record<string, any> = {},
15
+ option: Record<string, any> = {},
16
+ dic: any[] = []
17
+ ) => {
18
+ let result = row[column.prop];
19
+ const type = column.type;
20
+ const separator = column.separator;
21
+ if (column.bind) result = getAsVal(row, column.bind);
22
+ if (!validatenull(result)) {
23
+ const selectFlag = MULTIPLE_LIST.includes(column.type) && column.multiple;
24
+ const arrayFlag = ARRAY_VALUE_LIST.includes(column.type) && column.emitPath !== false;
25
+ if ((selectFlag || arrayFlag) && !Array.isArray(result) && !column.dataType) column.dataType = 'string';
26
+ if (column.dataType) {
27
+ if (selectFlag || arrayFlag) {
28
+ if (!Array.isArray(result)) {
29
+ if (column.dataType == 'json') {
30
+ result = JSON.parse(result);
31
+ } else {
32
+ result = result.split(separator || DIC_SPLIT);
33
+ }
34
+ }
35
+ result.forEach((ele: any, index: number) => {
36
+ result[index] = detailDataType(ele, column.dataType);
37
+ });
38
+ } else {
39
+ result = detailDataType(result, column.dataType);
40
+ }
41
+ }
42
+ if (type === 'password') {
43
+ result = getPasswordChar(result, '*');
44
+ } else if (DATE_LIST.includes(type) && column.format) {
45
+ const format = column.format;
46
+ const formatValue = dayjs().format('YYYY-MM-DD');
47
+
48
+ if (['dates', 'years', 'months'].includes(type)) {
49
+ if (typeof result === 'string') {
50
+ result = result.split(',');
51
+ }
52
+ if (Array.isArray(result)) {
53
+ result = result.map((date) => dayjs(date).format(format)).join(column.separator || ',');
54
+ }
55
+ } else if (type.indexOf('range') !== -1) {
56
+ let [date1 = '', date2 = ''] = result;
57
+ if (type === 'timerange') {
58
+ date1 = `${formatValue} ${date1}`;
59
+ date2 = `${formatValue} ${date2}`;
60
+ }
61
+ result = [dayjs(date1).format(format), dayjs(date2).format(format)].join(
62
+ column.separator || '~'
63
+ );
64
+ } else {
65
+ if (type === 'time') {
66
+ result = `${formatValue} ${result}`;
67
+ }
68
+ result = dayjs(result).format(format);
69
+ }
70
+ }
71
+ }
72
+ if (!validatenull(dic)) {
73
+ result = getDicValue(dic, result, column.props || option.props);
74
+ }
75
+ if (typeof column.formatter === 'function') {
76
+ result = column.formatter(row, row[column.prop], result, column);
77
+ } else if (Array.isArray(result) && !validatenull(dic)) {
78
+ result = result.join(separator || DIC_SHOW_SPLIT);
79
+ }
80
+ return result;
81
+ };
@@ -0,0 +1,213 @@
1
+ import { detailDataType, getAsVal } from '../utils/util.mjs';
2
+ import { validatenull } from '../utils/validate.mjs';
3
+ import { DIC_PROPS } from '../global/variable.mjs';
4
+ const key = 'key';
5
+ function getDataType(list = [], props = {}, type) {
6
+ const valueKey = props.value || DIC_PROPS.value;
7
+ const childrenKey = props.children || DIC_PROPS.children;
8
+ list.forEach((ele) => {
9
+ ele[valueKey] = detailDataType(ele[valueKey], type);
10
+ if (ele[childrenKey])
11
+ getDataType(ele[childrenKey], props, type);
12
+ });
13
+ return list;
14
+ }
15
+ function getResData(data, props, dataType) {
16
+ const bind = props.res;
17
+ let res = data;
18
+ const deep = data.data;
19
+ if (bind) {
20
+ res = getAsVal(res, bind);
21
+ }
22
+ else if (deep) {
23
+ res = Array.isArray(deep) ? deep : [deep];
24
+ }
25
+ if (dataType)
26
+ res = getDataType(res, props, dataType);
27
+ return res;
28
+ }
29
+ export const loadCascaderDic = (columnOption, safe) => {
30
+ return new Promise((resolve) => {
31
+ const list = [];
32
+ const result = {};
33
+ const columnList = columnOption.filter((ele) => ele.parentProp);
34
+ safe.data.forEach((ele, index) => {
35
+ if (!safe.cascaderDIC[index])
36
+ safe.cascaderDIC[index] = {};
37
+ columnList.forEach((column) => {
38
+ if (column.hide !== true && column.dicFlag !== false) {
39
+ list.push(new Promise((resolve) => {
40
+ if (ele[column.parentProp]) {
41
+ sendDic({
42
+ url: column.dicUrl,
43
+ props: column.props,
44
+ method: column.dicMethod,
45
+ headers: column.dicHeaders,
46
+ formatter: column.dicFormatter,
47
+ query: column.dicQuery,
48
+ dataType: column.dataType,
49
+ form: ele,
50
+ value: ele[column.parentProp],
51
+ }, safe).then((res) => {
52
+ const obj = {
53
+ prop: column.prop,
54
+ data: res,
55
+ index,
56
+ };
57
+ safe.cascaderDIC[index][obj.prop] = obj.data;
58
+ resolve(obj);
59
+ });
60
+ }
61
+ else {
62
+ const obj = {
63
+ prop: column.prop,
64
+ data: [],
65
+ index,
66
+ };
67
+ safe.cascaderDIC[index][obj.prop] = obj.data;
68
+ resolve(obj);
69
+ }
70
+ }));
71
+ }
72
+ });
73
+ });
74
+ Promise.all(list).then((data) => {
75
+ data.forEach((ele) => {
76
+ if (!result[ele.index])
77
+ result[ele.index] = {};
78
+ result[ele.index][ele.prop] = ele.data;
79
+ });
80
+ resolve(result);
81
+ });
82
+ });
83
+ };
84
+ export const loadDic = (option, safe) => {
85
+ return new Promise((resolve) => {
86
+ const list = [];
87
+ const result = {};
88
+ let notList = [];
89
+ const nameList = [];
90
+ const column = option.column || [];
91
+ column.forEach((ele) => {
92
+ const url = ele.dicUrl;
93
+ const prop = ele.prop;
94
+ const parentProp = ele.parentProp;
95
+ notList = notList.concat(ele.cascader || []);
96
+ const flag = ele.dicFlag === false || ele.lazy === true || notList.includes(prop);
97
+ if (url && !parentProp && !flag) {
98
+ list.push(new Promise((resolve) => {
99
+ sendDic({
100
+ url,
101
+ name: prop,
102
+ method: ele.dicMethod,
103
+ headers: ele.dicHeaders,
104
+ formatter: ele.dicFormatter,
105
+ props: ele.props,
106
+ dataType: ele.dataType,
107
+ query: ele.dicQuery,
108
+ }, safe).then((res) => {
109
+ safe.DIC[prop] = res;
110
+ resolve(res);
111
+ });
112
+ }));
113
+ nameList.push(prop);
114
+ }
115
+ });
116
+ Promise.all(list).then((res) => {
117
+ nameList.forEach((ele, index) => {
118
+ result[ele] = res[index];
119
+ });
120
+ resolve(result);
121
+ });
122
+ });
123
+ };
124
+ export const loadLocalDic = (option, safe) => {
125
+ const columnData = {};
126
+ const optionData = option.dicData || {};
127
+ option.column.forEach((ele) => {
128
+ const dic = ele.dicData;
129
+ const prop = ele.prop;
130
+ if (dic instanceof Function) {
131
+ const dicResult = dic(ele);
132
+ if (dicResult instanceof Promise) {
133
+ dicResult.then((res) => {
134
+ safe.DIC[prop] = getDataType(res, ele.props, ele.dataType);
135
+ });
136
+ }
137
+ else {
138
+ columnData[prop] = getDataType(dicResult, ele.props, ele.dataType);
139
+ }
140
+ }
141
+ else if (dic instanceof Array) {
142
+ columnData[prop] = getDataType(dic, ele.props, ele.dataType);
143
+ }
144
+ });
145
+ const result = { ...optionData, ...columnData };
146
+ Object.keys(result).forEach((ele) => {
147
+ safe.DIC[ele] = result[ele];
148
+ });
149
+ return result;
150
+ };
151
+ export const sendDic = (params, safe) => {
152
+ let { url, query, method, props, formatter, headers, value, column = {}, form = {}, dataType, } = params;
153
+ url = column.dicUrl || url;
154
+ method = (column.dicMethod || method || 'get').toLowerCase();
155
+ headers = column.dicHeaders || headers || {};
156
+ query = column.dicQuery || query || {};
157
+ formatter = column.dicFormatter || formatter;
158
+ props = column.props || props || {};
159
+ const list = url.match(/[^\{\}]+(?=\})/g) || [];
160
+ list.forEach((ele) => {
161
+ let result = ele === key ? value : form[ele];
162
+ if (validatenull(result))
163
+ result = '';
164
+ url = url.replace(`{{${ele}}}`, result);
165
+ });
166
+ const getKey = (data) => {
167
+ const result = {};
168
+ Object.keys(data).forEach((ele) => {
169
+ const eleKey = data[ele];
170
+ if (typeof eleKey === 'string' && eleKey.match(/\{{|}}/g)) {
171
+ const prop = eleKey.replace(/\{{|}}/g, '');
172
+ result[ele] = prop == key ? value : form[prop];
173
+ }
174
+ else {
175
+ result[ele] = eleKey;
176
+ }
177
+ });
178
+ return result;
179
+ };
180
+ return new Promise((resolve, reject) => {
181
+ if (!url)
182
+ resolve([]);
183
+ const callback = (res) => {
184
+ let currentList = [];
185
+ res = res.data || {};
186
+ if (typeof formatter === 'function') {
187
+ currentList = formatter(res, form);
188
+ }
189
+ else {
190
+ currentList = getResData(res, props, dataType);
191
+ }
192
+ resolve(currentList);
193
+ };
194
+ const getData = () => {
195
+ const data = getKey(query);
196
+ if (method == 'get')
197
+ return { params: data };
198
+ return { data };
199
+ };
200
+ safe
201
+ .$axios(Object.assign({
202
+ url,
203
+ method,
204
+ headers: getKey(headers),
205
+ }, getData()))
206
+ .then(function (res) {
207
+ callback(res);
208
+ })
209
+ .catch((err) => {
210
+ reject(err);
211
+ });
212
+ });
213
+ };
package/es/core/dic.ts ADDED
@@ -0,0 +1,235 @@
1
+ import { detailDataType, getAsVal } from '../utils/util';
2
+ import { validatenull } from '../utils/validate';
3
+ import { DIC_PROPS } from '../global/variable';
4
+
5
+ const key = 'key';
6
+
7
+ function getDataType(list: Record<string, any>[] = [], props: Record<string, any> = {}, type: any) {
8
+ const valueKey = props.value || DIC_PROPS.value;
9
+ const childrenKey = props.children || DIC_PROPS.children;
10
+ list.forEach((ele) => {
11
+ ele[valueKey] = detailDataType(ele[valueKey], type);
12
+ if (ele[childrenKey]) getDataType(ele[childrenKey], props, type);
13
+ });
14
+ return list;
15
+ }
16
+
17
+ function getResData(data: any, props: Record<string, any>, dataType: any) {
18
+ const bind = props.res;
19
+ let res = data;
20
+ const deep = data.data;
21
+ if (bind) {
22
+ res = getAsVal(res, bind);
23
+ } else if (deep) {
24
+ res = Array.isArray(deep) ? deep : [deep];
25
+ }
26
+ if (dataType) res = getDataType(res, props, dataType);
27
+ return res;
28
+ }
29
+
30
+ export const loadCascaderDic = (columnOption: Record<string, any>[], safe: any) => {
31
+ return new Promise<Record<string, any>>((resolve) => {
32
+ const list: Promise<any>[] = [];
33
+ const result: Record<string, any> = {};
34
+ const columnList = columnOption.filter((ele) => ele.parentProp);
35
+ safe.data.forEach((ele: any, index: number) => {
36
+ if (!safe.cascaderDIC[index]) safe.cascaderDIC[index] = {};
37
+ columnList.forEach((column) => {
38
+ if (column.hide !== true && column.dicFlag !== false) {
39
+ list.push(
40
+ new Promise((resolve) => {
41
+ if (ele[column.parentProp]) {
42
+ sendDic(
43
+ {
44
+ url: column.dicUrl,
45
+ props: column.props,
46
+ method: column.dicMethod,
47
+ headers: column.dicHeaders,
48
+ formatter: column.dicFormatter,
49
+ query: column.dicQuery,
50
+ dataType: column.dataType,
51
+ form: ele,
52
+ value: ele[column.parentProp],
53
+ },
54
+ safe
55
+ ).then((res) => {
56
+ const obj = {
57
+ prop: column.prop,
58
+ data: res,
59
+ index,
60
+ };
61
+ safe.cascaderDIC[index][obj.prop] = obj.data;
62
+ resolve(obj);
63
+ });
64
+ } else {
65
+ const obj = {
66
+ prop: column.prop,
67
+ data: [],
68
+ index,
69
+ };
70
+ safe.cascaderDIC[index][obj.prop] = obj.data;
71
+ resolve(obj);
72
+ }
73
+ })
74
+ );
75
+ }
76
+ });
77
+ });
78
+ Promise.all(list).then((data: any[]) => {
79
+ data.forEach((ele) => {
80
+ if (!result[ele.index]) result[ele.index] = {};
81
+ result[ele.index][ele.prop] = ele.data;
82
+ });
83
+ resolve(result);
84
+ });
85
+ });
86
+ };
87
+
88
+ export const loadDic = (option: Record<string, any>, safe: any) => {
89
+ return new Promise<Record<string, any>>((resolve) => {
90
+ const list: Promise<any>[] = [];
91
+ const result: Record<string, any> = {};
92
+ let notList: string[] = [];
93
+ const nameList: string[] = [];
94
+ const column = option.column || [];
95
+ column.forEach((ele: any) => {
96
+ const url = ele.dicUrl;
97
+ const prop = ele.prop;
98
+ const parentProp = ele.parentProp;
99
+ notList = notList.concat(ele.cascader || []);
100
+ const flag = ele.dicFlag === false || ele.lazy === true || notList.includes(prop);
101
+ if (url && !parentProp && !flag) {
102
+ list.push(
103
+ new Promise((resolve) => {
104
+ sendDic(
105
+ {
106
+ url,
107
+ name: prop,
108
+ method: ele.dicMethod,
109
+ headers: ele.dicHeaders,
110
+ formatter: ele.dicFormatter,
111
+ props: ele.props,
112
+ dataType: ele.dataType,
113
+ query: ele.dicQuery,
114
+ },
115
+ safe
116
+ ).then((res) => {
117
+ safe.DIC[prop] = res;
118
+ resolve(res);
119
+ });
120
+ })
121
+ );
122
+ nameList.push(prop);
123
+ }
124
+ });
125
+ Promise.all(list).then((res: any[]) => {
126
+ nameList.forEach((ele, index) => {
127
+ result[ele] = res[index];
128
+ });
129
+ resolve(result);
130
+ });
131
+ });
132
+ };
133
+
134
+ export const loadLocalDic = (option: Record<string, any>, safe: any) => {
135
+ const columnData: Record<string, any> = {};
136
+ const optionData = option.dicData || {};
137
+ option.column.forEach((ele: any) => {
138
+ const dic = ele.dicData;
139
+ const prop = ele.prop;
140
+ if (dic instanceof Function) {
141
+ const dicResult = dic(ele);
142
+ if (dicResult instanceof Promise) {
143
+ dicResult.then((res: any[]) => {
144
+ safe.DIC[prop] = getDataType(res, ele.props, ele.dataType);
145
+ });
146
+ } else {
147
+ columnData[prop] = getDataType(dicResult, ele.props, ele.dataType);
148
+ }
149
+ } else if (dic instanceof Array) {
150
+ columnData[prop] = getDataType(dic, ele.props, ele.dataType);
151
+ }
152
+ });
153
+ const result = { ...optionData, ...columnData };
154
+ Object.keys(result).forEach((ele) => {
155
+ safe.DIC[ele] = result[ele];
156
+ });
157
+ return result;
158
+ };
159
+
160
+ export const sendDic = (params: Record<string, any>, safe: any) => {
161
+ let {
162
+ url,
163
+ query,
164
+ method,
165
+ props,
166
+ formatter,
167
+ headers,
168
+ value,
169
+ column = {},
170
+ form = {},
171
+ dataType,
172
+ } = params;
173
+ url = column.dicUrl || url;
174
+ method = (column.dicMethod || method || 'get').toLowerCase();
175
+ headers = column.dicHeaders || headers || {};
176
+ query = column.dicQuery || query || {};
177
+ formatter = column.dicFormatter || formatter;
178
+ props = column.props || props || {};
179
+ const list = url.match(/[^\{\}]+(?=\})/g) || [];
180
+ list.forEach((ele: string) => {
181
+ let result = ele === key ? value : form[ele];
182
+ if (validatenull(result)) result = '';
183
+ url = url.replace(`{{${ele}}}`, result);
184
+ });
185
+
186
+ const getKey = (data: Record<string, any>) => {
187
+ const result: Record<string, any> = {};
188
+ Object.keys(data).forEach((ele) => {
189
+ const eleKey = data[ele];
190
+ if (typeof eleKey === 'string' && eleKey.match(/\{{|}}/g)) {
191
+ const prop = eleKey.replace(/\{{|}}/g, '');
192
+ result[ele] = prop == key ? value : form[prop];
193
+ } else {
194
+ result[ele] = eleKey;
195
+ }
196
+ });
197
+ return result;
198
+ };
199
+
200
+ return new Promise<any[]>((resolve, reject) => {
201
+ if (!url) resolve([]);
202
+ const callback = (res: any) => {
203
+ let currentList: any[] = [];
204
+ res = res.data || {};
205
+ if (typeof formatter === 'function') {
206
+ currentList = formatter(res, form);
207
+ } else {
208
+ currentList = getResData(res, props, dataType);
209
+ }
210
+ resolve(currentList);
211
+ };
212
+ const getData = () => {
213
+ const data = getKey(query);
214
+ if (method == 'get') return { params: data };
215
+ return { data };
216
+ };
217
+ safe
218
+ .$axios(
219
+ Object.assign(
220
+ {
221
+ url,
222
+ method,
223
+ headers: getKey(headers),
224
+ },
225
+ getData()
226
+ )
227
+ )
228
+ .then(function (res: any) {
229
+ callback(res);
230
+ })
231
+ .catch((err: any) => {
232
+ reject(err);
233
+ });
234
+ });
235
+ };
@@ -0,0 +1,8 @@
1
+ import { t } from '../locale/index.mjs';
2
+ export default {
3
+ methods: {
4
+ t(...args) {
5
+ return t.apply(this, args);
6
+ },
7
+ },
8
+ };
@@ -0,0 +1,9 @@
1
+ import { t } from '../locale/index';
2
+
3
+ export default {
4
+ methods: {
5
+ t(...args: any[]) {
6
+ return t.apply(this, args);
7
+ },
8
+ },
9
+ };
@@ -0,0 +1,61 @@
1
+ import $Log from '../plugin/logs/index.mjs';
2
+ const list = {
3
+ AliOSS: {
4
+ url: 'https://cdn.staticfile.org/ali-oss/6.17.1/aliyun-oss-sdk.min.js',
5
+ title: '阿里云图片上传,需要引入 OSS 的 SDK',
6
+ github: 'https://github.com/ali-sdk/ali-oss/',
7
+ },
8
+ Map: {
9
+ url: 'https://webapi.amap.com/maps?v=1.4.11&key=xxxxx&plugin=AMap.PlaceSearch,https://webapi.amap.com/ui/1.0/main.js?v=1.0.11',
10
+ title: '地图组件,需要引入高德 SDK',
11
+ },
12
+ MapUi: {
13
+ url: 'https://webapi.amap.com/ui/1.0/main.js?v=1.0.11',
14
+ title: '地图组件,需要引入高德 UI SDK',
15
+ },
16
+ Sortable: {
17
+ url: 'https://cdn.staticfile.org/Sortable/1.10.0-rc2/Sortable.min.js',
18
+ title: '拖拽功能,需要引入 SortableJS',
19
+ github: 'https://github.com/SortableJS/Sortable',
20
+ },
21
+ Screenshot: {
22
+ url: 'https://cdn.staticfile.org/html2canvas/0.5.0-beta4/html2canvas.min.js',
23
+ title: '需要引入 html2canvas 依赖包',
24
+ github: 'https://github.com/niklasvh/html2canvas/',
25
+ },
26
+ COS: {
27
+ url: 'https://avuejs.com/cdn/cos-js-sdk-v5.min.js',
28
+ title: '腾讯云图片上传,需要引入 COS',
29
+ },
30
+ CryptoJS: {
31
+ url: 'https://avuejs.com/cdn/CryptoJS.js',
32
+ title: '七牛云图片上传,需要引入 CryptoJS',
33
+ },
34
+ 'file-saver': {
35
+ url: 'https://cdn.staticfile.org/FileSaver.js/2014-11-29/FileSaver.min.js',
36
+ title: '需要引入文件操作包',
37
+ github: 'https://github.com/eligrey/FileSaver.js',
38
+ },
39
+ xlsx: {
40
+ url: 'https://cdn.staticfile.org/xlsx/0.18.2/xlsx.full.min.js',
41
+ title: '需要引入 Excel 操作包',
42
+ github: 'https://github.com/protobi/js-xlsx',
43
+ },
44
+ mock: {
45
+ url: 'https://cdn.staticfile.org/Mock.js/1.0.1-beta3/mock-min.js',
46
+ title: '需要引入 Mock 模拟数据包',
47
+ github: 'https://github.com/Colingo/mock',
48
+ },
49
+ };
50
+ export default (() => {
51
+ return {
52
+ logs(name) {
53
+ const obj = list[name];
54
+ if (!obj)
55
+ return;
56
+ $Log.capsule(name, obj.title, 'warning');
57
+ $Log.warning('CDN:' + (obj.url || '-'));
58
+ $Log.warning('GITHUB:' + (obj.github || '-'));
59
+ },
60
+ };
61
+ })();
@@ -0,0 +1,62 @@
1
+ import $Log from '../plugin/logs/index';
2
+
3
+ const list: Record<string, { url: string; title: string; github?: string }> = {
4
+ AliOSS: {
5
+ url: 'https://cdn.staticfile.org/ali-oss/6.17.1/aliyun-oss-sdk.min.js',
6
+ title: '阿里云图片上传,需要引入 OSS 的 SDK',
7
+ github: 'https://github.com/ali-sdk/ali-oss/',
8
+ },
9
+ Map: {
10
+ url: 'https://webapi.amap.com/maps?v=1.4.11&key=xxxxx&plugin=AMap.PlaceSearch,https://webapi.amap.com/ui/1.0/main.js?v=1.0.11',
11
+ title: '地图组件,需要引入高德 SDK',
12
+ },
13
+ MapUi: {
14
+ url: 'https://webapi.amap.com/ui/1.0/main.js?v=1.0.11',
15
+ title: '地图组件,需要引入高德 UI SDK',
16
+ },
17
+ Sortable: {
18
+ url: 'https://cdn.staticfile.org/Sortable/1.10.0-rc2/Sortable.min.js',
19
+ title: '拖拽功能,需要引入 SortableJS',
20
+ github: 'https://github.com/SortableJS/Sortable',
21
+ },
22
+ Screenshot: {
23
+ url: 'https://cdn.staticfile.org/html2canvas/0.5.0-beta4/html2canvas.min.js',
24
+ title: '需要引入 html2canvas 依赖包',
25
+ github: 'https://github.com/niklasvh/html2canvas/',
26
+ },
27
+ COS: {
28
+ url: 'https://avuejs.com/cdn/cos-js-sdk-v5.min.js',
29
+ title: '腾讯云图片上传,需要引入 COS',
30
+ },
31
+ CryptoJS: {
32
+ url: 'https://avuejs.com/cdn/CryptoJS.js',
33
+ title: '七牛云图片上传,需要引入 CryptoJS',
34
+ },
35
+ 'file-saver': {
36
+ url: 'https://cdn.staticfile.org/FileSaver.js/2014-11-29/FileSaver.min.js',
37
+ title: '需要引入文件操作包',
38
+ github: 'https://github.com/eligrey/FileSaver.js',
39
+ },
40
+ xlsx: {
41
+ url: 'https://cdn.staticfile.org/xlsx/0.18.2/xlsx.full.min.js',
42
+ title: '需要引入 Excel 操作包',
43
+ github: 'https://github.com/protobi/js-xlsx',
44
+ },
45
+ mock: {
46
+ url: 'https://cdn.staticfile.org/Mock.js/1.0.1-beta3/mock-min.js',
47
+ title: '需要引入 Mock 模拟数据包',
48
+ github: 'https://github.com/Colingo/mock',
49
+ },
50
+ };
51
+
52
+ export default (() => {
53
+ return {
54
+ logs(name: string) {
55
+ const obj = list[name];
56
+ if (!obj) return;
57
+ $Log.capsule(name, obj.title, 'warning');
58
+ $Log.warning('CDN:' + (obj.url || '-'));
59
+ $Log.warning('GITHUB:' + (obj.github || '-'));
60
+ },
61
+ };
62
+ })();