From 8dccf8e554eefcfa832eca45be35be4dddad3cb8 Mon Sep 17 00:00:00 2001 From: liamzi Date: Thu, 16 Jan 2025 18:41:30 +0800 Subject: [PATCH] =?UTF-8?q?=E9=BB=91=E6=9A=97=E6=A8=A1=E5=BC=8Ffix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/ChatAi/index.jsx | 4 +- src/components/Layout/Sidebar.jsx | 3 +- src/components/SectionList/index.jsx | 56 +++++++-------- src/components/TaskList/index.jsx | 4 +- src/components/difyChatAi/index.jsx | 6 +- src/index.css | 2 - src/pages/company/customer/index.jsx | 2 +- src/pages/company/project/detail/index.jsx | 2 +- src/pages/company/project/index.jsx | 2 +- src/pages/company/quotation/detail/index.jsx | 2 +- src/pages/company/quotation/index.jsx | 38 +++++----- src/pages/company/service/detail/index.jsx | 2 +- src/pages/company/service/index.jsx | 10 +-- .../service/itemsManange/classify/index.jsx | 2 +- .../service/itemsManange/unit/index.jsx | 2 +- src/pages/company/supplier/index.jsx | 2 +- src/pages/company/task/detail/index.jsx | 2 +- src/pages/company/task/index.jsx | 6 +- src/pages/marketing/campaign/index.jsx | 8 --- .../marketing/campaign/performance/index.jsx | 34 --------- src/pages/marketing/campaign/plan/index.jsx | 48 ------------- .../project/components/ProjectForm.jsx | 45 ------------ .../marketing/campaign/project/index.jsx | 71 ------------------- src/pages/marketing/communication/index.jsx | 8 --- .../marketing/communication/journey/index.jsx | 40 ----------- .../marketing/communication/list/index.jsx | 48 ------------- .../marketing/communication/preview/index.jsx | 42 ----------- src/pages/marketing/index.jsx | 8 --- src/pages/marketing/template/index.jsx | 43 ----------- .../resource/resourceTask/edit/index.jsx | 2 +- src/pages/resource/resourceTask/index.jsx | 2 +- src/pages/resource/role/index.jsx | 13 ++-- .../team/components/MembershipTable.jsx | 2 +- .../resource/team/components/TeamTable.jsx | 3 +- src/pages/resource/team/index.jsx | 2 +- src/styles/main.scss | 54 ++++++++------ 36 files changed, 115 insertions(+), 505 deletions(-) delete mode 100644 src/pages/marketing/campaign/index.jsx delete mode 100644 src/pages/marketing/campaign/performance/index.jsx delete mode 100644 src/pages/marketing/campaign/plan/index.jsx delete mode 100644 src/pages/marketing/campaign/project/components/ProjectForm.jsx delete mode 100644 src/pages/marketing/campaign/project/index.jsx delete mode 100644 src/pages/marketing/communication/index.jsx delete mode 100644 src/pages/marketing/communication/journey/index.jsx delete mode 100644 src/pages/marketing/communication/list/index.jsx delete mode 100644 src/pages/marketing/communication/preview/index.jsx delete mode 100644 src/pages/marketing/index.jsx delete mode 100644 src/pages/marketing/template/index.jsx diff --git a/src/components/ChatAi/index.jsx b/src/components/ChatAi/index.jsx index 4587fd0..1e764d9 100644 --- a/src/components/ChatAi/index.jsx +++ b/src/components/ChatAi/index.jsx @@ -202,13 +202,13 @@ export default function ChatAIDrawer({ open, onClose, onExport }) { placeholder="请输入您的问题..." onChange={handleInputChange} disabled={isLoading} - className="flex-1 rounded-lg border-gray-300 hover:border-blue-400 focus:border-blue-600 focus:shadow-blue-100" + className="flex-1 rounded-md " /> diff --git a/src/components/Layout/Sidebar.jsx b/src/components/Layout/Sidebar.jsx index 4d4543b..2d009a1 100644 --- a/src/components/Layout/Sidebar.jsx +++ b/src/components/Layout/Sidebar.jsx @@ -44,7 +44,7 @@ const Sidebar = ({ collapsed }) => { theme={isDarkMode ? "dark" : "light"} width={256} collapsedWidth={80} - className={`app-sidebar ${collapsed ? "collapsed" : ""}`} + className={`app-sidebar ${collapsed ? "collapsed" : ""} overflow-auto`} > { defaultOpenKeys={defaultOpenKeys} items={menuClient} onClick={handleMenuClick} - style={{ overflow: 'auto' }} /> ); diff --git a/src/components/SectionList/index.jsx b/src/components/SectionList/index.jsx index 97411f4..588dea5 100644 --- a/src/components/SectionList/index.jsx +++ b/src/components/SectionList/index.jsx @@ -187,50 +187,44 @@ const SectionList = ({ {availableSections.map((section) => (
handleUseTemplate(section, add)} >
-

+

{section.attributes.name}

-
+
{section.attributes.items?.length || 0} 个项目
-
- {(section.attributes.items || []) - .slice(0, 3) - .map((item, index) => ( -
- - {item.name} - - - {formatExchangeRate(currentCurrency, item.price)} - -
- ))} +
+ {(section.attributes.items || []).slice(0, 3).map((item, index) => ( +
+ + {item.name} + + + {formatExchangeRate(currentCurrency, item.price)} + +
+ ))} {(section.attributes.items || []).length > 3 && ( -
+
还有 {section.attributes.items.length - 3} 个项目...
)}
-
- 总金额 - +
+ 总金额 + {formatExchangeRate( currentCurrency, (section.attributes.items || []).reduce( - (sum, item) => - sum + (item.price * (item.quantity || 1) || 0), + (sum, item) => sum + (item.price * (item.quantity || 1) || 0), 0 ) )} @@ -241,12 +235,12 @@ const SectionList = ({ ))}
-
+
@@ -256,7 +250,7 @@ const SectionList = ({
-

+

暂无可用模板

-

+

您可以选择创建一个自定义模块开始使用

diff --git a/src/components/TaskList/index.jsx b/src/components/TaskList/index.jsx index d7e7122..e5bafcd 100644 --- a/src/components/TaskList/index.jsx +++ b/src/components/TaskList/index.jsx @@ -199,7 +199,7 @@ const SectionList = ({ form, isView, formValues, type }) => { {availableSections.map((section) => (
handleUseTemplate(section, add)} >
@@ -241,7 +241,7 @@ const SectionList = ({ form, isView, formValues, type }) => { ))}
-
+
diff --git a/src/index.css b/src/index.css index 139597f..e69de29 100644 --- a/src/index.css +++ b/src/index.css @@ -1,2 +0,0 @@ - - diff --git a/src/pages/company/customer/index.jsx b/src/pages/company/customer/index.jsx index 2df9258..008ef48 100644 --- a/src/pages/company/customer/index.jsx +++ b/src/pages/company/customer/index.jsx @@ -158,7 +158,7 @@ const CustomerPage = () => { columns={columns} dataSource={customers} rowKey="id" - scroll={{ x: true }} + scroll={{ x: true}} loading={loading} onChange={handleTableChange} pagination={{ diff --git a/src/pages/company/project/detail/index.jsx b/src/pages/company/project/detail/index.jsx index 294c4ff..61254ca 100644 --- a/src/pages/company/project/detail/index.jsx +++ b/src/pages/company/project/detail/index.jsx @@ -256,7 +256,7 @@ export default function ProjectDetail() { }, [id, templateId]); return ( -
+
{ columns={columns} dataSource={projects} rowKey="id" - scroll={{ x: true }} + scroll={{ x: true}} loading={loadingProjects} onChange={handleTableChange} pagination={{ diff --git a/src/pages/company/quotation/detail/index.jsx b/src/pages/company/quotation/detail/index.jsx index 97c6061..9c70388 100644 --- a/src/pages/company/quotation/detail/index.jsx +++ b/src/pages/company/quotation/detail/index.jsx @@ -362,7 +362,7 @@ const QuotationForm = () => { }; return ( -
+
{ columns={columns} dataSource={quotations} rowKey="id" - scroll={{ x: true }} + scroll={{ x: true}} loading={loadingQuotations} onChange={handleTableChange} pagination={{ @@ -405,7 +405,7 @@ useEffect(()=>{ , @@ -414,28 +414,28 @@ useEffect(()=>{ type="primary" disabled={!selectedTemplateId} onClick={handleConfirm} - className="gap-2 px-6 rounded-full bg-blue-600 hover:bg-blue-700" + className="gap-2 px-6 rounded-full " > 使用选中模板 , ]} width={900} - className="template-modal" + className="template-modal " > {loading ? ( -
+
) : templates.length === 0 ? ( - + 暂无可用模板} /> ) : ( -
+
{getTemplatesByCategory().map((group, groupIndex) => (
-

+

{group.name} - + ({group.templates.length})

@@ -450,18 +450,18 @@ useEffect(()=>{ relative p-6 rounded-xl cursor-pointer transition-all duration-200 ${ selectedTemplateId === template.id - ? "ring-2 ring-blue-500 bg-blue-50/40" - : "hover:shadow-lg border border-gray-200 hover:border-blue-200" + ? "ring-2 ring-blue-500 dark:ring-blue-400 bg-blue-50/40 dark:bg-blue-900/30" + : "hover:shadow-lg border border-gray-200 dark:border-gray-700 hover:border-blue-200 dark:hover:border-blue-700" } - transform hover:-translate-y-1 + transform hover:-translate-y-1 dark:bg-gray-800 `} >
-

+

{template.attributes.templateName}

-

+

{template.attributes.description || "暂无描述"}

@@ -475,16 +475,16 @@ useEffect(()=>{ rounded-lg p-3 text-sm border ${ selectedTemplateId === template.id - ? "bg-white border-blue-200" - : "bg-gray-50 border-gray-100" + ? "bg-white dark:bg-gray-700 border-blue-200 dark:border-blue-600" + : "bg-gray-50 dark:bg-gray-800 border-gray-100 dark:border-gray-700" } `} >
- + {section.sectionName} - + {section.items.length}项
@@ -494,7 +494,7 @@ useEffect(()=>{ {selectedTemplateId === template.id && (
-
+
{ return
无效的模板类型
; } return ( -
+
{ title: "名称", dataIndex: "name", key: "name", - width: "15%", render: (text, item, index) => { const isEditing = editingKey === `${record.id}-${section.key}-${index}`; @@ -286,7 +285,6 @@ const ServicePage = () => { title: "单位", dataIndex: "unit", key: "unit", - width: "10%", render: (text, item, index) => { const isEditing = editingKey === `${record.id}-${section.key}-${index}`; @@ -320,7 +318,6 @@ const ServicePage = () => { title: "单价", dataIndex: "price", key: "price", - width: "10%", render: (text, item, index) => { const isEditing = editingKey === `${record.id}-${section.key}-${index}`; @@ -343,7 +340,6 @@ const ServicePage = () => { title: "数量", dataIndex: "quantity", key: "quantity", - width: "10%", render: (text, item, index) => { const isEditing = editingKey === `${record.id}-${section.key}-${index}`; @@ -677,7 +673,7 @@ const ServicePage = () => {
{ title: "模板名称", dataIndex: ["attributes", "templateName"], key: "templateName", - className: "min-w-[200px]", }, { title: "模板类型", @@ -766,6 +761,7 @@ const ServicePage = () => { title: "创建时间", dataIndex: "created_at", key: "created_at", + width: 220, render: (text) => new Date(text).toLocaleString(), sorter: (a, b) => new Date(a.created_at) - new Date(b.created_at), }, @@ -858,7 +854,7 @@ const ServicePage = () => {
{
{
{ } >
+
{ } - className="h-full w-full overflow-auto dark:bg-gray-800 dark:border-gray-700" + className="h-full w-full overflow-auto " extra={
- - ); -}; - -export default CampaignPlan; \ No newline at end of file diff --git a/src/pages/marketing/campaign/project/components/ProjectForm.jsx b/src/pages/marketing/campaign/project/components/ProjectForm.jsx deleted file mode 100644 index d38e869..0000000 --- a/src/pages/marketing/campaign/project/components/ProjectForm.jsx +++ /dev/null @@ -1,45 +0,0 @@ -import React from 'react'; -import { Form, Input, DatePicker, Select } from 'antd'; -import { STATUS } from '@/constants/status'; - -export const ProjectForm = ({ form }) => ( - - - - - - - - {Object.values(STATUS).map(status => ( - - {status} - - ))} - - - -); \ No newline at end of file diff --git a/src/pages/marketing/campaign/project/index.jsx b/src/pages/marketing/campaign/project/index.jsx deleted file mode 100644 index b95f772..0000000 --- a/src/pages/marketing/campaign/project/index.jsx +++ /dev/null @@ -1,71 +0,0 @@ -import React, { useState } from 'react'; -import { Card, Modal, Form } from 'antd'; -import { PageHeader } from '@/components/common/PageHeader'; -import { BaseTable } from '@/components/common/BaseTable'; -import { ProjectForm } from './components/ProjectForm'; -import { useProjectData } from './hooks/useProjectData'; -import { getStatusColumn, getDateColumn } from '@/utils/tableColumns'; - -const CampaignProject = () => { - const [form] = Form.useForm(); - const [visible, setVisible] = useState(false); - const { loading, data, pagination, loadData } = useProjectData(); - - const columns = [ - { - title: '专案名称', - dataIndex: 'name', - key: 'name', - }, - { - title: '负责人', - dataIndex: 'manager', - key: 'manager', - }, - getDateColumn('开始日期', 'startDate'), - getStatusColumn(), - ]; - - const handleAdd = () => { - setVisible(true); - }; - - const handleSubmit = async () => { - try { - const values = await form.validateFields(); - console.log('Success:', values); - setVisible(false); - form.resetFields(); - loadData(); - } catch (error) { - console.error('Failed:', error); - } - }; - - return ( - - - - setVisible(false)} - > - - - - ); -}; - -export default CampaignProject; \ No newline at end of file diff --git a/src/pages/marketing/communication/index.jsx b/src/pages/marketing/communication/index.jsx deleted file mode 100644 index fb3699d..0000000 --- a/src/pages/marketing/communication/index.jsx +++ /dev/null @@ -1,8 +0,0 @@ -import React from 'react'; -import { Outlet } from 'react-router-dom'; - -const Communication = () => { - return ; -}; - -export default Communication; \ No newline at end of file diff --git a/src/pages/marketing/communication/journey/index.jsx b/src/pages/marketing/communication/journey/index.jsx deleted file mode 100644 index 864d35a..0000000 --- a/src/pages/marketing/communication/journey/index.jsx +++ /dev/null @@ -1,40 +0,0 @@ -import React from 'react'; -import { Card, Timeline, Button } from 'antd'; -import { ClockCircleOutlined } from '@ant-design/icons'; - -const CommunicationJourney = () => { - return ( - 导出记录 - } - > - , - children: '客户查看邮件 2023-10-25 11:00:00', - }, - { - color: 'red', - children: '系统提醒跟进 2023-10-25 14:00:00', - }, - { - children: '完成跟进 2023-10-25 16:00:00', - }, - ]} - /> - - ); -}; - -export default CommunicationJourney; \ No newline at end of file diff --git a/src/pages/marketing/communication/list/index.jsx b/src/pages/marketing/communication/list/index.jsx deleted file mode 100644 index 589990a..0000000 --- a/src/pages/marketing/communication/list/index.jsx +++ /dev/null @@ -1,48 +0,0 @@ -import React from 'react'; -import { Card, Table, Button, Input } from 'antd'; -import { PlusOutlined } from '@ant-design/icons'; - -const { Search } = Input; - -const CommunicationList = () => { - const columns = [ - { - title: '名单名称', - dataIndex: 'name', - key: 'name', - }, - { - title: '联系人数量', - dataIndex: 'contactCount', - key: 'contactCount', - }, - { - title: '创建日期', - dataIndex: 'createdAt', - key: 'createdAt', - }, - { - title: '更新日期', - dataIndex: 'updatedAt', - key: 'updatedAt', - }, - ]; - - return ( - }> - 新增名单 - - } - > -
- -
-
- - ); -}; - -export default CommunicationList; \ No newline at end of file diff --git a/src/pages/marketing/communication/preview/index.jsx b/src/pages/marketing/communication/preview/index.jsx deleted file mode 100644 index 6c97dfa..0000000 --- a/src/pages/marketing/communication/preview/index.jsx +++ /dev/null @@ -1,42 +0,0 @@ -import React from 'react'; -import { Card, Tabs, Button } from 'antd'; -import { SendOutlined } from '@ant-design/icons'; - -const CommunicationPreview = () => { - const items = [ - { - key: '1', - label: '邮件预览', - children: ( -
-

邮件主题

-
邮件内容预览区域
-
- ), - }, - { - key: '2', - label: '短信预览', - children: ( -
-
短信内容预览区域
-
- ), - }, - ]; - - return ( - }> - 发送测试 - - } - > - - - ); -}; - -export default CommunicationPreview; \ No newline at end of file diff --git a/src/pages/marketing/index.jsx b/src/pages/marketing/index.jsx deleted file mode 100644 index af40925..0000000 --- a/src/pages/marketing/index.jsx +++ /dev/null @@ -1,8 +0,0 @@ -import React from 'react'; -import { Outlet } from 'react-router-dom'; - -const MarketingCenter = () => { - return ; -}; - -export default MarketingCenter; \ No newline at end of file diff --git a/src/pages/marketing/template/index.jsx b/src/pages/marketing/template/index.jsx deleted file mode 100644 index 3eec094..0000000 --- a/src/pages/marketing/template/index.jsx +++ /dev/null @@ -1,43 +0,0 @@ -import React from 'react'; -import { Card, Table, Button } from 'antd'; -import { PlusOutlined } from '@ant-design/icons'; - -const TemplatePage = () => { - const columns = [ - { - title: '模版名称', - dataIndex: 'name', - key: 'name', - }, - { - title: '类型', - dataIndex: 'type', - key: 'type', - }, - { - title: '创建日期', - dataIndex: 'createdAt', - key: 'createdAt', - }, - { - title: '状态', - dataIndex: 'status', - key: 'status', - }, - ]; - - return ( - }> - 新增模版 - - } - > -
- - ); -}; - -export default TemplatePage; \ No newline at end of file diff --git a/src/pages/resource/resourceTask/edit/index.jsx b/src/pages/resource/resourceTask/edit/index.jsx index d31a20e..6d964f8 100644 --- a/src/pages/resource/resourceTask/edit/index.jsx +++ b/src/pages/resource/resourceTask/edit/index.jsx @@ -261,7 +261,7 @@ const ResourceTaskForm = () => { bordered={false} >
{ } >
(
handleDelete(record.id)} >
), @@ -522,7 +523,7 @@ export default function PermissionManagement() { return ( - + { setModalType('add'); @@ -538,12 +539,14 @@ export default function PermissionManagement() { />
{
{ const editable = isEditing(record); return editable ? ( @@ -180,7 +181,7 @@ export const TeamTable = ({ tableLoading,pagination,dataSource, onTableChange,on return (
{ return ( - +