From 64a2a4c5da0b1e0512ba594fd9ba3ead8bed182e Mon Sep 17 00:00:00 2001 From: maggieyyy <61950669+maggieyyy@users.noreply.github.com> Date: Mon, 9 Sep 2024 13:48:39 +0800 Subject: [PATCH 1/3] fix:english style --- .../components/aoplatform/MemberTransfer.tsx | 20 ++++++++++++----- .../common/src/const/approval/const.tsx | 13 ++++++----- .../common/src/locales/scan/en-GB.json | 7 +++++- .../src/locales/scan/newJson/en-GB.json | 6 ++++- .../src/locales/scan/newJson/zh-CN.json | 6 ++++- .../core/src/const/partitions/const.tsx | 2 +- .../core/src/pages/member/MemberList.tsx | 22 +++++++++++++------ .../member/Modal/AddToDepartmentModal.tsx | 18 +++++++++++---- .../core/src/pages/team/TeamInsidePage.tsx | 2 +- .../src/component/MonitorPieGraph.tsx | 6 ++--- 10 files changed, 73 insertions(+), 29 deletions(-) diff --git a/frontend/packages/common/src/components/aoplatform/MemberTransfer.tsx b/frontend/packages/common/src/components/aoplatform/MemberTransfer.tsx index ef3acd31..90c2e424 100644 --- a/frontend/packages/common/src/components/aoplatform/MemberTransfer.tsx +++ b/frontend/packages/common/src/components/aoplatform/MemberTransfer.tsx @@ -3,8 +3,10 @@ import { GetProp, TransferProps, TreeDataNode, theme, Transfer, Tree, Spin } fro import { DataNode, TreeProps } from "antd/es/tree"; import { Ref, forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState } from "react"; import { ApartmentOutlined, LoadingOutlined, UserOutlined } from "@ant-design/icons"; -import { debounce } from "lodash-es"; +import { cloneDeep, debounce } from "lodash-es"; import { ColumnsType } from "antd/es/table"; +import { $t } from "@common/locales"; +import { useGlobalContext } from "@common/contexts/GlobalStateContext"; type TransferItem = GetProp[number]; @@ -138,7 +140,7 @@ const TransferTree = (props)=>{ const [dataSource, setDataSource] = useState([]) const parentRef = useRef(null); const [loading, setLoading] = useState(false) - + const {state} = useGlobalContext() useEffect(()=>{ setTargetKeys(disabledData) @@ -158,7 +160,7 @@ const TransferTree = (props)=>{ const transferDataSource: TransferItem[] = useMemo(()=>{ function flatten(list: TreeDataNode[] = [], res:TransferItem[]) { list.forEach((item) => { - res.push(item as TransferItem); + res.push({...item, title:item.title === '所有成员' ? $t((item as unknown as {title:string}).title):item.title }as TransferItem); flatten(item.children,res); }); } @@ -166,9 +168,17 @@ const TransferTree = (props)=>{ flatten(dataSource,res); return res },[ - dataSource + dataSource, state.language ]) + + const translatedDataSource = useMemo(()=>dataSource.map((item)=>({ + ...item, + name:item.name === '所有成员' ? $t((item as unknown as {name:string}).name):item.name, + })),[dataSource, state.language]) + + + let memo: Record = {}; const handlerFilterOption = (inputValue: string, item: any, parentResult: boolean = false, childrenSet: Set = new Set()): boolean => { @@ -241,7 +251,7 @@ useEffect(() => { > {({ direction, onItemSelect, selectedKeys,onItemSelectAll ,filteredItems}) => { const treeProps = { - dataSource, direction, onItemSelect, selectedKeys,onItemSelectAll ,filteredItems,token,tableHeight,targetKeys,disabledData + dataSource:translatedDataSource, direction, onItemSelect, selectedKeys,onItemSelectAll ,filteredItems,token,tableHeight,targetKeys,disabledData } if (direction === 'left') { const checkedKey = [...selectedKeys, ...targetKeys as string[]]; diff --git a/frontend/packages/common/src/const/approval/const.tsx b/frontend/packages/common/src/const/approval/const.tsx index ef61036b..46b82764 100644 --- a/frontend/packages/common/src/const/approval/const.tsx +++ b/frontend/packages/common/src/const/approval/const.tsx @@ -276,7 +276,8 @@ export const PUBLISH_APPROVAL_VERSION_INNER_TABLE_COLUMN : PageProColumns value ? value.split(' ')?.[0] : '-', sorter: (a,b)=> { return a.notAfter.localeCompare(b.notAfter) diff --git a/frontend/packages/core/src/pages/member/MemberList.tsx b/frontend/packages/core/src/pages/member/MemberList.tsx index 542aff57..7db5aa0f 100644 --- a/frontend/packages/core/src/pages/member/MemberList.tsx +++ b/frontend/packages/core/src/pages/member/MemberList.tsx @@ -31,6 +31,7 @@ const AddToDepartment = forwardRef(( const { message } = App.useApp() const [expandedKeys, setExpandedKeys] = useState([]) const {fetchData} = useFetch() + const { state} = useGlobalContext() const save:()=>Promise = ()=>{ return new Promise((resolve, reject)=>{ fetchData>('user/department/member',{method:'POST',eoBody:({userIds:selectedUserIds,departmentIds:selectedKeys}),eoTransformKeys:['departmentIds','userIds']}).then(response=>{ @@ -71,6 +72,13 @@ const AddToDepartment = forwardRef(( }) } + const translatedTreeData = useMemo(()=> + treeData?.map((x:DataNode)=>({...x, + name:$t((x as unknown as {name:string}).name), + checkable:false, + children:x.children?.map((y)=>({...y,checkable:false})) + })),[state.language,treeData]) + const onCheck: TreeProps['onCheck'] = (checkedKeys:string[]) => { setSelectedKeys(checkedKeys.checked) @@ -94,10 +102,10 @@ const AddToDepartment = forwardRef(( selectable={false} onCheck={onCheck} onExpand={(expandedKeys:string[])=>{setExpandedKeys(expandedKeys)}} - treeData={treeData} + treeData={translatedTreeData} selectedKeys={[selectedKeys]} expandedKeys={expandedKeys} - fieldNames={{title:$t('name'),key:'id',children:'children'}} + fieldNames={{title:'name',key:'id',children:'children'}} /> ) @@ -386,11 +394,11 @@ const MemberList = ()=>{ onRowClick={handleRowClick} tableClickAccess="system.organization.member.edit" afterNewBtn={[ - selectedRowKeys.length > 0 && memberGroupId &&, - selectedRowKeys.length > 0 && memberGroupId &&, - selectedRowKeys.length > 0 && memberGroupId !== 'disable' &&, - selectedRowKeys.length > 0 && , - selectedRowKeys.length > 0 &&, + selectedRowKeys.length > 0 && memberGroupId &&, + selectedRowKeys.length > 0 && memberGroupId &&, + selectedRowKeys.length > 0 && memberGroupId !== 'disable' &&, + selectedRowKeys.length > 0 && , + selectedRowKeys.length > 0 &&, ]} onSearchWordChange={(e) => { setSearchWord(e.target.value) diff --git a/frontend/packages/core/src/pages/member/Modal/AddToDepartmentModal.tsx b/frontend/packages/core/src/pages/member/Modal/AddToDepartmentModal.tsx index ab3ba761..453a10c1 100644 --- a/frontend/packages/core/src/pages/member/Modal/AddToDepartmentModal.tsx +++ b/frontend/packages/core/src/pages/member/Modal/AddToDepartmentModal.tsx @@ -1,19 +1,22 @@ import { FolderOpenOutlined, FolderOutlined } from "@ant-design/icons" import { App, TreeProps, Alert, Tree } from "antd" -import { forwardRef, useState, useImperativeHandle, useEffect } from "react" +import { forwardRef, useState, useImperativeHandle, useEffect, useMemo } from "react" import { BasicResponse, RESPONSE_TIPS, STATUS_CODE } from "@common/const/const" import { AddToDepartmentHandle, AddToDepartmentProps, DepartmentListItem } from "../../../const/member/type" import { useFetch } from "@common/hooks/http" import {v4 as uuidv4} from 'uuid' import { $t } from "@common/locales" +import { useGlobalContext } from "@common/contexts/GlobalStateContext" +import { DataNode } from "antd/es/tree" const AddToDepartmentModal = forwardRef((props,ref)=>{ const {selectedUserIds} = props const [selectedKeys, setSelectedKeys] = useState([]) - const [treeData,setTreeData] = useState() + const [treeData,setTreeData] = useState() const { message } = App.useApp() const [expandedKeys, setExpandedKeys] = useState([]) const {fetchData} = useFetch() + const {state} = useGlobalContext() const save:()=>Promise = ()=>{ return new Promise((resolve, reject)=>{ fetchData>('user/department/member',{method:'POST',eoBody:({userIds:selectedUserIds,departmentIds:selectedKeys}),eoTransformKeys:['departmentIds','userIds']}).then(response=>{ @@ -54,6 +57,13 @@ const AddToDepartmentModal = forwardRef + treeData?.map((x:DataNode)=>({...x, + name:$t((x as unknown as {name:string}).name), + checkable:false, + children:x.children?.map((y)=>({...y,checkable:false})) + })),[state.language,treeData]) + const onCheck: TreeProps['onCheck'] = (checkedKeys:string[]) => { setSelectedKeys(checkedKeys.checked) @@ -77,10 +87,10 @@ const AddToDepartmentModal = forwardRef{setExpandedKeys(expandedKeys)}} - treeData={treeData} + treeData={translatedTreeData} selectedKeys={[selectedKeys]} expandedKeys={expandedKeys} - fieldNames={{title:$t('name'),key:'id',children:'children'}} + fieldNames={{title:'name',key:'id',children:'children'}} /> ) diff --git a/frontend/packages/core/src/pages/team/TeamInsidePage.tsx b/frontend/packages/core/src/pages/team/TeamInsidePage.tsx index 1b7e3c9a..7e17fdc7 100644 --- a/frontend/packages/core/src/pages/team/TeamInsidePage.tsx +++ b/frontend/packages/core/src/pages/team/TeamInsidePage.tsx @@ -32,7 +32,7 @@ const TeamInsidePage:FC = ()=> { }; const TEAM_INSIDE_MENU_ITEMS = useMemo(()=> [ - getItem(('管理'), 'grp', null, + getItem($t('管理'), 'grp', null, [ getItem({$t('成员')}, 'member',undefined, undefined, undefined,'team.team.member.view'), getItem({$t('设置')}, 'setting',undefined,undefined,undefined,'team.team.team.view')], diff --git a/frontend/packages/dashboard/src/component/MonitorPieGraph.tsx b/frontend/packages/dashboard/src/component/MonitorPieGraph.tsx index 70789c40..7bea1e80 100644 --- a/frontend/packages/dashboard/src/component/MonitorPieGraph.tsx +++ b/frontend/packages/dashboard/src/component/MonitorPieGraph.tsx @@ -62,8 +62,8 @@ const MonitorPieGraph: FC = ({ className,title, pieData, labelNam }, textStyle: { rich: { - title: { fontSize: 14, color: '#666666', lineHeight: 22, padding: [8, 0, 8, 0] }, - percent: { fontSize: 14, color: '#666666', width: 60, lineHeight: 22, align: 'right', padding: [8, 0, 8, 8] } + title: { fontSize: 14, color: '#666666',lineHeight: 22, width:state.language === 'en' ? 134 :70,padding: [8, 0, 8, 0] }, + percent: { fontSize: 14, color: '#666666', width: 60, lineHeight: 22, align:'right', padding: [8, 0, 8, 8] } } } }, @@ -79,7 +79,7 @@ const MonitorPieGraph: FC = ({ className,title, pieData, labelNam label: { show: true, position: 'center', - formatter: '{text|' + $t(labelName) + '}\n{value|' + labelValue + '}', + formatter: '{text|' + $t(labelName) + '}{value|' + labelValue + '}', rich: { text: { fontSize: 14, color: '#666666', lineHeight: 22, padding: [0, 0, 6, 0] }, value: { fontSize: 20, color: '#333333', lineHeight: 32, padding: [0, 0, 6, 0] }, From b2861fd7fdffa5ae4bd8f8547fdd55ee94e3dac0 Mon Sep 17 00:00:00 2001 From: maggieyyy <61950669+maggieyyy@users.noreply.github.com> Date: Mon, 9 Sep 2024 14:09:15 +0800 Subject: [PATCH 2/3] fix:team member tranlated --- .../core/src/pages/team/TeamInsideMember.tsx | 60 +++++++++---------- .../packages/core/src/pages/team/TeamList.tsx | 1 - 2 files changed, 29 insertions(+), 32 deletions(-) diff --git a/frontend/packages/core/src/pages/team/TeamInsideMember.tsx b/frontend/packages/core/src/pages/team/TeamInsideMember.tsx index 78a47ae2..d29f95d8 100644 --- a/frontend/packages/core/src/pages/team/TeamInsideMember.tsx +++ b/frontend/packages/core/src/pages/team/TeamInsideMember.tsx @@ -52,7 +52,7 @@ const TeamInsideMember:FC = ()=>{ const [modalVisible, setModalVisible] = useState(false) const [addMemberBtnDisabled, setAddMemberBtnDisabled] = useState(true) const [allMemberSelectedDepartIds, setAllMemberSelectedDepartIds] = useState([]) - const [columns,setColumns] = useState[]>([]) + const [roleList, setRoleList] = useState([]) const operation:PageProColumns[] =[ { @@ -230,36 +230,10 @@ const TeamInsideMember:FC = ()=>{ } const getRoleList = ()=>{ - fetchData}>>('simple/roles', {method: 'GET', eoParams: {group:'team'}}).then(response => { + fetchData>('simple/roles', {method: 'GET', eoParams: {group:'team'}}).then(response => { const {code, data,msg} = response if (code === STATUS_CODE.SUCCESS) { - - const newCol = [...TEAM_MEMBER_TABLE_COLUMNS] - for(const col of newCol){ - //console.log(col) - if(col.dataIndex === 'roles'){ - col.render = (_,entity)=>( - - x.id)} + options={roleList?.map((x:{id:string,name:string})=>({label:$t(x.name), value:x.id}))} + onChange={(value)=>{ + changeMemberInfo(value,entity ).then((res)=>{ + if(res) manualReloadTable() + }) + }} + /> + + ), + filters:roleList?.map((x:{id:string,name:string})=>({text:x.name, value:x.id})), + onFilter:(value: unknown, record:TeamMemberTableListItem) =>{ + return record.roles ? record.roles?.map((x)=>x.id).indexOf(value as string) !== -1 : false;} + } + } return({...x, title: typeof x.title === 'string' ? $t(x.title as string) : x.title}) }) return res - },[columns, state.language]) + },[ state.language,roleList]) useEffect(() => { getRoleList() diff --git a/frontend/packages/core/src/pages/team/TeamList.tsx b/frontend/packages/core/src/pages/team/TeamList.tsx index 50e3a0f0..dc1fab9e 100644 --- a/frontend/packages/core/src/pages/team/TeamList.tsx +++ b/frontend/packages/core/src/pages/team/TeamList.tsx @@ -85,7 +85,6 @@ const TeamList:FC = ()=>{ }; const openModal = async (type:'add'|'edit'|'delete',entity?:TeamTableListItem)=>{ - //console.log(type,entity) let title:string = '' let content:string | React.ReactNode= '' switch (type){ From 252cdfef353f468c7fd89594f19ce964d3bb2dcf Mon Sep 17 00:00:00 2001 From: maggieyyy <61950669+maggieyyy@users.noreply.github.com> Date: Sat, 14 Sep 2024 14:36:31 +0800 Subject: [PATCH 3/3] fix:tags id --- frontend/packages/core/src/pages/system/SystemConfig.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/packages/core/src/pages/system/SystemConfig.tsx b/frontend/packages/core/src/pages/system/SystemConfig.tsx index 310dd004..bea29e9a 100644 --- a/frontend/packages/core/src/pages/system/SystemConfig.tsx +++ b/frontend/packages/core/src/pages/system/SystemConfig.tsx @@ -100,7 +100,7 @@ const SystemConfig = forwardRef((_,ref) => { const {code,data,msg} = response if(code === STATUS_CODE.SUCCESS){ setTagOptionList(data.tags?.map((x:EntityItem)=>{return { - label:x.name, value:x.id + label:x.name, value:x.name }})||[]) setServiceClassifyOptionList(data.catalogues) @@ -121,7 +121,7 @@ const SystemConfig = forwardRef((_,ref) => { ...data.service, team:data.service.team.id, catalogue:data.service.catalogue?.id, - tags:data.service.tags?.map((x:EntityItem)=>x.id), + tags:data.service.tags?.map((x:EntityItem)=>x.name), logoFile:[ { uid: '-1', // 文件唯一标识