• Element学习使用


    引入:

    • npm方式:
    npm i element-ui -S
    或:
    cnpm install element-ui --save
    要先整合cnpm
    在项目中引入:
    1.main.js
    import 'element-ui/lib/theme-chalk/index.css';
    import ElementUI from 'element-ui';
     Vue.use(ElementUI)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 引入网址组件方式:
          
    
    • 1

    测试使用

    Pos.vue里添加模版布局

    <template>
      <div class="pos">
        <div>
            <el-row >
                <el-col :span='7'>
                我是订单栏
                el-col>
                
                <el-col :span="17">
                 我是产品栏
                el-col>
            el-row>
        div>
      div>
    template>
     
    <script>
    export default {
      name: 'Pos',
      data () {
        return {
        }
      }
    }
    script>
    <style scoped>
    style>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    解决100%高的问题

    在页面中使用了Element组件,这样他会自动给我们生产虚拟DOM,我们无法设置高度100%;

    这时候可以利用javascript,来设置100%高度问题。先要给我们的标签上添加一个id,我们这里把ID设置为order-list。然后在vue构造器里使用mounted钩子函数来设置高度。

     mounted:function(){
          var orderHeight=document.body.clientHeight;//获取高度
          document.getElementById("order-list").style.height=orderHeight+'px';//设置标签的高度
      },
    
    • 1
    • 2
    • 3
    • 4

    快速布局:

    el-tabs标签页组件

    用Element里提供的el-tabs组件可以快速制作我们的tabs标签页效果

    基本用法很简单,可以直接在模板中引入标签,标签里边用来代表每个每个标签页。

    
          
           点餐   
          
          
          挂单
          
          
          外卖
         
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    细心的小伙伴会看到每个里会有一个label属性,这个属性就是你标签页的标题。内容可以直接写在里。

    在这里插入图片描述

    el-table组件制作表格

    需要在订单的tab标签页里放入表格,把点选的食品放入到待结账列表里,可以使用Element的内置组件el-table。

    
        
        
        
        
            
        
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    这里我们采用了五列布表格, 在第1行中的:data是用来绑定数据源的, border代表表格有边框效果。

    tableData中的数据源的值,为了布局方便,所以我们进行了写死,以后会改成动态添加的数据。

    tableData:  [{
        goodsName:  '可口可乐',
        price:  8,
        count:1
    },  {
        goodsName:  '香辣鸡腿堡',
        price:  15,
        count:1
    },  {
        goodsName:  '爱心薯条',
        price:  8,
        count:1
    },  {
        goodsName:  '甜筒',
        price:  8,
        count:1
    }]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    表格选择/禁用设置
    
    <el-table-column
      type="selection"
      width="55"
      :selectable='checkboxInit'>
    
    
    //设置合计为不可选中状态
    checkboxInit(row,index){
      if (index==this.tableData.length-1||index==this.tableData.length-2)//这个判断根据你的情况而定
      return 0;//不可勾选
      else
     return 1;//可勾选
    },
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    在这里插入图片描述

    表格选中方法
    
       
    
    //选择数据时触发的事件
    handleSelectionChange(val){
        this.multipleSelection = val;
    },
    
    切换第二、第三行的选中状态  取消选择
    
    toggleSelection(rows) {
        if (rows) { rows.forEach(row => {
            this.$refs.multipleTable.toggleRowSelection(row);
            }); 
        } else {
            this.$refs.multipleTable.clearSelection();
        }
    },
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    el-button 按钮组件

    需要在点餐表格的下方放入三个功能性按钮,分别是挂单按钮、删除按钮、结账按钮。同样使用Element里的组件,进行快速写入。el-button 的type属性是设置按钮样式的,为了学些和区分我们这里用三个属性来设置按钮。

    挂单
    删除
    结账
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    常用商品区域布局

    标签里增加一个层,然后在层内进行布局。因为里边的商品实际意义上是列表,所以用无序列表

  • 来布局商品。

    常用商品
    • 香辣鸡腿堡 ¥15元
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述

    css样式

     .title{
           height: 20px;
           border-bottom:1px solid #D3DCE6;
           background-color: #F9FAFC;
           padding:10px;
       }
       .often-goods-list ul li{
          list-style: none;
          float:left;
          border:1px solid #E5E9F2;
          padding:10px;
          margin:5px;
          background-color:#fff;
       }
      .o-price{
          color:#58B7FF; 
       }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    在这里插入图片描述

    数据

    oftenGoods:[
              {
                  goodsId:1,
                  goodsName:'香辣鸡腿堡',
                  price:18
              }, {
                  goodsId:2,
                  goodsName:'田园鸡腿堡',
                  price:15
              }, {
                  goodsId:3,
                  goodsName:'和风汉堡',
                  price:15
              }, {
                  goodsId:4,
                  goodsName:'快乐全家桶',
                  price:80
              }, {
                  goodsId:5,
                  goodsName:'脆皮炸鸡腿',
                  price:10
              }, {
                  goodsId:6,
                  goodsName:'魔法鸡块',
                  price:20
              }, {
                  goodsId:7,
                  goodsName:'可乐大杯',
                  price:10
              }, {
                  goodsId:8,
                  goodsName:'雪顶咖啡',
                  price:18
              }, {
                  goodsId:9,
                  goodsName:'大块鸡米花',
                  price:15
              }, {
                  goodsId:20,
                  goodsName:'香脆鸡柳',
                  price:17
              }
              
          ]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44

    商品分类布局

    汉堡 小食 饮料 套餐
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    制作商品的无序列表:

    • 香辣鸡腿堡 ¥20.00元
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    对无序列表进行CSS样式编写:

    .cookList li{
           list-style: none;
           width:23%;
           border:1px solid #E5E9F2;
           height: auot;
           overflow: hidden;
           background-color:#fff;
           padding: 2px;
           float:left;
           margin: 2px;
    
       }
       .cookList li span{
            display: block;
            float:left;
       }
       .foodImg{
           width: 40%;
       }
       .foodName{
           font-size: 18px;
           padding-left: 10px;
           color:brown;
    
       }
       .foodPrice{
           font-size: 16px;
           padding-left: 10px;
           padding-top:10px;
       }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    数据

    引入图片
    type0Goods:[
              {
                  goodsId:1,
                  goodsImg:"http://7xjyw1.com1.z0.glb.clouddn.com/pos001.jpg",
                  goodsName:'香辣鸡腿堡',
                  price:18
              }, {
                  goodsId:2,
                  goodsImg:"http://7xjyw1.com1.z0.glb.clouddn.com/pos002.jpg",
                  goodsName:'田园鸡腿堡',
                  price:15
              }, {
                  goodsId:3,
                  goodsImg:"http://7xjyw1.com1.z0.glb.clouddn.com/pos004.jpg",
                  goodsName:'和风汉堡',
                  price:15
              }, {
                  goodsId:4,
                   goodsImg:"http://7xjyw1.com1.z0.glb.clouddn.com/pos003.jpg",
                  goodsName:'快乐全家桶',
                  price:80
              }, {
                  goodsId:5,
                   goodsImg:"http://7xjyw1.com1.z0.glb.clouddn.com/pos003.jpg",
                  goodsName:'脆皮炸鸡腿',
                  price:10
              }, {
                  goodsId:6,
                   goodsImg:"http://7xjyw1.com1.z0.glb.clouddn.com/pos004.jpg",
                  goodsName:'魔法鸡块',
                  price:20
              }, {
                  goodsId:7,
                   goodsImg:"http://7xjyw1.com1.z0.glb.clouddn.com/pos001.jpg",
                  goodsName:'可乐大杯',
                  price:10
              }, {
                  goodsId:8,
                   goodsImg:"http://7xjyw1.com1.z0.glb.clouddn.com/pos003.jpg",
                  goodsName:'雪顶咖啡',
                  price:18
              }, {
                  goodsId:9,
                   goodsImg:"http://7xjyw1.com1.z0.glb.clouddn.com/pos002.jpg",
                  goodsName:'大块鸡米花',
                  price:15
              }, {
                  goodsId:20,
                   goodsImg:"http://7xjyw1.com1.z0.glb.clouddn.com/pos002.jpg",
                  goodsName:'香脆鸡柳',
                  price:17
              }
              
          ],
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54

    用v-for改造我们的无序列表:

  • {{goods.goodsName}} ¥{{goods.price}}元
    • 1
    • 2
    • 3
    • 4
    • 5

    下拉框

    <el-select placeholder="每页显示条数" class="pageSizeClass" v-model="pageSize">
      <el-option key="1" label="10条" value=10>el-option>
      <el-option key="2" label="20条" value=20>el-option>
      <el-option key="3" label="30条" value=30>el-option>
    el-select>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    value默认是string,设置默认值的时候,默认值要转string(如果本来是数字的话)

    this.pageSize=res.data.data.pageSize.toString();
    
    • 1
  • 相关阅读:
    TCP连接
    Objective-C学习 一
    面试官:你了解git cherry-pick吗?
    虚拟 DOM 和 diff 算法
    算法--差分
    【并发编程】-1. 计算机内存架构、JAVA内存模型、Volatile关键字
    【Confluence】使用start-confluence.sh命令重启后提示找不到网页HTTP404
    如何防止网络安全攻击
    HTML5期末大作业:旅游网页设计与实现——旅游风景区网站HTML+CSS+JavaScript 景点静态网页设计 学生DW静态网页设计
    什么是Webpack的Tree Shaking?它的作用是什么?
  • 原文地址:https://blog.csdn.net/qq_36254947/article/details/133809758