diff --git a/data-room-ui/packages/BasicComponents/ThemeSwitcher/index.vue b/data-room-ui/packages/BasicComponents/ThemeSwitcher/index.vue new file mode 100644 index 00000000..d9b8b76d --- /dev/null +++ b/data-room-ui/packages/BasicComponents/ThemeSwitcher/index.vue @@ -0,0 +1,96 @@ + + + + diff --git a/data-room-ui/packages/BasicComponents/ThemeSwitcher/setting.vue b/data-room-ui/packages/BasicComponents/ThemeSwitcher/setting.vue new file mode 100644 index 00000000..4281a439 --- /dev/null +++ b/data-room-ui/packages/BasicComponents/ThemeSwitcher/setting.vue @@ -0,0 +1,111 @@ + + + + + diff --git a/data-room-ui/packages/BasicComponents/ThemeSwitcher/settingConfig.js b/data-room-ui/packages/BasicComponents/ThemeSwitcher/settingConfig.js new file mode 100644 index 00000000..1a2260a2 --- /dev/null +++ b/data-room-ui/packages/BasicComponents/ThemeSwitcher/settingConfig.js @@ -0,0 +1,33 @@ +/* + * @Descripttion: + * @Author: liu.shiyi + * @Date: 2022-10-13 11:18:03 + * @LastEditTime: 2022-10-13 13:55:11 + */ +import { commonConfig } from 'data-room-ui/js/config' + +export const settingConfig = { + // 设置面板属性的显隐 + displayOption: { + dataAllocation: { + // 是否存在数据配置 + enable: false + } + } +} +const customConfig = { + type: 'themeSwitcher', + root: { + version: '2023071001' + }, + customize: { + title: '主题切换', + fontSize: 20, + fontWeight: 700, + color: 'left,#ffffff,#ffffff' + } + +} +export const dataConfig = { + ...commonConfig(customConfig) +} diff --git a/data-room-ui/packages/BigScreenDesign/RightSetting/ComponentBinding/index.vue b/data-room-ui/packages/BigScreenDesign/RightSetting/ComponentBinding/index.vue index bf7e95dd..f9e21ee5 100644 --- a/data-room-ui/packages/BigScreenDesign/RightSetting/ComponentBinding/index.vue +++ b/data-room-ui/packages/BigScreenDesign/RightSetting/ComponentBinding/index.vue @@ -116,7 +116,7 @@ export default { }) } }) - layouts = layouts?.filter(item => item.code !== code && !['Tabs', 'titles', 'currentTime', 'timeCountDown', 'iframeChart', 'linkChart', 'carousel'].includes(item.type)) + layouts = layouts?.filter(item => item.code !== code && !['Tabs', 'titles', 'currentTime', 'timeCountDown', 'iframeChart', 'linkChart', 'carousel', 'themeSwitcher'].includes(item.type)) layouts = [...layouts, ...tabComponents]?.map(item => ({ name: item.code, comment: item.title diff --git a/data-room-ui/packages/PlotRender/index.vue b/data-room-ui/packages/PlotRender/index.vue index 818fad90..acfac075 100644 --- a/data-room-ui/packages/PlotRender/index.vue +++ b/data-room-ui/packages/PlotRender/index.vue @@ -63,6 +63,16 @@ export default { created () { this.plotList = [...this.plotList, ...getCustomPlots()] }, + watch: { + // 监听主题变化手动触发组件配置更新 + 'config.option.theme': { + handler (val) { + if (val) { + this.changeStyle(this.config) + } + } + } + }, mounted () { }, beforeDestroy () { diff --git a/data-room-ui/packages/js/config/basicComponentsConfig.js b/data-room-ui/packages/js/config/basicComponentsConfig.js index af2db7ef..5a2715ba 100644 --- a/data-room-ui/packages/js/config/basicComponentsConfig.js +++ b/data-room-ui/packages/js/config/basicComponentsConfig.js @@ -27,7 +27,8 @@ const typeList = [ 'screenScrollBoard', 'video', 'input', - 'button' + 'button', + 'themeSwitcher' ] let basicConfigList = [] basicConfigList = typeList.map((type) => { diff --git a/data-room-ui/packages/js/utils/getComponentConfig.js b/data-room-ui/packages/js/utils/getComponentConfig.js index 08968813..00e3ced2 100644 --- a/data-room-ui/packages/js/utils/getComponentConfig.js +++ b/data-room-ui/packages/js/utils/getComponentConfig.js @@ -215,6 +215,18 @@ export default function getComponentConfig (type) { y: 0, type } + case 'themeSwitcher': + return { + name: '主题切换', + title: '主题切换', + icon: iconNames[14], + className: 'com.gccloud.dataroom.core.module.chart.components.ThemeSwitcherChart', + w: 500, + h: 100, + x: 0, + y: 0, + type + } default: return {} } diff --git a/data-room-ui/packages/js/utils/themeFormatting.js b/data-room-ui/packages/js/utils/themeFormatting.js index fda771d3..ca56dd00 100644 --- a/data-room-ui/packages/js/utils/themeFormatting.js +++ b/data-room-ui/packages/js/utils/themeFormatting.js @@ -37,9 +37,6 @@ export function themeToSetting (chartList, type, _this) { } } } - if (_this && _this.$refs.Render?.$refs['RenderCard' + chart.code][0] && _this.$refs.Render.$refs['RenderCard' + chart.code][0].$refs[chart.code].changeStyle) { - _this.$refs.Render.$refs['RenderCard' + chart.code][0].$refs[chart.code].changeStyle(_.cloneDeep(chart)) - } }) } return chartList