mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-11-04 20:28:44 +08:00 
			
		
		
		
	feat: add vue3(element-plus)
This commit is contained in:
		
							
								
								
									
										1
									
								
								yudao-ui-admin-vue3/src/plugins/animate.css/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								yudao-ui-admin-vue3/src/plugins/animate.css/index.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
import 'animate.css'
 | 
			
		||||
							
								
								
									
										41
									
								
								yudao-ui-admin-vue3/src/plugins/echarts/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								yudao-ui-admin-vue3/src/plugins/echarts/index.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,41 @@
 | 
			
		||||
import * as echarts from 'echarts/core'
 | 
			
		||||
 | 
			
		||||
import {
 | 
			
		||||
  BarChart,
 | 
			
		||||
  LineChart,
 | 
			
		||||
  PieChart,
 | 
			
		||||
  MapChart,
 | 
			
		||||
  PictorialBarChart,
 | 
			
		||||
  RadarChart
 | 
			
		||||
} from 'echarts/charts'
 | 
			
		||||
 | 
			
		||||
import {
 | 
			
		||||
  TitleComponent,
 | 
			
		||||
  TooltipComponent,
 | 
			
		||||
  GridComponent,
 | 
			
		||||
  PolarComponent,
 | 
			
		||||
  AriaComponent,
 | 
			
		||||
  ParallelComponent,
 | 
			
		||||
  LegendComponent
 | 
			
		||||
} from 'echarts/components'
 | 
			
		||||
 | 
			
		||||
import { CanvasRenderer } from 'echarts/renderers'
 | 
			
		||||
 | 
			
		||||
