14 changed files with 1130 additions and 1113 deletions
@ -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 {} |
|||
File diff suppressed because it is too large
Loading…
Reference in new issue