当前位置: 代码网 > it编程>编程语言>Java > 微信小程序完整项目实战(前端+后端)

微信小程序完整项目实战(前端+后端)

2024年08月02日 Java 我要评论
基于微信小程序的在线商城系统,采用前后端分离的模式,使用Java作为后端语言进行开发,界面完整,上手简单。

基于微信小程序的在线商城点单系统

前言

项目功能及技术

小程序主要有首页、商品详情、商品分类、商品评价、购物车、个人中心等模块。
管理端主要有人员管理、权限管理、商品管理、订单管理等模块。

html+css+js:微信小程序界面。
springboot框架+java程序语言:小程序及后台管理系统api的实现。
layui前端框架:web后台管理界面样式及数据渲染框架。
mysql数据库:数据支持。

效果图

小程序

管理端

api

springboot框架搭建

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

实体映射创建mapper

在这里插入图片描述

package com.example.demo.entity;

import com.baomidou.mybatisplus.annotation.idtype;
import com.baomidou.mybatisplus.annotation.tablefield;
import com.baomidou.mybatisplus.annotation.tableid;
import lombok.data;

import java.time.localdatetime;
import java.util.arraylist;
import java.util.list;

@data
public class user {
    @tableid(type = idtype.auto)
    private long id;

    private string account;

    private string pwd;

    private string userdesc;

    private string userhead;

    private localdatetime createtime;

    private long role;

    private string nickname;

    private string email;

    private string tags;
}

接口封装

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

整合swagger

添加依赖

<!--swagger依赖-->
<dependency>
    <groupid>io.springfox</groupid>
    <artifactid>springfox-swagger2</artifactid>
    <version>2.9.2</version>
</dependency>
<dependency>
    <groupid>io.springfox</groupid>
    <artifactid>springfox-swagger-ui</artifactid>
    <version>2.9.2</version>
</dependency>

配置swagger

/*
     *用于定义api主界面的信息,比如可以声明所有的api的总标题、描述、版本
     */
    private apiinfo apidemo() {
        return new apiinfobuilder()
                //用来自定义api的标题
                .title("springboot项目swaggerapiapi标题测试")
                //用来描述整体的api
                .description("springboot项目swaggerapi描述测试")
                //创建人信息
                .contact(new contact("测试员张三","http://localhost:8080/springboot/swagger-ui.html","xxxxxxxx@163.com"))
                //用于定义服务的域名
                //.termsofserviceurl("")
                .version("1.0") //可以用来定义版本
                .build();
    }

接口测试

在这里插入图片描述

接口组定义

@api(tags = "用户管理") //  tags:组名称
@restcontroller
public class rolecontroller {
}

在这里插入图片描述
接口定义

  • @apimodel:用来标类

  • 常用配置项:value:实体类简称;description:实体类说明

  • @apimodelproperty:用来描述类的字段的含义。

常用字段类型

字段类型所占字节存储范围最大存储值使用场景
tinyint1-128~127127存储小整数
int4-2147483648~21474836472147483647存储大整数
bigint8-9223372036854775808~92233720368547758079223372036854775807存储极大整数
decimal可变长度存储精度要求高的数值
char固定长度最多255字节255个字符存储长度固定的字符串
varchar可变长度最多65535字节65535个字符存储长度不固定的字符串
datetime8‘1000-01-01 00:00:00’~‘9999-12-31 23:59:59’‘9999-12-31 23:59:59’存储日期和时间

参考代码块

<!-- 自定义顶部 start -->
<view class="yx-custom" style="padding-top:{{statusbarheight}}px;background-image: linear-gradient(43deg, #12c206,#00c90f);">
  <view class="headerbox">
    <view class="leftaddress">
      <image class="leftaddressicon" src="{{imgurl}}/upload/20220608/addressicon.png" lazy-load="true"></image>
      <view class="leftaddresstext little">橘猫餐厅</view>
      <image class="rightjticon" src="{{imgurl}}/upload/20220608/jtbottom.png" lazy-load="true"></image>
    </view>
    <view class="appletstitle"></view>
  </view>
</view>
<!-- 自定义顶部 占位标签 -->
<view class="yx-empty_custom" style="padding-top:{{statusbarheight}}px;"></view>
<!-- banner图 -->
<view style="background: url({{imgurl}}/upload/20220608/topbackimg.png);background-size: 100% 100%;width:750rpx;height:324rpx;">
  <view class="bannerbottom"></view>
</view>
<!-- 分类及商品 -->
<view class="containerbox" style="height:{{nowequipmentheight-((statusbarheight*2)+162)}}px;">
  <scroll-view class="menu-left" scroll-y="true" style="height:{{nowequipmentheight-((statusbarheight*2)+162)}}px;">
    <view wx:for="{{menulist}}" class="little {{menuindex==index?'menu-item-check':'menu-item'}}  {{item.prevclass}} {{item.nextclass}}" 
    bindtap="clickmenu" data-index="{{index}}">{{item.title}}</view>
    <view class="bottomheightbox"></view>
  </scroll-view>
  <scroll-view class="menu-right" scroll-y="true" style="height:{{nowequipmentheight-((statusbarheight*2)+162)}}px;">
    <view class="menutitlebox">
      <text>热门推荐</text>
    </view>
    <view class="productcontainer">
      <view class="productitem" wx:for="{{20}}" bindtap="godetail">
        <view class="productimage" style="background: url({{imgurl}}/upload/20220608/ky.jpg);background-size: 100% 100%;"></view>
        <view class="productname little">超级无敌好吃美味烤鸭</view>
        <view class="productpricebox">
          <view class="saleprice">
            <text style="font-size:22rpx;"></text>
            <text>58.88</text>
            <text style="font-weight:400;">/g</text>
          </view>
          <view class="oldprice middleline">¥98</view>
        </view>
      </view>
    </view>
    <view class="bottomheightbox"></view>
  </scroll-view>
</view>
<!-- <image class="scanicon" src="{{imgurl}}/areas/dfapi/content/images/cp.png" lazy-load="true"></image> -->
<image class="scanicon" src="{{imgurl}}{{scanurl}}" lazy-load="true" bindtap="scantablecode"></image>
<!--pages/productdetail/index.wxml-->
<!-- 商品轮播图 -->
<view class="product-banner">
  <swiper class="product-banner" bindchange='onslidechange' indicator-dots="{{indicatordots}}" autoplay="{{autoplay}}"
    interval="{{interval}}" duration="{{duration}}" circular="{{circular}}">
    <block wx:for="{{productbanner}}" wx:key="id">
      <swiper-item>
        <view>
          <image src="{{item}}" class="product-banner" alt="" lazy-load="true" />
        </view>
      </swiper-item>
    </block>
  </swiper>
</view>
<!-- 秒杀商品展示 -->
<view wx:if="{{productactivitype==0}}" class="activebox"
  style="background: url({{imgurl}}/upload/20220608/kill-pro-back.png);background-size: 100% 100%;">
  <view class="kill-leftbox">
    <view class="product-pricebox">
      <view style="height:35rpx;line-height: 35rpx;">
        <text class="symbol-kill"></text>
        <text class="price-kill">58.8</text>
        <text class="throuth-kill">¥98</text>
      </view>
      <view class="num-kill displaybox">限量200份</view>
    </view>
    <view class="justnum-kill">
      <text>已售198份</text><text
        class="just-righttext">每人限购1份</text>
    </view>
  </view>
  <view class="kill-rightbox">
    <view class="just-text">距秒杀结束仅剩</view>
    <view class="kill-timebox">
      <view class="clockbox margin-one displaybox">{{hour}}</view>
      <view class="littleclock">:</view>
      <view class="clockbox displaybox">{{min}}</view>
      <view class="littleclock">:</view>
      <view class="clockbox displaybox">{{second}}</view>
    </view>
  </view>
