Skip to content

plugin-cps-scheme

beta

CPS 平台 预案插件

样例

安装

bash
npm install @soonspacejs/plugin-cps-scheme
# or
yarn add @soonspacejs/plugin-cps-scheme

使用方法

前置条件

预案插件强依赖 CPS 场景加载插件,所以必须先注册 plugin-cps-soonmanager 插件及加载场景步骤。

js
import SoonSpace from 'soonspacejs';
import CpsSoonmanagerPlugin from '@soonspacejs/plugin-cps-soonmanager';
import CpsSchemePlugin from '@soonspacejs/plugin-cps-scheme';

const ssp = new SoonSpace({
  el: '#view',
  options: {},
  events: {},
});

const cpsSoonmanagerPlugin = ssp.registerPlugin(CpsSoonmanagerPlugin, 'cpsSoonmanagerPlugin');
cpsSoonmanagerPlugin.setPath('xxxx');
await cpsSoonmanagerPlugin.loadScene({
  // ...

  // 加载场景时必须开启流程数据加载,或通过手动方法执行
  loadFlowData: true
});

// 加载场景时 loadFlowData 未开启时,必须在预案执行前手动加载流程数据
await cpsSoonmanagerPlugin.loadFlowData()

const cpsSchemePlugin = ssp.registerPlugin(CpsSchemePlugin, 'cpsSchemePlugin');
await cpsSchemePlugin.init({
  el: '#platter',
  schemeId: '8SPBFEXLC850',
  dependentPlugins: {
    cpsSoonmanagerPlugin: cpsSoonmanagerPlugin,
  },
  placeholder: '占位符',
  // 执行回调(只有配置过数据才会触发)
  execCallback: (content, origin) => {
    console.log(content, origin);
  },
});

属性

cpsSoonmanagerPlugin

上游 CPS 插件

schemeData

预案数据

  • 默认值: null
  • 类型: ISchemeData[] | null

定义

ts
interface ISchemeNode {
  id: string;
  btnId: string;
  enable: boolean;
  name?: string;
  content?: string;
  contentPath?: string;
  flow?: { flowId: string };
}

interface ISchemeData {
  id: string;
  name: string;
  nodes: Record<string, ISchemeNode>;
}

platterDomElement

预案八卦盘 dom 元素

  • 默认值: null
  • 类型: SVGElement | null

autoRunFlow

v2.10.x

点击八卦盘按钮时自动执行流程

用法
js
cpsSchemePlugin.autoRunFlow = false;
  • 默认值: true
  • 类型: boolean

提示

设置为 false 后,你可以手动调用执行流程的方法 runFlowById

方法

init

初始化预案八卦盘

定义

ts
import CpsSoonmanagerPlugin from '@soonspacejs/plugin-cps-soonmanager';

type TInitOptions = {
  el: string;
  schemeId: string;
  // 上游依赖插件
  dependentPlugins: {
    cpsSoonmanagerPlugin: CpsSoonmanagerPlugin;
  };
  placeholder?: string;
  /**
   * 执行回调(节点点击)
   */
  execCallback?: (content: string, originData: ISchemeNode) => void;
};

function init(options: TInitOptions): Promise<void>;

用法

js
await cpsSchemePlugin.init({
  el: '#platter',
  schemeId: '8SPBFEXLC850',
  dependentPlugins: {
    cpsSoonmanagerPlugin: cpsSoonmanagerPlugin,
  },
  placeholder: '占位符',
  // 执行回调(只有配置过数据才会触发)
  execCallback: (content, origin) => {
    console.log(content, origin);
  },
});

参数

options
  • 描述: 场景加载选项
  • 必填:
  • 类型: TInitOptions
TInitOptions
属性描述类型必填默认值
el装载八卦盘的元素选择器string
schemeId预案 idstring
dependentPlugins上游依赖插件object
dependentPlugins.cpsSoonmanagerPluginCPS 平台导出场景加载插件实例CpsSoonmanagerPlugin
placeholder未配置的预案按钮占位符string你好,世界
execCallback按钮点击回调TInitOptions[execCallback]

setBtnReady

设置八卦盘按钮就绪状态

定义

ts
function setBtnReady(btnId: string, ready?: boolean): void;

用法

js
cpsSchemePlugin.setBtnReady('bn_p4_s1_9', true);

setBtnHover

设置八卦盘按钮 Hover 状态

定义

ts
function setBtnHover(btnId: string, hover?: boolean): void;

用法

js
cpsSchemePlugin.setBtnHover('bn_p4_s1_9', true);

dispose

清除预案八卦盘以及数据

用法

js
cpsSchemePlugin.dispose();

提示

必须调用 dispose() 才能再次调用 init()

fetchSchemeData

根据当前 cpsSoonmanagerPlugin.path 获取预案数据

init 方法会调用此方法

定义

ts
function fetchSchemeData(): Promise<ISchemeData[]>;

用法

ts
cpsSoonmanagerPlugin.fetchSchemeData().then((ISchemeData) => {
  console.log(ISchemeData);
});

浙ICP备16043491号