From 3bd4b0665d015f4b6263819e1c65e41c920b3d57 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Wed, 28 Feb 2024 15:33:14 +0800 Subject: [PATCH] =?UTF-8?q?perf(X-Pack):=20=E5=A4=96=E8=A7=82=E9=85=8D?= =?UTF-8?q?=E7=BD=AE-=E7=99=BB=E5=BD=95=E9=A1=B5=E9=9D=A2=E9=A1=B5?= =?UTF-8?q?=E8=84=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 2 +- core/core-frontend/package.json | 3 +- .../src/layout/components/HeaderSystem.vue | 3 ++ .../src/store/modules/appearance.ts | 12 ++++++++ core/core-frontend/src/views/login/index.vue | 28 +++++++++++++++++++ de-xpack | 2 +- installer/dataease/docker-compose.yml | 1 + installer/install.sh | 2 +- 8 files changed, 49 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 96ec68e8ec..f13101aaf2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM registry.cn-qingdao.aliyuncs.com/dataease/alpine-openjdk17-jre ARG IMAGE_TAG -RUN mkdir -p /opt/apps/config /opt/dataease2.0/drivers/ /opt/dataease2.0/cache/ /opt/dataease2.0/data/map /opt/dataease2.0/data/static-resource/ +RUN mkdir -p /opt/apps/config /opt/dataease2.0/drivers/ /opt/dataease2.0/cache/ /opt/dataease2.0/data/map /opt/dataease2.0/data/static-resource/ /opt/dataease2.0/data/appearance/ ADD drivers/* /opt/dataease2.0/drivers/ ADD mapFiles/ /opt/dataease2.0/data/map/ diff --git a/core/core-frontend/package.json b/core/core-frontend/package.json index 99fe5b1ebb..893c6b56ba 100644 --- a/core/core-frontend/package.json +++ b/core/core-frontend/package.json @@ -52,7 +52,8 @@ "vue-uuid": "^3.0.0", "vue3-ace-editor": "^2.2.2", "vuedraggable": "^4.1.0", - "web-storage-cache": "^1.1.1" + "web-storage-cache": "^1.1.1", + "xss": "^1.0.14" }, "devDependencies": { "@intlify/unplugin-vue-i18n": "^0.8.2", diff --git a/core/core-frontend/src/layout/components/HeaderSystem.vue b/core/core-frontend/src/layout/components/HeaderSystem.vue index 465291baeb..3944b14b6a 100644 --- a/core/core-frontend/src/layout/components/HeaderSystem.vue +++ b/core/core-frontend/src/layout/components/HeaderSystem.vue @@ -84,6 +84,9 @@ const navigate = computed(() => appearanceStore.getNavigate) :deep(.work-bar) { color: var(--ed-color-black) !important; } + .ed-divider { + border-color: #1f232926 !important; + } } .header-flex { margin-bottom: 0.5px; diff --git a/core/core-frontend/src/store/modules/appearance.ts b/core/core-frontend/src/store/modules/appearance.ts index 877f163366..cbe9dc1dc5 100644 --- a/core/core-frontend/src/store/modules/appearance.ts +++ b/core/core-frontend/src/store/modules/appearance.ts @@ -15,6 +15,8 @@ interface AppearanceState { slogan?: string web?: string name?: string + foot?: string + footContent?: string loaded: boolean } const { wsCache } = useCache() @@ -31,6 +33,8 @@ export const useAppearanceStore = defineStore('appearanceStore', { slogan: '', web: '', name: '', + foot: 'false', + footContent: '', loaded: false } }, @@ -79,6 +83,12 @@ export const useAppearanceStore = defineStore('appearanceStore', { }, getLoaded(): boolean { return this.loaded + }, + getFoot(): string { + return this.foot + }, + getFootContent(): string { + return this.footContent } }, actions: { @@ -133,6 +143,8 @@ export const useAppearanceStore = defineStore('appearanceStore', { this.slogan = data.slogan this.web = data.web this.name = data.name + this.foot = data.foot + this.footContent = data.footContent if (this.name) { document.title = this.name } diff --git a/core/core-frontend/src/views/login/index.vue b/core/core-frontend/src/views/login/index.vue index f4aa8e456b..990d1d614e 100644 --- a/core/core-frontend/src/views/login/index.vue +++ b/core/core-frontend/src/views/login/index.vue @@ -17,6 +17,7 @@ import { logoutHandler } from '@/utils/logout' import DeImage from '@/assets/login-desc-de.png' import elementResizeDetectorMaker from 'element-resize-detector' import { isLarkPlatform } from '@/utils/utils' +import xss from 'xss' const { wsCache } = useCache() const appStore = useAppStoreWithOut() const userStore = useUserStoreWithOut() @@ -184,6 +185,33 @@ const loadArrearance = () => { if (appearanceStore.getSlogan) { slogan.value = appearanceStore.getSlogan } + if (appearanceStore.getFoot) { + showFoot.value = appearanceStore.getFoot === 'true' + if (showFoot.value) { + const content = appearanceStore.getFootContent + const myXss = new xss.FilterXSS({ + css: { + whiteList: { + 'background-color': true, + 'text-align': true, + color: true, + 'margin-top': true, + 'margin-bottom': true, + 'line-height': true, + 'box-sizing': true, + 'padding-top': true, + 'padding-bottom': true + } + }, + whiteList: { + ...xss.whiteList, + p: ['style'], + span: ['style'] + } + }) + footContent.value = myXss.process(content) + } + } } onMounted(() => { loadArrearance() diff --git a/de-xpack b/de-xpack index c04491512f..5e22cfff25 160000 --- a/de-xpack +++ b/de-xpack @@ -1 +1 @@ -Subproject commit c04491512fd7f2ba9f4a438ada69228c384b35cd +Subproject commit 5e22cfff250f06e2dafd2c775aed449e1c45bd59 diff --git a/installer/dataease/docker-compose.yml b/installer/dataease/docker-compose.yml index f4c1f0c3fa..cb5f79d6aa 100644 --- a/installer/dataease/docker-compose.yml +++ b/installer/dataease/docker-compose.yml @@ -12,6 +12,7 @@ services: - ${DE_BASE}/dataease2.0/data/static-resource:/opt/dataease2.0/data/static-resource - ${DE_BASE}/dataease2.0/cache:/opt/dataease2.0/cache - ${DE_BASE}/dataease2.0/data/geo:/opt/dataease2.0/data/geo + - ${DE_BASE}/dataease2.0/data/appearance:/opt/dataease2.0/data/appearance depends_on: DE_MYSQL_HOST: condition: service_healthy diff --git a/installer/install.sh b/installer/install.sh index d71fd06efd..6269da1125 100644 --- a/installer/install.sh +++ b/installer/install.sh @@ -71,7 +71,7 @@ cd $DE_RUN_BASE env | grep DE_ >.env mkdir -p ${DE_RUN_BASE}/{cache,logs,conf} -mkdir -p ${DE_RUN_BASE}/data/{mysql,static-resource,map,etcd_data,geo} +mkdir -p ${DE_RUN_BASE}/data/{mysql,static-resource,map,etcd_data,geo,appearance} mkdir -p ${DE_RUN_BASE}/apisix/logs mkdir -p ${DE_RUN_BASE}/task/logs chmod 777 ${DE_RUN_BASE}/apisix/logs ${DE_RUN_BASE}/data/etcd_data ${DE_RUN_BASE}/task/logs