requestConfig.js 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. import store from "@/store";
  2. var doubleClickList = []; //防连击的数组对象
  3. // 请求地址对象
  4. const endpoints = {
  5. upload: 'elab-marketing-system/behavior/brandMiniWeb/upload', //埋点接口
  6. login: 'elab-marketing-analyse/cockpit/login', //用户登录
  7. uploadBase64: 'elab-marketing-file/upload/uploadBase64', //uploadBase64
  8. // // webGL接口
  9. getHouseTypeSpaceDetailsV2: 'elab-marketing-file/space_generation_background/getHouseTypeSpaceDetails/v2', //V1.1.0-城市首页
  10. getHouseTypeSpaceDetails: 'elab-marketing-file/space_generation_background/getHouseTypeSpaceDetails', //V1.1.0-城市首页
  11. // // 柔性定制接口
  12. getHouseTypeSpaceWalls: '/elab-marketing-file/space_generation_background/getHouseTypeSpaceWalls', // 批量获取墙面信息
  13. houseDetail: 'elab-marketing-user/house/detail',
  14. findHouseTypeSpaceList: 'elab-marketing-file/space_generation_background/findHouseTypeSpaceList',
  15. layoutList: 'elab-marketing-content/aiDreamHouse/V3.0/layoutList',
  16. labelList: 'elab-marketing-content/aiDreamHouse/V3.0/labelList',
  17. findOverallArrangementList: 'elab-marketing-file/space_generation_background/findOverallArrangementList',
  18. getOverallArrangementDetailsList: 'elab-marketing-file/space_generation_background/getOverallArrangementDetailsList',
  19. choiceList: "elab-marketing-content/aiDreamHouse/V3.0/choiceList",
  20. getHardboundEffects: "elab-marketing-file/space_vary/getHardboundEffects",
  21. uploadImgControlNet: "elab-marketing-content/aiBeautyFamily/uploadImgControlNet",
  22. // generateProcess: "elab-marketing-content/aiBeautyFamily/generateProcess",
  23. getUploadToken: "elab-marketing-file/upload/getUploadToken",
  24. findSpatialInfoList: "elab-marketing-file/flexible_customization/findSpatialInfoList",
  25. // AI生成界面
  26. AIuploadImgControlNet: 'elab-marketing-content/aiGenerateImg/uploadImgControlNet', //ControlNet图片上传
  27. saveCustomizedRecord: 'elab-marketing-file/space_vary/saveCustomizedRecord', //用户AI信息上传
  28. getCustomizedRecord: 'elab-marketing-file/space_vary/getCustomizedRecord', //获取用户定制记录
  29. deleteCustomizedRecord: 'elab-marketing-file/space_vary/deleteCustomizedRecord', //删除用户定制记录
  30. chineseToPinyin: 'elab-marketing-file/tools/chineseToPinyin', //汉字转拼音
  31. generateTaskImgToImgForAliyun: 'elab-marketing-content/aiGenerateImg/img2Img', // 生成识别任务-阿里云(图生图)
  32. generateTaskWordToImgForAliyun: 'elab-marketing-content/aiGenerateImg/addTaskWithWord2Img', // 生成识别任务-阿里云(文生图)
  33. generateProcess: 'elab-marketing-content/aiGenerateImg/getResult', // 获取任务进度-阿里云
  34. img2img_local: 'elab-marketing-content/aiGenerateImg/img2img_local', // 生成图第一次请求
  35. getPredictions: 'elab-marketing-content/aiGenerateImg/getPredictions', // 获取任务进度-新版
  36. shareDetail: 'elab-marketing-content/aiDreamHouse/V3.0/shareDetail', // 分享查看
  37. queryEnumList: 'elab-marketing-user/enum/queryEnumList', // 获取数字人
  38. rob: 'elab-marketing-file/redpack/rob', // 抢红包
  39. robust_video: 'https://robustvideomatting.elab-plus.com/robust_video', // 上传视频
  40. get_result: 'https://robustvideomatting.elab-plus.com/get_result', // 获取视频上传结果
  41. getUserVirtural: 'elab-marketing-file/virtual/getUserVirtural', // 查询用户上传的数字人
  42. addUserVirtural: 'elab-marketing-file/virtual/addUserVirtural', // 修改数字人信息
  43. aliyunOpenapiUploadOss: "elab-marketing-sms/aliyun/openapi/uploadOss", // 上传文件到oss
  44. // predictions: "https://api.replicate.com/v1/deployments/feathers-wing/spacely-realistic-style-softedge-a100/predictions", // 分享查看
  45. };
  46. // var source = CancelToken.source();
  47. window.requestConfig = async(endpoint, options, isHideLoading = false, preventDoubleClick = false, method = 'post',uploadProgress=null,cancel=null) => {
  48. if (!endpoints.hasOwnProperty(endpoint)) {
  49. console.error(`no such endpoint: ${endpoint}`);
  50. return {
  51. message: "不存在该接口"
  52. };
  53. }
  54. const requestOptions = {
  55. path: endpoints[endpoint],
  56. data: options,
  57. };
  58. if (preventDoubleClick) {
  59. //说明该接口需要防止连击
  60. if (doubleClickList[requestOptions.path] && doubleClickList[requestOptions.path].isRunning) {
  61. console.log(`${requestOptions.path}触发连击,屏蔽该请求`)
  62. return
  63. } else {
  64. console.log(`${requestOptions.path}触发连击,通过`)
  65. doubleClickList[requestOptions.path] = {
  66. isRunning: true
  67. }
  68. }
  69. }
  70. console.log(`获取${requestOptions.path}请求的参数:`, requestOptions.data)
  71. requestOptions.url = requestOptions.path;
  72. // var t = Math.round(new Date());
  73. // requestOptions.time = t;
  74. if (!requestOptions.url.includes('/elab-marketing-user/aysn/task/byone') &&
  75. !requestOptions.url.includes('elab-marketing-analyse/heavenlyEye/saleTarget/add') &&
  76. !requestOptions.url.includes('elab-marketing-analyse/heavenlyEye/customer/coverPopulation') &&
  77. !requestOptions.url.includes('elab-marketing-analyse/heavenlyEye/customer/intention') &&
  78. !requestOptions.url.includes('elab-marketing-analyse/urbanCockpit/sky_eye_marketing/getAdCreativeDraftCheckResult') &&
  79. !requestOptions.url.includes('elab-marketing-analyse/heavenlyEye/getCompareMapTotalPopulation') &&
  80. !requestOptions.url.includes('aiGenerateImg/uploadImgControlNet') &&
  81. !requestOptions.url.includes('aiGenerateImg/img2Img') &&
  82. !requestOptions.url.includes('aiGenerateImg/img2img_local') &&
  83. !requestOptions.url.includes('aiGenerateImg/getPredictions') &&
  84. !requestOptions.url.includes('aiGenerateImg/getResult')
  85. ) {
  86. store.state.loading = true; //显示loading态
  87. }
  88. if (isHideLoading) {
  89. store.state.loading = false; //显示loading态
  90. }
  91. if (requestOptions.url.includes('elab-marketing-analyse/heavenlyEye/importLocations') ||
  92. requestOptions.url.includes('elab-marketing-sms/aliyun/openapi/uploadOss') ||
  93. requestOptions.url.includes('/robust_video')) {
  94. requestOptions.ContentType = 'multipart/form-data';
  95. if(uploadProgress && typeof(uploadProgress)==='function'){
  96. requestOptions.uploadProgress = uploadProgress;
  97. }
  98. }
  99. if (requestOptions) {
  100. let platform = (window.userInfo && window.userInfo['userAccount'] && window.userInfo['userAccount'].platform) ? window.userInfo['userAccount'].platform : ''; //TODO 要还原成‘’的
  101. let currentProject = store.state.currentProject ? store.state.currentProject : null;
  102. let landId = currentProject ? currentProject.id : '';
  103. requestOptions.data = requestOptions.data ? requestOptions.data : {};
  104. }
  105. var response;
  106. if (!requestOptions.url.includes('robust_video') && (requestOptions.url.includes('http') || method == 'get')) {
  107. let params = requestOptions.data;
  108. response = await axios.get(requestOptions.url, { params });
  109. } else {
  110. if(requestOptions.uploadProgress && typeof(requestOptions.uploadProgress)==='function'){
  111. let _dt = {
  112. onUploadProgress: progressEvent => {
  113. requestOptions.uploadProgress(progressEvent)
  114. }
  115. }
  116. if(cancel){//外界传递进来的取消函数
  117. let cancelTokenSource = axios.CancelToken.source();
  118. _dt.cancelToken = cancelTokenSource.token,
  119. cancel(cancelTokenSource)
  120. }
  121. response = await axios.post(requestOptions.url, requestOptions.data,_dt);
  122. }else{
  123. response = await axios.post(requestOptions.url, requestOptions.data);
  124. }
  125. }
  126. //说明该接口需要防止连击
  127. if (preventDoubleClick && doubleClickList[requestOptions.path] && doubleClickList[requestOptions.path]
  128. .isRunning) {
  129. console.log(`${requestOptions.path}连击接口已返回,清空连击数组`)
  130. doubleClickList[requestOptions.path].isRunning = false
  131. }
  132. // console.log('返回' + requestOptions.path + '请求的结果:', response)
  133. return response;
  134. }