mirror of
				https://github.com/1Panel-dev/1Panel.git
				synced 2025-11-01 03:37:19 +08:00 
			
		
		
		
	feat: 修改主题色
This commit is contained in:
		
							parent
							
								
									b59225af1e
								
							
						
					
					
						commit
						3dda250b4d
					
				
					 16 changed files with 161 additions and 217 deletions
				
			
		
							
								
								
									
										6
									
								
								frontend/auto-imports.d.ts
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								frontend/auto-imports.d.ts
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | |||
| // Generated by 'unplugin-auto-import' | ||||
| // We suggest you to commit this file into source control | ||||
| declare global { | ||||
| 
 | ||||
| } | ||||
| export {} | ||||
							
								
								
									
										100
									
								
								frontend/components.d.ts
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										100
									
								
								frontend/components.d.ts
									
										
									
									
										vendored
									
									
								
							|  | @ -3,31 +3,79 @@ | |||
| // Read more: https://github.com/vuejs/vue-next/pull/3399 | ||||
| 
 | ||||
| declare module 'vue' { | ||||
|   export interface GlobalComponents { | ||||
|     403: typeof import('./src/components/error-message/403.vue')['default'] | ||||
|     404: typeof import('./src/components/error-message/404.vue')['default'] | ||||
|     500: typeof import('./src/components/error-message/500.vue')['default'] | ||||
|     AppLayout: typeof import('./src/components/app-layout/index.vue')['default'] | ||||
|     AppStatus: typeof import('./src/components/app-status/index.vue')['default'] | ||||
|     BackButton: typeof import('./src/components/back-button/index.vue')['default'] | ||||
|     BreadCrumbs: typeof import('./src/components/bread-crumbs/index.vue')['default'] | ||||
|     BreadCrumbsItem: typeof import('./src/components/bread-crumbs/bread-crumbs-item.vue')['default'] | ||||
|     CardWithHeader: typeof import('./src/components/card-with-header/index.vue')['default'] | ||||
|     Codemirror: typeof import('./src/components/codemirror-dialog/codemirror.vue')['default'] | ||||
|     ComplexTable: typeof import('./src/components/complex-table/index.vue')['default'] | ||||
|     ConfirmDialog: typeof import('./src/components/confirm-dialog/index.vue')['default'] | ||||
|     ContainerLog: typeof import('./src/components/container-log/index.vue')['default'] | ||||
|     DrawerHeader: typeof import('./src/components/drawer-header/index.vue')['default'] | ||||
|     ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider'] | ||||
|     FileList: typeof import('./src/components/file-list/index.vue')['default'] | ||||
|     FileRole: typeof import('./src/components/file-role/index.vue')['default'] | ||||
|     Footer: typeof import('./src/components/app-layout/footer/index.vue')['default'] | ||||
|     Logo: typeof import('./src/components/app-layout/menu/components/Logo.vue')['default'] | ||||
|     Menu: typeof import('./src/components/app-layout/menu/index.vue')['default'] | ||||
|     Status: typeof import('./src/components/status/index.vue')['default'] | ||||
|     SubItem: typeof import('./src/components/app-layout/menu/components/sub-item.vue')['default'] | ||||
|     SvgIcon: typeof import('./src/components/svg-icon/svg-icon.vue')['default'] | ||||
|   } | ||||
|     export interface GlobalComponents { | ||||
|         403: typeof import('./src/components/error-message/403.vue')['default']; | ||||
|         404: typeof import('./src/components/error-message/404.vue')['default']; | ||||
|         500: typeof import('./src/components/error-message/500.vue')['default']; | ||||
|         AppLayout: typeof import('./src/components/app-layout/index.vue')['default']; | ||||
|         AppStatus: typeof import('./src/components/app-status/index.vue')['default']; | ||||
|         BackButton: typeof import('./src/components/back-button/index.vue')['default']; | ||||
|         BreadCrumbs: typeof import('./src/components/bread-crumbs/index.vue')['default']; | ||||
|         BreadCrumbsItem: typeof import('./src/components/bread-crumbs/bread-crumbs-item.vue')['default']; | ||||
|         Codemirror: typeof import('./src/components/codemirror-dialog/codemirror.vue')['default']; | ||||
|         ComplexTable: typeof import('./src/components/complex-table/index.vue')['default']; | ||||
|         ConfirmDialog: typeof import('./src/components/confirm-dialog/index.vue')['default']; | ||||
|         ContainerLog: typeof import('./src/components/container-log/index.vue')['default']; | ||||
|         DrawerHeader: typeof import('./src/components/drawer-header/index.vue')['default']; | ||||
|         ElAlert: typeof import('element-plus/es')['ElAlert']; | ||||
|         ElAside: typeof import('element-plus/es')['ElAside']; | ||||
|         ElButton: typeof import('element-plus/es')['ElButton']; | ||||
|         ElButtonGroup: typeof import('element-plus/es')['ElButtonGroup']; | ||||
|         ElCard: typeof import('element-plus/es')['ElCard']; | ||||
|         ElCheckbox: typeof import('element-plus/es')['ElCheckbox']; | ||||
|         ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']; | ||||
|         ElCol: typeof import('element-plus/es')['ElCol']; | ||||
|         ElCollapse: typeof import('element-plus/es')['ElCollapse']; | ||||
|         ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem']; | ||||
|         ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']; | ||||
|         ElContainer: typeof import('element-plus/es')['ElContainer']; | ||||
|         ElDatePicker: typeof import('element-plus/es')['ElDatePicker']; | ||||
|         ElDescriptions: typeof import('element-plus/es')['ElDescriptions']; | ||||
|         ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem']; | ||||
|         ElDialog: typeof import('element-plus/es')['ElDialog']; | ||||
|         ElDivider: typeof import('element-plus/es')['ElDivider']; | ||||
|         ElDrawer: typeof import('element-plus/es')['ElDrawer']; | ||||
|         ElFooter: typeof import('element-plus/es')['ElFooter']; | ||||
|         ElForm: typeof import('element-plus/es')['ElForm']; | ||||
|         ElFormItem: typeof import('element-plus/es')['ElFormItem']; | ||||
|         ElHeader: typeof import('element-plus/es')['ElHeader']; | ||||
|         ElIcon: typeof import('element-plus/es')['ElIcon']; | ||||
|         ElImage: typeof import('element-plus/es')['ElImage']; | ||||
|         ElInput: typeof import('element-plus/es')['ElInput']; | ||||
|         ElInputNumber: typeof import('element-plus/es')['ElInputNumber']; | ||||
|         ElLink: typeof import('element-plus/es')['ElLink']; | ||||
|         ElMain: typeof import('element-plus/es')['ElMain']; | ||||
|         ElMenu: typeof import('element-plus/es')['ElMenu']; | ||||
|         ElMenuItem: typeof import('element-plus/es')['ElMenuItem']; | ||||
|         ElOption: typeof import('element-plus/es')['ElOption']; | ||||
|         ElPageHeader: typeof import('element-plus/es')['ElPageHeader']; | ||||
|         ElPopover: typeof import('element-plus/es')['ElPopover']; | ||||
|         ElProgress: typeof import('element-plus/es')['ElProgress']; | ||||
|         ElRadio: typeof import('element-plus/es')['ElRadio']; | ||||
|         ElRadioButton: typeof import('element-plus/es')['ElRadioButton']; | ||||
|         ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']; | ||||
|         ElRow: typeof import('element-plus/es')['ElRow']; | ||||
|         ElScrollbar: typeof import('element-plus/es')['ElScrollbar']; | ||||
|         ElSelect: typeof import('element-plus/es')['ElSelect']; | ||||
|         ElSubMenu: typeof import('element-plus/es')['ElSubMenu']; | ||||
|         ElSwitch: typeof import('element-plus/es')['ElSwitch']; | ||||
|         ElTable: typeof import('element-plus/es')['ElTable']; | ||||
|         ElTableColumn: typeof import('element-plus/es')['ElTableColumn']; | ||||
|         ElTabPane: typeof import('element-plus/es')['ElTabPane']; | ||||
|         ElTabs: typeof import('element-plus/es')['ElTabs']; | ||||
|         ElTag: typeof import('element-plus/es')['ElTag']; | ||||
|         ElUpload: typeof import('element-plus/es')['ElUpload']; | ||||
|         FileList: typeof import('./src/components/file-list/index.vue')['default']; | ||||
|         FileRole: typeof import('./src/components/file-role/index.vue')['default']; | ||||
|         Footer: typeof import('./src/components/app-layout/footer/index.vue')['default']; | ||||
|         Loading: typeof import('element-plus/es')['ElLoadingDirective']; | ||||
|         Logo: typeof import('./src/components/app-layout/menu/components/Logo.vue')['default']; | ||||
|         Menu: typeof import('./src/components/app-layout/menu/index.vue')['default']; | ||||
|         RouterButton: typeof import('./src/components/router-button/index.vue')['default']; | ||||
|         Status: typeof import('./src/components/status/index.vue')['default']; | ||||
|         SubItem: typeof import('./src/components/app-layout/menu/components/sub-item.vue')['default']; | ||||
|         SvgIcon: typeof import('./src/components/svg-icon/svg-icon.vue')['default']; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| export { } | ||||
| export {}; | ||||
|  |  | |||
							
								
								
									
										14
									
								
								frontend/package-lock.json
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										14
									
								
								frontend/package-lock.json
									
										
									
										generated
									
									
									
								
							|  | @ -19,7 +19,7 @@ | |||
|                 "echarts": "^5.3.0", | ||||
|                 "echarts-liquidfill": "^3.1.0", | ||||
|                 "element-plus": "^2.2.13", | ||||
|                 "fit2cloud-ui-plus": "^0.0.1-beta.15", | ||||
|                 "fit2cloud-ui-plus": "^1.0.4", | ||||
|                 "js-base64": "^3.7.2", | ||||
|                 "js-md5": "^0.7.3", | ||||
|                 "md-editor-v3": "^2.7.2", | ||||
|  | @ -7011,9 +7011,9 @@ | |||
|             } | ||||
|         }, | ||||
|         "node_modules/fit2cloud-ui-plus": { | ||||
|             "version": "0.0.1-beta.19", | ||||
|             "resolved": "https://registry.npmjs.org/fit2cloud-ui-plus/-/fit2cloud-ui-plus-0.0.1-beta.19.tgz", | ||||
|             "integrity": "sha512-IhDC7aZDb8MAqxLm293gg2FWk5dJ8J6UjeZk2/2MrLaHhi5HvFGB2N+8Yu3cWBKCffh2WWTwqr2H+0hPjbuV1Q==", | ||||
|             "version": "1.0.4", | ||||
|             "resolved": "https://registry.npmjs.org/fit2cloud-ui-plus/-/fit2cloud-ui-plus-1.0.4.tgz", | ||||
|             "integrity": "sha512-TDalWK0mfVIiaLLLsdUUukJVDklDPYVGVqAZPUu++tSpfJ9Q35isVVsk4U26G/Lxh00wVM0gTIZiQ3sSOGbGqA==", | ||||
|             "dependencies": { | ||||
|                 "@element-plus/icons-vue": "^1.1.4", | ||||
|                 "element-plus": "^2.2.14", | ||||
|  | @ -19000,9 +19000,9 @@ | |||
|             } | ||||
|         }, | ||||
|         "fit2cloud-ui-plus": { | ||||
|             "version": "0.0.1-beta.19", | ||||
|             "resolved": "https://registry.npmjs.org/fit2cloud-ui-plus/-/fit2cloud-ui-plus-0.0.1-beta.19.tgz", | ||||
|             "integrity": "sha512-IhDC7aZDb8MAqxLm293gg2FWk5dJ8J6UjeZk2/2MrLaHhi5HvFGB2N+8Yu3cWBKCffh2WWTwqr2H+0hPjbuV1Q==", | ||||
|             "version": "1.0.4", | ||||
|             "resolved": "https://registry.npmjs.org/fit2cloud-ui-plus/-/fit2cloud-ui-plus-1.0.4.tgz", | ||||
|             "integrity": "sha512-TDalWK0mfVIiaLLLsdUUukJVDklDPYVGVqAZPUu++tSpfJ9Q35isVVsk4U26G/Lxh00wVM0gTIZiQ3sSOGbGqA==", | ||||
|             "requires": { | ||||
|                 "@element-plus/icons-vue": "^1.1.4", | ||||
|                 "element-plus": "^2.2.14", | ||||
|  |  | |||
|  | @ -31,7 +31,7 @@ | |||
|         "echarts": "^5.3.0", | ||||
|         "echarts-liquidfill": "^3.1.0", | ||||
|         "element-plus": "^2.2.13", | ||||
|         "fit2cloud-ui-plus": "^0.0.1-beta.15", | ||||
|         "fit2cloud-ui-plus": "^1.0.4", | ||||
|         "js-base64": "^3.7.2", | ||||
|         "js-md5": "^0.7.3", | ||||
|         "md-editor-v3": "^2.7.2", | ||||
|  |  | |||
|  | @ -1,5 +1,5 @@ | |||
| <template> | ||||
|     <el-config-provider :locale="i18nLocale" :button="config" :size="assemblySize"> | ||||
|     <el-config-provider :locale="i18nLocale" :button="config" size="default"> | ||||
|         <router-view v-if="isRouterAlive"></router-view> | ||||
|     </el-config-provider> | ||||
| </template> | ||||
|  | @ -23,7 +23,7 @@ const i18nLocale = computed((): any => { | |||
|     return ''; | ||||
| }); | ||||
| 
 | ||||
| const assemblySize = computed((): string => globalStore.assemblySize); | ||||
| // const assemblySize = computed((): string => globalStore.assemblySize); | ||||
| 
 | ||||
| let isRouterAlive = ref(true); | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,27 +1,31 @@ | |||
| import { createApp } from 'vue'; | ||||
| import App from './App.vue'; | ||||
| // import 'element-plus/dist/index.css'; | ||||
| // import 'element-plus/theme-chalk/dark/css-vars.css'; | ||||
| 
 | ||||
| import '@/styles/index.scss'; | ||||
| import '@/styles/reset.scss'; | ||||
| import '@/styles/common.scss'; | ||||
| import '@/assets/iconfont/iconfont.css'; | ||||
| import '@/assets/iconfont/iconfont.js'; | ||||
| import ElementPlus from 'element-plus'; | ||||
| import Fit2CloudPlus from 'fit2cloud-ui-plus'; | ||||
| import * as Icons from '@element-plus/icons-vue'; | ||||
| import '@/styles/element-dark.scss'; | ||||
| import '@/styles/element.scss'; | ||||
| import 'element-plus/dist/index.css'; | ||||
| import 'element-plus/theme-chalk/dark/css-vars.css'; | ||||
| import 'fit2cloud-ui-plus/src/styles/index.scss'; | ||||
| 
 | ||||
| import VMdPreview from '@kangc/v-md-editor/lib/preview'; | ||||
| import githubTheme from '@kangc/v-md-editor/lib/theme/github.js'; | ||||
| import '@kangc/v-md-editor/lib/theme/style/github.css'; | ||||
| import '@kangc/v-md-editor/lib/style/preview.css'; | ||||
| import hljs from 'highlight.js'; | ||||
| 
 | ||||
| import directives from '@/directives/index'; | ||||
| import router from '@/routers/index'; | ||||
| import I18n from '@/lang/index'; | ||||
| import pinia from '@/store/index'; | ||||
| import SvgIcon from './components/svg-icon/svg-icon.vue'; | ||||
| import VMdPreview from '@kangc/v-md-editor/lib/preview'; | ||||
| import '@kangc/v-md-editor/lib/style/preview.css'; | ||||
| import githubTheme from '@kangc/v-md-editor/lib/theme/github.js'; | ||||
| import '@kangc/v-md-editor/lib/theme/style/github.css'; | ||||
| import hljs from 'highlight.js'; | ||||
| 
 | ||||
| import ElementPlus from 'element-plus'; | ||||
| import Fit2CloudPlus from 'fit2cloud-ui-plus'; | ||||
| import * as Icons from '@element-plus/icons-vue'; | ||||
| 
 | ||||
| VMdPreview.use(githubTheme, { | ||||
|     hljs, | ||||
|  |  | |||
|  | @ -4,7 +4,7 @@ const appStoreRouter = { | |||
|     sort: 2, | ||||
|     path: '/apps', | ||||
|     component: Layout, | ||||
|     redirect: '/apps', | ||||
|     redirect: '/apps/all', | ||||
|     meta: { | ||||
|         icon: 'p-appstore', | ||||
|         title: 'menu.apps', | ||||
|  | @ -13,6 +13,7 @@ const appStoreRouter = { | |||
|         { | ||||
|             path: '/apps', | ||||
|             name: 'App', | ||||
|             redirect: '/apps/all', | ||||
|             component: () => import('@/views/app-store/index.vue'), | ||||
|             meta: {}, | ||||
|             children: [ | ||||
|  |  | |||
|  | @ -9,11 +9,10 @@ export const GlobalStore = defineStore({ | |||
|     state: (): GlobalState => ({ | ||||
|         isLogin: false, | ||||
|         csrfToken: '', | ||||
|         assemblySize: 'default', | ||||
|         language: '', | ||||
|         themeConfig: { | ||||
|             panelName: '', | ||||
|             primary: '#409EFF', | ||||
|             primary: '#005EEB', | ||||
|             theme: 'bright', | ||||
|             footer: true, | ||||
|         }, | ||||
|  | @ -26,9 +25,6 @@ export const GlobalStore = defineStore({ | |||
|         setCsrfToken(token: string) { | ||||
|             this.csrfToken = token; | ||||
|         }, | ||||
|         setAssemblySize(assemblySize: string) { | ||||
|             this.assemblySize = assemblySize; | ||||
|         }, | ||||
|         updateLanguage(language: string) { | ||||
|             this.language = language; | ||||
|         }, | ||||
|  |  | |||
|  | @ -11,7 +11,7 @@ export interface GlobalState { | |||
|     isLogin: boolean; | ||||
|     csrfToken: string; | ||||
|     language: string; // zh | en | ||||
|     assemblySize: string; // small | default | large | ||||
|     // assemblySize: string; // small | default | large | ||||
|     themeConfig: ThemeConfigProp; | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,6 +1,4 @@ | |||
| /* 自定义 element 暗黑模式样式 */ | ||||
| html.dark { | ||||
|     // * element plus(可以全部注释掉,只是写在这里方便使用😀) | ||||
|     // --el-color-primary: #409eff; | ||||
|     // --el-color-primary-light-3: #3375b9; | ||||
|     // --el-color-primary-light-5: #2a598a; | ||||
|  |  | |||
|  | @ -1,20 +1,16 @@ | |||
| // * 设置 notification 层级在 loading 之上 | ||||
| .el-notification { | ||||
|     z-index: 99999 !important; | ||||
| } | ||||
| 
 | ||||
| // * 设置 message 层级在 loading 之上 | ||||
| .el-message { | ||||
|     z-index: 99999 !important; | ||||
| } | ||||
| 
 | ||||
| // * el-table 样式 | ||||
| .table-box { | ||||
|     display: flex; | ||||
|     flex-direction: column; | ||||
|     height: 100%; | ||||
| 
 | ||||
|     // 表格 search 样式 | ||||
|     .table-search { | ||||
|         display: flex; | ||||
|         margin-bottom: 10px; | ||||
|  | @ -32,12 +28,10 @@ | |||
|                     width: 400px; | ||||
|                 } | ||||
| 
 | ||||
|                 // 去除时间选择器上下 padding | ||||
|                 .el-range-editor.el-input__wrapper { | ||||
|                     padding: 0 10px; | ||||
|                 } | ||||
| 
 | ||||
|                 // el-select 为多选时不换行显示 | ||||
|                 .el-select__tags { | ||||
|                     overflow: hidden; | ||||
|                     white-space: nowrap; | ||||
|  | @ -56,7 +50,6 @@ | |||
|         } | ||||
|     } | ||||
| 
 | ||||
|     // 表格 header 样式 | ||||
|     .table-header { | ||||
|         .header-button-lf { | ||||
|             float: left; | ||||
|  | @ -72,9 +65,7 @@ | |||
|         } | ||||
|     } | ||||
| 
 | ||||
|     // el-table 表格样式 | ||||
|     .el-table { | ||||
|         // 表格自适应撑满整个页面(设置了 flex:1,页面上表格必须添加 height 属性) | ||||
|         flex: 1; | ||||
|         .el-table__header th, | ||||
|         .el-table__body td { | ||||
|  | @ -88,14 +79,12 @@ | |||
|             background: #fafafa; | ||||
|         } | ||||
| 
 | ||||
|         // table 中 image 图片样式 | ||||
|         .table-image { | ||||
|             width: 50px; | ||||
|             height: 50px; | ||||
|             border-radius: 50%; | ||||
|         } | ||||
| 
 | ||||
|         // 解决 el-table 中 header 文字换行问题 | ||||
|         .el-table__header .el-table__cell > .cell { | ||||
|             white-space: nowrap; | ||||
|         } | ||||
|  | @ -103,7 +92,6 @@ | |||
|             height: 52px; | ||||
|         } | ||||
| 
 | ||||
|         // 解决表格数据为空时样式不居中问题(仅在element-plus中) | ||||
|         .el-table__empty-block { | ||||
|             position: absolute; | ||||
|             top: 50%; | ||||
|  | @ -113,18 +101,8 @@ | |||
|         .table-empty { | ||||
|             line-height: 30px; | ||||
|         } | ||||
| 
 | ||||
|         // 解决 keep-alive || 浏览器窗口大小变化 导致 el-table 样式错乱问题(2.1.4会出现问题,升级之后问题已解决) | ||||
|         // .el-table__body-wrapper { | ||||
|         // 	height: calc(100% - 50px) !important; | ||||
|         // } | ||||
|         // .el-table__inner-wrapper, | ||||
|         // .el-scrollbar__wrap { | ||||
|         // 	height: 100% !important; | ||||
|         // } | ||||
|     } | ||||
| 
 | ||||
|     // 表格 pagination 样式 | ||||
|     .el-pagination { | ||||
|         display: flex; | ||||
|         justify-content: flex-end; | ||||
|  | @ -132,9 +110,7 @@ | |||
|     } | ||||
| } | ||||
| 
 | ||||
| // * el-drawer 样式 | ||||
| .el-drawer { | ||||
|     // drawer header 样式 | ||||
|     .el-drawer__header { | ||||
|         padding: 15px 20px 14px; | ||||
|         margin-bottom: 0; | ||||
|  | @ -145,7 +121,6 @@ | |||
|         } | ||||
|     } | ||||
| 
 | ||||
|     // drawer header 样式 | ||||
|     .el-drawer__footer { | ||||
|         border-top: 1px solid #ebeef5; | ||||
|     } | ||||
|  | @ -153,7 +128,6 @@ | |||
|         width: 100%; | ||||
|     } | ||||
| 
 | ||||
|     // drawer-form 多列 form-item | ||||
|     .drawer-multiColumn-form { | ||||
|         display: flex; | ||||
|         flex-wrap: wrap; | ||||
|  | @ -166,7 +140,6 @@ | |||
|     } | ||||
| } | ||||
| 
 | ||||
| // * el-dialog 样式 | ||||
| .el-dialog { | ||||
|     .el-dialog__header { | ||||
|         padding: 15px 20px; | ||||
|  | @ -188,5 +161,4 @@ | |||
|     height: 100%; | ||||
|     margin-right: 20px; | ||||
|     border: 0; | ||||
|     // box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%); | ||||
| } | ||||
|  |  | |||
							
								
								
									
										2
									
								
								frontend/src/styles/index.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								frontend/src/styles/index.scss
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,2 @@ | |||
| @use './theme.scss'; | ||||
| @use 'fit2cloud-ui-plus/src/styles/index.scss'; | ||||
|  | @ -1,132 +1,3 @@ | |||
| /* Reset style sheet */ | ||||
| 
 | ||||
| /* 因为使用富文本编辑器才注释掉,如果你项目没有使用富文本编辑器,可以取消注释 */ | ||||
| // html, | ||||
| // body, | ||||
| // div, | ||||
| // span, | ||||
| // applet, | ||||
| // object, | ||||
| // iframe, | ||||
| // h1, | ||||
| // h2, | ||||
| // h3, | ||||
| // h4, | ||||
| // h5, | ||||
| // h6, | ||||
| // p, | ||||
| // blockquote, | ||||
| // pre, | ||||
| // a, | ||||
| // abbr, | ||||
| // acronym, | ||||
| // address, | ||||
| // big, | ||||
| // cite, | ||||
| // code, | ||||
| // del, | ||||
| // dfn, | ||||
| // em, | ||||
| // img, | ||||
| // ins, | ||||
| // kbd, | ||||
| // q, | ||||
| // s, | ||||
| // samp, | ||||
| // small, | ||||
| // strike, | ||||
| // strong, | ||||
| // sub, | ||||
| // sup, | ||||
| // tt, | ||||
| // var, | ||||
| // b, | ||||
| // u, | ||||
| // i, | ||||
| // center, | ||||
| // dl, | ||||
| // dt, | ||||
| // dd, | ||||
| // ol, | ||||
| // ul, | ||||
| // li, | ||||
| // fieldset, | ||||
| // form, | ||||
| // label, | ||||
| // legend, | ||||
| // table, | ||||
| // caption, | ||||
| // tbody, | ||||
| // tfoot, | ||||
| // thead, | ||||
| // tr, | ||||
| // th, | ||||
| // td, | ||||
| // article, | ||||
| // aside, | ||||
| // canvas, | ||||
| // details, | ||||
| // embed, | ||||
| // figure, | ||||
| // figcaption, | ||||
| // footer, | ||||
| // header, | ||||
| // hgroup, | ||||
| // menu, | ||||
| // nav, | ||||
| // output, | ||||
| // ruby, | ||||
| // section, | ||||
| // summary, | ||||
| // time, | ||||
| // mark, | ||||
| // audio, | ||||
| // video { | ||||
| // 	padding: 0; | ||||
| // 	margin: 0; | ||||
| // 	font: inherit; | ||||
| // 	font-size: 100%; | ||||
| // 	vertical-align: baseline; | ||||
| // 	border: 0; | ||||
| // } | ||||
| 
 | ||||
| // /* HTML5 display-role reset for older browsers */ | ||||
| // article, | ||||
| // aside, | ||||
| // details, | ||||
| // figcaption, | ||||
| // figure, | ||||
| // footer, | ||||
| // header, | ||||
| // hgroup, | ||||
| // menu, | ||||
| // nav, | ||||
| // section { | ||||
| // 	display: block; | ||||
| // } | ||||
| // body { | ||||
| // 	padding: 0; | ||||
| // 	margin: 0; | ||||
| // } | ||||
| // ol, | ||||
| // ul { | ||||
| // 	list-style: none; | ||||
| // } | ||||
| // blockquote, | ||||
| // q { | ||||
| // 	quotes: none; | ||||
| // } | ||||
| // blockquote::before, | ||||
| // blockquote::after, | ||||
| // q::before, | ||||
| // q::after { | ||||
| // 	content: ""; | ||||
| // 	content: none; | ||||
| // } | ||||
| // table { | ||||
| // 	border-spacing: 0; | ||||
| // 	border-collapse: collapse; | ||||
| // } | ||||
| html, | ||||
| body, | ||||
| #app { | ||||
|  | @ -136,7 +7,6 @@ body, | |||
|     margin: 0; | ||||
| } | ||||
| 
 | ||||
| /* 解决 h1 标签在 webkit 内核浏览器中文字大小失效问题 */ | ||||
| :-webkit-any(article, aside, nav, section) h1 { | ||||
|     font-size: 2em; | ||||
| } | ||||
|  |  | |||
							
								
								
									
										10
									
								
								frontend/src/styles/theme.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								frontend/src/styles/theme.scss
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,10 @@ | |||
| // $primary-color: #005eeb; | ||||
| // @forward 'element-plus/theme-chalk/src/common/var.scss' with ( | ||||
| //     $colors: ( | ||||
| //         'primary': ( | ||||
| //             'base': $primary-color, | ||||
| //         ), | ||||
| //     ) | ||||
| // ); | ||||
| 
 | ||||
| // @use 'element-plus/theme-chalk/src/common/var.scss' as *; | ||||
|  | @ -1,2 +1,23 @@ | |||
| /* 全局 css 变量 */ | ||||
| $primary-color: #005eeb; | ||||
| @forward 'element-plus/theme-chalk/src/common/var.scss' with ( | ||||
|     $colors: ( | ||||
|         'primary': ( | ||||
|             'base': $primary-color, | ||||
|         ), | ||||
|         'success': ( | ||||
|             'base': #67c23a, | ||||
|         ), | ||||
|         'warning': ( | ||||
|             'base': #e6a23c, | ||||
|         ), | ||||
|         'danger': ( | ||||
|             'base': #f56c6c, | ||||
|         ), | ||||
|         'error': ( | ||||
|             'base': #f56c6c, | ||||
|         ), | ||||
|         'info': ( | ||||
|             'base': #909399, | ||||
|         ), | ||||
|     ) | ||||
| ); | ||||
|  |  | |||
|  | @ -10,6 +10,10 @@ import vueJsx from '@vitejs/plugin-vue-jsx'; | |||
| import DefineOptions from 'unplugin-vue-define-options/vite'; | ||||
| import MonacoEditorPlugin from 'vite-plugin-monaco-editor'; | ||||
| 
 | ||||
| import AutoImport from 'unplugin-auto-import/vite'; | ||||
| import Components from 'unplugin-vue-components/vite'; | ||||
| import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'; | ||||
| 
 | ||||
| export default defineConfig(({ mode }: ConfigEnv): UserConfig => { | ||||
|     const env = loadEnv(mode, process.cwd()); | ||||
|     const viteEnv = wrapperEnv(env); | ||||
|  | @ -49,7 +53,6 @@ export default defineConfig(({ mode }: ConfigEnv): UserConfig => { | |||
| 
 | ||||
|             MonacoEditorPlugin({}), | ||||
|             viteEnv.VITE_REPORT && visualizer(), | ||||
|             // * gzip compress | ||||
|             viteEnv.VITE_BUILD_GZIP && | ||||
|                 viteCompression({ | ||||
|                     verbose: true, | ||||
|  | @ -58,6 +61,20 @@ export default defineConfig(({ mode }: ConfigEnv): UserConfig => { | |||
|                     algorithm: 'gzip', | ||||
|                     ext: '.gz', | ||||
|                 }), | ||||
|             AutoImport({ | ||||
|                 resolvers: [ | ||||
|                     ElementPlusResolver({ | ||||
|                         importStyle: 'sass', | ||||
|                     }), | ||||
|                 ], | ||||
|             }), | ||||
|             Components({ | ||||
|                 resolvers: [ | ||||
|                     ElementPlusResolver({ | ||||
|                         importStyle: 'sass', | ||||
|                     }), | ||||
|                 ], | ||||
|             }), | ||||
|         ], | ||||
|         esbuild: { | ||||
|             pure: viteEnv.VITE_DROP_CONSOLE ? ['console.log', 'debugger'] : [], | ||||
|  | @ -67,7 +84,6 @@ export default defineConfig(({ mode }: ConfigEnv): UserConfig => { | |||
|             minify: 'esbuild', | ||||
|             rollupOptions: { | ||||
|                 output: { | ||||
|                     // Static resource classification and packaging | ||||
|                     chunkFileNames: 'assets/js/[name]-[hash].js', | ||||
|                     entryFileNames: 'assets/js/[name]-[hash].js', | ||||
|                     assetFileNames: 'assets/[ext]/[name]-[hash].[ext]', | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue