'admin-22.11.30:发布v2.4.1版本,具体更新内容查看CHANGELOG.md'
This commit is contained in:
		
							parent
							
								
									bfecc6f6d2
								
							
						
					
					
						commit
						7b26cb21dd
					
				| @ -2,6 +2,13 @@ | ||||
| 
 | ||||
| 🎉🎉🔥 `vue-next-admin` 基于 vue3.x 、Typescript、vite、Element plus 等,适配手机、平板、pc 的后台开源免费模板库(vue2.x 请切换 vue-prev-admin 分支) | ||||
| 
 | ||||
| ## 2.4.1 | ||||
| 
 | ||||
| `2022.11.30` | ||||
| 
 | ||||
| - 🎉 新增 版本升级提示 | ||||
| - 🐞 修复 [先打开 F12 再登录进去,然后改变浏览器大小 js 报错](https://gitee.com/lyt-top/vue-next-admin/issues/I63ZZT),感谢[@Quber](https://gitee.com/quber) | ||||
| 
 | ||||
| ## 2.4.0 | ||||
| 
 | ||||
| `2022.11.29` | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| { | ||||
| 	"name": "vue-next-admin", | ||||
| 	"version": "2.4.0", | ||||
| 	"version": "2.4.1", | ||||
| 	"description": "vue3 vite next admin template", | ||||
| 	"author": "lyt_20201208", | ||||
| 	"license": "MIT", | ||||
|  | ||||
							
								
								
									
										11
									
								
								src/App.vue
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								src/App.vue
									
									
									
									
									
								
							| @ -4,6 +4,7 @@ | ||||
| 		<LockScreen v-if="themeConfig.isLockScreen" /> | ||||
| 		<Setings ref="setingsRef" v-show="themeConfig.lockScreenTime > 1" /> | ||||
| 		<CloseFull v-if="!themeConfig.isLockScreen" /> | ||||
| 		<Upgrade v-if="getVersion" /> | ||||
| 	</el-config-provider> | ||||
| </template> | ||||
| 
 | ||||
| @ -23,6 +24,7 @@ import setIntroduction from '/@/utils/setIconfont'; | ||||
| const LockScreen = defineAsyncComponent(() => import('/@/layout/lockScreen/index.vue')); | ||||
| const Setings = defineAsyncComponent(() => import('/@/layout/navBars/breadcrumb/setings.vue')); | ||||
| const CloseFull = defineAsyncComponent(() => import('/@/layout/navBars/breadcrumb/closeFull.vue')); | ||||
| const Upgrade = defineAsyncComponent(() => import('/@/layout/upgrade/index.vue')); | ||||
| 
 | ||||
| // 定义变量内容 | ||||
| const { messages, locale } = useI18n(); | ||||
| @ -32,6 +34,15 @@ const stores = useTagsViewRoutes(); | ||||
| const storesThemeConfig = useThemeConfig(); | ||||
| const { themeConfig } = storeToRefs(storesThemeConfig); | ||||
| 
 | ||||
| // 获取版本号 | ||||
| const getVersion = computed(() => { | ||||
| 	let isVersion = false; | ||||
| 	if (route.path !== '/login') { | ||||
| 		// @ts-ignore | ||||
| 		if ((Local.get('version') && Local.get('version') !== __VERSION__) || !Local.get('version')) isVersion = true; | ||||
| 	} | ||||
| 	return isVersion; | ||||
| }); | ||||
| // 获取全局组件大小 | ||||
| const getGlobalComponentSize = computed(() => { | ||||
| 	return other.globalComponentSize(); | ||||
|  | ||||
| @ -180,4 +180,12 @@ export default { | ||||
| 		copyTextSuccess: 'Copy succeeded!', | ||||
| 		copyTextError: 'Copy failed!', | ||||
| 	}, | ||||
| 	upgrade: { | ||||
| 		title: 'New version', | ||||
| 		msg: 'The new version is available, please update it now! Dont worry, the update is fast!', | ||||
| 		desc: 'Prompt: Update will restore the default configuration', | ||||
| 		btnOne: 'Cruel refusal', | ||||
| 		btnTwo: 'Update now', | ||||
| 		btnTwoLoading: 'Updating', | ||||
| 	}, | ||||
| }; | ||||
|  | ||||
| @ -180,4 +180,12 @@ export default { | ||||
| 		copyTextSuccess: '复制成功!', | ||||
| 		copyTextError: '复制失败!', | ||||
| 	}, | ||||
| 	upgrade: { | ||||
| 		title: '新版本升级', | ||||
| 		msg: '新版本来啦,马上更新尝鲜吧!不用担心,更新很快的哦!', | ||||
| 		desc: '提示:更新会还原默认配置', | ||||
| 		btnOne: '残忍拒绝', | ||||
| 		btnTwo: '马上更新', | ||||
| 		btnTwoLoading: '更新中', | ||||
| 	}, | ||||
| }; | ||||
|  | ||||
| @ -180,4 +180,12 @@ export default { | ||||
| 		copyTextSuccess: '複製成功!', | ||||
| 		copyTextError: '複製失敗!', | ||||
| 	}, | ||||
| 	upgrade: { | ||||
| 		title: '新版本陞級', | ||||
| 		msg: '新版本來啦,馬上更新嘗鮮吧! 不用擔心,更新很快的哦!', | ||||
| 		desc: '提示:更新會還原默認配寘', | ||||
| 		btnOne: '殘忍拒絕', | ||||
| 		btnTwo: '馬上更新', | ||||
| 		btnTwoLoading: '更新中', | ||||
| 	}, | ||||
| }; | ||||
|  | ||||
| @ -619,6 +619,8 @@ const onCopyConfigClick = () => { | ||||
| const onResetConfigClick = () => { | ||||
| 	Local.clear(); | ||||
| 	window.location.reload(); | ||||
| 	// @ts-ignore | ||||
| 	Local.set('version', __VERSION__); | ||||
| }; | ||||
| // 初始化菜单样式等 | ||||
| const initSetStyle = () => { | ||||
|  | ||||
							
								
								
									
										138
									
								
								src/layout/upgrade/index.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										138
									
								
								src/layout/upgrade/index.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,138 @@ | ||||
| <template> | ||||
| 	<div class="upgrade-dialog"> | ||||
| 		<el-dialog | ||||
| 			v-model="state.isUpgrade" | ||||
| 			width="300px" | ||||
| 			destroy-on-close | ||||
| 			:show-close="false" | ||||
| 			:close-on-click-modal="false" | ||||
| 			:close-on-press-escape="false" | ||||
| 		> | ||||
| 			<div class="upgrade-title"> | ||||
| 				<div class="upgrade-title-warp"> | ||||
| 					<span class="upgrade-title-warp-txt">{{ $t('message.upgrade.title') }}</span> | ||||
| 					<span class="upgrade-title-warp-version">v{{ state.version }}</span> | ||||
| 				</div> | ||||
| 			</div> | ||||
| 			<div class="upgrade-content"> | ||||
| 				{{ getThemeConfig.globalTitle }} {{ $t('message.upgrade.msg') }} | ||||
| 				<div class="upgrade-content-desc mt5">{{ $t('message.upgrade.desc') }}</div> | ||||
| 			</div> | ||||
| 			<div class="upgrade-btn"> | ||||
| 				<el-button round size="default" type="info" text @click="onCancel">{{ $t('message.upgrade.btnOne') }}</el-button> | ||||
| 				<el-button type="primary" round size="default" @click="onUpgrade" :loading="state.isLoading">{{ state.btnTxt }}</el-button> | ||||
| 			</div> | ||||
| 		</el-dialog> | ||||
| 	</div> | ||||
| </template> | ||||
| 
 | ||||
| <script setup lang="ts" name="layoutUpgrade"> | ||||
| import { reactive, computed, onMounted } from 'vue'; | ||||
| import { useI18n } from 'vue-i18n'; | ||||
| import { storeToRefs } from 'pinia'; | ||||
| import { useThemeConfig } from '/@/stores/themeConfig'; | ||||
| import { Local } from '/@/utils/storage'; | ||||
| 
 | ||||
| // 定义变量内容 | ||||
| const { t } = useI18n(); | ||||
| const storesThemeConfig = useThemeConfig(); | ||||
| const { themeConfig } = storeToRefs(storesThemeConfig); | ||||
| const state = reactive({ | ||||
| 	isUpgrade: true, | ||||
| 	// @ts-ignore | ||||
| 	version: __VERSION__, | ||||
| 	isLoading: false, | ||||
| 	btnTxt: '', | ||||
| }); | ||||
| 
 | ||||
| // 获取布局配置信息 | ||||
| const getThemeConfig = computed(() => { | ||||
| 	return themeConfig.value; | ||||
| }); | ||||
| // 残忍拒绝 | ||||
| const onCancel = () => { | ||||
| 	state.isUpgrade = false; | ||||
| }; | ||||
| // 马上更新 | ||||
| const onUpgrade = () => { | ||||
| 	state.isLoading = true; | ||||
| 	state.btnTxt = t('message.upgrade.btnTwoLoading'); | ||||
| 	setTimeout(() => { | ||||
| 		Local.clear(); | ||||
| 		window.location.reload(); | ||||
| 		Local.set('version', state.version); | ||||
| 	}, 2000); | ||||
| }; | ||||
| // 页面加载时 | ||||
| onMounted(() => { | ||||
| 	setTimeout(() => { | ||||
| 		state.btnTxt = t('message.upgrade.btnTwo'); | ||||
| 	}, 200); | ||||
| }); | ||||
| </script> | ||||
| 
 | ||||
| <style scoped lang="scss"> | ||||
| .upgrade-dialog { | ||||
| 	:deep(.el-dialog) { | ||||
| 		.el-dialog__body { | ||||
| 			padding: 0 !important; | ||||
| 		} | ||||
| 		.el-dialog__header { | ||||
| 			display: none !important; | ||||
| 		} | ||||
| 		.upgrade-title { | ||||
| 			text-align: center; | ||||
| 			height: 130px; | ||||
| 			display: flex; | ||||
| 			align-items: center; | ||||
| 			justify-content: center; | ||||
| 			position: relative; | ||||
| 			&::after { | ||||
| 				content: ''; | ||||
| 				position: absolute; | ||||
| 				background-color: var(--el-color-primary); | ||||
| 				width: 130%; | ||||
| 				height: 130px; | ||||
| 				border-bottom-left-radius: 100%; | ||||
| 				border-bottom-right-radius: 100%; | ||||
| 			} | ||||
| 			.upgrade-title-warp { | ||||
| 				z-index: 1; | ||||
| 				position: relative; | ||||
| 				.upgrade-title-warp-txt { | ||||
| 					color: var(--next-color-white); | ||||
| 					font-size: 22px; | ||||
| 					letter-spacing: 3px; | ||||
| 				} | ||||
| 				.upgrade-title-warp-version { | ||||
| 					background-color: var(--next-color-white); | ||||
| 					font-size: 12px; | ||||
| 					position: absolute; | ||||
| 					display: flex; | ||||
| 					top: -2px; | ||||
| 					right: -50px; | ||||
| 					padding: 2px 4px; | ||||
| 					border-radius: 2px; | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 		.upgrade-content { | ||||
| 			padding: 20px; | ||||
| 			line-height: 22px; | ||||
| 			.upgrade-content-desc { | ||||
| 				color: var(--el-color-info-light-5); | ||||
| 				font-size: 12px; | ||||
| 			} | ||||
| 		} | ||||
| 		.upgrade-btn { | ||||
| 			border-top: 1px solid var(--el-border-color-lighter, #ebeef5); | ||||
| 			display: flex; | ||||
| 			justify-content: space-around; | ||||
| 			padding: 15px 20px; | ||||
| 			.el-button { | ||||
| 				width: 100%; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| </style> | ||||
| @ -91,11 +91,11 @@ export const useThemeConfig = defineStore('themeConfig', { | ||||
| 			// 是否开启 Footer 底部版权信息
 | ||||
| 			isFooter: true, | ||||
| 			// 是否开启灰色模式
 | ||||
| 			isGrayscale: false, | ||||
| 			isGrayscale: true, | ||||
| 			// 是否开启色弱模式
 | ||||
| 			isInvert: false, | ||||
| 			// 是否开启水印
 | ||||
| 			isWartermark: true, | ||||
| 			isWartermark: false, | ||||
| 			// 水印文案
 | ||||
| 			wartermarkText: 'vue-next-admin', | ||||
| 
 | ||||
|  | ||||
| @ -66,7 +66,7 @@ | ||||
| </template> | ||||
| 
 | ||||
| <script setup lang="ts" name="home"> | ||||
| import { reactive, onMounted, ref, watch, nextTick, onActivated } from 'vue'; | ||||
| import { reactive, onMounted, ref, watch, nextTick, onActivated, markRaw } from 'vue'; | ||||
| import * as echarts from 'echarts'; | ||||
| import { storeToRefs } from 'pinia'; | ||||
| import { useThemeConfig } from '/@/stores/themeConfig'; | ||||
| @ -192,7 +192,7 @@ const state = reactive({ | ||||
| // 折线图 | ||||
| const initLineChart = () => { | ||||
| 	if (!state.global.dispose.some((b: any) => b === state.global.homeChartOne)) state.global.homeChartOne.dispose(); | ||||
| 	state.global.homeChartOne = echarts.init(homeLineRef.value, state.charts.theme); | ||||
| 	state.global.homeChartOne = markRaw(echarts.init(homeLineRef.value, state.charts.theme)); | ||||
| 	const option = { | ||||
| 		backgroundColor: state.charts.bgColor, | ||||
| 		title: { | ||||
| @ -274,7 +274,7 @@ const initLineChart = () => { | ||||
| // 饼图 | ||||
| const initPieChart = () => { | ||||
| 	if (!state.global.dispose.some((b: any) => b === state.global.homeChartTwo)) state.global.homeChartTwo.dispose(); | ||||
| 	state.global.homeChartTwo = echarts.init(homePieRef.value, state.charts.theme); | ||||
| 	state.global.homeChartTwo = markRaw(echarts.init(homePieRef.value, state.charts.theme)); | ||||
| 	var getname = ['房屋及结构物', '专用设备', '通用设备', '文物和陈列品', '图书、档案']; | ||||
| 	var getvalue = [34.2, 38.87, 17.88, 9.05, 2.05]; | ||||
| 	var data = []; | ||||
| @ -359,7 +359,7 @@ const initPieChart = () => { | ||||
| // 柱状图 | ||||
| const initBarChart = () => { | ||||
| 	if (!state.global.dispose.some((b: any) => b === state.global.homeCharThree)) state.global.homeCharThree.dispose(); | ||||
| 	state.global.homeCharThree = echarts.init(homeBarRef.value, state.charts.theme); | ||||
| 	state.global.homeCharThree = markRaw(echarts.init(homeBarRef.value, state.charts.theme)); | ||||
| 	const option = { | ||||
| 		backgroundColor: state.charts.bgColor, | ||||
| 		title: { | ||||
|  | ||||
| @ -58,6 +58,7 @@ const viteConfig = defineConfig((mode: ConfigEnv) => { | ||||
| 			__VUE_I18N_LEGACY_API__: JSON.stringify(false), | ||||
| 			__VUE_I18N_FULL_INSTALL__: JSON.stringify(false), | ||||
| 			__INTLIFY_PROD_DEVTOOLS__: JSON.stringify(false), | ||||
| 			__VERSION__: JSON.stringify(process.env.npm_package_version), | ||||
| 		}, | ||||
| 	}; | ||||
| }); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user