1263428893@qq.com 7 months ago
parent
commit
3bfc37f28f
26 changed files with 890 additions and 164 deletions
  1. +13
    -1
      common/api.js
  2. +12
    -0
      manifest.json
  3. +32
    -1
      pages.json
  4. +17
    -13
      pages/auth/index.vue
  5. +76
    -0
      pages/discover-detail/index.vue
  6. +20
    -4
      pages/discover/index.vue
  7. +90
    -53
      pages/home/index.vue
  8. +17
    -8
      pages/login/index.vue
  9. +59
    -24
      pages/user/index.vue
  10. +149
    -0
      pages_subpack/broker-center/index.vue
  11. +104
    -3
      pages_subpack/category/index.vue
  12. +81
    -50
      pages_subpack/detail/index.vue
  13. +33
    -3
      pages_subpack/house/index.vue
  14. +148
    -0
      pages_subpack/landlord-center/index.vue
  15. +17
    -0
      pages_subpack/version/index.vue
  16. BIN
      static/image/nav1.png
  17. BIN
      static/image/nav2.png
  18. BIN
      static/image/nav3.png
  19. BIN
      static/image/nav4.png
  20. BIN
      static/image/nav5.png
  21. BIN
      static/image/nav6.png
  22. BIN
      static/image/nav7.png
  23. BIN
      static/image/nav8.png
  24. +1
    -0
      util/qqmap-wx-jssdk.min.js
  25. +10
    -3
      util/request/responseInterceptors.js
  26. +11
    -1
      utils/utils.js

+ 13
- 1
common/api.js View File

@ -26,7 +26,10 @@ export const UpdateInfo = (data) => http.post('/houserent-admin/info_common/upda
// 根据租房分类信息获取租房带分页列表信息 // 根据租房分类信息获取租房带分页列表信息
export const housePageList = (params) => http.get('/houserent-admin/common_index/getHousePageList', {params,params}) export const housePageList = (params) => http.get('/houserent-admin/common_index/getHousePageList', {params,params})
// 根据租房分类信息获取租房带分页列表信息
// 根据租房详情id获取房源详情
export const houseDetail = (params) => http.get('/houserent-admin/common_index/getHouseDetail', {params,params})
// 获取租房分类类型
export const houseType = (params) => http.get('/houserent-admin/common_index/getHouseType', {params,params}) export const houseType = (params) => http.get('/houserent-admin/common_index/getHouseType', {params,params})
// 获取通知公告 // 获取通知公告
@ -46,3 +49,12 @@ export const saveOrUpdateHouse = (data) => http.post('/houserent-admin/common_in
export const commonIndexFindPageList = (params) => http.get('/houserent-admin/common_index/getFindPageList', {params,params}) export const commonIndexFindPageList = (params) => http.get('/houserent-admin/common_index/getFindPageList', {params,params})
// 获取发现列表详情 // 获取发现列表详情
export const commonIndexFindDetail = (params) => http.get('/houserent-admin/common_index/getFindDetail', {params,params}) export const commonIndexFindDetail = (params) => http.get('/houserent-admin/common_index/getFindDetail', {params,params})
// 获取首页图标的接口
export const commonIndexIndexIcon = (params) => http.get('/houserent-admin/common_index/getIndexIcon', {params,params})
// 房东中心
export const MyHousePageList = (params) => http.get('/houserent-admin/common_index/getMyHousePageList', {params,params})
// 经纪人中心
export const MyVipPageList = (params) => http.get('/houserent-admin/common_index/getMyVipPageList', {params,params})
// 删除
export const deleteHouse = (params) => http.get('/houserent-admin/common_index/deleteHouse', {params,params})

+ 12
- 0
manifest.json View File

@ -77,6 +77,12 @@
"quickapp" : {}, "quickapp" : {},
"mp-weixin" : { "mp-weixin" : {
"appid" : "wxecec2f505129f162", "appid" : "wxecec2f505129f162",
"permission" : {
"scope.userLocation" : {
"desc" : "将获取你的具体位置信息,用于帮助用户浏览所在位置的零活信息"
}
},
"requiredPrivateInfos" : [ "getLocation", "chooseLocation" ],
"setting" : { "setting" : {
"urlCheck" : false, "urlCheck" : false,
"es6" : true, "es6" : true,
@ -103,5 +109,11 @@
"mode" : "history" "mode" : "history"
}, },
"title" : "tenancy" "title" : "tenancy"
},
"plugins" : {
"qqmap" : {
"version" : "1.0.0",
"provider" : "qqmap"
}
} }
} }

+ 32
- 1
pages.json View File

@ -18,7 +18,14 @@
{ {
"path": "pages/login/index", "path": "pages/login/index",
"style": { "style": {
"navigationStyle":"custom"
"navigationStyle":"default"
}
},
{
"path": "pages/discover-detail/index",
"style": {
"navigationBarTitleText": "发现详情",
"navigationStyle":"default"
} }
}, },
{ {
@ -132,6 +139,30 @@
"navigationBarBackgroundColor": "#ffffff", "navigationBarBackgroundColor": "#ffffff",
"navigationBarTextStyle": "black" "navigationBarTextStyle": "black"
} }
},
{
"path": "version/index",
"style": {
"navigationBarTitleText": "提示",
"navigationBarBackgroundColor": "#ffffff",
"navigationBarTextStyle": "black"
}
},
{
"path": "broker-center/index",
"style": {
"navigationBarTitleText": "经纪人中心",
"navigationBarBackgroundColor": "#ffffff",
"navigationBarTextStyle": "black"
}
},
{
"path": "landlord-center/index",
"style": {
"navigationBarTitleText": "房东中心",
"navigationBarBackgroundColor": "#ffffff",
"navigationBarTextStyle": "black"
}
} }
] ]
} }


+ 17
- 13
pages/auth/index.vue View File

