feat(admin): HQ手机号编辑、合伙人子账号日志与子账号H5体验

支持 HQ 账户改手机号(格式校验)、合伙人日志包含子账号且子账号不显示主账号信息;改手机号时清除微信绑定。合伙人 H5 子账号页签与我的页、录入门店底部按钮及上传失败提示。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-12 13:29:09 +08:00
parent b8623f59f0
commit 63af3321dd
16 changed files with 259 additions and 40 deletions
@@ -77,6 +77,7 @@ export default function HqAccountsPage() {
setDetail(row);
editForm.setFieldsValue({
name: row.name,
phone: row.phone,
loginName: row.loginName,
adminRole: row.adminRole,
status: row.status,
@@ -128,6 +129,16 @@ export default function HqAccountsPage() {
}>
<Form form={editForm} layout="vertical">
<Form.Item name="name" label="姓名" rules={[{ required: true }]}><Input /></Form.Item>
<Form.Item
name="phone"
label="手机号"
rules={[
{ required: true, message: '请输入手机号' },
{ pattern: /^1[3-9]\d{9}$/, message: '请输入正确的手机号' },
]}
>
<Input maxLength={11} />
</Form.Item>
<Form.Item name="loginName" label="用户名"><Input placeholder="用于密码登录" /></Form.Item>
<Form.Item name="password" label="新密码" extra="留空则不修改">
<Input.Password placeholder="至少 6 位" />
+15 -3
View File
@@ -5,9 +5,11 @@ import { useSearchParams } from 'react-router-dom';
import {
PARTNER_LOG_CATEGORY_OPTIONS,
PARTNER_LOG_CATEGORY_LABELS,
PARTNER_STAFF_ROLE_LABELS,
resolvePartnerLogCategory,
type PartnerLogCategory,
} from '../lib/partner-log';
type PartnerStaffRole,
} from '@dukang/shared-types';
import { request } from '../lib/api';
import { AdminCellLine } from '../components/AdminCellLine';
import { fmtTime } from '../lib/constants';
@@ -20,6 +22,8 @@ type Row = {
accountName: string | null;
accountPhone: string | null;
companyName: string | null;
isSubAccount?: boolean;
staffRole?: string | null;
category: PartnerLogCategory | null;
eventName: string;
clientApp: string | null;
@@ -74,7 +78,11 @@ export default function PartnerLogsPage() {
width: 180,
ellipsis: true,
render: (_, r) => (
<AdminCellLine primary={r.companyName} secondary={r.partnerId} />
r.isSubAccount ? (
<Tag color="blue"></Tag>
) : (
<AdminCellLine primary={r.companyName} secondary={r.partnerId} />
)
),
},
{
@@ -84,7 +92,11 @@ export default function PartnerLogsPage() {
render: (_, r) => (
<AdminCellLine
primary={r.accountName}
secondary={r.accountPhone || r.partnerAccountId}
secondary={
r.isSubAccount && r.staffRole
? `${r.accountPhone || ''} · ${PARTNER_STAFF_ROLE_LABELS[r.staffRole as PartnerStaffRole] || r.staffRole}`
: r.accountPhone || r.partnerAccountId
}
/>
),
},