@gx-design-vue/create-gx-cli 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (256) hide show
  1. package/package.json +1 -1
  2. package/src/main.js +1 -0
  3. package/template-design-pro/.editorconfig +19 -0
  4. package/template-design-pro/.env +2 -0
  5. package/template-design-pro/.env.development +18 -0
  6. package/template-design-pro/.env.pro +32 -0
  7. package/template-design-pro/.env.production +32 -0
  8. package/template-design-pro/.env.test +20 -0
  9. package/template-design-pro/.eslintignore +16 -0
  10. package/template-design-pro/.eslintrc.js +64 -0
  11. package/template-design-pro/.gitpod.yml +6 -0
  12. package/template-design-pro/.husky/pre-commit +4 -0
  13. package/template-design-pro/.prettierignore +9 -0
  14. package/template-design-pro/.stylelintignore +3 -0
  15. package/template-design-pro/.yarnclean +48 -0
  16. package/template-design-pro/LICENSE +21 -0
  17. package/template-design-pro/README.md +111 -0
  18. package/template-design-pro/build/constant.ts +6 -0
  19. package/template-design-pro/build/generate/generateModifyVars.ts +18 -0
  20. package/template-design-pro/build/getConfigFileName.ts +13 -0
  21. package/template-design-pro/build/script/buildConf.ts +44 -0
  22. package/template-design-pro/build/script/postBuild.ts +25 -0
  23. package/template-design-pro/build/script/reSetRootHtml.ts +20 -0
  24. package/template-design-pro/build/utils.ts +85 -0
  25. package/template-design-pro/build/vite/cdn.ts +7 -0
  26. package/template-design-pro/build/vite/optimizer.ts +22 -0
  27. package/template-design-pro/build/vite/plugin/autoImport.ts +18 -0
  28. package/template-design-pro/build/vite/plugin/compress.ts +35 -0
  29. package/template-design-pro/build/vite/plugin/hmr.ts +25 -0
  30. package/template-design-pro/build/vite/plugin/html.ts +47 -0
  31. package/template-design-pro/build/vite/plugin/index.ts +89 -0
  32. package/template-design-pro/build/vite/plugin/mock.ts +20 -0
  33. package/template-design-pro/build/vite/plugin/pwa.ts +37 -0
  34. package/template-design-pro/build/vite/plugin/styleImport.ts +129 -0
  35. package/template-design-pro/build/vite/plugin/visualizer.ts +17 -0
  36. package/template-design-pro/build/vite/plugin/vite-plugin-antd-theme/index.ts +24 -0
  37. package/template-design-pro/build/vite/plugin/vite-plugin-mock/createMockServer.ts +303 -0
  38. package/template-design-pro/build/vite/plugin/vite-plugin-mock/createProdMockServer.ts +93 -0
  39. package/template-design-pro/build/vite/plugin/vite-plugin-mock/index.ts +68 -0
  40. package/template-design-pro/build/vite/plugin/vite-plugin-mock/types.ts +30 -0
  41. package/template-design-pro/build/vite/plugin/vite-plugin-mock/utils.ts +26 -0
  42. package/template-design-pro/commitlint.config.js +32 -0
  43. package/template-design-pro/config/config.ts +14 -0
  44. package/template-design-pro/config/default/animate.ts +30 -0
  45. package/template-design-pro/config/default/defaultSettings.ts +75 -0
  46. package/template-design-pro/config/default/network.ts +16 -0
  47. package/template-design-pro/config/default/proxy.ts +26 -0
  48. package/template-design-pro/config/default/theme.ts +43 -0
  49. package/template-design-pro/config/default/themeColor.ts +62 -0
  50. package/template-design-pro/index.html +45 -0
  51. package/template-design-pro/jest.config.mjs +36 -0
  52. package/template-design-pro/mock/_createProductionServer.ts +19 -0
  53. package/template-design-pro/mock/_util.ts +55 -0
  54. package/template-design-pro/mock/controller/menu.ts +85 -0
  55. package/template-design-pro/mock/controller/notices.ts +114 -0
  56. package/template-design-pro/mock/system/dict.ts +60 -0
  57. package/template-design-pro/mock/system/user.ts +218 -0
  58. package/template-design-pro/package.json +151 -0
  59. package/template-design-pro/pnpm-lock.yaml +9913 -0
  60. package/template-design-pro/postcss.config.js +5 -0
  61. package/template-design-pro/prettier.config.js +18 -0
  62. package/template-design-pro/public/resource/css/index.css +171 -0
  63. package/template-design-pro/public/resource/img/favicon.ico +0 -0
  64. package/template-design-pro/public/resource/img/logo.png +0 -0
  65. package/template-design-pro/public/resource/img/pro_icon.svg +5 -0
  66. package/template-design-pro/public/resource/img/pwa-192x192.png +0 -0
  67. package/template-design-pro/public/resource/img/pwa-512x512.png +0 -0
  68. package/template-design-pro/src/App.vue +47 -0
  69. package/template-design-pro/src/assets/error_images/403.png +0 -0
  70. package/template-design-pro/src/assets/error_images/404.png +0 -0
  71. package/template-design-pro/src/assets/error_images/cloud.png +0 -0
  72. package/template-design-pro/src/assets/login_images/login_background.svg +69 -0
  73. package/template-design-pro/src/assets/logo.png +0 -0
  74. package/template-design-pro/src/assets/menu_font/iconfont.css +94 -0
  75. package/template-design-pro/src/assets/menu_font/iconfont.eot +0 -0
  76. package/template-design-pro/src/assets/menu_font/iconfont.js +1 -0
  77. package/template-design-pro/src/assets/menu_font/iconfont.json +142 -0
  78. package/template-design-pro/src/assets/menu_font/iconfont.svg +57 -0
  79. package/template-design-pro/src/assets/menu_font/iconfont.ttf +0 -0
  80. package/template-design-pro/src/assets/menu_font/iconfont.woff +0 -0
  81. package/template-design-pro/src/assets/menu_font/iconfont.woff2 +0 -0
  82. package/template-design-pro/src/assets/menu_font/index.less +94 -0
  83. package/template-design-pro/src/common/global.ts +1 -0
  84. package/template-design-pro/src/components/GDesign/ProLayout/BasicLayout.less +80 -0
  85. package/template-design-pro/src/components/GDesign/ProLayout/BasicLayout.tsx +342 -0
  86. package/template-design-pro/src/components/GDesign/ProLayout/PageLoading.tsx +20 -0
  87. package/template-design-pro/src/components/GDesign/ProLayout/RenderTypings.ts +31 -0
  88. package/template-design-pro/src/components/GDesign/ProLayout/RouteContext.tsx +82 -0
  89. package/template-design-pro/src/components/GDesign/ProLayout/WrapContent.tsx +69 -0
  90. package/template-design-pro/src/components/GDesign/ProLayout/components/GlobalFooter/index.tsx +88 -0
  91. package/template-design-pro/src/components/GDesign/ProLayout/components/GlobalHeader/DefaultHeader.tsx +189 -0
  92. package/template-design-pro/src/components/GDesign/ProLayout/components/GlobalHeader/Header.less +8 -0
  93. package/template-design-pro/src/components/GDesign/ProLayout/components/GlobalHeader/index.tsx +105 -0
  94. package/template-design-pro/src/components/GDesign/ProLayout/components/GlobalHeader/props.ts +69 -0
  95. package/template-design-pro/src/components/GDesign/ProLayout/components/GlobalHeader/style.less +144 -0
  96. package/template-design-pro/src/components/GDesign/ProLayout/components/LogoContent/index.tsx +81 -0
  97. package/template-design-pro/src/components/GDesign/ProLayout/components/LogoContent/props.ts +29 -0
  98. package/template-design-pro/src/components/GDesign/ProLayout/components/MultiTab/index.tsx +384 -0
  99. package/template-design-pro/src/components/GDesign/ProLayout/components/MultiTab/props.ts +15 -0
  100. package/template-design-pro/src/components/GDesign/ProLayout/components/MultiTab/style.less +79 -0
  101. package/template-design-pro/src/components/GDesign/ProLayout/components/NoticeIcon/NoticeIcon.tsx +148 -0
  102. package/template-design-pro/src/components/GDesign/ProLayout/components/NoticeIcon/NoticeList.module.less +115 -0
  103. package/template-design-pro/src/components/GDesign/ProLayout/components/NoticeIcon/NoticeList.tsx +154 -0
  104. package/template-design-pro/src/components/GDesign/ProLayout/components/NoticeIcon/index.less +39 -0
  105. package/template-design-pro/src/components/GDesign/ProLayout/components/NoticeIcon/index.tsx +133 -0
  106. package/template-design-pro/src/components/GDesign/ProLayout/components/PageContainer/index.tsx +190 -0
  107. package/template-design-pro/src/components/GDesign/ProLayout/components/PageContainer/props.ts +48 -0
  108. package/template-design-pro/src/components/GDesign/ProLayout/components/PageContainer/style.less +128 -0
  109. package/template-design-pro/src/components/GDesign/ProLayout/components/PageContainer/typings.ts +0 -0
  110. package/template-design-pro/src/components/GDesign/ProLayout/components/RightContent/AvatarDropdown.tsx +63 -0
  111. package/template-design-pro/src/components/GDesign/ProLayout/components/RightContent/HeaderSearch.tsx +122 -0
  112. package/template-design-pro/src/components/GDesign/ProLayout/components/RightContent/headerSearch.less +30 -0
  113. package/template-design-pro/src/components/GDesign/ProLayout/components/RightContent/index.tsx +95 -0
  114. package/template-design-pro/src/components/GDesign/ProLayout/components/RightContent/style.less +90 -0
  115. package/template-design-pro/src/components/GDesign/ProLayout/components/SettingDrawer/BlockCheckbox.tsx +70 -0
  116. package/template-design-pro/src/components/GDesign/ProLayout/components/SettingDrawer/LayoutSetting.tsx +107 -0
  117. package/template-design-pro/src/components/GDesign/ProLayout/components/SettingDrawer/ThemeColor.tsx +68 -0
  118. package/template-design-pro/src/components/GDesign/ProLayout/components/SettingDrawer/index.tsx +346 -0
  119. package/template-design-pro/src/components/GDesign/ProLayout/components/SiderMenu/BaseMenu.tsx +224 -0
  120. package/template-design-pro/src/components/GDesign/ProLayout/components/SiderMenu/SiderMenu.tsx +224 -0
  121. package/template-design-pro/src/components/GDesign/ProLayout/components/SiderMenu/index.tsx +43 -0
  122. package/template-design-pro/src/components/GDesign/ProLayout/components/SiderMenu/props.ts +112 -0
  123. package/template-design-pro/src/components/GDesign/ProLayout/components/SiderMenu/style.less +262 -0
  124. package/template-design-pro/src/components/GDesign/ProLayout/components/SiderMenu/typings.ts +44 -0
  125. package/template-design-pro/src/components/GDesign/ProLayout/default.less +2 -0
  126. package/template-design-pro/src/components/GDesign/ProLayout/defaultSettings.ts +121 -0
  127. package/template-design-pro/src/components/GDesign/ProLayout/hooks/context/index.ts +45 -0
  128. package/template-design-pro/src/components/GDesign/ProLayout/index.ts +43 -0
  129. package/template-design-pro/src/components/GDesign/ProLayout/props.ts +57 -0
  130. package/template-design-pro/src/components/GDesign/ProLayout/style.less +272 -0
  131. package/template-design-pro/src/components/GDesign/ProLayout/typings.ts +1 -0
  132. package/template-design-pro/src/components/GDesign/ProLayout/utils/getMenuData.ts +31 -0
  133. package/template-design-pro/src/components/GDesign/ProLayout/utils/index.ts +94 -0
  134. package/template-design-pro/src/components/GDesign/ProLayout/utils/isImg/index.ts +6 -0
  135. package/template-design-pro/src/components/GDesign/ProLayout/utils/isUrl/index.ts +5 -0
  136. package/template-design-pro/src/components/GDesign/Result/index.tsx +142 -0
  137. package/template-design-pro/src/components/GDesign/Result/style.less +140 -0
  138. package/template-design-pro/src/components/GDesign/Scrollbars/components/Bar/index.tsx +56 -0
  139. package/template-design-pro/src/components/GDesign/Scrollbars/components/Bar/props.ts +23 -0
  140. package/template-design-pro/src/components/GDesign/Scrollbars/components/Thumb/index.tsx +164 -0
  141. package/template-design-pro/src/components/GDesign/Scrollbars/components/Thumb/props.ts +11 -0
  142. package/template-design-pro/src/components/GDesign/Scrollbars/context.ts +10 -0
  143. package/template-design-pro/src/components/GDesign/Scrollbars/index.tsx +200 -0
  144. package/template-design-pro/src/components/GDesign/Scrollbars/props.ts +65 -0
  145. package/template-design-pro/src/components/GDesign/Scrollbars/style.less +85 -0
  146. package/template-design-pro/src/components/GDesign/Scrollbars/util.ts +40 -0
  147. package/template-design-pro/src/components/GDesign/utils/index.ts +7 -0
  148. package/template-design-pro/src/components/PageLoading/index.tsx +44 -0
  149. package/template-design-pro/src/components/PageTransition/index.vue +98 -0
  150. package/template-design-pro/src/components/index.ts +6 -0
  151. package/template-design-pro/src/core/ant-design/index.ts +14 -0
  152. package/template-design-pro/src/core/gx-admin-design/index.ts +7 -0
  153. package/template-design-pro/src/core/gx-admin-directives/index.ts +8 -0
  154. package/template-design-pro/src/core/gx-admin-directives/permission.ts +28 -0
  155. package/template-design-pro/src/core/gx-design/index.ts +7 -0
  156. package/template-design-pro/src/core/gx-pro-design/index.ts +10 -0
  157. package/template-design-pro/src/core/index.ts +27 -0
  158. package/template-design-pro/src/design/ant-design/index.less +4 -0
  159. package/template-design-pro/src/design/ant-design/layout.less +29 -0
  160. package/template-design-pro/src/design/ant-design/menu.less +55 -0
  161. package/template-design-pro/src/design/ant-design/table.less +67 -0
  162. package/template-design-pro/src/design/ant-design/tooltip.less +13 -0
  163. package/template-design-pro/src/design/color.less +1 -0
  164. package/template-design-pro/src/design/config.less +5 -0
  165. package/template-design-pro/src/design/index.less +41 -0
  166. package/template-design-pro/src/design/mixin.less +66 -0
  167. package/template-design-pro/src/design/normalize.less +390 -0
  168. package/template-design-pro/src/global.less +15 -0
  169. package/template-design-pro/src/hooks/core/index.ts +3 -0
  170. package/template-design-pro/src/hooks/core/useRequest/index.ts +70 -0
  171. package/template-design-pro/src/hooks/core/useRequest/typings.ts +0 -0
  172. package/template-design-pro/src/hooks/event/index.ts +3 -0
  173. package/template-design-pro/src/hooks/event/useClipboard.ts +14 -0
  174. package/template-design-pro/src/hooks/system/index.ts +5 -0
  175. package/template-design-pro/src/hooks/system/useDict.ts +62 -0
  176. package/template-design-pro/src/hooks/system/usePermissions.ts +39 -0
  177. package/template-design-pro/src/hooks/typings.ts +17 -0
  178. package/template-design-pro/src/layout/BasicLayout.vue +104 -0
  179. package/template-design-pro/src/layout/BlankLayout.vue +5 -0
  180. package/template-design-pro/src/layout/ContentView.vue +76 -0
  181. package/template-design-pro/src/layout/IframeView.vue +1 -0
  182. package/template-design-pro/src/layout/UserLayout.vue +7 -0
  183. package/template-design-pro/src/main.ts +34 -0
  184. package/template-design-pro/src/plugins/index.ts +3 -0
  185. package/template-design-pro/src/router/guard/index.ts +84 -0
  186. package/template-design-pro/src/router/guard/permissions.ts +73 -0
  187. package/template-design-pro/src/router/guard/stateGuard.ts +11 -0
  188. package/template-design-pro/src/router/helper/routeHelper.ts +244 -0
  189. package/template-design-pro/src/router/helper/utils.ts +19 -0
  190. package/template-design-pro/src/router/index.ts +30 -0
  191. package/template-design-pro/src/router/routes/index.ts +85 -0
  192. package/template-design-pro/src/router/routes/modules/workplace.ts +19 -0
  193. package/template-design-pro/src/services/common/index.ts +11 -0
  194. package/template-design-pro/src/services/controller/router.ts +10 -0
  195. package/template-design-pro/src/services/controller/user.ts +35 -0
  196. package/template-design-pro/src/services/system/dictData.ts +10 -0
  197. package/template-design-pro/src/services/system/notices.ts +9 -0
  198. package/template-design-pro/src/store/index.ts +32 -0
  199. package/template-design-pro/src/store/modules/dict.ts +27 -0
  200. package/template-design-pro/src/store/modules/permission.ts +19 -0
  201. package/template-design-pro/src/store/modules/routes.ts +110 -0
  202. package/template-design-pro/src/store/modules/settings.ts +102 -0
  203. package/template-design-pro/src/store/modules/tabsRouter.ts +73 -0
  204. package/template-design-pro/src/store/modules/user.ts +153 -0
  205. package/template-design-pro/src/utils/accessToken.ts +93 -0
  206. package/template-design-pro/src/utils/crypto.ts +39 -0
  207. package/template-design-pro/src/utils/env.ts +52 -0
  208. package/template-design-pro/src/utils/fetchFile.ts +79 -0
  209. package/template-design-pro/src/utils/index.ts +127 -0
  210. package/template-design-pro/src/utils/pageTitle.ts +17 -0
  211. package/template-design-pro/src/utils/request/XHR.ts +131 -0
  212. package/template-design-pro/src/utils/request/axiosCancel.ts +60 -0
  213. package/template-design-pro/src/utils/request/checkStatus.ts +26 -0
  214. package/template-design-pro/src/utils/request/index.ts +145 -0
  215. package/template-design-pro/src/utils/request/typings.ts +114 -0
  216. package/template-design-pro/src/utils/storage.ts +194 -0
  217. package/template-design-pro/src/utils/uploadFile.ts +26 -0
  218. package/template-design-pro/src/utils/util.ts +278 -0
  219. package/template-design-pro/src/utils/validate.ts +221 -0
  220. package/template-design-pro/src/views/Iframe/index.vue +76 -0
  221. package/template-design-pro/src/views/MenuOne/index.vue +15 -0
  222. package/template-design-pro/src/views/MenuTwo/index.vue +13 -0
  223. package/template-design-pro/src/views/exception/403/index.vue +9 -0
  224. package/template-design-pro/src/views/exception/404/index.vue +9 -0
  225. package/template-design-pro/src/views/user/login/index.vue +110 -0
  226. package/template-design-pro/src/views/user/login/style.less +38 -0
  227. package/template-design-pro/stylelint.config.js +106 -0
  228. package/template-design-pro/tests/__mocks__/fileMock.ts +1 -0
  229. package/template-design-pro/tests/__mocks__/styleMock.ts +1 -0
  230. package/template-design-pro/tests/__mocks__/workerMock.ts +5 -0
  231. package/template-design-pro/tests/server/README.md +15 -0
  232. package/template-design-pro/tests/server/controller/FileController.ts +18 -0
  233. package/template-design-pro/tests/server/controller/UserController.ts +15 -0
  234. package/template-design-pro/tests/server/ecosystem.config.js +18 -0
  235. package/template-design-pro/tests/server/index.ts +63 -0
  236. package/template-design-pro/tests/server/nodemon.json +8 -0
  237. package/template-design-pro/tests/server/package.json +36 -0
  238. package/template-design-pro/tests/server/routes.ts +23 -0
  239. package/template-design-pro/tests/server/service/FileService.ts +54 -0
  240. package/template-design-pro/tests/server/service/UserService.ts +25 -0
  241. package/template-design-pro/tests/server/tsconfig.json +15 -0
  242. package/template-design-pro/tests/server/utils.ts +9 -0
  243. package/template-design-pro/tests/server/yarn.lock +2955 -0
  244. package/template-design-pro/tests/test.spec.ts +16 -0
  245. package/template-design-pro/tsconfig.json +47 -0
  246. package/template-design-pro/types/auto-imports.d.ts +61 -0
  247. package/template-design-pro/types/config.d.ts +100 -0
  248. package/template-design-pro/types/global.d.ts +103 -0
  249. package/template-design-pro/types/gx-components.d.ts +24 -0
  250. package/template-design-pro/types/index.d.ts +13 -0
  251. package/template-design-pro/types/mock.d.ts +23 -0
  252. package/template-design-pro/types/module.d.ts +16 -0
  253. package/template-design-pro/types/response.d.ts +15 -0
  254. package/template-design-pro/types/route.d.ts +89 -0
  255. package/template-design-pro/vite.config.ts +136 -0
  256. package/template-design-pro/yarn.lock +9697 -0
