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

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

前言:闲来无事,想以后自己开一个小超市或者小吃店,能够支持线上下单,既方便客户也方便自己。系统采用Java语言作为后端实现与小程序的交互,给用来学习或者想自己开个小店的朋友当个参考。

目录

  • 前言
    • 项目功能及技术
    • 效果图
      • 小程序
      • 管理端
  • API
    • SpringBoot框架搭建
    • 实体映射创建Mapper
    • 接口封装
    • 整合Swagger
    • 常用字段类型
  • 参考代码块

前言

项目功能及技术

小程序主要有首页、商品详情、商品分类、商品评价、购物车、个人中心等模块。
管理端主要有人员管理、权限管理、商品管理、订单管理等模块。html+css+js:微信小程序界面。
SpringBoot框架+Java程序语言:小程序及后台管理系统API的实现。
Layui前端框架:web后台管理界面样式及数据渲染框架。
MySQL数据库:数据支持。

效果图

小程序

管理端

API

SpringBoot框架搭建

1.创建maven project,先创建一个名为SpringBootDemo的项目,选择【New Project】

在这里插入图片描述

然后在弹出的下图窗口中,选择左侧菜单的【New Project】

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

在project下创建module,点击右键选择【new】—【Module…】

在这里插入图片描述

左侧选择【Spring initializr】,通过idea中集成的Spring initializr工具进行spring boot项目的快速创建。窗口右侧:name可根据自己喜好设置,group和artifact和上面一样的规则,其他选项保持默认值即可,【next】

在这里插入图片描述

Developer Tools模块勾选【Spring Boot DevTools】,web模块勾选【Spring Web】,此时,一个Springboot项目已经搭建完成,可开发后续功能

在这里插入图片描述

实体映射创建Mapper

创建一个entity实体类文件夹,并在该文件夹下创建项目用到的实体类

在这里插入图片描述

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;
}

接口封装

由于我们使用mybatis-plus,所以简单的增删改查不用自己写,框架自带了,只需要实现或者继承他的Mapper、Service

在这里插入图片描述

创建控制器Controller

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

整合Swagger

添加依赖

先导入spring boot的web包

<!--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

创建一个swagger的配置类,命名为SwaggerConfig.java

