dever 6 years ago
parent
commit
5434b8a1a7
9 changed files with 145 additions and 64 deletions
  1. 1 1
      app.json
  2. 1 0
      app.wxss
  3. 3 1
      dever/config.js
  4. 88 25
      dever/core.js
  5. 6 2
      dever/package/network.js
  6. 7 1
      template/home/index.js
  7. 7 7
      template/home/index.wxml
  8. 20 6
      template/view/index.js
  9. 12 21
      template/view/index.wxml

+ 1 - 1
app.json

@@ -46,5 +46,5 @@
     "uploadFile": 10000,
     "downloadFile": 10000
   },
-  "debug": true
+  "debug": false
 }

+ 1 - 0
app.wxss

@@ -1,5 +1,6 @@
 @import 'static/colorui/icon.wxss';
 @import 'static/colorui/colorui.wxss';
+@import 'dever/package/wxParse/wxParse.wxss';
 
 .nav-list {
   display: flex;

+ 3 - 1
dever/config.js

@@ -4,7 +4,9 @@ var config =
     host : 
     {
         // 主域名
-        'main': 'http://192.168.33.10/sharepic/main/?l='
+        'main': 'http://192.168.33.10/sharepic/main/?l=',
+        // passport
+        'passport': 'http://192.168.33.10/sharepic/passport/?l='
     },
 
     // 项目id

+ 88 - 25
dever/core.js

@@ -47,11 +47,39 @@ var dever =
       wx.getStorageSync(key)
     }
 
+    //登录验证
+    ,login : function(self, func)
+    {
+      wx.checkSession({
+        success() {
+          // session_key 未过期,并且在本生命周期一直有效
+          //func();
+        },
+        fail() {
+          // session_key 已经失效,需要重新执行登录流程
+          wx.login({
+            success(res) {
+              if (res.code) {
+                var success = function (data, res) {
+                  console.log(data);
+                  //func();
+                };
+                self.request('passport.applet.bind', {code:res.code}, { success: success });
+              } else {
+                console.log('登录失败!' + res.errMsg)
+              }
+            }
+          }) // 重新登录
+        }
+      })
+    }
+
     //设置服务器传过来的公共值
-    ,setSetting : function(value)
+    ,setSetting : function(self, value)
     {
         this.setting = value;
         this.log('init server setting', this.setting);
+        self.set('setting', this.setting);
         if (value.title) {
           this.title(value.title);
         } else if(value.name) {
@@ -66,9 +94,10 @@ var dever =
     }
 
     //html解析
-    ,html : function()
+    ,html : function(self, html)
     {
-        var wxParse = this.package('wxParse');
+        var wxParse = this.package('wxParse/wxParse');
+        wxParse.wxParse('html', 'html', html, self, 5);
     }
 
     //提示框
@@ -81,15 +110,6 @@ var dever =
         });
     }
 
