Vue组件库---Element

什么是Element 

  • Element:是饿了么团队研发的,一套为开发者设计师和产品经理准备的基于Vue 2.0 的桌面端组件库
  • 组件:组成网页的部件,例如 超链接,按钮,图片,表格等
  • 官网:https://element.eleme.cn/#/zh-CN

安装ElmentUI组件库

 npm install element-ui@2.15.3

引入Element组件库

import Element from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);

常见组件

  • Table表格:用于展示多条结构类似的数据,可对数据进行排序,筛选,对比或其它自定义操作
<el-table
      :data="tableData"
      style="width: 100%">
      <el-table-column
        prop="date"
        label="日期"
        width="180">
      </el-table-column>
      <el-table-column
        prop="name"
        label="姓名"
        width="180">
      </el-table-column>
      <el-table-column
        prop="address"
        label="地址">
      </el-table-column>
</el-table>
  • Pagination分页:当数据量过多时,使用分页分解数据

 <el-pagination background layout="total,sizes,prev, pager, next,jumper"
      @size-change="handleSizeChange"
      @current-change="handleCurrentChange"
    :total="1000">
      
  • Dialog 对话框:在保留当前页面状态的情况下,告知用户并承载相关操作
  <el-button type="text" @click="dialogTableVisible = true">打开嵌套表格的 Dialog</el-button>
      <el-dialog title="收货地址" :visible.sync="dialogTableVisible">
        <el-table :data="gridData">
          <el-table-column property="date" label="日期" width="150"></el-table-column>
          <el-table-column property="name" label="姓名" width="200"></el-table-column>
          <el-table-column property="address" label="地址"></el-table-column>
        </el-table>
      </el-dialog>
  • Form表单:由输入框,选择器,单选框,多选框等控件组成,用以收集,校验,提交数据
  •  <el-button type="text" @click="dialogFormVisible=true">打开嵌套Form的Dialog</el-button>
          <el-dialog title="Form表单" :visible.sync="dialogFormVisible">
            <el-form ref="form" :model="form" label-width="80px">
      <el-form-item label="活动名称">
        <el-input v-model="form.name"></el-input>
      </el-form-item>
          <el-form-item label="活动区域">
            <el-select v-model="form.region" placeholder="请选择活动区域">
              <el-option label="区域一" value="shanghai"></el-option>
              <el-option label="区域二" value="beijing"></el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="活动时间">
            <el-col :span="11">
              <el-date-picker type="date" placeholder="选择日期" v-model="form.date1" style="width: 100%;"></el-date-picker>
            </el-col>
            <el-col class="line" :span="2">-</el-col>
            <el-col :span="11">
              <el-time-picker placeholder="选择时间" v-model="form.date2" style="width: 100%;"></el-time-picker>
            </el-col>
          </el-form-item>
          
          <el-form-item>
        <el-button type="primary" @click="onSubmit">提交</el-button>
        <el-button>取消</el-button>
      </el-form-item>
    </el-form>
  • 创建页面,完成部分页面的整体布局规划

Container容器布局

示例

<el-container>
  <el-header>Header</el-header>
  <el-container>
    <el-aside width="200px">Aside</el-aside>
    <el-main>Main</el-main>
  </el-container>
</el-container>
  • 布局中各个部分的组件实现

 <el-container  style="height: 700px; border: 1px solid #eee">
  <!--  头部 -->
  <el-header style="font-size:35px;background-color: rgb(238, 241, 246)">Tlias智能学习辅助系统</el-header>
  <!--  侧边栏 -->
  <el-container>
    <el-aside width="230px" style="border: 1px solid #eee">
     <el-menu :default-openeds="['1', '3']">
      <el-submenu index="1"> 
        <template slot="title"><i class="el-icon-message"></i>系统信息管理</template>
          <el-menu-item index="1-1">部门管理</el-menu-item>
          <el-menu-item index="1-2">员工管理</el-menu-item>
          </el-submenu>
      </el-menu>
    </el-aside>
      <el-main> 
          <!--  表单 -->
          <el-form :inline="true" :model="searchForm" class="demo-form-inline">
            <el-form-item label="姓名">
            <el-input v-model="searchForm.name" placeholder="姓名"></el-input>
            </el-form-item>
            <el-form-item label="性别">
            <el-select v-model="searchForm.gender" placeholder="性别" >
            <el-option label="男" value="1"></el-option>
            <el-option label="女" value="2"></el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="入职日期">
            <!-- 日期选择从开始到结束 -->
            <el-date-picker
              v-model="searchForm.entrydata"
              type="daterange"
              range-separator="至" 
              start-placeholder="开始日期"
              end-placeholder="结束日期">
            </el-date-picker>
            </el-form-item>
          <el-form-item>
            <el-button type="primary" @click="onSubmit">查询</el-button>
          </el-form-item>
        </el-form>
       <!--  表格 -->
      <el-table :data="tableData" border> 
        <el-table-column prop="name" label="姓名" width="180">
        </el-table-column>
        <el-table-column prop="image" label="图像" width="180">
          <template slot-scope="scope">
            <img :src="scope.row.image" alt="" style="width: 100px;height: 70px;">
          </template>
        </el-table-column>
        <el-table-column prop="gender" label="性别" width="140"> 
          <template slot-scope="scope"><!-- 插槽 -->
            <el-tag v-if="scope.row.gender == 1">男</el-tag>
            <el-tag v-if="scope.row.gender == 2">女</el-tag>
          </template>
        </el-table-column>
        <el-table-column prop="job" label="职位" width="140">
        </el-table-column>
        <el-table-column prop="entrydate" label="入职日期" width="180">
        </el-table-column>
        <el-table-column prop="updatetime" label="最后操作时间" width="230">
        </el-table-column>
        <el-table-column label="操作">
          <el-button type="primary" size="mini">编辑</el-button>
          <el-button type="danger" size="mini">删除</el-button>
        </el-table-column>
      </el-table>
      <br><br>
      <!-- 分页 -->
    <el-pagination background layout="total,sizes,prev, pager, next,jumper"
      @size-change="handleSizeChange"
      @current-change="handleCurrentChange"
    :total="1000">
    </el-pagination>
      </el-main>
    </el-container>
   </el-container>

border实现框架线条搭建, <template slot-scope="scope">实现插槽将原数据处理 

  • 列表数据的异步加载,并渲染展示

对于主题框架的搭建可使用Element插件中的表格,表单进行搭建,再使用api将json格式的数据进行挂载,在页面加载后自动显示数据。

 mounted(){
    axios.get('http://127.0.0.1:4523/m1/6153323-5845311-default/user/getById').then(result=> {
      this.tableData = result.data.data;
    })
  }

效果如图

 

 


 Vue-路由

前端路由:URL中的hash(#号)与组件之间的对应关系

Vue-Router是Vue官方路由

组成:

  • VueRouter:路由器类,根据路由请求在路由视图中动态渲染选中的组件
  • <router-link>:请求链接组件,浏览器会解析成<a>
  • <router-view>:动态视图组件,用来渲染展示与路由路径对应的组件

安装(创建Vue项目时已选择)

npm install vue-router@3.5.1


Nginx路由打包

将前端vue文件打包

npm run build

生成dist文件后,将dist文件夹下的文件复制进nginx中html中,再运行nginx.exe即可

nginx默认占用80端口号,如果80端口被占用,可以在nginx.config中修改端口号

(netstat -ano| findStr 80)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值