npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ekeyrun-public-table

v1.0.36

Published

ekeyrun public table component

Downloads

83

Readme

ekeyrun-public-table

动态查询条件及动态生成table组件

安装组件

npm install ekeyrun-public-table

###组件调用 <tablePage :tableObj="tableObj" :axiosFn="axiosFn" :formObj="formObj" :treeId="treeId" @tableBtnEv="tableBtnEv" :handleIsDisable="handleIsDisable" ref="tableObjForm" :paginationInfo="paginationInfo"> </tablePage>

script里代码块

 import tablePage from 'ekeyrun-public-table',         //引入组件
 import {getDictByTypeCode,getDictByCodeAndParentValue} from '../../../utils/commons';  //引入获取字典值的方法
 export default {
     components: {
         'tablePage':tablePage
     },
    data() {
        return{
            formObj:{                               //可选,传入查询条件
                dataName:[{key:'topic'}],                   //可选,用于查询条件是否包层,如:查询条件根据名称查询:topic:{name:''},则dataName为topic 
                list:[{                             //查询条件集合
                    father:'topic',                 //可选,但是如果dataName有值则必选,值和dataName的值一样
                    type: 'select',                 //必选,input,select,date,time,datetime,daterange
                    value:'',                       //必选,v-model绑定属性
                    label:'状态',                   //必选,显示名称
                    key:'topicStatus',              //必选,查询条件属性名,与接口需要的属性名一致
                    name:'dictName',                //可选,但是下拉框必选,下拉框匹配的属性显示的名称 用于字典表数据的值,
                    parameter:'dictValue',          //可选,但是下拉框必选,下拉框匹配的属性的值 用于字典表数据的值,
                    child:[],                       //可选,集合,三种情况:
                                                        //1、从字典表数据值(name和parameter赋值为字典表数据的属性);
                                                        //2、是静态值,则格式为:child:[{label:'',value:''}]
                                                        //3、取的是联级数据,就是用于el-cascader数据,该数据需要转换成树形结构数据。
                    keys:['provice','area','city'],                        // 可选,但是如果是用于el-cascader,必选,用于查询条件接口需要的属性
                    props:[                         //可选,默认是以下值,如需变更请自定义props的值。
                        value: 'dictValue',         //用于el-cascader必选。与数组里的value值的属性对应
                        label: 'dictName',          //用于el-cascader必选。与数组里的显示值的属性对应
                        children: 'childList',      //用于el-cascader必选。与数组里的下级属性对应
                        checkStrictly: true],       //用于el-cascader必选。是否严格的遵守父子节点不互相关联                        
                    
                }]
             },
            axiosFn: reqGetTopicPageList,           //必选,列表初始化请求函数
            treeId:[                                //可选,如列表需要根据左边树查询, 两种形式
                  {value:'',k:true},                // 第一种:如果只传字符串,设置k为true,直接赋值value值
                  {id:'treeId',value:''},           //第二种格式:如果需要以id属性值传入如需父节点设置father:''可设置多个id ,需要id:'treeId'
            ],
            tableObj:{                              //必选
                type: 'selection',                  //可选,列表第一列的类型,index或selection。index代表序列,selection代表复选框。
                isDisable:true,                     //可选,用于type 为 'selection' 判断列表的checkbox初始化是否需要处理disabled,如需处理,则设置为true 
                list:[],                            //列表数据
                border:false,                       //可选,默认为false,是否带有纵向边框
                title:[{                            //必选        
                    prop : 'topicStatus',           //必选,对应列内容的字段名,
                    label: '状态',                  //必选,显示的标题,
                    align: 'center',                //可选,列对其方式,默认居中,left、center、right
                    width: '',                      //可选,列宽度
                    fixed: '',                      //可选,列是否固定在左侧或者右侧,默认为空
                    formatter: this.onFormatter,    //可选,列数据格式化,类型:function,方法传入的参数(row,type)列格式化数据,type值为上面prop值,主要用于下拉框值匹配,如定义了方法onFormatter,则formatter:this.onFormatter
                    useComponent: 'switch',         //可选,是否组件类型,目前只支持el-switch组件,传入值为:switch
                    switchClass: '' ,               //可选,用于useComponent为switch时,el-switch样式
                    activeColor: '',                //可选,switch 打开时的背景色, 默认绿色
                    inactiveColor:'',               //可选, switch 关闭时的背景色,默认灰色
                    activeText:  '',                //可选, switch 打开时的文本,默认启用
                    inactiveText: '',               //可选, switch 关闭时的文本, 默认关闭
                    activeValue:  '',               //可选,switch 打开时的值,默认为1,
                    inactiveValue:'',               //可选,switch 关闭时的值,默认为0   
                }],
                btn:[{                              //可选,操作按钮
                    name : '编辑',                  //必选,显示名称 如查看、编辑、删除、发布、取消发布
                    type : 'edit',                  //必选,按钮类型:如view、edit、delete、publish、unpublish
                    permission: false,              //必选,权限 true代表有权限,false代表无权限,
                    k : '',                         //可选,需要根据列字段判断的属性名,对应title里的prop的值。如status
                    show : [],                      //可选,数组类型,属性值的判断,数组类型,如属性status的值为1,2则显示,则show[1,2]
                    btnClass : '',                  //可选操作按钮样式
                 }],
                btnWidth:340,                       //可选,操作列定义的列宽度
            },
            code:{},                                //可选,字典数据值必选
            dictionary:[{                           //可选,如有字典数据则需要
                 dictCode:'publish_status',         // 字典数据code值
                 name:'topicStatus',                //与formObj.list中key属性命名一致,如key属性为topicStatus,则name也为topicStatus              
            }],
            paginationInfo:{                        //可选,是否显示分页,默认有分页。
                show: true                          //必选,true显示,false不显示
            },
          
        },
        created() {
            this.dictionaryCode();                 //可选,如需查询字典数据则用
            this.getDictValue(0,1);                //可选,下来框联动,初始化第一个下拉框的值  
        },
        methods:{
            tableBtnEv(type, row) {                //可选用于按钮操作,根据按钮type值传入来进行业务处理,如弹窗,删除等。
            
            },
            onFormatter(row,type){                 //字典值匹配,通用方法,根据type值来返回
                let dictName=''
                this.formObj.list.forEach(item=>{
                    if(item.key===type){
                        item.child.forEach(chil=>{
                            if(Number(row[type]) == Number(chil.dictValue)){
                                dictName =  chil.dictName;
                                return false;
                            }
                        });
                        return false;
                    }
                });
                return dictName;
            },
            dictionaryCode() {                    //如果需要字典数据,从this.dictionary配置里获取
                let n = 0;
                if(this.formObj){
                    if (this.dictionary && this.dictionary.length > 0) {
                        for (let i = 0; i < this.dictionary.length; i++) {
                            getDictByTypeCode(this.dictionary[i].dictCode, (val) => {   //加载数据字典
                                this.code[this.dictionary[i].name] = val;
                                n += 1;
                                if (n === this.dictionary.length) {  //所有字典加载完成后加载表格
                                    for (let j = 0; j < this.formObj.list.length; j++) {
                                        for (let k in this.code) {
                                            if (this.formObj.list[j].key === k) {
                                                this.formObj.list[j].child = this.code[k];
                                            }
                                        }

                                    }
                                }
                            });
                        }
                    }
                }
            },
            getDictValue(dictValue,key){          //可选,用于下拉框联动' 
                if(key === 'applyOrg' || key === 1){ //applyOrg 为第一个下拉框的属性值,organization_type为字典数据的类型。
                    getDictByCodeAndParentValue('organization_type',dictValue || 0, (val) => {
                        if(key === 1){
                            this.formObj.list[1].child = val;
                        }else{
                            this.formObj.list[2].value = ''; 
                            this.formObj.list[2].child = val;
                        }
                    });
                }

            },
            selectChange(dictValue,name){         //可选,下拉框联动必选。
                this.getDictValue(dictValue,name)
            }
        }
    }
}