Unverified Commit 8f5e5b8f authored by zhu-mingye's avatar zhu-mingye Committed by GitHub

[Feature][web] Improve internationalization (#1156)

* [Feature][web] Improve internationalization

* [Feature][web] Improve internationalization

* [Feature][web] Improve internationalization

* [Feature][web] Improve internationalization
parent 7d66ec37
...@@ -36,6 +36,7 @@ target/* ...@@ -36,6 +36,7 @@ target/*
dlink-web/node_modules/* dlink-web/node_modules/*
dlink-web/node/* dlink-web/node/*
dlink-web/dist/* dlink-web/dist/*
dlink-web/.mfsu-production
dlink-admin/src/main/resources/static/* dlink-admin/src/main/resources/static/*
dependency-reduced-pom.xml dependency-reduced-pom.xml
......
...@@ -19,14 +19,14 @@ ...@@ -19,14 +19,14 @@
// https://umijs.org/config/ // https://umijs.org/config/
import { defineConfig } from 'umi'; import {defineConfig} from 'umi';
import { join } from 'path'; import {join} from 'path';
import defaultSettings from './defaultSettings'; import defaultSettings from './defaultSettings';
import proxy from './proxy'; import proxy from './proxy';
import routes from './routes'; import routes from './routes';
const { REACT_APP_ENV } = process.env; const {REACT_APP_ENV} = process.env;
export default defineConfig({ export default defineConfig({
hash: true, hash: true,
...@@ -34,6 +34,7 @@ export default defineConfig({ ...@@ -34,6 +34,7 @@ export default defineConfig({
dva: { dva: {
hmr: true, hmr: true,
}, },
mfsu: {production: {output: '.mfsu-production'}},
layout: { layout: {
// https://umijs.org/zh-CN/plugins/plugin-layout // https://umijs.org/zh-CN/plugins/plugin-layout
locale: true, locale: true,
...@@ -70,8 +71,8 @@ export default defineConfig({ ...@@ -70,8 +71,8 @@ export default defineConfig({
manifest: { manifest: {
basePath: '/', basePath: '/',
}, },
history:{ history: {
type:'hash' type: 'hash'
}, },
// Fast Refresh 热更新 // Fast Refresh 热更新
fastRefresh: {}, fastRefresh: {},
......
...@@ -98,7 +98,7 @@ const BarChartSetting: React.FC<BarChartProps> = (props) => { ...@@ -98,7 +98,7 @@ const BarChartSetting: React.FC<BarChartProps> = (props) => {
<Row> <Row>
<Col span={12}> <Col span={12}>
<Form.Item <Form.Item
label="x 轴" className={styles.form_item} name="xField" label={l('chart.xAxis')} className={styles.form_item} name="xField"
> >
{column && column.length > 0 ? ( {column && column.length > 0 ? (
<Select allowClear showSearch <Select allowClear showSearch
...@@ -111,7 +111,7 @@ const BarChartSetting: React.FC<BarChartProps> = (props) => { ...@@ -111,7 +111,7 @@ const BarChartSetting: React.FC<BarChartProps> = (props) => {
</Col> </Col>
<Col span={12}> <Col span={12}>
<Form.Item <Form.Item
label="y 轴" className={styles.form_item} name="yField" label={l('chart.yAxis')} className={styles.form_item} name="yField"
> >
{column && column.length > 1 ? ( {column && column.length > 1 ? (
<Select allowClear showSearch <Select allowClear showSearch
...@@ -126,7 +126,7 @@ const BarChartSetting: React.FC<BarChartProps> = (props) => { ...@@ -126,7 +126,7 @@ const BarChartSetting: React.FC<BarChartProps> = (props) => {
<Row> <Row>
<Col span={12}> <Col span={12}>
<Form.Item <Form.Item
label="分组字段" className={styles.form_item} name="seriesField" label={l('chart.groupColumns')} className={styles.form_item} name="seriesField"
> >
{column && column.length > 0 ? ( {column && column.length > 0 ? (
<Select allowClear showSearch> <Select allowClear showSearch>
...@@ -138,28 +138,25 @@ const BarChartSetting: React.FC<BarChartProps> = (props) => { ...@@ -138,28 +138,25 @@ const BarChartSetting: React.FC<BarChartProps> = (props) => {
</Col> </Col>
<Col span={12}> <Col span={12}>
<Form.Item <Form.Item
label="分组" className={styles.form_item} name="isGroup" valuePropName="checked" label={l('chart.group')} className={styles.form_item} name="isGroup" valuePropName="checked"
> >
<Switch checkedChildren="启用" unCheckedChildren="禁用" <Switch checkedChildren={l('button.enable')} unCheckedChildren={l('button.disable')}/>
/>
</Form.Item> </Form.Item>
</Col> </Col>
</Row> </Row>
<Row> <Row>
<Col span={12}> <Col span={12}>
<Form.Item <Form.Item
label="堆叠" className={styles.form_item} name="isStack" valuePropName="checked" label={l('chart.stack')} className={styles.form_item} name="isStack" valuePropName="checked"
> >
<Switch checkedChildren="启用" unCheckedChildren="禁用" <Switch checkedChildren={l('button.enable')} unCheckedChildren={l('button.disable')}/>
/>
</Form.Item> </Form.Item>
</Col> </Col>
<Col span={12}> <Col span={12}>
<Form.Item <Form.Item
label="百分比" className={styles.form_item} name="isPercent" valuePropName="checked" label={l('chart.percentage')} className={styles.form_item} name="isPercent" valuePropName="checked"
> >
<Switch checkedChildren="启用" unCheckedChildren="禁用" <Switch checkedChildren={l('button.enable')} unCheckedChildren={l('button.disable')}/>
/>
</Form.Item> </Form.Item>
</Col> </Col>
</Row> </Row>
......
...@@ -98,7 +98,7 @@ const LineChartSetting: React.FC<LineChartProps> = (props) => { ...@@ -98,7 +98,7 @@ const LineChartSetting: React.FC<LineChartProps> = (props) => {
<Row> <Row>
<Col span={12}> <Col span={12}>
<Form.Item <Form.Item
label="x 轴" className={styles.form_item} name="xField" label={l('chart.xAxis')} className={styles.form_item} name="xField"
> >
{column && column.length > 0 ? ( {column && column.length > 0 ? (
<Select allowClear showSearch <Select allowClear showSearch
...@@ -111,7 +111,7 @@ const LineChartSetting: React.FC<LineChartProps> = (props) => { ...@@ -111,7 +111,7 @@ const LineChartSetting: React.FC<LineChartProps> = (props) => {
</Col> </Col>
<Col span={12}> <Col span={12}>
<Form.Item <Form.Item
label="y 轴" className={styles.form_item} name="yField" label={l('chart.yAxis')} className={styles.form_item} name="yField"
> >
{column && column.length > 1 ? ( {column && column.length > 1 ? (
<Select allowClear showSearch <Select allowClear showSearch
...@@ -126,7 +126,7 @@ const LineChartSetting: React.FC<LineChartProps> = (props) => { ...@@ -126,7 +126,7 @@ const LineChartSetting: React.FC<LineChartProps> = (props) => {
<Row> <Row>
<Col span={12}> <Col span={12}>
<Form.Item <Form.Item
label="分组字段" className={styles.form_item} name="seriesField" label={l('chart.xAxis')} className={styles.form_item} name="seriesField"
> >
{column && column.length > 0 ? ( {column && column.length > 0 ? (
<Select allowClear showSearch> <Select allowClear showSearch>
...@@ -138,20 +138,20 @@ const LineChartSetting: React.FC<LineChartProps> = (props) => { ...@@ -138,20 +138,20 @@ const LineChartSetting: React.FC<LineChartProps> = (props) => {
</Col> </Col>
<Col span={12}> <Col span={12}>
<Form.Item <Form.Item
label="缩略轴" className={styles.form_item} name="openSlider" valuePropName="checked" label={l('chart.openSlider')} className={styles.form_item} name="openSlider" valuePropName="checked"
> >
<Switch checkedChildren="启用" unCheckedChildren="禁用" <Switch checkedChildren={l('button.enable')} unCheckedChildren={l('button.disable')}/>
/>
</Form.Item> </Form.Item>
</Col> </Col>
</Row> </Row>
<Row> <Row>
<Col span={12}> <Col span={12}>
<Form.Item <Form.Item
label="阶梯线" className={styles.form_item} name="openStepType" valuePropName="checked" label={l('chart.openStepType')} className={styles.form_item} name="openStepType" valuePropName="checked"
> >
<Switch checkedChildren="启用" unCheckedChildren="禁用" <Switch checkedChildren={l('button.enable')} unCheckedChildren={l('button.disable')}/>
/>
</Form.Item> </Form.Item>
</Col> </Col>
</Row> </Row>
......
...@@ -94,7 +94,7 @@ const PieChartSetting: React.FC<PieChartProps> = (props) => { ...@@ -94,7 +94,7 @@ const PieChartSetting: React.FC<PieChartProps> = (props) => {
<Row> <Row>
<Col span={12}> <Col span={12}>
<Form.Item <Form.Item
label="弧轴" className={styles.form_item} name="angleField" label={l('chart.angle')} className={styles.form_item} name="angleField"
> >
{column && column.length > 0 ? ( {column && column.length > 0 ? (
<Select allowClear showSearch <Select allowClear showSearch
...@@ -107,7 +107,7 @@ const PieChartSetting: React.FC<PieChartProps> = (props) => { ...@@ -107,7 +107,7 @@ const PieChartSetting: React.FC<PieChartProps> = (props) => {
</Col> </Col>
<Col span={12}> <Col span={12}>
<Form.Item <Form.Item
label="颜色" className={styles.form_item} name="colorField" label={l('chart.color')} className={styles.form_item} name="colorField"
> >
{column && column.length > 1 ? ( {column && column.length > 1 ? (
<Select allowClear showSearch <Select allowClear showSearch
......
...@@ -23,7 +23,7 @@ import {StateType} from "@/pages/DataStudio/model"; ...@@ -23,7 +23,7 @@ import {StateType} from "@/pages/DataStudio/model";
import {connect, useIntl} from "umi"; import {connect, useIntl} from "umi";
import styles from "./index.less"; import styles from "./index.less";
import {RedoOutlined} from '@ant-design/icons'; import {RedoOutlined} from '@ant-design/icons';
import {CHART, isSql} from "@/components/Studio/conf"; import {isSql} from "@/components/Studio/conf";
import {Bar, Line, Pie} from '@ant-design/plots'; import {Bar, Line, Pie} from '@ant-design/plots';
import React, {useEffect, useState} from "react"; import React, {useEffect, useState} from "react";
import LineChartSetting from "./LineChartSetting"; import LineChartSetting from "./LineChartSetting";
...@@ -40,6 +40,14 @@ const Chart = (props: any) => { ...@@ -40,6 +40,14 @@ const Chart = (props: any) => {
const intl = useIntl(); const intl = useIntl();
const l = (id: string, defaultMessage?: string, value?: {}) => intl.formatMessage({id, defaultMessage}, value); const l = (id: string, defaultMessage?: string, value?: {}) => intl.formatMessage({id, defaultMessage}, value);
const CHART = {
LINE: l('chart.lineChart'),
BAR: l('chart.barChart'),
PIE: l('chart.pieChart'),
};
const {current, result, height, dispatch} = props; const {current, result, height, dispatch} = props;
const [config, setConfig] = useState(undefined); const [config, setConfig] = useState(undefined);
const [type, setType] = useState<string>(CHART.LINE); const [type, setType] = useState<string>(CHART.LINE);
...@@ -134,7 +142,7 @@ const Chart = (props: any) => { ...@@ -134,7 +142,7 @@ const Chart = (props: any) => {
<Row> <Row>
<Col span={12}> <Col span={12}>
<Form.Item <Form.Item
label="图形类型" className={styles.form_item} name="type" label={l('chart.type')} className={styles.form_item} name="type"
> >
<Select defaultValue={CHART.LINE} value={CHART.LINE}> <Select defaultValue={CHART.LINE} value={CHART.LINE}>
<Option value={CHART.LINE}>{CHART.LINE}</Option> <Option value={CHART.LINE}>{CHART.LINE}</Option>
...@@ -145,7 +153,7 @@ const Chart = (props: any) => { ...@@ -145,7 +153,7 @@ const Chart = (props: any) => {
</Col> </Col>
{!isSql(current.task.dialect) ? <Col span={12}> {!isSql(current.task.dialect) ? <Col span={12}>
<Button type="primary" onClick={toRebuild} icon={<RedoOutlined/>}> <Button type="primary" onClick={toRebuild} icon={<RedoOutlined/>}>
刷新数据 {l('button.refreshData')}
</Button> </Button>
</Col> : undefined} </Col> : undefined}
</Row> </Row>
......
...@@ -53,11 +53,11 @@ const JobLifeCycle = (props: JobLifeCycleFormProps) => { ...@@ -53,11 +53,11 @@ const JobLifeCycle = (props: JobLifeCycleFormProps) => {
const renderJobLifeCycle = () => { const renderJobLifeCycle = () => {
switch (step) { switch (step) {
case JOB_LIFE_CYCLE.DEVELOP: case JOB_LIFE_CYCLE.DEVELOP:
return (<Tag icon={<EditOutlined/>} color="default">开发中</Tag>); return (<Tag icon={<EditOutlined/>} color="default">{l('global.table.lifecycle.dev')}</Tag>);
case JOB_LIFE_CYCLE.RELEASE: case JOB_LIFE_CYCLE.RELEASE:
return (<Tag icon={<CameraOutlined/>} color="green">已发布</Tag>); return (<Tag icon={<CameraOutlined/>} color="green">{l('global.table.lifecycle.publish')}</Tag>);
case JOB_LIFE_CYCLE.ONLINE: case JOB_LIFE_CYCLE.ONLINE:
return (<Tag icon={<CarryOutOutlined/>} color="blue">已上线</Tag>); return (<Tag icon={<CarryOutOutlined/>} color="blue">{l('global.table.lifecycle.online')}</Tag>);
default: default:
return undefined; return undefined;
} }
......
...@@ -27,27 +27,28 @@ import { ...@@ -27,27 +27,28 @@ import {
QuestionCircleOutlined, QuestionCircleOutlined,
SyncOutlined SyncOutlined
} from "@ant-design/icons"; } from "@ant-design/icons";
import {useIntl} from "@@/plugin-locale/localeExports";
export type JobStatusFormProps = { export type JobStatusFormProps = {
status: string|undefined; status: string | undefined;
}; };
export const JOB_STATUS = { export const JOB_STATUS = {
FINISHED:'FINISHED', FINISHED: 'FINISHED',
RUNNING:'RUNNING', RUNNING: 'RUNNING',
FAILED:'FAILED', FAILED: 'FAILED',
CANCELED:'CANCELED', CANCELED: 'CANCELED',
INITIALIZING:'INITIALIZING', INITIALIZING: 'INITIALIZING',
RESTARTING:'RESTARTING', RESTARTING: 'RESTARTING',
CREATED:'CREATED', CREATED: 'CREATED',
FAILING:'FAILING', FAILING: 'FAILING',
SUSPENDED:'SUSPENDED', SUSPENDED: 'SUSPENDED',
CANCELLING:'CANCELLING', CANCELLING: 'CANCELLING',
UNKNOWN:'UNKNOWN', UNKNOWN: 'UNKNOWN',
}; };
export function isStatusDone(type: string){ export function isStatusDone(type: string) {
if(!type){ if (!type) {
return true; return true;
} }
switch (type) { switch (type) {
...@@ -63,34 +64,37 @@ export function isStatusDone(type: string){ ...@@ -63,34 +64,37 @@ export function isStatusDone(type: string){
const JobStatus = (props: JobStatusFormProps) => { const JobStatus = (props: JobStatusFormProps) => {
const intl = useIntl();
const l = (id: string, defaultMessage?: string, value?: {}) => intl.formatMessage({id, defaultMessage}, value);
const {status} = props; const {status} = props;
return (<> return (<>
{ (status === 'FINISHED') ? {(status === 'FINISHED') ?
(<Tag icon={<CheckCircleOutlined/>} color="blue"> (<Tag icon={<CheckCircleOutlined/>} color="blue">
FINISHED {l('pages.devops.jobstatus.FINISHED')}
</Tag>) : (status === 'RUNNING') ? </Tag>) : (status === 'RUNNING') ?
(<Tag icon={<SyncOutlined spin/>} color="green"> (<Tag icon={<SyncOutlined spin/>} color="green">
RUNNING {l('pages.devops.jobstatus.RUNNING')}
</Tag>) : (status === 'FAILED') ? </Tag>) : (status === 'FAILED') ?
(<Tag icon={<CloseCircleOutlined/>} color="error"> (<Tag icon={<CloseCircleOutlined/>} color="error">
FAILED {l('pages.devops.jobstatus.FAILED')}
</Tag>) : (status === 'CANCELED') ? </Tag>) : (status === 'CANCELED') ?
(<Tag icon={<MinusCircleOutlined/>} color="orange"> (<Tag icon={<MinusCircleOutlined/>} color="orange">
CANCELED {l('pages.devops.jobstatus.CANCELED')}
</Tag>) : (status === 'INITIALIZING') ? </Tag>) : (status === 'INITIALIZING') ?
(<Tag icon={<ClockCircleOutlined/>} color="default"> (<Tag icon={<ClockCircleOutlined/>} color="default">
INITIALIZING {l('pages.devops.jobstatus.INITIALIZING')}
</Tag>) : (status === 'RESTARTING') ? </Tag>) : (status === 'RESTARTING') ?
(<Tag icon={<ClockCircleOutlined/>} color="default"> (<Tag icon={<ClockCircleOutlined/>} color="default">
RESTARTING {l('pages.devops.jobstatus.RESTARTING')}
</Tag>) : (status === 'CREATED') ? </Tag>) : (status === 'CREATED') ?
(<Tag icon={<ClockCircleOutlined/>} color="default"> (<Tag icon={<ClockCircleOutlined/>} color="default">
CREATED {l('pages.devops.jobstatus.CREATED')}
</Tag>) : </Tag>) :
(<Tag icon={<QuestionCircleOutlined />} color="default"> (<Tag icon={<QuestionCircleOutlined/>} color="default">
UNKNOWEN {l('pages.devops.jobstatus.UNKNOWN')}
</Tag>) </Tag>)
} }
</>) </>)
}; };
......
...@@ -18,6 +18,8 @@ ...@@ -18,6 +18,8 @@
*/ */
import {useIntl} from "umi";
export function parseByteStr(limit: number) { export function parseByteStr(limit: number) {
let size = ""; let size = "";
if (limit < 0.1 * 1024) { //小于0.1KB,则转化成B if (limit < 0.1 * 1024) { //小于0.1KB,则转化成B
...@@ -45,27 +47,27 @@ export function parseNumStr(num: number) { ...@@ -45,27 +47,27 @@ export function parseNumStr(num: number) {
} }
export function parseMilliSecondStr(second_time: number) { export function parseMilliSecondStr(second_time: number) {
if(((second_time/1000) %60) < 1){ if (((second_time / 1000) % 60) < 1) {
return second_time + "毫秒"; return second_time + useIntl().formatMessage({id: 'global.time.millisecond'});
} }
return parseSecondStr(second_time/1000); return parseSecondStr(second_time / 1000);
} }
export function parseSecondStr(second_time: number) { export function parseSecondStr(second_time: number) {
second_time = Math.floor(second_time); second_time = Math.floor(second_time);
let time = second_time + "秒"; let time = second_time + useIntl().formatMessage({id: 'global.time.second'});
if (second_time > 60) { if (second_time > 60) {
let second = second_time % 60; let second = second_time % 60;
let min = Math.floor(second_time / 60); let min = Math.floor(second_time / 60);
time = min + "分" + second + "秒"; time = min + useIntl().formatMessage({id: 'global.time.minute'}) + second + useIntl().formatMessage({id: 'global.time.second'});
if (min > 60) { if (min > 60) {
min = Math.floor(second_time / 60) % 60; min = Math.floor(second_time / 60) % 60;
let hour = Math.floor(Math.floor(second_time / 60) / 60); let hour = Math.floor(Math.floor(second_time / 60) / 60);
time = hour + "小时" + min + "分" + second + "秒"; time = hour + useIntl().formatMessage({id: 'global.time.hour'}) + min + useIntl().formatMessage({id: 'global.time.minute'}) + second + useIntl().formatMessage({id: 'global.time.second'});
if (hour > 24) { if (hour > 24) {
hour = Math.floor(Math.floor(second_time / 60) / 60) % 24; hour = Math.floor(Math.floor(second_time / 60) / 60) % 24;
let day = Math.floor(Math.floor(Math.floor(second_time / 60) / 60) / 24); let day = Math.floor(Math.floor(Math.floor(second_time / 60) / 60) / 24);
time = day + "天" + hour + "小时" + min + "分" + second + "秒"; time = day + useIntl().formatMessage({id: 'global.time.day'}) + hour + useIntl().formatMessage({id: 'global.time.hour'}) + min + useIntl().formatMessage({id: 'global.time.minute'}) + second + useIntl().formatMessage({id: 'global.time.second'});
} }
} }
} }
......
...@@ -21,11 +21,12 @@ ...@@ -21,11 +21,12 @@
import React from 'react'; import React from 'react';
import {Tooltip} from 'antd'; import {Tooltip} from 'antd';
import { import {
FullscreenOutlined,
FullscreenExitOutlined, FullscreenExitOutlined,
FullscreenOutlined,
VerticalAlignBottomOutlined, VerticalAlignBottomOutlined,
VerticalAlignTopOutlined VerticalAlignTopOutlined
} from '@ant-design/icons'; } from '@ant-design/icons';
import {useIntl} from "umi";
const LineageOps = ({ const LineageOps = ({
isExpand, isExpand,
...@@ -35,25 +36,25 @@ const LineageOps = ({ ...@@ -35,25 +36,25 @@ const LineageOps = ({
}) => [ }) => [
isExpand ? isExpand ?
{ {
tooltip: '收起血缘', tooltip: useIntl().formatMessage({id: 'pages.datastudio.label.lineage.expand.lineage'}),
action: 'shrink', action: 'shrink',
component: <FullscreenExitOutlined/> component: <FullscreenExitOutlined/>
} }
: :
{ {
tooltip: '展开血缘', tooltip: useIntl().formatMessage({id: 'pages.datastudio.label.lineage.collapse.lineage'}),
action: 'expand', action: 'expand',
component: <FullscreenOutlined/> component: <FullscreenOutlined/>
}, },
isFold ? isFold ?
{ {
tooltip: '展开字段', tooltip: useIntl().formatMessage({id: 'pages.datastudio.label.lineage.expand.field'}),
action: 'fold', action: 'fold',
component: <VerticalAlignBottomOutlined/> component: <VerticalAlignBottomOutlined/>
} }
: :
{ {
tooltip: '收起字段', tooltip: useIntl().formatMessage({id: 'pages.datastudio.label.lineage.collapse.field'}),
action: 'unfold', action: 'unfold',
component: <VerticalAlignTopOutlined/> component: <VerticalAlignTopOutlined/>
} }
......
...@@ -210,18 +210,18 @@ const StudioFX = () => { ...@@ -210,18 +210,18 @@ const StudioFX = () => {
hideInTable: true, hideInTable: true,
filters: [ filters: [
{ {
text: '已启用', text: l('status.enabled'),
value: 1, value: 1,
}, },
{ {
text: '已禁用', text: l('status.disabled'),
value: 0, value: 0,
}, },
], ],
filterMultiple: false, filterMultiple: false,
valueEnum: { valueEnum: {
true: {text: '已启用', status: 'Success'}, true: {text: l('status.enabled'), status: 'Success'},
false: {text: '已禁用', status: 'Error'}, false: {text: l('status.disabled'), status: 'Error'},
}, },
}, },
{ {
......
...@@ -23,6 +23,7 @@ import FlinkSQL from "./FlinkSQL"; ...@@ -23,6 +23,7 @@ import FlinkSQL from "./FlinkSQL";
import {MetaStoreCatalogType, SessionType, TaskType} from "@/pages/DataStudio/model"; import {MetaStoreCatalogType, SessionType, TaskType} from "@/pages/DataStudio/model";
import {message, Modal} from "antd"; import {message, Modal} from "antd";
import {addOrUpdateData, getData, handleRemove, postAll} from "@/components/Common/crud"; import {addOrUpdateData, getData, handleRemove, postAll} from "@/components/Common/crud";
import {useIntl} from "umi";
/*--- 保存sql ---*/ /*--- 保存sql ---*/
export function saveTask(current: any, dispatch: any) { export function saveTask(current: any, dispatch: any) {
...@@ -80,9 +81,9 @@ export function quitSession(dispatch: any) { ...@@ -80,9 +81,9 @@ export function quitSession(dispatch: any) {
/*--- 注销会话 ---*/ /*--- 注销会话 ---*/
export function clearSession(session: string, dispatch: any) { export function clearSession(session: string, dispatch: any) {
Modal.confirm({ Modal.confirm({
title: '确认注销会话【' + session + '】?', title: useIntl().formatMessage({id: 'tips.confirm.logout.session'}, {sessionName: session}),
okText: '确认', okText: useIntl().formatMessage({id: 'button.confirm'}),
cancelText: '取消', cancelText: useIntl().formatMessage({id: 'button.cancel'}),
onOk: async () => { onOk: async () => {
let para = { let para = {
id: session, id: session,
...@@ -124,9 +125,9 @@ export function showTables(session: string, dispatch: any) { ...@@ -124,9 +125,9 @@ export function showTables(session: string, dispatch: any) {
/*--- 移除 Catalog Table ---*/ /*--- 移除 Catalog Table ---*/
export function removeTable(tablename: string, session: string, dispatch: any) { export function removeTable(tablename: string, session: string, dispatch: any) {
Modal.confirm({ Modal.confirm({
title: '确定删除表【' + tablename + '】吗?', title: useIntl().formatMessage({id: 'tips.confirm.delete.table'}, {tableName: tablename}),
okText: '确认', okText: useIntl().formatMessage({id: 'button.confirm'}),
cancelText: '取消', cancelText: useIntl().formatMessage({id: 'button.cancel'}),
onOk: async () => { onOk: async () => {
const res = executeDDL({ const res = executeDDL({
statement: "drop table " + tablename, statement: "drop table " + tablename,
...@@ -222,14 +223,15 @@ export function showAlertGroup(dispatch: any) { ...@@ -222,14 +223,15 @@ export function showAlertGroup(dispatch: any) {
export function showMetaDataTable(id: number) { export function showMetaDataTable(id: number) {
return getData('api/database/getSchemasAndTables', {id: id}); return getData('api/database/getSchemasAndTables', {id: id});
} }
/*--- 清理 元数据表缓存 ---*/ /*--- 清理 元数据表缓存 ---*/
export function clearMetaDataTable(id: number) { export function clearMetaDataTable(id: number) {
return getData('api/database/unCacheSchemasAndTables', {id: id}); return getData('api/database/unCacheSchemasAndTables', {id: id});
} }
/*--- 刷新 数据表样例数据 ---*/ /*--- 刷新 数据表样例数据 ---*/
export function showTableData(id: number,schemaName:String,tableName:String,option:{}) { export function showTableData(id: number, schemaName: String, tableName: String, option: {}) {
return postAll('api/database/queryData', {id: id,schemaName:schemaName,tableName:tableName,option:option}); return postAll('api/database/queryData', {id: id, schemaName: schemaName, tableName: tableName, option: option});
} }
/*--- 刷新 Flink Jobs ---*/ /*--- 刷新 Flink Jobs ---*/
......
...@@ -145,18 +145,18 @@ const StudioCluster = (props: any) => { ...@@ -145,18 +145,18 @@ const StudioCluster = (props: any) => {
dataIndex: 'enabled', dataIndex: 'enabled',
filters: [ filters: [
{ {
text: '已启用', text: l('status.enabled'),
value: 1, value: 1,
}, },
{ {
text: '已禁用', text: l('status.disabled'),
value: 0, value: 0,
}, },
], ],
filterMultiple: false, filterMultiple: false,
valueEnum: { valueEnum: {
true: {text: '已启用', status: 'Success'}, true: {text: l('status.enabled'), status: 'Success'},
false: {text: '已禁用', status: 'Error'}, false: {text: l('status.disabled'), status: 'Error'},
}, },
}, },
{ {
......
...@@ -138,18 +138,18 @@ const StudioDataBase = (props: any) => { ...@@ -138,18 +138,18 @@ const StudioDataBase = (props: any) => {
dataIndex: 'enabled', dataIndex: 'enabled',
filters: [ filters: [
{ {
text: '已启用', text: l('status.enabled'),
value: 1, value: 1,
}, },
{ {
text: '已禁用', text: l('status.disabled'),
value: 0, value: 0,
}, },
], ],
filterMultiple: false, filterMultiple: false,
valueEnum: { valueEnum: {
true: {text: '已启用', status: 'Success'}, true: {text: l('status.enabled'), status: 'Success'},
false: {text: '已禁用', status: 'Error'}, false: {text: l('status.disabled'), status: 'Error'},
}, },
}, },
{ {
......
...@@ -95,25 +95,25 @@ const StudioFragment = (props: any) => { ...@@ -95,25 +95,25 @@ const StudioFragment = (props: any) => {
hideInTable: true, hideInTable: true,
}, },
{ {
title: '是否启用', title: l('global.table.isEnable'),
dataIndex: 'enabled', dataIndex: 'enabled',
hideInForm: false, hideInForm: false,
hideInSearch: true, hideInSearch: true,
hideInTable: true, hideInTable: true,
filters: [ filters: [
{ {
text: '已启用', text: l('status.enabled'),
value: 1, value: 1,
}, },
{ {
text: '已禁用', text: l('status.disabled'),
value: 0, value: 0,
}, },
], ],
filterMultiple: false, filterMultiple: false,
valueEnum: { valueEnum: {
true: {text: '已启用', status: 'Success'}, true: {text: l('status.enabled'), status: 'Success'},
false: {text: '已禁用', status: 'Error'}, false: {text: l('status.disabled'), status: 'Error'},
}, },
}, },
{ {
......
...@@ -85,11 +85,11 @@ const EditorTabs = (props: any) => { ...@@ -85,11 +85,11 @@ const EditorTabs = (props: any) => {
const menu = (pane) => ( const menu = (pane) => (
<Menu onClick={(e) => handleClickMenu(e, pane)}> <Menu onClick={(e) => handleClickMenu(e, pane)}>
<Menu.Item key="CLOSE_OTHER">
<span>关闭其他</span>
</Menu.Item>
<Menu.Item key="CLOSE_ALL"> <Menu.Item key="CLOSE_ALL">
<span>关闭所有</span> <span>{l('right.menu.closeAll')}</span>
</Menu.Item>
<Menu.Item key="CLOSE_OTHER">
<span>{l('right.menu.closeOther')}</span>
</Menu.Item> </Menu.Item>
</Menu> </Menu>
); );
...@@ -128,7 +128,7 @@ const EditorTabs = (props: any) => { ...@@ -128,7 +128,7 @@ const EditorTabs = (props: any) => {
tabsKey={pane.key} tabsKey={pane.key}
sql={pane.value} sql={pane.value}
monaco={pane.monaco} monaco={pane.monaco}
// sqlMetaData={pane.sqlMetaData} sqlMetaData={pane.sqlMetaData}
height={height ? height : (toolHeight - 32)} height={height ? height : (toolHeight - 32)}
width={width} width={width}
language={getLanguage(current.task.dialect)} language={getLanguage(current.task.dialect)}
......
...@@ -19,12 +19,12 @@ ...@@ -19,12 +19,12 @@
import React, {useEffect, useState} from 'react'; import React, {useEffect, useState} from 'react';
import {Button, Form, Input, Modal, Select, Cascader} from 'antd'; import {Button, Cascader, Form, Input, Modal, Select} from 'antd';
import type {TaskTableListItem} from '../data.d'; import type {TaskTableListItem} from '../data.d';
import {DIALECT} from "@/components/Studio/conf"; import {DIALECT} from "@/components/Studio/conf";
import {useIntl} from "umi"; import {useIntl} from "umi";
import {postAll, postDataArray} from "@/components/Common/crud"; import {postAll} from "@/components/Common/crud";
const {Option} = Select; const {Option} = Select;
...@@ -169,7 +169,7 @@ const SimpleTaskForm: React.FC<UpdateFormProps> = (props) => { ...@@ -169,7 +169,7 @@ const SimpleTaskForm: React.FC<UpdateFormProps> = (props) => {
const renderFooter = () => { const renderFooter = () => {
return ( return (
<> <>
<Button onClick={() => handleUpdateModalVisible(false, values)}>取消</Button> <Button onClick={() => handleUpdateModalVisible(false, values)}>{l('button.cancel')}</Button>
<Button type="primary" onClick={() => submitForm()}> <Button type="primary" onClick={() => submitForm()}>
{l('button.finish')} {l('button.finish')}
</Button> </Button>
......
...@@ -84,7 +84,7 @@ const UpdateCatalogueForm: React.FC<UpdateFormProps> = (props) => { ...@@ -84,7 +84,7 @@ const UpdateCatalogueForm: React.FC<UpdateFormProps> = (props) => {
const renderFooter = () => { const renderFooter = () => {
return ( return (
<> <>
<Button onClick={() => handleUpdateModalVisible(false, values)}>取消</Button> <Button onClick={() => handleUpdateModalVisible(false, values)}>{l('button.cancel')}</Button>
<Button type="primary" onClick={() => submitForm()}> <Button type="primary" onClick={() => submitForm()}>
{l('button.finish')} {l('button.finish')}
</Button> </Button>
......
...@@ -607,21 +607,21 @@ const StudioTree: React.FC<StudioTreeProps> = (props) => { ...@@ -607,21 +607,21 @@ const StudioTree: React.FC<StudioTreeProps> = (props) => {
<div className={style.tree_div}> <div className={style.tree_div}>
<Row> <Row>
<Col span={24}> <Col span={24}>
<Tooltip title="创建根目录"> <Tooltip title={l('right.menu.createRootCatalogue')}>
<Button <Button
type="text" type="text"
icon={<FolderAddOutlined/>} icon={<FolderAddOutlined/>}
onClick={createRootCatalogue} onClick={createRootCatalogue}
/> />
</Tooltip> </Tooltip>
<Tooltip title="折叠目录"> <Tooltip title={l('button.collapseDir')}>
<Button <Button
type="text" type="text"
icon={<SwitcherOutlined/>} icon={<SwitcherOutlined/>}
onClick={offExpandAll} onClick={offExpandAll}
/> />
</Tooltip> </Tooltip>
<Tooltip title="导出json"> <Tooltip title={l('right.menu.exportJson')}>
<Button <Button
type="text" type="text"
icon={<DownloadOutlined/>} icon={<DownloadOutlined/>}
...@@ -629,7 +629,7 @@ const StudioTree: React.FC<StudioTreeProps> = (props) => { ...@@ -629,7 +629,7 @@ const StudioTree: React.FC<StudioTreeProps> = (props) => {
/> />
</Tooltip> </Tooltip>
<Upload {...uProps}> <Upload {...uProps}>
<Tooltip title="导入json"> <Tooltip title={l('right.menu.importJson')}>
<Button <Button
type="text" type="text"
icon={<UploadOutlined/>} icon={<UploadOutlined/>}
...@@ -710,7 +710,7 @@ const StudioTree: React.FC<StudioTreeProps> = (props) => { ...@@ -710,7 +710,7 @@ const StudioTree: React.FC<StudioTreeProps> = (props) => {
getTreeData(); getTreeData();
}} onCancel={() => { }} onCancel={() => {
setIsUploadModalVisible(false) setIsUploadModalVisible(false)
}} buttonTitle="上传zip包并创建工程"/> }} buttonTitle={l('right.menu.uploadZipToCreate')}/>
</div> </div>
); );
}; };
......
...@@ -48,11 +48,6 @@ export const DIALECT = { ...@@ -48,11 +48,6 @@ export const DIALECT = {
PYTHON: 'Python', PYTHON: 'Python',
}; };
export const CHART = {
LINE: '折线图',
BAR: '条形图',
PIE: '饼图',
};
export const isSql = (dialect: string) => { export const isSql = (dialect: string) => {
switch (dialect) { switch (dialect) {
......
...@@ -25,6 +25,7 @@ import pwa from './en-US/pwa'; ...@@ -25,6 +25,7 @@ import pwa from './en-US/pwa';
import request from './en-US/request'; import request from './en-US/request';
import settings from './en-US/settings'; import settings from './en-US/settings';
import shortKey from './en-US/shortcutKey'; import shortKey from './en-US/shortcutKey';
import chart from './en-US/chart';
export default { export default {
'navBar.lang': 'Languages', 'navBar.lang': 'Languages',
...@@ -43,4 +44,5 @@ export default { ...@@ -43,4 +44,5 @@ export default {
...pages, ...pages,
...request, ...request,
...shortKey, ...shortKey,
...chart,
}; };
/*
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
export default {
'chart.lineChart': 'Line Chart',
'chart.barChart': 'Bar Chart',
'chart.pieChart': 'Pie Chart',
'chart.type': 'Chart Type',
'chart.xAxis': 'X Axis',
'chart.yAxis': 'Y Axis',
'chart.groupColumns': 'Group Columns',
'chart.stack': 'Stack',
'chart.group': 'Group',
'chart.percentage': 'Percentage',
'chart.openSlider': 'Abbreviated Axis',
'chart.openStepType': 'Step Line',
'chart.angleField': 'Arc Axis',
'chart.colorField': 'Color',
}
...@@ -46,27 +46,40 @@ export default { ...@@ -46,27 +46,40 @@ export default {
'button.heartbeat': 'Heartbeat', 'button.heartbeat': 'Heartbeat',
'button.recycle': 'Recycle', 'button.recycle': 'Recycle',
'button.refresh': 'Refresh', 'button.refresh': 'Refresh',
'button.refreshData': 'Refresh Data',
'button.collapseDir': 'Collapse Directory',
'right.menu.open': 'Open', 'right.menu.open': 'Open',
'right.menu.submit': 'Sync Submit', 'right.menu.submit': 'Sync Submit',
'right.menu.exportJson': 'Export JSON', 'right.menu.exportJson': 'Export JSON',
'right.menu.importJson': 'Import JSON',
'right.menu.rename': 'Rename', 'right.menu.rename': 'Rename',
'right.menu.copy': 'Copy', 'right.menu.copy': 'Copy',
'right.menu.cut': 'Cut', 'right.menu.cut': 'Cut',
'right.menu.paste': 'Paste', 'right.menu.paste': 'Paste',
'right.menu.delete': 'Delete', 'right.menu.delete': 'Delete',
'right.menu.createCatalogue': 'Create Dir', 'right.menu.createCatalogue': 'Create Directory',
'right.menu.createRootCatalogue': 'Create Root Dir', 'right.menu.createRootCatalogue': 'Create Root Directory',
'right.menu.uploadZipToCreate': 'Upload Zip To Create', 'right.menu.uploadZipToCreate': 'Upload Zip To Create',
'right.menu.createTask': 'Create Task', 'right.menu.createTask': 'Create Task',
'right.menu.closeAll': 'Close All',
'right.menu.closeOther': 'Close Others',
'tips.selected': 'Selected {total} Item', 'tips.selected': 'Selected {total} Item',
'tips.notSelected': 'Not Select', 'tips.notSelected': 'Not Select',
'tips.confirm.logout.session': 'Confirm logout session [{sessionName}] ?',
'tips.confirm.delete.table': ' Are you sure you want to delete table [{tableName}]?',
'tips.create.session.success': 'Create Session [{session}] success!',
'status.enabled': 'Enabled', 'status.enabled': 'Enabled',
'status.disabled': 'Disabled', 'status.disabled': 'Disabled',
'global.time.second': 'Second',
'global.time.minute': 'Minute',
'global.time.hour': 'Hour',
'global.time.day': 'Day',
'global.time.millisecond': 'millisecond',
'global.table.operate': 'Operation', 'global.table.operate': 'Operation',
'global.table.config': 'Config', 'global.table.config': 'Config',
...@@ -78,15 +91,14 @@ export default { ...@@ -78,15 +91,14 @@ export default {
'global.table.createTime': 'Create Time', 'global.table.createTime': 'Create Time',
'global.table.startTime': 'Start Time', 'global.table.startTime': 'Start Time',
'global.table.endTime': 'End Time', 'global.table.endTime': 'End Time',
'global.table.useTime': 'Use Time', 'global.table.useTime': 'Duration',
'global.table.registType': 'Regist Type', 'global.table.registType': 'Regist Type',
'global.table.registType.manual': 'Manual', 'global.table.registType.manual': 'Manual',
'global.table.registType.automatic': 'Automatic', 'global.table.registType.automatic': 'Automatic',
'global.table.isEnable': 'Is Enable', 'global.table.isEnable': 'Is Enable',
'global.table.enabled': 'Enabled', 'global.table.note': 'Note',
'global.table.disabled': 'Disabled',
'global.table.status': 'Status', 'global.table.status': 'Status',
'global.table.status.normal': 'Normal', 'global.table.status.normal': 'Normal',
...@@ -125,7 +137,7 @@ export default { ...@@ -125,7 +137,7 @@ export default {
'global.table.lifecycle.dev': 'Develop', 'global.table.lifecycle.dev': 'Develop',
'global.table.lifecycle.publish': 'Publish', 'global.table.lifecycle.publish': 'Publish',
'global.table.lifecycle.online': 'Online', 'global.table.lifecycle.online': 'Online',
'global.table.lifecycle.unKnow': 'Unknow', 'global.table.lifecycle.unknown': 'Unknown',
'global.table.runmode': 'Run Mode', 'global.table.runmode': 'Run Mode',
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
*/ */
export default { export default {
'menu.login': 'Login',
'menu.account.center': 'Account Center', 'menu.account.center': 'Account Center',
'menu.account.settings': 'Account Settings', 'menu.account.settings': 'Account Settings',
'menu.account.changePassword': 'Change Password', 'menu.account.changePassword': 'Change Password',
......
...@@ -88,6 +88,7 @@ export default { ...@@ -88,6 +88,7 @@ export default {
'pages.searchTable.batchDeletion': 'Batch Deletion', 'pages.searchTable.batchDeletion': 'Batch Deletion',
'pages.searchTable.batchApproval': 'Batch Approval', 'pages.searchTable.batchApproval': 'Batch Approval',
'pages.devops.jobstatus.CREATED': 'Created', 'pages.devops.jobstatus.CREATED': 'Created',
'pages.devops.jobstatus.INITIALIZING': 'Initialize', 'pages.devops.jobstatus.INITIALIZING': 'Initialize',
'pages.devops.jobstatus.RUNNING': 'Running', 'pages.devops.jobstatus.RUNNING': 'Running',
...@@ -124,13 +125,10 @@ export default { ...@@ -124,13 +125,10 @@ export default {
'pages.user.UserManger': 'User Management', 'pages.user.UserManger': 'User Management',
'pages.user.UserName': 'User Name',//用户名 'pages.user.UserName': 'User Name',
'pages.user.UserJobNumber': 'Job Number',//工号 'pages.user.UserJobNumber': 'Job Number',
'pages.user.UserPhoneNumber': 'Phone Number',//手机号 'pages.user.UserPhoneNumber': 'Phone Number',
'pages.user.UserNickName': 'Nick Name',//昵称 'pages.user.UserNickName': 'Nick Name',
'pages.user.UserIsUse': 'Is Enable',//是否启用
'pages.user.UserUpdateTime': 'Update Time',//最近更新时间
'pages.user.UserCreateTime': 'Create Time',//创建时间
'pages.user.UserDeleteUser': 'Delete User', 'pages.user.UserDeleteUser': 'Delete User',
'pages.user.UserCreateUser': 'Create User', 'pages.user.UserCreateUser': 'Create User',
...@@ -159,9 +157,6 @@ export default { ...@@ -159,9 +157,6 @@ export default {
'pages.tenant.TenantManager': 'Tenant Management', 'pages.tenant.TenantManager': 'Tenant Management',
'pages.tenant.TenantCode': 'Tenant Code', 'pages.tenant.TenantCode': 'Tenant Code',
'pages.tenant.Note': 'Note',
'pages.tenant.CreateTime': 'Create Time',
'pages.tenant.UpdateTime': 'Update Time',
'pages.tenant.AssignUser': 'Assign Users', 'pages.tenant.AssignUser': 'Assign Users',
'pages.tenant.assignUser.pleaseHolder': 'Please enter username/nickname Search', 'pages.tenant.assignUser.pleaseHolder': 'Please enter username/nickname Search',
'pages.tenant.create': 'Create Tenant', 'pages.tenant.create': 'Create Tenant',
...@@ -179,10 +174,6 @@ export default { ...@@ -179,10 +174,6 @@ export default {
'pages.nameSpace.NameSpaceManagement': 'NameSpace Management', 'pages.nameSpace.NameSpaceManagement': 'NameSpace Management',
'pages.nameSpace.NameSpaceCode': 'NameSpace Code', 'pages.nameSpace.NameSpaceCode': 'NameSpace Code',
'pages.nameSpace.belongTenant': 'Belong Tenant', 'pages.nameSpace.belongTenant': 'Belong Tenant',
'pages.nameSpace.enable': 'Is Enable',
'pages.nameSpace.note': 'Note',
'pages.nameSpace.createTime': 'Create Time',
'pages.nameSpace.updateTime': 'Update Time',
'pages.nameSpace.deleteNameSpace': 'Delete NameSpace', 'pages.nameSpace.deleteNameSpace': 'Delete NameSpace',
'pages.nameSpace.deleteNameSpaceConfirm': 'Are you sure you want to delete this NameSpace?', 'pages.nameSpace.deleteNameSpaceConfirm': 'Are you sure you want to delete this NameSpace?',
'pages.nameSpace.enableNameSpace': 'Enable NameSpace', 'pages.nameSpace.enableNameSpace': 'Enable NameSpace',
...@@ -199,10 +190,7 @@ export default { ...@@ -199,10 +190,7 @@ export default {
'pages.role.roleCode': 'Role Code', 'pages.role.roleCode': 'Role Code',
'pages.role.roleName': 'Role Name', 'pages.role.roleName': 'Role Name',
'pages.role.namespaceIds': 'Namespace', 'pages.role.namespaceIds': 'Namespace',
'pages.role.note': 'Note',
'pages.role.belongTenant': 'Belong Tenant', 'pages.role.belongTenant': 'Belong Tenant',
'pages.role.createTime': 'Create Time',
'pages.role.updateTime': 'Update Time',
'pages.role.create': 'Create Role', 'pages.role.create': 'Create Role',
'pages.role.update': 'Update Role', 'pages.role.update': 'Update Role',
'pages.role.EnterRoleCode': 'Please enter Role Code!', 'pages.role.EnterRoleCode': 'Please enter Role Code!',
...@@ -234,7 +222,14 @@ export default { ...@@ -234,7 +222,14 @@ export default {
'pages.datastudio.label.info': 'Info', 'pages.datastudio.label.info': 'Info',
'pages.datastudio.label.result': 'Result', 'pages.datastudio.label.result': 'Result',
'pages.datastudio.label.lineage': 'Lineage', 'pages.datastudio.label.lineage': 'Lineage',
'pages.datastudio.label.lineage.expand.field': 'Expand Field',
'pages.datastudio.label.lineage.collapse.field': 'Collapse Field',
'pages.datastudio.label.lineage.expand.lineage': 'Expand Lineage',
'pages.datastudio.label.lineage.collapse.lineage': 'Collapse Lineage',
'pages.datastudio.label.process': 'Process', 'pages.datastudio.label.process': 'Process',
'pages.datastudio.label.history': 'History', 'pages.datastudio.label.history': 'History',
'pages.datastudio.label.function': 'Function', 'pages.datastudio.label.function': 'Function',
...@@ -268,5 +263,29 @@ export default { ...@@ -268,5 +263,29 @@ export default {
'pages.devops.lable.onlinelist': 'Online List', 'pages.devops.lable.onlinelist': 'Online List',
'pages.devops.lable.offlinelist': 'Offline List', 'pages.devops.lable.offlinelist': 'Offline List',
'pages.devops.lable.instance': 'Instance', 'pages.devops.lable.instance': 'Instance',
'pages.registerCenter.alert.instanceManagement': 'Alarm Instance Management',
'pages.registerCenter.alert.instance.name': 'Name',
'pages.registerCenter.alert.instance.type': 'Type',
'pages.registerCenter.alert.instance.delete': 'Delete the Alarm Instance ',
'pages.registerCenter.alert.instance.deleteConfirm': 'Are you sure to delete the selected Alarm Instance? ',
'pages.registerCenter.alert.instance.enable': 'Enable Alarm Instance ',
'pages.registerCenter.alert.instance.enableConfirm': 'Are you sure you want to enable this Alarm Instance? ',
'pages.registerCenter.alert.instance.disable': 'Disable the Alarm Instance ',
'pages.registerCenter.alert.instance.disableConfirm': 'Are you sure you want to disable this Alarm Instance? ',
'pages.registerCenter.alert.instance.disableTotalOf': 'Total Of {total} Alarm Instance Is Disabled',
'pages.registerCenter.alert.groupManagement': 'Alarm Group Management ',
'pages.registerCenter.alert.group.name': 'Alarm Group Name',
'pages.registerCenter.alert.group.groupid ': 'Alarm group ID ',
'pages.registerCenter.alert.group.alertInstanceIds': 'Alarm instance',
'pages.registerCenter.alert.group.delete': 'Delete the Alarm group ',
'pages.registerCenter.alert.group.deleteConfirm': 'Are you sure to delete the selected Alarm group? ',
'pages.registerCenter.alert.group.enable': 'Enable Alarm group ',
'pages.registerCenter.alert.group.enableConfirm': 'Are you sure you want to enable this Alarm group? ',
'pages.registerCenter.alert.group.disable': 'Disable the Alarm group ',
'pages.registerCenter.alert.group.disableConfirm': 'Are you sure you want to disable this Alarm group? ',
'pages.registerCenter.alert.group.disableTotalOf': 'Total Of {total} Alarm group Is Disabled',
}; };
...@@ -25,6 +25,7 @@ import request from './zh-CN/request'; ...@@ -25,6 +25,7 @@ import request from './zh-CN/request';
import settings from './zh-CN/settings'; import settings from './zh-CN/settings';
import pages from './zh-CN/pages'; import pages from './zh-CN/pages';
import shortKey from './zh-CN/shortcutKey'; import shortKey from './zh-CN/shortcutKey';
import chart from './zh-CN/chart';
export default { export default {
'navBar.lang': '语言', 'navBar.lang': '语言',
...@@ -43,4 +44,5 @@ export default { ...@@ -43,4 +44,5 @@ export default {
...component, ...component,
...request, ...request,
...shortKey, ...shortKey,
...chart,
}; };
/*
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
export default {
'chart.lineChart': '折线图',
'chart.barChart': '条形图',
'chart.pieChart': '饼图',
'chart.type': '图形类型',
'chart.xAxis': 'X 轴',
'chart.yAxis': 'Y 轴',
'chart.groupColumns': '分组字段',
'chart.stack': '堆叠',
'chart.group': '分组',
'chart.percentage': '百分比',
'chart.openSlider': '缩略轴',
'chart.openStepType': '阶梯线',
'chart.angle': '弧轴',
'chart.color': '颜色',
}
...@@ -46,10 +46,13 @@ export default { ...@@ -46,10 +46,13 @@ export default {
'button.heartbeat': '心跳', 'button.heartbeat': '心跳',
'button.recycle': '回收', 'button.recycle': '回收',
'button.refresh': '刷新', 'button.refresh': '刷新',
'button.refreshData': '刷新数据',
'button.collapseDir': '折叠目录',
'right.menu.open': '打开', 'right.menu.open': '打开',
'right.menu.submit': '异步提交', 'right.menu.submit': '异步提交',
'right.menu.exportJson': '导出 JSON', 'right.menu.exportJson': '导出 JSON',
'right.menu.importJson': '导入 JSON',
'right.menu.rename': '重命名', 'right.menu.rename': '重命名',
'right.menu.copy': '复制', 'right.menu.copy': '复制',
'right.menu.cut': '剪切', 'right.menu.cut': '剪切',
...@@ -59,14 +62,25 @@ export default { ...@@ -59,14 +62,25 @@ export default {
'right.menu.createRootCatalogue': '创建根目录', 'right.menu.createRootCatalogue': '创建根目录',
'right.menu.uploadZipToCreate': '上传zip包创建工程', 'right.menu.uploadZipToCreate': '上传zip包创建工程',
'right.menu.createTask': '创建作业', 'right.menu.createTask': '创建作业',
'right.menu.closeAll': '关闭所有',
'right.menu.closeOther': '关闭其他',
'tips.selected': '已选择 {total} 项', 'tips.selected': '已选择 {total} 项',
'tips.notSelected': '未选', 'tips.notSelected': '未选',
'tips.confirm.logout.session': '确认注销会话【{sessionName}】 吗?',
'tips.confirm.delete.table': '确定删除表【{tableName}】吗?',
'tips.create.session.success': '创建会话【{session}】成功!',
'status.enabled': '已启用', 'status.enabled': '已启用',
'status.disabled': '已禁用', 'status.disabled': '已禁用',
'global.time.second': '秒',
'global.time.minute': '分',
'global.time.hour': '小时',
'global.time.day': '天',
'global.time.millisecond': '毫秒',
'global.table.operate': '操作', 'global.table.operate': '操作',
'global.table.config': '配置', 'global.table.config': '配置',
...@@ -85,8 +99,7 @@ export default { ...@@ -85,8 +99,7 @@ export default {
'global.table.registType.automatic': '自动', 'global.table.registType.automatic': '自动',
'global.table.isEnable': '是否启用', 'global.table.isEnable': '是否启用',
'global.table.enabled': '启用', 'global.table.note': '备注',
'global.table.disabled': '禁用',
'global.table.status': '状态', 'global.table.status': '状态',
'global.table.status.normal': '正常', 'global.table.status.normal': '正常',
...@@ -125,7 +138,7 @@ export default { ...@@ -125,7 +138,7 @@ export default {
'global.table.lifecycle.dev': '开发中', 'global.table.lifecycle.dev': '开发中',
'global.table.lifecycle.publish': '已发布', 'global.table.lifecycle.publish': '已发布',
'global.table.lifecycle.online': '已上线', 'global.table.lifecycle.online': '已上线',
'global.table.lifecycle.unKnow': '未知', 'global.table.lifecycle.unknown': '未知',
'global.table.runmode': '运行模式', 'global.table.runmode': '运行模式',
}; };
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
*/ */
export default { export default {
'menu.login': '登录',
'menu.account.center': '个人中心', 'menu.account.center': '个人中心',
'menu.account.settings': '个人设置', 'menu.account.settings': '个人设置',
'menu.account.changePassword': '修改密码', 'menu.account.changePassword': '修改密码',
......
...@@ -129,9 +129,6 @@ export default { ...@@ -129,9 +129,6 @@ export default {
'pages.user.UserJobNumber': '工号', 'pages.user.UserJobNumber': '工号',
'pages.user.UserPhoneNumber': '手机号', 'pages.user.UserPhoneNumber': '手机号',
'pages.user.UserNickName': '昵称', 'pages.user.UserNickName': '昵称',
'pages.user.UserIsUse': '是否启用',
'pages.user.UserUpdateTime': '最近更新时间',
'pages.user.UserCreateTime': '创建时间',
'pages.user.UserDeleteUser': '删除用户', 'pages.user.UserDeleteUser': '删除用户',
...@@ -161,9 +158,6 @@ export default { ...@@ -161,9 +158,6 @@ export default {
'pages.tenant.TenantManager': '租户管理', 'pages.tenant.TenantManager': '租户管理',
'pages.tenant.TenantCode': '租户编码', 'pages.tenant.TenantCode': '租户编码',
'pages.tenant.Note': '备注/描述',
'pages.tenant.CreateTime': '创建时间',
'pages.tenant.UpdateTime': '最后更新时间',
'pages.tenant.AssignUser': '分配用户', 'pages.tenant.AssignUser': '分配用户',
'pages.tenant.create': '创建租户', 'pages.tenant.create': '创建租户',
'pages.tenant.update': '修改租户', 'pages.tenant.update': '修改租户',
...@@ -180,10 +174,6 @@ export default { ...@@ -180,10 +174,6 @@ export default {
'pages.nameSpace.NameSpaceManagement': '命名空间管理', 'pages.nameSpace.NameSpaceManagement': '命名空间管理',
'pages.nameSpace.NameSpaceCode': '命名空间编码', 'pages.nameSpace.NameSpaceCode': '命名空间编码',
'pages.nameSpace.belongTenant': '所属租户', 'pages.nameSpace.belongTenant': '所属租户',
'pages.nameSpace.enable': '是否启用',
'pages.nameSpace.note': '备注/描述',
'pages.nameSpace.createTime': '创建时间',
'pages.nameSpace.updateTime': '最后更新时间',
'pages.nameSpace.deleteNameSpace': '删除命名空间', 'pages.nameSpace.deleteNameSpace': '删除命名空间',
'pages.nameSpace.deleteNameSpaceConfirm': '您确定要删除此命名空间吗?', 'pages.nameSpace.deleteNameSpaceConfirm': '您确定要删除此命名空间吗?',
'pages.nameSpace.enableNameSpace': '启用命名空间', 'pages.nameSpace.enableNameSpace': '启用命名空间',
...@@ -200,10 +190,7 @@ export default { ...@@ -200,10 +190,7 @@ export default {
'pages.role.roleCode': '角色编码', 'pages.role.roleCode': '角色编码',
'pages.role.roleName': '角色名称', 'pages.role.roleName': '角色名称',
'pages.role.namespaceIds': '命名空间', 'pages.role.namespaceIds': '命名空间',
'pages.role.note': '备注/描述',
'pages.role.belongTenant': '所属租户', 'pages.role.belongTenant': '所属租户',
'pages.role.createTime': '创建时间',
'pages.role.updateTime': '最后更新时间',
'pages.role.create': '创建角色', 'pages.role.create': '创建角色',
'pages.role.update': '修改角色', 'pages.role.update': '修改角色',
'pages.role.EnterRoleCode': '请输入角色编码!', 'pages.role.EnterRoleCode': '请输入角色编码!',
...@@ -235,9 +222,15 @@ export default { ...@@ -235,9 +222,15 @@ export default {
'pages.TableData.data': '数据', 'pages.TableData.data': '数据',
'pages.TableData.search': '搜索', 'pages.TableData.search': '搜索',
'pages.datastudio.label.info': '数据', 'pages.datastudio.label.info': '信息',
'pages.datastudio.label.result': '结果', 'pages.datastudio.label.result': '结果',
'pages.datastudio.label.lineage': '血缘', 'pages.datastudio.label.lineage': '血缘',
'pages.datastudio.label.lineage.expand.field': '展开字段',
'pages.datastudio.label.lineage.collapse.field': '收起字段',
'pages.datastudio.label.lineage.expand.lineage': '收起血缘',
'pages.datastudio.label.lineage.collapse.lineage': '展开血缘',
'pages.datastudio.label.process': '进程', 'pages.datastudio.label.process': '进程',
'pages.datastudio.label.history': '历史', 'pages.datastudio.label.history': '历史',
'pages.datastudio.label.function': '函数', 'pages.datastudio.label.function': '函数',
...@@ -272,4 +265,29 @@ export default { ...@@ -272,4 +265,29 @@ export default {
'pages.devops.lable.offlinelist': '下线明细', 'pages.devops.lable.offlinelist': '下线明细',
'pages.devops.lable.instance': '实例', 'pages.devops.lable.instance': '实例',
'pages.registerCenter.alert.instanceManagement': '报警实例管理',
'pages.registerCenter.alert.instance.name': '名称',
'pages.registerCenter.alert.instance.type': '类型',
'pages.registerCenter.alert.instance.delete': '删除报警实例',
'pages.registerCenter.alert.instance.deleteConfirm': '确定删除选中的报警实例吗?',
'pages.registerCenter.alert.instance.enable': '启用报警实例',
'pages.registerCenter.alert.instance.enableConfirm': '您确定要启用此报警实例吗?',
'pages.registerCenter.alert.instance.disable': '禁用报警实例',
'pages.registerCenter.alert.instance.disableConfirm': '您确定要禁用此报警实例吗?',
'pages.registerCenter.alert.instance.disableTotalOf': '被禁用的报警实例共 {total} 个',
'pages.registerCenter.alert.groupManagement': '报警组管理',
'pages.registerCenter.alert.group.name': '报警组名称',
'pages.registerCenter.alert.group.groupid': '报警组ID',
'pages.registerCenter.alert.group.alertInstanceIds': '报警实例',
'pages.registerCenter.alert.group.delete': '删除报警组',
'pages.registerCenter.alert.group.deleteConfirm': '确定删除选中的报警组吗?',
'pages.registerCenter.alert.group.enable': '启用报警组',
'pages.registerCenter.alert.group.enableConfirm': '您确定要启用此报警组吗?',
'pages.registerCenter.alert.group.disable': '禁用报警组',
'pages.registerCenter.alert.group.disableConfirm': '您确定要禁用此报警组吗?',
'pages.registerCenter.alert.group.disableTotalOf': '被禁用的报警组共 {total} 个',
}; };
...@@ -111,7 +111,7 @@ const AlertGroupForm: React.FC<AlertGroupFormProps> = (props) => { ...@@ -111,7 +111,7 @@ const AlertGroupForm: React.FC<AlertGroupFormProps> = (props) => {
</Form.Item> </Form.Item>
<Form.Item <Form.Item
name="enabled" name="enabled"
label="是否启用"> label={l('global.table.isEnable')}>
<Switch checkedChildren="启用" unCheckedChildren="禁用" <Switch checkedChildren="启用" unCheckedChildren="禁用"
defaultChecked={formVals.enabled}/> defaultChecked={formVals.enabled}/>
</Form.Item> </Form.Item>
......
...@@ -54,8 +54,8 @@ const AlertGroupTableList: React.FC<{}> = (props: any) => { ...@@ -54,8 +54,8 @@ const AlertGroupTableList: React.FC<{}> = (props: any) => {
handleUpdateModalVisible(true); handleUpdateModalVisible(true);
} else if (key === 'delete') { } else if (key === 'delete') {
Modal.confirm({ Modal.confirm({
title: '删除报警组配置', title: l('pages.registerCenter.alert.group.delete'),
content: '确定删除该报警组配置吗?', content: l('pages.registerCenter.alert.group.deleteConfirm'),
okText: l('button.confirm'), okText: l('button.confirm'),
cancelText: l('button.cancel'), cancelText: l('button.cancel'),
onOk: async () => { onOk: async () => {
...@@ -85,31 +85,22 @@ const AlertGroupTableList: React.FC<{}> = (props: any) => { ...@@ -85,31 +85,22 @@ const AlertGroupTableList: React.FC<{}> = (props: any) => {
const columns: ProColumns<AlertGroupTableListItem>[] = [ const columns: ProColumns<AlertGroupTableListItem>[] = [
{ {
title: '名称', title: l('pages.registerCenter.alert.group.name'),
dataIndex: 'name', dataIndex: 'name',
tip: '名称是唯一的',
sorter: true, sorter: true,
formItemProps: {
rules: [
{
required: true,
message: '名称为必填项',
},
],
},
render: (dom, entity) => { render: (dom, entity) => {
return <a onClick={() => setRow(entity)}>{dom}</a>; return <a onClick={() => setRow(entity)}>{dom}</a>;
}, },
}, },
{ {
title: '报警组ID', title: l('pages.registerCenter.alert.group.groupid'),
dataIndex: 'id', dataIndex: 'id',
hideInTable: true, hideInTable: true,
hideInForm: true, hideInForm: true,
hideInSearch: true, hideInSearch: true,
}, },
{ {
title: '报警实例', title: l('pages.registerCenter.alert.group.alertInstanceIds'),
sorter: true, sorter: true,
dataIndex: 'alertInstanceIds', dataIndex: 'alertInstanceIds',
hideInTable: true, hideInTable: true,
...@@ -117,7 +108,7 @@ const AlertGroupTableList: React.FC<{}> = (props: any) => { ...@@ -117,7 +108,7 @@ const AlertGroupTableList: React.FC<{}> = (props: any) => {
hideInSearch: true, hideInSearch: true,
}, },
{ {
title: '注释', title: l('global.table.note'),
sorter: true, sorter: true,
valueType: 'textarea', valueType: 'textarea',
dataIndex: 'note', dataIndex: 'note',
...@@ -126,25 +117,25 @@ const AlertGroupTableList: React.FC<{}> = (props: any) => { ...@@ -126,25 +117,25 @@ const AlertGroupTableList: React.FC<{}> = (props: any) => {
hideInTable: true, hideInTable: true,
}, },
{ {
title: '是否启用', title: l('global.table.isEnable'),
dataIndex: 'enabled', dataIndex: 'enabled',
hideInForm: true, hideInForm: true,
hideInSearch: true, hideInSearch: true,
hideInTable: false, hideInTable: false,
filters: [ filters: [
{ {
text: '已启用', text: l('status.enabled'),
value: 1, value: 1,
}, },
{ {
text: '已禁用', text: l('status.disabled'),
value: 0, value: 0,
}, },
], ],
filterMultiple: false, filterMultiple: false,
valueEnum: { valueEnum: {
true: {text: '已启用', status: 'Success'}, true: {text: l('status.enabled'), status: 'Success'},
false: {text: '已禁用', status: 'Error'}, false: {text: l('status.disabled'), status: 'Error'},
}, },
}, },
{ {
...@@ -181,7 +172,7 @@ const AlertGroupTableList: React.FC<{}> = (props: any) => { ...@@ -181,7 +172,7 @@ const AlertGroupTableList: React.FC<{}> = (props: any) => {
return ( return (
<PageContainer title={false}> <PageContainer title={false}>
<ProTable<AlertGroupTableListItem> <ProTable<AlertGroupTableListItem>
headerTitle="报警组管理" headerTitle={l('pages.registerCenter.alert.groupManagement')}
actionRef={actionRef} actionRef={actionRef}
rowKey="id" rowKey="id"
search={{ search={{
...@@ -211,7 +202,10 @@ const AlertGroupTableList: React.FC<{}> = (props: any) => { ...@@ -211,7 +202,10 @@ const AlertGroupTableList: React.FC<{}> = (props: any) => {
total: <a total: <a
style={{fontWeight: 600}}>{selectedRowsState.length}</a> style={{fontWeight: 600}}>{selectedRowsState.length}</a>
})} &nbsp;&nbsp; <span> })} &nbsp;&nbsp; <span>
被禁用的报警组共 {selectedRowsState.length - selectedRowsState.reduce((pre, item) => pre + (item.enabled ? 1 : 0), 0)} {l('pages.registerCenter.alert.group.disableTotalOf', '', {
total:
selectedRowsState.length - selectedRowsState.reduce((pre, item) => pre + (item.enabled ? 1 : 0), 0)
})}
</span> </span>
</div> </div>
} }
...@@ -219,8 +213,8 @@ const AlertGroupTableList: React.FC<{}> = (props: any) => { ...@@ -219,8 +213,8 @@ const AlertGroupTableList: React.FC<{}> = (props: any) => {
<Button type="primary" danger <Button type="primary" danger
onClick={() => { onClick={() => {
Modal.confirm({ Modal.confirm({
title: '删除报警组', title: l('pages.registerCenter.alert.group.delete'),
content: '确定删除选中的报警组吗?', content: l('pages.registerCenter.alert.group.deleteConfirm'),
okText: l('button.confirm'), okText: l('button.confirm'),
cancelText: l('button.cancel'), cancelText: l('button.cancel'),
onOk: async () => { onOk: async () => {
...@@ -236,8 +230,8 @@ const AlertGroupTableList: React.FC<{}> = (props: any) => { ...@@ -236,8 +230,8 @@ const AlertGroupTableList: React.FC<{}> = (props: any) => {
<Button type="primary" <Button type="primary"
onClick={() => { onClick={() => {
Modal.confirm({ Modal.confirm({
title: '启用报警组', title: l('pages.registerCenter.alert.group.enable'),
content: '确定启用选中的报警组吗?', content: l('pages.registerCenter.alert.group.enableConfirm'),
okText: l('button.confirm'), okText: l('button.confirm'),
cancelText: l('button.cancel'), cancelText: l('button.cancel'),
onOk: async () => { onOk: async () => {
...@@ -251,8 +245,8 @@ const AlertGroupTableList: React.FC<{}> = (props: any) => { ...@@ -251,8 +245,8 @@ const AlertGroupTableList: React.FC<{}> = (props: any) => {
<Button danger <Button danger
onClick={() => { onClick={() => {
Modal.confirm({ Modal.confirm({
title: '禁用报警组', title: l('pages.registerCenter.alert.group.disable'),
content: '确定禁用选中的报警组吗?', content: l('pages.registerCenter.alert.group.disableConfirm'),
okText: l('button.confirm'), okText: l('button.confirm'),
cancelText: l('button.cancel'), cancelText: l('button.cancel'),
onOk: async () => { onOk: async () => {
......
...@@ -159,7 +159,7 @@ const DingTalkForm: React.FC<AlertInstanceFormProps> = (props) => { ...@@ -159,7 +159,7 @@ const DingTalkForm: React.FC<AlertInstanceFormProps> = (props) => {
<Form.Item <Form.Item
name="enabled" name="enabled"
label="是否启用"> label={l('global.table.isEnable')}>
<Switch checkedChildren="启用" unCheckedChildren="禁用" <Switch checkedChildren="启用" unCheckedChildren="禁用"
defaultChecked={vals.enabled}/> defaultChecked={vals.enabled}/>
</Form.Item> </Form.Item>
......
...@@ -173,7 +173,7 @@ const EmailForm: React.FC<AlertInstanceFormProps> = (props) => { ...@@ -173,7 +173,7 @@ const EmailForm: React.FC<AlertInstanceFormProps> = (props) => {
} }
<Form.Item <Form.Item
name="enabled" name="enabled"
label="是否启用"> label={l('global.table.isEnable')}>
<Switch checkedChildren="启用" unCheckedChildren="禁用" <Switch checkedChildren="启用" unCheckedChildren="禁用"
defaultChecked={vals.enabled}/> defaultChecked={vals.enabled}/>
</Form.Item> </Form.Item>
......
...@@ -155,7 +155,7 @@ const FeiShuForm: React.FC<AlertInstanceFormProps> = (props) => { ...@@ -155,7 +155,7 @@ const FeiShuForm: React.FC<AlertInstanceFormProps> = (props) => {
} }
<Form.Item <Form.Item
name="enabled" name="enabled"
label="是否启用"> label={l('global.table.isEnable')}>
<Switch checkedChildren="启用" unCheckedChildren="禁用" <Switch checkedChildren="启用" unCheckedChildren="禁用"
defaultChecked={vals.enabled}/> defaultChecked={vals.enabled}/>
</Form.Item> </Form.Item>
......
...@@ -175,7 +175,7 @@ const WeChatForm: React.FC<AlertInstanceFormProps> = (props) => { ...@@ -175,7 +175,7 @@ const WeChatForm: React.FC<AlertInstanceFormProps> = (props) => {
<Form.Item <Form.Item
name="enabled" name="enabled"
label="是否启用"> label={l('global.table.isEnable')}>
<Switch checkedChildren="启用" unCheckedChildren="禁用" <Switch checkedChildren="启用" unCheckedChildren="禁用"
defaultChecked={vals.enabled}/> defaultChecked={vals.enabled}/>
</Form.Item> </Form.Item>
......
...@@ -50,8 +50,8 @@ const AlertInstanceTableList: React.FC<{}> = (props: any) => { ...@@ -50,8 +50,8 @@ const AlertInstanceTableList: React.FC<{}> = (props: any) => {
handleModalVisible(true); handleModalVisible(true);
} else if (key === 'delete') { } else if (key === 'delete') {
Modal.confirm({ Modal.confirm({
title: '删除报警实例', title: l('pages.registerCenter.alert.instance.delete'),
content: '确定删除该报警实例吗?', content: l('pages.registerCenter.alert.instance.deleteConfirm'),
okText: l('button.confirm'), okText: l('button.confirm'),
cancelText: l('button.cancel'), cancelText: l('button.cancel'),
onOk: async () => { onOk: async () => {
...@@ -81,31 +81,15 @@ const AlertInstanceTableList: React.FC<{}> = (props: any) => { ...@@ -81,31 +81,15 @@ const AlertInstanceTableList: React.FC<{}> = (props: any) => {
const columns: ProColumns<AlertInstanceTableListItem>[] = [ const columns: ProColumns<AlertInstanceTableListItem>[] = [
{ {
title: '名称', title: l('pages.registerCenter.alert.instance.name'),
dataIndex: 'name', dataIndex: 'name',
tip: '名称是唯一的',
sorter: true, sorter: true,
formItemProps: {
rules: [
{
required: true,
message: '名称为必填项',
},
],
},
render: (dom, entity) => { render: (dom, entity) => {
return <a onClick={() => setRow(entity)}>{dom}</a>; return <a onClick={() => setRow(entity)}>{dom}</a>;
}, },
}, },
{ {
title: '实例ID', title: l('pages.registerCenter.alert.instance.type'),
dataIndex: 'id',
hideInTable: true,
hideInForm: true,
hideInSearch: true,
},
{
title: '类型',
sorter: true, sorter: true,
dataIndex: 'type', dataIndex: 'type',
hideInForm: false, hideInForm: false,
...@@ -135,32 +119,25 @@ const AlertInstanceTableList: React.FC<{}> = (props: any) => { ...@@ -135,32 +119,25 @@ const AlertInstanceTableList: React.FC<{}> = (props: any) => {
}, },
}, },
{ {
title: '配置', title: l('global.table.isEnable'),
dataIndex: 'params',
hideInForm: false,
hideInSearch: true,
hideInTable: true,
},
{
title: '是否启用',
dataIndex: 'enabled', dataIndex: 'enabled',
hideInForm: true, hideInForm: true,
hideInSearch: true, hideInSearch: true,
hideInTable: false, hideInTable: false,
filters: [ filters: [
{ {
text: '已启用', text: l('status.enabled'),
value: 1, value: 1,
}, },
{ {
text: '已禁用', text: l('status.disabled'),
value: 0, value: 0,
}, },
], ],
filterMultiple: false, filterMultiple: false,
valueEnum: { valueEnum: {
true: {text: '已启用', status: 'Success'}, true: {text: l('status.enabled'), status: 'Success'},
false: {text: '已禁用', status: 'Error'}, false: {text: l('status.disabled'), status: 'Error'},
}, },
}, },
{ {
...@@ -197,7 +174,7 @@ const AlertInstanceTableList: React.FC<{}> = (props: any) => { ...@@ -197,7 +174,7 @@ const AlertInstanceTableList: React.FC<{}> = (props: any) => {
return ( return (
<PageContainer title={false}> <PageContainer title={false}>
<ProTable<AlertInstanceTableListItem> <ProTable<AlertInstanceTableListItem>
headerTitle="报警实例管理" headerTitle={l('pages.registerCenter.alert.instanceManagement')}
actionRef={actionRef} actionRef={actionRef}
rowKey="id" rowKey="id"
search={{ search={{
...@@ -228,16 +205,19 @@ const AlertInstanceTableList: React.FC<{}> = (props: any) => { ...@@ -228,16 +205,19 @@ const AlertInstanceTableList: React.FC<{}> = (props: any) => {
style={{fontWeight: 600}}>{selectedRowsState.length}</a> style={{fontWeight: 600}}>{selectedRowsState.length}</a>
})} &nbsp;&nbsp; })} &nbsp;&nbsp;
<span> <span>
被禁用的报警实例共 {selectedRowsState.length - selectedRowsState.reduce((pre, item) => pre + (item.enabled ? 1 : 0), 0)} {l('pages.registerCenter.alert.instance.disableTotalOf', '', {
</span> total:
selectedRowsState.length - selectedRowsState.reduce((pre, item) => pre + (item.enabled ? 1 : 0), 0)
})}
</span>
</div> </div>
} }
> >
<Button type="primary" danger <Button type="primary" danger
onClick={() => { onClick={() => {
Modal.confirm({ Modal.confirm({
title: '删除报警实例', title: l('pages.registerCenter.alert.instance.delete'),
content: '确定删除选中的报警实例吗?', content: l('pages.registerCenter.alert.instance.deleteConfirm'),
okText: l('button.confirm'), okText: l('button.confirm'),
cancelText: l('button.cancel'), cancelText: l('button.cancel'),
onOk: async () => { onOk: async () => {
...@@ -253,8 +233,8 @@ const AlertInstanceTableList: React.FC<{}> = (props: any) => { ...@@ -253,8 +233,8 @@ const AlertInstanceTableList: React.FC<{}> = (props: any) => {
<Button type="primary" <Button type="primary"
onClick={() => { onClick={() => {
Modal.confirm({ Modal.confirm({
title: '启用报警实例', title: l('pages.registerCenter.alert.instance.enable'),
content: '确定启用选中的报警实例吗?', content: l('pages.registerCenter.alert.instance.enableConfirm'),
okText: l('button.confirm'), okText: l('button.confirm'),
cancelText: l('button.cancel'), cancelText: l('button.cancel'),
onOk: async () => { onOk: async () => {
...@@ -268,8 +248,8 @@ const AlertInstanceTableList: React.FC<{}> = (props: any) => { ...@@ -268,8 +248,8 @@ const AlertInstanceTableList: React.FC<{}> = (props: any) => {
<Button danger <Button danger
onClick={() => { onClick={() => {
Modal.confirm({ Modal.confirm({
title: '禁用报警实例', title: l('pages.registerCenter.alert.instance.disable'),
content: '确定禁用选中的报警实例吗?', content: l('pages.registerCenter.alert.instance.disableConfirm'),
okText: l('button.confirm'), okText: l('button.confirm'),
cancelText: l('button.cancel'), cancelText: l('button.cancel'),
onOk: async () => { onOk: async () => {
......
...@@ -84,15 +84,15 @@ const NameSpaceForm: React.FC<TenantFormProps> = (props) => { ...@@ -84,15 +84,15 @@ const NameSpaceForm: React.FC<TenantFormProps> = (props) => {
</Form.Item> </Form.Item>
<Form.Item <Form.Item
name="note" name="note"
label={l('pages.nameSpace.note')} label={l('global.table.note')}
> >
<Input.TextArea placeholder={l('pages.nameSpace.EnterNameSpaceNote')} allowClear <Input.TextArea placeholder={l('pages.nameSpace.EnterNameSpaceNote')} allowClear
autoSize={{minRows: 3, maxRows: 10}}/> autoSize={{minRows: 3, maxRows: 10}}/>
</Form.Item> </Form.Item>
<Form.Item <Form.Item
name="enabled" name="enabled"
label={l('pages.nameSpace.enable')}> label={l('global.table.isEnable')}>
<Switch checkedChildren={l('status.enabled')} unCheckedChildren={l('status.disabled')} <Switch checkedChildren={l('button.enable')} unCheckedChildren={l('button.disable')}
defaultChecked={formValsPara.enabled}/> defaultChecked={formValsPara.enabled}/>
</Form.Item> </Form.Item>
</> </>
......
...@@ -105,7 +105,7 @@ const NameSpaceFormList: React.FC<{}> = (props: any) => { ...@@ -105,7 +105,7 @@ const NameSpaceFormList: React.FC<{}> = (props: any) => {
}, },
}, },
{ {
title: l('pages.nameSpace.enable'), title: l('global.table.isEnable'),
dataIndex: 'enabled', dataIndex: 'enabled',
hideInTable: false, hideInTable: false,
hideInSearch: true, hideInSearch: true,
...@@ -126,19 +126,19 @@ const NameSpaceFormList: React.FC<{}> = (props: any) => { ...@@ -126,19 +126,19 @@ const NameSpaceFormList: React.FC<{}> = (props: any) => {
}, },
}, },
{ {
title: l('pages.nameSpace.note'), title: l('global.table.note'),
dataIndex: 'note', dataIndex: 'note',
hideInSearch: true, hideInSearch: true,
ellipsis: true, ellipsis: true,
}, },
{ {
title: l('pages.nameSpace.createTime'), title: l('global.table.createTime'),
dataIndex: 'createTime', dataIndex: 'createTime',
sorter: true, sorter: true,
valueType: 'dateTime', valueType: 'dateTime',
}, },
{ {
title: l('pages.nameSpace.updateTime'), title: l('global.table.updateTime'),
dataIndex: 'updateTime', dataIndex: 'updateTime',
sorter: true, sorter: true,
valueType: 'dateTime', valueType: 'dateTime',
......
...@@ -126,7 +126,7 @@ const RoleForm: React.FC<TenantFormProps> = (props) => { ...@@ -126,7 +126,7 @@ const RoleForm: React.FC<TenantFormProps> = (props) => {
</Form.Item> </Form.Item>
<Form.Item <Form.Item
name="note" name="note"
label={l('pages.role.note')} label={l('global.table.note')}
> >
<Input.TextArea placeholder={l('pages.role.EnterNote')} allowClear <Input.TextArea placeholder={l('pages.role.EnterNote')} allowClear
autoSize={{minRows: 3, maxRows: 10}}/> autoSize={{minRows: 3, maxRows: 10}}/>
......
...@@ -134,19 +134,19 @@ const RoleFormList: React.FC<{}> = (props: any) => { ...@@ -134,19 +134,19 @@ const RoleFormList: React.FC<{}> = (props: any) => {
// }, // },
// }, // },
{ {
title: l('pages.role.note'), title: l('global.table.note'),
dataIndex: 'note', dataIndex: 'note',
hideInSearch: true, hideInSearch: true,
ellipsis: true, ellipsis: true,
}, },
{ {
title: l('pages.role.createTime'), title: l('global.table.createTime'),
dataIndex: 'createTime', dataIndex: 'createTime',
sorter: true, sorter: true,
valueType: 'dateTime', valueType: 'dateTime',
}, },
{ {
title: l('pages.role.updateTime'), title: l('global.table.updateTime'),
dataIndex: 'updateTime', dataIndex: 'updateTime',
sorter: true, sorter: true,
valueType: 'dateTime', valueType: 'dateTime',
......
...@@ -77,7 +77,7 @@ const TenantForm: React.FC<TenantFormProps> = (props) => { ...@@ -77,7 +77,7 @@ const TenantForm: React.FC<TenantFormProps> = (props) => {
</FormItem> </FormItem>
<FormItem <FormItem
name="note" name="note"
label={l('pages.tenant.Note')} label={l('global.table.note')}
rules={[{required: true, message: l('pages.tenant.EnterTenantNote')}]} rules={[{required: true, message: l('pages.tenant.EnterTenantNote')}]}
> >
<Input.TextArea placeholder={l('pages.tenant.EnterTenantNote')} allowClear <Input.TextArea placeholder={l('pages.tenant.EnterTenantNote')} allowClear
......
...@@ -158,18 +158,18 @@ const TenantFormList: React.FC<{}> = (props: any) => { ...@@ -158,18 +158,18 @@ const TenantFormList: React.FC<{}> = (props: any) => {
// }, // },
// }, // },
{ {
title: l('pages.tenant.Note'), title: l('global.table.note'),
dataIndex: 'note', dataIndex: 'note',
hideInSearch: true, hideInSearch: true,
ellipsis: true, ellipsis: true,
}, },
{ {
title: l('pages.tenant.CreateTime'), title: l('global.table.createTime'),
dataIndex: 'createTime', dataIndex: 'createTime',
valueType: 'dateTime', valueType: 'dateTime',
}, },
{ {
title: l('pages.tenant.UpdateTime'), title: l('global.table.updateTime'),
dataIndex: 'updateTime', dataIndex: 'updateTime',
valueType: 'dateTime', valueType: 'dateTime',
}, },
......
...@@ -142,7 +142,7 @@ const TableTransferFrom = (props: TableTransferFromProps) => { ...@@ -142,7 +142,7 @@ const TableTransferFrom = (props: TableTransferFromProps) => {
}, },
{ {
dataIndex: 'note', dataIndex: 'note',
title: l('pages.role.note'), title: l('global.table.note'),
ellipsis: true, ellipsis: true,
}, },
]; ];
...@@ -158,7 +158,7 @@ const TableTransferFrom = (props: TableTransferFromProps) => { ...@@ -158,7 +158,7 @@ const TableTransferFrom = (props: TableTransferFromProps) => {
}, },
{ {
dataIndex: 'note', dataIndex: 'note',
title: l('pages.role.note'), title: l('global.table.note'),
ellipsis: true, ellipsis: true,
}, },
]; ];
......
...@@ -101,9 +101,9 @@ const UserForm: React.FC<UserFormProps> = (props) => { ...@@ -101,9 +101,9 @@ const UserForm: React.FC<UserFormProps> = (props) => {
</Form.Item> </Form.Item>
<Form.Item <Form.Item
name="enabled" name="enabled"
label={l('pages.user.UserIsUse')}> label={l('global.table.isEnable')}>
<Switch checkedChildren={l('status.enabled')} <Switch checkedChildren={l('button.enable')}
unCheckedChildren={l('status.disabled')} unCheckedChildren={l('button.disable')}
defaultChecked={formVals.enabled}/> defaultChecked={formVals.enabled}/>
</Form.Item> </Form.Item>
</> </>
......
...@@ -161,7 +161,7 @@ const UserTableList: React.FC<{}> = (props: any) => { ...@@ -161,7 +161,7 @@ const UserTableList: React.FC<{}> = (props: any) => {
hideInTable: false, hideInTable: false,
}, },
{ {
title: l('pages.user.UserIsUse'), title: l('global.table.isEnable'),
dataIndex: 'enabled', dataIndex: 'enabled',
hideInForm: true, hideInForm: true,
hideInSearch: true, hideInSearch: true,
...@@ -183,14 +183,14 @@ const UserTableList: React.FC<{}> = (props: any) => { ...@@ -183,14 +183,14 @@ const UserTableList: React.FC<{}> = (props: any) => {
}, },
}, },
{ {
title: l('pages.user.UserCreateTime'), title: l('global.table.createTime'),
dataIndex: 'createTime', dataIndex: 'createTime',
sorter: true, sorter: true,
valueType: 'dateTime', valueType: 'dateTime',
hideInTable: true, hideInTable: true,
}, },
{ {
title: l('pages.user.UserUpdateTime'), title: l('global.table.updateTime'),
dataIndex: 'updateTime', dataIndex: 'updateTime',
sorter: true, sorter: true,
valueType: 'dateTime', valueType: 'dateTime',
......
...@@ -139,7 +139,7 @@ const ClusterForm: React.FC<ClusterFormProps> = (props) => { ...@@ -139,7 +139,7 @@ const ClusterForm: React.FC<ClusterFormProps> = (props) => {
</Form.Item> </Form.Item>
<Form.Item <Form.Item
name="enabled" name="enabled"
label="是否启用"> label={l('global.table.isEnable')}>
<Switch checkedChildren="启用" unCheckedChildren="禁用" <Switch checkedChildren="启用" unCheckedChildren="禁用"
defaultChecked={formValsPara.enabled}/> defaultChecked={formValsPara.enabled}/>
</Form.Item> </Form.Item>
......
...@@ -257,18 +257,18 @@ const ClusterTableList: React.FC<{}> = (props: any) => { ...@@ -257,18 +257,18 @@ const ClusterTableList: React.FC<{}> = (props: any) => {
hideInTable: false, hideInTable: false,
filters: [ filters: [
{ {
text: l('global.table.enabled'), text: l('status.enabled'),
value: 1, value: 1,
}, },
{ {
text: l('global.table.disabled'), text: l('status.disabled'),
value: 0, value: 0,
}, },
], ],
filterMultiple: false, filterMultiple: false,
valueEnum: { valueEnum: {
true: {text: l('global.table.enabled'), status: 'Success'}, true: {text: l('status.enabled'), status: 'Success'},
false: {text: l('global.table.disabled'), status: 'Error'}, false: {text: l('status.disabled'), status: 'Error'},
}, },
}, },
{ {
......
...@@ -343,7 +343,7 @@ const ClusterConfigurationForm: React.FC<ClusterConfigurationFormProps> = (props ...@@ -343,7 +343,7 @@ const ClusterConfigurationForm: React.FC<ClusterConfigurationFormProps> = (props
</Form.Item> </Form.Item>
<Form.Item <Form.Item
name="enabled" name="enabled"
label="是否启用"> label={l('global.table.isEnable')}>
<Switch checkedChildren="启用" unCheckedChildren="禁用" <Switch checkedChildren="启用" unCheckedChildren="禁用"
defaultChecked={formValsPara.enabled}/> defaultChecked={formValsPara.enabled}/>
</Form.Item> </Form.Item>
......
...@@ -172,25 +172,25 @@ const ClusterConfigurationTableList: React.FC<{}> = (props: any) => { ...@@ -172,25 +172,25 @@ const ClusterConfigurationTableList: React.FC<{}> = (props: any) => {
hideInTable: true, hideInTable: true,
}, },
{ {
title: '是否启用', title: l('global.table.isEnable'),
dataIndex: 'enabled', dataIndex: 'enabled',
hideInForm: true, hideInForm: true,
hideInSearch: true, hideInSearch: true,
hideInTable: false, hideInTable: false,
filters: [ filters: [
{ {
text: '已启用', text: l('status.enabled'),
value: 1, value: 1,
}, },
{ {
text: '已禁用', text: l('status.disabled'),
value: 0, value: 0,
}, },
], ],
filterMultiple: false, filterMultiple: false,
valueEnum: { valueEnum: {
true: {text: '已启用', status: 'Success'}, true: {text: l('status.enabled'), status: 'Success'},
false: {text: '已禁用', status: 'Error'}, false: {text: l('status.disabled'), status: 'Error'},
}, },
}, },
{ {
......
...@@ -162,7 +162,7 @@ const DataBaseForm: React.FC<ClickHouseFormProps> = (props) => { ...@@ -162,7 +162,7 @@ const DataBaseForm: React.FC<ClickHouseFormProps> = (props) => {
</Form.Item> </Form.Item>
<Form.Item <Form.Item
name="enabled" name="enabled"
label="是否启用" label={l('global.table.isEnable')}
> >
<Switch checkedChildren="启用" unCheckedChildren="禁用" <Switch checkedChildren="启用" unCheckedChildren="禁用"
defaultChecked={formVals.enabled}/> defaultChecked={formVals.enabled}/>
......
...@@ -147,7 +147,7 @@ const JobInstanceTable = (props: any) => { ...@@ -147,7 +147,7 @@ const JobInstanceTable = (props: any) => {
status: JOB_LIFE_CYCLE.ONLINE, status: JOB_LIFE_CYCLE.ONLINE,
}, },
0: { 0: {
text: l('global.table.lifecycle.unKnow'), text: l('global.table.lifecycle.unknown'),
status: JOB_LIFE_CYCLE.UNKNOWN, status: JOB_LIFE_CYCLE.UNKNOWN,
}, },
}, },
......
...@@ -191,7 +191,7 @@ const DocumentForm: React.FC<DocumentFormProps> = (props) => { ...@@ -191,7 +191,7 @@ const DocumentForm: React.FC<DocumentFormProps> = (props) => {
</FormItem> </FormItem>
<FormItem <FormItem
name="enabled" name="enabled"
label="是否启用" label={l('global.table.isEnable')}
rules={[{required: true, message: '请输入是否启用!'}]}> rules={[{required: true, message: '请输入是否启用!'}]}>
<Switch checkedChildren="启用" unCheckedChildren="禁用" <Switch checkedChildren="启用" unCheckedChildren="禁用"
defaultChecked={formVals.enabled}/> defaultChecked={formVals.enabled}/>
......
...@@ -403,25 +403,25 @@ const DocumentTableList: React.FC<{}> = (props: any) => { ...@@ -403,25 +403,25 @@ const DocumentTableList: React.FC<{}> = (props: any) => {
hideInTable: true, hideInTable: true,
}, },
{ {
title: '是否启用', title: l('global.table.isEnable'),
dataIndex: 'enabled', dataIndex: 'enabled',
hideInForm: false, hideInForm: false,
hideInSearch: true, hideInSearch: true,
hideInTable: false, hideInTable: false,
filters: [ filters: [
{ {
text: '已启用', text: l('status.enabled'),
value: 1, value: 1,
}, },
{ {
text: '已禁用', text: l('status.disabled'),
value: 0, value: 0,
}, },
], ],
filterMultiple: false, filterMultiple: false,
valueEnum: { valueEnum: {
true: {text: '已启用', status: 'Success'}, true: {text: l('status.enabled'), status: 'Success'},
false: {text: '已禁用', status: 'Error'}, false: {text: l('status.disabled'), status: 'Error'},
}, },
}, },
{ {
......
...@@ -104,7 +104,7 @@ const FragmentForm: React.FC<FragmentFormProps> = (props: any) => { ...@@ -104,7 +104,7 @@ const FragmentForm: React.FC<FragmentFormProps> = (props: any) => {
</FormItem> </FormItem>
<FormItem <FormItem
name="enabled" name="enabled"
label="是否启用" label={l('global.table.isEnable')}
rules={[{required: true, message: '请输入是否启用!'}]}> rules={[{required: true, message: '请输入是否启用!'}]}>
<Switch checkedChildren="启用" unCheckedChildren="禁用" <Switch checkedChildren="启用" unCheckedChildren="禁用"
defaultChecked={formVals.enabled}/> defaultChecked={formVals.enabled}/>
......
...@@ -133,25 +133,25 @@ const FragmentTableList: React.FC<{}> = (props: any) => { ...@@ -133,25 +133,25 @@ const FragmentTableList: React.FC<{}> = (props: any) => {
hideInTable: false, hideInTable: false,
}, },
{ {
title: '是否启用', title: l('global.table.isEnable'),
dataIndex: 'enabled', dataIndex: 'enabled',
hideInForm: false, hideInForm: false,
hideInSearch: true, hideInSearch: true,
hideInTable: false, hideInTable: false,
filters: [ filters: [
{ {
text: '已启用', text: l('status.enabled'),
value: 1, value: 1,
}, },
{ {
text: '已禁用', text: l('status.disabled'),
value: 0, value: 0,
}, },
], ],
filterMultiple: false, filterMultiple: false,
valueEnum: { valueEnum: {
true: {text: '已启用', status: 'Success'}, true: {text: l('status.enabled'), status: 'Success'},
false: {text: '已禁用', status: 'Error'}, false: {text: l('status.disabled'), status: 'Error'},
}, },
}, },
{ {
......
...@@ -124,7 +124,7 @@ const JarForm: React.FC<JarFormProps> = (props) => { ...@@ -124,7 +124,7 @@ const JarForm: React.FC<JarFormProps> = (props) => {
</Form.Item> </Form.Item>
<Form.Item <Form.Item
name="enabled" name="enabled"
label="是否启用"> label={l('global.table.isEnable')}>
<Switch checkedChildren="启用" unCheckedChildren="禁用" <Switch checkedChildren="启用" unCheckedChildren="禁用"
defaultChecked={formVals.enabled}/> defaultChecked={formVals.enabled}/>
</Form.Item> </Form.Item>
......
...@@ -178,25 +178,25 @@ const JarTableList: React.FC<{}> = (props: any) => { ...@@ -178,25 +178,25 @@ const JarTableList: React.FC<{}> = (props: any) => {
hideInTable: true, hideInTable: true,
}, },
{ {
title: '是否启用', title: l('global.table.isEnable'),
dataIndex: 'enabled', dataIndex: 'enabled',
hideInForm: true, hideInForm: true,
hideInSearch: true, hideInSearch: true,
hideInTable: false, hideInTable: false,
filters: [ filters: [
{ {
text: '已启用', text: l('status.enabled'),
value: 1, value: 1,
}, },
{ {
text: '已禁用', text: l('status.disabled'),
value: 0, value: 0,
}, },
], ],
filterMultiple: false, filterMultiple: false,
valueEnum: { valueEnum: {
true: {text: '已启用', status: 'Success'}, true: {text: l('status.enabled'), status: 'Success'},
false: {text: '已禁用', status: 'Error'}, false: {text: l('status.disabled'), status: 'Error'},
}, },
}, },
{ {
......
...@@ -132,7 +132,7 @@ const UpdateForm: React.FC<UpdateFormProps> = (props) => { ...@@ -132,7 +132,7 @@ const UpdateForm: React.FC<UpdateFormProps> = (props) => {
</FormItem> </FormItem>
<FormItem <FormItem
name="enabled" name="enabled"
label="是否启用" label={l('global.table.isEnable')}
rules={[{required: true, message: '请输入是否启用!'}]}> rules={[{required: true, message: '请输入是否启用!'}]}>
<Switch checkedChildren="启用" unCheckedChildren="禁用" <Switch checkedChildren="启用" unCheckedChildren="禁用"
defaultChecked={formVals.enabled}/> defaultChecked={formVals.enabled}/>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- <!--
~ Licensed to the Apache Software Foundation (ASF) under one or more ~
~ contributor license agreements. See the NOTICE file distributed with ~ Licensed to the Apache Software Foundation (ASF) under one or more
~ this work for additional information regarding copyright ownership. ~ contributor license agreements. See the NOTICE file distributed with
~ The ASF licenses this file to You under the Apache License, Version 2.0 ~ this work for additional information regarding copyright ownership.
~ (the "License"); you may not use this file except in compliance with ~ The ASF licenses this file to You under the Apache License, Version 2.0
~ the License. You may obtain a copy of the License at ~ (the "License"); you may not use this file except in compliance with
~ the License. You may obtain a copy of the License at
~ ~
~ http://www.apache.org/licenses/LICENSE-2.0 ~ http://www.apache.org/licenses/LICENSE-2.0
~ ~
~ Unless required by applicable law or agreed to in writing, software ~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS, ~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and ~ See the License for the specific language governing permissions and
~ limitations under the License. ~ limitations under the License.
~
--> -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
...@@ -87,7 +89,7 @@ ...@@ -87,7 +89,7 @@
<poi.version>4.1.2</poi.version> <poi.version>4.1.2</poi.version>
<commons-email>1.5</commons-email> <commons-email>1.5</commons-email>
<knife4j.version>3.0.3</knife4j.version> <knife4j.version>3.0.3</knife4j.version>
<spotless.version>2.27.2</spotless.version> <spotless.version>2.27.1</spotless.version>
</properties> </properties>
<dependencyManagement> <dependencyManagement>
...@@ -539,7 +541,7 @@ ...@@ -539,7 +541,7 @@
<eclipse> <eclipse>
<file>style/spotless_dlink_formatter.xml</file> <file>style/spotless_dlink_formatter.xml</file>
</eclipse> </eclipse>
<removeUnusedImports /> <removeUnusedImports/>
<importOrder> <importOrder>
<order>com.dlink,org.apache,java,javax,org,com,,\#</order> <order>com.dlink,org.apache,java,javax,org,com,,\#</order>
</importOrder> </importOrder>
...@@ -576,7 +578,7 @@ ...@@ -576,7 +578,7 @@
<includes> <includes>
<include>**/*.md</include> <include>**/*.md</include>
</includes> </includes>
<flexmark /> <flexmark/>
</markdown> </markdown>
</configuration> </configuration>
<executions> <executions>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment