From f32cff008d5ebdf1fdf3c8369fb8f7b0c2b4448e Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Thu, 02 Nov 2023 18:47:29 +0800
Subject: [PATCH] Merge branch 'master' of http://s16s652780.51mypc.cn:49896/r/jczz_app

---
 subPackage/bs/components/list/rentList.vue |  251 ++++++++++++++++++++++++++++++++------------------
 1 files changed, 160 insertions(+), 91 deletions(-)

diff --git a/subPackage/bs/components/list/rentList.vue b/subPackage/bs/components/list/rentList.vue
index 204c455..775b31a 100644
--- a/subPackage/bs/components/list/rentList.vue
+++ b/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>
\ No newline at end of file

--
Gitblit v1.9.3