⚙️ uniCloud 后台未连通
本项目使用 支付宝云 uniCloud(空间 env-00jy6ttlqdrg),
不需要 腾讯云 SecretId / SecretKey。页面会探测能否访问已 URL 化的 admin 云函数。
探测结果:{{ cloudStatus.message }}
当前 API:{{ cloudStatus.cloudUrl }}
uniCloud 控制台(支付宝云)
确认云函数 admin、webadmin-api 已上传并开启 URL 化
域名示例:https://env-00jy6ttlqdrg.dev-hz.cloudbasefunction.cn
在 HBuilderX 关联服务空间 lfw-alipay,与小程序同一空间
本地运行 web-admin(可选)
编辑 web-admin/server.js 中的 ADMIN_CLOUD_URL(指向 admin 的 URL 化地址):
const ADMIN_CLOUD_URL = 'https://env-00jy6ttlqdrg.dev-hz.cloudbasefunction.cn/admin';
然后:
cd web-admin && npm install && node server.js
浏览器打开 http://localhost:3000
网页托管版(你现在可能是这种)
静态页通过 webadmin-api 云函数访问后台,请确认已重新上传 js/app.js,且 API_BASE 指向新空间 URL 化地址。
微信/浏览器需能访问该域名(跨域已在云函数侧配置)。
系统总览 LIVE
用户分布 LIVE
用户管理
| ID | 头像 | 昵称 | 手机号 | 积分 | 隐私保护 | 状态 | 注册时间 | 最后活跃 | 操作 | |
|---|---|---|---|---|---|---|---|---|---|---|
{{ u._id }} |
|
{{ u.nickName || '未设置' }} |
{{ i === 0 ? '登录' : (u.phones.length > 1 ? '发布' : '') }}
{{ p }}
-
|
{{ u.credits || 0 }} 明细› | 📞 开 🔒 关 | 🚫 已拉黑 正常 | {{ formatTime(u.createTime) }} | {{ formatTime(getUserLastActive(u)) }} |
房源和需求
| 类型 | 分类 | 发布者 | 联系电话 | 价格 | 状态 | 消耗积分 | 最后在线 | 提交时间 | 操作 | |
|---|---|---|---|---|---|---|---|---|---|---|
| {{ item.publishTypeText || '-' }} | {{ item.categoryText || '-' }} |
|
{{ maskPhoneIfNeeded(item.contactPhone) || '-' }} | {{ item.priceText || '面议' }} | {{ getStatusText(item.status) }} |
共 {{ listingCreditOf(item._id).total }} 积分 · {{ listingCreditOf(item._id).contactCount }} 人联系
赠送 {{ listingCreditOf(item._id).gift }}
充值 {{ listingCreditOf(item._id).recharge }}
|
{{ formatTime(item._realLastActiveTime || item.publisherLastActiveTime || item.updateTime || item.createTime) }} | {{ formatTime(item.createTime) }} |
房源和需求
| 类型 | 分类 | 小区 | 发布者 | 联系电话 | 价格 | 状态 | 消耗积分 | 最后在线 | 提交时间 | 操作 |
|---|---|---|---|---|---|---|---|---|---|---|
| {{ item.publishTypeText || '-' }} | {{ item.categoryText || '-' }} | {{ item.community || '-' }} |
|
{{ maskPhoneIfNeeded(item.contactPhone) || '-' }} | {{ item.priceText || '面议' }} | {{ getStatusText(item.status) }} |
共 {{ listingCreditOf(item._id).total }} 积分 · {{ listingCreditOf(item._id).contactCount }} 人联系
赠送 {{ listingCreditOf(item._id).gift }}
充值 {{ listingCreditOf(item._id).recharge }}
|
{{ formatTime(item._realLastActiveTime || item.publisherLastActiveTime || item.updateTime || item.createTime) }} | {{ formatTime(item.createTime) }} |
| 类型 | 分类 | 意向区域 | 发布者 | 联系电话 | 预算 | 状态 | 消耗积分 | 最后在线 | 提交时间 | 操作 |
|---|---|---|---|---|---|---|---|---|---|---|
| {{ item.publishTypeText || '-' }} | {{ item.categoryText || '-' }} | {{ item.intentArea || '-' }} |
|
{{ maskPhoneIfNeeded(item.contactPhone) || '-' }} | {{ item.priceText || '面议' }} | {{ getStatusText(item.status) }} |
共 {{ listingCreditOf(item._id).total }} 积分 · {{ listingCreditOf(item._id).contactCount }} 人联系
赠送 {{ listingCreditOf(item._id).gift }}
充值 {{ listingCreditOf(item._id).recharge }}
|
{{ formatTime(item._realLastActiveTime || item.publisherLastActiveTime || item.updateTime || item.createTime) }} | {{ formatTime(item.createTime) }} |
ℹ️ 本板块仅可查看本代理区域的房源与需求信息,不可修改、审批或删除;如需操作请联系平台管理员。
聊天管理
选择左侧会话查看聊天记录
系统积分
微信支付配置
普通商户 V3 支付。参数获取:微信支付商户平台 → 账户中心 → API 安全(API 证书、APIv3 密钥)。
iOS 虚拟支付配置(苹果支付)
苹果手机购买积分必须走小程序「虚拟支付」(米大师,iOS 自动路由苹果 IAP)。开通入口:微信公众平台 → 虚拟支付。与上方普通微信支付是两套独立账号、参数互不通用。
区域积分设置
配置您区域内用户生效的积分数值。留空表示沿用上级/平台默认,仅填写需要覆盖的项即可。
客服服务管理
在对应板块输入用户ID,即可把该用户设为管理员账号或客服联系人;各客服板块开关控制用户端是否展示该服务(管理员账号无入口开关)。
首页头图广告
上传图片后将在小程序首页顶部或发布页滚动播报,最多 5 张,可分别控制首页与发布页的显示。
色斑图
上传小程序背景色斑图后,用户可在「我的 → 设置 → 设置背景图」中选择使用,最多 30 张。
账号管理
创建子账号并分配可访问的功能板块。子账号只能操作被授权的功能。
| 账号 | 类型 | 权限板块 | 创建时间 | 操作 |
|---|---|---|---|---|
| {{ acc.username[0].toUpperCase() }} {{ acc.username }} (当前) | {{ acc.isSuperAdmin ? '超级管理员' : '子账号' }} | 全部板块 {{ MENU_LABELS[k] || k }} 未分配 | {{ formatTime(acc.createdAt) }} |
充值账单管理
查看、管理用户积分充值订单
{{ b.outTradeNo }}
积分消耗明细
{{ isCommunityAccount ? '仅展示本小区房源/需求中被消耗掉的充值积分——未消耗的充值、赠送积分均不归物业结算' : (isAgentAccount ? '仅展示您区域内的积分消耗明细与充值统计' : '按区域/小区查看房源积分消耗情况,支持按充值平台筛选') }}
{{ creditLogTypeText(l.type) }}
{{ creditLogPlatformText(l.platform) }}
代理商账户管理
{{ account && account.isSuperAdmin ? '管理全部区域代理商账号,保存即生效' : '管理您区域内的下级代理商账号,保存即生效' }}
{{ row.username }}
·
{{ agentRegionText(row) }}
·
安卓 {{ Math.round((row.androidRate || 0) * 100) }}%
·
苹果 {{ Math.round((row.iosRate || 0) * 100) }}%
平台扣 {{ ratePct(row.androidPlatformRate) }} / {{ ratePct(row.iosPlatformRate) }}
{{ row.contact }} {{ maskPhoneIfNeeded(row.phone) }}
📜 操作日志
| 时间 | 操作人 | 操作类型 | 对象 | 明细 |
|---|---|---|---|---|
| {{ formatTime(l.createTime) }} | {{ l.operatorName }} | {{ l.action === 'create' ? '新增' : (l.action === 'update' ? '编辑' : (l.action === 'delete' ? '删除' : '启用/禁用')) }} | {{ l.targetName || '—' }} | {{ l.detail }} |
代理商数据看板
充值、结算与业务数据总览
⚠️ 部分充值无法归属到当前区域,仅充值金额卡片未计入(不影响结算)。 结算规则:物业只结算「在本小区被消耗掉的充值积分」——用户消耗积分时先扣充值积分、再扣赠送积分,赠送部分不产生结算;物业结算 = (消耗的充值积分 − 举报退款扣减) × (1 − 平台扣除) × 物业结算比例。举报属实退回的充值积分在退款发生时间扣减。物业账号归属其上级代理,结算金额由上级代理发放。 结算规则:只结算「在您区域内被消耗掉的充值积分」——用户消耗积分时先扣充值积分、再扣赠送积分,赠送部分不产生结算;结算 = (消耗的充值积分 − 举报退款扣减) × (1 − 平台扣除) × 本级结算比例。按消耗发生时间与内容所在区域归属,充值后未消耗、或在区域外消耗的充值均不产生结算;举报属实退回的充值积分在退款发生时间扣减。上方「充值金额」仍按用户账号区域统计,仅供展示,不作为结算依据。
小区积分统计
统计区域:{{ agentDashScopeText }} |从区域内房源/需求自动提取小区名单(同一小区多人发布只显示一次),点击选择(可多选),也可手动输入 |默认统计本物业绑定的全部小区;若绑定多个小区,可点下方小区名多选筛选
| 小区 | 房源数 | 需求数 | 用户数 | 消耗积分 |
|---|---|---|---|---|
| {{ s.community }} 已绑定物业 | {{ s.houses }} | {{ s.demands }} | {{ s.users }} |
{{ s.usedCredits }}
赠送 {{ s.giftCredits }}
充值 {{ s.rechargeCredits }}
|
🏢 小区物业账号
为小区物业创建登录账号并绑定小区(同一小区多个名字可多选/手动输入归并);物业登录后可查看本小区数据与结算金额| 账号名称 | 登录账号 | 绑定小区 | 安卓比例 | 苹果比例 | 状态 | 创建时间 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ row.name }} 创建人:{{ row.parentName || '—' }} |
{{ row.username }} | {{ n }} | {{ Math.round((row.androidRate || 0) * 100) }}% 平台扣 {{ ratePct(row.androidPlatformRate) }} |
{{ Math.round((row.iosRate || 0) * 100) }}% 平台扣 {{ ratePct(row.iosPlatformRate) }} |
{{ row.status === 'enabled' ? '启用' : '禁用' }} | {{ formatTime(row.createdAt) }} | |
|
📊 对账看板 · {{ row.name }}
统计小区:{{ (row.communityNames || []).join('、') || '—' }}
加载中...
暂无数据
{{ row.dash.error }}
安卓结算比例
{{ ratePct(row.dash.rates.androidRate) }}平台扣 {{ ratePct(row.dash.rates.androidPlatformRate) }}
苹果结算比例
{{ ratePct(row.dash.rates.iosRate) }}平台扣 {{ ratePct(row.dash.rates.iosPlatformRate) }}
¥{{ row.dash.monthSettle.thisMonth.totalSettle }}
本月结算金额
¥{{ row.dash.monthSettle.lastMonth.totalSettle }}
上月结算金额
自定义区间查询结果
独立板块,不计入上方固定区间
{{ dashRangeLabels[k] }}
{{ commDashRangeDates(row.id, k) }}
业务数据
发布房源数{{ row.dash.ranges[k].housesCount }}
发布需求数{{ row.dash.ranges[k].demandsCount }}
充值金额
苹果 IOS 充值
¥{{ row.dash.ranges[k].iosAmount }}{{ row.dash.ranges[k].iosOrders }} 笔
安卓充值
¥{{ row.dash.ranges[k].androidAmount }}{{ row.dash.ranges[k].androidOrders }} 笔
结算明细
苹果已消耗充值积分¥{{ row.dash.ranges[k].iosConsumed }}
安卓已消耗充值积分¥{{ row.dash.ranges[k].androidConsumed }}
苹果举报退款扣减-¥{{ row.dash.ranges[k].iosRefund }}
安卓举报退款扣减-¥{{ row.dash.ranges[k].androidRefund }}
苹果结算基数到账¥{{ row.dash.ranges[k].iosNet }}
安卓结算基数到账¥{{ row.dash.ranges[k].androidNet }}
苹果结算金额¥{{ row.dash.ranges[k].iosSettle }}
安卓结算金额¥{{ row.dash.ranges[k].androidSettle }}
合计结算金额
¥{{ row.dash.ranges[k].totalSettle }}
暂无数据
结算规则:物业只结算「在本小区被消耗掉的充值积分」——用户消耗积分时先扣充值积分、再扣赠送积分,赠送部分不产生结算;物业结算 = (消耗的充值积分 − 举报退款扣减) × (1 − 平台扣除) × 物业结算比例。举报属实退回的充值积分在退款发生时间扣减。 |
|||||||
举报管理
处理用户举报,维护平台健康环境