Uni-app “悦读”项目开发

悦读APP

  • 多页面

主要页面由三个页面组成:index.vue为入口页面,write.vue为写作页面,my.vue为登录页面

底部导航栏:

Page.json中底部导航栏样式:

"globalStyle": {

           "navigationBarTextStyle": "black",

           "navigationBarBackgroundColor": "#F8F8F8",

           "backgroundColor": "#F8F8F8"

   },

   "tabBar": {

           "color": "#C3b8b4",

           "selectedColor": "#99bbff",

           "borderStyle": "#ffff77",

           "backgroundColor": "white",

           "list": [

                    {

                             "pagePath": "pages/index/index",

                             "text": "首页",

                             "iconPath": "static/shouye1.jpg",

                             "selectedIconPath": "static/shouye2.jpg"

                    },

                    {

                             "pagePath": "pages/write/write",

                             "text": "写作",

                             "iconPath": "static/xiezuo1.jpg",

                             "selectedIconPath": "static/xiezuo2.jpg"

                    },

                    {

                             "pagePath": "pages/my/my",

                             "text": "我的",

                             "iconPath": "static/wo1.jpg",

                             "selectedIconPath": "static/wo2.jpg"

                    }

           ]

},

  • 入口页面

效果如图:

1.轮播图实现:

<swiper :indicator-dots="true" :autoplay="true" :interval="2000" :duration="500">

                             <swiper-item>

                                      <image src="../../static/lb01.jpg" class="cp01" mode="widthFix" style="width: 100%;"></image>

                             </swiper-item>

                             <swiper-item>

                                      <image src="../../static/lb02.jpg" class="cp01" mode="widthFix" style="width: 100%;"></image>

                             </swiper-item>

                             <swiper-item>

                                      <image src="../../static/lb03.jpg" class="cp01" mode="widthFix" style="width: 100%;"></image>

                             </swiper-item>

                             <swiper-item>

                                      <image src="../../static/lb04.jpg" class="cp01" mode="widthFix" style="width: 100%;"></image>

                             </swiper-item>

                             <swiper-item>

                                      <image src="../../static/lb05.jpg" class="cp01" mode="widthFix" style="width: 100%;"></image>

                             </swiper-item>

                   </swiper>

2.分类点击页面跳转:

以四六级分类举例:

<view class="f1">

                             <image class="pic" src="../../static/slj.jpg" @click="fl1()"></image>

                             <text class="t" >四六级</text>

                   </view>



          方法实现:

fl1(){

                             uni.navigateTo({

                                      url:'/pages/fl1/fl1'

                             })

                   },

3.图书详情(以物联网导论为例):

<view class="r2">

                             <image class="img" src="../../static/wlwdl.jpg" mode="widthFix" @click="xq()"></image>

                             <text class="book">物联网导论</text>

                   </view>



//方法实现:

xq(){

                             uni.navigateTo({

                                      url:'/pages/xq/xq'

                             })

                   }

  • 写作页面

效果如图:

显示部分:

<input class="input" type="text"

                       placeholder="请输入标题" v-model="title" />

               </view>

           </view>

           <view class="form">

               <view class="luiyanWappar">

               <input class="input" type="text" placeholder="作者"  v-model="username"  />

               </view>

           </view>

           <view class="form">

               <view class="luiyantext"  rows="8" cols="10" >

                           <textarea  class="in_text" placeholder="写作内容" rows="8" cols="10" v-model="content" ></textarea>

              </view>

逻辑控制:

<script>

   export default{

           data(){

                    return{

                             title:'',

                             username:'',

                             content:''

                    }

           },

           onLoad(){},

           methods:{

                    mClick(){

                             uni.request({

                                      url:"http://(自己电脑的IP地址)/test/jsb.php",

                                      method:'POST',

                                      data:{

                                              title:this.title,

                                              username:this.username,

                                              content:this.content

                                      },

                                      success:res =>{

                                              console.log(res.data);

                                              console.log(res.data.title);

                                      },

                                      fail:() =>{},

                                      complete: () => {}

                             })

                             uni.navigateTo({

                                      url: '/pages/book/book?title='+this.title+'&username='+this.username+'&content='+this.content

                             });

                    }

           }

   }

</script>

点击确认发布后效果:

控制台显示:

服务器端代码:

<?php

   header('Content-Type: text/html; charset=utf-8');

   $json = file_get_contents("php://input");

   $jsondata = json_decode($json, true);

   

   $title = $jsondata['title'];

   $content = $jsondata['content'];

   $username = $jsondata['username'];



   echo '{"title":"'.$title. '","content":"'.$content.'","username":"'.$username.'"}';

?>

  • 登录页面

效果如图:

显示部分:

<view class="form">

                    <view class="inputWrapper">

                             <input class="input" type="text" placeholder-class="wrapper" placeholder="请输入用户名" v-model="userid"/>

                    </view>

                    <view class="inputWrapper">

                             <input class="input" type="text" placeholder-class="wrapper" placeholder="请输入密码" v-model="password"/>

                    </view>

                    <view class="loginBtn">

                             <button class="btnValue" type="default" @tap="checklogin()">登录</button>

                    </view>

                    <view class="forgotBtn">

                             <button class="zcdl" @click="mClick()">注册</button>

                   </view>

逻辑部分:

<script>

   export default {

           data() {

                    return {

                             userid: '',

                             password: ''

                    }

           },

          

           methods: {

                    mClick(){

                             uni.navigateTo({

                                      url:'/pages/zc/zc'

                             })

                    },

                    checklogin(){

                             uni.request({

                                      url: 'http://(自己电脑的IP地址)/test/1.php',

                                      method: 'GET',

                                      data: {

                                              userid: this.userid,

                                              password: this.password

                                      },

                                      success: res => {

                                              console.log(res.data);

                                              console.log(res.data.userid);

                                              console.log(res.data.password);

                                              if(res.data.status == 'ok'){

                                                       uni.showToast({

                                                                title:'登录成功',

                                                                icon:'success'

                                                       });

                                              }

                                      },

                                      fail: () => {},

                                      complete: () => {}

                             });

                             uni.navigateTo({

                                      url:'/pages/zhanghu/zhanghu?userid='+this.userid

                             });

                    }



           }

   }

</script>

控制台显示:

服务端代码:

<?php

$name = $_GET['userid'];

$pwd = $_GET['password'];

$status = 'ok';

echo '{"userid":"'.$name.'","password":"'.$pwd.'","status":"'.$status.'"}';

?>

注册页面:

登录成功后进入个人账户页面:

效果如图:

显示部分:

<view class="welcome">

           欢迎:{{userid}}

</view>   

逻辑控制部分:

<script>

   export default {

           data() {

                    return {

                             userid:''

                    }

           },

           onLoad(option) {

                    this.userid = option.userid

          },

我的作品显示:

显示部分:<button class="b1" @click="mClick()">我的作品</button>

逻辑控制:mClick(){

                             uni.navigateTo({

                                      url:'/pages/zuoping/zuoping'

                             })

                   },

退出登录:

前一次登录用户名及密码保存

显示部分:<button class="b1" type="warn" @click="login()">退出登录</button>

逻辑部分:login(){

                             uni.switchTab({

                                      url:'/pages/my/my'

                             })

                   },

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值