Lou
2023-11-07 13447b1e4860445629b1a906a86da3a24f4af3c5
merge
14 files modified
2 files added
1474 ■■■■■ changed files
api/houseRental/houseRental.js 123 ●●●●● patch | view | raw | blame | history
api/label/categoryLabel.js 10 ●●●●● patch | view | raw | blame | history
api/place/place.js 8 ●●●●● patch | view | raw | blame | history
common/setting.js 7 ●●●●● patch | view | raw | blame | history
pages.json 31 ●●●● patch | view | raw | blame | history
pages/home/index.vue 4 ●●●● patch | view | raw | blame | history
subPackage/bs/components/list/rentList.vue 12 ●●●●● patch | view | raw | blame | history
subPackage/bs/views/rentDetail.vue 16 ●●●● patch | view | raw | blame | history
subPackage/house/family/index.vue 2 ●●● patch | view | raw | blame | history
subPackage/house/houseNumber/index.vue 330 ●●●● patch | view | raw | blame | history
subPackage/house/houseNumber/lineItem.vue 71 ●●●●● patch | view | raw | blame | history
subPackage/house/member/index.vue 32 ●●●●● patch | view | raw | blame | history
subPackage/house/roomDetails/index.vue 266 ●●●● patch | view | raw | blame | history
subPackage/workbench/views/cscj.vue 6 ●●●● patch | view | raw | blame | history
subPackage/workbench/views/csjl.vue 133 ●●●●● patch | view | raw | blame | history
subPackage/workbench/views/rental.vue 423 ●●●●● patch | view | raw | blame | history
api/houseRental/houseRental.js
@@ -1,47 +1,78 @@
import http from '@/http/api.js'
// 添加租赁信息
export const addHouseRental = (data) => {
    return http.request({
        url: 'blade-houseRental/houseRental/add',
        method: 'POST',
        data
    })
}
//删除
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
    })
import http from '@/http/api.js'
// 添加租赁信息
export const addHouseRental = (data) => {
    return http.request({
        url: 'blade-houseRental/houseRental/add',
        method: 'POST',
        data
    })
}
//删除
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
    })
}
//获取统计数据
export const getStatistics = (params) => {
    return http.request({
        url: 'blade-houseRental/houseRental/getStatistics',
        method: 'GET',
        params: {
            ...params
        }
    })
}
//获取统计数据
export const getPage = (params) => {
    return http.request({
        url: 'blade-houseRental/houseRental/page',
        method: 'GET',
        params: {
            ...params
        },
    })
}
// 出租房管理
export const getRentalHouseContent = (params) => {
    return http.request({
        url: 'blade-houseRental/houseRental/page',
        method: 'GET',
        params
    })
}
api/label/categoryLabel.js
New file
@@ -0,0 +1,10 @@
import http from '@/http/api.js'
//保存
export const getLabelList = (params) => {
    return http.request({
        url: 'blade-categoryLabel/categoryLabel/list',
        method: 'GET',
        params
    })
}
api/place/place.js
@@ -6,4 +6,12 @@
        method: 'POST',
        data: data
    })
}
export const getLocationRecord = (params) => {
    return http.request({
        url: 'blade-place/place/page',
        method: 'GET',
        params
    })
}
common/setting.js
@@ -11,8 +11,9 @@
    // 开发环境接口Url
    // devUrl: 'https://sk.hubeishuiyi.cn',
    // devUrl: 'http://192.168.1.156:9528',
    devUrl:'http://192.168.1.50:9528',
    minioBaseUrl:"http://60.220.177.113:9000/jczz/",
    // devUrl:'http://192.168.1.50:9528',
    devUrl: 'http://192.168.1.133:9528',
    minioBaseUrl: "http://60.220.177.113:9000/jczz/",
    // 数据中台接口url
    // dataCenterUrl: 'http://10.10.2.192/services',
    dataCenterUrl: 'https://sk.hubeishuiyi.cn/services',
@@ -35,4 +36,4 @@
    // token过期时间(秒)
    // 30天 30*24*60*60
    tokenTime: 2592000,
}
}
pages.json
@@ -70,8 +70,7 @@
        //公告
        {
            "root": "subPackage/notice",
            "pages": [
                {
            "pages": [{
                    "path": "list",
                    "style": {
                        "navigationBarTitleText": "公告",
@@ -89,25 +88,23 @@
                        "navigationBarTextStyle": "black"
                    }
                }
            ]
        },
        //便民热线
        {
            "root": "subPackage/hotLine",
            "pages": [
                {
                    "path": "index",
                    "style": {
                        "navigationBarTitleText": "便民热线",
                        "enablePullDownRefresh": false,
                        "navigationBarBackgroundColor": "#fff",
                        "navigationBarTextStyle": "black"
                    }
            "pages": [{
                "path": "index",
                "style": {
                    "navigationBarTitleText": "便民热线",
                    "enablePullDownRefresh": false,
                    "navigationBarBackgroundColor": "#fff",
                    "navigationBarTextStyle": "black"
                }
            ]
            }]
        },
        //标签
        {
            "root": "subPackage/label",
@@ -149,7 +146,6 @@
                }
            ]
        },
        //工作台
        {
            "root": "subPackage/workbench",
@@ -165,6 +161,7 @@
                {
                    "path": "views/csjl",
                    "style": {
                        "onReachBottomDistance": 10,
                        "navigationBarTitleText": "场所记录",
                        "enablePullDownRefresh": false,
                        "navigationBarBackgroundColor": "#fff",
@@ -181,7 +178,7 @@
                    }
                },
                {
                    "path":"views/audit",
                    "path": "views/audit",
                    "style": {
                        "navigationBarTitleText": "网格任务审核",
                        "enablePullDownRefresh": false,
@@ -364,4 +361,4 @@
            }
        ]
    }
}
}
pages/home/index.vue
@@ -155,7 +155,7 @@
                    </view>
                </view>
            </view>
            <u-picker :title="roleTypeName" :show="selectBoxShow" keyName="name" ref="uPicker" :columns="siteColumns"
            <u-picker :title="roleTypeName" :closeOnClickOverlay="true" @close="selectBoxShow = false" :show="selectBoxShow" keyName="name" ref="uPicker" :columns="siteColumns"
                @confirm="confirmSite" @change="changeSite" @cancel="selectBoxShow = false"></u-picker>
        </view>
