通用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)
- 租户级为queryFileListOrg(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 },
});
}
},