0.1.2 • Published 1 year ago
@gaoding/ska-sdk v0.1.2
@gaoding/ska-sdk
稿定设计 SKA 客户对接 SDK。
安装
npm install @gaoding/ska-sdk
或
yarn add @gaoding/ska-sdk
用法
import { createSDK, PageEventTypes } from '@gaoding/ska-sdk';
const gdSDK = createSDK({
// 指定容器,若为空则以弹窗的方式打开
container: '#container',
// ...
});
// 打开编辑器页
const handleOpenEditor = (query)=> {
gdSDK.open({
// 页面域名
origin: 'https://xxx',
// 页面路径
path: '/editor/path',
// 页面参数
query,
// 事件映射
eventMap: {
[PageEventTypes.EDITOR_SAVE]: async () => {
console.log(info);
// 直接关闭编辑器
gdSDK.close();
// 如果是新增操作,拿到workId,保存到数据库
// 其他操作
},
[PageEventTypes.EDITOR_DOWNLOAD]: async () => {
// 编辑器触发下载的回调函数
// 处理完业务逻辑后,关闭页面
gdSDK.close();
}
}
})
}
// 打开模板中心页
const handleOpenTemplateList = ()=> {
gdSDK.open({
// 页面域名
origin: 'https://xxx',
// 页面路径
path: '/xxx/xxx',
// 页面参数
query: {
code: 'xxx',
page: 'xxx',
},
// 事件映射
eventMap: {
[PageEventTypes.TEMPLATE_SELECT]: async (templet) => {
// 选择模板后的回调
handleOpenEditor({
id: templet.id,
// ...其他参数
})
},
}
})
}
//或者也可以通过事件监听操作回调
gdSDK.on(PageEventTypes.TEMPLATE_SELECT, (templet) => {
console.log(templet);
// 选择模板后的回调
handleOpenEditor({
id: templet.id,
// ...其他参数
})
});
API
createSDK Config
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
debug | boolean | false | 打印 log |
container | string \| HTMLElement | null | 指定容器,若为空则以弹窗的方式打开 |
iframeProps | IframeProps | null | 自定义覆盖 iframe 的样式及类名 |
modalProps | IframeModalProps | null | 自定义覆盖 modal 弹窗的样式 |
onCloseModal | (...args: any[]) => Promise<void \| boolean> \| void \| boolean | null | 以弹窗形式打开时,点击关闭按钮时触发关闭弹窗操作,但如果函数返回 false 则会终止关闭弹窗(该方法可用于防止用户误操作关闭) |
类型
interface IframeProps {
// iframe 样式
css?: Object | string;
// iframe 类名
className?: string;
}
interface IframeModalProps {
// 整个弹窗最外层元素的样式
wrapperStyle?: string;
// 关闭按钮外层元素的样式
btnStyle?: string;
// 弹窗的类名
modalClass?: string;
// 弹窗的样式
modalStyle?: string;
// 遮罩层的样式
maskStyle?: string;
// 关闭按钮
btnIcon?: HTMLElement;
}
createSDK 返回值
参数 | 类型 | 说明 |
---|---|---|
open | (options: PageOptions) => void | 打开具体页面的方法 |
emit | (type: string, payload?: any) => void \| Promise<any> | 触发页面事件的方法,可异步获取返回值 |
on | (type: string, handler: Function) => void | 监听页面内事件的方法 |
once | (type: string, handler: Function) => void | 监听页面内事件的方法,仅触发一次 |
off | (type: string, handler: Function) => void | 取消监听事件的方法 |
close | (triggerOnCloseModal?: boolean, ...args: any[])=> void | 关闭页面的方法。在弹窗模式下,传入 triggerOnCloseModal 为 true,可触发 onCloseModal 判断逻辑 |
类型
interface PageOptions {
/**
* 页面域名
*/
origin?: string;
/**
* 页面路径
*/
path: string;
/**
* 页面参数
*/
query?: Record<string, any>;
/**
* 事件映射
*/
eventMap?: Record<string, any> | null;
}
0.1.2
1 year ago
0.1.1
1 year ago
0.1.1-beta.1
1 year ago
0.1.1-beta.0
2 years ago
0.1.0
2 years ago
0.1.0-beta.3
2 years ago
0.1.0-beta.2
2 years ago
0.1.0-beta.4
2 years ago
0.1.0-beta.1
2 years ago
0.1.0-beta.0
2 years ago
0.1.0-alpha.19
2 years ago
0.1.0-alpha.18
2 years ago
0.1.0-alpha.17
2 years ago
0.1.0-alpha.16
2 years ago
0.1.0-alpha.15
2 years ago
0.1.0-alpha.14
2 years ago
0.1.0-alpha.13
2 years ago
0.1.0-alpha.12
2 years ago
0.1.0-alpha.11
2 years ago
0.1.0-alpha.10
2 years ago
0.1.0-alpha.9
2 years ago
0.1.0-alpha.8
2 years ago
0.1.0-alpha.7
2 years ago
0.1.0-alpha.6
2 years ago
0.1.0-alpha.5
2 years ago
0.1.0-alpha.4
2 years ago
0.1.0-alpha.3
2 years ago
0.1.0-alpha.2
2 years ago
0.1.0-alpha.1
2 years ago
0.1.0-alpha.0
2 years ago