diff --git a/Dockerfile b/Dockerfile index b54bf8999..2ad4c1be3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,5 @@ FROM node:14.16 as stage-build ARG TARGETARCH -ARG VERSION -ENV VERSION=$VERSION ARG NPM_REGISTRY="https://registry.npmmirror.com" ENV NPM_REGISTY=$NPM_REGISTRY @@ -12,10 +10,15 @@ RUN set -ex \ && yarn config set registry ${NPM_REGISTRY} \ && yarn config set cache-folder /root/.cache/yarn/lina +ADD package.json yarn.lock /data +RUN --mount=type=cache,target=/root/.cache/yarn \ + yarn install + +ARG VERSION +ENV VERSION=$VERSION ADD . /data RUN --mount=type=cache,target=/root/.cache/yarn \ sed -i "s@Version .*@Version ${VERSION}@g" src/layout/components/Footer/index.vue \ - && yarn install \ && yarn build FROM nginx:alpine diff --git a/src/components/TableFormatters/TwoTabFormatter.vue b/src/components/TableFormatters/TwoTabFormatter.vue new file mode 100644 index 000000000..97ef8747b --- /dev/null +++ b/src/components/TableFormatters/TwoTabFormatter.vue @@ -0,0 +1,61 @@ + + + + + diff --git a/src/components/TableFormatters/index.js b/src/components/TableFormatters/index.js index 8cbb56dde..016da83ca 100644 --- a/src/components/TableFormatters/index.js +++ b/src/components/TableFormatters/index.js @@ -12,6 +12,7 @@ import DialogDetailFormatter from './DialogDetailFormatter' import EditableInputFormatter from './EditableInputFormatter' import StatusFormatter from './StatusFormatter' import TagsFormatter from './TagsFormatter' +import TwoTabFormatter from './TwoTabFormatter' export default { DetailFormatter, @@ -27,7 +28,8 @@ export default { ArrayFormatter, EditableInputFormatter, StatusFormatter, - TagsFormatter + TagsFormatter, + TwoTabFormatter } export { @@ -44,5 +46,6 @@ export { ArrayFormatter, EditableInputFormatter, StatusFormatter, - TagsFormatter + TagsFormatter, + TwoTabFormatter } diff --git a/src/i18n/langs/en.json b/src/i18n/langs/en.json index 6dbfb08a8..a56140933 100644 --- a/src/i18n/langs/en.json +++ b/src/i18n/langs/en.json @@ -47,6 +47,7 @@ "sqlserver": "SQLServer", "redis": "Redis", "mongodb": "MongoDB", + "clickhouse": "ClickHouse", "k8s": "kubernetes" }, "applicationsCategory": { @@ -244,7 +245,9 @@ "View": "View", "LoginIP": "Login IP", "LoginCity": "Login city", - "LoginDate": "Login date" + "LoginDate": "Login date", + "BeforeChange": "Before change", + "AfterChange": "After change" }, "auth": { "LoginRequiredMsg": "You account has logout, Please login again", @@ -254,6 +257,7 @@ "ReLoginErr": "Login time has exceeded 5 minutes, please login again" }, "common": { + "NoContent": "No content", "NeedAddAppsOrSystemUserErrMsg": "Please add apps or system user", "VerificationCodeSent": "The verification code has been sent", "SendVerificationCode": "Send verification code", @@ -1435,6 +1439,7 @@ "HuaweiCloud": "Huawei Cloud", "BaiduCloud": "Baidu Cloud", "JDCloud": "JD Cloud", + "KingSoftCloud": "KingSoft Cloud", "Azure":"Azure(China)", "Azure_Int": "Azure(International)", "HostnameStrategy": "Used to produce the asset hostname. For example, 1. Instance name (instanceDemo);2. Instance name and Partial IP (instanceDemo-250.1)", diff --git a/src/i18n/langs/ja.json b/src/i18n/langs/ja.json index 34ef1fb39..7611a6090 100644 --- a/src/i18n/langs/ja.json +++ b/src/i18n/langs/ja.json @@ -52,6 +52,7 @@ "sqlserver": "SQLServer", "redis": "Redis", "mongodb": "MongoDB", + "clickhouse": "ClickHouse", "k8s": "Kubernetes" }, "applicationsCategory": { @@ -249,7 +250,9 @@ "SystemUserName": "システムユーザー名", "LoginIP": "ログインIP", "LoginCity": "ログイン都市", - "LoginDate": "ログイン日" + "LoginDate": "ログイン日", + "BeforeChange": "変更前", + "AfterChange": "変更後" }, "auth": { "LoginRequiredMsg": "アカウントが終了しました。ログインし直してください", @@ -259,6 +262,7 @@ "ReLoginErr": "ログイン時間が 5 分を超えました。もう一度ログインしてください" }, "common": { + "NoContent": "まだ内容がない", "NeedAddAppsOrSystemUserErrMsg": "アプリケーションまたはシステムユーザーを追加してください", "VerificationCodeSent": "検証コードが送信されました", "SendVerificationCode": "認証コードの送信", @@ -1478,6 +1482,7 @@ "HuaweiCloud": "ファーウェイ雲", "BaiduCloud": "百度雲", "JDCloud": "京東雲", + "KingSoftCloud": "金山雲", "Azure": "Azure(中国)", "Azure_Int": "Azure (国際)", "HostnameStrategy": "資産を生成するためにホスト名。例: 1. インスタンス名 (instanceDemo) 2.インスタンス名と一部IP (下位2桁) (instanceDemo-250.1)", diff --git a/src/i18n/langs/zh.json b/src/i18n/langs/zh.json index 9d0f6bc20..c9426cdd1 100644 --- a/src/i18n/langs/zh.json +++ b/src/i18n/langs/zh.json @@ -52,6 +52,7 @@ "sqlserver": "SQLServer", "redis": "Redis", "mongodb": "MongoDB", + "clickhouse": "ClickHouse", "k8s": "Kubernetes" }, "applicationsCategory": { @@ -249,7 +250,9 @@ "SystemUserName": "系统用户名", "LoginIP": "登录IP", "LoginCity": "登录城市", - "LoginDate": "登录日期" + "LoginDate": "登录日期", + "BeforeChange": "变更前", + "AfterChange": "变更后" }, "auth": { "LoginRequiredMsg": "账号已退出,请重新登录", @@ -259,6 +262,7 @@ "ReLoginErr": "登录时长已超过 5 分钟,请重新登录" }, "common": { + "NoContent": "暂无内容", "NeedAddAppsOrSystemUserErrMsg": "需要添加应用或系统用户", "VerificationCodeSent": "验证码已发送", "SendVerificationCode": "发送验证码", @@ -1479,6 +1483,7 @@ "HuaweiCloud": "华为云", "BaiduCloud": "百度云", "JDCloud": "京东云", + "KingSoftCloud": "金山云", "Azure":"Azure(中国)", "Azure_Int": "Azure(国际)", "HostnameStrategy": "用于生成资产主机名。例如:1. 实例名称 (instanceDemo);2. 实例名称和部分IP(后两位) (instanceDemo-250.1)", diff --git a/src/views/accounts/AccountBackupPlan/AccountBackupPlanList.vue b/src/views/accounts/AccountBackupPlan/AccountBackupPlanList.vue index ccfe16978..f7ad9db69 100644 --- a/src/views/accounts/AccountBackupPlan/AccountBackupPlanList.vue +++ b/src/views/accounts/AccountBackupPlan/AccountBackupPlanList.vue @@ -78,7 +78,6 @@ export default { hasRefresh: true, hasExport: false, hasImport: false, - hasMoreActions: false, createRoute: () => { return { name: 'AccountBackupPlanCreate' diff --git a/src/views/accounts/ChangeAuthPlan/AppChangeAuthPlan/AppChangeAuthPlanList.vue b/src/views/accounts/ChangeAuthPlan/AppChangeAuthPlan/AppChangeAuthPlanList.vue index 6897e2625..08f3683c6 100644 --- a/src/views/accounts/ChangeAuthPlan/AppChangeAuthPlan/AppChangeAuthPlanList.vue +++ b/src/views/accounts/ChangeAuthPlan/AppChangeAuthPlan/AppChangeAuthPlanList.vue @@ -123,7 +123,6 @@ export default { hasRefresh: true, hasExport: false, hasImport: false, - hasMoreActions: false, searchConfig: { getUrlQuery: false }, diff --git a/src/views/accounts/ChangeAuthPlan/AssetChangeAuthPlan/ChangeAuthPlanList.vue b/src/views/accounts/ChangeAuthPlan/AssetChangeAuthPlan/ChangeAuthPlanList.vue index 1b2a88189..0e2aeb46a 100644 --- a/src/views/accounts/ChangeAuthPlan/AssetChangeAuthPlan/ChangeAuthPlanList.vue +++ b/src/views/accounts/ChangeAuthPlan/AssetChangeAuthPlan/ChangeAuthPlanList.vue @@ -107,7 +107,6 @@ export default { hasRefresh: true, hasExport: false, hasImport: false, - hasMoreActions: false, createRoute: () => { return { name: 'AssetChangeAuthPlanCreate' diff --git a/src/views/acl/AssetAcl/AssetAclList.vue b/src/views/acl/AssetAcl/AssetAclList.vue index 410ff7b1a..7ddf3f575 100644 --- a/src/views/acl/AssetAcl/AssetAclList.vue +++ b/src/views/acl/AssetAcl/AssetAclList.vue @@ -84,8 +84,7 @@ export default { createRoute: 'AssetAclCreate', hasRefresh: true, hasExport: false, - hasImport: false, - hasMoreActions: false + hasImport: false } } } diff --git a/src/views/applications/const.js b/src/views/applications/const.js index 763c17823..b8d09b3a3 100644 --- a/src/views/applications/const.js +++ b/src/views/applications/const.js @@ -52,6 +52,7 @@ export const DATABASE_CATEGORY = 'db' export const SQLSERVER = 'sqlserver' export const REDIS = 'redis' export const MONGODB = 'mongodb' +export const CLICKHOUSE = 'clickhouse' export const DATABASE = [ { @@ -89,6 +90,13 @@ export const DATABASE = [ type: 'primary', category: DATABASE_CATEGORY, has: hasLicence + }, + { + name: CLICKHOUSE, + title: i18n.t(`applications.applicationsType.${CLICKHOUSE}`), + type: 'primary', + category: DATABASE_CATEGORY, + has: hasLicence } ] diff --git a/src/views/assets/Cloud/Account/AccountList.vue b/src/views/assets/Cloud/Account/AccountList.vue index 55e21cb5a..ea8822469 100644 --- a/src/views/assets/Cloud/Account/AccountList.vue +++ b/src/views/assets/Cloud/Account/AccountList.vue @@ -4,7 +4,7 @@