微信列表展示与详情页

列表展示效果图(图片来源于网络)

 

 

 

wxml代码部分:

 1 <!-- 列表页面 -->
 2 <view class="view">
 3     <view class="list">
 4         <block class="block" wx:for="{{data}}" wx:key="key">
 5             <view class="box">
 6                 <!-- 点击携带参数页面跳转 -->
 7                 <navigator url="/pages/demo3/demo3?id={{item.gid}}">
 8                     <view class="image">
 9                         <image src="{{item.image}}" />
10                     </view>
11                     <view class="text">
12                         <text class="name">{{item.goodsname}}</text>
13                         <text class="price">价格:{{item.price}}</text>
14                     </view>
15                 </navigator>
16             </view>
17         </block>
18     </view>
19 </view>

 

js代码部分

 1 Page({
 2 
 3   /**
 4    * 页面的初始数据
 5    */
 6   data: {
 7     data:[]
 8 
 9   },
10 
11   /**
12    * 生命周期函数--监听页面加载
13    */
14   onLoad: function (options) {
15     //页面初始 获取数据
16     wx.request({
17       url: 'http://www.xxxx.com/index.php/wxxcx/xxx/lists',
18       data: {},
19       header: {'content-type':'application/json'},
20       method: 'GET',
21       dataType: 'json',
22       responseType: 'text',
23       success: (result)=>{
24         this.setData({
25           data:result.data.data
26         })
27         console.log(result.data.data)   
28       },
29       fail: ()=>{},
30       complete: ()=>{}
31     });
32    
33   },

 

php代码部分

1     //列表展示
2     public function lists(){
3         $data = \app\wxxcx\model\xxx::select();
4         if ($data){
5             return json(['code'=>200,'msg'=>'success','data'=>$data]);
6         }else{
7             return json(['code'=>500,'msg'=>'error','data'=>""]);
8         }
9     }

 

 

wxss代码部分 (样式)

 

 1 .list{
 2     width: 100%;
 3     background-color: #eeeeee;
 4     /* 弹性盒子 */
 5     display: flex;
 6     justify-content: space-around;
 7     /* 可自动换行 */
 8     flex-wrap: wrap;
 9     text-align: center;
10 
11 }
12 .box{
13     width: 30%;
14     height: 300rpx;
15     /* background-color: aquamarine; */
16     margin-top: 10rpx;
17 }
18 .image{
19     width: 100%;
20     height: 240rpx;
21     /* background-color: bisque;    */
22 }
23 .image image{
24     width: 100%;
25     height: 240rpx;
26 }
27 .text{
28     width: 100%;
29     height: 50rpx;
30     /* background-color: blue; */
31 }
32 .text .name{
33     font-size: 20rpx;
34 }
35 .text .price{
36     font-size: 20rpx;
37     color: crimson;
38 }

 

 

 

二、详情页部分+留言

wxml代码部分

 1 <view class="big">
 2     <!-- 商品展示部分 -->
 3     <view class="box">
 4         <view class="image">
 5             <!-- 图片 -->
 6             <image src="{{data.image}}" />
 7         </view>
 8         <view class="text">
 9             <view class="top">商品名称:{{data.goodsname}}</view>
10             <view class="price">价格:{{data.price}}</view>
11             <view>留言条数:{{datas.count}}</view>
12         </view>
13     </view>
14     <!-- 留言板部分 -->
15     <view class="message">
16         <text class="text">留言板</text>
17         <form catchsubmit="formSubmit">
18             <input class="weui-input" auto-focus placeholder="请输入评价" name="message" />
19             <button formType="submit" size="mini" class="butten">留言</button>
20         </form>
21     </view>
22     <block wx:for="{{datas}}" wx:key="key">
23         <view class="liuyan">{{item.message}}</view>
24     </block>
25 </view>

 

js代码部分

  1 Page({
  2 
  3   /**
  4    * 页面的初始数据
  5    */
  6   data: {
  7     data: [],
  8     datas:[]
  9 
 10   },
 11 
 12   /**
 13    * 生命周期函数--监听页面加载
 14    */
 15   onLoad: function (options) {
 16     let gid = options.id
 17     //将商品id存入缓存中
 18     wx.setStorage({
 19       key: "gid",
 20       data: gid
 21     })
 22     console.log(options)
 23     wx.request({
 24       url: 'http://www.xxxxxx.com/index.php/wxxcx/xxx/one',
 25       data: {
 26         gid: gid
 27       },
 28       header: { 'content-type': 'application/json' },
 29       method: 'GET',
 30       dataType: 'json',
 31       responseType: 'text',
 32       success: (result) => {
 33         if (result.data.code == 200) {
 34           this.setData({
 35             data: result.data.data
 36           })
 37         }
 38 
 39         // console.log(result.data.data)
 40 
 41       },
 42       fail: () => { },
 43       complete: () => { }
 44     });
 45 
 46     // 页面加载出留言
 47     wx.request({
 48       url: 'http://www.xxxx.com/index.php/wxxcx/xxx/chuliuyan',
 49       data: {
 50         gid: gid
 51       },
 52       header: { 'content-type': 'application/json' },
 53       method: 'GET',
 54       dataType: 'json',
 55       responseType: 'text',
 56       success: (result) => {
 57         if (result.data.code == 200) {
 58           this.setData({
 59             datas: result.data.data
 60           })
 61         }
 62 
 63         // console.log(result.data.data)
 64 
 65       },
 66       fail: () => { },
 67       complete: () => { }
 68     });
 69 
 70   },
 71 
 72 
 73   //保存留言
 74   formSubmit(e) {
 75     // 获取留言内容
 76     let message = e.detail.value.message
 77     let that=this
 78     //从缓存中获取商品的id
 79     wx.getStorage({
 80       key: "gid",
 81       success(res) {
 82         // console.log(e.detail.value.message)
 83 
 84         let gid = res.data
 85         //发送请求保存留言
 86         wx.request({
 87           url: 'http://www.xxx.com/index.php/wxxcx/xxx/liuyan',  //接口地址
 88           data: {
 89             gid:gid,
 90             message:message
 91           },
 92           header: { 'content-type': 'application/json' },
 93           method: 'GET',
 94           dataType: 'json',
 95           responseType: 'text',
 96           success: (result) => {
 97            
 98             if(result.data.code==200){
 99               that.setData({
100                 datas:result.data.data
101               })
102                console.log(result.data.data)
103             }
104            
105           },
106           fail: () => { },
107           complete: () => { }
108         });
109 
110       }
111     })
112 
113   },
114 
115 
116 
117 })

 

 

php部分

 

 1     //详情页
 2     public function one(){
 3         $gid = input('gid');
 4         $data = \app\wxxcx\model\xxx::get($gid);
 5          if ($data){
 6                 return json(['code'=>200,'msg'=>'success','data'=>$data]);
 7             }else{
 8                 return json(['code'=>500,'msg'=>'error','data'=>""]);
 9         }
10     }
11 
12     //页面一加载出留言
13     public function chuliuyan(){
14         $gid=input('gid');
15         $data=liuyan::where('gid',$gid)->select();
16         //统计留言条数
17         $data['count']=liuyan::where('gid',$gid)->count();
18         if ($data){
19             return json(['code'=>200,'msg'=>'success','data'=>$data]);
20         }else{
21             return json(['code'=>500,'msg'=>'error','data'=>""]);
22         }
23     }
24 
25 
26     //保存留言
27     public function liuyan(){
28         $data['gid']=input('gid');
29         $gid=input('gid');
30         $data['message']= input('message');
31         liuyan::create($data,true)->toArray();
32         $data=liuyan::where('gid',$data['gid'])->select();
33         //统计留言数
34         $data['count']=liuyan::where('gid',$gid)->count();
35 //        print_r($datas);
36         if ($data){
37             return json(['code'=>200,'msg'=>'success','data'=>$data]);
38         }else{
39             return json(['code'=>500,'msg'=>'error','data'=>""]);
40         }
41     }

 

 

 

wxss部分(样式)

 1 .box{
 2     width: 100%;
 3     height: 400rpx;
 4     background-color: honeydew;
 5     display: flex;
 6     justify-content: space-around;
 7     padding-top: 30rpx;
 8   
 9 }
10 .image{
11     width: 35%;
12     height: 350rpx;
13     background-color: darkorange;
14 }
15 .image image{
16     width: 100%;
17     height: 350rpx;
18 }
19 .text{
20     width: 50%;
21     height: 350rpx;
22     background-color: ghostwhite;
23   
24 }
25 .text .top{
26 
27     width: 100%;
28     height: 100rpx;
29     line-height: 100rpx;
30     margin-top: 60rpx;
31 }
32 .text .price{
33     width: 100%;
34     height: 100rpx;
35     line-height: 100rpx;
36     color: rgb(240, 33, 43);
37     margin-top: 10rpx;
38 }
39 
40 /* 留言板块 */
41 .message{
42     width: 100%;
43     height: 300rpx;
44     background-color: #cccccc;
45     text-align: center;
46 
47 }
48 .weui-input{
49     margin-top: 20rpx;
50     margin-left: 5%;
51     width: 90%;
52     height: 100rpx;
53     border: 3rpx solid white;
54 }
55 .butten{
56     margin-top: 20rpx;
57     
58 }
59 .liuyan{
60     width: 100%;
61     height: 80rpx;
62     line-height: 80rpx;
63     background-color: white;
64     border: 1rpx solid #eeeeee;
65 }

 

posted @ 2020-12-28 00:38  Conqueror·  阅读(449)  评论(0编辑  收藏  举报