@smallwei/avue 3.8.1 → 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 (376) 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 -31398
  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.css +1 -1
  212. package/lib/index.js +134 -0
  213. package/lib/index.ts +177 -0
  214. package/lib/locale/browser/en.js +288 -0
  215. package/lib/locale/browser/zh-cn.js +288 -0
  216. package/lib/locale/browser/zh.js +288 -0
  217. package/lib/locale/index.js +153 -47
  218. package/lib/locale/index.ts +196 -0
  219. package/lib/locale/lang/en.js +284 -100
  220. package/lib/locale/lang/en.ts +282 -0
  221. package/lib/locale/lang/zh-cn.js +284 -0
  222. package/lib/locale/lang/zh-cn.ts +282 -0
  223. package/lib/locale/lang/zh.js +284 -100
  224. package/lib/locale/lang/zh.ts +282 -0
  225. package/lib/packages/core/common/event.js +61 -0
  226. package/lib/packages/core/common/event.ts +56 -0
  227. package/lib/packages/core/common/init.js +140 -0
  228. package/lib/packages/core/common/init.ts +133 -0
  229. package/lib/packages/core/common/props.js +245 -0
  230. package/lib/packages/core/common/props.ts +240 -0
  231. package/lib/packages/core/components/dialog-form/index.js +35 -0
  232. package/lib/packages/core/components/dialog-form/index.ts +29 -0
  233. package/lib/packages/core/components/dialog-form/index.vue +108 -0
  234. package/lib/packages/core/components/form/custom.js +43 -0
  235. package/lib/packages/core/components/form/custom.ts +41 -0
  236. package/lib/packages/core/components/form/index.vue +176 -0
  237. package/lib/packages/core/components/icon/index.vue +37 -0
  238. package/lib/packages/core/components/image-preview/index.js +40 -0
  239. package/lib/packages/core/components/image-preview/index.ts +37 -0
  240. package/lib/packages/core/components/image-preview/index.vue +215 -0
  241. package/lib/packages/core/directive/contextmenu.js +94 -0
  242. package/lib/packages/core/directive/contextmenu.ts +103 -0
  243. package/lib/packages/core/directive/permission.js +21 -0
  244. package/lib/packages/core/directive/permission.ts +18 -0
  245. package/lib/packages/data/box/index.vue +66 -0
  246. package/lib/packages/data/card/index.vue +62 -0
  247. package/lib/packages/data/cardText/index.vue +56 -0
  248. package/lib/packages/data/countdown/index.vue +81 -0
  249. package/lib/packages/data/dashboard/index.vue +72 -0
  250. package/lib/packages/data/display/index.vue +63 -0
  251. package/lib/packages/data/icons/index.vue +68 -0
  252. package/lib/packages/data/imgText/index.vue +72 -0
  253. package/lib/packages/data/list/index.vue +69 -0
  254. package/lib/packages/data/notice/index.vue +63 -0
  255. package/lib/packages/data/operaText/index.vue +62 -0
  256. package/lib/packages/data/panel/index.vue +62 -0
  257. package/lib/packages/data/pay/index.vue +92 -0
  258. package/lib/packages/data/price/index.vue +55 -0
  259. package/lib/packages/data/product/index.vue +106 -0
  260. package/lib/packages/data/profile/index.vue +91 -0
  261. package/lib/packages/data/progress/index.vue +64 -0
  262. package/lib/packages/data/rank/index.vue +92 -0
  263. package/lib/packages/data/rotate/index.vue +69 -0
  264. package/lib/packages/data/statistic/index.vue +71 -0
  265. package/lib/packages/data/tabs/index.vue +64 -0
  266. package/lib/packages/data/task/index.vue +82 -0
  267. package/lib/packages/data/weather/index.vue +103 -0
  268. package/lib/packages/element-plus/array/index.vue +115 -0
  269. package/lib/packages/element-plus/article/index.vue +73 -0
  270. package/lib/packages/element-plus/card/index.vue +103 -0
  271. package/lib/packages/element-plus/cascader/index.vue +132 -0
  272. package/lib/packages/element-plus/chat/index.vue +513 -0
  273. package/lib/packages/element-plus/checkbox/index.vue +84 -0
  274. package/lib/packages/element-plus/comment/index.vue +76 -0
  275. package/lib/packages/element-plus/count-up/index.vue +107 -0
  276. package/lib/packages/element-plus/crud/column/column-default.vue +128 -0
  277. package/lib/packages/element-plus/crud/column/column-dynamic.vue +86 -0
  278. package/lib/packages/element-plus/crud/column/column-menu.vue +267 -0
  279. package/lib/packages/element-plus/crud/column/column-slot.vue +348 -0
  280. package/lib/packages/element-plus/crud/column/column.vue +119 -0
  281. package/lib/packages/element-plus/crud/column/menu.vue +78 -0
  282. package/lib/packages/element-plus/crud/config.js +76 -0
  283. package/lib/packages/element-plus/crud/config.ts +74 -0
  284. package/lib/packages/element-plus/crud/dialog/dialog-column.vue +102 -0
  285. package/lib/packages/element-plus/crud/dialog/dialog-excel.vue +204 -0
  286. package/lib/packages/element-plus/crud/dialog/dialog-filter.vue +159 -0
  287. package/lib/packages/element-plus/crud/dialog/dialog-form.vue +352 -0
  288. package/lib/packages/element-plus/crud/grid/index.vue +271 -0
  289. package/lib/packages/element-plus/crud/grid/item.vue +39 -0
  290. package/lib/packages/element-plus/crud/index.vue +1018 -0
  291. package/lib/packages/element-plus/crud/menu/header-menu.vue +175 -0
  292. package/lib/packages/element-plus/crud/menu/header-search.vue +228 -0
  293. package/lib/packages/element-plus/crud/menu/table-page.vue +108 -0
  294. package/lib/packages/element-plus/date/index.vue +81 -0
  295. package/lib/packages/element-plus/draggable/index.vue +444 -0
  296. package/lib/packages/element-plus/dynamic/index.vue +353 -0
  297. package/lib/packages/element-plus/flow/index.vue +339 -0
  298. package/lib/packages/element-plus/flow/node.vue +84 -0
  299. package/lib/packages/element-plus/form/config.js +8 -0
  300. package/lib/packages/element-plus/form/config.ts +6 -0
  301. package/lib/packages/element-plus/form/index.vue +954 -0
  302. package/lib/packages/element-plus/form/menu.vue +63 -0
  303. package/lib/packages/element-plus/group/index.vue +90 -0
  304. package/lib/packages/element-plus/input/index.vue +1264 -0
  305. package/lib/packages/element-plus/input-color/index.vue +70 -0
  306. package/lib/packages/element-plus/input-cron/index.vue +363 -0
  307. package/lib/packages/element-plus/input-icon/index.vue +143 -0
  308. package/lib/packages/element-plus/input-map/index.vue +311 -0
  309. package/lib/packages/element-plus/input-number/index.vue +91 -0
  310. package/lib/packages/element-plus/input-table/index.vue +279 -0
  311. package/lib/packages/element-plus/input-tag/index.vue +79 -0
  312. package/lib/packages/element-plus/input-tree/index.vue +194 -0
  313. package/lib/packages/element-plus/license/index.vue +155 -0
  314. package/lib/packages/element-plus/login/index.vue +203 -0
  315. package/lib/packages/element-plus/mention/index.vue +117 -0
  316. package/lib/packages/element-plus/radio/index.vue +38 -0
  317. package/lib/packages/element-plus/rate/index.vue +51 -0
  318. package/lib/packages/element-plus/search/index.vue +129 -0
  319. package/lib/packages/element-plus/select/index.vue +292 -0
  320. package/lib/packages/element-plus/sign/index.vue +230 -0
  321. package/lib/packages/element-plus/slider/index.vue +66 -0
  322. package/lib/packages/element-plus/switch/index.vue +72 -0
  323. package/lib/packages/element-plus/tabs/index.vue +62 -0
  324. package/lib/packages/element-plus/text-ellipsis/index.vue +104 -0
  325. package/lib/packages/element-plus/time/index.vue +81 -0
  326. package/lib/packages/element-plus/title/index.vue +30 -0
  327. package/lib/packages/element-plus/tree/index.vue +460 -0
  328. package/lib/packages/element-plus/upload/index.vue +728 -0
  329. package/lib/packages/element-plus/verify/index.vue +62 -0
  330. package/lib/packages/element-plus/video/index.vue +90 -0
  331. package/lib/plugin/ali/index.js +8 -0
  332. package/lib/plugin/ali/index.ts +6 -0
  333. package/lib/plugin/clipboard/index.js +64 -0
  334. package/lib/plugin/clipboard/index.ts +67 -0
  335. package/lib/plugin/export/_blob.js +151 -0
  336. package/lib/plugin/export/_blob.ts +176 -0
  337. package/lib/plugin/export/_export2Excel.js +145 -0
  338. package/lib/plugin/export/_export2Excel.ts +166 -0
  339. package/lib/plugin/export/index.js +268 -0
  340. package/lib/plugin/export/index.ts +274 -0
  341. package/lib/plugin/logs/index.js +48 -0
  342. package/lib/plugin/logs/index.ts +66 -0
  343. package/lib/plugin/print/index.js +147 -0
  344. package/lib/plugin/print/index.ts +155 -0
  345. package/lib/plugin/qiniu/index.js +82 -0
  346. package/lib/plugin/qiniu/index.ts +88 -0
  347. package/lib/plugin/screenshot/index.js +14 -0
  348. package/lib/plugin/screenshot/index.ts +9 -0
  349. package/lib/plugin/video/index.js +55 -0
  350. package/lib/plugin/video/index.ts +60 -0
  351. package/lib/plugin/watermark/index.js +121 -0
  352. package/lib/plugin/watermark/index.ts +127 -0
  353. package/lib/plugin/watermark/watermark.js +111 -0
  354. package/lib/plugin/watermark/watermark.ts +121 -0
  355. package/lib/ui/data/index.js +54 -0
  356. package/lib/ui/data/index.ts +51 -0
  357. package/lib/ui/element-plus/index.js +92 -0
  358. package/lib/ui/element-plus/index.ts +89 -0
  359. package/lib/ui/index.js +9 -0
  360. package/lib/ui/index.ts +6 -0
  361. package/lib/utils/bem.js +31 -0
  362. package/lib/utils/bem.ts +36 -0
  363. package/lib/utils/mock.js +142 -0
  364. package/lib/utils/mock.ts +151 -0
  365. package/lib/utils/util.js +403 -0
  366. package/lib/utils/util.ts +392 -0
  367. package/lib/utils/validate.js +21 -0
  368. package/lib/utils/validate.ts +23 -0
  369. package/lib/version.js +4 -0
  370. package/lib/version.ts +1 -0
  371. package/package.json +24 -11
  372. package/types/index.d.ts +141 -0
  373. package/types/shims-aliases.d.ts +4 -0
  374. package/types/shims-vue.d.ts +6 -0
  375. package/lib/avue.js.map +0 -1
  376. package/lib/locale/format.js +0 -44
