# frontElementPackage
**Repository Path**: andy-code1/front-element-package
## Basic Information
- **Project Name**: frontElementPackage
- **Description**: 封装了Element-UI的常用组件
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2022-09-04
- **Last Updated**: 2022-09-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# elementui 引入
安装 npm install element-ui@2.15.6
项目引用示例:
frontelementpackage
引入import CommonTable from 'frontelementpackage/src/CommonTable.vue'
main.js中
```
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);
```
这些组件都是直接复制到你的component文件夹下就好了
# 1.CommonForm.vue使用教程如下
formlabel示例数据如下:
```
this.formlabel=[
{
"model": "name",
"label": "姓名",
"type": "input"
},
{
"model": "sex",
"label": "性别",
"type": "select",
"opts": [
{
"label": "男",
"value": 1
},
{
"label": "女",
"value": 0
}
]
},
{
"model": "birth",
"label": "出生日期",
"type": "date"
},
{
"model": "addr",
"label": "地址",
"type": "input"
}
]
this.form 表单元素示例
this.form={
"name": "",
"addr": "",
"age": "",
"birth": "",
"sex": ""
}
incline :true or false 是否放在一列上
```
父组件调用示例(common-form)是我们封装的方法
```
```
# 2.CommonTable.vue使用教程如下
tabledata示例
```
this.tabledata=[
{
"id": "46BeC977-dC5b-bB93-2510-9d4AE8CBFc3e",
"name": "龚静",
"addr": "宁夏回族自治区 吴忠市 青铜峡市",
"age": 41,
"birth": "2010-03-22",
"sex": 0,
"sexLabel": "女"
}
]
this.tableLabel=
[
{
"prop": "name",
"label": "姓名"
},
{
"prop": "age",
"label": "年龄"
},
{
"prop": "sexLabel",
"label": "性别"
},
{
"prop": "birth",
"label": "出生日期",
"width": 200
},
{
"prop": "addr",
"label": "地址",
"width": 320
}
]
this.config={
"page": 1,
"total": 200,
"loading": false
}
```
父组件调用示例如下
```
```
# 3.CommonTag.vue使用教程如下
tags变量示例: name指的是router中定义路由的name, label是显示的文字
点击tag可以根据name跳转到指定的路由
```
tags:
[
{ name: "HelloWorld", label:"测试" },
{ name:"echart", label:"测试2" },
{ name: "aside_Test", label:"测试21" },
],
changeMenu(item) {
this.$router.push({ name: item.name });
},
```
注意在调用删除按钮的时候,由于vue子组件不能直接改变父组件的值,
因此我们对应emit的方法(deleteTag)在我们的父组件的method中需要进行method方法的定义
父组件实例如下
```
deleteTag(index){
this.tags.splice(index,1)
console.log(index)
}
```
调用示例如下
子组件方法
```
handleClose(tag, index) {
console.log(tag);
// console.log(index);
// eslint-disable-next-line
this.$emit('deletetag',index)
}
```
# 4.CommonAside.vue
如果要实现伸缩功能,事件总线中监听isCollapse这个变量并且赋值就可以了 //asyncMenu
解决了submenu收缩时的文字显示的问题。在收缩的状态把这玩意隐藏就好了
路由的格式
```
asyncMenu() {
return [
{
path: "/",
name: "home",
label: "首页",
icon: "s-home",
url: "/pc_home",
},
{
path: "/mall",
name: "mall",
label: "商品管理",
icon: "video-play",
url: "/pc_table",
},
{
path: "/user",
name: "user",
label: "用户管理",
icon: "user",
url: "/pc_table",
},
{
label: "其他",
icon: "location",
children: [
{
path: "/page1",
name: "page1",
label: "页面1",
icon: "setting",
url: "Other/PageOne",
},
{
path: "/page2",
name: "page2",
label: "页面2",
icon: "setting",
url: "Other/PageTwo",
},
],
},
];
}
```
# 5.CommonHeader.vue
基本内容都已经写好了
# 6.怎么做一个管理界面示例
参照pages/pc_vue_client.vue里面的东西
路由中
```
{
path: '/pc5',
name: 'card1_pc5',
component: pc5,
meta:{title:"pc后台练习",role:'admin',img:''},
children: [
{
path: '/pc_home',
component:pc_home,
meta:{title:'后台首页',isShowHead:false,isShowFoot:false,isShowBack:true}
},
{
path: '/pc_table',
component:pc_table,
meta:{title:'后台增删改查',isShowHead:false,isShowFoot:false,isShowBack:true}
}
]
},
```
# 7.echart.vue组件调用示例
父组件基本调用方法
```
```
```
饼状图传入数据示例
{
"series": [
{
"data": [
{
"name": "魅族",
"value": 2200
},
{
"name": "三星",
"value": 4500
}
],
"type": "pie"
}
]
}
```
```
柱状图数据
{
"xData": [
"周一",
"周二",
],
"series": [
{
"name": "新增用户",
"data": [
5,
10,
],
"type": "bar"
},
{
"name": "活跃用户",
"data": [
200,
500,
],
"type": "bar"
}
]
}
```
```
折线图数据:
{
"xData": [
"20191001",
"20191002",
"20191003",
],
"series": [
{
"name": "苹果",
"data": [
5920,
4738,
659,
],
"type": "line"
},
{
"name": "vivo",
"data": [
6564,
7380,
3745,
],
"type": "line"
},
]
}
```
# 8.表格权限示例
## 8.1 首先是我封装了复选框组件
位置在于 '@/components/checkBox.vue'
调用实例
```vue
```
## 8.2 然后就可以直接用
```js
CommonTokenEdit.vue
tableData: [
{
id: "1",
tokenName: "数据库",
describe: "与我相关",
tokenInfo: ["1", "2"],
},
{
id: "2",
tokenName: "车库管理",
describe: "与我相关",
tokenInfo: ["1", "2", "3"],
},
],
```