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