@freelog/tools-lib 0.1.189 → 0.1.190
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/tools-lib.cjs.development.js +28 -14
- package/dist/tools-lib.cjs.development.js.map +1 -1
- package/dist/tools-lib.cjs.production.min.js +1 -1
- package/dist/tools-lib.cjs.production.min.js.map +1 -1
- package/dist/tools-lib.esm.js +28 -14
- package/dist/tools-lib.esm.js.map +1 -1
- package/dist/utils/linkTo.d.ts +8 -0
- package/package.json +1 -1
- package/src/service-API/payment.ts +1 -1
- package/src/utils/linkTo.ts +18 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools-lib.cjs.production.min.js","sources":["../src/utils/format.ts","../src/utils/regexp.ts","../src/utils/linkTo.ts","../src/utils/predefined.ts","../src/service-API/storages.ts","../src/utils/tools.ts","../src/service-API/recombinations/index.ts","../src/service-API/index.ts","../src/service-API/nodes.ts","../src/service-API/presentables.ts","../src/service-API/collections.ts","../src/service-API/resources.ts","../src/service-API/user.ts","../src/service-API/informalNodes.ts","../src/service-API/contracts.ts","../src/service-API/transactions.ts","../src/service-API/captcha.ts","../src/service-API/events.ts","../src/service-API/activities.ts","../src/service-API/testQualifications.ts","../src/service-API/statistics.ts","../src/service-API/i18n.ts","../src/service-API/policies.ts","../src/service-API/operation.ts","../src/service-API/resourceType.ts","../src/service-API/payment.ts","../src/utils/axios.ts","../src/utils/index.ts","../src/utils/hooks.ts","../src/i18n/I18nNext.ts","../src/i18n/index.ts"],"sourcesContent":["import moment from 'moment';\r\n// import {report} from '@freelog/resource-policy-lang/dist';\r\n// import {ContractEntity} from '@freelog/resource-policy-lang/dist/tools/ContractTool';\r\n\r\n// const {compile} = require('@freelog/resource-policy-lang');\r\n\r\n/**\r\n * 将对应的字节数,转换为易读单位数量\r\n * @param bytes\r\n * @return {string}\r\n */\r\nexport function humanizeSize(bytes: number): string {\r\n // console.log('dddhumanizeSizesdfsd');\r\n if (bytes <= 0) {\r\n return '0 B';\r\n }\r\n const unitArr = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\r\n const index = Math.floor(Math.log(bytes) / Math.log(1024));\r\n const size = Math.round((bytes / Math.pow(1024, index)) * 100) / 100; //保留的小数位数\r\n return size + ' ' + unitArr[index];\r\n}\r\n\r\n/**\r\n * 格式化日期时间\r\n */\r\nexport function formatDateTime(date: string, showTime: boolean = false) {\r\n return moment(date).format('YYYY/MM/DD' + (showTime ? ' HH:mm' : ''));\r\n}\r\n\r\n/**\r\n * 根据传入的子域名拼合成完整的适合的url\r\n * @param domain 要组合的三级域名\r\n */\r\nexport function completeUrlByDomain(domain: string): string {\r\n let origin: string = `https://${domain}.testfreelog.com`;\r\n\r\n if (window.location.origin.includes('.freelog.com')) {\r\n origin = `https://${domain}.freelog.com`;\r\n }\r\n\r\n return origin;\r\n}\r\n\r\n/**\r\n * 根据策略代码和标的物类型,生成对应的翻译\r\n * @param code 策略代码\r\n * @param targetType 标的物类型\r\n */\r\n// export async function policyCodeTranslationToText(code: string, targetType: string): Promise<{\r\n// error: string[] | null;\r\n// text?: string;\r\n// }> {\r\n// try {\r\n// const result = await compile(\r\n// code,\r\n// targetType,\r\n// completeUrlByDomain('qi'),\r\n// window.location.origin.endsWith('.freelog.com') ? 'prod' : 'dev',\r\n// );\r\n// const contract: ContractEntity = {\r\n// audiences: result.state_machine.audiences,\r\n// fsmStates: Object.entries<any>(result.state_machine.states)\r\n// .map((st) => {\r\n// return {\r\n// name: st[0],\r\n// serviceStates: st[1].serviceStates,\r\n// events: st[1].transitions.map((ts: any) => {\r\n//\r\n// return {\r\n// id: ts.code,\r\n// name: ts.name,\r\n// args: ts.args,\r\n// state: ts.toState,\r\n// };\r\n// }),\r\n// };\r\n// }),\r\n// };\r\n// const rrr = report(contract);\r\n// return {\r\n// error: null,\r\n// text: rrr.audienceInfos[0].content + rrr.content,\r\n// };\r\n// } catch (err) {\r\n// return {\r\n// error: [err.message],\r\n// };\r\n// }\r\n// }\r\n\r\n\r\n/**\r\n * 将资源类型关键字数组,转换成标准展示文字\r\n * @param arr 关键字数组\r\n */\r\nexport function resourceTypeKeyArrToResourceType(arr: string[]): string {\r\n return arr.join(' / ');\r\n}\r\n","// 展品名称\r\nexport const EXHIBIT_NAME: RegExp = new RegExp(/^(?!.*(\\\\|\\/|:|\\*|\\?|\"|<|>|\\||\\s|@|\\$|#)).{1,60}$/);\r\n\r\n// 资源名称\r\nexport const RESOURCE_NAME: RegExp = new RegExp(/^(?!.*(\\\\|\\/|:|\\*|\\?|\"|<|>|\\||\\s|@|\\$|#)).{1,60}$/);\r\n\r\n// 资源类型\r\nexport const RESOURCE_TYPE: RegExp = new RegExp('^[\\u4e00-\\u9fefa-zA-Z0-9\\\\-&.,]{1,40}$');\r\n\r\n// 自定义属性键\r\n// export const CUSTOM_KEY: RegExp = new RegExp(/^[a-zA-Z_]([a-zA-Z0-9_]{1,19})?$/);\r\nexport const CUSTOM_KEY: RegExp = new RegExp('^[a-zA-Z]([a-zA-Z0-9_]{1,29})?$');\r\n\r\n// 节点名称\r\nexport const NODE_NAME: RegExp = new RegExp(/^[\\u4E00-\\u9FA5|a-zA-Z0-9]{2,24}$/);\r\n\r\n// 节点地址\r\n// export const NODE_DOMAIN: RegExp = new RegExp(/^(?!-)[a-z0-9-]{4,24}(?<!-)$/);\r\nexport const NODE_DOMAIN: RegExp = new RegExp(/^[a-z0-9][a-z0-9-]{2,22}[a-z0-9]$/);\r\n\r\n// 支付密码\r\nexport const PAY_PASSWORD: RegExp = new RegExp(/^\\d{6}$/);\r\n\r\n// 手机号码\r\nexport const MOBILE_PHONE_NUMBER = new RegExp(/^1[345789]\\d{9}$/);\r\n// export const TELEPHONE_NUMBER = /^((13[0-9])|(14[5-9])|(15([0-3]|[5-9]))|(16[6-7])|(17[1-8])|(18[0-9])|(19[1|3])|(19[5|6])|(19[8|9]))\\d{8}$/\r\n\r\n// 邮箱地址\r\nexport const EMAIL_ADDRESS: RegExp = new RegExp(/^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$/);\r\n\r\n// 用户名\r\n// export const USERNAME: RegExp = new RegExp(/^(?!-)[A-Za-z0-9-]{1,30}(?<!-)$/);\r\nexport const USERNAME: RegExp = new RegExp(/^([A-Za-z0-9][A-Za-z0-9-]{0,28})?[A-Za-z0-9]$/);\r\n\r\n// 用户密码\r\n// export const PASSWORD = /^(?=.*[a-zA-Z])(?=.*[0-9]).{6,24}$/;\r\nexport const PASSWORD: RegExp = new RegExp(/^(?=.*[0-9])(?=.*[a-zA-Z])(.{6,24})$/);\r\n\r\n// 自然数\r\nexport const NATURAL_NUMBER: RegExp = new RegExp(/^[0-9]*$/);\r\n\r\n// 正整数\r\nexport const POSITIVE_INTEGER = new RegExp(/^[1-9]\\d*$/);\r\n\r\n// 最多两位小数的正数\r\n// export const MAX_2_DECIMAL_POSITIVE_NUMBER = new RegExp(/^\\d+(.\\d{1,2})?$/);\r\nexport const MAX_2_DECIMAL_POSITIVE_NUMBER = new RegExp(/^\\d+(\\.\\d{0,2})?$/);\r\n\r\n// 对象的Bucket名称\r\nexport const BUCKET_NAME: RegExp = new RegExp(/^([a-z0-9][a-z0-9-]{0,61})?[a-z0-9]$/);\r\n\r\n// JS变量名称\r\nexport const JS_VARIABLE_NAME: RegExp = new RegExp(/^[A-Za-z$_][\\w$_]*$/);\r\n\r\n// 日期\r\nexport const DATE: RegExp = new RegExp(/(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)$/);\r\n\r\n// 日期时间\r\nexport const DATE_TIME: RegExp = new RegExp(/^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$/);\r\n\r\n","import * as querystring from 'querystring';\n\ntype TReturnType = string;\n\n/************** www Start ******************************************************/\n// 首页\ninterface HomeParamsType {}\n\nexport function home({}: HomeParamsType = {}) {\n return `/home`;\n}\n\n// 活动列表\ninterface ActivitiesParamsType {}\n\nexport function activities({}: ActivitiesParamsType = {}) {\n return `/activities`;\n}\n\n// 活动详情\ninterface ActivitiesParamsType {\n activityID: string;\n}\n\nexport function activity({ activityID }: ActivitiesParamsType) {\n return `/activity/${activityID}`;\n}\n\ninterface WXShareParamsType {\n link: string;\n title: string;\n desc: string;\n imgUrl: string;\n}\n\nexport function wxShare({ link, title, desc, imgUrl }: WXShareParamsType) {\n return `/wx-share/index.html#title=${title}&desc=${desc}&link=${link}&imgUrl=${imgUrl}`;\n}\n\n/************** www End ******************************************************/\n\n/************** console Start ******************************************************/\n// dashboard\ninterface DashboardParamsType {}\n\nexport function dashboard({}: DashboardParamsType = {}) {\n return `/dashboard`;\n}\n\n// 资源市场\ninterface MarketParamsType {\n // nodeID: number;\n query?: string;\n}\n\nexport function market({ ...params }: MarketParamsType = {}): TReturnType {\n return `/market${handleQuery(params)}`;\n}\n\n// 示例节点\ninterface ExampleNodesParamsType {}\n\nexport function exampleNodes({}: ExampleNodesParamsType = {}): TReturnType {\n return `/examples`;\n}\n\n// 资源详情\ninterface ResourceDetailsParamsType {\n resourceID: string;\n version?: string;\n}\n\nexport function resourceDetails({\n resourceID,\n ...params\n}: ResourceDetailsParamsType): TReturnType {\n return `/resource/details/${resourceID}${handleQuery(params)}`;\n}\n\n// 集合详情\ninterface CollectionDetailsParamsType {\n collectionID: string;\n // version?: string;\n}\n\nexport function collectionDetails({\n collectionID,\n}: CollectionDetailsParamsType): TReturnType {\n return `/resource/collectionDetails/${collectionID}`;\n}\n\n// 资源创建入口\ninterface ResourceCreatorParamsType {}\n\nexport function resourceCreatorEntry({}: ResourceCreatorParamsType = {}): TReturnType {\n return `/resource/creatorEntry`;\n}\n\n// 资源创建\ninterface ResourceCreatorParamsType {}\n\nexport function resourceCreator({}: ResourceCreatorParamsType = {}): TReturnType {\n return `/resource/creator`;\n}\n\n// 资源批量创建\ninterface ResourceCreatorParamsType {}\n\nexport function resourceCreatorBatch({}: ResourceCreatorParamsType = {}): TReturnType {\n return `/resource/creatorBatch`;\n}\n\n// 集合创建\ninterface CollectionCreatorParamsType {}\n\nexport function collectionCreator({}: CollectionCreatorParamsType = {}): TReturnType {\n return `/resource/collectionCreator`;\n}\n\n// 我的资源\ninterface MyResourcesParamsType {}\n\nexport function myResources({}: MyResourcesParamsType = {}): TReturnType {\n return `/resource/list`;\n}\n\n// 我的集合\ninterface MyCollectionsParamsType {}\n\nexport function myCollections({}: MyCollectionsParamsType = {}): TReturnType {\n return `/resource/collection`;\n}\n\n// 我的收藏\ninterface MyCollectsParamsType {}\n\nexport function myCollects({}: MyCollectsParamsType = {}): TReturnType {\n return `/resource/collect`;\n}\n\n// 我的资源收入\ninterface MyResourceIncomeParamsType {}\n\nexport function myResourceIncome({}: MyResourceIncomeParamsType = {}): TReturnType {\n return `/resource/income`;\n}\n\n// 我的资源交易\ninterface MyResourceTransactionParamsType {}\n\nexport function myResourceTransaction({}: MyResourceTransactionParamsType = {}): TReturnType {\n return `/resource/transaction`;\n}\n\n// 资源版本信息\ninterface ResourceVersionInfoParamsType {\n resourceID: string;\n version?: string;\n}\n\nexport function resourceVersionInfo({\n resourceID,\n version = '',\n}: ResourceVersionInfoParamsType): TReturnType {\n return `/resource/sidebar/versionInfo/${resourceID}${handleQuery({\n version,\n })}`;\n}\n\n// 资源信息\ninterface ResourceInfoParamsType {\n resourceID: string;\n}\n\nexport function resourceInfo({\n resourceID,\n}: ResourceInfoParamsType): TReturnType {\n return `/resource/sidebar/info/${resourceID}`;\n}\n\n// 资源授权策略\ninterface ResourcePolicyParamsType {\n resourceID: string;\n}\n\nexport function resourcePolicy({\n resourceID,\n}: ResourcePolicyParamsType): TReturnType {\n return `/resource/sidebar/policy/${resourceID}`;\n}\n\n// 资源授权合约\ninterface ResourceContractParamsType {\n resourceID: string;\n}\n\nexport function resourceContract({\n resourceID,\n}: ResourceContractParamsType): TReturnType {\n return `/resource/sidebar/contract/${resourceID}`;\n}\n\n// 资源被授权管理\ninterface ResourceDependencyParamsType {\n resourceID: string;\n}\n\nexport function resourceDependency({\n resourceID,\n}: ResourceDependencyParamsType): TReturnType {\n return `/resource/sidebar/dependency/${resourceID}`;\n}\n\n// 资源版本创建\ninterface ResourceVersionCreatorParamsType {\n resourceID: string;\n}\n\nexport function resourceVersionCreator({\n resourceID,\n}: ResourceVersionCreatorParamsType): TReturnType {\n return `/resource/versionCreator/${resourceID}`;\n}\n\n// 集合版本信息\ninterface CollectionVersionInfoParamsType {\n collectionID: string;\n // version?: string;\n}\n\nexport function collectionVersionInfo({\n collectionID,\n}: CollectionVersionInfoParamsType): TReturnType {\n return `/resource/collectionSidebar/versionInfo/${collectionID}`;\n}\n\n// 集合信息\ninterface CollectionInfoParamsType {\n collectionID: string;\n}\n\nexport function collectionInfo({\n collectionID,\n}: CollectionInfoParamsType): TReturnType {\n return `/resource/collectionSidebar/info/${collectionID}`;\n}\n\n// 集合授权策略\ninterface CollectionPolicyParamsType {\n collectionID: string;\n}\n\nexport function collectionPolicy({\n collectionID,\n}: CollectionPolicyParamsType): TReturnType {\n return `/resource/collectionSidebar/policy/${collectionID}`;\n}\n\n// 集合授权合约\ninterface CollectionContractParamsType {\n collectionID: string;\n}\n\nexport function collectionContract({\n collectionID,\n}: CollectionContractParamsType): TReturnType {\n return `/resource/collectionSidebar/contract/${collectionID}`;\n}\n\n// 集合被授权管理\ninterface CollectionDependencyParamsType {\n collectionID: string;\n}\n\nexport function collectionDependency({\n collectionID,\n}: CollectionDependencyParamsType): TReturnType {\n return `/resource/collectionSidebar/dependency/${collectionID}`;\n}\n\n// 节点创建\ninterface NodeCreatorParamsType {\n // nodeID: number;\n}\n\nexport function nodeCreator({}: NodeCreatorParamsType = {}): TReturnType {\n return `/node/creator`;\n}\n\n// 节点管理\ninterface NodeManagementParamsType {\n nodeID: number;\n showPage?:\n | 'exhibit'\n | 'theme'\n | 'contract'\n | 'setting'\n | 'income'\n | 'transaction';\n}\n\nexport function nodeManagement({\n nodeID,\n showPage = 'exhibit',\n ...params\n}: NodeManagementParamsType): TReturnType {\n return `/node/formal/${nodeID}${handleQuery({ showPage, ...params })}`;\n}\n\n// 展品管理\ninterface ExhibitManagementParamsType {\n exhibitID: string;\n openAuthDrawer?: boolean;\n showMoreSetting?: boolean;\n}\n\nexport function exhibitManagement({\n exhibitID,\n ...params\n}: ExhibitManagementParamsType): TReturnType {\n return `/node/exhibit/formal/${exhibitID}${handleQuery({\n ...params,\n })}`;\n}\n\n// 集合展品管理\ninterface CollectionExhibitManagementParamsType {\n exhibitID: string;\n openAuthDrawer?: boolean;\n}\n\nexport function collectionExhibitManagement({\n exhibitID,\n openAuthDrawer,\n}: CollectionExhibitManagementParamsType): TReturnType {\n return `/node/collectionExhibit/formal/${exhibitID}${handleQuery({\n openAuthDrawer,\n })}`;\n}\n\n// 集合展品创建\ninterface CollectionExhibitCreatorParamsType {\n nodeID: number;\n}\n\nexport function collectionExhibitCreator({\n nodeID,\n}: CollectionExhibitCreatorParamsType): TReturnType {\n return `/node/collectionExhibitCreator/${nodeID}`;\n}\n\n// 创建的集合展品管理\ninterface CreatedCollectionExhibitManagementParamsType {\n exhibitID: string;\n}\n\nexport function createdCollectionExhibitManagement({\n exhibitID,\n}: CreatedCollectionExhibitManagementParamsType): TReturnType {\n return `/node/createdCollectionExhibit/formal/${exhibitID}`;\n}\n\n// 测试节点管理\ninterface InformNodeManagementParamsType {\n nodeID: number;\n showPage?: 'exhibit' | 'theme' | 'mappingRule';\n}\n\nexport function informNodeManagement({\n nodeID,\n showPage = 'exhibit',\n ...params\n}: InformNodeManagementParamsType): TReturnType {\n return `/node/informal/${nodeID}${handleQuery({ showPage, ...params })}`;\n}\n\n// 测试展品管理\ninterface InformExhibitManagementParamsType {\n exhibitID: string;\n openAuthDrawer?: boolean;\n}\n\nexport function informExhibitManagement({\n exhibitID,\n openAuthDrawer = undefined,\n}: InformExhibitManagementParamsType): TReturnType {\n return `/node/exhibit/informal/${exhibitID}${handleQuery({\n openAuthDrawer,\n })}`;\n}\n\n// 存储空间\ninterface StorageSpaceParamsType {\n bucketName?: string;\n createBucket?: boolean;\n}\n\nexport function storageSpace({\n ...params\n}: StorageSpaceParamsType = {}): TReturnType {\n return `/storage${handleQuery(params)}`;\n}\n\n// 对象详情\ninterface ObjectDetailsParamsType {\n bucketName: string;\n objectID: string;\n}\n\nexport function objectDetails({\n ...params\n}: ObjectDetailsParamsType): TReturnType {\n return `/storage${handleQuery(params)}`;\n}\n\n// 集合创建成功\ninterface CollectionCreateSuccessParamsType {\n collectionID: string;\n}\n\nexport function collectionCreateSuccess({\n collectionID,\n}: CollectionCreateSuccessParamsType) {\n return `/result/collection/create/success/${collectionID}`;\n}\n\n// 资源创建成功\ninterface ResourceCreateSuccessParamsType {\n resourceID: string;\n}\n\nexport function resourceCreateSuccess({\n resourceID,\n}: ResourceCreateSuccessParamsType) {\n return `/result/resource/create/success/${resourceID}`;\n}\n\n// 资源版本创建成功\ninterface ResourceVersionCreateSuccessParamsType {\n resourceID: string;\n version: string;\n}\n\nexport function resourceVersionCreateSuccess({\n resourceID,\n version,\n}: ResourceVersionCreateSuccessParamsType) {\n return `/result/resource/version/create/success/${resourceID}/${version}`;\n}\n\n// 资源版本正在创建\ninterface ResourceVersionCreateReleaseParamsType {\n resourceID: string;\n version: string;\n}\n\nexport function resourceVersionCreateRelease({\n resourceID,\n version,\n}: ResourceVersionCreateReleaseParamsType) {\n return `/result/resource/version/create/release/${resourceID}/${version}`;\n}\n\n// 节点创建成功\ninterface NodeCreateSuccessParamsType {\n nodeID: number;\n}\n\nexport function nodeCreateSuccess({ nodeID }: NodeCreateSuccessParamsType) {\n return `/result/node/create/success/${nodeID}`;\n}\n\n// 内测资格申请\ninterface InvitationParamsType {\n goTo?: string;\n invitationCode?: string;\n}\n\nexport function invitation({ goTo, ...params }: InvitationParamsType = {}) {\n // console.log(params.goTo, 'goTo9iowjefklsdj;flksdjflk')\n return `/invitation${handleQuery({\n ...params,\n returnUrl: goTo ? encodeURIComponent(goTo) : undefined,\n })}`;\n}\n\n// 403\ninterface Exception403ParamsType {\n from?: string;\n}\n\nexport function exception403({ ...params }: Exception403ParamsType = {}) {\n let fromUrl: string = params.from || '';\n if (!fromUrl) {\n const { href, origin } = window.location;\n fromUrl = href.replace(origin, '');\n }\n\n return `/exception/403${handleQuery({\n from: fromUrl,\n })}`;\n}\n\n// unableToAccess\ninterface ExceptionUnableToAccessParamsType {\n from?: string;\n}\n\nexport function exceptionUnableToAccess({\n ...params\n}: ExceptionUnableToAccessParamsType = {}) {\n let fromUrl: string = params.from || '';\n if (!fromUrl) {\n const { href, origin } = window.location;\n fromUrl = href.replace(origin, '');\n }\n\n return `/exception/unableToAccess${handleQuery({\n from: fromUrl,\n })}`;\n}\n\n// /exception/common?tipText=1234\n// 通用异常\ninterface ExceptionCommonParamsType {\n tipText?: string;\n btnText?: string;\n}\n\nexport function exceptionCommon({ ...params }: ExceptionCommonParamsType = {}) {\n return `/exception/common${handleQuery({\n ...params,\n })}`;\n}\n\n// 节点封禁\ninterface NodeFreezeParamsType {\n nodeID: number;\n}\n\nexport function nodeFreeze({ nodeID }: NodeFreezeParamsType) {\n return `/result/node/freeze/${nodeID}`;\n}\n\n// 资源封禁\ninterface ResourceFreezeParamsType {\n resourceID: string;\n}\n\nexport function resourceFreeze({ resourceID }: ResourceFreezeParamsType) {\n return `/result/resource/freeze/${resourceID}`;\n}\n\n// 站内搜索\ninterface GlobalSearchParamsType {\n search: string;\n}\n\nexport function globalSearch({ search }: GlobalSearchParamsType) {\n return `/search${handleQuery({\n search,\n })}`;\n}\n\n/************** console End ******************************************************/\n\n/************** user Start ******************************************************/\n// 登录\ninterface LoginParamsType {\n goTo?: string;\n}\n\nexport function login({ goTo }: LoginParamsType = {}) {\n return `/login${handleQuery({\n goTo: goTo ? encodeURIComponent(goTo) : undefined,\n })}`;\n}\n\n// 注册\ninterface LoginParamsType {\n goTo?: string;\n invitationCode?: string;\n}\n\nexport function logon({ goTo, ...params }: LoginParamsType = {}) {\n return `/logon${handleQuery({\n goTo: goTo ? encodeURIComponent(goTo) : undefined,\n ...params,\n })}`;\n}\n\n// 绑定账户\ninterface LoginParamsType {\n goTo?: string;\n identityId?: string;\n returnUrl?: string;\n}\n\nexport function bind({ goTo, returnUrl, ...params }: LoginParamsType = {}) {\n return `/bind${handleQuery({\n goTo: goTo ? encodeURIComponent(goTo) : undefined,\n returnUrl: returnUrl ? encodeURIComponent(returnUrl) : undefined,\n ...params,\n })}`;\n}\n\n// 找回密码\ninterface RetrieveUserPasswordParamsType {\n goTo?: string;\n}\n\nexport function retrieveUserPassword({\n goTo,\n}: RetrieveUserPasswordParamsType = {}) {\n return `/retrieve${handleQuery({\n goTo: goTo ? encodeURIComponent(goTo) : undefined,\n })}`;\n}\n\n// 找回支付密码\ninterface RetrievePayPasswordParamsType {\n goTo?: string;\n}\n\nexport function retrievePayPassword({}: RetrievePayPasswordParamsType = {}) {\n return `/retrievePayPassword`;\n}\n\n// 用户冻结\ninterface UserFreezeParamsType {\n // goTo?: string;\n}\n\nexport function userFreeze({}: UserFreezeParamsType = {}) {\n return `/freeze`;\n}\n\n// 我的钱包\ninterface WalletParamsType {}\n\nexport function wallet({}: WalletParamsType = {}) {\n return `/logged/wallet`;\n}\n\n// 活动奖励\ninterface RewardParamsType {}\n\nexport function reward({}: RewardParamsType = {}) {\n return `/logged/reward`;\n}\n\n// 我的合约\ninterface ContractParamsType {\n identityType?: 1 | 2;\n licensorName?: string;\n licenseeName?: string;\n}\n\nexport function contract({ ...params }: ContractParamsType = {}) {\n return `/logged/contract${handleQuery({\n ...params,\n })}`;\n}\n\n// 个人设置\ninterface SettingParamsType {}\n\nexport function setting({}: SettingParamsType = {}) {\n return `/logged/setting`;\n}\n\n// 绑定\ninterface BindingParamsType {}\n\nexport function binding({}: BindingParamsType = {}) {\n return `/logged/binding`;\n}\n\n// 绑定成功\ninterface ResultBindingSuccessParamsType {}\n\nexport function resultBindingSuccess({}: ResultBindingSuccessParamsType = {}) {\n return `/result/binding`;\n}\n\n/************** user End ******************************************************/\n\nfunction handleQuery(query: object): string {\n const obj: any = {};\n for (const [key, value] of Object.entries(query)) {\n if (key && value) {\n obj[key] = value;\n }\n }\n const result: string = querystring.stringify(obj);\n return result ? '?' + result : '';\n}\n","// export const apiHost = `${window.location.protocol}//qi.${(window.location.host.match(/(?<=\\.).*/) || [''])[0]}`;\r\n\r\n// 预设资源类型\r\nexport const resourceTypes: string[] = ['json', 'widget', 'image', 'audio', 'markdown', 'theme', 'reveal_slide', 'license', 'video', 'catalog'];\r\n\r\n// 全局列表加载条目数\r\nexport const pageSize: number = 100;\r\n\r\n// Moment 日期时间格式\r\nexport const momentDateFormat: string = 'YYYY-MM-DD'\r\nexport const momentDateTimeFormat: string = 'YYYY-MM-DD HH:mm';\r\n\r\n// 签约方用户的身份类型定义\r\nexport enum EnumContractPartyIdentityType {\r\n resource = 1,\r\n node,\r\n consumer,\r\n}\r\n\r\n// 标的物类型定义\r\nexport enum EnumSubjectType {\r\n resource = 1,\r\n exhibit,\r\n user,\r\n}\r\n\r\n// 合约状态定义\r\nexport enum EnumContractStatus {\r\n pending,\r\n authorized,\r\n stopped,\r\n}\r\n\r\n// 合约授权状态定义\r\n// export enum ContractAuthStatus {\r\n//\r\n// }\r\n","import FUtil from '../utils';\r\nimport {AxiosRequestConfig, Canceler} from 'axios';\r\n\r\n// 创建bucket(系统级的bucket不允许创建)\r\nexport interface CreateBucketParamsType {\r\n bucketName: string;\r\n}\r\n\r\nexport function createBucket(params: CreateBucketParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/storages/buckets`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 查看用户的bucket列表\r\ninterface BucketListParamsType {\r\n bucketType: 0 | 1 | 2;\r\n}\r\n\r\nexport function bucketList(params: BucketListParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/storages/buckets`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查询bucket使用情况\r\ninterface SpaceStatisticsParamsType {\r\n}\r\n\r\nexport function spaceStatistics(params: SpaceStatisticsParamsType = {}) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/storages/buckets/spaceStatistics`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 删除bucket\r\ninterface DeleteBucketParamsType {\r\n bucketName: string;\r\n}\r\n\r\nexport function deleteBucket(params: DeleteBucketParamsType) {\r\n return FUtil.Request({\r\n method: 'DELETE',\r\n url: `/v2/storages/buckets/${params.bucketName}`,\r\n // params: params,\r\n });\r\n}\r\n\r\n// 查询bucket详情\r\ninterface BucketDetailsParamsType {\r\n bucketName: string;\r\n}\r\n\r\nexport function bucketDetails({bucketName}: BucketDetailsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/storages/buckets/${bucketName}`,\r\n // params: params,\r\n });\r\n}\r\n\r\n// 分页查看存储对象列表\r\ninterface ObjectListParamsType {\r\n limit?: number;\r\n skip?: number;\r\n bucketName: string;\r\n resourceType?: string;\r\n resourceTypeCode?: string;\r\n isLoadingTypeless?: 0 | 1;\r\n keywords?: string;\r\n projection?: string;\r\n sort?: string;\r\n omitResourceType?: string;\r\n mime?: string;\r\n extNames?: string;\r\n}\r\n\r\nexport function objectList({bucketName, ...params}: ObjectListParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/storages/buckets/${bucketName}/objects`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 分页查看用户节点数据列表\r\ninterface UserNodeDataListParamsType {\r\n skip?: number;\r\n limit?: number;\r\n}\r\n\r\nexport function userNodeDataList(params: UserNodeDataListParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/storages/buckets/.UserNodeData/objects`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 创建存储对象\r\ninterface CreateObjectParamsType {\r\n bucketName: string;\r\n objectName: string;\r\n sha1: string;\r\n resourceType?: string;\r\n}\r\n\r\nexport function createObject({bucketName, ...params}: CreateObjectParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/storages/buckets/${bucketName}/objects`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 查看存储对象详情\r\ninterface ObjectDetailsParamsType1 {\r\n bucketName: string;\r\n objectId: string;\r\n}\r\n\r\ninterface ObjectDetailsParamsType2 {\r\n objectIdOrName: string;\r\n}\r\n\r\nexport function objectDetails(params: ObjectDetailsParamsType1 | ObjectDetailsParamsType2) {\r\n if ((params as ObjectDetailsParamsType2).objectIdOrName) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/storages/objects/${encodeURIComponent((params as ObjectDetailsParamsType2).objectIdOrName)}`,\r\n params: params,\r\n });\r\n }\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/storages/buckets/${(params as ObjectDetailsParamsType1).bucketName}/objects/${(params as ObjectDetailsParamsType1).objectId}`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 删除存储对象\r\ninterface DeleteObjectsParamsType {\r\n bucketName: string;\r\n objectIds: string;\r\n}\r\n\r\nexport function deleteObjects(params: DeleteObjectsParamsType) {\r\n return FUtil.Request({\r\n method: 'DELETE',\r\n url: `/v2/storages/buckets/${params.bucketName}/objects/${params.objectIds}`,\r\n // data: params,\r\n });\r\n}\r\n\r\n// 查询bucket是否存在\r\ninterface BucketIsExistParamsType {\r\n bucketName: string;\r\n}\r\n\r\nexport function bucketIsExist({bucketName}: BucketIsExistParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/storages/buckets/${bucketName}/isExist`,\r\n // params: params,\r\n });\r\n}\r\n\r\n// 下载存储对象文件\r\ninterface DownloadObjectParamsType {\r\n objectIdOrName: string;\r\n}\r\n\r\nexport function downloadObject(params: DownloadObjectParamsType) {\r\n return window.location.href = FUtil.Format.completeUrlByDomain('api') + `/v2/storages/objects/${params.objectIdOrName}/file`;\r\n}\r\n\r\n// 根据sha1查询文件是否存在\r\ninterface FileIsExistParamsType {\r\n sha1: string;\r\n}\r\n\r\nexport function fileIsExist(params: FileIsExistParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/storages/files/fileIsExist`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 上传资源文件\r\ninterface UploadFileParamsType {\r\n file: File;\r\n resourceType?: string;\r\n}\r\n\r\nexport function uploadFile(params: UploadFileParamsType, config?: AxiosRequestConfig, returnCancel: boolean = false): Promise<any> | [Promise<any>, Canceler] {\r\n const formData = new FormData();\r\n for (const [key, value] of Object.entries(params)) {\r\n if (value) {\r\n formData.append(key, value);\r\n }\r\n }\r\n\r\n if (!returnCancel) {\r\n // return FUtil.Axios.post('/v2/storages/files/upload', formData, config);\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/storages/files/upload`,\r\n data: formData,\r\n ...config,\r\n });\r\n }\r\n\r\n let cancel: any = null;\r\n // const promise = FUtil.Axios.post('/v2/storages/files/upload', formData, {\r\n // cancelToken: new FUtil.Axios.CancelToken((c) => {\r\n // cancel = c;\r\n // }),\r\n // });\r\n\r\n const promise = FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/storages/files/upload`,\r\n data: formData,\r\n cancelToken: new FUtil.Axios.CancelToken((c) => {\r\n cancel = c;\r\n }),\r\n ...config,\r\n });\r\n return [\r\n promise,\r\n cancel,\r\n ];\r\n\r\n}\r\n\r\n// 上传图片文件\r\ninterface UploadImageParamsType {\r\n file: File;\r\n}\r\n\r\nexport function uploadImage(params: UploadImageParamsType, config?: AxiosRequestConfig) {\r\n const formData = new FormData();\r\n for (const [key, value] of Object.entries(params)) {\r\n if (value) {\r\n formData.append(key, value);\r\n }\r\n }\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/storages/files/uploadImage`,\r\n data: formData,\r\n ...config,\r\n });\r\n}\r\n\r\n// 处理图片文件\r\ninterface HandleImageParamsType {\r\n sha1: string;\r\n}\r\n\r\nexport function handleImage(params: HandleImageParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/storages/files/imageHandle`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 生成封面\r\ninterface GenerateCoverImageParamsType {\r\n sha1: string;\r\n}\r\n\r\nexport function generateCoverImage(params: GenerateCoverImageParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/storages/files/generateCoverImage`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 更新存储对象属性\r\ninterface UpdateObjectParamsType {\r\n objectIdOrName: string;\r\n customPropertyDescriptors?: {\r\n key: string;\r\n defaultValue: string;\r\n type: 'editableText' | 'readonlyText' | 'radio' | 'checkbox' | 'select';\r\n candidateItems?: string[];\r\n remark?: string;\r\n }[];\r\n dependencies?: {\r\n name: string;\r\n type: string;\r\n versionRange?: string;\r\n }[];\r\n // resourceType?: string[];\r\n resourceTypeCode?: string;\r\n resourceTypeName?: string;\r\n}\r\n\r\nexport function updateObject({objectIdOrName, ...params}: UpdateObjectParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/storages/objects/${objectIdOrName}`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量更新存储对象\r\ninterface BatchUpdateObjectParamsType {\r\n objectIds: string[];\r\n resourceTypeCode: string;\r\n resourceTypeName?: string;\r\n}\r\n\r\nexport function batchUpdateObject({...params}: BatchUpdateObjectParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/storages/objects/updateBatch`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量查询存储对象列表\r\ninterface BatchObjectListParamsType {\r\n fullObjectNames?: string;\r\n objectIds?: string;\r\n projection?: string;\r\n}\r\n\r\nexport function batchObjectList(params: BatchObjectListParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/storages/objects/list`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 根据sha1和类型获取文件属性\r\ninterface FilePropertyParamsType {\r\n sha1: string;\r\n // resourceType: string;\r\n}\r\n\r\nexport function fileProperty({sha1, ...params}: FilePropertyParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/storages/files/${sha1}/property`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 对象依赖循环性检查\r\ninterface CycleDependencyCheckParamsType {\r\n objectIdOrName: string;\r\n dependencies: {\r\n name: string;\r\n type: 'resource' | 'object';\r\n versionRange?: string;\r\n }[];\r\n}\r\n\r\nexport function cycleDependencyCheck({objectIdOrName, ...params}: CycleDependencyCheckParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/storages/objects/${objectIdOrName}/cycleDependencyCheck`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 删除用户节点数据对象(清理节点数据)\r\ninterface ClearUserNodeDataParamsType {\r\n nodeIds?: number[];\r\n nodeDomains?: string[];\r\n}\r\n\r\nexport function clearUserNodeData({...params}: ClearUserNodeDataParamsType) {\r\n return FUtil.Request({\r\n method: 'DELETE',\r\n url: `/v2/storages/buckets/.UserNodeData/objects/clear`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量查询文件信息通过sha1\r\ninterface FilesListInfoParamsType {\r\n sha1: string;\r\n resourceTypeCode: string;\r\n}\r\n\r\nexport function filesListInfo({...params}: FilesListInfoParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/storages/files/list/info`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 批量查询文件信息\r\ninterface FilesInfoParamsType {\r\n resourceTypeCode: string;\r\n}\r\n\r\nexport function filesInfo({...params}: FilesInfoParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/storages/files/info`,\r\n params: params,\r\n });\r\n}\r\n","// import * as CryptoJS from 'crypto-js';\r\n\r\n/**\r\n * 根据 File 获取 SHA1 Hash 字符串\r\n * @param file\r\n * @return {Promise<string>}\r\n */\r\nexport function getSHA1Hash(file: File): Promise<string> {\r\n return new Promise((resolve) => {\r\n const reader: FileReader = new FileReader();\r\n reader.readAsArrayBuffer(file);\r\n reader.onload = async () => {\r\n if (!reader.result) {\r\n resolve('');\r\n return '';\r\n }\r\n if (typeof reader.result === 'string') {\r\n resolve('');\r\n return '';\r\n }\r\n const sha1: string = await self.crypto.subtle.digest('SHA-1', reader.result).then(a => Array.from(new Uint8Array(a)).map(a => a.toString(16).padStart(2, '0')).join(''));\r\n resolve(sha1);\r\n return '';\r\n };\r\n\r\n });\r\n}\r\n\r\n/**\r\n * 生成随机码\r\n */\r\nexport function generateRandomCode(strLen: number = 5): string {\r\n const allStr: string = 'ABCDEFGHIJKLMNPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890';\r\n const newStrArr: string[] = [];\r\n for (let i = 0; i < strLen; i++) {\r\n newStrArr.push(allStr[Math.floor(Math.random() * 61)]);\r\n }\r\n return newStrArr.join('');\r\n}\r\n\r\n/**\r\n * 通过读取 cookies 获取用户 ID\r\n */\r\nexport function getUserIDByCookies(): number {\r\n const uid: string | undefined = document.cookie.split('; ').find((co) => co.startsWith('uid='));\r\n if (!uid) {\r\n return -1;\r\n }\r\n return Number(uid.replace('uid=', ''));\r\n}\r\n\r\n\r\n/**\r\n * 将服务端的合约状态转换成前端需要的状态\r\n */\r\ninterface TransformServerAPIContractStateParams {\r\n status: 0 | 1 | 2; // 合同综合状态: 0:正常 1:已终止(不接受任何事件,也不给授权,事实上无效的合约) 2:异常\r\n authStatus: 1 | 2 | 128 | number; // 合同授权状态 1:正式授权 2:测试授权 128:未获得授权\r\n}\r\n\r\nexport function transformServerAPIContractState({\r\n status,\r\n authStatus,\r\n }: TransformServerAPIContractStateParams): 'active' | 'testActive' | 'inactive' | 'terminal' | 'exception' {\r\n if (status === 0) {\r\n if (authStatus === 1 || authStatus === 3) {\r\n return 'active';\r\n }\r\n if (authStatus === 2) {\r\n return 'testActive';\r\n }\r\n if (authStatus === 128) {\r\n return 'inactive';\r\n }\r\n }\r\n\r\n if (status === 1) {\r\n return 'terminal';\r\n }\r\n return 'exception';\r\n}\r\n\r\n/**\r\n * 暂时休眠\r\n * @param ms 休眠时常(毫秒)\r\n */\r\nexport function promiseSleep(ms: number = 300): Promise<void> {\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve();\r\n }, ms);\r\n });\r\n}\r\n\r\n/**\r\n * 获取用户头像URL\r\n * @param userID\r\n */\r\nexport function getAvatarUrl(userID: number = 0): string {\r\n // return `${completeUrlByDomain('image')}/avatar/${userID || getUserIDByCookies()}?t=${Date.now()}`;\r\n return `https://image.freelog.com/avatar/${userID || getUserIDByCookies()}?t=${Date.now()}`;\r\n}\r\n","import * as Tool from '../../utils/tools';\r\nimport * as Storage from '../storages';\r\n\r\ninterface FileInfo {\r\n sha1: string;\r\n state: 'success' | 'fail' | 'nonentity';\r\n info: {\r\n [key: string]: any;\r\n }\r\n}\r\n\r\ninterface GetFileInfosBySha1Params {\r\n sha1: string[];\r\n resourceTypeCode: string;\r\n}\r\n\r\nexport async function getFilesSha1Info({\r\n sha1,\r\n resourceTypeCode\r\n }: GetFileInfosBySha1Params, cdPartially: (s: any[]) => void = () => undefined): Promise<{\r\n error: string;\r\n result: FileInfo[],\r\n}> {\r\n if (sha1.length === 0) {\r\n return {\r\n error: '',\r\n result: [],\r\n };\r\n }\r\n\r\n let delay: number = 500;\r\n\r\n let needHandleSha1: string[] = [...sha1];\r\n\r\n let allData: FileInfo[] = [];\r\n\r\n while (true) {\r\n // console.log(needHandleSha1.join(','), 'needHandleSha1.join()90ojlskdfjsdlk')\r\n const {ret, errCode, data, msg}: any = await Storage.filesListInfo({\r\n sha1: needHandleSha1.join(','),\r\n resourceTypeCode: resourceTypeCode,\r\n });\r\n\r\n if (ret !== 0 || errCode !== 0) {\r\n console.log({\r\n ret, errCode, data, msg\r\n }, '09iowksdjaklfjs;oalijflskdjflsdkjflkj');\r\n return {\r\n error: msg,\r\n result: allData,\r\n };\r\n }\r\n\r\n needHandleSha1 = data\r\n .filter((d: any) => {\r\n return d.metaAnalyzeStatus === 0 || d.metaAnalyzeStatus === 1;\r\n })\r\n .map((d: any) => {\r\n return d.sha1;\r\n });\r\n const finishedInfo: FileInfo[] = data\r\n .filter((d: any) => {\r\n return d.metaAnalyzeStatus !== 0 && d.metaAnalyzeStatus !== 1;\r\n })\r\n .map((d: any) => {\r\n let state: 'success' | 'fail' | 'nonentity' = 'fail';\r\n if (!d.metaAnalyzeStatus) {\r\n state = 'nonentity';\r\n } else if (d.metaAnalyzeStatus === 2) {\r\n state = 'success';\r\n } else if (d.metaAnalyzeStatus === 3) {\r\n state = 'fail';\r\n }\r\n // console.log(d, '90wieojiksdjf;lkasdjf;lksdjflksjdflkjsdlfkjsdlkj');\r\n return {\r\n sha1: d.sha1,\r\n state,\r\n info: d,\r\n };\r\n });\r\n cdPartially && cdPartially(finishedInfo);\r\n allData = [\r\n ...allData,\r\n ...finishedInfo,\r\n ];\r\n\r\n if (needHandleSha1.length === 0) {\r\n break;\r\n }\r\n await Tool.promiseSleep(delay);\r\n // delay += 500;\r\n }\r\n return {\r\n error: '',\r\n result: allData,\r\n };\r\n}\r\n","import * as Node from './nodes';\nimport * as Exhibit from './presentables';\nimport * as Storage from './storages';\nimport * as Collection from './collections';\nimport * as Resource from './resources';\nimport * as User from './user';\nimport * as InformalNode from './informalNodes';\nimport * as Contract from './contracts';\nimport * as Transaction from './transactions';\nimport * as Captcha from './captcha';\nimport * as Event from './events';\nimport * as Activity from './activities';\nimport * as TestQualification from './testQualifications';\nimport * as Statistic from './statistics';\nimport * as I18n from './i18n';\nimport * as Policy from './policies';\nimport * as recombination from './recombinations';\nimport * as Operation from './operation';\nimport * as ResourceType from './resourceType';\nimport * as Payment from './payment';\n\nconst FServiceAPI = {\n Node,\n Exhibit,\n Storage,\n Collection,\n Resource,\n User,\n InformalNode,\n Contract,\n Transaction,\n Captcha,\n Event,\n Activity,\n TestQualification,\n Statistic,\n I18n,\n Policy,\n recombination,\n Operation,\n ResourceType,\n Payment,\n};\n\nexport default FServiceAPI;\n","import FUtil from '../utils';\r\n\r\n// 创建节点\r\nexport interface CreateParamsType {\r\n nodeName: string;\r\n nodeDomain: string;\r\n nodeTitle: string;\r\n}\r\n\r\nexport function create(params: CreateParamsType) {\r\n // return FUtil.Axios.post('/v2/nodes', params);\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/nodes`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 查看节点详情\r\ninterface NodeDetailParamsType1 {\r\n nodeId: number;\r\n}\r\n\r\ninterface NodeDetailParamsType2 {\r\n nodeName?: string;\r\n nodeDomain?: string;\r\n}\r\n\r\nexport function details(params: NodeDetailParamsType1 | NodeDetailParamsType2) {\r\n if ((params as NodeDetailParamsType1).nodeId) {\r\n // return FUtil.Axios.get(`/v2/nodes/${(params as NodeDetailParamsType1).nodeId}`);\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/nodes/${(params as NodeDetailParamsType1).nodeId}`,\r\n // params: params,\r\n });\r\n }\r\n // return FUtil.Axios.get(`/v2/nodes/detail`, {\r\n // params,\r\n // });\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/nodes/detail`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看节点列表\r\ninterface NodesParamsType {\r\n skip?: number;\r\n limit?: number;\r\n status?: 0 | 1 | 2; // 0:正常 1:未审核 2:冻结\r\n projection?: string;\r\n nodeType?: 0 | 1;\r\n}\r\n\r\nexport function nodes(params: NodesParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/nodes`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 示例节点\r\ninterface SearchForClientParamsType {\r\n skip?: number;\r\n limit?: number;\r\n status?: 0 | 1 | 2; // 0:正常 1:未审核 2:冻结\r\n projection?: string;\r\n nodeType?: 0 | 1;\r\n}\r\n\r\nexport function searchForClient(params: SearchForClientParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/nodes/searchForClient`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 设置节点信息\r\ninterface SetNodeInfoParamsType {\r\n nodeId: number;\r\n nodeLogo: string;\r\n nodeTitle: string;\r\n nodeShortDescription: string;\r\n // nodeVisibility: 1 | 2 | 3; // 可见性 1:公开 2:私密 3:暂停\r\n status: 1 | 2 | 8; // 可见性 1:公开 2:私密 3:暂停\r\n nodeSuspendInfo: string;\r\n}\r\n\r\nexport function setNodeInfo(params: SetNodeInfoParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/nodes/setNodeInfo`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 删除节点\r\ninterface DeleteNodeParamsType {\r\n nodeId: number;\r\n}\r\n\r\nexport function deleteNode({nodeId}: DeleteNodeParamsType) {\r\n return FUtil.Request({\r\n method: 'DELETE',\r\n url: `/v2/nodes/${nodeId}`,\r\n // params: params,\r\n });\r\n}\r\n\r\n","import FUtil from '../utils';\r\n\r\n// 创建展品\r\nexport interface CreatePresentableParamsType {\r\n nodeId: number;\r\n resourceId: string;\r\n version: string;\r\n // resolveResources: {\r\n // resourceId: string;\r\n // contracts: {\r\n // policyId: string;\r\n // }[];\r\n // }[];\r\n batchSignContracts?: {\r\n resourceId: string;\r\n subjectType: number;\r\n policyIds: string[];\r\n }[];\r\n presentableName: string;\r\n presentableTitle?: string;\r\n tags?: string[];\r\n policies?: {\r\n policyName: string;\r\n policyText: string;\r\n status?: 0 | 1;\r\n }[];\r\n}\r\n\r\nexport function createPresentable(params: CreatePresentableParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/presentables`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 更新展品\r\ninterface UpdatePresentableParamsType {\r\n presentableId: string;\r\n presentableTitle?: string;\r\n presentableIntro?: string;\r\n tags?: string[];\r\n coverImages?: string[];\r\n addPolicies?: {\r\n policyName: string;\r\n policyText: string;\r\n status?: 0 | 1;\r\n }[];\r\n updatePolicies?: {\r\n policyId: string;\r\n status: 0 | 1;\r\n }[];\r\n resolveResources?: {\r\n resourceId: string;\r\n contracts: {\r\n policyId: string;\r\n }[];\r\n }[];\r\n autoUpdateStatus?: 0 | 1;\r\n}\r\n\r\nexport function updatePresentable({\r\n presentableId,\r\n ...params\r\n}: UpdatePresentableParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/presentables/${presentableId}`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 上下线presentable\r\ninterface PresentablesOnlineParamsType {\r\n presentableId: string;\r\n onlineStatus: 0 | 1;\r\n updatePolicies?: {\r\n policyId: string;\r\n status: 0 | 1;\r\n };\r\n}\r\n\r\nexport function presentablesOnlineStatus({\r\n presentableId,\r\n ...params\r\n}: PresentablesOnlineParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/presentables/${presentableId}/onlineStatus`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 查看展品详情\r\ninterface PresentableDetailsParamsType1 {\r\n presentableId: string;\r\n projection?: string;\r\n isLoadVersionProperty?: 0 | 1;\r\n isLoadPolicyInfo?: 0 | 1;\r\n isTranslate?: 0 | 1;\r\n isLoadCustomPropertyDescriptors?: 0 | 1;\r\n isLoadResourceDetailInfo?: 0 | 1;\r\n isLoadResourceVersionInfo?: 0 | 1;\r\n}\r\n\r\ninterface PresentableDetailsParamsType2 {\r\n nodeId: number;\r\n resourceId?: string;\r\n resourceName?: string;\r\n presentableName?: string;\r\n projection?: string;\r\n isLoadVersionProperty?: 0 | 1;\r\n isLoadPolicyInfo?: 0 | 1;\r\n isLoadCustomPropertyDescriptors?: 0 | 1;\r\n}\r\n\r\nexport function presentableDetails(\r\n params: PresentableDetailsParamsType1 | PresentableDetailsParamsType2\r\n) {\r\n if ((params as PresentableDetailsParamsType2).nodeId) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/presentables/detail`,\r\n params: params,\r\n });\r\n }\r\n const { presentableId, ...p } = params as PresentableDetailsParamsType1;\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/presentables/${presentableId}`,\r\n params: p,\r\n });\r\n}\r\n\r\n// 查询展品分页列表\r\ninterface PresentablesParamsType {\r\n nodeId: number;\r\n skip?: number;\r\n limit?: number;\r\n resourceType?: string;\r\n resourceTypeCode?: string;\r\n omitResourceType?: string;\r\n onlineStatus?: number;\r\n tags?: string;\r\n projection?: string;\r\n keywords?: string;\r\n isLoadVersionProperty?: 0 | 1;\r\n isLoadPolicyInfo?: 0 | 1;\r\n isLoadResourceDetailInfo?: 0 | 1;\r\n isLoadVersionUpdateTip?: 0 | 1;\r\n subjectType?: 1 | 4 | 5;\r\n}\r\n\r\nexport function presentables(params: PresentablesParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/presentables`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 批量查询展品列表\r\ninterface PresentableListParamsType {\r\n nodeId?: number;\r\n userId?: number;\r\n presentableIds?: string;\r\n resourceIds?: string;\r\n resourceNames?: string;\r\n isLoadVersionProperty?: 0 | 1;\r\n isLoadPolicyInfo?: 0 | 1;\r\n isTranslate?: 0 | 1;\r\n projection?: string;\r\n resolveResourceIds?: string;\r\n}\r\n\r\nexport function presentableList(params: PresentableListParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/presentables/list`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看展品依赖树\r\ninterface DependencyTreeParamsType {\r\n presentableId: string;\r\n maxDeep?: number;\r\n nid?: string;\r\n isContainRootNode?: boolean;\r\n version?: string;\r\n}\r\n\r\nexport function dependencyTree({\r\n presentableId,\r\n ...params\r\n}: DependencyTreeParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/presentables/${presentableId}/dependencyTree`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看展品关系树\r\ninterface RelationTreeParamsType {\r\n presentableId: string;\r\n version?: string;\r\n}\r\n\r\nexport function relationTree({\r\n presentableId,\r\n ...params\r\n}: RelationTreeParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/presentables/${presentableId}/relationTree`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看展品授权树\r\ninterface AuthTreeParamsType {\r\n presentableId: string;\r\n maxDeep?: number;\r\n nid?: string;\r\n isContainRootNode?: boolean;\r\n version?: string;\r\n}\r\n\r\nexport function authTree({ presentableId, ...params }: AuthTreeParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/presentables/${presentableId}/authTree`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 切换展品版本\r\ninterface PresentablesVersionParamsType {\r\n presentableId: string;\r\n version: string;\r\n}\r\n\r\nexport function presentablesVersion({\r\n presentableId,\r\n ...params\r\n}: PresentablesVersionParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/presentables/${presentableId}/version`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 设置展品自定义属性\r\ninterface UpdateRewritePropertyParamsType {\r\n presentableId: string;\r\n rewriteProperty: {\r\n key: string;\r\n value: string;\r\n remark: string;\r\n }[];\r\n}\r\n\r\nexport function updateRewriteProperty({\r\n presentableId,\r\n ...params\r\n}: UpdateRewritePropertyParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/presentables/${presentableId}/rewriteProperty`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量获取展品授权结果\r\ninterface BatchAuthParamsType {\r\n nodeId: number;\r\n authType: 1 | 2 | 3; // 1:节点侧授权 2:资源侧授权 3:节点+资源侧授权\r\n presentableIds: string;\r\n}\r\n\r\nexport function batchAuth({ nodeId, ...params }: BatchAuthParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/auths/presentables/nodes/${nodeId}/batchAuth/result`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看合约应用的展品列表\r\ninterface ContractAppliedPresentableParamsType {\r\n nodeId: number;\r\n contractIds: string;\r\n}\r\n\r\nexport function contractAppliedPresentable({\r\n nodeId,\r\n ...params\r\n}: ContractAppliedPresentableParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/presentables/${nodeId}/contractAppliedPresentable`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 一键批量创建展品\r\nexport interface BatchCreatePresentableParamsType {\r\n nodeId: number;\r\n resources: {\r\n resourceId: string;\r\n policyId?: string;\r\n }[];\r\n}\r\n\r\nexport function batchCreatePresentable(\r\n params: BatchCreatePresentableParamsType\r\n) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/presentables/createPresentableBatchEasy`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量更新展品\r\ninterface BatchUpdatePresentableParamsType {\r\n presentableIds: string[];\r\n addPolicies: {\r\n policyName: string;\r\n policyText: string;\r\n status?: 0 | 1;\r\n }[];\r\n}\r\n\r\nexport function batchUpdatePresentable({\r\n ...params\r\n}: BatchUpdatePresentableParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/presentables/updatePresentableBatch`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量切换展品上下线状态\r\ninterface BatchUpdatePresentableStatusParamsType {\r\n presentableIds: string[];\r\n onlineStatus: 0 | 1;\r\n}\r\n\r\nexport function batchUpdatePresentableStatus({\r\n ...params\r\n}: BatchUpdatePresentableStatusParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/presentables/updatePresentableOnlineStatusBatch`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 忽略展品更新提醒\r\ninterface IgnorePresentableVersionUpdateTipParamsType {\r\n presentableId: string;\r\n ignoreVersion: string;\r\n}\r\n\r\nexport function ignorePresentableVersionUpdateTip({\r\n presentableId,\r\n ...params\r\n}: IgnorePresentableVersionUpdateTipParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/presentables/${presentableId}/ignorePresentableVersionUpdateTip`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 创建展品合集\r\ninterface CreatePresentableCollectionParamsType {\r\n nodeId: number;\r\n presentableName: string;\r\n presentableTitle?: string;\r\n policies?: {\r\n policyName: string;\r\n policyText: string;\r\n status: 0 | 1;\r\n }[];\r\n tags?: string[];\r\n coverImages?: string[];\r\n resourceTypeCode?: string;\r\n}\r\n\r\nexport function createPresentableCollection({\r\n ...params\r\n}: CreatePresentableCollectionParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/presentables/catalogues`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 更新展品合集\r\ninterface UpdatePresentableCollectionParamsType {\r\n presentableId: string;\r\n catalogueProperty?: {\r\n collection_sort_list:\r\n | 'collection_sort_ascending'\r\n | 'collection_sort_descending';\r\n };\r\n}\r\n\r\nexport function updatePresentableCollection({\r\n presentableId,\r\n ...params\r\n}: UpdatePresentableCollectionParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/presentables/catalogues/${presentableId}`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量为展品合集添加单品\r\ninterface AddItemsToPresentableCollectionParamsType {\r\n presentableId: string;\r\n addCollectionItems: {\r\n presentableId: string;\r\n }[];\r\n}\r\n\r\nexport function addItemsToPresentableCollection({\r\n presentableId,\r\n ...params\r\n}: AddItemsToPresentableCollectionParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/presentables/catalogues/${presentableId}/items`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量从展品合集中移除单品\r\ninterface RemoveItemsFromPresentableCollectionParamsType {\r\n presentableId: string;\r\n removeIds: string;\r\n idType?: 'resourceId' | 'presentableId' | 'itemId';\r\n}\r\n\r\nexport function removeItemsFromPresentableCollection({\r\n presentableId,\r\n ...params\r\n}: RemoveItemsFromPresentableCollectionParamsType) {\r\n return FUtil.Request({\r\n method: 'DELETE',\r\n url: `/v2/presentables/catalogues/${presentableId}/items`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查询展品合集中的单品分页列表\r\ninterface GetItemsFromPresentableCollectionParamsType {\r\n presentableId: string;\r\n isLoadLatestVersionInfo?: 0 | 1;\r\n skip?: number;\r\n limit?: number;\r\n keywords?: string;\r\n sortField?: 'createDate' | 'sortId';\r\n sortType?: -1 | 1;\r\n}\r\n\r\nexport function getItemsFromPresentableCollection({\r\n presentableId,\r\n ...params\r\n}: GetItemsFromPresentableCollectionParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/presentables/catalogues/${presentableId}/items`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查询展品合集中的是否存在指定单品\r\ninterface GetItemsFromPresentableCollectionIsExistParamsType {\r\n presentableId: string;\r\n mountIds: string;\r\n idType?: 'resourceId' | 'presentableId';\r\n}\r\n\r\nexport function getItemsFromPresentableCollectionIsExist({\r\n presentableId,\r\n ...params\r\n}: GetItemsFromPresentableCollectionIsExistParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/presentables/catalogues/${presentableId}/items/checkExists`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 设置展品合集中的单品排序-手动排序\r\ninterface SetItemsSortFromPresentableCollectionManualParamsType {\r\n presentableId: string;\r\n itemIds: string[];\r\n targetSortId: number;\r\n}\r\n\r\nexport function setItemsSortFromPresentableCollectionManual({\r\n presentableId,\r\n ...params\r\n}: SetItemsSortFromPresentableCollectionManualParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/presentables/catalogues/${presentableId}/manualSort`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 设置展品合集中的单品排序-快速排序\r\ninterface SetItemsSortFromPresentableCollectionQuickParamsType {\r\n presentableId: string;\r\n sortField:\r\n | 'createDate'\r\n | 'itemTitle'\r\n | 'sortId'\r\n | 'resourceFirstVersionReleaseDate';\r\n sortType: 1 | -1;\r\n}\r\n\r\nexport function setItemsSortFromPresentableCollectionQuick({\r\n presentableId,\r\n ...params\r\n}: SetItemsSortFromPresentableCollectionQuickParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/presentables/catalogues/${presentableId}/reorder`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 获取合集单品自动收录规则\r\ninterface GetItemsAutoCollectRuleParamsType {\r\n presentableId: string;\r\n}\r\n\r\nexport function getItemsAutoCollectRule({\r\n presentableId,\r\n}: // ...params\r\nGetItemsAutoCollectRuleParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/presentables/catalogues/${presentableId}/items/collectRules`,\r\n // params: params,\r\n });\r\n}\r\n\r\n// 创建或更新合集单品自动收录规则\r\ninterface SetItemsAutoCollectRuleParamsType {\r\n presentableId: string;\r\n status: 0 | 1;\r\n conditionType: 1 | 2;\r\n filterConditions: {\r\n key: 'presentableTitle' | 'resourceTypeCode' | 'authIdentity';\r\n limitOperatorType:\r\n | 'INCLUDES'\r\n | 'NOT_INCLUDES'\r\n | 'STARTS_WITH'\r\n | 'ENDS_WITH'\r\n | 'EQUAL'\r\n | 'NOT_EQUAL';\r\n value: string;\r\n }[];\r\n}\r\n\r\nexport function setItemsAutoCollectRule({\r\n presentableId,\r\n ...params\r\n}: SetItemsAutoCollectRuleParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/presentables/catalogues/${presentableId}/items/collectRules`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量查询展品合集下的单品\r\ninterface GetItemsFromPresentableCollectionsParamsType {\r\n presentableIds: string;\r\n sortType?: 1 | -1;\r\n sortField?: 'createDate';\r\n limit?: number;\r\n}\r\n\r\nexport function getItemsFromPresentableCollections({\r\n ...params\r\n}: GetItemsFromPresentableCollectionsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n // url: `/v2/presentables/catalogues/items/batch/list?presentableIds=685cf423e1502e002fe3053b&limit=1&sortType=-1&sortField=createDate`,\r\n url: `/v2/presentables/catalogues/items/batch/list`,\r\n params: params,\r\n });\r\n}\r\n","import FUtil from '../utils';\r\n\r\n// 收藏资源\r\ninterface CollectResourceParamsType {\r\n resourceId: string;\r\n}\r\n\r\nexport function collectResource(params: CollectResourceParamsType) {\r\n // return FUtil.Axios.post('/v2/collections/resources', params);\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/collections/resources`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 查看收藏的资源列表\r\ninterface CollectionResourcesParamsType {\r\n skip?: number;\r\n limit?: number;\r\n keywords?: string;\r\n resourceType?: string;\r\n resourceTypeCode?: string;\r\n resourceTypeCategory?: 1 | 2;\r\n omitResourceType?: string;\r\n resourceStatus?: 0 | 1 | 2 | 4;\r\n}\r\n\r\nexport function collectionResources(params: CollectionResourcesParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/collections/resources`,\r\n params: params,\r\n });\r\n\r\n}\r\n\r\n// 删除收藏的资源\r\ninterface DeleteCollectResourceParamsType {\r\n resourceId: string;\r\n}\r\n\r\nexport function deleteCollectResource({resourceId}: DeleteCollectResourceParamsType) {\r\n // return FUtil.Axios.delete(`/v2/collections/resources/${resourceId}`);\r\n return FUtil.Request({\r\n method: 'DELETE',\r\n url: `/v2/collections/resources/${resourceId}`,\r\n // params: params,\r\n });\r\n}\r\n\r\n// 批量查询资源是否收藏\r\ninterface IsCollectedParamsType {\r\n resourceIds: string;\r\n}\r\n\r\nexport function isCollected(params: IsCollectedParamsType) {\r\n // return FUtil.Axios.get('/v2/collections/resources/isCollected', {\r\n // params\r\n // });\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/collections/resources/isCollected`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查询资源总收藏数量\r\ninterface CollectedCountParamsType {\r\n resourceId: string;\r\n}\r\n\r\nexport function collectedCount({resourceId}: CollectedCountParamsType) {\r\n // return FUtil.Axios.get(`/v2/collections/resources/${resourceId}/count`);\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/collections/resources/${resourceId}/count`,\r\n // params: params,\r\n });\r\n}\r\n","import FUtil from '../utils';\r\nimport { CommonReturn } from './tools';\r\n\r\n// interface IResourceInfo {\r\n// baseUpcastResources: {\r\n// resourceId: string;\r\n// resourceName: string;\r\n// }[],\r\n// coverImages: string[],\r\n// createDate: string;\r\n// intro: string;\r\n// latestVersion: string;\r\n// policies: {\r\n// policyId: string;\r\n// policyName: string;\r\n// status: 0 | 1;\r\n// }[];\r\n// resourceId: string;\r\n// resourceName: string;\r\n// resourceTitle: string;\r\n// resourceType: string[];\r\n// resourceVersions: {\r\n// createDate: string;\r\n// version: string;\r\n// versionId: string;\r\n// }[];\r\n// status: 0 | 1 | 2 | 4; // 0:待发行(初始状态) 1:上架 2:冻结 4:下架(也叫待上架)\r\n// tags: string[];\r\n// updateDate: string;\r\n// userId: number;\r\n// username: string;\r\n// operationType: number;\r\n// }\r\n\r\n// 创建资源\r\nexport interface CreateParamsType {\r\n name: string;\r\n subjectType?: 1 | 4; // 标的物类型(1:普通资源 4:合集资源) 默认是1\r\n resourceTitle?: string;\r\n // resourceType: string[]\r\n resourceTypeCode: string;\r\n resourceTypeName?: string;\r\n policies?: {\r\n policyName: string;\r\n policyText: string;\r\n status?: 0 | 1;\r\n }[];\r\n coverImages?: string[];\r\n intro?: string;\r\n tags?: string[];\r\n}\r\n\r\nexport function create(params: CreateParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/resources`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量创建资源\r\nexport interface CreateBatchParamsType {\r\n resourceTypeCode: string;\r\n resourceTypeName?: string;\r\n createResourceObjects: {\r\n name: string;\r\n resourceTitle?: string;\r\n policies?: {\r\n policyName: string;\r\n policyText: string;\r\n status?: 1 | 0;\r\n }[];\r\n coverImages?: string[];\r\n intro?: string;\r\n tags?: string[];\r\n\r\n version: string;\r\n fileSha1: string;\r\n filename: string;\r\n description?: string;\r\n dependencies?: {\r\n resourceId: string;\r\n versionRange: string;\r\n }[];\r\n customPropertyDescriptors?: {\r\n key: string;\r\n name: string;\r\n defaultValue: string;\r\n type: 'editableText' | 'readonlyText' | 'radio' | 'checkbox' | 'select';\r\n candidateItems?: string[];\r\n remark?: string;\r\n }[];\r\n baseUpcastResources?: {\r\n resourceId: string;\r\n }[];\r\n batchSignContracts?: {\r\n resourceId: string;\r\n // resourceName: string;\r\n policyIds: string[];\r\n // subjectType: 'resource' | '';\r\n subjectType: string;\r\n }[];\r\n // resolveResources: {\r\n // resourceId: string;\r\n // contracts: {\r\n // policyId: string;\r\n // }[];\r\n // }[];\r\n inputAttrs?: {\r\n key: string;\r\n value: string;\r\n }[];\r\n }[];\r\n}\r\n\r\nexport function createBatch(params: CreateBatchParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/resources/createBatch`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 更新资源信息\r\ninterface UpdateParamsType {\r\n resourceId: string;\r\n status?: 0 | 1;\r\n resourceTitle?: string;\r\n intro?: string;\r\n tags?: string[];\r\n coverImages?: string[];\r\n addPolicies?: {\r\n policyName: string;\r\n policyText: string;\r\n status?: 0 | 1; // 1:上线 0:下线\r\n }[];\r\n updatePolicies?: {\r\n policyId: string;\r\n status: 0 | 1; // 0:下线策略 1:上线策略\r\n }[];\r\n}\r\n\r\nexport function update(params: UpdateParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/resources/${params.resourceId}`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量更新资源信息\r\ninterface BatchUpdateParamsType {\r\n resourceIds: string[];\r\n status?: 1 | 4;\r\n // resourceTitle?: string;\r\n // intro?: string;\r\n // tags?: string[];\r\n // coverImages?: string[];\r\n addPolicies?: {\r\n policyName: string;\r\n policyText: string;\r\n status?: 0 | 1; // 1:上线 0:下线\r\n }[];\r\n // updatePolicies?: {\r\n // policyId: string;\r\n // status: 0 | 1; // 0:下线策略 1:上线策略\r\n // }[];\r\n}\r\n\r\nexport function batchUpdate(params: BatchUpdateParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/resources/updateBatch`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 查看资源分页列表\r\ninterface ListParamsType {\r\n skip?: number;\r\n limit?: number;\r\n keywords?: string;\r\n resourceType?: string;\r\n resourceTypeCode?: string;\r\n resourceTypeCategory?: 1 | 2; // 资源类型分类,1:基础类型,2:自定义类型,其实只有2时生效,生效时,resourceTypeCode为父类类型\r\n omitResourceType?: string;\r\n isSelf?: 0 | 1;\r\n userId?: number;\r\n status?: 0 | 1 | 2 | 4; // 分别是 0:待发行(初始状态) 1:上架 2:冻结 4:下架(也叫待上架)\r\n isLoadPolicyInfo?: 0 | 1;\r\n isLoadLatestVersionInfo?: 0 | 1;\r\n isLoadFreezeReason?: 0 | 1;\r\n projection?: string;\r\n startCreateDate?: string;\r\n endCreateDate?: string;\r\n tags?: string;\r\n sort?: string;\r\n // startResourceId?: string;\r\n operationCategoryCode?: string;\r\n operationTypes?: string;\r\n subjectType?: 1 | 4;\r\n}\r\n\r\n// interface ListReturnType extends CommonReturn {\r\n// data: IResourceInfo[];\r\n// }\r\n\r\nexport function list(params: ListParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看单个资源详情\r\ninterface InfoParamsType {\r\n resourceIdOrName: string;\r\n isLoadPolicyInfo?: 0 | 1;\r\n isTranslate?: 0 | 1;\r\n isLoadLatestVersionInfo?: 0 | 1;\r\n projection?: string;\r\n isLoadFreezeReason?: 0 | 1;\r\n}\r\n\r\n// interface InfoReturnType extends CommonReturn {\r\n// data: IResourceInfo\r\n// }\r\n\r\nexport function info({ resourceIdOrName, ...params }: InfoParamsType) {\r\n // : Promise<InfoReturnType>\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/${encodeURIComponent(resourceIdOrName)}`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 批量查询资源列表\r\ninterface BatchInfoParamsType {\r\n resourceIds?: string;\r\n resourceNames?: string;\r\n isLoadPolicyInfo?: 0 | 1;\r\n isTranslate?: 0 | 1;\r\n isLoadLatestVersionInfo?: 0 | 1;\r\n projection?: string;\r\n isLoadFreezeReason?: 0 | 1;\r\n}\r\n\r\n// interface BatchInfoReturnType extends CommonReturn {\r\n// data: IResourceInfo[];\r\n// }\r\n\r\nexport function batchInfo(params: BatchInfoParamsType) {\r\n // : Promise<BatchInfoReturnType>\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/list`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看资源的依赖树\r\ninterface DependencyTreeParamsType {\r\n resourceId: string;\r\n version?: string;\r\n maxDeep?: string;\r\n omitFields?: string;\r\n isContainRootNode?: boolean;\r\n}\r\n\r\nexport function dependencyTree({\r\n resourceId,\r\n ...params\r\n}: DependencyTreeParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/${resourceId}/dependencyTree`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看资源的授权树\r\ninterface AuthTreeParamsType {\r\n resourceId: string;\r\n version?: string;\r\n}\r\n\r\nexport function authTree({ resourceId, ...params }: AuthTreeParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/${resourceId}/authTree`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 创建资源版本\r\ninterface CreateVersionParamsType {\r\n resourceId: string;\r\n version: string;\r\n fileSha1: string;\r\n filename: string;\r\n description?: string;\r\n customPropertyDescriptors?: {\r\n key: string;\r\n name: string;\r\n defaultValue: string;\r\n type: 'editableText' | 'readonlyText' | 'radio' | 'checkbox' | 'select';\r\n candidateItems?: string[];\r\n remark?: string;\r\n }[];\r\n // resolveResources: {\r\n // resourceId: string;\r\n // contracts: {\r\n // policyId: string;\r\n // }[];\r\n // }[];\r\n inputAttrs?: {\r\n key: string;\r\n value: string;\r\n }[];\r\n\r\n dependencies?: {\r\n resourceId: string;\r\n versionRange: string;\r\n }[];\r\n baseUpcastResources?: {\r\n resourceId: string;\r\n }[];\r\n batchSignContracts?: {\r\n resourceId: string;\r\n policyIds: string[];\r\n }[];\r\n authExcludedItems: {\r\n resourceId: string;\r\n excludedType: 'contractId' | 'policyId';\r\n excludedValue: string;\r\n }[];\r\n}\r\n\r\nexport function createVersion({\r\n resourceId,\r\n ...params\r\n}: CreateVersionParamsType) {\r\n // return FUtil.Axios.post(`/v2/resources/${resourceId}/versions`, params);\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/resources/${resourceId}/versions`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 查看资源版本信息\r\ninterface ResourceVersionInfo1ParamsType {\r\n resourceId: string;\r\n version: string;\r\n projection?: string;\r\n}\r\n\r\ninterface ResourceVersionInfo2ParamsType {\r\n versionId: string;\r\n projection?: string;\r\n}\r\n\r\nexport function resourceVersionInfo1({\r\n resourceId,\r\n version,\r\n ...params\r\n}: ResourceVersionInfo1ParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/${resourceId}/versions/${version}`,\r\n params: params,\r\n });\r\n}\r\n\r\nexport function resourceVersionInfo2(params: ResourceVersionInfo2ParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/versions/detail`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看资源版本列表\r\ninterface getVersionListByResourceIDParamsType {\r\n resourceId: string;\r\n version?: string;\r\n projection?: string;\r\n sort?: string;\r\n}\r\n\r\nexport function getVersionListByResourceID({\r\n resourceId,\r\n ...params\r\n}: getVersionListByResourceIDParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/${resourceId}/versions`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 批量查询资源版本列表\r\ninterface GetVersionListParamsType {\r\n versionIds: string;\r\n projection?: string;\r\n}\r\n\r\nexport function getVersionList({ ...params }: GetVersionListParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/versions/list`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 根据sha1查询版本列表 (查询文件对象所挂载的资源及版本)\r\ninterface GetResourceVersionBySha1ParamsType {\r\n fileSha1: string;\r\n projection?: string;\r\n}\r\n\r\nexport function getResourceVersionBySha1({\r\n fileSha1,\r\n ...params\r\n}: GetResourceVersionBySha1ParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/files/${fileSha1}/versions`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 根据sha1查询资源列表 (查询文件对象所挂载的资源)\r\ninterface GetResourceBySha1ParamsType {\r\n fileSha1: string;\r\n projection?: string;\r\n}\r\n\r\nexport function getResourceBySha1({\r\n fileSha1,\r\n ...params\r\n}: GetResourceBySha1ParamsType) {\r\n // return FUtil.Axios.get(`/v2/resources/files/${fileSha1}`, {\r\n // params,\r\n // });\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/files/${fileSha1}`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 更新资源版本信息\r\ninterface UpdateResourceVersionInfoParamsType {\r\n version: string;\r\n resourceId: string;\r\n description?: string;\r\n customPropertyDescriptors?: {\r\n key: string;\r\n name: string;\r\n defaultValue: string;\r\n type: 'editableText' | 'readonlyText' | 'radio' | 'checkbox' | 'select';\r\n candidateItems?: string[];\r\n remark?: string;\r\n }[];\r\n resolveResources?: {\r\n resourceId: string;\r\n contracts: {\r\n policyId: string;\r\n }[];\r\n }[];\r\n inputAttrs: {\r\n key: string;\r\n value: string;\r\n }[];\r\n}\r\n\r\nexport function updateResourceVersionInfo(\r\n params: UpdateResourceVersionInfoParamsType\r\n) {\r\n // return FUtil.Axios.put(`/v2/resources/${params.resourceId}/versions/${params.version}`, params);\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/resources/${params.resourceId}/versions/${params.version}`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 保存或者更新资源版本草稿\r\ninterface SaveVersionsDraftParamsType {\r\n resourceId: string;\r\n draftData: any;\r\n}\r\n\r\nexport function saveVersionsDraft(params: SaveVersionsDraftParamsType) {\r\n // return FUtil.Axios.post(`/v2/resources/${params.resourceId}/versions/drafts`, params);\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/resources/${params.resourceId}/versions/drafts`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 查看资源版本草稿\r\ninterface LookDraftParamsType {\r\n resourceId: string;\r\n}\r\n\r\nexport function lookDraft(params: LookDraftParamsType) {\r\n // return FUtil.Axios.get(`/v2/resources/${params.resourceId}/versions/drafts`);\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/${params.resourceId}/versions/drafts`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 删除资源版本草稿\r\ninterface DeleteResourceDraftParamsType {\r\n resourceId: string;\r\n}\r\n\r\nexport function deleteResourceDraft({\r\n resourceId,\r\n}: DeleteResourceDraftParamsType) {\r\n // return FUtil.Axios.post(`/v2/resources/${params.resourceId}/versions/drafts`, params);\r\n return FUtil.Request({\r\n method: 'DELETE',\r\n url: `/v2/resources/${resourceId}/versions/drafts`,\r\n // data: params,\r\n });\r\n}\r\n\r\n// 校验文件是否被引入资源\r\ninterface ResourceIsUsedByOtherParamsType {\r\n fileSha1: string;\r\n}\r\n\r\nexport function resourceIsUsedByOther(params: ResourceIsUsedByOtherParamsType) {\r\n // return FUtil.Axios.get(`/v2/resources/versions/isCanBeCreate`, {\r\n // params,\r\n // });\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/versions/isCanBeCreate`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 下载资源文件\r\ninterface ResourcesDownloadParamsType {\r\n resourceId: string;\r\n version: string;\r\n}\r\n\r\nexport function resourcesDownload(params: ResourcesDownloadParamsType) {\r\n return (window.location.href =\r\n FUtil.Format.completeUrlByDomain('api') +\r\n `/v2/resources/${params.resourceId}/versions/${params.version}/download`);\r\n // return request.get(`/v2/resources/${params.resourceId}/versions/${params.$version}/download`, {\r\n // responseType: 'arraybuffer',\r\n // });\r\n}\r\n\r\n// 批量查看合同覆盖的版本集\r\ninterface BatchGetCoverageVersionsParamsType {\r\n resourceId: string;\r\n contractIds: string;\r\n}\r\n\r\nexport function batchGetCoverageVersions({\r\n resourceId,\r\n ...params\r\n}: BatchGetCoverageVersionsParamsType) {\r\n // return FUtil.Axios.get(`/v2/resources/${resourceId}/contracts/coverageVersions`, {\r\n // params,\r\n // });\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/${resourceId}/contracts/coverageVersions`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查询资源所解决的依赖集\r\ninterface ResolveResourcesParamsType {\r\n resourceId: string;\r\n}\r\n\r\ninterface CreateVersionReturnType extends CommonReturn {\r\n data: {\r\n resourceId: string;\r\n resourceName: string;\r\n versions: {\r\n version: string;\r\n versionId: string;\r\n contracts: {\r\n policyId: string;\r\n contractId: string;\r\n }[];\r\n }[];\r\n }[];\r\n}\r\n\r\nexport function resolveResources(\r\n params: ResolveResourcesParamsType\r\n): Promise<CreateVersionReturnType> {\r\n // return FUtil.Axios.get(`/v2/resources/${params.resourceId}/resolveResources`);\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/${params.resourceId}/resolveResources`,\r\n // params: params,\r\n });\r\n}\r\n\r\n// 批量设置策略应用的版本\r\ninterface BatchSetContractsParamsType {\r\n resourceId: string;\r\n subjects: {\r\n subjectId: string;\r\n versions: {\r\n version: string;\r\n policyId: string;\r\n operation: 0 | 1;\r\n }[];\r\n }[];\r\n}\r\n\r\nexport function batchSetContracts({\r\n resourceId,\r\n ...params\r\n}: BatchSetContractsParamsType) {\r\n // return FUtil.Axios.put(`/v2/resources/${resourceId}/versions/batchSetContracts`, params);\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/resources/${resourceId}/versions/batchSetContracts`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 资源依赖循环性检查\r\ninterface CycleDependencyCheckParamsType {\r\n resourceId: string;\r\n dependencies: {\r\n resourceId: string;\r\n versionRange: string;\r\n }[];\r\n}\r\n\r\nexport function cycleDependencyCheck({\r\n resourceId,\r\n ...params\r\n}: CycleDependencyCheckParamsType) {\r\n // return FUtil.Axios.post(`/v2/resources/${resourceId}/versions/cycleDependencyCheck`, params);\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/resources/${resourceId}/versions/cycleDependencyCheck`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 查看资源关系树\r\ninterface RelationTreeParamsType {\r\n resourceId: string;\r\n version?: string;\r\n versionRange?: string;\r\n}\r\n\r\nexport function relationTree({\r\n resourceId,\r\n ...params\r\n}: RelationTreeParamsType) {\r\n // return FUtil.Axios.get(`/v2/resources/${resourceId}/relationTree`, {\r\n // params,\r\n // });\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/${resourceId}/relationTree`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看含授权的资源关系树\r\ninterface RelationTreeAuthParamsType {\r\n resourceId: string;\r\n version?: string;\r\n versionRange?: string;\r\n}\r\n\r\nexport function relationTreeAuth({\r\n resourceId,\r\n ...params\r\n}: RelationTreeAuthParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/auths/resources/${resourceId}/relationTreeAuth`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看资源创建数量\r\ninterface ResourcesCountParamsType {\r\n userIds: string;\r\n status?: 0 | 1 | 2 | 3; // 0:下架 1:上架 2:冻结(冻结时处于下架状态) 3:冻结(冻结时处于上架状态)\r\n}\r\n\r\nexport function resourcesCount({ ...params }: ResourcesCountParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/count`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 批量查询资源授权结果\r\ninterface BatchAuthParamsType {\r\n resourceIds: string;\r\n versions?: string;\r\n versionRanges?: string;\r\n}\r\n\r\nexport function batchAuth({ ...params }: BatchAuthParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/auths/resources/batchAuth/results`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 批量查询资源授权结果\r\ninterface ResourcesRecommendParamsType {\r\n recommendType: 1 | 2; // 1: 推荐主题 2:占位主题\r\n}\r\n\r\nexport function resourcesRecommend({\r\n ...params\r\n}: ResourcesRecommendParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/recommend`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 根据资源类型查看推荐的标签\r\ninterface AvailableTagsParamsType {\r\n resourceTypeCode: string;\r\n}\r\n\r\nexport function availableTags({ ...params }: AvailableTagsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/tags/availableTags`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 列出资源类型分组排序\r\ninterface ResourceTypesParamsType {\r\n codeOrName?: string;\r\n category?: 1 | 2; // 种类 1:基础资源类型 2:自定义资源类型\r\n isMine?: boolean;\r\n status?: 0 | 1;\r\n supportCreateBatch?: 1 | 2;\r\n subjectType?: 1 | 4 | 5;\r\n}\r\n\r\nexport function resourceTypes({ ...params }: ResourceTypesParamsType = {}) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/types/listSimpleByGroup`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 简单根据父类型列出资源类型\r\ninterface ListSimpleByParentCodeParamsType {\r\n parentCode?: string;\r\n name?: string;\r\n category?: 1 | 2; // 种类 1:基础资源类型 2:自定义资源类型\r\n excludeParentCode?: boolean;\r\n isTerminate?: boolean;\r\n nameChain?: string;\r\n subjectType?: 1 | 4 | 5;\r\n supportCreateBatch?: 1 | 2;\r\n status?: 0 | 1;\r\n}\r\n\r\nexport function ListSimpleByParentCode({\r\n ...params\r\n}: ListSimpleByParentCodeParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/types/listSimpleByParentCode`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 根据编号取资源类型\r\ninterface GetResourceTypeInfoByCodeParamsType {\r\n code: string;\r\n}\r\n\r\nexport function getResourceTypeInfoByCode({\r\n ...params\r\n}: GetResourceTypeInfoByCodeParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/types/getInfoByCode`,\r\n params: params,\r\n });\r\n}\r\n\r\n//\r\ninterface GetResourceAttrListSimpleParamsType {}\r\n\r\nexport function getResourceAttrListSimple({\r\n ...params\r\n}: GetResourceAttrListSimpleParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/attrs/listSimple`,\r\n params: params,\r\n });\r\n}\r\n\r\ninterface ListSimple4RecentlyParamsType {}\r\n\r\nexport function listSimple4Recently({\r\n ...params\r\n}: ListSimple4RecentlyParamsType = {}) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/types/listSimple4Recently`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 通过key取资源属性\r\ninterface GetAttrsInfoByKeyParamsType {\r\n key: string;\r\n}\r\n\r\nexport function getAttrsInfoByKey({ ...params }: GetAttrsInfoByKeyParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/attrs/getInfoByKey`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 取可用的资源名称\r\ninterface GenerateResourceNamesParamsType {\r\n resourceNames: string[];\r\n}\r\n\r\nexport function generateResourceNames({\r\n resourceNames,\r\n}: GenerateResourceNamesParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/resources/generateResourceNames`,\r\n data: {\r\n resourceNames,\r\n },\r\n });\r\n}\r\n\r\n// 更新资源合集版本\r\ninterface UpdateCollectionParamsType {\r\n resourceId: string;\r\n description?: string;\r\n // serializeStatus?: 0 | 1;\r\n customPropertyDescriptors?: {\r\n key: string;\r\n defaultValue: string;\r\n type: string;\r\n candidateItems?: string[];\r\n remark?: string;\r\n }[];\r\n // resolveResources?: {\r\n // resourceId: string;\r\n // contracts: {\r\n // policyId: string;\r\n // }[];\r\n // }[];\r\n // optionalResolveResources?: {\r\n // resourceId: string;\r\n // contracts: {\r\n // policyId: string;\r\n // }[]\r\n // }[];\r\n // addCollectionItems?: {\r\n // resourceId: string;\r\n // itemTitle: string;\r\n // }[];\r\n catalogueProperty?: {\r\n collection_item_no_display?:\r\n | 'collection_item_no_display_show'\r\n | 'collection_item_no_display_hide';\r\n collection_item_image_display?:\r\n | 'collection_item_image_display_show'\r\n | 'collection_item_image_display_hide';\r\n collection_item_descr_display?:\r\n | 'collection_item_descr_display_show'\r\n | 'collection_item_descr_display_hide';\r\n collection_view?: 'collection_view_list' | 'collection_view_card';\r\n };\r\n isMergeCatalogueDraft?: 0 | 1;\r\n inputAttrs?: {\r\n key: string;\r\n value: string;\r\n }[];\r\n\r\n // dependencies?: {\r\n // resourceId: string;\r\n // versionRange: string;\r\n // }[];\r\n dependencies?: {\r\n resourceId: string;\r\n versionRange: string;\r\n }[];\r\n baseUpcastResources?: {\r\n resourceId: string;\r\n }[];\r\n batchSignContracts?: {\r\n resourceId: string;\r\n policyIds: string[];\r\n }[];\r\n authExcludedItems: {\r\n resourceId: string;\r\n excludedType: 'contractId' | 'policyId';\r\n excludedValue: string;\r\n }[];\r\n}\r\n\r\nexport function updateCollection({\r\n resourceId,\r\n ...params\r\n}: UpdateCollectionParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/resources/catalogue/${resourceId}`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量删除合集资源单品\r\ninterface deleteCollectionUnitResourcesParamsType {\r\n resourceId: string;\r\n removeCollectionItemIds: string[];\r\n}\r\n\r\nexport function deleteCollectionUnitResource({\r\n resourceId,\r\n removeCollectionItemIds,\r\n}: deleteCollectionUnitResourcesParamsType) {\r\n return FUtil.Request({\r\n method: 'DELETE',\r\n url: `/v2/resources/catalogue/${resourceId}?removeCollectionItemIds=${removeCollectionItemIds.join(\r\n ','\r\n )}`,\r\n // data: params,\r\n });\r\n}\r\n\r\n// 获取合集资源的单品列表\r\ninterface GetCollectionItemsParamsType {\r\n resourceId: string;\r\n skip?: number;\r\n limit?: number;\r\n sortField?: string;\r\n sortType?: 1 | -1;\r\n keywords?: string;\r\n isLoadLatestVersionInfo?: 0 | 1;\r\n}\r\n\r\nexport function getCollectionItems({\r\n resourceId,\r\n ...params\r\n}: GetCollectionItemsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/catalogue/${resourceId}/items`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 获取合集资源的单品列表(草稿)\r\ninterface GetCollectionItems_Draft_ParamsType {\r\n resourceId: string;\r\n skip?: number;\r\n limit?: number;\r\n sortField?: string;\r\n sortType?: 1 | -1;\r\n keywords?: string;\r\n isLoadLatestVersionInfo?: 0 | 1;\r\n}\r\n\r\nexport function getCollectionItems_Draft({\r\n resourceId,\r\n ...params\r\n}: GetCollectionItems_Draft_ParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/catalogues/drafts/${resourceId}/items`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 设置合集资源的单品排序序号\r\ninterface SetCollectionItemSortParamsType {\r\n resourceId: string;\r\n itemId: string;\r\n targetSortId: number;\r\n}\r\n\r\nexport function setCollectionItemSort({\r\n resourceId,\r\n ...params\r\n}: SetCollectionItemSortParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/resources/catalogue/${resourceId}/manualSort`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 重置合集资源的单品排序序号\r\ninterface ReorderCollectionItemsSortParamsType {\r\n resourceId: string;\r\n sortField: string;\r\n sortType: 1 | -1;\r\n}\r\n\r\nexport function reorderCollectionItemsSort({\r\n resourceId,\r\n ...params\r\n}: ReorderCollectionItemsSortParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/resources/catalogue/${resourceId}/reorder`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 查看资源是否在单品目录中存在\r\ninterface CheckExistCollectionItemsParamsType {\r\n resourceId: string;\r\n resourceIds: string;\r\n}\r\n\r\nexport function checkExistCollectionItems({\r\n resourceId,\r\n ...params\r\n}: CheckExistCollectionItemsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/catalogue/${resourceId}/items/checkExists`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 批量查询单品在资源侧的授权\r\ninterface GetCollectionItemsAuthParamsType {\r\n resourceId: string;\r\n itemIds: string;\r\n}\r\n\r\nexport function getCollectionItemsAuth({\r\n resourceId,\r\n ...params\r\n}: GetCollectionItemsAuthParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/auths/resources/${resourceId}/items/batchAuth`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 批量分组获取合集资源的单品列表\r\ninterface BatchResourceItemsParamsType {\r\n resourceIds: string;\r\n limit?: number;\r\n sortField?: string;\r\n sortType?: 1 | -1;\r\n isLoadItemResourceDetailInfo?: 0 | 1;\r\n isLoadLatestVersionInfo?: 0 | 1;\r\n}\r\n\r\nexport function batchResourceItems({\r\n ...params\r\n}: BatchResourceItemsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/catalogue/items/batch/list`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 批量分组获取合集资源的单品列表(草稿)\r\ninterface BatchResourceItems_Draft_ParamsType {\r\n resourceIds: string;\r\n limit?: number;\r\n sortField?: string;\r\n sortType?: 1 | -1;\r\n isLoadItemResourceDetailInfo?: 0 | 1;\r\n}\r\n\r\nexport function batchResourceItems_Draft({\r\n ...params\r\n}: BatchResourceItems_Draft_ParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/catalogues/drafts/items/batch/list`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看合集更新日志分页列表\r\ninterface GetCollectionUpdateLogsParamsType {\r\n resourceId: string;\r\n skip?: number;\r\n limit?: number;\r\n sortType?: 1 | -1;\r\n}\r\n\r\nexport function getCollectionUpdateLogs({\r\n resourceId,\r\n ...params\r\n}: GetCollectionUpdateLogsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/catalogue/${resourceId}/updateLogs`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 获取合集单品自动收录规则\r\ninterface GetCollectionCollectRulesParamsType {\r\n resourceId: string;\r\n}\r\n\r\nexport function getCollectionCollectRules({\r\n resourceId,\r\n}: GetCollectionCollectRulesParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/catalogue/${resourceId}/items/collectRules`,\r\n // params: params,\r\n });\r\n}\r\n\r\n// 创建或更新合集单品自动收录规则\r\ninterface SetCollectRulesParamsType {\r\n resourceId: string;\r\n serializeStatus?: 0 | 1;\r\n status: 0 | 1;\r\n conditionType: 1 | 2;\r\n filterConditions: {\r\n key: 'resourceTitle' | 'resourceTypeCode' | 'authIdentity';\r\n limitOperatorType:\r\n | 'INCLUDES'\r\n | 'NOT_INCLUDES'\r\n | 'STARTS_WITH'\r\n | 'ENDS_WITH'\r\n | 'EQUAL'\r\n | 'NOT_EQUAL';\r\n value: string;\r\n }[];\r\n}\r\n\r\nexport function setCollectRules({\r\n resourceId,\r\n ...params\r\n}: SetCollectRulesParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/resources/catalogue/${resourceId}/items/collectRules`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量更新同合集下的单品信息\r\ninterface SetItemsTitleParamsType {\r\n resourceId: string;\r\n data: {\r\n itemId: string;\r\n itemTitle?: string;\r\n authExcludedItems?: {\r\n resourceId: string;\r\n excludedType: 'contractId' | 'policyId';\r\n excludedValue: string;\r\n }[];\r\n }[];\r\n}\r\n\r\nexport function setItemsTitle({ resourceId, data }: SetItemsTitleParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/resources/catalogue/${resourceId}/items`,\r\n data: data,\r\n });\r\n}\r\n\r\n// 批量删除合集资源单品(草稿)\r\ninterface deleteCollectionItems_Draft_ParamsType {\r\n resourceId: string;\r\n removeCollectionItemIds: string[];\r\n}\r\n\r\nexport function deleteCollectionItems_Draft({\r\n resourceId,\r\n removeCollectionItemIds,\r\n}: deleteCollectionItems_Draft_ParamsType) {\r\n return FUtil.Request({\r\n method: 'DELETE',\r\n url: `/v2/resources/catalogues/drafts/${resourceId}/items?removeCollectionItemIds=${removeCollectionItemIds.join(\r\n ','\r\n )}`,\r\n // data: params,\r\n });\r\n}\r\n\r\n// 设置合集资源的单品排序序号(草稿)\r\ninterface SetCollectionItemsSortID_Draft_ParamsType {\r\n resourceId: string;\r\n data: {\r\n itemIds: string[];\r\n targetSortId: number;\r\n };\r\n}\r\n\r\nexport function setCollectionItemsSortID_Draft({\r\n resourceId,\r\n data,\r\n}: SetCollectionItemsSortID_Draft_ParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/resources/catalogues/drafts/${resourceId}/manualSort`,\r\n data: data,\r\n });\r\n}\r\n\r\n// 重置合集资源的单品排序序号(草稿)\r\ninterface ReorderCollectionItems_Draft_ParamsType {\r\n resourceId: string;\r\n sortField: 'createDate' | 'itemTitle' | 'sortId' | 'resourceUpdateDate';\r\n sortType: -1 | 1;\r\n}\r\n\r\nexport function reorderCollectionItems_Draft({\r\n resourceId,\r\n ...params\r\n}: ReorderCollectionItems_Draft_ParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/resources/catalogues/drafts/${resourceId}/reorder`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 查看资源是否在单品目录中存在(草稿)\r\ninterface ResourceIsExistInItems_Draft_ParamsType {\r\n resourceId: string;\r\n resourceIds: string;\r\n}\r\n\r\nexport function resourceIsExistInItems_Draft({\r\n resourceId,\r\n ...params\r\n}: ResourceIsExistInItems_Draft_ParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/catalogues/drafts/${resourceId}/items/checkExists`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 批量更新同合集下的单品信息(草稿)\r\ninterface UpdateCollectionItemsInfo_Draft_ParamsType {\r\n resourceId: string;\r\n data: {\r\n itemId: string;\r\n itemTitle: string;\r\n }[];\r\n}\r\n\r\nexport function updateCollectionItemsInfo_Draft({\r\n resourceId,\r\n data,\r\n}: UpdateCollectionItemsInfo_Draft_ParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n // url: `/v2/resources/catalogue/${resourceId}/items`,\r\n url: `/v2/resources/catalogues/drafts/${resourceId}/items`,\r\n data: data,\r\n });\r\n}\r\n\r\n// 更新单品授权方案(草稿)\r\ninterface UpdateCollectionItemAuthorization_Draft_ParamsType {\r\n resourceId: string;\r\n itemId: string;\r\n // resolveResources: {\r\n // resourceId: string;\r\n // contracts: {\r\n // policyId: string;\r\n // }[];\r\n // }[];\r\n}\r\n\r\nexport function updateCollectionItemAuthorization_Draft({\r\n resourceId,\r\n itemId,\r\n ...data\r\n}: UpdateCollectionItemAuthorization_Draft_ParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n // url: `/v2/resources/catalogues/${resourceId}/items/${itemId}`,\r\n url: `/v2/resources/catalogues/drafts/${resourceId}/items/${itemId}`,\r\n data: data,\r\n });\r\n}\r\n\r\n// 批量新增合集资源单品(草稿)\r\ninterface AddResourceItems_Draft_ParamsType {\r\n resourceId: string;\r\n addCollectionItems: {\r\n resourceId: string;\r\n itemTitle?: string;\r\n // resolveResources?: {\r\n // resourceId: string;\r\n // contracts: {\r\n // policyId: string;\r\n // }[];\r\n // }[];\r\n authExcludedItems?: {\r\n resourceId: string;\r\n excludedType: 'contractId' | 'policyId';\r\n excludedValue: string;\r\n }[];\r\n batchSignContracts?: {\r\n resourceId: string;\r\n policyIds: string[];\r\n }[];\r\n }[];\r\n isPublish?: 1 | 0;\r\n}\r\n\r\nexport function addResourceItems_Draft({\r\n resourceId,\r\n ...params\r\n}: AddResourceItems_Draft_ParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/resources/catalogues/drafts/${resourceId}/items`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量查询草稿中的单品在资源侧的授权\r\ninterface GetCollectionItemsAuth_Draft_ParamsType {\r\n resourceId: string;\r\n itemIds: string;\r\n}\r\n\r\nexport function getCollectionItemsAuth_Draft({\r\n resourceId,\r\n ...params\r\n}: GetCollectionItemsAuth_Draft_ParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/catalogues/drafts/${resourceId}/items/batchAuth`,\r\n params: params,\r\n });\r\n}\r\n","import FUtil from '../utils';\r\nimport { AxiosRequestConfig } from 'axios';\r\n\r\n// 用户登录\r\ninterface LoginParamsType {\r\n loginName: string;\r\n password: string;\r\n isRemember?: 0 | 1;\r\n returnUrl?: string;\r\n jwtType?: string;\r\n}\r\n\r\nexport function login({ ...params }: LoginParamsType) {\r\n // return FUtil.Axios.post(`/v2/passport/login`, params);\r\n return FUtil.Request(\r\n {\r\n method: 'POST',\r\n url: '/v2/passport/login',\r\n data: params,\r\n },\r\n { noRedirect: true }\r\n );\r\n}\r\n\r\n// 用户登出\r\ninterface LogoutParamsType {\r\n returnUrl?: string;\r\n}\r\n\r\nexport function logout({ ...params }: LogoutParamsType = {}) {\r\n return FUtil.Request(\r\n {\r\n method: 'GET',\r\n url: '/v2/passport/logout',\r\n params: params,\r\n },\r\n { noRedirect: true }\r\n );\r\n}\r\n\r\n// 分页查看用户列表\r\ninterface UsersParamsType {\r\n skip?: number;\r\n limit?: number;\r\n keywords?: string;\r\n}\r\n\r\nexport function users(params: UsersParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/users/search`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 批量获取用户列表\r\ninterface BatchUserListParamsType {\r\n userIds: string;\r\n}\r\n\r\nexport function batchUserList(params: BatchUserListParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/users/list`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 获取当前登录用户信息\r\ninterface CurrentUserInfoParamsType {}\r\n\r\nexport function currentUserInfo({}: CurrentUserInfoParamsType = {}) {\r\n // return FUtil.Axios.get(`/v1/userinfos/current`);\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: '/v2/users/current',\r\n // params: params,\r\n });\r\n}\r\n\r\n// 查看用户详情\r\ninterface UserDetailsParamsType {\r\n mobile?: string;\r\n username?: string;\r\n email?: string;\r\n userId?: number;\r\n}\r\n\r\nexport function userDetails(params: UserDetailsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/users/detail`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 注册用户\r\ninterface LogonParamsType {\r\n loginName: string;\r\n password: string;\r\n username: string;\r\n authCode: string;\r\n}\r\n\r\nexport function logon(params: LogonParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: '/v2/users',\r\n data: params,\r\n });\r\n}\r\n\r\n// 重置密码\r\ninterface ResetPasswordParamsType {\r\n loginName: string;\r\n password: string;\r\n authCode: string;\r\n}\r\n\r\nexport function resetPassword({\r\n loginName,\r\n ...params\r\n}: ResetPasswordParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/users/${loginName}/resetPassword`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 修改密码\r\ninterface UpdatePasswordParamsType {\r\n oldPassword: string;\r\n newPassword: string;\r\n}\r\n\r\nexport function updatePassword(params: UpdatePasswordParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/users/current/updatePassword`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 上传头像\r\ninterface UploadHeadImgParamsType {\r\n file: File;\r\n}\r\n\r\nexport function uploadHeadImg(\r\n params: UploadHeadImgParamsType,\r\n config?: AxiosRequestConfig\r\n) {\r\n const formData = new FormData();\r\n for (const [key, value] of Object.entries(params)) {\r\n if (value) {\r\n formData.append(key, value);\r\n }\r\n }\r\n\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/users/current/uploadHeadImg`,\r\n data: formData,\r\n ...config,\r\n });\r\n}\r\n\r\n// 修改用户详细信息\r\ninterface UpdateDetailInfoParamsType {\r\n areaCode?: string;\r\n occupation?: string;\r\n birthday?: string;\r\n sex?: 0 | 1 | 2; // 性别 0:未知 1:男 2:女\r\n intro?: string;\r\n}\r\n\r\nexport function updateDetailInfo(params: UpdateDetailInfoParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/users/current/detailInfo`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 校验当前登录用户的密码\r\ninterface VerifyLoginPasswordParamsType {\r\n password: string;\r\n}\r\n\r\nexport function verifyLoginPassword(params: VerifyLoginPasswordParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/users/verifyLoginPassword`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 获取省份列表\r\ninterface AreasProvincesParamsType {}\r\n\r\nexport function areasProvinces(params: AreasProvincesParamsType = {}) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/areas/provinces`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 绑定或换绑手机号和邮箱\r\ninterface UpdateMobileOrEmailParamsType {\r\n oldAuthCode?: string;\r\n newAuthCode: string;\r\n newLoginName: string;\r\n}\r\n\r\nexport function updateMobileOrEmail(params: UpdateMobileOrEmailParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/users/current/mobileOrEmail`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 非登录用户绑定与自动注册流程\r\ninterface RegisterOrBindParamsType {\r\n loginName: string;\r\n password: string;\r\n identityId: string;\r\n}\r\n\r\nexport function registerOrBind(params: RegisterOrBindParamsType) {\r\n return FUtil.Request(\r\n {\r\n method: 'POST',\r\n url: `/v2/thirdParty/registerOrBind`,\r\n data: params,\r\n },\r\n { noRedirect: true }\r\n );\r\n}\r\n\r\n// 登录用户解绑第三方登录\r\ninterface ThirdPartyUnbindParamsType {\r\n thirdPartyType: string;\r\n password: string;\r\n}\r\n\r\nexport function thirdPartyUnbind(params: ThirdPartyUnbindParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/thirdParty/unbind`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 查询登录用户已绑定的第三方信息\r\ninterface ThirdPartyListParamsType {}\r\n\r\nexport function thirdPartyList(params: ThirdPartyListParamsType = {}) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/thirdParty/list`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查询用户名称是否绑定了微信号\r\ninterface ThirdPartyIsBindParamsType {\r\n username: string;\r\n thirdPartyType: string;\r\n}\r\n\r\nexport function thirdPartyIsBind(params: ThirdPartyIsBindParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/thirdParty/isBind`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 签到\r\nexport function signForCoins() {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/facade/sign`,\r\n });\r\n}\r\n\r\n// 查询签到信息\r\nexport function getSignInfo() {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/facade/signInfo`,\r\n });\r\n}\r\n\r\ninterface SearchForConsoleParamsType {\r\n skip?: number;\r\n limit?: number;\r\n keywords?: string;\r\n}\r\n\r\nexport function searchForConsole(params: SearchForConsoleParamsType = {}) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: '/v2/users/searchForConsole',\r\n params: params,\r\n });\r\n}\r\n\r\ninterface WechatPublicApisShareSignatureParamsType {\r\n shareUrl: string;\r\n}\r\n\r\nexport function wechatPublicApisShareSignature({\r\n ...params\r\n}: WechatPublicApisShareSignatureParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: '/v2/users/wechatPublicApis/shareSignature',\r\n params: params,\r\n });\r\n}\r\n","import FUtil from '../utils';\r\n\r\n// 分页获取测试资源列表\r\ninterface TestResourcesParamsType {\r\n nodeId: number;\r\n skip?: number;\r\n limit?: number;\r\n resourceType?: string;\r\n onlineStatus?: 0 | 1 | 2;\r\n tags?: string;\r\n omitResourceType?: string;\r\n keywords?: string;\r\n}\r\n\r\nexport function testResources({nodeId, ...params}: TestResourcesParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/testNodes/${nodeId}/testResources`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 创建节点测试规则\r\ninterface CreateRulesParamsType {\r\n nodeId: number;\r\n testRuleText: string;\r\n}\r\n\r\nexport function createRules({nodeId, ...params}: CreateRulesParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/testNodes/${nodeId}/rules`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量查询测试资源列表\r\ninterface BatchTestResourcesParamsType {\r\n nodeId: number;\r\n entityType?: 'resource' | 'object';\r\n entityIds?: string;\r\n entityNames?: string;\r\n testResourceNames?: string;\r\n projection?: string;\r\n}\r\n\r\nexport function batchTestResources({nodeId, ...params}: BatchTestResourcesParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/testNodes/${nodeId}/testResources/list`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 搜索测试资源依赖树\r\ninterface DependencyTreeParamsType {\r\n nodeId: number;\r\n keywords: string;\r\n resourceType?: string;\r\n omitResourceType?: string;\r\n}\r\n\r\nexport function dependencyTree({nodeId, ...params}: DependencyTreeParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/testNodes/${nodeId}/testResources/dependencyTree/search`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 追加节点的测试规则 (在现有测试规则尾部追加新的测试规则)\r\ninterface PutRulesParamsType {\r\n nodeId: number;\r\n additionalTestRule: string;\r\n}\r\n\r\nexport function putRules({nodeId, ...params}: PutRulesParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/testNodes/${nodeId}/rules`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 查看节点当前测试规则\r\ninterface TestNodeRulesParamsType {\r\n nodeId: number;\r\n}\r\n\r\nexport function testNodeRules({nodeId}: TestNodeRulesParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/testNodes/${nodeId}/rules`,\r\n // params: params,\r\n });\r\n}\r\n\r\n// 更新测试资源的授权合约\r\ninterface UpdateTestResourceContractsParamsType {\r\n testResourceId: string;\r\n resolveResources: {\r\n resourceId: string;\r\n contracts: {\r\n policyId: string;\r\n }[];\r\n }[];\r\n}\r\n\r\nexport function updateTestResourceContracts({testResourceId, ...params}: UpdateTestResourceContractsParamsType) {\r\n // return FUtil.Axios.put(`/v2/testNodes/testResources/${testResourceId}`, params);\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/testNodes/testResources/${testResourceId}`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 获取并过滤资源依赖树\r\ninterface DependencyTreeFilterParamsType {\r\n testResourceId: string;\r\n dependentEntityId: string;\r\n dependentEntityVersionRange?: string;\r\n}\r\n\r\nexport function dependencyTreeFilter({testResourceId, ...params}: DependencyTreeFilterParamsType) {\r\n // return FUtil.Axios.get(`/v2/testNodes/testResources/${testResourceId}/dependencyTree/filter`, {\r\n // params\r\n // });\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/testNodes/testResources/${testResourceId}/dependencyTree/filter`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看测试资源依赖树\r\ninterface TestResourcesDependencyTreeParamsType {\r\n testResourceId: string;\r\n}\r\n\r\nexport function testResourcesDependencyTree({testResourceId}: TestResourcesDependencyTreeParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/testNodes/testResources/${testResourceId}/dependencyTree`,\r\n // params: params,\r\n });\r\n}\r\n\r\n// 查看测试资源授权树\r\ninterface TestResourcesAuthTreeParamsType {\r\n testResourceId: string;\r\n}\r\n\r\nexport function testResourcesAuthTree({testResourceId}: TestResourcesAuthTreeParamsType) {\r\n // return FUtil.Axios.get(`/v2/testNodes/testResources/${testResourceId}`);\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/testNodes/testResources/${testResourceId}/authTree`,\r\n // params: params,\r\n });\r\n}\r\n\r\n// 查看测试资源详情\r\ninterface TestResourceDetailsParamsType {\r\n testResourceId: string;\r\n}\r\n\r\nexport function testResourceDetails({testResourceId}: TestResourceDetailsParamsType) {\r\n // return FUtil.Axios.get(`/v2/testNodes/testResources/${testResourceId}`);\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/testNodes/testResources/${testResourceId}`,\r\n // params: params,\r\n });\r\n}\r\n\r\n// 查询包含指定依赖的测试资源\r\ninterface SearchTestResourcesByDependencyParamsType {\r\n nodeId: number;\r\n dependentEntityId: string;\r\n dependentEntityVersionRange?: string;\r\n resourceType?: string;\r\n omitResourceType?: string;\r\n}\r\n\r\nexport function searchTestResourcesByDependency({nodeId, ...params}: SearchTestResourcesByDependencyParamsType) {\r\n // return FUtil.Axios.get(`/v2/testNodes/${nodeId}/testResources/searchByDependency`, {\r\n // params,\r\n // });\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/testNodes/${nodeId}/testResources/searchByDependency`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 重新匹配节点测试规则\r\ninterface RulesRematchParamsType {\r\n nodeId: number;\r\n isMandatoryMatch?: 0 | 1; // 0:否 1:是 默认1\r\n}\r\n\r\nexport function rulesRematch({nodeId, ...params}: RulesRematchParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/testNodes/${nodeId}/rules/rematch`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 节点测试规则预执行(不存档)\r\ninterface RulesPreExecutionParamsType {\r\n nodeId: number;\r\n testRuleText: string;\r\n}\r\n\r\nexport function rulesPreExecution({nodeId, ...params}: RulesPreExecutionParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/testNodes/${nodeId}/rules/preExecution`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量获取测试资源授权结果\r\ninterface BatchGetAuthsParamsType {\r\n nodeId: number;\r\n exhibitIds: string;\r\n authType: 1 | 2 | 3; //授权类型 1:节点侧授权 2:资源侧授权 3:节点+资源侧授权\r\n}\r\n\r\nexport function batchGetAuths({nodeId, ...params}: BatchGetAuthsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/auths/exhibits/${nodeId}/test/batchAuth/results`,\r\n params: params,\r\n });\r\n}\r\n","import FUtil from '../utils';\r\n\r\n// 创建合同\r\ninterface CreateContractParamsType {\r\n subjectId: string;\r\n subjectType: 1 | 2 | 3; // 标的物类型 1:资源 2:展品 3:用户组\r\n policyId: string;\r\n licenseeId: string | number;\r\n licenseeIdentityType: 1 | 2 | 3; // 乙方身份类型 1:资源方 2:节点方 3:C端用户\r\n}\r\n\r\nexport function createContract({...params}: CreateContractParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/contracts`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量创建合同\r\ninterface BatchCreateContractsParamsType {\r\n subjects: {\r\n subjectId: string;\r\n policyId: string;\r\n }[];\r\n subjectType: 1 | 2 | 3; // 标的物类型 1:资源 2:展品 3:用户组\r\n licenseeId: string | number;\r\n licenseeIdentityType: 1 | 2 | 3; // 乙方身份类型 1:资源方 2:节点方 3:C端用户\r\n}\r\n\r\nexport function batchCreateContracts({...params}: BatchCreateContractsParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/contracts/batchSign`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 查看合同详情\r\ninterface ContractDetailsParamsType {\r\n contractId: string;\r\n isLoadPolicyInfo?: 0 | 1;\r\n projection?: string;\r\n isTranslate?: 0 | 1;\r\n}\r\n\r\nexport function contractDetails({contractId, ...params}: ContractDetailsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/contracts/${contractId}`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看合同分页列表\r\ninterface ContractsParamsType {\r\n skip?: number;\r\n limit?: number;\r\n identityType: 1 | 2;\r\n licensorId?: string;\r\n licensorName?: string;\r\n licenseeId?: string;\r\n licenseeName?: string;\r\n subjectIds?: string;\r\n subjectType?: 1 | 2 | 3;\r\n isDefault?: number;\r\n keywords?: string;\r\n status?: 0 | 1 | 2; // 合同状态 0:生效中 1:已终止 2:异常的\r\n authStatus?: 1 | 2 | 128; // 合同授权状态 1:正式授权 2:测试授权 128:未获得授权,多个通过'与'运算\r\n order?: 'asc' | 'desc'; // asc:正序 desc:倒序\r\n licenseeIdentityType?: number;\r\n isLoadPolicyInfo?: 0 | 1;\r\n isTranslate?: 0 | 1;\r\n startDate?: string;\r\n endDate?: string;\r\n projection?: string;\r\n}\r\n\r\nexport function contracts(params: ContractsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/contracts`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查询合约授权方搜索建议\r\ninterface KeywordSuggestParamsType {\r\n identityType: 1 | 2;\r\n prefix: string;\r\n prefixType: 1 | 2;\r\n startDate?: string;\r\n endDate?: string;\r\n}\r\n\r\nexport function keywordSuggest(params: KeywordSuggestParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/contracts/keywordSuggest`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 批量查询合同列表\r\ninterface BatchContractsParamsType {\r\n contractIds?: string;\r\n subjectIds?: string;\r\n subjectType?: 1 | 2 | 3;\r\n licenseeIdentityType?: 1 | 2 | 3;\r\n licensorId?: string;\r\n licenseeId?: string | number;\r\n isLoadPolicyInfo?: 0 | 1;\r\n projection?: string;\r\n isTranslate?: 0 | 1;\r\n contractStatus?: number;\r\n}\r\n\r\nexport function batchContracts(params: BatchContractsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/contracts/list`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看合同流转记录分页列表\r\ninterface TransitionRecordsParamsType {\r\n contractId: string;\r\n skip?: number;\r\n limit?: number;\r\n isTranslate?: 0 | 1;\r\n}\r\n\r\nexport function transitionRecords({contractId, ...params}: TransitionRecordsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/contracts/${contractId}/transitionRecords`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 统计合约签约量\r\ninterface ContractsSignCountParamsType {\r\n objectIds: string | number;\r\n objectType: 1 | 2 | 3 | 4 | 5; // 统计对象类型(1:甲方ID 2:甲方所属ID 3:乙方ID 4:乙方所属ID 5:标的物ID)\r\n subjectType: 1 | 2 | 3; // 标的物类型(1:资源 2:展品 3:用户组)\r\n startDate?: string;\r\n endDate?: string;\r\n}\r\n\r\nexport function contractsSignCount(params: ContractsSignCountParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/contracts/signCount`,\r\n params: params,\r\n });\r\n}\r\n","import FUtil from '../utils';\r\n\r\n// 分页查询账户交易流水\r\ninterface DetailsParamsType {\r\n skip?: number;\r\n limit?: number;\r\n accountId: string;\r\n startCreatedDate?: string;\r\n endCreatedDate?: string;\r\n amountStartPoint?: number;\r\n amountEndPoint?: number;\r\n serialNo?: string;\r\n status?: 1 | 2 | 3;\r\n keywords?: string;\r\n}\r\n\r\nexport function details({accountId, ...params}: DetailsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/transactions/details/${accountId}`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看用户个人账户信息\r\ninterface IndividualAccountsParamsType {\r\n userId: number;\r\n}\r\n\r\nexport function individualAccounts({userId, ...params}: IndividualAccountsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/accounts/individualAccounts/${userId}`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查询交易记录详情\r\ninterface TransactionDetailsParamsType {\r\n recordId: string;\r\n}\r\n\r\nexport function transactionDetails({recordId}: TransactionDetailsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/transactions/records/${recordId}`,\r\n // params: params,\r\n });\r\n}\r\n\r\n// 激活个人账户\r\ninterface ActivateIndividualAccountsParamsType {\r\n password: string;\r\n authCode: string;\r\n messageAddress: string;\r\n}\r\n\r\nexport function activateIndividualAccounts({...params}: ActivateIndividualAccountsParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/accounts/individualAccounts/activate`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 修改交易密码\r\ninterface ChangePasswordParamsType {\r\n password: string;\r\n oldPassword: string;\r\n authCode: string;\r\n messageAddress: string;\r\n}\r\n\r\nexport function changePassword({...params}: ChangePasswordParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/accounts/individualAccounts`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 重置交易密码\r\ninterface ResetPasswordParamsType {\r\n loginPassword: string;\r\n password: string;\r\n authCode: string;\r\n messageAddress: string;\r\n}\r\n\r\nexport function resetPassword({...params}: ResetPasswordParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/accounts/individualAccounts/resetPassword`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 验证交易密码\r\ninterface VerifyTransactionPasswordParamsType {\r\n password: string;\r\n}\r\n\r\nexport function verifyTransactionPassword({...params}: VerifyTransactionPasswordParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/accounts/individualAccounts/verifyTransactionPassword`,\r\n params: params,\r\n });\r\n}\r\n","import FUtil from '../utils';\r\n\r\n// 发送短信或邮件验证码\r\ninterface SendVerificationCodeParamsType {\r\n loginName: string;\r\n authCodeType: 'register' | 'resetPassword' | 'activateTransactionAccount' | 'updateTransactionAccountPwd' | 'updateMobileOrEmail';\r\n}\r\n\r\nexport function sendVerificationCode(params: SendVerificationCodeParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/messages/send`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 校验短信或邮件验证码\r\ninterface VerifyVerificationCodeParamsType {\r\n authCode: string;\r\n address: string;\r\n authCodeType: 'register' | 'resetPassword' | 'activateTransactionAccount' | 'updateTransactionAccountPwd' | 'updateMobileOrEmail';\r\n}\r\n\r\nexport function verifyVerificationCode(params: VerifyVerificationCodeParamsType): Promise<any> {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/messages/verify`,\r\n params: params,\r\n });\r\n}\r\n","import FUtil from '../utils';\r\n\r\n// 批量获取授权策略列表\r\ninterface TransactionParamsType {\r\n contractId: string;\r\n eventId: string;\r\n accountId: string;\r\n transactionAmount: number;\r\n password: string;\r\n}\r\n\r\nexport function transaction({contractId, ...params}: TransactionParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/contracts/${contractId}/events/payment`,\r\n data: params,\r\n });\r\n}\r\n","import FUtil from '../utils';\r\n\r\n// 列出活动\r\ninterface List4ClientParamsType {\r\n skip?: number;\r\n limit?: number;\r\n}\r\n\r\nexport function list4Client(params: List4ClientParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/list4Client`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查询活动\r\ninterface Find4ClientParamsType {\r\n _id: string;\r\n}\r\n\r\nexport function find4Client(params: Find4ClientParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/find4Client`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 列出广告\r\ninterface AdsListParamsType {\r\n skip?: number;\r\n limit?: number;\r\n place: 1 | 2 | 3 | 4 | 5; // 投放位置 1:顶部公告栏 2:右侧浮窗 3:概览页 4:发现页 5. 首页轮播图\r\n\r\n}\r\n\r\nexport function adsList(params: AdsListParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/ads/list4Client`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查询广告\r\ninterface AdsDetailsParamsType {\r\n skip?: number;\r\n limit?: number;\r\n place: 1 | 2 | 3 | 4; // 投放位置 1:顶部公告栏 2:右侧浮窗 3:概览页 4:发现页\r\n}\r\n\r\nexport function adsDetails(params: AdsDetailsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/ads/find4Client`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 访问广告(埋点)\r\ninterface EventTrackingAdsVisitParamsType {\r\n _id: string;\r\n}\r\n\r\nexport function eventTrackingAdsVisit(params: EventTrackingAdsVisitParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/ads/visit`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 点击广告(埋点)\r\ninterface EventTrackingAdsClickParamsType {\r\n _id: string;\r\n}\r\n\r\nexport function eventTrackingAdsClick(params: EventTrackingAdsClickParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/ads/click`,\r\n params: params,\r\n });\r\n}\r\n\r\n\r\n// 获取基本任务详情\r\ninterface GetBaseTaskInfoParamsType {\r\n}\r\n\r\nexport function getBaseTaskInfo(params: GetBaseTaskInfoParamsType = {}) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/facade/getBaseTaskInfo`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 获取资源任务详情\r\ninterface GetResourceTaskInfoParamsType {\r\n}\r\n\r\nexport function getResourceTaskInfo(params: GetResourceTaskInfoParamsType = {}) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/facade/getResourceTaskInfo`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 获取节点任务详情\r\ninterface GetNodeTaskInfoParamsType {\r\n}\r\n\r\nexport function getNodeTaskInfo(params: GetNodeTaskInfoParamsType = {}) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/facade/getNodeTaskInfo`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 获取奖励记录详情\r\ninterface GetRewardRecordInfoParamsType {\r\n rewardConfigCode: string;\r\n}\r\n\r\nexport function getRewardRecordInfo(params: GetRewardRecordInfoParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/facade/getRewardRecordInfo`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 推送任务消息埋点\r\ninterface PushMessageTaskParamsType {\r\n taskConfigCode: string;\r\n meta?: any;\r\n}\r\n\r\nexport function pushMessageTask(params: PushMessageTaskParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/activities/facade/pushMessage4Task`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 运营钱包详情\r\ninterface GetCoinAccountParamsType {\r\n type: 1;\r\n}\r\n\r\nexport function getCoinAccount(params: GetCoinAccountParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/coin/account/find4Client`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 运营钱包提现\r\ninterface WithdrawCoinAccountParamsType {\r\n reUserName: string;\r\n amount: number;\r\n}\r\n\r\nexport function withdrawCoinAccount(params: WithdrawCoinAccountParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/activities/coin/account/cash4Client`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 运营钱包流水\r\ninterface GetCoinAccountRecordsParamsType {\r\n skip?: number;\r\n limit?: number;\r\n coinAccountType: 1;\r\n}\r\n\r\nexport function getCoinAccountRecords(params: GetCoinAccountRecordsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/coin/record/list4Client`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 获取公众号绑定信息\r\ninterface GetWechatOfficialAccountInfoParamsType {\r\n}\r\n\r\nexport function getWechatOfficialAccountInfo(params: GetWechatOfficialAccountInfoParamsType = {}) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/extensions/wechat/getRelationship4Client`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 列出抽奖结果\r\ninterface LotteryListParamsType {\r\n}\r\n\r\nexport function lotteryList(params: LotteryListParamsType = {}) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/lottery/resource/list`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 显示抽奖结果\r\ninterface LotteryShowParamsType {\r\n startDate: string;\r\n limitDate: string;\r\n}\r\n\r\nexport function lotteryShow(params: LotteryShowParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/lottery/resource/show`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 列出邀请好友详情\r\ntype ListInviteFriendInfosParamsType = {\r\n userId: number;\r\n username: string;\r\n createDate: string;\r\n}[];\r\n\r\nexport function listInviteFriendInfos(params: ListInviteFriendInfosParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/activities/facade/listInviteFriendInfos`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 获取奖励记录详情列表\r\ninterface GetRewardRecordInfosParamsType {\r\n rewardGroupCode?: string;\r\n rewardConfigCode?: string;\r\n status?: 1 | 2 | 3; //奖励记录状态 1:未领取 2:可领取 3:已领取;\r\n}\r\n\r\nexport function getRewardRecordInfos(params: GetRewardRecordInfosParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/activities/facade/getRewardRecordInfos`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 个人奖励领取记录\r\ninterface ListRewardRecordInfosParamsType {\r\n rewardGroupCodes?: string[];\r\n statusArray?: number[];\r\n}\r\n\r\nexport function listRewardRecordInfos(params: ListRewardRecordInfosParamsType = {}) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/activities/facade/listRewardRecordInfos`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 统计个人的奖励情况\r\ninterface StatisticRewardRecordsParamsType {\r\n codes: string[];\r\n}\r\n\r\nexport function statisticRewardRecords(params: StatisticRewardRecordsParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/activities/facade/statisticRewardRecords`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 统计个人的任务情况\r\ninterface StatisticTaskRecordsParamsType {\r\n codes: string[];\r\n startTime?: string;\r\n limitTime?: string;\r\n}\r\n\r\nexport function statisticTaskRecords(params: StatisticTaskRecordsParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/activities/facade/statisticTaskRecords`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 统计所有人的单个奖励情况\r\ninterface StatisticSingleRewardRecordForAllParamsType {\r\n code: string;\r\n}\r\n\r\nexport function statisticSingleRewardRecordForAll(params: StatisticSingleRewardRecordForAllParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/activities/facade/statisticSingleRewardRecordForAll`,\r\n data: params,\r\n });\r\n}\r\n","import FUtil from '../utils';\r\n\r\n// 查看邀请码详情\r\ninterface CodeDetails1ParamsType {\r\n code: string;\r\n}\r\n\r\ninterface CodeDetails2ParamsType {\r\n}\r\n\r\nexport function codeDetails1({code}: CodeDetails1ParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/testQualifications/beta/codes/${code}`,\r\n // data: params,\r\n });\r\n}\r\n\r\nexport function codeDetails2({}: CodeDetails2ParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/testQualifications/beta/codes/userActivateCode`,\r\n // data: params,\r\n });\r\n}\r\n\r\n// 使用邀请码激活内测资格\r\ninterface BetaCodesActivateParamsType {\r\n code: string;\r\n}\r\n\r\nexport function betaCodesActivate({...params}: BetaCodesActivateParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/testQualifications/beta/codes/activate`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 分页查看邀请码使用记录\r\ninterface UsedRecordsParamsType {\r\n skip?: number;\r\n limit?: number;\r\n code?: string;\r\n keywords?: string;\r\n}\r\n\r\nexport function usedRecords({...params}: UsedRecordsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/testQualifications/beta/codes/usedRecords`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 用户申请内测资格\r\ninterface BetaApplyParamsType {\r\n // province: string;\r\n // city: string;\r\n areaCode: string;\r\n occupation: string;\r\n description: string;\r\n}\r\n\r\nexport function betaApply({...params}: BetaApplyParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/testQualifications/beta/apply`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 查看内测资格申请详情\r\ninterface GetBetaApply1ParamsType {\r\n\r\n}\r\n\r\nexport function getBetaApply1({...params}: GetBetaApply1ParamsType = {}) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/testQualifications/beta/apply/current`,\r\n params: params,\r\n });\r\n}\r\n\r\ninterface GetBetaApply2ParamsType {\r\n recordId: string;\r\n}\r\n\r\nexport function getBetaApply2({recordId, ...params}: GetBetaApply2ParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/testQualifications/beta/apply/${recordId}`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 被邀请列表\r\ninterface InviteesParamsType {\r\n userId: number;\r\n}\r\n\r\nexport function invitees({...params}: InviteesParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/testQualifications/beta/codes/invitees`,\r\n params: params,\r\n });\r\n}\r\n","import FUtil from '../utils';\r\n// import {AxiosRequestConfig, Canceler} from 'axios';\r\n\r\n// 查询通用交易统计信息\r\nexport interface TransactionsCommonParamsType {\r\n ownerId: string | number;\r\n ownerType?: 1 | 2;\r\n objectId?: string;\r\n objectType?: 2 | 3;\r\n beginDate?: string;\r\n endDate?: string;\r\n}\r\n\r\nexport function transactionsCommon(params: TransactionsCommonParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/statistics/transactions/common`,\r\n params: params,\r\n });\r\n}\r\n","import FUtil from '../utils';\r\n\r\n// 列出翻译\r\ninterface ConfigsListParamsType {\r\n key: string;\r\n content: string;\r\n tagIds: string[];\r\n status: 0 | 1 | 2 | 3; // 0:全部 1:待翻译 2:待发布 3:已发布\r\n}\r\n\r\nexport function configsList(params: ConfigsListParamsType) {\r\n // console.log('####@30984i2o3jdsjflfkjsdl')\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/i18n/configs/list`,\r\n data: params,\r\n });\r\n}\r\n\r\n// oss保存的翻译\r\n// interface ConfigsListParamsType {\r\n// key: string;\r\n// content: string;\r\n// tagIds: string[];\r\n// status: 0 | 1 | 2 | 3; // 0:全部 1:待翻译 2:待发布 3:已发布\r\n// }\r\n//\r\n// export function configsList(params: ConfigsListParamsType) {\r\n// // console.log('####@30984i2o3jdsjflfkjsdl')\r\n// return FUtil.Request({\r\n// method: 'POST',\r\n// url: `/v2/i18n/configs/list`,\r\n// data: params,\r\n// });\r\n// }\r\n","// import {Base64} from 'js-base64';\r\nimport FUtil from '../utils';\r\n\r\n// 批量获取授权策略列表\r\ninterface PoliciesParamsType {\r\n page?: number;\r\n pageSize?: number;\r\n subjectType?: 1 | 2 | 3; // 1:资源 2:展品 3:用户组\r\n projection?: string;\r\n}\r\n\r\nexport function policies(params: PoliciesParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/policies`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 批量获取授权策略列表\r\ninterface PoliciesListParamsType {\r\n policyIds: string;\r\n subjectType?: number;\r\n userId?: number;\r\n projection?: string;\r\n}\r\n\r\nexport function policiesList(params: PoliciesListParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/policies/list`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 策略模板\r\ninterface PolicyTemplatesParamsType {\r\n}\r\n\r\nexport function policyTemplates(params: PolicyTemplatesParamsType = {}) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/translate/translate-config/list4Client`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 重新编译\r\ninterface PolicyReCompileParamsType {\r\n _id?: string;\r\n contract?: string;\r\n fillArgs: {\r\n name: string;\r\n value: string | number;\r\n }[];\r\n}\r\n\r\nexport function policyReCompile(data: PolicyReCompileParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/translate/reCompile`,\r\n data: data,\r\n });\r\n}\r\n\r\n// 模板策略翻译\r\ninterface PolicyTranslationParamsType {\r\n contract: string;\r\n}\r\n\r\nexport function policyTranslation({contract}: PolicyTranslationParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/translate/translate`,\r\n data: {\r\n contract: contract,\r\n },\r\n });\r\n}\r\n\r\n// 模板策略翻译\r\ninterface PolicyTransferTranslationParamsType {\r\n contract: string;\r\n fsmTransfers: any;\r\n}\r\n\r\nexport function policyTransferTranslation(params: PolicyTransferTranslationParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/translate/transfer`,\r\n data: params,\r\n });\r\n}\r\n","import FUtil from '../utils';\r\n\r\n// 列出运营分类分组排序\r\ninterface OperationCategoriesParamsType {\r\n name?: string;\r\n status?: number;\r\n}\r\n\r\nexport function operationCategories({...params}: OperationCategoriesParamsType = {}) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/operation-categories/listSimpleByGroup`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 收益排行\r\ninterface RecordRankParamsType {\r\n coinAccountType: 1 | 2;\r\n limit: number;\r\n}\r\n\r\nexport function recordRank({...params}: RecordRankParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/activities/coin/record/rank`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 收益详情\r\ninterface RankInfoParamsType {\r\n coinAccountType: 1 | 2;\r\n}\r\n\r\nexport function rankInfo({...params}: RankInfoParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/activities/coin/record/rankInfo`,\r\n data: params,\r\n });\r\n}\r\n","import FUtil from '../utils';\r\n// import {CommonReturn} from \"./tools\";\r\n\r\n// 根据编号取资源类型\r\ninterface GetInfoByCodeType {\r\n code: string;\r\n}\r\n\r\nexport function getInfoByCode({...params}: GetInfoByCodeType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/types/getInfoByCode`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 根据编号取资源类型\r\ninterface GetInfoByCodeOrNameType {\r\n code?: string;\r\n name?: string;\r\n}\r\n\r\nexport function getInfoByCodeOrName({...params}: GetInfoByCodeOrNameType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/types/getInfoByCodeOrName`,\r\n params: params,\r\n });\r\n}\r\n","import { AxiosRequestConfig } from 'axios';\nimport FUtil from '../utils';\n\n// 证件上传与识别\ninterface UploadIDCardParamsType {\n file: File;\n}\n\nexport function uploadIDCard(params: UploadIDCardParamsType, config?: AxiosRequestConfig) {\n const formData = new FormData();\n for (const [key, value] of Object.entries(params)) {\n if (value) {\n formData.append(key, value);\n }\n }\n return FUtil.Request({\n method: 'POST',\n url: `/v3/transactions/accounts/idCardUploadAndOcr`,\n data: formData,\n ...config,\n });\n}\n\n\n// 开通金融账户\ninterface OpenFinancialAccountParamsType {\n accountType: 1 | 2; // 账户类型(1:个人账户 2:节点账户)\n ownerId: number; // 账户所有者ID; 根据账户类型动态赋值userId或nodeId\n certType: '00'; // 证件类型(00:身份证)\n certNo: string; // 证件号码;例如身份证号\n name: string; // 证件上的名称;例如身份证上的姓名\n certValidityType: 0 | 1; // 证件有效期是否是长期; 0:非长期有效 1:长期有效\n certBeginDate: string; // 证件有效期开始日期\n certEndDate?: string; // 证件有效期结束日期(长期有效时此处不传)\n mobile: string; // 开户人真实手机号;\n certImagePaths: string[]; // 证件照保密存放的path部分; 身份证号码识别接口会返回\n}\n\nexport function openFinancialAccount(params: OpenFinancialAccountParamsType, config?: AxiosRequestConfig) {\n return FUtil.Request({\n method: 'POST',\n url: `/v3/transactions/accounts`,\n data: params,\n ...config,\n });\n}\n\n// 金融账户绑定提现卡\ninterface BindWithdrawCardParamsType {\n accountId: string; // 金融账户ID\n cardType: 0 | 1 | 2 | 4; // 0:对公,1:对私法人,2:对私非法人,4:对公非同名;个人商户/用户不支持对公类型,对私非法人类型;\n bankName: string; // 开户行名称\n cardName: string; // 持卡人姓名\n cardNo: string; // 卡号\n provId: string; // 银行所在省ID\n areaId: string; // 银行所在城市ID\n branchCode?: string; // 银行支行联行号; 当card_type=0时必填\n}\n\nexport function bindWithdrawCard({accountId, ...params}: BindWithdrawCardParamsType, config?: AxiosRequestConfig) {\n return FUtil.Request({\n method: 'POST',\n url: `/v3/transactions/accounts/${accountId}/bindCashCard`,\n data: params,\n ...config,\n });\n}\n\n// 登录用户关联金融登账户信息查询\ninterface QueryFinancialAccountInfoParamsType {\n accountType: 1 | 2; // 账户类型(1:个人账户 2:节点账户)\n ownerId: number; // 账户所有者ID; 根据账户类型动态赋值userId或nodeId\n}\n\nexport function queryFinancialAccountInfo(params: QueryFinancialAccountInfoParamsType, config?: AxiosRequestConfig) {\n return FUtil.Request({\n method: 'GET',\n url: `/v3/transactions/accounts/query`,\n params: params,\n ...config,\n });\n}\n\n// 查询绑定提现卡\ninterface QueryBindWithdrawCardParamsType {\n accountId: string; // 金融账户ID\n}\n\nexport function queryBindWithdrawCard({accountId}: QueryBindWithdrawCardParamsType, config?: AxiosRequestConfig) {\n return FUtil.Request({\n method: 'GET',\n url: `/v3/transactions/accounts/${accountId}/cashCard`,\n ...config,\n });\n}\n\n// 用户主动提现\ninterface WithdrawCashParamsType {\n accountId: string; // 金融账户ID\n transactionAmount: number; // 提现金额; 最多保留两位小数\n}\n\nexport function withdrawCash(params: WithdrawCashParamsType, config?: AxiosRequestConfig) {\n return FUtil.Request({\n method: 'POST',\n url: `/v3/transactions/withdrawCash`,\n data: params,\n ...config,\n });\n}\n\n// 提现记录分页列表查询\ninterface QueryWithdrawCashListParamsType {\n accountId: string; // 金融账户ID\n skip?: number;\n limit?: number;\n}\n\nexport function queryWithdrawCashList(params: QueryWithdrawCashListParamsType, config?: AxiosRequestConfig) {\n return FUtil.Request({\n method: 'GET',\n url: `/v3/transactions/withdrawCash/list`,\n params: params,\n ...config,\n });\n}\n\n// 交易记录分页列表查询\n// interface QueryTransactionListParamsType {\n// skip?: number;\n// limit?: number;\n// accountId: string;\n// }\n\n// export function queryTransactionList(params: QueryTransactionListParamsType, config?: AxiosRequestConfig) {\n// return FUtil.Request({\n// method: 'GET',\n// url: `/v3/transactions/transaction/list`,\n// params: params,\n// ...config,\n// });\n// }\n","import axios, {AxiosRequestConfig} from 'axios';\n// import NProgress from 'nprogress';\n// import \"nprogress/nprogress.css\";\nimport {completeUrlByDomain} from \"./format\";\nimport * as LinkTo from './linkTo';\n// import {CommonReturn, RequestParamsType} from \"../service-API/tools\";\nimport FServiceAPI from \"../service-API\";\n// import from '../service-API';\n\nconst codeMessage: any = {\n 200: '服务器成功返回请求的数据。',\n 201: '新建或修改数据成功。',\n 202: '一个请求已经进入后台排队(异步任务)。',\n 204: '删除数据成功。',\n 400: '发出的请求有错误,服务器没有进行新建或修改数据的操作。',\n 401: '用户没有权限(令牌、用户名、密码错误)。',\n 403: '用户得到授权,但是访问是被禁止的。',\n 404: '发出的请求针对的是不存在的记录,服务器没有进行操作。',\n 406: '请求的格式不可得。',\n 410: '请求的资源被永久删除,且不会再得到的。',\n 422: '当创建一个对象时,发生一个验证错误。',\n 500: '服务器发生错误,请检查服务器。',\n 502: '网关错误。',\n 503: '服务不可用,服务器暂时过载或维护。',\n 504: '网关超时。',\n};\n\n// export let apiHost: string = '';\nif (window.location.hostname.includes('.com')) {\n // apiHost = `${window.location.protocol}//qi.${(window.location.host.match(/(?<=\\.).*/) || [''])[0]}`;\n // apiHost = window.location.origin.replace('console', 'qi');\n axios.defaults.withCredentials = true;\n axios.defaults.baseURL = completeUrlByDomain('api');\n}\n\n/**\n * 异常处理程序\n */\n// const errorHandler = (error: { response: Response }): Response => {\n// const {response} = error;\n// if (response && response.status) {\n// const errorText = codeMessage[response.status] || response.statusText;\n// const {status, url} = response;\n//\n// // notification.error({\n// // message: `请求错误 ${status}: ${url}`,\n// // description: errorText,\n// // });\n// } else if (!response) {\n// // notification.error({\n// // description: '您的网络发生异常,无法连接服务器',\n// // message: '网络异常',\n// // });\n// }\n// return response;\n// };\n//\n// // Add a request interceptor\naxios.interceptors.request.use(\n (config) => {\n // Do something before request is sent\n // NProgress.start();\n return config;\n },\n (error) => {\n // Do something with request error\n // NProgress.done();\n return Promise.reject(error);\n }\n);\n\n/**\n * 配置request请求时的默认参数\n */\naxios.interceptors.response.use(\n (response) => {\n // Do something with response data\n // console.log(response, 'response!!!!!!');\n // NProgress.done();\n if (response.status !== 200 && response.status !== 201) {\n\n const error = {\n description: codeMessage[response.status],\n message: response.status,\n };\n\n // notification.error(error);\n throw new Error(JSON.stringify(error));\n }\n const {data, headers} = response;\n if (headers['content-disposition']?.includes('attachment;')) {\n // downloadFile(response);\n return;\n }\n\n // console.log(data, 'data2390jasdflkf');\n\n\n // if ((data.errcode === undefined\n // ? (data.errCode !== 0 && data.errCode !== 2)\n // : (data.errcode !== 0 && data.errcode !== 2))\n // || data.ret !== 0) {\n //\n // // notification.error({\n // // message: data.msg,\n // // });\n // throw new Error(JSON.stringify(data));\n // }\n return data;\n },\n (error) => {\n // Do something with response error\n // NProgress.done();\n return Promise.reject(error);\n });\n\nexport default axios;\n\n\nexport async function request(config: AxiosRequestConfig, {\n// export async function request(config: any, {\n noRedirect = false,\n noErrorAlert = false,\n// }: RequestParamsType = {}): Promise<CommonReturn & { data: any } | void> {\n}: any = {}): Promise<any> {\n const result: any = await axios.request(config);\n // console.log(result, 'response');\n // const {data} = response;\n // console.log(result, 'result90iowjksdfjlsdkj')\n if (result.errCode=== 30 && !noRedirect) {\n await FServiceAPI.User.logout();\n window.location.replace(`${completeUrlByDomain('user')}${LinkTo.login({goTo: window.location.href})}`);\n } else if (result.ret === 4 && result.errCode === 10 && !noRedirect) {\n window.location.replace(`${completeUrlByDomain('user')}${LinkTo.userFreeze({goTo: window.location.href})}`);\n } else if ((result.errcode !== 0 || result.errCode !== 0) && !noErrorAlert) {\n // window.alert(result.msg);\n // return;\n\n }\n return result;\n}\n","import * as Format from './format';\r\nimport * as Regexp from './regexp';\r\nimport * as LinkTo from './linkTo';\r\nimport * as Predefined from './predefined';\r\nimport Axios, {request} from './axios';\r\nimport * as Tool from './tools';\r\nimport * as Hook from './hooks';\r\n// import I18n from '../i18n';\r\n\r\nconst FUtil = {\r\n Format,\r\n Regexp,\r\n LinkTo,\r\n Predefined,\r\n Axios,\r\n Request: request,\r\n Tool,\r\n Hook,\r\n // i18n: new I18n(),\r\n};\r\n\r\nexport default FUtil;\r\n","import * as React from 'react';\r\n\r\nexport function useGetState<T>(initVal: T): [T, (newVal: T) => void, () => T] {\r\n const [state, setState] = React.useState<T>(initVal);\r\n const ref = React.useRef<T>(initVal);\r\n\r\n function setStateCopy(newVal: T): void {\r\n ref.current = newVal;\r\n setState(newVal);\r\n }\r\n\r\n function getState(): T {\r\n return ref.current;\r\n }\r\n\r\n return [state, setStateCopy, getState];\r\n}\r\n","import i18next, {Resource} from 'i18next';\r\nimport axios from \"axios\";\r\nimport Cookies from 'js-cookie';\r\nimport FUtil from '../utils';\r\n// import * as React from 'react';\r\nimport htmlReactParser from 'html-react-parser';\r\n\r\ntype LanguageKeyType = 'zh_CN' | 'en_US';\r\n\r\nconst ossJsonUrl: string = 'https://freelog-i18n.oss-cn-shenzhen.aliyuncs.com/configs/i18n.json';\r\nconst ossJsonUrl_Test: string = 'https://freelog-i18n.oss-cn-shenzhen.aliyuncs.com/configs-test/i18n.json';\r\nconst localStorage_i18nextLng_key: string = 'locale';\r\nconst localStorage_i18nextResources_key: string = 'i18nextResources';\r\n\r\nconst allLanguage = [\r\n {value: 'en_US', label: 'English'},\r\n {value: 'zh_CN', label: '简体中文'},\r\n];\r\n\r\nclass I18nNext {\r\n\r\n private _loadingData: 'NotStart' | 'Start' | 'End' = 'NotStart';\r\n private _taskQueue: Function[] = [];\r\n // private _currentLanguage: LanguageKeyType = window.localStorage.getItem(localStorage_i18nextLng_key) as null || 'zh_CN';\r\n private _currentLanguage: LanguageKeyType = Cookies.get(localStorage_i18nextLng_key) as undefined || 'zh_CN';\r\n\r\n constructor() {\r\n this.ready();\r\n\r\n this.ready = this.ready.bind(this);\r\n this.t = this.t.bind(this);\r\n this.changeLanguage = this.changeLanguage.bind(this);\r\n this.getAllLanguage = this.getAllLanguage.bind(this);\r\n this.getCurrentLanguage = this.getCurrentLanguage.bind(this);\r\n }\r\n\r\n async ready(this: I18nNext): Promise<void> {\r\n const exc = () => {\r\n while (this._taskQueue.length > 0) {\r\n const task = this._taskQueue.shift();\r\n task && task();\r\n }\r\n };\r\n const handleTasks = async () => {\r\n // console.log(this._loadingData, 'this._loadingData90iowejflksdfjlsdk');\r\n if (this._loadingData === 'End') {\r\n exc();\r\n return;\r\n }\r\n if (this._loadingData === 'Start') {\r\n return;\r\n }\r\n\r\n // NO_START\r\n this._loadingData = 'Start';\r\n\r\n await this._handleData();\r\n // console.log('######');\r\n exc();\r\n };\r\n const promise = new Promise<void>((resolve) => {\r\n this._taskQueue.push(resolve);\r\n });\r\n handleTasks();\r\n return promise;\r\n }\r\n\r\n t(this: I18nNext, key: string, options?: { [key: string]: any }): string {\r\n return i18next.t(key.trim(), options);\r\n }\r\n\r\n tJSXElement(this: I18nNext, key: string, options?: { [key: string]: any }): string | JSX.Element | JSX.Element[] {\r\n return htmlReactParser(i18next.t(key.trim(), options));\r\n }\r\n\r\n\r\n changeLanguage(this: I18nNext, lng: LanguageKeyType): void {\r\n // return i18next.changeLanguage(lng);\r\n // window.localStorage.setItem(localStorage_i18nextLng_key, lng)\r\n Cookies.set(localStorage_i18nextLng_key, lng, {\r\n expires: 36525,\r\n domain: FUtil.Format.completeUrlByDomain('').replace(/http(s)?:\\/\\//, ''),\r\n });\r\n }\r\n\r\n getAllLanguage(this: I18nNext): typeof allLanguage {\r\n return allLanguage;\r\n }\r\n\r\n getCurrentLanguage(this: I18nNext): LanguageKeyType {\r\n return this._currentLanguage;\r\n }\r\n\r\n private async _handleData(this: I18nNext): Promise<void> {\r\n\r\n const lng: string = this._currentLanguage;\r\n const resource: string | null = window.localStorage.getItem(localStorage_i18nextResources_key);\r\n // const resource: string | undefined = Cookies.get(decodeURIComponent(localStorage_i18nextResources_key));\r\n let i18nextResources: Resource | null = resource ? JSON.parse(resource) : null;\r\n\r\n if (!i18nextResources) {\r\n // console.log('######892io3jlkl')\r\n i18nextResources = await this._fetchData();\r\n } else {\r\n this._fetchData();\r\n }\r\n\r\n await i18next\r\n .init({\r\n // the translations\r\n // (tip move them in a JSON file and import them,\r\n // or even better, manage them via a UI: https://react.i18next.com/guides/multiple-translation-files#manage-your-translations-with-a-management-gui)\r\n resources: i18nextResources,\r\n lng: lng, // if you're using a language detector, do not define the lng option\r\n fallbackLng: 'zh_CN',\r\n\r\n interpolation: {\r\n escapeValue: false, // react already safes from xss => https://www.i18next.com/translation-function/interpolation#unescape\r\n prefix: '{',\r\n suffix: '}',\r\n },\r\n });\r\n this._loadingData = 'End';\r\n }\r\n\r\n private async _fetchData(this: I18nNext): Promise<Resource> {\r\n const url: string = window.location.origin.includes('.freelog.com') ? ossJsonUrl : ossJsonUrl_Test;\r\n const res: any = await axios.get(url + '?timestamp=' + Date.now(), {\r\n withCredentials: false,\r\n });\r\n // console.log(res, 'data09oiw3qjelsfkdfjlsdkfjl');\r\n\r\n const en_US: { [key: string]: string } = {};\r\n const zh_CN: { [key: string]: string } = {};\r\n\r\n for (const [key, value] of Object.entries(res)) {\r\n // console.log(key, value, 'key, value90iowsldfjlsdkj');\r\n en_US[key] = (value as any)['en_US'];\r\n zh_CN[key] = (value as any)['zh_CN'];\r\n }\r\n\r\n const result: Resource = {\r\n en_US: {\r\n translation: en_US,\r\n },\r\n zh_CN: {\r\n translation: zh_CN,\r\n },\r\n };\r\n\r\n window.localStorage.setItem(localStorage_i18nextResources_key, JSON.stringify(result));\r\n return result;\r\n }\r\n}\r\n\r\nexport default I18nNext;\r\n","import I18nNext from './I18nNext';\r\n\r\nconst FI18n = {\r\n i18nNext: new I18nNext(),\r\n};\r\n\r\nexport default FI18n;\r\n"],"names":["completeUrlByDomain","domain","origin","window","location","includes","bytes","index","Math","floor","log","round","pow","date","showTime","moment","format","arr","join","RegExp","login","_temp19","goTo","handleQuery","encodeURIComponent","undefined","userFreeze","_temp24","query","obj","_i","_Object$entries","Object","entries","length","_Object$entries$_i","key","value","result","querystring","EnumContractPartyIdentityType","EnumSubjectType","EnumContractStatus","_temp","_temp2","_ref3","activityID","_ref4","title","desc","link","imgUrl","_temp3","_temp4","_extends","_objectDestructuringEmpty","_ref6","_temp5","_ref8","resourceID","_objectWithoutPropertiesLoose","_excluded","_ref9","collectionID","_temp6","_temp7","_temp8","_temp9","_temp0","_temp1","_temp10","_temp11","_temp12","_ref17","_ref17$version","version","_ref18","_ref19","_ref20","_ref21","_ref22","_ref23","_ref24","_ref25","_ref26","_ref27","_temp13","_ref29","_ref29$showPage","showPage","nodeID","_excluded2","_ref30","exhibitID","_excluded3","_ref31","openAuthDrawer","_ref32","_ref33","_ref34","_ref34$showPage","_excluded4","_ref35","_ref35$openAuthDrawer","_temp14","_ref36","_ref37","_ref38","_ref39","_ref40","_ref41","_ref42","_temp15","_ref43","_excluded5","returnUrl","_temp16","fromUrl","_ref44","from","_window$location","href","replace","_temp17","_ref45","_window$location2","_temp18","params","_ref46","_ref47","_ref48","_ref49","search","_temp20","_ref51","_excluded6","_temp21","_ref52","_excluded7","_temp22","_temp23","_temp25","_temp26","_temp27","_ref58","_temp28","_temp29","_temp30","filesListInfo","_ref0","FUtil","Request","method","url","getUserIDByCookies","uid","document","cookie","split","find","co","startsWith","Number","promiseSleep","ms","Promise","resolve","setTimeout","file","reader","FileReader","readAsArrayBuffer","onload","_asyncToGenerator","_regenerator","m","_callee","w","_context","n","a","self","crypto","subtle","digest","then","Array","Uint8Array","map","toString","padStart","v","strLen","newStrArr","i","push","random","_ref2","status","authStatus","userID","Date","now","_getFilesSha1Info","_ref","cdPartially","resourceTypeCode","sha1","error","delay","needHandleSha1","concat","allData","Storage","errCode","_yield$Storage$filesL","data","msg","ret","console","filter","d","metaAnalyzeStatus","finishedInfo","state","info","Tool","apply","arguments","FServiceAPI","Node","nodeId","Exhibit","presentableId","p","_ref5","_ref7","_excluded8","_excluded9","_excluded0","_ref1","_ref10","_excluded1","_ref11","_ref12","_excluded10","_ref13","_excluded11","_ref14","_excluded12","_ref15","_excluded13","_ref16","_excluded14","_excluded15","_excluded16","_excluded17","bucketName","objectIdOrName","objectId","objectIds","Format","config","returnCancel","formData","FormData","append","cancel","cancelToken","Axios","CancelToken","c","_i2","_Object$entries2","_Object$entries2$_i","Collection","resourceId","Resource","resourceIdOrName","fileSha1","resourceNames","removeCollectionItemIds","_ref28","_excluded18","_excluded19","_excluded20","_excluded21","_excluded22","itemId","_excluded23","_excluded24","_excluded25","User","noRedirect","loginName","InformalNode","testResourceId","Contract","contractId","Transaction","accountId","userId","recordId","Captcha","Event","Activity","TestQualification","code","Statistic","I18n","Policy","contract","recombination","_x","_x2","Operation","ResourceType","Payment","codeMessage","200","201","202","204","400","401","403","404","406","410","422","500","502","503","504","_request","_ref$noRedirect","axios","request","logout","LinkTo","hostname","defaults","withCredentials","baseURL","interceptors","use","reject","response","Error","JSON","stringify","description","message","_headers$contentDisp","headers","Regexp","Predefined","Hook","initVal","_React$useState","React","setState","ref","newVal","current","allLanguage","label","i18nNext","I18nNext","this","Cookies","get","ready","bind","t","changeLanguage","getAllLanguage","getCurrentLanguage","_proto","prototype","_ready","_callee2","exc","handleTasks","promise","_this","_context2","_taskQueue","task","shift","_loadingData","_handleData","options","i18next","trim","tJSXElement","htmlReactParser","lng","set","expires","_currentLanguage","_handleData2","_callee3","resource","i18nextResources","_context3","localStorage","getItem","parse","_fetchData","init","resources","fallbackLng","interpolation","escapeValue","prefix","suffix","_fetchData2","_callee4","en_US","zh_CN","_context4","translation","setItem"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools-lib.cjs.production.min.js","sources":["../src/utils/format.ts","../src/utils/regexp.ts","../src/utils/linkTo.ts","../src/utils/predefined.ts","../src/service-API/storages.ts","../src/utils/tools.ts","../src/service-API/recombinations/index.ts","../src/service-API/index.ts","../src/service-API/nodes.ts","../src/service-API/presentables.ts","../src/service-API/collections.ts","../src/service-API/resources.ts","../src/service-API/user.ts","../src/service-API/informalNodes.ts","../src/service-API/contracts.ts","../src/service-API/transactions.ts","../src/service-API/captcha.ts","../src/service-API/events.ts","../src/service-API/activities.ts","../src/service-API/testQualifications.ts","../src/service-API/statistics.ts","../src/service-API/i18n.ts","../src/service-API/policies.ts","../src/service-API/operation.ts","../src/service-API/resourceType.ts","../src/service-API/payment.ts","../src/utils/axios.ts","../src/utils/index.ts","../src/utils/hooks.ts","../src/i18n/I18nNext.ts","../src/i18n/index.ts"],"sourcesContent":["import moment from 'moment';\r\n// import {report} from '@freelog/resource-policy-lang/dist';\r\n// import {ContractEntity} from '@freelog/resource-policy-lang/dist/tools/ContractTool';\r\n\r\n// const {compile} = require('@freelog/resource-policy-lang');\r\n\r\n/**\r\n * 将对应的字节数,转换为易读单位数量\r\n * @param bytes\r\n * @return {string}\r\n */\r\nexport function humanizeSize(bytes: number): string {\r\n // console.log('dddhumanizeSizesdfsd');\r\n if (bytes <= 0) {\r\n return '0 B';\r\n }\r\n const unitArr = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\r\n const index = Math.floor(Math.log(bytes) / Math.log(1024));\r\n const size = Math.round((bytes / Math.pow(1024, index)) * 100) / 100; //保留的小数位数\r\n return size + ' ' + unitArr[index];\r\n}\r\n\r\n/**\r\n * 格式化日期时间\r\n */\r\nexport function formatDateTime(date: string, showTime: boolean = false) {\r\n return moment(date).format('YYYY/MM/DD' + (showTime ? ' HH:mm' : ''));\r\n}\r\n\r\n/**\r\n * 根据传入的子域名拼合成完整的适合的url\r\n * @param domain 要组合的三级域名\r\n */\r\nexport function completeUrlByDomain(domain: string): string {\r\n let origin: string = `https://${domain}.testfreelog.com`;\r\n\r\n if (window.location.origin.includes('.freelog.com')) {\r\n origin = `https://${domain}.freelog.com`;\r\n }\r\n\r\n return origin;\r\n}\r\n\r\n/**\r\n * 根据策略代码和标的物类型,生成对应的翻译\r\n * @param code 策略代码\r\n * @param targetType 标的物类型\r\n */\r\n// export async function policyCodeTranslationToText(code: string, targetType: string): Promise<{\r\n// error: string[] | null;\r\n// text?: string;\r\n// }> {\r\n// try {\r\n// const result = await compile(\r\n// code,\r\n// targetType,\r\n// completeUrlByDomain('qi'),\r\n// window.location.origin.endsWith('.freelog.com') ? 'prod' : 'dev',\r\n// );\r\n// const contract: ContractEntity = {\r\n// audiences: result.state_machine.audiences,\r\n// fsmStates: Object.entries<any>(result.state_machine.states)\r\n// .map((st) => {\r\n// return {\r\n// name: st[0],\r\n// serviceStates: st[1].serviceStates,\r\n// events: st[1].transitions.map((ts: any) => {\r\n//\r\n// return {\r\n// id: ts.code,\r\n// name: ts.name,\r\n// args: ts.args,\r\n// state: ts.toState,\r\n// };\r\n// }),\r\n// };\r\n// }),\r\n// };\r\n// const rrr = report(contract);\r\n// return {\r\n// error: null,\r\n// text: rrr.audienceInfos[0].content + rrr.content,\r\n// };\r\n// } catch (err) {\r\n// return {\r\n// error: [err.message],\r\n// };\r\n// }\r\n// }\r\n\r\n\r\n/**\r\n * 将资源类型关键字数组,转换成标准展示文字\r\n * @param arr 关键字数组\r\n */\r\nexport function resourceTypeKeyArrToResourceType(arr: string[]): string {\r\n return arr.join(' / ');\r\n}\r\n","// 展品名称\r\nexport const EXHIBIT_NAME: RegExp = new RegExp(/^(?!.*(\\\\|\\/|:|\\*|\\?|\"|<|>|\\||\\s|@|\\$|#)).{1,60}$/);\r\n\r\n// 资源名称\r\nexport const RESOURCE_NAME: RegExp = new RegExp(/^(?!.*(\\\\|\\/|:|\\*|\\?|\"|<|>|\\||\\s|@|\\$|#)).{1,60}$/);\r\n\r\n// 资源类型\r\nexport const RESOURCE_TYPE: RegExp = new RegExp('^[\\u4e00-\\u9fefa-zA-Z0-9\\\\-&.,]{1,40}$');\r\n\r\n// 自定义属性键\r\n// export const CUSTOM_KEY: RegExp = new RegExp(/^[a-zA-Z_]([a-zA-Z0-9_]{1,19})?$/);\r\nexport const CUSTOM_KEY: RegExp = new RegExp('^[a-zA-Z]([a-zA-Z0-9_]{1,29})?$');\r\n\r\n// 节点名称\r\nexport const NODE_NAME: RegExp = new RegExp(/^[\\u4E00-\\u9FA5|a-zA-Z0-9]{2,24}$/);\r\n\r\n// 节点地址\r\n// export const NODE_DOMAIN: RegExp = new RegExp(/^(?!-)[a-z0-9-]{4,24}(?<!-)$/);\r\nexport const NODE_DOMAIN: RegExp = new RegExp(/^[a-z0-9][a-z0-9-]{2,22}[a-z0-9]$/);\r\n\r\n// 支付密码\r\nexport const PAY_PASSWORD: RegExp = new RegExp(/^\\d{6}$/);\r\n\r\n// 手机号码\r\nexport const MOBILE_PHONE_NUMBER = new RegExp(/^1[345789]\\d{9}$/);\r\n// export const TELEPHONE_NUMBER = /^((13[0-9])|(14[5-9])|(15([0-3]|[5-9]))|(16[6-7])|(17[1-8])|(18[0-9])|(19[1|3])|(19[5|6])|(19[8|9]))\\d{8}$/\r\n\r\n// 邮箱地址\r\nexport const EMAIL_ADDRESS: RegExp = new RegExp(/^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$/);\r\n\r\n// 用户名\r\n// export const USERNAME: RegExp = new RegExp(/^(?!-)[A-Za-z0-9-]{1,30}(?<!-)$/);\r\nexport const USERNAME: RegExp = new RegExp(/^([A-Za-z0-9][A-Za-z0-9-]{0,28})?[A-Za-z0-9]$/);\r\n\r\n// 用户密码\r\n// export const PASSWORD = /^(?=.*[a-zA-Z])(?=.*[0-9]).{6,24}$/;\r\nexport const PASSWORD: RegExp = new RegExp(/^(?=.*[0-9])(?=.*[a-zA-Z])(.{6,24})$/);\r\n\r\n// 自然数\r\nexport const NATURAL_NUMBER: RegExp = new RegExp(/^[0-9]*$/);\r\n\r\n// 正整数\r\nexport const POSITIVE_INTEGER = new RegExp(/^[1-9]\\d*$/);\r\n\r\n// 最多两位小数的正数\r\n// export const MAX_2_DECIMAL_POSITIVE_NUMBER = new RegExp(/^\\d+(.\\d{1,2})?$/);\r\nexport const MAX_2_DECIMAL_POSITIVE_NUMBER = new RegExp(/^\\d+(\\.\\d{0,2})?$/);\r\n\r\n// 对象的Bucket名称\r\nexport const BUCKET_NAME: RegExp = new RegExp(/^([a-z0-9][a-z0-9-]{0,61})?[a-z0-9]$/);\r\n\r\n// JS变量名称\r\nexport const JS_VARIABLE_NAME: RegExp = new RegExp(/^[A-Za-z$_][\\w$_]*$/);\r\n\r\n// 日期\r\nexport const DATE: RegExp = new RegExp(/(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)$/);\r\n\r\n// 日期时间\r\nexport const DATE_TIME: RegExp = new RegExp(/^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$/);\r\n\r\n","import * as querystring from 'querystring';\n\ntype TReturnType = string;\n\n/************** www Start ******************************************************/\n// 首页\ninterface HomeParamsType {}\n\nexport function home({}: HomeParamsType = {}) {\n return `/home`;\n}\n\n// 活动列表\ninterface ActivitiesParamsType {}\n\nexport function activities({}: ActivitiesParamsType = {}) {\n return `/activities`;\n}\n\n// 活动详情\ninterface ActivitiesParamsType {\n activityID: string;\n}\n\nexport function activity({ activityID }: ActivitiesParamsType) {\n return `/activity/${activityID}`;\n}\n\ninterface WXShareParamsType {\n link: string;\n title: string;\n desc: string;\n imgUrl: string;\n}\n\nexport function wxShare({ link, title, desc, imgUrl }: WXShareParamsType) {\n return `/wx-share/index.html#title=${title}&desc=${desc}&link=${link}&imgUrl=${imgUrl}`;\n}\n\n/************** www End ******************************************************/\n\n/************** console Start ******************************************************/\n// dashboard\ninterface DashboardParamsType {}\n\nexport function dashboard({}: DashboardParamsType = {}) {\n return `/dashboard`;\n}\n\n// 资源市场\ninterface MarketParamsType {\n // nodeID: number;\n query?: string;\n}\n\nexport function market({ ...params }: MarketParamsType = {}): TReturnType {\n return `/market${handleQuery(params)}`;\n}\n\n// 示例节点\ninterface ExampleNodesParamsType {}\n\nexport function exampleNodes({}: ExampleNodesParamsType = {}): TReturnType {\n return `/examples`;\n}\n\n// 资源详情\ninterface ResourceDetailsParamsType {\n resourceID: string;\n version?: string;\n}\n\nexport function resourceDetails({\n resourceID,\n ...params\n}: ResourceDetailsParamsType): TReturnType {\n return `/resource/details/${resourceID}${handleQuery(params)}`;\n}\n\n// 集合详情\ninterface CollectionDetailsParamsType {\n collectionID: string;\n // version?: string;\n}\n\nexport function collectionDetails({\n collectionID,\n}: CollectionDetailsParamsType): TReturnType {\n return `/resource/collectionDetails/${collectionID}`;\n}\n\n// 资源创建入口\ninterface ResourceCreatorParamsType {}\n\nexport function resourceCreatorEntry({}: ResourceCreatorParamsType = {}): TReturnType {\n return `/resource/creatorEntry`;\n}\n\n// 资源创建\ninterface ResourceCreatorParamsType {}\n\nexport function resourceCreator({}: ResourceCreatorParamsType = {}): TReturnType {\n return `/resource/creator`;\n}\n\n// 资源批量创建\ninterface ResourceCreatorParamsType {}\n\nexport function resourceCreatorBatch({}: ResourceCreatorParamsType = {}): TReturnType {\n return `/resource/creatorBatch`;\n}\n\n// 集合创建\ninterface CollectionCreatorParamsType {}\n\nexport function collectionCreator({}: CollectionCreatorParamsType = {}): TReturnType {\n return `/resource/collectionCreator`;\n}\n\n// 我的资源\ninterface MyResourcesParamsType {}\n\nexport function myResources({}: MyResourcesParamsType = {}): TReturnType {\n return `/resource/list`;\n}\n\n// 我的集合\ninterface MyCollectionsParamsType {}\n\nexport function myCollections({}: MyCollectionsParamsType = {}): TReturnType {\n return `/resource/collection`;\n}\n\n// 我的收藏\ninterface MyCollectsParamsType {}\n\nexport function myCollects({}: MyCollectsParamsType = {}): TReturnType {\n return `/resource/collect`;\n}\n\n// 我的资源收入\ninterface MyResourceIncomeParamsType {}\n\nexport function myResourceIncome({}: MyResourceIncomeParamsType = {}): TReturnType {\n return `/resource/income`;\n}\n\n// 我的资源交易\ninterface MyResourceTransactionParamsType {}\n\nexport function myResourceTransaction({}: MyResourceTransactionParamsType = {}): TReturnType {\n return `/resource/transaction`;\n}\n\n// 资源版本信息\ninterface ResourceVersionInfoParamsType {\n resourceID: string;\n version?: string;\n}\n\nexport function resourceVersionInfo({\n resourceID,\n version = '',\n}: ResourceVersionInfoParamsType): TReturnType {\n return `/resource/sidebar/versionInfo/${resourceID}${handleQuery({\n version,\n })}`;\n}\n\n// 资源信息\ninterface ResourceInfoParamsType {\n resourceID: string;\n}\n\nexport function resourceInfo({\n resourceID,\n}: ResourceInfoParamsType): TReturnType {\n return `/resource/sidebar/info/${resourceID}`;\n}\n\n// 资源授权策略\ninterface ResourcePolicyParamsType {\n resourceID: string;\n}\n\nexport function resourcePolicy({\n resourceID,\n}: ResourcePolicyParamsType): TReturnType {\n return `/resource/sidebar/policy/${resourceID}`;\n}\n\n// 资源授权合约\ninterface ResourceContractParamsType {\n resourceID: string;\n}\n\nexport function resourceContract({\n resourceID,\n}: ResourceContractParamsType): TReturnType {\n return `/resource/sidebar/contract/${resourceID}`;\n}\n\n// 资源被授权管理\ninterface ResourceDependencyParamsType {\n resourceID: string;\n}\n\nexport function resourceDependency({\n resourceID,\n}: ResourceDependencyParamsType): TReturnType {\n return `/resource/sidebar/dependency/${resourceID}`;\n}\n\n// 资源版本创建\ninterface ResourceVersionCreatorParamsType {\n resourceID: string;\n}\n\nexport function resourceVersionCreator({\n resourceID,\n}: ResourceVersionCreatorParamsType): TReturnType {\n return `/resource/versionCreator/${resourceID}`;\n}\n\n// 集合版本信息\ninterface CollectionVersionInfoParamsType {\n collectionID: string;\n // version?: string;\n}\n\nexport function collectionVersionInfo({\n collectionID,\n}: CollectionVersionInfoParamsType): TReturnType {\n return `/resource/collectionSidebar/versionInfo/${collectionID}`;\n}\n\n// 集合信息\ninterface CollectionInfoParamsType {\n collectionID: string;\n}\n\nexport function collectionInfo({\n collectionID,\n}: CollectionInfoParamsType): TReturnType {\n return `/resource/collectionSidebar/info/${collectionID}`;\n}\n\n// 集合授权策略\ninterface CollectionPolicyParamsType {\n collectionID: string;\n}\n\nexport function collectionPolicy({\n collectionID,\n}: CollectionPolicyParamsType): TReturnType {\n return `/resource/collectionSidebar/policy/${collectionID}`;\n}\n\n// 集合授权合约\ninterface CollectionContractParamsType {\n collectionID: string;\n}\n\nexport function collectionContract({\n collectionID,\n}: CollectionContractParamsType): TReturnType {\n return `/resource/collectionSidebar/contract/${collectionID}`;\n}\n\n// 集合被授权管理\ninterface CollectionDependencyParamsType {\n collectionID: string;\n}\n\nexport function collectionDependency({\n collectionID,\n}: CollectionDependencyParamsType): TReturnType {\n return `/resource/collectionSidebar/dependency/${collectionID}`;\n}\n\n// 节点创建\ninterface NodeCreatorParamsType {\n // nodeID: number;\n}\n\nexport function nodeCreator({}: NodeCreatorParamsType = {}): TReturnType {\n return `/node/creator`;\n}\n\n// 节点管理\ninterface NodeManagementParamsType {\n nodeID: number;\n showPage?:\n | 'exhibit'\n | 'theme'\n | 'contract'\n | 'setting'\n | 'income'\n | 'transaction';\n}\n\nexport function nodeManagement({\n nodeID,\n showPage = 'exhibit',\n ...params\n}: NodeManagementParamsType): TReturnType {\n return `/node/formal/${nodeID}${handleQuery({ showPage, ...params })}`;\n}\n\n// 展品管理\ninterface ExhibitManagementParamsType {\n exhibitID: string;\n openAuthDrawer?: boolean;\n showMoreSetting?: boolean;\n}\n\nexport function exhibitManagement({\n exhibitID,\n ...params\n}: ExhibitManagementParamsType): TReturnType {\n return `/node/exhibit/formal/${exhibitID}${handleQuery({\n ...params,\n })}`;\n}\n\n// 集合展品管理\ninterface CollectionExhibitManagementParamsType {\n exhibitID: string;\n openAuthDrawer?: boolean;\n}\n\nexport function collectionExhibitManagement({\n exhibitID,\n openAuthDrawer,\n}: CollectionExhibitManagementParamsType): TReturnType {\n return `/node/collectionExhibit/formal/${exhibitID}${handleQuery({\n openAuthDrawer,\n })}`;\n}\n\n// 集合展品创建\ninterface CollectionExhibitCreatorParamsType {\n nodeID: number;\n}\n\nexport function collectionExhibitCreator({\n nodeID,\n}: CollectionExhibitCreatorParamsType): TReturnType {\n return `/node/collectionExhibitCreator/${nodeID}`;\n}\n\n// 创建的集合展品管理\ninterface CreatedCollectionExhibitManagementParamsType {\n exhibitID: string;\n}\n\nexport function createdCollectionExhibitManagement({\n exhibitID,\n}: CreatedCollectionExhibitManagementParamsType): TReturnType {\n return `/node/createdCollectionExhibit/formal/${exhibitID}`;\n}\n\n// 测试节点管理\ninterface InformNodeManagementParamsType {\n nodeID: number;\n showPage?: 'exhibit' | 'theme' | 'mappingRule';\n}\n\nexport function informNodeManagement({\n nodeID,\n showPage = 'exhibit',\n ...params\n}: InformNodeManagementParamsType): TReturnType {\n return `/node/informal/${nodeID}${handleQuery({ showPage, ...params })}`;\n}\n\n// 测试展品管理\ninterface InformExhibitManagementParamsType {\n exhibitID: string;\n openAuthDrawer?: boolean;\n}\n\nexport function informExhibitManagement({\n exhibitID,\n openAuthDrawer = undefined,\n}: InformExhibitManagementParamsType): TReturnType {\n return `/node/exhibit/informal/${exhibitID}${handleQuery({\n openAuthDrawer,\n })}`;\n}\n\n// 存储空间\ninterface StorageSpaceParamsType {\n bucketName?: string;\n createBucket?: boolean;\n}\n\nexport function storageSpace({\n ...params\n}: StorageSpaceParamsType = {}): TReturnType {\n return `/storage${handleQuery(params)}`;\n}\n\n// 对象详情\ninterface ObjectDetailsParamsType {\n bucketName: string;\n objectID: string;\n}\n\nexport function objectDetails({\n ...params\n}: ObjectDetailsParamsType): TReturnType {\n return `/storage${handleQuery(params)}`;\n}\n\n// 集合创建成功\ninterface CollectionCreateSuccessParamsType {\n collectionID: string;\n}\n\nexport function collectionCreateSuccess({\n collectionID,\n}: CollectionCreateSuccessParamsType) {\n return `/result/collection/create/success/${collectionID}`;\n}\n\n// 资源创建成功\ninterface ResourceCreateSuccessParamsType {\n resourceID: string;\n}\n\nexport function resourceCreateSuccess({\n resourceID,\n}: ResourceCreateSuccessParamsType) {\n return `/result/resource/create/success/${resourceID}`;\n}\n\n// 资源版本创建成功\ninterface ResourceVersionCreateSuccessParamsType {\n resourceID: string;\n version: string;\n}\n\nexport function resourceVersionCreateSuccess({\n resourceID,\n version,\n}: ResourceVersionCreateSuccessParamsType) {\n return `/result/resource/version/create/success/${resourceID}/${version}`;\n}\n\n// 资源版本正在创建\ninterface ResourceVersionCreateReleaseParamsType {\n resourceID: string;\n version: string;\n}\n\nexport function resourceVersionCreateRelease({\n resourceID,\n version,\n}: ResourceVersionCreateReleaseParamsType) {\n return `/result/resource/version/create/release/${resourceID}/${version}`;\n}\n\n// 节点创建成功\ninterface NodeCreateSuccessParamsType {\n nodeID: number;\n}\n\nexport function nodeCreateSuccess({ nodeID }: NodeCreateSuccessParamsType) {\n return `/result/node/create/success/${nodeID}`;\n}\n\n// 内测资格申请\ninterface InvitationParamsType {\n goTo?: string;\n invitationCode?: string;\n}\n\nexport function invitation({ goTo, ...params }: InvitationParamsType = {}) {\n // console.log(params.goTo, 'goTo9iowjefklsdj;flksdjflk')\n return `/invitation${handleQuery({\n ...params,\n returnUrl: goTo ? encodeURIComponent(goTo) : undefined,\n })}`;\n}\n\n// 403\ninterface Exception403ParamsType {\n from?: string;\n}\n\nexport function exception403({ ...params }: Exception403ParamsType = {}) {\n let fromUrl: string = params.from || '';\n if (!fromUrl) {\n const { href, origin } = window.location;\n fromUrl = href.replace(origin, '');\n }\n\n return `/exception/403${handleQuery({\n from: fromUrl,\n })}`;\n}\n\n// unableToAccess\ninterface ExceptionUnableToAccessParamsType {\n from?: string;\n}\n\nexport function exceptionUnableToAccess({\n ...params\n}: ExceptionUnableToAccessParamsType = {}) {\n let fromUrl: string = params.from || '';\n if (!fromUrl) {\n const { href, origin } = window.location;\n fromUrl = href.replace(origin, '');\n }\n\n return `/exception/unableToAccess${handleQuery({\n from: fromUrl,\n })}`;\n}\n\n// /exception/common?tipText=1234\n// 通用异常\ninterface ExceptionCommonParamsType {\n tipText?: string;\n btnText?: string;\n}\n\nexport function exceptionCommon({ ...params }: ExceptionCommonParamsType = {}) {\n return `/exception/common${handleQuery({\n ...params,\n })}`;\n}\n\n// 节点封禁\ninterface NodeFreezeParamsType {\n nodeID: number;\n}\n\nexport function nodeFreeze({ nodeID }: NodeFreezeParamsType) {\n return `/result/node/freeze/${nodeID}`;\n}\n\n// 资源封禁\ninterface ResourceFreezeParamsType {\n resourceID: string;\n}\n\nexport function resourceFreeze({ resourceID }: ResourceFreezeParamsType) {\n return `/result/resource/freeze/${resourceID}`;\n}\n\n// 站内搜索\ninterface GlobalSearchParamsType {\n search: string;\n}\n\nexport function globalSearch({ search }: GlobalSearchParamsType) {\n return `/search${handleQuery({\n search,\n })}`;\n}\n\n// 结算信息\ninterface SettlementInfoParamsType {\n nodeID?: number;\n}\n\nexport function settlementInfo({ nodeID }: SettlementInfoParamsType) {\n return `/settlementInfo${handleQuery({ nodeID })}`;\n}\n\n// 结算信息编辑\ninterface SettlementInfoEditorParamsType {\n nodeID?: number;\n}\n\nexport function settlementInfoEditor({ nodeID }: SettlementInfoEditorParamsType) {\n return `/settlementEditor${handleQuery({ nodeID })}`;\n}\n\n/************** console End ******************************************************/\n\n/************** user Start ******************************************************/\n// 登录\ninterface LoginParamsType {\n goTo?: string;\n}\n\nexport function login({ goTo }: LoginParamsType = {}) {\n return `/login${handleQuery({\n goTo: goTo ? encodeURIComponent(goTo) : undefined,\n })}`;\n}\n\n// 注册\ninterface LoginParamsType {\n goTo?: string;\n invitationCode?: string;\n}\n\nexport function logon({ goTo, ...params }: LoginParamsType = {}) {\n return `/logon${handleQuery({\n goTo: goTo ? encodeURIComponent(goTo) : undefined,\n ...params,\n })}`;\n}\n\n// 绑定账户\ninterface LoginParamsType {\n goTo?: string;\n identityId?: string;\n returnUrl?: string;\n}\n\nexport function bind({ goTo, returnUrl, ...params }: LoginParamsType = {}) {\n return `/bind${handleQuery({\n goTo: goTo ? encodeURIComponent(goTo) : undefined,\n returnUrl: returnUrl ? encodeURIComponent(returnUrl) : undefined,\n ...params,\n })}`;\n}\n\n// 找回密码\ninterface RetrieveUserPasswordParamsType {\n goTo?: string;\n}\n\nexport function retrieveUserPassword({\n goTo,\n}: RetrieveUserPasswordParamsType = {}) {\n return `/retrieve${handleQuery({\n goTo: goTo ? encodeURIComponent(goTo) : undefined,\n })}`;\n}\n\n// 找回支付密码\ninterface RetrievePayPasswordParamsType {\n goTo?: string;\n}\n\nexport function retrievePayPassword({}: RetrievePayPasswordParamsType = {}) {\n return `/retrievePayPassword`;\n}\n\n// 用户冻结\ninterface UserFreezeParamsType {\n // goTo?: string;\n}\n\nexport function userFreeze({}: UserFreezeParamsType = {}) {\n return `/freeze`;\n}\n\n// 我的钱包\ninterface WalletParamsType {}\n\nexport function wallet({}: WalletParamsType = {}) {\n return `/logged/wallet`;\n}\n\n// 活动奖励\ninterface RewardParamsType {}\n\nexport function reward({}: RewardParamsType = {}) {\n return `/logged/reward`;\n}\n\n// 我的合约\ninterface ContractParamsType {\n identityType?: 1 | 2;\n licensorName?: string;\n licenseeName?: string;\n}\n\nexport function contract({ ...params }: ContractParamsType = {}) {\n return `/logged/contract${handleQuery({\n ...params,\n })}`;\n}\n\n// 个人设置\ninterface SettingParamsType {}\n\nexport function setting({}: SettingParamsType = {}) {\n return `/logged/setting`;\n}\n\n// 绑定\ninterface BindingParamsType {}\n\nexport function binding({}: BindingParamsType = {}) {\n return `/logged/binding`;\n}\n\n// 绑定成功\ninterface ResultBindingSuccessParamsType {}\n\nexport function resultBindingSuccess({}: ResultBindingSuccessParamsType = {}) {\n return `/result/binding`;\n}\n\n/************** user End ******************************************************/\n\nfunction handleQuery(query: object): string {\n const obj: any = {};\n for (const [key, value] of Object.entries(query)) {\n if (key && value) {\n obj[key] = value;\n }\n }\n const result: string = querystring.stringify(obj);\n return result ? '?' + result : '';\n}\n","// export const apiHost = `${window.location.protocol}//qi.${(window.location.host.match(/(?<=\\.).*/) || [''])[0]}`;\r\n\r\n// 预设资源类型\r\nexport const resourceTypes: string[] = ['json', 'widget', 'image', 'audio', 'markdown', 'theme', 'reveal_slide', 'license', 'video', 'catalog'];\r\n\r\n// 全局列表加载条目数\r\nexport const pageSize: number = 100;\r\n\r\n// Moment 日期时间格式\r\nexport const momentDateFormat: string = 'YYYY-MM-DD'\r\nexport const momentDateTimeFormat: string = 'YYYY-MM-DD HH:mm';\r\n\r\n// 签约方用户的身份类型定义\r\nexport enum EnumContractPartyIdentityType {\r\n resource = 1,\r\n node,\r\n consumer,\r\n}\r\n\r\n// 标的物类型定义\r\nexport enum EnumSubjectType {\r\n resource = 1,\r\n exhibit,\r\n user,\r\n}\r\n\r\n// 合约状态定义\r\nexport enum EnumContractStatus {\r\n pending,\r\n authorized,\r\n stopped,\r\n}\r\n\r\n// 合约授权状态定义\r\n// export enum ContractAuthStatus {\r\n//\r\n// }\r\n","import FUtil from '../utils';\r\nimport {AxiosRequestConfig, Canceler} from 'axios';\r\n\r\n// 创建bucket(系统级的bucket不允许创建)\r\nexport interface CreateBucketParamsType {\r\n bucketName: string;\r\n}\r\n\r\nexport function createBucket(params: CreateBucketParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/storages/buckets`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 查看用户的bucket列表\r\ninterface BucketListParamsType {\r\n bucketType: 0 | 1 | 2;\r\n}\r\n\r\nexport function bucketList(params: BucketListParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/storages/buckets`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查询bucket使用情况\r\ninterface SpaceStatisticsParamsType {\r\n}\r\n\r\nexport function spaceStatistics(params: SpaceStatisticsParamsType = {}) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/storages/buckets/spaceStatistics`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 删除bucket\r\ninterface DeleteBucketParamsType {\r\n bucketName: string;\r\n}\r\n\r\nexport function deleteBucket(params: DeleteBucketParamsType) {\r\n return FUtil.Request({\r\n method: 'DELETE',\r\n url: `/v2/storages/buckets/${params.bucketName}`,\r\n // params: params,\r\n });\r\n}\r\n\r\n// 查询bucket详情\r\ninterface BucketDetailsParamsType {\r\n bucketName: string;\r\n}\r\n\r\nexport function bucketDetails({bucketName}: BucketDetailsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/storages/buckets/${bucketName}`,\r\n // params: params,\r\n });\r\n}\r\n\r\n// 分页查看存储对象列表\r\ninterface ObjectListParamsType {\r\n limit?: number;\r\n skip?: number;\r\n bucketName: string;\r\n resourceType?: string;\r\n resourceTypeCode?: string;\r\n isLoadingTypeless?: 0 | 1;\r\n keywords?: string;\r\n projection?: string;\r\n sort?: string;\r\n omitResourceType?: string;\r\n mime?: string;\r\n extNames?: string;\r\n}\r\n\r\nexport function objectList({bucketName, ...params}: ObjectListParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/storages/buckets/${bucketName}/objects`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 分页查看用户节点数据列表\r\ninterface UserNodeDataListParamsType {\r\n skip?: number;\r\n limit?: number;\r\n}\r\n\r\nexport function userNodeDataList(params: UserNodeDataListParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/storages/buckets/.UserNodeData/objects`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 创建存储对象\r\ninterface CreateObjectParamsType {\r\n bucketName: string;\r\n objectName: string;\r\n sha1: string;\r\n resourceType?: string;\r\n}\r\n\r\nexport function createObject({bucketName, ...params}: CreateObjectParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/storages/buckets/${bucketName}/objects`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 查看存储对象详情\r\ninterface ObjectDetailsParamsType1 {\r\n bucketName: string;\r\n objectId: string;\r\n}\r\n\r\ninterface ObjectDetailsParamsType2 {\r\n objectIdOrName: string;\r\n}\r\n\r\nexport function objectDetails(params: ObjectDetailsParamsType1 | ObjectDetailsParamsType2) {\r\n if ((params as ObjectDetailsParamsType2).objectIdOrName) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/storages/objects/${encodeURIComponent((params as ObjectDetailsParamsType2).objectIdOrName)}`,\r\n params: params,\r\n });\r\n }\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/storages/buckets/${(params as ObjectDetailsParamsType1).bucketName}/objects/${(params as ObjectDetailsParamsType1).objectId}`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 删除存储对象\r\ninterface DeleteObjectsParamsType {\r\n bucketName: string;\r\n objectIds: string;\r\n}\r\n\r\nexport function deleteObjects(params: DeleteObjectsParamsType) {\r\n return FUtil.Request({\r\n method: 'DELETE',\r\n url: `/v2/storages/buckets/${params.bucketName}/objects/${params.objectIds}`,\r\n // data: params,\r\n });\r\n}\r\n\r\n// 查询bucket是否存在\r\ninterface BucketIsExistParamsType {\r\n bucketName: string;\r\n}\r\n\r\nexport function bucketIsExist({bucketName}: BucketIsExistParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/storages/buckets/${bucketName}/isExist`,\r\n // params: params,\r\n });\r\n}\r\n\r\n// 下载存储对象文件\r\ninterface DownloadObjectParamsType {\r\n objectIdOrName: string;\r\n}\r\n\r\nexport function downloadObject(params: DownloadObjectParamsType) {\r\n return window.location.href = FUtil.Format.completeUrlByDomain('api') + `/v2/storages/objects/${params.objectIdOrName}/file`;\r\n}\r\n\r\n// 根据sha1查询文件是否存在\r\ninterface FileIsExistParamsType {\r\n sha1: string;\r\n}\r\n\r\nexport function fileIsExist(params: FileIsExistParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/storages/files/fileIsExist`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 上传资源文件\r\ninterface UploadFileParamsType {\r\n file: File;\r\n resourceType?: string;\r\n}\r\n\r\nexport function uploadFile(params: UploadFileParamsType, config?: AxiosRequestConfig, returnCancel: boolean = false): Promise<any> | [Promise<any>, Canceler] {\r\n const formData = new FormData();\r\n for (const [key, value] of Object.entries(params)) {\r\n if (value) {\r\n formData.append(key, value);\r\n }\r\n }\r\n\r\n if (!returnCancel) {\r\n // return FUtil.Axios.post('/v2/storages/files/upload', formData, config);\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/storages/files/upload`,\r\n data: formData,\r\n ...config,\r\n });\r\n }\r\n\r\n let cancel: any = null;\r\n // const promise = FUtil.Axios.post('/v2/storages/files/upload', formData, {\r\n // cancelToken: new FUtil.Axios.CancelToken((c) => {\r\n // cancel = c;\r\n // }),\r\n // });\r\n\r\n const promise = FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/storages/files/upload`,\r\n data: formData,\r\n cancelToken: new FUtil.Axios.CancelToken((c) => {\r\n cancel = c;\r\n }),\r\n ...config,\r\n });\r\n return [\r\n promise,\r\n cancel,\r\n ];\r\n\r\n}\r\n\r\n// 上传图片文件\r\ninterface UploadImageParamsType {\r\n file: File;\r\n}\r\n\r\nexport function uploadImage(params: UploadImageParamsType, config?: AxiosRequestConfig) {\r\n const formData = new FormData();\r\n for (const [key, value] of Object.entries(params)) {\r\n if (value) {\r\n formData.append(key, value);\r\n }\r\n }\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/storages/files/uploadImage`,\r\n data: formData,\r\n ...config,\r\n });\r\n}\r\n\r\n// 处理图片文件\r\ninterface HandleImageParamsType {\r\n sha1: string;\r\n}\r\n\r\nexport function handleImage(params: HandleImageParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/storages/files/imageHandle`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 生成封面\r\ninterface GenerateCoverImageParamsType {\r\n sha1: string;\r\n}\r\n\r\nexport function generateCoverImage(params: GenerateCoverImageParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/storages/files/generateCoverImage`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 更新存储对象属性\r\ninterface UpdateObjectParamsType {\r\n objectIdOrName: string;\r\n customPropertyDescriptors?: {\r\n key: string;\r\n defaultValue: string;\r\n type: 'editableText' | 'readonlyText' | 'radio' | 'checkbox' | 'select';\r\n candidateItems?: string[];\r\n remark?: string;\r\n }[];\r\n dependencies?: {\r\n name: string;\r\n type: string;\r\n versionRange?: string;\r\n }[];\r\n // resourceType?: string[];\r\n resourceTypeCode?: string;\r\n resourceTypeName?: string;\r\n}\r\n\r\nexport function updateObject({objectIdOrName, ...params}: UpdateObjectParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/storages/objects/${objectIdOrName}`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量更新存储对象\r\ninterface BatchUpdateObjectParamsType {\r\n objectIds: string[];\r\n resourceTypeCode: string;\r\n resourceTypeName?: string;\r\n}\r\n\r\nexport function batchUpdateObject({...params}: BatchUpdateObjectParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/storages/objects/updateBatch`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量查询存储对象列表\r\ninterface BatchObjectListParamsType {\r\n fullObjectNames?: string;\r\n objectIds?: string;\r\n projection?: string;\r\n}\r\n\r\nexport function batchObjectList(params: BatchObjectListParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/storages/objects/list`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 根据sha1和类型获取文件属性\r\ninterface FilePropertyParamsType {\r\n sha1: string;\r\n // resourceType: string;\r\n}\r\n\r\nexport function fileProperty({sha1, ...params}: FilePropertyParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/storages/files/${sha1}/property`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 对象依赖循环性检查\r\ninterface CycleDependencyCheckParamsType {\r\n objectIdOrName: string;\r\n dependencies: {\r\n name: string;\r\n type: 'resource' | 'object';\r\n versionRange?: string;\r\n }[];\r\n}\r\n\r\nexport function cycleDependencyCheck({objectIdOrName, ...params}: CycleDependencyCheckParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/storages/objects/${objectIdOrName}/cycleDependencyCheck`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 删除用户节点数据对象(清理节点数据)\r\ninterface ClearUserNodeDataParamsType {\r\n nodeIds?: number[];\r\n nodeDomains?: string[];\r\n}\r\n\r\nexport function clearUserNodeData({...params}: ClearUserNodeDataParamsType) {\r\n return FUtil.Request({\r\n method: 'DELETE',\r\n url: `/v2/storages/buckets/.UserNodeData/objects/clear`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量查询文件信息通过sha1\r\ninterface FilesListInfoParamsType {\r\n sha1: string;\r\n resourceTypeCode: string;\r\n}\r\n\r\nexport function filesListInfo({...params}: FilesListInfoParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/storages/files/list/info`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 批量查询文件信息\r\ninterface FilesInfoParamsType {\r\n resourceTypeCode: string;\r\n}\r\n\r\nexport function filesInfo({...params}: FilesInfoParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/storages/files/info`,\r\n params: params,\r\n });\r\n}\r\n","// import * as CryptoJS from 'crypto-js';\r\n\r\n/**\r\n * 根据 File 获取 SHA1 Hash 字符串\r\n * @param file\r\n * @return {Promise<string>}\r\n */\r\nexport function getSHA1Hash(file: File): Promise<string> {\r\n return new Promise((resolve) => {\r\n const reader: FileReader = new FileReader();\r\n reader.readAsArrayBuffer(file);\r\n reader.onload = async () => {\r\n if (!reader.result) {\r\n resolve('');\r\n return '';\r\n }\r\n if (typeof reader.result === 'string') {\r\n resolve('');\r\n return '';\r\n }\r\n const sha1: string = await self.crypto.subtle.digest('SHA-1', reader.result).then(a => Array.from(new Uint8Array(a)).map(a => a.toString(16).padStart(2, '0')).join(''));\r\n resolve(sha1);\r\n return '';\r\n };\r\n\r\n });\r\n}\r\n\r\n/**\r\n * 生成随机码\r\n */\r\nexport function generateRandomCode(strLen: number = 5): string {\r\n const allStr: string = 'ABCDEFGHIJKLMNPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890';\r\n const newStrArr: string[] = [];\r\n for (let i = 0; i < strLen; i++) {\r\n newStrArr.push(allStr[Math.floor(Math.random() * 61)]);\r\n }\r\n return newStrArr.join('');\r\n}\r\n\r\n/**\r\n * 通过读取 cookies 获取用户 ID\r\n */\r\nexport function getUserIDByCookies(): number {\r\n const uid: string | undefined = document.cookie.split('; ').find((co) => co.startsWith('uid='));\r\n if (!uid) {\r\n return -1;\r\n }\r\n return Number(uid.replace('uid=', ''));\r\n}\r\n\r\n\r\n/**\r\n * 将服务端的合约状态转换成前端需要的状态\r\n */\r\ninterface TransformServerAPIContractStateParams {\r\n status: 0 | 1 | 2; // 合同综合状态: 0:正常 1:已终止(不接受任何事件,也不给授权,事实上无效的合约) 2:异常\r\n authStatus: 1 | 2 | 128 | number; // 合同授权状态 1:正式授权 2:测试授权 128:未获得授权\r\n}\r\n\r\nexport function transformServerAPIContractState({\r\n status,\r\n authStatus,\r\n }: TransformServerAPIContractStateParams): 'active' | 'testActive' | 'inactive' | 'terminal' | 'exception' {\r\n if (status === 0) {\r\n if (authStatus === 1 || authStatus === 3) {\r\n return 'active';\r\n }\r\n if (authStatus === 2) {\r\n return 'testActive';\r\n }\r\n if (authStatus === 128) {\r\n return 'inactive';\r\n }\r\n }\r\n\r\n if (status === 1) {\r\n return 'terminal';\r\n }\r\n return 'exception';\r\n}\r\n\r\n/**\r\n * 暂时休眠\r\n * @param ms 休眠时常(毫秒)\r\n */\r\nexport function promiseSleep(ms: number = 300): Promise<void> {\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve();\r\n }, ms);\r\n });\r\n}\r\n\r\n/**\r\n * 获取用户头像URL\r\n * @param userID\r\n */\r\nexport function getAvatarUrl(userID: number = 0): string {\r\n // return `${completeUrlByDomain('image')}/avatar/${userID || getUserIDByCookies()}?t=${Date.now()}`;\r\n return `https://image.freelog.com/avatar/${userID || getUserIDByCookies()}?t=${Date.now()}`;\r\n}\r\n","import * as Tool from '../../utils/tools';\r\nimport * as Storage from '../storages';\r\n\r\ninterface FileInfo {\r\n sha1: string;\r\n state: 'success' | 'fail' | 'nonentity';\r\n info: {\r\n [key: string]: any;\r\n }\r\n}\r\n\r\ninterface GetFileInfosBySha1Params {\r\n sha1: string[];\r\n resourceTypeCode: string;\r\n}\r\n\r\nexport async function getFilesSha1Info({\r\n sha1,\r\n resourceTypeCode\r\n }: GetFileInfosBySha1Params, cdPartially: (s: any[]) => void = () => undefined): Promise<{\r\n error: string;\r\n result: FileInfo[],\r\n}> {\r\n if (sha1.length === 0) {\r\n return {\r\n error: '',\r\n result: [],\r\n };\r\n }\r\n\r\n let delay: number = 500;\r\n\r\n let needHandleSha1: string[] = [...sha1];\r\n\r\n let allData: FileInfo[] = [];\r\n\r\n while (true) {\r\n // console.log(needHandleSha1.join(','), 'needHandleSha1.join()90ojlskdfjsdlk')\r\n const {ret, errCode, data, msg}: any = await Storage.filesListInfo({\r\n sha1: needHandleSha1.join(','),\r\n resourceTypeCode: resourceTypeCode,\r\n });\r\n\r\n if (ret !== 0 || errCode !== 0) {\r\n console.log({\r\n ret, errCode, data, msg\r\n }, '09iowksdjaklfjs;oalijflskdjflsdkjflkj');\r\n return {\r\n error: msg,\r\n result: allData,\r\n };\r\n }\r\n\r\n needHandleSha1 = data\r\n .filter((d: any) => {\r\n return d.metaAnalyzeStatus === 0 || d.metaAnalyzeStatus === 1;\r\n })\r\n .map((d: any) => {\r\n return d.sha1;\r\n });\r\n const finishedInfo: FileInfo[] = data\r\n .filter((d: any) => {\r\n return d.metaAnalyzeStatus !== 0 && d.metaAnalyzeStatus !== 1;\r\n })\r\n .map((d: any) => {\r\n let state: 'success' | 'fail' | 'nonentity' = 'fail';\r\n if (!d.metaAnalyzeStatus) {\r\n state = 'nonentity';\r\n } else if (d.metaAnalyzeStatus === 2) {\r\n state = 'success';\r\n } else if (d.metaAnalyzeStatus === 3) {\r\n state = 'fail';\r\n }\r\n // console.log(d, '90wieojiksdjf;lkasdjf;lksdjflksjdflkjsdlfkjsdlkj');\r\n return {\r\n sha1: d.sha1,\r\n state,\r\n info: d,\r\n };\r\n });\r\n cdPartially && cdPartially(finishedInfo);\r\n allData = [\r\n ...allData,\r\n ...finishedInfo,\r\n ];\r\n\r\n if (needHandleSha1.length === 0) {\r\n break;\r\n }\r\n await Tool.promiseSleep(delay);\r\n // delay += 500;\r\n }\r\n return {\r\n error: '',\r\n result: allData,\r\n };\r\n}\r\n","import * as Node from './nodes';\nimport * as Exhibit from './presentables';\nimport * as Storage from './storages';\nimport * as Collection from './collections';\nimport * as Resource from './resources';\nimport * as User from './user';\nimport * as InformalNode from './informalNodes';\nimport * as Contract from './contracts';\nimport * as Transaction from './transactions';\nimport * as Captcha from './captcha';\nimport * as Event from './events';\nimport * as Activity from './activities';\nimport * as TestQualification from './testQualifications';\nimport * as Statistic from './statistics';\nimport * as I18n from './i18n';\nimport * as Policy from './policies';\nimport * as recombination from './recombinations';\nimport * as Operation from './operation';\nimport * as ResourceType from './resourceType';\nimport * as Payment from './payment';\n\nconst FServiceAPI = {\n Node,\n Exhibit,\n Storage,\n Collection,\n Resource,\n User,\n InformalNode,\n Contract,\n Transaction,\n Captcha,\n Event,\n Activity,\n TestQualification,\n Statistic,\n I18n,\n Policy,\n recombination,\n Operation,\n ResourceType,\n Payment,\n};\n\nexport default FServiceAPI;\n","import FUtil from '../utils';\r\n\r\n// 创建节点\r\nexport interface CreateParamsType {\r\n nodeName: string;\r\n nodeDomain: string;\r\n nodeTitle: string;\r\n}\r\n\r\nexport function create(params: CreateParamsType) {\r\n // return FUtil.Axios.post('/v2/nodes', params);\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/nodes`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 查看节点详情\r\ninterface NodeDetailParamsType1 {\r\n nodeId: number;\r\n}\r\n\r\ninterface NodeDetailParamsType2 {\r\n nodeName?: string;\r\n nodeDomain?: string;\r\n}\r\n\r\nexport function details(params: NodeDetailParamsType1 | NodeDetailParamsType2) {\r\n if ((params as NodeDetailParamsType1).nodeId) {\r\n // return FUtil.Axios.get(`/v2/nodes/${(params as NodeDetailParamsType1).nodeId}`);\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/nodes/${(params as NodeDetailParamsType1).nodeId}`,\r\n // params: params,\r\n });\r\n }\r\n // return FUtil.Axios.get(`/v2/nodes/detail`, {\r\n // params,\r\n // });\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/nodes/detail`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看节点列表\r\ninterface NodesParamsType {\r\n skip?: number;\r\n limit?: number;\r\n status?: 0 | 1 | 2; // 0:正常 1:未审核 2:冻结\r\n projection?: string;\r\n nodeType?: 0 | 1;\r\n}\r\n\r\nexport function nodes(params: NodesParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/nodes`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 示例节点\r\ninterface SearchForClientParamsType {\r\n skip?: number;\r\n limit?: number;\r\n status?: 0 | 1 | 2; // 0:正常 1:未审核 2:冻结\r\n projection?: string;\r\n nodeType?: 0 | 1;\r\n}\r\n\r\nexport function searchForClient(params: SearchForClientParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/nodes/searchForClient`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 设置节点信息\r\ninterface SetNodeInfoParamsType {\r\n nodeId: number;\r\n nodeLogo: string;\r\n nodeTitle: string;\r\n nodeShortDescription: string;\r\n // nodeVisibility: 1 | 2 | 3; // 可见性 1:公开 2:私密 3:暂停\r\n status: 1 | 2 | 8; // 可见性 1:公开 2:私密 3:暂停\r\n nodeSuspendInfo: string;\r\n}\r\n\r\nexport function setNodeInfo(params: SetNodeInfoParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/nodes/setNodeInfo`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 删除节点\r\ninterface DeleteNodeParamsType {\r\n nodeId: number;\r\n}\r\n\r\nexport function deleteNode({nodeId}: DeleteNodeParamsType) {\r\n return FUtil.Request({\r\n method: 'DELETE',\r\n url: `/v2/nodes/${nodeId}`,\r\n // params: params,\r\n });\r\n}\r\n\r\n","import FUtil from '../utils';\r\n\r\n// 创建展品\r\nexport interface CreatePresentableParamsType {\r\n nodeId: number;\r\n resourceId: string;\r\n version: string;\r\n // resolveResources: {\r\n // resourceId: string;\r\n // contracts: {\r\n // policyId: string;\r\n // }[];\r\n // }[];\r\n batchSignContracts?: {\r\n resourceId: string;\r\n subjectType: number;\r\n policyIds: string[];\r\n }[];\r\n presentableName: string;\r\n presentableTitle?: string;\r\n tags?: string[];\r\n policies?: {\r\n policyName: string;\r\n policyText: string;\r\n status?: 0 | 1;\r\n }[];\r\n}\r\n\r\nexport function createPresentable(params: CreatePresentableParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/presentables`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 更新展品\r\ninterface UpdatePresentableParamsType {\r\n presentableId: string;\r\n presentableTitle?: string;\r\n presentableIntro?: string;\r\n tags?: string[];\r\n coverImages?: string[];\r\n addPolicies?: {\r\n policyName: string;\r\n policyText: string;\r\n status?: 0 | 1;\r\n }[];\r\n updatePolicies?: {\r\n policyId: string;\r\n status: 0 | 1;\r\n }[];\r\n resolveResources?: {\r\n resourceId: string;\r\n contracts: {\r\n policyId: string;\r\n }[];\r\n }[];\r\n autoUpdateStatus?: 0 | 1;\r\n}\r\n\r\nexport function updatePresentable({\r\n presentableId,\r\n ...params\r\n}: UpdatePresentableParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/presentables/${presentableId}`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 上下线presentable\r\ninterface PresentablesOnlineParamsType {\r\n presentableId: string;\r\n onlineStatus: 0 | 1;\r\n updatePolicies?: {\r\n policyId: string;\r\n status: 0 | 1;\r\n };\r\n}\r\n\r\nexport function presentablesOnlineStatus({\r\n presentableId,\r\n ...params\r\n}: PresentablesOnlineParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/presentables/${presentableId}/onlineStatus`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 查看展品详情\r\ninterface PresentableDetailsParamsType1 {\r\n presentableId: string;\r\n projection?: string;\r\n isLoadVersionProperty?: 0 | 1;\r\n isLoadPolicyInfo?: 0 | 1;\r\n isTranslate?: 0 | 1;\r\n isLoadCustomPropertyDescriptors?: 0 | 1;\r\n isLoadResourceDetailInfo?: 0 | 1;\r\n isLoadResourceVersionInfo?: 0 | 1;\r\n}\r\n\r\ninterface PresentableDetailsParamsType2 {\r\n nodeId: number;\r\n resourceId?: string;\r\n resourceName?: string;\r\n presentableName?: string;\r\n projection?: string;\r\n isLoadVersionProperty?: 0 | 1;\r\n isLoadPolicyInfo?: 0 | 1;\r\n isLoadCustomPropertyDescriptors?: 0 | 1;\r\n}\r\n\r\nexport function presentableDetails(\r\n params: PresentableDetailsParamsType1 | PresentableDetailsParamsType2\r\n) {\r\n if ((params as PresentableDetailsParamsType2).nodeId) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/presentables/detail`,\r\n params: params,\r\n });\r\n }\r\n const { presentableId, ...p } = params as PresentableDetailsParamsType1;\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/presentables/${presentableId}`,\r\n params: p,\r\n });\r\n}\r\n\r\n// 查询展品分页列表\r\ninterface PresentablesParamsType {\r\n nodeId: number;\r\n skip?: number;\r\n limit?: number;\r\n resourceType?: string;\r\n resourceTypeCode?: string;\r\n omitResourceType?: string;\r\n onlineStatus?: number;\r\n tags?: string;\r\n projection?: string;\r\n keywords?: string;\r\n isLoadVersionProperty?: 0 | 1;\r\n isLoadPolicyInfo?: 0 | 1;\r\n isLoadResourceDetailInfo?: 0 | 1;\r\n isLoadVersionUpdateTip?: 0 | 1;\r\n subjectType?: 1 | 4 | 5;\r\n}\r\n\r\nexport function presentables(params: PresentablesParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/presentables`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 批量查询展品列表\r\ninterface PresentableListParamsType {\r\n nodeId?: number;\r\n userId?: number;\r\n presentableIds?: string;\r\n resourceIds?: string;\r\n resourceNames?: string;\r\n isLoadVersionProperty?: 0 | 1;\r\n isLoadPolicyInfo?: 0 | 1;\r\n isTranslate?: 0 | 1;\r\n projection?: string;\r\n resolveResourceIds?: string;\r\n}\r\n\r\nexport function presentableList(params: PresentableListParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/presentables/list`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看展品依赖树\r\ninterface DependencyTreeParamsType {\r\n presentableId: string;\r\n maxDeep?: number;\r\n nid?: string;\r\n isContainRootNode?: boolean;\r\n version?: string;\r\n}\r\n\r\nexport function dependencyTree({\r\n presentableId,\r\n ...params\r\n}: DependencyTreeParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/presentables/${presentableId}/dependencyTree`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看展品关系树\r\ninterface RelationTreeParamsType {\r\n presentableId: string;\r\n version?: string;\r\n}\r\n\r\nexport function relationTree({\r\n presentableId,\r\n ...params\r\n}: RelationTreeParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/presentables/${presentableId}/relationTree`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看展品授权树\r\ninterface AuthTreeParamsType {\r\n presentableId: string;\r\n maxDeep?: number;\r\n nid?: string;\r\n isContainRootNode?: boolean;\r\n version?: string;\r\n}\r\n\r\nexport function authTree({ presentableId, ...params }: AuthTreeParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/presentables/${presentableId}/authTree`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 切换展品版本\r\ninterface PresentablesVersionParamsType {\r\n presentableId: string;\r\n version: string;\r\n}\r\n\r\nexport function presentablesVersion({\r\n presentableId,\r\n ...params\r\n}: PresentablesVersionParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/presentables/${presentableId}/version`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 设置展品自定义属性\r\ninterface UpdateRewritePropertyParamsType {\r\n presentableId: string;\r\n rewriteProperty: {\r\n key: string;\r\n value: string;\r\n remark: string;\r\n }[];\r\n}\r\n\r\nexport function updateRewriteProperty({\r\n presentableId,\r\n ...params\r\n}: UpdateRewritePropertyParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/presentables/${presentableId}/rewriteProperty`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量获取展品授权结果\r\ninterface BatchAuthParamsType {\r\n nodeId: number;\r\n authType: 1 | 2 | 3; // 1:节点侧授权 2:资源侧授权 3:节点+资源侧授权\r\n presentableIds: string;\r\n}\r\n\r\nexport function batchAuth({ nodeId, ...params }: BatchAuthParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/auths/presentables/nodes/${nodeId}/batchAuth/result`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看合约应用的展品列表\r\ninterface ContractAppliedPresentableParamsType {\r\n nodeId: number;\r\n contractIds: string;\r\n}\r\n\r\nexport function contractAppliedPresentable({\r\n nodeId,\r\n ...params\r\n}: ContractAppliedPresentableParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/presentables/${nodeId}/contractAppliedPresentable`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 一键批量创建展品\r\nexport interface BatchCreatePresentableParamsType {\r\n nodeId: number;\r\n resources: {\r\n resourceId: string;\r\n policyId?: string;\r\n }[];\r\n}\r\n\r\nexport function batchCreatePresentable(\r\n params: BatchCreatePresentableParamsType\r\n) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/presentables/createPresentableBatchEasy`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量更新展品\r\ninterface BatchUpdatePresentableParamsType {\r\n presentableIds: string[];\r\n addPolicies: {\r\n policyName: string;\r\n policyText: string;\r\n status?: 0 | 1;\r\n }[];\r\n}\r\n\r\nexport function batchUpdatePresentable({\r\n ...params\r\n}: BatchUpdatePresentableParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/presentables/updatePresentableBatch`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量切换展品上下线状态\r\ninterface BatchUpdatePresentableStatusParamsType {\r\n presentableIds: string[];\r\n onlineStatus: 0 | 1;\r\n}\r\n\r\nexport function batchUpdatePresentableStatus({\r\n ...params\r\n}: BatchUpdatePresentableStatusParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/presentables/updatePresentableOnlineStatusBatch`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 忽略展品更新提醒\r\ninterface IgnorePresentableVersionUpdateTipParamsType {\r\n presentableId: string;\r\n ignoreVersion: string;\r\n}\r\n\r\nexport function ignorePresentableVersionUpdateTip({\r\n presentableId,\r\n ...params\r\n}: IgnorePresentableVersionUpdateTipParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/presentables/${presentableId}/ignorePresentableVersionUpdateTip`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 创建展品合集\r\ninterface CreatePresentableCollectionParamsType {\r\n nodeId: number;\r\n presentableName: string;\r\n presentableTitle?: string;\r\n policies?: {\r\n policyName: string;\r\n policyText: string;\r\n status: 0 | 1;\r\n }[];\r\n tags?: string[];\r\n coverImages?: string[];\r\n resourceTypeCode?: string;\r\n}\r\n\r\nexport function createPresentableCollection({\r\n ...params\r\n}: CreatePresentableCollectionParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/presentables/catalogues`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 更新展品合集\r\ninterface UpdatePresentableCollectionParamsType {\r\n presentableId: string;\r\n catalogueProperty?: {\r\n collection_sort_list:\r\n | 'collection_sort_ascending'\r\n | 'collection_sort_descending';\r\n };\r\n}\r\n\r\nexport function updatePresentableCollection({\r\n presentableId,\r\n ...params\r\n}: UpdatePresentableCollectionParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/presentables/catalogues/${presentableId}`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量为展品合集添加单品\r\ninterface AddItemsToPresentableCollectionParamsType {\r\n presentableId: string;\r\n addCollectionItems: {\r\n presentableId: string;\r\n }[];\r\n}\r\n\r\nexport function addItemsToPresentableCollection({\r\n presentableId,\r\n ...params\r\n}: AddItemsToPresentableCollectionParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/presentables/catalogues/${presentableId}/items`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量从展品合集中移除单品\r\ninterface RemoveItemsFromPresentableCollectionParamsType {\r\n presentableId: string;\r\n removeIds: string;\r\n idType?: 'resourceId' | 'presentableId' | 'itemId';\r\n}\r\n\r\nexport function removeItemsFromPresentableCollection({\r\n presentableId,\r\n ...params\r\n}: RemoveItemsFromPresentableCollectionParamsType) {\r\n return FUtil.Request({\r\n method: 'DELETE',\r\n url: `/v2/presentables/catalogues/${presentableId}/items`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查询展品合集中的单品分页列表\r\ninterface GetItemsFromPresentableCollectionParamsType {\r\n presentableId: string;\r\n isLoadLatestVersionInfo?: 0 | 1;\r\n skip?: number;\r\n limit?: number;\r\n keywords?: string;\r\n sortField?: 'createDate' | 'sortId';\r\n sortType?: -1 | 1;\r\n}\r\n\r\nexport function getItemsFromPresentableCollection({\r\n presentableId,\r\n ...params\r\n}: GetItemsFromPresentableCollectionParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/presentables/catalogues/${presentableId}/items`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查询展品合集中的是否存在指定单品\r\ninterface GetItemsFromPresentableCollectionIsExistParamsType {\r\n presentableId: string;\r\n mountIds: string;\r\n idType?: 'resourceId' | 'presentableId';\r\n}\r\n\r\nexport function getItemsFromPresentableCollectionIsExist({\r\n presentableId,\r\n ...params\r\n}: GetItemsFromPresentableCollectionIsExistParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/presentables/catalogues/${presentableId}/items/checkExists`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 设置展品合集中的单品排序-手动排序\r\ninterface SetItemsSortFromPresentableCollectionManualParamsType {\r\n presentableId: string;\r\n itemIds: string[];\r\n targetSortId: number;\r\n}\r\n\r\nexport function setItemsSortFromPresentableCollectionManual({\r\n presentableId,\r\n ...params\r\n}: SetItemsSortFromPresentableCollectionManualParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/presentables/catalogues/${presentableId}/manualSort`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 设置展品合集中的单品排序-快速排序\r\ninterface SetItemsSortFromPresentableCollectionQuickParamsType {\r\n presentableId: string;\r\n sortField:\r\n | 'createDate'\r\n | 'itemTitle'\r\n | 'sortId'\r\n | 'resourceFirstVersionReleaseDate';\r\n sortType: 1 | -1;\r\n}\r\n\r\nexport function setItemsSortFromPresentableCollectionQuick({\r\n presentableId,\r\n ...params\r\n}: SetItemsSortFromPresentableCollectionQuickParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/presentables/catalogues/${presentableId}/reorder`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 获取合集单品自动收录规则\r\ninterface GetItemsAutoCollectRuleParamsType {\r\n presentableId: string;\r\n}\r\n\r\nexport function getItemsAutoCollectRule({\r\n presentableId,\r\n}: // ...params\r\nGetItemsAutoCollectRuleParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/presentables/catalogues/${presentableId}/items/collectRules`,\r\n // params: params,\r\n });\r\n}\r\n\r\n// 创建或更新合集单品自动收录规则\r\ninterface SetItemsAutoCollectRuleParamsType {\r\n presentableId: string;\r\n status: 0 | 1;\r\n conditionType: 1 | 2;\r\n filterConditions: {\r\n key: 'presentableTitle' | 'resourceTypeCode' | 'authIdentity';\r\n limitOperatorType:\r\n | 'INCLUDES'\r\n | 'NOT_INCLUDES'\r\n | 'STARTS_WITH'\r\n | 'ENDS_WITH'\r\n | 'EQUAL'\r\n | 'NOT_EQUAL';\r\n value: string;\r\n }[];\r\n}\r\n\r\nexport function setItemsAutoCollectRule({\r\n presentableId,\r\n ...params\r\n}: SetItemsAutoCollectRuleParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/presentables/catalogues/${presentableId}/items/collectRules`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量查询展品合集下的单品\r\ninterface GetItemsFromPresentableCollectionsParamsType {\r\n presentableIds: string;\r\n sortType?: 1 | -1;\r\n sortField?: 'createDate';\r\n limit?: number;\r\n}\r\n\r\nexport function getItemsFromPresentableCollections({\r\n ...params\r\n}: GetItemsFromPresentableCollectionsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n // url: `/v2/presentables/catalogues/items/batch/list?presentableIds=685cf423e1502e002fe3053b&limit=1&sortType=-1&sortField=createDate`,\r\n url: `/v2/presentables/catalogues/items/batch/list`,\r\n params: params,\r\n });\r\n}\r\n","import FUtil from '../utils';\r\n\r\n// 收藏资源\r\ninterface CollectResourceParamsType {\r\n resourceId: string;\r\n}\r\n\r\nexport function collectResource(params: CollectResourceParamsType) {\r\n // return FUtil.Axios.post('/v2/collections/resources', params);\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/collections/resources`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 查看收藏的资源列表\r\ninterface CollectionResourcesParamsType {\r\n skip?: number;\r\n limit?: number;\r\n keywords?: string;\r\n resourceType?: string;\r\n resourceTypeCode?: string;\r\n resourceTypeCategory?: 1 | 2;\r\n omitResourceType?: string;\r\n resourceStatus?: 0 | 1 | 2 | 4;\r\n}\r\n\r\nexport function collectionResources(params: CollectionResourcesParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/collections/resources`,\r\n params: params,\r\n });\r\n\r\n}\r\n\r\n// 删除收藏的资源\r\ninterface DeleteCollectResourceParamsType {\r\n resourceId: string;\r\n}\r\n\r\nexport function deleteCollectResource({resourceId}: DeleteCollectResourceParamsType) {\r\n // return FUtil.Axios.delete(`/v2/collections/resources/${resourceId}`);\r\n return FUtil.Request({\r\n method: 'DELETE',\r\n url: `/v2/collections/resources/${resourceId}`,\r\n // params: params,\r\n });\r\n}\r\n\r\n// 批量查询资源是否收藏\r\ninterface IsCollectedParamsType {\r\n resourceIds: string;\r\n}\r\n\r\nexport function isCollected(params: IsCollectedParamsType) {\r\n // return FUtil.Axios.get('/v2/collections/resources/isCollected', {\r\n // params\r\n // });\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/collections/resources/isCollected`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查询资源总收藏数量\r\ninterface CollectedCountParamsType {\r\n resourceId: string;\r\n}\r\n\r\nexport function collectedCount({resourceId}: CollectedCountParamsType) {\r\n // return FUtil.Axios.get(`/v2/collections/resources/${resourceId}/count`);\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/collections/resources/${resourceId}/count`,\r\n // params: params,\r\n });\r\n}\r\n","import FUtil from '../utils';\r\nimport { CommonReturn } from './tools';\r\n\r\n// interface IResourceInfo {\r\n// baseUpcastResources: {\r\n// resourceId: string;\r\n// resourceName: string;\r\n// }[],\r\n// coverImages: string[],\r\n// createDate: string;\r\n// intro: string;\r\n// latestVersion: string;\r\n// policies: {\r\n// policyId: string;\r\n// policyName: string;\r\n// status: 0 | 1;\r\n// }[];\r\n// resourceId: string;\r\n// resourceName: string;\r\n// resourceTitle: string;\r\n// resourceType: string[];\r\n// resourceVersions: {\r\n// createDate: string;\r\n// version: string;\r\n// versionId: string;\r\n// }[];\r\n// status: 0 | 1 | 2 | 4; // 0:待发行(初始状态) 1:上架 2:冻结 4:下架(也叫待上架)\r\n// tags: string[];\r\n// updateDate: string;\r\n// userId: number;\r\n// username: string;\r\n// operationType: number;\r\n// }\r\n\r\n// 创建资源\r\nexport interface CreateParamsType {\r\n name: string;\r\n subjectType?: 1 | 4; // 标的物类型(1:普通资源 4:合集资源) 默认是1\r\n resourceTitle?: string;\r\n // resourceType: string[]\r\n resourceTypeCode: string;\r\n resourceTypeName?: string;\r\n policies?: {\r\n policyName: string;\r\n policyText: string;\r\n status?: 0 | 1;\r\n }[];\r\n coverImages?: string[];\r\n intro?: string;\r\n tags?: string[];\r\n}\r\n\r\nexport function create(params: CreateParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/resources`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量创建资源\r\nexport interface CreateBatchParamsType {\r\n resourceTypeCode: string;\r\n resourceTypeName?: string;\r\n createResourceObjects: {\r\n name: string;\r\n resourceTitle?: string;\r\n policies?: {\r\n policyName: string;\r\n policyText: string;\r\n status?: 1 | 0;\r\n }[];\r\n coverImages?: string[];\r\n intro?: string;\r\n tags?: string[];\r\n\r\n version: string;\r\n fileSha1: string;\r\n filename: string;\r\n description?: string;\r\n dependencies?: {\r\n resourceId: string;\r\n versionRange: string;\r\n }[];\r\n customPropertyDescriptors?: {\r\n key: string;\r\n name: string;\r\n defaultValue: string;\r\n type: 'editableText' | 'readonlyText' | 'radio' | 'checkbox' | 'select';\r\n candidateItems?: string[];\r\n remark?: string;\r\n }[];\r\n baseUpcastResources?: {\r\n resourceId: string;\r\n }[];\r\n batchSignContracts?: {\r\n resourceId: string;\r\n // resourceName: string;\r\n policyIds: string[];\r\n // subjectType: 'resource' | '';\r\n subjectType: string;\r\n }[];\r\n // resolveResources: {\r\n // resourceId: string;\r\n // contracts: {\r\n // policyId: string;\r\n // }[];\r\n // }[];\r\n inputAttrs?: {\r\n key: string;\r\n value: string;\r\n }[];\r\n }[];\r\n}\r\n\r\nexport function createBatch(params: CreateBatchParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/resources/createBatch`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 更新资源信息\r\ninterface UpdateParamsType {\r\n resourceId: string;\r\n status?: 0 | 1;\r\n resourceTitle?: string;\r\n intro?: string;\r\n tags?: string[];\r\n coverImages?: string[];\r\n addPolicies?: {\r\n policyName: string;\r\n policyText: string;\r\n status?: 0 | 1; // 1:上线 0:下线\r\n }[];\r\n updatePolicies?: {\r\n policyId: string;\r\n status: 0 | 1; // 0:下线策略 1:上线策略\r\n }[];\r\n}\r\n\r\nexport function update(params: UpdateParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/resources/${params.resourceId}`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量更新资源信息\r\ninterface BatchUpdateParamsType {\r\n resourceIds: string[];\r\n status?: 1 | 4;\r\n // resourceTitle?: string;\r\n // intro?: string;\r\n // tags?: string[];\r\n // coverImages?: string[];\r\n addPolicies?: {\r\n policyName: string;\r\n policyText: string;\r\n status?: 0 | 1; // 1:上线 0:下线\r\n }[];\r\n // updatePolicies?: {\r\n // policyId: string;\r\n // status: 0 | 1; // 0:下线策略 1:上线策略\r\n // }[];\r\n}\r\n\r\nexport function batchUpdate(params: BatchUpdateParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/resources/updateBatch`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 查看资源分页列表\r\ninterface ListParamsType {\r\n skip?: number;\r\n limit?: number;\r\n keywords?: string;\r\n resourceType?: string;\r\n resourceTypeCode?: string;\r\n resourceTypeCategory?: 1 | 2; // 资源类型分类,1:基础类型,2:自定义类型,其实只有2时生效,生效时,resourceTypeCode为父类类型\r\n omitResourceType?: string;\r\n isSelf?: 0 | 1;\r\n userId?: number;\r\n status?: 0 | 1 | 2 | 4; // 分别是 0:待发行(初始状态) 1:上架 2:冻结 4:下架(也叫待上架)\r\n isLoadPolicyInfo?: 0 | 1;\r\n isLoadLatestVersionInfo?: 0 | 1;\r\n isLoadFreezeReason?: 0 | 1;\r\n projection?: string;\r\n startCreateDate?: string;\r\n endCreateDate?: string;\r\n tags?: string;\r\n sort?: string;\r\n // startResourceId?: string;\r\n operationCategoryCode?: string;\r\n operationTypes?: string;\r\n subjectType?: 1 | 4;\r\n}\r\n\r\n// interface ListReturnType extends CommonReturn {\r\n// data: IResourceInfo[];\r\n// }\r\n\r\nexport function list(params: ListParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看单个资源详情\r\ninterface InfoParamsType {\r\n resourceIdOrName: string;\r\n isLoadPolicyInfo?: 0 | 1;\r\n isTranslate?: 0 | 1;\r\n isLoadLatestVersionInfo?: 0 | 1;\r\n projection?: string;\r\n isLoadFreezeReason?: 0 | 1;\r\n}\r\n\r\n// interface InfoReturnType extends CommonReturn {\r\n// data: IResourceInfo\r\n// }\r\n\r\nexport function info({ resourceIdOrName, ...params }: InfoParamsType) {\r\n // : Promise<InfoReturnType>\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/${encodeURIComponent(resourceIdOrName)}`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 批量查询资源列表\r\ninterface BatchInfoParamsType {\r\n resourceIds?: string;\r\n resourceNames?: string;\r\n isLoadPolicyInfo?: 0 | 1;\r\n isTranslate?: 0 | 1;\r\n isLoadLatestVersionInfo?: 0 | 1;\r\n projection?: string;\r\n isLoadFreezeReason?: 0 | 1;\r\n}\r\n\r\n// interface BatchInfoReturnType extends CommonReturn {\r\n// data: IResourceInfo[];\r\n// }\r\n\r\nexport function batchInfo(params: BatchInfoParamsType) {\r\n // : Promise<BatchInfoReturnType>\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/list`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看资源的依赖树\r\ninterface DependencyTreeParamsType {\r\n resourceId: string;\r\n version?: string;\r\n maxDeep?: string;\r\n omitFields?: string;\r\n isContainRootNode?: boolean;\r\n}\r\n\r\nexport function dependencyTree({\r\n resourceId,\r\n ...params\r\n}: DependencyTreeParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/${resourceId}/dependencyTree`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看资源的授权树\r\ninterface AuthTreeParamsType {\r\n resourceId: string;\r\n version?: string;\r\n}\r\n\r\nexport function authTree({ resourceId, ...params }: AuthTreeParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/${resourceId}/authTree`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 创建资源版本\r\ninterface CreateVersionParamsType {\r\n resourceId: string;\r\n version: string;\r\n fileSha1: string;\r\n filename: string;\r\n description?: string;\r\n customPropertyDescriptors?: {\r\n key: string;\r\n name: string;\r\n defaultValue: string;\r\n type: 'editableText' | 'readonlyText' | 'radio' | 'checkbox' | 'select';\r\n candidateItems?: string[];\r\n remark?: string;\r\n }[];\r\n // resolveResources: {\r\n // resourceId: string;\r\n // contracts: {\r\n // policyId: string;\r\n // }[];\r\n // }[];\r\n inputAttrs?: {\r\n key: string;\r\n value: string;\r\n }[];\r\n\r\n dependencies?: {\r\n resourceId: string;\r\n versionRange: string;\r\n }[];\r\n baseUpcastResources?: {\r\n resourceId: string;\r\n }[];\r\n batchSignContracts?: {\r\n resourceId: string;\r\n policyIds: string[];\r\n }[];\r\n authExcludedItems: {\r\n resourceId: string;\r\n excludedType: 'contractId' | 'policyId';\r\n excludedValue: string;\r\n }[];\r\n}\r\n\r\nexport function createVersion({\r\n resourceId,\r\n ...params\r\n}: CreateVersionParamsType) {\r\n // return FUtil.Axios.post(`/v2/resources/${resourceId}/versions`, params);\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/resources/${resourceId}/versions`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 查看资源版本信息\r\ninterface ResourceVersionInfo1ParamsType {\r\n resourceId: string;\r\n version: string;\r\n projection?: string;\r\n}\r\n\r\ninterface ResourceVersionInfo2ParamsType {\r\n versionId: string;\r\n projection?: string;\r\n}\r\n\r\nexport function resourceVersionInfo1({\r\n resourceId,\r\n version,\r\n ...params\r\n}: ResourceVersionInfo1ParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/${resourceId}/versions/${version}`,\r\n params: params,\r\n });\r\n}\r\n\r\nexport function resourceVersionInfo2(params: ResourceVersionInfo2ParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/versions/detail`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看资源版本列表\r\ninterface getVersionListByResourceIDParamsType {\r\n resourceId: string;\r\n version?: string;\r\n projection?: string;\r\n sort?: string;\r\n}\r\n\r\nexport function getVersionListByResourceID({\r\n resourceId,\r\n ...params\r\n}: getVersionListByResourceIDParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/${resourceId}/versions`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 批量查询资源版本列表\r\ninterface GetVersionListParamsType {\r\n versionIds: string;\r\n projection?: string;\r\n}\r\n\r\nexport function getVersionList({ ...params }: GetVersionListParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/versions/list`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 根据sha1查询版本列表 (查询文件对象所挂载的资源及版本)\r\ninterface GetResourceVersionBySha1ParamsType {\r\n fileSha1: string;\r\n projection?: string;\r\n}\r\n\r\nexport function getResourceVersionBySha1({\r\n fileSha1,\r\n ...params\r\n}: GetResourceVersionBySha1ParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/files/${fileSha1}/versions`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 根据sha1查询资源列表 (查询文件对象所挂载的资源)\r\ninterface GetResourceBySha1ParamsType {\r\n fileSha1: string;\r\n projection?: string;\r\n}\r\n\r\nexport function getResourceBySha1({\r\n fileSha1,\r\n ...params\r\n}: GetResourceBySha1ParamsType) {\r\n // return FUtil.Axios.get(`/v2/resources/files/${fileSha1}`, {\r\n // params,\r\n // });\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/files/${fileSha1}`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 更新资源版本信息\r\ninterface UpdateResourceVersionInfoParamsType {\r\n version: string;\r\n resourceId: string;\r\n description?: string;\r\n customPropertyDescriptors?: {\r\n key: string;\r\n name: string;\r\n defaultValue: string;\r\n type: 'editableText' | 'readonlyText' | 'radio' | 'checkbox' | 'select';\r\n candidateItems?: string[];\r\n remark?: string;\r\n }[];\r\n resolveResources?: {\r\n resourceId: string;\r\n contracts: {\r\n policyId: string;\r\n }[];\r\n }[];\r\n inputAttrs: {\r\n key: string;\r\n value: string;\r\n }[];\r\n}\r\n\r\nexport function updateResourceVersionInfo(\r\n params: UpdateResourceVersionInfoParamsType\r\n) {\r\n // return FUtil.Axios.put(`/v2/resources/${params.resourceId}/versions/${params.version}`, params);\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/resources/${params.resourceId}/versions/${params.version}`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 保存或者更新资源版本草稿\r\ninterface SaveVersionsDraftParamsType {\r\n resourceId: string;\r\n draftData: any;\r\n}\r\n\r\nexport function saveVersionsDraft(params: SaveVersionsDraftParamsType) {\r\n // return FUtil.Axios.post(`/v2/resources/${params.resourceId}/versions/drafts`, params);\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/resources/${params.resourceId}/versions/drafts`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 查看资源版本草稿\r\ninterface LookDraftParamsType {\r\n resourceId: string;\r\n}\r\n\r\nexport function lookDraft(params: LookDraftParamsType) {\r\n // return FUtil.Axios.get(`/v2/resources/${params.resourceId}/versions/drafts`);\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/${params.resourceId}/versions/drafts`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 删除资源版本草稿\r\ninterface DeleteResourceDraftParamsType {\r\n resourceId: string;\r\n}\r\n\r\nexport function deleteResourceDraft({\r\n resourceId,\r\n}: DeleteResourceDraftParamsType) {\r\n // return FUtil.Axios.post(`/v2/resources/${params.resourceId}/versions/drafts`, params);\r\n return FUtil.Request({\r\n method: 'DELETE',\r\n url: `/v2/resources/${resourceId}/versions/drafts`,\r\n // data: params,\r\n });\r\n}\r\n\r\n// 校验文件是否被引入资源\r\ninterface ResourceIsUsedByOtherParamsType {\r\n fileSha1: string;\r\n}\r\n\r\nexport function resourceIsUsedByOther(params: ResourceIsUsedByOtherParamsType) {\r\n // return FUtil.Axios.get(`/v2/resources/versions/isCanBeCreate`, {\r\n // params,\r\n // });\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/versions/isCanBeCreate`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 下载资源文件\r\ninterface ResourcesDownloadParamsType {\r\n resourceId: string;\r\n version: string;\r\n}\r\n\r\nexport function resourcesDownload(params: ResourcesDownloadParamsType) {\r\n return (window.location.href =\r\n FUtil.Format.completeUrlByDomain('api') +\r\n `/v2/resources/${params.resourceId}/versions/${params.version}/download`);\r\n // return request.get(`/v2/resources/${params.resourceId}/versions/${params.$version}/download`, {\r\n // responseType: 'arraybuffer',\r\n // });\r\n}\r\n\r\n// 批量查看合同覆盖的版本集\r\ninterface BatchGetCoverageVersionsParamsType {\r\n resourceId: string;\r\n contractIds: string;\r\n}\r\n\r\nexport function batchGetCoverageVersions({\r\n resourceId,\r\n ...params\r\n}: BatchGetCoverageVersionsParamsType) {\r\n // return FUtil.Axios.get(`/v2/resources/${resourceId}/contracts/coverageVersions`, {\r\n // params,\r\n // });\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/${resourceId}/contracts/coverageVersions`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查询资源所解决的依赖集\r\ninterface ResolveResourcesParamsType {\r\n resourceId: string;\r\n}\r\n\r\ninterface CreateVersionReturnType extends CommonReturn {\r\n data: {\r\n resourceId: string;\r\n resourceName: string;\r\n versions: {\r\n version: string;\r\n versionId: string;\r\n contracts: {\r\n policyId: string;\r\n contractId: string;\r\n }[];\r\n }[];\r\n }[];\r\n}\r\n\r\nexport function resolveResources(\r\n params: ResolveResourcesParamsType\r\n): Promise<CreateVersionReturnType> {\r\n // return FUtil.Axios.get(`/v2/resources/${params.resourceId}/resolveResources`);\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/${params.resourceId}/resolveResources`,\r\n // params: params,\r\n });\r\n}\r\n\r\n// 批量设置策略应用的版本\r\ninterface BatchSetContractsParamsType {\r\n resourceId: string;\r\n subjects: {\r\n subjectId: string;\r\n versions: {\r\n version: string;\r\n policyId: string;\r\n operation: 0 | 1;\r\n }[];\r\n }[];\r\n}\r\n\r\nexport function batchSetContracts({\r\n resourceId,\r\n ...params\r\n}: BatchSetContractsParamsType) {\r\n // return FUtil.Axios.put(`/v2/resources/${resourceId}/versions/batchSetContracts`, params);\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/resources/${resourceId}/versions/batchSetContracts`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 资源依赖循环性检查\r\ninterface CycleDependencyCheckParamsType {\r\n resourceId: string;\r\n dependencies: {\r\n resourceId: string;\r\n versionRange: string;\r\n }[];\r\n}\r\n\r\nexport function cycleDependencyCheck({\r\n resourceId,\r\n ...params\r\n}: CycleDependencyCheckParamsType) {\r\n // return FUtil.Axios.post(`/v2/resources/${resourceId}/versions/cycleDependencyCheck`, params);\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/resources/${resourceId}/versions/cycleDependencyCheck`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 查看资源关系树\r\ninterface RelationTreeParamsType {\r\n resourceId: string;\r\n version?: string;\r\n versionRange?: string;\r\n}\r\n\r\nexport function relationTree({\r\n resourceId,\r\n ...params\r\n}: RelationTreeParamsType) {\r\n // return FUtil.Axios.get(`/v2/resources/${resourceId}/relationTree`, {\r\n // params,\r\n // });\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/${resourceId}/relationTree`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看含授权的资源关系树\r\ninterface RelationTreeAuthParamsType {\r\n resourceId: string;\r\n version?: string;\r\n versionRange?: string;\r\n}\r\n\r\nexport function relationTreeAuth({\r\n resourceId,\r\n ...params\r\n}: RelationTreeAuthParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/auths/resources/${resourceId}/relationTreeAuth`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看资源创建数量\r\ninterface ResourcesCountParamsType {\r\n userIds: string;\r\n status?: 0 | 1 | 2 | 3; // 0:下架 1:上架 2:冻结(冻结时处于下架状态) 3:冻结(冻结时处于上架状态)\r\n}\r\n\r\nexport function resourcesCount({ ...params }: ResourcesCountParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/count`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 批量查询资源授权结果\r\ninterface BatchAuthParamsType {\r\n resourceIds: string;\r\n versions?: string;\r\n versionRanges?: string;\r\n}\r\n\r\nexport function batchAuth({ ...params }: BatchAuthParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/auths/resources/batchAuth/results`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 批量查询资源授权结果\r\ninterface ResourcesRecommendParamsType {\r\n recommendType: 1 | 2; // 1: 推荐主题 2:占位主题\r\n}\r\n\r\nexport function resourcesRecommend({\r\n ...params\r\n}: ResourcesRecommendParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/recommend`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 根据资源类型查看推荐的标签\r\ninterface AvailableTagsParamsType {\r\n resourceTypeCode: string;\r\n}\r\n\r\nexport function availableTags({ ...params }: AvailableTagsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/tags/availableTags`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 列出资源类型分组排序\r\ninterface ResourceTypesParamsType {\r\n codeOrName?: string;\r\n category?: 1 | 2; // 种类 1:基础资源类型 2:自定义资源类型\r\n isMine?: boolean;\r\n status?: 0 | 1;\r\n supportCreateBatch?: 1 | 2;\r\n subjectType?: 1 | 4 | 5;\r\n}\r\n\r\nexport function resourceTypes({ ...params }: ResourceTypesParamsType = {}) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/types/listSimpleByGroup`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 简单根据父类型列出资源类型\r\ninterface ListSimpleByParentCodeParamsType {\r\n parentCode?: string;\r\n name?: string;\r\n category?: 1 | 2; // 种类 1:基础资源类型 2:自定义资源类型\r\n excludeParentCode?: boolean;\r\n isTerminate?: boolean;\r\n nameChain?: string;\r\n subjectType?: 1 | 4 | 5;\r\n supportCreateBatch?: 1 | 2;\r\n status?: 0 | 1;\r\n}\r\n\r\nexport function ListSimpleByParentCode({\r\n ...params\r\n}: ListSimpleByParentCodeParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/types/listSimpleByParentCode`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 根据编号取资源类型\r\ninterface GetResourceTypeInfoByCodeParamsType {\r\n code: string;\r\n}\r\n\r\nexport function getResourceTypeInfoByCode({\r\n ...params\r\n}: GetResourceTypeInfoByCodeParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/types/getInfoByCode`,\r\n params: params,\r\n });\r\n}\r\n\r\n//\r\ninterface GetResourceAttrListSimpleParamsType {}\r\n\r\nexport function getResourceAttrListSimple({\r\n ...params\r\n}: GetResourceAttrListSimpleParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/attrs/listSimple`,\r\n params: params,\r\n });\r\n}\r\n\r\ninterface ListSimple4RecentlyParamsType {}\r\n\r\nexport function listSimple4Recently({\r\n ...params\r\n}: ListSimple4RecentlyParamsType = {}) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/types/listSimple4Recently`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 通过key取资源属性\r\ninterface GetAttrsInfoByKeyParamsType {\r\n key: string;\r\n}\r\n\r\nexport function getAttrsInfoByKey({ ...params }: GetAttrsInfoByKeyParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/attrs/getInfoByKey`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 取可用的资源名称\r\ninterface GenerateResourceNamesParamsType {\r\n resourceNames: string[];\r\n}\r\n\r\nexport function generateResourceNames({\r\n resourceNames,\r\n}: GenerateResourceNamesParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/resources/generateResourceNames`,\r\n data: {\r\n resourceNames,\r\n },\r\n });\r\n}\r\n\r\n// 更新资源合集版本\r\ninterface UpdateCollectionParamsType {\r\n resourceId: string;\r\n description?: string;\r\n // serializeStatus?: 0 | 1;\r\n customPropertyDescriptors?: {\r\n key: string;\r\n defaultValue: string;\r\n type: string;\r\n candidateItems?: string[];\r\n remark?: string;\r\n }[];\r\n // resolveResources?: {\r\n // resourceId: string;\r\n // contracts: {\r\n // policyId: string;\r\n // }[];\r\n // }[];\r\n // optionalResolveResources?: {\r\n // resourceId: string;\r\n // contracts: {\r\n // policyId: string;\r\n // }[]\r\n // }[];\r\n // addCollectionItems?: {\r\n // resourceId: string;\r\n // itemTitle: string;\r\n // }[];\r\n catalogueProperty?: {\r\n collection_item_no_display?:\r\n | 'collection_item_no_display_show'\r\n | 'collection_item_no_display_hide';\r\n collection_item_image_display?:\r\n | 'collection_item_image_display_show'\r\n | 'collection_item_image_display_hide';\r\n collection_item_descr_display?:\r\n | 'collection_item_descr_display_show'\r\n | 'collection_item_descr_display_hide';\r\n collection_view?: 'collection_view_list' | 'collection_view_card';\r\n };\r\n isMergeCatalogueDraft?: 0 | 1;\r\n inputAttrs?: {\r\n key: string;\r\n value: string;\r\n }[];\r\n\r\n // dependencies?: {\r\n // resourceId: string;\r\n // versionRange: string;\r\n // }[];\r\n dependencies?: {\r\n resourceId: string;\r\n versionRange: string;\r\n }[];\r\n baseUpcastResources?: {\r\n resourceId: string;\r\n }[];\r\n batchSignContracts?: {\r\n resourceId: string;\r\n policyIds: string[];\r\n }[];\r\n authExcludedItems: {\r\n resourceId: string;\r\n excludedType: 'contractId' | 'policyId';\r\n excludedValue: string;\r\n }[];\r\n}\r\n\r\nexport function updateCollection({\r\n resourceId,\r\n ...params\r\n}: UpdateCollectionParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/resources/catalogue/${resourceId}`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量删除合集资源单品\r\ninterface deleteCollectionUnitResourcesParamsType {\r\n resourceId: string;\r\n removeCollectionItemIds: string[];\r\n}\r\n\r\nexport function deleteCollectionUnitResource({\r\n resourceId,\r\n removeCollectionItemIds,\r\n}: deleteCollectionUnitResourcesParamsType) {\r\n return FUtil.Request({\r\n method: 'DELETE',\r\n url: `/v2/resources/catalogue/${resourceId}?removeCollectionItemIds=${removeCollectionItemIds.join(\r\n ','\r\n )}`,\r\n // data: params,\r\n });\r\n}\r\n\r\n// 获取合集资源的单品列表\r\ninterface GetCollectionItemsParamsType {\r\n resourceId: string;\r\n skip?: number;\r\n limit?: number;\r\n sortField?: string;\r\n sortType?: 1 | -1;\r\n keywords?: string;\r\n isLoadLatestVersionInfo?: 0 | 1;\r\n}\r\n\r\nexport function getCollectionItems({\r\n resourceId,\r\n ...params\r\n}: GetCollectionItemsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/catalogue/${resourceId}/items`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 获取合集资源的单品列表(草稿)\r\ninterface GetCollectionItems_Draft_ParamsType {\r\n resourceId: string;\r\n skip?: number;\r\n limit?: number;\r\n sortField?: string;\r\n sortType?: 1 | -1;\r\n keywords?: string;\r\n isLoadLatestVersionInfo?: 0 | 1;\r\n}\r\n\r\nexport function getCollectionItems_Draft({\r\n resourceId,\r\n ...params\r\n}: GetCollectionItems_Draft_ParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/catalogues/drafts/${resourceId}/items`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 设置合集资源的单品排序序号\r\ninterface SetCollectionItemSortParamsType {\r\n resourceId: string;\r\n itemId: string;\r\n targetSortId: number;\r\n}\r\n\r\nexport function setCollectionItemSort({\r\n resourceId,\r\n ...params\r\n}: SetCollectionItemSortParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/resources/catalogue/${resourceId}/manualSort`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 重置合集资源的单品排序序号\r\ninterface ReorderCollectionItemsSortParamsType {\r\n resourceId: string;\r\n sortField: string;\r\n sortType: 1 | -1;\r\n}\r\n\r\nexport function reorderCollectionItemsSort({\r\n resourceId,\r\n ...params\r\n}: ReorderCollectionItemsSortParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/resources/catalogue/${resourceId}/reorder`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 查看资源是否在单品目录中存在\r\ninterface CheckExistCollectionItemsParamsType {\r\n resourceId: string;\r\n resourceIds: string;\r\n}\r\n\r\nexport function checkExistCollectionItems({\r\n resourceId,\r\n ...params\r\n}: CheckExistCollectionItemsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/catalogue/${resourceId}/items/checkExists`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 批量查询单品在资源侧的授权\r\ninterface GetCollectionItemsAuthParamsType {\r\n resourceId: string;\r\n itemIds: string;\r\n}\r\n\r\nexport function getCollectionItemsAuth({\r\n resourceId,\r\n ...params\r\n}: GetCollectionItemsAuthParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/auths/resources/${resourceId}/items/batchAuth`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 批量分组获取合集资源的单品列表\r\ninterface BatchResourceItemsParamsType {\r\n resourceIds: string;\r\n limit?: number;\r\n sortField?: string;\r\n sortType?: 1 | -1;\r\n isLoadItemResourceDetailInfo?: 0 | 1;\r\n isLoadLatestVersionInfo?: 0 | 1;\r\n}\r\n\r\nexport function batchResourceItems({\r\n ...params\r\n}: BatchResourceItemsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/catalogue/items/batch/list`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 批量分组获取合集资源的单品列表(草稿)\r\ninterface BatchResourceItems_Draft_ParamsType {\r\n resourceIds: string;\r\n limit?: number;\r\n sortField?: string;\r\n sortType?: 1 | -1;\r\n isLoadItemResourceDetailInfo?: 0 | 1;\r\n}\r\n\r\nexport function batchResourceItems_Draft({\r\n ...params\r\n}: BatchResourceItems_Draft_ParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/catalogues/drafts/items/batch/list`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看合集更新日志分页列表\r\ninterface GetCollectionUpdateLogsParamsType {\r\n resourceId: string;\r\n skip?: number;\r\n limit?: number;\r\n sortType?: 1 | -1;\r\n}\r\n\r\nexport function getCollectionUpdateLogs({\r\n resourceId,\r\n ...params\r\n}: GetCollectionUpdateLogsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/catalogue/${resourceId}/updateLogs`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 获取合集单品自动收录规则\r\ninterface GetCollectionCollectRulesParamsType {\r\n resourceId: string;\r\n}\r\n\r\nexport function getCollectionCollectRules({\r\n resourceId,\r\n}: GetCollectionCollectRulesParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/catalogue/${resourceId}/items/collectRules`,\r\n // params: params,\r\n });\r\n}\r\n\r\n// 创建或更新合集单品自动收录规则\r\ninterface SetCollectRulesParamsType {\r\n resourceId: string;\r\n serializeStatus?: 0 | 1;\r\n status: 0 | 1;\r\n conditionType: 1 | 2;\r\n filterConditions: {\r\n key: 'resourceTitle' | 'resourceTypeCode' | 'authIdentity';\r\n limitOperatorType:\r\n | 'INCLUDES'\r\n | 'NOT_INCLUDES'\r\n | 'STARTS_WITH'\r\n | 'ENDS_WITH'\r\n | 'EQUAL'\r\n | 'NOT_EQUAL';\r\n value: string;\r\n }[];\r\n}\r\n\r\nexport function setCollectRules({\r\n resourceId,\r\n ...params\r\n}: SetCollectRulesParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/resources/catalogue/${resourceId}/items/collectRules`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量更新同合集下的单品信息\r\ninterface SetItemsTitleParamsType {\r\n resourceId: string;\r\n data: {\r\n itemId: string;\r\n itemTitle?: string;\r\n authExcludedItems?: {\r\n resourceId: string;\r\n excludedType: 'contractId' | 'policyId';\r\n excludedValue: string;\r\n }[];\r\n }[];\r\n}\r\n\r\nexport function setItemsTitle({ resourceId, data }: SetItemsTitleParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/resources/catalogue/${resourceId}/items`,\r\n data: data,\r\n });\r\n}\r\n\r\n// 批量删除合集资源单品(草稿)\r\ninterface deleteCollectionItems_Draft_ParamsType {\r\n resourceId: string;\r\n removeCollectionItemIds: string[];\r\n}\r\n\r\nexport function deleteCollectionItems_Draft({\r\n resourceId,\r\n removeCollectionItemIds,\r\n}: deleteCollectionItems_Draft_ParamsType) {\r\n return FUtil.Request({\r\n method: 'DELETE',\r\n url: `/v2/resources/catalogues/drafts/${resourceId}/items?removeCollectionItemIds=${removeCollectionItemIds.join(\r\n ','\r\n )}`,\r\n // data: params,\r\n });\r\n}\r\n\r\n// 设置合集资源的单品排序序号(草稿)\r\ninterface SetCollectionItemsSortID_Draft_ParamsType {\r\n resourceId: string;\r\n data: {\r\n itemIds: string[];\r\n targetSortId: number;\r\n };\r\n}\r\n\r\nexport function setCollectionItemsSortID_Draft({\r\n resourceId,\r\n data,\r\n}: SetCollectionItemsSortID_Draft_ParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/resources/catalogues/drafts/${resourceId}/manualSort`,\r\n data: data,\r\n });\r\n}\r\n\r\n// 重置合集资源的单品排序序号(草稿)\r\ninterface ReorderCollectionItems_Draft_ParamsType {\r\n resourceId: string;\r\n sortField: 'createDate' | 'itemTitle' | 'sortId' | 'resourceUpdateDate';\r\n sortType: -1 | 1;\r\n}\r\n\r\nexport function reorderCollectionItems_Draft({\r\n resourceId,\r\n ...params\r\n}: ReorderCollectionItems_Draft_ParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/resources/catalogues/drafts/${resourceId}/reorder`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 查看资源是否在单品目录中存在(草稿)\r\ninterface ResourceIsExistInItems_Draft_ParamsType {\r\n resourceId: string;\r\n resourceIds: string;\r\n}\r\n\r\nexport function resourceIsExistInItems_Draft({\r\n resourceId,\r\n ...params\r\n}: ResourceIsExistInItems_Draft_ParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/catalogues/drafts/${resourceId}/items/checkExists`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 批量更新同合集下的单品信息(草稿)\r\ninterface UpdateCollectionItemsInfo_Draft_ParamsType {\r\n resourceId: string;\r\n data: {\r\n itemId: string;\r\n itemTitle: string;\r\n }[];\r\n}\r\n\r\nexport function updateCollectionItemsInfo_Draft({\r\n resourceId,\r\n data,\r\n}: UpdateCollectionItemsInfo_Draft_ParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n // url: `/v2/resources/catalogue/${resourceId}/items`,\r\n url: `/v2/resources/catalogues/drafts/${resourceId}/items`,\r\n data: data,\r\n });\r\n}\r\n\r\n// 更新单品授权方案(草稿)\r\ninterface UpdateCollectionItemAuthorization_Draft_ParamsType {\r\n resourceId: string;\r\n itemId: string;\r\n // resolveResources: {\r\n // resourceId: string;\r\n // contracts: {\r\n // policyId: string;\r\n // }[];\r\n // }[];\r\n}\r\n\r\nexport function updateCollectionItemAuthorization_Draft({\r\n resourceId,\r\n itemId,\r\n ...data\r\n}: UpdateCollectionItemAuthorization_Draft_ParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n // url: `/v2/resources/catalogues/${resourceId}/items/${itemId}`,\r\n url: `/v2/resources/catalogues/drafts/${resourceId}/items/${itemId}`,\r\n data: data,\r\n });\r\n}\r\n\r\n// 批量新增合集资源单品(草稿)\r\ninterface AddResourceItems_Draft_ParamsType {\r\n resourceId: string;\r\n addCollectionItems: {\r\n resourceId: string;\r\n itemTitle?: string;\r\n // resolveResources?: {\r\n // resourceId: string;\r\n // contracts: {\r\n // policyId: string;\r\n // }[];\r\n // }[];\r\n authExcludedItems?: {\r\n resourceId: string;\r\n excludedType: 'contractId' | 'policyId';\r\n excludedValue: string;\r\n }[];\r\n batchSignContracts?: {\r\n resourceId: string;\r\n policyIds: string[];\r\n }[];\r\n }[];\r\n isPublish?: 1 | 0;\r\n}\r\n\r\nexport function addResourceItems_Draft({\r\n resourceId,\r\n ...params\r\n}: AddResourceItems_Draft_ParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/resources/catalogues/drafts/${resourceId}/items`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量查询草稿中的单品在资源侧的授权\r\ninterface GetCollectionItemsAuth_Draft_ParamsType {\r\n resourceId: string;\r\n itemIds: string;\r\n}\r\n\r\nexport function getCollectionItemsAuth_Draft({\r\n resourceId,\r\n ...params\r\n}: GetCollectionItemsAuth_Draft_ParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/catalogues/drafts/${resourceId}/items/batchAuth`,\r\n params: params,\r\n });\r\n}\r\n","import FUtil from '../utils';\r\nimport { AxiosRequestConfig } from 'axios';\r\n\r\n// 用户登录\r\ninterface LoginParamsType {\r\n loginName: string;\r\n password: string;\r\n isRemember?: 0 | 1;\r\n returnUrl?: string;\r\n jwtType?: string;\r\n}\r\n\r\nexport function login({ ...params }: LoginParamsType) {\r\n // return FUtil.Axios.post(`/v2/passport/login`, params);\r\n return FUtil.Request(\r\n {\r\n method: 'POST',\r\n url: '/v2/passport/login',\r\n data: params,\r\n },\r\n { noRedirect: true }\r\n );\r\n}\r\n\r\n// 用户登出\r\ninterface LogoutParamsType {\r\n returnUrl?: string;\r\n}\r\n\r\nexport function logout({ ...params }: LogoutParamsType = {}) {\r\n return FUtil.Request(\r\n {\r\n method: 'GET',\r\n url: '/v2/passport/logout',\r\n params: params,\r\n },\r\n { noRedirect: true }\r\n );\r\n}\r\n\r\n// 分页查看用户列表\r\ninterface UsersParamsType {\r\n skip?: number;\r\n limit?: number;\r\n keywords?: string;\r\n}\r\n\r\nexport function users(params: UsersParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/users/search`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 批量获取用户列表\r\ninterface BatchUserListParamsType {\r\n userIds: string;\r\n}\r\n\r\nexport function batchUserList(params: BatchUserListParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/users/list`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 获取当前登录用户信息\r\ninterface CurrentUserInfoParamsType {}\r\n\r\nexport function currentUserInfo({}: CurrentUserInfoParamsType = {}) {\r\n // return FUtil.Axios.get(`/v1/userinfos/current`);\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: '/v2/users/current',\r\n // params: params,\r\n });\r\n}\r\n\r\n// 查看用户详情\r\ninterface UserDetailsParamsType {\r\n mobile?: string;\r\n username?: string;\r\n email?: string;\r\n userId?: number;\r\n}\r\n\r\nexport function userDetails(params: UserDetailsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/users/detail`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 注册用户\r\ninterface LogonParamsType {\r\n loginName: string;\r\n password: string;\r\n username: string;\r\n authCode: string;\r\n}\r\n\r\nexport function logon(params: LogonParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: '/v2/users',\r\n data: params,\r\n });\r\n}\r\n\r\n// 重置密码\r\ninterface ResetPasswordParamsType {\r\n loginName: string;\r\n password: string;\r\n authCode: string;\r\n}\r\n\r\nexport function resetPassword({\r\n loginName,\r\n ...params\r\n}: ResetPasswordParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/users/${loginName}/resetPassword`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 修改密码\r\ninterface UpdatePasswordParamsType {\r\n oldPassword: string;\r\n newPassword: string;\r\n}\r\n\r\nexport function updatePassword(params: UpdatePasswordParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/users/current/updatePassword`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 上传头像\r\ninterface UploadHeadImgParamsType {\r\n file: File;\r\n}\r\n\r\nexport function uploadHeadImg(\r\n params: UploadHeadImgParamsType,\r\n config?: AxiosRequestConfig\r\n) {\r\n const formData = new FormData();\r\n for (const [key, value] of Object.entries(params)) {\r\n if (value) {\r\n formData.append(key, value);\r\n }\r\n }\r\n\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/users/current/uploadHeadImg`,\r\n data: formData,\r\n ...config,\r\n });\r\n}\r\n\r\n// 修改用户详细信息\r\ninterface UpdateDetailInfoParamsType {\r\n areaCode?: string;\r\n occupation?: string;\r\n birthday?: string;\r\n sex?: 0 | 1 | 2; // 性别 0:未知 1:男 2:女\r\n intro?: string;\r\n}\r\n\r\nexport function updateDetailInfo(params: UpdateDetailInfoParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/users/current/detailInfo`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 校验当前登录用户的密码\r\ninterface VerifyLoginPasswordParamsType {\r\n password: string;\r\n}\r\n\r\nexport function verifyLoginPassword(params: VerifyLoginPasswordParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/users/verifyLoginPassword`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 获取省份列表\r\ninterface AreasProvincesParamsType {}\r\n\r\nexport function areasProvinces(params: AreasProvincesParamsType = {}) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/areas/provinces`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 绑定或换绑手机号和邮箱\r\ninterface UpdateMobileOrEmailParamsType {\r\n oldAuthCode?: string;\r\n newAuthCode: string;\r\n newLoginName: string;\r\n}\r\n\r\nexport function updateMobileOrEmail(params: UpdateMobileOrEmailParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/users/current/mobileOrEmail`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 非登录用户绑定与自动注册流程\r\ninterface RegisterOrBindParamsType {\r\n loginName: string;\r\n password: string;\r\n identityId: string;\r\n}\r\n\r\nexport function registerOrBind(params: RegisterOrBindParamsType) {\r\n return FUtil.Request(\r\n {\r\n method: 'POST',\r\n url: `/v2/thirdParty/registerOrBind`,\r\n data: params,\r\n },\r\n { noRedirect: true }\r\n );\r\n}\r\n\r\n// 登录用户解绑第三方登录\r\ninterface ThirdPartyUnbindParamsType {\r\n thirdPartyType: string;\r\n password: string;\r\n}\r\n\r\nexport function thirdPartyUnbind(params: ThirdPartyUnbindParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/thirdParty/unbind`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 查询登录用户已绑定的第三方信息\r\ninterface ThirdPartyListParamsType {}\r\n\r\nexport function thirdPartyList(params: ThirdPartyListParamsType = {}) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/thirdParty/list`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查询用户名称是否绑定了微信号\r\ninterface ThirdPartyIsBindParamsType {\r\n username: string;\r\n thirdPartyType: string;\r\n}\r\n\r\nexport function thirdPartyIsBind(params: ThirdPartyIsBindParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/thirdParty/isBind`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 签到\r\nexport function signForCoins() {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/facade/sign`,\r\n });\r\n}\r\n\r\n// 查询签到信息\r\nexport function getSignInfo() {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/facade/signInfo`,\r\n });\r\n}\r\n\r\ninterface SearchForConsoleParamsType {\r\n skip?: number;\r\n limit?: number;\r\n keywords?: string;\r\n}\r\n\r\nexport function searchForConsole(params: SearchForConsoleParamsType = {}) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: '/v2/users/searchForConsole',\r\n params: params,\r\n });\r\n}\r\n\r\ninterface WechatPublicApisShareSignatureParamsType {\r\n shareUrl: string;\r\n}\r\n\r\nexport function wechatPublicApisShareSignature({\r\n ...params\r\n}: WechatPublicApisShareSignatureParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: '/v2/users/wechatPublicApis/shareSignature',\r\n params: params,\r\n });\r\n}\r\n","import FUtil from '../utils';\r\n\r\n// 分页获取测试资源列表\r\ninterface TestResourcesParamsType {\r\n nodeId: number;\r\n skip?: number;\r\n limit?: number;\r\n resourceType?: string;\r\n onlineStatus?: 0 | 1 | 2;\r\n tags?: string;\r\n omitResourceType?: string;\r\n keywords?: string;\r\n}\r\n\r\nexport function testResources({nodeId, ...params}: TestResourcesParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/testNodes/${nodeId}/testResources`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 创建节点测试规则\r\ninterface CreateRulesParamsType {\r\n nodeId: number;\r\n testRuleText: string;\r\n}\r\n\r\nexport function createRules({nodeId, ...params}: CreateRulesParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/testNodes/${nodeId}/rules`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量查询测试资源列表\r\ninterface BatchTestResourcesParamsType {\r\n nodeId: number;\r\n entityType?: 'resource' | 'object';\r\n entityIds?: string;\r\n entityNames?: string;\r\n testResourceNames?: string;\r\n projection?: string;\r\n}\r\n\r\nexport function batchTestResources({nodeId, ...params}: BatchTestResourcesParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/testNodes/${nodeId}/testResources/list`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 搜索测试资源依赖树\r\ninterface DependencyTreeParamsType {\r\n nodeId: number;\r\n keywords: string;\r\n resourceType?: string;\r\n omitResourceType?: string;\r\n}\r\n\r\nexport function dependencyTree({nodeId, ...params}: DependencyTreeParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/testNodes/${nodeId}/testResources/dependencyTree/search`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 追加节点的测试规则 (在现有测试规则尾部追加新的测试规则)\r\ninterface PutRulesParamsType {\r\n nodeId: number;\r\n additionalTestRule: string;\r\n}\r\n\r\nexport function putRules({nodeId, ...params}: PutRulesParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/testNodes/${nodeId}/rules`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 查看节点当前测试规则\r\ninterface TestNodeRulesParamsType {\r\n nodeId: number;\r\n}\r\n\r\nexport function testNodeRules({nodeId}: TestNodeRulesParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/testNodes/${nodeId}/rules`,\r\n // params: params,\r\n });\r\n}\r\n\r\n// 更新测试资源的授权合约\r\ninterface UpdateTestResourceContractsParamsType {\r\n testResourceId: string;\r\n resolveResources: {\r\n resourceId: string;\r\n contracts: {\r\n policyId: string;\r\n }[];\r\n }[];\r\n}\r\n\r\nexport function updateTestResourceContracts({testResourceId, ...params}: UpdateTestResourceContractsParamsType) {\r\n // return FUtil.Axios.put(`/v2/testNodes/testResources/${testResourceId}`, params);\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/testNodes/testResources/${testResourceId}`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 获取并过滤资源依赖树\r\ninterface DependencyTreeFilterParamsType {\r\n testResourceId: string;\r\n dependentEntityId: string;\r\n dependentEntityVersionRange?: string;\r\n}\r\n\r\nexport function dependencyTreeFilter({testResourceId, ...params}: DependencyTreeFilterParamsType) {\r\n // return FUtil.Axios.get(`/v2/testNodes/testResources/${testResourceId}/dependencyTree/filter`, {\r\n // params\r\n // });\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/testNodes/testResources/${testResourceId}/dependencyTree/filter`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看测试资源依赖树\r\ninterface TestResourcesDependencyTreeParamsType {\r\n testResourceId: string;\r\n}\r\n\r\nexport function testResourcesDependencyTree({testResourceId}: TestResourcesDependencyTreeParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/testNodes/testResources/${testResourceId}/dependencyTree`,\r\n // params: params,\r\n });\r\n}\r\n\r\n// 查看测试资源授权树\r\ninterface TestResourcesAuthTreeParamsType {\r\n testResourceId: string;\r\n}\r\n\r\nexport function testResourcesAuthTree({testResourceId}: TestResourcesAuthTreeParamsType) {\r\n // return FUtil.Axios.get(`/v2/testNodes/testResources/${testResourceId}`);\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/testNodes/testResources/${testResourceId}/authTree`,\r\n // params: params,\r\n });\r\n}\r\n\r\n// 查看测试资源详情\r\ninterface TestResourceDetailsParamsType {\r\n testResourceId: string;\r\n}\r\n\r\nexport function testResourceDetails({testResourceId}: TestResourceDetailsParamsType) {\r\n // return FUtil.Axios.get(`/v2/testNodes/testResources/${testResourceId}`);\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/testNodes/testResources/${testResourceId}`,\r\n // params: params,\r\n });\r\n}\r\n\r\n// 查询包含指定依赖的测试资源\r\ninterface SearchTestResourcesByDependencyParamsType {\r\n nodeId: number;\r\n dependentEntityId: string;\r\n dependentEntityVersionRange?: string;\r\n resourceType?: string;\r\n omitResourceType?: string;\r\n}\r\n\r\nexport function searchTestResourcesByDependency({nodeId, ...params}: SearchTestResourcesByDependencyParamsType) {\r\n // return FUtil.Axios.get(`/v2/testNodes/${nodeId}/testResources/searchByDependency`, {\r\n // params,\r\n // });\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/testNodes/${nodeId}/testResources/searchByDependency`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 重新匹配节点测试规则\r\ninterface RulesRematchParamsType {\r\n nodeId: number;\r\n isMandatoryMatch?: 0 | 1; // 0:否 1:是 默认1\r\n}\r\n\r\nexport function rulesRematch({nodeId, ...params}: RulesRematchParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/testNodes/${nodeId}/rules/rematch`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 节点测试规则预执行(不存档)\r\ninterface RulesPreExecutionParamsType {\r\n nodeId: number;\r\n testRuleText: string;\r\n}\r\n\r\nexport function rulesPreExecution({nodeId, ...params}: RulesPreExecutionParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/testNodes/${nodeId}/rules/preExecution`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量获取测试资源授权结果\r\ninterface BatchGetAuthsParamsType {\r\n nodeId: number;\r\n exhibitIds: string;\r\n authType: 1 | 2 | 3; //授权类型 1:节点侧授权 2:资源侧授权 3:节点+资源侧授权\r\n}\r\n\r\nexport function batchGetAuths({nodeId, ...params}: BatchGetAuthsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/auths/exhibits/${nodeId}/test/batchAuth/results`,\r\n params: params,\r\n });\r\n}\r\n","import FUtil from '../utils';\r\n\r\n// 创建合同\r\ninterface CreateContractParamsType {\r\n subjectId: string;\r\n subjectType: 1 | 2 | 3; // 标的物类型 1:资源 2:展品 3:用户组\r\n policyId: string;\r\n licenseeId: string | number;\r\n licenseeIdentityType: 1 | 2 | 3; // 乙方身份类型 1:资源方 2:节点方 3:C端用户\r\n}\r\n\r\nexport function createContract({...params}: CreateContractParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/contracts`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 批量创建合同\r\ninterface BatchCreateContractsParamsType {\r\n subjects: {\r\n subjectId: string;\r\n policyId: string;\r\n }[];\r\n subjectType: 1 | 2 | 3; // 标的物类型 1:资源 2:展品 3:用户组\r\n licenseeId: string | number;\r\n licenseeIdentityType: 1 | 2 | 3; // 乙方身份类型 1:资源方 2:节点方 3:C端用户\r\n}\r\n\r\nexport function batchCreateContracts({...params}: BatchCreateContractsParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/contracts/batchSign`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 查看合同详情\r\ninterface ContractDetailsParamsType {\r\n contractId: string;\r\n isLoadPolicyInfo?: 0 | 1;\r\n projection?: string;\r\n isTranslate?: 0 | 1;\r\n}\r\n\r\nexport function contractDetails({contractId, ...params}: ContractDetailsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/contracts/${contractId}`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看合同分页列表\r\ninterface ContractsParamsType {\r\n skip?: number;\r\n limit?: number;\r\n identityType: 1 | 2;\r\n licensorId?: string;\r\n licensorName?: string;\r\n licenseeId?: string;\r\n licenseeName?: string;\r\n subjectIds?: string;\r\n subjectType?: 1 | 2 | 3;\r\n isDefault?: number;\r\n keywords?: string;\r\n status?: 0 | 1 | 2; // 合同状态 0:生效中 1:已终止 2:异常的\r\n authStatus?: 1 | 2 | 128; // 合同授权状态 1:正式授权 2:测试授权 128:未获得授权,多个通过'与'运算\r\n order?: 'asc' | 'desc'; // asc:正序 desc:倒序\r\n licenseeIdentityType?: number;\r\n isLoadPolicyInfo?: 0 | 1;\r\n isTranslate?: 0 | 1;\r\n startDate?: string;\r\n endDate?: string;\r\n projection?: string;\r\n}\r\n\r\nexport function contracts(params: ContractsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/contracts`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查询合约授权方搜索建议\r\ninterface KeywordSuggestParamsType {\r\n identityType: 1 | 2;\r\n prefix: string;\r\n prefixType: 1 | 2;\r\n startDate?: string;\r\n endDate?: string;\r\n}\r\n\r\nexport function keywordSuggest(params: KeywordSuggestParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/contracts/keywordSuggest`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 批量查询合同列表\r\ninterface BatchContractsParamsType {\r\n contractIds?: string;\r\n subjectIds?: string;\r\n subjectType?: 1 | 2 | 3;\r\n licenseeIdentityType?: 1 | 2 | 3;\r\n licensorId?: string;\r\n licenseeId?: string | number;\r\n isLoadPolicyInfo?: 0 | 1;\r\n projection?: string;\r\n isTranslate?: 0 | 1;\r\n contractStatus?: number;\r\n}\r\n\r\nexport function batchContracts(params: BatchContractsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/contracts/list`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看合同流转记录分页列表\r\ninterface TransitionRecordsParamsType {\r\n contractId: string;\r\n skip?: number;\r\n limit?: number;\r\n isTranslate?: 0 | 1;\r\n}\r\n\r\nexport function transitionRecords({contractId, ...params}: TransitionRecordsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/contracts/${contractId}/transitionRecords`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 统计合约签约量\r\ninterface ContractsSignCountParamsType {\r\n objectIds: string | number;\r\n objectType: 1 | 2 | 3 | 4 | 5; // 统计对象类型(1:甲方ID 2:甲方所属ID 3:乙方ID 4:乙方所属ID 5:标的物ID)\r\n subjectType: 1 | 2 | 3; // 标的物类型(1:资源 2:展品 3:用户组)\r\n startDate?: string;\r\n endDate?: string;\r\n}\r\n\r\nexport function contractsSignCount(params: ContractsSignCountParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/contracts/signCount`,\r\n params: params,\r\n });\r\n}\r\n","import FUtil from '../utils';\r\n\r\n// 分页查询账户交易流水\r\ninterface DetailsParamsType {\r\n skip?: number;\r\n limit?: number;\r\n accountId: string;\r\n startCreatedDate?: string;\r\n endCreatedDate?: string;\r\n amountStartPoint?: number;\r\n amountEndPoint?: number;\r\n serialNo?: string;\r\n status?: 1 | 2 | 3;\r\n keywords?: string;\r\n}\r\n\r\nexport function details({accountId, ...params}: DetailsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/transactions/details/${accountId}`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查看用户个人账户信息\r\ninterface IndividualAccountsParamsType {\r\n userId: number;\r\n}\r\n\r\nexport function individualAccounts({userId, ...params}: IndividualAccountsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/accounts/individualAccounts/${userId}`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查询交易记录详情\r\ninterface TransactionDetailsParamsType {\r\n recordId: string;\r\n}\r\n\r\nexport function transactionDetails({recordId}: TransactionDetailsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/transactions/records/${recordId}`,\r\n // params: params,\r\n });\r\n}\r\n\r\n// 激活个人账户\r\ninterface ActivateIndividualAccountsParamsType {\r\n password: string;\r\n authCode: string;\r\n messageAddress: string;\r\n}\r\n\r\nexport function activateIndividualAccounts({...params}: ActivateIndividualAccountsParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/accounts/individualAccounts/activate`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 修改交易密码\r\ninterface ChangePasswordParamsType {\r\n password: string;\r\n oldPassword: string;\r\n authCode: string;\r\n messageAddress: string;\r\n}\r\n\r\nexport function changePassword({...params}: ChangePasswordParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/accounts/individualAccounts`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 重置交易密码\r\ninterface ResetPasswordParamsType {\r\n loginPassword: string;\r\n password: string;\r\n authCode: string;\r\n messageAddress: string;\r\n}\r\n\r\nexport function resetPassword({...params}: ResetPasswordParamsType) {\r\n return FUtil.Request({\r\n method: 'PUT',\r\n url: `/v2/accounts/individualAccounts/resetPassword`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 验证交易密码\r\ninterface VerifyTransactionPasswordParamsType {\r\n password: string;\r\n}\r\n\r\nexport function verifyTransactionPassword({...params}: VerifyTransactionPasswordParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/accounts/individualAccounts/verifyTransactionPassword`,\r\n params: params,\r\n });\r\n}\r\n","import FUtil from '../utils';\r\n\r\n// 发送短信或邮件验证码\r\ninterface SendVerificationCodeParamsType {\r\n loginName: string;\r\n authCodeType: 'register' | 'resetPassword' | 'activateTransactionAccount' | 'updateTransactionAccountPwd' | 'updateMobileOrEmail';\r\n}\r\n\r\nexport function sendVerificationCode(params: SendVerificationCodeParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/messages/send`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 校验短信或邮件验证码\r\ninterface VerifyVerificationCodeParamsType {\r\n authCode: string;\r\n address: string;\r\n authCodeType: 'register' | 'resetPassword' | 'activateTransactionAccount' | 'updateTransactionAccountPwd' | 'updateMobileOrEmail';\r\n}\r\n\r\nexport function verifyVerificationCode(params: VerifyVerificationCodeParamsType): Promise<any> {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/messages/verify`,\r\n params: params,\r\n });\r\n}\r\n","import FUtil from '../utils';\r\n\r\n// 批量获取授权策略列表\r\ninterface TransactionParamsType {\r\n contractId: string;\r\n eventId: string;\r\n accountId: string;\r\n transactionAmount: number;\r\n password: string;\r\n}\r\n\r\nexport function transaction({contractId, ...params}: TransactionParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/contracts/${contractId}/events/payment`,\r\n data: params,\r\n });\r\n}\r\n","import FUtil from '../utils';\r\n\r\n// 列出活动\r\ninterface List4ClientParamsType {\r\n skip?: number;\r\n limit?: number;\r\n}\r\n\r\nexport function list4Client(params: List4ClientParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/list4Client`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查询活动\r\ninterface Find4ClientParamsType {\r\n _id: string;\r\n}\r\n\r\nexport function find4Client(params: Find4ClientParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/find4Client`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 列出广告\r\ninterface AdsListParamsType {\r\n skip?: number;\r\n limit?: number;\r\n place: 1 | 2 | 3 | 4 | 5; // 投放位置 1:顶部公告栏 2:右侧浮窗 3:概览页 4:发现页 5. 首页轮播图\r\n\r\n}\r\n\r\nexport function adsList(params: AdsListParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/ads/list4Client`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 查询广告\r\ninterface AdsDetailsParamsType {\r\n skip?: number;\r\n limit?: number;\r\n place: 1 | 2 | 3 | 4; // 投放位置 1:顶部公告栏 2:右侧浮窗 3:概览页 4:发现页\r\n}\r\n\r\nexport function adsDetails(params: AdsDetailsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/ads/find4Client`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 访问广告(埋点)\r\ninterface EventTrackingAdsVisitParamsType {\r\n _id: string;\r\n}\r\n\r\nexport function eventTrackingAdsVisit(params: EventTrackingAdsVisitParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/ads/visit`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 点击广告(埋点)\r\ninterface EventTrackingAdsClickParamsType {\r\n _id: string;\r\n}\r\n\r\nexport function eventTrackingAdsClick(params: EventTrackingAdsClickParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/ads/click`,\r\n params: params,\r\n });\r\n}\r\n\r\n\r\n// 获取基本任务详情\r\ninterface GetBaseTaskInfoParamsType {\r\n}\r\n\r\nexport function getBaseTaskInfo(params: GetBaseTaskInfoParamsType = {}) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/facade/getBaseTaskInfo`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 获取资源任务详情\r\ninterface GetResourceTaskInfoParamsType {\r\n}\r\n\r\nexport function getResourceTaskInfo(params: GetResourceTaskInfoParamsType = {}) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/facade/getResourceTaskInfo`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 获取节点任务详情\r\ninterface GetNodeTaskInfoParamsType {\r\n}\r\n\r\nexport function getNodeTaskInfo(params: GetNodeTaskInfoParamsType = {}) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/facade/getNodeTaskInfo`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 获取奖励记录详情\r\ninterface GetRewardRecordInfoParamsType {\r\n rewardConfigCode: string;\r\n}\r\n\r\nexport function getRewardRecordInfo(params: GetRewardRecordInfoParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/facade/getRewardRecordInfo`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 推送任务消息埋点\r\ninterface PushMessageTaskParamsType {\r\n taskConfigCode: string;\r\n meta?: any;\r\n}\r\n\r\nexport function pushMessageTask(params: PushMessageTaskParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/activities/facade/pushMessage4Task`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 运营钱包详情\r\ninterface GetCoinAccountParamsType {\r\n type: 1;\r\n}\r\n\r\nexport function getCoinAccount(params: GetCoinAccountParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/coin/account/find4Client`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 运营钱包提现\r\ninterface WithdrawCoinAccountParamsType {\r\n reUserName: string;\r\n amount: number;\r\n}\r\n\r\nexport function withdrawCoinAccount(params: WithdrawCoinAccountParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/activities/coin/account/cash4Client`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 运营钱包流水\r\ninterface GetCoinAccountRecordsParamsType {\r\n skip?: number;\r\n limit?: number;\r\n coinAccountType: 1;\r\n}\r\n\r\nexport function getCoinAccountRecords(params: GetCoinAccountRecordsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/coin/record/list4Client`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 获取公众号绑定信息\r\ninterface GetWechatOfficialAccountInfoParamsType {\r\n}\r\n\r\nexport function getWechatOfficialAccountInfo(params: GetWechatOfficialAccountInfoParamsType = {}) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/extensions/wechat/getRelationship4Client`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 列出抽奖结果\r\ninterface LotteryListParamsType {\r\n}\r\n\r\nexport function lotteryList(params: LotteryListParamsType = {}) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/lottery/resource/list`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 显示抽奖结果\r\ninterface LotteryShowParamsType {\r\n startDate: string;\r\n limitDate: string;\r\n}\r\n\r\nexport function lotteryShow(params: LotteryShowParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/activities/lottery/resource/show`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 列出邀请好友详情\r\ntype ListInviteFriendInfosParamsType = {\r\n userId: number;\r\n username: string;\r\n createDate: string;\r\n}[];\r\n\r\nexport function listInviteFriendInfos(params: ListInviteFriendInfosParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/activities/facade/listInviteFriendInfos`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 获取奖励记录详情列表\r\ninterface GetRewardRecordInfosParamsType {\r\n rewardGroupCode?: string;\r\n rewardConfigCode?: string;\r\n status?: 1 | 2 | 3; //奖励记录状态 1:未领取 2:可领取 3:已领取;\r\n}\r\n\r\nexport function getRewardRecordInfos(params: GetRewardRecordInfosParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/activities/facade/getRewardRecordInfos`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 个人奖励领取记录\r\ninterface ListRewardRecordInfosParamsType {\r\n rewardGroupCodes?: string[];\r\n statusArray?: number[];\r\n}\r\n\r\nexport function listRewardRecordInfos(params: ListRewardRecordInfosParamsType = {}) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/activities/facade/listRewardRecordInfos`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 统计个人的奖励情况\r\ninterface StatisticRewardRecordsParamsType {\r\n codes: string[];\r\n}\r\n\r\nexport function statisticRewardRecords(params: StatisticRewardRecordsParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/activities/facade/statisticRewardRecords`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 统计个人的任务情况\r\ninterface StatisticTaskRecordsParamsType {\r\n codes: string[];\r\n startTime?: string;\r\n limitTime?: string;\r\n}\r\n\r\nexport function statisticTaskRecords(params: StatisticTaskRecordsParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/activities/facade/statisticTaskRecords`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 统计所有人的单个奖励情况\r\ninterface StatisticSingleRewardRecordForAllParamsType {\r\n code: string;\r\n}\r\n\r\nexport function statisticSingleRewardRecordForAll(params: StatisticSingleRewardRecordForAllParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/activities/facade/statisticSingleRewardRecordForAll`,\r\n data: params,\r\n });\r\n}\r\n","import FUtil from '../utils';\r\n\r\n// 查看邀请码详情\r\ninterface CodeDetails1ParamsType {\r\n code: string;\r\n}\r\n\r\ninterface CodeDetails2ParamsType {\r\n}\r\n\r\nexport function codeDetails1({code}: CodeDetails1ParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/testQualifications/beta/codes/${code}`,\r\n // data: params,\r\n });\r\n}\r\n\r\nexport function codeDetails2({}: CodeDetails2ParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/testQualifications/beta/codes/userActivateCode`,\r\n // data: params,\r\n });\r\n}\r\n\r\n// 使用邀请码激活内测资格\r\ninterface BetaCodesActivateParamsType {\r\n code: string;\r\n}\r\n\r\nexport function betaCodesActivate({...params}: BetaCodesActivateParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/testQualifications/beta/codes/activate`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 分页查看邀请码使用记录\r\ninterface UsedRecordsParamsType {\r\n skip?: number;\r\n limit?: number;\r\n code?: string;\r\n keywords?: string;\r\n}\r\n\r\nexport function usedRecords({...params}: UsedRecordsParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/testQualifications/beta/codes/usedRecords`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 用户申请内测资格\r\ninterface BetaApplyParamsType {\r\n // province: string;\r\n // city: string;\r\n areaCode: string;\r\n occupation: string;\r\n description: string;\r\n}\r\n\r\nexport function betaApply({...params}: BetaApplyParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/testQualifications/beta/apply`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 查看内测资格申请详情\r\ninterface GetBetaApply1ParamsType {\r\n\r\n}\r\n\r\nexport function getBetaApply1({...params}: GetBetaApply1ParamsType = {}) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/testQualifications/beta/apply/current`,\r\n params: params,\r\n });\r\n}\r\n\r\ninterface GetBetaApply2ParamsType {\r\n recordId: string;\r\n}\r\n\r\nexport function getBetaApply2({recordId, ...params}: GetBetaApply2ParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/testQualifications/beta/apply/${recordId}`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 被邀请列表\r\ninterface InviteesParamsType {\r\n userId: number;\r\n}\r\n\r\nexport function invitees({...params}: InviteesParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/testQualifications/beta/codes/invitees`,\r\n params: params,\r\n });\r\n}\r\n","import FUtil from '../utils';\r\n// import {AxiosRequestConfig, Canceler} from 'axios';\r\n\r\n// 查询通用交易统计信息\r\nexport interface TransactionsCommonParamsType {\r\n ownerId: string | number;\r\n ownerType?: 1 | 2;\r\n objectId?: string;\r\n objectType?: 2 | 3;\r\n beginDate?: string;\r\n endDate?: string;\r\n}\r\n\r\nexport function transactionsCommon(params: TransactionsCommonParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/statistics/transactions/common`,\r\n params: params,\r\n });\r\n}\r\n","import FUtil from '../utils';\r\n\r\n// 列出翻译\r\ninterface ConfigsListParamsType {\r\n key: string;\r\n content: string;\r\n tagIds: string[];\r\n status: 0 | 1 | 2 | 3; // 0:全部 1:待翻译 2:待发布 3:已发布\r\n}\r\n\r\nexport function configsList(params: ConfigsListParamsType) {\r\n // console.log('####@30984i2o3jdsjflfkjsdl')\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/i18n/configs/list`,\r\n data: params,\r\n });\r\n}\r\n\r\n// oss保存的翻译\r\n// interface ConfigsListParamsType {\r\n// key: string;\r\n// content: string;\r\n// tagIds: string[];\r\n// status: 0 | 1 | 2 | 3; // 0:全部 1:待翻译 2:待发布 3:已发布\r\n// }\r\n//\r\n// export function configsList(params: ConfigsListParamsType) {\r\n// // console.log('####@30984i2o3jdsjflfkjsdl')\r\n// return FUtil.Request({\r\n// method: 'POST',\r\n// url: `/v2/i18n/configs/list`,\r\n// data: params,\r\n// });\r\n// }\r\n","// import {Base64} from 'js-base64';\r\nimport FUtil from '../utils';\r\n\r\n// 批量获取授权策略列表\r\ninterface PoliciesParamsType {\r\n page?: number;\r\n pageSize?: number;\r\n subjectType?: 1 | 2 | 3; // 1:资源 2:展品 3:用户组\r\n projection?: string;\r\n}\r\n\r\nexport function policies(params: PoliciesParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/policies`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 批量获取授权策略列表\r\ninterface PoliciesListParamsType {\r\n policyIds: string;\r\n subjectType?: number;\r\n userId?: number;\r\n projection?: string;\r\n}\r\n\r\nexport function policiesList(params: PoliciesListParamsType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/policies/list`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 策略模板\r\ninterface PolicyTemplatesParamsType {\r\n}\r\n\r\nexport function policyTemplates(params: PolicyTemplatesParamsType = {}) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/translate/translate-config/list4Client`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 重新编译\r\ninterface PolicyReCompileParamsType {\r\n _id?: string;\r\n contract?: string;\r\n fillArgs: {\r\n name: string;\r\n value: string | number;\r\n }[];\r\n}\r\n\r\nexport function policyReCompile(data: PolicyReCompileParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/translate/reCompile`,\r\n data: data,\r\n });\r\n}\r\n\r\n// 模板策略翻译\r\ninterface PolicyTranslationParamsType {\r\n contract: string;\r\n}\r\n\r\nexport function policyTranslation({contract}: PolicyTranslationParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/translate/translate`,\r\n data: {\r\n contract: contract,\r\n },\r\n });\r\n}\r\n\r\n// 模板策略翻译\r\ninterface PolicyTransferTranslationParamsType {\r\n contract: string;\r\n fsmTransfers: any;\r\n}\r\n\r\nexport function policyTransferTranslation(params: PolicyTransferTranslationParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/translate/transfer`,\r\n data: params,\r\n });\r\n}\r\n","import FUtil from '../utils';\r\n\r\n// 列出运营分类分组排序\r\ninterface OperationCategoriesParamsType {\r\n name?: string;\r\n status?: number;\r\n}\r\n\r\nexport function operationCategories({...params}: OperationCategoriesParamsType = {}) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/operation-categories/listSimpleByGroup`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 收益排行\r\ninterface RecordRankParamsType {\r\n coinAccountType: 1 | 2;\r\n limit: number;\r\n}\r\n\r\nexport function recordRank({...params}: RecordRankParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/activities/coin/record/rank`,\r\n data: params,\r\n });\r\n}\r\n\r\n// 收益详情\r\ninterface RankInfoParamsType {\r\n coinAccountType: 1 | 2;\r\n}\r\n\r\nexport function rankInfo({...params}: RankInfoParamsType) {\r\n return FUtil.Request({\r\n method: 'POST',\r\n url: `/v2/activities/coin/record/rankInfo`,\r\n data: params,\r\n });\r\n}\r\n","import FUtil from '../utils';\r\n// import {CommonReturn} from \"./tools\";\r\n\r\n// 根据编号取资源类型\r\ninterface GetInfoByCodeType {\r\n code: string;\r\n}\r\n\r\nexport function getInfoByCode({...params}: GetInfoByCodeType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/types/getInfoByCode`,\r\n params: params,\r\n });\r\n}\r\n\r\n// 根据编号取资源类型\r\ninterface GetInfoByCodeOrNameType {\r\n code?: string;\r\n name?: string;\r\n}\r\n\r\nexport function getInfoByCodeOrName({...params}: GetInfoByCodeOrNameType) {\r\n return FUtil.Request({\r\n method: 'GET',\r\n url: `/v2/resources/types/getInfoByCodeOrName`,\r\n params: params,\r\n });\r\n}\r\n","import { AxiosRequestConfig } from 'axios';\nimport FUtil from '../utils';\n\n// 证件上传与识别\ninterface UploadIDCardParamsType {\n file: File;\n}\n\nexport function uploadIDCard(params: UploadIDCardParamsType, config?: AxiosRequestConfig) {\n const formData = new FormData();\n for (const [key, value] of Object.entries(params)) {\n if (value) {\n formData.append(key, value);\n }\n }\n return FUtil.Request({\n method: 'POST',\n url: `/v3/transactions/accounts/idCardUploadAndOcr`,\n data: formData,\n ...config,\n });\n}\n\n\n// 开通金融账户\ninterface OpenFinancialAccountParamsType {\n accountType: 1 | 2; // 账户类型(1:个人账户 2:节点账户)\n ownerId: number; // 账户所有者ID; 根据账户类型动态赋值userId或nodeId\n certType: '00'; // 证件类型(00:身份证)\n certNo: string; // 证件号码;例如身份证号\n name: string; // 证件上的名称;例如身份证上的姓名\n certValidityType: 0 | 1; // 证件有效期是否是长期; 0:非长期有效 1:长期有效\n certBeginDate: string; // 证件有效期开始日期\n certEndDate?: string; // 证件有效期结束日期(长期有效时此处不传)\n mobile: string; // 开户人真实手机号;\n certImagePaths: string[]; // 证件照保密存放的path部分; 身份证号码识别接口会返回\n}\n\nexport function openFinancialAccount(params: OpenFinancialAccountParamsType, config?: AxiosRequestConfig) {\n return FUtil.Request({\n method: 'POST',\n url: `/v3/transactions/accounts`,\n data: params,\n ...config,\n });\n}\n\n// 金融账户绑定提现卡\ninterface BindWithdrawCardParamsType {\n accountId: string; // 金融账户ID\n cardType: 0 | 1 | 2 | 4; // 0:对公,1:对私法人,2:对私非法人,4:对公非同名;个人商户/用户不支持对公类型,对私非法人类型;\n bankName: string; // 开户行名称\n cardName: string; // 持卡人姓名\n cardNo: string; // 卡号\n provId: string; // 银行所在省ID\n areaId: string; // 银行所在城市ID\n branchCode?: string; // 银行支行联行号; 当card_type=0时必填\n}\n\nexport function bindWithdrawCard({accountId, ...params}: BindWithdrawCardParamsType, config?: AxiosRequestConfig) {\n return FUtil.Request({\n method: 'POST',\n url: `/v3/transactions/accounts/${accountId}/bindCashCard`,\n data: params,\n ...config,\n });\n}\n\n// 登录用户关联金融登账户信息查询\ninterface QueryFinancialAccountInfoParamsType {\n accountType: 1 | 2; // 账户类型(1:个人账户 2:节点账户)\n ownerId: number; // 账户所有者ID; 根据账户类型动态赋值userId或nodeId\n}\n\nexport function queryFinancialAccountInfo(params: QueryFinancialAccountInfoParamsType, config?: AxiosRequestConfig) {\n return FUtil.Request({\n method: 'GET',\n url: `/v3/transactions/accounts/query`,\n params: params,\n ...config,\n });\n}\n\n// 查询绑定提现卡\ninterface QueryBindWithdrawCardParamsType {\n accountId: string; // 金融账户ID\n}\n\nexport function queryBindWithdrawCard({accountId}: QueryBindWithdrawCardParamsType, config?: AxiosRequestConfig) {\n return FUtil.Request({\n method: 'GET',\n url: `/v3/transactions/accounts/${accountId}/cashCard`,\n ...config,\n });\n}\n\n// 用户主动提现\ninterface WithdrawCashParamsType {\n accountId: string; // 金融账户ID\n transactionAmount: number; // 提现金额; 最多保留两位小数\n}\n\nexport function withdrawCash(params: WithdrawCashParamsType, config?: AxiosRequestConfig) {\n return FUtil.Request({\n method: 'POST',\n url: `/v3/transactions/withdrawCash`,\n data: params,\n ...config,\n });\n}\n\n// 提现记录分页列表查询\ninterface QueryWithdrawCashListParamsType {\n accountId: string; // 金融账户ID\n skip?: number;\n limit?: number;\n}\n\nexport function queryWithdrawCashList(params: QueryWithdrawCashListParamsType, config?: AxiosRequestConfig) {\n return FUtil.Request({\n method: 'GET',\n url: `/v3/transactions/withdrawCash/records`,\n params: params,\n ...config,\n });\n}\n\n// 交易记录分页列表查询\n// interface QueryTransactionListParamsType {\n// skip?: number;\n// limit?: number;\n// accountId: string;\n// }\n\n// export function queryTransactionList(params: QueryTransactionListParamsType, config?: AxiosRequestConfig) {\n// return FUtil.Request({\n// method: 'GET',\n// url: `/v3/transactions/transaction/list`,\n// params: params,\n// ...config,\n// });\n// }\n","import axios, {AxiosRequestConfig} from 'axios';\n// import NProgress from 'nprogress';\n// import \"nprogress/nprogress.css\";\nimport {completeUrlByDomain} from \"./format\";\nimport * as LinkTo from './linkTo';\n// import {CommonReturn, RequestParamsType} from \"../service-API/tools\";\nimport FServiceAPI from \"../service-API\";\n// import from '../service-API';\n\nconst codeMessage: any = {\n 200: '服务器成功返回请求的数据。',\n 201: '新建或修改数据成功。',\n 202: '一个请求已经进入后台排队(异步任务)。',\n 204: '删除数据成功。',\n 400: '发出的请求有错误,服务器没有进行新建或修改数据的操作。',\n 401: '用户没有权限(令牌、用户名、密码错误)。',\n 403: '用户得到授权,但是访问是被禁止的。',\n 404: '发出的请求针对的是不存在的记录,服务器没有进行操作。',\n 406: '请求的格式不可得。',\n 410: '请求的资源被永久删除,且不会再得到的。',\n 422: '当创建一个对象时,发生一个验证错误。',\n 500: '服务器发生错误,请检查服务器。',\n 502: '网关错误。',\n 503: '服务不可用,服务器暂时过载或维护。',\n 504: '网关超时。',\n};\n\n// export let apiHost: string = '';\nif (window.location.hostname.includes('.com')) {\n // apiHost = `${window.location.protocol}//qi.${(window.location.host.match(/(?<=\\.).*/) || [''])[0]}`;\n // apiHost = window.location.origin.replace('console', 'qi');\n axios.defaults.withCredentials = true;\n axios.defaults.baseURL = completeUrlByDomain('api');\n}\n\n/**\n * 异常处理程序\n */\n// const errorHandler = (error: { response: Response }): Response => {\n// const {response} = error;\n// if (response && response.status) {\n// const errorText = codeMessage[response.status] || response.statusText;\n// const {status, url} = response;\n//\n// // notification.error({\n// // message: `请求错误 ${status}: ${url}`,\n// // description: errorText,\n// // });\n// } else if (!response) {\n// // notification.error({\n// // description: '您的网络发生异常,无法连接服务器',\n// // message: '网络异常',\n// // });\n// }\n// return response;\n// };\n//\n// // Add a request interceptor\naxios.interceptors.request.use(\n (config) => {\n // Do something before request is sent\n // NProgress.start();\n return config;\n },\n (error) => {\n // Do something with request error\n // NProgress.done();\n return Promise.reject(error);\n }\n);\n\n/**\n * 配置request请求时的默认参数\n */\naxios.interceptors.response.use(\n (response) => {\n // Do something with response data\n // console.log(response, 'response!!!!!!');\n // NProgress.done();\n if (response.status !== 200 && response.status !== 201) {\n\n const error = {\n description: codeMessage[response.status],\n message: response.status,\n };\n\n // notification.error(error);\n throw new Error(JSON.stringify(error));\n }\n const {data, headers} = response;\n if (headers['content-disposition']?.includes('attachment;')) {\n // downloadFile(response);\n return;\n }\n\n // console.log(data, 'data2390jasdflkf');\n\n\n // if ((data.errcode === undefined\n // ? (data.errCode !== 0 && data.errCode !== 2)\n // : (data.errcode !== 0 && data.errcode !== 2))\n // || data.ret !== 0) {\n //\n // // notification.error({\n // // message: data.msg,\n // // });\n // throw new Error(JSON.stringify(data));\n // }\n return data;\n },\n (error) => {\n // Do something with response error\n // NProgress.done();\n return Promise.reject(error);\n });\n\nexport default axios;\n\n\nexport async function request(config: AxiosRequestConfig, {\n// export async function request(config: any, {\n noRedirect = false,\n noErrorAlert = false,\n// }: RequestParamsType = {}): Promise<CommonReturn & { data: any } | void> {\n}: any = {}): Promise<any> {\n const result: any = await axios.request(config);\n // console.log(result, 'response');\n // const {data} = response;\n // console.log(result, 'result90iowjksdfjlsdkj')\n if (result.errCode=== 30 && !noRedirect) {\n await FServiceAPI.User.logout();\n window.location.replace(`${completeUrlByDomain('user')}${LinkTo.login({goTo: window.location.href})}`);\n } else if (result.ret === 4 && result.errCode === 10 && !noRedirect) {\n window.location.replace(`${completeUrlByDomain('user')}${LinkTo.userFreeze({goTo: window.location.href})}`);\n } else if ((result.errcode !== 0 || result.errCode !== 0) && !noErrorAlert) {\n // window.alert(result.msg);\n // return;\n\n }\n return result;\n}\n","import * as Format from './format';\r\nimport * as Regexp from './regexp';\r\nimport * as LinkTo from './linkTo';\r\nimport * as Predefined from './predefined';\r\nimport Axios, {request} from './axios';\r\nimport * as Tool from './tools';\r\nimport * as Hook from './hooks';\r\n// import I18n from '../i18n';\r\n\r\nconst FUtil = {\r\n Format,\r\n Regexp,\r\n LinkTo,\r\n Predefined,\r\n Axios,\r\n Request: request,\r\n Tool,\r\n Hook,\r\n // i18n: new I18n(),\r\n};\r\n\r\nexport default FUtil;\r\n","import * as React from 'react';\r\n\r\nexport function useGetState<T>(initVal: T): [T, (newVal: T) => void, () => T] {\r\n const [state, setState] = React.useState<T>(initVal);\r\n const ref = React.useRef<T>(initVal);\r\n\r\n function setStateCopy(newVal: T): void {\r\n ref.current = newVal;\r\n setState(newVal);\r\n }\r\n\r\n function getState(): T {\r\n return ref.current;\r\n }\r\n\r\n return [state, setStateCopy, getState];\r\n}\r\n","import i18next, {Resource} from 'i18next';\r\nimport axios from \"axios\";\r\nimport Cookies from 'js-cookie';\r\nimport FUtil from '../utils';\r\n// import * as React from 'react';\r\nimport htmlReactParser from 'html-react-parser';\r\n\r\ntype LanguageKeyType = 'zh_CN' | 'en_US';\r\n\r\nconst ossJsonUrl: string = 'https://freelog-i18n.oss-cn-shenzhen.aliyuncs.com/configs/i18n.json';\r\nconst ossJsonUrl_Test: string = 'https://freelog-i18n.oss-cn-shenzhen.aliyuncs.com/configs-test/i18n.json';\r\nconst localStorage_i18nextLng_key: string = 'locale';\r\nconst localStorage_i18nextResources_key: string = 'i18nextResources';\r\n\r\nconst allLanguage = [\r\n {value: 'en_US', label: 'English'},\r\n {value: 'zh_CN', label: '简体中文'},\r\n];\r\n\r\nclass I18nNext {\r\n\r\n private _loadingData: 'NotStart' | 'Start' | 'End' = 'NotStart';\r\n private _taskQueue: Function[] = [];\r\n // private _currentLanguage: LanguageKeyType = window.localStorage.getItem(localStorage_i18nextLng_key) as null || 'zh_CN';\r\n private _currentLanguage: LanguageKeyType = Cookies.get(localStorage_i18nextLng_key) as undefined || 'zh_CN';\r\n\r\n constructor() {\r\n this.ready();\r\n\r\n this.ready = this.ready.bind(this);\r\n this.t = this.t.bind(this);\r\n this.changeLanguage = this.changeLanguage.bind(this);\r\n this.getAllLanguage = this.getAllLanguage.bind(this);\r\n this.getCurrentLanguage = this.getCurrentLanguage.bind(this);\r\n }\r\n\r\n async ready(this: I18nNext): Promise<void> {\r\n const exc = () => {\r\n while (this._taskQueue.length > 0) {\r\n const task = this._taskQueue.shift();\r\n task && task();\r\n }\r\n };\r\n const handleTasks = async () => {\r\n // console.log(this._loadingData, 'this._loadingData90iowejflksdfjlsdk');\r\n if (this._loadingData === 'End') {\r\n exc();\r\n return;\r\n }\r\n if (this._loadingData === 'Start') {\r\n return;\r\n }\r\n\r\n // NO_START\r\n this._loadingData = 'Start';\r\n\r\n await this._handleData();\r\n // console.log('######');\r\n exc();\r\n };\r\n const promise = new Promise<void>((resolve) => {\r\n this._taskQueue.push(resolve);\r\n });\r\n handleTasks();\r\n return promise;\r\n }\r\n\r\n t(this: I18nNext, key: string, options?: { [key: string]: any }): string {\r\n return i18next.t(key.trim(), options);\r\n }\r\n\r\n tJSXElement(this: I18nNext, key: string, options?: { [key: string]: any }): string | JSX.Element | JSX.Element[] {\r\n return htmlReactParser(i18next.t(key.trim(), options));\r\n }\r\n\r\n\r\n changeLanguage(this: I18nNext, lng: LanguageKeyType): void {\r\n // return i18next.changeLanguage(lng);\r\n // window.localStorage.setItem(localStorage_i18nextLng_key, lng)\r\n Cookies.set(localStorage_i18nextLng_key, lng, {\r\n expires: 36525,\r\n domain: FUtil.Format.completeUrlByDomain('').replace(/http(s)?:\\/\\//, ''),\r\n });\r\n }\r\n\r\n getAllLanguage(this: I18nNext): typeof allLanguage {\r\n return allLanguage;\r\n }\r\n\r\n getCurrentLanguage(this: I18nNext): LanguageKeyType {\r\n return this._currentLanguage;\r\n }\r\n\r\n private async _handleData(this: I18nNext): Promise<void> {\r\n\r\n const lng: string = this._currentLanguage;\r\n const resource: string | null = window.localStorage.getItem(localStorage_i18nextResources_key);\r\n // const resource: string | undefined = Cookies.get(decodeURIComponent(localStorage_i18nextResources_key));\r\n let i18nextResources: Resource | null = resource ? JSON.parse(resource) : null;\r\n\r\n if (!i18nextResources) {\r\n // console.log('######892io3jlkl')\r\n i18nextResources = await this._fetchData();\r\n } else {\r\n this._fetchData();\r\n }\r\n\r\n await i18next\r\n .init({\r\n // the translations\r\n // (tip move them in a JSON file and import them,\r\n // or even better, manage them via a UI: https://react.i18next.com/guides/multiple-translation-files#manage-your-translations-with-a-management-gui)\r\n resources: i18nextResources,\r\n lng: lng, // if you're using a language detector, do not define the lng option\r\n fallbackLng: 'zh_CN',\r\n\r\n interpolation: {\r\n escapeValue: false, // react already safes from xss => https://www.i18next.com/translation-function/interpolation#unescape\r\n prefix: '{',\r\n suffix: '}',\r\n },\r\n });\r\n this._loadingData = 'End';\r\n }\r\n\r\n private async _fetchData(this: I18nNext): Promise<Resource> {\r\n const url: string = window.location.origin.includes('.freelog.com') ? ossJsonUrl : ossJsonUrl_Test;\r\n const res: any = await axios.get(url + '?timestamp=' + Date.now(), {\r\n withCredentials: false,\r\n });\r\n // console.log(res, 'data09oiw3qjelsfkdfjlsdkfjl');\r\n\r\n const en_US: { [key: string]: string } = {};\r\n const zh_CN: { [key: string]: string } = {};\r\n\r\n for (const [key, value] of Object.entries(res)) {\r\n // console.log(key, value, 'key, value90iowsldfjlsdkj');\r\n en_US[key] = (value as any)['en_US'];\r\n zh_CN[key] = (value as any)['zh_CN'];\r\n }\r\n\r\n const result: Resource = {\r\n en_US: {\r\n translation: en_US,\r\n },\r\n zh_CN: {\r\n translation: zh_CN,\r\n },\r\n };\r\n\r\n window.localStorage.setItem(localStorage_i18nextResources_key, JSON.stringify(result));\r\n return result;\r\n }\r\n}\r\n\r\nexport default I18nNext;\r\n","import I18nNext from './I18nNext';\r\n\r\nconst FI18n = {\r\n i18nNext: new I18nNext(),\r\n};\r\n\r\nexport default FI18n;\r\n"],"names":["completeUrlByDomain","domain","origin","window","location","includes","bytes","index","Math","floor","log","round","pow","date","showTime","moment","format","arr","join","RegExp","login","_temp19","goTo","handleQuery","encodeURIComponent","undefined","userFreeze","_temp24","query","obj","_i","_Object$entries","Object","entries","length","_Object$entries$_i","key","value","result","querystring","EnumContractPartyIdentityType","EnumSubjectType","EnumContractStatus","_temp","_temp2","_ref3","activityID","_ref4","title","desc","link","imgUrl","_temp3","_temp4","_extends","_objectDestructuringEmpty","_ref6","_temp5","_ref8","resourceID","_objectWithoutPropertiesLoose","_excluded","_ref9","collectionID","_temp6","_temp7","_temp8","_temp9","_temp0","_temp1","_temp10","_temp11","_temp12","_ref17","_ref17$version","version","_ref18","_ref19","_ref20","_ref21","_ref22","_ref23","_ref24","_ref25","_ref26","_ref27","_temp13","_ref29","_ref29$showPage","showPage","nodeID","_excluded2","_ref30","exhibitID","_excluded3","_ref31","openAuthDrawer","_ref32","_ref33","_ref34","_ref34$showPage","_excluded4","_ref35","_ref35$openAuthDrawer","_temp14","_ref36","_ref37","_ref38","_ref39","_ref40","_ref41","_ref42","_temp15","_ref43","_excluded5","returnUrl","_temp16","fromUrl","_ref44","from","_window$location","href","replace","_temp17","_ref45","_window$location2","_temp18","params","_ref46","_ref47","_ref48","_ref49","search","_ref50","_ref51","_temp20","_ref53","_excluded6","_temp21","_ref54","_excluded7","_temp22","_temp23","_temp25","_temp26","_temp27","_ref60","_temp28","_temp29","_temp30","filesListInfo","_ref0","FUtil","Request","method","url","getUserIDByCookies","uid","document","cookie","split","find","co","startsWith","Number","promiseSleep","ms","Promise","resolve","setTimeout","file","reader","FileReader","readAsArrayBuffer","onload","_asyncToGenerator","_regenerator","m","_callee","w","_context","n","a","self","crypto","subtle","digest","then","Array","Uint8Array","map","toString","padStart","v","strLen","newStrArr","i","push","random","_ref2","status","authStatus","userID","Date","now","_getFilesSha1Info","_ref","cdPartially","resourceTypeCode","sha1","error","delay","needHandleSha1","concat","allData","Storage","errCode","_yield$Storage$filesL","data","msg","ret","console","filter","d","metaAnalyzeStatus","finishedInfo","state","info","Tool","apply","arguments","FServiceAPI","Node","nodeId","Exhibit","presentableId","p","_ref5","_ref7","_excluded8","_excluded9","_excluded0","_ref1","_ref10","_excluded1","_ref11","_ref12","_excluded10","_ref13","_excluded11","_ref14","_excluded12","_ref15","_excluded13","_ref16","_excluded14","_excluded15","_excluded16","_excluded17","bucketName","objectIdOrName","objectId","objectIds","Format","config","returnCancel","formData","FormData","append","cancel","cancelToken","Axios","CancelToken","c","_i2","_Object$entries2","_Object$entries2$_i","Collection","resourceId","Resource","resourceIdOrName","fileSha1","resourceNames","removeCollectionItemIds","_ref28","_excluded18","_excluded19","_excluded20","_excluded21","_excluded22","itemId","_excluded23","_excluded24","_excluded25","User","noRedirect","loginName","InformalNode","testResourceId","Contract","contractId","Transaction","accountId","userId","recordId","Captcha","Event","Activity","TestQualification","code","Statistic","I18n","Policy","contract","recombination","_x","_x2","Operation","ResourceType","Payment","codeMessage","200","201","202","204","400","401","403","404","406","410","422","500","502","503","504","_request","_ref$noRedirect","axios","request","logout","LinkTo","hostname","defaults","withCredentials","baseURL","interceptors","use","reject","response","Error","JSON","stringify","description","message","_headers$contentDisp","headers","Regexp","Predefined","Hook","initVal","_React$useState","React","setState","ref","newVal","current","allLanguage","label","i18nNext","I18nNext","this","Cookies","get","ready","bind","t","changeLanguage","getAllLanguage","getCurrentLanguage","_proto","prototype","_ready","_callee2","exc","handleTasks","promise","_this","_context2","_taskQueue","task","shift","_loadingData","_handleData","options","i18next","trim","tJSXElement","htmlReactParser","lng","set","expires","_currentLanguage","_handleData2","_callee3","resource","i18nextResources","_context3","localStorage","getItem","parse","_fetchData","init","resources","fallbackLng","interpolation","escapeValue","prefix","suffix","_fetchData2","_callee4","en_US","zh_CN","_context4","translation","setItem"],"mappings":"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"}
|