kz-ui-base 1.0.2 → 1.0.4

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 (283) hide show
  1. package/package.json +1 -1
  2. package/common/package-lock.json +0 -18
  3. package/common/package.json +0 -51
  4. package/common/src/api/common/cacher.js +0 -15
  5. package/common/src/api/common/common.js +0 -299
  6. package/common/src/api/common/material.js +0 -71
  7. package/common/src/api/login.js +0 -103
  8. package/common/src/api/menu.js +0 -18
  9. package/common/src/assets/401_images/401.gif +0 -0
  10. package/common/src/assets/404_images/404.png +0 -0
  11. package/common/src/assets/404_images/404_cloud.png +0 -0
  12. package/common/src/assets/icons/file-config.png +0 -0
  13. package/common/src/assets/icons/file-doc.png +0 -0
  14. package/common/src/assets/icons/file-exe.png +0 -0
  15. package/common/src/assets/icons/file-ini.png +0 -0
  16. package/common/src/assets/icons/file-jpg.png +0 -0
  17. package/common/src/assets/icons/file-mpg.png +0 -0
  18. package/common/src/assets/icons/file-none.png +0 -0
  19. package/common/src/assets/icons/file-pdf.png +0 -0
  20. package/common/src/assets/icons/file-png.png +0 -0
  21. package/common/src/assets/icons/file-ppt.png +0 -0
  22. package/common/src/assets/icons/file-rar.png +0 -0
  23. package/common/src/assets/icons/file-txt.png +0 -0
  24. package/common/src/assets/icons/file-wav.png +0 -0
  25. package/common/src/assets/icons/file-xls.png +0 -0
  26. package/common/src/assets/icons/index.js +0 -9
  27. package/common/src/assets/icons/svg/404.svg +0 -1
  28. package/common/src/assets/icons/svg/bug.svg +0 -1
  29. package/common/src/assets/icons/svg/build.svg +0 -1
  30. package/common/src/assets/icons/svg/button.svg +0 -1
  31. package/common/src/assets/icons/svg/cascader.svg +0 -1
  32. package/common/src/assets/icons/svg/chart.svg +0 -1
  33. package/common/src/assets/icons/svg/checkbox.svg +0 -1
  34. package/common/src/assets/icons/svg/client.svg +0 -1
  35. package/common/src/assets/icons/svg/clipboard.svg +0 -1
  36. package/common/src/assets/icons/svg/code.svg +0 -1
  37. package/common/src/assets/icons/svg/color.svg +0 -1
  38. package/common/src/assets/icons/svg/component.svg +0 -1
  39. package/common/src/assets/icons/svg/dashboard.svg +0 -1
  40. package/common/src/assets/icons/svg/date-range.svg +0 -1
  41. package/common/src/assets/icons/svg/date.svg +0 -1
  42. package/common/src/assets/icons/svg/dict.svg +0 -1
  43. package/common/src/assets/icons/svg/documentation.svg +0 -1
  44. package/common/src/assets/icons/svg/download.svg +0 -1
  45. package/common/src/assets/icons/svg/drag.svg +0 -1
  46. package/common/src/assets/icons/svg/druid.svg +0 -1
  47. package/common/src/assets/icons/svg/edit.svg +0 -1
  48. package/common/src/assets/icons/svg/education.svg +0 -1
  49. package/common/src/assets/icons/svg/email.svg +0 -1
  50. package/common/src/assets/icons/svg/example.svg +0 -1
  51. package/common/src/assets/icons/svg/excel.svg +0 -1
  52. package/common/src/assets/icons/svg/exit-fullscreen.svg +0 -1
  53. package/common/src/assets/icons/svg/eye-open.svg +0 -1
  54. package/common/src/assets/icons/svg/eye.svg +0 -1
  55. package/common/src/assets/icons/svg/form.svg +0 -1
  56. package/common/src/assets/icons/svg/fullscreen.svg +0 -1
  57. package/common/src/assets/icons/svg/github.svg +0 -1
  58. package/common/src/assets/icons/svg/guide.svg +0 -1
  59. package/common/src/assets/icons/svg/icon.svg +0 -1
  60. package/common/src/assets/icons/svg/input.svg +0 -1
  61. package/common/src/assets/icons/svg/international.svg +0 -1
  62. package/common/src/assets/icons/svg/job.svg +0 -1
  63. package/common/src/assets/icons/svg/kz_authority.svg +0 -1
  64. package/common/src/assets/icons/svg/kz_build.svg +0 -1
  65. package/common/src/assets/icons/svg/kz_code.svg +0 -1
  66. package/common/src/assets/icons/svg/kz_config.svg +0 -1
  67. package/common/src/assets/icons/svg/kz_creatTime.svg +0 -1
  68. package/common/src/assets/icons/svg/kz_dept.svg +0 -1
  69. package/common/src/assets/icons/svg/kz_dept_profile.svg +0 -1
  70. package/common/src/assets/icons/svg/kz_dict.svg +0 -1
  71. package/common/src/assets/icons/svg/kz_edit.svg +0 -1
  72. package/common/src/assets/icons/svg/kz_enlarge.svg +0 -1
  73. package/common/src/assets/icons/svg/kz_enterprise.svg +0 -1
  74. package/common/src/assets/icons/svg/kz_fold.svg +0 -2
  75. package/common/src/assets/icons/svg/kz_job.svg +0 -1
  76. package/common/src/assets/icons/svg/kz_layout.svg +0 -1
  77. package/common/src/assets/icons/svg/kz_log.svg +0 -1
  78. package/common/src/assets/icons/svg/kz_log_loginInfo.svg +0 -1
  79. package/common/src/assets/icons/svg/kz_log_operation.svg +0 -1
  80. package/common/src/assets/icons/svg/kz_master-slave.svg +0 -2
  81. package/common/src/assets/icons/svg/kz_menu.svg +0 -1
  82. package/common/src/assets/icons/svg/kz_menu_analyse.svg +0 -22
  83. package/common/src/assets/icons/svg/kz_message.svg +0 -1
  84. package/common/src/assets/icons/svg/kz_monitor.svg +0 -1
  85. package/common/src/assets/icons/svg/kz_nacos.svg +0 -1
  86. package/common/src/assets/icons/svg/kz_narrow.svg +0 -1
  87. package/common/src/assets/icons/svg/kz_notice.svg +0 -2
  88. package/common/src/assets/icons/svg/kz_online.svg +0 -1
  89. package/common/src/assets/icons/svg/kz_open.svg +0 -2
  90. package/common/src/assets/icons/svg/kz_organization.svg +0 -1
  91. package/common/src/assets/icons/svg/kz_post.svg +0 -1
  92. package/common/src/assets/icons/svg/kz_post_profile.svg +0 -1
  93. package/common/src/assets/icons/svg/kz_productCenter.svg +0 -1
  94. package/common/src/assets/icons/svg/kz_rabbit.svg +0 -1
  95. package/common/src/assets/icons/svg/kz_refresh.svg +0 -2
  96. package/common/src/assets/icons/svg/kz_renovation.svg +0 -1
  97. package/common/src/assets/icons/svg/kz_role.svg +0 -1
  98. package/common/src/assets/icons/svg/kz_roleGroup.svg +0 -1
  99. package/common/src/assets/icons/svg/kz_search.svg +0 -1
  100. package/common/src/assets/icons/svg/kz_sentinel.svg +0 -1
  101. package/common/src/assets/icons/svg/kz_server.svg +0 -1
  102. package/common/src/assets/icons/svg/kz_setting.svg +0 -1
  103. package/common/src/assets/icons/svg/kz_sex.svg +0 -1
  104. package/common/src/assets/icons/svg/kz_source.svg +0 -2
  105. package/common/src/assets/icons/svg/kz_strategy.svg +0 -2
  106. package/common/src/assets/icons/svg/kz_swagger.svg +0 -1
  107. package/common/src/assets/icons/svg/kz_system.svg +0 -1
  108. package/common/src/assets/icons/svg/kz_tenant.svg +0 -1
  109. package/common/src/assets/icons/svg/kz_tool.svg +0 -1
  110. package/common/src/assets/icons/svg/kz_user.svg +0 -1
  111. package/common/src/assets/icons/svg/language.svg +0 -1
  112. package/common/src/assets/icons/svg/link.svg +0 -1
  113. package/common/src/assets/icons/svg/list.svg +0 -1
  114. package/common/src/assets/icons/svg/lock.svg +0 -1
  115. package/common/src/assets/icons/svg/log.svg +0 -1
  116. package/common/src/assets/icons/svg/logininfor.svg +0 -1
  117. package/common/src/assets/icons/svg/mes-ad.svg +0 -21
  118. package/common/src/assets/icons/svg/mes-ic.svg +0 -16
  119. package/common/src/assets/icons/svg/mes-mfg-order.svg +0 -22
  120. package/common/src/assets/icons/svg/mes-tm.svg +0 -15
  121. package/common/src/assets/icons/svg/message.svg +0 -1
  122. package/common/src/assets/icons/svg/money.svg +0 -1
  123. package/common/src/assets/icons/svg/monitor.svg +0 -2
  124. package/common/src/assets/icons/svg/nacos.svg +0 -1
  125. package/common/src/assets/icons/svg/nested.svg +0 -1
  126. package/common/src/assets/icons/svg/number.svg +0 -1
  127. package/common/src/assets/icons/svg/online.svg +0 -1
  128. package/common/src/assets/icons/svg/password.svg +0 -1
  129. package/common/src/assets/icons/svg/pdf.svg +0 -1
  130. package/common/src/assets/icons/svg/people.svg +0 -1
  131. package/common/src/assets/icons/svg/peoples.svg +0 -1
  132. package/common/src/assets/icons/svg/phone.svg +0 -1
  133. package/common/src/assets/icons/svg/post.svg +0 -1
  134. package/common/src/assets/icons/svg/qq.svg +0 -1
  135. package/common/src/assets/icons/svg/question.svg +0 -1
  136. package/common/src/assets/icons/svg/radio.svg +0 -1
  137. package/common/src/assets/icons/svg/rate.svg +0 -1
  138. package/common/src/assets/icons/svg/row.svg +0 -1
  139. package/common/src/assets/icons/svg/search.svg +0 -1
  140. package/common/src/assets/icons/svg/select.svg +0 -1
  141. package/common/src/assets/icons/svg/sentinel.svg +0 -1
  142. package/common/src/assets/icons/svg/server.svg +0 -1
  143. package/common/src/assets/icons/svg/shop-call.svg +0 -14
  144. package/common/src/assets/icons/svg/shopping.svg +0 -1
  145. package/common/src/assets/icons/svg/size.svg +0 -1
  146. package/common/src/assets/icons/svg/skill.svg +0 -1
  147. package/common/src/assets/icons/svg/slider.svg +0 -1
  148. package/common/src/assets/icons/svg/star.svg +0 -1
  149. package/common/src/assets/icons/svg/stock-query.svg +0 -14
  150. package/common/src/assets/icons/svg/stock-report.svg +0 -14
  151. package/common/src/assets/icons/svg/stock-take.svg +0 -14
  152. package/common/src/assets/icons/svg/swagger.svg +0 -1
  153. package/common/src/assets/icons/svg/switch.svg +0 -1
  154. package/common/src/assets/icons/svg/system.svg +0 -2
  155. package/common/src/assets/icons/svg/tab.svg +0 -1
  156. package/common/src/assets/icons/svg/table.svg +0 -1
  157. package/common/src/assets/icons/svg/textarea.svg +0 -1
  158. package/common/src/assets/icons/svg/theme.svg +0 -1
  159. package/common/src/assets/icons/svg/time-range.svg +0 -1
  160. package/common/src/assets/icons/svg/time.svg +0 -1
  161. package/common/src/assets/icons/svg/tool.svg +0 -1
  162. package/common/src/assets/icons/svg/tree-table.svg +0 -1
  163. package/common/src/assets/icons/svg/tree.svg +0 -1
  164. package/common/src/assets/icons/svg/upload.svg +0 -1
  165. package/common/src/assets/icons/svg/user.svg +0 -1
  166. package/common/src/assets/icons/svg/validCode.svg +0 -1
  167. package/common/src/assets/icons/svg/wechat.svg +0 -1
  168. package/common/src/assets/icons/svg/xy-cancel.svg +0 -1
  169. package/common/src/assets/icons/svg/xy-choice.svg +0 -1
  170. package/common/src/assets/icons/svg/xy-choice2.svg +0 -31
  171. package/common/src/assets/icons/svg/zip.svg +0 -1
  172. package/common/src/assets/icons/svgo.yml +0 -22
  173. package/common/src/assets/images/dark.svg +0 -39
  174. package/common/src/assets/images/light.svg +0 -39
  175. package/common/src/assets/images/login-background.jpg +0 -0
  176. package/common/src/assets/images/logo.jpg +0 -0
  177. package/common/src/assets/images/profile.jpg +0 -0
  178. package/common/src/assets/images/xy-folder.png +0 -0
  179. package/common/src/assets/images/xy_email.png +0 -0
  180. package/common/src/assets/images/xy_message.png +0 -0
  181. package/common/src/assets/images/xy_notice.png +0 -0
  182. package/common/src/assets/logo/logo.png +0 -0
  183. package/common/src/assets/styles/btn.scss +0 -99
  184. package/common/src/assets/styles/element-ui.scss +0 -84
  185. package/common/src/assets/styles/element-variables.scss +0 -31
  186. package/common/src/assets/styles/index.scss +0 -207
  187. package/common/src/assets/styles/kezhi.scss +0 -100
  188. package/common/src/assets/styles/mixin.scss +0 -66
  189. package/common/src/assets/styles/ruoyi.scss +0 -350
  190. package/common/src/assets/styles/sidebar.scss +0 -185
  191. package/common/src/assets/styles/transition.scss +0 -48
  192. package/common/src/assets/styles/variables.scss +0 -52
  193. package/common/src/components/base/dialog/BaseDialog.vue +0 -140
  194. package/common/src/components/base/dialog/Dialog.js +0 -118
  195. package/common/src/components/base/dialog/dialogSetting.js +0 -65
  196. package/common/src/components/base/dialog/dialogType.js +0 -80
  197. package/common/src/components/base/dialog/index.js +0 -42
  198. package/common/src/components/base/dialog/printDialog.vue +0 -324
  199. package/common/src/components/base/dialog/tableDialog.vue +0 -187
  200. package/common/src/components/base/dialog/uploadDialog.vue +0 -149
  201. package/common/src/components/base/menuTab.js +0 -130
  202. package/common/src/components/basics/Breadcrumb/index.vue +0 -77
  203. package/common/src/components/basics/Crontab/day.vue +0 -179
  204. package/common/src/components/basics/Crontab/hour.vue +0 -122
  205. package/common/src/components/basics/Crontab/index.vue +0 -425
  206. package/common/src/components/basics/Crontab/min.vue +0 -120
  207. package/common/src/components/basics/Crontab/mouth.vue +0 -128
  208. package/common/src/components/basics/Crontab/result.vue +0 -566
  209. package/common/src/components/basics/Crontab/second.vue +0 -133
  210. package/common/src/components/basics/Crontab/week.vue +0 -167
  211. package/common/src/components/basics/Crontab/year.vue +0 -144
  212. package/common/src/components/basics/DictData/index.js +0 -24
  213. package/common/src/components/basics/DictTag/index.vue +0 -52
  214. package/common/src/components/basics/Editor/index.vue +0 -286
  215. package/common/src/components/basics/FileUpload/index.vue +0 -197
  216. package/common/src/components/basics/Hamburger/index.vue +0 -35
  217. package/common/src/components/basics/HeaderSearch/index.vue +0 -206
  218. package/common/src/components/basics/IconSelect/index.vue +0 -84
  219. package/common/src/components/basics/IconSelect/requireIcons.js +0 -10
  220. package/common/src/components/basics/Iframe/index.vue +0 -36
  221. package/common/src/components/basics/ImageUpload/index.vue +0 -204
  222. package/common/src/components/basics/Pagination/index.vue +0 -107
  223. package/common/src/components/basics/PanThumb/index.vue +0 -142
  224. package/common/src/components/basics/ParentView/index.vue +0 -3
  225. package/common/src/components/basics/RightPanel/index.vue +0 -149
  226. package/common/src/components/basics/RightToolbar/index.vue +0 -111
  227. package/common/src/components/basics/Screenfull/index.vue +0 -60
  228. package/common/src/components/basics/SizeSelect/index.vue +0 -60
  229. package/common/src/components/basics/SvgIcon/index.vue +0 -61
  230. package/common/src/components/basics/ThemePicker/index.vue +0 -183
  231. package/common/src/components/basics/TopNav/index.vue +0 -476
  232. package/common/src/components/custom/Editor/index.vue +0 -267
  233. package/common/src/components/custom/FileBox/index.vue +0 -293
  234. package/common/src/components/custom/FileBox/indexTs.vue +0 -280
  235. package/common/src/components/custom/ImageBox/index.vue +0 -208
  236. package/common/src/components/custom/Material/fileNameHelper.js +0 -38
  237. package/common/src/components/custom/Material/index.vue +0 -893
  238. package/common/src/components/custom/Material/indexTs.vue +0 -890
  239. package/common/src/components/custom/Notice/index.vue +0 -244
  240. package/common/src/plugins/auth.js +0 -60
  241. package/common/src/plugins/cache.js +0 -77
  242. package/common/src/plugins/download.js +0 -31
  243. package/common/src/plugins/index.js +0 -82
  244. package/common/src/plugins/modal.js +0 -75
  245. package/common/src/plugins/tab.js +0 -66
  246. package/common/src/utils/auth.js +0 -29
  247. package/common/src/utils/cache/bdCache.js +0 -202
  248. package/common/src/utils/cache/fdCache.js +0 -407
  249. package/common/src/utils/common.js +0 -141
  250. package/common/src/utils/dateHelper.js +0 -122
  251. package/common/src/utils/dialog.js +0 -35
  252. package/common/src/utils/dict/Dict.js +0 -82
  253. package/common/src/utils/dict/DictConverter.js +0 -17
  254. package/common/src/utils/dict/DictData.js +0 -13
  255. package/common/src/utils/dict/DictMeta.js +0 -38
  256. package/common/src/utils/dict/DictOptions.js +0 -51
  257. package/common/src/utils/dict/index.js +0 -33
  258. package/common/src/utils/element.js +0 -49
  259. package/common/src/utils/errorCode.js +0 -6
  260. package/common/src/utils/eventHub.js +0 -3
  261. package/common/src/utils/file.js +0 -38
  262. package/common/src/utils/index.js +0 -390
  263. package/common/src/utils/jsencrypt.js +0 -30
  264. package/common/src/utils/kezhi.js +0 -311
  265. package/common/src/utils/kezhiToolLibrary.js +0 -51
  266. package/common/src/utils/permission.js +0 -51
  267. package/common/src/utils/printService.js +0 -749
  268. package/common/src/utils/request.js +0 -209
  269. package/common/src/utils/ruoyi.js +0 -317
  270. package/common/src/utils/scroll-to.js +0 -58
  271. package/common/src/utils/supers.js +0 -25
  272. package/common/src/utils/utils.js +0 -614
  273. package/common/src/utils/validate.js +0 -105
  274. package/common/src/utils/websoketservice.js +0 -161
  275. package/common/src/utils/zipdownload.js +0 -42
  276. package/common/src/views/authorize.vue +0 -270
  277. package/common/src/views/error/401.vue +0 -88
  278. package/common/src/views/error/404.vue +0 -248
  279. package/common/src/views/login.vue +0 -350
  280. package/common/src/views/register.vue +0 -208
  281. package/common/src/views/sample/dialog/sampleEditDialog.vue +0 -279
  282. package/common/src/views/tenantLogin.vue +0 -331
  283. package/common/vue.config.js +0 -130
