当前位置: 首页 > news >正文

Uniapp-小程序从入门到精通

沉淀UNIAPP项目精华模版
*******************************************************************************************************************************************
1、数据库的导入SQL
*******************************************************************************************************************************************
2、环境的配置
*******************************************************************************************************************************************
3、项目结构讲解【分页的逻辑是自己实现的,就不存在BUG】
*******************************************************************************************************************************************
4、SPRINGBOOT结构概述
*******************************************************************************************************************************************
5、VUE概述都是自己总结的模版知识梳理
*******************************************************************************************************************************************
1、项目概述
【1】Web管理员界面、管理商家、管理商品分配商品详情、管理设置广告、所有用户收藏的商家、对商家评价、系统公告
【2】商家:注册、登录、本店商品分类、本店商品、用户外卖订单、用户对本店的评价
【3】小程序端:注册登录、个人中心修改密码、首页搜索商家、商家详情页、购物车、订单、我的个人信息
【4】SPRINGBOOT+MYBATISPLUS/VUE+ELEMENTUI/MYSQL/IDEA
【5】项目概述和介绍
*******************************************************************************************************************************************
【1】https配置
server.port=443
server.ssl.key-store=classpath:www.wdfgdzx.top.pfx
server.ssl.key-store-password=q90n2e3d
server.ssl.keyStoreType=PKCS12
【2】前端注意配置请求443和https的文件
【3】npm install uview-ui
【4】UNIAPP遮罩层
<!-- 居中的弹出层 -->
<view>
    <uni-popup ref="popup" :type="type" :animation="false" :maskClick="true" style="width: 100%;">
        <view style="padding: 0 10px;position: relative;top:-10px;width: 360px;">
            <view style="background-color: white;padding: 0 10px;border-radius: 1%;">
                <!-- 标题 -->
                <view style="display: flex;justify-content: center;align-items: center;font-size: 15px;padding: 0 10px;line-height: 45px;
                margin-top: 20px;border-bottom: 1px solid lightgray;">
                    <text
                        style="font-weight: bold;background-color: #169AD4;color: white;width: 100%;text-align: center;">
                        测评记录详情
                    </text>
                </view>
                <!-- 标题 -->
                <view style="display: flex;justify-content: space-between;align-items: center;font-size: 15px;padding: 0 10px;
                line-height: 25px;">
                    <view>
                        评测人:{{item.status}}
                    </view>
                </view>
                <!-- 关闭与确认 -->
                <view
                    style="display: flex;justify-content: space-between;padding: 20px 50px;border-top: 1px solid lightgray;">
                    <view style="border: 1px solid #169AD4;width: 100px;height: 40px;
                        text-align: center;line-height: 40px;color: #169AD4;" @click="this.$refs['popup'].close()">关闭</view>
                    <view style="background-color: #169AD4;border: 1px solid #169AD4;width: 100px;height: 40px;
                        text-align: center;line-height: 40px;color: white;" @click="windowConfirm('传递修改的值')">确认</view>
                </view>
            </view>
        </view>
    </uni-popup>
</view>
<!-- 居中的弹出层 -->
************************************************************************
toggle(item) {
    this.item = item;
    this.$refs['popup'].open(); // 打开隐藏窗口
},
windowConfirm(confirmInfo) { // 点击确认窗口
    // console.log(confirmInfo)
    this.$refs['popup'].close();
},
*******************************************************************************************************************************************
2、商家查询接口
【1】商家表格设计
*******************************************************************************************************************************************
3、商家新增接口
*******************************************************************************************************************************************
规则校验的使用,很严格,要细心
 confirmInsertOrUpdate() {
      this.$refs["sendFormRef"].validate(valid => {
        if (valid) {
          // 表单校验合法,合法就放行,否则拦截
          this.sendFormFlag = false
          this.$http.post("/business/insertOrUpdate", this.sendForm).then(res => {
            console.log(res.data)
            if (res.data.code === "200") {
              this.$message.success('保存成功')
            } else {
              this.$message.error('保存失败,' + res.data.message)
            }
            this.selectListPage()
          })
        } else {
          return
        }
      })
    },
