This commit is contained in:
A1300399510 2023-05-30 19:22:31 +08:00
parent 943fe1379e
commit 51917375e4
19 changed files with 1131 additions and 635 deletions

356
app.js
View File

@ -2,184 +2,184 @@
var initial_url = 'https://app.gter.net/tenement';
var __ = require('./utils/miucms.js');
App({
randomString(n) {
let str = 'abcdefghijklmnopqrstuvwxyz9876543210';
let tmp = '',
i = 0,
l = str.length;
for (i = 0; i < n; i++) {
tmp += str.charAt(Math.floor(Math.random() * l));
}
return tmp;
},
autoUpdate: function () {
var self = this
// 获取小程序更新机制兼容
if (wx.canIUse('getUpdateManager')) {
const updateManager = wx.getUpdateManager()
updateManager.onCheckForUpdate(function (res) {
if (res.hasUpdate) {
wx.showModal({
title: '更新提示',
content: '检测到新版本,是否下载新版本并重启小程序?',
success: function (res) {
if (res.confirm) {
self.downLoadAndUpdate(updateManager)
} else if (res.cancel) {
wx.showModal({
title: '温馨提示',
content: '本次版本更新涉及到新的功能添加,旧版本无法正常访问',
showCancel: false,
confirmText: "确定更新",
success: function (res) {
if (res.confirm) {
//下载新版本,并重新应用
self.downLoadAndUpdate(updateManager)
}
}
})
}
}
})
randomString(n) {
let str = 'abcdefghijklmnopqrstuvwxyz9876543210';
let tmp = '',
i = 0,
l = str.length;
for (i = 0; i < n; i++) {
tmp += str.charAt(Math.floor(Math.random() * l));
}
})
} else {
wx.showModal({
title: '提示',
content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。',
})
}
},
downLoadAndUpdate: function (updateManager) {
var self = this
wx.showLoading();
updateManager.onUpdateReady(function () {
wx.hideLoading()
updateManager.applyUpdate()
})
updateManager.onUpdateFailed(function () {
wx.hideLoading()
// 新的版本下载失败
wx.showModal({
title: '已经有新版本了哟~',
content: '新版本已经上线,请您删除当前小程序,重新搜索打开',
})
})
},
onLaunch: function (options) {
this.globalData.options = options;
__.initial(this)
console.log('__')
if (wx.getEnterOptionsSync().query && wx.getEnterOptionsSync().query.scancode_time) {
this.globalData.scancode_time = wx.getEnterOptionsSync().query.scancode_time
}
if (wx.getUserProfile) {
this.globalData.canIUseGetUserProfile = true;
}
try {
this.computeNavigateBarHeight();
} catch (e) {
// 获取系统信息失败
this.setData({
windowHeight: 812,
totalTopHeight: 68,
statusBarHeight: 20,
titleBarHeight: 48,
titleWidth: 87
});
}
this.autoUpdate()
let getAccountInfoSync = wx.getAccountInfoSync();
if (getAccountInfoSync.miniProgram.appId == "wx9c68fbf7886ea9c4") {
this.globalData.topTitle = "寄托香港租房"
this.globalData.miniProgram = "xg"
} else {
this.globalData.topTitle = "寄托港校租房"
this.globalData.miniProgram = "gx"
}
},
onShow() {
},
computeNavigateBarHeight: function () {
console.log('computeNavigateBarHeightcomputeNavigateBarHeightcomputeNavigateBarHeight')
var systemInfo = wx.getSystemInfoSync();
var data = wx.getMenuButtonBoundingClientRect()
let totalTopHeight = data.bottom;
let windowHeight = systemInfo.windowHeight,
windowWidth = systemInfo.windowWidth,
statusBarHeight = data.top;
this.globalData.screen_data = {
windowHeight: windowHeight,
windowWidth: windowWidth,
totalTopHeight: totalTopHeight + 6,
statusBarHeight: statusBarHeight,
titleBarHeight: data.height,
titleWidth: data.widthinitial,
bottomLift: systemInfo.screenHeight - systemInfo.safeArea.bottom
}
},
onShow: function (options) {
// console.log('onShow', options)
this.globalData.source = options.path || '';
},
onHide: function () {
},
onError: function () {
// 这里回调错误信息
console.log('onError')
},
// get: function () {
// return this.globalData.config;
// },
return_data: function (res) {
var json = res.data;
var data = typeof res.data == 'string' ? JSON.parse(res.data) : res.data;
return data;
},
globalData: {
baseURL: "https://app.gter.net",
token: null,
title: null,
session: null,
code: null,
user: {},
userInfo: {},
options: {},
config: {},
notice: {},
source: '',
header: {
'content-type': 'application/json',
'Accept': 'application/json, text/plain',
'Cookie': 'miucms_session=' + wx.getStorageSync('Authorization'),
'Authorization': wx.getStorageSync('Authorization') || ''
return tmp;
},
new_reply: false,
// 寄托租房独有字段
choose: {},
kw: '',
status: 0,
screen_data: {},
StudentapartmentNew: null,
isUserAuthorization: 0, //用户点击授权:0未知1未授权2已授权
listTab: {},
canIUseGetUserProfile: false,
scancode_time: "",
irentCouponBig: true,
unreadMessagesState: false,
firstWxParseImgLoaddState: false,
topTitle: "", // 寄托港校租房 寄托香港租房
miniProgram: "", // 处于那个小程序 xg gx
}
autoUpdate: function () {
var self = this
// 获取小程序更新机制兼容
if (wx.canIUse('getUpdateManager')) {
const updateManager = wx.getUpdateManager()
updateManager.onCheckForUpdate(function (res) {
if (res.hasUpdate) {
wx.showModal({
title: '更新提示',
content: '检测到新版本,是否下载新版本并重启小程序?',
success: function (res) {
if (res.confirm) {
self.downLoadAndUpdate(updateManager)
} else if (res.cancel) {
wx.showModal({
title: '温馨提示',
content: '本次版本更新涉及到新的功能添加,旧版本无法正常访问',
showCancel: false,
confirmText: "确定更新",
success: function (res) {
if (res.confirm) {
//下载新版本,并重新应用
self.downLoadAndUpdate(updateManager)
}
}
})
}
}
})
}
})
} else {
wx.showModal({
title: '提示',
content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。',
})
}
},
downLoadAndUpdate: function (updateManager) {
var self = this
wx.showLoading();
updateManager.onUpdateReady(function () {
wx.hideLoading()
updateManager.applyUpdate()
})
updateManager.onUpdateFailed(function () {
wx.hideLoading()
// 新的版本下载失败
wx.showModal({
title: '已经有新版本了哟~',
content: '新版本已经上线,请您删除当前小程序,重新搜索打开',
})
})
},
onLaunch: function (options) {
this.globalData.options = options;
__.initial(this)
console.log('__')
if (wx.getEnterOptionsSync().query && wx.getEnterOptionsSync().query.scancode_time) {
this.globalData.scancode_time = wx.getEnterOptionsSync().query.scancode_time
}
if (wx.getUserProfile) {
this.globalData.canIUseGetUserProfile = true;
}
try {
this.computeNavigateBarHeight();
} catch (e) {
// 获取系统信息失败
this.setData({
windowHeight: 812,
totalTopHeight: 68,
statusBarHeight: 20,
titleBarHeight: 48,
titleWidth: 87
});
}
this.autoUpdate()
let getAccountInfoSync = wx.getAccountInfoSync();
if (getAccountInfoSync.miniProgram.appId == "wx9c68fbf7886ea9c4") {
this.globalData.topTitle = "寄托香港租房"
this.globalData.miniProgram = "xg"
} else {
this.globalData.topTitle = "寄托港校租房"
this.globalData.miniProgram = "gx"
}
},
onShow() {
},
computeNavigateBarHeight: function () {
console.log('computeNavigateBarHeightcomputeNavigateBarHeightcomputeNavigateBarHeight')
var systemInfo = wx.getSystemInfoSync();
var data = wx.getMenuButtonBoundingClientRect()
let totalTopHeight = data.bottom;
let windowHeight = systemInfo.windowHeight,
windowWidth = systemInfo.windowWidth,
statusBarHeight = data.top;
this.globalData.screen_data = {
windowHeight: windowHeight,
windowWidth: windowWidth,
totalTopHeight: totalTopHeight + 6,
statusBarHeight: statusBarHeight,
titleBarHeight: data.height,
titleWidth: data.widthinitial,
bottomLift: systemInfo.screenHeight - systemInfo.safeArea.bottom
}
},
onShow: function (options) {
// console.log('onShow', options)
this.globalData.source = options.path || '';
},
onHide: function () {
},
onError: function () {
// 这里回调错误信息
console.log('onError')
},
// get: function () {
// return this.globalData.config;
// },
return_data: function (res) {
var json = res.data;
var data = typeof res.data == 'string' ? JSON.parse(res.data) : res.data;
return data;
},
globalData: {
baseURL: "https://app.gter.net",
token: null,
title: null,
session: null,
code: null,
user: {},
userInfo: {},
options: {},
config: {},
notice: {},
source: '',
header: {
'content-type': 'application/json',
'Accept': 'application/json, text/plain',
'Cookie': 'miucms_session=' + wx.getStorageSync('Authorization'),
'Authorization': wx.getStorageSync('Authorization') || ''
},
new_reply: false,
// 寄托租房独有字段
choose: {},
kw: '',
status: 0,
screen_data: {},
StudentapartmentNew: null,
isUserAuthorization: 0, //用户点击授权:0未知1未授权2已授权
listTab: {},
canIUseGetUserProfile: false,
scancode_time: "",
irentCouponBig: true,
unreadMessagesState: false,
firstWxParseImgLoaddState: false,
topTitle: "", // 寄托港校租房 寄托香港租房
miniProgram: "", // 处于那个小程序 xg gx
}
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
img/copy-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 401 B

BIN
img/phone-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 461 B

1
img/tick.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" xmlns="http://www.w3.org/2000/svg"><defs><filter x="-50%" y="-50%" width="200%" height="200%" filterUnits="objectBoundingBox" id="a"><feColorMatrix values="1 0 0 0 1 0 1 0 0 1 0 0 1 0 1 0 0 0 1 0" in="SourceGraphic"/></filter></defs><image preserveAspectRatio="none" width="20" height="20" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAd1QTFRFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnJFIrAAAAJ50Uk5TABtEanqIaUMYAkWb3dmWPgENdeMJaO327PfkVyHHsW84ERM6crX5tBRN72sQceIzYvwEBvPy/rkXytgaTPuJpyjaO3gS58aKyWe+AyflGQzr1uAF5kFTg7ZWFnQ/T0JkuB9Yd8zpKyZs8al/gtOB/RxgPHvUu9KSjzncCHn0B1zIxb2Zuofompz4IlX1CsJHw1nhZtdlNozOizUOblsqaLU0AAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAASAAAAEgARslrPgAAAqlJREFUSMetlf1bEkEQx9fEFDW5UEwTI8nMpBcNJYIwtCyzpBTJMCqt7I3oLHrX1Mos07IXK8Oav7XZOw7O3bvzep7ml5357mdm325vCfkPVrCp0FJUZNlcXGICtpaWlUPOtlTYBEN8q70SGCsvrNKv7qhWsG01NbWKv71Oh3fWS/21O1w7G2js3tW4u0mS9jRr8XtbpBl49qlF9/4DVK08yPOtbdhR7TjE6l57O3Z02Djeh/Jhv+ZUjwAEguioix0NId9p1V6c95jEh7u680Xo/I/rb98JyvdAh5JhPYn8KcMTojxAryAHp9HvO2PIn+1HJhCRg3PnAVpKNq4/oOxJIwaef+CtgwCDUUN+SM2TGEYuc7y8zgqAJrcp/sKwJAQALpri46EAFUYwvmSGLw2Bj362CRRsJnhyGb0r2F7FNn8I7tGw3v6MoXsN2+sAbYICNNyA8Zt5/pb6fL3o38Z2GOBOjriL4lBYqz4aXowkNvfUCSMpRJQx1tWXE+5jYwcQc1Mi/oHcGEx9YvXJ29mKcpDwGSxPJjB+gO1DbGOEy+B4UowCvUHNPuayyRkcT9IAPnr1yCOAx4TL4HjSB/BEcp4ChPwaGQwfwf/QM8nrxk474TIYnh4wPJc84QVA/ySTkUoxfBVeuq7s9nv4IYibvSFTCDmy/iTuSPsYMTTnS/zDTivRDGbPGt7q6Kvspyqb8BrDNwa8UIbAnEoIjqPwVp/vxO75iFqK0Zfjnc6svO+xcyGxXqwTUax3avEferFLXGTlOB1jaYp7AT+ml2j9Rb5QjK4D5i0FanHCIqk9CaJhkTnpkxM/JZeduJqoczn5WZSkUb0/9Zf8K72wkHO/xvX3e/rbCvuwr3z3EkP78XNVVGBx9VeGmLC1zIwrnf79J7Nmht7I/gKOUk9ziKiKSwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMC0wOS0yNFQxNDozMDoxNSswODowME2gzVgAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjAtMDktMjRUMTQ6MzA6MTUrMDg6MDA8/XXkAAAAS3RFWHRzdmc6YmFzZS11cmkAZmlsZTovLy9ob21lL2FkbWluL2ljb24tZm9udC90bXAvaWNvbl9lMGtnM3N4OXI4ci93YW5jaGVuZy5zdmcVTjpuAAAAAElFTkSuQmCC" x="1293" y="430" filter="url(#a)" overflow="visible" transform="translate(-1293 -430)"/></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -507,4 +507,68 @@
<view class="asking-housing-no">暂不认证</view>
</view>
</view>
</template>
<!-- 瀑布流列表的广告 -->
<template name="adv">
<image class="pinterest-list-item" mode="widthFix" bindload="pinterestImgLoad" lazy-load="{{ true }}" src="{{ item.imageLocal || item.image }}" bindtap="handleSwiper" data-type="{{ item.type }}" data-advtype="{{ item.advtype }}" data-appid="{{ item.appid }}" data-finderUserName="{{ item.finderUserName }}" data-feedId="{{ item.feedId }}" data-advertisingtype="{{ 'lazyloading' }}" data-statid="{{ item.statid }}" data-id="{{ item.id }}" data-url="{{ item.path || item.url }}"></image>
</template>
<!-- 瀑布流列表的公寓 -->
<template name="apartment">
<navigator url="/pages/irentDetail/irentDetail?uniqid={{ item.id }}" hover-class="none">
<view class="pinterest-list-item apartment">
<view class="apartment-top flexcenter">
<image class="apartment-icon" mode="widthFix" src="/img/apartment-icon.png"></image>
<image class="apartment-text" mode="widthFix" src="/img/apartment-text.png"></image>
</view>
<image class="apartment-img" mode="aspectFill" bindload="pinterestImgLoad" src="{{ item.imageLocal || item.image }}" lazy-load="{{ true }}"></image>
<view class="apartment-name one-line-display">{{ item.title }}</view>
<view class="apartment-introduce one-line-display">{{ item.propaganda }}</view>
<view class="apartment-price">
<block wx:for="{{ item.specifications }}" wx:for-item="it" wx:key="index">
<view wx:if="{{ index < 2 }}" class="apartment-price-item flexacenter">
<view class="apartment-price-name one-line-display">{{ it.title }}</view>
<view class="apartment-price-cost flexacenter">
<view class="apartment-price-unit">HK$</view>
<view class="apartment-price-number">{{ it.value }}</view>
/月
</view>
</view>
</block>
</view>
<view class="apartment-price-more flexcenter">更多</view>
<!-- <view class="color-scheme"></view> -->
</view>
</navigator>
</template>
<!-- 瀑布流列表的普通 -->
<template name="general">
<navigator url="/pages/show/show?uniqid={{ item.uniqid }}" hover-class="none">
<view class="pinterest-list-item general">
<view class="top-right-corner flexcenter">{{ item.intermediarytext || '其他' }}</view>
<image class="general-img" mode="aspectFill" bindload="pinterestImgLoad" src="{{ item.imageLocal || item.image }}" lazy-load="{{ true }}"></image>
<view class="general-name flexacenter" wx:if="{{ item.title }}">
<view class="general-tag flexcenter" wx:if="{{ item.gptype }}">{{ item.gptype }}</view>
{{ item.title }}
</view>
<view class="label-list flexacenter">
<view class="label-item" wx:if="{{ item.housingtype }}">{{ item.housingtype }}</view>
<view class="label-item" wx:if="{{ item.gender }}">{{ item.gender }}</view>
<view class="label-item" wx:if="{{ item.leaseterm }}">{{ item.leaseterm }}</view>
</view>
<view class="general-cost flex1 flexacenter">
<view class="general-unit">HK$</view>
<view class="general-number">{{ item.rent }}</view>
/月
</view>
<!-- 右下角的颜色标识 #50e3c2 黄色 #fddf6d 绿色 不要删除 新版上线 使用 -->
<!-- <view class="color-scheme" style="--scheme-bg:{{ 'pink' }}"></view> -->
</view>
</navigator>
</template>

View File

@ -738,7 +738,264 @@
}
.asking-housing .asking-housing-no {
color: #555555;
font-size: 24rpx;
text-decoration: underline;
color: #555555;
font-size: 24rpx;
text-decoration: underline;
}
.pinterest-list {
padding: 30rpx;
justify-content: space-between;
flex-wrap: wrap;
}
.pinterest-list .pinterest-list-left,
.pinterest-list .pinterest-list-right {
height: fit-content;
}
.pinterest-list .pinterest-list-item {
width: 337.5rpx;
background-color: #fff;
border-radius: 24rpx 24rpx 14rpx 24rpx;
margin-bottom: 18rpx;
position: relative;
box-shadow: 0px 0px 12rpx rgba(0, 0, 0, 0.0784313725490196);
}
.pinterest-list .pinterest-list-item.apartment {
padding-bottom: 19.5rpx;
}
.pinterest-list .pinterest-list-item.apartment .apartment-top {
background: linear-gradient(-47.9699747981038deg, rgba(183, 220, 253, 1) -59%, rgba(213, 208, 239, 1) 29%, rgba(98, 177, 255, 1) 135%);
height: 45rpx;
border-radius: 24rpx 24rpx 0 0;
}
.pinterest-list .pinterest-list-item.apartment .apartment-icon {
width: 30rpx;
height: 30rpx;
margin-right: 8rpx;
}
.pinterest-list .pinterest-list-item.apartment .apartment-text {
width: 97.5rpx;
height: 31.5rpx;
}
.pinterest-list .pinterest-list-item.apartment .apartment-img {
width: 337.5rpx;
height: 281.24rpx;
}
.pinterest-list .pinterest-list-item.apartment .apartment-name {
font-size: 27rpx;
color: #000000;
font-weight: 650;
padding: 13.5rpx 15rpx;
}
.pinterest-list .pinterest-list-item.apartment .apartment-introduce {
color: #aaaaaa;
font-size: 22rpx;
padding: 0 15rpx;
}
.pinterest-list .pinterest-list-item.apartment .apartment-price {
margin-top: 6rpx;
}
.pinterest-list .pinterest-list-item.apartment .apartment-price-item {
justify-content: space-between;
padding: 16.5rpx 0;
margin: 0 15rpx;
}
.pinterest-list .pinterest-list-item.apartment .apartment-price-item:not(:last-of-type) {
border-bottom: 1rpx solid #ebebeb;
}
.pinterest-list .pinterest-list-item.apartment .apartment-price-name {
color: #000000;
font-size: 22.5rpx;
}
.pinterest-list .pinterest-list-item.apartment .apartment-price-cost {
font-size: 21rpx;
color: #555555;
justify-content: flex-end;
font-family: 'Arial-Black';
white-space: nowrap;
margin-left: 22rpx;
}
.pinterest-list .pinterest-list-item.apartment .apartment-price-unit {
font-weight: 900;
font-family: 'Arial-Black', 'Arial Black', sans-serif;
color: #000;
}
.pinterest-list .pinterest-list-item.apartment .apartment-price-number {
font-size: 24rpx;
color: #f95d5d;
font-weight: 900;
margin: 0 10rpx;
font-family: 'Arial-Black', 'Arial Black', sans-serif;
}
.pinterest-list .pinterest-list-item.apartment .apartment-price-more {
margin: 0 auto;
font-size: 21rpx;
background-color: rgba(253, 223, 109, 1);
border-radius: 30rpx;
width: 84rpx;
height: 36rpx;
margin-top: 18rpx;
margin-bottom: 16.5rpx;
}
#apartment,
#general {
width: 337.5rpx;
}
.pinterest-list .pinterest-list-item.general {
padding-bottom: 36rpx;
}
.pinterest-list .pinterest-list-item.general .top-right-corner {
height: 36rpx;
padding: 0 10rpx;
font-size: 21rpx;
border-radius: 8rpx;
position: absolute;
top: 15rpx;
right: 15rpx;
background-color: rgba(51, 51, 51, 0.56078431372549);
color: #fff;
}
.pinterest-list .pinterest-list-item.general .general-img {
width: 337.5rpx;
height: 281.24rpx;
border-radius: 24rpx 24rpx 0 0;
}
.pinterest-list .pinterest-list-item.general .general-name {
font-size: 27rpx;
color: #000000;
line-height: 48rpx;
padding: 0 15rpx;
display: -webkit-box;
display: -ms-flexbox;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
overflow: hidden;
text-overflow: ellipsis;
}
.pinterest-list .pinterest-list-item.general .general-tag {
background-color: rgba(242, 242, 242, 1);
border: 1rpx solid rgba(235, 235, 235, 1);
border-radius: 8rpx;
height: 36rpx;
font-size: 23rpx;
color: #555555;
display: inline-flex;
margin-right: 15rpx;
padding: 0 10rpx;
}
.pinterest-list .pinterest-list-item.general .label-list {
font-size: 23rpx;
color: #aaaaaa;
padding: 0 15rpx;
line-height: 40rpx;
margin-top: 15rpx;
}
.pinterest-list .pinterest-list-item.general .label-list .label-item:not(:last-of-type) {
padding-right: 43rpx;
position: relative;
}
.pinterest-list .pinterest-list-item.general .label-list .label-item:not(:last-of-type)::after {
width: 5rpx;
height: 5rpx;
border-radius: 50%;
content: "";
display: block;
position: absolute;
top: 18.5rpx;
right: 20rpx;
background-color: #aaaaaa;
}
.pinterest-list .pinterest-list-item.general .general-cost {
font-size: 22rpx;
color: #555555;
padding: 0 15rpx;
margin-top: 15rpx;
}
.pinterest-list .pinterest-list-item.general .general-cost .general-unit {
font-weight: 900;
color: #000000;
font-family: 'Arial-Black', 'Arial Black', sans-serif;
}
.pinterest-list .pinterest-list-item.general .general-cost .general-number {
font-size: 30rpx;
color: #F95D5D;
font-weight: 900;
margin: 0 10rpx;
font-family: 'Arial-Black', 'Arial Black', sans-serif;
}
.pinterest-list .pinterest-list-item .color-scheme {
width: 48rpx;
height: 48rpx;
border-radius: 8rpx;
background-color: var(--scheme-bg);
position: absolute;
bottom: 0;
right: 0;
}
.pinterest-list .pinterest-list-item .color-scheme::after {
content: "";
display: block;
width: 100%;
height: 100%;
border-radius: 0 0 100% 0;
background-color: #fff;
}
.apartment1-name {
font-size: 27rpx;
color: transparent;
font-weight: 650;
padding: 13.5rpx 15rpx;
}
.apartment1-introduce {
color: transparent;
font-size: 21rpx;
padding: 0 15rpx;
}
.general-name1 {
font-size: 27rpx;
color: transparent;
line-height: 48rpx;
padding: 0 15rpx;
display: -webkit-box;
display: -ms-flexbox;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
overflow: hidden;
text-overflow: ellipsis;
}

View File

@ -511,7 +511,7 @@ Page({
// 计算
calculateProcessingCenter() {
let ratio = this.ratio
if (this.ratio) this.ratio = this.data.screen_data['windowWidth'] / 750
if (!this.ratio) this.ratio = this.data.screen_data['windowWidth'] / 750
let targetData = this.data.listData[this.listDataIndex]
if (!targetData) {
this.getListDataState = false
@ -572,7 +572,6 @@ Page({
listDataRight: this.data.listDataRight
})
if (this.data.listData[this.listDataIndex]) {
this.listDataIndex++
this.calculateProcessingCenter()
@ -625,7 +624,6 @@ Page({
// 上拉到底部
onReachBottom() {
// return
this.getListData()
},

View File

@ -1,3 +1,4 @@
<import src="../common/common.wxml" />
<view class="container" wx:if="{{ !loding }}">
<to-top wx:if="{{ showTOTOP }}"></to-top>
@ -143,11 +144,8 @@
<image class="" mode="aspectFill" wx:if="{{ index < 2}}" src="{{ item }}"></image>
<image mode="widthFix" class="apartment-image-item-icon" src="/img/frontPlay.svg"></image>
</view>
</block>
</view>
</view>
</view>
</scroll-view>
@ -172,7 +170,6 @@
</block>
</block>
</view>
<view id="pinterest-list-right" class="pinterest-list-right flex1" style="display:flex;flex-direction:column;align-items: flex-end;">
<block wx:for="{{ listDataRight }}" wx:key="index">
<block wx:if="{{item.type == 'adv'}}">
@ -186,7 +183,6 @@
</block>
</block>
</view>
</view>
<fix-footer unreadMessages="{{ unreadMessages }}" bottomLift="{{ bottomLift }}"></fix-footer>
@ -195,7 +191,6 @@
<video src="{{ video }}" custom-cache="{{false}}" autoplay='true'>
<cover-view bindtap="closePage" style="top:{{ screen_data.statusBarHeight -5 }}px;height:{{ screen_data.titleBarHeight +10 }}px;width:{{ screen_data.titleBarHeight +10 }}px" class="cover">
<cover-image class="image" src="/img/close-f.png"></cover-image>
</cover-view>
</video>
</view>
@ -245,66 +240,3 @@
</page-container>
<announcement-popup interface="home" init="{{ initState }}"></announcement-popup>
</view>
<!-- 广告 -->
<template name="adv">
<image class="pinterest-list-item" mode="widthFix" bindload="pinterestImgLoad" lazy-load="{{ true }}" src="{{ item.imageLocal || item.image }}" bindtap="handleSwiper" data-type="{{ item.type }}" data-advtype="{{ item.advtype }}" data-appid="{{ item.appid }}" data-finderUserName="{{ item.finderUserName }}" data-feedId="{{ item.feedId }}" data-advertisingtype="{{ 'lazyloading' }}" data-statid="{{ item.statid }}" data-id="{{ item.id }}" data-url="{{ item.path || item.url }}"></image>
</template>
<!-- 公寓 -->
<template name="apartment">
<navigator url="/pages/irentDetail/irentDetail?uniqid={{ item.id }}" hover-class="none">
<view class="pinterest-list-item apartment">
<view class="apartment-top flexcenter">
<image class="apartment-icon" mode="widthFix" src="/img/apartment-icon.png"></image>
<image class="apartment-text" mode="widthFix" src="/img/apartment-text.png"></image>
</view>
<image class="apartment-img" mode="aspectFill" bindload="pinterestImgLoad" src="{{ item.imageLocal || item.image }}" lazy-load="{{ true }}"></image>
<view class="apartment-name one-line-display">{{ item.title }}</view>
<view class="apartment-introduce one-line-display">{{ item.propaganda }}</view>
<view class="apartment-price">
<block wx:for="{{ item.specifications }}" wx:for-item="it" wx:key="index">
<view wx:if="{{ index < 2 }}" class="apartment-price-item flexacenter">
<view class="apartment-price-name one-line-display">{{ it.title }}</view>
<view class="apartment-price-cost flexacenter">
<view class="apartment-price-unit">HK$</view>
<view class="apartment-price-number">{{ it.value }}</view>
/月
</view>
</view>
</block>
</view>
<view class="apartment-price-more flexcenter">更多</view>
<!-- <view class="color-scheme"></view> -->
</view>
</navigator>
</template>
<!-- 普通 -->
<template name="general">
<navigator url="/pages/show/show?uniqid={{ item.uniqid }}" hover-class="none">
<view class="pinterest-list-item general">
<view class="top-right-corner flexcenter">{{ item.intermediarytext || '其他' }}</view>
<image class="general-img" mode="aspectFill" bindload="pinterestImgLoad" src="{{ item.imageLocal || item.image }}" lazy-load="{{ true }}"></image>
<view class="general-name flexacenter" wx:if="{{ item.title }}">
<view class="general-tag flexcenter" wx:if="{{ item.gptype }}">{{ item.gptype }}</view>
{{ item.title }}
</view>
<view class="label-list flexacenter">
<view class="label-item" wx:if="{{ item.housingtype }}">{{ item.housingtype }}</view>
<view class="label-item" wx:if="{{ item.gender }}">{{ item.gender }}</view>
<view class="label-item" wx:if="{{ item.leaseterm }}">{{ item.leaseterm }}</view>
</view>
<view class="general-cost flex1 flexacenter">
<view class="general-unit">HK$</view>
<view class="general-number">{{ item.rent }}</view>
/月
</view>
<!-- 右下角的颜色标识 #50e3c2 黄色 #fddf6d 绿色 不要删除 新版上线 使用 -->
<!-- <view class="color-scheme" style="--scheme-bg:{{ 'pink' }}"></view> -->
</view>
</navigator>
</template>

View File

@ -1,4 +1,5 @@
/* pages/pageIndex/pageIndex.wxss */
@import '/pages/common/common.wxss';
page {
--scheme-bg: #62b1ff;
}
@ -747,245 +748,6 @@ page {
transition: left 0.1s;
}
.pinterest-list {
padding: 30rpx;
justify-content: space-between;
flex-wrap: wrap;
}
.pinterest-list .pinterest-list-left,
.pinterest-list .pinterest-list-right {
height: fit-content;
}
.pinterest-list .pinterest-list-item {
width: 337.5rpx;
background-color: #fff;
border-radius: 24rpx 24rpx 14rpx 24rpx;
margin-bottom: 18rpx;
position: relative;
box-shadow: 0px 0px 12rpx rgba(0, 0, 0, 0.0784313725490196);
}
.pinterest-list .pinterest-list-item.apartment {
padding-bottom: 19.5rpx;
}
.pinterest-list .pinterest-list-item.apartment .apartment-top {
background: linear-gradient(-47.9699747981038deg, rgba(183, 220, 253, 1) -59%, rgba(213, 208, 239, 1) 29%, rgba(98, 177, 255, 1) 135%);
height: 45rpx;
border-radius: 24rpx 24rpx 0 0;
}
.pinterest-list .pinterest-list-item.apartment .apartment-icon {
width: 30rpx;
height: 30rpx;
margin-right: 8rpx;
}
.pinterest-list .pinterest-list-item.apartment .apartment-text {
width: 97.5rpx;
height: 31.5rpx;
}
.pinterest-list .pinterest-list-item.apartment .apartment-img {
width: 337.5rpx;
/* height: 125rpx; */
height: 281.24rpx;
}
.pinterest-list .pinterest-list-item.apartment .apartment-name {
font-size: 27rpx;
color: #000000;
font-weight: 650;
padding: 13.5rpx 15rpx;
}
.pinterest-list .pinterest-list-item.apartment .apartment-introduce {
color: #aaaaaa;
font-size: 22rpx;
padding: 0 15rpx;
}
.pinterest-list .pinterest-list-item.apartment .apartment-price {
margin-top: 6rpx;
/* margin-bottom: 18rpx; */
}
.pinterest-list .pinterest-list-item.apartment .apartment-price-item {
justify-content: space-between;
padding: 16.5rpx 0;
margin: 0 15rpx;
}
.pinterest-list .pinterest-list-item.apartment .apartment-price-item:not(:last-of-type) {
border-bottom: 1rpx solid #ebebeb;
}
.pinterest-list .pinterest-list-item.apartment .apartment-price-name {
color: #000000;
font-size: 22.5rpx;
/* width: 120rpx; */
}
.pinterest-list .pinterest-list-item.apartment .apartment-price-cost {
font-size: 21rpx;
color: #555555;
justify-content: flex-end;
font-family: 'Arial-Black';
white-space: nowrap;
margin-left: 22rpx;
}
.pinterest-list .pinterest-list-item.apartment .apartment-price-unit {
font-weight: 900;
font-family: 'Arial-Black', 'Arial Black', sans-serif;
color: #000;
}
.pinterest-list .pinterest-list-item.apartment .apartment-price-number {
font-size: 24rpx;
color: #f95d5d;
font-weight: 900;
margin: 0 10rpx;
font-family: 'Arial-Black', 'Arial Black', sans-serif;
}
.pinterest-list .pinterest-list-item.apartment .apartment-price-more {
margin: 0 auto;
font-size: 21rpx;
background-color: rgba(253, 223, 109, 1);
border-radius: 30rpx;
width: 84rpx;
height: 36rpx;
margin-top: 18rpx;
margin-bottom: 16.5rpx;
}
#apartment,
#general {
width: 337.5rpx;
}
.pinterest-list .pinterest-list-item.general {
padding-bottom: 36rpx;
}
.pinterest-list .pinterest-list-item.general .top-right-corner {
height: 36rpx;
padding: 0 10rpx;
font-size: 21rpx;
border-radius: 8rpx;
position: absolute;
top: 15rpx;
right: 15rpx;
background-color: rgba(51, 51, 51, 0.56078431372549);
color: #fff;
}
.pinterest-list .pinterest-list-item.general .general-img {
width: 337.5rpx;
/* height: 253.5rpx; */
height: 281.24rpx;
border-radius: 24rpx 24rpx 0 0;
}
.pinterest-list .pinterest-list-item.general .general-name {
font-size: 27rpx;
color: #000000;
line-height: 48rpx;
padding: 0 15rpx;
display: -webkit-box;
display: -ms-flexbox;
/* display: flex; */
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
overflow: hidden;
text-overflow: ellipsis;
}
.pinterest-list .pinterest-list-item.general .general-tag {
background-color: rgba(242, 242, 242, 1);
border: 1rpx solid rgba(235, 235, 235, 1);
border-radius: 8rpx;
height: 36rpx;
font-size: 23rpx;
color: #555555;
display: inline-flex;
margin-right: 15rpx;
padding: 0 10rpx;
}
.pinterest-list .pinterest-list-item.general .label-list {
font-size: 23rpx;
color: #aaaaaa;
padding: 0 15rpx;
line-height: 40rpx;
margin-top: 15rpx;
}
.pinterest-list .pinterest-list-item.general .label-list .label-item:not(:last-of-type) {
padding-right: 43rpx;
position: relative;
}
.pinterest-list .pinterest-list-item.general .label-list .label-item:not(:last-of-type)::after {
width: 5rpx;
height: 5rpx;
border-radius: 50%;
content: "";
display: block;
position: absolute;
top: 18.5rpx;
right: 20rpx;
background-color: #aaaaaa;
}
.pinterest-list .pinterest-list-item.general .general-cost {
font-size: 22rpx;
color: #555555;
padding: 0 15rpx;
margin-top: 15rpx;
}
.pinterest-list .pinterest-list-item.general .general-cost .general-unit {
font-weight: 900;
color: #000000;
font-family: 'Arial-Black', 'Arial Black', sans-serif;
}
.pinterest-list .pinterest-list-item.general .general-cost .general-number {
font-size: 30rpx;
color: #F95D5D;
font-weight: 900;
margin: 0 10rpx;
/* font-family: 'Arial-Black'; */
font-family: 'Arial-Black', 'Arial Black', sans-serif;
}
.pinterest-list .pinterest-list-item .color-scheme {
width: 48rpx;
height: 48rpx;
border-radius: 8rpx;
/* background-color: red; */
background-color: var(--scheme-bg);
position: absolute;
bottom: 0;
right: 0;
}
.pinterest-list .pinterest-list-item .color-scheme::after {
content: "";
display: block;
width: 100%;
height: 100%;
border-radius: 0 0 100% 0;
background-color: #fff;
}
.search-box {
width: 690rpx;
height: 72rpx;
@ -993,7 +755,6 @@ page {
border: 1rpx solid rgba(235, 235, 235, 1);
margin: 12rpx auto 32rpx;
background-color: #fff;
}
.search-box .search-img {
@ -1008,31 +769,4 @@ page {
.waterfall-item {
width: 300rpx;
}
.apartment1-name {
font-size: 27rpx;
color: transparent;
font-weight: 650;
padding: 13.5rpx 15rpx;
}
.apartment1-introduce {
color: transparent;
font-size: 21rpx;
padding: 0 15rpx;
}
.general-name1 {
font-size: 27rpx;
color: transparent;
line-height: 48rpx;
padding: 0 15rpx;
display: -webkit-box;
display: -ms-flexbox;
/* display: flex; */
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
overflow: hidden;
text-overflow: ellipsis;
}

View File

@ -172,7 +172,6 @@ Page({
}, 300)
} else {
let tab = this.data.tab
console.log(data, "data");
data.forEach(ele => {
// 这个是将 详情键 替换语言包里的值
let list = ['type', 'rentalduration', 'intermediary', "property", "elevator", "sunshinearea", "gender"]

View File

@ -72,35 +72,27 @@ Page({
unitTop: 0, // 租金预算的高度
bottomUnitState: false, // 底部租金 预算显示状态
service: "",
servicename: "",
basicRequirementsList: [{ // 求房源的基本数据 键值对
key: "property",
name: "房屋类型"
}, {
key: "floor",
name: "所在楼层"
}, {
key: "elevator",
name: "电梯"
}, {
key: "sunshinearea",
name: "晾晒区"
}, {
key: "acreage",
name: "面积"
}, {
key: "gender",
name: "同住人性别要求"
}, {
key: "publishergender",
name: "发布者性别"
}, ],
servicename: "", // 求房源的基本数据 键值对
basicRequirementsList: {
"property": "房屋类型",
"floor": "所在楼层",
"elevator": "电梯",
"sunshinearea": "晾晒区",
"acreage": "面积",
"gender": "同住人性别要求",
"publishergender": "发布者性别"
},
basicRequirementsObj: {},
langs: {}, // 语言包
housingContactList: {
nearbylistings: { // 附近房源的数据
list: [],
page: 1,
pagevalue: 0
},
listDataLeft: [],
listDataRight: [],
isNewVersions: true,
@ -186,6 +178,7 @@ Page({
that.setData({
user: app.globalData.user,
bottomLift: app.globalData.screen_data.bottomLift,
screen_data: app.globalData.screen_data,
})
this.get_content();
@ -200,11 +193,9 @@ Page({
* 用户点击右上角分享
*/
onShareAppMessage: function (res) {
// 来自页面内转发按钮
if (res.from === 'button') var types = res.from === 'button' ? 'share_btn' : 'show';
if (res.from === 'button') {
// 来自页面内转发按钮
var types = res.from === 'button' ? 'share_btn' : 'show';
}
let that = this;
return {
title: that.data.info.subject,
@ -216,7 +207,6 @@ Page({
// 转发失败
}
}
},
get_content: function () {
let that = this;
@ -227,10 +217,8 @@ Page({
source: that.data.source,
q: that.data.q
})
// miucms.request(app.globalData.config.show.init, sendData).then(data => {
miucms.request(`${app.globalData.baseURL}/tenement/v2/api/details`, sendData).then(data => {
wx.hideLoading()
// if (data.extraparam) {
if (data.code != 200) {
wx.showModal({
title: '提示',
@ -243,11 +231,8 @@ Page({
}
})
} else {
data = data.data
let info = data.info
// data.info['verified'] = 1
that.setData({
irentCouponBig: app.globalData.irentCouponBig || true,
info: data.info,
@ -269,13 +254,16 @@ Page({
servicename: data.servicename,
loding: false
})
if (data.info && data.info.introduction && data.info.introduction.length > 0 && data.info.introduction != ' ') {
WxParse.wxParse('info.introduction', 'html', '<div>' + data.info.introduction + '</div>', that, 0);
}
if (data.info && data.info.message && data.info.message.length > 0 && data.info.message != ' ') WxParse.wxParse('info.message', 'html', '<div>' + data.info.message + '</div>', that, 0);
// 认证房东 和 listingcount (他的房源数量) >1 时加载其他房源接口
if (data.groupid == 19 && data.listingcount > 1) this.getElseResource()
// if (data.info.verified == 1 && data.listingcount > 1) this.getElseResource()
// 判断是否需要请求顶部广告
if (data.ads && data.ads.bannertop) this.requestTopAds(data.ads.bannertop)
@ -284,7 +272,11 @@ Page({
this.getRentalLocation()
this.handleDetailData()
// 获取附近房源
this.getNearbListings()
}
}).catch(res => {
wx.hideLoading()
wx.showModal({
@ -318,7 +310,6 @@ Page({
let info = this.data.info
// 判断是否是求房源的区间 面积 和 价格
// if (Array.isArray(info['rent'])) info['rent'] = info['rent'][0] + ' ~ ' + info['rent'][1]
let judgeArr = ['acreage', 'rent']
judgeArr.forEach(element => {
if (Array.isArray(info[element])) info[element] = info[element][0] + ' ~ ' + info[element][1]
@ -349,8 +340,41 @@ Page({
info['locationList'] = locationList
let basicRequirementsList = this.data.basicRequirementsList
if (info['intermediary'] != 6) {
basicRequirementsList['gender'] = "性别要求"
delete basicRequirementsList['publishergender']
delete basicRequirementsList['elevator']
}
let obj = []
for (const key in basicRequirementsList) {
let langsKey = langs[key]
if (key == "publishergender") langsKey = langs["gender"]
let value
if (Array.isArray(info[key])) {
value = ""
info[key].forEach((element, index) => {
if (langsKey[element]) value += langsKey[element] + (index != info[key].length - 1 ? ' / ' : '')
})
if (!value) value = "不限"
} else {
if (key == 'acreage') value = `${info[key]} 平方呎`
else if (key != 'floor' && info[key] != undefined && langsKey != undefined) value = langsKey[info[key]]
else if (key == 'floor') value = [info[key], langs["elevator"][info["elevator"]]]
else value = info[key]
}
obj.push({
name: basicRequirementsList[key],
value
})
}
this.setData({
info
info,
basicRequirementsObj: obj
})
}
@ -807,15 +831,13 @@ Page({
// 获取其他房源数据
getElseResource() {
// miucms.request(`${app.globalData.baseURL}/tenement/housingresources/otherhousinginTA`, {
miucms.request(`${app.globalData.baseURL}/tenement/housingresources/otherhousinginTA`, {
token: this.data.token,
// lists: 50
}).then(res => {
if (res.code == 200) {
this.setData({
elseResourceData: res.data.data
})
let elseResourceData = res.data.data
this.handleElseData(elseResourceData)
} else {
wx.showModal({
title: '提示',
@ -825,6 +847,44 @@ Page({
})
},
// 专门梳理v4出现的 语音包 及 不同房源值的处理
handleElseData(data) {
let langs = this.data.langs || {}
if (Object.keys(langs).length == 0) {
setTimeout(() => {
this.handleDetailData()
}, 300)
} else {
data.forEach(ele => {
// 这个是将 详情键 替换语言包里的值
let list = ['type', 'rentalduration', 'intermediary', "property", "elevator", "sunshinearea", "gender"]
if (Array.isArray(ele['floor'])) list.push('floor') // 判断 楼层是否需要 替换值, 因为在求房源里是多个值
let differentNames = { // 需要替换的 键名
"intermediary": "intermediary_text"
}
list.forEach(element => {
if (ele[element] == -1) {} else if (ele[element] == 0) ele[differentNames[element] ? differentNames[element] : element] = '不限' // 当 值为 [0] 时为不限
else ele[differentNames[element] ? differentNames[element] : element] = langs[element][ele[element]]
})
let tabArr = ["gptype", "property", "elevator", "sunshinearea", "gender"]
let tabList = []
tabArr.forEach(el => {
if (ele[el] && ele[el] != -1) tabList.push(ele[el])
})
ele['tabList'] = tabList
let location = langs.location // 遍历替换区域的值 所有房源
let pendingData = ele['location']
ele['location'] = `${location[Math.trunc(pendingData)]} > ${location[pendingData]}`
})
this.setData({
elseResourceData: data,
})
}
},
// 专门取反的函数
negation(e) {
let key = e.currentTarget.dataset.key
@ -896,5 +956,184 @@ Page({
miucms.copy(content).then((res) => {}).catch(err => {})
},
// 获取附近房源
nearbListingsState: false,
getNearbListings() {
if (this.nearbListingsState) return
this.nearbListingsState = true
wx.showLoading({
title: '加载中...',
})
let nearbylistings = this.data.nearbylistings
miucms.wxget(app.globalData.baseURL + "/tenement/v2/api/home/recommendList", {
page: nearbylistings['page'],
limit: 20,
type: "recommend",
pagevalue: nearbylistings['pagevalue'] || 0,
}).then(res => {
if (res.code != 200) return
let data = res.data.data
let pagevalue = res.data.pagevalue
nearbylistings['pagevalue'] = pagevalue
nearbylistings['page'] = nearbylistings['page'] + 1
nearbylistings['list'] = data
this.setData({
nearbylistings: Object.assign(this.data.nearbylistings, nearbylistings)
})
this.calculationBefore(data)
}).catch(() => {
this.nearbListingsState = false
}).finally(() => {
wx.hideLoading()
})
},
calculationBefore(data = [...data]) {
let listDataLeft = this.data.listDataLeft || []
let listDataRight = this.data.listDataRight || []
data = data.slice(0, 10)
data.forEach((el, index) => {
if (index % 2 === 0) listDataLeft.push(el)
else listDataRight.push(el)
})
this.data.listDataLeft = listDataLeft
this.data.listDataRight = listDataRight
this.setData({
listDataLeft,
listDataRight,
})
this.top10State = true
},
listDataIndex: 0,
leftHeight: 0, // px 单位
rightHeight: 0,
ratio: 0,
pinterestImgLoadIndex: 0, // 加载了建施图
// 计算
calculateProcessingCenter() {
if (!this.ratio) this.ratio = this.data.screen_data['windowWidth'] / 750 || 0.5
let ratio = this.ratio
let targetData = this.data.nearbylistings.list[this.listDataIndex]
if (!targetData) {
this.nearbListingsState = false
return
}
let type = targetData['type']
if (type == 'adv') {
this.getPictureHeight(targetData.image).then(res => {
targetData['imageLocal'] = res.path
this.whichSide(res.actual, targetData)
return
})
} else {
let altitude = 0 // rpx
if (type == 'apartment') {
altitude = 205
if (targetData['specifications'].length > 2) altitude += 100
else altitude += 64 * targetData['specifications'].length
} else altitude = 141
altitude = altitude * ratio // 转 px
this.setData({
targetData
})
altitude += (150 / 180 * 337.5 * ratio)
let select = type == 'apartment' ? '#apartment' : '#general'
let query = wx.createSelectorQuery();
query.select(select).boundingClientRect(rect => {
if (!rect) {
this.whichSide(altitude, targetData)
return
}
let height = rect.height;
altitude += height
this.whichSide(altitude, targetData)
}).exec();
}
},
// 判断在哪边的
whichSide(res, targetData) {
if (this.leftHeight <= this.rightHeight) {
this.leftHeight = this.leftHeight + res
this.data.listDataLeft.push(targetData)
} else {
this.rightHeight = this.rightHeight + res
this.data.listDataRight.push(targetData)
}
this.setData({
listDataLeft: this.data.listDataLeft,
listDataRight: this.data.listDataRight
})
if (this.data.nearbylistings.list[this.listDataIndex]) {
this.listDataIndex++
this.calculateProcessingCenter()
}
},
pinterestImgLoad(e) {
this.pinterestImgLoadIndex++
if (this.pinterestImgLoadIndex >= 10 && this.top10State) {
this.top10State = false
this.pinterestImgLoadIndex = 0
this.listDataIndex = 10
let query = wx.createSelectorQuery();
query.select("#pinterest-list-left").boundingClientRect()
query.select("#pinterest-list-right").boundingClientRect()
query.exec(rect => {
if (!rect[0]) {
this.nearbListingsState = false
return
}
this.leftHeight = rect[0].height
this.rightHeight = rect[1].height
this.calculateProcessingCenter()
})
}
},
// 获取图片高度
getPictureHeight(src) {
return new Promise((resolve, reject) => {
wx.getImageInfo({
src,
success: res => {
let {
width,
height,
path
} = res
let actual = height / width * 337 * this.ratio
resolve({
actual,
path
})
}
})
})
},
// 上拉到底部
onReachBottom() {
this.getNearbListings()
},
})

View File

@ -1,11 +1,12 @@
{
"navigationBarTitleText": "信息详情",
"enablePullDownRefresh": false,
"usingComponents": {
"header-nav": "../../template/headerNav/index",
"report":"../../template/report/report",
"go-login":"../../template/goLogin/goLogin",
"ads":"./ads/ads",
"banner-ad":"../../template/bannerAD/bannerAD"
}
"navigationBarTitleText": "信息详情",
"enablePullDownRefresh": false,
"usingComponents": {
"header-nav": "../../template/headerNav/index",
"report": "../../template/report/report",
"go-login": "../../template/goLogin/goLogin",
"ads": "./ads/ads",
"banner-ad": "../../template/bannerAD/bannerAD",
"common-list": "/template/commonList/commonList"
}
}

View File

@ -1,12 +1,28 @@
<import src="../common/common.wxml" />
<import src="../../wxParse/wxParse.wxml" />
<wxs module="m">
module.exports = {
isArray: function (arr) {
return arr.constructor == 'Array' ? true : false
}
}
</wxs>
<view class="container" wx:if="{{ !loding }}">
<view style="position: fixed;top: 0px;right: 0;">
<view id="apartment">
<view class="apartment1-name one-line-display">{{ targetData['title'] }}</view>
<view class="apartment1-introduce one-line-display">{{ targetData['propaganda'] }}</view>
</view>
<view class="general-name1 flexacenter" id="general">{{ targetData['title'] }}</view>
</view>
<block wx:if="{{ isUserAuthorization==1 }}">
<go-login bindislogin="islogin"></go-login>
</block>
<block wx:if="{{ isNewVersions }}">
<header-nav inner-text="Some text" bgcolor="{{'transparent'}}">房源详情</header-nav>
<template is="new-contact-information" data="{{ info }}"></template>
<header-nav inner-text="Some text" bgcolor="{{ 'transparent' }}">房源详情</header-nav>
<view class="bj">
<image class="bj-left" mode="widthFix" src="/img/show-head-left.svg"></image>
<image class="bj-right" mode="widthFix" src="/img/show-head-right.svg"></image>
@ -16,30 +32,37 @@
<view class="housing-info-right flexflex">
<view class="housing-info-name flexacenter">
{{ info.author }}
<view class="housing-info-identity">有方找室友</view>
<view class="housing-info-identity">{{ info.intermediary_text }}</view>
</view>
<view class="housing-info-update">{{ info.author }}</view>
<view class="housing-info-update">{{ info.updatetime }} 更新</view>
</view>
</view>
<view class="housing-information certification resource-beg">
<view class="HResource-box HResource-box1">
<view class="advanced-markup flexacenter {{ info['intermediary'] == 1 ? 'advanced-intermediary' : '' }}" wx:if="{{ info.verified == 1 }}">
<view class="advanced-markup-left flexacenter ">
<image class="advanced-markup-icon" mode="widthFix" src="/img/certified-listings-icon.png"></image>
<image class="advanced-markup-identifying" mode="widthFix" src="/img/certified-listings.png"></image>
<image class="advanced-markup-icon advanced-intermediary-icon" mode="widthFix" src="/img/certified-intermediary.png"></image>
<view class="advanced-intermediary-name">认证中介</view>
</view>
<view class="HResource-box {{ groupid != 19 ? 'HResource-box1' : ''}}">
<view class='title'>{{ info.subject }}</view>
<view class="HResource-title" wx:if="{{ groupid == 19 }}">
<image class='authentication' wx:if="{{ info.verified == 1 }}" style="height: 40rpx;" mode="heightFix" src="/img/authentication.jpg" />
{{ info.subject }}
<view class="advanced-markup-right flexacenter">
<image class="advanced-markup-tick" src="/img/tick.svg"></image>
<view class="advanced-markup-name">{{ info['intermediary'] == 1 ? '房产证明' : '真实牌照' }}</view>
<image class="advanced-markup-tick" src="/img/tick.svg"></image>
<view class="advanced-markup-name">{{ info['intermediary'] == 1 ? '房东身份证' : '身份证明' }}</view>
</view>
</view>
<!-- 房源月租和id -->
<view class='title'>{{ info.subject }}</view>
<!-- 房源月租 -->
<view class="HResource-rentAndId">
<view class="rent">
<view class="rent-label flexcenter" wx:if="{{ info['intermediary'] == 6 }}">预算</view>
<view id="unit" class="unit">{{ info.currency || "HK$"}}</view>
<view class="money">{{ info.rent }}</view>
<view class="month">
/{{ info.rentalperiod }}
</view>
<view class="month">/{{ info.rentalperiod }}</view>
</view>
</view>
@ -58,10 +81,14 @@
<!-- 图片和视频 -->
<view class="media-box" wx:if="{{ (info.video && info.video.length != 0) || (info.picturegroup && info.picturegroup.length != 0) }}">
<view class="housing-information-media-top flexacenter">
<image class="housing-information-media-icon1" src="/img/u1737.png" mode="widthFix"></image>
<view class="housing-information-media-quantity flexcenter">{{ info.video.length }}</view>
<image class="housing-information-media-icon" src="/img/u1738.png" mode="widthFix"></image>
<view class="housing-information-media-quantity flexcenter">{{ info.picturegroup.length }}</view>
<block wx:if="{{ info.video }}">
<image class="housing-information-media-icon1" src="/img/u1737.png" mode="widthFix"></image>
<view class="housing-information-media-quantity flexcenter">{{ info.video.length }}</view>
</block>
<block wx:if="{{ info.picturegroup }}">
<image class="housing-information-media-icon" src="/img/u1738.png" mode="widthFix"></image>
<view class="housing-information-media-quantity flexcenter">{{ info.picturegroup.length }}</view>
</block>
</view>
<view class="media-content">
<scroll-view class="scroll-view_H" scroll-x="true" style="width: 100%">
@ -89,26 +116,16 @@
<image class="HResource-item-head-icon" src="/img/ask-for.png" mode="widthFix"></image>
基本要求
</view>
<view class="HResource-item-list basic-list-aLine">
<block wx:for="{{ basicRequirementsList }}" wx:key="index">
<view class="basic-item-aLine flexacenter" wx:if="{{ info[item.key] != null && info[item.key] != undefined && info[item.key] != '' }}">
<view class="basic-aLine-key">{{ item.name }}</view>
<view class="basic-aLine-value flex1" wx:if="{{ item.key == 'acreage' }}">{{ info[item.key] + ' 平方呎' }}</view>
<view class="basic-aLine-value flex1" wx:elif="{{ (item.key == 'sunshinearea' || item.key == 'property') && info[item.key] != 0 }}">
<block wx:for="{{ info[item.key] }}" wx:for-item="it" wx:key="index">
{{ langs[item.key][it] }} {{ index == info[item.key].length - 1 ? '' : '/' }}
<view class="HResource-item-list {{ info['intermediary'] == 6 ? 'basic-list-aLine' : 'basic-list-twoLine' }}">
<block wx:for="{{ basicRequirementsObj }}" wx:key="index">
<view class="basic-item-Line flexacenter {{ index == basicRequirementsObj.length - 1 ? 'flex1' : '' }}" wx:if="{{ item.value }}">
<view class="basic-Line-key">{{ item.name }}</view>
<view class="basic-Line-value flex1" wx:if="{{ m.isArray(item.value) }}">
<block wx:for="{{ item.value }}" wx:for-item="it" wx:for-index="ind" wx:key="ind">
{{ it }}<text class="vertical" wx:if="{{ ind != item.value.length - 1 }}">|</text>
</block>
</view>
<view class="basic-aLine-value flex1" wx:elif="{{ (item.key == 'sunshinearea' || item.key == 'property') && info[item.key] == 0 }}">
不限
</view>
<view class="basic-aLine-value flex1" wx:elif="{{ item.key == 'gender' || item.key == 'publishergender' }}">
{{ langs['gender'][info[item.key]] }}
</view>
<view class="basic-aLine-value flex1" wx:elif="{{ item.key == 'elevator' }}">
{{ langs[item.key][info[item.key]] }}
</view>
<view class="basic-aLine-value flex1" wx:else>{{ info[item.key] }}</view>
<view class="basic-Line-value flex1" wx:else>{{ item.value }}</view>
</view>
</block>
@ -192,6 +209,49 @@
</view>
</view>
</view>
<!-- 其他认证房源 -->
<view class="other-information else-box" wx:if="{{ false }}">
<view class="else-name flexacenter">发布者的其他认证房源<view class="else-quantity">(3)</view>
</view>
<block wx:for="{{ elseResourceData }}">
<common-list item="{{ item }}"></common-list>
</block>
</view>
<!-- 附近房源 -->
<view class="other-information nearby-listings" wx:if="{{ false }}">
<!-- 列表 -->
<view class="pinterest-list flexflex">
<view id="pinterest-list-left" class="pinterest-list-left flex1">
<block wx:for="{{ listDataLeft }}" wx:key="index">
<block wx:if="{{item.type == 'adv'}}">
<template is="adv" data="{{ item }}"></template>
</block>
<block wx:elif="{{item.type == 'apartment'}}">
<template is="apartment" data="{{ item }}"></template>
</block>
<block wx:else>
<template is="general" data="{{ item }}"></template>
</block>
</block>
</view>
<view id="pinterest-list-right" class="pinterest-list-right flex1" style="display:flex;flex-direction:column;align-items: flex-end;">
<block wx:for="{{ listDataRight }}" wx:key="index">
<block wx:if="{{item.type == 'adv'}}">
<template is="adv" data="{{ item }}"></template>
</block>
<block wx:elif="{{item.type == 'apartment'}}">
<template is="apartment" data="{{ item }}"></template>
</block>
<block wx:else>
<template is="general" data="{{ item }}"></template>
</block>
</block>
</view>
</view>
</view>
</block>
<block wx:else>
<header-nav inner-text="Some text" bindgoIsMessage="goIsMessage" bgcolor="{{ groupid == 19 ? 'rgba(238, 239, 242, 1)' : ''}}">信息详情</header-nav>
@ -271,24 +331,23 @@
</view>
<view class="HResource-item-list basic-list-aLine">
<block wx:for="{{ basicRequirementsList }}" wx:key="index">
<view class="basic-item-aLine flexacenter" wx:if="{{ info[item.key] != null && info[item.key] != undefined && info[item.key] != '' }}">
<view class="basic-aLine-key">{{ item.name }}</view>
<view class="basic-aLine-value flex1" wx:if="{{ item.key == 'acreage' }}">{{ info[item.key] + ' 平方呎' }}</view>
<view class="basic-aLine-value flex1" wx:elif="{{ (item.key == 'sunshinearea' || item.key == 'property') && info[item.key] != 0 }}">
<block wx:for="{{ info[item.key] }}" wx:for-item="it" wx:key="index">
{{ langs[item.key][it] }} {{ index == info[item.key].length - 1 ? '' : '/' }}
<view class="basic-item-aLine flexacenter" wx:if="{{ info[index] != null && info[index] != undefined && info[index] != '' }}">
<view class="basic-aLine-key">{{ item }}</view>
<view class="basic-aLine-value flex1" wx:if="{{ index == 'acreage' }}">{{ info[index] + ' 平方呎' }}</view>
<view class="basic-aLine-value flex1" wx:elif="{{ (index == 'sunshinearea' || index == 'property') && info[index] != 0 }}">
<block wx:for="{{ info[index] }}" wx:for-item="it" wx:for-index="ind" wx:key="ind">
{{ langs[index][it] }} {{ ind == info[index].length - 1 ? '' : '/' }}
</block>
</view>
<view class="basic-aLine-value flex1" wx:elif="{{ (item.key == 'sunshinearea' || item.key == 'property') && info[item.key] == 0 }}">
<view class="basic-aLine-value flex1" wx:elif="{{ (index == 'sunshinearea' || index == 'property') && info[index] == 0 }}">
不限
</view>
<view class="basic-aLine-value flex1" wx:elif="{{ item.key == 'gender' || item.key == 'publishergender' }}">
{{ langs['gender'][info[item.key]] }}
<view class="basic-aLine-value flex1" wx:elif="{{ index == 'gender' || index == 'publishergender' }}">
{{ langs['gender'][info[index]] }}</view>
<view class="basic-aLine-value flex1" wx:elif="{{ index == 'elevator' }}">
{{ langs[index][info[index]] }}
</view>
<view class="basic-aLine-value flex1" wx:elif="{{ item.key == 'elevator' }}">
{{ langs[item.key][info[item.key]] }}
</view>
<view class="basic-aLine-value flex1" wx:else>{{ info[item.key] }}</view>
<view class="basic-aLine-value flex1" wx:else>{{ info[index] }}</view>
</view>
</block>
@ -998,6 +1057,38 @@
</view>
</template>
<!-- V4 的 新联系方式弹窗 -->
<template name="new-contact-information">
<!-- 联系方式弹窗 -->
<view class="root-portal flexflex" style="display: flex; align-items: flex-end;" catchtouchmove="locationmove">
<view class="new-contact-information flexflex">
<view class="new-contact-information-item flexflex">
<view class="new-contact-information-circle"></view>
<view class="new-contact-information-title">微信</view>
<view class="new-contact-wechart-box flexcenter">
<image class="new-contact-wechart-icon" show-menu-by-longpress mode="widthFix" src="{{ info.wechatdata.url }}"></image>
</view>
<view class="new-contact-wechart-text">长按二维码添加好友,备注:寄托租房</view>
</view>
<view class="new-contact-information-item flexflex">
<view class="new-contact-information-circle"></view>
<view class="new-contact-information-title">WhatsApp</view>
<view class="new-contact-information-number">987654321</view>
<view class="new-contact-information-btn flexacenter">
<view class="new-contact-information-btn-item flexcenter">
<image class="new-contact-information-btn-icon phone" src="/img/phone-icon.png"></image>
拨打
</view>
<view class="new-contact-information-btn-item flexcenter">
<image class="new-contact-information-btn-icon" src="/img/copy-icon.png"></image>
复制
</view>
</view>
</view>
</view>
</view>
</template>
<!-- 底部操作栏 -->
<template name="footer1">
<view class="footer1" style="padding-bottom: {{ bottomLift }}rpx;">

View File

@ -24,11 +24,9 @@ canvas {
}
.container {
/* padding-bottom: 130rpx; */
width: 100vw;
box-sizing: border-box;
overflow: hidden;
/* padding-bottom: 240rpx; */
padding-bottom: 120rpx;
}
@ -1259,7 +1257,7 @@ map .clickmap {
}
.certification .contactInformation-pop,
.certification .academy-pop {
.academy-pop {
width: 750rpx;
position: absolute;
bottom: 0;
@ -1737,21 +1735,43 @@ map .clickmap {
.basic-list-aLine {}
.basic-list-aLine .basic-item-aLine {
border-bottom: 1rpx solid #ebebeb;
height: 111rpx;
.HResource-item-list.basic-list-twoLine {
display: flex;
flex-wrap: wrap;
}
.basic-list-aLine .basic-aLine-key {
color: #7f7f7f;
font-size: 24rpx;
.HResource-item-list .basic-item-Line {
border-bottom: 1rpx solid #ebebeb;
height: 111rpx;
position: relative;
}
.HResource-item-list.basic-list-twoLine .basic-item-Line {
width: 50%;
}
.HResource-item-list.basic-list-aLine .basic-Line-key {
width: 229.5rpx;
}
.basic-list-aLine .basic-aLine-value {
.HResource-item-list.basic-list-twoLine .basic-Line-key {
width: 126rpx;
}
.HResource-item-list .basic-Line-key {
color: #7f7f7f;
font-size: 24rpx;
}
.HResource-item-list .basic-Line-value {
font-size: 27rpx;
color: #000000;
}
.HResource-item-list.basic-list-twoLine .basic-Line-value .vertical {
color: #D7D7D7;
margin: 0 10rpx;
}
.target-area-list {
@ -1795,12 +1815,10 @@ map .clickmap {
font-weight: 650;
line-height: 36rpx;
margin-bottom: 18rpx;
}
.disclaimer .disclaimer-item {
font-size: 21rpx;
/* line-height: 30rpx; */
margin-bottom: 18rpx;
}
@ -2049,4 +2067,169 @@ map .clickmap {
.housing-information .location-box {
padding-bottom: 0;
}
.advanced-markup {
width: 750;
height: 96rpx;
background: linear-gradient(-61.044917005945deg, rgba(255, 214, 243, 1) -88%, rgba(128, 128, 255, 1) 79%);
border-radius: 60rpx 60rpx 0 0;
padding: 0 30rpx;
justify-content: space-between;
color: #fff;
font-size: 30rpx;
}
.advanced-markup.advanced-intermediary {
background: linear-gradient(-58.1179925261059deg, rgba(180, 218, 255, 1) -11%, rgba(80, 227, 194, 1) 96%);
}
.advanced-markup .advanced-markup-left .advanced-intermediary-name,
.advanced-markup .advanced-markup-left .advanced-intermediary-icon {
display: none;
}
.advanced-markup .advanced-markup-left .advanced-markup-icon {
width: 45rpx;
height: 45rpx;
margin-right: 7.5rpx;
}
.advanced-markup .advanced-markup-left .advanced-markup-identifying {
width: 162rpx;
height: 36rpx;
}
.advanced-markup .advanced-markup-right .advanced-markup-tick {
width: 30rpx;
height: 30rpx;
margin-left: 36rpx;
}
.advanced-markup .advanced-markup-right .advanced-markup-name {
color: #fff;
font-size: 24rpx;
margin-left: 9rpx;
}
.advanced-markup.advanced-intermediary .advanced-markup-left .advanced-intermediary-icon,
.advanced-markup.advanced-intermediary .advanced-markup-left .advanced-intermediary-name {
display: block;
}
.advanced-markup.advanced-intermediary .advanced-markup-icon,
.advanced-markup.advanced-intermediary .advanced-markup-identifying {
display: none;
}
.other-information {
background-color: rgba(238, 239, 242, 1);
}
.else-box {}
.else-box .else-name {
color: #000000;
font-size: 30rpx;
font-weight: 650;
padding: 57rpx 30rpx 0;
margin-bottom: 30rpx;
}
.else-box .else-quantity {
color: #555555;
font-weight: 400;
margin-left: 15rpx;
}
.new-contact-information {
flex-direction: column;
justify-content: flex-end;
align-items: flex-end;
}
.new-contact-information .new-contact-information-item {
flex-direction: column;
align-items: center;
width: 750rpx;
padding-bottom: 141rpx;
border-radius: 45rpx 45rpx 0 0;
margin-top: -55.5rpx;
background: linear-gradient(180deg, rgba(230, 243, 255, 1) 0%, rgba(255, 255, 255, 1) 99%);
}
.new-contact-information .new-contact-information-item .new-contact-information-circle {
width: 60rpx;
height: 30rpx;
background-color: #ffeba2;
border-radius: 0 0 30rpx 30rpx;
margin: 0 auto;
position: relative;
}
.new-contact-information .new-contact-information-item .new-contact-information-circle::after {
position: absolute;
top: 0;
left: 50%;
transform: translateX(-50%);
background-color: #ffcc17;
width: 39rpx;
height: 20rpx;
border-radius: 0 0 20rpx 20rpx;
z-index: 111;
content: "";
}
.new-contact-information .new-contact-information-item .new-contact-information-title {
color: #000000;
font-size: 30rpx;
padding-top: 15rpx;
margin-bottom: 48rpx;
}
.new-contact-information .new-contact-wechart-box {
box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.0823529411764706);
width: 225rpx;
height: 225rpx;
border-radius: 24rpx;
background-color: #fff;
margin: 0 auto 36rpx;
}
.new-contact-information .new-contact-wechart-icon {
width: 180rpx;
height: 180rpx;
}
.new-contact-information .new-contact-wechart-text {
color: #000000;
font-size: 27rpx;
}
.new-contact-information .new-contact-information-number {
color: #000000;
font-size: 42rpx;
font-weight: 650;
text-align: center;
}
.new-contact-information .new-contact-information-btn-item {
width: 300rpx;
height: 84rpx;
background: rgba(97, 177, 252, 1);
border-radius: 69rpx;
font-size: 30rpx;
color: #fff;
margin: 54rpx 15rpx 0;
}
.new-contact-information .new-contact-information-btn-item .new-contact-information-btn-icon {
width: 30rpx;
height: 30rpx;
margin-right: 10rpx;
}
.new-contact-information .new-contact-information-btn-item .new-contact-information-btn-icon.phone {
width: 36rpx;
height: 36rpx;
}

View File

@ -51,6 +51,7 @@
<image class="avatar" src="{{ item.avatar }}"></image>
<view class="name">{{ item.author }}</view>
<view class="label flexcenter" wx:if="{{ item.intermediary_text }}">{{ item.intermediary_text }}</view>
<view class="label flexcenter" wx:else>{{ item.intermediary }}</view>
<!-- <view class="label flexcenter">男生</view> -->
<!-- <image class="user-tag" mode="widthFix" src="/img/intermediary-agent.png"></image> -->
</view>

View File

@ -468,7 +468,6 @@ Component({
let conditionState = this.data.conditionState
let typesData = this.data.typesData
console.log(value, value);
if (value != 0) conditionObj[conditionState]['valueText'] = `${text}/...`
else conditionObj[conditionState]['valueText'] = ""

View File

@ -494,7 +494,6 @@
color: #555555;
width: 33%;
margin-bottom: 18rpx;
}
.more-box .more-list-item-multiple-icon {

View File

@ -283,11 +283,9 @@ function request(url, data = {}, needGet = false) {
}
var data = res.data;
resolve(data)
},
fail: function (msg) {
wx.hideLoading();
console.log('errmsg', msg)
wx.showToast({
title: msg,
icon: 'none',