diff --git a/api/apartment.js b/api/apartment.js
index be6491e..657adaf 100644
--- a/api/apartment.js
+++ b/api/apartment.js
@@ -6,7 +6,7 @@ import { get, post, put, del } from '../utils/request.js'
export default {
/**
- * 获取公寓列表
+ * 获取公寓列表(分页)
* @param {Object} params - 查询参数
* @param {number} params.page - 页码
* @param {number} params.pageSize - 每页数量
@@ -17,6 +17,15 @@ export default {
return get('/apartments', params)
},
+ /**
+ * 获取公寓列表(全部)
+ * @param {Object} params - 查询参数
+ * @returns {Promise}
+ */
+ list(params = {}) {
+ return get('/apartments/list', params)
+ },
+
/**
* 获取公寓详情
* @param {number} id - 公寓ID
diff --git a/api/bill.js b/api/bill.js
index 8fd820c..f8ec5e5 100644
--- a/api/bill.js
+++ b/api/bill.js
@@ -10,11 +10,22 @@ export default {
* @param {Object} params - 查询参数
* @param {number} params.page - 页码
* @param {number} params.pageSize - 每页数量
- * @param {string} params.month - 月份筛选
- * @param {string} params.status - 状态筛选
+ * @param {string} params.type - 类型筛选 income/expense
+ * @param {string} params.status - 状态筛选 unpaid/partial/paid/cancelled
+ * @param {string} params.startDate - 开始日期
+ * @param {string} params.endDate - 结束日期
* @returns {Promise}
*/
getList(params = {}) {
+ return get('/bills/list', params)
+ },
+
+ /**
+ * 获取所有账单(与Web端兼容的别名方法)
+ * @param {Object} params - 查询参数
+ * @returns {Promise}
+ */
+ getAll(params = {}) {
return get('/bills', params)
},
diff --git a/api/renter.js b/api/renter.js
index faa4b9c..7810fb5 100644
--- a/api/renter.js
+++ b/api/renter.js
@@ -11,9 +11,10 @@ export default {
* @param {number} params.page - 页码
* @param {number} params.pageSize - 每页数量
* @param {string} params.keyword - 搜索关键词
+ * @param {string} params.status - 状态
* @returns {Promise}
*/
- getList(params = {}) {
+ getAll(params = {}) {
return get('/renters', params)
},
diff --git a/api/room.js b/api/room.js
index 8994f5e..53e1429 100644
--- a/api/room.js
+++ b/api/room.js
@@ -6,7 +6,7 @@ import { get, post, put, del } from '../utils/request.js'
export default {
/**
- * 获取房间列表
+ * 获取房间列表(分页)
* @param {Object} params - 查询参数
* @param {number} params.apartmentId - 公寓ID
* @param {string} params.status - 房间状态
@@ -16,6 +16,17 @@ export default {
return get('/rooms', params)
},
+ /**
+ * 获取房间列表(全部)
+ * @param {Object} params - 查询参数
+ * @param {number} params.apartmentId - 公寓ID
+ * @param {string} params.status - 房间状态
+ * @returns {Promise}
+ */
+ list(params = {}) {
+ return get('/rooms/list', params)
+ },
+
/**
* 获取房间详情
* @param {number} id - 房间ID
diff --git a/pages/add-record/add-record.vue b/pages/add-record/add-record.vue
index 88753ce..c681df2 100644
--- a/pages/add-record/add-record.vue
+++ b/pages/add-record/add-record.vue
@@ -1,239 +1,353 @@
-
+
-
+
办理入住
-
- 提交
-
+
-
-
-
-
- 1
- 选择房间
-
-
-
- 2
- 租客信息
-
-
-
- 3
- 合同信息
-
-
-
-
-
- 选择公寓
-
-
-
@@ -245,8 +359,9 @@
export default {
data() {
return {
- currentStep: 1,
submitLoading: false,
+ showSuccess: false,
+ scrollIntoView: '',
apartments: [],
rooms: [],
selectedApartmentId: null,
@@ -261,15 +376,14 @@
endDate: '',
rent: '',
deposit: '',
+ operator: '',
waterStartReading: '',
electricStartReading: '',
remark: ''
},
paymentTypes: [
- { label: '月租', value: 'monthly' },
- { label: '季租', value: 'quarterly' },
- { label: '半年租', value: 'half_year' },
- { label: '年租', value: 'yearly' }
+ { label: '月租', value: 'monthly', desc: '每月支付' },
+ { label: '年租', value: 'yearly', desc: '每年支付' }
]
}
},
@@ -279,31 +393,23 @@
},
periodOptions() {
if (this.form.paymentType === 'monthly') {
- return Array.from({ length: 12 }, (_, i) => ({
+ return Array.from({ length: 24 }, (_, i) => ({
label: `${i + 1}个月`,
value: i + 1
}))
- } else if (this.form.paymentType === 'quarterly') {
- return Array.from({ length: 4 }, (_, i) => ({
- label: `${i + 1}个季度`,
- value: i + 1
- }))
- } else if (this.form.paymentType === 'half_year') {
- return Array.from({ length: 2 }, (_, i) => ({
- label: `${i + 1}个半年`,
- value: i + 1
- }))
} else {
- return Array.from({ length: 5 }, (_, i) => ({
+ return Array.from({ length: 10 }, (_, i) => ({
label: `${i + 1}年`,
value: i + 1
}))
}
+ },
+ canSubmit() {
+ return this.form.roomId && this.form.renterName.trim() && this.form.startDate && this.form.rent
}
},
onLoad(options) {
this.loadApartments()
- // 设置默认开始日期为今天
this.form.startDate = this.formatDate(new Date())
if (options.roomId) {
this.preSelectRoom(options.roomId)
@@ -324,7 +430,7 @@
methods: {
async loadApartments() {
try {
- const res = await apartmentApi.getList({ pageSize: 999 })
+ const res = await apartmentApi.list()
if (res.data) {
this.apartments = res.data
}
@@ -332,10 +438,10 @@
console.error('加载公寓列表失败:', error)
}
},
-
+
async loadRooms(apartmentId) {
try {
- const res = await roomApi.getList({ apartmentId, pageSize: 999 })
+ const res = await roomApi.list({ apartmentId })
if (res.data) {
this.rooms = res.data
}
@@ -353,7 +459,6 @@
await this.loadRooms(room.apartmentId)
this.form.roomId = roomId
this.form.rent = room.rent || ''
- this.currentStep = 2
}
} catch (error) {
console.error('加载房间详情失败:', error)
@@ -388,56 +493,17 @@
const startDate = new Date(this.form.startDate)
const endDate = new Date(startDate)
- switch(this.form.paymentType) {
- case 'monthly':
- endDate.setMonth(endDate.getMonth() + this.leasePeriod)
- break
- case 'quarterly':
- endDate.setMonth(endDate.getMonth() + (this.leasePeriod * 3))
- break
- case 'half_year':
- endDate.setMonth(endDate.getMonth() + (this.leasePeriod * 6))
- break
- case 'yearly':
- endDate.setFullYear(endDate.getFullYear() + this.leasePeriod)
- break
+ if (this.form.paymentType === 'monthly') {
+ endDate.setMonth(endDate.getMonth() + this.leasePeriod)
+ } else {
+ endDate.setFullYear(endDate.getFullYear() + this.leasePeriod)
}
this.form.endDate = this.formatDate(endDate)
},
- nextStep() {
- if (this.currentStep < 3) {
- this.currentStep++
- }
- },
-
- prevStep() {
- if (this.currentStep > 1) {
- this.currentStep--
- }
- },
-
async submitForm() {
- // 表单验证
- if (!this.form.roomId) {
- uni.showToast({ title: '请选择房间', icon: 'none' })
- this.currentStep = 1
- return
- }
- if (!this.form.renterName.trim()) {
- uni.showToast({ title: '请输入租客姓名', icon: 'none' })
- this.currentStep = 2
- return
- }
- if (!this.form.startDate) {
- uni.showToast({ title: '请选择开始日期', icon: 'none' })
- return
- }
- if (!this.form.rent) {
- uni.showToast({ title: '请输入租金', icon: 'none' })
- return
- }
+ if (!this.canSubmit) return
this.submitLoading = true
try {
@@ -451,21 +517,14 @@
endDate: this.form.endDate,
rent: parseFloat(this.form.rent),
deposit: parseFloat(this.form.deposit) || 0,
+ operator: this.form.operator.trim() || null,
waterStartReading: this.form.waterStartReading ? parseFloat(this.form.waterStartReading) : null,
electricStartReading: this.form.electricStartReading ? parseFloat(this.form.electricStartReading) : null,
remark: this.form.remark.trim() || null
}
await rentalApi.createWithRenter(submitData)
-
- uni.showToast({
- title: '办理入住成功',
- icon: 'success'
- })
-
- setTimeout(() => {
- uni.switchTab({ url: '/pages/properties/properties' })
- }, 1500)
+ this.showSuccess = true
} catch (error) {
console.error('办理入住失败:', error)
uni.showToast({
@@ -477,25 +536,18 @@
}
},
+ closeSuccess() {
+ this.showSuccess = false
+ uni.switchTab({ url: '/pages/properties/properties' })
+ },
+
formatDate(date) {
const d = new Date(date)
return `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, '0')}-${String(d.getDate()).padStart(2, '0')}`
},
goBack() {
- if (this.currentStep > 1) {
- this.prevStep()
- } else {
- uni.navigateBack()
- }
- },
-
- saveRental() {
- if (this.currentStep < 3) {
- this.nextStep()
- } else {
- this.submitForm()
- }
+ uni.navigateBack()
}
}
}
@@ -504,22 +556,27 @@
diff --git a/pages/apartment-add/apartment-add.vue b/pages/apartment-add/apartment-add.vue
index b6998c0..3b765c4 100644
--- a/pages/apartment-add/apartment-add.vue
+++ b/pages/apartment-add/apartment-add.vue
@@ -30,85 +30,33 @@
/>
- 公寓地址
+ 地址
-
- 负责人
-
-
-
- 联系电话
-
-
-
-
-
-
-
- 状态设置
-
-
- 运营状态
-
-
- {{option.label}}
-
-
-
-
-
-
-
-
- 备注信息
-
-
+
+ 描述
- {{form.remark.length}}/200
-
-
-
-
-
diff --git a/pages/rentals/rentals.vue b/pages/rentals/rentals.vue
index 8101a2d..df29e52 100644
--- a/pages/rentals/rentals.vue
+++ b/pages/rentals/rentals.vue
@@ -3,7 +3,12 @@
- 租赁记录
+
+
+
+
+ 租赁记录
+
@@ -31,24 +36,6 @@
-
-
-
- {{activeCount}}
- 在租
-
-
-
- {{expiringCount}}
- 即将到期
-
-
-
- {{expiredCount}}
- 已到期
-
-
-
+
+
+
+
+
+
+
+
+ 公寓
+
+
+ {{apt.label}}
+
+
+
+
+
+
+ 房间
+
+
+ {{room.label}}
+
+
+
+
+
+
+ 租赁状态
+
+
+ {{status.label}}
+
+
+
+
+
+
+ 付租方式
+
+
+ {{type.label}}
+
+
+
+
+
+
+ 租客姓名
+
+
+
+
+
+