feat: update aftersales labels and service type options

This commit is contained in:
Frudrax Cheng
2026-05-28 09:12:01 +08:00
parent 0f6d4a5f07
commit 2262b39d04
5 changed files with 26 additions and 26 deletions
+5 -5
View File
@@ -42,9 +42,9 @@ const WORK_ORDER_STATUS_COLOR: Record<AftersalesWorkOrderStatus, string> = {
};
const SERVICE_TYPE_LABEL: Record<AftersalesServiceType, string> = {
software: '软件',
hardware: '硬件',
other: '其他',
software: '软件故障',
hardware: '硬件故障',
maintenance: '售后维保',
};
function AftersalesPage() {
@@ -369,8 +369,8 @@ function AftersalesPage() {
</Form.Item>
<Form.Item
name="issueDescription"
label="问题反馈"
rules={[{ required: true, message: '请填写问题反馈' }]}
label="问题描述反馈"
rules={[{ required: true, message: '请填写问题描述反馈' }]}
>
<Input.TextArea rows={4} placeholder="请描述客户反馈的问题" />
</Form.Item>
+7 -7
View File
@@ -16,9 +16,9 @@ import './styles/PublicQuery.css';
import './styles/AftersalesConfirm.css';
const SERVICE_TYPE_LABEL: Record<AftersalesServiceType, string> = {
software: '软件',
hardware: '硬件',
other: '其他',
software: '软件故障',
hardware: '硬件故障',
maintenance: '售后维保',
};
function AftersalesConfirmPage() {
@@ -199,7 +199,7 @@ function AftersalesConfirmPage() {
<span className="value">{SERVICE_TYPE_LABEL[order.serviceType] || order.serviceType}</span>
</div>
<div className="detail-item detail-item-block">
<span className="label"></span>
<span className="label"></span>
<span className="value value-block">{order.issueDescription}</span>
</div>
{order.resolutionNote && (
@@ -222,10 +222,10 @@ function AftersalesConfirmPage() {
{isClosed && order.signature && (
<div className="aftersales-signature-archived">
<p className="aftersales-signature-tip"></p>
<p className="aftersales-signature-tip"></p>
<img
src={order.signature}
alt="客户签名"
alt="客户确认签名"
className="aftersales-signature-archived-img"
/>
</div>
@@ -248,7 +248,7 @@ function AftersalesConfirmPage() {
className="aftersales-signature-preview"
onClick={() => setShowSignatureOverlay(true)}
>
<img src={signatureData} alt="客户签名" />
<img src={signatureData} alt="客户确认签名" />
<span className="aftersales-signature-preview-hint"></span>
</button>
) : (
+9 -9
View File
@@ -33,9 +33,9 @@ import type {
} from '@/types';
const SERVICE_TYPE_LABEL: Record<AftersalesServiceType, string> = {
software: '软件',
hardware: '硬件',
other: '其他',
software: '软件故障',
hardware: '硬件故障',
maintenance: '售后维保',
};
const WORK_ORDER_STATUS_LABEL: Record<AftersalesWorkOrderStatus, string> = {
@@ -275,7 +275,7 @@ function AftersalesDetailPage() {
{isAdmin && !isClosed && (
<>
<Button icon={<UserSwitchOutlined />} onClick={openReassign}>
</Button>
<Button danger icon={<StopOutlined />} onClick={handleForceClose}>
@@ -325,7 +325,7 @@ function AftersalesDetailPage() {
{order.authorizationStatus === 'authorized' && order.signature && (
<div style={{ marginBottom: 24 }}>
<div style={{ fontSize: 13, color: '#595959', marginBottom: 8 }}>
{order.confirmedAt && (
<span style={{ marginLeft: 12, color: '#8c8c8c', fontSize: 12 }}>
{new Date(order.confirmedAt).toLocaleString('zh-CN')}
@@ -334,7 +334,7 @@ function AftersalesDetailPage() {
</div>
<img
src={order.signature}
alt="客户签名"
alt="客户确认签名"
style={{
maxWidth: 480,
width: '100%',
@@ -390,8 +390,8 @@ function AftersalesDetailPage() {
</Space>
<Form.Item
name="issueDescription"
label="问题反馈"
rules={[{ required: true, message: '请填写问题反馈' }]}
label="问题描述反馈"
rules={[{ required: true, message: '请填写问题描述反馈' }]}
>
<Input.TextArea rows={3} />
</Form.Item>
@@ -460,7 +460,7 @@ function AftersalesDetailPage() {
</Modal>
<Modal
title="重新分配技术员"
title="工单分配"
open={reassignModalVisible}
onCancel={() => {
setReassignModalVisible(false);
+3 -3
View File
@@ -18,9 +18,9 @@ import type {
} from '@/types';
const SERVICE_TYPE_LABEL: Record<AftersalesServiceType, string> = {
software: '软件',
hardware: '硬件',
other: '其他',
software: '软件故障',
hardware: '硬件故障',
maintenance: '售后维保',
};
const WORK_ORDER_STATUS_LABEL: Record<AftersalesWorkOrderStatus, string> = {
+2 -2
View File
@@ -162,7 +162,7 @@ export interface EmployeeSerialResponse {
pagination: EmployeeSerialPagination;
}
export type AftersalesServiceType = 'software' | 'hardware' | 'other';
export type AftersalesServiceType = 'software' | 'hardware' | 'maintenance';
export type AftersalesWorkOrderStatus = 'created' | 'pending_confirmation' | 'closed' | 'rejected';
export type AftersalesAuthorizationStatus = 'pending' | 'authorized' | 'unauthorized';
@@ -245,4 +245,4 @@ export interface CustomerConfirmRequest {
action: 'authorize' | 'reject';
signature?: string;
rejectReason?: string;
}
}