/**用于定义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();}

接口测试

运行Spring Boot项目,默认端口8080,通过地址栏访问url

在这里插入图片描述

接口组定义

根据不同的业务区分不同的接口组,使用@API来划分

@Api(tags = "用户管理") //  tags:组名称
@RestController
public class RoleController {
}

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

使用@ApiModel来标注实体类,同时在接口中定义入参为实体类作为参数。

  • @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><textclass="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>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/166519.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Reparameterization trick(重参数化技巧)

“Reparameterization trick”&#xff08;重参数化技巧&#xff09;是一种在训练生成模型中处理随机性潜在变量的方法&#xff0c;特别常见于变分自动编码器&#xff08;VAE&#xff09;等模型中。这个技巧的目的是使模型可微分&#xff08;differentiable&#xff09;&#x…

新年学新语言Go之五

一、前言 Go虽然不算是面向对象语言&#xff0c;但它支持面向对象一些特性&#xff0c;面向接口编程是Go一个很重要的特性&#xff0c;而Go的接口与Java的接口区别很大&#xff0c;Go的接口比较复杂&#xff0c;这里仅用一个最简单例子做介绍&#xff0c;复杂的我也还没学。 …

PostgreSQL与MySQL数据库对比:适用场景和选择指南

数据库是现代应用程序的基石之一&#xff0c;而在选择合适的数据库管理系统&#xff08;DBMS&#xff09;时&#xff0c;开发者常常会面临着许多选择。在这方面&#xff0c;PostgreSQL和MySQL是两个备受瞩目的选项。本文将深入研究这两者之间的异同&#xff0c;并为您提供适用场…

鸿蒙HarmonyOS应用开发:扫描仪文件扫描

华为鸿蒙HarmonyOS已经发展到4.0&#xff0c;使用ArkTS作为开发语言。这篇文章结合Dynamsoft Service开发一个简单的鸿蒙应用&#xff0c;用来获取办公室里连接PC的扫描仪(惠普&#xff0c;富士通&#xff0c;爱普生&#xff0c;等)&#xff0c;把文档扫描到手机里。 准备工作…

JUC高并发容器-CopyOnWriteArrayList

CopyOnWriteArrayList JUC高并发容器线程安全的同步容器类什么是高并发容器&#xff1f;CopyOnWriteArrayList JUC高并发容器 线程安全的同步容器类 Java同步容器类通过Synchronized(内置锁)来实现同步的容器&#xff0c;比如Vector、HashTable以及SynchronizedList等容器。线…

数据可视化与GraphQL:利用Apollo创建仪表盘

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…

Defender Antivirus占用资源怎么禁止

前言 有时Defender Antivirus 突然磁盘IO很高。导致机器卡得很&#xff0c;开发代码很不方便&#xff0c;本文就介绍如何禁用这个服务。2f089809-2c6f-4fb7-86f5-8b5cbca8bd0d 操作 下载Defender Control https://www.sordum.org/9480/defender-control-v2-1/ 这是当前的最…

EtherCAT主站SDO写报文抓包分析

0 工具准备 1.EtherCAT主站 2.EtherCAT从站&#xff08;本文使用步进电机驱动器&#xff09; 3.Wireshark1 抓包分析 1.1 报文总览 本文设置从站1的对象字典&#xff0c;设置对象字典主索引为0x2000&#xff0c;子索引为0x00&#xff0c;设置值为1500。主站通过发送SDO写报文…

openGauss学习笔记-104 openGauss 数据库管理-管理数据库安全-客户端接入之SSL证书管理-证书替换

文章目录 openGauss学习笔记-104 openGauss 数据库管理-管理数据库安全-客户端接入之SSL证书管理-证书替换104.1 操作场景104.2 前提条件104.3 注意事项104.4 操作步骤 openGauss学习笔记-104 openGauss 数据库管理-管理数据库安全-客户端接入之SSL证书管理-证书替换 openGaus…

【RNA structures】RNA转录的重构和前沿测序技术

文章目录 RNA转录重建1 先简单介绍一下测序相关技术2 Map to Genome Methods2.1 Step1 Mapping reads to the genome2.2 Step2 Deal with spliced reads2.3 Step 3 Resolve individual transcripts and their expression levels 3 Align-de-novo approaches3.1 Step 1: Generat…

二维码智慧门牌管理系统升级解决方案:高效、便捷、安全的外业数据管理方法

文章目录 前言一、背景与需求二、升级解决方案三、方案优势 前言 在当今的信息化社会&#xff0c;数据管理的重要性日益凸显。尤其对于像二维码智慧门牌管理系统这样的复杂系统&#xff0c;如何实现高效、便捷、安全的数据管理&#xff0c;成为了系统升级的重要议题。本文将详…

大模型相关基础(基于李沐)

InstructGPT 介绍 ChatGPT用到的技术和InstructGPT一样的技术&#xff0c;区别是InstructGPT是在GPT3上微调&#xff0c;ChatGPT是在GPT3.5上微调。 InstructGPT论文发表在2022年3月4号&#xff0c;标题是《训练语言模型使得它们能够服从人类的一些指示》。 标题解释&#…

[深入浅出AutoSAR] SWC 设计与应用

依AutoSAR及经验辛苦整理&#xff0c;原创保护&#xff0c;禁止转载。 专栏 《深入浅出AutoSAR》 全文 3100 字&#xff0c; 包含 1. SWC 概念 2. 数据类型&#xff08;Datatype&#xff09; 3. 端口&#xff08;Port&#xff09; 4. 端口接口&#xff08;Portinterface&…

性能压测工具 —— wrk

一般我们压测的时候&#xff0c;需要了解衡量系统性能的一些参数指标&#xff0c;比如。 1、性能指标简介 1.1 延迟 简单易懂。green:一般指响应时间 95线&#xff1a;P95。平均100%的请求中95%已经响应的时间 99线&#xff1a;P99。平均100%的请求中99%已经响应的时间 平…

51单片机的时钟系统

1.简介 51内置的时钟系统可以用来计时&#xff0c;与主程序分割开来&#xff0c;在计时过程中不会终端主程序&#xff0c;还可以通过开启时钟中断来执行相应的操作。 2.单片机工作方式 单片机内部有两个十六位的定时器T0和T1。每个定时器有两种工作方式选择&#xff0c;分别…

Python 机器学习入门之K-Means聚类算法

系列文章目录 第一章 Python 机器学习入门之线性回归 K-Means聚类算法 系列文章目录前言一、K-Means简介1、定义2、例子3、K-Means与KNN 二、 K-Means实现1、步骤2、优化2.1 初始化优化之K-Means2.2 距离优化之elkan K-Means 三、优缺点1、优点2、缺点 前言 学完K近邻算法&a…

【深度学习】数据集最常见的问题及其解决方案

简介 如果您还没有听过&#xff0c;请告诉您一个事实&#xff0c;作为一名数据科学家&#xff0c;您应该始终站在一个角落跟你说&#xff1a;“你的结果与你的数据一样好。” 尝试通过提高模型能力来弥补糟糕的数据是许多人会犯的错误。这相当于你因为原来的汽车使用了劣质汽…

【疯狂Java讲义】Java学习记录(IO流)

IO流 IO&#xff1a;Input / Output 完成输入 / 输出 应用程序运行时——数据在内存中 ←→ 把数据写入硬盘&#xff08;磁带&#xff09; 内存中的数据不可持久保存 输入&#xff1a;从外部存储器&#xff08;硬盘、磁带、U盘&#…

【C语言】写入访问权限冲突

访问权限冲突 一、引入&#xff1a;情景再现二、出现问题的原因三、解决问题的方法四、问题解决五、结果修正 一、引入&#xff1a;情景再现 想在结构体堆的数组中for循环读入已经有的一个数组 int main() {int a[] { 2,3,5,7,4,6,8,65,100,70,32,50,60 };int num sizeof(a…

订单 延后自动关闭,五种方案优雅搞定!

前 言 在开发中&#xff0c;往往会遇到一些关于延时任务的需求。例如 生成订单30分钟未支付&#xff0c;则自动取消生成订单60秒后,给用户发短信 对上述的任务&#xff0c;我们给一个专业的名字来形容&#xff0c;那就是延时任务 。那么这里就会产生一个问题&#xff0c;这个…