房源信息模块
This commit is contained in:
@@ -161,11 +161,10 @@
|
||||
HouseReservationApi.addHouseReservation(app.form).then(result => {
|
||||
app.$toast(result.message)
|
||||
}).catch(err => {
|
||||
uni.$u.toast(err)
|
||||
uni.$u.toast(err.message)
|
||||
})
|
||||
}).catch(errors => {
|
||||
console.log("errors: ",errors);
|
||||
uni.$u.toast('校验失败')
|
||||
// uni.$u.toast('校验失败')
|
||||
})
|
||||
},
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
import * as UserProfileApi from '@/api/love-user-profile.js'
|
||||
import * as UploadApi from '@/api/upload'
|
||||
import * as UserFeedbackApi from '@/api/user-feedback.js'
|
||||
import dict, * as DictApi from '@/api/dict.js'
|
||||
import * as DictApi from '@/api/dict.js'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
</u-form-item>
|
||||
<u-form-item prop="area">
|
||||
<u-cell title="城市" @click="onArea" :isLink="true">
|
||||
<u-input slot="value" class="input" v-model="form.area" inputAlign="right" maxlength="30"
|
||||
<u-input slot="value" class="input" v-model="form.city" inputAlign="right" maxlength="30"
|
||||
:border="false" placeholder="请选择所在城市" />
|
||||
</u-cell>
|
||||
</u-form-item>
|
||||
@@ -129,7 +129,7 @@
|
||||
<view class="form-wrapper">
|
||||
<view class="images">
|
||||
<u-upload :fileList="fileList1" :maxSize="3145728" :width="72" :height="72"
|
||||
@afterRead="afterRead" @delete="deletePic" name="1" multiple :maxCount="6"></u-upload>
|
||||
@afterRead="afterRead" @delete="deletePic" name="1" multiple :maxCount="9"></u-upload>
|
||||
</view>
|
||||
</view>
|
||||
</u-form-item>
|
||||
@@ -180,7 +180,7 @@
|
||||
<!-- 操作按钮 -->
|
||||
<view class="footer">
|
||||
<view class="btn-wrapper">
|
||||
<u-button text="发布" color="linear-gradient(to bottom, #27b0fd, #3f72f4)" :disabled="disabled"
|
||||
<u-button text="保存" color="linear-gradient(to bottom, #27b0fd, #3f72f4)" :disabled="disabled"
|
||||
shape="circle" @click="handleSubmit()"></u-button>
|
||||
</view>
|
||||
</view>
|
||||
@@ -196,7 +196,7 @@
|
||||
dateFormat
|
||||
} from '@/utils/util.js'
|
||||
import * as UserApi from '@/api/user'
|
||||
import * as HouseInfoApi from '@/api/house-info.js'
|
||||
import { updateHouseInfo,getHouseInfo } from '@/api/house-info.js'
|
||||
import * as UploadApi from '@/api/upload'
|
||||
import * as DictApi from '@/api/dict.js'
|
||||
|
||||
@@ -212,6 +212,7 @@
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
selectId : 0,
|
||||
tabs,
|
||||
tabIndex: 10,
|
||||
dict: null,
|
||||
@@ -270,7 +271,14 @@
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad() {
|
||||
onLoad(options) {
|
||||
if(options.id > 0){
|
||||
uni.setNavigationBarTitle({
|
||||
title: '编辑房源'
|
||||
})
|
||||
this.selectId = options.id
|
||||
this.getHouse(options.id)
|
||||
}
|
||||
this.getDict()
|
||||
},
|
||||
|
||||
@@ -287,6 +295,16 @@
|
||||
this.dict = res.data;
|
||||
})
|
||||
},
|
||||
getHouse(id){
|
||||
const app = this
|
||||
console.log('id: ',id);
|
||||
getHouseInfo(id).then(res => {
|
||||
console.log('res: ',res);
|
||||
app.form = res.data
|
||||
app.houseLabel = JSON.parse(app.form.houseLabel) || []
|
||||
app.fileList1 = JSON.parse(app.form.files) || []
|
||||
})
|
||||
},
|
||||
onChangeTab(e) {
|
||||
const app = this
|
||||
app.tabIndex = e.value
|
||||
@@ -393,8 +411,9 @@
|
||||
this.$refs.uForm.validate().then(() => {
|
||||
app.form.houseLabel = JSON.stringify(app.houseLabel)
|
||||
app.form.files = JSON.stringify(app.fileList1)
|
||||
HouseInfoApi.addHouseInfo(app.form).then(result => {
|
||||
app.$toast(result.message)
|
||||
const saveOrUpdate = app.selectId > 0 ? updateHouseInfo : addHouseInfo;
|
||||
saveOrUpdate(app.form).then(result => {
|
||||
app.$toast('保存成功')
|
||||
}).catch(err => {
|
||||
uni.$u.toast(err)
|
||||
})
|
||||
|
||||
@@ -3,17 +3,17 @@
|
||||
|
||||
<!-- 幻灯片 -->
|
||||
<view class="swiper">
|
||||
<u-swiper :list="form.files" :height="250" :radius="0" @change="e => currentNum = e.current"
|
||||
<u-swiper :list="swiperList" :height="250" :radius="0" @change="e => currentNum = e.current"
|
||||
indicatorStyle="right: 20px; bottom: 50px" @click="click">
|
||||
<view slot="indicator" class="indicator-num">
|
||||
<text class="indicator-num__text">{{ currentNum + 1 }}/{{ swiperList.length + 1 }}</text>
|
||||
<text class="indicator-num__text">{{ currentNum + 1 }}/{{ swiperList.length }}</text>
|
||||
</view>
|
||||
</u-swiper>
|
||||
|
||||
<!-- 房源参数 -->
|
||||
<view class="house-info">
|
||||
<view class="title">
|
||||
{{ form.houseTitle }}
|
||||
{{ form.houseTitle || '' }}
|
||||
<!-- 五象航洋城三室一厅采光好新房精装修三房一厅 采光好,乘诚意出售 -->
|
||||
</view>
|
||||
<view class="label">
|
||||
@@ -23,19 +23,19 @@
|
||||
</view>
|
||||
<view class="dict">
|
||||
<view class="dict-item">
|
||||
<text class="title">{{ form.monthlyRent }}元/月</text>
|
||||
<text class="title">{{ form.monthlyRent || 0 }}元/月</text>
|
||||
<text class="desc">月租</text>
|
||||
</view>
|
||||
<view class="dict-item">
|
||||
<text class="title">{{ form.extent }}m²</text>
|
||||
<text class="title">{{ form.extent || 0 }}m²</text>
|
||||
<text class="desc">建筑面积</text>
|
||||
</view>
|
||||
<view class="dict-item">
|
||||
<text class="title">{{ form.houseType }}</text>
|
||||
<text class="title">{{ form.houseType || '' }}</text>
|
||||
<text class="desc">户型</text>
|
||||
</view>
|
||||
<view class="dict-item">
|
||||
<text class="title">{{ form.floor }}</text>
|
||||
<text class="title">{{ form.floor || '' }}</text>
|
||||
<text class="desc">楼层</text>
|
||||
</view>
|
||||
</view>
|
||||
@@ -50,24 +50,32 @@
|
||||
</view>
|
||||
<view class="field-list">
|
||||
<view class="item col-2">
|
||||
城市:{{ form.city }}
|
||||
城市:{{ form.city || '' }}
|
||||
</view>
|
||||
<view class="item col-2">
|
||||
区/县:{{ form.region }}
|
||||
区/县:{{ form.region || '' }}
|
||||
</view>
|
||||
<view class="item col-1">
|
||||
详细地址:{{ form.address }}
|
||||
详细地址:{{ form.address || '' }}
|
||||
</view>
|
||||
<view class="item col-2">
|
||||
租金(元/m²):{{ form.rent }}
|
||||
租金(元/m²):{{ form.rent || '' }}
|
||||
</view>
|
||||
<view class="item col-2">
|
||||
房号:{{ form.roomNumber }}
|
||||
房号:{{ form.roomNumber || '' }}
|
||||
</view>
|
||||
<view class="item col-2">
|
||||
密码:{{ form.password }}
|
||||
密码:{{ form.password || '' }}
|
||||
</view>
|
||||
<view class="item col-2">业主电话:{{ form.phone || '' }}</view>
|
||||
<view class="item col-2">物业费:{{ form.propertyFees || '' }}</view>
|
||||
<view class="item col-2">租期:{{ form.tenancy || '' }}</view>
|
||||
<view class="item col-2" v-if="form.gradeName == '公司员工'">
|
||||
佣金:{{ form.commission || '' }}
|
||||
</view>
|
||||
<view class="item col-2" v-if="form.gradeName == '公司员工'">
|
||||
是否可溢价:{{ form.premium || '' }}
|
||||
</view>
|
||||
<view class="item col-2">业主电话:{{ form.phone }}</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -115,9 +123,7 @@
|
||||
<u-gap></u-gap>
|
||||
<view class="user-card">
|
||||
<u-cell :title="`${form.nickname}`" :label="`发布房源10套`" :border="false">
|
||||
<u-avatar slot="icon" size="50"
|
||||
:src="form.avatar"
|
||||
customStyle="margin: -3px 5px -3px 0"></u-avatar>
|
||||
<u-avatar slot="icon" size="50" :src="form.avatar" customStyle="margin: -3px 5px -3px 0"></u-avatar>
|
||||
<!-- <view solt="label">
|
||||
<text class="desc-text">{{ `ID:${item.userId}` }}</text>
|
||||
<text class="desc-text">{{ `粉丝:${item.id}` }}</text>
|
||||
@@ -141,7 +147,7 @@
|
||||
<view class="item" @click="$push('sub_pages/checkout/checkout?id=' + form.houseId)">
|
||||
<u-button icon="map" type="error" text="预约看房"></u-button>
|
||||
</view>
|
||||
<view class="item" @click="onCall">
|
||||
<view class="item" @click="onCall(form.phone)">
|
||||
<u-button icon="phone" type="primary" text="电话咨询"></u-button>
|
||||
</view>
|
||||
</view>
|
||||
@@ -265,10 +271,7 @@
|
||||
form: {
|
||||
|
||||
},
|
||||
swiperList: [
|
||||
'https://file.wsdns.cn/20230802/f33f5ac239c843438b36f40941d946ef.png',
|
||||
'https://file.wsdns.cn/20230802/1116a02b07904991b2ebdc2c3da4a691.png',
|
||||
],
|
||||
swiperList: [],
|
||||
menu,
|
||||
region,
|
||||
price,
|
||||
@@ -318,6 +321,7 @@
|
||||
HouseInfoApi.getHouseInfo(houseId).then(res => {
|
||||
app.form = res.data
|
||||
app.form.files = JSON.parse(res.data.files) || []
|
||||
app.swiperList = app.form.files
|
||||
app.form.houseLabel = JSON.parse(res.data.houseLabel) || []
|
||||
// app.form.supporting = JSON.parse(res.data.supporting) || []
|
||||
}).catch(err => {
|
||||
@@ -327,9 +331,12 @@
|
||||
onHeart() {
|
||||
this.heart = !this.heart
|
||||
},
|
||||
onCall() {
|
||||
onCall(phone) {
|
||||
if (!phone) {
|
||||
return false
|
||||
}
|
||||
uni.makePhoneCall({
|
||||
phoneNumber: '15878179339'
|
||||
phoneNumber: phone
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
@@ -7,20 +7,25 @@
|
||||
:actionStyle="actionStyle"></u-search>
|
||||
</view>
|
||||
</u-sticky>
|
||||
|
||||
{{ select }}
|
||||
<view class="order-total">
|
||||
<view class="pay-btn">
|
||||
<view class="btn">
|
||||
<u-button text="上架" plain size="small" @click="onPay(item.logId)"></u-button>
|
||||
<u-button text="上架" plain size="small" @click="onStatus(0)"></u-button>
|
||||
</view>
|
||||
<view class="btn">
|
||||
<u-button text="下架" plain size="small" @click="onPay(item.logId)"></u-button>
|
||||
<u-button text="下架" plain size="small" @click="onStatus(1)"></u-button>
|
||||
</view>
|
||||
<view class="btn">
|
||||
<u-button text="删除" plain size="small" @click="onPay(item.logId)"></u-button>
|
||||
<u-button text="删除" plain size="small" @click="onDel()"></u-button>
|
||||
</view>
|
||||
<view class="btn">
|
||||
<u-button text="编辑" plain size="small" @click="onEdit()"></u-button>
|
||||
</view>
|
||||
<!-- <view class="btn">
|
||||
<u-button text="分享" plain size="small" @click="onPay(item.logId)"></u-button>
|
||||
</view>
|
||||
</view> -->
|
||||
<!-- <view class="btn" v-if="item.payStatus == 10">
|
||||
<u-button text="取消订单" size="small" @click="onRemove(item.logId)"></u-button>
|
||||
</view> -->
|
||||
@@ -33,39 +38,19 @@
|
||||
</u-radio-group>
|
||||
</view>
|
||||
<view class="list">
|
||||
<view class="item" @click="$push('sub_pages/house/detail?id=')">
|
||||
<view class="badge" @click="onBadge(1)"><u-badge :isDot="true" type="info" :bgColor="bgColor"></u-badge></view>
|
||||
<image class="image" src="https://oss-aishangjia.oss-cn-shenzhen.aliyuncs.com/v2_rwr9ba.jpg"></image>
|
||||
<view class="info">
|
||||
<view class="title">整租·万科云城 2室1厅1卫</view>
|
||||
<view class="desc"><text>50.8m²|南</text></view>
|
||||
<view class="price">6600元/月</view>
|
||||
<block v-for="(item,index) in list" :key="index">
|
||||
<view class="item" @click="$push('sub_pages/house/add?id=' + item.houseId)">
|
||||
<view class="badge" @click.stop="onBadge(item.houseId)"><u-badge :isDot="true" type="info" :bgColor="item.houseId == selectId ? bgColor : ''"></u-badge></view>
|
||||
<image class="image" :src="item.files[0].url" mode="widthFix"></image>
|
||||
<view class="info">
|
||||
<view class="title">{{ item.houseTitle }}</view>
|
||||
<view class="desc"><text>{{ item.extent }}m²|{{ item.toward }}</text></view>
|
||||
<view class="price">{{ item.rent }}元/月</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="item" @click="$push('sub_pages/house/detail?id=')">
|
||||
<image class="image" src="https://oss-aishangjia.oss-cn-shenzhen.aliyuncs.com/v2_rwr9ba.jpg"></image>
|
||||
<view class="info">
|
||||
<view class="title">整租·万科云城 2室1厅1卫</view>
|
||||
<view class="desc"><text>50.8m²|南</text></view>
|
||||
<view class="price">6600元/月</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="item" @click="$push('sub_pages/house/detail?id=')">
|
||||
<image class="image" src="https://oss-aishangjia.oss-cn-shenzhen.aliyuncs.com/v2_rwr9ba.jpg"></image>
|
||||
<view class="info">
|
||||
<view class="title">整租·万科云城 2室1厅1卫</view>
|
||||
<view class="desc"><text>50.8m²|南</text></view>
|
||||
<view class="price">6600元/月</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="item" @click="$push('sub_pages/house/detail?id=')">
|
||||
<image class="image" src="https://oss-aishangjia.oss-cn-shenzhen.aliyuncs.com/v2_rwr9ba.jpg"></image>
|
||||
<view class="info">
|
||||
<view class="title">整租·万科云城 2室1厅1卫</view>
|
||||
<view class="desc"><text>50.8m²|南</text></view>
|
||||
<view class="price">6600元/月</view>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
<u-empty mode="data" icon="https://file.wsdns.cn/empty/data.png" v-if="list.length == 0">
|
||||
</u-empty>
|
||||
</view>
|
||||
</view>
|
||||
<u-gap></u-gap>
|
||||
@@ -89,12 +74,19 @@
|
||||
import * as UserProfileApi from '@/api/love-user-profile.js'
|
||||
import * as UploadApi from '@/api/upload'
|
||||
import * as DictApi from '@/api/dict.js'
|
||||
import * as HouseInfoApi from '@/api/house-info.js'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
list: [],
|
||||
loadMore: true,
|
||||
status: '加载更多',
|
||||
page: 1,
|
||||
where: {},
|
||||
select: [],
|
||||
bgColor: '#ffffff'
|
||||
bgColor: '#ffffff',
|
||||
selectId: 0
|
||||
}
|
||||
},
|
||||
|
||||
@@ -102,6 +94,8 @@
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad() {
|
||||
this.list = []
|
||||
this.onRefreshList()
|
||||
// this.getDict()
|
||||
},
|
||||
|
||||
@@ -112,13 +106,74 @@
|
||||
// this.$refs.datetimePicker.setFormatter(this.formatter)
|
||||
},
|
||||
|
||||
// 触底函数
|
||||
onReachBottom() {
|
||||
console.log("触底函数: ");
|
||||
const app = this
|
||||
if (app.loadMore) {
|
||||
app.page = ++app.page;
|
||||
app.onRefreshList()
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onRefreshList() {
|
||||
const app = this
|
||||
const userId = uni.getStorageSync('userId')
|
||||
app.where.page = app.page
|
||||
app.where.userId = userId
|
||||
return new Promise((resolve, reject) => {
|
||||
HouseInfoApi.pageHouseInfo(app.where)
|
||||
.then(result => {
|
||||
const list = result.data.list.map(d => {
|
||||
d.files = JSON.parse(d.files) || []
|
||||
return d
|
||||
})
|
||||
// 合并新数据
|
||||
app.list = app.list.concat(list)
|
||||
if (result.data.count > app.list.length) {
|
||||
app.canReset = true
|
||||
} else {
|
||||
app.canReset = false
|
||||
}
|
||||
console.log("app.list: ",app.list);
|
||||
resolve(list)
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
onEdit(){
|
||||
const { selectId } = this
|
||||
if(selectId > 0){
|
||||
this.$push('sub_pages/house/add?id=' + selectId)
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
onDel(){
|
||||
const app = this
|
||||
const { selectId } = this
|
||||
if(selectId > 0){
|
||||
HouseInfoApi.removeHouseInfo(selectId).then(res => {
|
||||
|
||||
})
|
||||
}
|
||||
},
|
||||
onStatus(status){
|
||||
console.log('this.select: ',this.select);
|
||||
},
|
||||
|
||||
onSearch() {
|
||||
this.$push('/sub_pages/member/member', this.where)
|
||||
console.log('this.where: ',this.where);
|
||||
this.list = []
|
||||
this.page = 1
|
||||
this.onRefreshList()
|
||||
// this.$push('/sub_pages/member/member', this.where)
|
||||
},
|
||||
onBadge(id){
|
||||
this.selectId = id
|
||||
this.bgColor = '#ff0000'
|
||||
this.select.push(id)
|
||||
console.log('this.select: ',this.select);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -131,8 +186,6 @@
|
||||
</style>
|
||||
<style lang="scss" scoped>
|
||||
.container {}
|
||||
|
||||
|
||||
.search-wrapper {
|
||||
display: flex;
|
||||
height: 64rpx;
|
||||
|
||||
Reference in New Issue
Block a user