-    //跳转
-    ,location : function(url)
-    {
-        this.log('location', url);
-        wx.navigateTo({
-          url: '../../template/' + url,
-        })
-    }
-
     //回退 delta 返回的页面数,如果 delta 大于现有页面数,则返回到首页。
     ,goBack: function(delta)
     {
@@ -122,7 +142,8 @@ var page =
   /**
    * 生命周期函数--监听页面加载
    */
-  ,onLoad: function (options) {
+  ,onLoad: function (options)
+  {
     this.setConfig();
     this.stopPullDown();
     if (this.hasOwnProperty('oLoad')) {
@@ -133,7 +154,8 @@ var page =
   /**
    * 生命周期函数--监听页面初次渲染完成
    */
-  ,onReady: function () {
+  ,onReady: function ()
+  {
     if (this.hasOwnProperty('oReady')) {
       this.oReady();
     }
@@ -142,7 +164,8 @@ var page =
   /**
    * 生命周期函数--监听页面显示
    */
-  ,onShow: function () {
+  ,onShow: function ()
+  {
     if (this.hasOwnProperty('oShow')) {
       this.oShow();
     }
@@ -151,7 +174,8 @@ var page =
   /**
    * 生命周期函数--监听页面隐藏
    */
-  ,onHide: function () {
+  ,onHide: function ()
+  {
     if (this.hasOwnProperty('oHide')) {
       this.oHide();
     }
@@ -160,7 +184,8 @@ var page =
   /**
    * 生命周期函数--监听页面卸载
    */
-  ,onUnload: function () {
+  ,onUnload: function ()
+  {
     if (this.hasOwnProperty('oUnload')) {
       this.oUnload();
     }
@@ -169,7 +194,8 @@ var page =
   /**
    * 页面相关事件处理函数--监听用户下拉动作
    */
-  ,onPullDownRefresh: function () {
+  ,onPullDownRefresh: function ()
+  {
     wx.showNavigationBarLoading();
     this.onLoad();
   }
@@ -177,7 +203,8 @@ var page =
   /**
    * 停止下拉刷新
    */
-  ,stopPullDown: function () {
+  ,stopPullDown: function ()
+  {
     wx.hideNavigationBarLoading();
     wx.stopPullDownRefresh();
   }
@@ -185,7 +212,8 @@ var page =
   /**
    * 用户点击右上角分享
    */
-  ,onShareAppMessage: function () {
+  ,onShareAppMessage: function ()
+  {
     if (this.hasOwnProperty('oShare')) {
       this.oShare();
     }
@@ -195,7 +223,15 @@ var page =
   ,set : function(key, value)
   {
     var data = {};
-    data[key] = value;
+    if (key.indexOf('.') != -1) {
+      var t = key.split('.');
+      key = t[0];
+      data[key] = self.data[key];
+      data[key][t[1]] = value;
+    } else {
+      data[key] = value;
+    }
+
     this.sets(data);
   }
 
@@ -232,27 +268,54 @@ var page =
       }
       return this.dever.package('network').request(this, url, param, callback, method);
   }
+
+  //获取参数
+  ,param : function(e)
+  {
+    return e.currentTarget.dataset;
+  }
+
+  //页面跳转
+  ,location: function (uri, param)
+  {
+    var p = '';
+    for(var i in param) {
+      p += i + '='+param[i]+'&'
+    }
+    var url = '/template/' + uri + '/index?' + p;
+    this.dever.log('location', url);
+    wx.navigateTo({
+      url: url
+    })
+  }
 }
 
 var app =
 {
-  onLaunch: function () {
+  onLaunch: function ()
+  {
     if (this.hasOwnProperty('oLaunch')) {
       this.oLaunch();
     }
   },
-  onShow: function () {
+  onShow: function ()
+  {
     if (this.hasOwnProperty('oShow')) {
       this.oShow();
     }
   },
-  onHide: function () {
+  onHide: function ()
+  {
     if (this.hasOwnProperty('oHide')) {
       this.oHide();
     }
   },
   dever: dever,
-  page: page
+  //这里只能是复制,不能是引用
+  page: function()
+  {
+    return Object.assign({}, page);
+  }
 }
 
 module.exports = {

+ 6 - 2
dever/package/network.js

@@ -19,6 +19,10 @@ function request(self, url, param, callback, method, header)
     }
     self.set('loading', true);
     param.json = 1;
+    var log = param;
+    log.url = url;
+    self.set('url', log);
+    
     wx.request(
     {
         url: url,
@@ -27,8 +31,8 @@ function request(self, url, param, callback, method, header)
         header: header,
         success: function (res) {
             if (res.data.status == 1) {
-                if (res.data.data.config) {
-                  self.dever.setSetting(res.data.data.config);
+                if (res.data.data.setting) {
+                  self.dever.setSetting(self, res.data.data.setting);
                 }
                 self.set('loading', false);
                 callback.success(res.data.data, res);

+ 7 - 1
template/home/index.js

@@ -1,4 +1,4 @@
-var config = getApp().page;
+var config = getApp().page();
 
 /**
  * 页面加载
@@ -21,4 +21,10 @@ config.isCard = function(e)
   })
 };
 
+config.open = function(e)
+{
+  var param = this.param(e);
+  this.location('view', param);
+};
+
 Page(config);

+ 7 - 7
template/home/index.wxml

@@ -1,7 +1,7 @@
 <custom style="height:{{config.bar.custom}}px;">
   <bar class="fixed gradual-pink" style="height:{{config.bar.custom}}px;padding-top:{{config.bar.status}}px;">
     <navigator class='action' open-type="navigateBack" delta="1" hover-class="none">
-      <icon class='icon-back' /> 卡片
+      {{setting.name}}
     </navigator>
     <view class='action'>
       <load class="load-icon {{loading ? 'loading':'over'}}"></load>
@@ -19,26 +19,26 @@
   <view class='action'>
     <icon class='icon-titles text-orange ' /> 最新
   </view>
-  <view class='action'>
+  <view class='action' style="display:none;">
     <switch class='sm' checked='{{isCard}}' bindchange='isCard'></switch>
   </view>
 </bar>
 
 
 <card class="case">
-  <item wx:for="{{news}}" wx:for-item="v" wx:for-index="k" wx:key class="shadow">
+  <item wx:for="{{news}}" wx:for-item="v" wx:for-index="k" wx:key class="shadow" bindtap='open' data-id="{{v.id}}">
     <view class='image'>
       <image src="{{v.pic_cover}}" mode="widthFix"></image>
-      <tag class="bg-blue">{{v.cate_name}}</tag>
+      <tag class="bg-blue">{{v.cate.name}}</tag>
       <bar class='bg-shadeBottom'>{{v.name}}</bar>
     </view>
     <list class="menu menu-avatar">
       <item>
-        <avatar class="round lg" style="background-image:url(https://image.weilanwl.com/img/square-4.jpg);"></avatar>
+        <avatar class="round lg" style="background-image:url({{v.author.avatar}});"></avatar>
         <view class='content flex-sub'>
-          <view class='text-grey'>猪皮蛋</view>
+          <view class='text-grey'>{{v.author.name}}</view>
           <view class='text-gray text-sm flex justify-between'>
-            {{v.pdate}}
+            {{v.pdate_str}}
             <view class="text-gray text-sm">
               <icon class="icon-attentionfill" /> {{v.num_view}}
               <icon class="icon-appreciatefill" /> {{v.num_up}}

+ 20 - 6
template/view/index.js

@@ -1,17 +1,31 @@
-var config = getApp().page;
+var config = getApp().page();
 
 /**
  * 页面加载
  */
-config.load = function()
+config.oLoad = function(options)
 {
   var self = this;
-  var success = function(data, res)
-  {
-      self.dever.setList(self, data.product);
+  var success = function (data, res) {
+    self.set('info', data.info);
+    self.dever.html(self, data.info.content);
   };
-  //self.request('main.api.home', {}, {success: success});
+  self.request('main.view.data', {id: options.id}, { success: success });
 };
 
+/**
+ * 点赞
+ */
+config.up = function(e)
+{
+  var self = this;
+  var param = self.param(e);
+  var success = function (data, res) {
+    self.set('info.num_up', self.data.info.num_up+1);
+  };
+  self.dever.login(self);
+  //self.request('main.user.submit_up', param, { success: success });
+}
+
 
 Page(config);

+ 12 - 21
template/view/index.wxml

@@ -1,7 +1,8 @@
+
 <custom style="height:{{config.bar.custom}}px;">
   <bar class="fixed gradual-pink" style="height:{{config.bar.custom}}px;padding-top:{{config.bar.status}}px;">
     <navigator class='action' open-type="navigateBack" delta="1" hover-class="none">
-      <icon class='icon-back' /> 卡片
+      <icon class='icon-back' /> {{info.name}}
     </navigator>
     <view class='action'>
       <load class="load-icon {{loading ? 'loading':'over'}}"></load>
@@ -9,38 +10,28 @@
   </bar>
 </custom>
 
-<bar class="solid-bottom">
-  <view class='action'>
-    <icon class='icon-titles text-orange ' /> 最新
-  </view>
-  <view class='action'>
-    <switch class='sm' checked='{{isCard}}' bindchange='isCard'></switch>
-  </view>
-</bar>
 <card class="dynamic">
   <item wx:for="1" wx:key class="shadow">
     <list class="menu menu-avatar">
       <item>
-        <avatar class="round lg" style="background-image:url(https://image.weilanwl.com/img/square-1.jpg);"></avatar>
+        <avatar class="round lg" style="background-image:url({{info.author.avatar}});"></avatar>
         <view class='content flex-sub'>
-          <view>晓晓萌</view>
+          <view>{{info.author.name}}</view>
           <view class='text-gray text-sm flex justify-between'>
-            2018年12月3日
+            {{info.pdate_str}}
           </view>
         </view>
       </item>
     </list>
-    <view class='text-content'>
-      你们的铲屎官是不是经常突然对手机傻笑?我家铲屎官常常坐沙发上笑的发抖!(暗中观察.jpg)
-    </view>
-    <view class="grid col-1}} flex-sub padding-lr">
-      <view class="bg-img only-img" style="background-image:url(https://image.weilanwl.com/img/square-1.jpg);" wx:for="1" wx:key>
-      </view>
+    <view class='text-content' style="max-height:100%;">
+      <import src="/dever/package/wxParse/wxParse.wxml"/>
+      <template is="wxParse" data="{{wxParseData:html.nodes}}"/>
     </view>
+    
     <view class='text-gray text-sm text-right padding'>
-      <icon class="icon-attentionfill" /> 10
-      <icon class="icon-appreciatefill" /> 20
-      <icon class="icon-messagefill" /> 30
+      <icon class="icon-attentionfill" /> {{info.num_view}}
+      <icon class="icon-appreciatefill" bindtap="up" data-type="{{type}}" data-id="{{info.id}}"/> {{info.num_up}}
+      <icon class="icon-messagefill" /> {{info.num_comment}}
     </view>
     <list class="menu menu-avatar comment solids-top">
       <item wx:for="{{2}}" wx:key>