Compare commits

...

9 Commits

6 changed files with 781 additions and 600 deletions

View File

@ -1,153 +1,169 @@
<template>
<view class="container">
<div class="line"></div>
<view class="main">
<view class="table">
<view class="label">房产</view>
<view class="flexBox" @click="choseCommunity">
<input type="text" v-model="changeComm" disabled placeholder="请选择房产">
<u-icon name="arrow-right"></u-icon>
</view>
</view>
<view class="table">
<view class="label">姓名</view>
<input type="text" v-model="nameVal" placeholder="请输入姓名">
</view>
<view class="table">
<view class="label">手机</view>
<input type="text" v-model="phoneVal" placeholder="请输入手机号">
</view>
<view class="table">
<view class="label">身份</view>
<view class="container">
<div class="line"></div>
<view class="main">
<view class="table">
<view class="label">房产</view>
<view class="flexBox" @click="choseCommunity">
<input
type="text"
v-model="changeComm"
disabled
placeholder="请选择房产"
/>
<u-icon name="arrow-right"></u-icon>
</view>
</view>
<view class="table">
<view class="label">姓名</view>
<input type="text" v-model="nameVal" placeholder="请输入姓名" />
</view>
<view class="table">
<view class="label">手机</view>
<input type="text" v-model="phoneVal" placeholder="请输入手机号" />
</view>
<view class="table">
<view class="label">身份</view>
<view class="flexBox" @click="chooseIdentity">
<input type="number" v-model="selectedLabel" disabled placeholder="请选择身份">
<u-icon name="arrow-right"></u-icon>
</view>
</view>
<!-- <view class="tip">
<view class="flexBox" @click="chooseIdentity">
<input
type="number"
v-model="selectedLabel"
disabled
placeholder="请选择身份"
/>
<u-icon name="arrow-right"></u-icon>
</view>
</view>
<!-- <view class="tip">
注意业主为在物业登记在册的人员需经过物业审 核确认后即可成为该房产的业主如需帮助可与物 业或平台联系
</view> -->
</view>
<view class="btn" @click="headerSubmitClick">确定</view>
</view>
<view class="btn" @click="headerSubmitClick">确定</view>
<u-popup :show="show" @close="close" mode="bottom" customStyle="width: 500rpx;" round="20rpx">
<u-picker :show="show" :columns="columns" keyName="label" @cancel="close" @confirm="confirm"></u-picker>
</u-popup>
</view>
<u-popup
:show="show"
@close="close"
mode="bottom"
customStyle="width: 500rpx;"
round="20rpx"
>
<u-picker
:show="show"
:columns="columns"
keyName="label"
@cancel="close"
@confirm="confirm"
></u-picker>
</u-popup>
</view>
</template>
<script>
import {
request,
NavgateTo,
isPhone
} from '../../../utils';
import {
apiArr
} from '../../../api/community';
export default {
onBackPress(options) {
console.log('from:' + options.from)
},
data() {
return {
communityId: '',
roomId: '',
managementMobile: '',
show: false,
changeComm: '',
columns: [
[{
label: "业主",
value: "1"
},
{
label: "家属",
value: "2"
},
{
label: "租客",
value: "3"
},
{
label: "访客",
value: "4"
},
]
],
selectedValue: '',
selectedLabel: '',
nameVal: '',
phoneVal: '',
}
},
methods: {
close() {
this.show = false
},
chooseIdentity() {
this.show = true
console.log()
},
confirm(selected) {
console.log(selected.value[0].value)
this.selectedValue = selected.value[0].value
this.selectedLabel = selected.value[0].label
this.show = false
},
headerCloseClick() {
this.show = false;
},
import { request, NavgateTo, isPhone } from "../../../utils";
import { apiArr } from "../../../api/community";
export default {
onBackPress(options) {
console.log("from:" + options.from);
},
data() {
return {
communityId: "",
roomId: "",
managementMobile: "",
show: false,
changeComm: "",
columns: [
[
{
label: "业主",
value: "1",
},
{
label: "家属",
value: "2",
},
{
label: "租客",
value: "3",
},
{
label: "访客",
value: "4",
},
],
],
selectedValue: "",
selectedLabel: "",
nameVal: "",
phoneVal: "",
};
},
methods: {
close() {
this.show = false;
},
chooseIdentity() {
this.show = true;
console.log();
},
confirm(selected) {
console.log(selected.value[0].value);
this.selectedValue = selected.value[0].value;
this.selectedLabel = selected.value[0].label;
this.show = false;
},
headerCloseClick() {
this.show = false;
},
headerInputClick(e) {
const {
name
} = e.currentTarget.dataset;
const {
value
} = e.detail;
this[name] = value;
},
async headerSubmitClick() {
await request(apiArr.create, "POST", {
community_id: parseInt(this.communityId),
room_id: parseInt(this.roomId),
user_id: uni.getStorageSync('userId'),
name: this.nameVal, //
mobile: this.phoneVal, //
type: parseInt(this.selectedValue), //
id_type: 1
}).then(res => {
console.log(res)
uni.showToast({
title: '创建成功',
icon: "none",
duration: 2000
});
NavgateTo("/packages/community/myCommunity/index")
})
},
choseCommunity() {
NavgateTo("/packages/community/choseCommunity/index")
},
headerInputClick(e) {
const { name } = e.currentTarget.dataset;
const { value } = e.detail;
this[name] = value;
},
async headerSubmitClick() {
await request(apiArr.create, "POST", {
community_id: parseInt(this.communityId),
room_id: parseInt(this.roomId),
user_id: uni.getStorageSync("userId"),
name: this.nameVal, //
mobile: this.phoneVal, //
type: parseInt(this.selectedValue), //
id_type: 1,
}).then((res) => {
console.log(res);
uni.showToast({
title: "提交成功请等待物业审核!",
icon: "none",
duration: 1500,
});
//
setTimeout(() => {
NavgateTo("/packages/community/myCommunity/index");
}, 1500);
});
},
choseCommunity() {
NavgateTo("/packages/community/choseCommunity/index");
},
},
},
onLoad(options) {
console.log("接收到的参数:", options);
this.communityId = options.community_id
? decodeURIComponent(options.community_id)
: "";
this.roomId = options.room_id ? decodeURIComponent(options.room_id) : "";
this.changeComm = options.changeVal
? decodeURIComponent(options.changeVal)
: "";
},
onLoad(options) {
console.log("接收到的参数:", options);
this.communityId = options.community_id ? decodeURIComponent(options.community_id) : ''
this.roomId = options.room_id ? decodeURIComponent(options.room_id) : ''
this.changeComm = options.changeVal ? decodeURIComponent(options.changeVal) : ''
},
onReachBottom() {
},
}
onReachBottom() {},
};
</script>
<style>
@import url("./index.css");
@import url("./index.css");
</style>

View File

@ -1,39 +1,57 @@
<template>
<div class="container">
<div class="currentAdd">
<div class="currentAdd_left">{{city.region}}</div>
<div class="currentAdd_right" @click="changeAddress">
切换城市
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_choseAddress.png"></image>
</div>
</div>
<div class="container">
<div class="currentAdd">
<div class="currentAdd_left">{{ city.region }}</div>
<div class="currentAdd_right" @click="changeAddress">
切换城市
<image
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_choseAddress.png"
></image>
</div>
</div>
<div class="communityBox" v-if="step == 1">
<div class="search">
<input type="text" placeholder="请输入小区名称" v-model="communityName">
<image @click="searchByName" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_communitySearchIcon.png"></image>
</div>
<div class="communityBox" v-if="step == 1">
<div class="search">
<input
type="text"
placeholder="请输入小区名称"
v-model="communityName"
/>
<image
@click="searchByName"
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_communitySearchIcon.png"
></image>
</div>
<!-- @click="chooseCommunity(item)" -->
<div class="communityList">
<div class="communityItem" v-for="item in communityList" :key="item.community_id" @click="nextStep(item)">
<div class="communityItem_left">
<div class="communityItem_tit">{{item.name}}</div>
<div class="communityItem_address">{{item.addr}}</div>
</div>
<div class="communityItem_right">
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_communityMore.png"></image>
</div>
</div>
</div>
<!-- @click="chooseCommunity(item)" -->
<div class="communityList">
<div
class="communityItem"
v-for="item in communityList"
:key="item.community_id"
@click="nextStep(item)"
>
<div class="communityItem_left">
<div class="communityItem_tit">{{ item.name }}</div>
<div class="communityItem_address">{{ item.addr }}</div>
</div>
<div class="communityItem_right">
<image
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_communityMore.png"
></image>
</div>
</div>
</div>
<div class="empty" v-if="communityList.length == 0">
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_noSearch.png"></image>
<span>未找到相关信息的小区</span>
</div>
</div>
<div class="empty" v-if="communityList.length == 0">
<image
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_noSearch.png"
></image>
<span>未找到相关信息的小区</span>
</div>
</div>
<!-- <div class="communityBox" v-if="step == 2">
<!-- <div class="communityBox" v-if="step == 2">
<div class="search">
<input type="text" placeholder="请输入楼栋名称">
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_communitySearchIcon.png"></image>
@ -51,235 +69,285 @@
</div>
</div> -->
<div class="communityBox" v-if="step == 2">
<div class="search">
<input v-model="searchQuery" type="text" placeholder="请输入楼栋名称">
<image @click="searchName" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_communitySearchIcon.png"></image>
</div>
<div class="communityBox" v-if="step == 2">
<div class="search">
<input v-model="searchQuery" type="text" placeholder="请输入楼栋名称" />
<image
@click="searchName"
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_communitySearchIcon.png"
></image>
</div>
<div class="floorList">
<div @click="nextStep(item)" class="floorItem" v-for="(item, index) in filteredFloorsList" :key="index">
{{ item.label }}
</div>
</div>
<div class="floorList">
<div
@click="nextStep(item, index)"
:class="{ active: index === selectedFloorIndex }"
class="floorItem"
v-for="(item, index) in filteredFloorsList"
:key="index"
>
{{ item.label }}
</div>
</div>
<div class="empty" v-if="filteredFloorsList.length === 0">
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_noSearch.png"></image>
<span>未找到相关信息的楼栋</span>
</div>
</div>
<div class="empty" v-if="filteredFloorsList.length === 0">
<image
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_noSearch.png"
></image>
<span>未找到相关信息的楼栋</span>
</div>
</div>
<div class="communityBox" v-if="step == 3">
<div class="search">
<input v-model="searchQuery" type="text" placeholder="请输入楼层名称">
<image @click="searchName" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_communitySearchIcon.png"></image>
</div>
<div class="communityBox" v-if="step == 3">
<div class="search">
<input v-model="searchQuery" type="text" placeholder="请输入楼层名称" />
<image
@click="searchName"
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_communitySearchIcon.png"
></image>
</div>
<div class="roomList">
<!-- <div class="roomItem" v-for="(item,index) in 5" :class="index == 1?'active2':''"> -->
<div @click="nextStep(item)" class="roomItem" v-for="(item,index) in filteredFloorsList" :key="index">
{{item.label}}
</div>
</div>
<div class="roomList">
<!-- <div class="roomItem" v-for="(item,index) in 5" :class="index == 1?'active2':''"> -->
<div
@click="nextStep(item, index, 'room')"
:class="{ active2: index === selectedRoomIndex }"
class="roomItem"
v-for="(item, index) in filteredFloorsList"
:key="index"
>
{{ item.label }}
</div>
</div>
<div class="empty" v-if="filteredFloorsList.length === 0">
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_noSearch.png"></image>
<span>未找到相关信息的楼层</span>
</div>
</div>
<div class="empty" v-if="filteredFloorsList.length === 0">
<image
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_noSearch.png"
></image>
<span>未找到相关信息的楼层</span>
</div>
</div>
<div class="communityBox" v-if="step == 4">
<div class="search">
<input v-model="searchQuery" type="text" placeholder="请输入房间名称">
<image @click="searchName" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_communitySearchIcon.png"></image>
</div>
<div class="communityBox" v-if="step == 4">
<div class="search">
<input v-model="searchQuery" type="text" placeholder="请输入房间名称" />
<image
@click="searchName"
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_communitySearchIcon.png"
></image>
</div>
<div class="roomList">
<!-- <div class="roomItem" v-for="(item,index) in 5" :class="index == 1?'active2':''"> -->
<div @click="nextStep(item)" class="roomItem" v-for="(item,index) in filteredFloorsList" :key="index">
{{item.label}}
</div>
</div>
<div class="roomList">
<!-- <div class="roomItem" v-for="(item,index) in 5" :class="index == 1?'active2':''"> -->
<div
@click="nextStep(item, index, 'room')"
:class="{ active2: index === selectedRoomIndex }"
class="roomItem"
v-for="(item, index) in filteredFloorsList"
:key="index"
>
{{ item.label }}
</div>
</div>
<div class="empty" v-if="filteredFloorsList.length === 0">
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_noSearch.png"></image>
<span>未找到相关信息的房间</span>
</div>
</div>
<div class="empty" v-if="filteredFloorsList.length === 0">
<image
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_noSearch.png"
></image>
<span>未找到相关信息的房间</span>
</div>
</div>
<areaPopup :show="show" @selectArea="selectArea" @close="close"></areaPopup>
<areaPopup :show="show" @selectArea="selectArea" @close="close"></areaPopup>
<div class="dialogBox" v-if="dialogBoxShow">
<div class="dialogBoxCon">
<div class="dialogBoxCon1">确认选择</div>
<div class="dialogBoxCon2">{{cName}}</div>
<div class="dialogBoxCon3">{{facilityName + fName + rName}}</div>
<div class="dialogBoxConBtnList">
<div class="dialogBoxConBtnItem1" @click="dialogBoxShow = false">取消</div>
<div class="dialogBoxConBtnItem2" @click="confirmComm">确定</div>
</div>
</div>
</div>
</div>
<div class="dialogBox" v-if="dialogBoxShow">
<div class="dialogBoxCon">
<div class="dialogBoxCon1">确认选择</div>
<div class="dialogBoxCon2">{{ cName }}</div>
<div class="dialogBoxCon3">{{ facilityName + fName + rName }}</div>
<div class="dialogBoxConBtnList">
<div class="dialogBoxConBtnItem1" @click="dialogBoxShow = false">
取消
</div>
<div class="dialogBoxConBtnItem2" @click="confirmComm">确定</div>
</div>
</div>
</div>
</div>
</template>
<script>
import {
apiArr
} from '../../../api/community';
import {
request,
picUrl,
uniqueByField,
menuButtonInfo,
NavgateTo
} from '../../../utils';
import { apiArr } from "../../../api/community";
import {
request,
picUrl,
uniqueByField,
menuButtonInfo,
NavgateTo,
} from "../../../utils";
export default {
data() {
return {
show: false,
step: "1",
communityName: '',
cName: '',
fName: '',
communityId: '',
communityList: [],
facilityName: '',
// foloorList: [],
// floorsList: [],
rName: '',
roomId: '',
// roomList: [],
page_num: 1,
page_size: 10,
dialogBoxShow: false,
searchQuery: '',
filteredFloorsList: [],
searchList: [],
city: uni.getStorageSync('location'),
currentCommunity:""
}
},
methods: {
changeAddress() {
this.show = true
},
close() {
this.show = false
},
selectArea(val) {
console.log(val);
this.city = {
region: val.confirmDist.ad_name.split(',').join(''),
...val.confirmDist
}
this.searchByName();
this.show = false
},
async searchByName() {
console.log(this.communityName,'zzz')
await request(apiArr.getAllList, "POST", {
community_id: '',
name: this.communityName,
comm_code: '',
ad_code: this.city.ad_code ? this.city.ad_code : uni.getStorageSync('ad_code'),
page_num: this.page_num,
page_size: this.page_size
}).then(res => {
console.log(res.rows)
this.communityList = res.rows
})
},
async nextStep(item) {
this.communityId = item.community_id ? item.community_id : this.communityId;
this.facilityName = this.facilityName ? this.facilityName : item.label;
this.fName = this.step == 4 ? this.fName : (this.facilityName ? item.label : '')
await request(apiArr.commRoomSelect, "POST", {
community_ids: item.community_id ? item.community_id : this.communityId,
facility_names: this.facilityName,
floors: this.facilityName ? (this.facilityName == this.fName ? '' : item.label) : '',
}).then(res => {
this.filteredFloorsList = this.step == 4 ? this.filteredFloorsList : res.rows
this.searchList = res.rows
this.searchQuery = ''
if (this.step == '1') {
this.step = '2';
this.cName = item.name;
// this.foloorList = res.rows
} else if (this.step == '2') {
this.step = '3';
// this.floorsList = res.rows
} else if (this.step == '3') {
console.log(item.label);
this.fName = item.label;
// this.roomList = res.rows
this.step = '4';
} else {
this.dialogBoxShow = true;
this.rName = item.label
this.romId = item.value
}
})
},
searchName() {
//
this.filteredFloorsList = this.searchList.filter(item =>
item.label.includes(this.searchQuery)
);
},
confirmComm() {
const params = {
changeVal: `${this.cName}${this.facilityName}${this.fName}${this.rName}`,
community_id: this.communityId,
room_id: this.romId
};
console.log(params)
//
function createQueryString(params) {
return Object.keys(params)
.map(key => `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`)
.join('&');
}
export default {
data() {
return {
selectedFloorIndex: -1,
selectedRoomIndex: -1,
show: false,
step: "1",
communityName: "",
cName: "",
fName: "",
communityId: "",
communityList: [],
facilityName: "",
// foloorList: [],
// floorsList: [],
rName: "",
roomId: "",
// roomList: [],
page_num: 1,
page_size: 10,
dialogBoxShow: false,
searchQuery: "",
filteredFloorsList: [],
searchList: [],
city: uni.getStorageSync("location"),
currentCommunity: "",
};
},
methods: {
changeAddress() {
this.show = true;
},
close() {
this.show = false;
},
selectArea(val) {
console.log(val);
this.city = {
region: val.confirmDist.ad_name.split(",").join(""),
...val.confirmDist,
};
this.searchByName();
this.show = false;
},
async searchByName() {
console.log(this.communityName, "zzz");
await request(apiArr.getAllList, "POST", {
community_id: "",
name: this.communityName,
comm_code: "",
ad_code: this.city.ad_code
? this.city.ad_code
: uni.getStorageSync("ad_code"),
page_num: this.page_num,
page_size: this.page_size,
}).then((res) => {
console.log(res.rows);
this.communityList = res.rows;
});
},
async nextStep(item, index, type = "") {
if (type === "room") {
this.selectedRoomIndex = index;
} else {
this.selectedFloorIndex = index;
}
this.communityId = item.community_id
? item.community_id
: this.communityId;
this.facilityName = this.facilityName ? this.facilityName : item.label;
this.fName =
this.step == 4 ? this.fName : this.facilityName ? item.label : "";
await request(apiArr.commRoomSelect, "POST", {
community_ids: item.community_id ? item.community_id : this.communityId,
facility_names: this.facilityName,
floors: this.facilityName
? this.facilityName == this.fName
? ""
: item.label
: "",
}).then((res) => {
this.filteredFloorsList =
this.step == 4 ? this.filteredFloorsList : res.rows;
this.searchList = res.rows;
this.searchQuery = "";
if (this.step == "1") {
this.step = "2";
this.cName = item.name;
// this.foloorList = res.rows
} else if (this.step == "2") {
this.step = "3";
// this.floorsList = res.rows
} else if (this.step == "3") {
console.log(item.label);
this.fName = item.label;
// this.roomList = res.rows
this.step = "4";
} else {
this.dialogBoxShow = true;
this.rName = item.label;
this.romId = item.value;
}
});
},
searchName() {
//
this.filteredFloorsList = this.searchList.filter((item) =>
item.label.includes(this.searchQuery)
);
},
confirmComm() {
const params = {
changeVal: `${this.cName}${this.facilityName}${this.fName}${this.rName}`,
community_id: this.communityId,
room_id: this.romId,
};
console.log(params);
//
function createQueryString(params) {
return Object.keys(params)
.map(
(key) =>
`${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`
)
.join("&");
}
//
const targetPath = "/packages/community/addCommunity/index";
const queryString = createQueryString(params);
const fullPath = `${targetPath}?${queryString}`;
//
const targetPath = "/packages/community/addCommunity/index";
const queryString = createQueryString(params);
const fullPath = `${targetPath}?${queryString}`;
//
NavgateTo(fullPath);
},
//
NavgateTo(fullPath);
},
//
chooseCommunity(e){
this.currentCommunity = e
this.getRoomSelect()
},
//
getRoomSelect(){
request(apiArr.commRoomSelect,"POST",{
community_ids:this.currentCommunity.community_id,
}).then(res=>{
console.log(res);
this.step = 2
})
},
},
//
chooseCommunity(e) {
this.currentCommunity = e;
onLoad(options) {
const meun = menuButtonInfo();
this.searchByName()
},
this.getRoomSelect();
},
//
getRoomSelect() {
request(apiArr.commRoomSelect, "POST", {
community_ids: this.currentCommunity.community_id,
}).then((res) => {
console.log(res);
this.step = 2;
});
},
},
onReachBottom() {
onLoad(options) {
const meun = menuButtonInfo();
this.searchByName();
},
},
}
onReachBottom() {},
};
</script>
<style>
@import url("./index.css");
@import url("./index.css");
</style>

View File

@ -104,6 +104,10 @@ image {
margin: 0 5rpx;
}
.swiperBox2_img{
border-radius: 20rpx 20rpx 0 0;
}
.active {
width: 26rpx;
}
@ -185,6 +189,10 @@ image {
transform: translateX(-50%);
}
.newsList{
margin-bottom: 100rpx;
}
.newsItem {
display: flex;
align-items: center;
@ -307,4 +315,8 @@ image {
width: 100rpx;
height: 100rpx;
margin-bottom: 16rpx;
}
.grid_Text{
font-size: 24rpx;
}

View File

@ -50,7 +50,7 @@
:key="index"
@click="headerServerClick(item)"
>
<image :src="item.ad_picture" mode="aspectFill" />
<image :src="item.ad_picture" mode="aspectFill" class="swiperBox2_img"/>
</swiper-item>
</swiper>
</div>
@ -70,7 +70,7 @@
:key="index"
>
<image class="grid_Pic" :src="item.nav_icon" mode=""></image>
<text>{{ item.nav_name }}</text>
<text class="grid_Text">{{ item.nav_name }}</text>
</u-grid-item>
</u-grid>
</view>
@ -501,6 +501,7 @@ export default {
},
async selectTab(index, item) {
console.log("🚀 ~ selectTab ~ item:", item)
const isTabChange = this.selectedTab !== index;
if (isTabChange) {
this.page_num = 1;
@ -508,7 +509,6 @@ export default {
// this.loadMoreText = "1030";
}
this.selectedTab = index;
console.log("选中的tab:", index);
const res = await request(apiArr.infoPage, "POST", {
community_id: Number(uni.getStorageSync("changeCommData").id),
announcement_category_id: item.id,

View File

@ -1,238 +1,305 @@
<template>
<div class="container">
<div class="searchBox" :style="{ height: localHeight + 'px', paddingTop: top + 'px' }">
<div class="searchBox_add">
<u-icon bold color="#000" size="40" name="arrow-left" @click="back"></u-icon>
</div>
</div>
<div class="container">
<div
class="searchBox"
:style="{ height: localHeight + 'px', paddingTop: top + 'px' }"
>
<div class="searchBox_add">
<u-icon
bold
color="#000"
size="40"
name="arrow-left"
@click="back"
></u-icon>
</div>
</div>
<div class="community">
<div class="community_left">
<image mode="aspectFill"
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/test.png" alt="" />
</div>
<div class="community_right" @click="changeShow">
<div class="community_right_text">
<div class="community_right_text1">{{ currentRoom.name }}</div>
<div class="community_right_text2">{{ currentCommunityAddr }}</div>
</div>
<div class="community_right_more">
<u-icon bold color="#999999" size="30" name="arrow-right" @click="back"></u-icon>
</div>
</div>
</div>
<div class="community">
<div class="community_left">
<image
mode="aspectFill"
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/test.png"
alt=""
/>
</div>
<div class="community_right" @click="changeShow">
<div class="community_right_text">
<div class="community_right_text1">{{ currentRoom.name }}</div>
<div class="community_right_text2">{{ currentCommunityAddr }}</div>
</div>
<div class="community_right_more">
<u-icon bold color="#999999" size="30" name="arrow-right"></u-icon>
</div>
</div>
</div>
<div class="tabList">
<div class="tabItem" :class="active == 0 ? 'active' : ''" @click="changeTab(0)">账单</div>
<div class="line"></div>
<div class="tabItem" :class="active == 1 ? 'active' : ''" @click="changeTab(1)">缴费记录</div>
</div>
<div class="tabList">
<div
class="tabItem"
:class="active == 0 ? 'active' : ''"
@click="changeTab(0)"
>
账单
</div>
<div class="line"></div>
<div
class="tabItem"
:class="active == 1 ? 'active' : ''"
@click="changeTab(1)"
>
缴费记录
</div>
</div>
<div class="homeMoney" v-if="active == 0">
<div class="homeMoney_box">
<div class="homeMoney_box_left">
<div class="homeMoney_box_left1">物业公积金</div>
<div class="homeMoney_box_left2">可抵扣账户金额</div>
</div>
<div class="homeMoney_box_right">
<div class="homeMoney_box_right1"><span></span>{{ balanceMoney }}</div>
<div class="homeMoney_box_right2" @click="more">
查看详情
<div style="margin-left: 12rpx;">
<u-icon bold color="#894B11" size="30" name="arrow-right" ></u-icon>
</div>
</div>
</div>
</div>
</div>
<div class="homeMoney" v-if="active == 0">
<div class="homeMoney_box">
<div class="homeMoney_box_left">
<div class="homeMoney_box_left1">物业公积金</div>
<div class="homeMoney_box_left2">可抵扣账户金额</div>
</div>
<div class="homeMoney_box_right">
<div class="homeMoney_box_right1">
<span></span>{{ balanceMoney }}
</div>
<div class="homeMoney_box_right2" @click="more">
查看详情
<div style="margin-left: 12rpx">
<u-icon
bold
color="#894B11"
size="30"
name="arrow-right"
></u-icon>
</div>
</div>
</div>
</div>
</div>
<div class="payList" v-if="active == 0">
<div class="payItem" v-for="(item, index) in Bill" :key="index">
<div class="payItem_tit">
<div class="payItem_left">
<checkbox :checked="item.check" @click="checkChange(item, index)"></checkbox>
<div style="margin-left: 24rpx;">{{ item.order_date }}</div>
</div>
<div class="payItem_right">
<span></span>
{{ item.unpaid_amount }}
<p>未缴</p>
<div class="payList" v-if="active == 0">
<div class="payItem" v-for="(item, index) in Bill" :key="index">
<div class="payItem_tit">
<div class="payItem_left">
<checkbox
:checked="item.check"
@click="checkChange(item, index)"
></checkbox>
<div style="margin-left: 24rpx">{{ item.order_date }}</div>
</div>
<div class="payItem_right">
<span></span>
{{ item.unpaid_amount }}
<p>未缴</p>
<div style="margin-left: 40rpx;" @click="changeCheck(item, index)">
<u-icon bold color="#894B11" size="30" name="arrow-down" v-if="!item.more"></u-icon>
<u-icon bold color="#894B11" size="30" name="arrow-up" v-if="item.more"></u-icon>
</div>
</div>
</div>
<div class="payItem_List" v-for="(items, indes) in item.community_order_rows" v-if="item.more"
:key="items.order_id">
<checkbox :checked="items.check" @click="itemsCheckChange(items, indes, index)"></checkbox>
<div class="Item_time" v-if="items.billing_cycle == 1">{{ items.order_date }}</div>
<div class="Item_time" v-if="items.billing_cycle == 2">{{ items.order_datetime }}</div>
<div class="Item_type">{{ items.community_fee_type.type_name }}</div>
<div class="Item_money">{{ items.money }}</div>
<div class="Item_status" v-if="items.status == 0">未付款</div>
<div class="Item_status sucess" v-if="items.status == 1">已付款</div>
</div>
</div>
</div>
<div style="margin-left: 40rpx" @click="changeCheck(item, index)">
<u-icon
bold
color="#894B11"
size="30"
name="arrow-down"
v-if="!item.more"
></u-icon>
<u-icon
bold
color="#894B11"
size="30"
name="arrow-up"
v-if="item.more"
></u-icon>
</div>
</div>
</div>
<div v-if="item.more">
<div
class="payItem_List"
v-for="(items, indes) in item.community_order_rows"
:key="items.order_id"
>
<checkbox
:checked="items.check"
@click="itemsCheckChange(items, indes, index)"
></checkbox>
<div class="Item_time" v-if="items.billing_cycle == 1">
{{ items.order_date }}
</div>
<div class="Item_time" v-if="items.billing_cycle == 2">
{{ items.order_datetime }}
</div>
<div class="Item_type">
{{ items.community_fee_type.type_name }}
</div>
<div class="Item_money">{{ items.money }}</div>
<div class="Item_status" v-if="items.status == 0">未付款</div>
<div class="Item_status sucess" v-if="items.status == 1">
已付款
</div>
</div>
</div>
</div>
</div>
<!-- 选择支付类型 -->
<div class="payTypeList" v-if="active == 0">
<div class="PayTypeItem">
<div class="PayTypeItem_left">
<div class="PayTypeItem_img">
<image mode="aspectFill"
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_wechat.png"
alt="" />
</div>
<div class="PayTypeItem_con">
<div class="PayTypeItem_con_tit">微信支付</div>
<div class="PayTypeItem_con_msg">单笔支付限额10000.00</div>
</div>
</div>
<!-- 选择支付类型 -->
<div class="payTypeList" v-if="active == 0">
<div class="PayTypeItem">
<div class="PayTypeItem_left">
<div class="PayTypeItem_img">
<image
mode="aspectFill"
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_wechat.png"
alt=""
/>
</div>
<div class="PayTypeItem_con">
<div class="PayTypeItem_con_tit">微信支付</div>
<div class="PayTypeItem_con_msg">单笔支付限额10000.00</div>
</div>
</div>
<div class="PayTypeItem_right">
<radio :checked="payType == 1" @click="changePayType(1)"></radio>
</div>
</div>
<div class="line3"></div>
<div class="PayTypeItem">
<div class="PayTypeItem_left">
<div class="PayTypeItem_img">
<image mode="aspectFill"
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_homeMoney.png"
alt="" />
</div>
<div class="PayTypeItem_con">
<div class="PayTypeItem_con_tit">物业公积金支付</div>
<div class="PayTypeItem_con_msg">单笔支付限额10000.00</div>
</div>
</div>
<div class="PayTypeItem_right">
<radio :checked="payType == 1" @click="changePayType(1)"></radio>
</div>
</div>
<div class="line3"></div>
<div class="PayTypeItem">
<div class="PayTypeItem_left">
<div class="PayTypeItem_img">
<image
mode="aspectFill"
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_homeMoney.png"
alt=""
/>
</div>
<div class="PayTypeItem_con">
<div class="PayTypeItem_con_tit">物业公积金支付</div>
<div class="PayTypeItem_con_msg">单笔支付限额10000.00</div>
</div>
</div>
<div class="PayTypeItem_right">
<radio :checked="payType == 2" @click="changePayType(2)"></radio>
</div>
</div>
</div>
<div class="PayTypeItem_right">
<radio :checked="payType == 2" @click="changePayType(2)"></radio>
</div>
</div>
</div>
<div class="bottom" v-if="active == 0">
<div class="bottom_left">
<span>合计</span>
<p></p>
{{ currentMoney }}
</div>
<div class="bottom_right" @click="OrderPay">
立即支付
</div>
</div>
<div class="bottom" v-if="active == 0">
<div class="bottom_left">
<span>合计</span>
<p></p>
{{ currentMoney }}
</div>
<div class="bottom_right" @click="OrderPay">立即支付</div>
</div>
<div class="payHisList" v-if="active == 1">
<div class="payHisItem" v-for="item in payOrderList" :key="item.id">
<div class="row">
<div class="row_label">缴费金额</div>
<div class="row_con1">{{ item.money }}</div>
</div>
<div class="row">
<div class="row_label2"></div>
<div class="row_con2">{{ item.pay_time }}支付</div>
</div>
<div class="line4"></div>
<div class="row">
<div class="row_label">绑定房源</div>
<div class="row_con3">
<div class="row_con3_1">
{{ item.community_order.length }}个账单
</div>
<div class="row_con3_2">明细可从收据查看</div>
</div>
</div>
<div class="payHisList" v-if="active == 1">
<div class="payHisItem" v-for="item in payOrderList" :key="item.id">
<div class="row">
<div class="row_label">缴费金额</div>
<div class="row_con1">{{ item.money }}</div>
</div>
<div class="row">
<div class="row_label2"></div>
<div class="row_con2">{{ item.pay_time }}支付</div>
</div>
<div class="line4"></div>
<div class="row">
<div class="row_label">绑定房源</div>
<div class="row_con3">
<div class="row_con3_1">{{ item.community_order.length }}个账单</div>
<div class="row_con3_2">明细可从收据查看</div>
</div>
</div>
<div class="row">
<div class="row_label">应缴费金额</div>
<div class="row_con4">{{ item.money }}</div>
</div>
<div class="row">
<div class="row_label">应缴费金额</div>
<div class="row_con4">{{ item.money }}</div>
</div>
<div class="row">
<div class="row_label">物业费公积金抵扣金额</div>
<div class="row_con4">-{{ item.reduction_money }}</div>
</div>
<div class="row">
<div class="row_label">物业费公积金抵扣金额</div>
<div class="row_con4">-{{ item.reduction_money }}</div>
</div>
<div class="row">
<div class="row_label">缴费单号</div>
<div class="row_con4">{{ item.order_pay_no }}</div>
</div>
<div class="line4"></div>
<div class="Receipt">收据</div>
</div>
</div>
<div class="row">
<div class="row_label">缴费单号</div>
<div class="row_con4">{{ item.order_pay_no }} </div>
</div>
<div class="line4"></div>
<div class="Receipt">收据</div>
<div class="boxshadow" v-if="show" @click="changeShow">
<div class="boxshadowCon">
<div class="boxshadowCon_Tit">
选择房源
<div class="cancel">取消</div>
</div>
<div class="lines"></div>
<div class="communityList" v-if="roomList.length > 0">
<div
class="communityItem"
v-for="item in roomList"
:key="item.room_id"
@click="selectRoom(item)"
>
<div class="communityItem_text">
{{ item.facility_name }}{{ item.floor }} {{ item.number }}
</div>
<div class="communityItem_radio">
<radio :checked="selectedRoomId === item.room_id"></radio>
</div>
</div>
</div>
<div class="communityList" v-else>
<div class="communityItem">
<div class="communityItem_text">暂无房源</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="boxshadow" v-if="show2" @click="changeShow2">
<div class="boxshadowCon">
<div class="boxshadowCon_Tit">
付款总金额
<div class="cancel">取消</div>
</div>
<div class="boxshadowCon_subTit"><span></span>4900.00</div>
<div class="lines"></div>
<div class="BanlenceList">
<div class="banlenceItem">
<div class="banlenceItem_left">
<image
mode="aspectFill"
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_wechat.png"
alt=""
/>
微信支付
</div>
<div class="banlenceItem_right"><span></span>4900.00</div>
</div>
<div class="line3"></div>
<div class="banlenceItem">
<div class="banlenceItem_left">
<image
mode="aspectFill"
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_homeMoney.png"
alt=""
/>
物业公积金支付
</div>
<div class="banlenceItem_right"><span></span>4900.00</div>
</div>
</div>
<div class="boxshadow" v-if="show" @click="changeShow">
<div class="boxshadowCon">
<div class="boxshadowCon_Tit">
选择房源
<div class="cancel">取消</div>
</div>
<div class="lines"></div>
<div class="communityList">
<div class="communityItem" v-for="item in roomList" :key="item.room_id">
<div class="communityItem_text">{{ item.facility_name }}{{ item.floor }} {{ item.number }}</div>
<div class="communityItem_radio">
<radio></radio>
</div>
</div>
</div>
</div>
</div>
<div class="boxshadow" v-if="show2" @click="changeShow2">
<div class="boxshadowCon">
<div class="boxshadowCon_Tit">
付款总金额
<div class="cancel">取消</div>
</div>
<div class="boxshadowCon_subTit">
<span></span>4900.00
</div>
<div class="lines"></div>
<div class="BanlenceList">
<div class="banlenceItem">
<div class="banlenceItem_left">
<image mode="aspectFill"
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_wechat.png"
alt="" />
微信支付
</div>
<div class="banlenceItem_right">
<span></span>4900.00
</div>
</div>
<div class="line3"></div>
<div class="banlenceItem">
<div class="banlenceItem_left">
<image mode="aspectFill"
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_homeMoney.png"
alt="" />
物业公积金支付
</div>
<div class="banlenceItem_right">
<span></span>4900.00
</div>
</div>
</div>
<div class="btn">
物业公积金+微信支付 <span></span>4900.00
</div>
</div>
</div>
</div>
<div class="btn">物业公积金+微信支付 <span></span>4900.00</div>
</div>
</div>
</div>
</template>
<script>
@ -259,6 +326,7 @@ export default {
show2: false,
roomList: [],
currentRoom: {},
selectedRoomId: '', // ID
currentCommunity: "", //
currentCommunityAddr: "", //
Bill: "", //
@ -314,11 +382,24 @@ export default {
}).then(res => {
this.roomList = res.rows
this.currentRoom = this.roomList[0]
this.selectedRoomId = this.currentRoom.room_id
this.getOrderList()
})
},
//
selectRoom(item){
// ID
this.selectedRoomId = item.room_id;
//
console.log('选中的房源数据:', item);
this.currentRoom = item;
this.getOrderList()
},
//
async getUserGovenmentMoney() {
request(apiArr.getUserGovenmentMoney, "POST", {}).then(res => {

View File

@ -25,10 +25,10 @@
<view class="desc" v-if="item.type == 3">租户</view>
<view class="desc" v-if="item.type == 4">访客</view>
</view>
<view class="item">
<!-- <view class="item">
<view class="label">手机号</view>
<view class="desc">{{item.mobile}}</view>
</view>
</view> -->
<view class="item">
<view class="label">房产总数</view>
<view class="desc">{{ item.count_of_rooms }}</view>
@ -46,7 +46,7 @@
</view>
</view>
</view>
<view class="btn">去抵扣物业账单</view>
<view class="btn" @click="goPay">去抵扣物业账单</view>
<u-popup :show="show" :round="50" @close="close">
<view class="select_Popup">
@ -84,6 +84,7 @@ import {
picUrl,
uniqueByField,
menuButtonInfo,
NavgateTo
} from '../../../utils';
import { apiArr } from '../../../api/v2Community';
@ -177,6 +178,9 @@ export default {
this.list = res
})
},
goPay(){
NavgateTo("../propertyPayment/index")
}
},
}
</script>