230320a303 2 tahun lalu
induk
melakukan
474adf4929

+ 1 - 0
src/app.jsx

@@ -81,6 +81,7 @@ class App extends Component {
           'center/userEdit',
           'center/uploadRoom',
           'center/uploadRoom2',
+          'center/uploadRoomHl',
           'comment/add',
           'comment/list',
           'comment/dtl',

+ 733 - 0
src/pagesMore/center/uploadRoomHl.jsx

@@ -0,0 +1,733 @@
+import Taro, { Component } from '@tarojs/taro'
+import { View } from '@tarojs/components'
+import { AtTextarea }  from 'taro-ui'
+import LFormGroup from '@/c/lform/formGroup'
+const HLKEY = '654mca0l38b489d9'
+const CJ = require('crypto-js')
+import './uploadRoomHl.scss'
+
+
+import { TaroCropper } from 'taro-cropper'
+
+class Index extends Component {
+
+
+  constructor (props) {
+    super(props)
+    this.state = {
+      addr1: '',
+      addr2: '',
+      addr3: '',
+      hType1: '',
+      hType2: '',
+      hType3: '',
+      sRate1: '',
+      sRate2: '',
+      formObj: {
+        title: '新房成交',
+        hide_status: '2',
+      },
+      imgArr: [],
+      cutImgTempUrl: '',
+      cutImgShow: false,
+    }
+  }
+  config = {
+    navigationBarTitleText: '洪楼成交房源登记',
+  }
+
+  componentWillMount () {
+    Taro.$AHU(this)
+  }
+
+  componentDidMount() {
+    const {id} = this.$router.params
+    if (id) {
+      Taro.api.room.apieshousedetail({id}).then(res => {
+        let cObj = res || {}
+        // console.log(cObj)
+        const addr = cObj.house_no ? cObj.house_no.split('-') : []
+        const hType = cObj.house_type ? cObj.house_type.split('-') : []
+        const sRate = cObj.stairs_rate ? cObj.stairs_rate.split('-') : []
+        Taro.setNavigationBarTitle({
+          title: cObj.sale_user.sale_name + '-编辑房源'
+        })
+        this.setState({
+          formObj: {
+            id: cObj.id,
+            hide_status: cObj.hide_status || '2',
+            estate_id: cObj.estate_id || '',
+            estate_name: cObj.estate_name || '',
+            title: cObj.title || '新房成交',
+            house_no: cObj.house_no || '',
+            delivery_at: cObj.delivery_at || '',
+            price: cObj.price || '',
+            area: cObj.area || '',
+            full_year: cObj.full_year || '',
+            floor: cObj.floor || '',
+            storeys: cObj.storeys || '',
+            is_dec: cObj.is_dec || '',
+            is_elevator: cObj.is_elevator || '',
+            owner: cObj.owner || '',
+            custom_tag: cObj.custom_tag || '',
+            owner_phone: cObj.owner_phone || '',
+            introduce: cObj.introduce || '',
+            remarked: cObj.remarked || '',
+            pri_image: cObj.pri_image || '',
+            house_img: cObj.house_img || '',
+            position: cObj.position || '',
+            floor_price: cObj.floor_price || '',
+          },
+          imgArr: (cObj.images && cObj.images.length > 0) ? cObj.images.split(',') : [],
+          addr1: addr[0],
+          addr2: addr[1],
+          addr3: addr[2],
+          hType1: hType[0],
+          hType2: hType[1],
+          hType3: hType[2],
+          sRate1: sRate[0],
+          sRate2: sRate[1],
+        })
+      })
+    }
+  }
+
+
+  saleedHandle () {
+    const {id} = this.$router.params
+    Taro.$msgConfirm(`确定是洪楼内部卖出的吗?`, () => {
+      // Taro.api.room.apieshousesold({
+      //   is_sold: 1,
+      //   id
+      // }).then(() => {
+      //   Taro.$msg('已标记')
+      // })
+      this.saveHandle('is_sold')
+    }, () => {})
+  }
+
+
+  saveHandle (pStr) {
+    const { formObj, imgArr, addr1, addr2, addr3, hType1, hType2, hType3, sRate1, sRate2 } = this.state
+    let house_no = ''
+    if (addr1 && addr2 && addr3) {
+      house_no = `${addr1}-${addr2}-${addr3}`
+    } else {
+      Taro.$msg('请输入楼栋单号房间号')
+      return
+    }
+    let house_type = ''
+    if (hType1 && hType2 && hType3) {
+      house_type = `${hType1}-${hType2}-${hType3}`
+    }
+    let stairs_rate = ''
+    if (sRate1 && sRate2) {
+      stairs_rate = `${sRate1}-${sRate1}`
+    }
+    
+    // console.log(formObj.estate_id, formObj.title, formObj.pri_image)
+    let apiStr = 'apieshouseadd'
+    let params = {
+      estate_id: formObj.estate_id,
+      title: formObj.title,
+      house_no,
+      delivery_at: formObj.delivery_at,
+      house_type,
+      stairs_rate,
+      price: formObj.price,
+      area: formObj.area,
+      full_year: formObj.full_year,
+      floor: formObj.floor,
+      storeys: formObj.storeys,
+      is_dec: formObj.is_dec,
+      is_elevator: formObj.is_elevator,
+      owner: formObj.owner,
+      custom_tag: formObj.custom_tag ? formObj.custom_tag.replace(/,|、|\/|\\/g, ',') : '洪楼房源',
+      owner_phone: formObj.owner_phone,
+      introduce: formObj.introduce,
+      remarked: formObj.remarked,
+      pri_image: formObj.pri_image,
+      house_img: formObj.house_img,
+      position: formObj.position,
+      floor_price: formObj.floor_price,
+      images: imgArr.join(','),
+      hide_status: 2,
+      is_sold: 1,
+    }
+    if (formObj.id) {
+      apiStr = 'apieshouseedit'
+      params.id = formObj.id
+    }
+    if (formObj.estate_id && formObj.title && formObj.pri_image) {
+      Taro.api.room[apiStr](params).then(res => {
+        Taro.$msgConfirm('操作成功', () => {
+          Taro.navigateBack({
+            delta: 1
+          })
+        }, () => {
+          Taro.navigateBack({
+            delta: 1
+          })
+        })
+      })
+    } else {
+      if (!formObj.estate_id) Taro.$msg('楼盘必填')
+      if (!formObj.title) Taro.$msg('标题必填')
+      if (!formObj.pri_image) Taro.$msg('封面图必填')
+    }
+  }
+
+  baseFormChange (key, val) {
+    let { formObj } = this.state
+    formObj[key] = val
+    this.setState({
+      formObj
+    })
+  }
+
+  dealImgHandle (key, moreStr) {
+    this.uploadComImg((val) => {
+      let { formObj } = this.state
+      formObj[key] = val
+      this.setState({
+        formObj
+      })
+    }, 1, moreStr)
+  }
+
+  addImg () {
+    this.uploadComImg((arr) => {
+      let { imgArr } = this.state
+      imgArr = [...imgArr, ...arr]
+      this.setState({
+        imgArr
+      })
+    }, 9)
+  }
+  uploadComImg (bc, count, moreStr) {
+    const that = this
+    Taro.chooseImage({
+      count: count ? count : 1, // 默认9
+      sizeType: ['compressed'],  // original
+      sourceType: ['album', 'camera'],
+      success: function (res) {
+        const tempFilePaths = res.tempFilePaths
+        if (tempFilePaths.length > 0) {
+          let imgBcArr = []
+          tempFilePaths.forEach((p, i) => {
+            that.diyUploadFile(p, moreStr).then(url => {
+              imgBcArr.push(url)
+              if (bc && imgBcArr.length === tempFilePaths.length) {
+                bc(imgBcArr)
+              }
+            })
+          })
+        }
+      }
+    })
+  }
+  diyUploadFile (filePath, moreStr) {
+    return new Promise((resolve, reject) => {
+      let token = Taro.getStorageSync('APP_token')
+      let url = `https://api.honglouplus.com/api/upload/cloudpir`
+      if (moreStr === 'noSign') url = `https://api.honglouplus.com/api/upload/cloud`
+      Taro.uploadFile({
+        url,
+        filePath,
+        name: 'upload',
+        formData: {
+          'token': token
+        },
+        success (res){
+          const msg = res.data || ''
+          const key = CJ.enc.Utf8.parse(HLKEY)
+          const bytes = CJ.AES.decrypt(msg, key, {
+            mode: CJ.mode.ECB,
+            padding: CJ.pad.Pkcs7
+          })
+          const originalText = bytes.toString(CJ.enc.Utf8)
+          const cData = JSON.parse(originalText)
+          const curImg =  cData.data.url || ''
+          resolve(curImg)
+        }
+      })
+    })
+  }
+  delImg (index) {
+    let { imgArr } = this.state
+    imgArr.splice(index, 1)
+    this.setState({
+      imgArr
+    })
+  }
+  previewImageHandle (current, arr) {
+    const { imgArr } = this.state
+    let nArr = imgArr.map(item => {
+      return item + '_plus'
+    })
+    Taro.previewImage({
+      current,
+      urls: nArr
+    })
+  }
+
+
+
+
+  renderAddr () {
+    const { addr1, addr2, addr3 } = this.state
+    return (
+      <View className="scoped-addr-box">
+        <Input type="number" value={addr1} onInput={this.changeAddrInput.bind(this, 'addr1')}  className="i" placeholder="__" />
+        <View className='t'>栋座</View>
+        <Input type="number" value={addr2} onInput={this.changeAddrInput.bind(this, 'addr2')}  className="i" placeholder="__" />
+        <View className='t'>单元</View>
+        <Input type="number" value={addr3} onInput={this.changeAddrInput.bind(this, 'addr3')}  className="i" placeholder="__" />
+        <View className='t'>室号</View>
+      </View>
+    )
+  }
+  renderHouseType () {
+    const { hType1, hType2, hType3 } = this.state
+    return (
+      <View className="scoped-addr-box">
+        <Input type="number" value={hType1} onInput={this.changeAddrInput.bind(this, 'hType1')}  className="i" placeholder="__" />
+        <View className='t'>室</View>
+        <Input type="number" value={hType2} onInput={this.changeAddrInput.bind(this, 'hType2')}  className="i" placeholder="__" />
+        <View className='t'>厅</View>
+        <Input type="number" value={hType3} onInput={this.changeAddrInput.bind(this, 'hType3')}  className="i" placeholder="__" />
+        <View className='t'>卫</View>
+      </View>
+    )
+  }
+  changeAddrInput (str, e) {
+    this.setState({
+      [str]: e.detail.value
+    })
+  }
+  
+
+  renderStairsRate () {
+    const { sRate1, sRate2 } = this.state
+    return (
+      <View className='scoped-floor-height-box'>
+        <Input type="number" value={sRate1} onInput={this.changeAddrInput.bind(this, 'sRate1')}  className="i" placeholder="__" />
+        <View className='t'>梯</View>
+        <Input type="number" value={sRate2} onInput={this.changeAddrInput.bind(this, 'sRate2')}  className="i" placeholder="__" />
+        <View className='t'>户</View>
+      </View>
+    )
+  }
+  renderFloorHeight () {
+    const { formObj } = this.state
+    return (
+      <View className='scoped-floor-height-box'>
+        <Input type="number" value={formObj.floor} onInput={this.changeFormObjInput.bind(this, 'floor')}  className="i" placeholder="所在楼层" />
+        <View className='t'>/</View>
+        <Input type="number" value={formObj.storeys} onInput={this.changeFormObjInput.bind(this, 'storeys')}  className="i" placeholder="总楼层" />
+        <View className='t'>层</View>
+      </View>
+    )
+  }
+  changeFormObjInput (str, e) {
+    let { formObj } = this.state
+    formObj[str] = e.detail.value
+    this.setState({
+      formObj
+    })
+  }
+
+
+
+
+
+
+
+
+
+
+
+  renderCutImg () {
+    const { cutImgTempUrl } = this.state
+    const { cutImgShow } = this.state
+    return (
+      <View className={cutImgShow ? 'scoped-ci-popup show' : 'scoped-ci-popup'}>
+        <TaroCropper
+          src={cutImgTempUrl}
+          cropperWidth={375}
+          cropperHeight={250}
+          fullScreen
+          onCut={this.cutHandle.bind(this)}
+        />
+      </View>
+    )
+  }
+  cutHandle (filePath) {
+    let { formObj } = this.state
+    let token = Taro.getStorageSync('APP_token')
+    const that = this
+    Taro.uploadFile({
+      url: `https://api.honglouplus.com/api/upload/cloudpir`,
+      filePath,
+      name: 'upload',
+      formData: {
+        'token': token
+      },
+      success (res){
+        const msg = res.data || ''
+        const key = CJ.enc.Utf8.parse(HLKEY)
+        const bytes = CJ.AES.decrypt(msg, key, {
+          mode: CJ.mode.ECB,
+          padding: CJ.pad.Pkcs7
+        })
+        const originalText = bytes.toString(CJ.enc.Utf8)
+        const cData = JSON.parse(originalText)
+        formObj.pri_image = cData.data.url || ''
+        that.setState({
+          cutImgShow: false,
+          formObj,
+        })
+      }
+    })
+  }
+  openCutImg () {
+    Taro.chooseImage({
+      count: 1,
+      sizeType: ['compressed'],
+      sourceType: ['album', 'camera'],
+    }).then(res => {
+      this.setState({
+        cutImgTempUrl: res.tempFilePaths[0],
+        cutImgShow: true,
+      })
+    })
+  }
+
+
+  render () {
+    const {id} = this.$router.params
+    const { formObj, imgArr } = this.state
+    const dictData = Taro.getStorageSync('dictData')
+    const roomDecMoreOptions = {arr: dictData.room_dec}
+    const houseRoomYearMoreOptions = {arr: dictData.house_room_year}
+    const yesnoMoreOptions = {arr: [...dictData.sys_yesno]}
+    const hideStatusoMoreOptions = {arr: [...dictData.hide_status]}
+    const roomPositionMoreOptions = {arr: [...dictData.room_position]}
+    const addIcon = require('@img/icon_upload_img.png')
+    const closeIcon = require('@img/icon_g_close.png')
+    const imgItems = imgArr.map((src, index) => {
+      return (
+        <View className="si-op" key={index}>
+          <Image src={src + '_plus'} className="img" onClick={this.previewImageHandle.bind(this, src + '_plus')} />
+          <Image src={closeIcon} className="i" onClick={this.delImg.bind(this, index)}/>
+        </View>
+      )
+    })
+    let moreEstateOptions = {
+      api: 'house.admestatelist',
+      opKey: 'estate_name',
+      opVal: 'id',
+      skey: 'estate_name',
+    }
+    
+    return (
+      <View className="l-box">
+        {/* {this.renderCutImg()} */}
+        {
+          formObj.estate_name
+          ?
+          <View className="l-floor-pos2">
+            <Navigator url={`/pagesHouse/indexDtl?id=${formObj.estate_id}`} className='scoped-estate-name'>{formObj.estate_name}{'>'}</Navigator>
+            <LFormGroup
+              val={formObj.estate_id}
+              valStr="estate_id"
+              keyStr="当前楼盘"
+            />
+          </View>
+          :
+          <LFormGroup
+            val={formObj.estate_id}
+            valStr="estate_id"
+            keyStr="选楼盘(必填)"
+            keyStr2="请选择"
+            typeStr="radio"
+            moreOptions={moreEstateOptions}
+            bc={this.baseFormChange.bind(this)}
+          />
+        }
+        {/* <View className="l-floor-pos2">
+          {
+            formObj.estate_name
+            ?
+            <View className='scoped-estate-name'>{formObj.estate_name}[{formObj.estate_id}]</View>
+            : ''
+          }
+          <LFormGroup
+            val={formObj.estate_id}
+            valStr="estate_id"
+            keyStr="选楼盘(必填)"
+            keyStr2="请选择"
+            typeStr="radio"
+            moreOptions={moreEstateOptions}
+            bc={this.baseFormChange.bind(this)}
+          />
+        </View> */}
+        <View className="l-floor-pos2">
+          <LFormGroup
+            val={formObj.title}
+            valStr="title"
+            keyStr="标题(必填)"
+            keyStr2="请总结概括该房源特色"
+            bc={this.baseFormChange.bind(this)}
+          />
+        </View>
+        <View className="l-floor-pos2">
+          <LFormGroup
+            val={formObj.house_no}
+            valStr="house_no"
+            keyStr="地址(必填)"
+          />
+          {this.renderAddr()}
+        </View>
+        <View className="l-floor-pos2">
+          <LFormGroup
+            val={formObj.house_type}
+            valStr="house_type"
+            keyStr="户型"
+          />
+          {this.renderHouseType()}
+        </View>
+        <View className="l-floor-pos2">
+          <LFormGroup
+            val={formObj.floor}
+            valStr="floor"
+            keyStr="楼层"
+          />
+          {this.renderFloorHeight()}
+        </View>
+        <View className="l-floor-pos2">
+          <LFormGroup
+            val={formObj.stairs_rate}
+            valStr="stairs_rate"
+            keyStr="梯户比"
+          />
+          {this.renderStairsRate()}
+        </View>
+        <View className="l-floor-pos2">
+          <LFormGroup
+            val={formObj.area}
+            valStr="area"
+            keyStr="房屋面积"
+            keyStr2="请输入"
+            typeStr="inputFont"
+            inputFont="㎡"
+            bc={this.baseFormChange.bind(this)}
+          />
+        </View>
+        <View className="l-floor-pos2">
+          <LFormGroup
+            val={formObj.price}
+            valStr="price"
+            keyStr="房屋总价"
+            keyStr2="请输入"
+            typeStr="inputFont"
+            inputFont="万"
+            bc={this.baseFormChange.bind(this)}
+          />
+        </View>
+        <View className="l-floor-pos2">
+          <LFormGroup
+            val={formObj.floor_price}
+            valStr="floor_price"
+            keyStr="实际底价"
+            keyStr2="请输入"
+            typeStr="inputFont"
+            inputFont="万"
+            bc={this.baseFormChange.bind(this)}
+          />
+        </View>
+        
+        <View className="l-floor-pos2">
+          <LFormGroup
+            val={formObj.owner}
+            valStr="owner"
+            keyStr="业主姓名"
+            keyStr2="请输入"
+            bc={this.baseFormChange.bind(this)}
+          />
+        </View>
+        <View className="l-floor-pos2">
+          <LFormGroup
+            val={formObj.owner_phone}
+            valStr="owner_phone"
+            keyStr="业主电话"
+            keyStr2="请输入"
+            bc={this.baseFormChange.bind(this)}
+          />
+        </View>
+        <View className="l-floor-pos2">
+          <LFormGroup
+            val={formObj.is_dec}
+            valStr="is_dec"
+            keyStr="装修情况"
+            keyStr2="请选择"
+            typeStr="select"
+            moreOptions={roomDecMoreOptions}
+            bc={this.baseFormChange.bind(this)}
+          />
+        </View>
+        <View className="l-floor-pos2">
+          <LFormGroup
+            val={formObj.full_year}
+            valStr="full_year"
+            keyStr="满几年"
+            keyStr2="请选择"
+            typeStr="select"
+            moreOptions={houseRoomYearMoreOptions}
+            bc={this.baseFormChange.bind(this)}
+          />
+        </View>
+        <View className="l-floor-pos2">
+          <LFormGroup
+            val={formObj.is_elevator}
+            valStr="is_elevator"
+            keyStr="有电梯"
+            keyStr2="请选择"
+            typeStr="select"
+            moreOptions={yesnoMoreOptions}
+            bc={this.baseFormChange.bind(this)}
+          />
+        </View>
+        <View className="l-floor-pos2">
+          <LFormGroup
+            val={formObj.delivery_at}
+            valStr="delivery_at"
+            keyStr="交房时间"
+            keyStr2="请选择"
+            dateFields="month"
+            typeStr="date"
+            bc={this.baseFormChange.bind(this)}
+          />
+        </View>
+        {/* <View className="l-floor-pos2">
+          <LFormGroup
+            val={formObj.hide_status}
+            valStr="hide_status"
+            keyStr="显示隐藏"
+            keyStr2="请选择"
+            typeStr="select"
+            moreOptions={hideStatusoMoreOptions}
+            bc={this.baseFormChange.bind(this)}
+          />
+        </View> */}
+        <View className="l-floor-pos2">
+          <LFormGroup
+            val={formObj.position}
+            valStr="position"
+            keyStr="户型方位"
+            keyStr2="请选择"
+            typeStr="select"
+            moreOptions={roomPositionMoreOptions}
+            bc={this.baseFormChange.bind(this)}
+          />
+        </View>
+        <View className="l-floor-pos2">
+          <LFormGroup
+            val={formObj.custom_tag}
+            valStr="custom_tag"
+            keyStr="定义标签"
+            keyStr2="请输入"
+            bc={this.baseFormChange.bind(this)}
+          />
+        </View>
+        <View className='scoped-has-right'>
+          <View className="scoped-box">
+            <View className="sb-title">封面主图片(必填)</View>
+            <View className="scoped-img">
+              {
+                formObj.pri_image
+                ?
+                <View className="si-op" onClick={this.dealImgHandle.bind(this, 'pri_image')}>
+                  <Image src={formObj.pri_image + '_plus'} className="img"/>
+                </View>
+                :
+                <View className="si-op" onClick={this.dealImgHandle.bind(this, 'pri_image')}>
+                  <Image src={addIcon} className="img"/>
+                </View>
+              }
+              {/* {
+                formObj.pri_image
+                ?
+                <View className="si-op" onClick={this.openCutImg.bind(this)}>
+                  <Image src={formObj.pri_image + '_plus'} className="img"/>
+                </View>
+                :
+                <View className="si-op" onClick={this.openCutImg.bind(this)}>
+                  <Image src={addIcon} className="img"/>
+                </View>
+              } */}
+            </View>
+          </View>
+          <View className="scoped-box shr-r">
+            <View className="sb-title">户型图</View>
+            <View className="scoped-img">
+              {
+                formObj.house_img
+                ?
+                <View className="si-op" onClick={this.dealImgHandle.bind(this, 'house_img', 'noSign')}>
+                  <Image src={formObj.house_img} className="img"/>
+                </View>
+                :
+                <View className="si-op" onClick={this.dealImgHandle.bind(this, 'house_img', 'noSign')}>
+                  <Image src={addIcon} className="img"/>
+                </View>
+              }
+            </View>
+          </View>
+        </View>
+        <View className="scoped-box">
+          <View className="sb-title">相关图片
+            <View className="s">(最多9张)</View>
+          </View>
+          <View className="scoped-img">
+            {imgItems}
+            {
+              imgArr.length < 9
+              &&
+              <View className="si-op" onClick={this.addImg.bind(this)}>
+                <Image src={addIcon} className="img"/>
+              </View>
+            }
+          </View>
+        </View>
+        <View className="scoped-box">
+          <View className="sb-title">佣金相关备注</View>
+          <AtTextarea
+            value={formObj.remarked}
+            onChange={this.baseFormChange.bind(this, 'remarked')}
+            maxLength={300}
+            height={200}
+            placeholder='仅编辑查看,房源内部备注信息(300字以内)'
+          />
+        </View>
+        <View className="scoped-box">
+          <View className="sb-title">更多对外描述</View>
+          <AtTextarea
+            value={formObj.introduce}
+            onChange={this.baseFormChange.bind(this, 'introduce')}
+            maxLength={300}
+            height={200}
+            placeholder='更多需要补充的描述,对外公开(300字以内)'
+          />
+        </View>
+        <View className="l-floor-footer t2">
+          <View className="lff-flex">
+            <View className="lff-btn full" onClick={this.saveHandle.bind(this)}>提交</View>
+          </View>
+        </View>
+      </View>
+    )
+  }
+}
+
+export default Index

+ 145 - 0
src/pagesMore/center/uploadRoomHl.scss

@@ -0,0 +1,145 @@
+@import '@css/mixin.scss';
+.scoped-box {
+  padding: 20px 20px 0;
+  .sb-title {
+    font-size: 30px;
+    color: #333;
+    padding-bottom: 20px;
+    font-weight: bold;
+    padding-left: 10px;
+    .s {
+      display: inline-block;
+      font-size: 24px;
+      color: #999;
+      font-weight: normal;
+    }
+  }
+}
+.at-textarea {
+  border: 1PX solid #f2f2f2;
+}
+.at-textarea__textarea {
+  font-size: 28px;
+  color: #333;
+}
+
+.scoped-img {
+  .si-op {
+    display: inline-block;
+    vertical-align: middle;
+    width: 200px;
+    height: 200px;
+    margin-right: 30px;
+    margin-bottom: 30px;
+    position: relative;
+    border: 1PX solid #f2f2f2;
+    .img {
+      width: 200px;
+      height: 200px;
+    }
+    .i {
+      position: absolute;
+      top: -20px;
+      right: -20px;
+      width: 40px;
+      height: 40px;
+    }
+  }
+}
+
+
+
+
+
+
+
+.scoped-addr-box {
+  position: absolute;
+  right: 20px;
+  top: 0;
+  width: 70%;
+  z-index: 2;
+  background: #fff;
+  display: flex;
+  height: 90px;
+  // border-bottom: 1PX solid #f2f2f2;
+  .i {
+    flex: 3;
+    font-size: 28px;
+    line-height: 90px;
+    text-align: right;
+    height: 90px;
+    padding-right: 10px;
+  }
+  .t {
+    flex: 2;
+    font-size: 28px;
+    color: #999;
+    height: 90px;
+    line-height: 90px;
+  }
+}
+
+.scoped-floor-height-box {
+  position: absolute;
+  right: 20px;
+  top: 0;
+  width: 50%;
+  background: #fff;
+  display: flex;
+  height: 90px;
+  z-index: 2;
+  .i {
+    flex: 2;
+    font-size: 28px;
+    line-height: 90px;
+    height: 90px;
+    text-align: center;
+  }
+  .t {
+    flex: 1;
+    font-size: 28px;
+    color: #999;
+    line-height: 90px;
+    height: 90px;
+    text-align: center;
+  }
+}
+
+.scoped-estate-name {
+  position: absolute;
+  right: 20px;
+  top: 0;
+  width: 70%;
+  background: #fff;
+  height: 90px;
+  line-height: 90px;
+  text-align: right;
+  z-index: 9;
+}
+
+
+.scoped-has-right {
+  position: relative;
+  .shr-r {
+    position: absolute;
+    right: 20px;
+    top: 0;
+  }
+}
+
+.scoped-ci-popup {
+  position: fixed;
+  z-index: 99999;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  height: 0;
+  width: 100%;
+  overflow: hidden;
+  background: #000;
+  &.show {
+    height: 100%;
+  }
+}

+ 13 - 13
src/pagesRoom/listed.jsx

@@ -9,17 +9,6 @@ import { arrToObj } from '@utils'
 
 class Index extends Component {
 
-  onShareAppMessage() {
-    return {
-      title: '来看看南昌的这些优质房源',
-    }
-  }
-  onShareTimeline () {
-    return {
-      title: '洪楼Plus,专注南昌本地房地产市场,让买房,更省心!',
-    }
-  }
-
   constructor (props) {
     super(props)
     const { estate_id } = this.$router.params
@@ -583,7 +572,7 @@ class Index extends Component {
             <View className="lhl-p2">{item.price}万
               <View className="sub">单价:{parseInt(item.price * 10000 / item.area)}元/平</View>
             </View>
-            <View className="lhl-p3">{FHstr}-{item.estate_name}</View>
+            <View className="lhl-p3">{item.floor}/{item.storeys}-{item.estate_name}</View>
             <View className="lhl-sign">
               {tagViews}
             </View>
@@ -611,7 +600,7 @@ class Index extends Component {
 
   linkHandle (item) {
     Taro.navigateTo({
-      url: `/pagesRoom/dtl?id=${item.id}`
+      url: `/pagesMore/center/uploadRoomHl?id=${item.id}`
     })
     // const appUserInfo = Taro.getStorageSync('APP_userInfo')
     // if (appUserInfo.is_sale == 1) {
@@ -625,6 +614,12 @@ class Index extends Component {
     // }
   }
 
+  addHandle () {
+    Taro.navigateTo({
+      url: `/pagesMore/center/uploadRoomHl`
+    })
+  }
+
   render () {
     const { estateIdCur, isEstateShow } = this.state
     const { estate_id } = this.$router.params
@@ -641,6 +636,11 @@ class Index extends Component {
           :
           <MultiSelect val={estateIdCur} moreOptions={estateMoreOptions} isShow={isEstateShow} initUpdate="no" bc={this.dealMSPopup.bind(this)} close={this.closeMSPopup.bind(this)}/>
         }
+        <View className="l-floor-footer">
+            <View className="lff-flex">
+              <View className="lff-btn full" onClick={this.addHandle.bind(this)}>添加已成交房源</View>
+            </View>
+          </View>
       </View>
     )
   }

+ 2 - 1
src/pagesRoom/listed.scss

@@ -3,9 +3,10 @@
 @import '@css/search-top.scss';
 .l-box {
   padding-top: calc(84px + 90px);
+  padding-bottom: 120px;
 }
 .l-scroll-view {
-  height: calc(100vh - 84px - 90px);
+  height: calc(100vh - 84px - 90px - 120px);
   box-sizing: border-box;
 }
 .scoped-fixed {