@hzab/utils
v1.1.11
Published
utils
Readme
@hzab/utils
组件模板
- Node.js ≥ 24
安装
pnpm add @hzab/utils本包同时发布到公共 npm(registry.npmjs.org,public access)与企业私有源(ld / old)。
默认源可直接安装,无需额外配置;若团队要求走内网源,见消费方接入指南。
消费方需自备 peerDependencies:@hzab/data-model、axios、react、react-dom(本包不会随包安装)。
引入方式见下方「组件」章节。
发布形态:本包在本仓以源码直出方式发布——
main指向src,由消费方打包器编译 TypeScript 与.less样式;@hzab/utils/src/*深路径同样可直接引用。随包发布的dist/仅用于 类型解析(types→dist/index.d.ts),不是运行时入口。
组件
ossUpload 示例
import OssUpload from "@hzab/utils/src/ossUpload";
/**
* 批量文件上传
* @param {Array} files
* @param {Object} opt
* @returns
*/
export async function handleOssUpload(files, opt) {
const _files = files;
const { ossUrl, signatureParams, ossParams, axiosConf, useHashName } = opt || {};
const ossUpload = new OssUpload({
axios: opt.axios,
axiosConf: axiosConf,
serverUrl: ossUrl || "/api/v1/common/oss/getWebOssConfig",
});
const promise = [];
_files?.forEach((file) => {
if (!file) {
return;
}
// 数据已经是 url 的情况
if (typeof file === "string" || file.ossUrl || file.url) {
promise.push(Promise.resolve(file));
} else {
promise.push(
ossUpload
.upload(file, {
signatureParams: {
isPublic: 1,
...(signatureParams || {}),
},
ossParams,
axiosConf,
useHashName,
})
.then((res) => {
return Promise.resolve(res?.data?.data?.fileUrl);
}),
);
}
});
return Promise.all(promise).then((filePromises) => {
filePromises?.forEach((fileUrl, idx) => {
if (typeof fileUrl === "string") {
_files[idx].ossUrl = fileUrl;
_files[idx].url = fileUrl;
} else if (_files[idx].url) {
_files[idx].ossUrl = _files[idx].url;
}
});
return Promise.resolve(_files);
});
}API
InfoPanel Attributes
| 参数 | 类型 | 必填 | 默认值 | 说明 | | ------ | ------ | ---- | ------ | ----------------- | | schema | Object | 是 | - | 数据信息的 schema |
