• 通用Services


    公共的可用接口,一般在 models 中使用,下面的示例默认都是在models中使用。

    1. 值集相关

    queryIdpValue(lovCode)

    查询独立值集

    如果只有一个且是独立值集推荐这个,效率高和速度快

    参数

    [lovCode](string) :值集编码

    返回

    (array): 返回值集数组: [{ value: xxx, meaning: xxx } ...]

    示例

      *init(_, { call, put }) {
        const statusList = getResponse(yield call(queryIdpValue, 'HAGD.SAGA_INSTANCE.STATUS'));
        ...
      },
    

    queryUnifyIdpValue(lovCode, params = {})

    统一查询独立、SQL、URL类型的值集

    参数

    [lovCode](string) :值集编码

    [params](object) :额外的查询条件

    返回

    (array): 返回值集数组: [{ value: xxx, meaning: xxx } ...]

    示例

      *init(_, { call, put }) {
        const statusList = getResponse(yield call(queryUnifyIdpValue, 'HAGD.SAGA_INSTANCE.STATUS'));
        ...
      },
    

    queryMapIdpValue(params)

    批量查询值集,如果有多个值集需要同时获取,推荐使用

    参数

    [params](object) :查询的值集对象, { code1: xxx, code2: xxx }

    返回

    (array): 返回值集数组: [code1: { value: xxx, meaning: xxx }, code2: { value: xxx, meaning: xxx } ]

    示例

      *init(_, { call, put }) {
        const result = getResponse(
          yield call(queryMapIdpValue, {
            errorTypes: 'HDTT.EVENT_ERR_TYPE',
            eventTypes: 'HDTT.EVENT_TYPE',
          })
        );
        ...
      },
    

    queryLov(params)

    查询 LOV 配置

    参数

    [params](Object) : 查询的参数对象

    返回

    Promise<*>

    示例

      queryLov({ viewCode, tenantId }).then(() => {
        ...
      });
    

    queryLovData(url, params)

    查询 LOV 数据

    参数

    [url](String) : URL

    [params](params) :查询的参数对象

    返回

    Promise<*>

    示例

      queryLovData(url, params).then(() => {
        ...
      });
    

    2. 文件相关

    queryFileList(params)

    获取文件列表

    参数

    [params](object) :查询的值集对象, { code1: xxx, code2: xxx }

    返回

    (array): 文件列表数据

    示例

      *queryFileList({ payload }, { call, put }) {
        const res = yield call(queryFileList, { ...params });
        ...
      },
    

    removeFileList(params)

    删除单个文件

    参数

    [params](object) :查询参数对象

    返回

    (object): 返回被删除的数据对象

    示例

      *removeFile({ payload }, { call }) {
        const res = yield call(removeFileList, payload);
        return getResponse(res);
      },
    

    queryUUID(params)

    查询租户下的uuid

    参数

    [params](object) :查询参数对象

    返回

    (string): 返回当前租户uuid

    示例

      *fetchUuid(_, { call }) {
        const organizationId = getCurrentOrganizationId();
        const res = yield call(queryUUID, { tenantId: organizationId });
        return getResponse(res);
      },
    

    downloadFile(params)

    在当前页面下载文件

    参数

    [params](object) :查询参数对象

    [params.requestUrl](object) 下载文件请求的url

    [params.queryParams](object) 下载文件请求的查询参数,参数格式为:[{ name: ‘’, value: '' }]]

    返回

    示例

      @Bind()
      exportOption() {
        const {
          match: { params },
        } = this.props;
        const organizationId = getCurrentOrganizationId();
        const { prefixPatch } = this.state;
        const api = `${API_HOST}${prefixPatch}/v1/${organizationId}/import/template/${params.code}/excel`;
        downloadFile({ requestUrl: api, queryParams: [{ name: 'type', value: 'bpmn20' }] });
      }
    

    removeFile(params)

    删除attachMentUUID对应的某一个文件

    参数

    [params.tenantId](Number) : tenantId 租户Id

    [params.bucketName](String) : bucketName 桶名

    [params.attachmentUUID](String) : attachmentUUID 文件uuid

    [params.urls](String) : urls 要删除的文件

    返回

    Promise<*>

    示例

      removeFile({
        tenantId,
        bucketName,
        attachmentUUID: attachmentUUID || stateAttachmentUUID,
        urls: [fileUrl],
      }).then(() = > {
        ...
      });
    

    3. 权限相关

    checkPermission(params)

    根据权限编码进行鉴权

    参数

    [params](string[]) :权限编码数组

    返回

    [params](string[]) :权限编码数组

    示例

      checkPermission(['hmsg.notices.list.table.publishedByUser'])
    

    4. 菜单相关

    queryMenu(query = {})

    查询菜单: 现在的菜单会包含多语言

    参数

    [query](object) : 查询参数对象

    返回

    (array): 菜单列表数据

    示例

      const menuListReq = call(queryMenu, { lang: language });
    

    queryUiTables(query = {})

    查询动态表格

    参数

    [query](Object) : 查询参数对象

    示例

      const uiTableRes = yield call(queryUiTables);
      const uiTable = getResponse(uiTableRes);
    

    5. 国际化相关

    queryPromptLocale(organizationId, language, promptKey)

    查询平台多语言国际化

    参数

    [organizationId](Number) :organizationId 当前租户Id

    [language](String) :language 语言

    [promptKey](String) :promptKey 这里只用到了 hzero.common

    返回

    (array): 多语言列表数据

    示例

    const promiseAllLocale = [call(queryPromptLocale, organizationId, language, 'hzero.common')];
    

    getFileIntl(loadFileIntl = () => {}, language, promptKey)

    获取UI库的多语言

    如果传了 language 和 promptKey, 那么使用传递的 多语言来覆盖 ui库多语言

    参数

    [loadFileIntl](function()) : loadFileIntl 获取文件多语言的方法 () => Promise

    [language](String) : language 语言

    [promptKey](String) :promptKey 多语言编码前缀

    返回

    Promise<*>

    示例

    getFileIntl(
        () => import(`choerodon-ui/pro/lib/locale-context/${language.replace('-', '_')}.js`),
        language,
        'hzero.hzeroUI'
      );
    

    getHzeroUILocale

    获取 antd 的国际化

    参数

    [language](String) : language 语言

    返回

    (array) 国际化列表数据

    示例

    const promiseAllLocale = [call(getHzeroUILocale, language)];

    updateDefaultLanguage(params)

    变更用户的默认语言选项

    参数

    [params.languageCode](String) : languageCode 语言编码

    返回

    Promise<*>

    示例

      let result = yield call(updateDefaultLanguage, { language });
      result = getResponse(result);
    

    queryStaticText(textCode, lang = getCurrentLanguage())

    查询静态文本数据 不会报 400 异常 异常全是 200, 需要自己处理异常(自己调用getResponse)

    参数

    [textCode](String) : textCode 静态文本编码

    [lang](String) : lang 默认为系统当前语言

    6. 站内消息相关

    queryNotices(params)

    查询未读的站内消息

    参数

    [params](Object) : 查询参数对象

    示例

      *fetchNotices({ payload }, { call, put }) {
        const data = yield call(queryNotices, payload);
        yield put({
          type: 'saveNotices',
          payload: { notices: data },
        });
      },
    

    queryCount()

    查询站内消息条数

    示例

    *fetchCount(_, { call, put }) {
      const data = yield call(queryCount);
      if (data && isNumber(data.unreadMessageCount)) {
        const { unreadMessageCount } = data;
        yield put({
          type: 'saveNotices',
          payload: { count: unreadMessageCount },
        });
      }
    },
    

    持续更新中…