Skip to content

团队应用

提供团队版插件相关的接口,用来获取团队版管理配置的信息。

TIP

团队应用 API 需要配合团队管理后台使用,请在团队后台创建对应应用后可以使用。(暂未开放第三方应用)

utools.team.info()

获取当前团队信息

类型定义

ts
function info(): TeamInfo;
TeamInfo 类型定义
ts
interface TeamInfo {
  teamId: string;
  teamName: string;
  teamLogo: string;
  userId: string;
  userName: string;
  userAvatar: string;
}

字段说明

  • teamId

    团队 ID,创建团队时生成

  • teamName

    团队名称,创建团队时填写

  • teamLogo

    团队图标,返回图片的网络地址

  • userId

    团队成员 ID,加入团队时生成

  • userName

    团队成员名字,加入团队时填写

  • userAvatar

    团队成员头像

示例代码

ts
const { teamName } = utools.team.info();

console.log(`当前团队为:${teamName}`);

utools.team.preset(key)

获取对应的团队配置,获取的配置需要在团队版,返回的数据为一个 JSON 对象

类型定义

ts
function preset<T>(key: string): T | null;

示例代码

ts
utools.onPluginEnter(() => {
  // 每次启动插件,读取远端配置
  const config = utools.team.preset<{
    fontSize: number;
  }>("config");

  // 应用到本地插件
  document.body.style.fontSize = `${config?.fontSize ?? 13}px`;
});

特殊用法

当在团队插件后台管理中,使用 SDK 的 setPreset API 设置了 feature: 开头的 key,并将配置对象设置为 Feature 类型, uTools 将会自动处理为特殊关键字,将在插件被安装或启动时自动注册为功能关键字。

ts
// 管理后台配置写入
SDK.setPreset(
  'feature:team_hello',
  {
    code: 'team_hello',
    explain: 'hello world',
    cmds: ['hello', '测试'],
    icon: 'base64xxxxx'
    extend: '扩展的其他字段'
  }
)

访问这部分 preset 时,一般需要配合 onPluginEnter 使用。

ts
utools.onPluginEnter((enter) => {
  // enter.code 为 'team_hello'
  const feature = utools.team.preset(`feature:${enter.code}`);

  // 处理feature对应的数据
});

utools.team.allPresets([ids])

获取当前团队下发的所有配置,支持接收一个 key 或者 keys 来查询特定前缀的配置列表,类似于 utools.db.allDocs

类型定义

ts
function allPresets(): Promise<{ key: string; value: any }[]>;
function allPresets(ids: string[]): Promise<{ key: string; value: any }[]>;
function allPresets(
  dataStartsWith: string
): Promise<{ key: string; value: any }[]>;

示例代码

ts
utools.onPluginEnter(() => {
  utools.team.allPresets().then((presets) => {
    // 处理这些presets
  });
});