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】主要是解决项目使用过程中的一些问题
