1.1.32 • Published 4 months ago

common-list v1.1.32

Weekly downloads
-
License
ISC
Repository
-
Last release
4 months ago

多功能便捷CRUD组件

用于快速搭建CRUD的前端应用, 目前已实现网络的增删改查的请求封装,实现表格数据的筛选,查找,分页等常用功能,使用该组件可以快速开发出业务系统的常用功能界面。

在线Demo

Live Demo 在线演示

安装--Install

$ npm install common-list --save

使用--Usage

1.全局引入

main.js

import { createApp } from 'vue'
import App from './App.vue'
import MyTable from 'common-list'
import router from './router'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css';
import zhCn from 'element-plus/es/locale/lang/zh-cn'
createApp(App).use(ElementPlus, {
    locale: zhCn,
}).use(router).use(MyTable).mount('#app')

2.使用组件

<template>
    <CommonList :datatitle="DemoUrlSet.title" key-field-name="demoID" :table-data="tableData"
      :column-list="DemoColumns" :op-column-width="300" :total-count="tableData.length" searchplaceholder="搜索" :use-select="false">

    </CommonList>
</template>

<script setup lang="ts">

import { InitComponentData} from 'common-list' //初始化组件,获取列表数据
import { DemoColumns,netUtil } from '/@/models/columndata';//字段集合和网络工具类

import { Demo } from "/@/models/index"; //数据对象
import { DemoUrlSet } from "/@/models/urlset";//读取数据的网址对象

const { tableData } = InitComponentData<Demo>(netUtil,DemoUrlSet, 'demoID', null, {});
//RoleCheck()
</script>

3.common-list中的数据类型

export enum SaveType { Add, Edit, Delete, MultiSet, Upload, Check }
export interface KeyValue {
    title: string,
    value: string | number
}

export interface DataColumn { //数据列类型
    title: string,
    fieldName: string,
    placeholder?: string,
    inputType?: string,//input的数据类型,对应input : text,number,date
    options?: KeyValue[],
    isMultiple?: boolean,
    required?: boolean,
    useSwitch?: boolean,
    dataType?: string,
    isMainField?: boolean, //是否需要占用多点显示位置,如35%
    isHideInList?: boolean, //是否不在表格里显示
    isHideInForm?: boolean, //是否不在表单里显示
    isImg?: boolean,
    isDate?: boolean,
    needShowTime?: boolean,
    isWholeRow?: boolean,//是否独占一行!!!
    isRichText?: boolean,
    isFile?: boolean,
    isAutoUpload?: boolean,
    fileLimit?: number,
    useComponent?: boolean,
    canEditInTable?: boolean,
    showInDetail?: boolean,  
}

export class CrudUrlSet {  //api网址集合
    getListApiUrl: string;
    getSingleApiUrl: string;
    addApiUrl: string;
    editApiUrl: string;
    delApiUrl: string;
    checkApiUrl: string;//用于登录
    multiSetApiUrl: string;//批量重置
    resetListApiUrl: string;  //批量重置修复
    importApiUrl: string; //批量导入
    restfulApiUrl: string; //统一api地址,根据http method去辨别!
    keyFieldName: string;
    demoFieldName: string;
    title: string;
    needResetKeysWhenUpdated: string[];
}


export interface FilterData {
    datalist: any[],//这个是数据数组
    selectedlist: any[] | any,//这个选中数据数组
    isMultiple: boolean,//是否可以多选
    onlyLocal?: boolean,//是否只是本地筛选
    placeholder: string,//占位符文本
    filterFieldName: string //列表筛选字段名,这个是必选的
    valueFieldName: string //选项值的字段名
    textFieldName?: string //选项文本的字段名
}

export interface TableListOption<T> {
    tableID?: string,//表格ID,用于导出
    maxHeight?: number,//最大高度
    opColumnWidth?: number, //操作栏宽度,默认200  
    opColumnTitle?: string, //操作栏标题   
    highlightCurrentRow?: boolean,//高亮显示当前行
    noOpColumn?: boolean,//不显示操作栏
    useSelect?: boolean,  //使用选择,默认为true			
    singleSelect?: boolean,//单选,在useSelect为true是时才有意义
    resizable?: boolean, //允许调宽
    canEdit?: boolean,//表格中直接显示编辑,一般是配合editChange方法
    paging?: boolean,//是否分页,数据总数量与tableData的数量不一致时为true,
    searchText?: string,//来自ListHead的搜索文字
    showDelOpBtns?: boolean,//显示删除按钮,默认为true	
    showDetailOpBtns?: boolean,	//显示详情按钮,默认为true	
    showEditOpBtns?: boolean,//显示编辑按钮,默认为true	
    columnList: DataColumn[], //字段属性数组,表格数据根据这个来显示
    tableData: T[], //表格数据源
    totalCount?: number, //数据总数量,如果与tableData的数量不一致时,则显示分页
    downloadFile?: (url: string) => {}, //参数传过来是方法!!
    pageSizes?: number[],//页码设置,默认为[20, 30, 50, 100]
}

