Vue后台管理系统项目(6)品牌列表展示

目录

gitee仓库地址:

 1.书写tradeMark的接口

 2.统一对外暴露

 3. 把对外暴露的数据挂在Vue的原型上

 4.在tradeMark组件中测试$API

 5.在组件中获取到数据

 6.数据展示到页面

6.1利用data存储数据

6.2利用tape='index'展示序号 

6.3 利用prop展示品牌名称

6.4 作用域插槽展示品牌LOGO

6.5 作用域插槽展示操作

6.6分页器动态展示

6.7分页器点击切换功能实现-------@current-change 

6.8改变某一页显示条数,数据也进行改变------@size-change


gitee仓库地址:

https://gitee.com/CMD-UROOT/my_project/commits/master

大家根据上传历史进行查找你需要的代码

前期工作

先删除table.sj文件,因为这里获取的是假数据

我们知道下图中每一个模块都有属于自己的接口

所以我们在api文件夹下,新建一个product文件夹,里面创建四个模块

接口地址:http://39.98.123.211:8416/swagger-ui.html

我们需要分页列表这个接口/admin/product/baseTrademark/{page}/{limit}

我们还可以看到需要携带两个参数,当前页码page和每页记录数limit

1.书写tradeMark的接口

  在api/product/tradeMark.js中:

 2.统一对外暴露

因为这四个模块都是要对对外暴露的,所以我们统一在一个文件中对外暴露

在api/index.js中:

3. 把对外暴露的数据挂在Vue的原型上

这样做的好处是可以在任意的组件中使用这些函数

在main.js中:

 

 4.在tradeMark组件中测试$API

在views/product/tradeMark/index.vue中:

我们先看看$API我们能否获取到

 控制台:

获取成功

 5.在组件中获取到数据

当组件一挂载应该获取服务器的数据,展示数据,但是获取我们这里列表的数据并不是只获取一次,当我们点击分页的按钮的时候,还需要获取相应的页数的数据进行展示,所以这个接口发请求的时候,不可能只发一次的

在views/product/tradeMark/index.vue中:

 export default {
    name:'tradeMark',
    data(){
      return {
        //代表的分页器第几页
        page:1,
        //当前页数展示数据条数
        limit:3,
      }
    },
    //组件挂载完毕
    mounted () {
      // console.log(this.$API);
      //获取列表数据的方法
      this.getPageList()
    },
    methods: {
      //获取品牌列表的数据
      async getPageList() {
        //解构出参数
        const {page,limit} = this
        //获取品牌列表的接口
        //当你向服务器发请求的时候,这个阿含糊需要带参数,所以我们在data中初始化两个字段,代表给服务器传递参数
        let result =  await this.$API.trademark.reqTradeMarkList(page,limit)
        console.log(result)
      }
    },
  }

查看打印的结果:里面有我们需要的数据

code200表示成功,里面records是数组,total是我们需要的总共数据条数

数据放到组件身上:

在views/product/tradeMark/index.vue中:

export default {
    name:'tradeMark',
    data(){
      return {
        //代表的分页器第几页
        page:1,
        //当前页数展示数据条数
        limit:3,
        //总共数据条数
        total:0,
        //列表展示的数据
        list:[]
      }
    },
    //组件挂载完毕
    mounted () {
      // console.log(this.$API);
      //获取列表数据的方法
      this.getPageList()
    },
    methods: {
      //获取品牌列表的数据
      async getPageList() {
        //解构出参数
        const {page,limit} = this
        //获取品牌列表的接口
        //当你向服务器发请求的时候,这个阿含糊需要带参数,所以我们在data中初始化两个字段,代表给服务器传递参数
        let result =  await this.$API.trademark.reqTradeMarkList(page,limit)
        // console.log(result)
        if(result.code==200){
          //分别是展示数据的总条数与列表展示的数据
          this.total = result.data.total
          this.list = result.data.records
        }
      }
    },
  }

上面代码新增这些:

 控制台查看:

组件身上已经有数据了

 6.数据展示到页面

官网查看:Element - The world's most popular Vue UI framework

6.1利用data存储数据

我们把要展示的数据放到:data中

 在views/product/tradeMark/index.vue中:

 效果:有表格出来了,三行,正好对应我们三组数据

6.2利用tape='index'展示序号 

我们现在需要把序号展示出来,但是我们的数据中id并不能当做序号,我们就可以利用ElementUI提供的表格,有带序号的,看文档

文档地址:Element - The world's most popular Vue UI framework

 

  在views/product/tradeMark/index.vue中:

tradeMark组件中

6.3 利用prop展示品牌名称

 

  在views/product/tradeMark/index.vue中:

 效果:

不太清楚作用域插槽的可以看我以前的文章Vue项目中常见问题(73)组件通信-作用域插槽_学无止境QAQ的博客-CSDN博客

作用域插槽:子组件的数据来源于父组件的,子组件决定不了自己的结构和外观

  在views/product/tradeMark/index.vue中:

我们这样写效果:

 效果:

   在views/product/tradeMark/index.vue中:

利用作用域插槽回传数据,我们先看看第一和第二个参数,代表什么意思

 效果:

第一个参数是每一条数据,第二个参数是对应的下标

   在views/product/tradeMark/index.vue中:

给定义结构和样式:

 效果:

 

  6.5 作用域插槽展示操作

   在views/product/tradeMark/index.vue中:

 效果:

6.6分页器动态展示

在views/product/tradeMark/index.vue中:

修改前

 修改后

 效果:

6.7分页器点击切换功能实现-------@current-change 

我们想要点击第几页就展示第几页的数据,触发分页器的点击事件

还是看文档:Element - The world's most popular Vue UI framework

绑定点击事件

 在methods中:

 效果:实现

 但是我们知道我们点击无法需要再发一次请求,我们的请求其实是放在获取品牌列表的数据的那个函数中的,我们可以就用getPageList这个函数,这样可以省略一个函数

 下面改变的就只有红色框中的代码,意思默认是显示第一页的,当我们点击分页器的时候,如果发生该改变,那么默认参数就失效了,就会用我们点的分页器的页码,我们点击第六页,就传第六页,然后更新数据

 效果:没问题 

6.8改变某一页显示条数,数据也进行改变------@size-change

效果实现:

猜你喜欢

转载自blog.csdn.net/qq_46368050/article/details/125046925