1.0.27 • Published 4 months ago

devecoui-plus v1.0.27

Weekly downloads
-
License
MIT
Repository
-
Last release
4 months ago
  • 💪 Vue 3 Composition API
  • 🔥 Written in TypeScript

基本介绍

devecoui-plus 是 devecoui的升级版本,优化了性能和属性引用。 本ui基于element-plus组件进行扩展,可以快速实现列表等功能开发,包含了数据处理、分页、表头吸顶、滚动条吸底、拖拽排序等复杂逻辑,并且插件中封装了许多方法类可直接使用,后续会不断进行完善。

入门指南

由于组件是基于 element-plus 进行拓展的,所以需要首先安装 element-plus,若项目已存在可忽略,无需指定特定版本。

npm install element-plus

已经存在 element-plus 后,再安装当前组件库。

npm install devecoui-plus

全部安装完成后在 src/main.js 中引用配置,示例如下:

import {createApp} from 'vue';
import App from './App.vue';
import router from './router';
import ElementPlus from 'element-plus';
import 'element-plus/dist/index.css';//必须引入
import zhCn from 'element-plus/dist/locale/zh-cn.mjs';// 此处是element-plus汉化
import DevecouiPlus from "devecoui-plus";//必须引入
import 'devecoui-plus/dist/style.css';//必须引入

const app = createApp(App);
app.use(createPinia());
app.use(router);
app.use(ElementPlus, {locale: zhCn});
app.use(DevecouiPlus);//必须引入
app.mount('#app');

第一步:在 src 目录下新建文件夹 config,如果已存在可忽略。

第二步:在 config 文件夹下新增文件 devecoui.fn.ts,内容如下:

import type {DevSearchTableProps} from 'devecoui-plus'

/**
 * DevSearchTable组件调用接口后处理返回的数据:默认情况下是取结果中的data内容。
 * @param res - 调用接口后返回的完整数据(注:如果axios处理了结果数据res返回的是处理后的内容)。
 * @param props - DevSearchTable组件的props。
 * @param type- data表示要处理接口返回的列表数据,total表示要处理接口返回的总条数。
 * @returns 默认返回值为接口回调data内容。
 */
function devSearchTableFieldsFn(res: any, props: DevSearchTableProps, type: 'data'): object[];
function devSearchTableFieldsFn(res: any, props: DevSearchTableProps, type: 'total'): number;
function devSearchTableFieldsFn(res: any, props: DevSearchTableProps, type: 'data' | 'total'): object[] | number {
    const result = res.data;
    if (type === 'data') {
        if (props.isPagination) {
            return result[props.dataKey || 'list'] as object[];
        } else {
            return result as object[];
        }
    }
    if (type === 'total') {
        if (props.isPagination) {
            return result[props.totalKey || 'total'] * 1 || 0 as number;
        } else {
            return 0;
        }
    }
    return [];
}

/**
 * DevSelect组件调用接口后处理返回的数据:默认情况下是取结果中的data内容。
 * @param res
 * @returns 默认返回值为接口回调data内容。
 */
function devSelectFieldsFn(res: any) {
    return res.data || []
}


/**
 * DevCascader 组件调用接口后处理返回的数据:默认情况下是取结果中的data内容。
 */
function devCascaderFieldsFn(res: any) {
    return res.data || []
}

/**
 * DevDownload组件调用接口后处理返回的数据:默认情况下是取结果中的data内容。
 * @param res
 */
function devDownloadFieldsFn(res: any) {
    return res.data || {}
}


export const fnConfig = {
    devSearchTableFieldsFn,
    devSelectFieldsFn,
    devCascaderFieldsFn,
    devDownloadFieldsFn
};

第三步:在 config 文件夹下新增文件 devecoui.styles.ts,内容如下:

export const stylesConfig = {
    // 影响 dev-search-table 组件 和 dev-form-table 组件
    elTableProps: {
        rowKey: 'id',
        border: true,
        style: {width: '100%'},
        headerCellStyle: {background: '#eff3f6', textAlign: 'center'},
    },
    // 影响 dev-search-table 组件下方的页码
    devSearchTablePaginationProps: {
        layout: 'total, sizes, prev, pager, next',
        pageSizes: [10, 20, 50, 100],
        background: true
    },
    // 影响 dev-select 组件 dev-select-mutex 组件
    elSelectProps: {
        style: {width: '100%'},
        clearable: true,
        placeholder: '请选择',
        tagType: 'primary'
    },
    // 影响 dev-date-picker 组件
    elDatePickerProps: {
        style: {width: '100%'},
        type: 'datetimerange',
        clearable: true,
        placeholder: '请选择',
        rangeSeparator: '至',
        startPlaceholder: '开始时间',
        endPlaceholder: '结束时间',
        valueFormat: 'YYYY-MM-DD HH:mm:ss'
    },
    // 影响 dev-search-form 组件 和 dev-form-table 组件 中的表单部分
    elFormProps: {},
    // 影响 dev-cascader 组件 和 dev-cascader-mutex 组件
    elCascaderProps: {
        style: {width: '100%'},
        tagType: 'primary',
        clearable: true,
        props: {
            emitPath: true,
            multiple:false,
            value: 'value',
            label: 'label',
            children: 'children',
            disabled: 'disabled'
        }
    },
    // 影响 dev-copy 组件鼠标悬浮提示
    elTooltipProps: {
        effect: "dark",
    },
    // 影响 dev-input 组件
    elInputProps: {
        clearable: true, // 是否可清空
        style: {width: '100%'},
        placeholder: '请输入',
    },
};

第四步:在 config 文件夹下新增文件 devecoui.config.ts,内容如下:

import {stylesConfig} from './devecoui.style'
import {fnConfig} from './devecoui.fn'

export const defaultConfig = {
    ...stylesConfig,
    ...fnConfig
};

第五步:在 src/main.js 中引入配置文件,需要将刚才的配置文件引入,并且修改devecoui组件注册代码,示例如下:

import { defaultConfig } from '@/config/devecoui.config';// 加一句这个(引入配置文件)

app.use(DevecouiPlus, defaultConfig); // 修改这里

官网地址

https://devecoui.com/

1.0.27

4 months ago

1.0.26

5 months ago

1.0.25

5 months ago

1.0.22

5 months ago

1.0.24

5 months ago

1.0.23

5 months ago

1.0.21

5 months ago

1.0.2

5 months ago

1.0.1

5 months ago