文档中心登录前进行品牌展示,为满足企业或组织的的个性化需求

如何为文档中心定制欢迎页?

该组件仅适用于私有化WPS365版本

1. 方案概述

欢迎页是由客户自己设计和定义的独立页面,可以在文档中心登录前进行品牌展示。

总的来说,欢迎页的内容客户可以根据自己的需求自行设计,通常比较高频的使用方式有:

  1. 视觉品牌植入: 展示企业LOGO、标语等元素,强化员工和客户对公司品牌的日常感知。
  2. 文化仪式感营造: 根据节日/企业纪念日更新主题(如周年庆动态海报、春节祝福),增强员工情感联结。

如果没有定制欢迎页,客户在登录文档中心时,会直接进入文档中心登录页,输入账号和密码进行登录。

客户定制了文档中心欢迎页之后,遇到需要登录的场景,会先跳转进入企业欢迎页,在欢迎页进行相关操作(例如:点击【去使用】按钮)之后再进入登录页。

欢迎页
欢迎页页面示例,企业可自定义欢迎语等页面设计
实现效果客户在进行登录操作前,被拦截跳转到欢迎页:GOVDL5Q6AAQAG
支持端文档中心PC端、文档中心H5端
版本限制2024-0613(含)以上
操作系统限制支持X86、XC

2. 使用指南

👉独立页面插件

  • 欢迎页: /c/cid/index.html#/welcome

👉能力

sdk.login.pageInit

👉方法

onIntercept

登陆页面-页面初始化拦截

信息内容
支持版本2024-0613
是否支持多插件true
是否支持异步false
兼容性说明

其他说明:无

参数

参数名称必选类型描述
listener(params: {}) => boolean

示例

sdk.login.pageInit.onIntercept((data)=>{
  console.log(data, 'onIntercept')
  return true
})

👉代码示例

目录结构

ecis-frontend-plugin-custom-frame/
├── src/
│   ├── components/
│   │   ├── welcome/
│   │   │   ├── index.tsx            //欢迎页
│   │   │   ├── index.module.less
│   ├── libs/
│   │   ├── i18n/
│   │   │   ├── locales/
│   │   │   │   ├── zh-CN.json  // 包含中文语言的翻译键值对
│   │   │   │   ├── zh-HK.json  // 包含繁体语言的翻译键值对
│   │   │   │   ├── en-US.json  // 包含英文语言的翻译键值对
│   ├── web/
│   │   ├── bootstrap.tsx   // 页面开发根节点组件路径
│   ├── plugin/
│   │   ├── index.tsx   // 插件功能具体实现

路由划分

src/web/bootstrap.tsx

import React from 'react';
import ReactDOM from 'react-dom';
import { HashRouter as Router, Route, Switch } from 'react-router-dom';

import Welcome from '../componetns/welcome/index';
import '../libs/i18n';
import './index.css';

// eslint-disable-next-line react/no-deprecated
ReactDOM.render(
  <Router>
    <Switch>
      <Route path={'/welcome'} exact={true} component={Welcome} />
    </Switch>
  </Router>,
  document.querySelector('#app')
);

欢迎页定制

src/components/welcome/index.tsx

📌 注意

  1. /c/cid/index.html/#/welcome 地址为插件独立页面地址
  2. 在欢迎页中通过cb获取登录地址,进行等待或其他逻辑后跳转回登录页
import React from 'react';
import { Button } from 'antd';
import sdk from '@libs/sdk';

import styles from './index.module.less';

const Welcome = () => {
  /**
   * 可在此基于客户提供诉求,进行定制实现
   * ......
   * 诉求完成后,跳转回登录页
   */

  const setStoreItem = () => {
    // 此处为示例,可依需求自行实现
    localStorage.setItem('LOGIN_WELCOME_INFO', JSON.stringify({ isJump: true }));
  };

  const redirectDamian = () => {
    const webpath = sdk.utils.env.webpath;
    window.location.replace(webpath);
  };

  const login = () => {
    try {
      const cb = new URL(window.location.href).searchParams.get('cb');
      if (cb) {
        // 跳转前,记录已经跳转过
        setStoreItem();
        return window.location.replace(cb);
      }
    } catch (error) {
      console.error('welcome page jump to login page error', error);
    }
    setStoreItem();
    return redirectDamian();
  };

  return (
    <div className={styles.welcome}>
      <h1>欢迎使用xxx(自定义欢迎语)</h1>
      <div>具体描述xxx</div>
      <div>
        <Button type="primary" onClick={() => login()}>
          去使用
        </Button>
      </div>
    </div>
  );
};

export default Welcome;

拦截登录页跳转到欢迎页

src/plugin/index.tsx

