Browse Source

静态页面

1002884655 3 years ago
parent
commit
afb8b9f1c0
38 changed files with 1118 additions and 130 deletions
  1. 1
    1
      project.config.json
  2. 42
    6
      src/assets/css/iconfont.css
  3. BIN
      src/assets/css/iconfont.eot
  4. 1
    1
      src/assets/css/iconfont.js
  5. 63
    0
      src/assets/css/iconfont.json
  6. 27
    0
      src/assets/css/iconfont.svg
  7. BIN
      src/assets/css/iconfont.ttf
  8. BIN
      src/assets/css/iconfont.woff
  9. BIN
      src/assets/css/iconfont.woff2
  10. 1
    1
      src/constants/api.js
  11. 72
    16
      src/pages/index/activityDetail/index.jsx
  12. 210
    7
      src/pages/index/activityDetail/index.scss
  13. 1
    1
      src/pages/index/buildingDetail/components/BasicInfo/index.jsx
  14. 23
    2
      src/pages/index/buildingDetail/components/HouseTypeIntro/index.jsx
  15. 72
    1
      src/pages/index/buildingDetail/components/HouseTypeIntro/index.scss
  16. 15
    2
      src/pages/index/buildingDetail/components/LivingActivity/index.jsx
  17. 24
    0
      src/pages/index/buildingDetail/components/LivingActivity/index.scss
  18. 20
    3
      src/pages/index/buildingDetail/components/MarketingActivity/index.jsx
  19. 31
    1
      src/pages/index/buildingDetail/components/MarketingActivity/index.scss
  20. 18
    4
      src/pages/index/buildingDetail/components/News/index.jsx
  21. 31
    1
      src/pages/index/buildingDetail/components/News/index.scss
  22. 27
    1
      src/pages/index/buildingDetail/components/Periphery/index.jsx
  23. 36
    0
      src/pages/index/buildingDetail/components/Periphery/index.scss
  24. 31
    2
      src/pages/index/buildingDetail/components/Pictures/index.jsx
  25. 76
    1
      src/pages/index/buildingDetail/components/Pictures/index.scss
  26. 13
    3
      src/pages/index/buildingDetail/components/ProjectDynamic/index.jsx
  27. 47
    0
      src/pages/index/buildingDetail/components/ProjectDynamic/index.scss
  28. 40
    2
      src/pages/index/buildingDetail/components/PropertyConsultant/index.jsx
  29. 80
    0
      src/pages/index/buildingDetail/components/PropertyConsultant/index.scss
  30. 4
    11
      src/pages/index/buildingDetail/index.jsx
  31. 4
    4
      src/pages/index/components/Banner/index.jsx
  32. 4
    4
      src/pages/index/components/HotRecommend/index.jsx
  33. 7
    9
      src/pages/index/components/LiveSale/index.jsx
  34. 12
    13
      src/pages/index/index.jsx
  35. 25
    11
      src/pages/mine/index.jsx
  36. 5
    7
      src/pages/video/components/VideoListItem/index.jsx
  37. 55
    13
      src/pages/video/index.jsx
  38. 0
    2
      src/pages/video/index.scss

+ 1
- 1
project.config.json View File

@@ -27,7 +27,7 @@
27 27
 			"outputPath": ""
28 28
 		},
29 29
 		"useIsolateContext": true,
30
-		"useCompilerModule": true,
30
+		"useCompilerModule": false,
31 31
 		"userConfirmedUseCompilerModuleSwitch": false
32 32
 	},
33 33
 	"compileType": "miniprogram",

+ 42
- 6
src/assets/css/iconfont.css
File diff suppressed because it is too large
View File


BIN
src/assets/css/iconfont.eot View File


+ 1
- 1
src/assets/css/iconfont.js
File diff suppressed because it is too large
View File


+ 63
- 0
src/assets/css/iconfont.json View File

@@ -5,6 +5,69 @@
5 5
   "css_prefix_text": "icon-",
6 6
   "description": "",
7 7
   "glyphs": [
8
+    {
9
+      "icon_id": "1167166",
10
+      "name": "交通",
11
+      "font_class": "jiaotong",
12
+      "unicode": "e634",
13
+      "unicode_decimal": 58932
14
+    },
15
+    {
16
+      "icon_id": "3206111",
17
+      "name": "学校",
18
+      "font_class": "xuexiao",
19
+      "unicode": "e63f",
20
+      "unicode_decimal": 58943
21
+    },
22
+    {
23
+      "icon_id": "10931550",
24
+      "name": "商业",
25
+      "font_class": "shangye",
26
+      "unicode": "e60f",
27
+      "unicode_decimal": 58895
28
+    },
29
+    {
30
+      "icon_id": "16024449",
31
+      "name": "银行",
32
+      "font_class": "yinhang",
33
+      "unicode": "e64e",
34
+      "unicode_decimal": 58958
35
+    },
36
+    {
37
+      "icon_id": "19608543",
38
+      "name": "医院",
39
+      "font_class": "yiyuan",
40
+      "unicode": "e604",
41
+      "unicode_decimal": 58884
42
+    },
43
+    {
44
+      "icon_id": "1682792",
45
+      "name": "贴心服务",
46
+      "font_class": "tiexin",
47
+      "unicode": "e788",
48
+      "unicode_decimal": 59272
49
+    },
50
+    {
51
+      "icon_id": "3350537",
52
+      "name": "保障",
53
+      "font_class": "baozhang",
54
+      "unicode": "e615",
55
+      "unicode_decimal": 58901
56
+    },
57
+    {
58
+      "icon_id": "5643542",
59
+      "name": "咨询",
60
+      "font_class": "zixun",
61
+      "unicode": "e610",
62
+      "unicode_decimal": 58896
63
+    },
64
+    {
65
+      "icon_id": "5743821",
66
+      "name": "政策解读",
67
+      "font_class": "jiedu",
68
+      "unicode": "e789",
69
+      "unicode_decimal": 59273
70
+    },
8 71
     {
9 72
       "icon_id": "17169429",
10 73
       "name": "分 享",

+ 27
- 0
src/assets/css/iconfont.svg View File

@@ -20,6 +20,33 @@ Created by iconfont
20 20
   />
21 21
     <missing-glyph />
22 22
     
23
+    <glyph glyph-name="jiaotong" unicode="&#58932;" d="M869.76159781 95.83633499999996l-19.94871469 576.56141156c0 51.59190094-44.65868156 93.41186719-99.74453343 93.41186719L271.29248 765.80961281c-55.08681094 0-99.74357344-41.82092531-99.74357344-93.41186719L151.59923187 95.83633499999996l69.13840407 0c-0.50173969-2.63629219-0.81928406-5.34165844-0.81928407-8.12569125l0-18.960585c0-23.93385281 19.40188594-43.33669781 43.33669782-43.33669781l62.29824187 0c23.93673094 0 43.33861687 19.40380406 43.33861688 43.33669781L368.8919075 87.71064375000003c0 2.78307281-0.31754437 5.48843906-0.81928406 8.12569125l285.21750281 0c-0.50173969-2.63629219-0.81928406-5.34165844-0.81928406-8.12569125l0-18.960585c0-23.93385281 19.402845-43.33669781 43.33861687-43.33669781l62.29824188 0c23.93481188 0 43.33861687 19.40380406 43.33861687 43.33669781L801.446315 87.71064375000003c0 2.78307281-0.31754437 5.48843906-0.81928406 8.12569125L869.76159781 95.83633499999996zM274.68953656 186.18020156c-30.24829125 0-54.77118469 24.52289344-54.77118469 54.77310375 0 30.25021031 24.52289344 54.77310375 54.77118469 54.77310375 30.25212937 0 54.77310375-24.52289344 54.77310375-54.77310375C329.46264031 210.70309499999996 304.94166594 186.18020156 274.68953656 186.18020156zM235.89727719 385.01115469l7.4224875 236.69552062c0 52.20204656 19.01047125 72.85012781 67.06716843 72.85012781l400.3212225 0c48.05669719 0 67.06716844-20.64808031 67.06716844-72.85012781l7.68918656-236.69552062L235.89727719 385.01115469zM746.67129313 186.18020156c-30.25021031 0-54.77310375 24.52289344-54.77310376 54.77310375 0 30.25021031 24.52289344 54.77310375 54.77310375 54.77310375 30.25021031 0 54.77310375-24.52289344 54.77310376-54.77310375C801.44439687 210.70309499999996 776.92150344 186.18020156 746.67129313 186.18020156z"  horiz-adv-x="1024" />
24
+
25
+    
26
+    <glyph glyph-name="xuexiao" unicode="&#58943;" d="M987.009 549.331c-24.672 11.415-414.621 187.426-414.621 187.426S529.674 757.011 512 757.011c-17.675 0-60.388-20.254-60.388-20.254S61.661 560.745 36.991 549.331c-24.672-11.415 0-25.775 0-25.775s333.612-151.341 394.367-178.221c49.711-22.095 60.756-21.725 80.641-21.725 19.884 0 30.93-0.369 80.641 21.725 41.979 18.78 213.571 96.476 315.936 142.871v-129.983l-33.509-33.509 46.765-46.765 46.765 46.765-33.509 33.509V500.357c31.668 14.361 51.92 23.568 51.92 23.568s24.672 14.361 0 25.408zM512 280.896c-19.884 0-30.93-0.369-80.641 21.725-30.195 13.625-127.774 57.442-218.356 98.684v-298.997c90.583-40.873 188.162-85.059 218.356-98.684 49.711-22.095 60.756-21.725 80.641-21.725 19.884 0 30.93-0.369 80.641 21.725 30.195 13.625 127.774 57.442 218.356 98.684V401.305c-90.583-40.873-188.162-85.059-218.356-98.684-49.711-22.462-60.756-21.725-80.641-21.725z"  horiz-adv-x="1024" />
27
+
28
+    
29
+    <glyph glyph-name="shangye" unicode="&#58895;" d="M195.59375 348.84374973h632.8125v-281.32031196a35.015625 35.015625 0 0 0-34.91015625-35.08593804H230.50390625A34.98046848 34.98046848 0 0 0 195.59375 67.52343776999999V348.84374973zM195.59375 700.47656223C195.59375 719.84765652 211.23828152 735.56250027 230.50390625 735.56250027h562.9921875c19.26562473 0 34.91015625-15.67968723 34.91015625-35.08593804V419.15625027H195.59375V700.47656223zM406.53125 630.09375027v-70.31250054h210.9375V630.09375027H406.53125z m0-386.71875054v-70.31249973h210.9375v70.31249973H406.53125z"  horiz-adv-x="1024" />
30
+
31
+    
32
+    <glyph glyph-name="yinhang" unicode="&#58958;" d="M918.9376 151.7568V510.3616H105.1648v-356.6592c-1.9456-12.4928 0.9216-25.3952 8.192-35.84 7.0656-10.1376 18.0224-16.9984 30.3104-18.8416h736.8704c24.8832 4.4032 41.7792 27.648 38.4 52.736zM188.2112 380.7232h-27.8528v66.048h27.8528v-66.048z m72.9088 0h-28.0576v66.048H261.12v-66.048z m74.1376 0H307.2v66.048h28.0576v-66.048z m505.1392-162.5088h-128l31.3344 98.304h127.7952l-31.1296-98.304zM105.1648 617.6768c-2.6624 24.576 14.1312 47.0016 38.5024 51.3024h736.8704c24.064-4.608 40.6528-26.9312 38.0928-51.3024v-53.1456H105.1648v53.1456z"  horiz-adv-x="1024" />
33
+
34
+    
35
+    <glyph glyph-name="yiyuan" unicode="&#58884;" d="M698.045 654.585l-134.37 134.355c-11.055-20.16-32.19-34.005-56.835-34.005-24.63 0-45.78 13.845-56.835 34.005l-134.355-134.355c-15.06-15.06-15.06-39.705 0-54.765l126.15-126.165L441.8 611.7c0 8.55 6.915 15.48 15.495 15.48l99.105 0c8.55 0 15.465-6.93 15.465-15.48l0-138.06 126.18 126.165C713.105 614.865 713.105 639.51 698.045 654.585M777.98 192.22500000000002l134.37 134.37c-20.175 11.055-34.02 32.19-34.02 56.835 0 24.615 13.845 45.795 34.02 56.85l-134.37 134.355c-15.06 15.045-39.705 15.045-54.75 0l-126.135-126.165 138.015 0c8.55 0 15.495-6.93 15.495-15.48l0-99.105c0-8.565-6.945-15.48-15.495-15.48l-138.015 0 126.135-126.165C738.275 177.16499999999996 762.935 177.16499999999996 777.98 192.22500000000002M315.65 112.28999999999996l134.355-134.37c11.055 20.16 32.205 34.005 56.835 34.005 24.645 0 45.78-13.845 56.835-34.005l134.37 134.37c15.06 15.06 15.06 39.69 0 54.75l-126.18 126.135 0-138.03c0-8.535-6.915-15.495-15.465-15.495l-99.105 0c-8.565 0-15.495 6.96-15.495 15.495l0 138.03-126.15-126.135C300.59 151.98000000000002 300.59 127.35000000000002 315.65 112.28999999999996M235.7 574.62l-134.37-134.355c20.175-11.07 34.005-32.235 34.005-56.85 0-24.63-13.83-45.765-34.005-56.835l134.37-134.37c15.06-15.06 39.72-15.06 54.765 0l126.15 126.165-138.045 0c-8.55 0-15.48 6.915-15.48 15.48l0 99.09c0 8.565 6.93 15.495 15.48 15.495l138.045 0-126.15 126.165C275.42 589.6800000000001 250.76 589.6800000000001 235.7 574.62"  horiz-adv-x="1024" />
36
+
37
+    
38
+    <glyph glyph-name="tiexin" unicode="&#59272;" d="M511.08021414 136.02579943c97.20294314 0 176.04696592 78.84402279 176.04696593 176.04696594-152.90515958-34.767896-352.09393186 0-352.09393187 0 0-97.20294314 78.82562705-176.04696592 176.04696593-176.04696594m362.94740241 205.79283274a30.53688243 30.53688243 0 0 1-35.79805635-23.73046875C806.82807992 163.36182786999996 669.26494339 51.037609119999956 511.06181839 51.037609119999956 327.01271824 51.037609119999956 177.19803817 200.81549769000003 177.19803817 384.91978586S327.01271824 718.80196183 511.08021414 718.80196183c157.96398104 0 295.47192956-112.14026127 327.07576307-266.57226562a30.22415549 30.22415549 0 0 1 35.83484785-23.63849002 30.35292494 30.35292494 0 0 1 23.62009426 35.81645212C860.28601896 647.00349744 697.72311013 779.5078125 511.08021414 779.5078125 293.49573002 779.5078125 116.4921875 602.48587423 116.4921875 384.91978586S293.49573002-9.668241540000054 511.08021414-9.668241540000054c186.93722721 0 349.55532326 132.74345902 386.6962669 315.67042161a30.44490369 30.44490369 0 0 1-23.73046875 35.8164521m-107.98283068 126.50731276c0 21.08148642-64.01707838 67.47547208-101.23160425 67.47547208-37.26971312 0-67.51226357-43.76339908-67.51226435-67.47547208 0-23.74886451 30.24255123 0 67.51226435 0 37.23292162 0 101.2132085-21.11827792 101.2132085 0m-408.71593417 1.71080072c-37.23292162 0-101.2132085-21.09988217-101.21320851 0 0 21.08148642 63.98028688 67.51226357 101.21320851 67.51226433 37.28810887 0 67.51226357-43.80019057 67.51226358-67.51226433 0-23.73046875-30.22415549 0-67.51226358 0"  horiz-adv-x="1024" />
39
+
40
+    
41
+    <glyph glyph-name="baozhang" unicode="&#58901;" d="M895.7890625 668.3278124999999c0 12.9215625-8.62124999 21.538125-21.538125 25.8478125L533.9215625 788.953125c-12.9309375 4.310625-30.1584375 4.310625-38.775 0L154.80875001 694.175625c-12.92624999-4.305-17.236875-12.9215625-21.53718752-25.84687499 0-4.31156249-17.236875-137.86125001 17.22656251-288.64406251 21.538125-90.4753125 56.00625001-168.01875001 107.7028125-232.6275 60.316875-77.548125 142.171875-133.554375 241.2525-168.02343751 8.62124999-4.3059375 17.236875-4.3059375 30.159375 0 99.0853125 34.45875001 180.935625 90.4753125 241.2525 168.02343751 47.390625 64.60875001 86.16 142.153125 107.6971875 232.6275 34.4540625 150.7921875 17.2275 284.338125 17.2275 288.643125zM818.24375001 392.62124999C775.16 211.6846875 671.778125 91.04999999999995 512.375 39.35531249999997c-159.3984375 56.0109375-262.790625 172.329375-305.8696875 353.26593751-25.84874998 112.0078125-21.538125 211.089375-17.2321875 254.17406249L512.375 737.26125001l323.1075-90.46593751c4.30124999-43.0846875 8.6109375-146.4815625-17.236875-254.175zM460.6784375 267.6909375l-107.7028125 103.3875c-12.92624999 12.9215625-12.92624999 30.1584375 0 43.08 12.9215625 12.92624999 30.159375 12.92624999 43.08562499 0l86.15437501-81.849375L658.84624999 496.0125c12.9309375 12.92624999 30.159375 12.92624999 43.08937501 0 12.9215625-12.9215625 12.9215625-30.1584375 0-43.08l-198.1725-185.240625c-4.310625-4.3059375-12.9215625-8.62124999-21.5371875-8.62125-8.62124999 0-17.2415625 4.310625-21.5475 8.6203125z"  horiz-adv-x="1024" />
42
+
43
+    
44
+    <glyph glyph-name="zixun" unicode="&#58896;" d="M817.956 495.533h-36.287v13.471c0 72.697-28.521 141.145-80.221 192.967-51.7 51.7-120.271 80.221-192.967 80.221s-141.145-28.521-192.967-80.221c-51.7-51.7-80.221-120.271-80.221-192.967v-13.471h-35.195c-52.914 0-89.808-36.895-89.808-89.808v-154.01c0-49.516 40.292-89.808 89.808-89.808h46.239v-0.242c0-69.541 56.676-126.218 126.218-126.218h41.991c1.942-24.88 22.938-44.661 48.423-44.661h92.479c26.7 0 48.545 21.845 48.545 48.545v31.312c0 26.7-21.845 48.545-48.545 48.545h-92.479c-25.486 0-46.482-19.903-48.423-44.905h-41.991c-48.181 0-87.381 39.2-87.381 87.381v8.738l0.85 0.85c0.485 0.485 0.971 1.092 1.334 1.578 0.122 0.122 0.122 0.242 0.242 0.364 0.485 0.607 0.85 1.092 1.214 1.699 0 0.122 0.122 0.122 0.122 0.242 0.364 0.607 0.729 1.092 1.092 1.699 0 0.122 0.122 0.122 0.122 0.242 0.364 0.607 0.607 1.214 0.971 1.942 0 0.122 0.122 0.242 0.122 0.364 0.242 0.607 0.485 1.334 0.729 1.942 0 0.122 0.122 0.242 0.122 0.242 0.242 0.607 0.485 1.334 0.607 2.063v0.122c0.242 0.729 0.364 1.456 0.485 2.185 0 0.122 0 0.242 0.122 0.364 0.122 0.729 0.242 1.456 0.242 2.185v0.364c0 0.729 0.122 1.578 0.122 2.306v317.85c0 118.45 96.362 214.813 214.813 214.813s214.813-96.362 214.813-214.813v-317.971a29.057 29.057 0 0 1 29.127-29.127h65.294c49.516 0 89.808 40.292 89.808 89.808v154.01c0.242 52.914-36.652 89.808-89.566 89.808zM168.543 251.714v154.01c0 26.093 17.113 31.554 31.554 31.554h35.316v-217.119h-35.316c-17.476 0-31.554 14.199-31.554 31.554z m680.967 0c0-17.355-14.199-31.554-31.554-31.554h-36.287V437.279h36.287c14.442 0 31.554-5.461 31.554-31.554v-154.01z"  horiz-adv-x="1024" />
45
+
46
+    
47
+    <glyph glyph-name="jiedu" unicode="&#59273;" d="M407.25800822 449.81038805l-9.59114324-76.49049407a22.23589263 22.23589263 0 0 1 5.4889756-17.46287113 22.24246948 22.24246948 0 0 1 16.57497617-7.42073387h0.16818275c3.14568452 0 6.34398471 0.69716209 9.30081578 2.04074924l69.92664952 32.78070021 69.88530814-32.39735503a22.08556103 22.08556103 0 0 1 9.42859726-2.09806312 22.12972118 22.12972118 0 0 1 12.79789973 4.05425016 22.27347591 22.27347591 0 0 1 9.32618391 20.27594748l-9.61557204 76.71787013 52.62350562 56.14126024a22.2180407 22.2180407 0 0 1 5.00979394 22.12220421 22.2142826 22.2142826 0 0 1-16.98181002 14.9889798L555.87280873 557.6252468800001l-37.23802613 67.44242323c-3.90109981 7.12570822-11.39981746 11.55296783-19.56938976 11.55296783a22.19549135 22.19549135 0 0 1-19.47637205-11.52384086l-37.25306006-67.4715502-75.70501248-14.55771638a22.21146384 22.21146384 0 0 1-17.00060205-14.99273789c-2.50771575-7.73924821-0.59568807-16.20948292 4.97221143-22.08650113l52.65545059-56.17790343z m138.70890103 5.25596126l5.87419945-47.37318188-42.97222973 19.8343491c-5.78493983 2.71442109-13.10513978 2.71442109-18.8863215 0l-42.83035444-20.09461024 5.85352876 47.20593846c0.84843301 6.57793839-1.2618445 13.14084364-5.79903365 18.01627771l-32.24890365 34.41555493 45.99764974 8.93720198a22.16824379 22.16824379 0 0 1 15.33004349 11.10385249l22.77144882 41.21711051 22.86352643-41.85038187c3.20863592-5.82346244 8.80378222-9.87583317 15.37608308-11.1217044l45.90839012-8.44956402-31.45872385-33.89221313c-4.51745856-4.85664359-6.62303787-11.40733443-5.77930307-17.94862964zM419.73081675 353.13414545zM669.30536475 777.62866992v0.10335266H242.53801756C209.06297326 777.73202258 181.82950108 750.49855042 181.82950108 717.02350688v-667.07020714c0-33.47504354 27.23347217-60.70851571 60.70851648-60.70851571h538.78960655c33.47504354 0 60.70851571 27.23347217 60.7085157 60.70851571V605.00124753h0.13435911L669.30536475 777.62866992z m44.44641712-128.18100527v34.24455266l34.24455265-34.24455266h-34.24455265zM226.2796763 717.02350688c0 4.34457761 1.69122848 8.427954 4.76080788 11.49753339A16.15122972 16.15122972 0 0 0 242.53707747 733.28090804h421.624135l5.14415228-5.14415305V605.00124753h123.1373869l5.14415227-5.14321295v-549.90473485c0-4.34457761-1.69122848-8.427954-4.75986776-11.49753262a16.15498782 16.15498782 0 0 0-11.49847272-4.76456597H242.53801756a16.15404847 16.15404847 0 0 0-11.49659405 4.76362588 16.15686725 16.15686725 0 0 0-4.76174721 11.49847271V717.02350688zM322.94182586 264.60116693h352.32417842v-44.45017523H322.94182586zM322.94182586 161.97461975h352.32417842v-44.45017522H322.94182586z"  horiz-adv-x="1024" />
48
+
49
+    
23 50
     <glyph glyph-name="fenxiang" unicode="&#58894;" d="M857.03473144 234.56598896000003a145.69076425 145.69076425 0 0 1-135.99176748-84.51247763L422.04630781 277.24671973a176.12554658 176.12554658 0 0 1 27.0131212 95.83226191 180.47337276 180.47337276 0 0 1-5.14535625 43.55544112l190.86699198 148.13480829a153.56315918 153.56315918 0 0 1 93.28531026-30.48623613 149.85850253 149.85850253 0 1 1-149.88422901 149.80704873 159.50604551 159.50604551 0 0 1 11.31978341-59.17159775l-176.09982012-135.03987598a191.38152832 191.38152832 0 1 1-157.78235128-297.96758437 203.03576016 203.03576016 0 0 1 108.05248302 29.58579843l343.42680674-146.35966025a150.09004336 150.09004336 0 1 1 149.93568368 159.50604551z"  horiz-adv-x="1075" />
24 51
 
25 52
     

BIN
src/assets/css/iconfont.ttf View File


BIN
src/assets/css/iconfont.woff View File


BIN
src/assets/css/iconfont.woff2 View File


+ 1
- 1
src/constants/api.js View File

@@ -80,7 +80,7 @@ export const API_SALESBATCH_LIST = resolvePath('taSalesBatch/choice')
80 80
 export const API_NOTICE_INFO = resolvePath('getNoticeInfo')
81 81
 export const API_SALES_BATCH = resolvePath('taSalesBatch')
82 82
 export const API_ADDLIVE_NUM = resolvePath('addVisitNum')
83
-export const API_LIVE_DEATIL = resolvePath('taLiveActivity')
83
+export const API_LIVE_LIST = resolvePath('taLiveActivity')
84 84
 // /wx/location/city?location=lon,lat
85 85
 
86 86
 //sign

+ 72
- 16
src/pages/index/activityDetail/index.jsx View File

@@ -1,13 +1,11 @@
1
-import React, { useState, useEffect } from 'react'
1
+import { useState, useEffect } from 'react'
2 2
 import withLayout from '@/layout'
3
+import { ScrollView, Image } from '@tarojs/components'
4
+import '@/assets/css/iconfont.css'
3 5
 import './index.scss'
4
-import { ScrollView } from '@tarojs/components'
5
-import '../../../assets/css/iconfont.css'
6 6
 
7
-export default withLayout((props) => {
7
+export default withLayout(() => {
8 8
 
9
-  // const [PageProps] = useState(props)
10
-  const [PageList, setPageList] = useState(['', '', '', '', '', '', '', '', '', '', '', '', ''])
11 9
   const [IsPull, setPull] = useState(false)
12 10
   const [PullTimer, setPullTimer] = useState(null)
13 11
 
@@ -25,21 +23,79 @@ export default withLayout((props) => {
25 23
   }, [IsPull])
26 24
 
27 25
   return (
28
-    <view className='Page activityDetail'>
26
+    <view className='Page activityDetail flex-v'>
27
+      <view className='flex-item'>
28
+        <view>
29
+          <ScrollView scroll-y refresher-enabled refresher-triggered={IsPull} onrefresherrefresh={PageRefresh} refresher-background='#fff'>
30
+            <view className='PageContent'>
29 31
 
30
-      <ScrollView scroll-y={true} refresher-enabled={true} refresher-triggered={IsPull} onrefresherrefresh={PageRefresh} refresher-background='#fff'>
31
-        <view className='PageContent'>
32
+              <view className='Top'>
33
+                <Image mode='aspectFill' src={null} className='centerLabel'></Image>
34
+              </view>
32 35
 
33
-          活动详情
36
+              <view className='Info'>
37
+                <view>
38
+                  <view className='Title flex-h'>
39
+                    <view className='flex-item'>
40
+                      <text>换了套圈圈福利 快来参加吧</text>
41
+                    </view>
42
+                    <text className='Tips'>17人已报名</text>
43
+                  </view>
44
+                  <text className='Time'>报名截止时间:2019-07-19 12:00</text>
45
+                  <text className='Name'>“香颂 · 蔚澜半岛”</text>
46
+                  <view className='flex-h Address'>
47
+                    <text>地址:</text>
48
+                    <view className='flex-item'>
49
+                      <text>江苏省南京市奥体大厦1楼</text>
50
+                    </view>
51
+                  </view>
52
+                  <view className='flex-h Date'>
53
+                    <text>时间:</text>
54
+                    <view className='flex-item'>
55
+                      <text>2019/10/20 10:00 - 2019/10/22 10:00</text>
56
+                    </view>
57
+                  </view>
58
+                  <view className='Btn'>
59
+                    <text>分享好友</text>
60
+                  </view>
61
+                </view>
62
+              </view>
34 63
 
35
-          {/* bottom */}
36
-          <view className='PageBottom'>
37
-            <text>已经到底了~</text>
38
-          </view>
64
+              <view className='ActivityIntro'>
65
+                <view className='Title'>
66
+                  <text>活动介绍</text>
67
+                </view>
68
+              </view>
39 69
 
40
-        </view>
41
-      </ScrollView>
70
+              <view className='Bottom'>
71
+                <view>
72
+                  <view>
73
+                    <text className='iconfont icon-shengming'></text>
74
+                    <text>免责声明</text>
75
+                  </view>
76
+                  <view>
77
+                    <text>&emsp;&emsp;以上价格仅供参考,具体一房一价的信息以售楼处展示为准。房屋位置交通、医疗、教育、商业等配套信息,来源于第三方不作为要约,仅供参考,双方具体权利义务应以法律规定及买卖合同约定为准。本平台对项目周边文化教育的介绍旨在提供相关信息1 意味着信息发布方对就学安排作出承诺。相关教育资首页信息存在调整的可能,应以政府教育主管部门门及办学颁布的政策规定为准。详情请仔细阅读</text>
78
+                    <text className='active'>《新联家使用免责条款》</text>
79
+                  </view>
80
+                </view>
81
+              </view>
42 82
 
83
+            </view>
84
+          </ScrollView>
85
+        </view>
86
+      </view>
87
+      <view className='PageBottom flex-h'>
88
+        <view className='Share'>
89
+          <text className='iconfont icon-fenxiang'></text>
90
+          <text>分享</text>
91
+        </view>
92
+        <view className='Collect'>
93
+          <text className='iconfont icon-shoucang'></text>
94
+          <text>收藏</text>
95
+        </view>
96
+        <view className='flex-item'></view>
97
+        <text className='Post'>立即报名</text>
98
+      </view>
43 99
     </view>
44 100
   )
45 101
 })

+ 210
- 7
src/pages/index/activityDetail/index.scss View File

@@ -1,12 +1,215 @@
1 1
 .Page.activityDetail {
2 2
   background: #fff;
3
-  > scroll-view {
4
-    width: 100%;
5
-    height: 100%;
6
-    .PageContent {
7
-      position: relative;
8
-      overflow: hidden;
9
-      min-height: 100vh;
3
+  > .flex-item {
4
+    position: relative;
5
+    overflow: hidden;
6
+    z-index: 1;
7
+    > view {
8
+      width: 100%;
9
+      position: absolute;
10
+      left: 0;
11
+      top: 0;
12
+      bottom: 0;
13
+      > scroll-view {
14
+        width: 100%;
15
+        height: 100%;
16
+        .PageContent {
17
+          position: relative;
18
+          overflow: hidden;
19
+          min-height: 100vh;
20
+          > .Top {
21
+            width: 100%;
22
+            padding-bottom: 56%;
23
+            position: relative;
24
+            overflow: hidden;
25
+            background: #eee;
26
+            z-index: 1;
27
+            > image {
28
+              width: 100%;
29
+              height: 100%;
30
+            }
31
+          }
32
+          >.Info {
33
+            padding: 0 30px;
34
+            position: relative;
35
+            z-index: 2;
36
+            margin-top: -30px;
37
+            >view {
38
+              position: relative;
39
+              overflow: hidden;
40
+              background: #fff;
41
+              min-height: 100px;
42
+              box-shadow: 0 0 10px 10px rgba(0, 0, 0, 0.03);
43
+              >.Title {
44
+                align-items: flex-start;
45
+                >.flex-item {
46
+                  margin-left: 30px;
47
+                  margin-right: 20px;
48
+                  margin-top: 20px;
49
+                  >text {
50
+                    display: block;
51
+                    font-size: 34px;
52
+                    font-weight: bold;
53
+                    line-height: 40px;
54
+                  }
55
+                }
56
+                >.Tips {
57
+                  background: rgba(25, 60, 131, 0.2);
58
+                  font-size: 28px;
59
+                  line-height: 58px;
60
+                  color: #193C83;
61
+                  border-radius: 0 0 0 24px;
62
+                  padding: 0 10px;
63
+                  min-width: 170px;
64
+                  text-align: center;
65
+                }
66
+              }
67
+              >.Time {
68
+                display: block;
69
+                font-size: 20px;
70
+                color: #FF0000;
71
+                line-height: 1;
72
+                margin-top: 16px;
73
+                text-indent: 30px;
74
+              }
75
+              >.Name {
76
+                display: block;
77
+                text-align: center;
78
+                font-size: 48px;
79
+                font-weight: bold;
80
+                line-height: 1;
81
+                margin-top: 40px;
82
+                text-align: center;
83
+              }
84
+              >.Address,
85
+              >.Date {
86
+                align-items: flex-start;
87
+                margin-top: 30px;
88
+                padding: 0 30px;
89
+                >text {
90
+                  font-size: 28px;
91
+                  line-height: 32px;
92
+                }
93
+                >.flex-item {
94
+                  >text {
95
+                    display: block;
96
+                    font-size: 28px;
97
+                    line-height: 32px;
98
+                  }
99
+                }
100
+              }
101
+              >.Address {
102
+                margin-top: 38px;
103
+              }
104
+              >.Btn {
105
+                padding: 0 10px;
106
+                position: relative;
107
+                overflow: hidden;
108
+                margin-top: 40px;
109
+                margin-bottom: 40px;
110
+                >text {
111
+                  display: block;
112
+                  text-align: center;
113
+                  font-size: 32px;
114
+                  line-height: 92px;
115
+                  font-weight: bold;
116
+                  background: #F2F2F2;
117
+                  border-radius: 92px;
118
+                }
119
+              }
120
+            }
121
+          }
122
+          >.ActivityIntro {
123
+            position: relative;
124
+            overflow: hidden;
125
+            margin-top: 40px;
126
+            >.Title {
127
+              padding: 0 30px;
128
+              position: relative;
129
+              overflow: hidden;
130
+              text-align: center;
131
+              font-size: 0;
132
+              &::after {
133
+                content: '';
134
+                display: block;
135
+                height: 2px;
136
+                background: rgba(0, 0, 0, 0.08);
137
+                z-index: 1;
138
+                position: absolute;
139
+                left: 30px;
140
+                right: 30px;
141
+                top: 19px;
142
+              }
143
+              >text {
144
+                display: inline-block;
145
+                font-size: 32px;
146
+                color: #5B717A;
147
+                position: relative;
148
+                z-index: 2;
149
+                background: #fff;
150
+                padding: 0 20px;
151
+                line-height: 40px;
152
+              }
153
+            }
154
+          }
155
+          >.Bottom {
156
+            padding: 0 30px 30px;
157
+            position: relative;
158
+            overflow: hidden;
159
+            margin-top: 60px;
160
+            >view {
161
+              padding: 30px;
162
+              position: relative;
163
+              overflow: hidden;
164
+              background: #F8F8F8;
165
+              border-radius: 8px;
166
+              >view {
167
+                >text {
168
+                  font-size: 20px;
169
+                  color: #999;
170
+                  line-height: 30px;
171
+                  letter-spacing: 2px;
172
+                  &.active {
173
+                    color: #193C83;
174
+                  }
175
+                }
176
+              }
177
+            }
178
+          }
179
+        }
180
+      }
181
+    }
182
+  }
183
+  >.PageBottom {
184
+    align-items: center;
185
+    background: #fff;
186
+    z-index: 2;
187
+    border-top: 2px solid rgba(0, 0, 0, 0.12);
188
+    padding: 20px 30px;
189
+    >.Share,
190
+    >.Collect {
191
+      margin-left: 50px;
192
+      >text {
193
+        display: block;
194
+        text-align: center;
195
+        font-size: 30px;
196
+        &:first-child {
197
+          font-size: 44px;
198
+        }
199
+      }
200
+    }
201
+    >.Share {
202
+      margin-left: 0;
203
+    }
204
+    >.Post {
205
+      width: 360px;
206
+      line-height: 92px;
207
+      background: #193C83;
208
+      color: #fff;
209
+      font-size: 32px;
210
+      color: #fff;
211
+      border-radius: 8px;
212
+      text-align: center;
10 213
     }
11 214
   }
12 215
 }

+ 1
- 1
src/pages/index/buildingDetail/components/BasicInfo/index.jsx View File

@@ -30,7 +30,7 @@ export default function BasicInfo (props) {
30 30
 
31 31
       {/* 项目列表 */}
32 32
       <view className='ProjectList'>
33
-        <ScrollView scroll-x={true}>
33
+        <ScrollView scroll-x>
34 34
           {
35 35
             ['', '', ''].map((item, index) => (
36 36
               <view className='ListItem' key={`List-${index}`}>

+ 23
- 2
src/pages/index/buildingDetail/components/HouseTypeIntro/index.jsx View File

@@ -1,10 +1,11 @@
1 1
 import React, { useState, useEffect } from 'react'
2
-import './index.scss'
3
-import '../../../../../assets/css/iconfont.css'
4 2
 import { ScrollView, Image } from '@tarojs/components'
3
+import '@/assets/css/iconfont.css'
4
+import './index.scss'
5 5
 
6 6
 export default function HouseTypeIntro (props) {
7 7
   const { Data = {} } = props
8
+  const [PageList, setPageList] = useState(['', '', '', '', ''])
8 9
   return (
9 10
     <view className='components HouseTypeIntro'>
10 11
 
@@ -16,6 +17,26 @@ export default function HouseTypeIntro (props) {
16 17
         <text className='iconfont icon-jiantouright'></text>
17 18
       </view>
18 19
 
20
+      <view className='ProjectList'>
21
+        <ScrollView scroll-x>
22
+          {
23
+            PageList.map((item, index) => (
24
+              <view className='ListItem' key={`List-${index}`}>
25
+                <view className='Img'>
26
+                  <Image mode='aspectFill' src={null}></Image>
27
+                </view>
28
+                <view className='Title'>
29
+                  <text>290平</text>
30
+                  <text>户型</text>
31
+                </view>
32
+                <text>建面290m²</text>
33
+                <text>套内288m²</text>
34
+              </view>
35
+            ))
36
+          }
37
+        </ScrollView>
38
+      </view>
39
+
19 40
     </view>
20 41
   )
21 42
 }

+ 72
- 1
src/pages/index/buildingDetail/components/HouseTypeIntro/index.scss View File

@@ -1,9 +1,10 @@
1 1
 .components.HouseTypeIntro {
2 2
   position: relative;
3 3
   overflow: hidden;
4
-  padding: 40px 30px;
4
+  padding: 40px 0 30px;
5 5
   >.Title {
6 6
     align-items: center;
7
+    padding: 0 30px;
7 8
     >.flex-item {
8 9
       >text {
9 10
         display: block;
@@ -19,4 +20,74 @@
19 20
       color: #A1A1A1;
20 21
     }
21 22
   }
23
+  >.ProjectList {
24
+    position: relative;
25
+    overflow: hidden;
26
+    margin-top: 30px;
27
+    height: 558px;
28
+    >scroll-view {
29
+      width: 100%;
30
+      height: 100%;
31
+      font-size: 0;
32
+      white-space: nowrap;
33
+      position: relative;
34
+      overflow: visible;
35
+      .ListItem {
36
+        width: 336px;
37
+        height: 538px;
38
+        margin-left: 18px;
39
+        margin-top: 10px;
40
+        display: inline-block;
41
+        vertical-align: middle;
42
+        position: relative;
43
+        overflow: hidden;
44
+        border-radius: 12px;
45
+        background: #fff;
46
+        box-shadow: 0 0 6px 6px rgba(0, 0, 0, 0.03);
47
+        &:first-child {
48
+          margin-left: 30px;
49
+        }
50
+        &:last-child {
51
+          margin-right: 30px;
52
+        }
53
+        >.Img {
54
+          width: 100%;
55
+          height: 336px;
56
+          position: relative;
57
+          overflow: hidden;
58
+          background: #eee;
59
+          border-bottom: rgba(0, 0, 0, 0.12);
60
+          >image {
61
+            width: 100%;
62
+            height: 100%;
63
+          }
64
+        }
65
+        >.Title {
66
+          font-size: 0;
67
+          white-space: nowrap;
68
+          margin-top: 20px;
69
+          padding: 0 20px;
70
+          >text {
71
+            display: inline-block;
72
+            vertical-align: middle;
73
+            font-size: 32px;
74
+            line-height: 44px;
75
+            &:first-child {
76
+              color: #FA5431;
77
+              margin-right: 10px;
78
+            }
79
+          }
80
+        }
81
+        >text {
82
+          display: block;
83
+          font-size: 28px;
84
+          line-height: 40px;
85
+          margin-top: 10px;
86
+          white-space: nowrap;
87
+          color: #555;
88
+          text-indent: 20px;
89
+        }
90
+      }
91
+    }
92
+  }
22 93
 }

+ 15
- 2
src/pages/index/buildingDetail/components/LivingActivity/index.jsx View File

@@ -1,10 +1,11 @@
1 1
 import React, { useState, useEffect } from 'react'
2
+import { Image } from '@tarojs/components'
3
+import '@/assets/css/iconfont.css'
2 4
 import './index.scss'
3
-import '../../../../../assets/css/iconfont.css'
4
-import { ScrollView, Image } from '@tarojs/components'
5 5
 
6 6
 export default function LivingActivity (props) {
7 7
   const { Data = {} } = props
8
+  const [PageList, setPageList] = useState(['', ''])
8 9
   return (
9 10
     <view className='components LivingActivity'>
10 11
 
@@ -16,6 +17,18 @@ export default function LivingActivity (props) {
16 17
         <text className='iconfont icon-jiantouright'></text>
17 18
       </view>
18 19
 
20
+      <view className='List flex-h'>
21
+        {
22
+          PageList.map((item, index) => (
23
+            <view className='flex-item' key={`ListItem-${index}`}>
24
+              <view>
25
+                <Image mode='aspectFill' src={null} className='centerLabel'></Image>
26
+              </view>
27
+            </view>
28
+          ))
29
+        }
30
+      </view>
31
+
19 32
     </view>
20 33
   )
21 34
 }

+ 24
- 0
src/pages/index/buildingDetail/components/LivingActivity/index.scss View File

@@ -19,4 +19,28 @@
19 19
       color: #A1A1A1;
20 20
     }
21 21
   }
22
+  >.List {
23
+    margin-top: 20px;
24
+    align-items: center;
25
+    >.flex-item {
26
+      position: relative;
27
+      overflow: hidden;
28
+      margin-left: 20px;
29
+      &:first-child {
30
+        margin-left: 0;
31
+      }
32
+      >view {
33
+        width: 100%;
34
+        padding-bottom: 60%;
35
+        background: #eee;
36
+        border-radius: 8px;
37
+        position: relative;
38
+        overflow: hidden;
39
+        >image {
40
+          width: 100%;
41
+          height: 100%;
42
+        }
43
+      }
44
+    }
45
+  }
22 46
 }

+ 20
- 3
src/pages/index/buildingDetail/components/MarketingActivity/index.jsx View File

@@ -1,10 +1,11 @@
1 1
 import React, { useState, useEffect } from 'react'
2
+import { Swiper, SwiperItem, Image } from '@tarojs/components'
3
+import { getImgURL } from '@/utils/image'
4
+import '@/assets/css/iconfont.css'
2 5
 import './index.scss'
3
-import '../../../../../assets/css/iconfont.css'
4
-import { ScrollView, Image } from '@tarojs/components'
5 6
 
6 7
 export default function MarketingActivity (props) {
7
-  const { Data = {} } = props
8
+  const { List = ['', '', ''] } = props
8 9
   return (
9 10
     <view className='components MarketingActivity'>
10 11
 
@@ -16,6 +17,22 @@ export default function MarketingActivity (props) {
16 17
         <text className='iconfont icon-jiantouright'></text>
17 18
       </view>
18 19
 
20
+      <view className='SwiperContainer'>
21
+        <view>
22
+          <Swiper autoplay interval={2000} indicator-dots>
23
+            {
24
+              List.map((item, index) => (
25
+                <SwiperItem key={`Banner-${index}`}>
26
+                  <view className='swiper-item'>
27
+                    <Image mode='aspectFill' className='centerLabel' src={getImgURL(item?.image)} />
28
+                  </view>
29
+                </SwiperItem>
30
+              ))
31
+            }
32
+          </Swiper>
33
+        </view>
34
+      </view>
35
+
19 36
     </view>
20 37
   )
21 38
 }

+ 31
- 1
src/pages/index/buildingDetail/components/MarketingActivity/index.scss View File

@@ -1,9 +1,10 @@
1 1
 .components.MarketingActivity {
2 2
   position: relative;
3 3
   overflow: hidden;
4
-  padding: 40px 30px;
4
+  padding: 40px 0;
5 5
   >.Title {
6 6
     align-items: center;
7
+    padding: 0 30px;
7 8
     >.flex-item {
8 9
       >text {
9 10
         display: block;
@@ -19,4 +20,33 @@
19 20
       color: #A1A1A1;
20 21
     }
21 22
   }
23
+  >.SwiperContainer {
24
+    width: 100%;
25
+    padding-bottom: 33.33%;
26
+    position: relative;
27
+    overflow: hidden;
28
+    background: #eee;
29
+    margin-top: 40px;
30
+    >view {
31
+      width: 100%;
32
+      position: absolute;
33
+      left: 0;
34
+      top: 0;
35
+      bottom: 0;
36
+      >swiper {
37
+        width: 100%;
38
+        height: 100%;
39
+        .swiper-item {
40
+          width: 100%;
41
+          height: 100%;
42
+          position: relative;
43
+          overflow: hidden;
44
+          >image {
45
+            width: 100%;
46
+            height: 100%;
47
+          }
48
+        }
49
+      }
50
+    }
51
+  }
22 52
 }

+ 18
- 4
src/pages/index/buildingDetail/components/News/index.jsx View File

@@ -1,12 +1,13 @@
1 1
 import React, { useState, useEffect } from 'react'
2
+import { Image } from '@tarojs/components'
3
+import '@/assets/css/iconfont.css'
2 4
 import './index.scss'
3
-import '../../../../../assets/css/iconfont.css'
4
-import { ScrollView, Image } from '@tarojs/components'
5 5
 
6
-export default function MarketingActivity (props) {
6
+export default function News (props) {
7 7
   const { Data = {} } = props
8
+  const [PageList, setPageList] = useState(['', ''])
8 9
   return (
9
-    <view className='components MarketingActivity'>
10
+    <view className='components News'>
10 11
 
11 12
       <view className='Title flex-h'>
12 13
         <view className='flex-item'>
@@ -16,6 +17,19 @@ export default function MarketingActivity (props) {
16 17
         <text className='iconfont icon-jiantouright'></text>
17 18
       </view>
18 19
 
20
+      <view className='List flex-h'>
21
+        {
22
+          PageList.map((item, index) => (
23
+            <view className='flex-item' key={`ListItem-${index}`}>
24
+              <view className='Img'>
25
+                <Image mode='aspectFill' src={null} className='centerLabel'></Image>
26
+              </view>
27
+              <text className='Title'>一方山营销中心盛大样板间开盘活动</text>
28
+            </view>
29
+          ))
30
+        }
31
+      </view>
32
+
19 33
     </view>
20 34
   )
21 35
 }

+ 31
- 1
src/pages/index/buildingDetail/components/News/index.scss View File

@@ -1,4 +1,4 @@
1
-.components.MarketingActivity {
1
+.components.News {
2 2
   position: relative;
3 3
   overflow: hidden;
4 4
   padding: 40px 30px;
@@ -19,4 +19,34 @@
19 19
       color: #A1A1A1;
20 20
     }
21 21
   }
22
+  >.List {
23
+    margin-top: 30px;
24
+    align-items: center;
25
+    >.flex-item {
26
+      position: relative;
27
+      overflow: hidden;
28
+      margin-left: 20px;
29
+      &:first-child {
30
+        margin-left: 0;
31
+      }
32
+      >.Img {
33
+        width: 100%;
34
+        padding-bottom: 80%;
35
+        background: #eee;
36
+        border-radius: 8px;
37
+        position: relative;
38
+        overflow: hidden;
39
+        >image {
40
+          width: 100%;
41
+          height: 100%;
42
+        }
43
+      }
44
+      >.Title {
45
+        display: block;
46
+        font-size: 28px;
47
+        line-height: 40px;
48
+        margin-top: 4px;
49
+      }
50
+    }
51
+  }
22 52
 }

+ 27
- 1
src/pages/index/buildingDetail/components/Periphery/index.jsx View File

@@ -1,7 +1,6 @@
1 1
 import React, { useState, useEffect } from 'react'
2 2
 import './index.scss'
3 3
 import '../../../../../assets/css/iconfont.css'
4
-import { ScrollView, Image } from '@tarojs/components'
5 4
 
6 5
 export default function Periphery (props) {
7 6
   const { Data = {} } = props
@@ -14,6 +13,33 @@ export default function Periphery (props) {
14 13
         </view>
15 14
       </view>
16 15
 
16
+      <view className='Map'>
17
+        <view></view>
18
+      </view>
19
+
20
+      <view className='List flex-h'>
21
+        <view className='flex-item'>
22
+          <text className='iconfont icon-jiaotong'></text>
23
+          <text>交通(10)</text>
24
+        </view>
25
+        <view className='flex-item'>
26
+          <text className='iconfont icon-shangye'></text>
27
+          <text>商业(10)</text>
28
+        </view>
29
+        <view className='flex-item'>
30
+          <text className='iconfont icon-xuexiao'></text>
31
+          <text>学校(10)</text>
32
+        </view>
33
+        <view className='flex-item'>
34
+          <text className='iconfont icon-yiyuan'></text>
35
+          <text>医院(10)</text>
36
+        </view>
37
+        <view className='flex-item'>
38
+          <text className='iconfont icon-yinhang'></text>
39
+          <text>银行(10)</text>
40
+        </view>
41
+      </view>
42
+
17 43
     </view>
18 44
   )
19 45
 }

+ 36
- 0
src/pages/index/buildingDetail/components/Periphery/index.scss View File

@@ -19,4 +19,40 @@
19 19
       color: #A1A1A1;
20 20
     }
21 21
   }
22
+  >.Map {
23
+    width: 100%;
24
+    padding-bottom: 50%;
25
+    position: relative;
26
+    overflow: hidden;
27
+    background: #eee;
28
+    margin-top: 40px;
29
+    >view {
30
+      width: 100%;
31
+      position: absolute;
32
+      left: 0;
33
+      top: 0;
34
+      bottom: 0;
35
+      overflow: hidden;
36
+    }
37
+  }
38
+  >.List {
39
+    align-items: center;
40
+    margin-top: 24px;
41
+    >.flex-item {
42
+      >text {
43
+        display: block;
44
+        text-align: center;
45
+        font-size: 32px;
46
+        line-height: 44px;
47
+        color: #666;
48
+        margin-top: 12px;
49
+        &:first-child {
50
+          font-size: 44px;
51
+          color: #1A3B83;
52
+          margin-top: 0;
53
+          line-height: 1;
54
+        }
55
+      }
56
+    }
57
+  }
22 58
 }

+ 31
- 2
src/pages/index/buildingDetail/components/Pictures/index.jsx View File

@@ -1,10 +1,11 @@
1 1
 import React, { useState, useEffect } from 'react'
2
-import './index.scss'
3
-import '../../../../../assets/css/iconfont.css'
2
+import '@/assets/css/iconfont.css'
4 3
 import { ScrollView, Image } from '@tarojs/components'
4
+import './index.scss'
5 5
 
6 6
 export default function Pictures (props) {
7 7
   const { Data = {} } = props
8
+  const [PageList, setPageList] = useState(['', '', '', '', ''])
8 9
   return (
9 10
     <view className='components Pictures'>
10 11
 
@@ -14,6 +15,34 @@ export default function Pictures (props) {
14 15
         </view>
15 16
       </view>
16 17
 
18
+      <view className='ProjectList'>
19
+        <ScrollView scroll-x>
20
+          {
21
+            PageList.map((item, index) => (
22
+              <view className='ListItem' key={`List-${index}`}>
23
+                <view className='Img'>
24
+                  <Image mode='aspectFill' className='centerLabel' src={null}></Image>
25
+                </view>
26
+                <text className='Title'>效果图(6)</text>
27
+              </view>
28
+            ))
29
+          }
30
+        </ScrollView>
31
+      </view>
32
+
33
+      <view className='Bottom'>
34
+        <view>
35
+          <view>
36
+            <text className='iconfont icon-shengming'></text>
37
+            <text>免责声明</text>
38
+          </view>
39
+          <view>
40
+            <text>&emsp;&emsp;以上价格仅供参考,具体一房一价的信息以售楼处展示为准。房屋位置交通、医疗、教育、商业等配套信息,来源于第三方不作为要约,仅供参考,双方具体权利义务应以法律规定及买卖合同约定为准。本平台对项目周边文化教育的介绍旨在提供相关信息1 意味着信息发布方对就学安排作出承诺。相关教育资首页信息存在调整的可能,应以政府教育主管部门门及办学颁布的政策规定为准。详情请仔细阅读</text>
41
+            <text className='active'>《新联家使用免责条款》</text>
42
+          </view>
43
+        </view>
44
+      </view>
45
+
17 46
     </view>
18 47
   )
19 48
 }

+ 76
- 1
src/pages/index/buildingDetail/components/Pictures/index.scss View File

@@ -1,9 +1,10 @@
1 1
 .components.Pictures {
2 2
   position: relative;
3 3
   overflow: hidden;
4
-  padding: 40px 30px;
4
+  padding: 40px 0;
5 5
   >.Title {
6 6
     align-items: center;
7
+    padding: 0 30px;
7 8
     >.flex-item {
8 9
       >text {
9 10
         display: block;
@@ -19,4 +20,78 @@
19 20
       color: #A1A1A1;
20 21
     }
21 22
   }
23
+  >.ProjectList {
24
+    position: relative;
25
+    overflow: hidden;
26
+    margin-top: 30px;
27
+    height: 224px;
28
+    >scroll-view {
29
+      width: 100%;
30
+      height: 100%;
31
+      font-size: 0;
32
+      white-space: nowrap;
33
+      position: relative;
34
+      overflow: visible;
35
+      .ListItem {
36
+        width: 218px;
37
+        height: 100%;
38
+        margin-left: 18px;
39
+        display: inline-block;
40
+        vertical-align: middle;
41
+        position: relative;
42
+        overflow: hidden;
43
+        &:first-child {
44
+          margin-left: 30px;
45
+        }
46
+        &:last-child {
47
+          margin-right: 30px;
48
+        }
49
+        >.Img {
50
+          width: 100%;
51
+          padding-bottom: 75%;
52
+          position: relative;
53
+          overflow: hidden;
54
+          background: #eee;
55
+          border-bottom: rgba(0, 0, 0, 0.12);
56
+          border-radius: 12px;
57
+          >image {
58
+            width: 100%;
59
+            height: 100%;
60
+          }
61
+        }
62
+        >.Title {
63
+          display: block;
64
+          text-align: center;
65
+          font-size: 28px;
66
+          line-height: 40px;
67
+          margin-top: 20px;
68
+          color: #353535;
69
+        }
70
+      }
71
+    }
72
+  }
73
+  >.Bottom {
74
+    padding: 0 30px 30px;
75
+    position: relative;
76
+    overflow: hidden;
77
+    margin-top: 36px;
78
+    >view {
79
+      padding: 30px;
80
+      position: relative;
81
+      overflow: hidden;
82
+      background: #F8F8F8;
83
+      border-radius: 8px;
84
+      >view {
85
+        >text {
86
+          font-size: 20px;
87
+          color: #999;
88
+          line-height: 30px;
89
+          letter-spacing: 2px;
90
+          &.active {
91
+            color: #193C83;
92
+          }
93
+        }
94
+      }
95
+    }
96
+  }
22 97
 }

+ 13
- 3
src/pages/index/buildingDetail/components/ProjectDynamic/index.jsx View File

@@ -1,7 +1,6 @@
1
-import React, { useState, useEffect } from 'react'
1
+// import React, { useState, useEffect } from 'react'
2
+import '@/assets/css/iconfont.css'
2 3
 import './index.scss'
3
-import '../../../../../assets/css/iconfont.css'
4
-import { ScrollView, Image } from '@tarojs/components'
5 4
 
6 5
 export default function ProjectDynamic (props) {
7 6
   const { Data = {} } = props
@@ -16,6 +15,17 @@ export default function ProjectDynamic (props) {
16 15
         <text className='iconfont icon-jiantouright'></text>
17 16
       </view>
18 17
 
18
+      <view className='Nav'>
19
+        <text>楼盘资讯(8)</text>
20
+        <text>最新活动(1)</text>
21
+      </view>
22
+
23
+      <view className='Info'>
24
+        <text className='Time'>2020年5月20日</text>
25
+        <text className='Title'>山和九著府预计5月加推5号楼</text>
26
+        <text className='Desc'>山和九著府预计5月加推5号楼,目前在售房源位于89号楼,均价26400元/㎡,户型建筑面积82、89、112㎡,预计2023年6月交付。</text>
27
+      </view>
28
+
19 29
     </view>
20 30
   )
21 31
 }

+ 47
- 0
src/pages/index/buildingDetail/components/ProjectDynamic/index.scss View File

@@ -19,4 +19,51 @@
19 19
       color: #A1A1A1;
20 20
     }
21 21
   }
22
+  >.Nav {
23
+    font-size: 0;
24
+    white-space: nowrap;
25
+    margin-top: 30px;
26
+    >text {
27
+      display: inline-block;
28
+      vertical-align: middle;
29
+      font-size: 28px;
30
+      line-height: 56px;
31
+      color: #333;
32
+      border-radius: 56px;
33
+      background: #F8F8F8;
34
+      padding: 0 20px;
35
+      min-width: 148px;
36
+      text-align: center;
37
+      margin-left: 30px;
38
+      &:first-child {
39
+        margin-left: 0;
40
+      }
41
+    }
42
+  }
43
+  >.Info {
44
+    position: relative;
45
+    overflow: hidden;
46
+    >text {
47
+      display: block;
48
+      &.Time {
49
+        font-size: 28px;
50
+        line-height: 40px;
51
+        margin-top: 28px;
52
+        color: #1A3B83;
53
+      }
54
+      &.Title {
55
+        font-size: 32px;
56
+        line-height: 44px;
57
+        margin-top: 20px;
58
+        font-weight: bold;
59
+      }
60
+      &.Desc {
61
+        font-size: 28px;
62
+        line-height: 40px;
63
+        margin-top: 20px;
64
+        color: #A1A1A1;
65
+        text-indent: 2em;
66
+      }
67
+    }
68
+  }
22 69
 }

+ 40
- 2
src/pages/index/buildingDetail/components/PropertyConsultant/index.jsx View File

@@ -1,10 +1,19 @@
1 1
 import React, { useState, useEffect } from 'react'
2
+import { Image } from '@tarojs/components'
3
+import '@/assets/css/iconfont.css'
2 4
 import './index.scss'
3
-import '../../../../../assets/css/iconfont.css'
4
-import { ScrollView, Image } from '@tarojs/components'
5 5
 
6 6
 export default function PropertyConsultant (props) {
7
+
7 8
   const { Data = {} } = props
9
+  const [TipsList] = useState([
10
+    {name: '官方保障', icon: 'icon-baozhang'},
11
+    {name: '免费咨询', icon: 'icon-zixun'},
12
+    {name: '户型解读', icon: 'icon-jiedu'},
13
+    {name: '贴心服务', icon: 'icon-tiexin'}
14
+  ])
15
+  const [PageList, setPageList] = useState(['', '', ''])
16
+
8 17
   return (
9 18
     <view className='components PropertyConsultant'>
10 19
 
@@ -16,6 +25,35 @@ export default function PropertyConsultant (props) {
16 25
         <text className='iconfont icon-jiantouright'></text>
17 26
       </view>
18 27
 
28
+      <view className='TipsList flex-h'>
29
+        {
30
+          TipsList.map((item, index) => (
31
+            <view className='flex-item' key={`TipsItem-${index}`}>
32
+              <text className={`iconfont ${item.icon}`}></text>
33
+              <text>{item.name}</text>
34
+            </view>
35
+          ))
36
+        }
37
+      </view>
38
+
39
+      <view className='PersonList'>
40
+        {
41
+          PageList.map((item, index) => (
42
+            <view key={`PersonItem-${index}`} className='flex-h'>
43
+              <view className='Icon'>
44
+                <Image mode='aspectFill' src={null}></Image>
45
+              </view>
46
+              <view className='flex-item'>
47
+                <text>陶虹</text>
48
+                <text>好评经纪人,熟悉楼盘特色</text>
49
+              </view>
50
+              <text className='iconfont icon-liaotian Chat'></text>
51
+              <text className='iconfont icon-dianhua Phone'></text>
52
+            </view>
53
+          ))
54
+        }
55
+      </view>
56
+
19 57
     </view>
20 58
   )
21 59
 }

+ 80
- 0
src/pages/index/buildingDetail/components/PropertyConsultant/index.scss View File

@@ -19,4 +19,84 @@
19 19
       color: #A1A1A1;
20 20
     }
21 21
   }
22
+  >.TipsList {
23
+    position: relative;
24
+    overflow: hidden;
25
+    margin-top: 28px;
26
+    >view.flex-item {
27
+      font-size: 0;
28
+      white-space: nowrap;
29
+      text-align: center;
30
+      flex: 3;
31
+      &:first-child {
32
+        flex: 2;
33
+        text-align: left;
34
+      }
35
+      &:last-child {
36
+        flex: 2;
37
+        text-align: right;
38
+      }
39
+      >text {
40
+        display: inline-block;
41
+        vertical-align: middle;
42
+        font-size: 22px;
43
+        color: #888;
44
+        line-height: 32px;
45
+      }
46
+    }
47
+  }
48
+  >.PersonList {
49
+    position: relative;
50
+    overflow: hidden;
51
+    margin-top: 34px;
52
+    >view {
53
+      align-items: center;
54
+      margin-top: 52px;
55
+      &:first-child {
56
+        margin-top: 0;
57
+      }
58
+      >.Icon {
59
+        width: 88px;
60
+        height: 88px;
61
+        position: relative;
62
+        overflow: hidden;
63
+        border-radius: 100%;
64
+        background: #eee;
65
+        >image {
66
+          width: 100%;
67
+          height: 100%;
68
+        }
69
+      }
70
+      >.flex-item {
71
+        margin-left: 24px;
72
+        >text {
73
+          display: block;
74
+          white-space: nowrap;
75
+          font-size: 26px;
76
+          color: #666;
77
+          line-height: 36px;
78
+          margin-top: 4px;
79
+          &:first-child {
80
+            margin-top: 0;
81
+            font-size: 32px;
82
+            color: #333;
83
+          }
84
+        }
85
+      }
86
+      >text {
87
+        font-size: 48px;
88
+        width: 80px;
89
+        line-height: 80px;
90
+        text-align: center;
91
+        border-radius: 100%;
92
+        background: rgba(251, 171, 87, 0.12);
93
+        color: #FBAB57;
94
+        margin-left: 40px;
95
+        &:last-child {
96
+          color: #81BC4B;
97
+          background: rgba(129, 188, 75, 0.12);
98
+        }
99
+      }
100
+    }
101
+  }
22 102
 }

+ 4
- 11
src/pages/index/buildingDetail/index.jsx View File

@@ -1,7 +1,7 @@
1
-import React, { useState, useEffect } from 'react'
1
+import { useState, useEffect } from 'react'
2 2
 import withLayout from '@/layout'
3
+import { ScrollView } from '@tarojs/components'
3 4
 import './index.scss'
4
-import { ScrollView, Image } from '@tarojs/components'
5 5
 import '../../../assets/css/iconfont.css'
6 6
 import DetailBottom from './components/DetailBottom/index'
7 7
 import BasicInfo from './components/BasicInfo/index'
@@ -15,10 +15,8 @@ import LivingActivity from './components/LivingActivity/index'
15 15
 import News from './components/News/index'
16 16
 import Pictures from './components/Pictures/index'
17 17
 
18
-export default withLayout((props) => {
18
+export default withLayout(() => {
19 19
 
20
-  // const [PageProps] = useState(props)
21
-  const [PageList, setPageList] = useState(['', '', '', '', '', '', '', '', '', '', '', '', ''])
22 20
   const [IsPull, setPull] = useState(false)
23 21
   const [PullTimer, setPullTimer] = useState(null)
24 22
 
@@ -40,7 +38,7 @@ export default withLayout((props) => {
40 38
 
41 39
       <view className='flex-item'>
42 40
         <view>
43
-          <ScrollView scroll-y={true} refresher-enabled={false} refresher-triggered={IsPull} onrefresherrefresh={PageRefresh} refresher-background='#f8f8f8'>
41
+          <ScrollView scroll-y refresher-enabled={false} refresher-triggered={IsPull} onrefresherrefresh={PageRefresh} refresher-background='#f8f8f8'>
44 42
             <view className='PageContent'>
45 43
 
46 44
               {/* banner */}
@@ -107,11 +105,6 @@ export default withLayout((props) => {
107 105
 
108 106
               </view>
109 107
 
110
-              {/* bottom */}
111
-              <view className='ScrollBottom'>
112
-                <text>已经到底了~</text>
113
-              </view>
114
-
115 108
             </view>
116 109
           </ScrollView>
117 110
         </view>

+ 4
- 4
src/pages/index/components/Banner/index.jsx View File

@@ -1,17 +1,17 @@
1
-import React, { useState, useEffect } from 'react'
2
-import './index.scss'
1
+
3 2
 import { Swiper, SwiperItem, Image } from '@tarojs/components'
4 3
 import { getImgURL } from '@/utils/image'
4
+import './index.scss'
5 5
 
6 6
 export default function Banner (props) {
7 7
   const { List = [] } = props
8 8
   return (
9 9
     <view className='components Banner'>
10
-      <Swiper autoplay={true} interval={2000} indicator-dots={true}>
10
+      <Swiper autoplay interval={2000} indicator-dots>
11 11
         {
12 12
           List.map((item, index) => (
13 13
             <SwiperItem key={`Banner-${index}`}>
14
-              <view className="swiper-item">
14
+              <view className='swiper-item'>
15 15
                 <Image mode='aspectFill' className='centerLabel' src={getImgURL(item.image)} />
16 16
               </view>
17 17
             </SwiperItem>

+ 4
- 4
src/pages/index/components/HotRecommend/index.jsx View File

@@ -1,12 +1,12 @@
1
-import React, { useState, useEffect } from 'react'
2
-import './index.scss'
3
-import '../../../../assets/css/iconfont.css'
1
+import { useState, useEffect } from 'react'
4 2
 import { useSelector } from 'react-redux'
5 3
 import Taro from '@tarojs/taro'
6 4
 import { fetch } from '@/utils/request'
7 5
 import { API_ACTIVITY_LIST } from '@/constants/api'
6
+import './index.scss'
7
+import '../../../../assets/css/iconfont.css'
8 8
 
9
-export default function HotRecommend (props) {
9
+export default function HotRecommend () {
10 10
 
11 11
   const city = useSelector(state => state.city)
12 12
   const [MenuList] = useState([{ name: '热门活动', id: 1 }, { name: '热门团房', id: 2 }])

+ 7
- 9
src/pages/index/components/LiveSale/index.jsx View File

@@ -1,15 +1,13 @@
1
-import React, { useState, useEffect, } from 'react'
2
-import './index.scss'
3
-import '../../../../assets/css/iconfont.css'
1
+import { useState, useEffect } from 'react'
4 2
 import { ScrollView, Image } from '@tarojs/components'
5
-import Taro from '@tarojs/taro'
6
-import emptyImg from '@/assets/empty.png'
7 3
 import { useSelector } from 'react-redux'
8 4
 import { fetch } from '@/utils/request'
9 5
 import { getImgURL } from '@/utils/image'
10
-import { API_LIVE_DEATIL } from '@/constants/api'
6
+import { API_LIVE_LIST } from '@/constants/api'
7
+import './index.scss'
8
+import '../../../../assets/css/iconfont.css'
11 9
 
12
-export default function LiveSale (props) {
10
+export default function LiveSale () {
13 11
 
14 12
   const city = useSelector(state => state.city)
15 13
   const [MenuList] = useState([{ name: '全部', id: 1 }, { name: '预告', id: 2 }, { name: '直播中', id: 3 }, { name: '新房推荐', id: 4 }])
@@ -23,7 +21,7 @@ export default function LiveSale (props) {
23 21
   }, [city])
24 22
 
25 23
   const GetLiveList = () => {
26
-    fetch({url: API_LIVE_DEATIL, method: 'get', payload: {cityId: city.curCity.id, pageNum: 1, pageSize: 20}}).then((res) => {
24
+    fetch({url: API_LIVE_LIST, method: 'get', payload: {cityId: city.curCity.id, pageNum: 1, pageSize: 20}}).then((res) => {
27 25
       setPageList(res.records || [])
28 26
     })
29 27
   }
@@ -45,7 +43,7 @@ export default function LiveSale (props) {
45 43
           }
46 44
         </view>
47 45
         <view className='Content'>
48
-          <ScrollView scroll-x={true}>
46
+          <ScrollView scroll-x>
49 47
             {
50 48
               PageList.map((item, index) => (
51 49
                 <view className='ListItem' key={`List-${index}`} style={{display: CurrentId === 1 || (CurrentId === 2 && item.kind === 'notice') || (CurrentId === 3 && item.kind === 'live')  || (CurrentId === 4 && item.kind !== 'notice') ? 'inline-block' : 'none'}}>

+ 12
- 13
src/pages/index/index.jsx View File

@@ -1,5 +1,10 @@
1
-import React, { useState, useEffect } from 'react'
1
+import { useState, useEffect } from 'react'
2 2
 import withLayout from '@/layout'
3
+import { ScrollView } from '@tarojs/components'
4
+import Taro from '@tarojs/taro'
5
+import { useSelector } from 'react-redux'
6
+import { fetch } from '@/utils/request'
7
+import { API_BANNER_LIST, API_INDEX_PROJECTS } from '@/constants/api'
3 8
 import './index.scss'
4 9
 import Location from './components/Location/index'
5 10
 import Banner from './components/Banner/index'
@@ -8,16 +13,10 @@ import HotRecommend from './components/HotRecommend/index'
8 13
 import LiveSale from './components/LiveSale/index'
9 14
 import ColumnTitle from './components/ColumnTitle/index'
10 15
 import ProjectListItem from '../../components/ProjectListItem/index'
11
-import { ScrollView } from '@tarojs/components'
12
-import Taro from '@tarojs/taro'
13
-import { useSelector } from 'react-redux'
14
-import { fetch } from '@/utils/request'
15
-import { API_BANNER_LIST, API_INDEX_PROJECTS } from '@/constants/api'
16 16
 
17
-export default withLayout((props) => {
17
+export default withLayout(() => {
18 18
 
19 19
   const city = useSelector(state => state.city)
20
-  const [PageProps] = useState(props)
21 20
   const [BannerList, setBannerList] = useState([])
22 21
   const [ProjectList, setProjectList] = useState([])
23 22
   const [IsPull, setPull] = useState(false)
@@ -58,11 +57,11 @@ export default withLayout((props) => {
58 57
   return (
59 58
     <view className='Page Index'>
60 59
 
61
-      <ScrollView scroll-y={true} refresher-enabled={true} refresher-triggered={IsPull} onrefresherrefresh={PageRefresh} refresher-background='#fff'>
60
+      <ScrollView scroll-y refresher-enabled refresher-triggered={IsPull} onrefresherrefresh={PageRefresh} refresher-background='#fff'>
62 61
         <view className='PageContent'>
63 62
 
64 63
           {/* 定位 */}
65
-          <view className="Location">
64
+          <view className='Location'>
66 65
             <Location></Location>
67 66
           </view>
68 67
 
@@ -82,19 +81,19 @@ export default withLayout((props) => {
82 81
 
83 82
           {/* 热门推荐 */}
84 83
           <view className='HotRecommend'>
85
-            <ColumnTitle Name='热门推荐' Icon="icon-shoucang"></ColumnTitle>
84
+            <ColumnTitle Name='热门推荐' Icon='icon-shoucang'></ColumnTitle>
86 85
             <HotRecommend></HotRecommend>
87 86
           </view>
88 87
 
89 88
           {/* 直播购房 */}
90 89
           <view className='LiveSale'>
91
-            <ColumnTitle Name='直播购房' Icon="icon-yinpin" ShowMore={true} ToMore={() => { Taro.switchTab({ url: `/pages/video/index` }) }}></ColumnTitle>
90
+            <ColumnTitle Name='直播购房' Icon='icon-yinpin' ShowMore ToMore={() => { Taro.switchTab({ url: `/pages/video/index` }) }}></ColumnTitle>
92 91
             <LiveSale></LiveSale>
93 92
           </view>
94 93
 
95 94
           {/* 全部项目 */}
96 95
           <view className='AllProject'>
97
-            <ColumnTitle Name='全部项目' Icon="icon-aixin" ShowMore={true} ToMore={() => { Taro.navigateTo({ url: `/pages/index/buildingList/index` }) }}></ColumnTitle>
96
+            <ColumnTitle Name='全部项目' Icon='icon-aixin' ShowMore ToMore={() => { Taro.navigateTo({ url: `/pages/index/buildingList/index` }) }}></ColumnTitle>
98 97
             <view className='ProjectList'>
99 98
               {
100 99
                 ProjectList.map((item, index) => (

+ 25
- 11
src/pages/mine/index.jsx View File

@@ -1,22 +1,36 @@
1
-import React, { useState, useEffect } from 'react'
1
+import { useState, useEffect } from 'react'
2
+import { useSelector } from 'react-redux'
2 3
 import withLayout from '@/layout'
4
+import { ScrollView, Image } from '@tarojs/components'
5
+import Taro from '@tarojs/taro'
3 6
 import './index.scss'
4 7
 import NeedLogin from './components/NeedLogin'
5
-import { ScrollView, Image } from '@tarojs/components'
6 8
 import '../../assets/css/iconfont.css'
7 9
 import MineMenuList from './tabData'
8
-import Taro from '@tarojs/taro'
9 10
 
10
-export default withLayout((props) => {
11
+export default withLayout(() => {
11 12
 
12
-  const [PageProps] = useState(props)
13
-  console.log(`PageProps`, PageProps.person)
14
-  const UserRole = PageProps.person.personType === 'customer' ? 1 : PageProps.person.personType === 'estate agent' ? 2 : PageProps.person.personType === 'Realty Consultant' ? 3 : 4 // 1-普通用户 2-经纪人 3-置业顾问 4-驻场管理
15
-  const [MenuList, setMenuList] = useState(UserRole === 1 ? MineMenuList.User : UserRole === 2 ? MineMenuList.Broker : UserRole === 3 ? MineMenuList.Adviser : MineMenuList.Resident)
13
+  const user = useSelector(state => state.user)
14
+  const [UserRole, setUserRole] = useState(null) // 1-普通用户 2-经纪人 3-置业顾问 4-驻场管理
15
+  const [MenuList, setMenuList] = useState([])
16 16
   const [IsPull, setPull] = useState(false)
17 17
   const [ShowLogin, setShowLogin] = useState(false)
18 18
   const [PullTimer, setPullTimer] = useState(null)
19 19
 
20
+  useEffect(() => {
21
+    setShowLogin(false)
22
+    if(user?.userInfo?.person?.personId) {
23
+      const person = user.userInfo.person
24
+      setUserRole(person.personType === 'customer' || person.personType === 'drift' ? 1 : person.personType === 'estate agent' ? 2 : person.personType === 'Realty Consultant' ? 3 : 4)
25
+    }
26
+  }, [user])
27
+
28
+  useEffect(() => {
29
+    if(UserRole !== null) {
30
+      setMenuList(UserRole === 1 ? MineMenuList.User : UserRole === 2 ? MineMenuList.Broker : UserRole === 3 ? MineMenuList.Adviser : MineMenuList.Resident)
31
+    }
32
+  }, [UserRole])
33
+
20 34
   const PageRefresh = () => { // 页面下拉刷新回调
21 35
     setPull(true)
22 36
   }
@@ -41,7 +55,7 @@ export default withLayout((props) => {
41 55
   return (
42 56
     <view className='Page Mine'>
43 57
 
44
-      <ScrollView scroll-y={true} refresher-enabled={true} refresher-triggered={IsPull} onrefresherrefresh={PageRefresh} refresher-background='#fff'>
58
+      <ScrollView scroll-y refresher-enabled refresher-triggered={IsPull} onrefresherrefresh={PageRefresh} refresher-background='#fff'>
45 59
         <view className='PageContent'>
46 60
 
47 61
           {/* 需要登录 */}
@@ -58,12 +72,12 @@ export default withLayout((props) => {
58 72
               {/* 用户信息 */}
59 73
               <view className='UserInfo'>
60 74
                 <view className='UserIcon'>
61
-                  <Image mode='aspectFill' className='centerLabel' src={PageProps.person.avatarurl || require('../../assets/mine-icon18.png')} />
75
+                  <Image mode='aspectFill' className='centerLabel' src={user?.userInfo?.person?.avatarurl || require('../../assets/mine-icon18.png')} />
62 76
                 </view>
63 77
                 <view className='OtherInfo'>
64 78
                   <view className='Name'>
65 79
                     <view>
66
-                      <text>{PageProps.person.nickname}</text>
80
+                      <text>{user?.userInfo?.person?.nickname}</text>
67 81
                       <view>
68 82
                         <text className='iconfont icon-bianji' onClick={() => { Taro.navigateTo({ url: `/pages/mine/userInfo/index` }) }}></text>
69 83
                         <text onClick={() => { Taro.navigateTo({ url: `/pages/mine/userInfo/index` }) }}>个人信息资料修改</text>

+ 5
- 7
src/pages/video/components/VideoListItem/index.jsx View File

@@ -1,4 +1,5 @@
1
-import React, { useState, useEffect } from 'react'
1
+import { getImgURL } from '@/utils/image'
2
+import { Image } from '@tarojs/components'
2 3
 import './index.scss'
3 4
 
4 5
 export default function VideoListItem (props) {
@@ -7,20 +8,17 @@ export default function VideoListItem (props) {
7 8
     <view className='components VideoListItem'>
8 9
       <view className='Img'>
9 10
         <view>
10
-          {
11
-            Data.img &&
12
-            <Image mode='aspectFill' className='centerLabel' src={Data.img || null} />
13
-          }
11
+          <Image mode='aspectFill' className='centerLabel' src={getImgURL(Data.images) || null} />
14 12
         </view>
15 13
       </view>
16 14
       <view className='Title'>
17
-        <text>{Data.title || '这是一条直播视频的标题请你关注一下...'}</text>
15
+        <text>{Data.title}</text>
18 16
       </view>
19 17
       <view className='Location flex-h'>
20 18
         <text className='iconfont icon-dingwei'></text>
21 19
         <view className='flex-item'>
22 20
           <view>
23
-            <text>{Data.location || '南京万科九都荟'}</text>
21
+            <text>{Data.cityName}</text>
24 22
           </view>
25 23
         </view>
26 24
       </view>

+ 55
- 13
src/pages/video/index.jsx View File

@@ -1,24 +1,66 @@
1
-import React, { useState, useEffect } from 'react'
1
+import { useState, useEffect } from 'react'
2
+import { ScrollView } from '@tarojs/components'
2 3
 import withLayout from '@/layout'
4
+import { useSelector } from 'react-redux'
5
+import { fetch } from '@/utils/request'
6
+import { API_LIVE_LIST } from '@/constants/api'
3 7
 import './index.scss'
4
-import { ScrollView } from '@tarojs/components'
5 8
 import '../../assets/css/iconfont.css'
6 9
 import VideoListItem from './components/VideoListItem/index'
7 10
 
8
-export default withLayout((props) => {
11
+export default withLayout(() => {
9 12
 
10
-  // const [PageProps] = useState(props)
13
+  const city = useSelector(state => state.city)
11 14
   const [IsPull, setPull] = useState(false)
12
-  const [CurrnetMenuId, setCurrnetMenuId] = useState(1)
13
-  const [MenuList, setMenuList] = useState([
14
-    { name: '全部', id: 1 },
15
-    { name: '预告', id: 2 },
16
-    { name: '直播中', id: 3 },
17
-    { name: '新房推荐', id: 4 },
18
-    { name: '视频', id: 5 }
15
+  const [CurrnetMenuId, setCurrnetMenuId] = useState(null)
16
+  const [MenuList] = useState([
17
+    { name: '全部', id: 'all' },
18
+    { name: '预告', id: 'notice' },
19
+    { name: '直播中', id: 'live' },
20
+    { name: '新房推荐', id: 'new' }
19 21
   ])
20 22
   const [PullTimer, setPullTimer] = useState(null)
21
-  const [PageList, setPageList] = useState(['', '', '', '', '', '', '', '', '', '', '', '', ''])
23
+  const [OriginList, setOriginList] = useState([])
24
+  const [PageList, setPageList] = useState([])
25
+
26
+  useEffect(() => {
27
+    if (city.curCity.name) {
28
+      setOriginList([])
29
+      GetLiveList()
30
+    }
31
+  }, [city])
32
+
33
+  useEffect(() => {
34
+    if(OriginList.length && CurrnetMenuId === null) {
35
+      setCurrnetMenuId('all')
36
+    }
37
+  }, [OriginList])
38
+
39
+  useEffect(() => {
40
+    if (CurrnetMenuId === 'all') {
41
+      setPageList([...OriginList])
42
+    } else {
43
+      let Arr = []
44
+      OriginList.map((item) => {
45
+        if (CurrnetMenuId === 'new') {
46
+          if(item.kind !== 'notice') {
47
+            Arr.push({...item})
48
+          }
49
+        } else {
50
+          if(item.kind === CurrnetMenuId) {
51
+            Arr.push({...item})
52
+          }
53
+        }
54
+      })
55
+      setPageList([...Arr])
56
+    }
57
+  }, [CurrnetMenuId])
58
+
59
+  const GetLiveList = () => {
60
+    fetch({ url: API_LIVE_LIST, method: 'get', payload: { cityId: city.curCity.id, pageNum: 1, pageSize: 10000 } }).then((res) => {
61
+      setOriginList(res.records || [])
62
+    })
63
+  }
22 64
 
23 65
   const PageRefresh = () => { // 页面下拉刷新回调
24 66
     setPull(true)
@@ -65,7 +107,7 @@ export default withLayout((props) => {
65 107
 
66 108
       <view className='flex-item'>
67 109
         <view>
68
-          <ScrollView scroll-y={true} refresher-enabled={true} refresher-triggered={IsPull} onrefresherrefresh={PageRefresh} refresher-background='#f8f8f8'>
110
+          <ScrollView scroll-y refresher-enabled refresher-triggered={IsPull} onrefresherrefresh={PageRefresh} refresher-background='#f8f8f8'>
69 111
             <view className='PageContent'>
70 112
               {
71 113
                 PageList.map((item, index) => (

+ 0
- 2
src/pages/video/index.scss View File

@@ -63,8 +63,6 @@
63 63
           }
64 64
         }
65 65
         &:last-child {
66
-          flex: 1;
67
-          -webkit-flex: 1;
68 66
           text-align: right;
69 67
         }
70 68
         &.active {