*******************************************************************************************************************************************
审核状态选择框
<el-form-item label="审核状态">
  <el-select style="width: 100%" v-model="sendForm.status">
    <el-option v-for="item in ['待审核', '通过', '拒绝']" :key="item" :value="item" :label="item"></el-option>
  </el-select>
</el-form-item>
*******************************************************************************************************************************************
老师遇到的错误就离谱,用mybatis-plus都不存在了~
*******************************************************************************************************************************************
5、商家的修改、删除、分页查询【只有不断学习总结,才能青出于蓝而胜于蓝!得心应手,成为高手】
*******************************************************************************************************************************************
6、开发用户管理
*******************************************************************************************************************************************
7、开放商家注册、登录功能、权限校验功能
【1】尽信书不如无书,尽信视频不如无视频!还是要有自己的思路和想法,不要被需求牵着鼻子走!
【2】这里的反思来自,用户管理的地方应该就一个地方,不应该有多个,导致思路混乱。
*******************************************************************************************************************************************
8、商家个人信息的修改
【1】再次证明功能可以基于原来包一层,但是不要加条并行。
【2】大道至简
*******************************************************************************************************************************************
9、开发商品分类功能
【1】万变不离其宗,最多的不过是增删改查~
*******************************************************************************************************************************************
10、开发商品管理功能 5分钟
【1】图片展示代码【百研究,不如一学一总结】!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&展示
<el-table-column prop="image" label="商品图片"> <!--处理展示图片-->
<template v-slot="scope">
  <div style="display: flex;align-items: center; justify-content: center;">
    <el-image style="width: 40px;height: 40px;" v-if="scope.row.image"
              :src="scope.row.image" :preview-src-list="[scope.row.image]">
    </el-image>
  </div>
</template>
</el-table-column>
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&修改
<el-form-item label="商品图片">
  <el-upload class="avatar-uploader"
             name="multipartFile"
             :action="'http://'+WHITE_IP+'/document/upload'"
             :headers="{token:user.token}"
             list-type="picture"
             :file-list="imageFileList"
             :on-success="onSuccessImage">
    <el-button type="primary">上传商品图片</el-button>
  </el-upload>
</el-form-item>
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&方法指定字段
onSuccessImage(res) { // 方法名字后面固定吧,只改字段名
  this.sendForm.image = res; // 这个方法就决定了哪个字段用图片
},

/*新增窗口*/
insertWindow() {
  this.sendFormFlag = true
  this.imageFileList = [] // 把图片置为空,防止引用历史图片!!!!!!!!!!!
  this.sendForm = {} // 初始化新增空白表单
},
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
【2】使用序号,而不是ID
<el-table-column type="index" :index="hIndex" label="序号" width="60"/>
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
hIndex(index) {
  // 当前页数 - 1 * 每页数据条数 + index + 1 ( index 是索引值,从0开始)
  return (this.send.currentPage - 1) * this.send.pageSize + index + 1
},
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&选择框 ['待审核', '通过', '拒绝']可以写成变量!!!!
<el-form-item label="审核状态">
  <el-select style="width: 100%" v-model="sendForm.status">
    <el-option v-for="item in ['待审核', '通过', '拒绝']" :key="item" :value="item" :label="item"></el-option>
  </el-select>
</el-form-item>
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
日期控件的使用
<el-form-item label="完税属期">
  <div class="block">
    <el-date-picker
        v-model="sendForm.taxPeriod"
        type="date"
        value-format="yyyy-MM-dd"
        placeholder="选择日期">
    </el-date-picker>
  </div>
</el-form-item>

if (this.sendForm.taxPeriod == null) { // 判断非空
    return this.$message.error("完税属期为空,修改失败")
}
console.log(this.sendForm.releaseTime);
*******************************************************************************************************************************************
11、开发广告管理功能
【1】主要是改善了图片上传和动态查询功能!!!
【2】需要什么数据信手拈来了,动态查询就体现了这点(动态查询所有商家名称~~~)
*******************************************************************************************************************************************
12、开发订单管理功能
【1】增删改查就不再赘述
【2】从network可以看请求和返回数据!!!!,而不用只会用console.log!!!
*******************************************************************************************************************************************
13、开发收藏管理功能
【1】从MYSQL-POJO-Mapper-Controller-Vue依次展示和调试
*******************************************************************************************************************************************
14、开发评论管理功能
【1】评分功能展示
<div class="block">
  <span class="demonstration">默认不区分颜色</span>
  <el-rate v-model="value1"></el-rate>
</div>
<div class="block">
  <span class="demonstration">区分颜色</span>
  <el-rate
    v-model="value2"
    :colors="colors">
  </el-rate>
</div>

<script>
  export default {
    data() {
      return {
        value1: null,
        value2: null,
        colors: ['#99A9BF', '#F7BA2A', '#FF9900']  // 等同于 { 2: '#99A9BF', 4: { value: '#F7BA2A', excluded: true }, 5: '#FF9900' }
      }
    }
  }
</script>
*******************************************************************************************************************************************
15、小程序
【1】注册小程序账号---
【2】多学习风格与技巧
*******************************************************************************************************************************************
16、登录页面设计,20分钟
【1】https://uniapp.dcloud.net.cn/component/uniui/uni-forms.html
组件名:uni-forms
代码块: uForms、uni-forms-item 关联组件:uni-forms-item、uni-easyinput、uni-data-checkbox、uni-group。
点击下载&安装
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
[uni_modules] 21:46:57.097 [uniapp][uni-forms@1.4.10] 开始下载
[uni_modules] 21:46:57.449 [uniapp][uni-forms@1.4.10] 已下载到临时目录
[uni_modules] 21:46:58.082 [uniapp][uni-forms@1.4.10][uni-scss@1.0.3] 开始下载
[uni_modules] 21:46:58.436 [uniapp][uni-forms@1.4.10][uni-scss@1.0.3] 已下载到临时目录
[uni_modules] 21:46:58.436 [uniapp][uni-forms@1.4.10][uni-icons@2.0.9] 开始下载
[uni_modules] 21:46:58.908 [uniapp][uni-forms@1.4.10][uni-icons@2.0.9] 已下载到临时目录
[uni_modules] 21:46:59.795 [uniapp][uni-forms@1.4.10] 导入[uniapp/uni_modules]成功
【2】多学习风格与技巧组件名:uni-easyinput
代码块: uEasyinput
点击下载&安装
// 登录方法
login() {
    this.$http.post("/big/login", this.myForm).then(res => {
        // console.log(res)
        if (res.code == "200") {
            uni.showToast({
                icon: "success",
                title: "登录成功"
            })
            // 设置本地存储user
            uni.setStorageSync("user", res.object)
            // 跳转主页
            uni.switchTab({
                url: "/pages/index/index"
            })
            // uni.navigateTo({
            //     url: "/pages/index/index"
            // })
        } else {
            uni.showToast({
                icon: "error",
                title: res.message
            })
        }
    })
}
*******************************************************************************************************************************************
17、开发注册页面并对接后台接口 19分钟
【1】规则的编写与绑定
编写规则---绑定到表单---触发
*******************************************************************************************************************************************
18、开发轮播图、公告、商家列表 10分钟
【1】说白了,就是在调试小程序的样式,不然就不美观~~~
【2】美观2000,不美观可能500,这个没办法,市场美学~~~
*******************************************************************************************************************************************
19、商家详情页面、商品分类列表详情 35分钟
【1】商家详情页面
【2】主要还是页面布局
*******************************************************************************************************************************************
20、开发购物车功能 17分钟
【1】用到组件
【2】下方页面弹窗 uni-popup  https://ext.dcloud.net.cn/plugin?name=uni-popup
【3】后端代码编写,数据库操作
*******************************************************************************************************************************************
21、订单确认页面开发46分钟
【1】confire.vue 确认页面
*******************************************************************************************************************************************
22、收货地址管理、订单备注功能开发
【1】address.vue
【2】地址详情维护---新增地址按钮点击
【3】订单提交页面orderComment.vue
*******************************************************************************************************************************************
23、下单、订单功能开发 1小时35分钟
【1】主要是页面组件使用与页面美化
*******************************************************************************************************************************************
25、订单详情开发
【1】uin.navigateTo
【2】订单状态-关联中心
*******************************************************************************************************************************************
26、开发个人中心
【1】导航到其他页面
<navigator style="padding: 15rpx;border-bottom: 2rpx solid #eee;">
    <uni-icons type="info" size="18"></uni-icons>
    <text style="margin-left: 10rpx;">用户协议</text>
    <uni-icons type="right" color="#999" style="float: right;"></uni-icons>
</navigator>
*******************************************************************************************************************************************
27、开发收藏功能
【1】收藏的功能---收藏的颜色标记(其实就是根据变量的值 来决定UNIAPP颜色 v-if v-else)
【2】添加收藏---如果收藏过了 就需要取消收藏---如果没收藏则添加收藏
【3】修改收藏
【4】收藏点击后 收藏内容的显示
*******************************************************************************************************************************************
28、评价中心
【1】头像---名称---评价内容---时间---星级
【2】评价内容的布局与展示
*******************************************************************************************************************************************
29、个人信息修改功能
【1】uni.reLaunch({ // 这个方法很重要,可以自动刷新修改页面的昵称信息
                            url: '/pages/my/my'
                        })
*******************************************************************************************************************************************
30、开发搜索、商家评分功能
【1】search搜索页面
【2】设置商品额外的信息
*******************************************************************************************************************************************
31、项目测试&OVER
【1】主要是解决项目使用过程中的一些问题

相关文章:

  • gitlab-ce容器镜像源(国内)
  • 【霍夫变换】图像处理(OpenCV)-part11
  • 【修复】Django收到请求报Json解析错误
  • R语言中的常用内置函数
  • 汽车自动驾驶介绍
  • Java查询数据库表信息导出Word
  • 【重走C++学习之路】18、map和set
  • UEC++第10天|UEC++获取对象、RTTI是C++
  • 神经网络基础[ANN网络的搭建]
  • Flutter 在全新 Platform 和 UI 线程合并后,出现了什么大坑和变化?
  • 【MinerU】:一款将PDF转化为机器可读格式的工具——RAG加强(Docker版本)
  • 2025年Google Play审核策略全面解析
  • 1.ArkUI Text的介绍和使用
  • 基于Keras3.x使用CNN实现简单的猫狗分类
  • PS Mac Photoshop 2025 for Mac图像处理 PS 2025安装笔记
  • Axure大屏可视化模板:多领域数据决策的新引擎
  • 2025年3月电子学会青少年机器人技术(四级)等级考试试卷-实际操作
  • 关于按键映射软件的探索(其一)
  • 详解springcloudalibaba采用prometheus+grafana实现服务监控
  • 2025.04.24【3D】3D绘图入门指南
  • 牧原股份一季度归母净利润44.91亿元,同比扭亏为盈
  • 中国海警登临铁线礁开展维权行动并展示五星红旗
  • 美联储褐皮书:关税政策背景下,美国部分地区物价上涨、经济前景恶化
  • 上海市闵行区原二级巡视员琚汉铮接受纪律审查和监察调查
  • 2025欧亚经济合作发展论坛在沪举办
  • 董明珠卸任格力电器总裁,张伟接棒