</view>
<!-- 商品名称 -->
<view class="productname-box littletwo">
  超级无敌好吃美味烤鸭
</view>
<!-- 商品描述 -->
<view class="productdesc-box littletwo">
  色泽红艳,肉质细嫩,味道醇厚,肥而不腻
</view>
<!-- 分享奖励 -->
<view class="productshare-money" bindtap="shareproduct">
  <view class="left-share">
    <text>该商品分享可得奖励¥10</text>
  </view>
  <view class="right-share">
    <image src="{{imgurl}}/upload/20220608/share.png" lazy-load="true"></image>
    <text>立即分享</text>
  </view>
</view>
<!-- 商品配置规格 -->
<!-- <view class="productinfobox">
  <view class="heightinfo"></view>
  <view class="distribution" bindtap="chouseaddress">
    <view class="title-info">配送</view>
    <view class="chousespe">请选择收货地址</view>
    <image src="{{imgurl}}/upload/20220608/rightjt.png" lazy-load="true"></image>
  </view>
</view> -->

<!-- 服务 -->
<view class="services-box">
  <view class="services-left">服务</view>
  <view class="services-right">新鲜品质 配送到家 售后无忧</view>
</view>

<!-- 商品评价 -->
<view class="product-reply" >
  <view class="reply-title">
    <view class="leftreolycount">
      评价(2824)
    </view>
    <view class="middleseemore">
      <view>查看全部评价</view>
    </view>
    <image class="grayright" src="{{imgurl}}/upload/20220608/rightjt.png" lazy-load="true"></image>
  </view>
  <view class="replyuserinfo">

    <image  class="replyuserhead" src="{{imgurl}}/upload/20220608/jocker.jpg" lazy-load="true"></image>
    <view class="rightusername">
      <view class="username little">橘猫大侠</view>
      <view class="starbox">
        <image src="{{imgurl}}/upload/20220608/star5.png" class="starimg">
        </image>
      </view>
    </view>
  </view>
  <view class="replycontet littletwo">
    味道好,配送快,值得信赖!
  </view>
</view> 

<!-- 商品详情 -->
<image class="proimgdetail" src="{{imgurl}}/upload/20220608/prodetailimg.png" lazy-load="true"></image>

<view style="height:56rpx;"></view>

<view class="productdetailtable" wx:if="{{spulist.length>0}}">

  <view wx:if="{{!isshowdetail}}">
    <view class="producttabletr">
      <view class="lefttr">
        <view class="little lefttrtext">{{spulist[0].name}}</view>
      </view>
      <view class="righttr little">{{spulist[0].content}}</view>
    </view>
  </view>

  <view wx:if="{{isshowdetail}}" class="producttabletr" wx:for="{{spulist}}">
    <view class="lefttr">
      <view class="little lefttrtext">{{item.name}}</view>
    </view>
    <view class="righttr little">{{item.content}}</view>
  </view>

</view>

<view class="detailarrow displaybox" wx:if="{{spulist.length>0}}">
  <image wx:if="{{!isshowdetail}}" bindtap="clickarrow" class="arrowimg"
    src="{{imgurl}}/upload/20220608/nextjt.png" lazy-load="true"></image>
  <text wx:if="{{!isshowdetail}}" bindtap="clickarrow" style="margin-left:10rpx;">展开</text>

  <image wx:if="{{isshowdetail}}" bindtap="clickarrow" class="arrowimg"
    src="{{imgurl}}/upload/20220608/topjt.png" lazy-load="true"></image>
  <text wx:if="{{isshowdetail}}" bindtap="clickarrow" style="margin-left:10rpx;">收起</text>