import sdk from '@libs/sdk';
import '../libs/i18n';

// 必须使用pnpm安装依赖
console.log('--- plugin start ---');

// 这里通过传参的方式把资源传进来
// 这里面直接写sdk.kdrive.aside会导致插件不可用
ecissdk.register(
  (data: any) => {
    console.log('ecis: index start');
    console.log('ecis: index end', data, sdk);
  },
  async () => {
    console.log('ecis async start');
    // 初始化登录页拦截
    sdk.login.pageInit.onIntercept((data: any) => {
      console.log(data, 'onIntercept');

      const gotoWelcomePage = () => {
        // cid根据实现前端组件id修改
        const webpath = sdk.utils.env.webpath;
        window.location.replace(webpath + 'c/cid/index.html?cb=' + encodeURIComponent(window.location.href));
      };

      const storeName = 'LOGIN_WELCOME_INFO';
      const localInfo = localStorage.getItem(storeName);
      if (!localInfo) {
        return gotoWelcomePage();
      }
      try {
        const info = JSON.parse(localInfo) as { isJump: boolean };
        if (!info?.isJump) {
          // 未跳转过,进行跳转
          return gotoWelcomePage();
        }
      } catch (error) {
        console.error('login page init jump to welcome page error', error);
      }
      // 跳转过,保证后续重新进入登录页时再次跳转,需要重置localStorage
      localStorage.removeItem(storeName);
    });
    return {
      login: await sdk.login,
    };
  }
);

console.log('--- plugin end ---');

👉效果截图

D3HQT4Y6ACQFK
欢迎页
GOVDL5Q6AAQAG
登录页拦截跳转到欢迎页

相关新闻

  • 文档中心定制功能多语言适配

    文档中心定制功能多语言适配

    满足企业的多语言需求,为文档中心的定制功能提供多语言适配方案。

    最佳实践 2025年12月11日
  • 企业团队/人员自定义属性标签

    企业团队/人员自定义属性标签

    根据企业需求,为人员或团队自定义属性标签,可根据属性标签决定WPS业务表现,如根据人员安全等级判断能否访问某文档 如何给企业团队/人员标记属性? 本定制方案仅适用于私有化WPS365版本 1. 方案概述 出于安全、效率的目的,有些企业需要给团队/人员标记属性: 文档中心里,可以在团队空间、通讯录的团队/人员名称这两个位置,标记属性。 我们可以通过文档中心服务端、Web端(PC端)的开放能力,为企业团队/人员标记属性: 效果 定制后,企业团队/人员名称旁会出现属性名称。红框为定制后的团队属性红框为…

    最佳实践 2025年12月11日
  • 登录密码页和访问到期页定制

    登录密码页和访问到期页定制

    针对设有密码的文件夹,企业可以定制密码登录页及访问到期页

    最佳实践 2025年12月11日
  • PDF转Word全流程解决方案

    PDF转Word全流程解决方案

    方案简介 基于WPS WebOffice开放平台的格式转换能力,构建企业级文档中台,实现标书协议、合同管理、档案等PDF文件的自动化转换、结构化处理与业务系统无缝集成。 WPS WebOffice格式转换服务:提供PDF→Word的精准转换能力。支持保留原PDF的字体、段落、表格、图片等元素,针对扫描件PDF,支持OCR识别,支持单次上传100+文件批量转换。 企业文档中台:作为转换服务的调度中心和数据枢纽,实现转换流程与现有业务系统的无缝对接。拥有操作日志审计,完整记录转换操作的人员、时间、文…

    最佳实践 2025年12月11日
  • 限制企业用户上传特定文件

    限制企业用户上传特定文件

    有些企业出于文档安全、带宽分配等原因,需要限制或全面杜绝文件上传。文档中心开放能力支持企业定制上传功能。 如何限制企业用户上传特定文件? 本定制方案仅适用于私有化WPS365版本 1. 方案概述 有些企业出于文档安全、带宽分配等原因,需要限制文件上传: 有些企业希望完全杜绝以上风险,全面禁止企业用户上传文件。 针对这两种情况,我们可以使用文档中心服务端、Web端(PC端)、H5端(移动端)的开放能力,定制上传功能: 实现方式&效果 方案一需禁止特定文件类型 通过修改文件上传接口的策略并进行校验,…

    最佳实践 2025年12月11日
  • 新增自定义侧边栏菜单

    新增自定义侧边栏菜单

    企业想把文档中心上定制的新功能放在文档中心上,可以将入口放在文档中心左侧Tab栏

    最佳实践 2025年12月11日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

立即咨询 企业版试用 上门服务

请您留言

感谢您的关注,你可留下联系方式,我们将第一时间与您联系。