2.5.5 • Published 5 years ago

lqlq-components v2.5.5

Weekly downloads
-
License
ISC
Repository
-
Last release
5 years ago

@klicen/component-vue

公司Vue项目中的公用组件及Mixin集合

Install

    npm install @klicen/component-vue --save #在安装之前请确保npm的仓库地址已经指向了公司内部私有npm仓库地址

Example Usage

    import Vue from 'vue';
    import { BaseMixin, MessageBox } from '@klicen/component-vue';
    Vue.mixin(BaseMixin);
    Vue.use(MessageBox);

BaseMixin

提供组件中常用的方法的封装

BaseMixin方法列表

方法名说明参数返回值备注
showComponent以对话框的方式打开组件(component, options)参数说明----
closeDialog关闭通过showComponent方法打开的对话框------
showConfirm打开确认框参数说明Promise--
showWarningConfirm打开警告确认框详见showConfirm参数说明----
showErrorConfirm打开错误确认框详见showConfirm参数说明----
showMsg显示Toast消息参数说明----
showInfoMsg显示普通toast消息(message)----
showSuccessMsg成功Toast消息(message)----
showWarningMsg警告Toast消息(message)----
showErrorMsg错误Toast消息(message)----
showAlert弹出Alert框参数说明----
showLoading显示loading(message或者option)----
hideLoading隐藏loading------

参数说明

showComponent参数说明

参数名称参数类型可选值默认值
componentVueCompnent----
optionsObject--{}

showComponent options列表

选项名称选项类型可选值默认值
widthstring--'auto'
titlestring--''
customClassstring--''
paramsObject--{}
showTitleBooleantrue/falsetrue
showCloseBooleantrue/falsetrue
showFooterBooleantrue/falsefalse
cancelTextstring--'取消'
confirmTextstring--'确认'
closeOnClickModalBooleantrue/falsefalse
closeOnPressEscapeBooleantrue/falsefalse
cancelHandleFunction----
confirmHandleFunction----

usage

    // 以固定宽度的方式打开
    this.showComponent(Login, {
        width: '500px',
        params: {
            username: 'jack-cheng',
            password: 123456
        }
    });
    
    // 以带标题的方式打开
    this.showComponent(Login, {
        width: '500px',
        title: '用户登录',
        params: {
            username: 'jack park',
            password: 123456
        }
    });
特殊说明

在showFooter选项为true的情况下,如果我们传递了confirmHandle选项,那么“确定”按钮的控制权将交由confirmHandle函数实现,否则,我们会在点击“确定”按钮的时候默认执行component里面的handleSubmit函数。

showConfirm参数说明

参数名称参数类型可选值
typestringwarning, error
contentstring--
titlestring--
confirmButtonTextstring--
cancelButtonTextstring--
confirmHandlefunction--
cancelHandlefunction--

usage

    // 基础使用方法
    this.showConfirm('warning', '打开确认框');
    // 自定义标题
    this.showConfirm('warning', '这是正文', '这是标题');
    // 自定义事件方法(此处省略标题)
    this.showConfirm('warning', '这是正文', () => alert('点击确认'), () => alert('点击取消'));
    // 以对象的方式调用(仅此方式调用可以自定义按钮文案)
    this.showConfirm('warning', {
        content: '这是正文',
        title: '这是标题',
        confirmButtonText: '是',
        cancelButtonText: '否',
        confirmHandle: () => alert('点击确认'),
        cancelHandle: () => alert('点击取消')
    });
    // 快捷方式调用(除了可以省略type字段外,其他字段相同)
    this.showWarningConfirm('打开确认框');
    this.showErrorConfirm('warning', '这是正文', '这是标题');

showMsg参数说明

参数名称参数类型可选值
typestringinfo, error, success, warning
messagestring--