</view>
<view style="height:56rpx;"></view>
<image src="{{imgurl}}/upload/20220608/explain.png" class="explain"></image>
<!-- 你可能还喜欢 -->
<view class="maybelike">
  <image src="{{imgurl}}/upload/20220608/2323-2.png" class="maybelikepng"></image>

  <!-- 配置商品 -->
  <view class="indexproductlist">
    <view class="productitembottom" wx:for="{{4}}">
      <view style="background: url({{imgurl}}/upload/20220608/ky.jpg);background-size: 100% 100%;" class="productimgbottom"></view>
      <view class="bottom-productname little">北京烤鸭</view>
      <view class="iconbox little">
        干净又卫生
      </view>
      <view class="buybox-bottom">
        <view class="leftprice-bottom">
          <text class="pricefh"></text>
          <text class="bottom-price">58</text>
          <text class="bottom-oldprice">¥98</text>
        </view>
        <view class="rightadd-bottom"  data-index="{{index}}" >
          <image class="rightadd-bottom" src="{{imgurl}}/upload/20220608/addcart.png" lazy-load="true">
          </image>
        </view>
      </view>
    </view>
  </view>
</view>
<view style="height:162rpx;"></view>
<view class="footer">
  <view class="leftfooter">
    <view bindtap="gohome">
      <view style="background: url({{imgurl}}/upload/20220608/6-1.png);background-size: 100% 100%;"
        class="footimg"></view>
      <view class="foottext">首页</view>
    </view>
    <view bindtap="goshopping">
      <view style="background: url({{imgurl}}/upload/20220608/6-5.png);background-size: 100% 100%;"
        class="footimg2"></view>
      <view class="foottext2">购物车</view>
    </view>
  </view>
  <view class="rightfooter">
    <view class="displayshow" >
      <view class="addcart-btn displaybox" catchtap="btnaddcart_footer">加入购物车</view>
      <view class="purchase-btn displaybox" bindtap="rightnowbuy">立即购买</view>
    </view>
  </view>
</view>

<!--pages/shoppingcart/index.wxml-->
<!--pages/login/index.wxml-->
<view class="yx-custom" style="padding-top:{{statusbarheight}}px;background-image: linear-gradient(43deg, #12c206,#00c90f);">
  <view class="headerbox">
    <view class="leftaddress">
    </view>
    <view class="appletstitle">购物车</view>
  </view>
