feat(house): 添加房源卖价和总价功能并优化分享流程

- 在房源添加页面添加卖价(元/平)和总价(万)输入字段
- 实现卖价变动时总价自动计算功能
- 在房源详情页显示卖价和总价信息
- 调整物业费显示位置提升界面布局合理性
- 更新服务器配置地址从gxwebsoft.com到websoft.top
- 替换必看好房标签为特价好房标签统一显示
- 修复房源详情页分享功能和海报生成流程
- 添加跟进记录页面和相应跳转功能
- 优化房源管理页面删除按钮显示逻辑
- 实现闪屏页跳过功能和登录状态记忆
- 添加房源海报生成组件支持分享推广
- 修复分享路径参数传递和用户信息存储
This commit is contained in:
2026-02-13 19:37:24 +08:00
parent b95b52f4b5
commit 1bf7caf34e
24 changed files with 829 additions and 70 deletions

View File

@@ -77,6 +77,7 @@
inputAlign="right" maxlength="30" :border="false" placeholder="请输入物业费" />
</u-cell>
</u-form-item>
<!-- <u-form-item prop="tenancy">
<u-cell title="租期" :isLink="false">
<u-input slot="value" class="input" v-model="form.tenancy" inputAlign="right" maxlength="30"
@@ -125,6 +126,18 @@
:border="false" placeholder="请选择房源朝向" :disabled="true" disabledColor="#FFFFFF" />
</u-cell>
</u-form-item>
<u-form-item prop="salePrice">
<u-cell title="卖价(元/平)" :isLink="false">
<u-input type="digit" slot="value" class="input" v-model="form.salePrice"
inputAlign="right" maxlength="30" :border="false" placeholder="8000元/平" @input="onInputSalePrice" />
</u-cell>
</u-form-item>
<u-form-item prop="salePrice">
<u-cell title="总价(万)" :isLink="false">
<u-input type="digit" slot="value" class="input" v-model="form.totalPrice"
inputAlign="right" maxlength="30" :border="false" placeholder="120万" />
</u-cell>
</u-form-item>
</u-cell-group>
</view>
@@ -613,6 +626,9 @@
this.form.nickname = val
}
},
onInputSalePrice(val){
this.form.totalPrice = (this.form.extent * val * 0.0001).toFixed(0)
},
formatter(type, value) {
if (type === 'year') {
return `${value}`

View File

@@ -84,7 +84,6 @@
<view class="item col-2">
租金(/){{ form.rent || '' }}
</view>
<view class="item col-2">物业费(/){{ form.propertyFees || '' }}</view>
<view class="item col-2">
楼层{{ form.floor || '' }}
</view>
@@ -101,6 +100,7 @@
如何看房{{ form.password || '' }}
</view>
<view v-if="isManager" class="item col-2" @click="makePhoneCall">业主电话{{ form.phone || '' }}</view>
<view class="item col-2">物业费(/){{ form.propertyFees || '' }}</view>
<!-- <view v-if="isManager" class="item col-2">租期{{ form.tenancy || '' }}</view> -->
<view class="item col-2" v-if="isManager">
佣金{{ form.commission || '' }}
@@ -108,6 +108,8 @@
<!-- <view class="item col-2" v-if="isManager">
是否可溢价{{ form.premium || '' }}
</view> -->
<view v-if="form.salePrice" class="item col-2">卖价{{ form.salePrice || '' }}/m²</view>
<view v-if="form.totalPrice" class="item col-2">总价{{ form.totalPrice || '' }}万元</view>
</view>
</view>
@@ -135,16 +137,17 @@
<template v-if="isManager">
<u-gap></u-gap>
<view class="house-card">
<view class="title">
管理员备注
<view class="house-card" style="background-color:azure;">
<view class="title" style="display: flex; flex-direction: row; justify-content: space-between; width: 100%;">
<view class="title">管理员备注</view>
<view><button size="mini" type="primary" @click="$push('sub_pages/house/record?houseId=' + form.houseId)">跟进记录</button></view>
</view>
<view class="about">
<mp-html :content="form.comments" />
</view>
</view>
</template>
<!-- 房源位置 -->
<u-gap></u-gap>
<view class="house-card">
@@ -168,7 +171,8 @@
<text class="desc-text">{{ `粉丝:${item.id}` }}</text>
</view> -->
<view slot="right-icon" class="follow-btn" @click.stop="onFollow">
<text style="color: #666666;">{{ form.gradeName }}</text>
<text style="color: #666666;">******</text>
<!-- <text style="color: #666666;">{{ mobile || form.userPhone }}</text> -->
</view>
</u-cell>
</view>
@@ -183,16 +187,17 @@
<text v-if="form.liked">已收藏</text>
<text v-else>收藏</text>
</view>
<view class="item" @click="onShare">
<!-- <view class="item" @click="onShare">
<u-icon name="share" size="28" color="#666666"></u-icon>
<text>分享</text>
</view>
<view class="item">
</view> -->
<!-- <view class="item">
<u-button icon="map" type="error" text="预约看房" disabled
@click="$push('sub_pages/checkout/checkout?id=' + form.houseId)"></u-button>
</view>
</view> -->
<view class="item">
<u-button icon="phone" type="primary" text="电话咨询" disabled @click="onCall()"></u-button>
<u-button icon="phone" type="primary" text="电话咨询"></u-button>
<!-- <u-button icon="phone" type="primary" text="电话咨询" @click="makePhoneCall()"></u-button> -->
</view>
</view>
@@ -239,7 +244,7 @@
reset: true
},
{
name: '必看好房',
name: '特价好房',
reset: false
}
];
@@ -386,7 +391,9 @@
posterApiParam: {},
// 海报预览相关
showPosterPreview: false,
currentPosterUrl: ''
currentPosterUrl: '',
dealerId: 0,
mobile: ''
};
},
@@ -410,6 +417,12 @@
}).catch((err) => {
console.log(err);
})
if(options.dealerId){
this.dealerId = options.dealerId
}
if(options.mobile){
this.mobile = options.phone
}
},
@@ -423,7 +436,8 @@
},
onShareAppMessage() {
return {
title: this.form.houseTitle
title: this.form.houseTitle,
path: `/sub_pages/house/detail?houseId=${this.form.houseId}&dealerId=${uni.setStorageSync('userId')}&mobile=${uni.getStorageInfoSync('Phone')}`
}
},
onShareTimeline() {
@@ -971,6 +985,10 @@
margin: auto;
padding: 20rpx;
z-index: 100;
.title2 {
width: 100% !important;
}
.title {
font-size: 36rpx;

View File

@@ -15,9 +15,9 @@
<view class="btn">
<u-button text="下架" plain size="small" @click="onStatus(10)"></u-button>
</view>
<view class="btn">
<!-- <view class="btn">
<u-button text="删除" plain size="small" @click="onDel()"></u-button>
</view>
</view> -->
<view class="btn">
<u-button text="编辑" plain size="small" @click="onEdit()"></u-button>
</view>

View File

@@ -0,0 +1,17 @@
<template>
<view class="record-list">
<view class="item">
王子
</view>
</view>
</template>
<script>
</script>
<style>
.record-list{
width: 96%;
margin: 20px auto;
}
</style>