租房小程序前端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

230 lines
7.0 KiB

11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
  1. <template>
  2. <view>
  3. <view class="se-px-40 se-py-20">
  4. <view class="se-bgc-white se-br-50 se-c-black se-px-20 se-py-5 se-flex se-flex-h-sb se-fs-26">
  5. <view class="se-b-r se-pl-10 se-pr-20 se-flex se-flex-h se-h-40 se-lh-40 " @click="handleAreaChange()">
  6. <text class="se-pr-20 nobreak">{{city}}</text>
  7. <uv-icon name="arrow-down-fill"></uv-icon>
  8. </view>
  9. <view class="se-ml-20">
  10. <uv-search :showAction="false" bgColor="transparent" placeholder="请输入租房信息" v-model="keyword"></uv-search>
  11. </view>
  12. </view>
  13. </view>
  14. <view class="backdrop se-mb-20">
  15. <image class="se-w-vw-100 se-h-400" src="@/static/image/banner.png" mode=""></image>
  16. </view>
  17. <view class="se-grid se-bgc-white se-py-30 se-mt-300">
  18. <navigator url="/pages_subpack/category/index" v-for="(item, index) in nav" :key="index" class="se-flex-v-c se-mb-20">
  19. <image class="se-a-100 se-br-20" :src="item.img" mode=""></image>
  20. <text class="se-w-150 se-h-60 se-lh-30 se-c-black se-fs-22 se-ta-c se-mt-10 se-toe-2">{{item.name}}</text>
  21. </navigator>
  22. <!-- <view v-for="(item, index) in nav" :key="index" class="se-flex-v-c se-mb-20" @click="onNav">
  23. <image class="se-a-100 se-br-20" :src="item.img" mode=""></image>
  24. <text class="se-w-150 se-h-60 se-lh-30 se-c-black se-fs-22 se-ta-c se-mt-10 se-toe-2">{{item.name}}</text>
  25. </view> -->
  26. </view>
  27. <view class="se-mt-20 se-bgc-white se-px-20 se-py-10 se-ta-l se-c-orange se-flex se-flex-ai-c se-fs-24" @click="toNotice">
  28. <image class="se-a-80" src="@/static/image/aed60x.png" mode=""></image>
  29. <text class="se-ml-10">{{noticeObj.title}}</text>
  30. </view>
  31. <view class="se-bgc-white se-my-20">
  32. <uv-tabs @click="onClickHouseType" :list="houseTypeList" keyName="title" :activeStyle="{color:'#000000'}" :inactiveStyle="{color:'#666666'}" :lineColor="`url(${lineBg}) 100% 100%`"></uv-tabs>
  33. </view>
  34. <view class="se-pb-200">
  35. <view v-if="list.length>0">
  36. <view @click="onDetail(item)" class="se-my-10 se-mx-20 se-px-20 se-py-20 se-br-20 se-bgc-white se-flex" v-for="(item,index) in list" :key="index">
  37. <view class="se-pos se-w-260 se-h-180">
  38. <image class="se-a-80 se-pos-lt" :src="item.iconImage" mode=""></image>
  39. <image class="se-w-260 se-h-180 se-br-10" :src="item.image" mode=""></image>
  40. </view>
  41. <view class="se-pl-10 se-w-p-100">
  42. <view class="se-c-black se-fs-28">
  43. {{item.title}}
  44. </view>
  45. <view class="se-flex se-flex-h-sb se-flex-ai-c se-fs-24 se-mt-10 se-c-66">
  46. <text>{{item.homeType}}</text>
  47. <text>{{item.timeGo}}</text>
  48. </view>
  49. <view class="se-flex se-flex-h-sb se-flex-ai-c se-mt-10">
  50. <view class="se-display-ib se-c-white se-bgc-orange se-fs-22 se-br-8 se-px-10 se-py-5">
  51. {{item.iconTitle}}
  52. </view>
  53. <view class="se-c-66 se-flex se-flex-ai-c">
  54. <uv-icon name="eye"></uv-icon>
  55. <text class="se-ml-5 se-fs-18">{{item.num}}</text>
  56. </view>
  57. </view>
  58. <view class="se-flex se-flex-h-sb se-flex-ai-c se-mt-10">
  59. <text class="se-c-red se-fs-24 se-fw-6 se-toe-1">{{item.price}}/{{item.unit}}</text>
  60. <text class="se-c-66 se-fs-22 se-toe-1">{{item.address}}</text>
  61. </view>
  62. </view>
  63. </view>
  64. </view>
  65. <view v-else>
  66. <uv-empty mode="list" ></uv-empty>
  67. </view>
  68. </view>
  69. <!-- 地址 -->
  70. <citySelect ref="citySelectRef" :zIndex="0" @city-change="handleCityChange"></citySelect>
  71. </view>
  72. </template>
  73. <script>
  74. import { housePageList,houseType,noticeObjApi } from "@/common/api.js"
  75. import citySelect from "@/components/cityselect/index.vue"
  76. const lineBg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAANCAYAAAC3mX7tAAAAAXNSR0IArs4c6QAAAbxJREFUOE+lk0FrE1EUhc+ZDOhMigjZdNcWdCPJqNCdlkZw4TKL2mVwkKLQ/gAFRcEu/AEKuumDrEopNEsXSlNoV+2iTYIbBdNdNwGpmRmFyVx5oQk6mYSpvt1799z7zTnvDQPlBAJcRGxZOLXotn7Gz8ftZePaROCZP+IaEh36a04LxFS8mMmgcKFcb54H9Kvi5LtdNIZ6BMf0lVMDMD88UJ7abuP1eUDeWuEZyVcJPZ/oKeclgRcJxRMrG17l4udOGthZbF8ATMb1IvKcXiU/y66xnziM2LQf1O+nAfnq+hYgpSStCeMmdcFXzi6AWyMGrlvZcGmUs54T31QQLIzo37Pd+u0eKFD5osDYHvPlJyLyNopYnbgUtrSuc2pOG4aUSC4nxTWYFXHOfni02wPp5anCO4KP0sSUViOQ91m38VjrByDZLprBt/ZHkAkvMO3oP3QiO9ZM7i7v1MK/QHoj6sblQLrV/4ZpCDMluoff++iBo/6Bdua32m/+NUYdlz2dW+k7GQnqF84eyOqY1xjPcw8Rn+iLTwp6yFFcpP8zhLxHsgjBFRrI9WKO0AbxVURqMOVDttw8GHeTvwFKoZ4cmcUYJAAAAABJRU5ErkJggg==";
  77. export default{
  78. components:{
  79. citySelect
  80. },
  81. data(){
  82. return{
  83. city:"长沙市",
  84. keyword:"",
  85. lineBg: lineBg,
  86. nav:[
  87. {
  88. img:"../../static/image/nav1.png",
  89. name:"闲置散居农房"
  90. },
  91. {
  92. img:"../../static/image/nav2.png",
  93. name:"集体建设用地"
  94. },
  95. {
  96. img:"../../static/image/nav3.png",
  97. name:"鱼塘"
  98. },
  99. {
  100. img:"../../static/image/nav4.png",
  101. name:"林地"
  102. },
  103. {
  104. img:"../../static/image/nav5.png",
  105. name:"经营性建设用地"
  106. },
  107. {
  108. img:"../../static/image/nav6.png",
  109. name:"耕地"
  110. },
  111. {
  112. img:"../../static/image/nav7.png",
  113. name:"出租房"
  114. },
  115. {
  116. img:"../../static/image/nav8.png",
  117. name:"二手房"
  118. }
  119. ],
  120. noticeObj:{},
  121. houseTypeList:[],
  122. classId:null,
  123. pageNo:1,
  124. pageSize:10,
  125. list:[]
  126. }
  127. },
  128. mounted() {
  129. this.onNotice();
  130. this.onHousePageList();
  131. this.onHouseType();
  132. },
  133. onPullDownRefresh() {
  134. let that = this
  135. that.pageNo = 1
  136. that.onHousePageList()
  137. },
  138. onReachBottom() {
  139. let that = this
  140. that.pageNo = that.pageNo + 1
  141. that.onHousePageList()
  142. },
  143. methods:{
  144. onNotice(){
  145. noticeObjApi({}).then(response=>{
  146. console.info('noticeObj',response)
  147. this.noticeObj = response.result
  148. }).catch(error=>{
  149. })
  150. },
  151. onHouseType(){
  152. houseType({}).then(response=>{
  153. console.info('houseType',response)
  154. this.houseTypeList = response.result
  155. }).catch(error=>{
  156. })
  157. },
  158. onClickHouseType(event){
  159. console.info(event)
  160. let that = this
  161. that.pageNo = 1
  162. that.classId = event.id
  163. that.list =[]
  164. that.onHousePageList()
  165. },
  166. onHousePageList(){
  167. let that = this
  168. let params={
  169. classId:that.classId,
  170. pageNo:that.pageNo,
  171. pageSize:that.pageSize
  172. }
  173. housePageList(params).then((response) => {
  174. console.info("response",response)
  175. that.list = that.list.concat(response.result.records)
  176. }).catch((error) =>{
  177. })
  178. },
  179. handleAreaChange(){
  180. this.$refs.citySelectRef.open()
  181. },
  182. handleCityChange(e) {
  183. console.info(e)
  184. this.city = e.city.label
  185. // this.form.area = e.province.label + '-' + e.city.label + '-' + e.area.label;
  186. },
  187. onDetail(event){
  188. uni.navigateTo({
  189. url:"/pages_subpack/detail/index"
  190. })
  191. },
  192. toNotice(){
  193. uni.navigateTo({
  194. url:"/pages_subpack/notice/index"
  195. })
  196. }
  197. }
  198. }
  199. </script>
  200. <style>
  201. page{
  202. background-color: #f5f5f5;
  203. }
  204. .se-grid{
  205. border-top-right-radius: 50rpx;
  206. border-top-left-radius: 50rpx;
  207. }
  208. .backdrop{
  209. width: 750rpx;
  210. height: 350rpx;
  211. position: absolute;
  212. top: 0;
  213. left: 0;
  214. z-index: -1;
  215. /* border-radius: 0 0 14% 14%; */
  216. }
  217. .nobreak {
  218. white-space: nowrap;
  219. }
  220. </style>