前后端分离项目—小程序首页的创建及常用工具类的配置(三)

6.使用weui组件库和iconfont

WeUI组件库简介 | wechat-miniprogram / weui

6.1引入weui组件

  "useExtendedLib": {
    "weui": true
  },

在app.json页面中有引入weui组件库

6.2引入iconfont矢量图标

6.2.1 添加代码

在pages同级目录下创建文件并添加从阿里巴巴矢量图标库生成的代码

@font-face {
  font-family: "iconfont"; /* Project id 3771021 */
  src: url('//at.alicdn.com/t/c/font_3771021_derfqxiw88.woff2?t=1668477747883') format('woff2'),
       url('//at.alicdn.com/t/c/font_3771021_derfqxiw88.woff?t=1668477747883') format('woff'),
       url('//at.alicdn.com/t/c/font_3771021_derfqxiw88.ttf?t=1668477747883') format('truetype');
}


.iconfont {
  font-family: "iconfont" !important;
  font-size: 40px;
  font-style: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-ziyuan:before {
  content: "\e6a6";
  color: #6b8770;
}

获取代码步骤:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
点击即可跳转至代码生成页面,将其复制进iconfont.wxss文件中
在这里插入图片描述

6.2.2 全局引入iconfont样式
@import "./styles/iconfont.wxss"

7.封装请求工具类

7.1创建requestUtils.js

封装请求类,以达到解耦的目的。

// 定义请求根路径baseUrl
const baseUrl="http://localhost:8080";
/**
* 返回请求根路径baseUrl
*/
export const getBaseUrl=()=>{
return baseUrl;
}


/**
* 后端请求工具类
*/
export const requestUtil=(params)=>{
  return new Promise((resolve,reject)=>{
  wx.request({
  ...params,
  url:baseUrl+params.url,
  success:(result)=>{
  resolve(result.data)
  },
  fail:(err)=>{
  reject(err)
  }
  })
  });
  }

最后在需要的界面进行工具类的引入即可

// 导入request请求工具类
import {getBaseUrl,requestUtil} from '../../utils/requestUtil.js';

7.3后端统一返回类

前后段达成协议,使用统一的数据返回格式

package com.customer.common;
/**
*
*@author Minster
*date:2022-11-14
*/
import lombok.AllArgsConstructor;
import lombok.Data;

@Data
@AllArgsConstructor
public class Result {
    /**
    *代表成功
    *
    */
    private boolean success;
    /**
    *代表编码
    *
    */
    private int code;
    /**
    *
    *代表返回的信息
    */
    private String msg;
    /**
    *
    *代表返回的数据
    */
    private Object data;

    /**
    *
    *成功的方法
    */
    public static  Result success(Object data){
        return new Result(true,200,"success",data);
    }
    /**
    *
    *失败的方法
    */
    public static  Result fail(int code,String msg){
        return new Result(false,code,msg,null);
    }
}


8.搜索框

8.1引入搜索框组件

  "usingComponents": {
    "mp-searchbar": "weui-miniprogram/searchbar/searchbar"
  }

在首页的json文件中添加

8.2使用mp-searchbar

<!-- 搜索框 -->
  <mp-searchbar > </mp-searchbar>

首页搭建完成后再添加逻辑
在这里插入图片描述

9.轮播图

9.1wxml代码

  <!-- 轮播图 -->
  <swiper autoplay indicator-dots circular>
  <swiper-item
  wx:for="{{swiperList}}"
  wx:for-item="swiper"
  wx:key="id"
  >
    <image class="swiperImg" mode="widthFix" src="{{swiper.slideshowImg}}"></image>
  </swiper-item>
  </swiper>

9.2wxss代码

swiper{
  width: 750rpx;
  height: 375rpx;
}
.swiperImg{
  width: 100%;
}

9.3js代码

 data: {
    swiperList:[]
  },
  async getSwiper(){
    const res = await requestUtil({
      url:'/slideshow/findSwiper',
      method:'GET'
    });
    this.setData({
      swiperList:res.data
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

    this.getSwiper()
  },

9.4后端controller代码

@RestController
@RequestMapping("/slideshow")
public class SlideshowController {

    @Autowired
    private ISlideshowService slideshowService;

    @GetMapping("/findSwiper")
    public Result findSwiper(){
        List<Slideshow> slideshow = slideshowService.list(new QueryWrapper<Slideshow>().eq("slideshow_status",1));
        return Result.success(slideshow);
    }
}

9.5完成界面

在这里插入图片描述

10.物品添加图标

10.1 wxml代码

  <!-- 添加物品图标 -->
  <view class="addButton">
    <navigator class="iconfont icon-ziyuan" url="/pages/add/add">  
    </navigator>
  </view>

10.2 wxss代码

.icon-ziyuan{
  position: fixed;
  right: 50rpx; 
  bottom: 50rpx;

}

10.3完成界面

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吉屋安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值