@@ -0,0 +1,44 @@
1
+ import { defineComponent, reactive } from 'vue'
2
+
3
+ export default defineComponent({
4
+ props: {
5
+ loading: {
6
+ type: Boolean,
7
+ default: false
8
+ },
9
+ tip: {
10
+ type: String,
11
+ default: ''
12
+ },
13
+ size: {
14
+ type: String,
15
+ default: 'large'
16
+ }
17
+ },
18
+ setup(props) {
19
+ const style: any = reactive({
20
+ textAlign: 'center',
21
+ position: 'fixed',
22
+ top: 0,
23
+ bottom: 0,
24
+ left: 0,
25
+ right: 0,
26
+ zIndex: 0
27
+ })
28
+ const spinStyle = reactive({
29
+ position: 'absolute',
30
+ left: '50%',
31
+ top: '40%',
32
+ transform: 'translate(-50%, -50%)'
33
+ })
34
+ return () => (
35
+ <>
36
+ {props.loading ? (
37
+ <div style={style}>
38
+ <a-spin size={props.size} style={spinStyle} tip={props.tip} />
39
+ </div>
40
+ ) : null}
41
+ </>
42
+ )
43
+ }
44
+ })
@@ -0,0 +1,98 @@
1
+ <template>
2
+ <transition
3
+ v-if="!disabled"
4
+ :enter-active-class="`animated ${enterAnimate} page-toggle-enter-active`"
5
+ :leave-active-class="`animated ${leaveAnimate} page-toggle-leave-active`"
6
+ >
7
+ <slot></slot>
8
+ </transition>
9
+ <div v-else>
10
+ <slot></slot>
11
+ </div>
12
+ </template>
13
+
14
+ <script lang="ts">
15
+ import { computed, defineComponent } from 'vue'
16
+ import animates from '/config/default/animate'
17
+
18
+ export default defineComponent({
19
+ props: {
20
+ disabled: {
21
+ type: Boolean,
22
+ default: false
23
+ },
24
+ animate: {
25
+ type: String,
26
+ default: 'bounce'
27
+ },
28
+ direction: {
29
+ type: String
30
+ },
31
+ reverse: {
32
+ type: Boolean,
33
+ default: true
34
+ }
35
+ },
36
+ setup(props) {
37
+ const enterAnimate = computed(() => {
38
+ return activeClass(false)
39
+ })
40
+ const leaveAnimate = computed(() => {
41
+ return activeClass(true)
42
+ })
43
+ const activeClass = (isLeave) => {
44
+ let animate = animates.preset.find((item) => props.animate == item.name)
45
+ if (animate == undefined) {
46
+ return ''
47
+ }
48
+ let direction = ''
49
+ if (props.direction == undefined) {
50
+ direction = animate.directions[0]
51
+ } else {
52
+ direction = animate.directions.find((item) => item == props.direction)
53
+ }
54
+ direction = direction == undefined || direction === 'default' ? '' : direction
55
+ if (direction != '') {
56
+ direction =
57
+ isLeave && props.reverse ? reversePosition(direction, animate.directions) : direction
58
+ direction = direction[0].toUpperCase() + direction.substring(1)
59
+ }
60
+ let t = isLeave ? 'Out' : 'In'
61
+ return animate.name + t + direction
62
+ }
63
+ const reversePosition = (direction, directions) => {
64
+ if (direction.length == 0 || direction == 'x' || direction == 'y') {
65
+ return direction
66
+ }
67
+ let index = directions.indexOf(direction)
68
+ index = index % 2 == 1 ? index - 1 : index + 1
69
+ return directions[index]
70
+ }
71
+ return {
72
+ enterAnimate,
73
+ leaveAnimate
74
+ }
75
+ }
76
+ })
77
+ </script>
78
+
79
+ <style lang="less">
80
+ .page-toggle-enter-active {
81
+ top: 0;
82
+ right: 0;
83
+ bottom: 0;
84
+ left: 0;
85
+ background: transparent;
86
+ animation-duration: .3s !important;
87
+ }
88
+
89
+ .page-toggle-leave-active {
90
+ display: none;
91
+ top: 0;
92
+ right: 0;
93
+ bottom: 0;
94
+ left: 0;
95
+ background: transparent;
96
+ animation-duration: .3s !important;
97
+ }
98
+ </style>
@@ -0,0 +1,6 @@
1
+ // gx-admin-组件
2
+ import PageLoading from './PageLoading'
3
+
4
+ export {
5
+ PageLoading,
6
+ }
@@ -0,0 +1,14 @@
1
+ import {
2
+ Button,
3
+ message
4
+ } from 'ant-design-vue'
5
+
6
+ const antDesign = (app) => {
7
+ app.use(Button)
8
+ message.config({
9
+ duration: 2,
10
+ maxCount: 1
11
+ })
12
+ }
13
+
14
+ export default antDesign
@@ -0,0 +1,7 @@
1
+ import { PageLoading } from '@/components'
2
+
3
+ const gxAdminDesign = (app) => {
4
+ // pro-loading
5
+ app.component('g-page-loading', PageLoading)
6
+ }
7
+ export default gxAdminDesign
@@ -0,0 +1,8 @@
1
+ import type { App } from 'vue'
2
+ import { setupPermissionDirective } from './permission'
3
+
4
+ const directive = (app: App) => {
5
+ setupPermissionDirective(app)
6
+ }
7
+
8
+ export default directive
@@ -0,0 +1,28 @@
1
+ import type { App, Directive, DirectiveBinding } from 'vue'
2
+
3
+ import { usePermissions } from '@gx-admin/hooks/system'
4
+
5
+ function isAuth(el: Element, binding: any) {
6
+ const { permission, hasPermission } = usePermissions()
7
+
8
+ const value = binding.value
9
+ if (value) {
10
+ hasPermission(value)
11
+ if (!permission.value) el.parentNode?.removeChild(el)
12
+ }
13
+ return
14
+ }
15
+
16
+ const mounted = (el: Element, binding: DirectiveBinding) => {
17
+ isAuth(el, binding)
18
+ }
19
+
20
+ const authDirective: Directive = {
21
+ mounted
22
+ }
23
+
24
+ export function setupPermissionDirective(app: App) {
25
+ app.directive('auth', authDirective)
26
+ }
27
+
28
+ export default authDirective
@@ -0,0 +1,7 @@
1
+ import Scrollbars from '@gx-design/Scrollbars'
2
+
3
+ const gxDesign = (app) => {
4
+ // scrollbars
5
+ app.component('g-bars', Scrollbars)
6
+ }
7
+ export default gxDesign
@@ -0,0 +1,10 @@
1
+ import type { App } from 'vue'
2
+ import ProLayout, { PageContainer } from '@gx-design/ProLayout'
3
+
4
+ const gxProDesign = (app: App) => {
5
+ // pro-layout
6
+ app.component('g-pro-layout', ProLayout)
7
+ // pro-wrapper
8
+ app.component('g-pro-page-container', PageContainer)
9
+ }
10
+ export default gxProDesign
@@ -0,0 +1,27 @@
1
+ import dayjs from 'dayjs'
2
+ import relativeTime from 'dayjs/plugin/relativeTime'
3
+ import weekOfYear from 'dayjs/plugin/weekOfYear'
4
+ import advancedFormat from 'dayjs/plugin/advancedFormat'
5
+ import 'dayjs/locale/zh-cn'
6
+
7
+ import antDesign from './ant-design'
8
+ import gxDesign from './gx-design'
9
+ import gxProDesign from './gx-pro-design'
10
+ import gxAdminDesign from './gx-admin-design'
11
+
12
+ import setupGlobDirectives from './gx-admin-directives'
13
+
14
+ dayjs.locale('zh-cn')
15
+ dayjs.extend(relativeTime)
16
+ dayjs.extend(weekOfYear)
17
+ dayjs.extend(advancedFormat)
18
+
19
+ export function setupGlobCommon(app) {
20
+ // design
21
+ antDesign(app)
22
+ gxDesign(app)
23
+ gxProDesign(app)
24
+ gxAdminDesign(app)
25
+ // directives
26
+ setupGlobDirectives(app)
27
+ }
@@ -0,0 +1,4 @@
1
+ @import './layout';
2
+ @import './menu';
3
+ @import './table';
4
+ @import './tooltip';
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @Author gx12358
3
+ * @DateTime 2021/7/30
4
+ * @lastTime 2021/7/30
5
+ * @description 修改左侧菜单栏滚动条样式
6
+ */
7
+
8
+ html {
9
+ body {
10
+ .ant-layout-sider {
11
+ .ant-layout-sider-children {
12
+ &::-webkit-scrollbar {
13
+ width: 6px;
14
+ height: 6px;
15
+ }
16
+
17
+ &::-webkit-scrollbar-thumb {
18
+ background: rgba(0, 0, 0, 0.12);
19
+ border-radius: 3px;
20
+ }
21
+
22
+ &::-webkit-scrollbar-track {
23
+ background: hsla(0, 0%, 100%, 0.15);
24
+ border-radius: 3px;
25
+ }
26
+ }
27
+ }
28
+ }
29
+ }
@@ -0,0 +1,55 @@
1
+ /**
2
+ * @Author gx12358
3
+ * @DateTime 2021/7/30
4
+ * @lastTime 2021/7/30
5
+ * @description menu Icon图标
6
+ */
7
+ html {
8
+ body {
9
+ .ant-menu-item .anticon,
10
+ .ant-menu-submenu-title .anticon {
11
+ margin-right: 10px !important;
12
+ }
13
+
14
+ .ant-menu-item .customicon,
15
+ .ant-menu-submenu-title .customicon {
16
+ min-width: 14px;
17
+ margin-right: 8px !important;
18
+ font-size: 14px;
19
+ vertical-align: bottom;
20
+ transition: font-size 0.15s cubic-bezier(0.215, 0.61, 0.355, 1),
21
+ margin 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
22
+ }
23
+
24
+ .ant-menu-item .customimg,
25
+ .ant-menu-submenu-title .customimg {
26
+ width: 14px;
27
+ min-width: 14px;
28
+ margin-right: 8px !important;
29
+ transition: margin 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
30
+ }
31
+
32
+ .ant-menu-submenu-title {
33
+ [class*='ri'] {
34
+ min-width: 16px;
35
+ margin-right: 8px !important;
36
+ font-size: 16px;
37
+ vertical-align: bottom;
38
+ transition: font-size 0.15s cubic-bezier(0.215, 0.61, 0.355, 1),
39
+ margin 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
40
+ }
41
+ }
42
+
43
+ .ant-menu-inline-collapsed {
44
+ .ant-menu-submenu-title {
45
+ [class*='ri'] {
46
+ margin-right: 16px !important;
47
+ }
48
+
49
+ [class*='iconfont'] {
50
+ margin-right: 18px !important;
51
+ }
52
+ }
53
+ }
54
+ }
55
+ }
@@ -0,0 +1,67 @@
1
+ /**
2
+ * @Author gx12358
3
+ * @DateTime 2021/7/30
4
+ * @lastTime 2021/7/30
5
+ * @description ant-modal
6
+ */
7
+
8
+ html {
9
+ body {
10
+ .ant-table-thead {
11
+ & > tr > th {
12
+ position: relative;
13
+ font-weight: 700;
14
+ color: #262626;
15
+ background: #fafafa;
16
+
17
+ .ant-table-header-column {
18
+ font-weight: 700;
19
+ background: #fafafa;
20
+ }
21
+ }
22
+ }
23
+
24
+ .ant-table-column-title {
25
+ position: relative;
26
+ z-index: 1;
27
+ flex: 1 1;
28
+ }
29
+
30
+ .ant-table-resize-handle {
31
+ position: absolute;
32
+ top: 0;
33
+ height: 100% !important;
34
+ bottom: 0;
35
+ left: auto !important;
36
+ right: -8px;
37
+ cursor: col-resize;
38
+ touch-action: none;
39
+ -webkit-user-select: auto;
40
+ -moz-user-select: auto;
41
+ user-select: auto;
42
+ width: 16px;
43
+ z-index: 1;
44
+ }
45
+
46
+ .ant-table-resize-handle:hover .ant-table-resize-handle-line,
47
+ .dragging .ant-table-resize-handle-line {
48
+ opacity: 1;
49
+ }
50
+
51
+ .ant-table-resize-handle-line {
52
+ display: block;
53
+ width: 1px;
54
+ margin-left: 7px;
55
+ height: 100% !important;
56
+ background-color: var(--ant-primary-color);
57
+ opacity: 0;
58
+ }
59
+
60
+ .ant-table-column-sorters {
61
+ display: flex;
62
+ flex: auto;
63
+ align-items: center;
64
+ justify-content: space-between;
65
+ }
66
+ }
67
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @Author gx12358
3
+ * @DateTime 2021/7/30
4
+ * @lastTime 2021/7/30
5
+ * @description tooltip 修改
6
+ */
7
+ html {
8
+ body {
9
+ .ant-tooltip-inner a {
10
+ color: @white;
11
+ }
12
+ }
13
+ }
@@ -0,0 +1 @@
1
+ /* 文字颜色相关 */
@@ -0,0 +1,5 @@
1
+ @import (reference) 'color.less';
2
+ @import (reference) 'mixin.less';
3
+
4
+ @gx-prefix: gx;
5
+ @gx-prefix-pro: ~'@{gx-prefix}-pro';
@@ -0,0 +1,41 @@
1
+ @import './config';
2
+ @import './normalize';
3
+ @import './mixin';
4
+ @import './color';
5
+ @import './ant-design/index';
6
+
7
+ html,
8
+ body,
9
+ #app {
10
+ height: 100%;
11
+ .reset();
12
+ }
13
+
14
+ html {
15
+ body {
16
+ /**
17
+ * @Author gx12358
18
+ * @DateTime 2021/5/20
19
+ * @lastTime 2021/5/20
20
+ * @description 清楚浮动
21
+ */
22
+
23
+ .clearfix {
24
+ .clearfix();
25
+ }
26
+ }
27
+ }
28
+
29
+ @media (max-width: @screen-xs) {
30
+ .ant-table {
31
+ width: 100%;
32
+ overflow-x: auto;
33
+ }
34
+ }
35
+
36
+ // 兼容IE11
37
+ @media screen and(-ms-high-contrast: active), (-ms-high-contrast: none) {
38
+ body .ant-design-pro > .ant-layout {
39
+ min-height: 100vh;
40
+ }
41
+ }
@@ -0,0 +1,66 @@
1
+ /*一些less函数*/
2
+ .scrollbar() {
3
+ &::-webkit-scrollbar {
4
+ width: 6px;
5
+ height: 6px;
6
+ }
7
+
8
+ &::-webkit-scrollbar-thumb {
9
+ background-color: rgba(50, 50, 50, 0.3);
10
+ border-radius: 1em;
11
+ }
12
+
13
+ &::-webkit-scrollbar-track {
14
+ background-color: rgba(50, 50, 50, 0.1);
15
+ border-radius: 1em;
16
+ }
17
+ }
18
+
19
+ .textOverflow() {
20
+ overflow: hidden;
21
+ text-overflow: ellipsis;
22
+ word-break: break-all;
23
+ white-space: nowrap;
24
+ }
25
+
26
+ .reset() {
27
+ box-sizing: border-box;
28
+ padding: 0;
29
+ margin: 0;
30
+ font-size: 100%;
31
+ vertical-align: baseline;
32
+ border: 0;
33
+ outline: 0;
34
+ }
35
+
36
+ .clearfix() {
37
+ &::before,
38
+ &::after {
39
+ display: table;
40
+ content: '';
41
+ }
42
+ &::after {
43
+ height: 0;
44
+ clear: both;
45
+ font-size: 0;
46
+ visibility: hidden;
47
+ }
48
+ }
49
+
50
+ .centerContent() {
51
+ position: absolute;
52
+ top: 50%;
53
+ left: 50%;
54
+ z-index: 999;
55
+ transform: translate(-50%, -50%);
56
+ }
57
+
58
+ .relative() {
59
+ position: relative;
60
+ }
61
+
62
+ .overHidden() {
63
+ overflow: hidden;
64
+ text-overflow: ellipsis;
65
+ white-space: nowrap;
66
+ }