# 扩展全局函数

平台内置了一些全局JS对象,包括request、 utils等。 在表达式窗口可以这样使用: utils.lodashutils.configutils.dayjs 。这些常用的JS函数对象用于辅助页面开发。当这些内置的功能函数不满足的情况下,我们需要扩展自定义的JS函数。例如,要进行字符串加密,会用到 crypyo-js ,接下来演示如何将里面的加密方法暴露出来,使得在表达式里面可以使用。

# 扩展全局函数

  1. ui/module/plugins/index.ts 中实现插件,编写内容如下,应根据实际情况自行修改:
import {
  LcdpRendererPlugin,
  LcdpRendererPluginContext,
  LcdpRendererPluginRegistry
} from '@fly-vue/lcdp-engine'
import sha256 from 'crypto-js/sha256'

// 定义插件 cryptoPlugin
const _plugin: LcdpRendererPlugin = {
  id: 'cryptoPlugin',
  install(context: LcdpRendererPluginContext) {
    // 注册 crypto加密函数
    context.pageContextRegistry.register('crypto', {
        sha256: (message) => {
            return sha256(message)
        }
    })
  }
}

export async function registerPlugins() {
  await LcdpRendererPluginRegistry.register(_plugin)
}

2.代码编写完成后,需要在 ui 目录下执行下面两个命令:

npm run pack

npm run copyModule

3.最后重启后台服务,就可以在表达式中使用刚才扩展的函数了。

顶部