中英文切换 初始化

This commit is contained in:
mmc
2026-08-12 11:29:44 +08:00
parent 541e16f742
commit a8af55a856
76 changed files with 5847 additions and 1962 deletions

View File

@@ -33,12 +33,14 @@ import { getSiteDevice, getRobotRouteList, getWayLine, getSiteUAVList } from '..
import { useSelector } from 'react-redux';
import { RootState } from '@/src/store';
import utils, { workOrderTypeOptions, getWorkOrderTypeText, errorLevelOptions, LEVEL_TAG_COLOR } from '@/lib/utils';
import { useTranslation } from 'react-i18next';
const { TabPane } = Typography;
const { Option } = Select;
// 工单模型管理子组件
const WorkOrderModelManagement: React.FC = () => {
const { t } = useTranslation();
const [form] = Form.useForm();
const [list, setList] = useState([]);
const [loading, setLoading] = useState(false);
@@ -78,8 +80,8 @@ const WorkOrderModelManagement: React.FC = () => {
if (robotRes.code === 200) {
const robots = robotRes.rows || [];
robotOptions.push({
label: '机器人',
title: '机器人',
label: t('devices.robot'),
title: t('devices.robot'),
options: robots.map((item: any) => ({
label: item.deviceAlias || item.serialNumber,
value: item.serialNumber,
@@ -92,8 +94,8 @@ const WorkOrderModelManagement: React.FC = () => {
if (uavRes.code === 200) {
const uavs = uavRes.rows || [];
uavOptions.push({
label: '无人机',
title: '无人机',
label: t('constants.uav'),
title: t('constants.uav'),
options: uavs.map((item: any) => ({
label: item.drone_callsign,
@@ -176,6 +178,7 @@ const WorkOrderModelManagement: React.FC = () => {
}, [stationId]);
const handleAdd = () => {
const { t } = useTranslation();
setEditingItem(null);
form.resetFields();
setSelectedDeviceType(null);
@@ -210,17 +213,17 @@ const WorkOrderModelManagement: React.FC = () => {
modal.confirm({
title: '确认删除',
content: '您确定要删除这条工单模型吗?',
okText: '确定',
cancelText: '取消',
okText: t('common.ok'),
cancelText: t('common.cancel'),
onOk: async () => {
try {
const res = await deleteWorkOrderModelApi([id]);
if (res.code === 200) {
message.success('删除成功');
message.success(t('common.deleteSuccess'));
fetchList();
}
} catch (e) {
message.error('删除失败');
message.error(t('common.deleteFail'));
}
}
});
@@ -235,8 +238,8 @@ const WorkOrderModelManagement: React.FC = () => {
modal.confirm({
title: '批量删除确认',
content: `您确定要删除选中的 ${selectedRowKeys.length} 条工单模型吗?删除后不可恢复!`,
okText: '确定',
cancelText: '取消',
okText: t('common.ok'),
cancelText: t('common.cancel'),
danger: true,
onOk: async () => {
try {
@@ -271,13 +274,13 @@ const WorkOrderModelManagement: React.FC = () => {
res = await addWorkOrderModelApi(payload);
}
if (res.code === 200 && res.data == true) {
message.success(editingItem ? '更新成功' : '新增成功');
message.success(editingItem ? '更新成功' : t('common.addSuccess'));
setModalVisible(false);
form.resetFields();
fetchList();
}
} catch (e) {
message.error('保存失败');
message.error(t('common.saveFail'));
}
};
@@ -297,7 +300,7 @@ const WorkOrderModelManagement: React.FC = () => {
const columns = [
{ title: '工单名称', dataIndex: 'orderName', key: 'orderName' },
{
title: '工单类型',
title: t('workOrder.orderType'),
dataIndex: 'orderType',
key: 'orderType',
render: getWorkOrderTypeText
@@ -308,7 +311,7 @@ const WorkOrderModelManagement: React.FC = () => {
key: 'errorLevel',
render: (val) => {
const color = LEVEL_TAG_COLOR[val] || 'default';
const text = { 1: '轻微', 2: '一般', 3: '严重' }[val] || val;
const text = { 1: '轻微', 2: t('constants.general'), 3: t('constants.critical') }[val] || val;
return <Tag color={color}>{text}</Tag>;
}
},
@@ -342,12 +345,12 @@ const WorkOrderModelManagement: React.FC = () => {
render: (val: boolean) => val ? '是' : '否'
},
{
title: '操作',
title: t('roles.actions'),
key: 'action',
render: (_: any, record: any) => (
<Space>
<Button type="link" onClick={() => handleEdit(record)}>编辑</Button>
<Button type="link" danger onClick={() => handleDelete(record.id)}>删除</Button>
<Button type="link" onClick={() => handleEdit(record)}>{t('roles.edit')}</Button>
<Button type="link" danger onClick={() => handleDelete(record.id)}>{t('roles.delete')}</Button>
</Space>
)
}
@@ -364,7 +367,7 @@ const WorkOrderModelManagement: React.FC = () => {
<Card>
<Space style={{ marginBottom: 16 }}>
<Button type="primary" icon={<PlusOutlined />} onClick={handleAdd}>新增工单模型</Button>
<Button icon={<ReloadOutlined />} onClick={fetchList}>刷新</Button>
<Button icon={<ReloadOutlined />} onClick={fetchList}>{t('common.refresh')}</Button>
<Button
danger
icon={<DeleteOutlined />}
@@ -395,8 +398,8 @@ const WorkOrderModelManagement: React.FC = () => {
<Form.Item label="工单名称" name="orderName" rules={[{ required: true, message: '请输入工单名称' }]}>
<Input placeholder="请输入工单名称" />
</Form.Item>
<Form.Item label="工单类型" name="orderType" rules={[{ required: true, message: '请选择工单类型' }]}>
<Select placeholder="请选择工单类型" options={workOrderTypeOptions} />
<Form.Item label={t('workOrder.orderType')} name="orderType" rules={[{ required: true, message: t('workOrder.pleaseSelectType') }]}>
<Select placeholder={t('workOrder.pleaseSelectType')} options={workOrderTypeOptions} />
</Form.Item>
<Form.Item label="错误等级" name="errorLevel" rules={[{ required: true, message: '请选择错误等级' }]}>
<Select placeholder="请选择错误等级" options={errorLevelOptions} />
@@ -429,8 +432,8 @@ const WorkOrderModelManagement: React.FC = () => {
<Form.Item>
<Space>
<Button type="primary" htmlType="submit">保存</Button>
<Button onClick={() => setModalVisible(false)}>取消</Button>
<Button type="primary" htmlType="submit">{t('common.save')}</Button>
<Button onClick={() => setModalVisible(false)}>{t('common.cancel')}</Button>
</Space>
</Form.Item>
</Form>