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