@@ -0,0 +1,230 @@
1
+ <template>
2
+ <div :class="b()">
3
+ <canvas :class="b('canvas')"
4
+ :width="width"
5
+ :height="height"
6
+ ref="canvas"></canvas>
7
+ </div>
8
+ </template>
9
+
10
+ <script>
11
+ //绘制五角星
12
+ /**
13
+ * 创建一个五角星形状. 该五角星的中心坐标为(sx,sy),中心到顶点的距离为radius,rotate=0时一个顶点在对称轴上
14
+ * rotate:绕对称轴旋转rotate弧度
15
+ */
16
+ function create5star (context, sx, sy, radius, color, rotato) {
17
+ context.save();
18
+ context.fillStyle = color;
19
+ context.translate(sx, sy);//移动坐标原点
20
+ context.rotate(Math.PI + rotato);//旋转
21
+ context.beginPath();//创建路径
22
+ var x = Math.sin(0);
23
+ var y = Math.cos(0);
24
+ var dig = Math.PI / 5 * 4;
25
+ for (var i = 0; i < 5; i++) {//画五角星的五条边
26
+ var x = Math.sin(i * dig);
27
+ var y = Math.cos(i * dig);
28
+ context.lineTo(x * radius, y * radius);
29
+ }
30
+ context.closePath();
31
+ context.stroke();
32
+ context.fill();
33
+ context.restore();
34
+ }
35
+ import create from "../../../core/create.mjs";
36
+ export default create({
37
+ name: "sign",
38
+ props: {
39
+ width: {
40
+ type: Number,
41
+ default: 600,
42
+ },
43
+ height: {
44
+ type: Number,
45
+ default: 400
46
+ }
47
+ },
48
+ data () {
49
+ return {
50
+ disabled: false,
51
+ linex: [],
52
+ liney: [],
53
+ linen: [],
54
+ canvas: {},
55
+ context: {},
56
+ }
57
+ },
58
+ computed: {
59
+ styleName () {
60
+ return {
61
+ width: this.setPx(this.width),
62
+ height: this.setPx(this.height)
63
+ }
64
+ }
65
+ },
66
+ mounted () {
67
+ this.init();
68
+ },
69
+ methods: {
70
+ getStar (text, text1, text2) {
71
+ var canvas = this.canvas;
72
+ var context = this.context
73
+ // 绘制印章边框
74
+ var width = canvas.width / 2;
75
+ var height = canvas.height / 2;
76
+ context.lineWidth = 7;
77
+ context.strokeStyle = "#f00";
78
+ context.beginPath();
79
+ context.arc(width, height, 110, 0, Math.PI * 2);
80
+ context.stroke();
81
+
82
+ //画五角星
83
+ create5star(context, width, height, 20, "#f00", 0);
84
+
85
+ // 绘制印章名称
86
+ context.font = '18px SimHei';
87
+ context.textBaseline = 'middle';//设置文本的垂直对齐方式
88
+ context.textAlign = 'center'; //设置文本的水平对对齐方式
89
+ context.lineWidth = 1;
90
+ context.strokeStyle = '#f00';
91
+ context.strokeText(text, width, height + 50);
92
+
93
+ // 绘制印章副属性名称
94
+ context.font = '14px SimHei';
95
+ context.textBaseline = 'middle';//设置文本的垂直对齐方式
96
+ context.textAlign = 'center'; //设置文本的水平对对齐方式
97
+ context.lineWidth = 1;
98
+ context.strokeStyle = '#f00';
99
+ context.strokeText(text2, width, height + 80);
100
+
101
+ // 绘制印章单位
102
+ context.translate(width, height);// 平移到此位置,
103
+ context.font = '22px SimHei'
104
+ var count = text1.length;// 字数
105
+ var angle = 4 * Math.PI / (3 * (count - 1));// 字间角度
106
+ var chars = text1.split("");
107
+ var c;
108
+ for (var i = 0; i < count; i++) {
109
+ c = chars[i];// 需要绘制的字符
110
+ if (i == 0) context.rotate(5 * Math.PI / 6);
111
+ else
112
+ context.rotate(angle);//
113
+ context.save();
114
+ context.translate(90, 0);// 平移到此位置,此时字和x轴垂直
115
+ context.rotate(Math.PI / 2);// 旋转90度,让字平行于x轴
116
+ context.strokeText(c, 0, 0);// 此点为字的中心点
117
+ context.restore();
118
+ context.save();//锁画布(为了保存之前的画布状态)
119
+ }
120
+ this.disabled = true
121
+ },
122
+ submit (width, height) {
123
+ if (!width) width = this.width;
124
+ if (!height) height = this.height;
125
+ return this.canvas.toDataURL("i/png");
126
+ },
127
+ clear () {
128
+ this.linex = new Array();
129
+ this.liney = new Array();
130
+ this.linen = new Array();
131
+ this.disabled = false
132
+ this.canvas.width = this.canvas.width
133
+
134
+ },
135
+ init () {
136
+ this.canvas = this.$refs.canvas;
137
+ var canvas = this.canvas;
138
+ var _safe = this;
139
+ //注册相关事件
140
+ if (typeof document.ontouchstart != "undefined") { //适配移动设备
141
+ canvas.addEventListener('touchmove', onMouseMove, false);
142
+ canvas.addEventListener('touchstart', onMouseDown, false);
143
+ canvas.addEventListener('touchend', onMouseUp, false);
144
+ } else { //适配电脑
145
+ canvas.addEventListener('mousemove', onMouseMove, false);
146
+ canvas.addEventListener('mousedown', onMouseDown, false);
147
+ canvas.addEventListener('mouseup', onMouseUp, false);
148
+ canvas.addEventListener('mouseleave', onMouseUp, false);
149
+ }
150
+ //初始化上下文和参数
151
+ this.context = canvas.getContext('2d');
152
+ var context = this.context;
153
+ this.linex = new Array();
154
+ this.liney = new Array();
155
+ this.linen = new Array();
156
+ var lastX = 1;
157
+ var lastY = 30;
158
+ var flag = 0;
159
+
160
+
161
+
162
+ //根据鼠标坐标获取绘图坐标
163
+ function getCanvasPos (canvas, evt) {
164
+ var rect = canvas.getBoundingClientRect();
165
+ var x, y;
166
+ if (evt.targetTouches) {
167
+ x = evt.targetTouches[0].clientX;
168
+ y = evt.targetTouches[0].clientY;
169
+ } else {
170
+ x = evt.clientX;
171
+ y = evt.clientY;
172
+ }
173
+ return {
174
+ x: (x - rect.left) * (canvas.width / rect.width),
175
+ y: (y - rect.top) * (canvas.height / rect.height)
176
+ }
177
+ }
178
+
179
+ //鼠标移动的时候
180
+ function onMouseMove (evt) {
181
+ if (_safe.disabled) return
182
+ var x = getCanvasPos(canvas, evt).x,
183
+ y = getCanvasPos(canvas, evt).y;
184
+
185
+ //判断是否处于按下状态
186
+ if (flag == 1) {
187
+ //如果是则画图
188
+ _safe.linex.push(x);
189
+ _safe.liney.push(y);
190
+ _safe.linen.push(1);
191
+ context.save();
192
+ context.translate(context.canvas.width / 2, context.canvas.height / 2);
193
+ context.translate(-context.canvas.width / 2, -context.canvas.height / 2);
194
+ context.beginPath();
195
+ context.lineWidth = 2;
196
+ for (var i = 1; i < _safe.linex.length; i++) {
197
+ lastX = _safe.linex[i];
198
+ lastY = _safe.liney[i];
199
+ if (_safe.linen[i] == 0)
200
+ context.moveTo(lastX, lastY);
201
+ else
202
+ context.lineTo(lastX, lastY);
203
+ }
204
+ context.shadowBlur = 10;
205
+ context.stroke();
206
+ context.restore();
207
+ }
208
+ evt.preventDefault();
209
+ }
210
+
211
+ //当鼠标按下的时候修改按下标志,并开始记录坐标
212
+ function onMouseDown (evt) {
213
+ if (_safe.disabled) return
214
+ var x = getCanvasPos(canvas, evt).x,
215
+ y = getCanvasPos(canvas, evt).y;
216
+ flag = 1;
217
+ _safe.linex.push(x);
218
+ _safe.liney.push(y);
219
+ _safe.linen.push(0);
220
+ }
221
+
222
+ //鼠标松开清除标志
223
+ function onMouseUp () {
224
+ if (_safe.disabled) return
225
+ flag = 0;
226
+ }
227
+ }
228
+ }
229
+ });
230
+ </script>
@@ -0,0 +1,66 @@
1
+ <template>
2
+ <el-slider v-model="text"
3
+ :disabled="disabled"
4
+ :vertical="vertical"
5
+ :height="setPx(height)"
6
+ :step="step"
7
+ :min="min"
8
+ :max="max"
9
+ :range="range"
10
+ :show-stops="showStops"
11
+ :show-input="showInput"
12
+ :marks="marks"
13
+ :format-tooltip="formatTooltip"
14
+ @click="handleClick"></el-slider>
15
+ </template>
16
+
17
+ <script>
18
+ import create from "../../../core/create.mjs";
19
+ import props from "../../core/common/props.mjs";
20
+ import event from "../../core/common/event.mjs";
21
+ export default create({
22
+ name: "slider",
23
+ mixins: [props(), event()],
24
+ props: {
25
+ modelValue: {},
26
+ step: {
27
+ type: Number
28
+ },
29
+ min: {
30
+ type: Number
31
+ },
32
+ max: {
33
+ type: Number
34
+ },
35
+ marks: {
36
+ type: Object
37
+ },
38
+ range: {
39
+ type: Boolean,
40
+ default: false
41
+ },
42
+ showInput: {
43
+ type: Boolean,
44
+ default: false
45
+ },
46
+ showStops: {
47
+ type: Boolean,
48
+ default: false
49
+ },
50
+ vertical: {
51
+ type: Boolean,
52
+ default: false
53
+ },
54
+ formatTooltip: Function,
55
+ height: String,
56
+ formatTooltip: Function
57
+ },
58
+ data () {
59
+ return {};
60
+ },
61
+ watch: {},
62
+ created () { },
63
+ mounted () { },
64
+ methods: {}
65
+ });
66
+ </script>
@@ -0,0 +1,72 @@
1
+ <template>
2
+ <div>
3
+ <el-switch v-model="text"
4
+ @click="handleClick"
5
+ :loading="loading"
6
+ :inline-prompt="inlinePrompt"
7
+ :active-icon="activeIcon"
8
+ :before-change="handleBeforeChange"
9
+ :active-action-icon="activeActionIcon"
10
+ :active-text="active[labelKey]"
11
+ :active-value="active[valueKey]"
12
+ :inactive-icon="inactiveIcon"
13
+ :inactive-action-icon="inactiveActionIcon"
14
+ :inactive-value="inactive[valueKey]"
15
+ :inactive-text="inactive[labelKey]"
16
+ :width="len"
17
+ :disabled="disabled"></el-switch>
18
+ </div>
19
+ </template>
20
+
21
+ <script>
22
+ import create from "../../../core/create.mjs";
23
+ import props from "../../core/common/props.mjs";
24
+ import event from "../../core/common/event.mjs";
25
+ export default create({
26
+ name: "switch",
27
+ mixins: [props(), event()],
28
+ props: {
29
+ inlinePrompt: Boolean,
30
+ inactiveActionIcon: String,
31
+ activeActionIcon: String,
32
+ inactiveIcon: String,
33
+ activeIcon: String,
34
+ len: Number,
35
+ beforeChange: Function
36
+ },
37
+ data () {
38
+ return {
39
+ loading: false,
40
+ };
41
+ },
42
+ watch: {},
43
+ created () { },
44
+ mounted () { },
45
+ computed: {
46
+ active () {
47
+ return this.dic[1] || {};
48
+ },
49
+ inactive () {
50
+ return this.dic[0] || {};
51
+ }
52
+ },
53
+ methods: {
54
+ handleBeforeChange () {
55
+ return new Promise((resolve) => {
56
+ this.loading = true
57
+ const callback = (result) => {
58
+ this.loading = false
59
+ return resolve(result)
60
+ }
61
+ if (typeof this.beforeChange == 'function') {
62
+ return this.beforeChange(callback)
63
+ } else {
64
+ return callback(true)
65
+ }
66
+ })
67
+
68
+ }
69
+ }
70
+ });
71
+ </script>
72
+
@@ -0,0 +1,62 @@
1
+ <template>
2
+ <div :class="b()">
3
+ <el-tabs v-model="active"
4
+ :tab-position="parentOption.position"
5
+ :type="parentOption.type">
6
+ <el-tab-pane :name="index+''"
7
+ :disabled="column.disabled"
8
+ v-for="(column,index) in columnOption"
9
+ :key="index">
10
+ <template #label>
11
+ <i :class="column.icon"></i>&nbsp;
12
+ {{column.label}}
13
+ </template>
14
+ </el-tab-pane>
15
+ </el-tabs>
16
+
17
+ </div>
18
+ </template>
19
+
20
+ <script>
21
+ import create from "../../../core/create.mjs";
22
+ export default create({
23
+ name: "tabs",
24
+ props: {
25
+ option: {
26
+ type: Object,
27
+ required: true,
28
+ default: () => {
29
+ return {};
30
+ }
31
+ }
32
+ },
33
+ data () {
34
+ return {
35
+ active: "0",
36
+ };
37
+ },
38
+ watch: {
39
+ active () {
40
+ this.$emit("change", this.tabsObj);
41
+ }
42
+ },
43
+ computed: {
44
+ tabsObj () {
45
+ return this.columnOption[this.active];
46
+ },
47
+ parentOption () {
48
+ return this.option;;
49
+ },
50
+ columnOption () {
51
+ return this.parentOption.column || [];
52
+ }
53
+ },
54
+ methods: {
55
+ changeTabs (active) {
56
+ this.active = active + "";
57
+ }
58
+ }
59
+ });
60
+ </script>
61
+
62
+
@@ -0,0 +1,104 @@
1
+ <template>
2
+ <div :class="b()"
3
+ :style="{width:setPx(width,'100%')}">
4
+
5
+ <slot name="before"
6
+ :class="b('before')"></slot>
7
+ <el-tooltip :content="text"
8
+ :disabled="!(useTooltip&&isHide)"
9
+ :placement="placement">
10
+ <span>
11
+ <span :class="b('text')"
12
+ ref="text"
13
+ :key="keyIndex">{{text}}</span>
14
+ </span>
15
+ </el-tooltip>
16
+ <span :class="b('more')"
17
+ ref="more">
18
+ <slot name="more"></slot>
19
+ </span>
20
+ <slot name="after"
21
+ :class="b('after')"></slot>
22
+
23
+ </div>
24
+ </template>
25
+ <script>
26
+ import create from "../../../core/create.mjs";
27
+ export default create({
28
+ name: "text-ellipsis",
29
+ props: {
30
+ text: String,
31
+ height: Number,
32
+ width: Number,
33
+ isLimitHeight: {
34
+ type: Boolean,
35
+ default: true
36
+ },
37
+ useTooltip: {
38
+ type: Boolean,
39
+ default: false
40
+ },
41
+ placement: String
42
+ },
43
+ data () {
44
+ return {
45
+ keyIndex: 0,
46
+ isHide: false
47
+ };
48
+ },
49
+ watch: {
50
+ isLimitHeight () {
51
+ this.init();
52
+ },
53
+ text () {
54
+ this.init();
55
+ },
56
+ height () {
57
+ this.init();
58
+ }
59
+ },
60
+ mounted () {
61
+ this.init();
62
+ },
63
+ methods: {
64
+ init () {
65
+ this.keyIndex += 1;
66
+ let more = this.$refs.more;
67
+ more.style.display = "none";
68
+ if (this.isLimitHeight) {
69
+ this.limitShow();
70
+ }
71
+ },
72
+ limitShow () {
73
+ this.$nextTick(() => {
74
+ let textDom = this.$refs.text;
75
+ let title = this.$el;
76
+ let more = this.$refs.more;
77
+ let n = 1000;
78
+ if (textDom) {
79
+ if (title.offsetHeight > this.height) {
80
+ more.style.display = "inline-block";
81
+ let text = this.text;
82
+ while (title.offsetHeight > this.height && n > 0) {
83
+ if (title.offsetHeight > this.height * 3) {
84
+ textDom.innerText = text = text.substring(
85
+ 0,
86
+ Math.floor(text.length / 2)
87
+ );
88
+ } else {
89
+ textDom.innerText = text = text.substring(0, text.length - 1);
90
+ }
91
+ n--;
92
+ }
93
+ this.$emit("hide");
94
+ this.isHide = true;
95
+ } else {
96
+ this.$emit("show");
97
+ this.isHide = false;
98
+ }
99
+ }
100
+ });
101
+ }
102
+ }
103
+ });
104
+ </script>
@@ -0,0 +1,81 @@
1
+ <template>
2
+ <div :class="b()">
3
+ <component :is="componentName"
4
+ v-model="text"
5
+ :popper-class="popperClass"
6
+ :is-range="isRange"
7
+ :size="size"
8
+ :editable="editable"
9
+ :disabled-hours="disabledHours"
10
+ :disabled-minutes="disabledMinutes"
11
+ :disabled-seconds="disabledSeconds"
12
+ :default-value="defaultValue"
13
+ :range-separator="rangeSeparator"
14
+ @visible-change="visibleChange"
15
+ :arrow-control="arrowControl"
16
+ :start-placeholder="startPlaceholder || t('time.start')"
17
+ :end-placeholder="endPlaceholder || t('time.end')"
18
+ :format="format"
19
+ :readonly="readonly"
20
+ :clearable="clearableVal"
21
+ :start="start"
22
+ :end="end"
23
+ :step="step"
24
+ :max-time="maxTime"
25
+ :min-time="minTime"
26
+ :value-format="valueFormat"
27
+ :placeholder="placeholder"
28
+ @click="handleClick"
29
+ :disabled="disabled">
30
+ </component>
31
+ </div>
32
+ </template>
33
+
34
+ <script>
35
+ import create from "../../../core/create.mjs";
36
+ import props from "../../core/common/props.mjs";
37
+ import event from "../../core/common/event.mjs";
38
+ import locale from "../../../core/locale.mjs";
39
+ export default create({
40
+ name: "time",
41
+ mixins: [props(), event(), locale],
42
+ data () {
43
+ return {};
44
+ },
45
+ props: {
46
+ editable: {
47
+ type: Boolean,
48
+ default: true
49
+ },
50
+ maxTime: String,
51
+ minTime: String,
52
+ start: String,
53
+ end: String,
54
+ step: String,
55
+ startPlaceholder: String,
56
+ endPlaceholder: String,
57
+ rangeSeparator: String,
58
+ defaultValue: [String, Array],
59
+ valueFormat: String,
60
+ arrowControl: Boolean,
61
+ type: String,
62
+ format: String,
63
+ visibleChange: Function,
64
+ disabledHours: Function,
65
+ disabledMinutes: Function,
66
+ disabledSeconds: Function
67
+ },
68
+ computed: {
69
+ componentName () {
70
+ if (this.start || this.end || this.step || this.maxTime || this.minTime) {
71
+ return "elTimeSelect"
72
+ } else {
73
+ return "elTimePicker"
74
+ }
75
+ },
76
+ isRange () {
77
+ return this.type === "timerange";
78
+ }
79
+ }
80
+ });
81
+ </script>
@@ -0,0 +1,30 @@
1
+ <template>
2
+ <div :class="b()">
3
+ <p :style="styles">{{text}}</p>
4
+ </div>
5
+ </template>
6
+
7
+ <script>
8
+ import create from "../../../core/create.mjs";
9
+ import props from "../../core/common/props.mjs";
10
+ import event from "../../core/common/event.mjs";
11
+ export default create({
12
+ name: 'title',
13
+ mixins: [props(), event()],
14
+ props: {
15
+ styles: {
16
+ type: Object,
17
+ default: () => {
18
+ return {}
19
+ }
20
+ }
21
+ },
22
+ mounted () {
23
+
24
+ },
25
+ methods: {
26
+
27
+ }
28
+ })
29
+ </script>
30
+