0.0.4 • Published 3 years ago

guide-modal v0.0.4

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

guide-modal

Usage

门户场景

引入js后,会在window下挂载GuideModal对象,使用方法:

GuideModal.showPortal({
  userGuid,
  serviceHost,
  appCode,
  style,
  contentMaxHeight,
  callback,
  onCloseButtonClick,
  showAfterLoading,
  hideIfNoData,
  onShow,
});

方法签名如下:

/**
 * @param{string} userGuid: 用户id
 * @param{string} serviceHost: 服务地址,结尾不要带'/'
 * @param{string} appCode: 应用id
 * @param{number} contentMaxHeight: 弹窗内容区域最大高度,单位为px,默认232, 超出显示滚动条 
 * @param{object} style: 指定弹窗宽度和位置, 具体值参考下方定义
 * @param{boolean} showAfterLoading: 是否加载完数据再显示弹窗,默认为false。当hideIfNoData为true时,此配置会被忽略,弹窗会在加载完数据之后根据是否有数据再决定是否显示。
 * @param{boolean} hideIfNoData: 如果没有数据,不展示弹窗, 默认false
 * @param{function} urlCallback: 点击url的回调, done参数接收一个boolean值,传true时隐藏弹窗,可不传。
 * @param{function} onShow: 弹窗动画完成回调函数。
 * @param{function} onCloseButtonClick: 点击左上角关闭迎铵钮的回调, 调用hideModal隐藏弹窗,可不传,不传时默认关闭弹窗。
 * @return{function} 返回一个函数,调用此函数关闭弹窗。需要在弹窗显示动画完成之后才能调用, 例如在onShow方法中可以调用这个函数。
 */
interface GuidePortalConfig {
  userGuid: string;
  serviceHost: string;
  appCode: string;
  contentMaxHeight?: number;
  style: {
    top?: number | string;
    left?: number | string;
    right?: number | string;
    bottom?: number | string;
    width?: number | string; // 默认362
    'z-index'?: number; // 默认1000
  };
  showAfterLoading?: boolean;
  hideIfNoData?: boolean;
  callback?(url: string, e: MouseEvent, done: (closeModal: boolean) => void): void;
  onCloseButtonClick?(hideModal: () => void): void;
  onShow?: () => void;
}

interface GuideModalType {
  showPortal: (config: GuidePortalConfig) => () => void;
}

declare var GuideModal: GuideModalType;

表单场景

引入js后,会在window下挂载GuideModal对象,使用方法:

GuideModal.showModal({
  operate,
  dataStr,
  userGuid,
  serviceHost,
  appCode,
  buttonCode,
  contentMaxHeight,
  showAfterLoading,
  hideIfNoData,
  callback,
  onCloseButtonClick,
  onShow,
});

方法签名如下:

/**
 * @param{number} operate: 0(只记录日志,不显示弹窗!), 1(只记录日志,显示弹窗)
 * @param{string} dataStr: 记录用户数据
 * @param{string} userGuid: 用户id
 * @param{string} appCode: 应用id
 * @param{string} buttonCode: 按钮id
 * @param{string} serviceHost: 服务地址,结尾不要带'/'
 * @param{function} urlCallback: 点击url的回调, done参数接收一个boolean值,传true时隐藏弹窗, 可不传
 * @param{function} onCloseButtonClick: 点击左上角关闭迎铵钮的回调, 调用hideModal隐藏弹窗,可不传,不传时默认关闭弹窗。
 * @param{number} contentMaxHeight: 弹窗内容区域最大高度,单位为px,默认100, 超出显示滚动条 
 * @param{boolean} showAfterLoading: 是否加载完数据再显示弹窗,默认为false。当hideIfNoData为true时,此配置会被忽略,弹窗会在加载完数据之后根据是否有数据再决定是否显示。
 * @param{boolean} hideIfNoData: 如果没有数据,不展示弹窗, 默认false
 * @param{function} onShow: 弹窗动画完成回调函数。
 * @return{function | undefined} 只在operate为1时返回一个函数,调用此函数关闭弹窗。需要在弹窗显示动画完成之后才能调用, 例如在onShow方法中可以调用这个函数。
 */
interface GuideModalConfig {
  operate: number;
  dataStr: string;
  userGuid: string;
  serviceHost: string;
  appCode: string;
  buttonCode: string;
  contentMaxHeight? number;
  showAfterLoading?: boolean;
  hideIfNoData?: boolean;
  callback?(url: string, e: MouseEvent, done: (closeModal: boolean) => void): void;
  onCloseButtonClick?(hideModal: () => void): void;
  onShow?: () => void;
}

interface GuideModalType {
  showModal: (config: GuideModalConfig) => () => void;
}

declare var GuideModal: GuideModalType;

为下一个用户生成一条信息

引入js后,会在window下挂载GuideModal对象,使用方法:

GuideModal.notifyNext({
  userGuid,
  serviceHost,
  appCode,
  code,
});

方法签名如下:

/**
 * @param{string} userGuid: 通知的用户id
 * @param{string} appCode: 应用id
 * @param{string} code: 业务code
 * @param{string} serviceHost: 服务地址,结尾不要带'/'
 * @param{boolean} sync: ajax请求是否是同步请求。如果因业务需要,调完此接口之后页面发生跳转,需要设置此项为true防止页面跳转后ajax请求被取消,默认为false
 * @return{undefined} 
 */
interface GuideNotifyConfig {
  userGuid: string;
  serviceHost: string;
  appCode: string;
  code: string;
  sync?: boolean;
}

interface GuideModalType {
  notifyNext: (config: GuideNotifyConfig) => () => void;
}

declare var GuideModal: GuideModalType;

为多个用户生成信息

引入js后,会在window下挂载GuideModal对象,使用方法:

GuideModal.notifyAll({
  serviceHost,
  appCode,
  statusList,
  sync?: boolean;
});

方法签名如下:

/**
 * @param{Array<{userGuid: string, code: string}> statusList:  userGuid: 通知的用户id, code: 业务code
 * @param{string} appCode: 应用id
 * @param{string} serviceHost: 服务地址,结尾不要带'/'
 * @param{boolean} sync: ajax请求是否是同步请求。如果因业务需要,调完此接口之后页面发生跳转,需要设置此项为true防止页面跳转后ajax请求被取消,默认为false
 * @return{undefined} 
 **/
interface GuideNotifyAllConfig {
  statusList: Array<{userGuid: string, code: string}>;
  serviceHost: string;
  appCode: string;
  sync?: boolean;
}

interface GuideModalType {
  notifyAll: (config: GuideNotifyAllConfig) => () => void;
}

declare var GuideModal: GuideModalType;

changelog

  • v0.0.0: 弹窗新增最大高度设置,超出显示滚动条; 添加通知多个接口;
  • v0.0.1: portal弹窗富文本内段落不显示分割线; 弹窗配置添加hideIfNoData, showAfterLoading及onShow配置;
  • v0.0.2: 公共服务路径修改
  • v0.0.3: npm 发布
0.0.4

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago