liujq 4 years ago
parent
commit
2f24a83f4c
62 changed files with 871 additions and 156 deletions
  1. 4 1
      src/api/house.js
  2. 6 0
      src/api/news.js
  3. 1 0
      src/app.jsx
  4. 17 0
      src/app.scss
  5. 8 0
      src/assets/css/form.scss
  6. BIN
      src/assets/img/i_g_heart.png
  7. BIN
      src/assets/img/i_g_heart2.png
  8. BIN
      src/assets/img/icon_ex.jpg
  9. BIN
      src/assets/img/icon_g_qa.gif
  10. BIN
      src/assets/img/images/ex_banner.jpg
  11. BIN
      src/assets/img/images/icon_g_share.png
  12. BIN
      src/assets/img/images/icon_g_share3.png
  13. BIN
      src/assets/img/xqbanner.jpg
  14. 40 3
      src/components/lform/MultiSelect.jsx
  15. 43 4
      src/components/lform/RadioSelect.jsx
  16. 4 3
      src/pages/index/components/qa/index.jsx
  17. BIN
      src/pages/index/img/toper_bg.jpg
  18. 15 6
      src/pages/index/index.jsx
  19. 4 5
      src/pages/index/index.scss
  20. 11 11
      src/pagesHouse/index.jsx
  21. 33 15
      src/pagesHouse/indexDtl.jsx
  22. 3 3
      src/pagesHouse/indexDtl.scss
  23. 2 1
      src/pagesHouse/indexDtlAround.jsx
  24. 1 1
      src/pagesHouse/indexDtlMore.jsx
  25. 51 16
      src/pagesHouse/list.jsx
  26. 9 6
      src/pagesHouse/pkDtl.jsx
  27. 3 1
      src/pagesHouse/pkDtl.scss
  28. 1 2
      src/pagesHouse/pkList.jsx
  29. 2 2
      src/pagesHouse/pkList.scss
  30. 148 0
      src/pagesHouse/price.jsx
  31. 72 0
      src/pagesHouse/price.scss
  32. 1 1
      src/pagesHouse/search.jsx
  33. 1 1
      src/pagesMore/comment/dtl.jsx
  34. BIN
      src/pagesMore/news/img/banner/fx_b4.jpg
  35. BIN
      src/pagesMore/news/img/banner/fx_b7.jpg
  36. 47 21
      src/pagesMore/news/index.jsx
  37. 21 6
      src/pagesMore/news/index.scss
  38. 82 11
      src/pagesMore/news/list.jsx
  39. 27 1
      src/pagesMore/news/list.scss
  40. 13 8
      src/pagesMore/qa/add.jsx
  41. 13 4
      src/pagesMore/qa/add.scss
  42. 20 7
      src/pagesMore/qa/dtl.jsx
  43. 10 0
      src/pagesMore/qa/list.jsx
  44. 11 3
      src/pagesPlan/apply.jsx
  45. 27 3
      src/pagesSchool/area.jsx
  46. 34 3
      src/pagesSchool/area.scss
  47. 4 0
      src/pagesSchool/class.jsx
  48. 11 0
      src/pagesSchool/class.scss
  49. 1 1
      src/pagesSchool/components/indexDtl/comment/index.jsx
  50. 7 1
      src/pagesSchool/components/indexDtl/range/index.jsx
  51. 0 1
      src/pagesSchool/houseList.jsx
  52. BIN
      src/pagesSchool/img/area/xq01.png
  53. BIN
      src/pagesSchool/img/area/xq02.png
  54. BIN
      src/pagesSchool/img/area/xq03.png
  55. BIN
      src/pagesSchool/img/area/xq04.png
  56. BIN
      src/pagesSchool/img/area/xq05.png
  57. BIN
      src/pagesSchool/img/area/xq06.png
  58. 1 0
      src/pagesSchool/index.jsx
  59. 41 1
      src/pagesSchool/indexDtl.jsx
  60. 16 1
      src/pagesSchool/indexDtl.scss
  61. 1 0
      src/pagesSchool/theme.jsx
  62. 4 2
      src/utils/tool.js

+ 4 - 1
src/api/house.js

@@ -55,7 +55,7 @@ export default {
     return request('/api/school/comment/onelevel', params)
   },
   estateonelevellist: params => { // 一级评论列表接口
-    return request('/api/estate/onelevel/list', params)
+    return request('/api/estate/comment/onelevel', params)
   },
   estatephotolist: params => { // 楼盘相册接口
     return request('/api/estate/photo/list', params)
@@ -96,4 +96,7 @@ export default {
   apiestatelotterydetail: params => { // 摇号 - 楼盘详情
     return request('/api/estate/lottery/detail', params)
   },
+  apiestatepricelist: params => { // 成交价 - 列表
+    return request('/api/estate/price/list', params)
+  },
 }

+ 6 - 0
src/api/news.js

@@ -27,6 +27,12 @@ export default {
   apiansweradd: params => { // 问答-答案添加
     return request('/api/answer/add', params)
   },
+  apianswerzan: params => { // 问答-问答点赞
+    return request('/api/answer/zan', params)
+  },
+  apianswerunzan: params => { // 问答-问答取消点赞
+    return request('/api/answer/unzan', params)
+  },
   apilandlist: params => { // 土拍-土拍列表
     return request('/api/land/list', params)
   },

+ 1 - 0
src/app.jsx

@@ -49,6 +49,7 @@ class App extends Component {
           'pkList',
           'pkDtl',
           'pkAdd',
+          'price',
         ]
       },
       {

+ 17 - 0
src/app.scss

@@ -25,8 +25,25 @@
     border-radius: 50%;
     overflow: hidden;
   }
+  .scoped-fix-q2 {
+    position: fixed;
+    bottom: 200px;
+    right: 50px;
+    z-index: 99;
+    width: 156px;
+    height: 166px;
+    &.t2 {
+      bottom: 360px;
+      right: 20px;
+    }
+    .img {
+      width: 156px;
+      height: 166px;
+    }
+  }
 }
 View {
   // font-family: 'pf';
   font-family: 'Microsoft YaHei';
 }
+

+ 8 - 0
src/assets/css/form.scss

@@ -69,6 +69,14 @@
     text-align: left;
     padding: 0;
   }
+  &.border2 {
+    border: 1PX solid #f2f2f2;
+    border-radius: 10px;
+    margin-right: 20px;
+    text-align: left;
+    padding: 10px;
+    height: auto;
+  }
   &.disabled {
     background: #ccc;
     .val {

BIN
src/assets/img/i_g_heart.png


BIN
src/assets/img/i_g_heart2.png


BIN
src/assets/img/icon_ex.jpg


BIN
src/assets/img/icon_g_qa.gif


BIN
src/assets/img/images/ex_banner.jpg


BIN
src/assets/img/images/icon_g_share.png


BIN
src/assets/img/images/icon_g_share3.png


BIN
src/assets/img/xqbanner.jpg


+ 40 - 3
src/components/lform/MultiSelect.jsx

@@ -1,7 +1,7 @@
 import Taro, { Component } from '@tarojs/taro'
 import { View } from '@tarojs/components'
 import { strTrim, arrToObj, noEmpty } from '@utils'
-import { AtDrawer, AtCheckbox } from 'taro-ui'
+import { AtDrawer, AtCheckbox, AtSearchBar } from 'taro-ui'
 import './index.scss'
 import SelectSearch from './SelectSearch'
 import ListMore from '@/c/pageDataList/listMore'
@@ -159,6 +159,31 @@ export default class MultiSelect extends Component {
     })
   }
 
+
+
+  onSeachChange (keyWord) {
+    this.setState({
+      keyWord
+    }, () => {
+      this.getRemoteData()
+    })
+  }
+  onClearHandle () {
+    this.setState({
+      keyWord: '',
+      page: 1
+    }, () => {
+      this.getRemoteData()
+    })
+  }
+  onSelectActionClick () {
+    this.setState({
+      page: 1,
+    }, () => {
+      this.getRemoteData()
+    })
+  }
+
   render () {
     const { remoteOptions, checkedIds, isSSShow, keyWord } = this.state
     const { isShow, keyStr, moreOptions } = this.props
@@ -171,14 +196,26 @@ export default class MultiSelect extends Component {
         mask>
         <View className='multi-select'>
           <View className="l-com-header">
-            <View className="title">{keyStr}选择</View>
             {
+              moreOptions && moreOptions.skey
+              ?
+              <AtSearchBar
+                value={keyWord}
+                placeholder="请输入关键字"
+                onChange={this.onSeachChange.bind(this)}
+                onActionClick={this.onSelectActionClick.bind(this)}
+                onClear={this.onClearHandle.bind(this)}
+              />
+              :<View className="title">{keyStr}选择</View>
+            }
+            {/* <View className="title">{keyStr}选择</View> */}
+            {/* {
               moreOptions && moreOptions.arr
               ? ''
               : moreOptions.skey
               ? <View className={keyWord.length > 0 ? 'right color-danger' : 'right'} onClick={this.openSSPopup.bind(this)}>{keyWord.length > 0 ? '已筛选' : '筛选'}</View>
               : ''
-            }
+            } */}
           </View>
           <View className="ms-main">
             <AtCheckbox

+ 43 - 4
src/components/lform/RadioSelect.jsx

@@ -1,6 +1,6 @@
 import Taro, { Component } from '@tarojs/taro'
 import { View } from '@tarojs/components'
-import { AtDrawer, AtRadio } from 'taro-ui'
+import { AtDrawer, AtRadio, AtSearchBar } from 'taro-ui'
 import './index.scss'
 import { noEmpty } from '@utils'
 import SelectSearch from './SelectSearch'
@@ -67,7 +67,7 @@ export default class RadioSelect extends Component {
     }
     if (keyWord) params[moreOptions.skey] = keyWord
     Taro.api[apiUrlArr[0]][apiUrlArr[1]](params).then(res => {
-      const arr = res.data || res || []
+      const arr = res.list || res || []
       const remoteOptions = []
       arr.forEach(item => {
         const curItem = { label: item[moreOptions.opKey], value: item[moreOptions.opVal], desc: item[moreOptions.opDesc || 'desc'] }
@@ -159,6 +159,33 @@ export default class RadioSelect extends Component {
     })
   }
 
+
+
+  onSeachChange (keyWord) {
+    this.setState({
+      keyWord
+    }, () => {
+      this.getRemoteData()
+    })
+  }
+  onClearHandle () {
+    this.setState({
+      keyWord: '',
+      page: 1
+    }, () => {
+      this.getRemoteData()
+    })
+  }
+  onSelectActionClick () {
+    this.setState({
+      page: 1,
+    }, () => {
+      this.getRemoteData()
+    })
+  }
+
+
+
   render () {
     const { remoteOptions, curVal, isSSShow, keyWord } = this.state
     const { isShow, keyStr, hasFooterNav = false, moreOptions } = this.props
@@ -172,14 +199,26 @@ export default class RadioSelect extends Component {
         mask>
         <View className={boxStr}>
           <View className="l-com-header">
-            <View className="title">{keyStr}选择</View>
             {
+              moreOptions && moreOptions.skey
+              ?
+              <AtSearchBar
+                value={keyWord}
+                placeholder="请输入关键字"
+                onChange={this.onSeachChange.bind(this)}
+                onActionClick={this.onSelectActionClick.bind(this)}
+                onClear={this.onClearHandle.bind(this)}
+              />
+              :<View className="title">{keyStr}选择</View>
+            }
+            {/* <View className="title">{keyStr}选择</View> */}
+            {/* {
               moreOptions && moreOptions.arr
               ? ''
               : moreOptions.skey
               ? <View className={keyWord.length > 0 ? 'right color-danger' : 'right'} onClick={this.openSSPopup.bind(this)}>{keyWord.length > 0 ? '已筛选' : '筛选'}</View>
               : ''
-            }
+            } */}
           </View>
           <View className="ms-main">
             <AtRadio

+ 4 - 3
src/pages/index/components/qa/index.jsx

@@ -30,8 +30,9 @@ export default class QA extends Component {
   }
 
   linkMore () {
-    Taro.redirectTo({
-      url: '/pagesMore/news/index?nav=1'
+    Taro.navigateTo({
+      url: '/pagesMore/qa/list'
+      // url: '/pagesMore/news/index?nav=1'
     })
   }
 
@@ -67,7 +68,7 @@ export default class QA extends Component {
         item.titleStr2 = curStr2.length > 17 ? `${curStr2.substring(0, 17)}...` : curStr2
       }
       return (
-        <Navigator url={'/pagesMore/news/index?nav=1'} className="sq-item" key={index}>
+        <Navigator url={'/pagesMore/qa/list'} className="sq-item" key={index}>
           {/* url={'/pagesMore/news/indexDtl?id=' + item.id} */}
           <View className="q">
             <Image className="img" src={iconQ} />

BIN
src/pages/index/img/toper_bg.jpg


+ 15 - 6
src/pages/index/index.jsx

@@ -242,8 +242,8 @@ class Index extends Component {
         <Navigator url={'/pagesSchool/class'} className="ic-item">
           <View className="ic-item-wrap">
             <View className="ic-t1">热门学区</View>
-            <View className="ic-t2">学区排名</View>
-            <View className="ic-t2">一目了然</View>
+            <View className="ic-t2">热点学校</View>
+            <View className="ic-t2">一网打尽</View>
           </View>
           <Image className="img" src={bg1} />
         </Navigator>
@@ -258,8 +258,8 @@ class Index extends Component {
         <Navigator url={'/pagesHouse/list?type=metro&name=地铁房'} className="ic-item">
           <View className="ic-item-wrap">
             <View className="ic-t1">地铁房</View>
-            <View className="ic-t2">地铁</View>
-            <View className="ic-t2">方便出行</View>
+            <View className="ic-t2">地铁一通</View>
+            <View className="ic-t2">上班不迟到</View>
           </View>
           <Image className="img" src={bg3} />
         </Navigator>
@@ -452,12 +452,21 @@ class Index extends Component {
     })
   }
 
+  renderQaAdd () {
+    const iconGif = require('@img/icon_g_qa.gif')
+    return (
+      <Navigator url={'/pagesMore/qa/add'} className="scoped-fix-q2 t2">
+        <Image className="img" src={iconGif} />
+      </Navigator>
+    )
+  }
+
   render () {
-    const iconShare = require('@img/images/icon_g_share2.png')
+    const iconShare = require('@img/images/icon_g_share3.png')
     const topBg = require('./img/toper_bg.jpg')
-    const { newsList } = this.state
     return (
       <View className="l-box has-footer">
+        {this.renderQaAdd()}
         <View className="scoped-top">
           <Image className="img" src={topBg} />
           <SearchHouse type="home" />

+ 4 - 5
src/pages/index/index.scss

@@ -175,14 +175,13 @@ page {
 .scoped-share {
   position: fixed;
   bottom: 180px;
-  width: 128px;
-  height: 128px;
+  width: 156px;
+  height: 166px;
   right: 20px;
   z-index: 9;
-  border-radius: 50%;
   .img {
-    width: 128px;
-    height: 128px;
+    width: 156px;
+    height: 166px;
   }
 }
 

+ 11 - 11
src/pagesHouse/index.jsx

@@ -503,10 +503,10 @@ class Index extends Component {
     return (
       <View className="house-theme">
         <View className="ht-wrap">
-          <Navigator url={'/pagesHouse/list?type=no_esf&name=新房'} className="ht-item">
+          <Navigator url={'/pagesHouse/list?type=在售,待售,尾盘&name=新房'} className="ht-item">
             <View className="ht-p1">新房</View>
             <View className="ht-p2">产权清晰</View>
-            <View className="ht-p2">简单交易流程</View>
+            <View className="ht-p2">简单交易</View>
             <Image className="ht-bg" src={bg5} />
           </Navigator>
         </View>
@@ -519,34 +519,34 @@ class Index extends Component {
           </Navigator>
         </View>
         <View className="ht-wrap">
-          <Navigator url={'/pagesHouse/list?type=dishoufu&name=刚需上车'} className="ht-item">
+          <Navigator url={'/pagesHouse/list?type=gangxu&name=刚需上车'} className="ht-item">
             <View className="ht-p1">刚需上车</View>
-            <View className="ht-p2">超低首付</View>
-            <View className="ht-p2">高性价比楼盘</View>
+            <View className="ht-p2">安家南昌</View>
+            <View className="ht-p2">其实也不难</View>
             <Image className="ht-bg" src={bg1} />
           </Navigator>
         </View>
         <View className="ht-wrap">
           <Navigator url={'/pagesHouse/list?type=dimiyangfang&name=低密洋房'} className="ht-item">
             <View className="ht-p1">低密洋房</View>
-            <View className="ht-p2">引景入室</View>
-            <View className="ht-p2">公私分明</View>
+            <View className="ht-p2">低容积率</View>
+            <View className="ht-p2">大家都爱</View>
             <Image className="ht-bg" src={bg2} />
           </Navigator>
         </View>
         <View className="ht-wrap">
           <Navigator url={'/pagesHouse/list?type=pingzhiloupan&name=品质楼盘'} className="ht-item">
             <View className="ht-p1">品质楼盘</View>
-            <View className="ht-p2">品质好房</View>
-            <View className="ht-p2">居家梦想</View>
+            <View className="ht-p2">品质OK</View>
+            <View className="ht-p2">住得舒服</View>
             <Image className="ht-bg" src={bg3} />
           </Navigator>
         </View>
         <View className="ht-wrap">
           <Navigator url={'/pagesHouse/list?type=haozhaijingxuan&name=头部资产'} className="ht-item">
             <View className="ht-p1">头部资产</View>
-            <View className="ht-p2">品质生活</View>
-            <View className="ht-p2">从心开始</View>
+            <View className="ht-p2">我等凡人</View>
+            <View className="ht-p2">看看就好</View>
             <Image className="ht-bg" src={bg4} />
           </Navigator>
         </View>

+ 33 - 15
src/pagesHouse/indexDtl.jsx

@@ -237,6 +237,7 @@ class Index extends Component {
     const icon8 = require('./img/dtl/8.png')
     const icon9 = require('./img/dtl/9.png')
     const icon10 = require('./img/dtl/10.png')
+    const icon10s = require('./img/dtl/10s.png')
     return (
       <View className="dtl-entry">
         <Navigator url={'/pagesHouse/produceType?id=' + curId + '&name=' + curObj.estate_name}  className="de-op">
@@ -259,6 +260,19 @@ class Index extends Component {
           <Image className="i" src={icon5} />
           <View className="t">楼盘相册</View>
         </Navigator>
+        {
+          curObj.estate_tag === '二手'
+          ?
+          <Navigator url={`/pagesHouse/price?id=${curId}&name=${curObj.estate_name}`} className="de-op">
+            <Image className="i" src={icon10s} />
+            <View className="t">历史成交</View>
+          </Navigator>
+          :
+          <Navigator url={`/pagesPlan/apply?eId=${curId}`} className="de-op">
+            <Image className="i" src={icon10} />
+            <View className="t">购房优惠</View>
+          </Navigator>
+        }
         <Navigator url={'/pagesMore/comment/list?id=' + curId + '&name=' + curObj.estate_name} className="de-op">
           <Image className="i" src={icon6} />
           <View className="t">楼盘评论</View>
@@ -275,10 +289,6 @@ class Index extends Component {
           <Image className="i" src={icon9} />
           <View className="t">房贷计算</View>
         </Navigator>
-        <Navigator url={`/pagesPlan/apply?eId=${curId}`} className="de-op">
-          <Image className="i" src={icon10} />
-          <View className="t">购房优惠</View>
-        </Navigator>
       </View>
     )
   }
@@ -422,7 +432,7 @@ class Index extends Component {
             <View className="v">{curObj.green_rate || '未知'}%</View>
           </View>
           <View className="do-p">
-            <View className="k">交付时间</View>
+            <View className="k">初次交付</View>
             <View className="v">{curObj.deliver_time || '未知'}</View>
           </View>
         </View>
@@ -595,6 +605,8 @@ class Index extends Component {
     if (lotteryObj.house_img) houseImg = lotteryObj.house_img.split(',')
     let lotteryImg = []
     if (lotteryObj.lottery_img) lotteryImg = lotteryObj.lottery_img.split(',')
+    let infoImg = []
+    if (lotteryObj.info_img) infoImg = lotteryObj.info_img.split(',')
     return (
       <View className="scoped-yh">
         <View className="sy-wrap">
@@ -610,7 +622,7 @@ class Index extends Component {
                     lotteryImg.map((hImg, hi) => {
                       return (
                         <View className="o" key={hi} onClick={this.YHImageHandle.bind(this, hImg, lotteryImg)}>
-                          <Image src={hImg} className="img" />
+                          <Image src={hImg + '_xs'} className="img" />
                           <View className="tips">
                             <View className="bg"></View>
                             <View className="t">查看大图</View>
@@ -635,7 +647,7 @@ class Index extends Component {
                     houseImg.map((hImg, hi) => {
                       return (
                         <View className="o" key={hi} onClick={this.YHImageHandle.bind(this, hImg, houseImg)}>
-                          <Image src={hImg} className="img" />
+                          <Image src={hImg + '_xs'} className="img" />
                           <View className="tips">
                             <View className="bg"></View>
                             <View className="t">查看大图</View>
@@ -649,19 +661,25 @@ class Index extends Component {
             </View>
           }
           {
-            lotteryObj.info_img
+            infoImg.length > 0
             &&
             <View>
               <View className="sy-op">
                 <View className="l">项目公示表</View>
                 <View className="r">
-                  <View className="o" onClick={this.YHImageHandle.bind(this, lotteryObj.info_img, [lotteryObj.info_img])}>
-                    <Image src={lotteryObj.info_img} className="img" />
-                    <View className="tips">
-                      <View className="bg"></View>
-                      <View className="t">查看大图</View>
-                    </View>
-                  </View>
+                  {
+                    infoImg.map((hImg, hi) => {
+                      return (
+                        <View className="o" key={hi} onClick={this.YHImageHandle.bind(this, hImg, houseImg)}>
+                          <Image src={hImg + '_xs'} className="img" />
+                          <View className="tips">
+                            <View className="bg"></View>
+                            <View className="t">查看大图</View>
+                          </View>
+                        </View>
+                      )
+                    })
+                  }
                 </View>
               </View>
             </View>

+ 3 - 3
src/pagesHouse/indexDtl.scss

@@ -143,12 +143,12 @@ page {
     text-align: center;
     &.cur {
       .t {
-        color: $mainColor;
+        color: #e94141;
       }
     }
     .i {
-      width: 40px;
-      height: 34px;
+      width: 60px;
+      height: 60px;
       display: inline-block;
     }
     .t {

+ 2 - 1
src/pagesHouse/indexDtlAround.jsx

@@ -205,7 +205,8 @@ class Index extends Component {
           })
         }
       })
-      const schoolList = curObj.school_list || []
+      let csl = curObj.school_list || {}
+      const schoolList = [...csl.duikou, ...csl.guihua]
       const schoolArr = schoolList.map(slItem => {
         return {
           title: slItem.school_name,

+ 1 - 1
src/pagesHouse/indexDtlMore.jsx

@@ -209,7 +209,7 @@ class Index extends Component {
             <View className="v">{curObj.ownership || '未知'}</View>
           </View>
           <View className="do-p">
-            <View className="k">交付时间</View>
+            <View className="k">初次交付</View>
             <View className="v">{curObj.deliver_time || '未知'}</View>
           </View>
           <View className="do-p">

+ 51 - 16
src/pagesHouse/list.jsx

@@ -655,6 +655,7 @@ class Index extends Component {
         page_size,
         estate_name: searchKey,
         metro_line: curMetroLine,
+        metro_type: curMetroType.join(','),
         area_type: curAreaType.join(','),
         price_range: curHousePriceRange.join(','),
         house_type: curHouseTypeRange.join(','),
@@ -666,13 +667,14 @@ class Index extends Component {
         module_type: module_type
       }
     }
-    if (module_type === '二手' || module_type === 'no_esf') {
+    if (module_type === '二手' || module_type === '在售,待售,尾盘') {
       apiStr = 'admestatelist'
       params = {
         page,
         page_size,
         estate_name: searchKey,
         metro_line: curMetroLine,
+        metro_type: curMetroType.join(','),
         area_type: curAreaType.join(','),
         price_range: curHousePriceRange.join(','),
         house_type: curHouseTypeRange.join(','),
@@ -685,22 +687,55 @@ class Index extends Component {
       }
     }
     if (module_type === 'metro') {
-      apiStr = 'admestatelist'
-      params = {
-        page,
-        page_size,
-        estate_name: searchKey,
-        metro_line: curMetroLine,
-        area_type: curAreaType.join(','),
-        price_range: curHousePriceRange.join(','),
-        house_type: curHouseTypeRange.join(','),
-        house_area: houseAreaCur.join(','),
-        product_type: productTypeCur.join(','),
-        park_type: parkTypeCur.join(','),
-        high_street: highStreetCur.join(','),
-        hospital_type: hospitalTypeCur.join(','),
-        metro_type: 'no_null'
+      if (curMetroType.length > 0) {
+        params = {
+          page,
+          page_size,
+          estate_name: searchKey,
+          metro_type: curMetroType.join(','),
+          area_type: curAreaType.join(','),
+          price_range: curHousePriceRange.join(','),
+          house_type: curHouseTypeRange.join(','),
+          house_area: houseAreaCur.join(','),
+          product_type: productTypeCur.join(','),
+          park_type: parkTypeCur.join(','),
+          high_street: highStreetCur.join(','),
+          hospital_type: hospitalTypeCur.join(','),
+        }
+      } else {
+        if (curMetroLine.length > 0) {
+          params = {
+            page,
+            page_size,
+            estate_name: searchKey,
+            metro_line: curMetroLine,
+            area_type: curAreaType.join(','),
+            price_range: curHousePriceRange.join(','),
+            house_type: curHouseTypeRange.join(','),
+            house_area: houseAreaCur.join(','),
+            product_type: productTypeCur.join(','),
+            park_type: parkTypeCur.join(','),
+            high_street: highStreetCur.join(','),
+            hospital_type: hospitalTypeCur.join(','),
+          }
+        } else {
+          params = {
+            page,
+            page_size,
+            estate_name: searchKey,
+            metro_type: 'no_null',
+            area_type: curAreaType.join(','),
+            price_range: curHousePriceRange.join(','),
+            house_type: curHouseTypeRange.join(','),
+            house_area: houseAreaCur.join(','),
+            product_type: productTypeCur.join(','),
+            park_type: parkTypeCur.join(','),
+            high_street: highStreetCur.join(','),
+            hospital_type: hospitalTypeCur.join(','),
+          }
+        }
       }
+      apiStr = 'admestatelist'
     }
     if (module_type === 'pre_sale') {
       apiStr = 'admestatelist'

+ 9 - 6
src/pagesHouse/pkDtl.jsx

@@ -144,7 +144,6 @@ class Index extends Component {
     const { pkArr } = this.state
     const pk0Obj = pkArr[0] || {}
     const pk1Obj = pkArr[1] || {}
-
     let metroLineStr0 = ''
     if (pk0Obj.metro_line) {
       const ml0Arr = pk0Obj.metro_line.split(',')
@@ -182,15 +181,19 @@ class Index extends Component {
     } 
     
     let pk0SchoolStr = ''
-    if (pk0Obj.school_list && pk0Obj.school_list.length > 0) {
-      const schoolStr0 = pk0Obj.school_list.map(item => {
+    const school0list = pk0Obj.school_list || {duikou: [], guihua: []}
+    const sl0Arr = [...school0list.duikou, ...school0list.guihua]
+    if (sl0Arr && sl0Arr.length > 0) {
+      const schoolStr0 = sl0Arr.map(item => {
         return `(${saObj[item.school_attrib]})${item.school_name}`
       })
       pk0SchoolStr = schoolStr0.join(';')
     }
     let pk1SchoolStr = ''
-    if (pk1Obj.school_list && pk1Obj.school_list.length > 0) {
-      const schoolStr1 = pk1Obj.school_list.map(item => {
+    const school1list = pk1Obj.school_list || {duikou: [], guihua: []}
+    const slArr = [...school1list.duikou, ...school1list.guihua]
+    if (slArr && slArr.length > 0) {
+      const schoolStr1 = slArr.map(item => {
         return `(${saObj[item.school_attrib]})${item.school_name}`
       })
       pk1SchoolStr = schoolStr1.join(';')
@@ -263,7 +266,7 @@ class Index extends Component {
           </View>
           <View className="po-item">
             <View className="po-v tar">{pk0Obj.deliver_time}</View>
-            <View className="po-label">交付时间</View>
+            <View className="po-label">初次交付</View>
             <View className="po-v">{pk1Obj.deliver_time}</View>
           </View>
         </View>

+ 3 - 1
src/pagesHouse/pkDtl.scss

@@ -17,7 +17,7 @@ page {
 .pk-header {
   background-color: #fff;
   position: relative;
-  height: 630px;
+  height: 680px;
   .ph-main {
     border-radius: 20px;
     padding: 0 20px 20px;
@@ -38,6 +38,8 @@ page {
   }
   .ph-name {
     padding: 20px 0;
+    box-sizing: border-box;
+    min-height: 120px;
     .t {
       text-align: center;
       font-size: 30px;

+ 1 - 2
src/pagesHouse/pkList.jsx

@@ -232,8 +232,7 @@ class Index extends Component {
   }
 
   render () {
-    const delIcon = require('@img/icon_g_del2.png')
-    const { dataList } = this.state
+    const { dataList, isCanPk } = this.state
     return (
       <View className="l-box has-footer">
         {this.renderPkList()}

+ 2 - 2
src/pagesHouse/pkList.scss

@@ -33,6 +33,6 @@
     height: 130px!important;
   }
 }
-.lhl-info {
-  width: 300px;
+.lhl-p1, .lhl-p2, .lhl-p3 {
+  width: 320px;
 }

+ 148 - 0
src/pagesHouse/price.jsx

@@ -0,0 +1,148 @@
+import Taro, { Component } from '@tarojs/taro'
+import { View, Image } from '@tarojs/components'
+
+import ListMore from '@/c/pageDataList/listMore'
+import './price.scss'
+
+class Index extends Component {
+  onShareAppMessage() {
+    const {id, name} = this.$router.params
+    return {
+      title: `${name}的历史成交价`,
+      path: `/pagesHouse/price?id=${id}&name=${name}`,
+    }
+  }
+  onShareTimeline () {
+    return {
+      title: '让买房,更省心!',
+    }
+  }
+
+  constructor (props) {
+    super(props)
+    this.state = {      
+      page_size: 10,
+      page: 1,
+      isListEnd: false,
+      isListLoading: false,
+      isListEmpty: false,
+      dataList: [],
+    }
+  }
+
+  config = {
+    navigationBarTitleText: '楼盘成交价',
+  }
+
+  componentWillMount () {
+    const { name } = this.$router.params
+    Taro.setNavigationBarTitle({
+      title: `${name}的历史成交价`
+    })
+    this.getDataList()
+  }
+
+  componentDidShow () { }
+
+  componentDidHide () { }
+
+
+  getDataList () {
+    const {id: estate_id} = this.$router.params
+    let { page_size, page, dataList, isListEmpty } = this.state
+    Taro.api.house.apiestatepricelist({
+      page,
+      page_size,
+      estate_id
+    }).then(res => {
+      const curData = res.list || []
+      let isListEnd = false
+      if (curData.length > 0) {
+        if (page === 1) {
+          dataList = curData
+        } else {
+          dataList = dataList.concat(curData)
+        }
+        if (curData.length === page_size && res.total !== curData.length) {
+          isListEnd = false
+        } else {
+          isListEnd = true
+        }
+      }
+      if (curData.length === 0 && page === 1) {
+        isListEmpty = true
+        dataList = []
+      } else {
+        isListEmpty = false
+      }
+      this.setState({
+        dataList,
+        isListEnd,
+        isListEmpty,
+        isListLoading: false
+      })
+    })
+  }
+  onScrollToLower (e) {
+    let { isListEnd, isListLoading, page } = this.state
+    if (!isListEnd && !isListLoading) {
+      page++
+      this.setState({
+        page,
+        isListLoading: true
+      }, () => {
+        this.getDataList()
+      })
+    }
+  }
+
+  renderList () {
+    const { dataList, isListEnd, isListLoading, isListEmpty } = this.state
+    const itemsList = dataList.map((item, index) => {
+      return (
+        <View className="sl-item" key={index}>
+          <View className="sl-p1">{item.estate_name}</View>
+          <View className="sl-p2">
+            <View className="op">
+              <View className="k">总面积</View>
+              <View className="v">{item.area}㎡</View>
+            </View>
+            <View className="op t2">
+              <View className="k">单价</View>
+              <View className="v">¥{item.unit_price}/㎡</View>
+            </View>
+          </View>
+          <View className="sl-p3">签约中介:{item.company}</View>
+          <View className="sl-p3">签约日期:{item.sign_at}</View>
+          <View className="sl-r1"><View className="n">{item.price}</View>万</View>
+        </View>
+      )
+    })
+    return (
+      <ScrollView
+        className='l-scroll-view'
+        scrollY
+        scrollWithAnimation
+        scrollTop="0"
+        lowerThreshold="30"
+        onScrollToLower={this.onScrollToLower.bind(this)}
+      >
+        <View className="scoped-list">
+          {itemsList}
+        </View>
+        <ListMore isListEnd={isListEnd} isListLoading={isListLoading} isListEmpty={isListEmpty} />
+      </ScrollView>
+    )
+  }
+
+
+  render () {
+    return (
+      <View className="l-box">
+        {this.renderList()}
+      </View>
+    )
+  }
+}
+
+export default Index

+ 72 - 0
src/pagesHouse/price.scss

@@ -0,0 +1,72 @@
+@import '@css/mixin.scss';
+page {
+  height: 100%;
+  background: #f2f2f2;
+  font-size: 28px;
+}
+.l-scroll-view {
+  height: calc(100vh);
+  box-sizing: border-box;
+}
+
+.scoped-list {
+  .sl-item {
+    @include itemBox(20px);
+    background: #fff;
+    position: relative;
+  }
+  .sl-p1 {
+    font-size: 34px;
+    color: #313131;
+    font-weight: bold;
+    padding-bottom: 10px;
+  }
+  .sl-p2 {
+    border-bottom: 1PX solid #efefef;
+    padding-bottom: 20px;
+    margin-bottom: 10px;
+    .op {
+      display: inline-block;
+      vertical-align: middle;
+      color: $mainColor;
+      margin-right: 20px;
+      &.t2 {
+        color: #e94141;
+        .k {
+          border-color: #e94141;
+        }
+      }
+    }
+    .k {
+      display: inline-block;
+      vertical-align: middle;
+      border: 1PX solid $mainColor;
+      font-size: 22px;
+      border-radius: 10px;
+      padding: 3px 8px;
+      margin-right: 4px;
+    }
+    .v {
+      display: inline-block;
+      vertical-align: middle;
+      font-size: 24px;
+    }
+  }
+  .sl-p3 {
+    color: #5d4d4d;
+    font-size: 24px;
+  }
+  .sl-r1 {
+    position: absolute;
+    right: 20px;
+    top: 20px;
+    color: #9b9b9b;
+    font-size: 24px;
+    .n {
+      display: inline-block;
+      color: #e94141;
+      font-size: 40px;
+      font-weight: bold;
+    }
+  }
+}

+ 1 - 1
src/pagesHouse/search.jsx

@@ -56,7 +56,7 @@ class Index extends Component {
           <View className="l-search-box">
             <Image src={searchImg} className="lsb-icon" />
             <View className="lsb-main">
-              <Input className="lsb-input" value={keyWord} placeholder="请输入楼盘名称" onInput={this.changeInput.bind(this)} onFocus={this.focusInput.bind(this)}/>
+              <Input className="lsb-input" focus value={keyWord} placeholder="请输入楼盘名称" onInput={this.changeInput.bind(this)} onFocus={this.focusInput.bind(this)}/>
             </View>
             {
               isCloseIconShow

+ 1 - 1
src/pagesMore/comment/dtl.jsx

@@ -268,7 +268,7 @@ class Index extends Component {
         <View className="l-floor-footer">
           <View className="scoped-footer">
             <View className="sf-input">
-              <Input className="input" placeholder={`回复:${tempObj.nickname}`} focus value={commentVal}  onInput={this.changeInput.bind(this)} />
+              <Input className="input" placeholder={`回复:${tempObj.nickname}`} value={commentVal}  onInput={this.changeInput.bind(this)} />
               <View className="btn" onClick={this.sendHandle.bind(this)}>发送</View>
             </View>
           </View>

BIN
src/pagesMore/news/img/banner/fx_b4.jpg


BIN
src/pagesMore/news/img/banner/fx_b7.jpg


+ 47 - 21
src/pagesMore/news/index.jsx

@@ -18,18 +18,24 @@ class Index extends Component {
     const target = res.target || {}
     if (res.from === 'button') {
       const cItem = target.dataset.value || {}
-      rObj = {
+      let imageUrl = exImg
+      if (cItem.information_category === 'hlzt') imageUrl = 'http://icon.honglounews.com/news_hlzt.jpg'
+      if (cItem.information_category === 'hljy' || cItem.information_category === 'xqsc') imageUrl = 'http://icon.honglounews.com/news_hljy.jpg'
+      if (cItem.information_category === 'bkfx') imageUrl = 'http://icon.honglounews.com/news_bkfx.jpg'
+      if (cItem.information_category === 'lppc') imageUrl = 'http://icon.honglounews.com/news_lppc.jpg'
+      if (cItem.information_category === 'lpwd') imageUrl = 'http://icon.honglounews.com/news_lpwd.jpg'
+      if (cItem.information_category === 'hlpd') imageUrl= 'http://icon.honglounews.com/news_hlpd.jpg'
+      if (cItem.information_category === 'lszt') imageUrl= 'http://icon.honglounews.com/news_lszt.jpg'
+      if (cItem.information_category === 'zcjd') imageUrl= 'http://icon.honglounews.com/news_zcjd.jpg'
+      if (cItem.information_category === 'esf') imageUrl= 'http://icon.honglounews.com/news_esf.jpg'
+      if (cItem.information_category === 'lsdt') imageUrl= 'http://icon.honglounews.com/news_lsdt.jpg'
+      if (cItem.information_category === 'scfx') imageUrl= 'http://icon.honglounews.com/news_scfx.jpg'
+      return {
         title: cItem.title || '推荐这篇文章给你看看',
         path: `/pagesMore/news/indexDtl?id=${cItem.id}`,
-        imageUrl: exImg
+        imageUrl
       }
-      if (cItem.information_category === 'hlzt') rObj.imageUrl= 'http://icon.honglounews.com/news_hlzt.jpg'
-      if (cItem.information_category === 'hljy') rObj.imageUrl= 'http://icon.honglounews.com/news_hljy.jpg'
-      if (cItem.information_category === 'bkfx') rObj.imageUrl= 'http://icon.honglounews.com/news_bkfx.jpg'
-      if (cItem.information_category === 'lppc') rObj.imageUrl= 'http://icon.honglounews.com/news_lppc.jpg'
-      if (cItem.information_category === 'lpwd') rObj.imageUrl= 'http://icon.honglounews.com/news_lpwd.jpg'
     }
-    return rObj
   }
   onShareTimeline () {
     return {
@@ -129,6 +135,7 @@ class Index extends Component {
           value={searchKey}
           placeholder={placeholderText}
           onChange={this.onSeachChange.bind(this)}
+          onClear={this.onClearHandle.bind(this)}
           onActionClick={this.onSelectActionClick.bind(this)}
         />
       </View>
@@ -163,12 +170,12 @@ class Index extends Component {
     const { newsCountObj } = this.state
     return (
       <View className="index-entry">
-        <Navigator url={'/pagesMore/news/list?type=lppc&name=楼盘测评'} className="ie-op">
+        <Navigator url={'/pagesMore/news/list?type=scfx&name=市场分析'} className="ie-op">
           <View className="ie-icon">
             <Image className="img" src={icon1}/>
-            <View className="text">{newsCountObj.lppc || '0'}</View>
+            <View className="text">{newsCountObj.scfx || '0'}</View>
           </View>
-          <View className="ie-text">楼盘测评</View>
+          <View className="ie-text">市场分析</View>
         </Navigator>
         <Navigator url={'/pagesMore/news/list?type=hlpd&name=洪楼盘点'} className="ie-op">
           <View className="ie-icon">
@@ -315,6 +322,7 @@ class Index extends Component {
 
   renderQA () {
     const { dataList } = this.state
+    const iconQ = require('@img/qa_q.png')
     const dictData = Taro.getStorageSync('dictData')
     const qtObj = arrToObj(dictData.question_tag)
     const itemsList = dataList.map((item, index) => {
@@ -330,14 +338,21 @@ class Index extends Component {
             {signItems}
           </View>
           <View className="ql-info">
-            <Navigator url={'/pagesMore/qa/dtl?id=' + item.id} className="ql-p1">{item.question_cont}</Navigator>
+            <Navigator url={'/pagesMore/qa/dtl?id=' + item.id} className="ql-p1">
+              <Image className="ql-icon-qa" src={iconQ} />
+              {item.question_cont}
+            </Navigator>
           </View>
           <View className="ql-footer">
             <Image className="img" src={item.avatar} />
             <View className="t">{item.nickname || '洪楼Plus'}</View>
             <View className="s">{item.create_at.substring(0, 10)}</View>
           </View>
-          <View className="ql-r1">{item.answer_count} 回答</View>
+          {
+            item.answer_count &&  Number(item.answer_count) > 0
+            &&
+            <Navigator url={'/pagesMore/qa/dtl?id=' + item.id} className="ql-r1">查看全部{item.answer_count}个回答{'>'}</Navigator>
+          }
           <Navigator url={'/pagesMore/qa/dtl?id=' + item.id} className="ql-r2">我要回答</Navigator>
         </View>
       )
@@ -613,8 +628,18 @@ class Index extends Component {
     }
   }
 
+
+
+  renderQaAdd () {
+    const iconGif = require('@img/icon_g_qa.gif')
+    return (
+      <Navigator url={'/pagesMore/qa/add'} className="scoped-fix-q2">
+        <Image className="img" src={iconGif} />
+      </Navigator>
+    )
+  }
+
   render () {
-    const iconQ = require('@img/icon_g_qa.png')
     const { curNav } = this.state
     const { isListEnd, isListLoading, isListEmpty } = this.state
     const tabList = [{ title: '文章' }, { title: '问答' }, { title: '土拍' }]
@@ -686,13 +711,14 @@ class Index extends Component {
         {
           curNav === 1
           &&
-          <Navigator url={'/pagesMore/qa/add'} className="scoped-fix-q">
-            <View className="sfq-bg"></View>
-            <View className="sfq-main">
-              <Image className="img" src={iconQ} />
-              <View className="t">提问</View>
-            </View>
-          </Navigator>
+          // <Navigator url={'/pagesMore/qa/add'} className="scoped-fix-q">
+          //   <View className="sfq-bg"></View>
+          //   <View className="sfq-main">
+          //     <Image className="img" src={iconQ} />
+          //     <View className="t">提问</View>
+          //   </View>
+          // </Navigator>
+          this.renderQaAdd()
         }
         <Footer current={2} />
         <LoginPopup show={isLoginPopupShow} close={this.closeLoginPopup.bind(this)} />

+ 21 - 6
src/pagesMore/news/index.scss

@@ -190,18 +190,31 @@
     .sign {
       display: inline-block;
       vertical-align: middle;
-      color: #ff8358;
-      background: #ffece5;
+      color: #e94141;
+      border: 1PX solid #e94141;
+      background: #ffeeee;
       font-size: 24px;
       padding: 6px 10px;
       margin-right: 10px;
+      border-radius: 10px;
     }
   }
   .ql-p1 {
     margin-bottom: 20px;
-    color: #333;
+    color: #313131;
     font-size: 30px;
     padding: 0 10px;
+    height: 34px;
+    line-height: 34px;
+    font-weight: bold;
+    @include textOverflows();
+  }
+  .ql-icon-qa {
+    display: inline-block;
+    vertical-align: top;
+    margin-right: 10px;
+    width: 34px;
+    height: 34px;
   }
   .ql-footer {
     .img {
@@ -232,17 +245,18 @@
     position: absolute;
     top: 20px;
     right: 20px;
-    color: #999;
+    color: $mainColor;
     font-size: 24px;
+    text-decoration: underline;
   }
   .ql-r2 {
     position: absolute;
     bottom: 20px;
     right: 20px;
-    color: $mainColor;
+    color: #fff;
     font-size: 24px;
     padding: 6px 10px;
-    border: 1PX solid $mainColor;
+    background: $mainColor;
     border-radius: 6px;
     &.t2 {
       border: none;
@@ -350,3 +364,4 @@
 .scoped-temp-w {
   width: 360px!important;
 }
+

+ 82 - 11
src/pagesMore/news/list.jsx

@@ -3,7 +3,7 @@ import { View, Image, Text, Navigator } from '@tarojs/components'
 
 import { AtSearchBar } from 'taro-ui'
 import ListMore from '@/c/pageDataList/listMore'
-import Footer from '@/c/footer'
+import RadioSelect from '@/c/lform/RadioSelect'
 import './list.scss'
 import { arrToObj } from '@utils'
 
@@ -41,11 +41,10 @@ class Index extends Component {
       isListEmpty: false,
       dataList: [],
       curNav: 1,
-      isDShow: false,
       curObj: {},
-      searchIndex: -1,
-      information_category: [],
-      searchText1: '',
+      searchText: '',
+      curVal: '',
+      isRSShow: false,
     }
   }
 
@@ -75,6 +74,7 @@ class Index extends Component {
         value={searchKey}
         placeholder="请输入文章标题"
         onChange={this.onSeachChange.bind(this)}
+        onClear={this.onClearHandle.bind(this)}
         onActionClick={this.onSelectActionClick.bind(this)}
       />
     )
@@ -100,19 +100,43 @@ class Index extends Component {
     })
   }
 
+  renderOtherTop () {
+    const { type } = this.$router.params
+    const { searchText } = this.state
+    return (
+      <View className="scoped-top">
+        {
+          type === 'bkfx'
+          &&
+          <View onClick={this.openRSPopup.bind(this)} className={searchText ? 'st-input' : 'st-input un'}>{searchText || '请选择搜索的板块>>'}</View>
+        }
+        {
+          type === 'lppc'
+          &&
+          <View onClick={this.openRSPopup.bind(this)} className={searchText ? 'st-input' : 'st-input un'}>{searchText || '请选择搜索的楼盘>>'}</View>
+        }
+      </View>
+    )
+  }
+
+
   getDataList () {
     let { page_size, page, dataList, isListEmpty } = this.state
     const { 
       searchKey,
+      curVal
     } = this.state
-    const { type: information_category } = this.$router.params
-    Taro.api.news.adminformationlist({
+    const { type } = this.$router.params
+    let params = {
       page,
       page_size,
       title: searchKey,
-      information_category,
+      information_category: type,
       hide_status: '1',
-    }).then(res => {
+    }
+    if (type === 'bkfx') params.area_type = curVal
+    if (type === 'lppc') params.estate_id = curVal
+    Taro.api.news.adminformationlist(params).then(res => {
       const curData = res.list || []
       let isListEnd = false
       if (curData.length > 0) {
@@ -193,8 +217,48 @@ class Index extends Component {
     )
   }
 
+  openRSPopup (e) {
+    this.setState({
+      isRSShow: true
+    })
+  }
+  dealRSPopup (curVal, curRadioObj) {
+    this.closeRSPopup()
+    if (curVal && curRadioObj) {
+      this.setState({
+        curVal,
+        page: 1,
+        searchText: curRadioObj.label,
+      }, () => {
+        this.getDataList()
+      })
+    } else {
+      this.setState({
+        curVal: '',
+        page: 1,
+        searchText: '',
+      }, () => {
+        this.getDataList()
+      })
+    }
+  }
+  closeRSPopup () {
+    this.setState({
+      isRSShow: false
+    })
+  }
+
   render () {
+    const dictData = Taro.getStorageSync('dictData')
     const { type } = this.$router.params
+    let comMoreOptions = {arr: []}
+    if (type === 'bkfx') {
+      comMoreOptions = JSON.parse(JSON.stringify({arr: dictData.area_type}))
+    }
+    if (type === 'lppc') {
+      comMoreOptions = JSON.parse(JSON.stringify({skey: 'estate_name', api: `house.admestatelist?page_size=20`, opKey: 'estate_name', opVal: 'id'}))
+    }
+    const { curVal, isRSShow } = this.state
     const banner01 = require('./img/banner/fx_banner01.jpg')
     const banner02 = require('./img/banner/fx_banner02.jpg')
     const banner03 = require('./img/banner/fx_banner03.jpg')
@@ -206,22 +270,29 @@ class Index extends Component {
     const b4 = require('./img/banner/fx_b4.jpg')
     const b5 = require('./img/banner/fx_b5.jpg')
     const b6 = require('./img/banner/fx_b6.jpg')
+    const b7 = require('./img/banner/fx_b7.jpg')
     let curImg = banner01
     // if (type === 'lppc') curImg = banner01
     if (type === 'lpwd') curImg = banner02
     if (type === 'hlzt') curImg = banner03
     if (type === 'bkfx') curImg = banner04
-    if (type === 'hljy') curImg = banner05
+    if (type === 'hljy' || type === 'xqsc') curImg = banner05
     if (type === 'lppc') curImg = b1
     if (type === 'hlpd') curImg = b2
     if (type === 'lszt') curImg = b3
     if (type === 'zcjd') curImg = b4
     if (type === 'esf') curImg = b5
     if (type === 'lsdt') curImg = b6
+    if (type === 'scfx') curImg = b7
     return (
       <View className="l-box">
         <Image className="scoped-top-img" src={curImg} />
-        {this.renderSearch()}
+        {
+          type === 'bkfx' || type === 'lppc'
+          ? this.renderOtherTop()
+          : this.renderSearch()
+        }
+        <RadioSelect val={curVal} moreOptions={comMoreOptions} isShow={isRSShow} bc={this.dealRSPopup.bind(this)} close={this.closeRSPopup.bind(this)}/>
         {this.renderList()}
       </View>
     )

+ 27 - 1
src/pagesMore/news/list.scss

@@ -37,4 +37,30 @@
   z-index: 99;
   width: 750px;
   height: 200px;
-}
+}
+
+.scoped-top {
+  position: fixed;
+  top: 200px;
+  left: 0;
+  width: 100%;
+  background: #fff;
+  text-align: center;
+  padding-top: 10px;
+  .st-input {
+    display: inline-block;
+    width: 700px;
+    background: #f7f7f7;
+    border-radius: 30px;
+    height: 60px;
+    line-height: 60px;
+    text-align: center;
+    font-size: 28px;
+    color: $mainColor;
+    font-weight: bold;
+    &.un {
+      color: $infoColor;
+    }
+  }
+}
+

+ 13 - 8
src/pagesMore/qa/add.jsx

@@ -31,12 +31,14 @@ class Index extends Component {
         question_tag: formObj.question_tag.join(','),
         question_cont: question_cont,
       }).then(res => {
-        Taro.$msg('添加成功~')
-        let pages = getCurrentPages()
-        let prevPage = pages[ pages.length - 2 ]
-        prevPage.$component.navClick(1)
-        Taro.navigateBack({
-          delta: 1
+        Taro.$msgConfirm('提交成功~', () => {
+          Taro.redirectTo({
+            url: '/pagesMore/news/index?nav=1'
+          })
+        }, () => {
+          Taro.redirectTo({
+            url: '/pagesMore/news/index?nav=1'
+          })
         })
       })
     } else {
@@ -61,6 +63,8 @@ class Index extends Component {
         <View className="l-floor-pos">
           <LFormGroup
             val={formObj.question_tag}
+            moreRows={true}
+            defineContentClassName="border2"
             valStr="question_tag"
             keyStr="问题类型"
             typeStr="multiSelect"
@@ -75,12 +79,13 @@ class Index extends Component {
             onChange={this.commentChange.bind(this)}
             maxLength={300}
             height={300}
-            placeholder='你的评论...'
+            placeholder='你想问的...'
           />
         </View>
+        <Navigator openType="reLaunch" url={'/pagesMore/news/index?nav=1'} className="scoped-more">先看看其它人说些啥{'>>'}</Navigator>
         <View className="l-floor-footer t2">
           <View className="lff-flex">
-            <View className="lff-btn full" onClick={this.saveHandle.bind(this)}>提交评论</View>
+            <View className="lff-btn full" onClick={this.saveHandle.bind(this)}>提交问题</View>
           </View>
         </View>
       </View>

+ 13 - 4
src/pagesMore/qa/add.scss

@@ -2,9 +2,9 @@
 .comment-box {
   padding: 0 20px;
   .cb-title {
-    font-size: 30px;
-    color: #333;
-    padding-bottom: 20px;
+    font-size: 28px;
+    color: #666;
+    padding-bottom: 10px;
   }
 }
 .at-textarea {
@@ -12,5 +12,14 @@
 }
 .at-textarea__textarea {
   font-size: 28px;
-  color: #333;
+  color: #313131;
 }
+
+.scoped-more {
+  text-align: right;
+  text-decoration: underline;
+  color: $mainColor;
+  font-size: 28px;
+  padding: 20px;
+}
+

+ 20 - 7
src/pagesMore/qa/dtl.jsx

@@ -66,7 +66,7 @@ class Index extends Component {
             <View className="lb-p2">{curObj.question_cont}</View>
             <View className="lb-time">{curObj.create_at}</View>
           </View>
-          <View className="lb-zan" onClick={this.zanHandle.bind(this, curObj.id, curObj.is_zan)}>
+          {/* <View className="lb-zan" onClick={this.zanHandle.bind(this, curObj.id, curObj.is_zan)}>
             {
               curObj.is_zan
               ?
@@ -75,16 +75,16 @@ class Index extends Component {
               <Image className="i" src={zan1Icon}/>
             }
             <View className={curObj.is_zan ? 'n cur' : 'n'}>{curObj.zan_count}</View>
-          </View>
+          </View> */}
         </View>
       </View>
     )
   }
 
-  zanHandle (question_id, flag) {
-    let apiStr = flag ? 'estatecommentunzan' : 'estatecommentzan'
-    Taro.api.house[apiStr]({
-      question_id
+  zanHandle (answer_id, flag) {
+    let apiStr = flag ? 'apianswerunzan' : 'apianswerzan'
+    Taro.api.news[apiStr]({
+      answer_id
     }).then(res => {
       this.getDataList()
     })
@@ -144,6 +144,8 @@ class Index extends Component {
 
   renderList () {
     const { dataList, isListEnd, isListLoading, isListEmpty, curObj } = this.state
+    const zan1Icon = require('@img/i_g_zan.png')
+    const zan2Icon = require('@img/i_g_zan2.png')
     const curItems = dataList.map((item, index) => {
       return (
         <View className="lcb-item" key={index}>
@@ -160,6 +162,16 @@ class Index extends Component {
               <View className="lb-p2">回复:<View className="link">{item.parent_user_name}</View>{item.answer_cont}</View>
             }
             <View className="lb-time">{item.create_at}</View>
+            <View className="lb-zan" onClick={this.zanHandle.bind(this, item.answer_id, item.is_zan)}>
+              {
+                item.is_zan
+                ?
+                <Image className="i" src={zan2Icon}/>
+                :
+                <Image className="i" src={zan1Icon}/>
+              }
+              <View className={item.is_zan ? 'n cur' : 'n'}>{item.zan_count}</View>
+            </View>
           </View>
         </View>
       )
@@ -229,7 +241,8 @@ class Index extends Component {
         <View className="l-floor-footer">
           <View className="scoped-footer">
             <View className="sf-input">
-              <Input className="input" placeholder={`回复:${tempObj.nickname}`} focus value={commentVal}  onInput={this.changeInput.bind(this)} />
+            {/* focus */}
+              <Input className="input" placeholder={`回复:${tempObj.nickname}`} value={commentVal}  onInput={this.changeInput.bind(this)} />
               <View className="btn" onClick={this.sendHandle.bind(this)}>发送</View>
             </View>
           </View>

+ 10 - 0
src/pagesMore/qa/list.jsx

@@ -217,9 +217,19 @@ class Index extends Component {
     })
   }
 
+  renderQaAdd () {
+    const iconGif = require('@img/icon_g_qa.gif')
+    return (
+      <Navigator url={'/pagesMore/qa/add'} className="scoped-fix-q2">
+        <Image className="img" src={iconGif} />
+      </Navigator>
+    )
+  }
+
   render () {
     return (
       <View className="l-box has-footer">
+        {this.renderQaAdd()}
         {this.renderSearch()}
         {this.renderList()}
         <Footer current={4} />

+ 11 - 3
src/pagesPlan/apply.jsx

@@ -91,9 +91,17 @@ class Index extends Component {
     )
   }
   linkHome () {
-    Taro.reLaunch({
-      url: '/pages/index/index'
-    })
+    const pages = getCurrentPages()
+    const pagesLength = pages.length
+    if (pagesLength < 2) {
+      Taro.reLaunch({
+        url: '/pages/index/index'
+      })
+    } else {
+      Taro.navigateBack({
+        delta: 1
+      })
+    }
   }
 
 

+ 27 - 3
src/pagesSchool/area.jsx

@@ -40,25 +40,45 @@ class Index extends Component {
   
 
   renderOp () {
+    const bg1 = require('./img/area/xq01.png')
+    const bg2 = require('./img/area/xq02.png')
+    const bg3 = require('./img/area/xq03.png')
+    const bg4 = require('./img/area/xq04.png')
+    const bg5 = require('./img/area/xq05.png')
+    const bg6 = require('./img/area/xq06.png')
     const { cateArr } = this.state
     const dictData = Taro.getStorageSync('dictData')
     const atObj = arrToObj(dictData.area_type)
     let total = 0
-    const cArr = cateArr.map(item => {
+    const cArr = cateArr.map((item, i) => {
       total += item.total
+      let bg = bg1
+      if (i % 6 === 0) bg = bg2
+      if (i % 6 === 1) bg = bg3
+      if (i % 6 === 2) bg = bg4
+      if (i % 6 === 3) bg = bg5
+      if (i % 6 === 4) bg = bg6
+      if (i % 6 === 5) bg = bg1
       return {
+        bg,
         ...item,
         key: atObj[item.area_type]
       }
     })
     const curItems = cArr.map((item, index) => {
       return (
-        <View className="sb-item" key={index} onClick={this.listLink.bind(this, item)}>{item.key}({item.total || 0})</View>
+        <View className="sb-item" key={index} onClick={this.listLink.bind(this, item)}>
+          <View className="t">{item.key}({item.total || 0})</View>
+          <Image src={item.bg} className="bg"/>
+        </View>
       )
     })
     return (
       <View className="scoped-box">
-        <View className="sb-item" onClick={this.listLink.bind(this, 'all')}>全部区域({total || 0})</View>
+        <View className="sb-item" key={index} onClick={this.listLink.bind(this, 'all')}>
+          <View className="t">全部区域({total || 0})</View>
+          <Image src={bg1} className="bg"/>
+        </View>
         {curItems}
       </View>
     )    
@@ -81,8 +101,12 @@ class Index extends Component {
 
 
   render () {
+    const xqbanner = require('@img/xqbanner.jpg')
     return (
       <View className="l-box has-footer">
+        <Navigator url={'/pagesMore/news/list?type=xqsc'} className="scoped-top">
+          <Image src={xqbanner} className="bg" />
+        </Navigator>
         {this.renderOp()}
         <Footer current={3} />
       </View>

+ 34 - 3
src/pagesSchool/area.scss

@@ -2,10 +2,41 @@
 .scoped-box {
   display: flex;
   flex-wrap: wrap;
-  padding: 0 20px;
+  padding-left: 30px;
   .sb-item {
-    width: 312px;
-    @include itemBox(20px 20px 10px, 20px);
+    width: 332px;
+    height: 170px;
     box-sizing: border-box;
+    position: relative;
+    &:nth-child(2n+1) {
+      margin-right: 30px;
+      margin-bottom: 20px;
+    }
+    .bg {
+      position: absolute;
+      top: 0;
+      left: 0;
+      z-index: 1;
+      width: 332px;
+      height: 170px;
+    }
+    .t {
+      position: absolute;
+      left: 20px;
+      top: 20px;
+      color: #fff;
+      z-index: 2;
+    }
+  }
+}
+
+.scoped-top {
+  width: 750px;
+  height: 250px;
+  overflow: hidden;
+  margin-bottom: 30px;
+  .bg {
+    width: 750px;
+    height: 250px;
   }
 }

+ 4 - 0
src/pagesSchool/class.jsx

@@ -73,8 +73,12 @@ class Index extends Component {
 
 
   render () {
+    const xqbanner = require('@img/xqbanner.jpg')
     return (
       <View className="l-box">
+        <Navigator url={'/pagesMore/news/list?type=xqsc'} className="scoped-top">
+          <Image src={xqbanner} className="bg" />
+        </Navigator>
         {this.renderOp()}
       </View>
     )

+ 11 - 0
src/pagesSchool/class.scss

@@ -16,3 +16,14 @@
     }
   }
 }
+
+.scoped-top {
+  width: 750px;
+  height: 250px;
+  overflow: hidden;
+  margin-bottom: 10px;
+  .bg {
+    width: 750px;
+    height: 250px;
+  }
+}

+ 1 - 1
src/pagesSchool/components/indexDtl/comment/index.jsx

@@ -133,7 +133,7 @@ export default class Comment extends Component {
           {
             commentList.length === 0
             &&
-            <ListMore isOther={true} text="评论空空,赶紧留下的足迹"/>
+            <ListMore isOther={true} text="老师?家长?学校怎么样?说两句……"/>
           }
         </View>
         {this.renderCommentBtn()}

+ 7 - 1
src/pagesSchool/components/indexDtl/range/index.jsx

@@ -50,7 +50,13 @@ export default class Comment extends Component {
             </View>
           </View>
         }
-        <View className="p">{curObj.district || '未知'}</View>
+        {
+          curObj.school_type === '2'
+          ?
+          <View className="p">私立不划学区</View>
+          :
+          <View className="p">{curObj.district || '未知'}</View>
+        }
       </View>
     )
   }

+ 0 - 1
src/pagesSchool/houseList.jsx

@@ -689,7 +689,6 @@ class Index extends Component {
 
   renderList () {
     const { dataList, isListEnd, isListLoading, isListEmpty } = this.state
-    const testImg = require('@img/ex_test.jpg')
     const dictData = Taro.getStorageSync('dictData')
     const rankList = dataList.map((item, index) => {
       const areaTypeName = arrToObj(dictData.area_type)[item.area_type]

BIN
src/pagesSchool/img/area/xq01.png


BIN
src/pagesSchool/img/area/xq02.png


BIN
src/pagesSchool/img/area/xq03.png


BIN
src/pagesSchool/img/area/xq04.png


BIN
src/pagesSchool/img/area/xq05.png


BIN
src/pagesSchool/img/area/xq06.png


+ 1 - 0
src/pagesSchool/index.jsx

@@ -74,6 +74,7 @@ class Index extends Component {
         fixed={true}
         placeholder="请输入学校名称"
         onChange={this.onSeachChange.bind(this)}
+        onClear={this.onClearHandle.bind(this)}
         onActionClick={this.onSelectActionClick.bind(this)}
       />
     )

+ 41 - 1
src/pagesSchool/indexDtl.jsx

@@ -75,7 +75,7 @@ class Index extends Component {
           <View className="dh-sign">
             <View className="s">{arrToObj(dictData.school_attrib)[curObj.school_attrib]}</View>
             <View className="s t4">{arrToObj(dictData.school_type)[curObj.school_type]}</View>
-            <View className={'t t' + curObj.school_warn}>{arrToObj(dictData.school_warn)[curObj.school_warn]}</View>
+            <View className={'st t' + curObj.school_warn}>{arrToObj(dictData.school_warn)[curObj.school_warn]}</View>
           </View>
         </View>
         <Image className="dh-bg" src={imgUrl} mode="aspectFit" />
@@ -97,6 +97,34 @@ class Index extends Component {
     this.subRange = ref
   }
 
+  renderRemarked () {
+    const { curObj } = this.state
+    return (
+      <View className="dtl-options scoped-school">
+        <View className="do-title">
+          <View className="t">学校简评</View>
+        </View>
+        <View className="do-content">
+          <View className="scoped-desc">{curObj.remarked}</View>
+        </View>
+      </View>
+    )
+  }
+
+  renderAchievement () {
+    const { curObj } = this.state
+    return (
+      <View className="dtl-options scoped-school">
+        <View className="do-title">
+          <View className="t">历年成绩</View>
+        </View>
+        <View className="do-content">
+          <View className="scoped-desc">{curObj.achievement}</View>
+        </View>
+      </View>
+    )
+  }
+
   renderOptionsHouse () {
     const { curId, curObj } = this.state
     const estateList = curObj.estate_list || {}
@@ -104,6 +132,7 @@ class Index extends Component {
       <View className="dtl-options scoped-school">
         <View className="do-title">
           <View className="t">对口楼盘</View>
+          <View className="r2">注:目前该楼盘在此学区中</View>
           {
             estateList.duikou && estateList.duikou.length > 0
             &&
@@ -125,6 +154,7 @@ class Index extends Component {
       <View className="dtl-options scoped-school">
         <View className="do-title">
           <View className="t">可能就读</View>
+          <View className="r2">注:未来该楼盘有可能划入该学校</View>
           {
             estateList.guihua && estateList.guihua.length > 0
             &&
@@ -207,6 +237,16 @@ class Index extends Component {
         {this.renderHeader()}
         {this.renderRange()}
         <View className="scoped-bg">
+          {
+            curObj.remarked
+            &&
+            this.renderRemarked()
+          }
+          {
+            curObj.achievement
+            &&
+            this.renderAchievement()
+          }
           {this.renderOptionsHouse()}
           {this.renderOptionsGhHouse()}
           {this.renderComment()}

+ 16 - 1
src/pagesSchool/indexDtl.scss

@@ -73,7 +73,7 @@ page {
         border-color: #f85151;
       }
     }
-    .t {
+    .st {
       display: inline-block;
       vertical-align: middle;
       color: #f85151;
@@ -129,6 +129,14 @@ page {
       font-size: 28px;
       color: #999;
     }
+    .r2 {
+      display: inline-block;
+      vertical-align: top;
+      margin-left: 10px;
+      font-size: 24px;
+      font-weight: bold;
+      color: $dangerColor;
+    }
   }
   .do-content {
     padding: 0 20px 20px;
@@ -160,3 +168,10 @@ page {
 .scoped-school {
   padding-bottom: 5px;
 }
+
+
+.scoped-desc {
+  color: #666;
+  padding: 0 20px;
+}
+

+ 1 - 0
src/pagesSchool/theme.jsx

@@ -69,6 +69,7 @@ class Index extends Component {
         placeholder="请输入学校名称"
         onChange={this.onSeachChange.bind(this)}
         onActionClick={this.onSelectActionClick.bind(this)}
+        onClear={this.onClearHandle.bind(this)}
       />
     )
   }

+ 4 - 2
src/utils/tool.js

@@ -9,12 +9,14 @@ const configRight = (params = {key: '', name: ''}, bc) => {
 		return
   }
 }
-const msgBase = (msgText) => {
+const msgBase = (msgText, bc) => {
   Taro.showToast({
     title: msgText,
     icon: 'none',
     duration: 2000
-  })
+  }).then(() => {
+		if (bc) bc()
+	})
 }
 const confirmMsgFn = (msgText, successBc, errorBc, title = '提示') => {
   Taro.showModal({