useage

    // 普通调用方式
    this.showMsg('info', '这是一个普通的消息');
    // 快捷方式
    this.showInfoMsg('这是一个普通的消息');
    this.showWarningMsg('这是一个警告消息');
    this.showErrorMsg('这是一个错误的消息');
    this.showSuccessMsg('这是一个成功的消息');

showAlert参数说明

参数名称参数类型可选值
contentstring--
titlestring--
callbackfunction--
countdownNumber--

usage

    // 简单用法
    this.showAlert('简单弹窗消息');

    // 自定义标题
    this.showAlert('弹窗消息正文', '标题');

    // 自定义确定按钮事件
    this.showAlert('弹窗消息正文', '标题', () => alert('确定按钮'))

    // 以对象方式调用(仅此方法可以修改按钮文案以及定义按钮倒计时功能)
    this.showAlert({
        title: '这是标题',
        content: '这里是标题正文',
        callback: (...params) => console.log(params),
        confirmButtonText: '知道了',
        countdown: 5
    })

特别说明

在原版本的element-ui中,MessageBox不支持倒计时功能。所以,为了支持该功能,我们重写了MessageBox组件。如果在项目中有需求需要用到的话,请特别声明使用我们提供的MessageBox,如下:

    import Vue from 'vue';
    import { MessageBox } from '@klicen/component-vue';
    Vue.use(MessageBox);

SearchBar组件

用途

用于生成列表页上面的搜索框并自动拼装搜索参数。

useage(使用options)

    <template>
        <searchbar 
            :option="searchOption"
            @search="search"
        />
    </template>
    <script>
        export default {
            data() {
                return {
                    searchOption: [
                        {
                            type: 'input',
                            label: '车架号',
                            field: 'vin'
                        }
                    ]
                }
            },
            methods: {
                search(params) {
                    console.log(params); // {vin: 123456}
                }
            }
        }
    </script>

useage(使用url)

    <template>
        <searchbar 
            :url="url"
        />
    </template>
    <script>
        export default {
            data() {
                return {
                    url: 'http://www.klicen.com/example/'
                }
            }
        }
    </script>

searchbar 参数说明

参数名称参数类型参数说明可选值默认值
optionsArray需要显示的搜索框列表, 和url参数互斥--[]
urlString获取搜索框列表的链接,和options参数互斥,如果同时存在,优先使用url----
setInitParamsFunction用于设置搜索框默认值,接受done方法作为参数----
columnsNumber用于设置搜索框列表展示的列数,如果不设置,则根据浏览器宽度自动设置--0
shouldDateFormatBoolean用于指定是否在进行搜索的时候需要格式化日期true, falsetrue
labelInsetBoolean用于指定是否将搜索框的label字段显示在组件内部true, falsefalse
gutterNumber用于指定搜索框之间的间距--20
lineHeightNumber用于指定每行搜索框的行高--50
buttonNewLineBoolean设置充值和查询按钮是否单独占一行true, falsefalse
buttonAlignString指定button的水平对其方式, 仅在buttonNewLine为false的情况下生效left, rightright
buttonSizeString指定button的大小详见Element UI文档中的size属性可选值--
buttonsArray指定searchbar中的按钮列表'reset', 'search''reset', 'search'
searchEvent点击搜索按钮的事件回调,回调参数为搜索的参数----
resetEvent重置事件回调----
getFormInstanceEvent获取表单实例----
formAttrsObjectel-form组件属性,详见Element UI文档----
formEventsObjectel-form组件事件,详见 Element UI文档----
formItemAttrsObjectel-form-item组件属性,详见Element UI文档----
formItemEventsObjectel-form-item组件事件,详见Element UI文档----

searchbar options参数说明

