/** * @program: kicc-ui * @description: 全局注册组件 * @author: wangxiang4 * @create: 2022/4/26 */ import type { App } from 'vue'; import { Icon } from './Icon'; import { Button } from './Button'; import { Button as AntButton, Select, Alert, Checkbox, DatePicker, TimePicker, Calendar, Radio, Switch, Card, List, Tabs, Descriptions, Tree, Table, Divider, Modal, Drawer, TreeSelect, Dropdown, Tag, Tooltip, Badge, Popover, Upload, Transfer, Steps, PageHeader, Result, Empty, Avatar, Menu, Breadcrumb, Form, Input, Row, Col, Spin, Space, Layout, Collapse, Slider, InputNumber, Carousel, Popconfirm, Skeleton, Cascader, Rate, } from 'ant-design-vue'; // 注册dayjs import dayjs from 'dayjs'; import relativeTime from 'dayjs/plugin/relativeTime'; import customParseFormat from 'dayjs/plugin/customParseFormat'; // 注册vxeTable import VXETable from 'vxe-table'; import VXETablePluginAntd from 'vxe-table-plugin-antd'; import VXETablePluginExportXLSX from 'vxe-table-plugin-export-xlsx'; const compList = [AntButton.Group, Icon]; export function registerGlobComp(app: App) { compList.forEach((comp) => { app.component(comp.name || comp.displayName, comp); }); app.use(Select) .use(Alert) .use(Button) .use(Breadcrumb) .use(Checkbox) .use(DatePicker) .use(TimePicker) .use(Calendar) .use(Radio) .use(Switch) .use(Card) .use(List) .use(Descriptions) .use(Tree) .use(TreeSelect) .use(Table) .use(Divider) .use(Modal) .use(Drawer) .use(Dropdown) .use(Tag) .use(Tooltip) .use(Badge) .use(Popover) .use(Upload) .use(Transfer) .use(Steps) .use(PageHeader) .use(Result) .use(Empty) .use(Avatar) .use(Menu) .use(Tabs) .use(Form) .use(Input) .use(Row) .use(Col) .use(Spin) .use(Space) .use(Layout) .use(Collapse) .use(Slider) .use(InputNumber) .use(Carousel) .use(Popconfirm) .use(Skeleton) .use(Cascader) .use(Rate) .use(VXETable); VXETable.use(VXETablePluginAntd) .use(VXETablePluginExportXLSX); dayjs.locale('zh-cn'); dayjs.extend(relativeTime); dayjs.extend(customParseFormat); app.config.globalProperties.$dayjs = dayjs; app.provide('$dayjs', dayjs); }