parent
							
								
									5c0895ed73
								
							
						
					
					
						commit
						0c37e693c2
					
				| @ -1,24 +1,80 @@ | ||||
| /* | ||||
|  * @Author: 卜启缘 | ||||
|  * @Date: 2021-04-22 02:10:31 | ||||
|  * @LastEditTime: 2021-07-05 11:39:10 | ||||
|  * @LastEditors: 卜启缘 | ||||
|  * @Description: 按需导入element-plus | ||||
|  * @FilePath: \vite-vue3-lowcode\src\plugins\element-plus.ts | ||||
|  */ | ||||
| import 'element-plus/packages/theme-chalk/src/base.scss' | ||||
| // import 'element-plus/lib/theme-chalk/index.css'
 | ||||
| // import 'element-plus/lib/theme-chalk/el-popper.css'
 | ||||
| import type { App } from 'vue' | ||||
| import { App, Component } from 'vue' | ||||
| import 'element-plus/dist/index.css' | ||||
| import { | ||||
|   ElAffix, | ||||
|   ElSkeleton, | ||||
|   ElBreadcrumb, | ||||
|   ElBreadcrumbItem, | ||||
|   ElScrollbar, | ||||
|   ElSubMenu, | ||||
|   ElButton, | ||||
|   ElCol, | ||||
|   ElRow, | ||||
|   ElSpace, | ||||
|   ElDivider, | ||||
|   ElCard, | ||||
|   ElDropdown, | ||||
|   ElDialog, | ||||
|   ElMenu, | ||||
|   ElMenuItem, | ||||
|   ElDropdownItem, | ||||
|   ElDropdownMenu, | ||||
|   ElIcon, | ||||
|   ElInput, | ||||
|   ElForm, | ||||
|   ElFormItem, | ||||
|   ElLoading, | ||||
|   ElPopover, | ||||
|   ElPopper, | ||||
|   ElTooltip, | ||||
|   ElDrawer, | ||||
|   ElPagination, | ||||
|   ElAlert, | ||||
|   ElRadioButton, | ||||
|   ElRadioGroup, | ||||
|   ElInfiniteScroll | ||||
| } from 'element-plus' | ||||
| 
 | ||||
| import { ElInfiniteScroll, locale } from 'element-plus' | ||||
| const components = [ | ||||
|   ElAffix, | ||||
|   ElSkeleton, | ||||
|   ElBreadcrumb, | ||||
|   ElBreadcrumbItem, | ||||
|   ElScrollbar, | ||||
|   ElSubMenu, | ||||
|   ElButton, | ||||
|   ElCol, | ||||
|   ElRow, | ||||
|   ElSpace, | ||||
|   ElDivider, | ||||
|   ElCard, | ||||
|   ElDropdown, | ||||
|   ElDialog, | ||||
|   ElMenu, | ||||
|   ElMenuItem, | ||||
|   ElDropdownItem, | ||||
|   ElDropdownMenu, | ||||
|   ElIcon, | ||||
|   ElInput, | ||||
|   ElForm, | ||||
|   ElFormItem, | ||||
|   ElPopover, | ||||
|   ElPopper, | ||||
|   ElTooltip, | ||||
|   ElDrawer, | ||||
|   ElPagination, | ||||
|   ElAlert, | ||||
|   ElRadioButton, | ||||
|   ElRadioGroup | ||||
| ] | ||||
| 
 | ||||
| import lang from 'element-plus/lib/locale/lang/zh-cn' | ||||
| import 'dayjs/locale/zh-cn' | ||||
| const plugins = [ElLoading, ElInfiniteScroll] | ||||
| 
 | ||||
| // 设置语言
 | ||||
| import.meta.env.DEV ? locale(lang) : locale.use(lang) | ||||
| 
 | ||||
