@yyp92-cli/template-react-mobile 1.1.0

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 (64) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/package.json +15 -0
  3. package/template/.env.development +5 -0
  4. package/template/.env.production +5 -0
  5. package/template/.env.test +5 -0
  6. package/template/README.md +30 -0
  7. package/template/index.html +13 -0
  8. package/template/package.json +40 -0
  9. package/template/pnpm-lock.yaml +3365 -0
  10. package/template/postcss.config.js +25 -0
  11. package/template/public/vite.svg +1 -0
  12. package/template/src/app.scss +12 -0
  13. package/template/src/app.tsx +14 -0
  14. package/template/src/assets/iconfont/demo.css +539 -0
  15. package/template/src/assets/iconfont/demo_index.html +211 -0
  16. package/template/src/assets/iconfont/iconfont.css +19 -0
  17. package/template/src/assets/iconfont/iconfont.js +1 -0
  18. package/template/src/assets/iconfont/iconfont.json +16 -0
  19. package/template/src/assets/iconfont/iconfont.ttf +0 -0
  20. package/template/src/assets/iconfont/iconfont.woff +0 -0
  21. package/template/src/assets/iconfont/iconfont.woff2 +0 -0
  22. package/template/src/assets/react.svg +1 -0
  23. package/template/src/components/403/index.tsx +21 -0
  24. package/template/src/components/404/index.tsx +23 -0
  25. package/template/src/components/index.ts +3 -0
  26. package/template/src/components/layout/content/index.module.scss +20 -0
  27. package/template/src/components/layout/content/index.tsx +55 -0
  28. package/template/src/components/layout/index.module.scss +5 -0
  29. package/template/src/components/layout/index.tsx +33 -0
  30. package/template/src/components/layout/navBar/index.module.scss +5 -0
  31. package/template/src/components/layout/navBar/index.tsx +48 -0
  32. package/template/src/components/layout/tabBar/index.module.scss +7 -0
  33. package/template/src/components/layout/tabBar/index.tsx +69 -0
  34. package/template/src/components/login/index.module.scss +20 -0
  35. package/template/src/components/login/index.tsx +127 -0
  36. package/template/src/global/constants.ts +4 -0
  37. package/template/src/pages/home/index.module.scss +4 -0
  38. package/template/src/pages/home/index.tsx +55 -0
  39. package/template/src/pages/message/index.module.scss +4 -0
  40. package/template/src/pages/message/index.tsx +13 -0
  41. package/template/src/pages/mine/index.module.scss +3 -0
  42. package/template/src/pages/mine/index.tsx +35 -0
  43. package/template/src/pages/todo/index.module.scss +4 -0
  44. package/template/src/pages/todo/index.tsx +13 -0
  45. package/template/src/router/router.tsx +129 -0
  46. package/template/src/service/api.ts +7 -0
  47. package/template/src/service/config.ts +9 -0
  48. package/template/src/service/index.ts +1 -0
  49. package/template/src/service/request/index.ts +267 -0
  50. package/template/src/service/request/type.ts +5 -0
  51. package/template/src/service/service.ts +27 -0
  52. package/template/src/store/login.ts +39 -0
  53. package/template/src/store/menus.ts +28 -0
  54. package/template/src/store/permission.ts +28 -0
  55. package/template/src/theme/darkTheme.scss +47 -0
  56. package/template/src/theme/lightTheme.scss +49 -0
  57. package/template/src/utils/cache.ts +44 -0
  58. package/template/src/utils/changeTheme.ts +14 -0
  59. package/template/src/utils/filterMenu.ts +21 -0
  60. package/template/src/utils/index.ts +3 -0
  61. package/template/src/vite-env.d.ts +4 -0
  62. package/template/tsconfig.json +42 -0
  63. package/template/tsconfig.node.json +10 -0
  64. package/template/vite.config.ts +57 -0