</view>
<!-- 自定义顶部 占位标签 -->
<view class="yx-empty_custom" style="padding-top:{{statusbarheight}}px;"></view>
<!-- 可下单的购物车商品 -->
<view class="go-product">
  <view class="product-num">
    <view class="left-productnum">共有5件商品</view>
    <view class="right-delproduct" bindtap="deleteproduct">
      <text>删除</text>
    </view>
  </view>
  <view wx:for="{{2}}" wx:for-index="idx" wx:for-item="item">
    <view class="discount">
      <view class="left-discount little">热门推荐</view>
      <view class="discount-jt">
        <image src="{{imgurl}}/upload/20220608/cartjt.png" lazy-load="true"></image>
      </view>
    </view>
    <view wx:for="2" wx:for-index="indexproduct" wx:for-item="proitem">
      <view class="list">
        <view class="product-item  height{{indexproduct}}">
          <movable-area>
            <movable-view out-of-bounds="true" direction="horizontal" x="{{item.xmove}}" inertia="true" data-productindex="{{indexproduct}}" bindtouchstart="handletouchstart" bindtouchend="handletouchend" bindchange="handlemovablechange">
              <view class="productitem_new ">
                <view class="checkediconbox">
                  <view class="cart-con-item-icon">
                    <icon wx:if="{{proitem.selected}}" type="success" color="#ffbd20" bindtap="selectlist_yx" data-other="{{idx}}" data-index="{{indexproduct}}" data-cartid="{{proitem.cartid}}" />
                    <icon wx:else type="circle" bindtap="selectlist_yx" data-other="{{idx}}" data-index="{{indexproduct}}" data-cartid="{{proitem.cartid}}" />
                  </view>
                </view>
                <view class="rightproductinfo">
                  <image src="{{imgurl}}/upload/20220608/ky.jpg" class="cart-productimg"></image>
                  <view class="productinfobox">
                    <view class="cart-productname littletwo">超级无敌好吃美味烤鸭</view>
                    <view class="cart-productsku little">500g</view>
                    <view class="cart-productprice">
                      <text class="pricesymbol"></text>
                      <text class="cart-price">58.8</text>
                      <text class="cart-oldprice">¥98</text>
                    </view>
                  </view>
                  <view class="cart-rightnumbox">
                    <view class="cart-con-item-num">
                      <text class="cart-con-item-num-left" catchtap="bindminus" data-other="{{idx}}" data-index="{{indexproduct}}" data-cartid="{{proitem.cartid}}">-</text>
                      <input type="cart-con-item-num-mid" bindinput="bindiptcartnum" data-index='{{indexproduct}}' value="1" disabled="{{true}}" />
                      <text class="cart-con-item-num-right" data-other="{{idx}}" data-index="{{indexproduct}}" data-cartid="{{proitem.cartid}}" catchtap="bindplus">+</text>
                    </view>
                  </view>
                </view>
              </view>
            </movable-view>
          </movable-area>
          <view class="delete-btn" data-id="{{item.id}}" bindtap="handledeleteproduct" data-other="{{idx}}" data-index="{{indexproduct}}" data-cartid="{{proitem.cartid}}">删除</view>
        </view>
      </view>
    </view>
  </view>
</view>
<view class="cant-product">
  <view class="canttitle displaybox">因配送范围,库存原因等导致失效的商品</view>
  <view class="productitem_new height{{index}}" wx:for="{{2}}">
    <view class="cantproductleft displaybox">
      失效
    </view>
    <view class="rightproductinfo">
      <view class="cart-productimg" style="background: url({{imgurl}}/upload/20220608/ky.jpg);background-size: 100% 100%;">
        <image src="{{imgurl}}/upload/20220608/yyyy.png" class="cart-productimg" lazy-load="true"></image>
      </view>
      <view class="productinfobox">
        <view class="cart-productnameyy littletwo">曾经好吃的烤鸭</view>
        <view class="cart-productyyy little">抱歉,该商品已售罄或下架</view>
        <view class="cart-productprice">
          <text class="pricesymbolyy"></text>
          <text class="cart-priceyy">0</text>
        </view>
      </view>
      <view class="cart-rightnumbox">
      </view>
    </view>
  </view>
  <view class="clearbox">
    <view class="clear displaybox" bindtap="clearproduct">清空失效宝贝</view>
    <view class="switchaddress displaybox" bindtap="switchadd">切换地址</view>
  </view>
</view>
<view class="maybelike" wx:if="{{recommendproduct.length>0}}">
  <image src="{{imgurl}}/upload/20220608/2323-2.png" class="maybelikepng"></image>

  <view class="indexproductlist">
    <view class="productitembottom" wx:for="{{recommendproduct}}">
      <view style="background: url({{item.productpic}});background-size: 100% 100%;" class="productimgbottom"></view>
      <view class="bottom-productname little">{{item.productname}}</view>
      <view class="iconbox little">
        {{item.remark}}
      </view>
      <view class="buybox-bottom">
        <view class="leftprice-bottom">
          <text class="pricefh"></text>
          <text class="bottom-price">{{item.price}}</text>
          <text class="bottom-oldprice">¥{{item.prosaleprice}}</text>
        </view>
        <view class="rightadd-bottom" catchtap="btnaddcart" data-index="{{index}}" data-goodsid="{{item.productid}}">
          <image class="rightadd-bottom" src="{{imgurl}}/areas/dfapi/content/images/addcart.png" lazy-load="true">
          </image>
        </view>
      </view>
    </view>
  </view>
