xcx 4 år sedan
förälder
incheckning
61b8de7f7a

+ 3
- 1
src/app.config.js Visa fil

@@ -1,6 +1,6 @@
1 1
 export default {
2 2
   pages: [
3
-    'pages/WuYe/TianJiaBaoXiu/index', // 物业-添加报修
3
+    'pages/WuYe/BaoXiuFeiYong/index', // 物业-报修费用
4 4
     'pages/ShouYe/index', // tab-首页
5 5
     'pages/ShouYe/HuoDong/index', // 首页-活动
6 6
     'pages/ShouYe/ZiXun/index', // 首页-资讯
@@ -9,6 +9,8 @@ export default {
9 9
     'pages/WuYe/FuWuDetail/index', // 物业-服务详情
10 10
     'pages/WuYe/GongGaoDetail/index', // 物业-公告详情
11 11
     'pages/WuYe/BaoXiuQuYu/index', // 物业-报修区域
12
+    'pages/WuYe/TianJiaBaoXiu/index', // 物业-添加报修
13
+    'pages/WuYe/BaoXiuDetail/index', // 物业-报修详情
12 14
 
13 15
     'pages/HuoDong/index', // tab-活动
14 16
 

+ 8
- 2
src/assets/css/iconfont.css
Filskillnaden har hållits tillbaka eftersom den är för stor
Visa fil


+ 14
- 6
src/assets/css/iconfont.less
Filskillnaden har hållits tillbaka eftersom den är för stor
Visa fil


+ 31
- 44
src/components/WuYeBaoXiu/index.jsx Visa fil

@@ -1,56 +1,43 @@
1
-import React, { Component } from 'react'
1
+import React, { useState } from 'react'
2
+import Taro from '@tarojs/taro'
2 3
 import WuYeBaoXiuItem from '../WuYeBaoXiuItem/index'
3
-import '../../assets/css/reset.less'
4
-import '../../assets/css/iconfont.less'
4
+import '@/assets/css/reset.less'
5
+import '@/assets/css/iconfont.less'
5 6
 import './index.less'
6 7
 
7
-export default class WuYeBaoXiu extends Component {
8
+export default function WuYeBaoXiu (props) {
8 9
 
9
-  state = {
10
-    PageList: ['', '', '', '', '', '', ''],
11
-    TestImg: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1606120989360&di=8610f1678b51e26de6d4c6af39d1cf63&imgtype=0&src=http%3A%2F%2Fattachments.gfan.com%2Fforum%2F201503%2F19%2F211608ztcq7higicydxhsy.jpg'
12
-  }
10
+  const [PageList, setPageList] = useState(['', '', '', '', '', '', ''])
13 11
 
14
-  componentWillMount () { }
12
+  const [TestImg, setTestImg] = useState('https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1606120989360&di=8610f1678b51e26de6d4c6af39d1cf63&imgtype=0&src=http%3A%2F%2Fattachments.gfan.com%2Fforum%2F201503%2F19%2F211608ztcq7higicydxhsy.jpg')
15 13
 
16
-  componentDidMount () { }
14
+  return (
15
+    <view className='WuYeBaoXiu'>
17 16
 
18
-  componentWillUnmount () { }
19
-
20
-  componentDidShow () { }
21
-
22
-  componentDidHide () { }
23
-
24
-  render () {
25
-    const { TestImg, PageList } = this.state
26
-    return (
27
-      <view className='WuYeBaoXiu'>
28
-
29
-        {/* 大图 */}
30
-        <view className='BigImg'>
31
-          <image mode='aspectFill' src={TestImg} className='centerLabel'></image>
32
-        </view>
33
-
34
-        {/* 我要报修 */}
35
-        <view className='WoYaoBaoXiu'>
36
-          <view>
37
-            <text className='iconfont iconjia'></text>
38
-            <text>我要报修</text>
39
-          </view>
40
-        </view>
17
+      {/* 大图 */}
18
+      <view className='BigImg'>
19
+        <image mode='aspectFill' src={TestImg} className='centerLabel'></image>
20
+      </view>
41 21
 
42
-        {/* 报修列表 */}
43
-        <view className='List'>
44
-          {
45
-            PageList.map((item, index) => (
46
-              <view key={`WuYeBaoXiuItem-${index}`}>
47
-                <WuYeBaoXiuItem Data={item}></WuYeBaoXiuItem>
48
-              </view>
49
-            ))
50
-          }
22
+      {/* 我要报修 */}
23
+      <view className='WoYaoBaoXiu'>
24
+        <view onClick={() => { Taro.navigateTo({ url: `/pages/WuYe/BaoXiuQuYu/index` }) }}>
25
+          <text className='iconfont iconjia'></text>
26
+          <text>我要报修</text>
51 27
         </view>
28
+      </view>
52 29
 
30
+      {/* 报修列表 */}
31
+      <view className='List'>
32
+        {
33
+          PageList.map((item, index) => (
34
+            <view key={`WuYeBaoXiuItem-${index}`}>
35
+              <WuYeBaoXiuItem Data={{ ...item, id: index }}></WuYeBaoXiuItem>
36
+            </view>
37
+          ))
38
+        }
53 39
       </view>
54
-    )
55
-  }
40
+
41
+    </view>
42
+  )
56 43
 }

+ 28
- 38
src/components/WuYeBaoXiuItem/index.jsx Visa fil

@@ -1,48 +1,38 @@
1
-import React, { Component } from 'react'
2
-import '../../assets/css/reset.less'
3
-import '../../assets/css/iconfont.less'
1
+import React, { useState } from 'react'
2
+import Taro from '@tarojs/taro'
3
+import '@/assets/css/reset.less'
4
+import '@/assets/css/iconfont.less'
4 5
 import './index.less'
5 6
 
6
-export default class WuYeBaoXiuItem extends Component {
7
+export default function WuYeBaoXiuItem (props) {
7 8
 
8
-  state = {
9
+  const { Data } = props
9 10
 
11
+  const ItemClick = () => {
12
+    Taro.navigateTo({ url: `/pages/WuYe/BaoXiuDetail/index?id=${Data.id}` })
10 13
   }
11 14
 
12
-  componentWillMount () { }
13
-
14
-  componentDidMount () { }
15
-
16
-  componentWillUnmount () { }
17
-
18
-  componentDidShow () { }
19
-
20
-  componentDidHide () { }
21
-
22
-  render () {
23
-    const { } = this.state
24
-    return (
25
-      <view className='WuYeBaoXiuItem'>
26
-        <view className='Title flex-h'>
27
-          <text className='iconfont icongonggongquyu'></text>
28
-          <text className='flex-item'>公共区域问题</text>
29
-          <text className='Time'>2020/06/08 13:00</text>
30
-        </view>
31
-        <view className='Name flex-h'>
32
-          <text className='flex-item'>1栋3单元2楼-3楼走廊声控灯出现故障</text>
33
-          <text className='iconfont iconbianji'></text>
34
-        </view>
35
-        <view className='Detail flex-h'>
36
-          <view className='Line'><view></view></view>
37
-          <view className='flex-item'>
38
-            <view className='flex-h'>
39
-              <text className='flex-item'>正在处理</text>
40
-              <text className='Time'>2020/06/08 12:58</text>
41
-            </view>
42
-            <view className='Desc'>您的报修已经分配给物业处理人员<text className='Name'>郭培军</text>处理,联系方式<text className='Phone'>18266666666</text></view>
15
+  return (
16
+    <view className='WuYeBaoXiuItem' onClick={ItemClick}>
17
+      <view className='Title flex-h'>
18
+        <text className='iconfont icongonggongquyu'></text>
19
+        <text className='flex-item'>公共区域问题</text>
20
+        <text className='Time'>2020/06/08 13:00</text>
21
+      </view>
22
+      <view className='Name flex-h'>
23
+        <text className='flex-item'>1栋3单元2楼-3楼走廊声控灯出现故障</text>
24
+        <text className='iconfont iconbianji'></text>
25
+      </view>
26
+      <view className='Detail flex-h'>
27
+        <view className='Line'><view></view></view>
28
+        <view className='flex-item'>
29
+          <view className='flex-h'>
30
+            <text className='flex-item'>正在处理</text>
31
+            <text className='Time'>2020/06/08 12:58</text>
43 32
           </view>
33
+          <view className='Desc'>您的报修已经分配给物业处理人员<text className='Name'>郭培军</text>处理,联系方式<text className='Phone'>18266666666</text></view>
44 34
         </view>
45 35
       </view>
46
-    )
47
-  }
36
+    </view>
37
+  )
48 38
 }

+ 66
- 82
src/pages/WoDe/index.jsx Visa fil

@@ -1,101 +1,85 @@
1
-import React, { Component } from 'react'
1
+import React, { useState } from 'react'
2 2
 import NavHeader from '../../components/NavHeader/index'
3 3
 import '../../assets/css/reset.less'
4 4
 import '../../assets/css/iconfont.less'
5 5
 import './index.less'
6 6
 
7
-export default class WoDe extends Component {
7
+export default function WoDe (props) {
8 8
 
9
-  state = {
10
-    IsPull: false,
11
-    UserTab: [
12
-      { icon: 'iconrenzheng1', name: '业主认证', id: 1 },
13
-      { icon: 'iconjifenguize', name: '积分明细', id: 2 },
14
-      { icon: 'iconjiaofei', name: '物业缴费', id: 3 },
15
-      { icon: 'iconfuwu1', name: '物业服务', id: 4 }
16
-    ],
17
-    MoreUserTab: [
18
-      { icon: 'iconerweima', name: '推荐二维码', id: 5 },
19
-      { icon: 'iconfenxiang', name: '推荐分享', id: 6 },
20
-      { icon: 'iconhuodong', name: '参与活动', id: 7 }
21
-    ]
22
-  }
23
-
24
-  componentWillMount () { }
25
-
26
-  componentDidMount () { }
27
-
28
-  componentWillUnmount () { }
9
+  const [IsPull, setIsPull] = useState(false)
29 10
 
30
-  componentDidShow () { }
11
+  const [UserTab, setUserTab] = useState([
12
+    { icon: 'iconrenzheng1', name: '业主认证', id: 1 },
13
+    { icon: 'iconjifenguize', name: '积分明细', id: 2 },
14
+    { icon: 'iconjiaofei', name: '物业缴费', id: 3 },
15
+    { icon: 'iconfuwu1', name: '物业服务', id: 4 }
16
+  ])
31 17
 
32
-  componentDidHide () { }
18
+  const [MoreUserTab, setMoreUserTab] = useState([
19
+    { icon: 'iconerweima', name: '推荐二维码', id: 5 },
20
+    { icon: 'iconfenxiang', name: '推荐分享', id: 6 },
21
+    { icon: 'iconhuodong', name: '参与活动', id: 7 }
22
+  ])
33 23
 
34
-  OnRefresh () { // 页面下拉刷新
35
-    this.setState({
36
-      IsPull: true
37
-    }, () => {
38
-      window.setTimeout(() => {
39
-        this.setState({
40
-          IsPull: false
41
-        })
42
-      }, 1000)
43
-    })
24
+  const OnRefresh = () => { // 页面下拉刷新
25
+    setIsPull(true)
26
+    
27
+    const t = setTimeout(() => {
28
+      setIsPull(false)
29
+      clearTimeout(t)
30
+    }, 1000)
44 31
   }
45 32
 
46
-  render () {
47
-    const { IsPull, UserTab, MoreUserTab } = this.state
48
-    return (
49
-      <view className='WoDe'>
50
-        <NavHeader BgColor='none' Title='我的' IsFixed={true}></NavHeader>
51
-        <scroll-view scroll-y='true' style='height: 100%;' refresher-enabled={true} onrefresherrefresh={this.OnRefresh.bind(this)} refresher-triggered={IsPull} refresher-background='#F35844'>
52
-          <view className='WoDeContent'>
33
+  return (
34
+    <view className='WoDe'>
35
+      <NavHeader BgColor='none' Title='我的' IsFixed={true}></NavHeader>
36
+      <scroll-view scroll-y='true' style='height: 100%;' refresher-enabled={true} onrefresherrefresh={OnRefresh} refresher-triggered={IsPull} refresher-background='#F35844'>
37
+        <view className='WoDeContent'>
53 38
 
54
-            {/* 顶部背景图 */}
55
-            <view className='TopBg'>
56
-              <view className='ColorBg'></view>
57
-              <view className='UserInfo flex-h'>
58
-                <view className='Icon'>
59
-                  <image mode='aspectFill' src={null} class='centerLabel'></image>
60
-                </view>
61
-                <view className='flex-item'>
62
-                  <text>徐慧慧</text>
63
-                  <text>13613949434</text>
64
-                </view>
65
-                <text>签到</text>
39
+          {/* 顶部背景图 */}
40
+          <view className='TopBg'>
41
+            <view className='ColorBg'></view>
42
+            <view className='UserInfo flex-h'>
43
+              <view className='Icon'>
44
+                <image mode='aspectFill' src={null} class='centerLabel'></image>
45
+              </view>
46
+              <view className='flex-item'>
47
+                <text>徐慧慧</text>
48
+                <text>13613949434</text>
66 49
               </view>
50
+              <text>签到</text>
67 51
             </view>
52
+          </view>
68 53
 
69
-            {/* 用户选项 */}
70
-            <view className='UserTab'>
71
-              {
72
-                UserTab.map((item, index) => (
73
-                  <view key={`UserTab-${index}`} className='flex-h'>
74
-                    <text className={`iconfont ${item.icon}`}></text>
75
-                    <view className='flex-h flex-item'>
76
-                      <text className='flex-item'>{item.name}</text>
77
-                      <text className='iconfont iconjiantouright'></text>
78
-                    </view>
54
+          {/* 用户选项 */}
55
+          <view className='UserTab'>
56
+            {
57
+              UserTab.map((item, index) => (
58
+                <view key={`UserTab-${index}`} className='flex-h'>
59
+                  <text className={`iconfont ${item.icon}`}></text>
60
+                  <view className='flex-h flex-item'>
61
+                    <text className='flex-item'>{item.name}</text>
62
+                    <text className='iconfont iconjiantouright'></text>
79 63
                   </view>
80
-                ))
81
-              }
82
-              <view className='Line'></view>
83
-              {
84
-                MoreUserTab.map((item, index) => (
85
-                  <view key={`UserTab-${index}`} className='flex-h'>
86
-                    <text className={`iconfont ${item.icon}`}></text>
87
-                    <view className='flex-h flex-item'>
88
-                      <text className='flex-item'>{item.name}</text>
89
-                      <text className='iconfont iconjiantouright'></text>
90
-                    </view>
64
+                </view>
65
+              ))
66
+            }
67
+            <view className='Line'></view>
68
+            {
69
+              MoreUserTab.map((item, index) => (
70
+                <view key={`UserTab-${index}`} className='flex-h'>
71
+                  <text className={`iconfont ${item.icon}`}></text>
72
+                  <view className='flex-h flex-item'>
73
+                    <text className='flex-item'>{item.name}</text>
74
+                    <text className='iconfont iconjiantouright'></text>
91 75
                   </view>
92
-                ))
93
-              }
94
-            </view>
95
-
76
+                </view>
77
+              ))
78
+            }
96 79
           </view>
97
-        </scroll-view>
98
-      </view>
99
-    )
100
-  }
80
+
81
+        </view>
82
+      </scroll-view>
83
+    </view>
84
+  )
101 85
 }

+ 3
- 0
src/pages/WuYe/BaoXiuDetail/index.config.js Visa fil

@@ -0,0 +1,3 @@
1
+export default {
2
+  navigationBarTitleText: '报修详情'
3
+}

+ 173
- 0
src/pages/WuYe/BaoXiuDetail/index.css Visa fil

@@ -0,0 +1,173 @@
1
+.BaoXiuDetail {
2
+  width: 100%;
3
+  min-height: 100%;
4
+  position: relative;
5
+  background: #f8f8f8;
6
+}
7
+.BaoXiuDetail > .TopLine {
8
+  width: 100%;
9
+  height: 20px;
10
+  background-color: #f8f8f8;
11
+  background: #f8f8f8;
12
+}
13
+.BaoXiuDetail > .TopInfo {
14
+  padding: 0 30px;
15
+  background: #fff;
16
+  position: relative;
17
+  overflow: hidden;
18
+}
19
+.BaoXiuDetail > .TopInfo > .flex-h {
20
+  align-items: center;
21
+  border-top: 2px solid rgba(0, 0, 0, 0.08);
22
+}
23
+.BaoXiuDetail > .TopInfo > .flex-h:first-child {
24
+  border-top: none;
25
+}
26
+.BaoXiuDetail > .TopInfo > .flex-h:first-child > text:first-child {
27
+  color: #333;
28
+  font-weight: bold;
29
+  font-size: 32px;
30
+}
31
+.BaoXiuDetail > .TopInfo > .flex-h > text {
32
+  font-size: 28px;
33
+  color: #999;
34
+  line-height: 98px;
35
+  white-space: nowrap;
36
+  overflow: hidden;
37
+  text-overflow: ellipsis;
38
+}
39
+.BaoXiuDetail > .TopInfo > .flex-h > text:first-child {
40
+  margin-right: 20px;
41
+}
42
+.BaoXiuDetail > .Detail {
43
+  padding: 0 30px;
44
+  background: #fff;
45
+  position: relative;
46
+  overflow: hidden;
47
+  margin-top: 20px;
48
+  padding-bottom: 40px;
49
+}
50
+.BaoXiuDetail > .Detail > text {
51
+  display: block;
52
+  width: 100%;
53
+  font-size: 30px;
54
+  color: #333;
55
+  font-weight: bold;
56
+  line-height: 98px;
57
+  border-bottom: 2px solid rgba(0, 0, 0, 0.08);
58
+}
59
+.BaoXiuDetail > .Detail > .flex-h {
60
+  margin-top: 40px;
61
+  margin-bottom: 40px;
62
+}
63
+.BaoXiuDetail > .Detail > .flex-h > .Line {
64
+  width: 50px;
65
+  position: relative;
66
+  overflow: visible;
67
+  border-left: 2px dashed #F35844;
68
+}
69
+.BaoXiuDetail > .Detail > .flex-h > .Line > view {
70
+  width: 14px;
71
+  height: 14px;
72
+  background: #F35844;
73
+  border-radius: 100%;
74
+  position: absolute;
75
+  left: -8px;
76
+  top: 30px;
77
+}
78
+.BaoXiuDetail > .Detail > .flex-h > .flex-item {
79
+  position: relative;
80
+  overflow: visible;
81
+  background: rgba(243, 88, 68, 0.08);
82
+  padding: 20px;
83
+}
84
+.BaoXiuDetail > .Detail > .flex-h > .flex-item::after {
85
+  content: '';
86
+  width: 0;
87
+  height: 0;
88
+  display: block;
89
+  position: absolute;
90
+  left: -40px;
91
+  top: 16px;
92
+  border-color: transparent rgba(243, 88, 68, 0.08) transparent transparent;
93
+  border-style: solid dashed solid solid;
94
+  border-width: 20px;
95
+}
96
+.BaoXiuDetail > .Detail > .flex-h > .flex-item > view {
97
+  width: 100%;
98
+  position: relative;
99
+  overflow: hidden;
100
+}
101
+.BaoXiuDetail > .Detail > .flex-h > .flex-item > view > .StepList {
102
+  position: relative;
103
+  overflow: hidden;
104
+  margin-bottom: 40px;
105
+}
106
+.BaoXiuDetail > .Detail > .flex-h > .flex-item > view > .StepList > .Title {
107
+  align-items: center;
108
+}
109
+.BaoXiuDetail > .Detail > .flex-h > .flex-item > view > .StepList > .Title > text {
110
+  font-size: 24px;
111
+  color: #999;
112
+  line-height: 40px;
113
+  overflow: hidden;
114
+  white-space: nowrap;
115
+  text-overflow: ellipsis;
116
+}
117
+.BaoXiuDetail > .Detail > .flex-h > .flex-item > view > .StepList > .Title > text.Red {
118
+  color: #F35844;
119
+}
120
+.BaoXiuDetail > .Detail > .flex-h > .flex-item > view > .StepList > .Title > text.Green {
121
+  color: #14DC05;
122
+}
123
+.BaoXiuDetail > .Detail > .flex-h > .flex-item > view > .StepList > .Title > text.Blue {
124
+  color: #77A5F0;
125
+}
126
+.BaoXiuDetail > .Detail > .flex-h > .flex-item > view > .StepList > .Text {
127
+  font-size: 24px;
128
+  color: #333;
129
+  line-height: 40px;
130
+  margin-top: 10px;
131
+}
132
+.BaoXiuDetail > .Detail > .flex-h > .flex-item > view > .StepList > .Text > text.Blue {
133
+  color: #77A5F0;
134
+}
135
+.BaoXiuDetail > .Detail > .flex-h > .flex-item > view > .StepList > .Text > text.Red {
136
+  color: #F35844;
137
+  font-size: 34px;
138
+}
139
+.BaoXiuDetail > .Detail > .flex-h > .flex-item > view > .StepList > .ImgList {
140
+  font-size: 0;
141
+}
142
+.BaoXiuDetail > .Detail > .flex-h > .flex-item > view > .StepList > .ImgList > view {
143
+  display: inline-block;
144
+  vertical-align: middle;
145
+  width: 136px;
146
+  height: 136px;
147
+  position: relative;
148
+  overflow: hidden;
149
+  margin-top: 12px;
150
+  margin-right: 12px;
151
+  background: #f8f8f8;
152
+}
153
+.BaoXiuDetail > .Detail > .BottomBtn {
154
+  position: relative;
155
+  overflow: hidden;
156
+  margin-top: 30px;
157
+}
158
+.BaoXiuDetail > .Detail > .BottomBtn.active > text {
159
+  color: #fff;
160
+  background: #F35844;
161
+}
162
+.BaoXiuDetail > .Detail > .BottomBtn > text {
163
+  width: 100%;
164
+  display: block;
165
+  text-align: center;
166
+  font-size: 34px;
167
+  line-height: 98px;
168
+  border-radius: 98px;
169
+  color: #F35844;
170
+  background: #fff;
171
+  border: 2px solid #F35844;
172
+  box-sizing: border-box;
173
+}

+ 78
- 0
src/pages/WuYe/BaoXiuDetail/index.jsx Visa fil

@@ -0,0 +1,78 @@
1
+import React, { useState } from 'react'
2
+import Taro, { Current } from '@tarojs/taro'
3
+import '@/assets/css/reset.less'
4
+import '@/assets/css/iconfont.less'
5
+import './index.less'
6
+
7
+export default function BaoXiuDetail () {
8
+
9
+  const CurrnetBaoXiuId = Current.router.params.id
10
+
11
+  return (
12
+    <view className='BaoXiuDetail'>
13
+
14
+      <view className='TopLine'></view>
15
+
16
+      {/* 概况 */}
17
+      <view className='TopInfo'>
18
+        <view className='flex-h'>
19
+          <text className='flex-item'>1栋3单元2楼-3楼走廊声控灯已坏</text>
20
+          <text className='iconfont iconjiantouright'></text>
21
+        </view>
22
+        <view className='flex-h'>
23
+          <text className='flex-item'>报修单号</text>
24
+          <text>201810120010</text>
25
+        </view>
26
+        <view className='flex-h'>
27
+          <text className='flex-item'>报修时间</text>
28
+          <text>2018-10-12  18:00</text>
29
+        </view>
30
+      </view>
31
+
32
+      {/* 详情 */}
33
+      <view className='Detail'>
34
+        <text>处理进度</text>
35
+        <view className='flex-h'>
36
+          <view className='Line'><view></view></view>
37
+          <view className='flex-item'>
38
+            <view>
39
+              <view className='StepList'>
40
+                <view className='Title flex-h'>
41
+                  <text className='flex-item Red'>待分配</text>
42
+                  <text>12:58</text>
43
+                </view>
44
+                <view className='Text'>您的报修正在分配物业处理人员,若长时间无人处理,请联系物业。<text className='Blue'>物业电话薄</text><text className='Blue iconfont iconjiantouright'></text></view>
45
+                <view className='ImgList'>
46
+                  <view></view>
47
+                  <view></view>
48
+                  <view></view>
49
+                  <view></view>
50
+                  <view></view>
51
+                  <view></view>
52
+                </view>
53
+              </view>
54
+              <view className='StepList'>
55
+                <view className='Title flex-h'>
56
+                  <text className='flex-item'>待分配</text>
57
+                  <text>12:58</text>
58
+                </view>
59
+                <view className='Text'>经评估,您本次报修产生费用<text className='Red'>150</text>元</view>
60
+              </view>
61
+            </view>
62
+          </view>
63
+        </view>
64
+
65
+        {/* 更多操作 */}
66
+        <view className='BottomBtn active'>
67
+          <text onClick={() => { Taro.navigateTo({ url: `/pages/WuYe/BaoXiuFeiYong/index?id=${CurrnetBaoXiuId}` }) }}>费用详情</text>
68
+        </view>
69
+
70
+        {/* 更多操作 */}
71
+        <view className='BottomBtn'>
72
+          <text>与物业沟通</text>
73
+        </view>
74
+      </view>
75
+
76
+    </view>
77
+  )
78
+}

+ 209
- 0
src/pages/WuYe/BaoXiuDetail/index.less Visa fil

@@ -0,0 +1,209 @@
1
+.BaoXiuDetail {
2
+  width: 100%;
3
+  min-height: 100%;
4
+  position: relative;
5
+  background: #f8f8f8;
6
+
7
+  >.TopLine {
8
+    width: 100%;
9
+    height: 20px;
10
+    background-color: #f8f8f8;
11
+    background: #f8f8f8;
12
+  }
13
+
14
+  >.TopInfo {
15
+    padding: 0 30px;
16
+    background: #fff;
17
+    position: relative;
18
+    overflow: hidden;
19
+
20
+    >.flex-h {
21
+      align-items: center;
22
+      border-top: 2px solid rgba(0, 0, 0, 0.08);
23
+
24
+      &:first-child {
25
+        border-top: none;
26
+
27
+        >text {
28
+          &:first-child {
29
+            color: #333;
30
+            font-weight: bold;
31
+            font-size: 32px;
32
+          }
33
+        }
34
+      }
35
+
36
+      >text {
37
+        font-size: 28px;
38
+        color: #999;
39
+        line-height: 98px;
40
+        white-space: nowrap;
41
+        overflow: hidden;
42
+        text-overflow: ellipsis;
43
+
44
+        &:first-child {
45
+          margin-right: 20px;
46
+        }
47
+      }
48
+    }
49
+  }
50
+
51
+  >.Detail {
52
+    padding: 0 30px;
53
+    background: #fff;
54
+    position: relative;
55
+    overflow: hidden;
56
+    margin-top: 20px;
57
+    padding-bottom: 40px;
58
+
59
+    >text {
60
+      display: block;
61
+      width: 100%;
62
+      font-size: 30px;
63
+      color: #333;
64
+      font-weight: bold;
65
+      line-height: 98px;
66
+      border-bottom: 2px solid rgba(0, 0, 0, 0.08);
67
+    }
68
+
69
+    >.flex-h {
70
+      margin-top: 40px;
71
+      margin-bottom: 40px;
72
+
73
+      >.Line {
74
+        width: 50px;
75
+        position: relative;
76
+        overflow: visible;
77
+        border-left: 2px dashed #F35844;
78
+
79
+        >view {
80
+          width: 14px;
81
+          height: 14px;
82
+          background: #F35844;
83
+          border-radius: 100%;
84
+          position: absolute;
85
+          left: -8px;
86
+          top: 30px;
87
+        }
88
+      }
89
+
90
+      >.flex-item {
91
+        position: relative;
92
+        overflow: visible;
93
+        background: rgba(243, 88, 68, 0.08);
94
+        padding: 20px;
95
+
96
+        &::after {
97
+          content: '';
98
+          width: 0;
99
+          height: 0;
100
+          display: block;
101
+          position: absolute;
102
+          left: -40px;
103
+          top: 16px;
104
+          border-color: transparent rgba(243, 88, 68, 0.08) transparent transparent;
105
+          border-style: solid dashed solid solid;
106
+          border-width: 20px;
107
+        }
108
+
109
+        >view {
110
+          width: 100%;
111
+          position: relative;
112
+          overflow: hidden;
113
+
114
+          >.StepList {
115
+            position: relative;
116
+            overflow: hidden;
117
+            margin-bottom: 40px;
118
+
119
+            >.Title {
120
+              align-items: center;
121
+
122
+              >text {
123
+                font-size: 24px;
124
+                color: #999;
125
+                line-height: 40px;
126
+                overflow: hidden;
127
+                white-space: nowrap;
128
+                text-overflow: ellipsis;
129
+
130
+                &.Red {
131
+                  color: #F35844;
132
+                }
133
+
134
+                &.Green {
135
+                  color: #14DC05;
136
+                }
137
+
138
+                &.Blue {
139
+                  color: #77A5F0;
140
+                }
141
+              }
142
+            }
143
+
144
+            >.Text {
145
+              font-size: 24px;
146
+              color: #333;
147
+              line-height: 40px;
148
+              margin-top: 10px;
149
+
150
+              >text {
151
+                &.Blue {
152
+                  color: #77A5F0;
153
+                }
154
+
155
+                &.Red {
156
+                  color: #F35844;
157
+                  font-size: 34px;
158
+                }
159
+              }
160
+            }
161
+
162
+            >.ImgList {
163
+              font-size: 0;
164
+
165
+              >view {
166
+                display: inline-block;
167
+                vertical-align: middle;
168
+                width: 136px;
169
+                height: 136px;
170
+                position: relative;
171
+                overflow: hidden;
172
+                margin-top: 12px;
173
+                margin-right: 12px;
174
+                background: #f8f8f8;
175
+              }
176
+            }
177
+          }
178
+        }
179
+
180
+      }
181
+    }
182
+
183
+    >.BottomBtn {
184
+      position: relative;
185
+      overflow: hidden;
186
+      margin-top: 30px;
187
+
188
+      &.active {
189
+        >text {
190
+          color: #fff;
191
+          background: #F35844;
192
+        }
193
+      }
194
+
195
+      >text {
196
+        width: 100%;
197
+        display: block;
198
+        text-align: center;
199
+        font-size: 34px;
200
+        line-height: 98px;
201
+        border-radius: 98px;
202
+        color: #F35844;
203
+        background: #fff;
204
+        border: 2px solid #F35844;
205
+        box-sizing: border-box;
206
+      }
207
+    }
208
+  }
209
+}

+ 3
- 0
src/pages/WuYe/BaoXiuFeiYong/index.config.js Visa fil

@@ -0,0 +1,3 @@
1
+export default {
2
+  navigationBarTitleText: '报修费用'
3
+}

+ 73
- 0
src/pages/WuYe/BaoXiuFeiYong/index.css Visa fil

@@ -0,0 +1,73 @@
1
+.BaoXiuFeiYong {
2
+  width: 100%;
3
+  min-height: 100%;
4
+  position: relative;
5
+  background: #f8f8f8;
6
+}
7
+.BaoXiuFeiYong > .Info {
8
+  width: 100%;
9
+  min-height: 100vh;
10
+  position: relative;
11
+  overflow: hidden;
12
+  z-index: 1;
13
+}
14
+.BaoXiuFeiYong > .Info > .InfoBottom {
15
+  height: 264px;
16
+  position: relative;
17
+}
18
+.BaoXiuFeiYong > .Info > view {
19
+  position: relative;
20
+  overflow: hidden;
21
+  padding: 0 30px;
22
+  background: #fff;
23
+}
24
+.BaoXiuFeiYong > .Info > view > text {
25
+  display: block;
26
+  width: 100%;
27
+  border-bottom: 2px solid rgba(0, 0, 0, 0.08);
28
+  font-size: 30px;
29
+  font-weight: bold;
30
+  line-height: 40px;
31
+  padding: 30px 0;
32
+}
33
+.BaoXiuFeiYong > .Info > view > view {
34
+  align-items: center;
35
+  border-bottom: 2px solid rgba(0, 0, 0, 0.08);
36
+}
37
+.BaoXiuFeiYong > .Info > view > view:last-child {
38
+  border-bottom: none;
39
+}
40
+.BaoXiuFeiYong > .Info > view > view > text {
41
+  font-size: 24px;
42
+  color: #333;
43
+  line-height: 98px;
44
+}
45
+.BaoXiuFeiYong > .Info > view > view > text.Red {
46
+  color: #F35844;
47
+  font-size: 34px;
48
+  font-weight: bold;
49
+}
50
+.BaoXiuFeiYong > .BottomBtn {
51
+  position: relative;
52
+  overflow: hidden;
53
+  padding: 0 30px;
54
+  margin-top: -264px;
55
+  z-index: 2;
56
+}
57
+.BaoXiuFeiYong > .BottomBtn > text {
58
+  width: 100%;
59
+  display: block;
60
+  text-align: center;
61
+  font-size: 34px;
62
+  line-height: 98px;
63
+  border-radius: 98px;
64
+  color: #F35844;
65
+  background: #fff;
66
+  border: 2px solid #F35844;
67
+  box-sizing: border-box;
68
+  margin-bottom: 30px;
69
+}
70
+.BaoXiuFeiYong > .BottomBtn > text.active {
71
+  color: #fff;
72
+  background: #F35844;
73
+}

+ 49
- 0
src/pages/WuYe/BaoXiuFeiYong/index.jsx Visa fil

@@ -0,0 +1,49 @@
1
+import React, { useState } from 'react'
2
+import Taro, { Current } from '@tarojs/taro'
3
+import '@/assets/css/reset.less'
4
+import '@/assets/css/iconfont.less'
5
+import './index.less'
6
+
7
+export default function BaoXiuFeiYong () {
8
+
9
+  const CurrnetBaoXiuId = Current.router.params.id
10
+
11
+  return (
12
+    <view className='BaoXiuFeiYong'>
13
+      <view className='Info'>
14
+        <view>
15
+          <text>1栋3单元2楼-3楼走廊声控灯出现故障</text>
16
+          <view className='flex-h'>
17
+            <text className='flex-item'>报修类型</text>
18
+            <text>公共区域问题</text>
19
+          </view>
20
+          <view className='flex-h'>
21
+            <text className='flex-item'>报修单号</text>
22
+            <text>201810120020</text>
23
+          </view>
24
+          <view className='flex-h'>
25
+            <text className='flex-item'>报修时间</text>
26
+            <text>2018-10-12 18:00</text>
27
+          </view>
28
+          <view className='flex-h'>
29
+            <text className='flex-item'>报修进度</text>
30
+            <text>已修缮</text>
31
+          </view>
32
+          <view className='flex-h'>
33
+            <text className='flex-item'>处理人</text>
34
+            <text>郭培军</text>
35
+          </view>
36
+          <view className='flex-h'>
37
+            <text className='flex-item'>报修费用</text>
38
+            <text className='Red'>¥150</text>
39
+          </view>
40
+        </view>
41
+        <view className='InfoBottom'></view>
42
+      </view>
43
+      <view className='BottomBtn'>
44
+        <text className='active'>我要缴费</text>
45
+        <text>线下缴费</text>
46
+      </view>
47
+    </view>
48
+  )
49
+}

+ 84
- 0
src/pages/WuYe/BaoXiuFeiYong/index.less Visa fil

@@ -0,0 +1,84 @@
1
+.BaoXiuFeiYong {
2
+  width: 100%;
3
+  min-height: 100%;
4
+  position: relative;
5
+  background: #f8f8f8;
6
+
7
+  >.Info {
8
+    width: 100%;
9
+    min-height: 100vh;
10
+    position: relative;
11
+    overflow: hidden;
12
+    z-index: 1;
13
+
14
+    >.InfoBottom {
15
+      height: 264px;
16
+      position: relative;
17
+    }
18
+
19
+    >view {
20
+      position: relative;
21
+      overflow: hidden;
22
+      padding: 0 30px;
23
+      background: #fff;
24
+
25
+      >text {
26
+        display: block;
27
+        width: 100%;
28
+        border-bottom: 2px solid rgba(0, 0, 0, 0.08);
29
+        font-size: 30px;
30
+        font-weight: bold;
31
+        line-height: 40px;
32
+        padding: 30px 0;
33
+      }
34
+
35
+      >view {
36
+        align-items: center;
37
+        border-bottom: 2px solid rgba(0, 0, 0, 0.08);
38
+
39
+        &:last-child {
40
+          border-bottom: none;
41
+        }
42
+
43
+        >text {
44
+          font-size: 24px;
45
+          color: #333;
46
+          line-height: 98px;
47
+
48
+          &.Red {
49
+            color: #F35844;
50
+            font-size: 34px;
51
+            font-weight: bold;
52
+          }
53
+        }
54
+      }
55
+    }
56
+  }
57
+
58
+  >.BottomBtn {
59
+    position: relative;
60
+    overflow: hidden;
61
+    padding: 0 30px;
62
+    margin-top: -264px;
63
+    z-index: 2;
64
+
65
+    >text {
66
+      width: 100%;
67
+      display: block;
68
+      text-align: center;
69
+      font-size: 34px;
70
+      line-height: 98px;
71
+      border-radius: 98px;
72
+      color: #F35844;
73
+      background: #fff;
74
+      border: 2px solid #F35844;
75
+      box-sizing: border-box;
76
+      margin-bottom: 30px;
77
+
78
+      &.active {
79
+        color: #fff;
80
+        background: #F35844;
81
+      }
82
+    }
83
+  }
84
+}

+ 95
- 0
src/pages/WuYe/TianJiaBaoXiu/index.css Visa fil

@@ -4,4 +4,99 @@
4 4
   background: #f8f8f8;
5 5
   overflow: hidden;
6 6
   min-height: 100%;
7
+  padding-bottom: 160px;
8
+}
9
+.WuYeTianJiaBaoXiu > .Form {
10
+  position: relative;
11
+  overflow: hidden;
12
+  padding: 0 30px;
13
+  background-color: #fff;
14
+  padding-bottom: 30px;
15
+}
16
+.WuYeTianJiaBaoXiu > .Form > input {
17
+  width: 100%;
18
+  display: block;
19
+  font-size: 32px;
20
+  color: #333;
21
+  line-height: 98px;
22
+  height: 98px;
23
+  border-bottom: 2px solid rgba(0, 0, 0, 0.08);
24
+}
25
+.WuYeTianJiaBaoXiu > .Form > textarea {
26
+  display: block;
27
+  font-size: 28px;
28
+  color: #999;
29
+  line-height: 40px;
30
+  margin-top: 20px;
31
+  width: 100%;
32
+}
33
+.WuYeTianJiaBaoXiu > .Photo {
34
+  padding: 30px;
35
+  padding-bottom: 10px;
36
+  position: relative;
37
+  overflow: hidden;
38
+  margin-top: 30px;
39
+  background-color: #fff;
40
+  font-size: 0;
41
+}
42
+.WuYeTianJiaBaoXiu > .Photo > view {
43
+  display: inline-block;
44
+  vertical-align: middle;
45
+  width: 150px;
46
+  height: 150px;
47
+  position: relative;
48
+  overflow: hidden;
49
+  margin-right: 20px;
50
+  margin-bottom: 20px;
51
+}
52
+.WuYeTianJiaBaoXiu > .Photo > view.Add > view {
53
+  width: 100%;
54
+}
55
+.WuYeTianJiaBaoXiu > .Photo > view.Add > view > text {
56
+  display: block;
57
+  text-align: center;
58
+  width: 100%;
59
+  font-size: 28px;
60
+  color: #999;
61
+  line-height: 40px;
62
+}
63
+.WuYeTianJiaBaoXiu > .Photo > view.Add > view > text:first-child {
64
+  font-size: 60px;
65
+  line-height: 80px;
66
+}
67
+.WuYeTianJiaBaoXiu > .Photo > view.PhotoItem {
68
+  background-color: #f8f8f8;
69
+}
70
+.WuYeTianJiaBaoXiu > .Photo > view.PhotoItem > image {
71
+  width: 100%;
72
+  height: 100%;
73
+  position: relative;
74
+  z-index: 1;
75
+}
76
+.WuYeTianJiaBaoXiu > .Photo > view.PhotoItem > text {
77
+  display: inline-block;
78
+  position: absolute;
79
+  z-index: 2;
80
+  right: 0px;
81
+  top: 0px;
82
+  font-size: 40px;
83
+  color: red;
84
+}
85
+.WuYeTianJiaBaoXiu > .Btn {
86
+  position: fixed;
87
+  left: 30px;
88
+  right: 30px;
89
+  z-index: 10;
90
+  overflow: hidden;
91
+  bottom: 30px;
92
+}
93
+.WuYeTianJiaBaoXiu > .Btn > text {
94
+  width: 100%;
95
+  display: block;
96
+  font-size: 34px;
97
+  color: #fff;
98
+  line-height: 98px;
99
+  text-align: center;
100
+  border-radius: 98px;
101
+  background-color: #F35844;
7 102
 }

+ 28
- 24
src/pages/WuYe/TianJiaBaoXiu/index.jsx Visa fil

@@ -1,30 +1,34 @@
1
-import React, { Component } from 'react'
2
-// import Taro from '@tarojs/taro'
3
-import '../../../assets/css/reset.less'
4
-import '../../../assets/css/iconfont.less'
1
+import React, { useState } from 'react'
2
+import Taro, { Current } from '@tarojs/taro'
3
+import { Input, Textarea } from '@tarojs/components'
4
+import '@/assets/css/reset.less'
5
+import '@/assets/css/iconfont.less'
5 6
 import './index.less'
6 7
 
7
-export default class WuYeTianJiaBaoXiu extends Component {
8
+export default function WuYeTianJiaBaoXiu () {
8 9
 
9
-  state = {
10
-  }
11
-
12
-  componentWillMount () {
13
-  }
14
-
15
-  componentDidMount () { }
16
-
17
-  componentWillUnmount () { }
18
-
19
-  componentDidShow () { }
20
-
21
-  componentDidHide () { }
22
-
23
-  render () {
24
-    return (
25
-      <view className='WuYeTianJiaBaoXiu'>
10
+  const CurrnetBaoXiuType = Current.router.params.type
26 11
 
12
+  return (
13
+    <view className='WuYeTianJiaBaoXiu'>
14
+      <view className='Form'>
15
+        <Input placeholder='简述你的想法'></Input>
16
+        <Textarea placeholder='描述问题详情,以便我们更好的相处'></Textarea>
17
+      </view>
18
+      <view className='Photo'>
19
+        <view className='Add'>
20
+          <view className='centerLabel'>
21
+            <text className='iconfont iconxiangji'></text>
22
+            <text>添加图片</text>
23
+          </view>
24
+        </view>
25
+        <view className='PhotoItem'>
26
+          <text className='iconfont iconshanchu'></text>
27
+        </view>
28
+      </view>
29
+      <view className='Btn'>
30
+        <text>确认发送</text>
27 31
       </view>
28
-    )
29
-  }
32
+    </view>
33
+  )
30 34
 }

+ 111
- 0
src/pages/WuYe/TianJiaBaoXiu/index.less Visa fil

@@ -4,4 +4,115 @@
4 4
   background: #f8f8f8;
5 5
   overflow: hidden;
6 6
   min-height: 100%;
7
+  padding-bottom: 160px;
8
+
9
+  >.Form {
10
+    position: relative;
11
+    overflow: hidden;
12
+    padding: 0 30px;
13
+    background-color: #fff;
14
+    padding-bottom: 30px;
15
+
16
+    >input {
17
+      width: 100%;
18
+      display: block;
19
+      font-size: 32px;
20
+      color: #333;
21
+      line-height: 98px;
22
+      height: 98px;
23
+      border-bottom: 2px solid rgba(0, 0, 0, 0.08);
24
+    }
25
+
26
+    >textarea {
27
+      display: block;
28
+      font-size: 28px;
29
+      color: #999;
30
+      line-height: 40px;
31
+      margin-top: 20px;
32
+      width: 100%;
33
+    }
34
+  }
35
+
36
+  >.Photo {
37
+    padding: 30px;
38
+    padding-bottom: 10px;
39
+    position: relative;
40
+    overflow: hidden;
41
+    margin-top: 30px;
42
+    background-color: #fff;
43
+    font-size: 0;
44
+
45
+    >view {
46
+      display: inline-block;
47
+      vertical-align: middle;
48
+      width: 150px;
49
+      height: 150px;
50
+      position: relative;
51
+      overflow: hidden;
52
+      margin-right: 20px;
53
+      margin-bottom: 20px;
54
+
55
+      &.Add {
56
+
57
+        >view {
58
+          width: 100%;
59
+
60
+          >text {
61
+            display: block;
62
+            text-align: center;
63
+            width: 100%;
64
+            font-size: 28px;
65
+            color: #999;
66
+            line-height: 40px;
67
+
68
+            &:first-child {
69
+              font-size: 60px;
70
+              line-height: 80px;
71
+            }
72
+          }
73
+        }
74
+      }
75
+
76
+      &.PhotoItem {
77
+        background-color: #f8f8f8;
78
+
79
+        >image {
80
+          width: 100%;
81
+          height: 100%;
82
+          position: relative;
83
+          z-index: 1;
84
+        }
85
+
86
+        >text {
87
+          display: inline-block;
88
+          position: absolute;
89
+          z-index: 2;
90
+          right: 0px;
91
+          top: 0px;
92
+          font-size: 40px;
93
+          color: red;
94
+        }
95
+      }
96
+    }
97
+  }
98
+
99
+  >.Btn {
100
+    position: fixed;
101
+    left: 30px;
102
+    right: 30px;
103
+    z-index: 10;
104
+    overflow: hidden;
105
+    bottom: 30px;
106
+
107
+    >text {
108
+      width: 100%;
109
+      display: block;
110
+      font-size: 34px;
111
+      color: #fff;
112
+      line-height: 98px;
113
+      text-align: center;
114
+      border-radius: 98px;
115
+      background-color: #F35844;
116
+    }
117
+  }
7 118
 }

+ 8
- 8
src/pages/WuYe/index.jsx Visa fil

@@ -1,12 +1,12 @@
1 1
 import React, { Component } from 'react'
2
-import TabPageCutNav from '../../components/TabPageCutNav/index'
3
-import NavHeader from '../../components/NavHeader/index'
4
-import WuYeGongGao from '../../components/WuYeGongGao/index'
5
-import WuYeFuWu from '../../components/WuYeFuWu/index'
6
-import WuYeBaoXiu from '../../components/WuYeBaoXiu/index'
7
-import WuYeJiaoFei from '../../components/WuYeJiaoFei/index'
8
-import '../../assets/css/reset.less'
9
-import '../../assets/css/iconfont.less'
2
+import TabPageCutNav from '@/components/TabPageCutNav/index'
3
+import NavHeader from '@/components/NavHeader/index'
4
+import WuYeGongGao from '@/components/WuYeGongGao/index'
5
+import WuYeFuWu from '@/components/WuYeFuWu/index'
6
+import WuYeBaoXiu from '@/components/WuYeBaoXiu/index'
7
+import WuYeJiaoFei from '@/components/WuYeJiaoFei/index'
8
+import '@/assets/css/reset.less'
9
+import '@/assets/css/iconfont.less'
10 10
 import './index.less'
11 11
 
12 12
 export default class WuYe extends Component {