@ -33,9 +33,9 @@
</view> </view>
<view class="se-lh-40 se-mt-40 se-fs-24 se-c-99"> <view class="se-lh-40 se-mt-40 se-fs-24 se-c-99">
<text>请您务必审慎阅读充分理解用户协议和隐私政策各条款包括但不限于用户注意事项用户行为规范以及为了向你提供服务而收集使用存储你个人信息的情况等你可阅读</text> <text>请您务必审慎阅读充分理解用户协议和隐私政策各条款包括但不限于用户注意事项用户行为规范以及为了向你提供服务而收集使用存储你个人信息的情况等你可阅读</text>
<text class="se-c-black se-fw-6" @click="handleOpenPrivacyContract()">租房小程序用户服务协议</text>
<text class="se-c-black se-fw-6" @click="handleOpenPrivacyContract()">{{userXyObj.keyValue}}</text>
<text></text> <text></text>
<text class="se-c-black se-fw-6" @click="handleOpenPrivacyContract()">租房小程序平台隐私权政策</text>
<text class="se-c-black se-fw-6" @click="handleOpenPrivacyContract()">{{userYsObj.keyValue}}</text>
<text>了解详细信息如你同意请点击下方按钮开始接受我们的服务</text> <text>了解详细信息如你同意请点击下方按钮开始接受我们的服务</text>
</view> </view>
<view class="se-flex se-flex-h-sb se-mt-40"> <view class="se-flex se-flex-h-sb se-mt-40">
@ -60,11 +60,14 @@
logo:"../../static/image/logo.png", logo:"../../static/image/logo.png",
name:"租房小程序", name:"租房小程序",
checked:[], checked:[],
show:false
show:false,
userXyObj:{},
userYsObj:{}
} }
}, },
mounted() { mounted() {
this.$store.commit('initConfig')
this.userXyObj = this.$utils.getkeyContent('user_xy')
this.userYsObj = this.$utils.getkeyContent('user_ys')
}, },
methods: { methods: {
open(){ open(){
@ -118,15 +121,16 @@
// that.commit('setUserInfo',{userInfo:response.result.userInfo,token:response.result.token}) // that.commit('setUserInfo',{userInfo:response.result.userInfo,token:response.result.token})
getInfo({}).then(result=>{ getInfo({}).then(result=>{
// console.info('resultresult',result) // console.info('resultresult',result)
if(result.result.nickName){
uni.switchTab({
url:"/pages/home/index"
})
}else{
uni.navigateTo({
url:"/pages/login/index"
})
}
uni.navigateTo({
url:"/pages/login/index"
})
// if(result.result.nickName){
// uni.switchTab({
// url:"/pages/home/index"
// })
// }else{
// }
}).catch(err=>{ }).catch(err=>{
}) })


+ 76
- 0
pages/discover-detail/index.vue View File

@ -0,0 +1,76 @@
<template>
<view>
<view class="se-w-vw-100 se-h-500">
<!-- <uv-swiper :radius="0" :list="list" :height="250" keyName="url" :autoplay="false"></uv-swiper> -->
<image class="se-w-p-100 se-h-500" :src="detail.image" mode="aspectFill"></image>
</view>
<view class="se-py-20 se-flex se-bgc-white">
<view class="se-w-vw-100 se-pl-30">
<view class=" se-c-black se-fw-6 se-fs-32">
{{detail.title}}
</view>
<!-- <view class="se-display-ib se-c-white se-bgc-orange se-fs-22 se-br-8 se-px-10 se-py-5">
{{detail.iconTitle}}
</view> -->
</view>
</view>
<view class="se-flex se-fs-24 se-px-30">
<view class="se-flex-1 se-py-20">
<text class="se-c-66 se-mr-20">发布时间</text>
<text class="se-c-black">{{detail.createTime}}</text>
</view>
</view>
<view class="se-flex se-fs-24 se-px-30">
<view class="se-flex-1 se-py-20">
<text class="se-c-66 se-mr-20">详细内容</text>
</view>
</view>
<view class="se-c-black se-pb-120 se-fs-26 se-lh-50 se-px-30 se-lh-40 se-pt-5">
<uv-parse :content="detail.details"></uv-parse>
</view>
</view>
</template>
<script>
import { commonIndexFindDetail } from "@/common/api.js"
export default{
data(){
return{
id:null,
detail:{},
// list: [{
// url: 'https://cdn.uviewui.com/uview/resources/video.mp4',
// title: '西',
// poster: 'https://cdn.uviewui.com/uview/swiper/swiper1.png'
// }, {
// url: 'https://cdn.uviewui.com/uview/swiper/swiper2.png',
// title: ''
// }, {
// url: 'https://cdn.uviewui.com/uview/swiper/swiper3.png',
// title: '西'
// }]
}
},
onLoad(options) {
this.id = options.id
this.onCommonFindDetail()
},
methods:{
onCommonFindDetail(){
let that = this
commonIndexFindDetail({houseId:that.id}).then(response=>{
console.info('response',response)
that.detail = response.result
}).catch(error=>{
})
}
}
}
</script>
<style>
page{
background-color: #f5f5f5;
}
</style>

+ 20
- 4
pages/discover/index.vue View File

@ -1,6 +1,6 @@
<template> <template>
<view class="se-p-20"> <view class="se-p-20">
<view class="se-p-20 se-bgc-white se-br-20 se-mb-20" v-for="(items,indexs) in list" :key="indexs">
<view class="se-p-20 se-bgc-white se-br-20 se-mb-20" v-for="(items,indexs) in list" :key="indexs" @click="onDetail(items)">
<view class="se-flex se-flex-h"> <view class="se-flex se-flex-h">
<image class="se-a-80" src="../../static/image/6588.png" mode=""></image> <image class="se-a-80" src="../../static/image/6588.png" mode=""></image>
<view class="se-flex se-flex-v se-ml-30"> <view class="se-flex se-flex-v se-ml-30">
@ -31,7 +31,7 @@
</template> </template>
<script> <script>
import { commonIndexFindPageList,commonIndexFindDetail } from "@/common/api.js"
import { commonIndexFindPageList,commonIndexFindDetail,getInfo } from "@/common/api.js"
export default{ export default{
data(){ data(){
return{ return{
@ -56,9 +56,25 @@
that.onCommonIndexFindPageList() that.onCommonIndexFindPageList()
}, },
methods:{ methods:{
onNavigator(){
onDetail(event){
uni.navigateTo({ uni.navigateTo({
url:"/pages_subpack/release/index"
url:"/pages/discover-detail/index?id="+event.id
})
},
onNavigator(){
let token = uni.getStorageSync('token');
if(!token){
uni.navigateTo({
url:"/pages/auth/index"
})
return ;
}
getInfo({}).then(result=>{
uni.navigateTo({
url:"/pages_subpack/release/index"
})
}).catch(err=>{
}) })
}, },
onCommonIndexFindPageList(){ onCommonIndexFindPageList(){


+ 90
- 53
pages/home/index.vue View File

@ -3,7 +3,7 @@
<view class="se-px-40 se-py-20"> <view class="se-px-40 se-py-20">
<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"> <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">
<view class="se-b-r se-pl-10 se-pr-20 se-flex se-flex-h se-h-40 se-lh-40 " @click="handleAreaChange()"> <view class="se-b-r se-pl-10 se-pr-20 se-flex se-flex-h se-h-40 se-lh-40 " @click="handleAreaChange()">
<text class="se-pr-20 nobreak">{{city}}</text>
<text class="se-pr-20 nobreak">{{city?city:'未知'}}</text>
<uv-icon name="arrow-down-fill"></uv-icon> <uv-icon name="arrow-down-fill"></uv-icon>
</view> </view>
<view class="se-ml-20" @click="onLogin()"> <view class="se-ml-20" @click="onLogin()">
@ -16,14 +16,14 @@
<image class="se-w-vw-100 se-h-400" src="@/static/image/banner.png" mode=""></image> <image class="se-w-vw-100 se-h-400" src="@/static/image/banner.png" mode=""></image>
</view> </view>
<view class="se-grid se-bgc-white se-py-30 se-mt-300"> <view class="se-grid se-bgc-white se-py-30 se-mt-300">
<navigator url="/pages_subpack/category/index" v-for="(item, index) in nav" :key="index" class="se-flex-v-c se-mb-20">
<!-- <navigator url="/pages_subpack/category/index" v-for="(item, index) in nav" :key="index" class="se-flex-v-c se-mb-20">
<image class="se-a-100 se-br-20" :src="item.img" mode=""></image> <image class="se-a-100 se-br-20" :src="item.img" mode=""></image>
<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> <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>
</navigator> -->
<navigator :url="item.url+`?id=`+item.id+`&title=`+item.title" v-for="(item, index) in nav" :key="index" class="se-flex-v-c se-mb-20">
<image class="se-a-100 se-br-20" :src="item.image" mode=""></image>
<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.title}}</text>
</navigator> </navigator>
<!-- <view v-for="(item, index) in nav" :key="index" class="se-flex-v-c se-mb-20" @click="onNav">
<image class="se-a-100 se-br-20" :src="item.img" mode=""></image>
<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>
</view> -->
</view> </view>
<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"> <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">
<image class="se-a-80" src="@/static/image/aed60x.png" mode=""></image> <image class="se-a-80" src="@/static/image/aed60x.png" mode=""></image>
@ -78,53 +78,52 @@
</template> </template>
<script> <script>
import { housePageList,houseType,noticeObjApi,getConfig } from "@/common/api.js"
import { housePageList,houseType,noticeObjApi,getConfig,commonIndexIndexIcon } from "@/common/api.js"
import citySelect from "@/components/cityselect/index.vue" import citySelect from "@/components/cityselect/index.vue"
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=="; 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==";
import QQMapWX from "@/util/qqmap-wx-jssdk.min.js"
export default{ export default{
components:{ components:{
citySelect citySelect
}, },
data(){ data(){
return{ return{
city:"长沙市",
city:"",
keyword:"", keyword:"",
lineBg: lineBg, lineBg: lineBg,
nav:[ nav:[
{
img:"../../static/image/nav1.png",
name:"闲置散居农房"
},
{
img:"../../static/image/nav2.png",
name:"集体建设用地"
},
{
img:"../../static/image/nav3.png",
name:"鱼塘"
},
{
img:"../../static/image/nav4.png",
name:"林地"
},
{
img:"../../static/image/nav5.png",
name:"经营性建设用地"
},
{
img:"../../static/image/nav6.png",
name:"耕地"
},
{
img:"../../static/image/nav7.png",
name:"出租房"
},
{
img:"../../static/image/nav8.png",
name:"二手房"
}
// {
// img:"../../static/image/nav1.png",
// name:""
// },
// {
// img:"../../static/image/nav2.png",
// name:""
// },
// {
// img:"../../static/image/nav3.png",
// name:""
// },
// {
// img:"../../static/image/nav4.png",
// name:""
// },
// {
// img:"../../static/image/nav5.png",
// name:""
// },
// {
// img:"../../static/image/nav6.png",
// name:""
// },
// {
// img:"../../static/image/nav7.png",
// name:""
// },
// {
// img:"../../static/image/nav8.png",
// name:""
// }
], ],
noticeObj:{}, noticeObj:{},
houseTypeList:[], houseTypeList:[],
@ -135,6 +134,13 @@
} }
}, },
mounted() { mounted() {
uni.chooseAddress({
success(res) {
console.info(res)
}
})
this.getLocation()
this.onCommonIndexIndexIcon()
this.onNotice(); this.onNotice();
this.onHousePageList(); this.onHousePageList();
this.onHouseType(); this.onHouseType();
@ -153,21 +159,47 @@
that.onHousePageList() that.onHousePageList()
}, },
methods:{ methods:{
getLocation(){
const that = this;
wx.getLocation({
type: 'wgs84',
success: function (res) {
console.log('当前位置的经度:' + res.longitude);
console.log('当前位置的纬度:' + res.latitude);
const qqmapsdk = new QQMapWX({
key: 'TT7BZ-Z3LW4-KOAUB-KWHOA-SBJJ6-Y5B6R' //
});
qqmapsdk.reverseGeocoder({
location: {
latitude: res.latitude,
longitude: res.longitude
},
success: function(res) {
that.city = res.result.ad_info.city
console.log('逆地理编码结果:', res);
},
fail: function(error) {
console.error('逆地理编码失败:', error);
}
});
}
})
},
onCommonIndexIndexIcon(){
let that = this
commonIndexIndexIcon({}).then(response=>{
console.info('onCommonIndexIndexIcon',response)
that.nav = response.result
}).catch(error=>{
})
},
onLogin(){ onLogin(){
console.info("onLogin") console.info("onLogin")
uni.navigateTo({ uni.navigateTo({
url:"/pages/auth/index" url:"/pages/auth/index"
}) })
}, },
onGetConfig(){
console.log('App Show')
getConfig({}).then(response=>{
console.info(response)
// that.commit('setUserInfo',{userInfo:response.result.userInfo,token:response.result.token})
}).catch(error=>{
})
},
onNotice(){ onNotice(){
noticeObjApi({}).then(response=>{ noticeObjApi({}).then(response=>{
@ -229,7 +261,12 @@
}, },
handleAreaChange(){ handleAreaChange(){
this.$refs.citySelectRef.open()
uni.chooseAddress({
success(res) {
console.info(res)
}
})
// this.$refs.citySelectRef.open()
}, },
handleCityChange(e) { handleCityChange(e) {
console.info(e) console.info(e)
@ -238,7 +275,7 @@
}, },
onDetail(event){ onDetail(event){
uni.navigateTo({ uni.navigateTo({
url:"/pages_subpack/detail/index"
url:"/pages_subpack/detail/index?id="+event.id
}) })
}, },
toNotice(){ toNotice(){


+ 17
- 8
pages/login/index.vue View File

@ -38,8 +38,8 @@
name : 'Login', name : 'Login',
data() { data() {
return { return {
nameUser:"奋斗不息、肖先生🧨 ²⁰²⁴",
imagUrl:"https://tennis-oss.xzaiyp.top/2024-12-03/5fda77f9-8a71-4794-851c-95f6efddc5b9.jpeg"
nameUser:"",
imagUrl:""
} }
}, },
methods: { methods: {
@ -58,13 +58,22 @@
avatarUrl:that.imagUrl, avatarUrl:that.imagUrl,
nickName:that.nameUser nickName:that.nameUser
} }
UpdateInfo(params).then((response) => {
uni.switchTab({
url:"/pages/home/index"
})
}).catch((error) =>{
if(that.imagUrl&&that.nameUser){
})
UpdateInfo(params).then((response) => {
uni.switchTab({
url:"/pages/home/index"
})
}).catch((error) =>{
})
}else{
return uni.showToast({
icon:"none",
title:"头像和昵称不能为空!"
})
}
} }
} }


+ 59
- 24
pages/user/index.vue View File

@ -1,23 +1,23 @@
<template> <template>
<view class="u-page"> <view class="u-page">
<view class="se-pt-30 se-pb-120 se-px-40 se-bgc-green se-c-white se-pos">
<view class="se-pt-30 se-pb-60 se-px-40 se-bgc-green se-c-white se-pos">
<view class="se-flex"> <view class="se-flex">
<image src="@/static/image/header.png" class="se-br-p-50 se-w-120 se-h-120" mode=""></image>
<image :src="user.headImage" class="se-br-p-50 se-bgc-f9 se-w-120 se-h-120" mode=""></image>
<view class="se-ml-20 se-flex se-flex-v-sa se-flex-ai-fs"> <view class="se-ml-20 se-flex se-flex-v-sa se-flex-ai-fs">
<view class="se-flex"> <view class="se-flex">
<text class="se-fw-6 se-fs-30">热心小肖</text>
<text class="se-fw-6 se-fs-30">{{user.nickName?user.nickName:'暂无昵称'}}</text>
<!-- <view class="se-flex se-flex-ai-c se-ml-20"> <!-- <view class="se-flex se-flex-ai-c se-ml-20">
<image class="se-a-25 se-mr-10" src="@/static/image/pencil.png" mode=""></image> <image class="se-a-25 se-mr-10" src="@/static/image/pencil.png" mode=""></image>
<text class="se-fs-22">修改资料</text> <text class="se-fs-22">修改资料</text>
</view> --> </view> -->
</view> </view>
<view class="se-fs-24 se-display-ib">
<view class="se-fs-24 se-display-ib" v-if="user.phone">
<text>手机号:</text> <text>手机号:</text>
<text class="se-ml-20">13189698114</text>
<text class="se-ml-20">{{user.phone}}</text>
</view> </view>
</view> </view>
</view> </view>
<view class="se-pos-cb se-flex se-flex-h-sb se-w-vw-82 se-br-10 se-bgc-white se-py-30 se-px-20"
<!-- <view class="se-pos-cb se-flex se-flex-h-sb se-w-vw-82 se-br-10 se-bgc-white se-py-30 se-px-20"
style="bottom: -90rpx;"> style="bottom: -90rpx;">
<view class="se-flex se-flex-v-c se-flex-1"> <view class="se-flex se-flex-v-c se-flex-1">
<image src="@/static/image/46892@2x.png" class="se-a-80" mode=""></image> <image src="@/static/image/46892@2x.png" class="se-a-80" mode=""></image>
@ -43,10 +43,10 @@
需求发布 需求发布
</view> </view>
</view> </view>
</view>
</view> -->
</view> </view>
<view class="se-m-30 se-mt-120 se-pl-30 se-pr-20 se-br-20 se-bgc-white">
<view class="se-py-30 se-px-20 se-flex se-flex-h-sb se-b-b">
<view class="se-m-30 se-mt-30 se-pl-30 se-pr-20 se-br-20 se-bgc-white">
<view class="se-py-30 se-px-20 se-flex se-flex-h-sb se-b-b" @click="onLandlord">
<view class="se-flex se-flex-ai-c"> <view class="se-flex se-flex-ai-c">
<image class="se-a-30" src="@/static/image/home4734.png" mode=""></image> <image class="se-a-30" src="@/static/image/home4734.png" mode=""></image>
<text class="se-ml-20 se-fs-24 se-fw-5">房东中心</text> <text class="se-ml-20 se-fs-24 se-fw-5">房东中心</text>
@ -55,7 +55,7 @@
<uv-icon name="arrow-right"></uv-icon> <uv-icon name="arrow-right"></uv-icon>
</view> </view>
</view> </view>
<view class="se-py-30 se-px-20 se-flex se-flex-h-sb se-b-b">
<view class="se-py-30 se-px-20 se-flex se-flex-h-sb se-b-b" @click="onBrokerCenter">
<view class="se-flex se-flex-ai-c"> <view class="se-flex se-flex-ai-c">
<image class="se-a-30" src="@/static/image/47100.png" mode=""></image> <image class="se-a-30" src="@/static/image/47100.png" mode=""></image>
<text class="se-ml-20 se-fs-24 se-fw-5">经纪人中心</text> <text class="se-ml-20 se-fs-24 se-fw-5">经纪人中心</text>
@ -73,7 +73,7 @@
<uv-icon name="arrow-right"></uv-icon> <uv-icon name="arrow-right"></uv-icon>
</view> </view>
</view> </view>
<view class="se-py-30 se-px-20 se-flex se-flex-h-sb">
<view class="se-py-30 se-px-20 se-flex se-flex-h-sb" @click="onVersion">
<view class="se-flex se-flex-ai-c"> <view class="se-flex se-flex-ai-c">
<image class="se-a-30" src="@/static/image/47186.png" mode=""></image> <image class="se-a-30" src="@/static/image/47186.png" mode=""></image>
<text class="se-ml-20 se-fs-24 se-fw-5">关于我们</text> <text class="se-ml-20 se-fs-24 se-fw-5">关于我们</text>
@ -87,26 +87,61 @@
</template> </template>
<script> <script>
import { getInfo } from "@/common/api.js"
export default { export default {
data() { data() {
return { return {
user:{}
} }
}, },
methods: {
onLoad() {
},
onShow() {
this.onInfo()
},
methods: {
onInfo(){
let that = this
getInfo({}).then(response=>{
that.user = response.result
console.info('response',response)
}).catch(error=>{
})
},
onLandlord(){
uni.navigateTo({
url:"/pages_subpack/landlord-center/index"
})
},
onBrokerCenter(){
uni.navigateTo({
url:"/pages_subpack/broker-center/index"
})
},
onVersion(){
uni.navigateTo({
url:"/pages_subpack/version/index"
})
},
onCustomerService(){ onCustomerService(){
uni.showModal({
title: '联系客服',
content: '确定拨打客服电话?',
success: function (res) {
if (res.confirm) {
console.log('用户点击确定');
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
let that = this
let obj = that.$utils.getkeyContent('phone')
if (uni.canIUse('makePhoneCall')) {
uni.makePhoneCall({
phoneNumber: obj.keyContent, //
success: function () {
console.log('拨打电话成功');
},
fail: function () {
console.log('拨打电话失败');
}
});
} else {
console.log('你的设备不支持拨打电话功能');
}
} }
} }
} }


+ 149
- 0
pages_subpack/broker-center/index.vue View File

@ -0,0 +1,149 @@
<template>
<view>
<view class="se-pb-200">
<view v-if="list.length>0">
<view class="se-my-20 se-mx-20 se-px-20 se-py-20 se-br-20 se-bgc-white se-flex se-flex-v" v-for="(item,index) in list" :key="index">
<view @click="onDetail(item)" class=" se-flex">
<view class="se-pos se-w-260 se-h-180">
<image v-if="item.iconImage" class="se-a-80 se-pos-lt" :src="item.iconImage" mode=""></image>
<image class="se-w-260 se-h-180 se-br-10" :src="item.images[0]" mode=""></image>
</view>
<view class="se-pl-10 se-w-p-100">
<view class="se-c-black se-fs-28">
{{item.title}}
</view>
<view class="se-flex se-flex-h-sb se-flex-ai-c se-fs-24 se-mt-10 se-c-66">
<text>{{item.homeType}}</text>
<text>{{item.timeGo}}</text>
</view>
<view class="se-flex se-flex-h-sb se-flex-ai-c se-mt-10">
<template v-if="item.iconTitles.length>0">
<view class="se-flex">
<view class="se-display-ib se-c-white se-bgc-orange se-fs-22 se-br-8 se-px-10 se-py-5 se-mr-10" v-for="(items,indexs) in item.iconTitles" :key="indexs">
{{items}}
</view>
</view>
</template>
<template v-else><view></view></template>
<view class="se-c-66 se-flex se-flex-ai-c">
<uv-icon name="eye"></uv-icon>
<text class="se-ml-5 se-fs-18">{{item.num}}</text>
</view>
</view>
<view class="se-flex se-flex-h-sb se-flex-ai-c se-mt-10">
<text class="se-c-red se-fs-24 se-fw-6 se-toe-1">{{item.price}}/{{item.unit}}</text>
<text class="se-c-66 se-fs-22 se-toe-1">{{item.address}}</text>
</view>
</view>
</view>
<view class="se-flex se-fs-24">
<view class="se-flex-1 se-py-10">
<text class="se-c-99 se-mr-20">编辑</text>
</view>
<view class="se-flex-1 se-py-10 se-flex se-flex-h-fe">
<text class="se-c-red se-mr-20" @click="onDelete(item)">删除</text>
</view>
</view>
</view>
</view>
<view v-else>
<uv-empty mode="list" ></uv-empty>
</view>
</view>
</view>
</template>
<script>
import { MyVipPageList ,deleteHouse} from "@/common/api.js"
export default {
data(){
return{
pageNo:1,
pageSize:10,
list:[]
}
},
onLoad(options) {
this.onMyVipPageList()
},
onPullDownRefresh() {
let that = this
that.pageNo = 1
that.list = []
that.onMyVipPageList()
},
onReachBottom() {
let that = this
that.pageNo = that.pageNo + 1
that.onMyVipPageList()
},
methods:{
onMyHousePageList(){
let that = this
let params={
iconClass:that.id,
pageNo:that.pageNo,
pageSize:that.pageSize
}
MyVipPageList(params).then((response) => {
console.info("responseindexsindexsindexs",response.result.records)
response.result.records.forEach((items,indexs)=>{
if(items.image){
items.images = items.image.split(',')
}else{
items.images = []
}
if(items.homeImage){
items.homeImages = items.homeImage.split(',')
}else{
items.homeImages = []
}
if(items.iconTitle){
items.iconTitles = items.iconTitle.split(',')
}else{
items.iconTitles = []
}
})
console.info('response.resultindexsindexsindexs',response.result.records)
that.list = that.list.concat(response.result.records)
}).catch((error) =>{
})
},
onDetail(event){
uni.navigateTo({
url:"/pages_subpack/detail/index?id="+event.id
})
},
onDelete(event){
let that = this;
uni.showModal({
title: '温馨提示',
content: '确定是否删除该数据?',
success: function (res) {
if (res.confirm) {
console.log('用户点击确定');
console.info('event',event)
deleteHouse({houseId:event.id}).then(response=>{
uni.showToast({
icon:"none",
title:"删除成功"
})
that.onMyHousePageList()
}).catch(error=>{
})
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
}
}
}
</script>
<style>
</style>

+ 104
- 3
pages_subpack/category/index.vue View File

@ -1,7 +1,47 @@
<template> <template>
<view class="uv-page"> <view class="uv-page">
<searchVue @onSearch="onSearch($event)" @onParent="onDropDown($event)" />
<view 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 20" :key="index">
<!-- <searchVue @onSearch="onSearch($event)" @onParent="onDropDown($event)" /> -->
<view class="se-pb-200">
<view v-if="list.length>0">
<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">
<view class="se-pos se-w-260 se-h-180">
<image v-if="item.iconImage" class="se-a-80 se-pos-lt" :src="item.iconImage" mode=""></image>
<image class="se-w-260 se-h-180 se-br-10" :src="item.images[0]" mode=""></image>
</view>
<view class="se-pl-10 se-w-p-100">
<view class="se-c-black se-fs-28">
{{item.title}}
</view>
<view class="se-flex se-flex-h-sb se-flex-ai-c se-fs-24 se-mt-10 se-c-66">
<text>{{item.homeType}}</text>
<text>{{item.timeGo}}</text>
</view>
<view class="se-flex se-flex-h-sb se-flex-ai-c se-mt-10">
<template v-if="item.iconTitles.length>0">
<view class="se-flex">
<view class="se-display-ib se-c-white se-bgc-orange se-fs-22 se-br-8 se-px-10 se-py-5 se-mr-10" v-for="(items,indexs) in item.iconTitles" :key="indexs">
{{items}}
</view>
</view>
</template>
<template v-else><view></view></template>
<view class="se-c-66 se-flex se-flex-ai-c">
<uv-icon name="eye"></uv-icon>
<text class="se-ml-5 se-fs-18">{{item.num}}</text>
</view>
</view>
<view class="se-flex se-flex-h-sb se-flex-ai-c se-mt-10">
<text class="se-c-red se-fs-24 se-fw-6 se-toe-1">{{item.price}}/{{item.unit}}</text>
<text class="se-c-66 se-fs-22 se-toe-1">{{item.address}}</text>
</view>
</view>
</view>
</view>
<view v-else>
<uv-empty mode="list" ></uv-empty>
</view>
</view>
<!-- <view 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 20" :key="index">
<view class="se-pos se-w-260 se-h-180"> <view class="se-pos se-w-260 se-h-180">
<image class="se-a-80 se-pos-lt" src="../../static/image/2x.png" mode=""></image> <image class="se-a-80 se-pos-lt" src="../../static/image/2x.png" mode=""></image>
<image class="se-w-260 se-h-180 se-br-10" src="https://cdn.uviewui.com/uview/swiper/swiper1.png" mode=""></image> <image class="se-w-260 se-h-180 se-br-10" src="https://cdn.uviewui.com/uview/swiper/swiper1.png" mode=""></image>
@ -28,12 +68,13 @@
<text class="se-c-66 se-fs-22">四季峰景四期</text> <text class="se-c-66 se-fs-22">四季峰景四期</text>
</view> </view>
</view> </view>
</view>
</view> -->
</view> </view>
</template> </template>
<script> <script>
import searchVue from './component/search.vue' import searchVue from './component/search.vue'
import { housePageList } from "@/common/api.js"
export default{ export default{
components:{ components:{
searchVue searchVue
@ -41,14 +82,74 @@
data(){ data(){
return{ return{
keyword:"", keyword:"",
id:null,
pageNo:1,
pageSize:10,
list:[]
} }
}, },
onLoad(options) {
this.id = options.id
uni.setNavigationBarTitle({
title: options.title
})
this.onHousePageList()
},
onPullDownRefresh() {
let that = this
that.pageNo = 1
that.list = []
that.onHousePageList()
},
onReachBottom() {
let that = this
that.pageNo = that.pageNo + 1
that.onHousePageList()
},
methods:{ methods:{
onHousePageList(){
let that = this
let params={
iconClass:that.id,
pageNo:that.pageNo,
pageSize:that.pageSize
}
housePageList(params).then((response) => {
console.info("responseindexsindexsindexs",response.result.records)
response.result.records.forEach((items,indexs)=>{
if(items.image){
items.images = items.image.split(',')
}else{
items.images = []
}
if(items.homeImage){
items.homeImages = items.homeImage.split(',')
}else{
items.homeImages = []
}
if(items.iconTitle){
items.iconTitles = items.iconTitle.split(',')
}else{
items.iconTitles = []
}
})
console.info('response.resultindexsindexsindexs',response.result.records)
that.list = that.list.concat(response.result.records)
}).catch((error) =>{
})
},
onSearch(event){ onSearch(event){
console.info(event) console.info(event)
}, },
onDropDown(event){ onDropDown(event){
console.info(event[0].value) console.info(event[0].value)
},
onDetail(event){
uni.navigateTo({
url:"/pages_subpack/detail/index?id="+event.id
})
} }
} }
} }


+ 81
- 50
pages_subpack/detail/index.vue View File

@ -6,10 +6,10 @@
<view class="se-py-20 se-flex se-bgc-white"> <view class="se-py-20 se-flex se-bgc-white">
<view class="se-w-vw-90 se-pl-30"> <view class="se-w-vw-90 se-pl-30">
<view class=" se-c-black se-fw-6 se-fs-32"> <view class=" se-c-black se-fw-6 se-fs-32">
整租·四季峰景四期·2室1厅1卫整租·四季峰景四期·2室1厅1卫整租·四季峰景四期·2室1厅1卫
{{detail.title}}
</view> </view>
<view class="se-display-ib se-c-white se-bgc-orange se-fs-22 se-br-8 se-px-10 se-py-5"> <view class="se-display-ib se-c-white se-bgc-orange se-fs-22 se-br-8 se-px-10 se-py-5">
全新首租
{{detail.iconTitle}}
</view> </view>
</view> </view>
<view class="se-w-vw-10 se-pr-30 se-flex se-flex-v-c"> <view class="se-w-vw-10 se-pr-30 se-flex se-flex-v-c">
@ -20,15 +20,15 @@
<view class="se-mt-30 se-bgc-white se-py-30 se-flex se-flex-h-fs"> <view class="se-mt-30 se-bgc-white se-py-30 se-flex se-flex-h-fs">
<view class="se-flex-1 se-flex-v-sa"> <view class="se-flex-1 se-flex-v-sa">
<text class="se-c-66 se-fw-5">价格</text> <text class="se-c-66 se-fw-5">价格</text>
<text class="se-c-red se-fw-6 se-mt-20">2000/</text>
<text class="se-c-red se-fw-6 se-mt-20">{{detail.price}}/</text>
</view> </view>
<view class="se-flex-1 se-flex-v-sa"> <view class="se-flex-1 se-flex-v-sa">
<text class="se-c-66 se-fw-5">户型</text> <text class="se-c-66 se-fw-5">户型</text>
<text class="se-c-red se-fw-6 se-mt-20">2000/</text>
<text class="se-c-red se-fw-6 se-mt-20">{{detail.homeType}}</text>
</view> </view>
<view class="se-flex-1 se-flex-v-sa"> <view class="se-flex-1 se-flex-v-sa">
<text class="se-c-66 se-fw-5">面积</text> <text class="se-c-66 se-fw-5">面积</text>
<text class="se-c-red se-fw-6 se-mt-20">90平方米</text>
<text class="se-c-red se-fw-6 se-mt-20">{{detail.homeMi}}平方米</text>
</view> </view>
</view> </view>
<view class="se-mt-30 se-p-40 se-bgc-white"> <view class="se-mt-30 se-p-40 se-bgc-white">
@ -41,23 +41,23 @@
<view class="se-flex se-fs-24"> <view class="se-flex se-fs-24">
<view class="se-flex-1 se-py-20"> <view class="se-flex-1 se-py-20">
<text class="se-c-66 se-mr-20">编号</text> <text class="se-c-66 se-mr-20">编号</text>
<text class="se-c-black">232355214</text>
<text class="se-c-black">{{detail.classId}}</text>
</view> </view>
<view class="se-flex-1 se-py-20 se-flex se-flex-h-fe"> <view class="se-flex-1 se-py-20 se-flex se-flex-h-fe">
<text class="se-c-66 se-mr-20">房屋结构</text> <text class="se-c-66 se-mr-20">房屋结构</text>
<text class="se-c-black">两室一厅</text>
<text class="se-c-black">{{detail.homeJg}}</text>
</view> </view>
</view> </view>
<view class="se-flex se-fs-24"> <view class="se-flex se-fs-24">
<view class="se-flex-2 se-py-20"> <view class="se-flex-2 se-py-20">
<text class="se-c-66 se-mr-20">房屋地址</text> <text class="se-c-66 se-mr-20">房屋地址</text>
<text class="se-c-black se-fw-6">湖南省长沙市天心区芙蓉街道四季峰景四期</text>
<text class="se-c-black se-fw-6">{{detail.address}}</text>
</view> </view>
</view> </view>
<view class="se-flex bgc-active-lg se-py-20 se-br-10">
<!-- <view class="se-flex bgc-active-lg se-py-20 se-br-10">
<view class="se-w-p-85 se-pl-30"> <view class="se-w-p-85 se-pl-30">
<view class=" se-c-black se-fw-6 se-fs-24"> <view class=" se-c-black se-fw-6 se-fs-24">
具体地址长沙市天心区桂花坪街道231号
具体地址{{detail.address}}
</view> </view>
<view class="se-fs-22 se-py-5"> <view class="se-fs-22 se-py-5">
距离你1.4km 骑行9分钟 步行18分钟 距离你1.4km 骑行9分钟 步行18分钟
@ -67,121 +67,121 @@
<uv-icon name="photo"></uv-icon> <uv-icon name="photo"></uv-icon>
<text class="se-c-black se-fs-20 se-mt-10">导航</text> <text class="se-c-black se-fs-20 se-mt-10">导航</text>
</view> </view>
</view>
</view> -->
<view class="se-flex se-fs-24"> <view class="se-flex se-fs-24">
<view class="se-flex-2 se-py-20"> <view class="se-flex-2 se-py-20">
<text class="se-c-66 se-mr-20">房屋周边</text> <text class="se-c-66 se-mr-20">房屋周边</text>
<text class="se-c-black se-fw-6">超市·幼儿园·医院·学校·小吃街等</text>
<text class="se-c-black se-fw-6">{{detail.homeBian}}</text>
</view> </view>
</view> </view>
<view class="se-flex se-fs-24"> <view class="se-flex se-fs-24">
<view class="se-flex-1 se-py-20"> <view class="se-flex-1 se-py-20">
<text class="se-c-66 se-mr-20">房间数量</text> <text class="se-c-66 se-mr-20">房间数量</text>
<text class="se-c-black">2</text>
<text class="se-c-black">{{detail.homeNum}}</text>
</view> </view>
<view class="se-flex-1 se-py-20 se-flex se-flex-h-fe"> <view class="se-flex-1 se-py-20 se-flex se-flex-h-fe">
<text class="se-c-66 se-mr-20">菜地</text> <text class="se-c-66 se-mr-20">菜地</text>
<text class="se-c-black">40</text>
<text class="se-c-black">{{detail.homeCai}}</text>
</view> </view>
</view> </view>
<view class="se-flex se-fs-24"> <view class="se-flex se-fs-24">
<view class="se-flex-1 se-py-20"> <view class="se-flex-1 se-py-20">
<text class="se-c-66 se-mr-20">距离场镇距离</text> <text class="se-c-66 se-mr-20">距离场镇距离</text>
<text class="se-c-black">2km</text>
<text class="se-c-black">{{detail.homeJl}}km</text>
</view> </view>
<view class="se-flex-1 se-py-20 se-flex se-flex-h-fe"> <view class="se-flex-1 se-py-20 se-flex se-flex-h-fe">
<text class="se-c-66 se-mr-20">距离成都西三环</text> <text class="se-c-66 se-mr-20">距离成都西三环</text>
<text class="se-c-black">2km</text>
<text class="se-c-black">{{detail.homeShjl}}km</text>
</view> </view>
</view> </view>
<view class="se-flex se-fs-24"> <view class="se-flex se-fs-24">
<view class="se-flex-1 se-py-20"> <view class="se-flex-1 se-py-20">
<text class="se-c-66 se-mr-20">房屋主体是否改造</text> <text class="se-c-66 se-mr-20">房屋主体是否改造</text>
<text class="se-c-black"></text>
<text class="se-c-black">{{detail.homeGz}}</text>
</view> </view>
<view class="se-flex-1 se-py-20 se-flex se-flex-h-fe"> <view class="se-flex-1 se-py-20 se-flex se-flex-h-fe">
<text class="se-c-66 se-mr-20">房屋面积</text> <text class="se-c-66 se-mr-20">房屋面积</text>
<text class="se-c-black">90</text>
<text class="se-c-black">{{detail.homeMj}}</text>
</view> </view>
</view> </view>
<view class="se-flex se-fs-24"> <view class="se-flex se-fs-24">
<view class="se-flex-1 se-py-20"> <view class="se-flex-1 se-py-20">
<text class="se-c-66 se-mr-20">院子总面积</text> <text class="se-c-66 se-mr-20">院子总面积</text>
<text class="se-c-black">30</text>
<text class="se-c-black">{{detail.homeYzmj}}</text>
</view> </view>
<view class="se-flex-2 se-py-20 se-flex se-flex-h-fe"> <view class="se-flex-2 se-py-20 se-flex se-flex-h-fe">
<text class="se-c-66 se-mr-20">房屋朝向及海拔</text> <text class="se-c-66 se-mr-20">房屋朝向及海拔</text>
<text class="se-c-black">90坐南朝北 600</text>
<text class="se-c-black">{{detail.homeHb}}</text>
</view> </view>
</view> </view>
<view class="se-flex se-fs-24"> <view class="se-flex se-fs-24">
<view class="se-flex-1 se-py-20"> <view class="se-flex-1 se-py-20">
<text class="se-c-66 se-mr-20">是否经过安置</text> <text class="se-c-66 se-mr-20">是否经过安置</text>
<text class="se-c-black"></text>
<text class="se-c-black">{{detail.homeAz}}</text>
</view> </view>
<view class="se-flex-1 se-py-20 se-flex se-flex-h-fe"> <view class="se-flex-1 se-py-20 se-flex se-flex-h-fe">
<text class="se-c-66 se-mr-20">交通</text> <text class="se-c-66 se-mr-20">交通</text>
<text class="se-c-black">交通便利</text>
<text class="se-c-black">{{detail.homeJt}}</text>
</view> </view>
</view> </view>
<view class="se-flex se-fs-24"> <view class="se-flex se-fs-24">
<view class="se-flex-1 se-py-20"> <view class="se-flex-1 se-py-20">
<text class="se-c-66 se-mr-20">坟包及电塔 工厂噪音</text> <text class="se-c-66 se-mr-20">坟包及电塔 工厂噪音</text>
<text class="se-c-black"></text>
<text class="se-c-black">{{detail.homeZy}}</text>
</view> </view>
<view class="se-flex-1 se-py-20 se-flex se-flex-h-fe"> <view class="se-flex-1 se-py-20 se-flex se-flex-h-fe">
<text class="se-c-66 se-mr-20">水电气网</text> <text class="se-c-66 se-mr-20">水电气网</text>
<text class="se-c-black">正常</text>
<text class="se-c-black">{{detail.homeSd}}</text>
</view> </view>
</view> </view>
<view class="se-flex se-fs-24"> <view class="se-flex se-fs-24">
<view class="se-flex-1 se-py-20"> <view class="se-flex-1 se-py-20">
<text class="se-c-66 se-mr-20">停车</text> <text class="se-c-66 se-mr-20">停车</text>
<text class="se-c-black">100/</text>
<text class="se-c-black">{{detail.homeCat}}</text>
</view> </view>
<view class="se-flex-2 se-py-20 se-flex se-flex-h-fe"> <view class="se-flex-2 se-py-20 se-flex se-flex-h-fe">
<text class="se-c-66 se-mr-20">付款方式及押金</text> <text class="se-c-66 se-mr-20">付款方式及押金</text>
<text class="se-c-black">押一付三(押金2000)</text>
<text class="se-c-black">{{detail.homePay}}</text>
</view> </view>
</view> </view>
<view class="se-flex se-fs-24"> <view class="se-flex se-fs-24">
<view class="se-flex-1 se-py-20"> <view class="se-flex-1 se-py-20">
<text class="se-c-66 se-mr-20">租期</text> <text class="se-c-66 se-mr-20">租期</text>
<text class="se-c-black">1</text>
<text class="se-c-black">{{detail.homeTime}}</text>
</view> </view>
<view class="se-flex-1 se-py-20 se-flex se-flex-h-fe"> <view class="se-flex-1 se-py-20 se-flex se-flex-h-fe">
<text class="se-c-66 se-mr-20">非正常死亡</text> <text class="se-c-66 se-mr-20">非正常死亡</text>
<text class="se-c-black"></text>
<text class="se-c-black">{{detail.homeSw}}</text>
</view> </view>
</view> </view>
<view class="se-flex se-fs-24"> <view class="se-flex se-fs-24">
<view class="se-flex-1 se-py-20"> <view class="se-flex-1 se-py-20">
<text class="se-c-66 se-mr-20">邻居对房东评价</text> <text class="se-c-66 se-mr-20">邻居对房东评价</text>
<text class="se-c-black">为人和善</text>
<text class="se-c-black">{{detail.homePj}}</text>
</view> </view>
<view class="se-flex-1 se-py-20 se-flex se-flex-h-fe"> <view class="se-flex-1 se-py-20 se-flex se-flex-h-fe">
<text class="se-c-66 se-mr-20">佣金</text> <text class="se-c-66 se-mr-20">佣金</text>
<text class="se-c-black">200</text>
<text class="se-c-black">{{detail.homeMoney}}</text>
</view> </view>
</view> </view>
<view class="se-flex se-fs-24"> <view class="se-flex se-fs-24">
<view class="se-flex-1 se-py-20"> <view class="se-flex-1 se-py-20">
<text class="se-c-66 se-mr-20">钥匙</text> <text class="se-c-66 se-mr-20">钥匙</text>
<text class="se-c-black">2</text>
<text class="se-c-black">{{detail.homeYs}}</text>
</view> </view>
<view class="se-flex-1 se-py-20 se-flex se-flex-h-fe"> <view class="se-flex-1 se-py-20 se-flex se-flex-h-fe">
<text class="se-c-66 se-mr-20">户主家庭职业</text> <text class="se-c-66 se-mr-20">户主家庭职业</text>
<text class="se-c-black">医生</text>
<text class="se-c-black">{{detail.homeJtzy}}</text>
</view> </view>
</view> </view>
<view class="se-flex se-fs-24"> <view class="se-flex se-fs-24">
<view class="se-flex-1 se-py-20"> <view class="se-flex-1 se-py-20">
<text class="se-c-66 se-mr-20">报建手续</text> <text class="se-c-66 se-mr-20">报建手续</text>
<text class="se-c-black">完整</text>
<text class="se-c-black">{{detail.homeBjsx}}</text>
</view> </view>
<view class="se-flex-1 se-py-20 se-flex se-flex-h-fe"> <view class="se-flex-1 se-py-20 se-flex se-flex-h-fe">
<text class="se-c-66 se-mr-20">户主年龄</text> <text class="se-c-66 se-mr-20">户主年龄</text>
<text class="se-c-black">40</text>
<text class="se-c-black">{{detail.homeAge}}</text>
</view> </view>
</view> </view>
</view> </view>
@ -193,18 +193,18 @@
</view> </view>
</view> </view>
<view class="se-flex se-mt-20"> <view class="se-flex se-mt-20">
<image class="se-w-320 se-h-180 se-br-5" src="../../static/image/logo.png" mode=""></image>
<image class="se-w-320 se-h-180 se-br-5 se-ml-10" src="../../static/image/logo.png" mode=""></image>
<image class="se-w-320 se-h-180 se-br-5" :src="detail.homeTf" mode=""></image>
<image class="se-w-320 se-h-180 se-br-5 se-ml-10" :src="detail.image" mode=""></image>
</view> </view>
</view> </view>
<view class="se-mt-30 se-p-40 se-bgc-white">
<!-- <view class="se-mt-30 se-p-40 se-bgc-white">
<view class="se-flex se-flex-ai-c se-pb-10"> <view class="se-flex se-flex-ai-c se-pb-10">
<view class="line-green"></view> <view class="line-green"></view>
<view class="se-ml-10 se-fs-32 se-c-black se-fw-6"> <view class="se-ml-10 se-fs-32 se-c-black se-fw-6">
房东评价 房东评价
</view> </view>
</view> </view>
<view class="se-mt-30" v-for="(items,indexs) in 5" :key="indexs">
<view class="se-mt-30" v-for="(items,indexs) in 1" :key="indexs">
<view class="se-flex se-w-p-100"> <view class="se-flex se-w-p-100">
<view class="se-flex se-flex-1"> <view class="se-flex se-flex-1">
<image class="se-a-80 se-br-p-50" src="../../static/image/6588.png" mode=""></image> <image class="se-a-80 se-br-p-50" src="../../static/image/6588.png" mode=""></image>
@ -221,28 +221,59 @@
房东人很不错当时疫情没在房子里面住直接给我免了一个月房租真的很感动平时有什么需要维修的地方联系他也会很快处理 房东人很不错当时疫情没在房子里面住直接给我免了一个月房租真的很感动平时有什么需要维修的地方联系他也会很快处理
</view> </view>
</view> </view>
</view>
</view> -->
</view> </view>
</template> </template>
<script> <script>
import { houseDetail } from "@/common/api.js"
export default{ export default{
data(){ data(){
return{ return{
id:null,
detail:{},
rate:3, rate:3,
list: [{
url: 'https://cdn.uviewui.com/uview/resources/video.mp4',
title: '昨夜星辰昨夜风,画楼西畔桂堂东',
poster: 'https://cdn.uviewui.com/uview/swiper/swiper1.png'
}, {
url: 'https://cdn.uviewui.com/uview/swiper/swiper2.png',
title: '身无彩凤双飞翼,心有灵犀一点通'
}, {
url: 'https://cdn.uviewui.com/uview/swiper/swiper3.png',
title: '谁念西风独自凉,萧萧黄叶闭疏窗,沉思往事立残阳'
}]
list:[],
// list: [{
// url: 'https://cdn.uviewui.com/uview/resources/video.mp4',
// title: '西',
// poster: 'https://cdn.uviewui.com/uview/swiper/swiper1.png'
// }, {
// url: 'https://cdn.uviewui.com/uview/swiper/swiper2.png',
// title: ''
// }, {
// url: 'https://cdn.uviewui.com/uview/swiper/swiper3.png',
// title: '西'
// }]
} }
}, },
onLoad(options) {
this.id = options.id;
this.onHouseDetail()
},
methods:{
onHouseDetail(){
let that = this
houseDetail({houseId:that.id}).then(response=>{
let items = response.result
console.info('response',response.result)
if(items.image){
console.info('items.image.split()',items.image.split(','))
items.image.split(',').forEach(items=>{
that.list.push({
url: items
})
})
}
that.detail = items
}).catch(error=>{
})
}
}
} }
</script> </script>


+ 33
- 3
pages_subpack/house/index.vue View File

@ -14,7 +14,7 @@
<uv-input v-model="form.proportion" type="text" placeholder="请输入面积" customStyle="border-radius: 5px;margin-top:5px;background-color: #f5f5f5;padding:5px 10px;"></uv-input> <uv-input v-model="form.proportion" type="text" placeholder="请输入面积" customStyle="border-radius: 5px;margin-top:5px;background-color: #f5f5f5;padding:5px 10px;"></uv-input>
</uv-form-item> </uv-form-item>
<uv-form-item label="所属位置" prop="address" @click="handleAreaChange()"> <uv-form-item label="所属位置" prop="address" @click="handleAreaChange()">
<uv-input v-model="form.address" @click="handleAreaChange()" disabled disabledColor="#ffffff" placeholder="所属位置" border="none">
<uv-input v-model="form.address" @click="handleAreaChange()" disabled disabledColor="#ffffff" placeholder="选择所在位置" border="none">
</uv-input> </uv-input>
<template v-slot:right> <template v-slot:right>
<uv-icon name="arrow-right"></uv-icon> <uv-icon name="arrow-right"></uv-icon>
@ -114,6 +114,7 @@
<script> <script>
import { saveOrUpdateHouse } from "@/common/api.js" import { saveOrUpdateHouse } from "@/common/api.js"
import citySelect from "@/components/cityselect/index.vue" import citySelect from "@/components/cityselect/index.vue"
import QQMapWX from "@/util/qqmap-wx-jssdk.min.js"
export default{ export default{
components:{ components:{
citySelect citySelect
@ -437,7 +438,36 @@
}) })
}, },
handleAreaChange(){ handleAreaChange(){
this.$refs.citySelectRef.open()
const that = this;
wx.chooseLocation({
// type: 'wgs84',
success: function (res) {
console.log('当前位置的经度:' + res.longitude);
console.log('当前位置的纬度:' + res.latitude);
const qqmapsdk = new QQMapWX({
key: 'TT7BZ-Z3LW4-KOAUB-KWHOA-SBJJ6-Y5B6R' //
});
uni.showLoading({
title:"获取中...."
})
qqmapsdk.reverseGeocoder({
location: {
latitude: res.latitude,
longitude: res.longitude
},
success: function(res) {
uni.hideLoading()
that.form.address = res.result.address
console.log('逆地理编码结果:', res);
},
fail: function(error) {
uni.hideLoading()
console.error('逆地理编码失败:', error);
}
});
}
})
// this.$refs.citySelectRef.open()
}, },
handleCityChange(e) { handleCityChange(e) {
this.form.address = e.province.label + '-' + e.city.label + '-' + e.area.label; this.form.address = e.province.label + '-' + e.city.label + '-' + e.area.label;
@ -481,7 +511,7 @@
homeAge:"",// homeAge:"",//
homeAz:"",// homeAz:"",//
homeBian:"",//
homeBian:that.form.perimeter,//
homeBjsx:"",// homeBjsx:"",//
homeCai:"",// homeCai:"",//
homeCat:that.form.park,// homeCat:that.form.park,//


+ 148
- 0
pages_subpack/landlord-center/index.vue View File

@ -0,0 +1,148 @@
<template>
<view>
<view class="se-pb-200">
<view v-if="list.length>0">
<view class="se-my-20 se-mx-20 se-px-20 se-py-20 se-br-20 se-bgc-white se-flex se-flex-v" v-for="(item,index) in list" :key="index">
<view @click="onDetail(item)" class=" se-flex">
<view class="se-pos se-w-260 se-h-180">
<image v-if="item.iconImage" class="se-a-80 se-pos-lt" :src="item.iconImage" mode=""></image>
<image class="se-w-260 se-h-180 se-br-10" :src="item.images[0]" mode=""></image>
</view>
<view class="se-pl-10 se-w-p-100">
<view class="se-c-black se-fs-28">
{{item.title}}
</view>
<view class="se-flex se-flex-h-sb se-flex-ai-c se-fs-24 se-mt-10 se-c-66">
<text>{{item.homeType}}</text>
<text>{{item.timeGo}}</text>
</view>
<view class="se-flex se-flex-h-sb se-flex-ai-c se-mt-10">
<template v-if="item.iconTitles.length>0">
<view class="se-flex">
<view class="se-display-ib se-c-white se-bgc-orange se-fs-22 se-br-8 se-px-10 se-py-5 se-mr-10" v-for="(items,indexs) in item.iconTitles" :key="indexs">
{{items}}
</view>
</view>
</template>
<template v-else><view></view></template>
<view class="se-c-66 se-flex se-flex-ai-c">
<uv-icon name="eye"></uv-icon>
<text class="se-ml-5 se-fs-18">{{item.num}}</text>
</view>
</view>
<view class="se-flex se-flex-h-sb se-flex-ai-c se-mt-10">
<text class="se-c-red se-fs-24 se-fw-6 se-toe-1">{{item.price}}/{{item.unit}}</text>
<text class="se-c-66 se-fs-22 se-toe-1">{{item.address}}</text>
</view>
</view>
</view>
<view class="se-flex se-fs-24">
<view class="se-flex-1 se-py-20">
<text class="se-c-99 se-mr-20">编辑</text>
</view>
<view class="se-flex-1 se-py-20 se-flex se-flex-h-fe">
<text class="se-c-red se-mr-20" @click="onDelete(item)">删除</text>
</view>
</view>
</view>
</view>
<view v-else>
<uv-empty mode="list" ></uv-empty>
</view>
</view>
</view>
</template>
<script>
import { MyHousePageList,deleteHouse } from "@/common/api.js"
export default {
data(){
return{
pageNo:1,
pageSize:10,
list:[]
}
},
onLoad(options) {
this.onMyHousePageList()
},
onPullDownRefresh() {
let that = this
that.pageNo = 1
that.list = []
that.onMyHousePageList()
},
onReachBottom() {
let that = this
that.pageNo = that.pageNo + 1
that.onMyHousePageList()
},
methods:{
onMyHousePageList(){
let that = this
let params={
pageNo:that.pageNo,
pageSize:that.pageSize
}
MyHousePageList(params).then((response) => {
console.info("responseindexsindexsindexs",response.result.records)
response.result.records.forEach((items,indexs)=>{
if(items.image){
items.images = items.image.split(',')
}else{
items.images = []
}
if(items.homeImage){
items.homeImages = items.homeImage.split(',')
}else{
items.homeImages = []
}
if(items.iconTitle){
items.iconTitles = items.iconTitle.split(',')
}else{
items.iconTitles = []
}
})
console.info('response.resultindexsindexsindexs',response.result.records)
that.list = that.list.concat(response.result.records)
}).catch((error) =>{
})
},
onDetail(event){
uni.navigateTo({
url:"/pages_subpack/detail/index?id="+event.id
})
},
onDelete(event){
let that = this;
uni.showModal({
title: '温馨提示',
content: '确定是否删除该数据?',
success: function (res) {
if (res.confirm) {
console.log('用户点击确定');
console.info('event',event)
deleteHouse({houseId:event.id}).then(response=>{
uni.showToast({
icon:"none",
title:"删除成功"
})
that.onMyHousePageList()
}).catch(error=>{
})
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
}
}
}
</script>
<style>
</style>

+ 17
- 0
pages_subpack/version/index.vue View File

@ -0,0 +1,17 @@
<template>
<view>
<view class="se-flex se-flex-v-c se-pt-180">
<image class="se-a-150" src="@/static/image/logo.png" mode=""></image>
<text class="se-c-black se-fs-28 se-pt-30">1.0.0</text>
</view>
</view>
</template>
<script>
export default{
}
</script>
<style>
</style>

BIN
static/image/nav1.png View File

Before After
Width: 100  |  Height: 100  |  Size: 2.0 KiB

BIN
static/image/nav2.png View File

Before After
Width: 100  |  Height: 100  |  Size: 2.3 KiB

BIN
static/image/nav3.png View File

Before After
Width: 100  |  Height: 100  |  Size: 2.3 KiB

BIN
static/image/nav4.png View File

Before After
Width: 100  |  Height: 100  |  Size: 1.9 KiB

BIN
static/image/nav5.png View File

Before After
Width: 100  |  Height: 100  |  Size: 2.1 KiB

BIN
static/image/nav6.png View File

Before After
Width: 100  |  Height: 100  |  Size: 2.2 KiB

BIN
static/image/nav7.png View File

Before After
Width: 100  |  Height: 100  |  Size: 1.7 KiB

BIN
static/image/nav8.png View File

Before After
Width: 100  |  Height: 100  |  Size: 2.0 KiB

+ 1
- 0
util/qqmap-wx-jssdk.min.js
File diff suppressed because it is too large
View File


+ 10
- 3
util/request/responseInterceptors.js View File

@ -5,11 +5,18 @@
export const responseInterceptors = (vm) => { export const responseInterceptors = (vm) => {
uni.$uv.http.interceptors.response.use((response) => { /* 对响应成功做点什么 可使用async await 做异步操作*/ uni.$uv.http.interceptors.response.use((response) => { /* 对响应成功做点什么 可使用async await 做异步操作*/
const data = response.data const data = response.data
if (data.code !== 200) { // 服务端返回的状态码不等于200,则reject()
uni.$uv.toast(data.message)
if (data.code == 200) {
return Promise.resolve(data);
}else if(data.code === 500){
uni.navigateTo({
url:"/pages/auth/index"
})
return;
}else{
uni.$uv.toast(data.message)
return Promise.reject(data) return Promise.reject(data)
} }
return Promise.resolve(data);
}, (response) => { /* 对响应错误做点什么 (statusCode !== 200)*/ }, (response) => { /* 对响应错误做点什么 (statusCode !== 200)*/
console.info('interceptors.response---------',data) console.info('interceptors.response---------',data)


+ 11
- 1
utils/utils.js View File

@ -152,6 +152,15 @@ export function redirectTo(...args){
uni.redirectTo(params(...args)) uni.redirectTo(params(...args))
} }
export function getkeyContent(key){
if(!key){
return ""
}
let configList = uni.getStorageSync('configList')
let index = configList.findIndex(items => items.keyName === key);
return configList[index];
}
export default { export default {
toArray, toArray,
generateUUID, generateUUID,
@ -165,5 +174,6 @@ export default {
navigateBack, navigateBack,
redirectTo, redirectTo,
copyText, copyText,
stringFormatHtml
stringFormatHtml,
getkeyContent
} }

Loading…
Cancel
Save