</view>
<view class="seedetailpricebox" wx:if="{{isshowdetailprice}}" catchtap="btnhidedetail">
  <view class="shareb2">
    <view class="shareb2-con">
      <viwe class="detailtitle displaybox">优惠明细</viwe>
      <view class="orderallprice">
        <view class="lefttitle">
          <text>商品总额</text>
        </view>
        <view class="righttitle">
          <text>¥{{totalprice}}</text>
        </view>
      </view>
      <view class="orderallprice">
        <view class="lefttitle">
          <text>运费</text>
        </view>
        <view class="righttitle">
          <text>+¥{{freight}}</text>
        </view>
      </view>
      <view class="orderallprice">
        <view class="lefttitle">
          <text>优惠券</text>
        </view>
        <view class="righttitle">
          <text style="color:#ff4c0e;">-¥{{couponamount}}</text>
        </view>
      </view>
      <view class="orderallprice">
        <view class="lefttitle">
          <text>折扣</text>
        </view>
        <view class="righttitle">
          <text style="color:#ff4c0e;">-¥{{discountmoney}}</text>
        </view>
      </view>
      <view class="orderallpricefinal">
        <view class="lefttitle">
          <text>合计</text>
        </view>
        <view class="righttitle">
          <text>¥{{amountpayable}}</text>
        </view>
      </view>
    </view>
  </view>
</view>

<view class="cart-foter">
  <view class="allchecked">
    <image wx:if="{{!ischeckall}}" src="{{imgurl}}/upload/20220608/uncheck.png" bindtap="selectall" lazy-load="true" class="checkimg"></image>
    <image wx:else src="{{imgurl}}/upload/20220608/checked.png" lazy-load="true" bindtap="selectall" class="checkimg"></image>
    <view class="allchecktext">全选</view>
  </view>

  <view class="middleprice">

    <view class="pricebox">
      <text class="hjtitle">合计:</text>
      <text class="symbol"></text>
      <text class="priceall">¥198</text>
    </view>

    <view class="coupon">
      <text>优惠:</text>
      <text></text>
      <text>{{finalcou}}</text>
      <text class="seedetail">查看明细</text>

      <image wx:if="{{isshowdetailprice}}" src="{{imgurl}}/upload/20220608/orangeon.png" lazy-load="true" class="orangejt" bindtap="seedetailprice"></image>

      <image wx:else src="{{imgurl}}/upload/20220608/orangebo.png" lazy-load="true" class="orangejt" bindtap="seedetailprice"></image>
    </view>

  </view>

  <view class="right-btnjs">
    <view class="addorder displaybox" bindtap="gobuy">结算</view>
  </view>


</view>

<view class="bottomheightbox"></view>
<!--pages/mycenter/index.wxml-->
<!-- 头部背景 收益容器 -->
<view class="center-top">
  <view class="center-topback">
    <view class="userinfo-box">
      <view class="leftinfo">
        <view class="cnter-user">
          <image  src="{{imgurl}}/upload/20220608/nouser.png" class="cnter-user" lazy-load="true">
          </image>
        </view>
        <view class="usernamebox">
          <view class="unametext">
            <!-- <open-data  type="usernickname"></open-data> -->
            <!-- <view wx:else bindtap="login">注册/登录</view> -->
            <view >
              <text>摔跤猫子</text>
              <!-- <button class="kefu-btn" type="primary" open-type="getuserinfo" bindgetuserinfo="getuserinfo"
                style="width:100%"></button> -->
                <button  class="kefu-btn" style="width:100%"></button>
            </view>
          </view>
          <view class="shop">
            <text>用户</text>
          </view>
        </view>
      </view>
    </view>
