You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.0 KiB
53 lines
1.0 KiB
import Taro from '@tarojs/taro'
|
|
|
|
/** 文件基本信息 */
|
|
interface CloudFile {
|
|
id: number;
|
|
objectId: number;
|
|
directoryId: number;
|
|
appId: number;
|
|
name: string;
|
|
object: CloudObject;
|
|
createdBy: number;
|
|
createdAt: string;
|
|
updatedAt: string;
|
|
}
|
|
|
|
/** 文件对象信息 */
|
|
interface CloudObject {
|
|
id: number;
|
|
hash: string;
|
|
size: number;
|
|
path: string;
|
|
thumb: string;
|
|
mime: string;
|
|
width: number;
|
|
height: number;
|
|
duration: number;
|
|
createdAt: string;
|
|
updatedAt: string;
|
|
}
|
|
|
|
const files: Record<number, CloudFile> = Object.create(null)
|
|
|
|
export function getWfsInfo(id: number):Promise<CloudFile>{
|
|
if (Reflect.has(files, id)) {
|
|
return Promise.resolve(files[id])
|
|
}
|
|
return new Promise((resolve, reject) => {
|
|
Taro.request({
|
|
url: `https://wfs.yaojiankang.top/files/${id}`,
|
|
success(res) {
|
|
if (res.data.ok) {
|
|
files[id] = res.data.data
|
|
resolve(res.data.data)
|
|
} else {
|
|
reject(res.data.msg)
|
|
}
|
|
},
|
|
fail(err) {
|
|
reject(err.errMsg)
|
|
}
|
|
})
|
|
})
|
|
}
|
|
|