diff --git a/console-ui/src/locales/en-US.js b/console-ui/src/locales/en-US.js
index ebc88b3df3e..8da4189645d 100644
--- a/console-ui/src/locales/en-US.js
+++ b/console-ui/src/locales/en-US.js
@@ -243,6 +243,10 @@ const I18N_CONF = {
lastUpdateTime: 'Last Modified At',
operator: 'Operator',
operation: 'Operation',
+ compare: 'Compare',
+ historyCompareTitle: 'History Compare',
+ historyCompareLastVersion: 'Lasted Release Version',
+ historyCompareSelectedVersion: 'Selected Version',
},
HistoryDetail: {
historyDetails: 'History Details',
diff --git a/console-ui/src/locales/zh-CN.js b/console-ui/src/locales/zh-CN.js
index e6532eb1ef7..4dddd65356f 100644
--- a/console-ui/src/locales/zh-CN.js
+++ b/console-ui/src/locales/zh-CN.js
@@ -242,6 +242,10 @@ const I18N_CONF = {
lastUpdateTime: '最后更新时间',
operator: '操作人',
operation: '操作',
+ compare: '比较',
+ historyCompareTitle: '历史版本比较',
+ historyCompareLastVersion: '最新版本',
+ historyCompareSelectedVersion: '当前选中版本',
},
HistoryDetail: {
historyDetails: '历史详情',
diff --git a/console-ui/src/pages/ConfigurationManagement/HistoryRollback/HistoryRollback.js b/console-ui/src/pages/ConfigurationManagement/HistoryRollback/HistoryRollback.js
index ffec90a5aba..5054425da0b 100644
--- a/console-ui/src/pages/ConfigurationManagement/HistoryRollback/HistoryRollback.js
+++ b/console-ui/src/pages/ConfigurationManagement/HistoryRollback/HistoryRollback.js
@@ -21,6 +21,7 @@ import RegionGroup from 'components/RegionGroup';
import { getParams, setParams, request } from '@/globalLib';
import './index.scss';
+import DiffEditorDialog from '../../../components/DiffEditorDialog';
@ConfigProvider.config
class HistoryRollback extends React.Component {
@@ -59,6 +60,7 @@ class HistoryRollback extends React.Component {
selectValue: [],
loading: false,
};
+ this.diffEditorDialog = React.createRef();
}
componentDidMount() {
@@ -132,6 +134,10 @@ class HistoryRollback extends React.Component {
{locale.rollback}
+ |
+
+ {locale.compare}
+
);
}
@@ -195,6 +201,71 @@ class HistoryRollback extends React.Component {
);
}
+ goCompare(record) {
+ let tenant = getParams('namespace') || '';
+ let serverId = getParams('serverId') || 'center';
+ this.getConfig(-1, tenant, serverId, this.dataId, this.group).then(lasted => {
+ this.getHistoryConfig(record.id, this.dataId, this.group).then(selected => {
+ this.diffEditorDialog.current.getInstance().openDialog(selected.content, lasted.content);
+ });
+ });
+ }
+
+ /**
+ * 获取最新版本配置
+ * @param id
+ * @param tenant
+ * @param serverId
+ * @param dataId
+ * @param group
+ * @returns {Promise}
+ */
+ getConfig(id, tenant, serverId, dataId, group) {
+ return new Promise((resolve, reject) => {
+ const { locale = {} } = this.props;
+ const self = this;
+ this.tenant = tenant;
+ this.serverId = tenant;
+ const url = `v1/cs/configs?show=all&dataId=${dataId}&group=${group}`;
+ request({
+ url,
+ beforeSend() {
+ self.openLoading();
+ },
+ success(result) {
+ if (result != null) {
+ resolve(result);
+ }
+ },
+ complete() {
+ self.closeLoading();
+ },
+ });
+ });
+ }
+
+ /**
+ * 获取历史版本配置数据
+ * @param nid
+ * @param dataId
+ * @param group
+ * @returns {Promise}
+ */
+ getHistoryConfig(nid, dataId, group) {
+ return new Promise((resolve, reject) => {
+ const { locale = {} } = this.props;
+ const self = this;
+ request({
+ url: `v1/cs/history?dataId=${dataId}&group=${group}&nid=${nid}`,
+ success(result) {
+ if (result != null) {
+ resolve(result);
+ }
+ },
+ });
+ });
+ }
+
goRollBack(record) {
this.serverId = getParams('serverId') || 'center';
this.tenant = getParams('namespace') || ''; // 为当前实例保存tenant参数
@@ -367,6 +438,12 @@ class HistoryRollback extends React.Component {
/>
,
+
);