<!-- 我的订单入口 -->
<view class="myorder-menu">
  <view class="order-title">
    <view class="lefttitle">我的订单</view>
    <view class="rightseemore" bindtap="gotoorder" data-id="0">
      <image src="{{imgurl}}/upload/20220608/black-jt.png" lazy-load="true"></image>
      <text style="float:right;padding-right:10rpx;">查看更多</text>
    </view>
  </view>
  <view class="ordermenu-img">
    <view class="ordermenu-detail" bindtap="gotoorder" data-id="1">
      <image src="{{imgurl}}/upload/20220608/dfk.png" lazy-load="true"></image>
      <view class="num-mark" wx:if="{{tobepaid>0}}">{{tobepaid}}</view>
      <view class="order-text-staus">待付款</view>
    </view>
    <view class="ordermenu-detail" bindtap="gotoorder" data-id="2">
      <image src="{{imgurl}}/upload/20220608/dfh.png" lazy-load="true"></image>
      <view class="num-mark" wx:if="{{tobedelivered>0}}">{{tobedelivered}}</view>
      <view class="order-text-staus">待发货</view>
    </view>
    <view class="ordermenu-detail" bindtap="gotoorder" data-id="3">
      <image src="{{imgurl}}/upload/20220608/dsh.png" lazy-load="true"></image>
      <view class="num-mark" wx:if="{{tobereceived>0}}">{{tobereceived}}</view>
      <view class="order-text-staus">待收货</view>
    </view>
    <view class="ordermenu-detail" bindtap="goreplylist">
      <image src="{{imgurl}}/upload/20220608/dpj.png" lazy-load="true"></image>
      <view class="num-mark" wx:if="{{tobereply>0}}">{{tobereply}}</view>
      <view class="order-text-staus">评价</view>
    </view>
    <view class="ordermenu-detail" bindtap="aftersale">
      <image src="{{imgurl}}/upload/20220608/dtk.png" lazy-load="true"></image>
      <view class="num-mark" wx:if="{{cancel>0}}">{{cancel}}</view>
      <view class="order-text-staus">售后/退款</view>
    </view>
  </view>
</view>
  </view>
</view>
<!-- 常用工具入口 -->
<view class="tool-box">
  <view class="often-tool-title">常用工具</view>
  <view class="tool-menu-one" >
    <view class="tool-menu-detail" bindtap="gotomyearnings">
      <view style="background: url({{imgurl}}/upload/20220608/profit.png);background-size: 100% 100%;"
        class="toolimgback"></view>
      <view class="tool-title">我的收益</view>
    </view>
    <view class="tool-menu-detail" bindtap="gotomyteam">
      <view style="background: url({{imgurl}}/upload/20220608/myteam.png);background-size: 100% 100%;"
        class="toolimgback"></view>
      <view class="tool-title">我的团队</view>
    </view>
    <view class="tool-menu-detail" bindtap="gocouponlist">
      <view style="background: url({{imgurl}}/upload/20220608/mycou.png);background-size: 100% 100%;"
        class="toolimgback"></view>
      <view class="tool-title">我的优惠券</view>
    </view>
    <view class="tool-menu-detail" bindtap="goaddresslist">
      <view style="background: url({{imgurl}}/upload/20220608/myadd.png);background-size: 100% 100%;"
        class="toolimgback"></view>
      <view class="tool-title">收货地址</view>
    </view>
  </view>
  <view class="tool-menu-two">
    <view class="tool-menu-detail" style="position: relative;">
      <view style="background: url({{imgurl}}/upload/20220608/customservice.png);background-size: 100% 100%;"
        class="toolimgback"></view>
      <view class="tool-title">联系客服</view>
      <button class="kefu-btn" open-type="contact" style="width:100%"></button>
    </view>
    <view class="tool-menu-detail" bindtap="setup">
      <view style="background: url({{imgurl}}/upload/20220608/set.png);background-size: 100% 100%;"
        class="toolimgback"></view>
      <view class="tool-title">设置</view>
    </view>
  </view>
</view>
(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com