export interface ListHeadOption<T> {
    searchplaceholder?: string, //搜索框占位符文字
    sampleFileUrl?: string,//导入的样例文件
    addBtnText?: string, //新增按钮的文本,默认为添加
    tableID?: string,//表格ID,用于导出
    enableBatchSet?: boolean, //支持批量设置
    hasResizeBtn?: boolean, //  显示调整表格宽度的按钮
    enableMultiAdd?: boolean, //支持批量添加
    isCustomRefresh?: boolean, //自定义重新刷新列表,自定义读取数据api
    hasSearchInput?:boolean,//显示搜索框
    showImportBtn?: boolean,//显示导入按钮
    enableExport?: boolean,//显示导出
    enableColumnBtn?: boolean,//管理显示列
    searchFromServer?: boolean,//从服务器上搜索
    filterFromServer?: boolean, //通过在服务器里筛选!!
    showDefaultOpBtns?: boolean,//显示默认按钮,默认为true	
    columnList: DataColumn[], //字段属性数组,表格数据根据这个来显示
    tableData: T[], //表格数据源
    totalCount?: number, //数据总数量,如果与tableData的数量不一致时,则显示分页
    filterObjList?: FilterData[],//筛选数据列表,可以有多个,可选单选或多选	
}

export interface CommonListOption<T> extends TableListOption<T>, ListHeadOption<T> {
    dialogWidth?: number, //对话框宽度,默认1000	
    datatitle?: string, //对话框的标题       
    keyFieldName?: string, //主键字段名
    maxImgSize?: number, // 图片大小最大字节, 默认2 * 1024 * 1024		
    maxVideoSize?: number, // 视频大小最大字节, 默认50 * 1024 * 1024		
    hasListHead?: boolean,//是否包含列表头
    newDialogData?: boolean,  //使用新的对话框数据,默认为true
    showDialogSizeSet?: boolean,//显示对话框大小设置按钮
    showEditInTable?: boolean,//表格中直接显示编辑,一般是配合editChange方法
    containDialog?: boolean,//是否包含对话框,如果只显示数据,可以设置这个为true,已节省组件开销
    showKeepData?: boolean,		//保存之前的表单数据
    isDemo?: boolean, //是否用于demo显示
    addNewObj?: T,  //新建对象
    autoOpenObj?: T,//自动打开的对象,一般为接受其他系统传过来的参数
    listStyle: string,//列表显示方式,分别为table(表格),pic(图片列表),free(自由列表)
    getRowData?: (n: number) => {}, //参数传过来是方法!用于获取单条记录,一般从服务器重新获取!
    settingColumnList?: DataColumn[],//设置后,ListHead的enableBatchSet将为true

}

4.对应的Demo模型类

export class Demo {
    demoID: number;
    name: string;
    demoDesc: string;
    constructor(name: string) {

        this.demoID = 0;
        this.demoDesc = ''
        this.name = name
    }
}
export const DemoColumns = ref<DataColumn[]>([
    {
        title: '标题',
        fieldName: 'name',

    },
    {
        title: '内容',
        fieldName: 'demoDesc',
        isHideInList: true
    }
])

export const DemoUrlRestfulSet: CrudUrlSet = {
    restfulApiUrl:'/api/demo/rest',
    importApiUrl: '/api/demo/importdemos',
    keyFieldName: 'demoID',
    title: '演示'
}

CommonList常用属性说明

参数说明类型可选值默认值
tableData表格数据列表,数组Array数组[]
column-list列集合Array0
key-field-name主键字段名Stringtrue
datatitle数据标题Booleanfalse
use-select是否开启选择数据Booleanfalse
total-count数据条数Number

##插槽

插槽名称说明
otherbtns自定义操作按钮系列
headTitle自定义表头区域
opColumn表格操作列行内的自定义操作
1.1.32

4 months ago

1.1.31

5 months ago

1.1.30

6 months ago

1.1.29

6 months ago

1.1.28

9 months ago

1.1.27

9 months ago

1.1.26

9 months ago

1.1.25

9 months ago

1.1.24

10 months ago

1.1.23

12 months ago

1.1.22

12 months ago

1.1.21

12 months ago

1.1.19

1 year ago

1.1.18

1 year ago

1.1.20

1 year ago

1.1.17

1 year ago

1.1.16

1 year ago

1.1.15

1 year ago

1.1.14

1 year ago

1.1.13

1 year ago

1.1.12

1 year ago

1.1.11

1 year ago

1.1.10

1 year ago

1.1.9

1 year ago

1.1.8

1 year ago

1.1.7

1 year ago

1.1.6

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.1.5

1 year ago

1.1.4

1 year ago

1.1.3

1 year ago

1.1.2

1 year ago

1.0.50

1 year ago

1.0.48

1 year ago

1.0.49

1 year ago

1.0.47

1 year ago

1.0.46

1 year ago

1.0.45

1 year ago

1.0.44

1 year ago

1.0.43

1 year ago

1.0.42

1 year ago

1.0.39

1 year ago

1.0.38

1 year ago

1.0.40

1 year ago

1.0.41

1 year ago

1.0.37

1 year ago

1.0.36

1 year ago

1.0.33

1 year ago

1.0.32

1 year ago

1.0.31

1 year ago

1.0.35

1 year ago

1.0.34

1 year ago

1.0.26

1 year ago

1.0.29

1 year ago

1.0.28

1 year ago

1.0.27

1 year ago

1.0.30

1 year ago

1.0.25

1 year ago

1.0.24

1 year ago

1.0.23

1 year ago

1.0.22

1 year ago

1.0.21

1 year ago

1.0.19

1 year ago

1.0.18

1 year ago

1.0.20

1 year ago

1.0.17

1 year ago

1.0.16

1 year ago

1.0.15

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago

1.0.9

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.11

1 year ago

1.0.10

1 year ago

1.0.14

1 year ago

1.0.13

1 year ago

1.0.12

1 year ago

0.1.9

2 years ago

0.1.8

2 years ago

0.1.7

2 years ago

0.0.119

3 years ago

0.0.128

3 years ago

0.0.127

3 years ago

0.0.126

3 years ago

0.0.125

3 years ago

0.0.120

3 years ago

0.0.124

3 years ago

0.0.123

3 years ago

0.0.122

3 years ago

0.0.121

3 years ago

0.1.0

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.0.106

3 years ago

0.0.105

3 years ago

0.0.104

3 years ago

0.0.103

3 years ago

0.0.109

3 years ago

0.0.108

3 years ago

0.0.107

3 years ago

0.0.102

3 years ago

0.0.101

3 years ago

0.0.100

3 years ago

0.0.117

3 years ago

0.0.116

3 years ago

0.0.115

3 years ago

0.0.114

3 years ago

0.0.118

3 years ago

0.0.113

3 years ago

0.0.112

3 years ago

0.0.111

3 years ago

0.0.110

3 years ago

0.0.95

3 years ago

0.0.96

3 years ago

0.0.97

3 years ago

0.0.98

3 years ago

0.0.99

3 years ago

0.0.90

3 years ago

0.0.91

3 years ago

0.0.92

3 years ago

0.0.93

3 years ago

0.0.94

3 years ago

0.0.84

3 years ago

0.0.85

3 years ago

0.0.86

3 years ago

0.0.87

3 years ago

0.0.88

3 years ago

0.0.89

3 years ago

0.0.83

3 years ago

0.0.40

3 years ago

0.0.41

3 years ago

0.0.42

3 years ago

0.0.43

3 years ago

0.0.44

3 years ago

0.0.45

3 years ago

0.0.46

3 years ago

0.0.47

3 years ago

0.0.80

3 years ago

0.0.81

3 years ago

0.0.82

3 years ago

0.0.37

3 years ago

0.0.38

3 years ago

0.0.39

3 years ago

0.0.73

3 years ago

0.0.74

3 years ago

0.0.75

3 years ago

0.0.76

3 years ago

0.0.77

3 years ago

0.0.78

3 years ago

0.0.79

3 years ago

0.0.35

3 years ago

0.0.36

3 years ago

0.0.70

3 years ago

0.0.71

3 years ago

0.0.72

3 years ago

0.0.62

3 years ago

0.0.63

3 years ago

0.0.64

3 years ago

0.0.65

3 years ago

0.0.66

3 years ago

0.0.67

3 years ago

0.0.68

3 years ago

0.0.69

3 years ago

0.0.60

3 years ago

0.0.61

3 years ago

0.0.59

3 years ago

0.0.51

3 years ago

0.0.52

3 years ago

0.0.53

3 years ago

0.0.54

3 years ago

0.0.55

3 years ago

0.0.56

3 years ago

0.0.57

3 years ago

0.0.58

3 years ago

0.0.50

3 years ago

0.0.48

3 years ago

0.0.49

3 years ago

0.0.34

3 years ago

0.0.33

3 years ago

0.0.32

3 years ago

0.0.31

3 years ago

0.0.30

3 years ago

0.0.29

3 years ago

0.0.28

3 years ago

0.0.27

3 years ago

0.0.26

3 years ago

0.0.25

3 years ago

0.0.24

3 years ago

0.0.23

3 years ago

0.0.22

3 years ago

0.0.21

3 years ago

0.0.20

3 years ago

0.0.19

3 years ago

0.0.18

3 years ago

0.0.17

3 years ago

0.0.16

3 years ago

0.0.15

3 years ago

0.0.14

3 years ago

0.0.13

3 years ago

0.0.12

3 years ago

0.0.11

3 years ago

0.0.10

3 years ago

0.0.9

3 years ago

0.0.8

3 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.5

3 years ago

0.0.4

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago