feat: 优化首页服务入口与租住业务流程

补齐首页待办跳转、押金支付引导和多类租住服务页面能力,统一租客端关键业务流程体验。
This commit is contained in:
liangjian
2026-08-25 13:53:12 +08:00
parent 1111ac148b
commit 9fee2c3a74
41 changed files with 6985 additions and 933 deletions

View File

@@ -30,6 +30,10 @@ function buildIotGatewayUrl(path = '') {
return `${iotBaseUrl}${normalizedPath}`
}
function shouldIgnoreGatewayRoom404(error = {}) {
return Number(error && error.statusCode) === 404
}
function normalizeUploadResponse(data) {
if (typeof data !== 'string') {
return Promise.resolve(data)
@@ -445,14 +449,15 @@ export function orderSearchedReservationFlow(data = {}, language) {
})
}
export function roomInspectionMyPage(params = {}, language) {
export function roomInspectionMyPage(params = {}, language, options = {}) {
return request({
url: '/roominspection/my/page',
method: 'GET',
params: params || {},
header: {
'X-Requested-Language': resolveLanguageHeader(language)
}
},
...options
})
}
@@ -733,6 +738,18 @@ export function notificationRead(code, language) {
})
}
export function getMyTodoList(params = {}, language, options = {}) {
return request({
url: '/todo/my/list',
method: 'GET',
params: params || {},
header: {
'X-Requested-Language': resolveLanguageHeader(language)
},
...options
})
}
// --- 房源与区域 ---
export function areaPagination(params = {}, language) {
return request({
@@ -746,6 +763,18 @@ export function areaPagination(params = {}, language) {
})
}
export function areaDetailPagination(params = {}, language) {
return request({
url: '/area/pagination',
method: 'GET',
params,
header: {
'X-Requested-Language': resolveLanguageHeader(language)
},
withAuth: false
})
}
export function facilityManagers(params = {}, language) {
return request({
url: '/facility/managers',
@@ -855,8 +884,15 @@ export function gatewayRoomDeviceList(brandId = '', roomCode = '', language) {
method: 'POST',
header: {
'X-Requested-Language': resolveLanguageHeader(language)
}
},
hideErrorToast: true
})
.catch((error) => {
if (shouldIgnoreGatewayRoom404(error)) {
return []
}
return Promise.reject(error)
})
}
function stringifyGatewayExecuteValue(value = '') {
@@ -959,6 +995,38 @@ export function gatewaySyncDeviceInfo(brandId = '', deviceNo = '', language) {
})
}
// --- 门锁 ---
export function deviceGetDevicesByRoomAsync(params = {}, language) {
const roomCode = String((params && params.roomCode) || '').trim()
if (!roomCode) {
return Promise.reject(new Error('roomCode 不能为空'))
}
return request({
url: '/device/getdevicesbyroomasync',
method: 'GET',
params: {
roomCode
},
header: {
'X-Requested-Language': resolveLanguageHeader(language)
},
hideErrorToast: true
})
}
export function lockHxjOpenLock(data = {}, language) {
return createJsonPatchRequest('/LockHxj/OpenLock', data, language)
}
export function lockHxjGetKeysByUserCode(data = {}, language) {
return createJsonPatchRequest('/LockHxj/GetKeysByUserCode', data, language)
}
export function lockHxjAddFingerKey(data = {}, language) {
return createJsonPatchRequest('/LockHxj/AddFingerKey', data, language)
}
// --- 内容 ---
export function bannerAll(language) {
return request({