@@ -216,7 +216,7 @@
                        style: {
                            background: 'linear-gradient(133deg, #FFFCF9 0%, rgba(255,252,249,0) 100%)',
                        },
                        path:""
                        path:"/subPackage/workbench/views/csjl"
                    },
                    {
                        icon: "/static/icon/menu-02.png",
subPackage/bs/components/list/rentList.vue
@@ -31,9 +31,9 @@
            <u-divider text="已经到底了"></u-divider>
        </view>
        <u-datetime-picker v-model="currentTime" :closeOnClickOverlay="true" @close="isPickerShow = false" :show="isPickerShow" @cancel="isPickerShow = false" mode="date"
        <u-datetime-picker v-model="currentTime" v-if="isPickerShow" :closeOnClickOverlay="true" @close="isPickerShow = false" :show="isPickerShow" @cancel="isPickerShow = false" mode="date"
            @confirm="dueTimeConfirm"></u-datetime-picker>
        <u-datetime-picker v-model="currentTime" :closeOnClickOverlay="true" @close="istPickerShow = false" :show="istPickerShow" @cancel="istPickerShow = false" mode="date"
        <u-datetime-picker v-model="currentTime" v-if="istPickerShow" :closeOnClickOverlay="true" @close="istPickerShow = false" :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>
@@ -72,7 +72,7 @@
                        value: 2
                    },
                ],
                currentTime: Number(new Date()),
                currentTime: '',
                currentRentInfo: {}
            }
        },
@@ -115,8 +115,10 @@
            },
            xzHandleClick(item) {
                this.currentRentalId = item.housingRentalId
                this.currentRentInfo = item
                this.isPickerShow = true
                this.currentRentInfo = item
                this.currentTime = item.dueTime
                this.isPickerShow = true
            },
            async dueTimeConfirm(e) {
                // 判断当前选中的时间是否小于租房时间
subPackage/bs/views/rentDetail.vue
@@ -20,13 +20,13 @@
                    </u--input>
                    <u-icon slot="right" name="arrow-right"></u-icon>
                </u-form-item>
                <u-form-item @click="rentTimeShow = true" class="form-item" labelWidth="100" label="租房时间:" required
                <u-form-item @click="rentTimeClick" class="form-item" labelWidth="100" label="租房时间:" required
                    prop="rentTime">
                    <u--input border="none" v-model="form.rentTime" disabled disabledColor="#ffffff" placeholder="请选择">
                    </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
                <u-form-item @click="dueTimeClick" class="form-item" labelWidth="100" label="到期时间:" required
                    prop="dueTime">
                    <u--input border="none" v-model="form.dueTime" disabled disabledColor="#ffffff" placeholder="请选择">
                    </u--input>
@@ -61,9 +61,9 @@
            :popupTitle="selectBusTitle" :dataLists="selectBusList" @cancel="typeShow = false" @submit="typeSelect">
        </select-bus>
        <!--出租时间选择-->
        <u-datetime-picker v-model="currentTime" :closeOnClickOverlay="true" @close="rentTimeShow = false" :show="rentTimeShow" mode="date" @confirm="rentTimeConfirm"
        <u-datetime-picker v-model="currentTime" v-if="rentTimeShow" :closeOnClickOverlay="true" @close="rentTimeShow = false" :show="rentTimeShow" mode="date" @confirm="rentTimeConfirm"
            @cancel="rentTimeShow = false"></u-datetime-picker>
        <u-datetime-picker v-model="currentTime" :closeOnClickOverlay="true" @close="dueTimeShow = false" :show="dueTimeShow" mode="date" @confirm="dueTimeConfirm"
        <u-datetime-picker v-model="currentTime" v-if="dueTimeShow" :closeOnClickOverlay="true" @close="dueTimeShow = false" :show="dueTimeShow" mode="date" @confirm="dueTimeConfirm"
            @cancel="dueTimeShow = false"></u-datetime-picker>
        <view class="bottom-tools">
@@ -216,11 +216,19 @@
                this[this.selectBusModel] = item.name
                this.form[this.selectBusKey] = item.value
                this.typeShow = !this.typeShow
            },
            rentTimeClick() {
                this.currentTime = Number(new Date(this.form.rentTime)) || Number(new Date())
                this.rentTimeShow = true
            },
            rentTimeConfirm(e) {
                const time = uni.$u.timeFormat(e.value, 'yyyy-mm-dd')
                this.form.rentTime = time
                this.rentTimeShow = false
            },
            dueTimeClick() {
                this.currentTime = Number(new Date(this.form.dueTime)) || Number(new Date())
                this.dueTimeShow = true
            },
            dueTimeConfirm(e) {
                const time = uni.$u.timeFormat(e.value, 'yyyy-mm-dd')
subPackage/house/family/index.vue
@@ -3,7 +3,7 @@
        <view class="flex f-d-c main">
            <view class="cur-header">
                <u-icon name="home" color="#fff"></u-icon>
                {{housingName}}/{{buildingName}}栋
                {{housingName}}/{{buildingName}}
            </view>
            <view class="h0 flex-1 build-list-box">
                <u-collapse :border="false">
subPackage/house/houseNumber/index.vue
@@ -1,46 +1,43 @@
<template>
    <view class="container">
        <view class="info-box">
            <view class="policeman-box">
                <view class="line-box">
                    <view class="title">公安局</view>
                    <view class="value">{{ policeData.branchName }}</view>
                </view>
                <view class="line-box">
                    <view class="title">派出所</view>
                    <view class="value">{{ policeData.localPoliceStationName }}</view>
                </view>
                <view class="line-box">
                    <view class="title">辖区民警</view>
                    <view class="value">{{ policeData.policeman }}</view>
                </view>
                <view class="line-box">
                    <view class="title">联系电话</view>
                    <view class="value">{{ policeData.policemanPhone }}</view>
                </view>
            <box-title title="门牌号信息"></box-title>
            <line-item :list="houseNumberData"></line-item>
            <view class="map">
                <map style="width: 100%; height: 100%;"></map>
            </view>
            <view class="fireman-box">
                <view class="line-box">
                    <view class="title">消防照片</view>
                    <view class="value">未完善</view>
                </view>
                <view class="line-box">
                    <view class="title">采集人</view>
                    <view class="value">未完善</view>
                </view>
                <view class="line-box">
                    <view class="title">消防责任人</view>
                    <view class="value">未完善</view>
                </view>
                <view class="line-box">
                    <view class="title">采集时间</view>
                    <view class="value">未完善</view>
                </view>
                <view class="line-box">
                    <view class="title">历史事件</view>
                    <view class="value">未完善</view>
                </view>
            <view class="box-title">
                <box-title title="综治网格">
                    <template slot="titleMore">
                        <view class="title-more">
                            <view class="red item"></view>
                            <view class="orange item">85.9</view>
                            <view class="green item"></view>
                        </view>
                    </template>
                </box-title>
            </view>
            <line-item :list="gridData"></line-item>
            <line-item :list="collectData">
                <template #other="{ sdate }">
                    <view style="padding: 20rpx 0;" v-if="sdate.name === 'imageUrls' && sdate.value !== '未完善' ">
                        <u--image :src="sdate.value" width="80px" height="80px" @click="imgPreview(sdate.value)"></u--image>
                    </view>
                </template>
            </line-item>
            <view class="box-title">
                <box-title title="公安网格">
                    <template slot="titleMore">
                        <view class="title-more">
                            <view class="red item"></view>
                            <view class="orange item">85.9</view>
                            <view class="green item"></view>
                        </view>
                    </template>
                </box-title>
            </view>
            <line-item :list="policeData"></line-item>
            <line-item :list="firemanData"></line-item>
        </view>
        <view class="btn-box">
            <view class="sl-box" @click="csjlClick">
@@ -55,22 +52,137 @@
    </view>
</template>
<script>
    import lineItem from './lineItem.vue'
    import {
        getDoorplateAddressDetail
    } from "@/api/doorplateAddress/doorplateAddress";
    export default {
        components: {
            lineItem
        },
        data() {
            return {
                stdId: '',
                policeData: {
                    branchName: '未完善',
                    localPoliceStationName: '未完善',
                    policeman: '未完善',
                    policemanPhone: '未完善'
                },
                firemanData: {
                }
                houseNumberData: [{
                        title: '场所标签',
                        name: 'label',
                        value: '未完善'
                    },
                    {
                        title: '场所名称',
                        name: 'placeName',
                        value: '未完善'
                    },
                    {
                        title: '场所负责人',
                        name: 'principal',
                        value: '未完善'
                    },
                    {
                        title: '手机号',
                        name: 'phone',
                        value: '未完善'
                    },
                    {
                        title: '场所简介',
                        name: '',
                        value: '未完善'
                    },
                    {
                        title: '标准地址',
                        name: 'addressName',
                        value: '未完善'
                    }
                ],
                gridData: [{
                        title: '社区名称',
                        name: 'neiName',
                        value: '未完善'
                    },
                    {
                        title: '网格名称',
                        name: '',
                        value: '未完善'
                    },
                    {
                        title: '网格员',
                        name: '',
                        value: '未完善'
                    },
                    {
                        title: '联系电话',
                        name: '',
                        value: '未完善'
                    }
                ],
                collectData: [{
                        title: '场所照片',
                        name: 'imageUrls',
                        isUseSlot: true,
                        value: '未完善'
                    },
                    {
                        title: '场所负责人',
                        name: 'username',
                        value: '未完善'
                    },
                    {
                        title: '采集人',
                        name: 'createUser',
                        value: '未完善'
                    },
                    {
                        title: '采集时间',
                        name: 'createTime',
                        value: '未完善'
                    },
                    {
                        title: '历史事件',
                        value: '未完善'
                    }
                ],
                policeData: [{
                        title: '公安局',
                        name: 'branchName',
                        value: '未完善'
                    },
                    {
                        title: '派出所',
                        name: 'localPoliceStationName',
                        value: '未完善'
                    },
                    {
                        title: '辖区民警',
                        name: 'policeman',
                        value: '未完善'
                    },
                    {
                        title: '联系电话',
                        name: 'policemanPhone',
                        value: '未完善'
                    }
                ],
                firemanData: [{
                        title: '消防照片',
                        value: '未完善'
                    },
                    {
                        title: '采集人',
                        value: '未完善'
                    },
                    {
                        title: '消防责任人',
                        value: '未完善'
                    },
                    {
                        title: '采集时间',
                        value: '未完善'
                    },
                    {
                        title: '历史事件',
                        value: '未完善'
                    }
                ]
            }
        },
        onLoad(option) {
@@ -90,68 +202,86 @@
                        title: "数据请求失败",
                        icon: "error",
                        duration: 1500
                    })
                    })
                    return
                }
                const {
                    branchName,
                    localPoliceStationName,
                    policeman,
                    policemanPhone
                } = data
                console.log(data);
                this.policeData = {
                    branchName: branchName || '未完善',
                    localPoliceStationName: localPoliceStationName || '未完善',
                    policeman: policeman || '未完善',
                    policemanPhone: policemanPhone || '未完善'
                }
                this.houseNumberData.forEach(item => {
                    if (!data[item.name]) {
                        item.value = data.place[item.name] || '未完善'
                    } else {
                        item.value = data[item.name] || '未完善'
                    }
                })
                this.gridData.forEach(item => {
                    if (!data[item.name]) {
                        item.value = data.place[item.name] || '未完善'
                    } else {
                        item.value = data[item.name] || '未完善'
                    }
                })
                this.collectData.forEach(item => {
                    if (!data[item.name]) {
                        item.value = data.place[item.name] || '未完善'
                    } else {
                        item.value = data[item.name] || '未完善'
                    }
                })
                this.policeData.forEach(item => {
                    item.value = data[item.name] || '未完善'
                })
            },
            imgPreview(value) {
                uni.previewImage({
                    urls: [value],
                })
            },
            cscjClick() {
                this.$u.func.globalNavigator('/subPackage/workbench/views/cscj?stdId='+this.stdId)
            },
            csjlClick() {
                this.$u.func.globalNavigator('/subPackage/workbench/views/csjl?stdId='+this.stdId)
            cscjClick() {
                this.$u.func.globalNavigator('/subPackage/workbench/views/cscj?stdId=' + this.stdId)
            },
            csjlClick() {
                this.$u.func.globalNavigator('/subPackage/workbench/views/csjl?stdId=' + this.stdId)
            }
        },
    }
