From 0d702fe1a3d559c46823ac8761c77e44be2e02a7 Mon Sep 17 00:00:00 2001
From: Chengliang <1546584672@qq.com>
Date: Wed, 5 Jun 2024 16:01:37 +0800
Subject: [PATCH] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84=E5=9B=BE?=
=?UTF-8?q?=E5=A4=9A=E8=AF=AD=E8=A8=80=E8=AE=BE=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/dialog/copyDialog.jsx | 179 +++++++++++----------
src/components/dialog/mergeDialog.jsx | 199 +++++++++++------------
src/components/drawer/index.jsx | 85 +++++-----
src/components/topBar/index.jsx | 64 ++++----
src/pages/company.jsx | 53 +++---
src/pages/dragTree.jsx | 221 ++++++++++++++------------
src/pages/statisticsTable.jsx | 130 ++++++++-------
src/pages/user.jsx | 2 +-
src/util/i18n.js | 15 ++
9 files changed, 512 insertions(+), 436 deletions(-)
create mode 100644 src/util/i18n.js
diff --git a/src/components/dialog/copyDialog.jsx b/src/components/dialog/copyDialog.jsx
index ac89253..de9f8c7 100644
--- a/src/components/dialog/copyDialog.jsx
+++ b/src/components/dialog/copyDialog.jsx
@@ -10,103 +10,106 @@ import * as d3 from 'd3';
import './index.less';
import { HomeOutlined } from '@ant-design/icons';
import './index.less';
+import { getLabel } from '../../util/i18n.js';
const layout = {
labelCol: { span: 8 },
wrapperCol: { span: 14 },
};
-const CopyDialog = forwardRef(({ open, onCreate, onCancel }, ref) => {
- const [treeData, setData] = useState([]);
- const [form] = Form.useForm();
- const formRef = useRef(null);
+const CopyDialog = forwardRef(
+ ({ open, onCreate, onCancel, labelData }, ref) => {
+ const [treeData, setData] = useState([]);
+ const [form] = Form.useForm();
+ const formRef = useRef(null);
- useImperativeHandle(ref, () => ({
- getTreeData() {
- form.resetFields();
- d3.json('/api/bs/hrmorganization/orgchart/getSubCompanyTree').then(
- (data) => {
- data.companyTree.map((item, index) => {
- item.icon = ;
- });
- setData(data.companyTree);
- },
- );
- },
- }));
+ useImperativeHandle(ref, () => ({
+ getTreeData() {
+ form.resetFields();
+ d3.json('/api/bs/hrmorganization/orgchart/getSubCompanyTree').then(
+ (data) => {
+ data.companyTree.map((item, index) => {
+ item.icon = ;
+ });
+ setData(data.companyTree);
+ },
+ );
+ },
+ }));
- /**
- * 根节点树异步加载
- * @param {} parentId
- * @returns
- */
- const onRootLoadData = (treeNode) =>
- new Promise((resolve) => {
- const { id } = treeNode.props;
- setTimeout(() => {
- d3.json(
- `/api/bs/hrmorganization/orgchart/getSubCompanyTree?subcompany=${id}`,
- ).then((data) => {
- data.companyTree.map((item, index) => {
- item.icon = ;
+ /**
+ * 根节点树异步加载
+ * @param {} parentId
+ * @returns
+ */
+ const onRootLoadData = (treeNode) =>
+ new Promise((resolve) => {
+ const { id } = treeNode.props;
+ setTimeout(() => {
+ d3.json(
+ `/api/bs/hrmorganization/orgchart/getSubCompanyTree?subcompany=${id}`,
+ ).then((data) => {
+ data.companyTree.map((item, index) => {
+ item.icon = ;
+ });
+ let arr = [...treeData, ...data.companyTree];
+ setData(arr);
});
- let arr = [...treeData, ...data.companyTree];
- setData(arr);
- });
- resolve(undefined);
- }, 200);
- });
+ resolve(undefined);
+ }, 200);
+ });
- return (
- {
- form
- .validateFields()
- .then((values) => {
- onCreate(values);
- })
- .catch((info) => {
- console.log('Validate Failed:', info);
- });
- }}
- >
-
-
-
+ return (
+ {
+ form
+ .validateFields()
+ .then((values) => {
+ onCreate(values);
+ })
+ .catch((info) => {
+ console.log('Validate Failed:', info);
+ });
+ }}
+ >
+
+
+
-
-
-
-
-
- );
-});
+
+
+
+
+
+ );
+ },
+);
export default CopyDialog;
diff --git a/src/components/dialog/mergeDialog.jsx b/src/components/dialog/mergeDialog.jsx
index 1cb38e3..438a0b4 100644
--- a/src/components/dialog/mergeDialog.jsx
+++ b/src/components/dialog/mergeDialog.jsx
@@ -10,114 +10,117 @@ import * as d3 from 'd3';
import './index.less';
import { HomeOutlined, FolderOutlined } from '@ant-design/icons';
import './index.less';
+import { getLabel } from '../../util/i18n.js';
const layout = {
labelCol: { span: 6 },
wrapperCol: { span: 14 },
};
-const MergeDialog = forwardRef(({ open, onCreate, onCancel }, ref) => {
- const [treeData, setData] = useState([]);
- const [form] = Form.useForm();
- const formRef = useRef(null);
+const MergeDialog = forwardRef(
+ ({ open, onCreate, onCancel, labelData }, ref) => {
+ const [treeData, setData] = useState([]);
+ const [form] = Form.useForm();
+ const formRef = useRef(null);
- const [treeLine, setTreeLine] = useState(true);
+ const [treeLine, setTreeLine] = useState(true);
- useImperativeHandle(ref, () => ({
- getTreeData() {
- form.resetFields();
- d3.json('/api/bs/hrmorganization/orgchart/getDepartmentTree').then(
- (data) => {
- data.departmentTree.map((item, index) => {
- item.icon = ;
- });
- setData(data.departmentTree);
- },
- );
- },
- }));
-
- /**
- * 根节点树异步加载
- * @param {} parentId
- * @returns
- */
- const onRootLoadData = (treeNode) =>
- new Promise((resolve) => {
- const { id } = treeNode.props;
- setTimeout(() => {
- d3.json(
- `/api/bs/hrmorganization/orgchart/getDepartmentTree?subcompany=${id}`,
- ).then((data) => {
- data.departmentTree.map((item, index) => {
- if (item.key.indexOf('d') > -1) {
- item.icon = ;
- } else {
+ useImperativeHandle(ref, () => ({
+ getTreeData() {
+ form.resetFields();
+ d3.json('/api/bs/hrmorganization/orgchart/getDepartmentTree').then(
+ (data) => {
+ data.departmentTree.map((item, index) => {
item.icon = ;
- }
- });
- let arr = [...treeData, ...data.departmentTree];
- setData(arr);
- });
- resolve(undefined);
- }, 200);
- });
+ });
+ setData(data.departmentTree);
+ },
+ );
+ },
+ }));
- return (
- {
- form
- .validateFields()
- .then((values) => {
- onCreate(values);
- })
- .catch((info) => {
- console.log('Validate Failed:', info);
+ /**
+ * 根节点树异步加载
+ * @param {} parentId
+ * @returns
+ */
+ const onRootLoadData = (treeNode) =>
+ new Promise((resolve) => {
+ const { id } = treeNode.props;
+ setTimeout(() => {
+ d3.json(
+ `/api/bs/hrmorganization/orgchart/getDepartmentTree?subcompany=${id}`,
+ ).then((data) => {
+ data.departmentTree.map((item, index) => {
+ if (item.key.indexOf('d') > -1) {
+ item.icon = ;
+ } else {
+ item.icon = ;
+ }
+ });
+ let arr = [...treeData, ...data.departmentTree];
+ setData(arr);
});
- }}
- >
-
-
-
+ resolve(undefined);
+ }, 200);
+ });
+
+ return (
+ {
+ form
+ .validateFields()
+ .then((values) => {
+ onCreate(values);
+ })
+ .catch((info) => {
+ console.log('Validate Failed:', info);
+ });
+ }}
+ >
+
+
+
-
-
-
-
-
- );
-});
+
+
+
+
+
+ );
+ },
+);
export default MergeDialog;
diff --git a/src/components/drawer/index.jsx b/src/components/drawer/index.jsx
index 84ed0b6..def832f 100644
--- a/src/components/drawer/index.jsx
+++ b/src/components/drawer/index.jsx
@@ -16,6 +16,7 @@ import { message } from 'antd';
import jsPDF from 'jspdf';
import ExportJsonExcel from 'js-export-excel';
import './index.less';
+import { getLabel } from '../../util/i18n.js';
let addNodeChildFunc = null;
let orgChart = null;
@@ -175,6 +176,7 @@ export default class DrawerComponents extends React.Component {
};
handleExport = (e) => {
+ const { labelData } = this.props;
let type = e.key == '1' ? 'png' : e.key == '1' ? 'pdf' : 'excel';
if (type == 'png') {
orgChart && orgChart.exportImg({ full: true });
@@ -201,30 +203,30 @@ export default class DrawerComponents extends React.Component {
}
}
}
- option.fileName = '组织信息';
+ option.fileName = `${getLabel(547468, labelData)}`;
option.datas = [
{
sheetData: dataTable,
sheetName: 'sheet',
sheetFilter: [
- '序号',
- '工号',
- '姓名',
- '性别',
- '部门',
- '分部',
- '岗位',
- '手机号',
+ `${getLabel(547327, labelData)}`,
+ `${getLabel(547328, labelData)}`,
+ `${getLabel(547329, labelData)}`,
+ `${getLabel(547330, labelData)}`,
+ `${getLabel(547331, labelData)}`,
+ `${getLabel(547332, labelData)}`,
+ `${getLabel(547333, labelData)}`,
+ `${getLabel(547334, labelData)}`,
],
sheetHeader: [
- '序号',
- '工号',
- '姓名',
- '性别',
- '部门',
- '分部',
- '岗位',
- '手机号',
+ `${getLabel(547327, labelData)}`,
+ `${getLabel(547328, labelData)}`,
+ `${getLabel(547329, labelData)}`,
+ `${getLabel(547330, labelData)}`,
+ `${getLabel(547331, labelData)}`,
+ `${getLabel(547332, labelData)}`,
+ `${getLabel(547333, labelData)}`,
+ `${getLabel(547334, labelData)}`,
],
},
];
@@ -237,6 +239,8 @@ export default class DrawerComponents extends React.Component {
* 节点渲染
*/
nodeContentRender = (d, i, arr, state) => {
+ const { labelData } = this.props;
+
if (d.data.ftype == 2) {
return `
@@ -254,11 +258,13 @@ export default class DrawerComponents extends React.Component {
${d.data.fname}
- 负责人:${d.data.fleader}
+ ${getLabel(547322, labelData)}:${d.data.fleader}
- 在岗: ${d.data.fonjob} 人
+ ${getLabel(547323, labelData)}: ${
+ d.data.fonjob
+ } ${getLabel(547525, labelData)}
@@ -273,9 +279,13 @@ export default class DrawerComponents extends React.Component {
-
${d.data.fname}
+
${
+ d.data.fname
+ }
- 在岗: ${d.data.fonjob} 人
+ ${getLabel(547323, labelData)}: ${
+ d.data.fonjob
+ } ${getLabel(547525, labelData)}
@@ -295,13 +305,15 @@ export default class DrawerComponents extends React.Component {
}" style="width: 58px; height: 58px; border-radius: 50%; margin-top: 16px;margin-left: -6px;z-index:999" />
-
+
- 司龄: ${d.data.companyWorkYear} 年
+ ${getLabel(547324, labelData)}: ${
+ d.data.companyWorkYear
+ } ${getLabel(547526, labelData)}
@@ -340,8 +352,11 @@ export default class DrawerComponents extends React.Component {
showJob,
} = this.state;
let arr = [];
+
+ const { labelData } = this.props;
+
if (detailType == 'chart') {
- arr.push({ label: '导出图片', key: '1' });
+ arr.push({ label: `${getLabel(547315, labelData)}`, key: '1' });
//arr.push({ label: '导出PDF', key: '2' });
} else {
arr.push({ label: '导出表格', key: '3' });
@@ -351,7 +366,7 @@ export default class DrawerComponents extends React.Component {
return (
- 是否显示岗位
+ {getLabel(547447, labelData)}
)}
-
+
}
@@ -393,7 +408,7 @@ export default class DrawerComponents extends React.Component {
{data.length > 0 && (
@@ -418,13 +433,11 @@ export default class DrawerComponents extends React.Component {
scroll={{ y: 600 }}
loading={spinning}
pagination={{
- locale: {
- // 翻页文本替换
- items_per_page: '条/页',
- jump_to: '跳至',
- page: '页',
- },
- showTotal: (total) => `共 ${dataSource.length} 条`,
+ showSizeChanger: false,
+ showTotal: (total) =>
+ `${getLabel(547523, labelData)} ${
+ dataSource.length
+ } ${getLabel(547524, labelData)}`,
}}
/>
diff --git a/src/components/topBar/index.jsx b/src/components/topBar/index.jsx
index fa3b8d7..baec137 100644
--- a/src/components/topBar/index.jsx
+++ b/src/components/topBar/index.jsx
@@ -15,6 +15,7 @@ import {
Modal,
Input,
message,
+ notification,
} from 'antd';
const { Option } = Select;
const { TextArea } = Input;
@@ -23,6 +24,8 @@ import 'moment/locale/zh-cn';
import locale from 'antd/lib/date-picker/locale/zh_CN';
import { HomeOutlined } from '@ant-design/icons';
moment.locale('zh-cn');
+import { getLabel } from '../../util/i18n.js';
+import { SmileOutlined } from '@ant-design/icons';
export class TopBar extends React.Component {
constructor(props) {
@@ -63,8 +66,9 @@ export class TopBar extends React.Component {
*/
handleOk = () => {
const { description, requestData } = this.state;
+ const { labelData } = this.props;
if (description.length == 0) {
- return message.error('请填写描述信息');
+ return message.error(`${getLabel(547512, labelData)}`);
}
this.setState({ confirmLoading: true });
let api =
@@ -80,9 +84,9 @@ export class TopBar extends React.Component {
open: false,
confirmLoading: false,
});
- message.success('版本记录成功,请重新刷新页面', 2, 3);
+ message.success(`${getLabel(547513, labelData)}`, 2, 3);
} else {
- message.error('版本记录失败,请联系相关人员处理数据', 2, 3);
+ message.error(`${getLabel(547514, labelData)}`, 2, 3);
}
});
};
@@ -175,7 +179,7 @@ export class TopBar extends React.Component {
onClick={this.handleExportMenuClick.bind(this)}
items={[
{
- label: '导出图片',
+ label: `${getLabel(547315, this.props.labelData)}`,
key: '1',
},
// {
@@ -187,14 +191,14 @@ export class TopBar extends React.Component {
);
render() {
- const { disabled, type } = this.props;
+ const { disabled, type, labelData } = this.props;
const { rootTreeData, open, confirmLoading, treeExpandedKeys } = this.state;
return (
- 维度:
+ {getLabel(547293, labelData)}:
@@ -288,10 +292,10 @@ export class TopBar extends React.Component {
})
}
>
- 显示虚拟组织
+ {getLabel(547302, labelData)}
@@ -309,7 +313,7 @@ export class TopBar extends React.Component {
this.setState({ open: true });
}}
>
- 版本记录
+ {getLabel(547305, labelData)}
-
+
this.setState({ open: false })}
>
-
- 提示:版本记录耗时较长,请谨慎操作(仅记录当前维度的数据版本)
-
- 主题:
+ {getLabel(547316, labelData)}
+ {getLabel(547317, labelData)}:
);
}
return (
- hasRight && (
+ hasRight &&
+ Object.keys(labelData).length != 0 && (
(topbar = r)}
@@ -449,6 +462,7 @@ export default function companyPage() {
}}
type="company"
url="/api/bs/hrmorganization/orgchart/getCondition?fclass=0&type=company&id=0"
+ labelData={labelData}
/>
handleTopLayoutClick(progressBtn)}
@@ -485,11 +499,12 @@ export default function companyPage() {
nodeContent={nodeContentRender}
/>
- (drawerCom = r)} />
+ (drawerCom = r)} labelData={labelData} />
(operateCom = r)}
addFolderNode={addFolderNode}
deleteNode={deleteNode}
+ labelData={labelData}
/>
)
diff --git a/src/pages/dragTree.jsx b/src/pages/dragTree.jsx
index ba718fb..af36d02 100644
--- a/src/pages/dragTree.jsx
+++ b/src/pages/dragTree.jsx
@@ -5,6 +5,7 @@ import qs from 'qs';
import MergeDialog from '../components/dialog/mergeDialog';
import CopyDialog from '../components/dialog/copyDialog';
import inset from '../../public/img/back/inset.png';
+import { getLabel } from '../util/i18n.js';
import {
HomeOutlined,
@@ -21,7 +22,7 @@ const DragTree = () => {
const [expandedKeys, setExpandedKeys] = useState([undefined]);
const childRef = useRef(null);
const copyChildRef = useRef(null);
- const [tip, setTip] = useState('正在加载,请稍候...');
+ const [tip, setTip] = useState('');
const [loading, setLoading] = useState(false);
const [showCanceled, setShowCanceled] = useState(0);
const [drawerOpen, setDrawerOpen] = useState(false);
@@ -31,8 +32,13 @@ const DragTree = () => {
const [mergeId, setMergeId] = useState(null);
const [copyopen, setCopyOpen] = useState(false);
const [copyId, setCopyId] = useState(null);
+ const [labelData, setLabelData] = useState({});
useEffect(() => {
+ d3.json('/api/bs/hrmorganization/orgchart/i18n').then((res) => {
+ setLabelData(res.data);
+ setTip(`${getLabel(547473, res.data)}`);
+ });
getMoveTree(0);
}, [true]);
@@ -72,19 +78,24 @@ const DragTree = () => {
info.dropPosition - Number(dropPos[dropPos.length - 1]);
if (dropPosition == -1) {
- return message.error('不支持该操作!!!', 2);
+ return message.error(`${getLabel(547475, labelData)}`, 2);
}
- let pos = dropPosition == 0 ? '内部' : '下方';
+ let pos =
+ dropPosition == 0
+ ? `${getLabel(547476, labelData)}`
+ : `${getLabel(547477, labelData)}`;
- let title = `确定将【${info.dragNode.title}】移到 【${info.node.title}】${pos}`;
+ let title = `${getLabel(547478, labelData)}【${
+ info.dragNode.title
+ } ${getLabel(547479, labelData)} 【${info.node.title}】${pos}`;
Modal.confirm({
- title: '转移操作',
+ title: `${getLabel(547480, labelData)}`,
content: title,
- okText: '确认',
- cancelText: '取消',
+ okText: `${getLabel(547319, labelData)}`,
+ cancelText: `${getLabel(547318, labelData)}`,
onOk() {
setLoading(true);
- setTip('正在转移,请稍候...');
+ setTip(`${getLabel(547481, labelData)}`);
fetch('/api/bs/hrmorganization/dept/dragDepartment', {
method: 'POST',
@@ -142,14 +153,14 @@ const DragTree = () => {
}
}
setGData(data);
- message.success('转移成功', 2);
+ message.success(`${getLabel(547482, labelData)}`, 2);
} else {
message.warning(res.msg, 2);
}
setLoading(false);
})
.catch((error) => {
- message.error('接口异常,请联系管理员');
+ message.error(`${getLabel(547483, labelData)}`);
});
},
onCancel() {},
@@ -178,14 +189,14 @@ const DragTree = () => {
arr.splice(index, 1);
});
setGData(data);
- message.success('删除成功', 2);
+ message.success(`${getLabel(547484, labelData)}`, 2);
} else {
message.warning(res.data.message, 2);
}
}
})
.catch((error) => {
- message.error('接口异常,请联系管理员');
+ message.error(`${getLabel(547483, labelData)}`);
});
};
@@ -211,7 +222,7 @@ const DragTree = () => {
if (res.code == 200) {
const data = [...gData];
if (nodeData.canceled != '0') {
- message.success('恢复成功', 2);
+ message.success(`${getLabel(547485, labelData)}`, 2);
loop(data, nodeData.key, (item, index, arr) => {
arr[index].canceled = '0';
});
@@ -219,7 +230,7 @@ const DragTree = () => {
loop(data, nodeData.key, (item, index, arr) => {
arr.splice(index, 1);
});
- message.success('封存成功', 2);
+ message.success(`${getLabel(547486, labelData)}`, 2);
}
setGData(data);
} else {
@@ -227,7 +238,7 @@ const DragTree = () => {
}
})
.catch((error) => {
- message.error('接口异常,请联系管理员');
+ message.error(`${getLabel(547483, labelData)}`);
});
};
@@ -260,14 +271,14 @@ const DragTree = () => {
.then((res) => {
if (res.code == 200) {
getMoveTree(0, values.department);
- message.success('合并成功', 2);
+ message.success(`${getLabel(547487, labelData)}`, 2);
} else {
message.warning(res.msg, 2);
}
setOpen(false);
})
.catch((error) => {
- message.error('接口异常,请联系管理员');
+ message.error(`${getLabel(547483, labelData)}`);
});
};
@@ -301,13 +312,13 @@ const DragTree = () => {
if (res.code == 200) {
setCopyOpen(false);
getMoveTree(0, values.company);
- message.success('复制成功', 2);
+ message.success(`${getLabel(547488, labelData)}`, 2);
} else {
message.warning(res.msg, 2);
}
})
.catch((error) => {
- message.error('接口异常,请联系管理员');
+ message.error(`${getLabel(547483, labelData)}`);
});
};
@@ -333,7 +344,7 @@ const DragTree = () => {
{nodeData.title}
{nodeData.canceled == '1' ? (
- (已封存)
+ ({getLabel(547489, labelData)})
) : (
''
@@ -352,24 +363,28 @@ const DragTree = () => {
);
}}
>
- 查看
+ {getLabel(547490, labelData)}
onDelete(nodeData)}
- okText="确认"
- cancelText="取消"
+ okText={getLabel(547319, labelData)}
+ cancelText={getLabel(547318, labelData)}
>
- 删除
+
+ {getLabel(547492, labelData)}
+
onCancel(nodeData)}
- okText="确认"
- cancelText="取消"
+ okText={getLabel(547319, labelData)}
+ cancelText={getLabel(547318, labelData)}
>
- {nodeData.canceled == '0' ? '封存' : '恢复'}
+ {nodeData.canceled == '0'
+ ? `${getLabel(547494, labelData)}`
+ : `${getLabel(547495, labelData)}`}
{
className="drag-button"
onClick={() => onMerge(nodeData)}
>
- 合并
+ {getLabel(547194, labelData)}
onCopy(nodeData)}
>
- 复制
+ {getLabel(547196, labelData)}
>
@@ -398,82 +413,84 @@ const DragTree = () => {
};
return (
-
-
-
-
-

-
组织快速调整
-
-
-
{
- const value = showCanceled == 0 ? 1 : 0;
- setTip('正在加载,请稍候...');
- setShowCanceled(value);
- getMoveTree(value);
- }}
- />
-
-
-
setDrawerOpen(false)}
- open={drawerOpen}
- >
-
-
+ Object.keys(labelData).length != 0 && (
+
+
+
+
+

+
{getLabel(547282, labelData)}
+
+
+
{
+ const value = showCanceled == 0 ? 1 : 0;
+ setTip(`${getLabel(547473, labelData)}`);
+ setShowCanceled(value);
+ getMoveTree(value);
+ }}
+ />
+
+
+
setDrawerOpen(false)}
+ open={drawerOpen}
+ >
+
+
-
-
-
- 小提示
-
-
-
1.鼠标拖拽Tree节点到任一分部部门下可快速完成组织转移;
-
2.点击【查看】侧滑打开组织详细信息,可快速编辑;
-
- 3.鼠标悬停树节点 一键开启【删除】【封存】【合并】【复制】等功能;
+
+
+
+ {getLabel(547283, labelData)}
+
+
+
1.{getLabel(547284, labelData)}
+
2.{getLabel(547285, labelData)}
+
3.{getLabel(547286, labelData)}
+
4.{getLabel(547287, labelData)}
-
4.顶部小图标点击可显示已封存的组织架构。
-
-
+
-
{
- setOpen(false);
- }}
- />
- {
- setCopyOpen(false);
- }}
- />
-
+
{
+ setOpen(false);
+ }}
+ labelData={labelData}
+ />
+ {
+ setCopyOpen(false);
+ }}
+ labelData={labelData}
+ />
+
+ )
);
};
export default DragTree;
diff --git a/src/pages/statisticsTable.jsx b/src/pages/statisticsTable.jsx
index 5c90376..e5f8cd7 100644
--- a/src/pages/statisticsTable.jsx
+++ b/src/pages/statisticsTable.jsx
@@ -10,73 +10,82 @@ import React, { useEffect, useState, useRef } from 'react';
import * as d3 from 'd3';
import qs from 'qs';
import { Table } from 'antd';
+import { getLabel } from '../util/i18n.js';
const StatisticsTable = () => {
const [loading, setLoading] = useState(true);
const [dataSource, setDataSource] = useState([]);
const [columns, setColumns] = useState([]);
+ const [labelData, setLabelData] = useState({});
useEffect(() => {
- const columns = [
- {
- title: '序号',
- dataIndex: 'key',
- key: 'key',
- },
- {
- title: '名称',
- dataIndex: 'dataIdName',
- key: 'dataIdName',
- },
- {
- title: '上级',
- dataIndex: 'superIdName',
- key: 'superIdName',
- },
- {
- title: '类型',
- dataIndex: 'type',
- key: 'type',
- render(value, row, index) {
- if (value == 1) {
- return '分部';
- } else {
- return '部门';
- }
+ d3.json('/api/bs/hrmorganization/orgchart/i18n').then((res) => {
+ setLabelData(res.data);
+ const columns = [
+ {
+ title: `${getLabel(547327, res.data)}`,
+ dataIndex: 'key',
+ key: 'key',
},
- },
- {
- title: '在编数',
- dataIndex: 'onJobNum',
- key: 'onJobNum',
- },
- {
- title: '编制数',
- dataIndex: 'staffNum',
- key: 'staffNum',
- },
- {
- title: '创建人',
- dataIndex: 'creator',
- key: 'creator',
- },
- {
- title: '创建时间',
- dataIndex: 'createTime',
- key: 'createTime',
- },
- {
- title: '更新时间',
- dataIndex: 'updateTime',
- key: 'updateTime',
- },
- ];
- setColumns(columns);
+ {
+ title: `${getLabel(547517, res.data)}`,
+ dataIndex: 'dataIdName',
+ key: 'dataIdName',
+ },
+ {
+ title: `${getLabel(547518, res.data)}`,
+ dataIndex: 'superIdName',
+ key: 'superIdName',
+ },
+ {
+ title: `${getLabel(547519, res.data)}`,
+ dataIndex: 'type',
+ key: 'type',
+ render(value, row, index) {
+ if (value == 1) {
+ return `${getLabel(547332, res.data)}`;
+ } else {
+ return `${getLabel(547331, res.data)}`;
+ }
+ },
+ },
+ {
+ title: `${getLabel(547346, res.data)}`,
+ dataIndex: 'onJobNum',
+ key: 'onJobNum',
+ },
+ {
+ title: `${getLabel(547345, res.data)}`,
+ dataIndex: 'staffNum',
+ key: 'staffNum',
+ },
+ {
+ title: `${getLabel(547520, res.data)}`,
+ dataIndex: 'creator',
+ key: 'creator',
+ },
+ {
+ title: `${getLabel(547521, res.data)}`,
+ dataIndex: 'createTime',
+ key: 'createTime',
+ },
+ {
+ title: `${getLabel(547522, res.data)}`,
+ dataIndex: 'updateTime',
+ key: 'updateTime',
+ },
+ ];
+ setColumns(columns);
+ selectData();
+ });
+ }, []);
+
+ const selectData = () => {
d3.json(`/api/bs/hrmorganization/orgchart/selectStatistics`).then((res) => {
setDataSource(res.data.result);
setLoading(false);
});
- }, [true]);
+ };
return (
<>
@@ -86,12 +95,11 @@ const StatisticsTable = () => {
columns={columns}
loading={loading}
pagination={{
- locale: {
- items_per_page: '条/页',
- jump_to: '跳至',
- page: '页',
- },
- showTotal: (total) => `共 ${dataSource.length} 条`,
+ showTotal: (total) =>
+ `${getLabel(547523, labelData)} ${dataSource.length} ${getLabel(
+ 547524,
+ labelData,
+ )}`,
}}
/>
;
diff --git a/src/pages/user.jsx b/src/pages/user.jsx
index a92b7ea..f1a220f 100644
--- a/src/pages/user.jsx
+++ b/src/pages/user.jsx
@@ -99,7 +99,7 @@ export default function userPage() {
// 获取数据
useEffect(() => {
document.cookie =
- 'ecology_JSessionid=aaahTt6JHXEIM-HoSW-Xy; JSESSIONID=aaahTt6JHXEIM-HoSW-Xy; Systemlanguid=7; languageidweaver=7; loginuuids=2773; __randcode__=a8294fa0-56d7-430f-a35b-139d73474682; loginidweaver=zhangxy16';
+ 'ecology_JSessionid=aaayUiSEKCD-Z-Y9A1i-y; JSESSIONID=aaayUiSEKCD-Z-Y9A1i-y; loginuuids=1; Systemlanguid=7; loginidweaver=sysadmin; languageidweaver=8; __randcode__=4ba2aadd-0de6-4ebc-b9d4-584ba46c0969';
d3.json(
'/api/bs/hrmorganization/orgchart/userData?fclass=0&fisvitual=0&root=0&level=3&id=0',
).then((data) => {
diff --git a/src/util/i18n.js b/src/util/i18n.js
new file mode 100644
index 0000000..d9b1ade
--- /dev/null
+++ b/src/util/i18n.js
@@ -0,0 +1,15 @@
+let languageIdWeaver = document.cookie
+ .split('; ')
+ .find((row) => row.startsWith('languageidweaver='))
+ ?.split('=')[1];
+if (languageIdWeaver == undefined) {
+ languageIdWeaver = 7;
+}
+
+export const getLabel = (key, labelData) => {
+ if (labelData[key]) {
+ return labelData[key].labelName;
+ } else {
+ return languageIdWeaver == 7 ? '标签不存在' : 'Label does not exist';
+ }
+};