diff --git a/src/dicts/supplierAnnualDict.ts b/src/dicts/supplierAnnualDict.ts index c676cad..406723a 100644 --- a/src/dicts/supplierAnnualDict.ts +++ b/src/dicts/supplierAnnualDict.ts @@ -16,7 +16,7 @@ export const AnnualTemplateStatusText = { // 年度模板状态颜色 export const AnnualTemplateStatusColor = { - [AnnualTemplateStatus.DRAFT]: 'processing', - [AnnualTemplateStatus.ENABLED]: 'success', - [AnnualTemplateStatus.DISABLED]: 'default', + [AnnualTemplateStatus.DRAFT]: 'default', + [AnnualTemplateStatus.ENABLED]: 'green', + [AnnualTemplateStatus.DISABLED]: 'red', }; diff --git a/src/pages/supplierAnnualManage/supplierAnnualTemplateManage/supplierAnnualTemplateManage.tsx b/src/pages/supplierAnnualManage/supplierAnnualTemplateManage/supplierAnnualTemplateManage.tsx index 28a98d4..5c38843 100644 --- a/src/pages/supplierAnnualManage/supplierAnnualTemplateManage/supplierAnnualTemplateManage.tsx +++ b/src/pages/supplierAnnualManage/supplierAnnualTemplateManage/supplierAnnualTemplateManage.tsx @@ -283,29 +283,15 @@ const SupplierAnnualTemplateManage: React.FC = () => { {intl.formatMessage({ id: 'supplierAnnualTemplateManage.common.view' })} - {/* 草稿状态显示启用按钮 */} - {record.status === AnnualTemplateStatus.DRAFT && ( + {/* 禁用状态显示启用按钮 草稿状态显示启用按钮 */} + {(record.status === AnnualTemplateStatus.DISABLED || record.status === AnnualTemplateStatus.DRAFT) && ( )} - {/* 草稿状态显示禁用按钮 */} - {record.status === AnnualTemplateStatus.DRAFT && ( - - )} - - {/* 禁用状态显示启用按钮 */} - {record.status === AnnualTemplateStatus.DISABLED && ( - - )} - - {/* 启用状态显示禁用按钮 */} - {record.status === AnnualTemplateStatus.ENABLED && ( + {/* 启用状态显示禁用按钮 草稿状态显示禁用按钮 */} + {(record.status === AnnualTemplateStatus.ENABLED || record.status === AnnualTemplateStatus.DRAFT) && ( diff --git a/src/pages/supplierEvaluateManage/supplierTemplateManage/supplierTemplateManage.tsx b/src/pages/supplierEvaluateManage/supplierTemplateManage/supplierTemplateManage.tsx index 6ca3bf5..e5eff94 100644 --- a/src/pages/supplierEvaluateManage/supplierTemplateManage/supplierTemplateManage.tsx +++ b/src/pages/supplierEvaluateManage/supplierTemplateManage/supplierTemplateManage.tsx @@ -1,6 +1,6 @@ import React, { useState, useEffect } from 'react'; import { history, useIntl } from 'umi'; -import { Button, Table, Space, message, Input, Select, Form, Tooltip, Tag } from 'antd'; +import { Button, Table, Space, message, Input, Select, Form, Tooltip, Tag, Modal } from 'antd'; import type { TablePaginationConfig } from 'antd'; import { PlusOutlined, DeleteOutlined, SearchOutlined } from '@ant-design/icons'; import { @@ -8,7 +8,7 @@ import { TemplateStatusColor, TemplateStatus, } from '@/dicts/supplierTemplateDict'; -import { getTemplateList } from '@/servers/api/supplierEvaluate'; +import { getTemplateList, enableTemplate, disableTemplate } from '@/servers/api/supplierEvaluate'; import CategorySelector from '@/components/CategorySelector/CategorySelector'; const { Option } = Select; @@ -124,7 +124,59 @@ const SupplierTemplateManage: React.FC = () => { const handleTableChange = (newPagination: TablePaginationConfig) => { fetchTemplateList(newPagination.current, newPagination.pageSize, searchParams); }; +// 处理启用模板 +const handleEnableTemplate = (id: string) => { + Modal.confirm({ + title: intl.formatMessage({ id: 'supplierAnnualTemplateManage.modal.enableConfirmTitle' }), + content: intl.formatMessage({ id: 'supplierAnnualTemplateManage.modal.enableConfirmContent' }), + okText: intl.formatMessage({ id: 'supplierAnnualTemplateManage.common.confirm' }), + cancelText: intl.formatMessage({ id: 'supplierAnnualTemplateManage.common.cancel' }), + onOk: async () => { + try { + setLoading(true); + const res = await enableTemplate(id); + if (res.success) { + message.success(intl.formatMessage({ id: 'supplierAnnualTemplateManage.modal.enableSuccess' })); + fetchTemplateList(pagination.current, pagination.pageSize, searchParams); + } else { + message.error(res.message || intl.formatMessage({ id: 'supplierAnnualTemplateManage.modal.enableFailed' })); + } + } catch (error) { + console.error('启用模板失败:', error); + message.error(intl.formatMessage({ id: 'supplierAnnualTemplateManage.modal.enableFailed' })); + } finally { + setLoading(false); + } + } + }); +}; +// 处理禁用模板 +const handleDisableTemplate = (id: string) => { + Modal.confirm({ + title: intl.formatMessage({ id: 'supplierAnnualTemplateManage.modal.disableConfirmTitle' }), + content: intl.formatMessage({ id: 'supplierAnnualTemplateManage.modal.disableConfirmContent' }), + okText: intl.formatMessage({ id: 'supplierAnnualTemplateManage.common.confirm' }), + cancelText: intl.formatMessage({ id: 'supplierAnnualTemplateManage.common.cancel' }), + onOk: async () => { + try { + setLoading(true); + const res = await disableTemplate(id); + if (res.success) { + message.success(intl.formatMessage({ id: 'supplierAnnualTemplateManage.modal.disableSuccess' })); + fetchTemplateList(pagination.current, pagination.pageSize, searchParams); + } else { + message.error(res.message || intl.formatMessage({ id: 'supplierAnnualTemplateManage.modal.disableFailed' })); + } + } catch (error) { + console.error('禁用模板失败:', error); + message.error(intl.formatMessage({ id: 'supplierAnnualTemplateManage.modal.disableFailed' })); + } finally { + setLoading(false); + } + } + }); +}; const columns = [ { title: intl.formatMessage({ id: 'supplierTemplateManage.column.index' }), @@ -188,7 +240,7 @@ const SupplierTemplateManage: React.FC = () => { { title: intl.formatMessage({ id: 'supplierTemplateManage.column.action' }), key: 'action', - width: 150, + width: 200, align: 'center' as const, render: (_: unknown, record: SupplierTemplateManage.TemplateItem) => ( @@ -201,6 +253,27 @@ const SupplierTemplateManage: React.FC = () => { + + {/* 禁用状态显示启用按钮 草稿状态显示启用按钮 */} + {(record.status === TemplateStatus.DISABLED || + record.status === TemplateStatus.DRAFT) && ( + + )} + + {/* 启用状态显示禁用按钮 草稿状态显示禁用按钮 */} + {(record.status === TemplateStatus.ENABLED || + record.status === TemplateStatus.DRAFT) && ( + + )} ), }, diff --git a/src/servers/api/supplierEvaluate.ts b/src/servers/api/supplierEvaluate.ts index 13ea062..63b4e66 100644 --- a/src/servers/api/supplierEvaluate.ts +++ b/src/servers/api/supplierEvaluate.ts @@ -76,7 +76,7 @@ export async function deleteTemplate(id: string) { * @returns Promise */ export async function enableTemplate(id: string) { - return request>('/coscoEvaluate/template/enable', { + return request>('/coscoEvaluate/template/up', { method: 'POST', data: { id }, }); @@ -88,7 +88,7 @@ export async function enableTemplate(id: string) { * @returns Promise */ export async function disableTemplate(id: string) { - return request>('/coscoEvaluate/template/disable', { + return request>('/coscoEvaluate/template/down', { method: 'POST', data: { id }, });