Преглед на файлове

Merge branch 'v4' of http://git.ycjcjy.com/zhiyuxing/miniapp-v3 into v4

张延森 преди 5 години
родител
ревизия
b488d6980f
променени са 9 файла, в които са добавени 289 реда и са изтрити 39 реда
  1. 2
    2
      config/dev.js
  2. 3
    1
      src/actions/user.js
  3. 3
    2
      src/app.js
  4. 2
    0
      src/constants/api.js
  5. 12
    0
      src/pages/person/index.js
  6. 194
    0
      src/pages/person/profile/index.js
  7. 30
    0
      src/pages/person/profile/index.scss
  8. 25
    33
      src/pages/project/banner/index.js
  9. 18
    1
      src/services/user.js

+ 2
- 2
config/dev.js Целия файл

@@ -9,8 +9,8 @@ module.exports = {
9 9
     // WSS_HOST: '"wss://dev.jinchengjiaye.com"',
10 10
     // HOST: '"https://lt.pawoma.cn"',
11 11
     // WSS_HOST: '"wss://lt.pawoma.cn"',
12
-    HOST: '"http://192.168.0.84:8080"',
13
-    WSS_HOST: '"ws://192.168.0.84:8080"',
12
+    HOST: '"http://192.168.0.131:8080"',
13
+    WSS_HOST: '"ws://192.168.0.131:8080"',
14 14
   },
15 15
   weapp: {},
16 16
   h5: {}

+ 3
- 1
src/actions/user.js Целия файл

@@ -12,7 +12,8 @@ import {
12 12
   API_USER_SIGNIN,
13 13
   API_QUERY_CUSTOMER_INFO,
14 14
   API_QUERY_MYREPORT,
15
-  API_QUERY_USERINFO_BYID
15
+  API_QUERY_USERINFO_BYID,
16
+  API_QUERY_DOCUMENTVERIFY
16 17
 } from '@constants/api'
17 18
 
18 19
 import { createAction,createActionNormal } from '@utils/redux'
@@ -71,6 +72,7 @@ export const dispatchCustomerInfo = payload => createAction({
71 72
   payload,
72 73
   method: 'GET'
73 74
 })
