feat: update aftersales labels and service type options
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
) : (
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user