@@ -1,60 +0,0 @@
1
- <template>
2
- <div>
3
- <svg-icon
4
- :icon-class="isFullscreen ? 'kz_narrow' : 'kz_enlarge'"
5
- @click="click"
6
- />
7
- </div>
8
- </template>
9
-
10
- <script>
11
- import screenfull from "~../../screenfull";
12
-
13
- export default {
14
- name: "Screenfull",
15
- data() {
16
- return {
17
- isFullscreen: false,
18
- };
19
- },
20
- mounted() {
21
- this.init();
22
- },
23
- beforeDestroy() {
24
- this.destroy();
25
- },
26
- methods: {
27
- click() {
28
- if (!screenfull.isEnabled) {
29
- this.$message({ message: "你的浏览器不支持全屏", type: "warning" });
30
- return false;
31
- }
32
- screenfull.toggle();
33
- },
34
- change() {
35
- this.isFullscreen = screenfull.isFullscreen;
36
- },
37
- init() {
38
- if (screenfull.isEnabled) {
39
- screenfull.on("change", this.change);
40
- }
41
- },
42
- destroy() {
43
- if (screenfull.isEnabled) {
44
- screenfull.off("change", this.change);
45
- }
46
- },
47
- },
48
- };
49
- </script>
50
-
51
- <style scoped>
52
- .screenfull-svg {
53
- display: inline-block;
54
- cursor: pointer;
55
- fill: #5a5e66;
56
- width: 20px;
57
- height: 20px;
58
- vertical-align: 10px;
59
- }
60
- </style>
@@ -1,60 +0,0 @@
1
- <template>
2
- <el-dropdown trigger="click" @command="handleSetSize">
3
- <div>
4
- <svg-icon class-name="size-icon" icon-class="kz_layout" />
5
- </div>
6
- <el-dropdown-menu slot="dropdown">
7
- <el-dropdown-item
8
- v-for="item of sizeOptions"
9
- :key="item.value"
10
- :disabled="size === item.value"
11
- :command="item.value"
12
- >
13
- {{ item.label }}
14
- </el-dropdown-item>
15
- </el-dropdown-menu>
16
- </el-dropdown>
17
- </template>
18
-
19
- <script>
20
- export default {
21
- data() {
22
- return {
23
- sizeOptions: [
24
- { label: "Default", value: "default" },
25
- { label: "Medium", value: "medium" },
26
- { label: "Small", value: "small" },
27
- { label: "Mini", value: "mini" },
28
- ],
29
- };
30
- },
31
- computed: {
32
- size() {
33
- return this.$store.getters.size;
34
- },
35
- },
36
- methods: {
37
- handleSetSize(size) {
38
- this.$ELEMENT.size = size;
39
- this.$store.dispatch("app/setSize", size);
40
- this.refreshView();
41
- this.$message({
42
- message: "Switch Size Success",
43
- type: "success",
44
- });
45
- },
46
- refreshView() {
47
- // In order to make the cached page re-rendered
48
- this.$store.dispatch("tagsView/delAllCachedViews", this.$route);
49
-
50
- const { fullPath } = this.$route;
51
-
52
- this.$nextTick(() => {
53
- this.$router.replace({
54
- path: "/redirect" + fullPath,
55
- });
56
- });
57
- },
58
- },
59
- };
60
- </script>
@@ -1,61 +0,0 @@
1
- <template>
2
- <div v-if="isExternal" :style="styleExternalIcon" class="svg-external-icon svg-icon" v-on="$listeners" />
3
- <svg v-else :class="svgClass" aria-hidden="true" v-on="$listeners">
4
- <use :xlink:href="iconName" />
5
- </svg>
6
- </template>
7
-
8
- <script>
9
- import { isExternal } from '../../../utils/validate'
10
-
11
- export default {
12
- name: 'SvgIcon',
13
- props: {
14
- iconClass: {
15
- type: String,
16
- required: true
17
- },
18
- className: {
19
- type: String,
20
- default: ''
21
- }
22
- },
23
- computed: {
24
- isExternal() {
25
- return isExternal(this.iconClass)
26
- },
27
- iconName() {
28
- return `#icon-${this.iconClass}`
29
- },
30
- svgClass() {
31
- if (this.className) {
32
- return 'svg-icon ' + this.className
33
- } else {
34
- return 'svg-icon'
35
- }
36
- },
37
- styleExternalIcon() {
38
- return {
39
- mask: `url(${this.iconClass}) no-repeat 50% 50%`,
40
- '-webkit-mask': `url(${this.iconClass}) no-repeat 50% 50%`
41
- }
42
- }
43
- }
44
- }
45
- </script>
46
-
47
- <style scoped>
48
- .svg-icon {
49
- width: 1em;
50
- height: 1em;
51
- vertical-align: -0.15em;
52
- fill: currentColor;
53
- overflow: hidden;
54
- }
55
-
56
- .svg-external-icon {
57
- background-color: currentColor;
58
- mask-size: cover!important;
59
- display: inline-block;
60
- }
61
- </style>
@@ -1,183 +0,0 @@
1
- <template>
2
- <el-color-picker
3
- v-model="theme"
4
- :predefine="['#409EFF', '#1890ff', '#304156','#212121','#11a983', '#13c2c2', '#6959CD', '#f5222d', ]"
5
- class="theme-picker"
6
- popper-class="theme-picker-dropdown"
7
- />
8
- </template>
9
-
10
- <script>
11
- const version = require('~../../element-ui/package.json').version // element-ui version from node_modules
12
- const ORIGINAL_THEME = '#409EFF' // default color
13
-
14
- export default {
15
- data() {
16
- return {
17
- chalk: '', // content of theme-chalk css
18
- theme: ''
19
- }
20
- },
21
- computed: {
22
- defaultTheme() {
23
- return this.$store.state.settings.theme
24
- }
25
- },
26
- watch: {
27
- defaultTheme: {
28
- handler: function(val, oldVal) {
29
- this.theme = val
30
- },
31
- immediate: true
32
- },
33
- async theme(val) {
34
- await this.setTheme(val)
35
- }
36
- },
37
- created() {
38
- if(this.defaultTheme !== ORIGINAL_THEME) {
39
- this.setTheme(this.defaultTheme)
40
- }
41
- },
42
-
43
- methods: {
44
- async setTheme(val) {
45
- const oldVal = this.chalk ? this.theme : ORIGINAL_THEME
46
- if (typeof val !== 'string') return
47
- const themeCluster = this.getThemeCluster(val.replace('#', ''))
48
- const originalCluster = this.getThemeCluster(oldVal.replace('#', ''))
49
-
50
- const $message = this.$message({
51
- message: ' 正在切换主题,请稍后...',
52
- customClass: 'theme-message',
53
- type: 'success',
54
- duration: 0,
55
- iconClass: 'el-icon-loading'
56
- })
57
-
58
- const getHandler = (variable, id) => {
59
- return () => {
60
- const originalCluster = this.getThemeCluster(ORIGINAL_THEME.replace('#', ''))
61
- const newStyle = this.updateStyle(this[variable], originalCluster, themeCluster)
62
-
63
- let styleTag = document.getElementById(id)
64
- if (!styleTag) {
65
- styleTag = document.createElement('style')
66
- styleTag.setAttribute('id', id)
67
- document.head.appendChild(styleTag)
68
- }
69
- styleTag.innerText = newStyle
70
- }
71
- }
72
-
73
- if (!this.chalk) {
74
- const url = `https://unpkg.com/element-ui@${version}/lib/theme-chalk/index.css`
75
- await this.getCSSString(url, 'chalk')
76
- }
77
-
78
- const chalkHandler = getHandler('chalk', 'chalk-style')
79
-
80
- chalkHandler()
81
-
82
- const styles = [].slice.call(document.querySelectorAll('style'))
83
- .filter(style => {
84
- const text = style.innerText
85
- return new RegExp(oldVal, 'i').test(text) && !/Chalk Variables/.test(text)
86
- })
87
- styles.forEach(style => {
88
- const { innerText } = style
89
- if (typeof innerText !== 'string') return
90
- style.innerText = this.updateStyle(innerText, originalCluster, themeCluster)
91
- })
92
-
93
- this.$emit('change', val)
94
-
95
- $message.close()
96
- },
97
-
98
- updateStyle(style, oldCluster, newCluster) {
99
- let newStyle = style
100
- oldCluster.forEach((color, index) => {
101
- newStyle = newStyle.replace(new RegExp(color, 'ig'), newCluster[index])
102
- })
103
- return newStyle
104
- },
105
-
106
- getCSSString(url, variable) {
107
- return new Promise(resolve => {
108
- const xhr = new XMLHttpRequest()
109
- xhr.onreadystatechange = () => {
110
- if (xhr.readyState === 4 && xhr.status === 200) {
111
- this[variable] = xhr.responseText.replace(/@font-face{[^}]+}/, '')
112
- resolve()
113
- }
114
- }
115
- xhr.open('GET', url)
116
- xhr.send()
117
- })
118
- },
119
-
120
- getThemeCluster(theme) {
121
- const tintColor = (color, tint) => {
122
- let red = parseInt(color.slice(0, 2), 16)
123
- let green = parseInt(color.slice(2, 4), 16)
124
- let blue = parseInt(color.slice(4, 6), 16)
125
-
126
- if (tint === 0) { // when primary color is in its rgb space
127
- return [red, green, blue].join(',')
128
- } else {
129
- red += Math.round(tint * (255 - red))
130
- green += Math.round(tint * (255 - green))
131
- blue += Math.round(tint * (255 - blue))
132
-
133
- red = red.toString(16)
134
- green = green.toString(16)
135
- blue = blue.toString(16)
136
-
137
- return `#${red}${green}${blue}`
138
- }
139
- }
140
-
141
- const shadeColor = (color, shade) => {
142
- let red = parseInt(color.slice(0, 2), 16)
143
- let green = parseInt(color.slice(2, 4), 16)
144
- let blue = parseInt(color.slice(4, 6), 16)
145
-
146
- red = Math.round((1 - shade) * red)
147
- green = Math.round((1 - shade) * green)
148
- blue = Math.round((1 - shade) * blue)
149
-
150
- red = red.toString(16)
151
- green = green.toString(16)
152
- blue = blue.toString(16)
153
-
154
- return `#${red}${green}${blue}`
155
- }
156
-
157
- const clusters = [theme]
158
- for (let i = 0; i <= 9; i++) {
159
- clusters.push(tintColor(theme, Number((i / 10).toFixed(2))))
160
- }
161
- clusters.push(shadeColor(theme, 0.1))
162
- return clusters
163
- }
164
- }
165
- }
166
- </script>
167
-
168
- <style>
169
- .theme-message,
170
- .theme-picker-dropdown {
171
- z-index: 99999 !important;
172
- }
173
-
174
- .theme-picker .el-color-picker__trigger {
175
- height: 26px !important;
176
- width: 26px !important;
177
- padding: 2px;
178
- }
179
-
180
- .theme-picker-dropdown .el-color-dropdown__link-btn {
181
- display: none;
182
- }
183
- </style>