主题配置

企业门户支持配置主题,通过配置主题呈现不同的界面效果,如下面两幅图所示

图 0

图 1

系统默认的主题

上面两幅图对应的两个主题,都是系统默认的主题,系统默认有5个主题,分别是:theme、theme_bluedark、theme_dark、theme_compact 和 theme_compact_dark。

第一幅图是 theme 主题的效果,第二幅图是 theme_bluedark 主题的效果。

配置当前主题

系统默认使用的主题是 theme,在统一通用配置中添加“当前主题” current-theme 配置,设置当前使用的主题。

图 2

图 3

在统一按组织配置中添加“当前主题” current-theme 配置,可以实现不同组织使用不同的主题。

定义新的主题

一个主题由主题编码、主题名称、主题类型、主题变量、组件配置和样式配置五部分组成。在统一通用配置中添加“主题配置”theme-config,可以配置多个主题。

主题编码

主题编码以 theme_ 开头,例如:theme_1

主题变量

在主题变量中定义 Design Token,例如:

{
    "colorPrimaryText": "#c3dcf1",
    "colorTextBase": "#c3dcf1",
    "colorPrimaryBg": "#00000000 !important",
    "colorLink": "#00d4ff",
    "colorPrimaryBorder": "#1677ff",
    "colorBgBase": "#062d43"
}

打开 ide,切换到页面设计页,点击右上角的齿轮图标显示下拉菜单,点击“主题变量”菜单,打开主题变量编辑对话框,如下图所示

图 4

  • 主题管理:增加新的主题
  • 主题列表:切换编辑的主题
  • 主题类型:全局用来配置 Design Token,组件用来配置组件的 Class
  • 主题配置:配置后生成 JSON
  • 保存:写入 UI2/pcx/configContext.js 文件

图 5

选择主题类型为全局,配置后,点击主题配置,将 token 里面的 JSON 复制到主题变量中

图 6

图 14

主题类型

主题类型定义主题允许在桌面端和(或)移动端使用。

组件配置

在组件配置中配置组件的 Token 和 Class。对于 echarts 组件来说,在这里配置 echarts 的主题,例如:

{
    "Menu": {
        "itemSelectedColor": "rgb(0, 212, 255)"
    },
    "echarts":[{
        "version": 1,
        "themeName": "theme8",
        "theme": {
            "seriesCnt": "8",
            "backgroundColor": "rgba(0, 0, 0, 0)"
        }
    }]
}

图 8

选择主题类型为组件,配置后,点击主题配置,将 components 里面的 JSON 复制到组件配置中

图 9

图 15

echarts 主题配置

echarts 的主题也在组件配置中配置

  • 从 echarts 官网主题构件工具导出主题的配置

图 11

  • 在组件配置中增加 echarts 数组,内容是从 echarts 导出的主题配置

图 15

  • 将主题配置中的 themeName 设置到 echarts 组件的外部主题属性上,即可使用该主题

图 16

样式配置

在样式配置中配置非组件的 Class 和用 iframe 嵌入的页面的样式,注意 value 部分是字符串。例如:

{
    "*": "
        .x-scroll-content{
            color:red
        }
    ",
    "iframe路径匹配": "
        body{
            color: red;
        }
    "
}
  • 在*里面定义非组件样式
  • 在 iframe 路径匹配中写入 iframe 的 src 的部分路径,系统匹配后会施加里面的样式到 iframe 页面中

案例

自定义门户样式

图 21

1.在企业门户下,添加“统一通用配置”下“主题配置V2”设置项,新增主题,并在“样式配置”下新增样式内容,具体修改样式参考下面内容(需要删除注释并进行压缩)

.uix-portal-layout{
    header.uix-portal-layout-header{
        //修改顶部菜单样式
        background: url(./images/demo1.png) no-repeat  center center ;
        // 修改顶部菜单按钮样式
        .ant-menu-item.ant-menu-item-selected{
            background-color: rgba(100,100,100,0.5);
            border-radius: 5px;
        }
    }
    //修改中部内容模块样式
    .uix-portal-layout-bg-list{
        background: url(./images/demo1.png) no-repeat  center center ;
    }
    //修改左边菜单模块样式
    aside.ant-layout-sider.uix-portal-sider{
        margin-left: 5px;
        border-top-left-radius: 10px;
        background: linear-gradient(#ffffff, #f5f5f5 28%);
    }
    //修改右边内容模块样式
    main.uix-portal-layout-content{
        width: calc(100% - 5px);
        border-top-left-radius: 10px;
        border-top-right-radius: 10px;
        background: linear-gradient(#ffffff, #f5f5f5 28%);
    }   
    //兼容左边没有菜单的情况
    aside.ant-layout-sider.uix-portal-sider + div.uix-portal-layout-container{
        main.uix-portal-layout-content{
            border-top-left-radius: 0px;
        }
    }    
}    
//修改顶部更多子菜单按钮样式
.ant-menu-submenu.ant-menu-submenu-popup{
    .ant-menu-item.ant-menu-item-selected.uix-portal-base-menu-horizontal-menu-item{
        background-color: var(--ant-menu-color-item-bg-selected);
        border-radius: 5px;
    }
}

图 22

2.完成上面配置后再在“统一通用配置”下新增“当前主题V2”配置项,并选择上面定义的主题,保存设置后刷新页面即可生效

图 23

配置案例

门户颜色修改案例

门户是通过 ProLayout 组件展现的,调整门户的颜色就是调整 ProLayout 组件的 Token。调整后效果如下图所示

图 20

在统一通用配置中,添加“主题配置”。

图 18

在组件配置中,添加如下代码

{
    "ProLayout": {
        "header": {
            "colorBgHeader": "#ffffffff !important",
            "colorHeaderTitle": "#3494F8",
            "colorTextMenu": "#000000",
            "colorTextRightActionsItem": "#000000"
        },
        "sider": {
            "colorMenuBackground":"#3494F8",
            "colorTextMenu": "#fff",
            "colorTextMenuSelected": "rgb(0, 212, 255)",
            "colorTextMenuItemHover": "#fff"
        }
    }
}

在统一通用配置中,添加当前主题,选中上面新添加的主题,保存后,刷新浏览器即可看到调整颜色后的效果

图 19

ProLayout 组件提供的 Token 清单,请参考ProLayout组件官网

图 17

表格当前行样式修改案例

表格组件的当前行样式,是由表格组件的 Token 控制的,调整后效果如下图所示

1730891627397

react

在“主题变量编辑”对话框中,找到表格组件的选中行背景色的 Token 名: rowSelectedBg,并设置颜色

从“主题配置”中复制 components 中的代码

粘贴到统一通用配置的主题配置中

运行效果如下图所示

vue

在“主题变量编辑”对话框中,找到表格组件的选中行背景色的 Token 名: controlItemBgActive,并设置颜色

1730890011672

1730890257364

1730890299143

从“主题配置”中复制 components 中的代码

1730890335944

粘贴到统一通用配置的主题配置中

1730890531377

运行时效果如下图所示

1730891627397

results matching ""

    No results matching ""