参数名称参数类型参数说明可选值默认值
typestring搜索框类型search, input, select, date_range, daterange, numberrange, component--
labelstring搜索框显示的名称----
fieldstring搜索框对应的字段名字----
spanNumber搜索框在栅栏布局中所占长度--
spanTimesNumber搜索框在栅栏格式中所占个数--1
defaultObject字段默认值----
urlString当type=search的时候生效, 指定搜索接口的url----
searchKeyString在type为search的时候, 搜索接口对应的搜索字段----
labelFieldString当type为search的时候,指定搜索接口中展示字段的字段名--label
valueFieldString当type为search的时候,指定搜索接口中值字段的字段名--value
colStyleObject指定某一个搜索框的样式----
startFieldNameString当type为daterange和date_range的时候,指定用于搜索接口的开始时间的字段名--默认值start${field}
endFieldNameString当type为daterange和date_range的时候,指定用于搜索接口的结束时间的字段名--默认值end${field}
optionsArray当type为search或select的时候,指定下拉框列表中的内容,形如{label: 'xxx', value: 'xxx', attrs: {xxx: xxx}, events: {xxx: xxx}}, 其中attrs和events中支持el-options组件属性和事件,详见Element UI文档--[]
searchFunction当type为search的时候的自定义搜索方法----
attrsObject对应控件的属性,详见Element UI文档----
eventsObject对应控件的事件,详见Element UI文档----
formItemAttrsObjectel-form-item组件属性,详见Element UI文档----
validatorFunction在type=input或者type=numberrange时生效,该方法使用输入校验,不会出现表单错误提示,不符合规则的数据将不能输入。当type=numberrange时,已内置数字校验----

Form组件

用途

封装el-form组件,通过对象的方式形成想要的表单

useage

    <template>
        <Form 
            :formItems="formItems"
            :formData="formData"
            @createForm="form => this.form = form"
        />
    </template>
    <script>
        export default {
            data() {
                return {
                    formItems: {
                        vin: {
                            type: 'input',
                            label: '车架号',
                        }
                    },
                    formData: {}
                }
            }
        }
    </script>

Form 参数说明

参数名称参数类型参数说明可选值默认值
formItemsObject生成表单所需要的字段列表--{}
formDataObject表单值存储对象--{}
columnsNumber表单字段一行展示的列数--1
labelInsetBoolean是否将表单字段的label显示在表单控件内部true, falsefalse
gutterNumber设置表单字段之间的间隙--20
lineHeightNumber设置表单行高--50
createFormEvent创建表单的事件回调,回调参数为当前表单的实例----
formAttrsObjectel-form组件属性,详见Element UI文档----
formEventsObjectel-form组件事件,详见 Element UI文档----

Form新增自定义方法

方法名称参数方法说明可选值默认值
setFieldsValueObject用于设置表单一个或多个字段的值--{}
getFieldsValue字段名列表获取表单一个或多个字段的值--{}
getFieldValue字段名获取表单指定字段的值--{}

Form formItems参数说明

参数名称参数类型参数说明可选值默认值
typeString字段显示的类型input,select,search,component,date,daterange,radio,textarea--
labelString字段显示的名称----
rulesArray当前字段的验证规则【类antd的验证规则】----
optionsArray当type为select或search的时候,设置下拉列表中的选项--[],
multipleBoolean当type为Select或Search的时候,设置该字段是否为多选true, falsefalse
spanNumber设置当前字段所占用的宽度----
componentObject当type为component的时候生效,用于设置自定义的表单选项----
displayBoolean设置当前字段是否可见--true
formatString当type为date或daterange的时候生效,设置当前字段的日期格式--YYYY-MM-DD HH:mm:ss
onChangeFunction当前字段值发生变化的回调函数----
searchFunction当type为search的时候生效,为搜索事件的回调函数----
formItemAttrsObjectel-form-item组件属性,详见Element UI文档----
formItemEventsObjectel-form-item组件事件,详见Element UI文档----
validatorFunction在type=input或者type=textarea组件中生效,不同于rules中的validator,该方法使用输入校验,不会出现表单错误提示,不符合规则的数据将不能输入----

TextItem组件

用途

通过数据的方式,展示数据详情。多用于展示数据详情页面

usage

    <template>
        <textItem
            :textData="textData"
        />
    </template>
    <script>
        export default {
            data() {
                textData: [
                    {
                        label: '用户名',
                        content: 'jack'
                    },
                    {
                        label: '备注',
                        content: 'abcdef',
                        span: 24
                    },
                    {
                        label: '今日计划',
                        type: 'component',
                        content: Plan,
                        params: {
                            date: new Date()
                        }
                        span: 24
                    }
                ]
            }
        }
    </script>

TextItem 参数说明

参数名称参数类型参数说明可选值默认值
textDataArray需要展示的数据列表--[]
columnsNumber设置一行展示多少列--4
labelWidthNumber设置label的展示宽度--85
gutterNumber设置字段之间的间距--5
wrapBoolean设置数据是否换行展示(优先级小于在textData中设置的wrap)true, falsefalse

TextItem textData参数说明

参数名称参数类型参数说明可选值默认值
labelString字段名称----
contentString, Component字段值----
spanNumber字段在一行中所占用的宽度----
typeString字段值的类型--String
paramsObject当type=Component的时候,该值将作为参数传给对应的组件--{}
wrapBoolean设置某一项是否需要换行展示true,falsefalse

PageFooter参数说明

参数名称参数类型参数说明可选值默认值
descriptionString传入的公司描述--Copyright © 1999-${new Date().getFullYear()} 成都路行通信息技术有限公司版权所有
targetString链接打开方式_blank, _parent, _self, _top_blank
recordString蜀ICP备号--蜀ICP备08110633号-2
licenseString增值电信业务经营许可证--增值电信业务经营许可证
pageStyleObject页面样式----
hoveredColorStringa标签未hover的颜色--#999
hoverColorStringa标签hover的颜色--#4877F4

TagEdit参数说明

参数名称参数类型参数说明可选值默认值
cascaderAttrsObject传入的cascader属性,详见Element UI文档--{props: {label: 'label', value: 'value', children: 'children',}}
urlString大数据标签请求url--''
ruleUrlString查看校验结果请求url--''
customDialogBoolean自定义校验结果弹窗true, falsefalse
ruleDialogObject抛出的后端校验结果,仅customDialog为true时生效----
valueArray编辑时回显的数据--[]
isDynamicValidateBoolean提交时需要前后端均校验,抛出校验结果,传递给后端的值true, falsefalse
dynamicValidateFunction前端、后端均校验的方法,仅isDynamicValidate为true时抛出校验结果,传递给后端的值--{}
staticValidateFunction仅前端校验的方法,抛出校验结果,传递给后端的值----
editTagsArray回显的数据结构----
canAddTagBoolean是否可以添加标签true, falsetrue
canDeleteTagBoolean是否可以删除标签true, falsetrue

usage

    <template>
        <TagEdit 
            :url="url"
            :ruleUrl="ruleUrl"
            v-model="editTags"
            :cascaderAttrs="cascaderAttrs"
            :customDialog="true"
        />
    </template>
    <script>
        export default {
            data() {
                return {
                    url: '/api/saas/tags/rule-tree',
                    ruleUrl: '/api/saas/tags/rule-result',
                    editTags: [],
                    cascaderAttrs: {
                        props: {
                            label: 'name', 
                            value: 'id', 
                            children: 'child',
                        },
                    },
                }
            },
        }
    </script>

Tree参数说明

参数名称参数类型参数说明可选值默认值
showSearchBoolean是否显示搜索框、搜索按钮true:显示,false:隐藏true
searchInputAttrsObjectinput输入框的属性详见Element UI文档{}
searchButtonAttrsObjectbutton按钮的属性详见Element UI文档{}
buttonTextString指定button的内容--查询
treeHeightNumber树的默认高度--656
pageSizeNumber截取的数量--50
distanceNumber距离底部多远开始展示下一次的数据--50
treeDataArray接口返回的数据(treeData和url选传1个)--[]
urlString搜索接口的url(treeData和url选传1个)--''
treeAttrsObjectel-tree组件属性详见Element UI文档{}
treeEventsObjectel-tree组件事件详见Element UI文档{}
isScrollXBoolean是否横向滚动true, falsetrue
searchKeyString选择器搜索内容(设置searchs为[])--''
closeExpandFunction抛出的事件,用于关闭树节点展示----

