@gx-design-vue/create-gx-cli 0.1.2 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. package/README.md +4 -11
  2. package/package.json +3 -2
  3. package/src/main.js +9 -3
  4. package/template-mobile-vant-cli/.env +0 -0
  5. package/template-mobile-vant-cli/.env.pro +1 -1
  6. package/template-mobile-vant-cli/.env.production +2 -2
  7. package/template-mobile-vant-cli/.eslintignore +0 -1
  8. package/template-mobile-vant-cli/build/plugin/autoImport.ts +8 -10
  9. package/template-mobile-vant-cli/build/plugin/index.ts +2 -10
  10. package/template-mobile-vant-cli/build/plugin/mock.ts +5 -11
  11. package/template-mobile-vant-cli/build/plugin/viteMock/client.ts +88 -0
  12. package/template-mobile-vant-cli/build/plugin/viteMock/createMockServer.ts +271 -0
  13. package/template-mobile-vant-cli/build/plugin/viteMock/index.ts +69 -0
  14. package/template-mobile-vant-cli/build/plugin/viteMock/types.ts +48 -0
  15. package/template-mobile-vant-cli/build/plugin/viteMock/utils.ts +48 -0
  16. package/template-mobile-vant-cli/eslint.config.js +49 -0
  17. package/template-mobile-vant-cli/mock/_createProductionServer.ts +4 -4
  18. package/template-mobile-vant-cli/mock/datasSource/api/index.ts +0 -0
  19. package/template-mobile-vant-cli/package.json +26 -33
  20. package/template-mobile-vant-cli/src/components/PageContainer/ProSkeleton.tsx +1 -2
  21. package/template-mobile-vant-cli/src/components/PageContainer/index.tsx +7 -6
  22. package/template-mobile-vant-cli/src/components/PageContainer/style.module.less +1 -1
  23. package/template-mobile-vant-cli/src/core/vant-design/index.ts +1 -1
  24. package/template-mobile-vant-cli/src/hooks/web/usePageLoading.ts +8 -5
  25. package/template-mobile-vant-cli/src/layout/BasicLayout.vue +3 -3
  26. package/template-mobile-vant-cli/src/pages/home.vue +27 -27
  27. package/template-mobile-vant-cli/src/router/index.ts +3 -2
  28. package/template-mobile-vant-cli/src/router/typings.ts +1 -1
  29. package/template-mobile-vant-cli/src/settings/index.ts +2 -2
  30. package/template-mobile-vant-cli/src/store/modules/global.ts +1 -1
  31. package/template-mobile-vant-cli/src/utils/crypto/base64.ts +101 -0
  32. package/template-mobile-vant-cli/src/utils/{cryptoJS.ts → crypto/index.ts} +23 -5
  33. package/template-mobile-vant-cli/src/utils/env.ts +15 -17
  34. package/template-mobile-vant-cli/src/utils/pageTitle.ts +5 -3
  35. package/template-mobile-vant-cli/src/utils/request/XHR.ts +38 -30
  36. package/template-mobile-vant-cli/src/utils/request/axiosCancel.ts +32 -23
  37. package/template-mobile-vant-cli/src/utils/request/checkStatus.ts +1 -3
  38. package/template-mobile-vant-cli/src/utils/request/index.ts +3 -4
  39. package/template-mobile-vant-cli/src/utils/request/typings.ts +74 -17
  40. package/template-mobile-vant-cli/src/utils/storage.ts +25 -18
  41. package/template-mobile-vant-cli/src/utils/util.ts +0 -5
  42. package/template-mobile-vant-cli/src/utils/validate.ts +191 -3
  43. package/template-mobile-vant-cli/tsconfig.json +8 -9
  44. package/template-mobile-vant-cli/types/{gx-components.d.ts → ant-design-import.d.ts} +3 -3
  45. package/template-mobile-vant-cli/types/auto-imports.d.ts +3 -0
  46. package/template-mobile-vant-cli/types/components.d.ts +2 -5
  47. package/template-mobile-vant-cli/types/global.d.ts +7 -4
  48. package/template-mobile-vant-cli/types/module.d.ts +15 -2
  49. package/template-mobile-vant-cli/types/plugins-auto-import.d.ts +14 -0
  50. package/template-mobile-vant-cli/types/response.d.ts +8 -5
  51. package/template-mobile-vant-cli/types/vant-import.d.ts +13 -0
  52. package/template-mobile-vant-cli/unocss.config.ts +101 -0
  53. package/template-mobile-vant-cli/vite.config.ts +43 -11
  54. package/template-mobile-vant-cli/.eslintrc.js +0 -64
  55. package/template-mobile-vant-cli/.stylelintignore +0 -3
  56. package/template-mobile-vant-cli/mock/api/index.ts +0 -66
  57. package/template-mobile-vant-cli/stylelint.config.js +0 -106
  58. /package/template-mobile-vant-cli/{postcss.config.js → postcss.config.cjs} +0 -0
  59. /package/template-mobile-vant-cli/{prettier.config.js → prettier.config.cjs} +0 -0
