v4.0.3版本
CI / verify (pull_request) Has been cancelled

总部后端,开发计划-任务列表-来源工单支持链接
总部端-开发计划-任务列表-编辑任务-增加“开发中”状态
账单日期修正
This commit is contained in:
2026-08-31 14:22:49 +08:00
parent 3166467518
commit e26206b93c
23 changed files with 522 additions and 139 deletions
+4
View File
@@ -220,6 +220,10 @@ body.admin-col-resizing * {
cursor: pointer;
}
a.admin-primary-link {
color: inherit;
}
.admin-primary-link:hover {
color: #1677ff;
}
+16 -2
View File
@@ -1,4 +1,5 @@
import { useEffect, useState } from 'react';
import { Link } from 'react-router-dom';
import {
Button,
Form,
@@ -46,6 +47,7 @@ const STATUS_OPTIONS = (Object.keys(DEV_PLAN_TASK_STATUS_LABELS) as DevPlanTaskS
const STATUS_COLOR: Record<DevPlanTaskStatusDto, string> = {
TODO: 'default',
IN_PROGRESS: 'orange',
DEVELOPED: 'blue',
RELEASED: 'green',
};
@@ -289,7 +291,19 @@ export default function DevPlanTasksPage() {
'—'
),
},
{ title: '来源工单', dataIndex: 'supportTicketNo', width: 140, render: (v) => v || '—' },
{
title: '来源工单',
dataIndex: 'supportTicketNo',
width: 140,
render: (v, row) =>
row.supportTicketId && v ? (
<Link className="admin-primary-link" to={`/tickets/support?id=${row.supportTicketId}`}>
{v}
</Link>
) : (
v || '—'
),
},
{
title: '关联版本',
dataIndex: 'versions',
@@ -377,7 +391,7 @@ export default function DevPlanTasksPage() {
<Select allowClear style={{ width: 100 }} options={TYPE_OPTIONS} />
</Form.Item>
<Form.Item name="status" label="状态">
<Select allowClear style={{ width: 100 }} options={STATUS_OPTIONS} />
<Select allowClear style={{ width: 110 }} options={STATUS_OPTIONS} />
</Form.Item>
<Form.Item name="keyword" label="关键词">
<Input allowClear placeholder="任务号/内容" style={{ width: 160 }} />
@@ -282,7 +282,7 @@ export default function PartnerBillsPage() {
title: '账期',
width: 200,
render: (_, r) =>
`${fmtTime(r.periodStart).slice(0, 10)} ~ ${fmtTime(r.periodEnd).slice(0, 10)}`,
`${String(r.periodStart || '').slice(0, 10)} ~ ${String(r.periodEnd || '').slice(0, 10)}`,
},
{
title: '酒单佣金',
@@ -1,4 +1,5 @@
import { useEffect, useState } from 'react';
import { useSearchParams } from 'react-router-dom';
import {
Button,
Card,
@@ -27,6 +28,7 @@ import {
} from '@ant-design/icons';
import type { ColumnsType } from 'antd/es/table';
import {
DEV_PLAN_TASK_STATUS_LABELS,
DEV_PLAN_TASK_TYPE_LABELS,
SUPPORT_TICKET_STATUS_LABELS,
SUPPORT_TICKET_TYPE_LABELS,
@@ -89,6 +91,8 @@ const TASK_TYPE_OPTIONS = (Object.keys(DEV_PLAN_TASK_TYPE_LABELS) as DevPlanTask
type TicketRow = SupportTicketDto & { linkedTasks?: SupportTicketLinkedTaskDto[] };
export default function SupportTicketsPage() {
const [searchParams] = useSearchParams();
const deepLinkId = searchParams.get('id')?.trim() || searchParams.get('ticketId')?.trim() || '';
const [profile, setProfile] = useState<HqProfile | null>(null);
const [filters, setFilters] = useState<Record<string, string>>({});
const [selectedRowKeys, setSelectedRowKeys] = useState<string[]>([]);
@@ -162,6 +166,11 @@ export default function SupportTicketsPage() {
setDrawerOpen(true);
}
useEffect(() => {
if (!deepLinkId) return;
void openDetail(deepLinkId).catch(() => message.error('工单不存在或已删除'));
}, [deepLinkId]);
async function submitCreate() {
const values = await createForm.validateFields();
setCreating(true);
@@ -914,7 +923,9 @@ export default function SupportTicketsPage() {
>
{t.content}
</Typography.Text>
<Tag style={{ margin: 0, flexShrink: 0 }}>{t.status}</Tag>
<Tag style={{ margin: 0, flexShrink: 0 }}>
{DEV_PLAN_TASK_STATUS_LABELS[t.status] ?? t.status}
</Tag>
</div>
))}
</Card>
+6 -1
View File
@@ -13,6 +13,7 @@ import {
Statistic,
Table,
Tag,
Tooltip,
Typography,
message,
} from 'antd';
@@ -249,7 +250,11 @@ export default function WineryBillsPage() {
),
},
{
title: '账单日',
title: (
<Tooltip title="出账当天的北京日历日;T+3 只决定纳入哪天完成的订单">
</Tooltip>
),
dataIndex: 'billDate',
width: 110,
render: (v) => String(v || '').slice(0, 10),