用途

用于树形控件带搜索框和分页展示,可被选择状态下不能分页展示。

useage(使用options)

    <template>
        <Tree
            :treeData="treeData"
            :pageSize="30"
            :treeAttrs="treeAttrs"
            :treeEvents="treeEvents"
            ref="kTree"
            :treeHeight="300"
            :showSearch="false"
            :key="isKey"
        >
            <template slot="search-left">
                <span> 请选择系统: </span>
                <el-select
                    class="search-select"
                    size="small"
                    v-model="byText"
                >
                    <el-option 
                        v-for="(item, index) in selectOptions"
                        :key="index"
                        :label="item.alias"
                        :value="item.id"
                    >
                    </el-option>
                </el-select>
                <el-button 
                    class="search-btn"
                    type="primary"
                    size="small" 
                    @click="treeSearch"
                > 
                    查询
                </el-button>
            </template>
        </Tree>
    </template>
    <script>
        export default {
            data() {
                return {
                    treeData: [],
                    treeAttrs: {
                        props: {
                            children: 'children',
                            label: 'title',
                        },
                        'default-expand-all': false,
                    },
                    treeEvents: {
                        'node-click': val => this.getNode(val),
                    },
                    isKey: 0,
                    byText: '',
                }
            },
            methods: {
                getNode(val) {
                },
                treeSearch() {
                    this.isKey++;
                    window.request(`/api/admin/menu/tree?systemId=${this.byText}`).then(data => {
                        this.treeData = this.getTreeData(data.tree);
                    });
                },
                getTreeData(data) {
                    // 处理接口返回的数据
                },
            },
        };
    </script>

SelectTree参数说明

参数名称参数类型参数说明可选值默认值
treeDataArray接口返回的数据(传参后需调用子组件的changeTree方法,更新视图渲染的数据源)--[]
urlString搜索接口的url(传参后需调用子组件的changeTree方法,更新视图渲染的数据源)--''
treeAttrsObjectel-tree组件属性详见Element UI文档{}
selectTreeEventsObjectel-tree组件事件(默认定义了el-tree的'node-click'事件,再传'node-click'事件会先执行默认定义,再执行外部传入的)详见Element UI文档{}
treeHeightNumber树的默认高度--656
pageSizeNumber截取的数量--50
distanceNumber距离底部多远开始展示下一次的数据--50
isScrollXBoolean是否横向滚动true, falsetrue
getValueObject,String抛出选中值的节点信息,清空时为空----

DateRange

用途

不同于element-ui自带的日期范围控件,该组件支持单独选择开始时间或者结束时间。

useage

  <template>
     <DateRange :options="options" v-model="xxx" />
  </template>

options属性参数说明

参数名称参数类型参数说明可选值默认值
attrsObject对应控件的属性,详见Element UI文档----
startAttrsObject开始日期控件对应的属性,如果attrs和startAttrs同时存在,则startAttrs将会覆盖attrs的同名属性----
endAttrsObject结束日期控件对应的属性,如果attrs和endAttrs同时存在,则endAttrs将会覆盖attrs的同名属性----
eventsObject对应控件的事件,详见Element UI文档----
startEventsObject开始日期控件对应的事件,如果events和startEvents同时存在,则startEvents将会覆盖events的同名事件----
endEventsObject结束日期控件对应的事件,如果events和endEvents同时存在,则endEvents将会覆盖events的同名事件----
valueArray组件对应的值,数组,value0为开始时间,value1为结束时间----
2.5.5

5 years ago

2.5.4

5 years ago