GULIMMO
2023-11-06 9dba26f6865d5c8cd44690dda5a4806fa4a6b262
房屋上报、租户详情、房屋详情逻辑修改
3 files modified
294 ■■■■ changed files
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/roomDetails/index.vue 266 ●●●● patch | view | raw | blame | history
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/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;