1002884655 3 vuotta sitten
vanhempi
commit
c4a9b67c55

+ 18
- 6
src/assets/css/iconfont.css
File diff suppressed because it is too large
Näytä tiedosto


BIN
src/assets/css/iconfont.eot Näytä tiedosto


+ 1
- 1
src/assets/css/iconfont.js
File diff suppressed because it is too large
Näytä tiedosto


+ 21
- 0
src/assets/css/iconfont.json Näytä tiedosto

@@ -5,6 +5,27 @@
5 5
   "css_prefix_text": "icon-",
6 6
   "description": "",
7 7
   "glyphs": [
8
+    {
9
+      "icon_id": "18609904",
10
+      "name": "编 辑",
11
+      "font_class": "xiugai",
12
+      "unicode": "e745",
13
+      "unicode_decimal": 59205
14
+    },
15
+    {
16
+      "icon_id": "7934584",
17
+      "name": "女性",
18
+      "font_class": "nvxing",
19
+      "unicode": "e6cd",
20
+      "unicode_decimal": 59085
21
+    },
22
+    {
23
+      "icon_id": "21849876",
24
+      "name": "男性",
25
+      "font_class": "nanxing",
26
+      "unicode": "e713",
27
+      "unicode_decimal": 59155
28
+    },
8 29
     {
9 30
       "icon_id": "16036802",
10 31
       "name": "电  话",

+ 9
- 0
src/assets/css/iconfont.svg Näytä tiedosto

@@ -20,6 +20,15 @@ Created by iconfont
20 20
   />
21 21
     <missing-glyph />
22 22
     
23
+    <glyph glyph-name="xiugai" unicode="&#59205;" d="M368.13359375 247.74492186999998c15.89238281-15.89150391 40.98515625-15.89150391 56.04082031 0L861.62890625 685.19853516c15.89238281 15.89238281 15.89238281 40.98515625 0 56.87753906s-40.98515625 15.89238281-56.04082031 0L368.13359375 304.62246094c-15.89238281-15.89238281-15.89238281-40.98515625 0-56.87753907zM852.42675781 444.30703125c-21.74677734 0-40.1484375-17.56582031-40.1484375-40.1484375v-320.35341797h-600.55664062v600.55664063h320.35253906c21.74765625 0 39.31259766 17.56582031 40.1484375 40.1493164 0 21.74765625-17.56494141 40.1484375-39.31171875 40.1484375H171.57236328c-21.74677734 0-40.1484375-17.56494141-40.1484375-40.1484375v-680.85527343c0-10.87294922 4.18183594-20.9109375 11.70966797-28.43876954 7.52783203-7.52783203 17.56494141-11.70966797 28.43876953-11.70966796h680.85527344c10.87382813 0 20.9109375 4.18183594 28.43876953 11.70966796 7.52783203 7.52783203 11.70966797 17.56582031 11.70966797 28.43876954V404.15771484c0 22.58349609-18.40166016 40.1484375-40.1484375 40.1484375z"  horiz-adv-x="1024" />
24
+
25
+    
26
+    <glyph glyph-name="nvxing" unicode="&#59085;" d="M614.18956259 266.02997974000004v11.30058352h152.88075247v300.27264835a256.84612042 256.84612042 0 0 1-510.46350375 0v-300.27264835h152.96147067v-11.21986533L111.63646805 70.28772838999998v-108.2434466h801.04993753V69.07695127z m8.07184561-188.71974564c-72.64660886-70.54792905-110.66500086 36.80761487-110.66500085 36.80761487s-37.69551837-107.35554392-110.74571823-36.80761487c0 0-32.28738162 20.74464267-35.51612036 159.82253916L511.51568914 114.11784896999995l146.1811204 123.01492429c-3.63233057-138.99717746-35.75827497-159.82253916-35.75827497-159.82253916z"  horiz-adv-x="1024" />
27
+
28
+    
29
+    <glyph glyph-name="nanxing" unicode="&#59155;" d="M578.83748281 808.30321687c12.78209812-3.9071325 29.1222375-19.03888125 49.02041907-45.39524532 23.56363594-4.40391563 40.88391563-14.78937094 51.97426593-31.14964968 28.96783219-48.49006969 30.54545437-119.50321687 4.72615407-213.09986063 2.64503531 0.91972031 5.22293719 1.07412562 7.61958 0.34237781 12.4128675-3.79972031 15.44055938-29.86741219 6.76699312-58.21762218-7.49202844-24.51692343-21.28111875-42.71664375-32.89510499-44.76419625-6.10909125-26.40335625-16.25958-50.32279689-30.65286656-70.48951032a183.89034937 183.89034937 0 0 0-38.61482532-39.91048968c0.20811188-24.94657313 4.63888125-47.8724475 13.0573425-65.74992938-29.10209813-25.42993031-62.43356625-39.87020999-97.83944063-39.87021-35.41258781 0-68.73062906 14.44027969-97.83944063 39.87021 8.94881156 18.99860156 13.39300687 43.71020999 13.04391657 70.48951031-12.62769188 10.84195781-23.82545437 23.54349657-33.23748282 37.09090875-13.62797156 19.60951031-23.295105 42.63608438-29.20951031 67.93846125l-0.6981825-0.30881062-0.8324475-0.28867124c-12.40615406-3.80643375-29.49818156 16.125315-38.17174781 44.5023778-8.67356625 28.34349655-5.63916094 54.41118844 6.76699312 58.21090876 3.14853187 0.97342687 6.5924475 0.40279687 10.13034938-1.43664376-33.86853188 93.38181844-1.64475562 202.76139844-0.98013938 202.76139938 0.81902063 4.95440531 24.80559469 43.5826575 37.32587344 54.14937 56.52587438 47.6777625 135.83664375 55.09594406 200.53930125 35.325315zM245.93902063 171.48083905c48.59748281 33.33818156 111.43384594 54.12923062 166.17398624 65.81034938l52.65902157-204.83580375c1.40979001-5.504895 6.37762219-9.35832187 12.07048875-9.35832189l10.4324475 74.18853189a38.89006969 38.89006969 0 1 0 49.45007062 0l10.43916094-74.18853187c5.68615406 0 10.65398625 3.84671344 12.07048875 9.35832187l52.65902156 204.83580375c54.73342687-11.68111875 117.57650345-32.47216781 166.16727281-65.81034938 100.14881156-68.71048969 97.04727281-157.634685 96.08727282-185.11216781-0.07384594-2.114685-0.13426594-3.87356625-0.13426594-5.22293719v-10.43916093H149.98601375v10.43916093c0 1.34937094-0.0671325 3.10825219-0.13426594 5.22293719-0.96 27.47748281-4.06153875 116.40167812 96.08727282 185.11216781z"  horiz-adv-x="1024" />
30
+
31
+    
23 32
     <glyph glyph-name="dianhua" unicode="&#58893;" d="M598.308571 219.538286l24.064 14.994285c9.398857 5.632 17.115429 9.947429 24.868572 13.385143 54.637714 24.868571 102.765714 7.314286 166.4-67.035428 39.424-46.08 51.053714-86.930286 35.84-123.355429-11.337143-27.172571-33.133714-45.933714-71.972572-69.12-2.523429-1.462857-24.868571-14.518857-30.610285-18.066286-90.404571-55.771429-297.691429 71.936-446.646857 290.157715-149.577143 218.806857-188.196571 452.059429-96.585143 508.708571l12.068571 7.68 13.165714 8.484572c46.299429 29.952 75.958857 41.910857 111.104 35.986285 35.108571-5.997714 64.950857-31.963429 90.221715-79.286857 53.284571-100.096 41.545143-147.565714-26.953143-190.756571-4.973714-3.181714-22.454857-13.714286-24.137143-14.738286-16.749714-10.386286 11.702857-80.018286 77.860571-176.859429 66.889143-97.901714 122.88-151.478857 141.165715-140.178285h0.146285z"  horiz-adv-x="1024" />
24 33
 
25 34
     

BIN
src/assets/css/iconfont.ttf Näytä tiedosto


BIN
src/assets/css/iconfont.woff Näytä tiedosto


BIN
src/assets/css/iconfont.woff2 Näytä tiedosto


+ 3
- 3
src/pages/mine/components/StatCustomerListItem/index.jsx Näytä tiedosto

@@ -7,10 +7,10 @@ export default function StatCustomerListItem (props) {
7 7
   const { data = {}, showStatus = false } = props
8 8
   return (
9 9
     <view className='components StatCustomerListItem flex-h'>
10
-      <view className='Icon'>
10
+      <view className='Icon' onClick={() => { Taro.navigateTo({url: `/pages/mine/customerDetail/index?id=${data.id}`}) }}>
11 11
         <Image mode='scaleToFill' src={null}></Image>
12 12
       </view>
13
-      <view className='flex-item'>
13
+      <view className='flex-item' onClick={() => { Taro.navigateTo({url: `/pages/mine/customerDetail/index?id=${data.id}`}) }}>
14 14
         <view>
15 15
           <text>范丞丞</text>
16 16
           <text className='iconfont icon-yonghu'></text>
@@ -21,7 +21,7 @@ export default function StatCustomerListItem (props) {
21 21
       <text className='iconfont icon-dianhua active'></text>
22 22
       {
23 23
         showStatus &&
24
-        <text className='Status'>报备</text>
24
+        <text className='Status' onClick={() => { Taro.navigateTo({url: `/pages/mine/customerDetail/index?id=${data.id}`}) }}>报备</text>
25 25
       }
26 26
     </view>
27 27
   )

+ 63
- 0
src/pages/mine/components/UserDetailActivityInfo/index.jsx Näytä tiedosto

@@ -0,0 +1,63 @@
1
+import React, { useState, useEffect } from 'react'
2
+import './index.scss'
3
+import Taro from '@tarojs/taro'
4
+import { ScrollView, Image } from '@tarojs/components'
5
+
6
+export default function UserDetailActivityInfo (props) {
7
+  const { Data = {} } = props
8
+  const [PageList, setPageList] = useState([
9
+    { content: '参加了5D沉浸式 剧场', time: '2019年7月12日 12:30:00' },
10
+    { content: '参加了5D沉浸式 剧场', time: '2019年7月12日 12:30:00' },
11
+    { content: '参加了5D沉浸式 剧场', time: '2019年7月12日 12:30:00' },
12
+    { content: '参加了5D沉浸式 剧场', time: '2019年7月12日 12:30:00' },
13
+    { content: '参加了5D沉浸式 剧场', time: '2019年7月12日 12:30:00' },
14
+    { content: '参加了5D沉浸式 剧场', time: '2019年7月12日 12:30:00' }
15
+  ])
16
+  const [IsPull, setPull] = useState(false)
17
+  const [PullTimer, setPullTimer] = useState(null)
18
+
19
+  const PageRefresh = () => { // 页面下拉刷新回调
20
+    setPull(true)
21
+  }
22
+
23
+  useEffect(() => { // 下拉刷新触发
24
+    if (IsPull) {
25
+      clearTimeout(PullTimer)
26
+      setPullTimer(setTimeout(() => {
27
+        setPull(false)
28
+      }, 2000))
29
+    }
30
+  }, [IsPull])
31
+
32
+  return (
33
+    <view className='components UserDetailActivityInfo'>
34
+      <ScrollView scroll-y={true} refresher-enabled={true} refresher-triggered={IsPull} onrefresherrefresh={PageRefresh} refresher-background='#fff'>
35
+        <view className='PageContent'>
36
+
37
+          <view className='Content'>
38
+            {
39
+              PageList.map((item, index) => (
40
+                <view className='flex-h' key={`Item-${index}`}>
41
+                  <view className='flex-item'>
42
+                    <text>{item.time}</text>
43
+                  </view>
44
+                  <view className='Line'>
45
+                    <view></view>
46
+                  </view>
47
+                  <view className='flex-item'>
48
+                    <text className='active'>{item.content}</text>
49
+                  </view>
50
+                </view>
51
+              ))
52
+            }
53
+          </view>
54
+
55
+          <view className='Btn'>
56
+            <text className='active'>添加跟进</text>
57
+          </view>
58
+
59
+        </view>
60
+      </ScrollView>
61
+    </view>
62
+  )
63
+}

+ 114
- 0
src/pages/mine/components/UserDetailActivityInfo/index.scss Näytä tiedosto

@@ -0,0 +1,114 @@
1
+.components.UserDetailActivityInfo {
2
+  position: relative;
3
+  overflow: hidden;
4
+  width: 100%;
5
+  height: 100%;
6
+  > scroll-view {
7
+    width: 100%;
8
+    height: 100%;
9
+    position: relative;
10
+    .PageContent {
11
+      position: relative;
12
+      overflow: hidden;
13
+      padding: 0 30px;
14
+      min-height: 100vh;
15
+      >.Content {
16
+        background: #fff;
17
+        position: relative;
18
+        overflow: hidden;
19
+        margin-top: 30px;
20
+        border-radius: 16px;
21
+        box-shadow: 0 0 6px 6px rgba(0, 0, 0, 0.03);
22
+        padding: 50px 30px;
23
+        >.flex-h {
24
+          position: relative;
25
+          overflow: hidden;
26
+          &:first-child {
27
+            >.Line {
28
+              >view {
29
+                &::before {
30
+                  content: '';
31
+                  display: block;
32
+                  width: 12px;
33
+                  height: 12px;
34
+                  position: absolute;
35
+                  left: 4px;
36
+                  top: 4px;
37
+                  background: #193C83;
38
+                  border-radius: 100%;
39
+                }
40
+              }
41
+            }
42
+          }
43
+          &:last-child {
44
+            >.Line {
45
+              &::before {
46
+                display: none;
47
+              }
48
+            }
49
+          }
50
+          >.flex-item {
51
+            text-align: center;
52
+            padding-bottom: 50px;
53
+            >text {
54
+              display: block;
55
+              text-align: center;
56
+              font-size: 30px;
57
+              line-height: 40px;
58
+              transform: translateY(-6px);
59
+              -webkit-transform: translateY(-6px);
60
+              &.active {
61
+                font-weight: bold;
62
+              }
63
+            }
64
+          }
65
+          >.Line {
66
+            position: relative;
67
+            overflow: hidden;
68
+            margin-right: 20px;
69
+            &::before {
70
+              content: '';
71
+              display: block;
72
+              position: absolute;
73
+              width: 2px;
74
+              background: #193C83;
75
+              top: 0;
76
+              z-index: 1;
77
+              left: 11px;
78
+              height: 100%;
79
+            }
80
+            >view {
81
+              width: 24px;
82
+              height: 24px;
83
+              box-sizing: border-box;
84
+              border: 2px solid #193C83;
85
+              position: relative;
86
+              z-index: 2;
87
+              border-radius: 100%;
88
+              background: #fff;
89
+            }
90
+          }
91
+        }
92
+      }
93
+      >.Btn {
94
+        padding: 0 30px 36px;
95
+        >text {
96
+          display: block;
97
+          margin-top: 36px;
98
+          font-size: 32px;
99
+          font-weight: bold;
100
+          line-height: 92px;
101
+          box-sizing: border-box;
102
+          border: 2px solid #193C83;
103
+          border-radius: 92px;
104
+          text-align: center;
105
+          color: #193C83;
106
+          &.active {
107
+            background: #193C83;
108
+            color: #fff;
109
+          }
110
+        }
111
+      }
112
+    }
113
+  }
114
+}

+ 170
- 0
src/pages/mine/components/UserDetailBasicInfo/index.jsx Näytä tiedosto

@@ -0,0 +1,170 @@
1
+import React, { useState, useEffect } from 'react'
2
+import './index.scss'
3
+import Taro from '@tarojs/taro'
4
+import { ScrollView, Image } from '@tarojs/components'
5
+
6
+export default function UserDetailBasicInfo (props) {
7
+  const { Data = {} } = props
8
+  const [PageList, setPageList] = useState(['', '', '', '', '', '', '', '', '', '', '', '', ''])
9
+  const [IsPull, setPull] = useState(false)
10
+  const [PullTimer, setPullTimer] = useState(null)
11
+
12
+  const PageRefresh = () => { // 页面下拉刷新回调
13
+    setPull(true)
14
+  }
15
+
16
+  useEffect(() => { // 下拉刷新触发
17
+    if (IsPull) {
18
+      clearTimeout(PullTimer)
19
+      setPullTimer(setTimeout(() => {
20
+        setPull(false)
21
+      }, 2000))
22
+    }
23
+  }, [IsPull])
24
+
25
+  return (
26
+    <view className='components UserDetailBasicInfo'>
27
+      <ScrollView scroll-y={true} refresher-enabled={true} refresher-triggered={IsPull} onrefresherrefresh={PageRefresh} refresher-background='#fff'>
28
+        <view className='PageContent'>
29
+
30
+          <view className='Content'>
31
+            <view className='flex-h'>
32
+              <text>姓名</text>
33
+              <text>:</text>
34
+              <view className='flex-item'>
35
+                <text>范丞丞</text>
36
+              </view>
37
+              <text className='iconfont icon-xiugai active'></text>
38
+              <text className='active'>修改</text>
39
+            </view>
40
+            <view className='flex-h'>
41
+              <text>昵称</text>
42
+              <text>:</text>
43
+              <view className='flex-item'>
44
+                <text>Tomorrow</text>
45
+              </view>
46
+            </view>
47
+            <view className='flex-h'>
48
+              <text>手机号码</text>
49
+              <text>:</text>
50
+              <view className='flex-item'>
51
+                <text>13613949434</text>
52
+              </view>
53
+            </view>
54
+            <view className='flex-h'>
55
+              <text>性别</text>
56
+              <text>:</text>
57
+              <view className='flex-item'>
58
+                <text>男</text>
59
+              </view>
60
+            </view>
61
+            <view className='flex-h'>
62
+              <text>家庭住址</text>
63
+              <text>:</text>
64
+              <view className='flex-item'>
65
+                <text>江苏省南京市雨花台区铁心桥街道韩府坊小区</text>
66
+              </view>
67
+            </view>
68
+            <view className='flex-h'>
69
+              <text>工作地址</text>
70
+              <text>:</text>
71
+              <view className='flex-item'>
72
+                <text>江苏省南京市雨花台区</text>
73
+              </view>
74
+            </view>
75
+            <view className='flex-h'>
76
+              <text>年龄段</text>
77
+              <text>:</text>
78
+              <view className='flex-item'>
79
+                <text>18-25</text>
80
+              </view>
81
+            </view>
82
+            <view className='flex-h'>
83
+              <text>职业</text>
84
+              <text>:</text>
85
+              <view className='flex-item'>
86
+                <text>演员</text>
87
+              </view>
88
+            </view>
89
+            <view className='flex-h'>
90
+              <text>家庭年收入</text>
91
+              <text>:</text>
92
+              <view className='flex-item'>
93
+                <text>10万以下</text>
94
+              </view>
95
+            </view>
96
+            <view className='flex-h'>
97
+              <text>家庭成员数</text>
98
+              <text>:</text>
99
+              <view className='flex-item'>
100
+                <text>5人</text>
101
+              </view>
102
+            </view>
103
+            <view className='flex-h'>
104
+              <text>已有房产数</text>
105
+              <text>:</text>
106
+              <view className='flex-item'>
107
+                <text>2</text>
108
+              </view>
109
+            </view>
110
+            <view className='flex-h'>
111
+              <text>已有车辆数</text>
112
+              <text>:</text>
113
+              <view className='flex-item'>
114
+                <text>2</text>
115
+              </view>
116
+            </view>
117
+            <view className='flex-h'>
118
+              <text>预计购房时间</text>
119
+              <text>:</text>
120
+              <view className='flex-item'>
121
+                <text>1月以内</text>
122
+              </view>
123
+            </view>
124
+            <view className='flex-h'>
125
+              <text>咨询重点</text>
126
+              <text>:</text>
127
+              <view className='flex-item'>
128
+                <text>江苏省南京市雨花台区</text>
129
+              </view>
130
+            </view>
131
+            <view className='flex-h'>
132
+              <text>购房动机</text>
133
+              <text>:</text>
134
+              <view className='flex-item'>
135
+                <text>结婚</text>
136
+              </view>
137
+            </view>
138
+            <view className='flex-h'>
139
+              <text>抗性分析</text>
140
+              <text>:</text>
141
+              <view className='flex-item'>
142
+                <text>交通</text>
143
+              </view>
144
+            </view>
145
+            <view className='flex-h'>
146
+              <text>项目认可点</text>
147
+              <text>:</text>
148
+              <view className='flex-item'>
149
+                <text>户型</text>
150
+              </view>
151
+            </view>
152
+            <view className='flex-h'>
153
+              <text>备注</text>
154
+              <text>:</text>
155
+              <view className='flex-item'>
156
+                <text>暂无</text>
157
+              </view>
158
+            </view>
159
+          </view>
160
+
161
+          <view className='Btn'>
162
+            <text className='active'>添加跟进</text>
163
+            <text>变更状态</text>
164
+          </view>
165
+
166
+        </view>
167
+      </ScrollView>
168
+    </view>
169
+  )
170
+}

+ 83
- 0
src/pages/mine/components/UserDetailBasicInfo/index.scss Näytä tiedosto

@@ -0,0 +1,83 @@
1
+.components.UserDetailBasicInfo {
2
+  position: relative;
3
+  overflow: hidden;
4
+  width: 100%;
5
+  height: 100%;
6
+  > scroll-view {
7
+    width: 100%;
8
+    height: 100%;
9
+    position: relative;
10
+    .PageContent {
11
+      position: relative;
12
+      overflow: hidden;
13
+      padding: 0 30px;
14
+      min-height: 100vh;
15
+      >.Content {
16
+        background: #fff;
17
+        position: relative;
18
+        overflow: hidden;
19
+        margin-top: 30px;
20
+        border-radius: 16px;
21
+        box-shadow: 0 0 6px 6px rgba(0, 0, 0, 0.03);
22
+        padding: 30px;
23
+        >.flex-h {
24
+          align-items: flex-start;
25
+          margin-top: 30px;
26
+          &:first-child {
27
+            margin-top: 0;
28
+          }
29
+          >text {
30
+            font-size: 30px;
31
+            line-height: 40px;
32
+            color: #333;
33
+            &:first-child {
34
+              min-width: 200px;
35
+              white-space: nowrap;
36
+              text-overflow: ellipsis;
37
+              text-align: justify;
38
+              text-align-last: justify;
39
+            }
40
+            &.active {
41
+              color: #193C83;
42
+              font-weight: bold;
43
+              font-size: 32px;
44
+              &.iconfont {
45
+                font-weight: normal;
46
+                margin-right: 6px;
47
+                font-size: 36px;
48
+              }
49
+            }
50
+          }
51
+          >.flex-item {
52
+            >text {
53
+              font-size: 30px;
54
+              line-height: 40px;
55
+              font-weight: bold;
56
+              color: #333;
57
+              display: block;
58
+            }
59
+          }
60
+        }
61
+      }
62
+      >.Btn {
63
+        padding: 0 30px 36px;
64
+        >text {
65
+          display: block;
66
+          margin-top: 36px;
67
+          font-size: 32px;
68
+          font-weight: bold;
69
+          line-height: 92px;
70
+          box-sizing: border-box;
71
+          border: 2px solid #193C83;
72
+          border-radius: 92px;
73
+          text-align: center;
74
+          color: #193C83;
75
+          &.active {
76
+            background: #193C83;
77
+            color: #fff;
78
+          }
79
+        }
80
+      }
81
+    }
82
+  }
83
+}

+ 63
- 0
src/pages/mine/components/UserDetailFollowRecord/index.jsx Näytä tiedosto

@@ -0,0 +1,63 @@
1
+import React, { useState, useEffect } from 'react'
2
+import './index.scss'
3
+import Taro from '@tarojs/taro'
4
+import { ScrollView, Image } from '@tarojs/components'
5
+
6
+export default function UserDetailFollowRecord (props) {
7
+  const { Data = {} } = props
8
+  const [PageList, setPageList] = useState([
9
+    { content: '参加了5D沉浸式 剧场', time: '2019年7月12日 12:30:00' },
10
+    { content: '参加了5D沉浸式 剧场', time: '2019年7月12日 12:30:00' },
11
+    { content: '参加了5D沉浸式 剧场', time: '2019年7月12日 12:30:00' },
12
+    { content: '参加了5D沉浸式 剧场', time: '2019年7月12日 12:30:00' },
13
+    { content: '参加了5D沉浸式 剧场', time: '2019年7月12日 12:30:00' },
14
+    { content: '参加了5D沉浸式 剧场', time: '2019年7月12日 12:30:00' }
15
+  ])
16
+  const [IsPull, setPull] = useState(false)
17
+  const [PullTimer, setPullTimer] = useState(null)
18
+
19
+  const PageRefresh = () => { // 页面下拉刷新回调
20
+    setPull(true)
21
+  }
22
+
23
+  useEffect(() => { // 下拉刷新触发
24
+    if (IsPull) {
25
+      clearTimeout(PullTimer)
26
+      setPullTimer(setTimeout(() => {
27
+        setPull(false)
28
+      }, 2000))
29
+    }
30
+  }, [IsPull])
31
+
32
+  return (
33
+    <view className='components UserDetailFollowRecord'>
34
+      <ScrollView scroll-y={true} refresher-enabled={true} refresher-triggered={IsPull} onrefresherrefresh={PageRefresh} refresher-background='#fff'>
35
+        <view className='PageContent'>
36
+
37
+          <view className='Content'>
38
+            {
39
+              PageList.map((item, index) => (
40
+                <view className='flex-h' key={`Item-${index}`}>
41
+                  <view className='flex-item'>
42
+                    <text>{item.time}</text>
43
+                  </view>
44
+                  <view className='Line'>
45
+                    <view></view>
46
+                  </view>
47
+                  <view className='flex-item'>
48
+                    <text className='active'>{item.content}</text>
49
+                  </view>
50
+                </view>
51
+              ))
52
+            }
53
+          </view>
54
+
55
+          <view className='Btn'>
56
+            <text className='active'>添加跟进</text>
57
+          </view>
58
+
59
+        </view>
60
+      </ScrollView>
61
+    </view>
62
+  )
63
+}

+ 114
- 0
src/pages/mine/components/UserDetailFollowRecord/index.scss Näytä tiedosto

@@ -0,0 +1,114 @@
1
+.components.UserDetailFollowRecord {
2
+  position: relative;
3
+  overflow: hidden;
4
+  width: 100%;
5
+  height: 100%;
6
+  > scroll-view {
7
+    width: 100%;
8
+    height: 100%;
9
+    position: relative;
10
+    .PageContent {
11
+      position: relative;
12
+      overflow: hidden;
13
+      padding: 0 30px;
14
+      min-height: 100vh;
15
+      >.Content {
16
+        background: #fff;
17
+        position: relative;
18
+        overflow: hidden;
19
+        margin-top: 30px;
20
+        border-radius: 16px;
21
+        box-shadow: 0 0 6px 6px rgba(0, 0, 0, 0.03);
22
+        padding: 50px 30px;
23
+        >.flex-h {
24
+          position: relative;
25
+          overflow: hidden;
26
+          &:first-child {
27
+            >.Line {
28
+              >view {
29
+                &::before {
30
+                  content: '';
31
+                  display: block;
32
+                  width: 12px;
33
+                  height: 12px;
34
+                  position: absolute;
35
+                  left: 4px;
36
+                  top: 4px;
37
+                  background: #193C83;
38
+                  border-radius: 100%;
39
+                }
40
+              }
41
+            }
42
+          }
43
+          &:last-child {
44
+            >.Line {
45
+              &::before {
46
+                display: none;
47
+              }
48
+            }
49
+          }
50
+          >.flex-item {
51
+            text-align: center;
52
+            padding-bottom: 50px;
53
+            >text {
54
+              display: block;
55
+              text-align: center;
56
+              font-size: 30px;
57
+              line-height: 40px;
58
+              transform: translateY(-6px);
59
+              -webkit-transform: translateY(-6px);
60
+              &.active {
61
+                font-weight: bold;
62
+              }
63
+            }
64
+          }
65
+          >.Line {
66
+            position: relative;
67
+            overflow: hidden;
68
+            margin-right: 20px;
69
+            &::before {
70
+              content: '';
71
+              display: block;
72
+              position: absolute;
73
+              width: 2px;
74
+              background: #193C83;
75
+              top: 0;
76
+              z-index: 1;
77
+              left: 11px;
78
+              height: 100%;
79
+            }
80
+            >view {
81
+              width: 24px;
82
+              height: 24px;
83
+              box-sizing: border-box;
84
+              border: 2px solid #193C83;
85
+              position: relative;
86
+              z-index: 2;
87
+              border-radius: 100%;
88
+              background: #fff;
89
+            }
90
+          }
91
+        }
92
+      }
93
+      >.Btn {
94
+        padding: 0 30px 36px;
95
+        >text {
96
+          display: block;
97
+          margin-top: 36px;
98
+          font-size: 32px;
99
+          font-weight: bold;
100
+          line-height: 92px;
101
+          box-sizing: border-box;
102
+          border: 2px solid #193C83;
103
+          border-radius: 92px;
104
+          text-align: center;
105
+          color: #193C83;
106
+          &.active {
107
+            background: #193C83;
108
+            color: #fff;
109
+          }
110
+        }
111
+      }
112
+    }
113
+  }
114
+}

+ 81
- 0
src/pages/mine/components/UserDetailViewRecord/index.jsx Näytä tiedosto

@@ -0,0 +1,81 @@
1
+import React, { useState, useEffect } from 'react'
2
+import './index.scss'
3
+import Taro from '@tarojs/taro'
4
+import { ScrollView, Image } from '@tarojs/components'
5
+
6
+export default function UserDetailViewRecord (props) {
7
+  const { Data = {} } = props
8
+  const [PageList, setPageList] = useState(['', '', '', '', '', '', '', '', '', '', '', '', ''])
9
+  const [IsPull, setPull] = useState(false)
10
+  const [PullTimer, setPullTimer] = useState(null)
11
+
12
+  const PageRefresh = () => { // 页面下拉刷新回调
13
+    setPull(true)
14
+  }
15
+
16
+  useEffect(() => { // 下拉刷新触发
17
+    if (IsPull) {
18
+      clearTimeout(PullTimer)
19
+      setPullTimer(setTimeout(() => {
20
+        setPull(false)
21
+      }, 2000))
22
+    }
23
+  }, [IsPull])
24
+
25
+  return (
26
+    <view className='components UserDetailViewRecord'>
27
+      <ScrollView scroll-y={true} refresher-enabled={true} refresher-triggered={IsPull} onrefresherrefresh={PageRefresh} refresher-background='#fff'>
28
+        <view className='PageContent'>
29
+
30
+          <view className='Content'>
31
+            <view className='flex-h'>
32
+              <text>查看项目详情</text>
33
+              <text>:</text>
34
+              <view className='flex-item'>
35
+                <text>银城悦见山</text>
36
+              </view>
37
+              <text>2021/05/21 13:00</text>
38
+            </view>
39
+            <view className='flex-h'>
40
+              <text>查看户型图</text>
41
+              <text>:</text>
42
+              <view className='flex-item'>
43
+                <text>银城悦见山</text>
44
+              </view>
45
+              <text>2021/05/21 13:00</text>
46
+            </view>
47
+            <view className='flex-h'>
48
+              <text>报名活动</text>
49
+              <text>:</text>
50
+              <view className='flex-item'>
51
+                <text>银城悦见山</text>
52
+              </view>
53
+              <text>2021/05/21 13:00</text>
54
+            </view>
55
+            <view className='flex-h'>
56
+              <text>在线沟通</text>
57
+              <text>:</text>
58
+              <view className='flex-item'>
59
+                <text>银城悦见山</text>
60
+              </view>
61
+              <text>2021/05/21 13:00</text>
62
+            </view>
63
+            <view className='flex-h'>
64
+              <text>在线咨询</text>
65
+              <text>:</text>
66
+              <view className='flex-item'>
67
+                <text>银城悦见山</text>
68
+              </view>
69
+              <text>2021/05/21 13:00</text>
70
+            </view>
71
+          </view>
72
+
73
+          <view className='Btn'>
74
+            <text className='active'>添加跟进</text>
75
+          </view>
76
+
77
+        </view>
78
+      </ScrollView>
79
+    </view>
80
+  )
81
+}

+ 84
- 0
src/pages/mine/components/UserDetailViewRecord/index.scss Näytä tiedosto

@@ -0,0 +1,84 @@
1
+.components.UserDetailViewRecord {
2
+  position: relative;
3
+  overflow: hidden;
4
+  width: 100%;
5
+  height: 100%;
6
+  > scroll-view {
7
+    width: 100%;
8
+    height: 100%;
9
+    position: relative;
10
+    .PageContent {
11
+      position: relative;
12
+      overflow: hidden;
13
+      padding: 0 30px;
14
+      min-height: 100vh;
15
+      >.Content {
16
+        background: #fff;
17
+        position: relative;
18
+        overflow: hidden;
19
+        margin-top: 30px;
20
+        border-radius: 16px;
21
+        box-shadow: 0 0 6px 6px rgba(0, 0, 0, 0.03);
22
+        padding: 30px;
23
+        >.flex-h {
24
+          align-items: flex-start;
25
+          margin-top: 30px;
26
+          &:first-child {
27
+            margin-top: 0;
28
+          }
29
+          >text {
30
+            font-size: 24px;
31
+            line-height: 40px;
32
+            color: #333;
33
+            &:first-child {
34
+              font-size: 30px;
35
+              min-width: 200px;
36
+              white-space: nowrap;
37
+              text-overflow: ellipsis;
38
+              text-align: justify;
39
+              text-align-last: justify;
40
+            }
41
+            &.active {
42
+              color: #193C83;
43
+              font-weight: bold;
44
+              font-size: 32px;
45
+              &.iconfont {
46
+                font-weight: normal;
47
+                margin-right: 6px;
48
+                font-size: 36px;
49
+              }
50
+            }
51
+          }
52
+          >.flex-item {
53
+            >text {
54
+              font-size: 30px;
55
+              line-height: 40px;
56
+              font-weight: bold;
57
+              color: #333;
58
+              display: block;
59
+            }
60
+          }
61
+        }
62
+      }
63
+      >.Btn {
64
+        padding: 0 30px 36px;
65
+        >text {
66
+          display: block;
67
+          margin-top: 36px;
68
+          font-size: 32px;
69
+          font-weight: bold;
70
+          line-height: 92px;
71
+          box-sizing: border-box;
72
+          border: 2px solid #193C83;
73
+          border-radius: 92px;
74
+          text-align: center;
75
+          color: #193C83;
76
+          &.active {
77
+            background: #193C83;
78
+            color: #fff;
79
+          }
80
+        }
81
+      }
82
+    }
83
+  }
84
+}

+ 3
- 0
src/pages/mine/customerAnalyse/index.config.js Näytä tiedosto

@@ -0,0 +1,3 @@
1
+export default {
2
+  navigationBarTitleText: '客户分析'
3
+}

+ 96
- 0
src/pages/mine/customerAnalyse/index.jsx Näytä tiedosto

@@ -0,0 +1,96 @@
1
+import React, { useState, useEffect } from 'react'
2
+import withLayout from '@/layout'
3
+import './index.scss'
4
+import '../../../assets/css/iconfont.css'
5
+import { ScrollView } from '@tarojs/components'
6
+
7
+export default withLayout((props) => {
8
+
9
+  // const [PageProps] = useState(props)
10
+  const [MenuList] = useState([
11
+    { name: '新增客户', id: 1 },
12
+    { name: '跟进客户', id: 2 },
13
+    { name: '到访客户', id: 3 }
14
+  ])
15
+  const [CurrentMenuId, setCurrentMenuId] = useState(1)
16
+
17
+  const [ChartMenuList] = useState([
18
+    { name: '日', id: 1 },
19
+    { name: '月', id: 2 }
20
+  ])
21
+  const [CurrentChartMenuId, setCurrentChartMenuId] = useState(1)
22
+
23
+  const [SexList, setSexList] = useState([
24
+    { name: '男', per: 0.6 },
25
+    { name: '女', per: 0.3 },
26
+    { name: '未知', per: 0.1 }
27
+  ])
28
+
29
+  const CutMenu = (item) => {
30
+    return () => {
31
+      setCurrentMenuId(item.id)
32
+    }
33
+  }
34
+
35
+  const CutChartMenu = (item) => {
36
+    return () => {
37
+      setCurrentChartMenuId(item.id)
38
+    }
39
+  }
40
+
41
+  return (
42
+    <view className='Page customerAnalyse flex-v'>
43
+
44
+      <view className='MenuList'>
45
+        <view>
46
+          {
47
+            MenuList.map((item, index) => (
48
+              <text key={`MenuItem-${index}`} className={CurrentMenuId === item.id ? 'active' : ''} onClick={CutMenu(item)}>{item.name}</text>
49
+            ))
50
+          }
51
+        </view>
52
+      </view>
53
+
54
+      <view className='flex-item'>
55
+        <view>
56
+          <ScrollView scroll-y={true} refresher-enabled={false}>
57
+            <view className='PageContent'>
58
+
59
+              {/* 图表 */}
60
+              <view className='Chart'>
61
+                <view className='Menu'>
62
+                  {
63
+                    ChartMenuList.map((item, index) => (
64
+                      <text key={`ChartMenuItem-${index}`} className={CurrentChartMenuId === item.id ? 'active' : ''} onClick={CutChartMenu(item)}>{item.name}</text>
65
+                    ))
66
+                  }
67
+                </view>
68
+                <view className='LineChart'>
69
+
70
+                </view>
71
+              </view>
72
+
73
+              {/* 性别 */}
74
+              <view className='Sex'>
75
+                <text>性别</text>
76
+                {
77
+                  SexList.map((item, index) => (
78
+                    <view className='flex-h' key={`SexItem-${index}`}>
79
+                      <text>{item.name}</text>
80
+                      <view className='flex-item'>
81
+                        <view style={{width: `${Math.floor(item.per * 100)}%`}}></view>
82
+                      </view>
83
+                      <text>{Math.floor(item.per * 100)}%</text>
84
+                    </view>
85
+                  ))
86
+                }
87
+              </view>
88
+
89
+            </view>
90
+          </ScrollView>
91
+        </view>
92
+      </view>
93
+
94
+    </view>
95
+  )
96
+})

+ 160
- 0
src/pages/mine/customerAnalyse/index.scss Näytä tiedosto

@@ -0,0 +1,160 @@
1
+.Page.customerAnalyse {
2
+  background: #f8f8f8;
3
+  position: relative;
4
+  overflow: hidden;
5
+  width: 100%;
6
+  height: 100vh;
7
+  >.MenuList {
8
+    position: relative;
9
+    overflow: hidden;
10
+    z-index: 2;
11
+    padding: 0 50px;
12
+    box-shadow: 0 0 6px 6px rgba(0, 0, 0, 0.03);
13
+    background: #fff;
14
+    >view {
15
+      position: relative;
16
+      overflow: hidden;
17
+      text-align: center;
18
+      font-size: 0;
19
+      white-space: nowrap;
20
+      >text {
21
+        display: inline-block;
22
+        font-size: 32px;
23
+        color: #666;
24
+        line-height: 40px;
25
+        margin-left: 80px;
26
+        vertical-align: middle;
27
+        padding: 20px 0;
28
+        position: relative;
29
+        overflow: hidden;
30
+        &:first-child {
31
+          margin-left: 0;
32
+        }
33
+        &.active {
34
+          color: #333;
35
+          font-weight: 34px;
36
+          font-weight: bold;
37
+          &::after {
38
+            content: '';
39
+            width: 100%;
40
+            height: 4px;
41
+            background: #1A3B83;
42
+            display: block;
43
+            position: absolute;
44
+            left: 0;
45
+            bottom: 0;
46
+          }
47
+        }
48
+      }
49
+    }
50
+  }
51
+  > .flex-item {
52
+    position: relative;
53
+    overflow: hidden;
54
+    z-index: 1;
55
+    > view {
56
+      width: 100%;
57
+      position: absolute;
58
+      left: 0;
59
+      top: 0;
60
+      bottom: 0;
61
+      >scroll-view {
62
+        width: 100%;
63
+        height: 100%;
64
+        position: relative;
65
+        .PageContent {
66
+          min-height: 100vh;
67
+          position: relative;
68
+          >view {
69
+            position: relative;
70
+            overflow: hidden;
71
+            background: #fff;
72
+            margin-top: 20px;
73
+            padding: 40px;
74
+            &:first-child {
75
+              margin-top: 0;
76
+            }
77
+            &.Chart {
78
+              >.Menu {
79
+                font-size: 0;
80
+                white-space: nowrap;
81
+                text-align: right;
82
+                >text {
83
+                  display: inline-block;
84
+                  vertical-align: middle;
85
+                  font-size: 28px;
86
+                  line-height: 40px;
87
+                  color: #999;
88
+                  background: #f5f5f5;
89
+                  width: 76px;
90
+                  text-align: center;
91
+                  margin-left: 30px;
92
+                  &.active {
93
+                    color: #fff;
94
+                    background: #1A3B83;
95
+                  }
96
+                }
97
+              }
98
+              >.LineChart {
99
+                height: 450px;
100
+                position: relative;
101
+                overflow: hidden;
102
+              }
103
+            }
104
+            &.Sex {
105
+              >text {
106
+                display: block;
107
+                font-size: 36px;
108
+                line-height: 50px;
109
+                color: #666;
110
+              }
111
+              >.flex-h {
112
+                align-items: center;
113
+                margin-top: 40px;
114
+                &:nth-child(2) {
115
+                  >.flex-item {
116
+                    >view {
117
+                      background: #1296DB;
118
+                    }
119
+                  }
120
+                }
121
+                &:nth-child(3) {
122
+                  >.flex-item {
123
+                    >view {
124
+                      background: #FE7CD1;
125
+                    }
126
+                  }
127
+                }
128
+                >text {
129
+                  font-size: 32px;
130
+                  line-height: 44px;
131
+                  color: #666;
132
+                  &:first-child {
133
+                    min-width: 70px;
134
+                  }
135
+                }
136
+                >.flex-item {
137
+                  margin-left: 8px;
138
+                  margin-right: 20px;
139
+                  position: relative;
140
+                  overflow: hidden;
141
+                  height: 12px;
142
+                  background: #F5F5F5;
143
+                  border-radius: 12px;
144
+                  >view {
145
+                    position: absolute;
146
+                    left: 0;
147
+                    top: 0;
148
+                    height: 100%;
149
+                    background: #A2A2A2;
150
+                    border-radius: 12px;
151
+                  }
152
+                }
153
+              }
154
+            }
155
+          }
156
+        }
157
+      }
158
+    }
159
+  }
160
+}

+ 3
- 0
src/pages/mine/customerDetail/index.config.js Näytä tiedosto

@@ -0,0 +1,3 @@
1
+export default {
2
+  navigationBarTitleText: '客户信息'
3
+}

+ 98
- 0
src/pages/mine/customerDetail/index.jsx Näytä tiedosto

@@ -0,0 +1,98 @@
1
+import React, { useState, useEffect } from 'react'
2
+import withLayout from '@/layout'
3
+import './index.scss'
4
+import '../../../assets/css/iconfont.css'
5
+import { Image } from '@tarojs/components'
6
+import UserDetailBasicInfo from '../components/UserDetailBasicInfo/index'
7
+import UserDetailViewRecord from '../components/UserDetailViewRecord/index'
8
+import UserDetailActivityInfo from '../components/UserDetailActivityInfo/index'
9
+import UserDetailFollowRecord from '../components/UserDetailFollowRecord/index'
10
+
11
+export default withLayout((props) => {
12
+
13
+  // const [PageProps] = useState(props)
14
+  const [MenuList] = useState([
15
+    { name: '基本信息', id: 1 },
16
+    { name: '访问记录', id: 2 },
17
+    { name: '活动信息', id: 3 },
18
+    { name: '跟进记录', id: 4 }
19
+  ])
20
+  const [CurrentMenuId, setCurrentMenuId] = useState(1)
21
+
22
+  const CutMenu = (item) => {
23
+    return () => {
24
+      setCurrentMenuId(item.id)
25
+    }
26
+  }
27
+
28
+  return (
29
+    <view className='Page customerDetail flex-v'>
30
+
31
+      <view className='UserInfo'>
32
+        <view>
33
+          <view>
34
+            <view className='centerLabel'>
35
+              <view className='flex-h'>
36
+                <view className='Icon'>
37
+                  <Image mode='aspectFill' src={null}></Image>
38
+                </view>
39
+                <view className='flex-item'>
40
+                  <view>
41
+                    <text>徐慧慧</text>
42
+                    <text className='iconfont icon-nvxing'></text>
43
+                  </view>
44
+                  <text>136 1394 9434</text>
45
+                </view>
46
+                <text className='iconfont icon-liaotian'></text>
47
+                <text className='iconfont icon-dianhua'></text>
48
+              </view>
49
+            </view>
50
+            <text className='Status'>已到访</text>
51
+            <text className='Tips'>NEW</text>
52
+            <text className='Tips'>NEW</text>
53
+          </view>
54
+        </view>
55
+      </view>
56
+
57
+      <view className='MenuList'>
58
+        <view>
59
+          {
60
+            MenuList.map((item, index) => (
61
+              <text key={`MenuItem-${index}`} className={CurrentMenuId === item.id ? 'active' : ''} onClick={CutMenu(item)}>{item.name}</text>
62
+            ))
63
+          }
64
+        </view>
65
+      </view>
66
+
67
+      <view className='flex-item'>
68
+        <view>
69
+
70
+          {/* 基本信息 */}
71
+          {
72
+            CurrentMenuId === 1 &&
73
+            <UserDetailBasicInfo></UserDetailBasicInfo>
74
+          }
75
+
76
+          {/* 访问记录 */}
77
+          {
78
+            CurrentMenuId === 2 &&
79
+            <UserDetailViewRecord></UserDetailViewRecord>
80
+          }
81
+
82
+          {/* 活动信息 */}
83
+          {
84
+            CurrentMenuId === 3 &&
85
+            <UserDetailActivityInfo></UserDetailActivityInfo>
86
+          }
87
+
88
+          {/* 跟进记录 */}
89
+          {
90
+            CurrentMenuId === 4 &&
91
+            <UserDetailFollowRecord></UserDetailFollowRecord>
92
+          }
93
+        </view>
94
+      </view>
95
+
96
+    </view>
97
+  )
98
+})

+ 173
- 0
src/pages/mine/customerDetail/index.scss Näytä tiedosto

@@ -0,0 +1,173 @@
1
+.Page.customerDetail {
2
+  background: #fff;
3
+  position: relative;
4
+  overflow: hidden;
5
+  width: 100%;
6
+  height: 100vh;
7
+  >.UserInfo {
8
+    padding: 0 30px;
9
+    position: relative;
10
+    overflow: hidden;
11
+    >view {
12
+      width: 100%;
13
+      position: relative;
14
+      overflow: hidden;
15
+      padding-bottom: 33.33%;
16
+      background: #193C83;
17
+      border-radius: 24px;
18
+      >view {
19
+        width: 100%;
20
+        position: absolute;
21
+        left: 0;
22
+        top: 0;
23
+        bottom: 0;
24
+        overflow: hidden;
25
+        >.centerLabel {
26
+          width: 100%;
27
+          z-index: 3;
28
+          >view {
29
+            position: relative;
30
+            overflow: hidden;
31
+            align-items: center;
32
+            >.Icon {
33
+              width: 116px;
34
+              height: 116px;
35
+              position: relative;
36
+              overflow: hidden;
37
+              border-radius: 100%;
38
+              background: #eee;
39
+              margin-left: 46px;
40
+              margin-right: 22px;
41
+              >image {
42
+                width: 100%;
43
+                height: 100%;
44
+              }
45
+            }
46
+            >.flex-item {
47
+              >view {
48
+                font-size: 0;
49
+                white-space: nowrap;
50
+                >text {
51
+                  display: inline-block;
52
+                  vertical-align: middle;
53
+                  font-size: 32px;
54
+                  line-height: 1;
55
+                  color: #fff;
56
+                  &.iconfont {
57
+                    margin-left: 30px;
58
+                  }
59
+                }
60
+              }
61
+              >text {
62
+                display: block;
63
+                font-size: 28px;
64
+                margin-top: 26px;
65
+                color: #fff;
66
+              }
67
+            }
68
+            >text {
69
+              font-size: 40px;
70
+              width: 80px;
71
+              line-height: 80px;
72
+              text-align: center;
73
+              border-radius: 100%;
74
+              color: #FA9730;
75
+              background: rgba(251, 171, 87, 0.12);
76
+              margin-right: 40px;
77
+              &:last-child {
78
+                color: #00BC4B;
79
+                background: rgba(129, 188, 75, 0.12);
80
+              }
81
+            }
82
+          }
83
+        }
84
+        >.Status {
85
+          display: block;
86
+          position: absolute;
87
+          z-index: 2;
88
+          width: 200px;
89
+          background: #FFF602;
90
+          color: #193C83;
91
+          font-size: 22px;
92
+          text-align: center;
93
+          right: -65px;
94
+          top: 20px;
95
+          line-height: 40px;
96
+          transform: rotateZ(45deg);
97
+          -webkit-transform: rotateZ(45deg);
98
+        }
99
+        >.Tips {
100
+          font-size: 100px;
101
+          color: rgba(255, 255, 255, 0.3);
102
+          display: inline-block;
103
+          z-index: 1;
104
+          position: absolute;
105
+          right: 0;
106
+          top: -60px;
107
+          &:last-child {
108
+            right: auto;
109
+            top: auto;
110
+            left: 0;
111
+            bottom: -60px;
112
+          }
113
+        }
114
+      }
115
+    }
116
+  }
117
+  >.MenuList {
118
+    position: relative;
119
+    overflow: hidden;
120
+    z-index: 2;
121
+    padding: 0 50px;
122
+    margin-top: 10px;
123
+    >view {
124
+      position: relative;
125
+      overflow: hidden;
126
+      text-align: center;
127
+      font-size: 0;
128
+      white-space: nowrap;
129
+      border-bottom: 2px solid rgba(0, 0, 0, 0.12);
130
+      >text {
131
+        display: inline-block;
132
+        font-size: 32px;
133
+        color: #666;
134
+        line-height: 40px;
135
+        margin-left: 40px;
136
+        vertical-align: middle;
137
+        padding: 20px 0;
138
+        position: relative;
139
+        overflow: hidden;
140
+        &:first-child {
141
+          margin-left: 0;
142
+        }
143
+        &.active {
144
+          color: #333;
145
+          font-weight: 34px;
146
+          font-weight: bold;
147
+          &::after {
148
+            content: '';
149
+            width: 100%;
150
+            height: 4px;
151
+            background: #1A3B83;
152
+            display: block;
153
+            position: absolute;
154
+            left: 0;
155
+            bottom: 0;
156
+          }
157
+        }
158
+      }
159
+    }
160
+  }
161
+  > .flex-item {
162
+    position: relative;
163
+    overflow: hidden;
164
+    z-index: 1;
165
+    > view {
166
+      width: 100%;
167
+      position: absolute;
168
+      left: 0;
169
+      top: 0;
170
+      bottom: 0;
171
+    }
172
+  }
173
+}

+ 1
- 1
src/pages/mine/tabData.js Näytä tiedosto

@@ -37,7 +37,7 @@ const MineMenuList = {
37 37
       { name: '添加客户', icon: require('../../assets/mine-icon7.png'), router: '/pages/mine/addCustomer/index' },
38 38
       { name: '我的主页', icon: require('../../assets/mine-icon15.png'), router: '' },
39 39
       { name: '我的推广码', icon: require('../../assets/mine-icon14.png'), router: '' },
40
-      { name: '客户分析', icon: require('../../assets/mine-icon5.png'), router: '' },
40
+      { name: '客户分析', icon: require('../../assets/mine-icon5.png'), router: '/pages/mine/customerAnalyse/index' },
41 41
       { name: '盘客工具', icon: require('../../assets/mine-icon6.png'), router: '/pages/mine/statCustomer/index' }
42 42
     ],
43 43
     [

+ 12
- 0
src/routes.js Näytä tiedosto

@@ -236,6 +236,18 @@ const routes = [
236 236
     pkg: 'main',
237 237
     type: 'mine',
238 238
   },
239
+  {
240
+    name: '客户信息',
241
+    page: 'pages/mine/customerDetail/index',
242
+    pkg: 'main',
243
+    type: 'mine',
244
+  },
245
+  {
246
+    name: '客户分析',
247
+    page: 'pages/mine/customerAnalyse/index',
248
+    pkg: 'main',
249
+    type: 'mine',
250
+  },
239 251
   {
240 252
     name: '意见反馈',
241 253
     page: 'pages/mine/feedBack/index',