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 🙏

© 2026 – Pkg Stats / Ryan Hefner

kis-el-plus

v1.0.6

Published

Keep it simple for element plus

Readme

kis-el-plus

Introduce

kis-el-plus Keep It Simple for Element Plus This package privides:

  • Some components which base on the Element plus
  • A directive v-auth
  • A global attribute $api for HTTP request
  • A global attribute $hint for friendly tips
  • A global attribute $m with some methods

Using

1. Installation

npm install kis-el-plus

2. In main.js

import {kisElplus} from "kis-el-plus"
app.use(kisElplus,{
    baseUrl:"/api",  //axios.default.baseURL
    apiContext : require.context("@/api", false, /\.js$/), //http api
    apiResponseErrorInterceptor : function(err){
        //axios response error interceptor will be called when the response is failed;
    },
    apiRequestInterceptor: function(config){
        //axios request interceptor
    }
});

3. Main Components Using

ks-table-loader

<template>
     <ks-table-loader
         pageable
         multiSelect
         :columns="ui.columns"
         :buttons="ui.buttons"
         :data="tableData"
         :privileges="$store.getters.privileges"
         @edit="doEdit"
         @delete="doDelete"
         :query-condition="qryCondition"
         @currentPageChanged="doQuery"
         @multi-select="multiSelect">
     </ks-table-loader>
 </template>
 <script>
     export default {
         setup(props, context){
         const tableData = ref([]);
         const ui = reactive({
             columns: [
                 {
                     prop: 'p1',
                     label: 'Label1',
                     width: 150,
                 },
                 {
                     prop: 'p2',
                     label: 'Label2',
                 },
             ],
             buttons: [
                 {
                     type: "success",
                     label: "Edit",
                     event: "edit",
                     code: 1001
                 },
                 {
                     type: "danger",
                     label: "Delete",
                     event: "delete",
                     code: 1002
                 }
             ],
         });
         const qryCondition = reactive({
             pageNo: 1,
             pageSize: 10,
             totalCount:0,
             findContent: ''
         });
         const multiSelect = function(selection){
         };
         return{
             ui,
             qryCondition,
             doQuery,
             doEdit,
             doDelete,
             multiSelect,
             tableData
         }
     },
 </script>
  • Attributes

    |Attirbute|Description|default| |---|---|---| |queryCondition|query condition,an Object width pageNo,pageSize,totalCount|| |data|Table data,See the data attribute of el-table || |columns|table columns|| |privileges|privides list|| |buttons|action buttons that will be diaplayed on the action column|| |maxHeight|See the max-height attribute of el-table|| |height|See the height attribute of el-table|| |actionColumnWidth|the action column width|| |pageable|Whether paging|false| |highlightCurrentRow|See the highlight-current-row attribute of el-table|| |multiSelect|whether support multiple select|false| |refName|the ref name of table|null| |rowClassName|See the attribue row-class-name of el-talbe||

    columns: define the array of columns,the element is an object with attribues:

    • prop:See the prop attribute of el-talbe table-column attributes
    • label:See the lable attribute of el-talbe table-column attributes
    • width: See the width attribute of el-talbe table-column attributes
    • headerAlign: See the header-align attribute of el-talbe table-column attributes
    • align:See the align attribute of el-talbe table-column attributes
    • formatter:a function that format the output
    • slot:define the named slot column,and the name of slot is same with prop, slot attribute includes index and row
    • image diaplay an image

    buttons:

    • type:See the type attribute of el-button
    • label:define the label of button
    • code: define the function code of button
    • event:define the click event name
    • width:define the width of button
  • Events

    |Event Name|Description|Parameters| |---|---|---| |currentPageChanged|See the evet current-change of el-table|| |multiSelect|See the event selection-change of el-table|| |rowDoubleClick|See the event row-dblclick of el-table|| |selfdefine events|the events that defined by the buttons attribute|index, row|

ks-form-loader

<template>
    <ks-dialog :title="title" v-model:visible="visible" :ok="saveOk" :cancel="doCancel">
        <ks-form-loader
            ref="editForm" 
            :ui="ui.form" 
            :model="formData">
        </ks-form-loader>
    </ks-dialog>
</template>
<script>
    export default {
        setup(props, context) {
            const ui = reactive({
                form:[
                    {
                        label: "Lable1",
                        type: "input",
                        model: "ipAddress",
                        rules: [{ required: true, message: "null" }],
                    },
                    {
                        label: "Label2",
                        type: "input",
                        model: "serverName",
                    },
                    {
                        label: "Label3",
                        type: "input",
                        model: "description",
                    },
                ]
            });
            const formData = reactive(props.data);
            const editForm = ref(null)
            const saveOk = function () {
                editForm.value.validate(()=>{
                    ...
                });
            };
            const doCancel = function(){
                context.emit("update:visible",false);
            }
            return {
                ui,
                editForm,
                formData,
                saveOk,
                doCancel,
            };
        },
    };
</script>
<style>
</style>
  • Attributes |Attirbute|Description|default| |---|---|---| |inline|See the inline attribute of el-form|false| |labelWidth|See the label-width attribute of el-form|| |model|See the model attribute of el-form|| |ui|array used to define the form||

ui: define the array of form item,the element is an object with attribues:

  • label:See the label attribute of el-form form item Attributes
  • model:binding value
  • clearable:whether to show clear button
  • password:whether to show toggleable password input,default false
  • multilines:whether to enter multiple lines of text information,only for input
  • placeholder:placeholder
  • disabled:whether to be disabled
  • maxlength:the max length,only for input
  • rules:Validation rules
  • source:only be used when the type is one of "radio","checkbox" and "select". e.g. {valueField: "id",labelField: "label",data: [{id:1,label:"tt"},{id:2,label:"mm"}]}
  • autosize:See the autosize attribute of el-input
  • type: |value|description| |---|---| |"input"|el-input| |"date"|el-date-picker| |"datetime"|el-date-picker| |"switch"|el-switch| |"daterange"|el-date-picker| |"radio"|el-radio-group| |"checkbox"|el-checkbox-group| |"inputnumber"|el-input-number| |"select"|el-select| |"upload"|ks-upload| |"rate"|el-rate| |"slot"|slot name is setted the value of model attribute|

ks-toolbar

     <ks-toolbar>
             <el-button type="primary"
                 size="small"
                 @click="doNew">New</el-button>
             <el-button type="success"
                 size="small"
                 @click="doNew">Edit</el-button>
     </ks-toolbar>
  • Attributes |Attirbute|Description|default| |---|---|---| |justify-content|Alignment style,[start |end|center]|start|

ks-timer

<ks-timer @task="doTimer" :interval="1000"></ks-timer>
  • Attributes | Attribute | Description | default | | --------- | --------------------- | ------- | | interval | the interval of Timer | 1000ms |

  • Event

    | Event | Description | | ----- | --------------------------------------------- | | task | scheduled task is to be executed by the timer |

ks-uploader

<ks-upload url="/file/upload" :maxsize="20" @success="doImportSuccess">
	<el-button type="warning" size="small">上传</el-button>
</ks-upload>
  • Attributes | Attribute | Description | Default | | --------- | ----------------------------------- | ------- | | url | upload url | | | maxsize | max size of the file to be uploaded | 10M |

  • Slots

    | Name | Description | | ------- | ------------------------- | | default | customize default content |

  • Events

    | Event | Description | | ------- | ----------------------------------------- | | success | hook function when uploaded successfully. |

4. Directives

v-auth

 <el-button type="primary"
            size="small"
            v-auth:[$store.getters.privileges]="$gl.au_wm_add"
            @click="doNewMask">新建</el-button>

​ The directive argument is an array of permission codes. And the directive value is the permission code that is related to the DOM elements.

5. Global $api

9de6146cbeb13cac0e711261d775a79ecda43e40 2ccfd36cb880518e7ca0aff6b62192600ce42093

In main.js:

import {kisElplus} from "kis-el-plus"
app.use(kisElplus,{
    baseUrl:"/api",
    apiContext : require.context("@/api", false, /\.js$/)
});
  • Set axios baseURL with the options baseUrl
  • Using the function request.context to set the option apiContext. The first parameter is the directory of API js files. The API files will be delegated by the global $api . The file name will be one of attributes of the object $api.
  • The API js files should import http module(provides methods : get,post,delete,post,postFormData) from this package. And API function should be defined like:
    function(data){
        return http.post(url,data);  //return a promise
    }

e.g.

sec.js

import {http} from "kis-el-plus"
export default {
    login(data){
        return http.post("/login",data);
    },
}

caller.js

    setup(props,context) {
        const {appContext: {config: {globalProperties: global}}} = getCurrentInstance();
        global.$api.sec.login({username:"aaa",password:"11111"}).then(
        (data) => {
            //success
        },
        (err)=>{
            //failed
        }  
    );
    }
    

6. Global $hint

|method|Parameters|description| |---|---|---| |confirm|param:{title,yesAction,noAction}|yesAction will be called while user click yes button and noAction will be called while click no button| |alert|(msg,action)|action will be called while user click the ok button| |delete|(yesAction,msg)|yesAction will be called while user click the ok button| |success|(msg)|default "success"| |error|(msg)|default "failed"| |msg|(msg)||

7. Global $m

|Method|Parameters|description| |---|---|---| |formatDate|(value)|Returns a formatted string like "yyyy-MM-dd"| |formatDateTime|(value)|Returns a formatted string like "yyyy-MM-dd hh:mm:ss"| |isEmpty|(object)|Check whether the given object is undefined or null or an empty string| |isRef|(object)|Check whether the given object is undefined or null| |isPromise|(object)|Check whether the given object is Promise| |isFunction|(object)|Check whether the given object is Function| |isObject|(object)|Check whether the given object is Object| |isArray|(object)|Check whether the given object is Array|