许成详 6 years ago
parent
commit
df0ee79195

+ 30
- 2
config/api.js View File

@@ -21,6 +21,22 @@ const $api = {
21 21
     signUpList: { // 报名过的活动
22 22
       method: 'GET',
23 23
       url: `${BaseAPIURl}wx/activity/byuser/:openid`
24
+    },
25
+    appointment: {
26
+      method: 'GET',
27
+      url: `${BaseAPIURl}wx/appointment/:openid`
28
+    },    
29
+    delAppointment: {
30
+      method: 'DELETE',
31
+      url: `${BaseAPIURl}wx/appointment/of/:id`
32
+    },
33
+    building: {
34
+      method: 'GET',
35
+      url: `${BaseAPIURl}wx/collection/:openid`
36
+    },
37
+    delBuilding: {
38
+      method: 'DELETE',
39
+      url: `${BaseAPIURl}wx/collection/:openid`
24 40
     }
25 41
   },
26 42
   dict: {
@@ -112,9 +128,9 @@ const $api = {
112 128
 const hasKey = (o, k) => Object.keys(o).indexOf(k) > -1
113 129
 
114 130
 // 获取 api 支持 a.b.c 字符串格式
115
-function get(k = '') {
131
+function get(k = '', urlParams = {}) {
116 132
   let found = true
117
-  return k.split('.').reduce((acc, key) => {
133
+  const api = k.split('.').reduce((acc, key) => {
118 134
     if (!found) return acc;
119 135
 
120 136
     if (acc === 0) {
@@ -133,6 +149,18 @@ function get(k = '') {
133 149
       }
134 150
     }
135 151
   }, 0)
152
+
153
+  return {
154
+    ...api,
155
+    url: api.url.split('/').map((item) => {
156
+      if (item.indexOf(':') > -1) {
157
+        const key = item.replace(':', '')
158
+        return item !== 'https:' && hasKey(urlParams, key) ? urlParams[key] : item
159
+      }
160
+
161
+      return item
162
+    }).join('/')
163
+  }
136 164
 }
137 165
 
138 166
 module.exports = {

+ 2
- 1
pages/EstateDetail/index.js View File

@@ -49,6 +49,7 @@ Page({
49 49
         _that.setData({
50 50
           EstateDetail: { 
51 51
             ...data.data, 
52
+            openingDate: data.data.openingDate.split(' ')[0],
52 53
             propertyType: propertyType, 
53 54
             buildingApartment: apart, 
54 55
             IsCollect: (_that.data.Collects.filter(x => x.buildingId == data.data.buildingId).length>0? true:false)
@@ -85,7 +86,7 @@ Page({
85 86
   OpenPhone() { // 电话咨询
86 87
     let _self = this
87 88
     wx.makePhoneCall({
88
-      phoneNumber: _self.data.EstateDetail.PhoneNum
89
+      phoneNumber: _self.data.EstateDetail.tel
89 90
     })
90 91
   }
91 92
 })

+ 44
- 63
pages/MyCollectEstateList/index.js View File

@@ -12,72 +12,53 @@ create(store, {
12 12
     })
13 13
   },
14 14
   onLoad () {
15
+    const userInfo = app.globalData.UserInfo
15 16
 
17
+    fetch({
18
+      ...getApi('user.building', { openid: userInfo.openid }),
19
+      query: { pageNum: 1, pageSize: 10 },
20
+    }).then(({ data }) => {
21
+      const list = data.records || []
22
+      this.setData({ list })
23
+    }).catch((err) => {
24
+      wx.showToast({
25
+        title: '获取列表失败',
26
+        icon: 'error',
27
+      })
28
+    })
16 29
   },
17 30
   data: {
18
-    List: [{
19
-      Img: '/assets/images/img5.jpg',
20
-      Name: '示例楼盘名称',
21
-      Address: '南京市xx路xx号',
22
-      Distance: '22.2',
23
-      Price: '2.1'
24
-    }, {
25
-      Img: '/assets/images/img5.jpg',
26
-      Name: '示例楼盘名称',
27
-      Address: '南京市xx路xx号',
28
-      Distance: '22.2',
29
-      Price: '2.1'
30
-    }, {
31
-      Img: '/assets/images/img5.jpg',
32
-      Name: '示例楼盘名称',
33
-      Address: '南京市xx路xx号',
34
-      Distance: '22.2',
35
-      Price: '2.1'
36
-    }, {
37
-      Img: '/assets/images/img5.jpg',
38
-      Name: '示例楼盘名称',
39
-      Address: '南京市xx路xx号',
40
-      Distance: '22.2',
41
-      Price: '2.1'
42
-    }, {
43
-      Img: '/assets/images/img5.jpg',
44
-      Name: '示例楼盘名称',
45
-      Address: '南京市xx路xx号',
46
-      Distance: '22.2',
47
-      Price: '2.1'
48
-    }, {
49
-      Img: '/assets/images/img5.jpg',
50
-      Name: '示例楼盘名称',
51
-      Address: '南京市xx路xx号',
52
-      Distance: '22.2',
53
-      Price: '2.1'
54
-    }, {
55
-      Img: '/assets/images/img5.jpg',
56
-      Name: '示例楼盘名称',
57
-      Address: '南京市xx路xx号',
58
-      Distance: '22.2',
59
-      Price: '2.1'
60
-    }, {
61
-      Img: '/assets/images/img5.jpg',
62
-      Name: '示例楼盘名称',
63
-      Address: '南京市xx路xx号',
64
-      Distance: '22.2',
65
-      Price: '2.1'
66
-    }, {
67
-      Img: '/assets/images/img5.jpg',
68
-      Name: '示例楼盘名称',
69
-      Address: '南京市xx路xx号',
70
-      Distance: '22.2',
71
-      Price: '2.1'
72
-    }],
73
-    DeleteIndex: null,
74
-    DeleteOff: true
31
+    list: [],
75 32
   },
76
-  DeleteItem() { // 确认删除逻辑
77
-    if (this.data.DeleteOff) {
78
-      this.setData({
79
-        DeleteOff: false
80
-      })
81
-    }
33
+  DeleteItem(e) { // 确认删除逻辑
34
+    const buildingId = e.target.dataset.index
35
+    const userInfo = app.globalData.UserInfo
36
+    const _self = this
37
+
38
+    wx.showModal({
39
+      title: '确认',
40
+      content: '确认要删除当前记录?',
41
+      success(res) {
42
+        if (res.confirm) {
43
+          
44
+          fetch({
45
+            ...getApi('user.delBuilding', { openid: userInfo.openid }),
46
+            query: { buildingId },
47
+          }).then(() => {
48
+            const list = _self.data.list.filter(x => x.buildingId !== buildingId)
49
+
50
+            _self.setData({ list })
51
+          }).catch((err) => {
52
+            wx.showToast({
53
+              title: '删除失败',
54
+              icon: 'error',
55
+            })
56
+          })
57
+
58
+        } else if (res.cancel) {
59
+          console.log('用户点击取消')
60
+        }
61
+      }
62
+    })
82 63
   }
83 64
 })

+ 6
- 6
pages/MyCollectEstateList/index.wxml View File

@@ -1,23 +1,23 @@
1 1
 <!--index.wxml-->
2 2
 <view class="MainPage">
3 3
   <view class="list">
4
-    <view class="flex-h" wx:for="{{List}}" wx:for-item="item" wx:for-index="idx" wx:key="key">
4
+    <view class="flex-h" wx:for="{{list}}" wx:for-item="item" wx:key="item.buildingId">
5 5
 
6 6
       <!-- 左侧图片 -->
7 7
       <view class="img">
8
-        <image mode="aspectFill" src="{{item.Img}}" class="centerLabel cover" bindtap="DeleteItem"></image>
8
+        <image mode="aspectFill" src="{{item.buildingImg}}" class="centerLabel cover"></image>
9 9
       </view>
10 10
 
11 11
       <!-- 右侧内容 -->
12 12
       <view class="flex-item">
13 13
         <view>
14 14
           <view class="delete">
15
-            <image mode="widthFix" src="/assets/images/icon28.png"></image>
15
+            <image mode="widthFix" src="/assets/images/icon28.png" bindtap="DeleteItem" data-index="{{item.buildingId}}"></image>
16 16
           </view>
17
-          <text>{{item.Name}}</text>
18
-          <text>{{item.Address}}</text>
17
+          <text>{{item.name}}</text>
18
+          <text>{{item.address}}</text>
19 19
           <text>距您{{item.Distance}}km</text>
20
-          <text class="price">均价:<text>{{item.Price}}</text>万/平</text>
20
+          <text class="price">均价:<text>{{item.price}}</text>/平</text>
21 21
         </view>
22 22
       </view>
23 23
 

+ 6
- 1
pages/UserCenter/UserInfo/index.js View File

@@ -7,13 +7,18 @@ const app = getApp()
7 7
 
8 8
 create(store, {
9 9
   data: {
10
-    UserInfo: app.globalData.UserInfo, // 用户信息
10
+    UserInfo: {}, // 用户信息
11 11
   },
12 12
   onReady() {
13 13
     wx.setNavigationBarTitle({
14 14
       title: '个人资料'
15 15
     })
16 16
   },
17
+  onLoad () {
18
+    this.setData({
19
+      UserInfo: app.globalData.UserInfo
20
+    })
21
+  },
17 22
   SaveUserInfo() { // 提交表单数据
18 23
     fetch({ ...getApi('user.update'), data: this.data.UserInfo }).then(() => {
19 24
       // 同步到 globalData

+ 35
- 16
pages/components/SubIndex/index.js View File

@@ -1,10 +1,13 @@
1 1
 //index.js
2 2
 //获取应用实例
3 3
 const app = getApp()
4
+import fetch from '../../../utils/http'
5
+const $api = require('../../../config/api.js').$api;
4 6
 
5 7
 Component({
6 8
   behaviors: [],
7 9
   properties: {},
10
+  banner: [],
8 11
   data: {
9 12
     UserInfo: app.globalData.UserInfo,
10 13
     TopNavList: [{
@@ -20,28 +23,44 @@ Component({
20 23
       icon: '/assets/images/icon7.png',
21 24
       remark: '24小时电话客服热线:025-12345678'
22 25
     }],
23
-    EstateList: [{
24
-      Name: '示例数据',
25
-      CreateDate: '19-02-02',
26
-      Img: '/assets/images/img1.jpg',
27
-      Org: '悦见山'
28
-    }, {
29
-      Name: '示例数据',
30
-      CreateDate: '19-02-02',
31
-      Img: '/assets/images/img1.jpg',
32
-      Org: '悦见山'
33
-    }, {
34
-      Name: '示例数据',
35
-      CreateDate: '19-02-02',
36
-      Img: '/assets/images/img1.jpg',
37
-      Org: '悦见山'
38
-    }]
26
+    EstateList: []
39 27
   },
40 28
   lifetimes: {},
41 29
   ready: function() {
42 30
     wx.setNavigationBarTitle({
43 31
       title: '银城地产·江北公司'
44 32
     })
33
+    const _that = this
34
+    fetch({
35
+      url: $api.banner.list.url,
36
+      method: $api.banner.list.method,
37
+      data: {
38
+        imgLocation: 'firstPage'
39
+      }
40
+    }).then((imgs) => {
41
+      _that.setData({
42
+        banner: imgs.data
43
+      })
44
+    })
45
+
46
+    fetch({
47
+      url: $api.dynamic.list.url,
48
+      method: $api.dynamic.list.method,
49
+      data: {
50
+        pageNum: 1,
51
+        pageSize: 10
52
+      }
53
+    }).then((dynamics) => {
54
+      const records = dynamics.data.records.map(x => {
55
+        return {
56
+          ...x,
57
+          createDate: x.createDate.slice(2,10)
58
+        }
59
+      })
60
+      _that.setData({
61
+        EstateList: records
62
+      })
63
+    })
45 64
   },
46 65
   pageLifetimes: {
47 66
     show: function() {},

+ 15
- 5
pages/components/SubIndex/index.wxml View File

@@ -2,7 +2,17 @@
2 2
 <view class="SubContainer">
3 3
   <view class="top">
4 4
     <view class="bg">
5
-      <image mode="aspectFill" src="/assets/images/img1.jpg" class="centerLabel cover"></image>
5
+        <view class="imgContent">
6
+          <swiper autoplay="{{true}}" indicator-dots="{{false}}" indicator-color="#83837d" indicator-active-color="#e23838">
7
+            <block wx:for="{{banner}}" wx:for-item="item" wx:for-index="index" wx:key="key">
8
+              <swiper-item>
9
+                <view class="swiper-item">
10
+                  <image mode="aspectFill" src="{{item.url}}" class="centerLabel cover"></image>
11
+                </view>
12
+              </swiper-item>
13
+            </block>
14
+          </swiper>
15
+        </view>
6 16
     </view>
7 17
     <view class="nav">
8 18
       <view>
@@ -27,12 +37,12 @@
27 37
     <text>项目动态</text>
28 38
     <view class="list">
29 39
       <view wx:for="{{EstateList}}" wx:for-item="item" wx:for-index="index" wx:key="key">
30
-        <text class="name">{{item.Name}}</text>
31
-        <text class="date">{{item.CreateDate}}</text>
40
+        <text class="name">{{item.title}}</text>
41
+        <text class="date">{{item.createDate}}</text>
32 42
         <view class="listImg">
33 43
           <view>
34
-            <image mode="aspectFill" src="{{item.Img}}" class="centerLabel cover"></image>
35
-            <text>{{item.Org}}</text>
44
+            <image mode="aspectFill" src="{{item.imgUrl}}" class="centerLabel cover"></image>
45
+            <text>{{item.building.buildingName}}</text>
36 46
           </view>
37 47
         </view>
38 48
       </view>

BIN
wxmini.zip View File