</script>
<style lang="scss" scoped>
    .container {
        background-color: #f6f6f6;
        background-color: #f6f6f6;
        height: 100%;
        .info-box {
            height: calc(100% - 110rpx);
            padding-bottom: 20rpx;
        .info-box {
            height: calc(100% - 110rpx);
            padding-bottom: 20rpx;
            overflow: auto;
            .policeman-box,
            .fireman-box {
                background-color: #fff;
                margin-top: 20rpx;
                padding: 0 20rpx;
            .map {
                width: 100%;
                height: 240rpx;
                background-color: #fff;
            }
            .box-title {
                padding: 10px 0;
                .line-box {
                .title-more {
                    display: flex;
                    justify-content: space-between;
                    border-bottom: 1rpx solid #f6f6f6;
                    padding: 25rpx 0;
                    font-size: 32rpx;
                    .title {
                        flex-shrink: 0;
                    }
                    .value {
                        color: #989898;
                        width: 50%;
                        word-wrap: break-word;
                        margin-left: 20rpx;
                        text-align: right;
                    align-items: center;
                    height: 100%;
                    .item {
                        width: 50rpx;
                        height: 40rpx;
                        color: #ffffff;
                        padding: 6rpx;
                        font-size: 25rpx;
                        text-align: center;
                        line-height: 20px;
                        font-weight: 700;
                    }
                    &:last-child {
                        border: 0;
                    }
                }
            }
        }
@@ -176,4 +306,18 @@
            }
        }
    }
    .red {
        background-color: red;
        border-radius: 10rpx 0rpx 0rpx 10rpx;
    }
    .orange {
        background-color: orange;
    }
    .green {
        background-color: green;
        border-radius: 0rpx 10rpx 10rpx 0rpx;
    }
</style>
subPackage/house/houseNumber/lineItem.vue
New file
@@ -0,0 +1,71 @@
<template>
    <view class="line-box">
        <view class="line-item" v-for="(item, index) in list" :key="index">
            <view class="text">
                <view class="title">{{ item.title }}</view>
                <view class="value" v-if="!item.isUseSlot">{{ item.value }}</view>
            </view>
            <view class="pic">
                <slot name="pic" :sdate="item"></slot>
            </view>
            <view class="other">
                <slot name="other" :sdate="item"></slot>
            </view>
        </view>
    </view>
</template>
<script>
    export default {
        props: {
            list: {
                required: true,
                type: Array,
                default: () => [{
                    title: '',
                    value: ''
                }]
            },
        },
    }
</script>
<style lang="scss" scoped>
    .line-box {
        background-color: #fff;
        margin-top: 20rpx;
        padding: 0 20rpx;
        .line-item {
            .text {
                display: flex;
                justify-content: space-between;
                padding: 25rpx 0;
                font-size: 32rpx;
                background-color: #fff;
                border-bottom: 1rpx solid #f6f6f6;
                .title {
                    flex-shrink: 0;
                    width: 200rpx;
                }
                .value {
                    color: #989898;
                    width: 50%;
                    word-wrap: break-word;
                    margin-left: 20rpx;
                    text-align: right;
                }
                &:last-child {
                    border: 0;
                }
            }
            .pic {
                display: flex;
                flex-wrap: wrap;
            }
        }
    }
</style>
subPackage/house/member/index.vue
@@ -288,8 +288,9 @@
        onLoad(option) {
            const data = JSON.parse(option.data)
            this.houseCode = data.houseCode
            if(data.type == 2){
            if(data.type == 1){
                this.addOrUpdateTitle = "保存"
                this.getAllBizDict()
            }
            if(data.type == 2){
                this.addOrUpdateTitle = "修改"
@@ -297,9 +298,22 @@
            }
        },
        onShow() {
        },
        methods: {
            async getAllBizDict(){
                // 获取角色关系字典
                await this.getBizDict('roleRelation',this.dataList.relationshipList)
                // 获取角色字典
                await this.getBizDict('roleType',this.dataList.roleList)
                // 获取民族字典
                await this.getBizDict('nationType',this.dataList.ethnicityList)
                // 获取学历字典
                await this.getBizDict('educationType',this.dataList.educationList)
                // 获取工作状态字典
                await this.getBizDict('workStatusType',this.dataList.workStatusList)
                // 获取婚姻状态字典
                await this.getBizDict('marriageStatusType',this.dataList.maritalStatusList)
            },
            // 获取业务字典
            async getBizDict(code,list){
                const param = {
@@ -315,18 +329,8 @@
            },
            // 获取住户信息
            async getHouseholdInfo(data){
                // 获取角色关系字典
                await this.getBizDict('roleRelation',this.dataList.relationshipList)
                // 获取角色字典
                await this.getBizDict('roleType',this.dataList.roleList)
                // 获取民族字典
                await this.getBizDict('nationType',this.dataList.ethnicityList)
                // 获取学历字典
                await this.getBizDict('educationType',this.dataList.educationList)
                // 获取工作状态字典
                await this.getBizDict('workStatusType',this.dataList.workStatusList)
                // 获取婚姻状态字典
                await this.getBizDict('marriageStatusType',this.dataList.maritalStatusList)
                // 获取所有字典
                await this.getAllBizDict()
                this.form = data
                this.roleTypeName = this.findObjValue(data.roleType, this.dataList.roleList)
                this.relationshipName = this.findObjValue(data.relationship, this.dataList.relationshipList)
subPackage/house/roomDetails/index.vue
@@ -22,7 +22,8 @@
                        <view class="l flex-1 flex">
                            <view class="flex_base">
                                <view class="head-img flex_base">
                                    <u--image shape="circle" :showLoading="true" :src="item.src|| '/static/icon/user-01.png'"  width="120rpx"
                                    <u--image shape="circle" :showLoading="true"
                                        :src="item.src|| '/static/icon/user-01.png'" width="120rpx"
                                        height="120rpx"></u--image>
                                </view>
                            </view>
@@ -42,12 +43,12 @@
                        </view>
                        <view class="r flex f-d-c j-c-s-a">
                            <view>
                                <u-button size='small' type="primary" :plain="true" text="资料管理"
                                @click="addOrupdateMember(2,item)"></u-button>
                                <u-button size='small' type="primary" :plain="true" text="资料管理"
                                    @click="addOrupdateMember(2,item)"></u-button>
                            </view>
                            <view>
                                <u-button size='small' type="primary" :plain="true" text="标签管理"
                                @click="goToHouseholdLabel(item)"></u-button>
                                <u-button size='small' type="primary" :plain="true" text="标签管理"
                                    @click="goToHouseholdLabel(item)"></u-button>
                            </view>
                        </view>
                    </view>
@@ -62,8 +63,9 @@
                    </view>
                </view>
                <u-modal :show="isHouseholdModelShow" width="auto" :showCancelButton="true" title="提示" content="请确认是否删除当前住户信息"
                    @cancel="isHouseholdModelShow = false" @confirm="deleteHousehold()"></u-modal>
                <u-modal :show="isHouseholdModelShow" width="auto" :showCancelButton="true" title="提示"
                    content="请确认是否删除当前住户信息" @cancel="isHouseholdModelShow = false"
                    @confirm="deleteHousehold()"></u-modal>
                <view class="mt-20 rent-out-box">
                    <box-title :title="'出租管理'"></box-title>
@@ -95,12 +97,14 @@
                        </view>
                    </view>
                </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"
                <u-datetime-picker v-model="currentTime" v-if="isPickerShow" :closeOnClickOverlay="true"
                    @close="isPickerShow = false" :show="isPickerShow" @cancel="isPickerShow = false" mode="date"
                    @confirm="dueTimeConfirm"></u-datetime-picker>
                <u-datetime-picker v-model="currentTime" v-if="istPickerShow" :closeOnClickOverlay="true"
                    @close="istPickerShow = false" :show="istPickerShow" @cancel="istPickerShow = false" mode="date"
                    @confirm="terminateTimeConfirm"></u-datetime-picker>
                <u-divider text="已经到底了"></u-divider>
                <u-modal :show="isModelShow" width="auto" :showCancelButton="true" title="提示" content="请确认是否删除当前租户信息"
                <u-divider text="已经到底了"></u-divider>
                <u-modal :show="isModelShow" width="auto" :showCancelButton="true" title="提示" content="请确认是否删除当前租户信息"
                    @cancel="isModelShow = false" @confirm="deleteRentalConfirm"></u-modal>
            </view>
@@ -113,18 +117,18 @@
                    <u-button type="primary" :plain="true" text="添加租赁信息" @click="addRental"></u-button>
                </view>
            </view>
        </view>
        </view>
    </view>
</template>
<script>
    import {
        getHouseRentInfo
    } from "@/api/doorplateAddress/doorplateAddress";
    import {
        deleteRentalInfo,
        updateDueTime
    } from "@/api/doorplateAddress/doorplateAddress";
    import {
        deleteRentalInfo,
        updateDueTime
    } from "@/api/houseRental/houseRental.js";
    import {
        removeHousehold
@@ -134,8 +138,8 @@
        data() {
            return {
                householdId:'',
                isHouseholdModelShow:false,
                householdId: '',
                isHouseholdModelShow: false,
                currentId: '',
                houseCode: '',
                houseInfo: {
@@ -148,24 +152,25 @@
                    allNum: 0
                },
                ownerInfoList: [],
                rentOutList: [],
                isPickerShow: false,
                istPickerShow: false,
                currentRentalId: '',
                isModelShow: false,
                status: [{
                        name: '未到期',
                        value: 0
                    },
                    {
                        name: '已到期',
                        value: 1
                    },
                    {
                        name: '已终止',
                        value: 2
                    },
                rentOutList: [],
                isPickerShow: false,
                istPickerShow: false,
                currentRentalId: '',
                isModelShow: false,
                status: [{
                        name: '未到期',
                        value: 0
                    },
                    {
                        name: '已到期',
                        value: 1
                    },
                    {
                        name: '已终止',
                        value: 2
                    },
                ],
                currentTime: null
            }
        },
        onLoad(e) {
@@ -179,20 +184,23 @@
        },
        methods: {
            // 跳转住户标签管理页面
            goToHouseholdLabel(data){
            goToHouseholdLabel(data) {
                data['houseCode'] = this.houseCode
                var navData = JSON.stringify(data);
                this.$u.func.globalNavigator(`/subPackage/house/member/householdLabel?data=${navData}`)
            },
            // 删除住户弹出
            removeHouseholdSub(data){
            removeHouseholdSub(data) {
                this.householdId = data.id
                this.isHouseholdModelShow = true
            },
            // 删除住户信息
            deleteHousehold(){
                removeHousehold(this.householdId).then(res=>{
                    const {code,data}  = res
            deleteHousehold() {
                removeHousehold(this.householdId).then(res => {
                    const {
                        code,
                        data
                    } = res
                    if (code !== 200) {
                        uni.showToast({
                            title: "删除失败",
@@ -213,7 +221,7 @@
                        title: "数据加载失败",
                        icon: "error",
                        duration: 1500
                    })
                    })
                    return
                }
                const {
@@ -223,7 +231,7 @@
                    houseName,
                    unitName,
                    houseRentalList,
                    householdList,
                    householdList,
                    subAoi
                } = res.data
                this.houseCode = addressCode
@@ -231,7 +239,7 @@
                this.ownerInfoList = householdList
                this.houseInfo.houseName = houseName
                this.houseInfo.unitName = unitName
                this.houseInfo.houseTitle =( aoiName || subAoi) + ':' + buildingName
                this.houseInfo.houseTitle = (aoiName || subAoi) + ':' + buildingName
                // 判断当前租客有没有过期
                this.rentOutList.forEach(item => {
                    // 事件格式处理
@@ -241,7 +249,7 @@
                    item.allNum = item.houseTenantVOList.length
                    // 多人个租客将第一个作为显示
                    item.tenant = item.houseTenantVOList.length > 0 ? item.houseTenantVOList[0].name : ''
                    item.housingRentalId = item.houseTenantVOList[0]?.housingRentalId
                    item.housingRentalId = item.houseTenantVOList[0]?.housingRentalId
                })
                this.houseInfo.allNum = householdList.length
@@ -254,91 +262,95 @@
                const url = `/subPackage/bs/views/rentDetail?houseCode=${this.houseCode}`
                this.$u.func.globalNavigator(url, "navTo")
            },
            // 用户资料管理页面跳转  1:新增 2:修改
            addOrupdateMember(type,data={}) {
                if(type==1){
            // 用户资料管理页面跳转  1:新增 2:修改
            addOrupdateMember(type, data = {}) {
                if (type == 1) {
                    data['type'] = 1
                    data['houseCode'] = this.houseCode
                }
                if(type==2){
                if (type == 2) {
                    data['type'] = 2
                }
                var navData = JSON.stringify(data);
                this.$u.func.globalNavigator(`/subPackage/house/member/index?data=${navData}`)
            },
            editRent(item) {
                const { houseCode, id } = item
                this.$u.func.globalNavigator(`/subPackage/bs/views/rentDetail?houseCode=${houseCode}&id=${id}`)
            },
            reletRent(item) {
                console.log(item);
                this.currentRentalId = item.housingRentalId
                this.isPickerShow = true
            },
            terRent(item) {
                this.currentRentalId = item.housingRentalId
                this.istPickerShow = true
            },
            deleteRent(item) {
                this.currentRentalId = item.housingRentalId
                this.isModelShow = true
            },
            async dueTimeConfirm(e) {
                const time = uni.$u.timeFormat(e.value, 'yyyy-mm-dd')
                const res = await updateDueTime({
                    id: this.currentRentalId,
                    dueTime: time
                })
                if (res.code !== 200) {
                    uni.showToast({
                        title: "续租失败",
                        icon: "error",
                        duration: 1500
                    })
                    return
                }
                this.isPickerShow = false
                this.getHouseRentInfoList()
            },
            async terminateTimeConfirm(e) {
                const time = uni.$u.timeFormat(e.value, 'yyyy-mm-dd')
                const res = await updateDueTime({
                    id: this.currentRentalId,
                    terminationTime: time
                })
                if (res.code !== 200) {
                    uni.showToast({
                        title: "终止失败",
                        icon: "error",
                        duration: 1500
                    })
                    return
                }
                this.istPickerShow = false
                this.getHouseRentInfoList()
            },
            async deleteRentalConfirm() {
                const {
                    code,
                    data
                } = await deleteRentalInfo(this.currentRentalId)
                if (code !== 200) {
                    uni.showToast({
                        title: "删除失败",
                        icon: "error",
                        duration: 1500
                    })
                    return
                }
                this.isModelShow = false
                this.getHouseRentInfoList()
            },
            findObjValue(value, obj) {
                const res = obj.find(item => {
                    return item.value == value
                })
                return res.name
                var navData = JSON.stringify(data);
                this.$u.func.globalNavigator(`/subPackage/house/member/index?data=${navData}`)
            },
            editRent(item) {
                const {
                    houseCode,
                    id
                } = item
                this.$u.func.globalNavigator(`/subPackage/bs/views/rentDetail?houseCode=${houseCode}&id=${id}`)
            },
            reletRent(item) {
                this.currentTime = item.dueTime
                this.currentRentalId = item.housingRentalId
                this.isPickerShow = true
            },
            terRent(item) {
                this.currentTime = item.dueTime
                this.currentRentalId = item.housingRentalId
                this.istPickerShow = true
            },
            deleteRent(item) {
                this.currentRentalId = item.housingRentalId
                this.isModelShow = true
            },
            async dueTimeConfirm(e) {
                const time = uni.$u.timeFormat(e.value, 'yyyy-mm-dd')
                const res = await updateDueTime({
                    id: this.currentRentalId,
                    dueTime: time
                })
                if (res.code !== 200) {
                    uni.showToast({
                        title: "续租失败",
                        icon: "error",
                        duration: 1500
                    })
                    return
                }
                this.isPickerShow = false
                this.getHouseRentInfoList()
            },
            async terminateTimeConfirm(e) {
                const time = uni.$u.timeFormat(e.value, 'yyyy-mm-dd')
                const res = await updateDueTime({
                    id: this.currentRentalId,
                    terminationTime: time
                })
                if (res.code !== 200) {
                    uni.showToast({
                        title: "终止失败",
                        icon: "error",
                        duration: 1500
                    })
                    return
                }
                this.istPickerShow = false
                this.getHouseRentInfoList()
            },
            async deleteRentalConfirm() {
                const {
                    code,
                    data
                } = await deleteRentalInfo(this.currentRentalId)
                if (code !== 200) {
                    uni.showToast({
                        title: "删除失败",
                        icon: "error",
                        duration: 1500
                    })
                    return
                }
                this.isModelShow = false
                this.getHouseRentInfoList()
            },
            findObjValue(value, obj) {
                const res = obj.find(item => {
                    return item.value == value
                })
                return res.name
            },
        }
    }
@@ -423,7 +435,7 @@
                            &>.u-button {
                                margin: 0 16rpx;
                            }
                            .btn-item {
                                margin: 0 10rpx;
                                border: 0;
subPackage/workbench/views/cscj.vue
@@ -152,7 +152,7 @@
    import lineItem from "@/subPackage/workbench/components/lineItem.vue"
    import {
        getLabelList
    } from "@/api/label/label";
    } from "@/api/label/categoryLabel.js";
    import {
        getDoorplateAddressDetail,
        getDoorplateAddressList
@@ -536,8 +536,8 @@
                    data.forEach(label => {
                        this.labelList[0].children.push({
                            id: label.id,
                            text: label.labelName
                            id: label.categoryNo,
                            text: label.categoryName
                        })
                    })
                })
subPackage/workbench/views/csjl.vue
@@ -5,82 +5,128 @@
                <u-tabs :list="tabsList" @click="tabClick" :scrollable="false"></u-tabs>
            </view>
            <view class="search">
                <u--input placeholder="请输入场所名称" prefixIcon="search" class="search-ipt"
                    prefixIconStyle="font-size: 22px;color: #909399"></u--input>
                <u-search placeholder="请输入场所名称" v-model="iptContext" :clearabled="true" :showAction="true" :animation="true"
                    @search="searchConfirm" @clear="clearConfirm"></u-search>
            </view>
        </view>
        <view class="info-box">
            <view class="records-card" v-for="records in recordsData" :key="records.id">
            <view class="records-card" v-for="(records, index) in recordsData" :key="records.id"
                @click="pushPage(records)">
                <view class="title">
                    <text>{{ records.title }}</text>
                    <text>{{ records.time }}</text>
                    <text>{{ records.placeName }}</text>
                    <text>{{ records.createTime }}</text>
                </view>
                <view class="info">
                    <view class="charge-man">
                        <text>场所负责人:</text>
                        <text>{{ records.chargeMan }}</text>
                        <text>{{ records.username || '未完善' }}</text>
                    </view>
                    <view class="phone">
                        <text>手机号:</text>
                        <text>{{ records.phone }}</text>
                        <text>{{ records.phone || '未完善' }}</text>
                    </view>
                </view>
            </view>
        </view>
        <u-loadmore :status="status" loadmoreText="开始加载" loadingText="数据加载中" nomoreText="数据加载完成" line />
    </view>
</template>
<script>
    import {
        getLocationRecord
    } from '@/api/place/place.js'
    export default {
        data() {
            return {
                tabsList: [{
                        id: 1,
                        type: 1,
                        name: '全部'
                    },
                    {
                        id: 2,
                        type: 2,
                        name: '待完善'
                    },
                    {
                        id: 3,
                        type: 3,
                        name: '已完善'
                    }
                ],
                recordsData: [{
                        id: 1,
                        title: '科创4栋',
                        time: new Date().toLocaleString(),
                        chargeMan: '铃铃铃',
                        phone: '17678654431'
                    },
                    {
                        id: 2,
                        title: '科创4栋',
                        time: new Date().toLocaleString(),
                        chargeMan: '铃铃铃',
                        phone: '17678654431'
                    },
                    {
                        id: 3,
                        title: '科创4栋',
                        time: new Date().toLocaleString(),
                        chargeMan: '铃铃铃',
                        phone: '17678654431'
                    },
                    {
                        id: 4,
                        title: '科创4栋',
                        time: new Date().toLocaleString(),
                        chargeMan: '铃铃铃',
                        phone: '17678654431'
                    }
                ]
                recordsData: [],
                iptContext: '',
                pagingParams: {
                    current: 1,
                    size: 10
                },
                tabsType: 1,
                status: 'nomore'
            }
        },
        onShow() {
            this.getrRecordList()
        },
        onReachBottom() {
            this.pagingParams.current++
            this.getrRecordList()
        },
        methods: {
            tabClick() {
            async getrRecordList(placeName = this.iptContext, isPerfect = this.tabsType) {
                this.status = 'loadmore'
                const {
                    code,
                    data: {
                        records
                    }
                } = await getLocationRecord({
                    placeName,
                    isPerfect,
                    ...this.pagingParams
                })
                if (code !== 200) {
                    this.$u.func.showToast({
                        title: "获取数据失败",
                        icon: "error"
                    })
                    return
                }
                this.recordsData = [...this.recordsData, ...records]
                this.status = 'nomore'
            },
            tabClick({
                type
            }) {
                this.pagingParams = {
                    current: 1,
                    size: 10
                }
                this.recordsData = []
                this.tabsType = type
                this.getrRecordList(this.iptContext, this.tabsType)
            },
            searchConfirm() {
                this.recordsData = []
                this.pagingParams = {
                    current: 1,
                    size: 10
                }
                this.getrRecordList(this.iptContext, this.tabsType)
            },
            clearConfirm() {
                this.iptContext = ''
                this.searchConfirm()
            },
            pushPage({
                houseCode
            }) {
                if (!houseCode) {
                    uni.showToast({
                        title: "关键参数为空",
                        icon: "error"
                    })
                    return
                }
                let url = "/subPackage/workbench/views/cscj?stdId=" + houseCode
                this.$u.func.globalNavigator(url)
            }
        }
    }
@@ -88,15 +134,14 @@
<style lang="scss" scoped>
    .container {
        height: 100%;
        min-height: 100%;
        overflow-y: auto;
        background-color: #f6f6f6;
        .tabsAndSearch {
            background-color: #fff;
            .tabs {
            }
            .tabs {}
            .search {
                padding: 20rpx 70rpx;
subPackage/workbench/views/rental.vue
@@ -1,188 +1,295 @@
<template>
    <view class="">
        <view class="header bgc-ff">
            <view class="filter-box">
                <chenchuang-CCDropDownFilter :filterData='filterData' :defaultIndex='defaultIndex'
                    @ed='handleSelect'></chenchuang-CCDropDownFilter>
            </view>
            <view class="search-box">
                <u-search placeholder="请输入租户名" v-model="keyword"  :clearabled="true" :showAction="true"  :animation="true"></u-search>
            </view>
        </view>
        <view class="content">
            <view class="row flex j-c-s-b a-i-c">
                <view class="row-item bgc-ff flex a-i-c">
                    <view class="dot bgc-green"></view>
                    <text class="f-24">长期3户 (3)人</text>
                </view>
                <view class="row-item bgc-ff flex a-i-c">
                    <view class="dot bgc-main"></view>
                    <text class="f-24">长期3户 (3)人</text>
                </view>
                <view class="row-item bgc-ff flex a-i-c">
                    <view class="dot bgc-orange"></view>
                    <text class="f-24">长期3户 (3)人</text>
                </view>
            </view>
            <view class="list bgc-ff" v-for="i in 3">
                <view class="flex j-c-s-b a-i-c">
                    <view class="flex a-i-c">
                        <text class="f-32 mr-50">黄莺</text>
                        <view class="flex a-i-c">
                            <u-icon name="phone-fill" color="#017BFC"></u-icon>
                            <text class="f-28 ml-10">15180114174</text>
                        </view>
                    </view>
                    <u-tag text="未到期"  type="success" plain plainFill></u-tag>
                </view>
                <view class="list-address f-28 c-99">
                    江西省上饶市信州区西市街道万达社区居民委员会滨江西路66号万达晶座11栋303室
                </view>
                <view class="list-action flex ">
                    <view class="action-item">
                        <u-icon name="/static/icon/list-02.png"  width="40rpx"  height="40rpx"></u-icon>
                        <text class="f-28 c-main ml-10">租客管理</text>
                    </view>
                    <view class="action-item">
                        <u-icon name="/static/icon/list-01.png"  width="40rpx"  height="40rpx"></u-icon>
                        <text class="f-28 c-main ml-10">租客管理</text>
                    </view>
                </view>
            </view>
        </view>
    </view>
</template>
<script>
    export default {
        data() {
            return {
                filterData: [
                    [
                        {
                          name: '全部',
                          value: ''
                        },
                        {
                            name: '待审核',
                            value: '1'
                        },
                        {
                            name: '未到期',
                            value: '2'
                        },
                        {
                            name: '即将到期',
                            value: '3'
                        },
                        {
                            name: '已到期',
                            value: '3'
                        }
                    ],
                    [
                        {
                            name: '楼层',
                            value: ''
                        },
                        {
                            name: '1楼',
                            value: '1'
                        },
                        {
                            name: '2楼',
                            value: '2'
                        },
                        {
                            name: '3楼',
                            value: '3'
                        }
                    ]
                ],
                defaultIndex: [0, 0],
                keyword:""
            }
        },
        methods: {
            handleSelect(res) {
                console.log('选择res = ' + JSON.stringify(res));
            },
        }
    }
</script>
<template>
    <view class="">
        <view class="header bgc-ff">
            <view class="filter-box">
                <chenchuang-CCDropDownFilter :filterData='filterData' :defaultIndex='defaultIndex'
                    @ed='handleSelect'></chenchuang-CCDropDownFilter>
            </view>
            <view class="search-box">
                <u-search placeholder="请输入租户名" v-model="keyword" :clearabled="true" :showAction="true" :animation="true"
                    @search="search" @clear="clear"></u-search>
            </view>
        </view>
        <view class="content">
            <view class="row flex  a-i-c" style="flex-wrap: wrap;">
                <!-- <view class="row-item bgc-ff flex a-i-c">
                    <view class="dot bgc-green"></view>
                    <text class="f-24">长期3户 (3)人</text>
                </view>
                <view class="row-item bgc-ff flex a-i-c">
                    <view class="dot bgc-main"></view>
                    <text class="f-24">中期3户 (3)人</text>
                </view>
                <view class="row-item bgc-ff flex a-i-c">
                    <view class="dot bgc-orange"></view>
                    <text class="f-24">短期3户 (3)人</text>
                </view> -->
                <view v-for="(item,index) in statistics" :key="index" class="row-item bgc-ff flex a-i-c">
                    <view v-if="item.term =='shortTerm' " class="dot bgc-orange"></view>
                    <view v-if="item.term =='middleTerm' " class="dot bgc-main"></view>
                    <view v-if="item.term =='longTerm' " class="dot bgc-green"></view>
                    <text class="f-24">{{formatTerm(item.term)}}{{item.total}}户 ({{item.personNum}})人</text>
                </view>
            </view>
            <view class="list bgc-ff" v-for="records in tenantList">
                <view class="flex j-c-s-b a-i-c">
                    <view class="flex a-i-c">
                        <text class="f-32 mr-50">{{ records.tenantName }}</text>
                        <view class="flex a-i-c">
                            <u-icon name="phone-fill" color="#017BFC"></u-icon>
                            <text class="f-28 ml-10">{{ records.phone || '未填写' }}</text>
                        </view>
                    </view>
                    <u-tag text="未到期" type="success" plain plainFill></u-tag>
                </view>
                <view class="list-address f-28 c-99">
                    {{ records.houseName }}
                </view>
                <view class="list-action flex ">
                    <view class="action-item" @click="tenantManage(records)">
                        <u-icon name="/static/icon/list-02.png" width="40rpx" height="40rpx"></u-icon>
                        <text class="f-28 c-main ml-10">租客管理</text>
                    </view>
                    <view class="action-item">
                        <u-icon name="/static/icon/list-01.png" width="40rpx" height="40rpx"></u-icon>
                        <text class="f-28 c-main ml-10">走访日志</text>
                    </view>
                </view>
            </view>
        </view>
    </view>
</template>
<script>
    import {
        getRentalHouseContent,
        getPage,
        getStatistics
    } from '@/api/houseRental/houseRental.js'
    export default {
        data() {
            return {
                filterData: [
                    [{
                            name: '全部',
                            value: ''
                        },
                        {
                            name: '待审核',
                            value: '1'
                        },
                        {
                            name: '未到期',
                            value: '2'
                        },
                        {
                            name: '即将到期',
                            value: '3'
                        },
                        {
                            name: '已到期',
                            value: '3'
                        }
                    ],
                    [{
                            name: '楼层',
                            value: ''
                        },
                        {
                            name: '1楼',
                            value: '1'
                        },
                        {
                            name: '2楼',
                            value: '2'
                        },
                        {
                            name: '3楼',
                            value: '3'
                        }
                    ]
                ],
                defaultIndex: [0, 0],
                keyword: "",
                statistics: [],
                tenantList: [],
                status: [{
                        name: '未到期',
                        value: 0
                    },
                    {
                        name: '已到期',
                        value: 1
                    },
                    {
                        name: '已终止',
                        value: 2
                    },
                ],
            }
        },
        computed: {
            formatTerm() {
                return (term => {
                    if (term == 'longTerm') {
                        return "长期"
                    } else if (term == 'middleTerm') {
                        return "中期"
                    } else if (term == 'shortTerm') {
                        return "短期"
                    }
                })
            }
        },
        onLoad() {
            this.getStatistics()
            this.getList()
        },
        onShow() {
            this.getRentalHouseInfo()
        },
        methods: {
            handleSelect(res) {
                console.log('选择res = ' + JSON.stringify(res));
            },
            getStatistics() {
                getStatistics().then(res => {
                    console.log(res, "+------------")
                    this.statistics = res.data
                })
            },
            getList() {
                getPage(this.query).then(res => {
                    console.log(res)
                })
            },
            findObjValue(value, obj) {
                const res = obj.find(item => {
                    return item.value == value
                })
                return res.name
            },
            async getRentalHouseInfo() {
                const {
                    code,
                    data: {
                        records
                    }
                } = await getRentalHouseContent({
                    tenantName: this.keyword
                })
                if (code !== 200) {
                    uni.showToast({
                        title: "数据请求错误",
                        icon: "error"
                    })
                    return
                }
                this.tenantList = records
            },
            search() {
                this.getRentalHouseInfo()
            },
            clear() {
                this.keyword = ''
                this.search()
            },
            tenantManage({
                houseCode,
                id
            }) {
                this.$u.func.globalNavigator(`/subPackage/bs/views/rentDetail?houseCode=${houseCode}&id=${id}`)
            }
        }
    }
</script>
<style lang="scss">
    page {
        background-color: #F5F5F5;
    }
    .header{
        width:100%;
    .header {
        width: 100%;
        position: fixed;
        top:0;
        left:0;
        top: 0;
        left: 0;
        z-index: 10;
    }
    .filter-box{
        width:100%;
        height:100rpx;
    .filter-box {
        width: 100%;
        height: 100rpx;
    }
    .search-box{
        padding:20rpx 24rpx 30rpx;
    .search-box {
        padding: 20rpx 24rpx 30rpx;
    }
    .content{
        width:100%;
        margin-top:220rpx;
    .content {
        width: 100%;
        margin-top: 220rpx;
        padding: 0 30rpx;
        box-sizing: border-box;
        .row{
            width:100%;
            padding:20rpx 0;
        .row {
            width: 100%;
            padding: 20rpx 0;
        }
        .row-item{
            width:220rpx;
            height:46rpx;
        .row-item {
            width: calc(100% / 3);
            height: 46rpx;
            border-radius: 30rpx;
            padding: 0 20rpx;
            box-sizing: border-box;
        }
        .dot{
            width:10rpx;
            height:10rpx;
        .dot {
            width: 10rpx;
            height: 10rpx;
            border-radius: 50%;
            margin-right:18rpx;
            margin-right: 18rpx;
        }
        .bgc-green{
            background-color:#30D17C;
        .bgc-green {
            background-color: #30D17C;
        }
        .bgc-orange{
            background-color:#FFAC3D;
        .bgc-orange {
            background-color: #FFAC3D;
        }
        .list{
            width:100%;
            padding:30rpx 30rpx 0;
        .list {
            width: 100%;
            padding: 30rpx 30rpx 0;
            box-sizing: border-box;
            margin-bottom:20rpx;
            .list-address{
                padding:30rpx 0;
            margin-bottom: 20rpx;
            .list-address {
                padding: 30rpx 0;
            }
            .list-action{
                padding:22rpx 0 30rpx;
                border-top:1px solid #F5F5F5;
            .list-action {
                padding: 22rpx 0 30rpx;
                border-top: 1px solid #F5F5F5;
            }
            .action-item{
            .action-item {
                display: flex;
                flex:1;
                flex: 1;
                justify-content: center;
            }
            .action-item:first-child{
                border-right:1px solid #DBDBDB;
            .action-item:first-child {
                border-right: 1px solid #DBDBDB;
            }
            .mr-50{
                margin-right:50rpx;
            .mr-50 {
                margin-right: 50rpx;
            }
        }
    }
    }
</style>