# vue 自定义组件 **Repository Path**: chenlinsha/vue_template ## Basic Information - **Project Name**: vue 自定义组件 - **Description**: 自定义组件 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: chenlinsha - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 14 - **Forks**: 3 - **Created**: 2018-08-07 - **Last Updated**: 2022-04-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # > Vue 组件练习 (vue-cli3) ## 安装步骤 ``` bash # 安装项目依赖 npm install # 运行项目 npm run dev # 打包 npm run serve ``` ## Loading 数据加载组件 | 参数名 | 类型 | 说明 | | ------------ | ------------ | ------------ | | loadFlag | Boolean | 是否显示loading | | loadError | Boolean | 是否加载失败 | | data | Array | 要加载的数据 | | @refresh | fn | 重新加载数据的方法 | ``` ``` ## Pagination 分页组件 | 参数名 | 必填 | 类型 | 说明 | | ------------ | ------------ | ------------ | ------------ | | currentPage | 否 | Number | 当前页, 默认1| | limit | 否 | Number | 每页显示条数,默认10 | | totalCount | 是 | Number | 总条数 | | @turn | 是 | Fn | 翻页刷新数据 | ``` ``` ## UploadImgs 上传图片组件 | 参数名 | 类型 | 说明 | | ------------ | ------------ | ------------ | | fileTypes | Array | 文件类型, 默认'jpeg','bmp','gif','jpg'| | limit | Number | 限制数量,默认5 | | size | Number | 最大图片大小,默认5M | | @imgs | Object | 上传的图片文件 | ``` ``` ## Rate 星星评分组件 | 参数名 | 类型 | 说明 | | ------------ | ------------ | ------------ | | score | Number | 分数 ,默认0,保留一位小数 | | disabled | Boolean | 是否只读,默认false,鼠标点击可以打分 | | showText | Boolean | 是否显示分数,默认false | ``` //只读,不显示数字 //只读,显示数字: //鼠标点击评分,显示数字: //submit(){alert(this.curScore);} 提交显示分数 ``` ## Message 消息组件 | 参数名 | 类型 | 说明 | | ------------ | ------------ | ------------ | | content | String | 内容 | | time | Number | 消失时间,默认3秒后消失 | | type | String | info/success/warning/error,默认info | | hasClose | Boolean | 是否含关闭按钮,默认false | | top | String | 消息框位置,默认顶部 | | left | String | 消息框位置,默认居中 | ``` //简写,第一个参数为内容,第二个为类型 this.$my_message('这是一个message'); this.$my_message('这是一个warning','warning'); //传参的方式 this.$my_message({ content:'这是一个success提示', time:5000000, type:'success', hasClose:true, }); //改变位置 let e = event || window.event, top = e.clientY - 60, left = e.clientX - 30; this.$my_message({ content: '这是一个warning!', type: 'warning', top: top + 'px', left: left + 'px', }); ``` ## Confirm 确认框组件 | 参数名 | 类型 | 说明 | | ------------ | ------------ | ------------ | | title | String | 标题 | | content | String | 内容 | | yesBtnText | String | 确认按钮文字,默认‘确定’ | | cancelBtnText | String | 取消按钮文字,默认‘取消’ | | type | String | info/success/warning/error,默认‘’ | ``` show(){ this.$my_confirm('是否登录?',{ yesBtnText:'登录', }).then(() => { //点登录 }).catch(() => { //点取消 }); }, show1(){ this.$my_confirm('此操作将永久删除该文件, 是否继续?','提示',{ yesBtnText:'是', cancelBtnText:'否', type: 'warning' }).then(() => { //点是 }).catch(() => { //点否 }); }, ``` ## Modal 模态框 | 参数名 | 类型 | 说明 | | ------------ | ------------ | ------------ | | visible | Boolean | 是否显示,默认false | | title | String | 标题 | | update:visible | Boolean | 更新visible, 使用`:visible.sync`实现动态绑定 | ```
内容
``` ## Dynamic Form 动态表单(自定义表单) **showType:** form、table、row ### Form Attributes | 参数 | showType | 说明 | 类型 | 可选值 | 默认值 | 例 | | :------------ | :------------ | :------------ | :------------ | :------------ | :------------ | :------------ | | formDatas | | 表单数据 | object | - | - | | | editFlag.sync | | 表单是否是编辑状态 | boolean | true/false | true | | | params | | 提交时要传的参数 | object | - | - | :params="{'xh':'111'}" | | btnsShow | form | 提交按钮是否显示 | boolean | true/false | true | | | cancelBtnShow | form | 取消按钮是否显示 | boolean | true/false | true | | | resetBtnShow | form | 重置按钮是否显示 | boolean | true/false | false | | |addBtnShow|table/row|是否显示添加按钮| boolean | true/false | true | | | submitText | form | 提交按钮文本 | string | - | 提交 | | | onSuccess | form | 提交成功时的钩子 | function(response) | - | - | | | onError | form | 提交失败时的钩子 | function(response) | - | - | | | onlyEdit | form | 只显示可编辑的 |boolean | true/false | false | | ### Form Methods | 方法名 | showType | 说明 | 参数 | 例 | | :------------ | :------------ | :------------ | :------------ | | reloadData | | 刷新表单 | - | | | editableDatas | form | 返回编辑状态的键和值 | Function(props: object) | @submitDatas="val=>applyFormDatas=val" | | validate | form | 返回验证结果 | Function(props: boolean) | @validate="val=>applyValidate=val" | |allFormDatas | form |返回表单所有值|Function(props: object) | | ``` //执行验证 this.$refs["otherForm"].validateForm(); //验证结果 this.applyValidate; //编辑类型的表单数据 this.submitDatas; //重置自定义表单 this.$refs["applyForm"].resetForm(); ```