From fc4787359ce96b1fde4158c9b777b0579147d082 Mon Sep 17 00:00:00 2001 From: linxd <544554903@qq.com> Date: Thu, 17 Jul 2025 08:59:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20=E5=81=9C=E7=94=A8/?= =?UTF-8?q?=E5=90=AF=E7=94=A8=20=E6=8C=89=E9=92=AE=E5=AF=B9=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E7=8A=B6=E6=80=81=E8=BF=9B=E8=A1=8C=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/dicts/supplierAnnualDict.ts | 6 +- .../supplierAnnualTemplateManage.tsx | 22 +----- .../supplierTemplateManage.tsx | 79 ++++++++++++++++++- src/servers/api/supplierEvaluate.ts | 4 +- 4 files changed, 85 insertions(+), 26 deletions(-) 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 }, });