GULIMMO
2023-11-02 50545d42bf8b2c7d4438f5fe605272be726c7b48
租户上报、新增租赁页面修改
5 files modified
1 files added
821 ■■■■■ changed files
api/doorplateAddress/doorplateAddress.js 12 ●●●● patch | view | raw | blame | history
api/houseRental/houseRental.js 37 ●●●●● patch | view | raw | blame | history
pages.json 10 ●●●● patch | view | raw | blame | history
subPackage/bs/components/list/rentList.vue 251 ●●●●● patch | view | raw | blame | history
subPackage/bs/views/rentDetail.vue 259 ●●●● patch | view | raw | blame | history
subPackage/bs/views/zhsb.vue 252 ●●●● patch | view | raw | blame | history
api/doorplateAddress/doorplateAddress.js
@@ -14,7 +14,7 @@
// 获取社区信息
export const getHouseList = (type, name) => {
    return http.request({
        url: '/blade-doorplateAddress/doorplateAddress/getHousesList',
        url: 'blade-doorplateAddress/doorplateAddress/getHousesList',
        method: 'GET',
        params: {
            type,
@@ -26,7 +26,7 @@
// 获取当前楼栋信息
export const getHouseInfoList = (type, code) => {
    return http.request({
        url: '/blade-doorplateAddress/doorplateAddress/getHousesList',
        url: 'blade-doorplateAddress/doorplateAddress/getHousesList',
        method: 'GET',
        params: {
            type,
@@ -38,7 +38,7 @@
// 获取当前房屋出租信息
export const getHouseRentInfo = (code) => {
    return http.request({
        url: '/blade-doorplateAddress/doorplateAddress/getHouseRentInfo',
        url: 'blade-doorplateAddress/doorplateAddress/getHouseRentInfo',
        method: 'GET',
        params: {
            code
@@ -49,7 +49,7 @@
// 获取房屋标签信息
export const getHouseLabelList = () => {
    return http.request({
        url: '/blade-label/label/getLabelList',
        url: 'blade-label/label/getLabelList',
        method: 'GET',
        params: {
            parentId: 1001
@@ -60,7 +60,7 @@
// 获取房屋详细信息
export const getHouseDetail = (houseCode) => {
    return http.request({
        url: '/blade-house/house/getHouseDetail',
        url: 'blade-house/house/getHouseDetail',
        method: 'GET',
        params: {
            houseCode
@@ -80,7 +80,7 @@
export const uploadFile = (data) => {
    return http.request({
        url: '/blade-resource/oss/endpoint/put-file',
        url: 'blade-resource/oss/endpoint/put-file',
        method: 'post',
        custom: {
            Authorization: true
api/houseRental/houseRental.js
New file
@@ -0,0 +1,37 @@
import http from '@/http/api.js'
//删除
export const deleteRentalInfo = (id) => {
    return http.request({
        url: 'blade-houseRental/houseRental/removeHouseRental',
        method: 'POST',
        params: {
            id
        }
    })
}
// 续租
export const updateDueTime = (data) => {
    return http.request({
        url: 'blade-houseRental/houseRental/update',
        method: 'POST',
        custom: {
            'Authorization': true
        },
        data
    })
}
// 修改数据
// 续租
export const updateRetalInfo = (data) => {
    return http.request({
        url: '/blade-houseRental/houseRental/updateHouseRental',
        method: 'POST',
        custom: {
            'Authorization': true
        },
        data
    })
}
pages.json
@@ -106,9 +106,9 @@
                {
                    "path": "views/zhsb",
                    "style": {
                        "navigationBarTitleText": "出租管理",
                        "navigationBarBackgroundColor": "#4586fe",
                        "navigationBarTextStyle": "white",
                        "navigationBarTitleText": "租客上报",
                        "navigationBarBackgroundColor": "#fff",
                        "navigationBarTextStyle": "black",
                        "enablePullDownRefresh": false
                    }
                },
@@ -116,8 +116,8 @@
                    "path": "views/rentDetail",
                    "style": {
                        "navigationBarTitleText": "租户详情",
                        "navigationBarBackgroundColor": "#4586fe",
                        "navigationBarTextStyle": "white",
                        "navigationBarBackgroundColor": "#fff",
                        "navigationBarTextStyle": "black",
                        "enablePullDownRefresh": false
                    }
                }
subPackage/bs/components/list/rentList.vue
@@ -1,92 +1,161 @@
<template>
    <view class="list-container">
        <view class="item" v-for="(item, index) in list" :key="index">
            <view class="line">
                <view class="l">租客:{{item.name}} {{`(共${item.num}人)`}}</view>
                <view class="r">
                    <u-icon name="trash-fill" color="#ff0000" size="18"></u-icon>
                </view>
            </view>
            <view class="line">
                <view class="l">{{item.startTime}} - {{item.endTime}}</view>
                <view class="r status">
                    {{item.status}}
                </view>
            </view>
            <view class="list-btn">
                <u-button :customStyle="btnCustomStyle" color="#cdf3df" type="primary" text="修改"></u-button>
            </view>
        </view>
        <view class="tip">
            <u-divider text="已经到底了"></u-divider>
        </view>
    </view>
</template>
<script>
    export default {
        props: {
            list: {
                type: Array,
                default: () => []
            }
        },
        data() {
            return {
                btnCustomStyle: {
                    color: "#6dc160",
                    fontWeight: "700"
                }
            }
        },
        created() {
        },
        mounted() {
        },
        onLoad(option) {
        },
        onShow() {
        },
        methods: {
        }
    }
</script>
<style scoped lang="scss">
    .list-container {
        .item {
            background-color: #ffffff;
            margin: 20rpx 0;
            .line {
                display: flex;
                align-items: center;
                justify-content: space-between;
                padding: 14rpx;
                .status {
                    color: #6dc160
                }
            }
            .list-btn {
                padding: 24rpx;
            }
        }
        .tip {}
    }
<template>
    <view class="list-container">
        <view class="item" v-for="(item, index) in list" :key="index">
            <view class="line">
                <view class="l">租客:{{item.name}} (<text>{{`共${item.num}人`}}</text>)</view>
                <view class="r">
                    <u-icon name="trash-fill" color="#ff0000" size="18" @click="deleteRental(item)"></u-icon>
                </view>
            </view>
            <view class="line">
                <view class="l">{{item.rentalTime}} - {{item.dueTime}}</view>
                <view class="r status">
                    {{item.status}}
                </view>
            </view>
            <view class="list-btn">
                <u-button icon="edit-pen" class="btn-item" type="primary" plain text="修改"
                    @click="pushPage(item)"></u-button>
                <u-button icon="calendar" class="btn-item" type="primary" plain text="续租"
                    @click="xzHandleClick(item)"></u-button>
                <u-button icon="order" class="btn-item" type="primary" plain text="终止"
                    @click="terminate(item)"></u-button>
            </view>
        </view>
        <view class="tip">
            <u-divider text="已经到底了"></u-divider>
        </view>
        <u-datetime-picker :show="isPickerShow" @cancel="isPickerShow = false" mode="date"
            @confirm="dueTimeConfirm"></u-datetime-picker>
        <u-datetime-picker :show="istPickerShow" @cancel="istPickerShow = false" mode="date"
            @confirm="terminateTimeConfirm"></u-datetime-picker>
        <u-modal :show="isModelShow" width="auto" :showCancelButton="true" title="提示" content="请确认是否删除当前租户信息"
            @cancel="isModelShow = false" @confirm="deleteRentalConfirm"></u-modal>
    </view>
</template>
<script>
    import {
        deleteRentalInfo,
        updateDueTime
    } from "@/api/houseRental/houseRental.js";
    export default {
        props: {
            list: {
                type: Array,
                default: () => []
            }
        },
        data() {
            return {
                isPickerShow: false,
                istPickerShow: false,
                currentRentalId: '',
                isModelShow: false
            }
        },
        methods: {
            deleteRental(item) {
                this.currentRentalId = item.housingRentalId
                this.isModelShow = true
            },
            async deleteRentalConfirm() {
                const {
                    code,
                    data
                } = await deleteRentalInfo(this.currentRentalId)
                console.log(code, data)
                this.isModelShow = false
            },
            pushPage(item) {
                const {
                    houseCode
                } = this.$route.query
                const {
                    id
                } = item
                this.$u.func.globalNavigator(
                    `/subPackage/bs/views/rentDetail?houseCode=${houseCode}&id=${id}`)
            },
            xzHandleClick(item) {
                this.currentRentalId = item.housingRentalId
                this.isPickerShow = true
            },
            async dueTimeConfirm(e) {
                const time = uni.$u.timeFormat(e.value, 'yyyy-mm-dd')
                const res = await updateDueTime({
                    id: this.currentRentalId,
                    dueTime: time
                })
                this.isPickerShow = false
            },
            async terminate(item) {
                this.currentRentalId = item.housingRentalId
                this.istPickerShow = true
            },
            async terminateTimeConfirm(e) {
                const time = uni.$u.timeFormat(e.value, 'yyyy-mm-dd')
                const res = await updateDueTime({
                    id: this.currentRentalId,
                    terminationTime: time
                })
                this.isPickerShow = false
            }
        }
    }
</script>
<style scoped lang="scss">
    .list-container {
        .item {
            background-color: #ffffff;
            margin: 20rpx 0;
            .line {
                display: flex;
                align-items: center;
                justify-content: space-between;
                padding: 20rpx;
                &:nth-child(1) {
                    border: 1rpx solid #F6F6F6;
                }
                .l {
                    font-weight: 700;
                    text {
                        color: #0682EF;
                    }
                }
                .status {
                    color: #6dc160
                }
            }
            .list-btn {
                padding: 24rpx;
                display: flex;
                .btn-item {
                    margin: 0 10rpx;
                    border: 0;
                    color: #009FFF;
                    font-weight: 700;
                }
            }
        }
        .tip {}
    }
</style>
subPackage/bs/views/rentDetail.vue
@@ -1,23 +1,20 @@
<template>
    <view class="container">
        <u-form labelWidth="70" :model="form" :rules="rules" ref="form">
            <view class="box-title">
                <box-title title="基础信息"></box-title>
            </view>
            <view class="basic-info">
                <u-form-item @click="showSelectBus(dataList.relation, '租客关系', 'relationName','relation')"
                <u-form-item @click="showSelectBus(dataList.relation, '租客关系', 'relationName', 'relation')"
                    class="form-item" labelWidth="100" label="租客关系" required prop="type">
                    <u--input border="none" v-model="relationName" disabled disabledColor="#ffffff" placeholder="请选择">
                    </u--input>
                    <u-icon slot="right" name="arrow-right"></u-icon>
                </u-form-item>
                <u-form-item @click="showSelectBus(dataList.houseType, '房屋状态', 'houseTypeName','houseType')"
                <u-form-item @click="showSelectBus(dataList.houseType, '房屋状态', 'houseTypeName', 'houseType')"
                    class="form-item" labelWidth="100" label="房屋状态:" required prop="type">
                    <u--input border="none" v-model="houseTypeName" disabled disabledColor="#ffffff" placeholder="请选择">
                    </u--input>
                    <u-icon slot="right" name="arrow-right"></u-icon>
                </u-form-item>
                <u-form-item @click="showSelectBus(dataList.rentalUse, '租房用途', 'rentalUseName','rentalUse')"
                <u-form-item @click="showSelectBus(dataList.rentalUse, '租房用途', 'rentalUseName', 'rentalUse')"
                    class="form-item" labelWidth="100" label="租房用途:" required prop="type">
                    <u--input border="none" v-model="rentalUseName" disabled disabledColor="#ffffff" placeholder="请选择">
                    </u--input>
@@ -29,28 +26,31 @@
                    </u--input>
                    <u-icon slot="right" name="arrow-right"></u-icon>
                </u-form-item>
                <u-form-item @click="dueTimeShow = true" class="form-item" labelWidth="100" label="到期时间:" required
                    prop="type">
                    <u--input border="none" v-model="form.dueTime" disabled disabledColor="#ffffff" placeholder="请选择">
                    </u--input>
                    <u-icon slot="right" name="arrow-right"></u-icon>
                </u-form-item>
                <view class="pic">
                    <view class="title">合同上传</view>
                    <u-upload :fileList="imagesList" :previewFullImage="uploadConfig.previewFullImage"
                        :accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
                        :maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture" @afterRead="afterReadImg"
                        @delete="deletePic">
                    </u-upload>
                </view>
            </view>
            <view class="box-title">
                <box-title title="合同上传"></box-title>
            </view>
            <view class="pic">
                <u-upload :fileList="imagesList"
                    :previewFullImage="uploadConfig.previewFullImage" :accept="uploadConfig.acceptImg"
                    :multiple="uploadConfig.multiple" :maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
                    @afterRead="afterReadImg" @delete="deletePic">
                </u-upload>
            </view>
            <view class="rent-info">
                <view v-for="item in rentFormNum" :key="item">
                <view v-for="(item, index) in rentFormNum" :key="item" class="rent-box">
                    <view class="box-title">
                        <box-title :title="'租客信息-#'+item">
                            <template #titleMore v-if="item !== 1">
                                <u-icon size="25" name="trash" color='#EF0724'></u-icon>
                            </template>
                        </box-title>
                        <view class="l">
                            <view class="line"></view>
                            <view class="title">{{ '租客信息-#' + item }}</view>
                        </view>
                        <view class="r" v-if="index === 1">
                            <u-icon name="trash-fill" color="#ff0000" size="20" @click="decRentForm"></u-icon>
                        </view>
                    </view>
                    <rentForm ref="rentform" />
                </view>
@@ -65,17 +65,15 @@
            :popupTitle="selectBusTitle" :dataLists="selectBusList" @cancel="typeShow = false" @submit="typeSelect">
        </select-bus>
        <!--出租时间选择-->
        <u-datetime-picker :show="rentTimeShow" v-model="form.rentTime" mode="date"
            @confirm="rentTimeShow = false"></u-datetime-picker>
        <u-datetime-picker :show="rentTimeShow" mode="date" @confirm="rentTimeConfirm"
            @cancel="rentTimeShow = false"></u-datetime-picker>
        <u-datetime-picker :show="dueTimeShow" mode="date" @confirm="dueTimeConfirm"
            @cancel="dueTimeShow = false"></u-datetime-picker>
        <view class="bottom-tools">
            <u-button plain class="btn-item" type="success" @click="addRentForm">再加一人</u-button>
            <u-button class="btn-item" type="error" @click="decRentForm">删除</u-button>
            <u-button class="btn-item" type="primary" @click="save">保存</u-button>
            <u-button class="btn-item" @click="addRentForm">再加一人</u-button>
            <u-button class="btn-item" @click="saveOrUpdate">{{ rentId === '' ? "保存" : "确认修改" }}</u-button>
        </view>
    </view>
</template>
@@ -84,9 +82,19 @@
    import rentForm from '../components/form/rentForm.vue'
    import uploadMixin from "@/mixin/uploadMixin";
    import {
        uploadFile,
        addHouseRental
        uploadFile,
        addHouseRental,
        getHouseRentInfo,
    } from "@/api/doorplateAddress/doorplateAddress";
    import {
        updateRetalInfo
    } from '@/api/houseRental/houseRental.js'
    import {
        data
    } from "uview-ui/libs/mixin/mixin";
    import {
        update
    } from "../../../api/system/role";
    export default {
        mixins: [uploadMixin],
        components: {
@@ -98,10 +106,12 @@
                form: {
                    relation: "",
                    rentTime: "",
                    dueTime: "",
                },
                imagesList: [],
                rules: {},
                rentTimeShow: false,
                dueTimeShow: false,
                rentFormNum: 1,
                relationName: "",
                houseTypeName: "",
@@ -148,19 +158,21 @@
                selectBusModel: '',
                selectBusKey: '',
                typeShow: false,
                houseCode: ''
                houseCode: '',
                rentId: ''
            }
        },
        created() {
        },
        mounted() {
        },
        onLoad(option) {
            this.houseCode = option.houseCode
        },
        onShow() {
            const {
                id,
                houseCode
            } = option
            this.houseCode = houseCode
            // 使用id来判断是不是修改
            if (id !== void 0) {
                this.rentId = id
                this.getCurrentRentInfo()
            }
        },
        methods: {
@@ -177,6 +189,16 @@
                this.form[this.selectBusKey] = item.value
                this.typeShow = !this.typeShow
            },
            rentTimeConfirm(e) {
                const time = uni.$u.timeFormat(e.value, 'yyyy-mm-dd')
                this.form.rentTime = time
                this.rentTimeShow = false
            },
            dueTimeConfirm(e) {
                const time = uni.$u.timeFormat(e.value, 'yyyy-mm-dd')
                this.form.dueTime = time
                this.dueTimeShow = false
            },
            beforeUpload(e) {
                console.log(e)
                return false
@@ -187,25 +209,88 @@
            decRentForm() {
                this.rentFormNum > 1 && this.rentFormNum--
            },
            saveOrUpdate() {
                if (this.rentId === '') {
                    this.save()
                    return
                }
                this.update()
            },
            async save() {
                let houseTenantVOList = []
                this.$refs.rentform.forEach(item => {
                    houseTenantVOList.push(item.form)
                })
                const relationIndex = this.dataList.relation.findIndex(item => item.name === this.relationName)
                const statusIndex = this.dataList.houseType.findIndex(item => item.name === this.houseTypeName)
                })
                const relationIndex = this.dataList.relation.findIndex(item => item.name === this.relationName)
                const statusIndex = this.dataList.houseType.findIndex(item => item.name === this.houseTypeName)
                const rentalIndex = this.dataList.rentalUse.findIndex(item => item.name === this.rentalUseName)
                let params = {
                    houseCode: this.houseCode,
                    tenantRelationship: this.dataList.relation[relationIndex].value,
                    rentalTime: this.form.rentalTime,
                    rentalTime: this.form.rentTime,
                    dueTime: this.form.dueTime,
                    houseStatus: this.dataList.houseType[statusIndex].value,
                    rentalUse: this.dataList.rentalUse[rentalIndex].value,
                    houseTenantVOList
                }
                const res = await addHouseRental(params)
                console.log(res)
                }
                const res = await addHouseRental(params)
            },
            async update() {
                let houseTenantVOList = []
                this.$refs.rentform.forEach(item => {
                    houseTenantVOList.push(item.form)
                })
                const relationIndex = this.dataList.relation.findIndex(item => item.name === this.relationName)
                const statusIndex = this.dataList.houseType.findIndex(item => item.name === this.houseTypeName)
                const rentalIndex = this.dataList.rentalUse.findIndex(item => item.name === this.rentalUseName)
                let data = {
                    id: this.rentId,
                    houseCode: this.houseCode,
                    tenantRelationship: this.dataList.relation[relationIndex].value,
                    rentalTime: this.form.rentTime,
                    dueTime: this.form.dueTime,
                    houseStatus: this.dataList.houseType[statusIndex].value,
                    rentalUse: this.dataList.rentalUse[rentalIndex].value,
                    houseTenantVOList
                }
                const res = await updateRetalInfo(data)
            },
            findObjValue(value, obj) {
                const res = obj.find(item => {
                    return item.value == value
                })
                return res.name
            },
            async getCurrentRentInfo() {
                const {
                    code,
                    data: {
                        houseRentalList
                    }
                } = await getHouseRentInfo(this.houseCode)
                const {
                    houseStatus,
                    tenantRelationship,
                    rentalUse,
                    rentalTime,
                    dueTime,
                    houseTenantVOList
                } = houseRentalList.find(item => item.id === this.rentId)
                this.form = {
                    relation: tenantRelationship,
                    rentTime: rentalTime,
                    dueTime: dueTime,
                }
                this.rentalUseName = this.findObjValue(rentalUse, this.dataList.rentalUse)
                this.relationName = this.findObjValue(tenantRelationship, this.dataList.relation)
                this.houseTypeName = this.findObjValue(houseStatus, this.dataList.houseType)
                this.rentFormNum = houseTenantVOList.length
                this.$nextTick(() => {
                    houseTenantVOList.forEach((item, index) => {
                        this.$refs.rentform[index].form = item
                    })
                })
            }
        }
    }
@@ -214,30 +299,59 @@
<style scoped lang="scss">
    .container {
        position: relative;
        width: 100%;
        display: flex;
        flex-direction: column;
        background: #F9F9FA;
        background: #F8F8F9;
        padding: 20rpx 30rpx;
        padding-bottom: 200rpx;
        .box-title {
            padding: 10px 0;
        }
        .basic-info {
            background-color: #ffffff;
            padding: 20rpx;
            .form-item {
                background-color: #ffffff;
                padding: 5rpx 20rpx;
                border-bottom: 1px solid #eff1f3;
            }
            .pic {
                // padding: 40rpx 30rpx;
                .title {
                    font-size: 30rpx;
                    margin: 20rpx 0;
                }
            }
        }
        .pic {
            background-color: #ffffff;
            padding: 40rpx 30rpx;
        .rent-info {
            .rent-box {
                padding: 20rpx;
                background-color: #ffffff;
                margin-top: 30rpx;
                .box-title {
                    display: flex;
                    justify-content: space-between;
                    .l {
                        display: flex;
                        .line {
                            width: 8rpx;
                            margin-right: 10rpx;
                            background-color: #2978FF;
                        }
                        .title {
                            font-size: 30rpx;
                            font-weight: 700;
                        }
                    }
                }
            }
        }
        .btn-group {
            padding: 30rpx;
@@ -250,17 +364,34 @@
            }
        }
        .bottom-tools {
            display: flex;
            background-color: #ffffff;
            position: fixed;
            bottom: 0;
            left: 0;
            width: 100%;
            border-top: 1rpx solid #e4e4e4;
            // border-top: 1rpx solid #e4e4e4;
            z-index: 999;
            .btn-item {
                margin: 40rpx;
                color: #ffffff;
                font-weight: 700;
                border: 0;
                &:nth-child(1) {
                    flex: 1;
                    background-color: #2CD5C0;
                }
                &:nth-child(2) {
                    flex: 3;
                    background: linear-gradient(to right, #06B0FD, #027BFE);
                    margin-left: 0rpx;
                }
            }
        }
    }
subPackage/bs/views/zhsb.vue
@@ -2,22 +2,24 @@
    <view class="container">
        <view class="content-box">
            <view class="info">
                <view class="item location">
                    <u-icon name="map" color="#000000" size="16"></u-icon>
                <view class="item location">
                    <u-icon name="map" color="#AAAAAA" size="15"></u-icon>
                    <text>当前小区:</text>
                    <view class="location">
                        {{location}}
                        {{ location }}{{ room }}{{ `(共${num}人)` }}
                    </view>
                </view>
                <view class="item statistics">
                    <view class="room">{{room}}</view>
                    <view class="num">{{`(共${num}人)`}}</view>
                </view>
                <!-- <view class="item statistics">
                    <view class="room">{{ room }}</view>
                    <view class="num">{{ `(共${num}人)` }}</view>
                </view> -->
            </view>
            <view class="box-title">
                <box-title title="出租管理"></box-title>
                <view class="line"></view>
                <view class="title">出租管理</view>
            </view>
            <view class="list">
                <rentList :list="rentList"></rentList>
@@ -34,136 +36,134 @@
</template>
<script>
    import rentList from "@/subPackage/bs/components/list/rentList.vue"
    import {
        getHouseRentInfo
    } from "@/api/doorplateAddress/doorplateAddress";
    import {
        logAdd
    } from "../../../api/system/logManage";
    export default {
        components: {
            rentList
        },
        data() {
            return {
                houseCode: '',
                location: "万达晶座:11栋楼",
                room: "一单元303室",
                num: "1",
import rentList from "@/subPackage/bs/components/list/rentList.vue"
import {
    getHouseRentInfo
} from "@/api/doorplateAddress/doorplateAddress";
import {
    logAdd
} from "../../../api/system/logManage";
export default {
    components: {
        rentList
    },
    data() {
        return {
            houseCode: '',
            location: "",
            room: "",
            num: 0,
                //出租列表
                rentList: [{
                    name: "张三",
                    num: "1",
                    startTime: "2022-01-01",
                    endTime: "2023-12-23",
                    status: "未到期"
                }]
            }
        },
        created() {
        },
        mounted() {
            console.log(this.$store)
        },
        onLoad(option) {
            //出租列表
            rentList: []
        }
    },
    onLoad(option) {
        const {
            houseCode
        } = option
        this.houseCode = houseCode
    },
    onShow() {
        this.getHouseRent()
    },
    methods: {
        async getHouseRent() {
            const res = await getHouseRentInfo(this.houseCode)
            const {
                houseCode
            } = option
            this.houseCode = houseCode
                aoiName,
                buildingName,
                doorplateName,
                unitName,
                houseRentalList
            } = res.data
            this.rentList = []
            this.location = (!!aoiName ? aoiName : '') + buildingName
            this.room = (!!unitName ? unitName : '') + doorplateName + "室"
            houseRentalList !== 0 && houseRentalList.forEach(item => {
                const { houseTenantVOList, dueTime, rentalTime } = item
                item.num = houseTenantVOList.length
                this.num += item.num
                if (item.num !== 0) {
                    item.name = houseTenantVOList[0].name
                }
                this.rentList = houseRentalList
            })
        },
        onShow() {
            this.getHouseRent()
        },
        methods: {
            async getHouseRent() {
                const res = await getHouseRentInfo(this.houseCode)
                const {
                    aoiName,
                    buildingName,
                    doorplateName,
                    unitName,
                    houseRentalList: {
                        houseTenantVOList
                    }
                } = res.data
                console.log(res.data)
                this.location = aoiName + buildingName
                this.room = unitName + doorplateName + "室"
                this.rentList = houseTenantVOList || []
                this.rentList.length !== 0 && this.rentList.forEach(item => {
                    if (!item.houseTenantVOList) {
                        num += item.houseTenantVOList.length
                    }
                    // 事件格式处理
                    item.startTime = item.rentalTime.split(' ')[0]
                    item.endTime = item.dueTime.split(' ')[0]
                    item.status === 1 ? '未到期' : '到期'
                    item.num = item.houseTenantVOList.length
                })
            },
            addRent() {
                this.$u.func.globalNavigator("/subPackage/bs/views/rentDetail?houseCode="+this.houseCode)
            }
        addRent() {
            this.$u.func.globalNavigator("/subPackage/bs/views/rentDetail?houseCode=" + this.houseCode)
        }
    }
}
</script>
<style scoped lang="scss">
    .container {
        position: relative;
        width: 100%;
        height: 100%;
.container {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    background: #F6F6F6;
    .content-box {
        height: 0;
        flex: 1;
        overflow-y: auto;
        margin: 20rpx 30rpx;
    }
    .list {
        // padding-bottom: 20px;
    }
    .item {
        display: flex;
        flex-direction: column;
        background: #F9F9FA;
        .content-box {
            height: 0;
            flex: 1;
            overflow-y: auto;
        }
        .list {
            // padding-bottom: 20px;
        }
        .item {
            display: flex;
            padding: 30rpx 20rpx;
            background-color: #ffffff;
            border-bottom: 1px solid #eff1f3;
        }
        .location {
            font-weight: 700;
        }
        .room {
            font-weight: 700;
        }
        .bottom {
            padding: 20rpx;
            background-color: #ffffff;
            display: flex;
            justify-content: center;
            align-items: center;
            .btn {
                // width: calc(100% - 40rpx);
            }
        }
        padding: 30rpx 20rpx;
        background-color: #ffffff;
        border-bottom: 1px solid #eff1f3;
    }
    .box-title {
        padding: 40rpx 0;
    .location {
        font-weight: 700;
        font-size: 27rpx;
        text {
            color: #AAAAAA;
        }
    }
    view {
        font-size: 32rpx;
    .room {
        font-weight: 700;
    }
    .bottom {
        padding: 20rpx;
        background-color: #ffffff;
        display: flex;
        justify-content: center;
        align-items: center;
        .btn {
            // width: calc(100% - 40rpx);
        }
    }
}
.box-title {
    margin: 25rpx 0;
    display: flex;
    .line {
        width: 8rpx;
        margin-right: 10rpx;
        background-color: #2978FF;
    }
    .title {
        font-weight: 700;
    }
}
view {
    font-size: 32rpx;
}
</style>