75
+
74 76
 /**
75 77
  * 我报备的客户列表
76 78
  * @param {*} payload

+ 3
- 2
src/app.js Целия файл

@@ -40,11 +40,12 @@ class App extends Component {
40 40
       }
41 41
     },
42 42
     pages: [
43
-      'pages/project/index',
44 43
       'pages/person/index',
44
+      'pages/person/profile/index',
45
+      'pages/project/index',
45 46
       'pages/activity/activity',
46 47
       'pages/shop/index',
47
-      'pages/project/detail/index',      
48
+      'pages/project/detail/index',
48 49
       'pages/activity/assemblePage',
49 50
       'pages/activity/assistancePage',
50 51
       'pages/person/spread/index',

+ 2
- 0
src/constants/api.js Целия файл

@@ -26,6 +26,8 @@ export const API_QUERY_USER_INFO = resolvePath('user/info')
26 26
 export const API_QUERY_USERINFO_BYID = resolvePath('onePerson')
27 27
 export const API_QUERY_CUSTOMER_INFO = resolvePath('customer/myCustomer')
28 28
 export const API_QUERY_MYREPORT = resolvePath('customer/myReport')
29
+export const API_QUERY_DOCUMENTVERIFY = resolvePath('documentVerify')
30
+
29 31
 
30 32
 // chat
31 33
 export const API_CHAT_HISTORY = resolvePath('chat/history')

+ 12
- 0
src/pages/person/index.js Целия файл

@@ -103,6 +103,11 @@ export default class Person extends Component {
103 103
       url: '/pages/activity/assistancePage'
104 104
     })
105 105
   }
106
+  toProfile() {
107
+    Taro.navigateTo({
108
+      url: '/pages/person/profile/index'
109
+    })
110
+  }
106 111
 
107 112
   getRoleName(type) {
108 113
     switch (type) {
@@ -213,6 +218,13 @@ export default class Person extends Component {
213 218
             </View>
214 219
             <Text style=" width:10px;height:10px;border-top: 1px solid #999;border-right: 1px solid #999;transform:rotate(45deg);"></Text>
215 220
           </View>
221
+          <View onClick={this.toProfile} style=" display: flex;align-items: center;justify-content: space-between;margin: 0 20px;padding:10px 0;box-shadow:0px 1px 0px 0px rgba(0,0,0,0.12);">
222
+            <View style="display: flex;align-items: center;">
223
+              <Image style="width:22px;height:22px;margin-right:10px" src={require('@assets/mine/regiment.png')} ></Image>
224
+              <Text >我的资料</Text>
225
+            </View>
226
+            <Text style=" width:10px;height:10px;border-top: 1px solid #999;border-right: 1px solid #999;transform:rotate(45deg);"></Text>
227
+          </View>
216 228
           <View onClick={this.toAssistance} style=" display: flex;align-items: center;justify-content: space-between;margin: 0 20px;padding:10px 0;box-shadow:0px 1px 0px 0px rgba(0,0,0,0.12);">
217 229
             <View style="display: flex;align-items: center;">
218 230
               <Image style="width:22px;height:22px;margin-right:10px" src={require('@assets/mine/help.png')} ></Image>

+ 194
- 0
src/pages/person/profile/index.js Целия файл

@@ -0,0 +1,194 @@
1
+import Taro, { Component } from '@tarojs/taro';
2
+import './index.scss'
3
+import { AtImagePicker } from 'taro-ui'
4
+import { getDocumentVerify, commitDocumentVerify, editDocumentVerify } from '@services/user'
5
+
6
+import "taro-ui/dist/style/components/image-picker.scss";
7
+import "taro-ui/dist/style/components/icon.scss";
8
+
9
+// import { connect } from '@tarojs/redux'
10
+
11
+
12
+// @connect(state => state.city)
13
+export default class Profile extends Component {
14
+  config = {
15
+    navigationBarTitleText: '我的资料'
16
+  }
17
+
18
+  state = {
19
+    files: [],
20
+    auditStatus: 0,
21
+    documentVerifyId: '',
22
+
23
+  }
24
+  // 审核状态   0审核中  1审核通过  2审核不通过 3未审核
25
+  componentDidMount() {
26
+    this.getProfile()
27
+
28
+  }
29
+
30
+  getProfile() {
31
+    Taro.showLoading()
32
+    getDocumentVerify().then(res => {
33
+      if (!res) {
34
+        this.setState({
35
+          auditStatus: 3,
36
+        })
37
+
38
+      } else {
39
+        console.log(res, "res")
40
+        let imgList = []
41
+        let fileList = res.imgList
42
+        fileList.map((item, index) => {
43
+          let newObj = {}
44
+          newObj.url = item.img
45
+
46
+          imgList.push(newObj)
47
+        }
48
+        )
49
+        this.setState({
50
+          files: imgList,
51
+          auditStatus: res.verifyStatus,
52
+          // resData:res,
53
+          documentVerifyId: res.documentVerifyId,
54
+        })
55
+      }
56
+
57
+      Taro.hideLoading()
58
+    }).catch((err) => {
59
+      Taro.hideLoading()
60
+      setTimeout(() => {
61
+        Taro.showToast({ icon: 'none', title: '获取信息失败' });
62
+      }, 500)
63
+
64
+    });
65
+  }
66
+
67
+  onChange(files) {
68
+    this.setState({
69
+      files
70
+    })
71
+  }
72
+  onFail(mes) {
73
+    console.log(mes)
74
+  }
75
+  onImageClick(index, file) {
76
+    console.log(index, file)
77
+  }
78
+  // 提交图片审核
79
+  commitBtn() {
80
+    console.log(this.state.auditStatus, "this.state.auditStatus")
81
+    if (this.state.files.length == 0) {
82
+      Taro.showToast({ icon: 'none', title: '请先上传图片' });
83
+    } else if (this.state.auditStatus != 3) {
84
+      let imgList = []
85
+      let fileList = this.state.files
86
+      fileList.map((item, index) => {
87
+        let newObj = {}
88
+        newObj.img = item.url
89
+        newObj.sort = index
90
+        imgList.push(newObj)
91
+      }
92
+      )
93
+      // const resData = this.state.resData
94
+
95
+      const payload = {
96
+        // ,
97
+
98
+        // ...resData,
99
+        imgList,
100
+        documentVerifyId: this.state.documentVerifyId
101
+
102
+      }
103
+      editDocumentVerify(payload).then(res => {
104
+        let imgList = []
105
+        let fileList = res.imgList
106
+        fileList.map((item, index) => {
107
+          let newObj = {}
108
+          newObj.url = item.img
109
+
110
+          imgList.push(newObj)
111
+        })
112
+
113
+        this.setState({
114
+          files: imgList,
115
+          auditStatus: res.verifyStatus
116
+        })
117
+        Taro.showToast({ icon: 'none', title: '提交成功' });
118
+      }).catch((err) => {
119
+        Taro.showToast({ icon: 'none', title: err.errMsg || '提交失败' });
120
+        console.error(err);
121
+      });
122
+
123
+    } else {
124
+
125
+      let imgList = []
126
+      let fileList = this.state.files
127
+      fileList.map((item, index) => {
128
+        let newObj = {}
129
+        newObj.img = item.url
130
+        newObj.sort = index
131
+        imgList.push(newObj)
132
+      })
133
+
134
+      commitDocumentVerify(imgList).then(res => {
135
+        let imgList = []
136
+        let fileList = res.imgList
137
+        fileList.map((item, index) => {
138
+          let newObj = {}
139
+          newObj.url = item.img
140
+          imgList.push(newObj)
141
+        })
142
+        this.setState({
143
+          files: imgList,
144
+          auditStatus: res.verifyStatus
145
+        })
146
+        Taro.showToast({ icon: 'none', title: '提交成功' });
147
+
148
+      }).catch((err) => {
149
+        Taro.showToast({ icon: 'none', title: err.errMsg || '提交失败' });
150
+        console.error(err);
151
+      });
152
+    }
153
+  }
154
+
155
+
156
+  render() {
157
+
158
+
159
+    return (
160
+      <View className="profile-page">
161
+        <View className="tip">
162
+          建议上传相关购房资格等相关资料,最多上传8张,
163
+        </View>
164
+        <View className="tip">
165
+          审核通过后将获取更多积分、兑换好礼~
166
+        </View>
167
+        {this.state.auditStatus == 1 &&
168
+          <View className="commit-text" >审核通过,快去查看积分吧~</View>
169
+        }
170
+
171
+        <AtImagePicker
172
+          showAddBtn={(this.state.files.length < 8 && this.state.auditStatus == 2) || (this.state.auditStatus == 3 && this.state.files.length < 8)}
173
+          length={2}
174
+          mode="scaleToFill"
175
+          files={this.state.files}
176
+          onChange={this.onChange.bind(this)}
177
+          onFail={this.onFail.bind(this)}
178
+          onImageClick={this.onImageClick.bind(this)}
179
+        />
180
+        {this.state.auditStatus == 2 &&
181
+          <View className="commit-text" >审核未通过,请重新提交!</View>
182
+        }
183
+
184
+        {(this.state.auditStatus == 2 || this.state.auditStatus == 3) &&
185
+          <View className="commit-btn" onClick={this.commitBtn}>提交审核</View>
186
+        }
187
+        {this.state.auditStatus == 0 &&
188
+          <View className="commit-text" >审核中</View>
189
+        }
190
+
191
+      </View>
192
+    )
193
+  }
194
+}

+ 30
- 0
src/pages/person/profile/index.scss Целия файл

@@ -0,0 +1,30 @@
1
+.profile-page{
2
+  padding: 20px 40px;
3
+  height: 100vh;
4
+  width: 100vw;
5
+  
6
+  .tip{
7
+    font-size:24px;
8
+    color:#c8c8c8;
9
+    text-align: center;
10
+    margin-bottom: 10px;
11
+  }
12
+  .commit-btn{
13
+    width:360px;
14
+    height:100px;
15
+    background:rgba(187,156,121,1);
16
+    border-radius:12px;
17
+    color: #fff;
18
+    font-size: 36px;
19
+    line-height: 100px;
20
+    text-align: center;
21
+    margin: 140px auto;
22
+    
23
+  }
24
+  .commit-text{
25
+    text-align: center;
26
+    margin: 80px auto;
27
+    color: rgba(187,156,121,1);
28
+    font-size: 36px;
29
+  }
30
+}

+ 25
- 33
src/pages/project/banner/index.js Целия файл

@@ -8,7 +8,7 @@ export default class SwiperBanner extends Component {
8 8
     list: [],
9 9
     indicatorDots: true,
10 10
     style: {
11
-      height: '250px'
11
+      height: '200px'
12 12
     },
13 13
     onClick: function () { }
14 14
   }
@@ -19,38 +19,30 @@ export default class SwiperBanner extends Component {
19 19
   render() {
20 20
     const { list, style, indicatorDots, current } = this.props
21 21
     return (
22
-      <swiper indicator-dots="false"
23
-      >
24
-        {/* <block wx: for="{{ background }}" wx:key="*this"> */}
25
-        <swiper-item>
26
-          <view class="swiper-item {{item}}"></view>
27
-        </swiper-item>
28
-        {/* </block> */}
29
-      </swiper >
30
-      //   <View className='home-banner' style={style}>
31
-      //     <Swiper
32
-      //       className='home-banner__swiper'
33
-      //       circular
34
-      //       autoplay
35
-      //       indicatorDots={indicatorDots}
36
-      //       indicatorActiveColor='rgb(178, 42, 49)'
37
-      //     >
38
-      //       {list.map((item, index) => (
39
-      //         <SwiperItem
40
-      //           key={index}
41
-      //           onClick={this.onBannerClick.bind(this, item)}
42
-      //           className='home-banner__swiper-item'
43
-      //         >
44
-      //           <Image
45
-      //             mode="widthFix"
46
-      //             style={style}
47
-      //             className='home-banner__swiper-item-img'
48
-      //             src={item.image || item.url}
49
-      //           />
50
-      //         </SwiperItem>
51
-      //       ))}
52
-      //     </Swiper>
53
-      //   </View>
22
+      <View className='home-banner' style={style}>
23
+        <Swiper
24
+          className='home-banner__swiper'
25
+          circular
26
+          autoplay
27
+          indicatorDots={indicatorDots}
28
+          indicatorActiveColor='rgb(178, 42, 49)'
29
+        >
30
+          {list.map((item, index) => (
31
+            <SwiperItem
32
+              key={index}
33
+              onClick={this.onBannerClick.bind(this, item)}
34
+              className='home-banner__swiper-item'
35
+            >
36
+              <Image
37
+                mode="widthFix"
38
+                style={style}
39
+                className='home-banner__swiper-item-img'
40
+                src={item.image || item.url}
41
+              />
42
+            </SwiperItem>
43
+          ))}
44
+        </Swiper>
45
+      </View> 
54 46
     )
55 47
   }
56 48
 }

+ 18
- 1
src/services/user.js Целия файл

@@ -3,7 +3,8 @@ import {
3 3
   API_USER_INFO,
4 4
   API_USER_PHONE,
5 5
   API_USER_SIGNIN,
6
-  API_QUERY_USER_INFO
6
+  API_QUERY_USER_INFO,
7
+  API_QUERY_DOCUMENTVERIFY
7 8
 } from '@constants/api'
8 9
 
9 10
 /**
@@ -24,6 +25,22 @@ export const queryUserPhone = payload => fetch({ url: API_USER_PHONE, payload, m
24 25
  */
25 26
 export const queryUserInfo = payload => fetch({ url: API_QUERY_USER_INFO, payload })
26 27
 
28
+/**
29
+ * 获取我的资料
30
+ * @param {*} payload
31
+ */
32
+export const getDocumentVerify = payload => fetch({ url: API_QUERY_DOCUMENTVERIFY, payload })
33
+/**
34
+ * 提交我的资料 (首次)
35
+ * @param {*} payload
36
+ */
37
+export const commitDocumentVerify = payload => fetch({ url: API_QUERY_DOCUMENTVERIFY, payload, method: 'POST'  })
38
+/**
39
+ * 提交我的资料 (非首次)
40
+ * @param {*} payload
41
+ */
42
+export const editDocumentVerify = payload => fetch({ url:`${API_QUERY_DOCUMENTVERIFY}/${payload.documentVerifyId}`, payload: payload.imgList, method: 'PUT'  })
43
+
27 44
 /**
28 45
  * 用户签到
29 46
  * @param {*} payload