@@ -0,0 +1,25 @@
1
+ module.exports = {
2
+ plugins: {
3
+ 'autoprefixer': {
4
+ overrideBrowserslist: ['last 2 versions', '> 1%']
5
+ },
6
+
7
+ // 移动端适配
8
+ 'postcss-px-to-viewport': {
9
+ // * 视窗的宽度,对应的是我们设计稿的宽度,一般是750
10
+ viewportWidth: 750,
11
+ // 视窗的高度,根据750设备的宽度来指定,一般指定1334,也可以不配置
12
+ viewportHeight: 1334,
13
+ // 指定`px`转换为视窗单位值的小数位数(很多时候无法整除)
14
+ unitPrecision: 3,
15
+ // 指定需要转换成的视窗单位,建议使用vw
16
+ viewportUnit: 'vw',
17
+ // 指定不转换为视窗单位的类,可以自定义,可以无限添加,建议定义一至两个通用的类名
18
+ selectorBlackList: ['.ignore', '.hairlines'],
19
+ // 小于或等于`1px`不转换为视窗单位,你也可以设置为你想要的值
20
+ minPixelValue: 1,
21
+ // 允许在媒体查询中转换`px`
22
+ mediaQuery: false
23
+ }
24
+ }
25
+ };
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
@@ -0,0 +1,12 @@
1
+ @use "./theme/lightTheme.scss" as *;
2
+ @use "./theme/darkTheme.scss" as *;
3
+
4
+ html,
5
+ body,
6
+ #root {
7
+ width: 100%;
8
+ height: 100%;
9
+ margin: 0;
10
+ padding: 0;
11
+ overflow: hidden;
12
+ }
@@ -0,0 +1,14 @@
1
+ import ReactDOM from 'react-dom/client'
2
+ import { RouterProvider } from "react-router-dom"
3
+ import router from '@/router/router'
4
+ import '@/assets/iconfont/iconfont.css'
5
+ import './app.scss'
6
+
7
+ function App() {
8
+ return <RouterProvider router={router} />
9
+ }
10
+
11
+
12
+ ReactDOM.createRoot(document.getElementById('root')!).render(
13
+ <App />
14
+ )
@@ -0,0 +1,539 @@
1
+ /* Logo 字体 */
2
+ @font-face {
3
+ font-family: "iconfont logo";
4
+ src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
5
+ src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
6
+ url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
7
+ url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
8
+ url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
9
+ }
10
+
11
+ .logo {
12
+ font-family: "iconfont logo";
13
+ font-size: 160px;
14
+ font-style: normal;
15
+ -webkit-font-smoothing: antialiased;
16
+ -moz-osx-font-smoothing: grayscale;
17
+ }
18
+
19
+ /* tabs */
20
+ .nav-tabs {
21
+ position: relative;
22
+ }
23
+
24
+ .nav-tabs .nav-more {
25
+ position: absolute;
26
+ right: 0;
27
+ bottom: 0;
28
+ height: 42px;
29
+ line-height: 42px;
30
+ color: #666;
31
+ }
32
+
33
+ #tabs {
34
+ border-bottom: 1px solid #eee;
35
+ }
36
+
37
+ #tabs li {
38
+ cursor: pointer;
39
+ width: 100px;
40
+ height: 40px;
41
+ line-height: 40px;
42
+ text-align: center;
43
+ font-size: 16px;
44
+ border-bottom: 2px solid transparent;
45
+ position: relative;
46
+ z-index: 1;
47
+ margin-bottom: -1px;
48
+ color: #666;
49
+ }
50
+
51
+
52
+ #tabs .active {
53
+ border-bottom-color: #f00;
54
+ color: #222;
55
+ }
56
+
57
+ .tab-container .content {
58
+ display: none;
59
+ }
60
+
61
+ /* 页面布局 */
62
+ .main {
63
+ padding: 30px 100px;
64
+ width: 960px;
65
+ margin: 0 auto;
66
+ }
67
+
68
+ .main .logo {
69
+ color: #333;
70
+ text-align: left;
71
+ margin-bottom: 30px;
72
+ line-height: 1;
73
+ height: 110px;
74
+ margin-top: -50px;
75
+ overflow: hidden;
76
+ *zoom: 1;
77
+ }
78
+
79
+ .main .logo a {
80
+ font-size: 160px;
81
+ color: #333;
82
+ }
83
+
84
+ .helps {
85
+ margin-top: 40px;
86
+ }
87
+
88
+ .helps pre {
89
+ padding: 20px;
90
+ margin: 10px 0;
91
+ border: solid 1px #e7e1cd;
92
+ background-color: #fffdef;
93
+ overflow: auto;
94
+ }
95
+
96
+ .icon_lists {
97
+ width: 100% !important;
98
+ overflow: hidden;
99
+ *zoom: 1;
100
+ }
101
+
102
+ .icon_lists li {
103
+ width: 100px;
104
+ margin-bottom: 10px;
105
+ margin-right: 20px;
106
+ text-align: center;
107
+ list-style: none !important;
108
+ cursor: default;
109
+ }
110
+
111
+ .icon_lists li .code-name {
112
+ line-height: 1.2;
113
+ }
114
+
115
+ .icon_lists .icon {
116
+ display: block;
117
+ height: 100px;
118
+ line-height: 100px;
119
+ font-size: 42px;
120
+ margin: 10px auto;
121
+ color: #333;
122
+ -webkit-transition: font-size 0.25s linear, width 0.25s linear;
123
+ -moz-transition: font-size 0.25s linear, width 0.25s linear;
124
+ transition: font-size 0.25s linear, width 0.25s linear;
125
+ }
126
+
127
+ .icon_lists .icon:hover {
128
+ font-size: 100px;
129
+ }
130
+
131
+ .icon_lists .svg-icon {
132
+ /* 通过设置 font-size 来改变图标大小 */
133
+ width: 1em;
134
+ /* 图标和文字相邻时,垂直对齐 */
135
+ vertical-align: -0.15em;
136
+ /* 通过设置 color 来改变 SVG 的颜色/fill */
137
+ fill: currentColor;
138
+ /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
139
+ normalize.css 中也包含这行 */
140
+ overflow: hidden;
141
+ }
142
+
143
+ .icon_lists li .name,
144
+ .icon_lists li .code-name {
145
+ color: #666;
146
+ }
147
+
148
+ /* markdown 样式 */
149
+ .markdown {
150
+ color: #666;
151
+ font-size: 14px;
152
+ line-height: 1.8;
153
+ }
154
+
155
+ .highlight {
156
+ line-height: 1.5;
157
+ }
158
+
159
+ .markdown img {
160
+ vertical-align: middle;
161
+ max-width: 100%;
162
+ }
163
+
164
+ .markdown h1 {
165
+ color: #404040;
166
+ font-weight: 500;
167
+ line-height: 40px;
168
+ margin-bottom: 24px;
169
+ }
170
+
171
+ .markdown h2,
172
+ .markdown h3,
173
+ .markdown h4,
174
+ .markdown h5,
175
+ .markdown h6 {
176
+ color: #404040;
177
+ margin: 1.6em 0 0.6em 0;
178
+ font-weight: 500;
179
+ clear: both;
180
+ }
181
+
182
+ .markdown h1 {
183
+ font-size: 28px;
184
+ }
185
+
186
+ .markdown h2 {
187
+ font-size: 22px;
188
+ }
189
+
190
+ .markdown h3 {
191
+ font-size: 16px;
192
+ }
193
+
194
+ .markdown h4 {
195
+ font-size: 14px;
196
+ }
197
+
198
+ .markdown h5 {
199
+ font-size: 12px;
200
+ }
201
+
202
+ .markdown h6 {
203
+ font-size: 12px;
204
+ }
205
+
206
+ .markdown hr {
207
+ height: 1px;
208
+ border: 0;
209
+ background: #e9e9e9;
210
+ margin: 16px 0;
211
+ clear: both;
212
+ }
213
+
214
+ .markdown p {
215
+ margin: 1em 0;
216
+ }
217
+
218
+ .markdown>p,
219
+ .markdown>blockquote,
220
+ .markdown>.highlight,
221
+ .markdown>ol,
222
+ .markdown>ul {
223
+ width: 80%;
224
+ }
225
+
226
+ .markdown ul>li {
227
+ list-style: circle;
228
+ }
229
+
230
+ .markdown>ul li,
231
+ .markdown blockquote ul>li {
232
+ margin-left: 20px;
233
+ padding-left: 4px;
234
+ }
235
+
236
+ .markdown>ul li p,
237
+ .markdown>ol li p {
238
+ margin: 0.6em 0;
239
+ }
240
+
241
+ .markdown ol>li {
242
+ list-style: decimal;
243
+ }
244
+
245
+ .markdown>ol li,
246
+ .markdown blockquote ol>li {
247
+ margin-left: 20px;
248
+ padding-left: 4px;
249
+ }
250
+
251
+ .markdown code {
252
+ margin: 0 3px;
253
+ padding: 0 5px;
254
+ background: #eee;
255
+ border-radius: 3px;
256
+ }
257
+
258
+ .markdown strong,
259
+ .markdown b {
260
+ font-weight: 600;
261
+ }
262
+
263
+ .markdown>table {
264
+ border-collapse: collapse;
265
+ border-spacing: 0px;
266
+ empty-cells: show;
267
+ border: 1px solid #e9e9e9;
268
+ width: 95%;
269
+ margin-bottom: 24px;
270
+ }
271
+
272
+ .markdown>table th {
273
+ white-space: nowrap;
274
+ color: #333;
275
+ font-weight: 600;
276
+ }
277
+
278
+ .markdown>table th,
279
+ .markdown>table td {
280
+ border: 1px solid #e9e9e9;
281
+ padding: 8px 16px;
282
+ text-align: left;
283
+ }
284
+
285
+ .markdown>table th {
286
+ background: #F7F7F7;
287
+ }
288
+
289
+ .markdown blockquote {
290
+ font-size: 90%;
291
+ color: #999;
292
+ border-left: 4px solid #e9e9e9;
293
+ padding-left: 0.8em;
294
+ margin: 1em 0;
295
+ }
296
+
297
+ .markdown blockquote p {
298
+ margin: 0;
299
+ }
300
+
301
+ .markdown .anchor {
302
+ opacity: 0;
303
+ transition: opacity 0.3s ease;
304
+ margin-left: 8px;
305
+ }
306
+
307
+ .markdown .waiting {
308
+ color: #ccc;
309
+ }
310
+
311
+ .markdown h1:hover .anchor,
312
+ .markdown h2:hover .anchor,
313
+ .markdown h3:hover .anchor,
314
+ .markdown h4:hover .anchor,
315
+ .markdown h5:hover .anchor,
316
+ .markdown h6:hover .anchor {
317
+ opacity: 1;
318
+ display: inline-block;
319
+ }
320
+
321
+ .markdown>br,
322
+ .markdown>p>br {
323
+ clear: both;
324
+ }
325
+
326
+
327
+ .hljs {
328
+ display: block;
329
+ background: white;
330
+ padding: 0.5em;
331
+ color: #333333;
332
+ overflow-x: auto;
333
+ }
334
+
335
+ .hljs-comment,
336
+ .hljs-meta {
337
+ color: #969896;
338
+ }
339
+
340
+ .hljs-string,
341
+ .hljs-variable,
342
+ .hljs-template-variable,
343
+ .hljs-strong,
344
+ .hljs-emphasis,
345
+ .hljs-quote {
346
+ color: #df5000;
347
+ }
348
+
349
+ .hljs-keyword,
350
+ .hljs-selector-tag,
351
+ .hljs-type {
352
+ color: #a71d5d;
353
+ }
354
+
355
+ .hljs-literal,
356
+ .hljs-symbol,
357
+ .hljs-bullet,
358
+ .hljs-attribute {
359
+ color: #0086b3;
360
+ }
361
+
362
+ .hljs-section,
363
+ .hljs-name {
364
+ color: #63a35c;
365
+ }
366
+
367
+ .hljs-tag {
368
+ color: #333333;
369
+ }
370
+
371
+ .hljs-title,
372
+ .hljs-attr,
373
+ .hljs-selector-id,
374
+ .hljs-selector-class,
375
+ .hljs-selector-attr,
376
+ .hljs-selector-pseudo {
377
+ color: #795da3;
378
+ }
379
+
380
+ .hljs-addition {
381
+ color: #55a532;
382
+ background-color: #eaffea;
383
+ }
384
+
385
+ .hljs-deletion {
386
+ color: #bd2c00;
387
+ background-color: #ffecec;
388
+ }
389
+
390
+ .hljs-link {
391
+ text-decoration: underline;
392
+ }
393
+
394
+ /* 代码高亮 */
395
+ /* PrismJS 1.15.0
396
+ https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
397
+ /**
398
+ * prism.js default theme for JavaScript, CSS and HTML
399
+ * Based on dabblet (http://dabblet.com)
400
+ * @author Lea Verou
401
+ */
402
+ code[class*="language-"],
403
+ pre[class*="language-"] {
404
+ color: black;
405
+ background: none;
406
+ text-shadow: 0 1px white;
407
+ font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
408
+ text-align: left;
409
+ white-space: pre;
410
+ word-spacing: normal;
411
+ word-break: normal;
412
+ word-wrap: normal;
413
+ line-height: 1.5;
414
+
415
+ -moz-tab-size: 4;
416
+ -o-tab-size: 4;
417
+ tab-size: 4;
418
+
419
+ -webkit-hyphens: none;
420
+ -moz-hyphens: none;
421
+ -ms-hyphens: none;
422
+ hyphens: none;
423
+ }
424
+
425
+ pre[class*="language-"]::-moz-selection,
426
+ pre[class*="language-"] ::-moz-selection,
427
+ code[class*="language-"]::-moz-selection,
428
+ code[class*="language-"] ::-moz-selection {
429
+ text-shadow: none;
430
+ background: #b3d4fc;
431
+ }
432
+
433
+ pre[class*="language-"]::selection,
434
+ pre[class*="language-"] ::selection,
435
+ code[class*="language-"]::selection,
436
+ code[class*="language-"] ::selection {
437
+ text-shadow: none;
438
+ background: #b3d4fc;
439
+ }
440
+
441
+ @media print {
442
+
443
+ code[class*="language-"],
444
+ pre[class*="language-"] {
445
+ text-shadow: none;
446
+ }
447
+ }
448
+
449
+ /* Code blocks */
450
+ pre[class*="language-"] {
451
+ padding: 1em;
452
+ margin: .5em 0;
453
+ overflow: auto;
454
+ }
455
+
456
+ :not(pre)>code[class*="language-"],
457
+ pre[class*="language-"] {
458
+ background: #f5f2f0;
459
+ }
460
+
461
+ /* Inline code */
462
+ :not(pre)>code[class*="language-"] {
463
+ padding: .1em;
464
+ border-radius: .3em;
465
+ white-space: normal;
466
+ }
467
+
468
+ .token.comment,
469
+ .token.prolog,
470
+ .token.doctype,
471
+ .token.cdata {
472
+ color: slategray;
473
+ }
474
+
475
+ .token.punctuation {
476
+ color: #999;
477
+ }
478
+
479
+ .namespace {
480
+ opacity: .7;
481
+ }
482
+
483
+ .token.property,
484
+ .token.tag,
485
+ .token.boolean,
486
+ .token.number,
487
+ .token.constant,
488
+ .token.symbol,
489
+ .token.deleted {
490
+ color: #905;
491
+ }
492
+
493
+ .token.selector,
494
+ .token.attr-name,
495
+ .token.string,
496
+ .token.char,
497
+ .token.builtin,
498
+ .token.inserted {
499
+ color: #690;
500
+ }
501
+
502
+ .token.operator,
503
+ .token.entity,
504
+ .token.url,
505
+ .language-css .token.string,
506
+ .style .token.string {
507
+ color: #9a6e3a;
508
+ background: hsla(0, 0%, 100%, .5);
509
+ }
510
+
511
+ .token.atrule,
512
+ .token.attr-value,
513
+ .token.keyword {
514
+ color: #07a;
515
+ }
516
+
517
+ .token.function,
518
+ .token.class-name {
519
+ color: #DD4A68;
520
+ }
521
+
522
+ .token.regex,
523
+ .token.important,
524
+ .token.variable {
525
+ color: #e90;
526
+ }
527
+
528
+ .token.important,
529
+ .token.bold {
530
+ font-weight: bold;
531
+ }
532
+
533
+ .token.italic {
534
+ font-style: italic;
535
+ }
536
+
537
+ .token.entity {
538
+ cursor: help;
539
+ }