diff --git a/api/house-info.js b/api/house-info.js
index dac6828..c47f889 100644
--- a/api/house-info.js
+++ b/api/house-info.js
@@ -15,14 +15,18 @@ export const getUserDetail = (userId) => http.get('/house/info/detail/' + userId
// 新增房源信息
export const addHouseInfo = (data) => http.post('/house/info', data)
+// 编辑房源信息
+export const updateHouseInfo = (data) => http.put('/house/info', data)
+
// 删除房源信息
-export const removeHouseInfo = (id) => http.get('/house/info/remove/' + id)
+export const removeHouseInfo = (id) => http.delete('/house/info/' + id)
export default {
pageHouseInfo,
listHouseInfo,
getHouseInfo,
getUserDetail,
+ updateHouseInfo,
removeHouseInfo,
addHouseInfo
}
diff --git a/config.js b/config.js
index fe3ca80..45357d2 100755
--- a/config.js
+++ b/config.js
@@ -9,12 +9,12 @@ module.exports = {
appSecret: '1f1d186d98ea4620ac65afbf34940051',
// 开发环境
- // apiUrl: "http://127.0.0.1:9090/api",
+ apiUrl: "http://127.0.0.1:9090/api",
// socketUrl: 'ws://localhost:9190',
// fileUrl: 'https://file.wsdns.cn',
// 测试环境
- apiUrl: 'https://server.gxwebsoft.com/api',
+ // apiUrl: 'https://server.gxwebsoft.com/api',
socketUrl: 'wss://server.gxwebsoft.com',
fileUrl: 'https://file.wsdns.cn',
diff --git a/pages/house/house.vue b/pages/house/house.vue
index cff4d24..73542e6 100644
--- a/pages/house/house.vue
+++ b/pages/house/house.vue
@@ -3,8 +3,8 @@
-
+
@@ -13,15 +13,15 @@
@change="onSearch">
-
-
-
@@ -35,12 +35,10 @@
{{ item.houseTitle }}
{{ item.extent }}m²|{{ item.toward }}
- {{ item.rent }}元/月
+ {{ item.monthlyRent }}元/月
-
-
+
+
@@ -61,6 +61,7 @@
import * as Util from '@/utils/util.js'
import store from '@/store'
import storage from '@/utils/storage'
+ import * as DictApi from '@/api/dict.js'
import * as HouseInfoApi from '@/api/house-info.js'
const menu = [{
@@ -72,42 +73,10 @@
reset: false
}
];
- const region = [{
- value: 0,
- text: "青秀区"
- },
- {
- value: 1,
- text: "兴宁区"
- }
- ];
- const price = [{
- value: 0,
- text: "3000"
- },
- {
- value: 1,
- text: "4000"
- }
- ];
- const extent = [{
- value: 0,
- text: "200平"
- },
- {
- value: 1,
- text: "300平"
- }
- ];
- const sort = [{
- value: 0,
- text: "升序"
- },
- {
- value: 1,
- text: "降序"
- }
- ];
+ const region = [];
+ const price = [];
+ const extent = [];
+ const sort = [];
const loginUserId = uni.getStorageSync('userId')
export default {
@@ -118,6 +87,8 @@
status: '加载更多',
page: 1,
where: {},
+ dict: null,
+ cityList: [],
// 控制onShow事件是否刷新订单列表
canReset: false,
disabled: false,
@@ -130,6 +101,7 @@
price,
extent,
sort,
+ // priceScene: null,
scrollTop: 0,
old: {
scrollTop: 0
@@ -144,6 +116,7 @@
},
onLoad() {
+ this.getDict()
this.list = []
this.onRefreshList()
},
@@ -169,6 +142,11 @@
const app = this
const userId = uni.getStorageSync('userId')
app.where.page = app.page
+ // if (app.priceScene) {
+ // app.where.monthlyRentStart = app.priceScene
+ // app.where.monthlyRentEnd = app.priceScene
+ // }
+ console.log('app: ',app.where);
return new Promise((resolve, reject) => {
HouseInfoApi.pageHouseInfo(app.where)
.then(result => {
@@ -183,11 +161,89 @@
} else {
app.canReset = false
}
- console.log("app.list: ",app.list);
+ console.log("app.list: ", app.list);
resolve(list)
})
})
},
+ getDict() {
+ const app = this
+ DictApi.listDictionary().then(res => {
+ app.dict = res.data
+
+ app.price = res.data.price[0].map(d => {
+ return {
+ value: d,
+ text: d
+ }
+ })
+ app.extent = res.data.extent[0].map(d => {
+ return {
+ value: d,
+ text: d
+ }
+ })
+ app.sort = res.data.sort[0].map(d => {
+ console.log('d: ',d);
+ return {
+ value: d,
+ text: d
+ }
+ })
+
+ uni.request({
+ url: 'https://file.wsdns.cn/json/city.js',
+ success(res) {
+ res.data.map(e => {
+ if(e.value == '450000'){
+ e.children.map(city => {
+ if(city.value == '450100'){
+ app.region = city.children.map(r => {
+ return {
+ value: r.label,
+ text: r.label
+ }
+ })
+ }
+ })
+ }
+ });
+ }
+ })
+ })
+ },
+ onSearch(text) {
+ this.list = []
+ this.page = 1
+ console.log('extentScene: ',this.where.extentScene);
+ if(text == '0-100㎡'){
+ this.where.extentScene = '100'
+ }
+ if(text == '100-150㎡'){
+ this.where.extentScene = '100-150'
+ }
+ if(text == '150-200㎡'){
+ this.where.extentScene = '150-200'
+ }
+ if(text == '200-300㎡'){
+ this.where.extentScene = '200-300'
+ }
+ if(text == '300-400㎡'){
+ this.where.extentScene = '300-400'
+ }
+ if(text == '400-600㎡'){
+ this.where.extentScene = '400-600'
+ }
+ if(text == '600-1000㎡'){
+ this.where.extentScene = '600-1000'
+ }
+ if(text == '1000㎡以上'){
+ this.where.extentScene = '1000'
+ }
+
+ this.onRefreshList()
+ // this.$push('/sub_pages/member/member', this.where)
+ },
},
watch: {
@@ -202,7 +258,7 @@
display: flex;
.search {
- width: 690rpx;
+ width: 710rpx;
margin: 15rpx auto;
display: flex;
justify-content: space-between;
@@ -211,14 +267,18 @@
}
.search-tools {
- width: 700rpx;
+ width: 720rpx;
margin: auto;
display: flex;
justify-content: space-around;
+ font-size: 22rpx;
.region {
- width: 170rpx;
+ width: 178rpx;
background-color: #ffffff;
+ * {
+ font-size: 22rpx;
+ }
}
}
diff --git a/pages/index/index.vue b/pages/index/index.vue
index 8d47ff4..e5c90b2 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -4,17 +4,21 @@
- 青秀区
+
+
-
+
- 青秀区
+
+
-
+
@@ -25,7 +29,7 @@
-
+
@@ -52,6 +56,7 @@
import * as Util from '@/utils/util.js'
import store from '@/store'
import storage from '@/utils/storage'
+ import * as DictApi from '@/api/dict.js'
import * as HouseInfoApi from '@/api/house-info.js'
const menu = [{
@@ -72,7 +77,10 @@
loadMore: true,
status: '加载更多',
page: 1,
- where: {},
+ where: {
+ recommend: 1
+ },
+ region: [],
// 控制onShow事件是否刷新订单列表
canReset: false,
disabled: false,
@@ -80,6 +88,10 @@
'https://file.wsdns.cn/20230802/f33f5ac239c843438b36f40941d946ef.png',
'https://file.wsdns.cn/20230802/1116a02b07904991b2ebdc2c3da4a691.png',
],
+ hotKeywords: [
+ '五象航洋城',
+ '富雅国际金融中心'
+ ],
menu,
scrollTop: 0,
old: {
@@ -89,6 +101,7 @@
},
onLoad() {
+ this.getDict()
this.list = []
this.onRefreshList()
},
@@ -110,6 +123,18 @@
}
},
methods: {
+ getDict() {
+ DictApi.getDictionaryOptions({
+ dictCode: 'region'
+ }).then(res => {
+ this.region = res.data.map(d => {
+ return {
+ value: d.dictDataCode,
+ text: d.dictDataName
+ }
+ })
+ })
+ },
onRefreshList() {
const app = this
const userId = uni.getStorageSync('userId')
@@ -132,6 +157,28 @@
})
})
},
+ onClick(e){
+ const index = e.index
+ this.where = {}
+ if(index == 0){
+ this.where.recommend = 1
+ }
+ if(index == 1){
+ this.where.mustSee = 1
+ }
+ this.onSearch()
+ },
+ onNoticeBar(index){
+ // console.log('this.hotKeywords[index]: ',this.hotKeywords[index]);
+ this.where.keywords = this.hotKeywords[index]
+ this.onSearch()
+ },
+ onSearch() {
+ this.list = []
+ this.page = 1
+ this.onRefreshList()
+ // this.$push('/sub_pages/member/member', this.where)
+ },
},
watch: {
@@ -141,7 +188,7 @@
\ No newline at end of file
diff --git a/pages/user/user.vue b/pages/user/user.vue
index c282f0d..6bf95cc 100644
--- a/pages/user/user.vue
+++ b/pages/user/user.vue
@@ -120,17 +120,17 @@
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -445,6 +445,8 @@
app.form = res.data
app.userInfo = res.data
store.dispatch('setUserInfo', res.data)
+ // uni.setStorageSync('gradeId',res.data.gradeId)
+ // uni.setStorageSync('gradeName',res.data.gradeName)
app.isLogin = true
diff --git a/sub_pages/checkout/checkout.vue b/sub_pages/checkout/checkout.vue
index 8b17d30..b7158ae 100644
--- a/sub_pages/checkout/checkout.vue
+++ b/sub_pages/checkout/checkout.vue
@@ -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('校验失败')
})
},
}
diff --git a/sub_pages/feedback/feedback.vue b/sub_pages/feedback/feedback.vue
index 59b6dab..d8a35d7 100644
--- a/sub_pages/feedback/feedback.vue
+++ b/sub_pages/feedback/feedback.vue
@@ -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() {
diff --git a/sub_pages/house/add.vue b/sub_pages/house/add.vue
index 7415e16..487829c 100644
--- a/sub_pages/house/add.vue
+++ b/sub_pages/house/add.vue
@@ -17,7 +17,7 @@
-
@@ -129,7 +129,7 @@
+ @afterRead="afterRead" @delete="deletePic" name="1" multiple :maxCount="9">
@@ -180,7 +180,7 @@
@@ -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)
})
diff --git a/sub_pages/house/detail.vue b/sub_pages/house/detail.vue
index 2e96386..47547c5 100644
--- a/sub_pages/house/detail.vue
+++ b/sub_pages/house/detail.vue
@@ -3,17 +3,17 @@
- currentNum = e.current"
+ currentNum = e.current"
indicatorStyle="right: 20px; bottom: 50px" @click="click">
- {{ currentNum + 1 }}/{{ swiperList.length + 1 }}
+ {{ currentNum + 1 }}/{{ swiperList.length }}
- {{ form.houseTitle }}
+ {{ form.houseTitle || '' }}
@@ -23,19 +23,19 @@
- {{ form.monthlyRent }}元/月
+ {{ form.monthlyRent || 0 }}元/月
月租
- {{ form.extent }}m²
+ {{ form.extent || 0 }}m²
建筑面积
- {{ form.houseType }}
+ {{ form.houseType || '' }}
户型
- {{ form.floor }}
+ {{ form.floor || '' }}
楼层
@@ -50,24 +50,32 @@
- 城市:{{ form.city }}
+ 城市:{{ form.city || '' }}
- 区/县:{{ form.region }}
+ 区/县:{{ form.region || '' }}
- 详细地址:{{ form.address }}
+ 详细地址:{{ form.address || '' }}
- 租金(元/m²):{{ form.rent }}
+ 租金(元/m²):{{ form.rent || '' }}
- 房号:{{ form.roomNumber }}
+ 房号:{{ form.roomNumber || '' }}
- 密码:{{ form.password }}
+ 密码:{{ form.password || '' }}
+
+ 业主电话:{{ form.phone || '' }}
+ 物业费:{{ form.propertyFees || '' }}
+ 租期:{{ form.tenancy || '' }}
+
+ 佣金:{{ form.commission || '' }}
+
+
+ 是否可溢价:{{ form.premium || '' }}
- 业主电话:{{ form.phone }}
@@ -115,9 +123,7 @@
-
+
@@ -33,39 +38,19 @@
-
-
-
-
- 整租·万科云城 2室1厅1卫
- 50.8m²|南
- 6600元/月
+
+
+
+
+
+ {{ item.houseTitle }}
+ {{ item.extent }}m²|{{ item.toward }}
+ {{ item.rent }}元/月
+
-
-
-
-
- 整租·万科云城 2室1厅1卫
- 50.8m²|南
- 6600元/月
-
-
-
-
-
- 整租·万科云城 2室1厅1卫
- 50.8m²|南
- 6600元/月
-
-
-
-
-
- 整租·万科云城 2室1厅1卫
- 50.8m²|南
- 6600元/月
-
-
+
+
+
@@ -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 @@