@@ -1,3 +1,191 @@
1
+ /**
2
+ * @author gx12358 2539306317@qq.com
3
+ * @description 判读是否为外链
4
+ * @param path
5
+ * @returns {boolean}
6
+ */
7
+ export function isExternal(path) {
8
+ return /^(https?:|mailto:|tel:)/.test(path)
9
+ }
10
+
11
+ /**
12
+ * @author gx12358 2539306317@qq.com
13
+ * @description 判断是否是名称
14
+ * @param value
15
+ * @returns {boolean}
16
+ */
17
+ export function isName(value) {
18
+ const reg = /^[\u4e00-\u9fa5a-zA-Z0-9]+$/
19
+ return reg.test(value)
20
+ }
21
+
22
+ /**
23
+ * @author gx12358 2539306317@qq.com
24
+ * @description 判断是否为IP
25
+ * @param ip
26
+ * @returns {boolean}
27
+ */
28
+ export function isIP(ip) {
29
+ const reg = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/
30
+ return reg.test(ip)
31
+ }
32
+
33
+ /**
34
+ * @author gx12358 2539306317@qq.com
35
+ * @description 判断是否是传统网站
36
+ * @param url
37
+ * @returns {boolean}
38
+ */
39
+ export function isUrl(url) {
40
+ const reg = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
41
+ return reg.test(url)
42
+ }
43
+
44
+ /**
45
+ * @author gx12358 2539306317@qq.com
46
+ * @description 判断是否是小写字母
47
+ * @param value
48
+ * @returns {boolean}
49
+ */
50
+ export function isLowerCase(value) {
51
+ const reg = /^[a-z]+$/
52
+ return reg.test(value)
53
+ }
54
+
55
+ /**
56
+ * @author gx12358 2539306317@qq.com
57
+ * @description 判断是否是大写字母
58
+ * @param value
59
+ * @returns {boolean}
60
+ */
61
+ export function isUpperCase(value) {
62
+ const reg = /^[A-Z]+$/
63
+ return reg.test(value)
64
+ }
65
+
66
+ /**
67
+ * @author gx12358 2539306317@qq.com
68
+ * @description 判断是否是大写字母开头
69
+ * @param value
70
+ * @returns {boolean}
71
+ */
72
+ export function isAlphabets(value) {
73
+ const reg = /^[A-Za-z]+$/
74
+ return reg.test(value)
75
+ }
76
+
77
+ /**
78
+ * @author gx12358 2539306317@qq.com
79
+ * @description 判断是否是端口号
80
+ * @param value
81
+ * @returns {boolean}
82
+ */
83
+ export function isPort(value) {
84
+ const reg = /^([0-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/
85
+ return reg.test(value)
86
+ }
87
+
88
+ /**
89
+ * @author gx12358 2539306317@qq.com
90
+ * @description 判断是否是手机号
91
+ * @param value
92
+ * @returns {boolean}
93
+ */
94
+ export function isPhone(value = '', backReg?: boolean) {
95
+ const reg = /^1\d{10}$/
96
+ return backReg ? reg : reg.test(value)
97
+ }
98
+
99
+ /**
100
+ * @author gx12358 2539306317@qq.com
101
+ * @description 判断是否是身份证号(第二代)
102
+ * @param value
103
+ * @returns {boolean}
104
+ */
105
+ export function isIdCard(value) {
106
+ const reg = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
107
+ return reg.test(value)
108
+ }
109
+
110
+ /**
111
+ * @author gx12358 2539306317@qq.com
112
+ * @description 判断是否是邮箱
113
+ * @param value
114
+ * @returns {boolean}
115
+ */
116
+ export function isEmail(value = '', backReg?: boolean) {
117
+ const reg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
118
+ return backReg ? reg : reg.test(value)
119
+ }
120
+
121
+ /**
122
+ * @author gx12358 2539306317@qq.com
123
+ * @description 判断是否中文
124
+ * @param value
125
+ * @returns {boolean}
126
+ */
127
+ export function isChina(value) {
128
+ const reg = /^[\u4E00-\u9FA5]{2,4}$/
129
+ return reg.test(value)
130
+ }
131
+
132
+ /**
133
+ * @author gx12358 2539306317@qq.com
134
+ * @description 判断是否为空
135
+ * @param value
136
+ * @returns {boolean}
137
+ */
138
+ export function isBlank(value) {
139
+ return (value == null || false || value === '' || value.trim() === '' || value.toLocaleLowerCase()
140
+ .trim() === 'null')
141
+ }
142
+
143
+ /**
144
+ * @author gx12358 2539306317@qq.com
145
+ * @description 判断是否为固话
146
+ * @param value
147
+ * @returns {boolean}
148
+ */
149
+ export function isTel(value) {
150
+ const reg = /^(400|800)([0-9\\-]{7,10})|(([0-9]{4}|[0-9]{3})([- ])?)?([0-9]{7,8})(([- 转])*([0-9]{1,4}))?$/
151
+ return reg.test(value)
152
+ }
153
+
154
+ /**
155
+ * @author gx12358 2539306317@qq.com
156
+ * @description 判断经度 -180.0~+180.0(整数部分为0~180,必须输入1到5位小数)
157
+ * @param value
158
+ * @returns {boolean}
159
+ */
160
+ export function isLongitude(value) {
161
+ const reg = /^[-|+]?(0?\d{1,2}\.\d{1,5}|1[0-7]?\d{1}\.\d{1,5}|180\.0{1,5})$/
162
+ return reg.test(value)
163
+ }
164
+
165
+ /**
166
+ * @author gx12358 2539306317@qq.com
167
+ * @description 判断纬度 -90.0~+90.0(整数部分为0~90,必须输入1到5位小数)
168
+ * @param value
169
+ * @returns {boolean}
170
+ */
171
+ export function isLatitude(value) {
172
+ const reg = /^[-|+]?([0-8]?\d{1}\.\d{1,5}|90\.0{1,5})$/
173
+ return reg.test(value)
174
+ }
175
+
176
+ /**
177
+ * @author gx12358 2539306317@qq.com
178
+ * @description rtsp校验,只要有rtsp://
179
+ * @param value
180
+ * @returns {boolean}
181
+ */
182
+ export function isRTSP(value) {
183
+ const reg = /^rtsp:\/\/([a-z]{0,10}:.{0,10}@)?(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/
184
+ const reg1 = /^rtsp:\/\/([a-z]{0,10}:.{0,10}@)?(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5]):[0-9]{1,5}/
185
+ const reg2 = /^rtsp:\/\/([a-z]{0,10}:.{0,10}@)?(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\//
186
+ return reg.test(value) || reg1.test(value) || reg2.test(value)
187
+ }
188
+
1
189
  /**
2
190
  * @Author gaoxiang
3
191
  * @DateTime 2020/11/4
@@ -21,8 +209,8 @@ export function isJSONStr(str: any) {
21
209
  }
22
210
 
23
211
  export function checkURL(URL) {
24
- const str = URL,
25
- Expression = /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/,
26
- objExp = new RegExp(Expression)
212
+ const str = URL
213
+ const Expression = /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/
214
+ const objExp = new RegExp(Expression)
27
215
  return objExp.test(str)
28
216
  }
@@ -1,23 +1,22 @@
1
1
  {
2
2
  "compilerOptions": {
3
- "target": "esnext",
4
- "module": "esnext",
5
- "moduleResolution": "node",
3
+ "target": "ESNext",
4
+ "module": "ESNext",
5
+ "moduleResolution": "Node",
6
6
  "forceConsistentCasingInFileNames": true,
7
7
  "allowSyntheticDefaultImports": true,
8
8
  "strictFunctionTypes": false,
9
9
  "jsx": "preserve",
10
10
  "baseUrl": "./",
11
- "scripts": false,
12
- "noEmit": true,
13
11
  "allowJs": true,
14
12
  "sourceMap": true,
15
13
  "esModuleInterop": true,
16
14
  "resolveJsonModule": true,
15
+ "noUnusedLocals": true,
16
+ "noUnusedParameters": true,
17
17
  "experimentalDecorators": true,
18
- "lib": ["dom", "esnext"],
18
+ "lib": ["DOM", "ESNext"],
19
19
  "types": ["vite/client"],
20
- "typeRoots": ["./node_modules/@types/", "./types"],
21
20
  "skipLibCheck": true,
22
21
  "paths": {
23
22
  "@/*": ["src/*"],
@@ -32,8 +31,8 @@
32
31
  "src/**/*.d.ts",
33
32
  "src/**/*.tsx",
34
33
  "src/**/*.vue",
35
- "types/**/*.d.ts",
36
- "types/**/*.ts",
34
+ "types/*.d.ts",
35
+ "types/*.ts",
37
36
  "build/**/*.ts",
38
37
  "build/**/*.d.ts",
39
38
  "mock/**/*.ts",
@@ -1,13 +1,13 @@
1
1
  // generated by unplugin-vue-components
2
2
  // We suggest you to commit this file into source control
3
- // Read more: https://github.com/vuejs/vue-next/pull/3399
3
+ // Read more: https://github.com/vuejs/core/pull/3399
4
4
  import '@vue/runtime-core'
5
5
 
6
6
  export {}
7
7
 
8
8
  declare module '@vue/runtime-core' {
9
9
  export interface GlobalComponents {
10
- GProPageContainer: typeof import('./../src/components/PageContainer')['default']
10
+ RouterLink: typeof import('vue-router')['RouterLink']
11
+ RouterView: typeof import('vue-router')['RouterView']
11
12
  }
12
13
  }
13
-
@@ -39,6 +39,7 @@ declare global {
39
39
  const ref: typeof import('vue')['ref']
40
40
  const resolveComponent: typeof import('vue')['resolveComponent']
41
41
  const resolveDirective: typeof import('vue')['resolveDirective']
42
+ const setupStore: typeof import('../src/store/index')['setupStore']
42
43
  const shallowReactive: typeof import('vue')['shallowReactive']
43
44
  const shallowReadonly: typeof import('vue')['shallowReadonly']
44
45
  const shallowRef: typeof import('vue')['shallowRef']
@@ -54,6 +55,8 @@ declare global {
54
55
  const useRoute: typeof import('vue-router')['useRoute']
55
56
  const useRouter: typeof import('vue-router')['useRouter']
56
57
  const useSlots: typeof import('vue')['useSlots']
58
+ const useStore: typeof import('../src/store/index')['useStore']
59
+ const useStoreGlobal: typeof import('../src/store/index')['useStoreGlobal']
57
60
  const watch: typeof import('vue')['watch']
58
61
  const watchEffect: typeof import('vue')['watchEffect']
59
62
  const watchPostEffect: typeof import('vue')['watchPostEffect']
@@ -1,15 +1,12 @@
1
1
  // generated by unplugin-vue-components
2
2
  // We suggest you to commit this file into source control
3
- // Read more: https://github.com/vuejs/core/pull/3399
3
+ // Read more: https://github.com/vuejs/vue-next/pull/3399
4
4
  import '@vue/runtime-core'
5
5
 
6
6
  export {}
7
7
 
8
8
  declare module '@vue/runtime-core' {
9
9
  export interface GlobalComponents {
10
- RouterLink: typeof import('vue-router')['RouterLink']
11
- RouterView: typeof import('vue-router')['RouterView']
12
- VanButton: typeof import('vant/es')['Button']
13
- VanCell: typeof import('vant/es')['Cell']
10
+ GProPageContainer: typeof import('./../src/components/PageContainer')['default']
14
11
  }
15
12
  }
@@ -1,4 +1,5 @@
1
- import type { PropType as VuePropType } from 'vue'
1
+ import type { PropType, CSSProperties as VueCSSProperties } from 'vue'
2
+ import type { CSSObject as ProCssObject } from 'ant-design-vue'
2
3
 
3
4
  declare global {
4
5
  const __APP_INFO__: {
@@ -11,15 +12,17 @@ declare global {
11
12
  lastBuildTime: string;
12
13
  }
13
14
 
14
- declare type LocalResult = {
15
+ declare interface LocalResult {
15
16
  value: any;
16
17
  time: string;
17
18
  expired: number;
18
19
  }
19
20
 
20
- declare type PropType<T> = VuePropType<T>;
21
+ declare type VuePropType<T> = PropType<T>
22
+ declare type CSSObject = ProCssObject
23
+ declare type CSSProperties = VueCSSProperties
21
24
 
22
- declare type RecordType<T = string, K = any> = Record<T, K>;
25
+ declare type RecordType<T = string, K = any> = Record<T, K>
23
26
 
24
27
  declare interface ViteEnv {
25
28
  VITE_USE_MODE: string;
@@ -1,7 +1,20 @@
1
- /// <reference types="vite/client" />
1
+ declare module '*.svg'
2
+ declare module '*.png'
3
+ declare module '*.jpg'
4
+ declare module '*.jpeg'
5
+ declare module '*.gif'
6
+ declare module '*.bmp'
7
+ declare module '*.tiff'
2
8
 
9
+ /// <reference types="vite/client" />
3
10
  declare module '*.vue' {
4
11
  import type { DefineComponent } from 'vue'
5
- const component: DefineComponent<{}, {}, any>
12
+
13
+ const Component: DefineComponent<Record<any, any>, Record<any, any>, any>
6
14
  export default component
7
15
  }
16
+
17
+ declare module 'virtual:*' {
18
+ const result: any
19
+ export default result
20
+ }
@@ -0,0 +1,14 @@
1
+ // generated by unplugin-vue-components
2
+ // We suggest you to commit this file into source control
3
+ // Read more: https://github.com/vuejs/core/pull/3399
4
+ import '@vue/runtime-core'
5
+
6
+ export {}
7
+
8
+ declare module '@vue/runtime-core' {
9
+ export interface GlobalComponents {
10
+ RouterLink: typeof import('vue-router')['RouterLink']
11
+ RouterView: typeof import('vue-router')['RouterView']
12
+ VanButton: typeof import('vant/es')['Button']
13
+ }
14
+ }
@@ -1,12 +1,15 @@
1
- declare interface ResponseResult<T = any> extends TableResult<T> {
1
+ declare interface DefaultResult<T> {
2
2
  code: number;
3
3
  msg?: string;
4
4
  message?: string;
5
5
  data?: T;
6
6
  }
7
7
 
8
- declare interface TableResult<T = any> {
9
- total?: number;
10
- pageNum?: number;
11
- rows?: T;
8
+ declare type ResponseResult<T = any, R = undefined> = R extends undefined
9
+ ? DefaultResult<T>
10
+ : DefaultResult<T> & R
11
+
12
+ declare interface PageResult<T> {
13
+ list: T[];
14
+ totalCount: number;
12
15
  }
@@ -0,0 +1,13 @@
1
+ // generated by unplugin-vue-components
2
+ // We suggest you to commit this file into source control
3
+ // Read more: https://github.com/vuejs/core/pull/3399
4
+ import '@vue/runtime-core'
5
+
6
+ export {}
7
+
8
+ declare module '@vue/runtime-core' {
9
+ export interface GlobalComponents {
10
+ RouterLink: typeof import('vue-router')['RouterLink']
11
+ RouterView: typeof import('vue-router')['RouterView']
12
+ }
13
+ }
@@ -0,0 +1,101 @@
1
+ import {
2
+ defineConfig,
3
+ presetAttributify,
4
+ presetUno,
5
+ transformerDirectives,
6
+ transformerVariantGroup
7
+ } from 'unocss'
8
+
9
+ export default defineConfig({
10
+ presets: [
11
+ presetUno(),
12
+ presetAttributify()
13
+ ],
14
+ theme: {
15
+ breakpoints: {
16
+ sm: '576px',
17
+ md: '768px',
18
+ lg: '992px',
19
+ xl: '1200px',
20
+ xxl: '1600px'
21
+ }
22
+ },
23
+ transformers: [ transformerDirectives({
24
+ applyVariable: [ '--at-apply' ]
25
+ }), transformerVariantGroup() ],
26
+ shortcuts: [
27
+ {
28
+ 'flex-center': 'flex items-center justify-center'
29
+ },
30
+ ],
31
+ rules: [
32
+ [ /^text-rgba-(.*)$/, ([ , str ]) => {
33
+ const regex = /\[([^[\]]*)\]/
34
+ const match = str.match(regex)
35
+
36
+ if (match && match.length > 1) {
37
+ const contentInsideBrackets = match[1]
38
+ return {
39
+ color: `rgba(${contentInsideBrackets.split('-').join(',')})`
40
+ }
41
+ } else {
42
+ return {}
43
+ }
44
+ } ],
45
+ [ /^bg-rgba-(.*)$/, ([ , str ]) => {
46
+ const regex = /\[([^[\]]*)\]/
47
+ const match = str.match(regex)
48
+
49
+ if (match && match.length > 1) {
50
+ const contentInsideBrackets = match[1]
51
+ return {
52
+ 'background-color': `rgba(${contentInsideBrackets.split('-').join(',')})`
53
+ }
54
+ } else {
55
+ return {}
56
+ }
57
+ } ],
58
+ [ /^text-hidden-(\d+)$/, ([ , d ]) => ({
59
+ 'overflow': 'hidden',
60
+ 'text-overflow': 'ellipsis',
61
+ 'display': '-webkit-box',
62
+ '-webkit-line-clamp': d,
63
+ 'line-clamp': d,
64
+ '-webkit-box-orient': 'vertical',
65
+ 'word-break': 'break-word'
66
+ }) ],
67
+ [ 'hidden-none', { 'opacity': '0', 'visibility': 'hidden' } ],
68
+ [ /^flex-main-(\d+)$/, ([ , d ]) => ({
69
+ 'flex': `0 0 ${d}px`
70
+ }) ],
71
+ [ /^shrink-(\d+)$/, ([ , d ]) => ({
72
+ 'flex-shrink': d
73
+ }) ],
74
+ [ 'text-hex-main', { 'color': 'var(--gx-primary-color)' } ],
75
+ [ 'bg-hex-main', { 'background': 'var(--gx-primary-color)' } ],
76
+ [ 'word-break-all', { 'word-break': 'break-all' } ],
77
+ [ 'word-break-word', { 'word-break': 'break-word' } ],
78
+ [ 'flex-main', { 'flex': '1' } ],
79
+ [ 'position-all', { 'position': 'absolute', 'top': '0', 'bottom': '0', 'left': '0', 'right': '0' } ],
80
+ [ 'image-event-none', { 'user-select': 'none', 'pointer-events': 'none' } ],
81
+ [
82
+ 'position-center', {
83
+ 'left': '50%',
84
+ 'top': '50%',
85
+ 'transform': 'translate(-50%, -50%)'
86
+ }
87
+ ],
88
+ [
89
+ 'position-center-x', {
90
+ 'left': '50%',
91
+ 'transform': 'translateX(-50%)'
92
+ }
93
+ ],
94
+ [
95
+ 'position-center-y', {
96
+ 'top': '50%',
97
+ 'transform': 'translateY(-50%)'
98
+ }
99
+ ]
100
+ ]
101
+ })
@@ -1,7 +1,8 @@
1
- import type { UserConfig, ConfigEnv, ProxyOptions } from 'vite'
1
+ import type { ConfigEnv, ProxyOptions, UserConfig } from 'vite'
2
2
  import { loadEnv } from 'vite'
3
- import { resolve } from 'path'
3
+ import { resolve } from 'node:path'
4
4
  import dayjs from 'dayjs'
5
+ import { isObject, isString } from '@gx-design-vue/pro-utils'
5
6
 
6
7
  import { configManualChunk } from './build/optimizer'
7
8
  import { createVitePlugins } from './build/plugin'
@@ -9,6 +10,10 @@ import { generateModifyVars } from './build/generateModifyVars'
9
10
 
10
11
  import pkg from './package.json'
11
12
 
13
+ type ProxyTargetList = ProxyOptions & { rewrite: (path: string) => string }
14
+
15
+ const proxyTarget: string | Record<string, any> = 'http://127.0.0.1:3000'
16
+
12
17
  const { dependencies, devDependencies, name, version } = pkg
13
18
 
14
19
  const __APP_INFO__ = {
@@ -21,14 +26,37 @@ function pathResolve(dir: string) {
21
26
  }
22
27
 
23
28
  function createProxy(prefix) {
24
- const ret: RecordType = {}
25
- const proxy: ProxyOptions = {
26
- target: 'https://127.0.0.1',
27
- changeOrigin: true,
28
- ws: true,
29
- rewrite: (path) => path.replace(new RegExp(`^${prefix}`), `${prefix}`)
29
+ const ret = {
30
+ dev: {},
31
+ test: {},
32
+ pre: {}
30
33
  }
31
- ret[prefix] = proxy
34
+
35
+ if (isObject(proxyTarget)) {
36
+ Object.keys(proxyTarget).forEach((prefix) => {
37
+ const proxy = {
38
+ target: `${proxyTarget[prefix]}`,
39
+ changeOrigin: true,
40
+ ws: true,
41
+ rewrite: path => path.replace(new RegExp(`^${prefix}`), '')
42
+ } as ProxyTargetList
43
+
44
+ ret.dev[prefix] = proxy
45
+ ret.test[prefix] = proxy
46
+ ret.pre[prefix] = proxy
47
+ })
48
+ } else if (isString(proxyTarget)) {
49
+ const proxy = {
50
+ target: `${proxyTarget}`,
51
+ changeOrigin: true,
52
+ ws: true,
53
+ rewrite: path => path.replace(new RegExp(`^${prefix}`), '')
54
+ }
55
+ ret.dev[prefix] = proxy
56
+ ret.test[prefix] = proxy
57
+ ret.pre[prefix] = proxy
58
+ }
59
+
32
60
  return ret
33
61
  }
34
62
 
@@ -65,6 +93,10 @@ export default ({ mode, command }: ConfigEnv): UserConfig => {
65
93
  find: '@',
66
94
  replacement: pathResolve('src') + '/'
67
95
  },
96
+ {
97
+ find: '@gx-mock',
98
+ replacement: pathResolve('mock') + '/'
99
+ },
68
100
  {
69
101
  find: '@gx-vuex',
70
102
  replacement: pathResolve('src/store') + '/index.ts'
@@ -78,7 +110,7 @@ export default ({ mode, command }: ConfigEnv): UserConfig => {
78
110
  },
79
111
  server: {
80
112
  host: true,
81
- port: 9260,
113
+ port: 3000,
82
114
  proxy: createProxy(VITE_BASE_URL)
83
115
  },
84
116
  plugins: createVitePlugins(viteEnv, isBuild),
@@ -94,7 +126,7 @@ export default ({ mode, command }: ConfigEnv): UserConfig => {
94
126
  chunkSizeWarningLimit: 2500,
95
127
  rollupOptions: {
96
128
  output: {
97
- manualChunks: configManualChunk
129
+ manualChunks: configManualChunk as any
98
130
  }
99
131
  }
100
132
  },
@@ -1,64 +0,0 @@
1
- module.exports = {
2
- root: true,
3
- env: {
4
- browser: true,
5
- node: true,
6
- es6: true,
7
- },
8
- parser: 'vue-eslint-parser',
9
- parserOptions: {
10
- parser: '@typescript-eslint/parser',
11
- ecmaVersion: 2020,
12
- sourceType: 'module',
13
- jsxPragma: 'React',
14
- ecmaFeatures: {
15
- jsx: true,
16
- },
17
- },
18
- extends: [
19
- 'plugin:vue/vue3-recommended',
20
- 'plugin:@typescript-eslint/recommended'
21
- ],
22
- rules: {
23
- 'vue/script-setup-uses-vars': 'error',
24
- '@typescript-eslint/ban-ts-ignore': 'off',
25
- '@typescript-eslint/explicit-function-return-type': 'off',
26
- '@typescript-eslint/no-explicit-any': 'off',
27
- '@typescript-eslint/no-var-requires': 'off',
28
- '@typescript-eslint/no-empty-function': 'off',
29
- 'vue/custom-event-name-casing': 'off',
30
- 'no-use-before-define': 'off',
31
- '@typescript-eslint/no-use-before-define': 'off',
32
- '@typescript-eslint/ban-ts-comment': 'off',
33
- '@typescript-eslint/ban-types': 'off',
34
- '@typescript-eslint/no-non-null-assertion': 'off',
35
- '@typescript-eslint/explicit-module-boundary-types': 'off',
36
- '@typescript-eslint/no-unused-vars': [
37
- 'error',
38
- {
39
- argsIgnorePattern: '^_',
40
- varsIgnorePattern: '^_',
41
- },
42
- ],
43
- 'no-unused-vars': [
44
- 'error',
45
- {
46
- argsIgnorePattern: '^_',
47
- varsIgnorePattern: '^_',
48
- },
49
- ],
50
- 'space-before-function-paren': 'off',
51
-
52
- 'vue/attributes-order': 'off',
53
- 'vue/one-component-per-file': 'off',
54
- 'vue/html-closing-bracket-newline': 'off',
55
- 'vue/max-attributes-per-line': 'off',
56
- 'vue/multiline-html-element-content-newline': 'off',
57
- 'vue/singleline-html-element-content-newline': 'off',
58
- 'vue/attribute-hyphenation': 'off',
59
- 'vue/require-default-prop': 'off',
60
- 'vue/require-explicit-emits': 'off',
61
- 'vue/html-self-closing': 0,
62
- 'vue/multi-word-component-names': 'off',
63
- },
64
- };
@@ -1,3 +0,0 @@
1
- /dist/*
2
- /public/*
3
- public/*