标记待开发功能范围
This commit is contained in:
@@ -191,7 +191,7 @@ export function AdminEnterpriseApplicationsPage() {
|
|||||||
<Tabs
|
<Tabs
|
||||||
items={[
|
items={[
|
||||||
{ label: '短信应用', value: 'sms', content: <Table columns={smsColumns} data={filteredSmsApps} rowKey="id" /> },
|
{ label: '短信应用', value: 'sms', content: <Table columns={smsColumns} data={filteredSmsApps} rowKey="id" /> },
|
||||||
{ label: '彩信应用', value: 'mms', content: <Table columns={mmsColumns} data={filteredMmsApps} rowKey="id" /> },
|
{ label: '彩信应用', value: 'mms', pending: true, content: <Table columns={mmsColumns} data={filteredMmsApps} rowKey="id" /> },
|
||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -565,6 +565,7 @@ export function AdminEnterpriseSignaturesPage() {
|
|||||||
{ label: '短信签名', value: 'sms', content: smsSignatureContent },
|
{ label: '短信签名', value: 'sms', content: smsSignatureContent },
|
||||||
{
|
{
|
||||||
label: '彩信签名',
|
label: '彩信签名',
|
||||||
|
pending: true,
|
||||||
value: 'mms',
|
value: 'mms',
|
||||||
content: (
|
content: (
|
||||||
<>
|
<>
|
||||||
|
|||||||
@@ -595,7 +595,7 @@ export function AdminEnterpriseTemplatesPage() {
|
|||||||
value={activeTab}
|
value={activeTab}
|
||||||
items={[
|
items={[
|
||||||
{ label: '短信模板', value: 'sms', content: smsContent },
|
{ label: '短信模板', value: 'sms', content: smsContent },
|
||||||
{ label: '彩信模板', value: 'mms', content: mmsContent },
|
{ label: '彩信模板', value: 'mms', pending: true, content: mmsContent },
|
||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ export type TabItem = {
|
|||||||
label: string;
|
label: string;
|
||||||
value: string;
|
value: string;
|
||||||
content: ReactNode;
|
content: ReactNode;
|
||||||
|
pending?: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
type TabsProps = {
|
type TabsProps = {
|
||||||
@@ -36,7 +37,8 @@ export function Tabs({ items, defaultValue, value, onChange }: TabsProps) {
|
|||||||
role="tab"
|
role="tab"
|
||||||
type="button"
|
type="button"
|
||||||
>
|
>
|
||||||
{item.label}
|
<span>{item.label}</span>
|
||||||
|
{item.pending ? <span className="dev-status-badge">待开发</span> : null}
|
||||||
</button>
|
</button>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ export function AdminLayout() {
|
|||||||
{ label: '企业认证审核', to: '/admin/enterprise-audit', icon: ShieldCheck },
|
{ label: '企业认证审核', to: '/admin/enterprise-audit', icon: ShieldCheck },
|
||||||
{ label: '短信审核', to: '/admin/sms-audit', icon: MessageSquare },
|
{ label: '短信审核', to: '/admin/sms-audit', icon: MessageSquare },
|
||||||
{ label: '短信模板审核', to: '/admin/templates', icon: FileCheck2 },
|
{ label: '短信模板审核', to: '/admin/templates', icon: FileCheck2 },
|
||||||
{ label: '彩信模板审核', to: '/admin/signatures', icon: ImageIcon },
|
{ label: '彩信模板审核', to: '/admin/signatures', icon: ImageIcon, pending: true },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -69,7 +69,7 @@ export function AdminLayout() {
|
|||||||
icon: RadioTower,
|
icon: RadioTower,
|
||||||
items: [
|
items: [
|
||||||
{ label: '短信通道管理', to: '/admin/channels', icon: RadioTower },
|
{ label: '短信通道管理', to: '/admin/channels', icon: RadioTower },
|
||||||
{ label: '彩信通道管理', to: '/admin/mms-channels', icon: ImageIcon },
|
{ label: '彩信通道管理', to: '/admin/mms-channels', icon: ImageIcon, pending: true },
|
||||||
{ label: '短信通道组管理', to: '/admin/channel-groups', icon: Layers3 },
|
{ label: '短信通道组管理', to: '/admin/channel-groups', icon: Layers3 },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
@@ -86,7 +86,7 @@ export function AdminLayout() {
|
|||||||
icon: Send,
|
icon: Send,
|
||||||
items: [
|
items: [
|
||||||
{ label: '短信任务进度', to: '/admin/sms-task-progress', icon: TrendingUp },
|
{ label: '短信任务进度', to: '/admin/sms-task-progress', icon: TrendingUp },
|
||||||
{ label: '彩信任务进度', to: '/admin/mms-task-progress', icon: BarChart3 },
|
{ label: '彩信任务进度', to: '/admin/mms-task-progress', icon: BarChart3, pending: true },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -94,7 +94,7 @@ export function AdminLayout() {
|
|||||||
icon: ReceiptText,
|
icon: ReceiptText,
|
||||||
items: [
|
items: [
|
||||||
{ label: '短信记录', to: '/admin/sms-records', icon: MessageSquare },
|
{ label: '短信记录', to: '/admin/sms-records', icon: MessageSquare },
|
||||||
{ label: '彩信记录', to: '/admin/mms-records', icon: ImageIcon },
|
{ label: '彩信记录', to: '/admin/mms-records', icon: ImageIcon, pending: true },
|
||||||
{ label: '短信上行记录', to: '/admin/sms-uplink-records', icon: MessageSquare },
|
{ label: '短信上行记录', to: '/admin/sms-uplink-records', icon: MessageSquare },
|
||||||
{ label: '充值记录', to: '/admin/recharge-records', icon: ReceiptText },
|
{ label: '充值记录', to: '/admin/recharge-records', icon: ReceiptText },
|
||||||
{ label: '账单流水', to: '/admin/billing', icon: ReceiptText },
|
{ label: '账单流水', to: '/admin/billing', icon: ReceiptText },
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ export type ShellNavItem = {
|
|||||||
label: string;
|
label: string;
|
||||||
to: string;
|
to: string;
|
||||||
icon: ComponentType<{ size?: number; strokeWidth?: number }>;
|
icon: ComponentType<{ size?: number; strokeWidth?: number }>;
|
||||||
|
pending?: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type ShellNavSection = {
|
export type ShellNavSection = {
|
||||||
@@ -84,9 +85,10 @@ export function AppShell({
|
|||||||
const Icon = item.icon;
|
const Icon = item.icon;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<NavLink key={item.to} to={item.to} end title={item.label}>
|
<NavLink key={item.to} to={item.to} end title={item.pending ? `${item.label}(待开发)` : item.label}>
|
||||||
<Icon size={17} strokeWidth={2.1} />
|
<Icon size={17} strokeWidth={2.1} />
|
||||||
<span>{item.label}</span>
|
<span className="side-nav-label">{item.label}</span>
|
||||||
|
{item.pending ? <span className="dev-status-badge">待开发</span> : null}
|
||||||
</NavLink>
|
</NavLink>
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
|
|||||||
@@ -46,20 +46,20 @@ export function ClientLayout() {
|
|||||||
{
|
{
|
||||||
title: '彩信服务',
|
title: '彩信服务',
|
||||||
items: [
|
items: [
|
||||||
{ label: '签名报备', to: '/client/mms-signatures', icon: PenLine },
|
{ label: '签名报备', to: '/client/mms-signatures', icon: PenLine, pending: true },
|
||||||
{ label: '彩信模板管理', to: '/client/mms-templates', icon: ImageIcon },
|
{ label: '彩信模板管理', to: '/client/mms-templates', icon: ImageIcon, pending: true },
|
||||||
{ label: '发送彩信', to: '/client/mms-send', icon: MessageSquareText },
|
{ label: '发送彩信', to: '/client/mms-send', icon: MessageSquareText, pending: true },
|
||||||
{ label: '查看批量任务', to: '/client/mms-batch-tasks', icon: ClipboardList },
|
{ label: '查看批量任务', to: '/client/mms-batch-tasks', icon: ClipboardList, pending: true },
|
||||||
{ label: '彩信发送详情', to: '/client/mms-send-detail', icon: ClipboardList },
|
{ label: '彩信发送详情', to: '/client/mms-send-detail', icon: ClipboardList, pending: true },
|
||||||
{ label: '查看上行彩信', to: '/client/mms-uplink-messages', icon: ImageIcon },
|
{ label: '查看上行彩信', to: '/client/mms-uplink-messages', icon: ImageIcon, pending: true },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '账户',
|
title: '账户',
|
||||||
items: [
|
items: [
|
||||||
{ label: '充值套餐', to: '/client/billing', icon: BadgeDollarSign },
|
{ label: '充值套餐', to: '/client/billing', icon: BadgeDollarSign, pending: true },
|
||||||
{ label: '账单流水', to: '/client/invoices', icon: ReceiptText },
|
{ label: '账单流水', to: '/client/invoices', icon: ReceiptText, pending: true },
|
||||||
{ label: '账号设置', to: '/client/settings', icon: Settings },
|
{ label: '账号设置', to: '/client/settings', icon: Settings, pending: true },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -646,10 +646,13 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.ui-tabs__tab {
|
.ui-tabs__tab {
|
||||||
|
align-items: center;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
border: 0;
|
border: 0;
|
||||||
color: var(--color-text-muted);
|
color: var(--color-text-muted);
|
||||||
|
display: inline-flex;
|
||||||
font-weight: var(--font-weight-semibold);
|
font-weight: var(--font-weight-semibold);
|
||||||
|
gap: var(--space-2);
|
||||||
padding: 0 var(--space-2) var(--space-3);
|
padding: 0 var(--space-2) var(--space-3);
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|||||||
+22
-1
@@ -293,12 +293,33 @@ h3 {
|
|||||||
min-width: 0;
|
min-width: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.side-nav a span {
|
.side-nav-label {
|
||||||
|
flex: 1;
|
||||||
|
min-width: 0;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.dev-status-badge {
|
||||||
|
background: var(--color-warning-soft);
|
||||||
|
border: 1px solid color-mix(in srgb, var(--color-warning) 24%, transparent);
|
||||||
|
border-radius: 999px;
|
||||||
|
color: var(--color-warning);
|
||||||
|
flex: 0 0 auto;
|
||||||
|
font-size: 11px;
|
||||||
|
font-weight: var(--font-weight-semibold);
|
||||||
|
line-height: 1;
|
||||||
|
padding: 3px 6px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-tabs__tab {
|
||||||
|
align-items: center;
|
||||||
|
display: inline-flex;
|
||||||
|
gap: var(--space-2);
|
||||||
|
}
|
||||||
|
|
||||||
.side-nav a.active,
|
.side-nav a.active,
|
||||||
.side-nav a:hover {
|
.side-nav a:hover {
|
||||||
background: var(--color-selected-soft);
|
background: var(--color-selected-soft);
|
||||||
|
|||||||
Reference in New Issue
Block a user