echarts.use([
 | 
			
		||||
  LegendComponent,
 | 
			
		||||
  TitleComponent,
 | 
			
		||||
  TooltipComponent,
 | 
			
		||||
  GridComponent,
 | 
			
		||||
  PolarComponent,
 | 
			
		||||
  AriaComponent,
 | 
			
		||||
  ParallelComponent,
 | 
			
		||||
  BarChart,
 | 
			
		||||
  LineChart,
 | 
			
		||||
  PieChart,
 | 
			
		||||
  MapChart,
 | 
			
		||||
  CanvasRenderer,
 | 
			
		||||
  PictorialBarChart,
 | 
			
		||||
  RadarChart
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
export default echarts
 | 
			
		||||
							
								
								
									
										17
									
								
								yudao-ui-admin-vue3/src/plugins/elementPlus/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								yudao-ui-admin-vue3/src/plugins/elementPlus/index.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
import type { App } from 'vue'
 | 
			
		||||
// 需要全局引入一些组件,如ElScrollbar,不然一些下拉项样式有问题
 | 
			
		||||
import { ElLoading, ElScrollbar, ElButton } from 'element-plus'
 | 
			
		||||
 | 
			
		||||
const plugins = [ElLoading]
 | 
			
		||||
 | 
			
		||||
const components = [ElScrollbar, ElButton]
 | 
			
		||||
 | 
			
		||||
export const setupElementPlus = (app: App<Element>) => {
 | 
			
		||||
  plugins.forEach((plugin) => {
 | 
			
		||||
    app.use(plugin)
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  components.forEach((component) => {
 | 
			
		||||
    app.component(component.name, component)
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										72
									
								
								yudao-ui-admin-vue3/src/plugins/elementPlus/message.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								yudao-ui-admin-vue3/src/plugins/elementPlus/message.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,72 @@
 | 
			
		||||
import { ElMessage, ElMessageBox, ElNotification } from 'element-plus'
 | 
			
		||||
import { useI18n } from '@/hooks/web/useI18n'
 | 
			
		||||
const { t } = useI18n() // 国际化
 | 
			
		||||
 | 
			
		||||
const message = {
 | 
			
		||||
  // 消息提示
 | 
			
		||||
  msg(content: string) {
 | 
			
		||||
    ElMessage.info(content)
 | 
			
		||||
  },
 | 
			
		||||
  // 错误消息
 | 
			
		||||
  msgError(content: string) {
 | 
			
		||||
    ElMessage.error(content)
 | 
			
		||||
  },
 | 
			
		||||
  // 成功消息
 | 
			
		||||
  msgSuccess(content: string) {
 | 
			
		||||
    ElMessage.success(content)
 | 
			
		||||
  },
 | 
			
		||||
  // 警告消息
 | 
			
		||||
  msgWarning(content: string) {
 | 
			
		||||
    ElMessage.warning(content)
 | 
			
		||||
  },
 | 
			
		||||
  // 弹出提示
 | 
			
		||||
  alert(content: string) {
 | 
			
		||||
    ElMessageBox.alert(content, t('common.confirmTitle'))
 | 
			
		||||
  },
 | 
			
		||||
  // 错误提示
 | 
			
		||||
  alertError(content: string) {
 | 
			
		||||
    ElMessageBox.alert(content, t('common.confirmTitle'), { type: 'error' })
 | 
			
		||||
  },
 | 
			
		||||
  // 成功提示
 | 
			
		||||
  alertSuccess(content: string) {
 | 
			
		||||
    ElMessageBox.alert(content, t('common.confirmTitle'), { type: 'success' })
 | 
			
		||||
  },
 | 
			
		||||
  // 警告提示
 | 
			
		||||
  alertWarning(content: string) {
 | 
			
		||||
    ElMessageBox.alert(content, t('common.confirmTitle'), { type: 'warning' })
 | 
			
		||||
  },
 | 
			
		||||
  // 通知提示
 | 
			
		||||
  notify(content: string) {
 | 
			
		||||
    ElNotification.info(content)
 | 
			
		||||
  },
 | 
			
		||||
  // 错误通知
 | 
			
		||||
  notifyError(content: string) {
 | 
			
		||||
    ElNotification.error(content)
 | 
			
		||||
  },
 | 
			
		||||
  // 成功通知
 | 
			
		||||
  notifySuccess(content: string) {
 | 
			
		||||
    ElNotification.success(content)
 | 
			
		||||
  },
 | 
			
		||||
  // 警告通知
 | 
			
		||||
  notifyWarning(content: string) {
 | 
			
		||||
    ElNotification.warning(content)
 | 
			
		||||
  },
 | 
			
		||||
  // 确认窗体
 | 
			
		||||
  confirm(content: string) {
 | 
			
		||||
    return ElMessageBox.confirm(content, t('common.confirmTitle'), {
 | 
			
		||||
      confirmButtonText: t('common.ok'),
 | 
			
		||||
      cancelButtonText: t('common.cancel'),
 | 
			
		||||
      type: 'warning'
 | 
			
		||||
    })
 | 
			
		||||
  },
 | 
			
		||||
  // 提交内容
 | 
			
		||||
  prompt(content: string) {
 | 
			
		||||
    return ElMessageBox.prompt(content, t('common.confirmTitle'), {
 | 
			
		||||
      confirmButtonText: t('common.ok'),
 | 
			
		||||
      cancelButtonText: t('common.cancel'),
 | 
			
		||||
      type: 'warning'
 | 
			
		||||
    })
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export default message
 | 
			
		||||
							
								
								
									
										3
									
								
								yudao-ui-admin-vue3/src/plugins/svgIcon/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								yudao-ui-admin-vue3/src/plugins/svgIcon/index.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
import 'virtual:svg-icons-register'
 | 
			
		||||
 | 
			
		||||
import '@purge-icons/generated'
 | 
			
		||||
							
								
								
									
										3
									
								
								yudao-ui-admin-vue3/src/plugins/vueI18n/helper.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								yudao-ui-admin-vue3/src/plugins/vueI18n/helper.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
export const setHtmlPageLang = (locale: LocaleType) => {
 | 
			
		||||
  document.querySelector('html')?.setAttribute('lang', locale)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										42
									
								
								yudao-ui-admin-vue3/src/plugins/vueI18n/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								yudao-ui-admin-vue3/src/plugins/vueI18n/index.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
			
		||||
import type { App } from 'vue'
 | 
			
		||||
import { createI18n } from 'vue-i18n'
 | 
			
		||||
import { useLocaleStoreWithOut } from '@/store/modules/locale'
 | 
			
		||||
import type { I18n, I18nOptions } from 'vue-i18n'
 | 
			
		||||
import { setHtmlPageLang } from './helper'
 | 
			
		||||
 | 
			
		||||
export let i18n: ReturnType<typeof createI18n>
 | 
			
		||||
 | 
			
		||||
const createI18nOptions = async (): Promise<I18nOptions> => {
 | 
			
		||||
  const localeStore = useLocaleStoreWithOut()
 | 
			
		||||
  const locale = localeStore.getCurrentLocale
 | 
			
		||||
  const localeMap = localeStore.getLocaleMap
 | 
			
		||||
  const defaultLocal = await import(`../../locales/${locale.lang}.ts`)
 | 
			
		||||
  const message = defaultLocal.default ?? {}
 | 
			
		||||
 | 
			
		||||
  setHtmlPageLang(locale.lang)
 | 
			
		||||
 | 
			
		||||
  localeStore.setCurrentLocale({
 | 
			
		||||
    lang: locale.lang
 | 
			
		||||
    // elLocale: elLocal
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  return {
 | 
			
		||||
    legacy: false,
 | 
			
		||||
    locale: locale.lang,
 | 
			
		||||
    fallbackLocale: locale.lang,
 | 
			
		||||
    messages: {
 | 
			
		||||
      [locale.lang]: message
 | 
			
		||||
    },
 | 
			
		||||
    availableLocales: localeMap.map((v) => v.lang),
 | 
			
		||||
    sync: true,
 | 
			
		||||
    silentTranslationWarn: true,
 | 
			
		||||
    missingWarn: false,
 | 
			
		||||
    silentFallbackWarn: true
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export const setupI18n = async (app: App<Element>) => {
 | 
			
		||||
  const options = await createI18nOptions()
 | 
			
		||||
  i18n = createI18n(options) as I18n
 | 
			
		||||
  app.use(i18n)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										3
									
								
								yudao-ui-admin-vue3/src/plugins/windi.css/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								yudao-ui-admin-vue3/src/plugins/windi.css/index.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
import 'virtual:windi.css'
 | 
			
		||||
 | 
			
		||||
import 'virtual:windi-devtools'
 | 
			
		||||
		Reference in New Issue
	
	Block a user