| export const setupElementPlus = (app: App) => { | ||||
|   app.use(ElInfiniteScroll) | ||||
| export function setupElementPlus(app: App) { | ||||
|   components.forEach((component: Component) => { | ||||
|     app.component(component.name!, component) | ||||
|   }) | ||||
|   plugins.forEach((plugin) => { | ||||
|     app.use(plugin) | ||||
|   }) | ||||
| } | ||||
|  | ||||
| @ -0,0 +1,67 @@ | ||||
| declare module '*.bmp' { | ||||
|   const src: string | ||||
|   export default src | ||||
| } | ||||
| 
 | ||||
| declare module '*.gif' { | ||||
|   const src: string | ||||
|   export default src | ||||
| } | ||||
| 
 | ||||
| declare module '*.jpg' { | ||||
|   const src: string | ||||
|   export default src | ||||
| } | ||||
| 
 | ||||
| declare module '*.jpeg' { | ||||
|   const src: string | ||||
|   export default src | ||||
| } | ||||
| 
 | ||||
| declare module '*.png' { | ||||
|   const src: string | ||||
|   export default src | ||||
| } | ||||
| 
 | ||||
| declare module '*.webp' { | ||||
|   const src: string | ||||
|   export default src | ||||
| } | ||||
| 
 | ||||
| declare module '*.module.css' { | ||||
|   const classes: { readonly [key: string]: string } | ||||
|   export default classes | ||||
| } | ||||
| 
 | ||||
| declare module '*.module.scss' { | ||||
|   const classes: { readonly [key: string]: string } | ||||
|   export default classes | ||||
| } | ||||
| 
 | ||||
| declare module '*.module.less' { | ||||
|   const classes: { readonly [key: string]: string } | ||||
|   export default classes | ||||
| } | ||||
| 
 | ||||
| declare module '*.module.sass' { | ||||
|   const classes: { readonly [key: string]: string } | ||||
|   export default classes | ||||
| } | ||||
| 
 | ||||
| declare module 'moment/locale/*' { | ||||
|   const LocaleMessage: { [key: string]: any } | ||||
|   export default LocaleMessage | ||||
| } | ||||
| 
 | ||||
| declare module 'ant-design-vue/es/locale-provider/*' { | ||||
|   const LocaleMessage: { [key: string]: any } | ||||
|   export default LocaleMessage | ||||
| } | ||||
| 
 | ||||
| // ant-design-vue/es/base
 | ||||
| declare module 'ant-design-vue/es/base' { | ||||
|   class Base { | ||||
|     static install(vue: typeof Vue): void | ||||
|   } | ||||
|   export default Base | ||||
| } | ||||
| @ -0,0 +1,18 @@ | ||||
| import Vue, { VNode } from 'vue' | ||||
| 
 | ||||
| declare module '*.tsx' { | ||||
|   import Vue from 'compatible-vue' | ||||
|   export default Vue | ||||
| } | ||||
| 
 | ||||
| declare global { | ||||
|   namespace JSX { | ||||
|     // tslint:disable no-empty-interface
 | ||||
|     type Element = VNode | ||||
|     // tslint:disable no-empty-interface
 | ||||
|     type ElementClass = Vue | ||||
|     interface IntrinsicElements { | ||||
|       [elem: string]: any | ||||
|     } | ||||
|   } | ||||
| } | ||||
| @ -0,0 +1,24 @@ | ||||
| declare module '*.vue' { | ||||
|   import { defineComponent } from 'vue' | ||||
|   const component: ReturnType<typeof defineComponent> | ||||
|   export default component | ||||
| } | ||||
| 
 | ||||
| // declare module '*.vue' {
 | ||||
| //     import * as vue from 'vue';
 | ||||
| //     export declare const render: vue.RootRenderFunction<Element | DocumentFragment>
 | ||||
| // }
 | ||||
| 
 | ||||
| // declare module '@vue/runtime-core' {
 | ||||
| //     interface ComponentCustomProperties {
 | ||||
| //         $createLoading: () => any
 | ||||
| //     }
 | ||||
| // }
 | ||||
| 
 | ||||
| declare type Nullable<T> = T | null | ||||
| 
 | ||||
| declare type CustomizedHTMLElement<T> = HTMLElement & T | ||||
| 
 | ||||
| declare type Indexable<T> = { | ||||
|   [key: string]: T | ||||
| } | ||||
| @ -0,0 +1,16 @@ | ||||
| import { ComponentCustomProperties } from 'vue' | ||||
| import { Store } from 'vuex' | ||||
| 
 | ||||
| declare module '@vue/runtime-core' { | ||||
|   // declare your own store states
 | ||||
|   interface State { | ||||
|     count: number | ||||
|   } | ||||
| 
 | ||||
|   // provide typings for `this.$store`
 | ||||
|   interface ComponentCustomProperties { | ||||
|     $store: Store<State> | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| export {} | ||||
					Loading…
					
					
				
		Reference in new issue