feat(referral): 新增楼栋单元楼层房号精细选择功能

- 将房号唯一键增加楼层字段,修改相关函数支持楼层处理
- 新增楼栋、单元、楼层、房号的选择状态和搜索过滤功能
- 实现楼栋、单元、楼层、房号的选择弹窗和清除按钮
- 表单改用选择控件替代输入框,隐藏字段同步表单数据
- 修改表单校验,验证楼栋、楼层、房号字段必填
- 编辑模式支持从dealerCode解析回填楼栋、单元、楼层、房号
- 优化房号规范化逻辑,去除楼层相关后缀
- 代码中统一使用规范化后的楼栋单元楼层房号构造唯一
This commit is contained in:
2026-04-16 17:09:58 +08:00
parent 8128e2ffb2
commit 099855e121
10 changed files with 1284 additions and 59 deletions

112
src/api/app/referral.ts Normal file
View File

@@ -0,0 +1,112 @@
/**
* 推荐客户 APIapp 模块)
* 小程序端调用
*/
import request from '@/utils/request'
/**
* 报备参数
*/
export interface ReferralParam {
customerName: string
customerPhone: string
customerCompany?: string
requirement?: string
appointmentTime?: string
remarks?: string
}
/**
* 推荐记录
*/
export interface ReferralRecord {
id: number
referralCode: string
referrerId?: number
referrerName?: string
referrerPhone?: string
customerName: string
customerPhone: string
customerCompany?: string
requirement?: string
appointmentTime?: string
remarks?: string
referralFee: string
referralStatus: number
referralStatusText?: string
invalidReason?: string
invalidTime?: string
confirmedTime?: string
settledTime?: string
createTime: string
}
/**
* 我的推荐统计
*/
export interface ReferralStats {
totalCount: number
pendingCount: number
validCount: number
settledCount: number
pendingAmount: string
referralCode?: string
}
/**
* 分页结果
*/
export interface PageResult<T> {
list: T[]
total: number
pageNum: number
pageSize: number
pages: number
}
/**
* 报备客户
*/
export function addReferral(data: ReferralParam) {
return request.post<{ code: number; message: string; data: ReferralRecord }>(
'/app/lead/referral/add',
data
)
}
/**
* 获取我的推荐码
*/
export function getMyReferralCode() {
return request.get<{ code: number; message: string; data: string }>(
'/app/lead/referral/my/code'
)
}
/**
* 获取我的推荐记录(分页)
*/
export function getMyReferrals(params: { pageNum?: number; pageSize?: number }) {
return request.get<{ code: number; message: string; data: PageResult<ReferralRecord> }>(
'/app/lead/referral/my',
{ params }
)
}
/**
* 获取我的推荐统计
*/
export function getMyStats() {
return request.get<{ code: number; message: string; data: ReferralStats }>(
'/app/lead/referral/my/stats'
)
}
/**
* 根据推荐码获取推荐人信息
*/
export function getReferrerByCode(code: string) {
return request.get<{ code: number; message: string; data: { referrerId: number; referrerName: string; referralCode: string } }>(
`/app/lead/referral/referrer/${code}`
)
}