diff --git a/common/utils/searchData.js b/common/utils/searchData.js
index 6eaa167..5af177d 100644
--- a/common/utils/searchData.js
+++ b/common/utils/searchData.js
@@ -7,18 +7,19 @@
*/
// 以下演示数据中,我故意把value设置成跟name一样,只是为了方便演示,使示例更加易懂,实际使用时候value应该是一个标识,给后台识别所用的.
// 数据较长,请仔细查看。
-export default [{
- "name": '小区',
- "type": 'hierarchy',
- "submenu": [
- {
- "name": "不限",
- "value": ""
- },
- ]
-},
+export default [
+// {
+// "name": '小区',
+// "type": 'hierarchy',
+// "submenu": [
+// {
+// "name": "不限",
+// "value": ""
+// },
+// ]
+// },
{
- "name": '街道',
+ "name": '商圈',
"type": 'hierarchy',
"submenu": [
{
@@ -27,24 +28,24 @@ export default [{
},
]
},
- {
- "name": '方式',
- "type": 'hierarchy',
- "submenu": [
- {
- "name": "不限",
- "value": ""
- },
- {
- "name": "整租",
- "value": "0"
- },
- {
- "name": "合租",
- "value": "1"
- },
- ]
- },
+ // {
+ // "name": '方式',
+ // "type": 'hierarchy',
+ // "submenu": [
+ // {
+ // "name": "不限",
+ // "value": ""
+ // },
+ // {
+ // "name": "整租",
+ // "value": "0"
+ // },
+ // {
+ // "name": "合租",
+ // "value": "1"
+ // },
+ // ]
+ // },
{
"name": '租金',
"type": 'hierarchy',
@@ -55,27 +56,27 @@ export default [{
},
{
"name": "<1000元",
- "value": "1000"
+ "value": "0-1000"
},
{
"name": "1000-1500元",
- "value": "1500"
+ "value": "1000-1500"
},
{
"name": "1500-2000元",
- "value": "2000"
+ "value": "1500-2000"
},
{
"name": "2000-3000元",
- "value": "3000"
+ "value": "2000-3000"
},
{
"name": "3000-4500元",
- "value": "4500"
+ "value": "3000-4500"
},
{
- "name": "<6000元",
- "value": "6000"
+ "name": ">4500元",
+ "value": "4500"
}
]
},
@@ -83,7 +84,8 @@ export default [{
"name": '筛选',
"type": 'radio',
"submenu": [{
- "name": "居室",
+ "name": "房屋户型",
+ "type": 'radio',
"submenu": [{
"name": "一室",
"value": "一室"
@@ -103,7 +105,8 @@ export default [{
]
},
{
- "name": "装修",
+ "name": "装修情况",
+ "type": 'radio',
"submenu": [
{
"name": "简装",
@@ -114,51 +117,14 @@ export default [{
"value": "中装",
},
{
- "name": "精装修",
- "value": "精装修"
+ "name": "精修",
+ "value": "精修"
},
{
"name": "豪装",
"value": "豪装"
}
]
- },
- {
- "name": "房屋亮点",
- "submenu": [
- {
- "name": "独卫",
- "value": "独卫"
- },
- {
- "name": "独立阳台",
- "value": "独立阳台"
- },
- {
- "name": "精装修",
- "value": "精装修"
- },
- {
- "name": "智能锁",
- "value": "智能锁"
- },
- {
- "name": "可短租",
- "value": "可短租"
- },
- {
- "name": "首次出租",
- "value": "首次出租"
- },
- {
- "name": "免物业费",
- "value": "免物业费"
- },
- {
- "name": "民用水电",
- "value": "民用水电"
- },
- ]
}
]
}
diff --git a/common/utils/wxGetAddress.js b/common/utils/wxGetAddress.js
index 044f471..693f716 100644
--- a/common/utils/wxGetAddress.js
+++ b/common/utils/wxGetAddress.js
@@ -1,21 +1,21 @@
-// import amapFile from '../../libs/amap-wx.130.js'
+import amapFile from '../../libs/amap-wx.130.js'
-// const myAmapFun = new amapFile.AMapWX({
-// // 申请的高德key值
-// key: '4ef3b3b42d8bb823529908dc93414127'
-// }); //创建一个实例化对象
+const myAmapFun = new amapFile.AMapWX({
+ // 申请的高德key值
+ key: '4ef3b3b42d8bb823529908dc93414127'
+}); //创建一个实例化对象
-// export default function wxGetAddress({longitude,latitude}) {
-// //根据传递进来经纬度进行反解析,调用的是高德给的方法
-// return new Promise((resolve, reject) => {
-// myAmapFun.getRegeo({
-// location: `${longitude},${latitude}`,
-// success: (res) => {
-// resolve(res[0])
-// },
-// fail: (err) => {
-// resolve(null)
-// }
-// })
-// })
-// }
\ No newline at end of file
+export default function wxGetAddress({longitude,latitude}) {
+ //根据传递进来经纬度进行反解析,调用的是高德给的方法
+ return new Promise((resolve, reject) => {
+ myAmapFun.getRegeo({
+ location: `${longitude},${latitude}`,
+ success: (res) => {
+ resolve(res[0])
+ },
+ fail: (err) => {
+ resolve(null)
+ }
+ })
+ })
+}
\ No newline at end of file
diff --git a/components/Carousel/Carousel.vue b/components/Carousel/Carousel.vue
index 0c7d78b..2e5e728 100644
--- a/components/Carousel/Carousel.vue
+++ b/components/Carousel/Carousel.vue
@@ -18,7 +18,7 @@
-
+
@@ -85,9 +85,9 @@
type: String,
default: ''
},
- vrList:{
- type: Array,
- default: []
+ assetsId: {
+ type: String,
+ default: ''
}
},
data() {
@@ -151,9 +151,7 @@
beforeUnmount() {
this.stop()
},
- onLoad() {
- this.fillVrList();
- },
+ onLoad() {},
watch: {
normalizedList(list) {
if (this.current >= list.length) this.current = 0
@@ -231,18 +229,14 @@
enterVR() {
this.stop()
this.stopVideo()
- if(this.vrList.length > 0) {
- console.log(this.vrViewPage)
- // this.$u.route({
- // url: this.vrViewPage,
- // params: {
- // title:"vr看资产",
- // vrList: this.vrList
- // }
- // })
- }
+ this.$u.route({
+ url: this.vrViewPage,
+ params: {
+ title: "vr看资产",
+ id: this.assetsId
+ }
+ })
},
-
/* 分区跳转 */
jumpToType(item) {
this.stop()
@@ -348,15 +342,15 @@
}
.vr-icon {
- position: absolute;
- top: 50%;
- left: 12%;
- transform: translate(-50%, -50%);
- width: 100rpx !important;
- height: 100rpx !important;
- background: rgba(80, 80,80,0.45);
- border-radius: 50%;
- padding: 12rpx;
+ position: absolute;
+ top: 50%;
+ left: 12%;
+ transform: translate(-50%, -50%);
+ width: 100rpx !important;
+ height: 100rpx !important;
+ background: rgba(80, 80, 80, 0.45);
+ border-radius: 50%;
+ padding: 12rpx;
}
.type-bar {
diff --git a/components/navbar/customNavbar.vue b/components/navbar/customNavbar.vue
index d0771d1..81b5a66 100644
--- a/components/navbar/customNavbar.vue
+++ b/components/navbar/customNavbar.vue
@@ -104,7 +104,7 @@ export default {
},
showHome: {
type: Boolean,
- default: true // 回首页按钮默认不显示
+ default: true // 回首页按钮默认显示
}
},
data() {
@@ -165,7 +165,7 @@ export default {
goHome(){
uni.switchTab({
url:'/pages/index/index'
- })
+ })
},
onExtraIconClick(index) {
// 额外图标点击事件,可通过事件冒泡传递给父组件
diff --git a/components/zy/filterDropdown.vue b/components/zy/filterDropdown.vue
index f4a0c78..caa9b6c 100644
--- a/components/zy/filterDropdown.vue
+++ b/components/zy/filterDropdown.vue
@@ -1,857 +1,891 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+ &.selected {
+ &:before {
+ content: "\e607";
+ }
+ }
+ }
+
\ No newline at end of file
diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json
index 4c2f125..48d9196 100644
--- a/node_modules/.package-lock.json
+++ b/node_modules/.package-lock.json
@@ -806,11 +806,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/three": {
- "version": "0.182.0",
- "resolved": "https://registry.npmmirror.com/three/-/three-0.182.0.tgz",
- "integrity": "sha512-GbHabT+Irv+ihI1/f5kIIsZ+Ef9Sl5A1Y7imvS5RQjWgtTPfPnZ43JmlYI7NtCRDK9zir20lQpfg8/9Yd02OvQ=="
- },
"node_modules/urijs": {
"version": "1.19.11",
"resolved": "https://registry.npmmirror.com/urijs/-/urijs-1.19.11.tgz",
diff --git a/package-lock.json b/package-lock.json
index c128a00..938bc4f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -18,7 +18,6 @@
"date-fns": "3.6.0",
"jsencrypt": "^3.5.4",
"qrcode": "^1.5.4",
- "three": "^0.182.0",
"vue": "2.6.14"
},
"devDependencies": {
@@ -1162,11 +1161,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/three": {
- "version": "0.182.0",
- "resolved": "https://registry.npmmirror.com/three/-/three-0.182.0.tgz",
- "integrity": "sha512-GbHabT+Irv+ihI1/f5kIIsZ+Ef9Sl5A1Y7imvS5RQjWgtTPfPnZ43JmlYI7NtCRDK9zir20lQpfg8/9Yd02OvQ=="
- },
"node_modules/urijs": {
"version": "1.19.11",
"resolved": "https://registry.npmmirror.com/urijs/-/urijs-1.19.11.tgz",
diff --git a/package.json b/package.json
index 28fb3f6..126f724 100644
--- a/package.json
+++ b/package.json
@@ -19,7 +19,6 @@
"date-fns": "3.6.0",
"jsencrypt": "^3.5.4",
"qrcode": "^1.5.4",
- "three": "^0.182.0",
"vue": "2.6.14"
},
"devDependencies": {
diff --git a/pages-assets/assets/assetsDetail.vue b/pages-assets/assets/assetsDetail.vue
index 5ad0c5a..7ce67e6 100644
--- a/pages-assets/assets/assetsDetail.vue
+++ b/pages-assets/assets/assetsDetail.vue
@@ -1,49 +1,46 @@
-
+
-
+
- {{asset.rent || '未知'}}/月
-
-
+
+
+
+
-
+
@@ -113,29 +125,6 @@
CarouselVue
},
data() {
- const staticAsset = {
- name: '',
- community: '',
- code: '',
- category: '',
- area: 0,
- value: 0,
- rent: 0,
- owner: '',
- address: '',
- lat: 0,
- lng: 0,
- images: [],
- vrImage: '',
- vr: '',
- videos: [],
- plans: [],
- adImage: '',
- remark: '',
- isFavorite: false,
- status: 0,
- contact: ''
- };
return {
// 控制预约弹窗显示
showReserve: false,
@@ -146,32 +135,31 @@
assetId: null,
// 直接使用静态数据
asset: null,
- managerPhone:null,
+ managerPhone: null,
// 根据静态数据初始化标记
- vrList:[],
- markers: [{
- id: 1,
- latitude: staticAsset.lat,
- longitude: staticAsset.lng,
- title: staticAsset.name,
- }],
+ vrList: [],
+ markers: [],
background: {
backgroundColor: '#ffffff',
// 渐变色
// backgroundImage: 'linear-gradient(-90deg, #F9DED9 0%, #F8DFC0 99%);'
},
-
+
// 导航栏样式控制
navbarStyle: {
isTransparent: true,
bgColor: '#ffffff',
textColor: '#000000',
- opacity: 0,
- extraIcons: ['ellipsis', 'eye'] // 右侧额外图标
+ opacity: 1,
+ extraIcons: ['ellipsis'] // 右侧额外图标
},
-
+
// 滚动距离
- scrollTop: 0
+ scrollTop: 0,
+ tagColors: [{
+ color: '#ffffff',
+ bg: '#FF2F31'
+ }]
};
},
onLoad(options) {
@@ -182,8 +170,8 @@
},
mounted() {
const navbar = this.$refs.navbar;
- const navHeight = navbar.navContentHeight; // 直接拿子组件 data
- this.navTotalHeight = navHeight; // 加上额外间距
+ const navHeight = navbar.navContentHeight; // 直接拿子组件 data
+ this.navTotalHeight = navHeight; // 加上额外间距
},
onPageScroll(e) {
this.scrollTop = e.scrollTop;
@@ -191,64 +179,56 @@
this.updateNavbarStyle(e.scrollTop);
},
computed: {
- staticHost() {
- return this.$config.staticUrl
+ staticHost() {
+ return this.$config.staticUrl
},
- swiperList(){
+ swiperList() {
let list = [];
- if(this.asset && this.asset.vrImgs && this.asset.vrImgs.length > 0) {
- this.asset.vrImgs.forEach(img=> {
+ if (this.asset && this.asset.vrImgs && this.asset.vrImgs.length > 0) {
+ this.asset.vrImgs.forEach(img => {
list.push({
src: this.$config.staticUrl + img,
- mediaType:'vr',
- bizType:'vr'
+ mediaType: 'vr',
+ bizType: 'vr'
})
})
}
- // if(this.asset && this.asset.detailImgs && this.asset.detailImgs.length > 0) {
- // this.asset.detailImgs.forEach(img=> {
- // list.push({
- // src: this.$config.staticUrl + img,
- // mediaType:'vr',
- // bizType:'vr'
- // })
- // this.vrList.push(this.$config.staticUrl + img)
- // })
- // }
-
- if(this.asset && this.asset.detailImgs && this.asset.detailImgs.length > 0) {
- this.asset.detailImgs.forEach(img=> {
+ if (this.asset && this.asset.detailImgs && this.asset.detailImgs.length > 0) {
+ this.asset.detailImgs.forEach(img => {
list.push({
src: this.$config.staticUrl + img,
- mediaType:'image',
- bizType:'详细图片'
+ mediaType: 'image',
+ bizType: '详细图片'
})
})
}
- return list;
+ return list;
}
- },
+ },
methods: {
// 根据滚动距离更新导航栏样式
updateNavbarStyle(scrollTop) {
// 定义滚动阈值,超过此值导航栏变为不透明
const threshold = 200;
-
+
// 计算透明度
let opacity = scrollTop / threshold;
opacity = Math.min(opacity, 1);
opacity = Math.max(opacity, 0);
-
- // 更新导航栏样式
- this.navbarStyle.opacity = opacity;
- if (opacity > 0.5) {
- this.navbarStyle.isTransparent = false;
- } else {
- this.navbarStyle.isTransparent = true;
- }
+ // 更新导航栏样式
+ // this.navbarStyle.opacity = opacity;
+
+ // if (opacity > 0.5) {
+ // this.navbarStyle.isTransparent = false;
+ // } else {
+ // this.navbarStyle.isTransparent = true;
+ // }
+ },
+ getRandomColor() {
+ const index = Math.floor(Math.random() * this.tagColors.length)
+ return this.tagColors[index]
},
-
// 模拟接口请求
loadAssetDetail() {
let url = `/assets/detail?id=${this.assetId}`
@@ -257,33 +237,34 @@
console.log(data)
this.asset = {
name: data.assetsName,
- community: data.community,
+ bizZone: data.bizZone,
code: data.assetsNo,
- category: data.assetsType,
+ type: data.assetsType,
area: data.footPrint,
- value: data.assetsValue,
rent: data.rentFee,
- owner: data.owner,
address: data.assetsAddress,
+ hasLift: data.hasLift,
lat: data.latitude,
lng: data.longitude,
+ unitNo: data.unitNo,
roomNo: data.roomNo,
floorNo: data.floorNo,
- description: data.assetsDesc,
+ description: data.assetsDesc,
detailImgs: data.detailImgs,
+ layout: data.layout, //户型
+ orientation: data.orientation, //朝向
vrImgs: data.vrImgs,
remark: data.assetsDesc,
- status: data.assetsStatus
+ status: data.assetsStatus,
+ features: ['家电齐全']
};
this.managerPhone = data.managerPhone
- this.markers = [
- {
- id: 1,
- latitude: this.asset.lat,
- longitude: this.asset.lng,
- title: this.asset.name,
- },
- ];
+ this.markers = [{
+ id: 1,
+ latitude: this.asset.lat,
+ longitude: this.asset.lng,
+ title: this.asset.name,
+ }, ];
}).catch(err => {
console.log("获取资产信息失败:", err)
})
@@ -299,13 +280,13 @@
});
},
validatePhoneNumber(phone) {
- const regex = /^1[3-9]\d{9}$/;
- return regex.test(phone);
+ const regex = /^1[3-9]\d{9}$/;
+ return regex.test(phone);
},
submitReserve() {
console.log('提交预约看房申请')
// 身份证校验
- if (this.validatePhoneNumber(this.reservePhone)) {
+ if (!this.validatePhoneNumber(this.reservePhone)) {
uni.showToast({
title: '手机号格式不正确',
icon: 'none'
@@ -313,18 +294,18 @@
return;
}
let url = '/reservate/submit'
- this.$u.post(url,{
+ this.$u.post(url, {
reserveName: this.reserveName,
assetsNo: this.assetId,
assetsName: this.asset.name,
phone: this.reservePhone
- },{
+ }, {
WT: this.$getToken()
- }).then(res=>{
- if(res.flag) {
+ }).then(res => {
+ if (res.flag) {
this.$mytip.toast('提交预约成功成功')
- }else{
-
+ } else {
+
this.$mytip.toast('预约提交失败,请重试')
}
})
@@ -332,17 +313,17 @@
},
recordView(assetId) {
let token = this.$getToken()
- if(token){
+ if (token) {
let url = "/potential/add";
- this.$u.get(url, {
- assetId: this.assetId
- }, {
- 'WT': this.$getToken()
- }).then(obj => {
+ this.$u.get(url, {
+ assetId: this.assetId
+ }, {
+ 'WT': this.$getToken()
+ }).then(obj => {
- }).catch(err => {
- console.log("记录客户浏览记录失败", err)
- })
+ }).catch(err => {
+ console.log("记录客户浏览记录失败", err)
+ })
}
},
},
@@ -353,7 +334,7 @@
.asset-detail {
background-color: #f7f8fa;
min-height: 100vh;
- padding-bottom: 120rpx;
+ padding-bottom: 400rpx;
padding-top: 0;
/* 不再需要固定的顶部内边距,由动态计算的 navTotalHeight 控制 */
}
@@ -383,6 +364,48 @@
padding-top: 50rpx;
}
+ .stress-info {
+ display: flex;
+ height: 150rpx;
+ background-color: #fff;
+ }
+
+ .stress-item {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ justify-content: center; // 垂直居中
+ align-items: center; // 水平居中
+ position: relative;
+ }
+
+ /* 分隔线:不是最后一个才显示 */
+ .stress-item:not(:last-child)::after {
+ content: '';
+ position: absolute;
+ right: 0;
+ top: 25%;
+ width: 1px;
+ height: 50%;
+ background-color: #eee;
+ }
+
+ /* 上面的 value */
+ .stress-value {
+ font-size: 40rpx;
+ font-weight: 600;
+ color: #FF2F31;
+ line-height: 1.2;
+ }
+
+ /* 下面的 label */
+ .stress-label {
+ margin-top: 8rpx;
+ font-size: 24rpx;
+ color: #999;
+ }
+
+
.info-header {
display: flex;
align-items: center;
@@ -405,13 +428,26 @@
flex: 1;
}
- .rent-price {
- font-size: 36rpx;
- color: #FF2F31;
- margin: 15rpx 0;
+ .feature-list {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 12rpx;
}
- .community-info,
+ .feature-tag {
+ padding: 6rpx 16rpx;
+ font-size: 28rpx;
+ border-radius: 10rpx;
+ line-height: 1.4;
+ }
+
+ .featureArea{
+ margin-top: 30rpx;
+ margin-bottom: 10rpx;
+ display: flex;
+ align-items: center;
+ }
+
.address-info {
font-size: 26rpx;
color: #666;
@@ -429,9 +465,13 @@
/* 地图容器 */
.map-container {
width: 100%;
+ height: 168px;
+ padding: 20rpx;
overflow: hidden;
display: flex;
justify-content: center;
+ background-color: white;
+ border-radius: 20rpx;
}
/* 资产信息表格 */
@@ -442,7 +482,7 @@
}
.table-title {
- font-size: 30rpx;
+ font-size: 33rpx;
font-weight: bold;
color: #333;
margin-bottom: 20rpx;
@@ -473,12 +513,12 @@
}
.item-label {
- font-size: 24rpx;
+ font-size: 26rpx;
color: #999;
}
.item-value {
- font-size: 28rpx;
+ font-size: 30rpx;
color: #333;
font-weight: 500;
}
diff --git a/pages-assets/discharge/leaseCancel.vue b/pages-assets/discharge/leaseCancel.vue
index 1317a52..8817edd 100644
--- a/pages-assets/discharge/leaseCancel.vue
+++ b/pages-assets/discharge/leaseCancel.vue
@@ -8,9 +8,9 @@
关联合同
-
+
- {{ selectedContract ? selectedContract.name : '请选择合同' }}
+ {{ selectedContract ? selectedContract.contractName : '请选择合同' }}
@@ -20,7 +20,7 @@
关联资产
{{ selectedAssetsList.length
- ? selectedAssetsList.map(a => a.name).join(',')
+ ? selectedAssetsList.map(a => a.assetsName).join(',')
: '请选择资产' }}
({{ selectedAssetsList.length }})
@@ -54,10 +54,10 @@
-
+
@@ -99,11 +99,14 @@
onContractChange(e) {
const index = e.detail.value;
this.selectedContract = this.contracts[index];
- this.assetsList = this.contracts[index].assets || [];
+ this.assetsList = this.contracts[index].assetsInfos || [];
// 清空之前选择
this.selectedAssetsKeys = [];
this.selectedAssetsList = [];
},
+ onAssetsChange(e) {
+ this.selectedAssetsKeys = e.detail.value
+ },
openAssetsPopup() {
if (!this.selectedContract) {
uni.showToast({
@@ -115,6 +118,7 @@
this.showAssetsPopup = true;
},
confirmAssets() {
+ console.log(this.selectedAssetsKeys)
this.selectedAssetsList = this.assetsList.filter(a =>
this.selectedAssetsKeys.includes(a.assetsNo)
);
@@ -139,6 +143,14 @@
});
},
submitForm() {
+ let userInfo = uni.getStorageSync('userInfo');
+ if(!userInfo.cusNo) {
+ uni.showToast({
+ title: '您还未实名',
+ icon: 'none'
+ });
+ return;
+ }
if (
!this.selectedContract ||
!this.cancelDate ||
@@ -151,7 +163,7 @@
});
return;
}
-
+
const data = {
contractNo: this.selectedContract.contractNo,
cancelDate: this.cancelDate,
@@ -174,7 +186,7 @@
})
}
} else {
- this.$mytip.toast('提交退租申请失败')
+ this.$mytip.toast('提交退租申请失败:' + res.message )
}
})
.catch(err => {
@@ -259,8 +271,8 @@
.popup-btn {
margin: 20rpx;
- height: 60rpx;
- background: #007aff;
+ height: 80rpx;
+ background: #FB392A;
color: #fff;
border-radius: 8rpx;
font-size: 28rpx;
diff --git a/pages-assets/discharge/leaseCancelList.vue b/pages-assets/discharge/leaseCancelList.vue
index d49003e..d3bf5ca 100644
--- a/pages-assets/discharge/leaseCancelList.vue
+++ b/pages-assets/discharge/leaseCancelList.vue
@@ -12,8 +12,8 @@
@@ -22,13 +22,16 @@
申请时间:
- {{item.applyTime}}
+ {{item.applyDate || ''}}
退租资产:
- {{item.dischargeItem}}
+ {{item.dischargeItem || ''}}
+
+
+ 审批意见:
+ {{item.remark || ''}}
-
@@ -40,9 +43,9 @@
-
+
@@ -60,12 +63,15 @@
methods: {
statusText(status) {
switch (status) {
- case 'pending':
- return '待确认';
- case 'done':
- return '已完成';
+ case '申请中':
+ case '已批准':
+ return 'pending';
+ case '退租完成':
+ return 'done';
+ case '已驳回':
+ return 'reject';
default:
- return '未知';
+ return 'unknown';
}
},
formatDate(dateStr) {
@@ -92,7 +98,6 @@
WT: this.$getToken()
}).then(res => {
const rows = res.data.result || [];
- console.log(rows)
if (this.pageNo === 1) this.flowList = [];
this.flowList = this.flowList.concat(rows);
if (rows.length < this.pageSize) {
@@ -188,14 +193,18 @@
border-radius: 4rpx;
&.done {
- background: #FCE5E0;
- color: #ED7748;
+ background: #FCE5E0; /* 保持原有浅橙色背景 */
+ color: #ED7748; /* 保持原有橙色文字 */
}
&.pending {
background: #F2F3F7;
color: #86868C;
}
+ &.reject {
+ background: #FFE4E1; /* 浅红色背景 */
+ color: #DC143C; /* 深红色文字 */
+ }
}
.card-content {
diff --git a/pages-assets/fallback/fallback.vue b/pages-assets/fallback/fallback.vue
index 366c733..84c8847 100644
--- a/pages-assets/fallback/fallback.vue
+++ b/pages-assets/fallback/fallback.vue
@@ -28,10 +28,31 @@
+
+
+
@@ -52,7 +73,12 @@
loadStatus: 'loadmore',
isRefreshing: false,
// 滚动距离
- scrollTop: 0
+ scrollTop: 0,
+ showAssetsPopup: false,
+ assetSearch: '',
+ assetsList: [],
+ selectedAssetKey: '', // 单个 assetsNo
+ selectedAsset: null // 单个资产对象
}
},
onPageScroll(e) {
@@ -73,6 +99,16 @@
url: `/pages-assets/fallback/fallbackDetail?id=${item.id}`,
});
},
+ onAssetChange(e) {
+ const val = e.detail.value;
+ // 只取最后一个
+ this.selectedAssetKey = val.length ? val[val.length - 1] : '';
+ },
+ confirmAssets() {
+ this.selectedAsset =
+ this.assetsList.find(a => a.assetsNo === this.selectedAssetKey) || null;
+ this.showAssetsPopup = false;
+ },
fetchFallback() {
if (this.loadStatus !== 'loadmore') return;
this.loadStatus = 'loading';
@@ -109,6 +145,15 @@
},
addFallback() {
const content = this.newMessageContent.trim();
+ let userInfo = uni.getStorageSync('userInfo');
+ if(!userInfo.cusNo) {
+ uni.showToast({
+ title: '您还未实名',
+ icon: 'none'
+ });
+ this.showAddPopup = false;
+ return;
+ }
if (!content) {
uni.showToast({
title: '请输入留言内容',
@@ -123,13 +168,21 @@
WT: token
})
.then(res => {
- uni.showToast({
- title: '留言成功',
- icon: 'success'
- });
+ if(res.flag){
+ uni.showToast({
+ title: '留言成功',
+ icon: 'success'
+ });
+ }else{
+ uni.showToast({
+ title: res.message,
+ icon: 'none'
+ });
+ }
this.showAddPopup = false;
this.newMessageContent = '';
this.refresh();
+
})
.catch(err => {
console.error('新增留言失败:', err);
@@ -245,7 +298,29 @@
font-size: 24rpx;
color: #ADADB1;
}
+/* 资产选择入口 */
+.asset-select {
+ margin-top: 20rpx;
+ padding: 20rpx 24rpx;
+ background: #ffffff;
+ border-radius: 8rpx;
+ font-size: 26rpx;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ border: 1rpx solid #eee;
+}
+/* 未选择时的占位文字 */
+.asset-select .placeholder {
+ color: #999;
+}
+
+/* 已选择资产文字 */
+.asset-select .asset-text {
+ color: #333;
+ font-weight: 500;
+}
.add-btn-container {
position: fixed;
bottom: 0;
diff --git a/pages-biz/bill/payHistory.vue b/pages-biz/bill/payHistory.vue
index 1db0285..280aa92 100644
--- a/pages-biz/bill/payHistory.vue
+++ b/pages-biz/bill/payHistory.vue
@@ -30,7 +30,7 @@
+ :class="['tab-item', activeTab === tab.value ? 'active' : '']" @click="onTabClick(tab.value)">
{{ tab.label }}
@@ -48,8 +48,8 @@
-
- {{ item.inOutType === '收' ? '+' : '-' }}{{ item.itemAmount.toFixed(2) }}
+
+ {{ item.inOutType === '支' ? '+' : '-' }}{{ formatMoney(item.itemAmount) }}
@@ -71,14 +71,14 @@
pageSize:10,
flowList: [],
loadStatus: 'loadmore',
- activeTab: 'in', // 默认显示“收”
+ activeTab: '收', // 默认显示“收”
tabs: [{
label: '收入',
- value: 'in'
+ value: '支'
},
{
label: '支出',
- value: 'out'
+ value: '收'
},
],
// 年份筛选相关
@@ -109,6 +109,10 @@
computed: {
},
methods: {
+ onTabClick(val) {
+ this.activeTab = val
+ this.resetAndLoad()
+ },
fetchPayRecord() {
if (this.loadStatus !== 'loadmore') return;
this.loadStatus = 'loading';
@@ -122,7 +126,6 @@
WT:this.$getToken()
}).then(res => {
const rows = res.data.result || [];
- console.log(rows)
if (this.pageNo === 1) this.flowList = [];
this.flowList = this.flowList.concat(rows);
if (rows.length < this.pageSize) {
@@ -146,10 +149,14 @@
this.showYearPicker = false;
this.resetAndLoad();
},
+ formatMoney(val) {
+ if (!val && val !== 0) return '—';
+ return '¥' + Number(val).toFixed(2);
+ },
resetAndLoad(){
// 重新加载数据
+ this.loadStatus = 'loadmore';
this.pageNo = 1;
- this.flowList = [];
this.fetchPayRecord();
},
loadMore() {
diff --git a/pages-biz/contract/contract.vue b/pages-biz/contract/contract.vue
index c81e74e..3def1d3 100644
--- a/pages-biz/contract/contract.vue
+++ b/pages-biz/contract/contract.vue
@@ -134,8 +134,8 @@ export default {
this.$u.post('/contract/queryPage', {
pageNo: this.pageNo,
pageSize: this.pageSize,
- startTime: this.startDate,
- endTime: this.endDate,
+ startDate: this.startDate,
+ endDate: this.endDate,
signStatus: this.statusFilter
}, {
WT: this.$getToken()
diff --git a/pages-biz/location/location.vue b/pages-biz/location/location.vue
index 605f484..740ee08 100644
--- a/pages-biz/location/location.vue
+++ b/pages-biz/location/location.vue
@@ -13,8 +13,8 @@
当前定位
-
- {{locationCity}}
+
+ {{locationCity || '宜昌市'}}
切换城市
@@ -28,7 +28,7 @@
-
-
\ No newline at end of file
+export default {
+data() {
+ return {
+ id: '' ,// WebView URL
+ src: this.$config.staticUrl + '/public/vr/vr.html?id='
+ }
+ },
+ computed: {
+ },
+ onLoad(options) {
+ this.id = options.id
+ }
+}
+
\ No newline at end of file
diff --git a/pages-biz/wae/wae.vue b/pages-biz/wae/wae.vue
index 7cbe532..c310e23 100644
--- a/pages-biz/wae/wae.vue
+++ b/pages-biz/wae/wae.vue
@@ -76,8 +76,8 @@
let url = '/bill/pageQueryWaeBill'
this.$u.post(url, {
pageNo: this.pageNo,
- pageSize: this.pageSize
-
+ pageSize: this.pageSize,
+ billStatus: '待缴费'
}, {
WT: token
}).then(
@@ -129,7 +129,7 @@
this.selectedBills = this.selectedBills.filter(b => b.id !== item.id);
}
let sumFee = 0;
- this.selectedBills.forEach(b => sumFee += b.amount);
+ this.selectedBills.forEach(b => sumFee += b.billAmount);
this.sumAmount = sumFee;
},
updateSelected() {
diff --git a/pages/center/center.vue b/pages/center/center.vue
index 921243f..f76bb13 100644
--- a/pages/center/center.vue
+++ b/pages/center/center.vue
@@ -173,12 +173,33 @@
this.loadUserInfo()
this.countHandlingReserve()
this.countUnHandleContract()
-
-
+ this.countUnpayRentBills()
+ this.countUnpayWaeBills()
+ this.countUnreadMsg()
},
methods: {
loadUserInfo(){
+ let userInfo = uni.getStorageSync('userInfo');
+ if(!userInfo) {
+ return
+ }
+ let url = `/login/userInfo`;
+ this.$u.get(url, {}, {
+ 'WT': this.$getToken(),
+ 'USERTYPE': userInfo.userType
+ }).then(obj => {
+ if(obj.flag){
+ uni.setStorageSync('userInfo', {
+ userType: obj.data.userType,
+ oaAuth: obj.data.oaAuth,
+ cusNo: obj.data.cusNo,
+ userName: obj.data.userName,
+ openId: obj.data.openId,
+ subscribe: obj.data.subscribeMsg
+ })
+ }
+ });
this.user = uni.getStorageSync('userInfo');
},
logout() {
@@ -234,7 +255,7 @@
})
},
countUnreadMsg(){
- this.$u.get(`/messsage/countUnread`, {},{
+ this.$u.get(`/message/countUnread`, {},{
WT: this.$getToken()
}).then(res => {
if(res.flag){
diff --git a/pages/index/index.vue b/pages/index/index.vue
index 154a578..714989b 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -110,17 +110,13 @@
},
data() {
return {
- init: true,
- cusNo: null,
- openId: null,
- loginType: null,
- authCode: '', // 身份证号 / 社会信用代码
keyword: '',
pageNo: 1,
pageSize: 20,
scrollTop: 0,
activeIndex: 0, // 当前选中的索引
noticeList: [],
+ filterActiveConditions:[],
defaultImgUrl: '/public/static/index/assets.jpg',
navList: [{
name: "住房",
@@ -171,10 +167,6 @@
label: '为您推荐',
type: 'recommend'
},
- {
- label: '附近',
- type: 'nearby'
- },
{
label: '上新',
type: 'new'
@@ -183,14 +175,14 @@
// 筛选标签状态
activeFilterTabs: [0], // 支持多选
filterTabs: [{
- label: '两室两厅',
- room: 2,
- hall: 2
+ label: '两室',
+ filterType: '户型',
+ value: '两室'
},
{
- label: '一室一厅',
- room: 1,
- hall: 1
+ label: '一室',
+ filterType: '户型',
+ value: '一室'
}
],
flowList: [],
@@ -209,12 +201,6 @@
})
},
onShow() {
-
- let userInfo = uni.getStorageSync('userInfo');
- if (userInfo) {
- this.cusNo = userInfo.cusNo;
- this.openId = userInfo.cusNo;
- }
this.resetAndLoad()
},
onUnload() {
diff --git a/static/vr/qjt1.jpg b/static/vr/qjt1.jpg
new file mode 100644
index 0000000..5b84c07
Binary files /dev/null and b/static/vr/qjt1.jpg differ
diff --git a/static/vr/qjt2.jpg b/static/vr/qjt2.jpg
new file mode 100644
index 0000000..68fcf66
Binary files /dev/null and b/static/vr/qjt2.jpg differ