index.js 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053
  1. import { http, getToken } from "../utils/request";
  2. import config from "../config";
  3. import { $waiting } from "@/components/shared/loading";
  4. import { postOrderTraversal } from "@/utils/other.js";
  5. import { i18n } from "@/lang";
  6. const number = function () {
  7. return config.projectNum;
  8. };
  9. const scene = function () {
  10. return config.sceneNum;
  11. };
  12. const CLIENT_CODE = config.client_code;
  13. const URL_FILL = config.urlFill;
  14. let ossUrl = config.CDN;
  15. // https://ossxiaoan.4dage.com/720yun_fd_manage
  16. /**
  17. * 获取用户账号信息
  18. */
  19. export function getUserInfo(ok, no) {
  20. return http.postJson(`/api/user/getUserInfo`, {}, ok, no);
  21. }
  22. /**
  23. * 获取全景作品基本信息
  24. * @param {*} data
  25. * @param {*} ok
  26. * @param {*} no
  27. */
  28. export function getPanoInfo(data, ok, no) {
  29. return http.get(`${ossUrl}/720yun_fd_manage/${data || number()}/someData.json?_=${Math.random()}`, {}, ok, no);
  30. }
  31. /**
  32. * 获取全景列表
  33. * @param {*} workId
  34. * @param {*} ok
  35. * @param {*} no
  36. */
  37. export function getSceneList(workId, ok, no) {
  38. return http.get(`/work/edit/navigation/scene/list?workId=${workId}`, {}, ok, no);
  39. }
  40. /**
  41. * 获取作品自定义logo
  42. * @param {*} workId
  43. * @param {*} ok
  44. * @param {*} no
  45. */
  46. export function getWorkLogo(data, ok, no) {
  47. return http.postJson(`/manage/logo/getLogo`, data, ok, no);
  48. }
  49. /**
  50. * 获取四维看看场景信息
  51. * @param {*} data
  52. * @param {*} ok
  53. * @param {*} no
  54. */
  55. export function getSceneInfomation(data, ok, no) {
  56. return http.get(`/api/scene/getInfo?num=${data.id}&_=${Math.random()}`, {}, ok, no);
  57. }
  58. /**
  59. * 获取场景分组列表
  60. * @param {*} data
  61. * @param {*} ok
  62. * @param {*} no
  63. */
  64. export function getTabList(data, ok, no) {
  65. return http.get(`${URL_FILL}/manage/catalog/getCatalog/${number()}`, data, ok, no);
  66. }
  67. /**
  68. * 根据分组ID获取场景
  69. * @param {*} data
  70. * @param {*} ok
  71. * @param {*} no
  72. */
  73. export function getTabSceneList(data, ok, no) {
  74. return http.get(`${URL_FILL}/manage/catalog/getScene/${data.catalogId}`, {}, ok, no);
  75. }
  76. /**
  77. * 修改场景分组名称
  78. * @param {*} data
  79. * @param {*} ok
  80. * @param {*} no
  81. */
  82. export function editTabName(data, ok, no) {
  83. data.workId = number();
  84. return http.postJson(`${URL_FILL}/manage/catalog/save`, data, ok, no);
  85. }
  86. /**
  87. * 新增/保存全景
  88. * @param {*} data
  89. * @param {*} ok
  90. * @param {*} no
  91. */
  92. export function savePanoToWorks(data, ok, no) {
  93. data.workId = number();
  94. return http.postJson(`${URL_FILL}/manage/scene/saves`, data, ok, no);
  95. }
  96. /**
  97. * 删除标签
  98. * @param {*} data
  99. * @param {*} ok
  100. * @param {*} no
  101. */
  102. export function delTab(data, ok, no) {
  103. return http.get(`${URL_FILL}/manage/catalog/remove/${data}`, {}, ok, no);
  104. }
  105. /**
  106. * 删除场景
  107. * @param {*} data
  108. * @param {*} ok
  109. * @param {*} no
  110. */
  111. export function delPano(data, ok, no) {
  112. return http.get(`${URL_FILL}/manage/scene/remove/${data}`, {}, ok, no);
  113. }
  114. /**
  115. * 获取三维场景列表(不应使用其搜索功能,因为无法全局搜索,而且无论搜的是什么词,指定文件夹中所有子文件夹都会被返回。
  116. */
  117. export function get3DSceneList(data, ok) {
  118. const { pathLevel2Id, folderId, pageNum, pageSize } = data;
  119. if (folderId === "root") {
  120. ok({
  121. data: {
  122. list: [
  123. {
  124. name: i18n.t("gather.siweikankan"),
  125. sceneName: i18n.t("gather.siweikankan"),
  126. id: "kankan",
  127. type: "dir",
  128. },
  129. {
  130. name: i18n.t("gather.siweikanjian"),
  131. sceneName: i18n.t("gather.siweikanjian"),
  132. id: "kanjian",
  133. type: "dir",
  134. },
  135. {
  136. name: i18n.t("gather.siweiSS"),
  137. sceneName: i18n.t("gather.siweiSS"),
  138. id: "siweiSS",
  139. type: "dir",
  140. },
  141. {
  142. name: i18n.t("gather.siweiSG"),
  143. sceneName: i18n.t("gather.siweiSG"),
  144. id: "siweiSG",
  145. type: "dir",
  146. },
  147. ],
  148. total: 4,
  149. },
  150. });
  151. return;
  152. } else {
  153. //1,3,4,5
  154. let tmpSceneSource = 1;
  155. let folderType = 0;
  156. // pathLevel2Id === "kankan" ? "1" : "3"
  157. switch (true) {
  158. case pathLevel2Id === "kankan":
  159. tmpSceneSource = 1;
  160. break;
  161. case pathLevel2Id === "kanjian":
  162. tmpSceneSource = 3;
  163. folderType = 2;
  164. break;
  165. case pathLevel2Id === "siweiSS":
  166. tmpSceneSource = 4;
  167. folderType = 4;
  168. break;
  169. case pathLevel2Id === "siweiSG":
  170. tmpSceneSource = 5;
  171. folderType = 5;
  172. break;
  173. }
  174. // const data = {
  175. // cameraId: null,
  176. // cameraType: null,
  177. // endTime: "",
  178. // folderId: Number.isInteger(folderId) ? folderId : "",
  179. // folderType: String(folderType),
  180. // isOldMu: false,
  181. // isSetData: true,
  182. // keywordType: "sceneName",
  183. // pageNum,
  184. // pageSize,
  185. // sceneName: "",
  186. // sceneSource: tmpSceneSource,
  187. // sceneType: null,
  188. // searchKey: "",
  189. // startTime: "",
  190. // // isObj: 1,
  191. // };
  192. const data = {
  193. pageNum: pageNum,
  194. pageSize: pageSize,
  195. cameraId: null,
  196. searchKey: "",
  197. cameraType: null,
  198. isSetData: true,
  199. folderId: Number.isInteger(folderId) ? folderId : "",
  200. keywordType: "sceneName",
  201. folderType: String(folderType),
  202. sceneType: null,
  203. sceneSource: tmpSceneSource,
  204. endTime: "",
  205. startTime: "",
  206. };
  207. // const info = JSON.parse(localStorage.getItem("info"));
  208. // if (tmpSceneSource === 4 || tmpSceneSource === 5) {
  209. // const MegaData = {
  210. // pageNum,
  211. // pageSize,
  212. // sceneSource: tmpSceneSource,
  213. // selectType: 1,
  214. // snCode: null,
  215. // title: "",
  216. // cooperationUserName: null,
  217. // phone: info.userName || "",
  218. // folderId: Number.isInteger(folderId) ? folderId : "",
  219. // };
  220. // const userInfo = JSON.parse(localStorage.getItem("info"));
  221. // let headers = {};
  222. // const token = localStorage.getItem("token");
  223. // headers["Fdtoken"] = token;
  224. // http
  225. // .postJsonWithHeader(
  226. // process.env.VUE_APP_MEGA_LIST_URL,
  227. // MegaData,
  228. // headers
  229. // )
  230. // .then((res) => {
  231. // ok({
  232. // code: 0,
  233. // data: {
  234. // list: res.data.pageInfo.list.map((item) => {
  235. // if (item.isFolder === 1) {
  236. // item.type = "dir";
  237. // item.sceneName = item.name;
  238. // }
  239. // return item;
  240. // }),
  241. // total: res.data.pageInfo.total,
  242. // },
  243. // });
  244. // });
  245. // } else {
  246. // }
  247. if (tmpSceneSource == 4 || tmpSceneSource == 5) {
  248. data["isObj"] = 1;
  249. }
  250. http.postJson(`/ucenter/user/scene/newList`, data).then((res) => {
  251. ok({
  252. code: 0,
  253. data: {
  254. list: res.data.pageInfo.list.map((item) => {
  255. if (item.isFolder === 1) {
  256. item.type = "dir";
  257. item.sceneName = item.name;
  258. }
  259. return item;
  260. }),
  261. total: res.data.pageInfo.total,
  262. },
  263. });
  264. });
  265. }
  266. }
  267. /**
  268. * 获取三维场景列表(使用关键词搜索功能,分别搜索看看和看见,两个结果合并后返回)
  269. */
  270. export function searchInAll3DScenes(data, ok) {
  271. const { searchKey } = data;
  272. const info = JSON.parse(localStorage.getItem("info"));
  273. return Promise.all([
  274. http.postJson(`/ucenter/user/scene/getOnlySceneList`, {
  275. cameraId: null,
  276. cameraType: null,
  277. endTime: "",
  278. folderId: "",
  279. folderType: "0",
  280. isOldMu: false,
  281. isSetData: true,
  282. keywordType: "sceneName",
  283. pageNum: 1,
  284. pageSize: 999999,
  285. sceneName: searchKey,
  286. sceneSource: "1",
  287. sceneType: null,
  288. searchKey,
  289. startTime: "",
  290. }),
  291. http.postJson(`/ucenter/user/scene/getOnlySceneList`, {
  292. cameraId: null,
  293. cameraType: null,
  294. endTime: "",
  295. folderId: "",
  296. folderType: "2",
  297. isOldMu: false,
  298. isSetData: true,
  299. keywordType: "sceneName",
  300. pageNum: 1,
  301. pageSize: 999999,
  302. sceneName: searchKey,
  303. sceneSource: "3",
  304. sceneType: null,
  305. searchKey,
  306. startTime: "",
  307. }),
  308. http.postJson(`/ucenter/user/scene/getOnlySceneList`, {
  309. cameraId: null,
  310. cameraType: null,
  311. endTime: "",
  312. folderId: "",
  313. folderType: "4",
  314. isOldMu: false,
  315. isSetData: true,
  316. keywordType: "sceneName",
  317. pageNum: 1,
  318. pageSize: 999999,
  319. sceneName: searchKey,
  320. sceneSource: "4",
  321. sceneType: null,
  322. searchKey,
  323. startTime: "",
  324. isObj: "1",
  325. }),
  326. http.postJson(`/ucenter/user/scene/getOnlySceneList`, {
  327. cameraId: null,
  328. cameraType: null,
  329. endTime: "",
  330. folderId: "",
  331. folderType: "5",
  332. isOldMu: false,
  333. isSetData: true,
  334. keywordType: "sceneName",
  335. pageNum: 1,
  336. pageSize: 999999,
  337. sceneName: searchKey,
  338. sceneSource: "5",
  339. sceneType: null,
  340. searchKey,
  341. startTime: "",
  342. isObj: "1",
  343. }),
  344. // http.postJsonWithHeader(
  345. // process.env.VUE_APP_MEGA_LIST_URL,
  346. // {
  347. // pageNum: 1,
  348. // pageSize: 999999,
  349. // sceneSource: "4",
  350. // selectType: 1,
  351. // snCode: null,
  352. // title: String(searchKey).trim(),
  353. // phone: info.userName || "",
  354. // cooperationUserName: null,
  355. // folderId: "",
  356. // },
  357. // {
  358. // Fdtoken: getToken(),
  359. // }
  360. // ),
  361. // http.postJsonWithHeader(
  362. // process.env.VUE_APP_MEGA_LIST_URL,
  363. // {
  364. // pageNum: 1,
  365. // pageSize: 999999,
  366. // sceneSource: "5",
  367. // selectType: 1,
  368. // snCode: null,
  369. // title: String(searchKey).trim(),
  370. // phone: info.userName || "",
  371. // cooperationUserName: null,
  372. // folderId: "",
  373. // },
  374. // {
  375. // Fdtoken: getToken(),
  376. // }
  377. // ),
  378. ]).then((res) => {
  379. console.log(res);
  380. let total = res[0].data.total + res[1].data.total + res[2].data.total + res[3].data.total;
  381. let list = [...res[0].data.list, ...res[1].data.list, ...res[2].data.list, ...res[3].data.list];
  382. ok({
  383. code: 0,
  384. data: {
  385. total,
  386. list,
  387. },
  388. });
  389. });
  390. }
  391. /**
  392. * 获取初始场景
  393. * @param {*} data
  394. * @param {*} ok
  395. * @param {*} no
  396. */
  397. export function getIndex(data, ok, no) {
  398. return http.get(`${URL_FILL}/manage/scene/getIndex/${number()}`, data, ok, no);
  399. }
  400. /**
  401. * 保存初始场景
  402. * @param {*} data
  403. * @param {*} ok
  404. * @param {*} no
  405. */
  406. export function saveIndexInfo(data, ok, no) {
  407. return http.post(`${URL_FILL}/manage/scene/setIndex/${data.id}/${number()}`, "", ok, no);
  408. }
  409. /**
  410. * 上传封面
  411. * @param {*} data: {file sceneCode}
  412. * @param {*} ok
  413. * @param {*} no
  414. */
  415. export function uploadCover(data, ok, no) {
  416. return http.uploadBlobFile(`${URL_FILL}/manage/work/upload`, data, ok, no);
  417. }
  418. /**
  419. * 保存全景图初始视角
  420. * @param {*} data
  421. * @param {*} ok
  422. * @param {*} no
  423. */
  424. export function savePosition(data, ok, no) {
  425. return http.postJson(`${URL_FILL}/manage/scene/editXml`, data, ok, no);
  426. }
  427. /**
  428. * 重命名全景图
  429. * @param {*} data
  430. * @param {*} ok
  431. * @param {*} no
  432. */
  433. export function editPanoName(data, ok, no) {
  434. return http.postJson(`${URL_FILL}/manage/scene/edit`, data, ok, no);
  435. }
  436. /**
  437. * 重命名分组名称
  438. * @param {*} data
  439. * @param {*} ok
  440. * @param {*} no
  441. */
  442. export function editCatalogName(data, ok, no) {
  443. return http.postJson(`${URL_FILL}/manage/catalog/edit`, data, ok, no);
  444. }
  445. /**
  446. * 保存初始画面
  447. * @param {*} data
  448. * @param {*} ok
  449. * @param {*} no
  450. */
  451. export function saveInitScreen(data, ok, no) {
  452. return http.post(`${URL_FILL}/manage/scene/saveIndex`, data, ok, no);
  453. }
  454. /**
  455. * 保存全景图配置信息
  456. * @param {*} data
  457. * @param {*} ok
  458. * @param {*} no
  459. */
  460. export function saveSomeData(data, ok, no) {
  461. return http.postJson(`${URL_FILL}/manage/scene/editSomeData`, data, ok, no);
  462. }
  463. /**
  464. * 保存使用的热点
  465. * @param {*} data
  466. * @param {*} ok
  467. * @param {*} no
  468. */
  469. export function saveUseHots(data, ok, no) {
  470. return http.postJson(`${URL_FILL}/manage/scene/save/useHots`, data, ok, no);
  471. }
  472. /**
  473. * 保存初始场景
  474. * @param {*} data
  475. * @param {*} ok
  476. * @param {*} no
  477. */
  478. export function deleteIndexInfo(data, ok, no) {
  479. return http.get(`${URL_FILL}/manage/scene/removeIndex/${number()}`, data, ok, no);
  480. }
  481. /**
  482. * 获取场景基本信息
  483. * @param {*} data
  484. * @param {*} ok
  485. * @param {*} no
  486. */
  487. export function getSceneInfo(data, ok, no) {
  488. return http.get(`${URL_FILL}/manage/scene/detail/${scene()}`, {}, ok, no);
  489. }
  490. /**
  491. * 获取场景分组列表(展示端)
  492. * @param {*} data
  493. * @param {*} ok
  494. * @param {*} no
  495. */
  496. export function getWebTabList(data, ok, no) {
  497. return http.get(`${URL_FILL}/web/common/getCatalog/${number()}`, data, ok, no);
  498. }
  499. /**
  500. * 检查作品是否可用
  501. * @param {*} data
  502. * @param {*} ok
  503. * @param {*} no
  504. */
  505. export function checkWork(data, ok, no) {
  506. let visit = "";
  507. if (window.location.pathname.indexOf("showMobile.html") > -1 || window.location.pathname.indexOf("show.html") > -1) {
  508. visit = 1111;
  509. }
  510. console.log("checkWork", data);
  511. return http.get(`${URL_FILL}/web/common/checkWork/${number()}${visit ? "?visit=" + visit : ""}`, data, ok, no);
  512. }
  513. /**
  514. * 根据分组ID获取场景(展示端)
  515. * @param {*} data
  516. * @param {*} ok
  517. * @param {*} no
  518. */
  519. export function getWebTabSceneList(data, ok, no) {
  520. return http.get(`${URL_FILL}/web/common/getScene/${data.catalogId}`, {}, ok, no);
  521. }
  522. /**
  523. * 检测登陆状态
  524. */
  525. export function checkLogin() {
  526. if (window.location.pathname.indexOf("material.html") > -1) {
  527. return http.get(`${URL_FILL}/web/common/checkToken/?_=${Math.random()}`);
  528. } else {
  529. return http.get(`${URL_FILL}/manage/work/checkToken/${number()}`);
  530. }
  531. }
  532. /**
  533. * 检测素材状态
  534. */
  535. export function checkMStatus(data, ok, no) {
  536. return http.get(`${URL_FILL}/manage/fodder/checkStatus/${data.ids.join(",")}`, { islongpolling: data.islongpolling }, ok, no);
  537. }
  538. /**
  539. * 获取作品基本信息(展示端)
  540. * @param {*} data
  541. * @param {*} ok
  542. * @param {*} no
  543. */
  544. export function getWebWorksInfo(data, ok, no) {
  545. return http.get(`${URL_FILL}/web/common/detail/${number()}`, {}, ok, no);
  546. }
  547. /**
  548. * 校验密码(展示端)
  549. * @param {*} data
  550. * @param {*} ok
  551. * @param {*} no
  552. */
  553. export function checkPassword(data, ok, no) {
  554. data.workId = number();
  555. return http.postJson(`${URL_FILL}/web/common/checkPwd`, data, ok, no);
  556. }
  557. /**
  558. * 获取初始场景(展示端)
  559. * @param {*} data
  560. * @param {*} ok
  561. * @param {*} no
  562. */
  563. export function getWebIndex(data, ok, no) {
  564. return http.get(`${URL_FILL}/web/common/getIndex/${number()}`, {}, ok, no);
  565. }
  566. /**
  567. * 查询该作品是否存在场景
  568. * @param {*} data
  569. * @param {*} ok
  570. * @param {*} no
  571. */
  572. export function getAllVrList(data, ok, no) {
  573. return http.get(`${URL_FILL}/manage/scene/findByWork/${number()}`, data, ok, no);
  574. }
  575. /**
  576. * 保存全景图基本信息
  577. * @param {*} data
  578. * @param {*} ok
  579. * @param {*} no
  580. */
  581. export function savePanoInfo(data, ok, no) {
  582. data.houseId = number();
  583. return http.postJson("/fcb/pano/scene/house/edit", data, ok, no);
  584. }
  585. /**
  586. * 获取房车宝签名
  587. * @param {*} data
  588. * @param {*} ok
  589. * @param {*} no
  590. */
  591. export function getAuthCode(data, ok, no) {
  592. return http.postJson(`/fcb/project/api/query/authCode`, data, ok, no);
  593. }
  594. /**
  595. * 获取户型列表
  596. * @param {*} data
  597. * @param {*} ok
  598. * @param {*} no
  599. */
  600. export function getHouseList(data, ok, no) {
  601. data.token = getToken();
  602. data.houseId = number();
  603. return http.postJson(`/fcb/pano/scene/findVrModel`, data, ok, no);
  604. }
  605. /**
  606. * 获取全景图列表
  607. * @param {*} data
  608. * @param {*} ok
  609. * @param {*} no
  610. */
  611. export function getPanoList(data, ok, no) {
  612. data.houseId = number();
  613. return http.postJson("/fcb/pano/scene/list", data, ok, no);
  614. }
  615. /**
  616. * 获取全景图列表(搜索)
  617. * @param {*} data
  618. * @param {*} ok
  619. * @param {*} no
  620. */
  621. export function getSearchPanoList(data, ok, no) {
  622. data.houseId = number();
  623. return http.postJson("/fcb/pano/scene/searchUnion", data, ok, no);
  624. }
  625. /**
  626. * 获取楼盘详情
  627. * @param {*} data
  628. * @param {*} ok
  629. * @param {*} no
  630. */
  631. export function getHouseDetail(data, ok, no) {
  632. data.houseId = number();
  633. return http.postJson(`/fcb/pano/scene/findRoom/${data.houseId}`, {}, ok, no);
  634. }
  635. /**
  636. * 调整顺序
  637. * @param {*} data
  638. * @param {*} ok
  639. * @param {*} no
  640. */
  641. export function setListSort(data, ok, no) {
  642. return http.postJson(`/fcb/pano/scene/setSort`, data, ok, no);
  643. }
  644. // 素材库
  645. /**
  646. * 获取素材列表
  647. * @param {*} data
  648. * @param {*} ok
  649. * @param {*} no
  650. */
  651. export function getMaterialList(data, ok, no) {
  652. let url = `${URL_FILL}/manage/fodder/listAndDir`;
  653. // if (data.urlSelect) {
  654. // url = `${URL_FILL}/manage/fodder/select/${data.type}/${number()}`
  655. // }
  656. return http.postJson(
  657. url,
  658. data,
  659. (result) => {
  660. // console.log(result);
  661. // 处理旧版本时上传的素材没有新版本新加入的字段的问题
  662. if (result && result.code === 0 && result.data.list) {
  663. for (const item of result.data.list) {
  664. if (item.dirId === null) {
  665. item.dirId = 1;
  666. }
  667. if (item.dirName === "") {
  668. item.dirName = "根目录";
  669. }
  670. }
  671. }
  672. return ok(result);
  673. },
  674. (err) => {
  675. return no(err);
  676. }
  677. );
  678. }
  679. /**
  680. * 上传素材
  681. * @param {*} data
  682. * @param {*} ok
  683. * @param {*} no
  684. */
  685. export function uploadMaterialOld(data, subdata, ok, no, onProgress) {
  686. return http.uploadFile(`${URL_FILL}/manage/fodder/upload/${subdata.type}/${subdata.uid}`, data, ok, no, onProgress);
  687. }
  688. export function uploadMaterial(data, ok, no, onProgress) {
  689. return http.uploadFile(`${URL_FILL}/manage/fodder/uploadDir`, data, ok, no, onProgress);
  690. }
  691. /**
  692. * 删除素材或文件夹
  693. * @param {*} data
  694. * @param {*} ok
  695. * @param {*} no
  696. */
  697. export function delMaterial(id, ok, no) {
  698. return http.postJson(`${URL_FILL}/manage/fodder/remove/${id}`, {}, ok, no);
  699. }
  700. /**
  701. * 修改素材
  702. * @param {*} data
  703. * @param {*} ok
  704. * @param {*} no
  705. */
  706. export function editMaterial(data, ok, no) {
  707. return http.postJson(`${URL_FILL}/manage/fodder/update`, data, ok, no);
  708. }
  709. /**
  710. * 文件夹相关
  711. */
  712. function folderTreeSortRoutine(folderList) {
  713. if (folderList.children) {
  714. folderList.children.sort((a, b) => {
  715. const createTimeA = new Date(a.createTime);
  716. const createTimeB = new Date(b.createTime);
  717. if (createTimeA.getTime() > createTimeB.getTime()) {
  718. return -1;
  719. } else if (createTimeA.getTime() === createTimeB.getTime()) {
  720. return 0;
  721. } else {
  722. return 1;
  723. }
  724. });
  725. }
  726. }
  727. // 获取目录结构
  728. export function getFolderTree(data) {
  729. return http.getJson(`${URL_FILL}/manage/dir/getTree/${data.type}`).then((res) => {
  730. if (res.code === 0 && Array.isArray(res.data)) {
  731. const temp = {
  732. name: "根目录",
  733. id: 1,
  734. children: res.data,
  735. };
  736. res.data = temp;
  737. postOrderTraversal(res.data, folderTreeSortRoutine);
  738. }
  739. return res;
  740. });
  741. }
  742. // 素材库中新增文件夹
  743. export function createFolder(data, ok, no) {
  744. return http.postJson(`${URL_FILL}/manage/dir/save`, data, ok, no);
  745. }
  746. // 素材库中文件夹重命名
  747. export function renameFolder(data, ok, no) {
  748. return http.postJson(`${URL_FILL}/manage/dir/save`, data, ok, no);
  749. }
  750. // 移动素材或文件夹到一个文件夹
  751. export function moveToFolder(list, targetId, ancestors) {
  752. const param = {
  753. ancestors,
  754. dirIds: list
  755. .filter((item) => {
  756. return item.type === "dir";
  757. })
  758. .map((item) => {
  759. return item.id;
  760. })
  761. .join(","),
  762. fodderIds: list
  763. .filter((item) => {
  764. return item.type !== "dir";
  765. })
  766. .map((item) => {
  767. return item.id;
  768. })
  769. .join(","),
  770. parentId: targetId,
  771. };
  772. return http.postJson(`${URL_FILL}/manage/dir/move`, param).then((res) => {
  773. if (res.code === 0) {
  774. return Promise.resolve(res);
  775. } else {
  776. return Promise.reject(false);
  777. }
  778. });
  779. }
  780. export async function delFolder(id) {
  781. return http.postJson(`${URL_FILL}/manage/dir/remove/${id}`).then((res) => {
  782. if (res.code === 0) {
  783. return Promise.resolve(res);
  784. } else {
  785. return Promise.reject(false);
  786. }
  787. });
  788. // return http.postJson(`${URL_FILL}/manage/dir/remove/${id}`, ok, no)
  789. }
  790. /**
  791. * end of 文件夹相关
  792. */
  793. /**
  794. * 添加我的作品
  795. * @param {*} data
  796. * @param {*} ok
  797. * @param {*} no
  798. */
  799. export function addWorks(data, ok, no) {
  800. return http.postJson(`${URL_FILL}/manage/work/add`, data, ok, no);
  801. }
  802. /**
  803. * 获取我的作品列表
  804. * @param {*} data
  805. * @param {*} ok
  806. * @param {*} no
  807. */
  808. export function getWorksList(data, ok, no) {
  809. return http.postJson(`${URL_FILL}/manage/work/list`, data, ok, no);
  810. }
  811. /**
  812. * 保存我的作品
  813. * @param {*} data
  814. * @param {*} ok
  815. * @param {*} no
  816. */
  817. export function saveWorks(data, ok, no) {
  818. !data.id && (data.id = number());
  819. // return http.postJson(`http://192.168.0.152:8001/qjkankan/manage/work/edit`, data, ok, no)
  820. return http.postJson(`${URL_FILL}/manage/work/edit`, data, ok, no);
  821. }
  822. /**
  823. * 删除我的作品
  824. * @param {*} data
  825. * @param {*} ok
  826. * @param {*} no
  827. */
  828. export function delWorks(data, ok, no) {
  829. return http.postJson(`${URL_FILL}/manage/work/remove/${data}`, {}, ok, no);
  830. }
  831. /**
  832. * 检查用户空间
  833. * @param {*} data
  834. * @param {*} ok
  835. * @param {*} no
  836. */
  837. // export function checkUserSize(data, ok, no) {
  838. // return http.get(`http://192.168.0.152:8001/qjkankan/manage/fodder/checkUserSize`, data, ok, no)
  839. // // return http.get(`${URL_FILL}/manage/fodder/checkUserSize`, data, ok, no)
  840. // }
  841. export async function checkUserSize() {
  842. // const url = "http://192.168.0.152:8001/qjkankan/manage/fodder/checkUserSize"
  843. const url = `${URL_FILL}/manage/fodder/checkUserSize`;
  844. return http.get(url).then((res) => {
  845. if (res.code === 0) {
  846. return Promise.resolve(res.data);
  847. } else {
  848. return Promise.reject(false);
  849. }
  850. });
  851. // return http.postJson(`${URL_FILL}/manage/dir/remove/${id}`, ok, no)
  852. }
  853. /**
  854. * 上传附件
  855. * @param {*} data
  856. * @param {*} ok
  857. * @param {*} no
  858. */
  859. export function uploadAttachment(data, ok, no) {
  860. return http.uploadFile(`${URL_FILL}/manage/work/uploadHot`, data, ok, no);
  861. }
  862. /**
  863. * 更新通知
  864. * @param {*} data
  865. * @param {*} ok
  866. * @param {*} no
  867. */
  868. export function getNoticeApi(data, ok, no) {
  869. return http.getJson(`${URL_FILL}/manage/work/getServiceUpTip`, data, ok, no);
  870. }
  871. /**
  872. * 动态获取QRcode
  873. */
  874. export function getQrCode(data, ok, no) {
  875. return http.postJson(`${URL_FILL}/manage/logo/gerQrCode`, data, ok, no);
  876. }
  877. /**
  878. * 获取我的作品列表
  879. * @param {*} data
  880. * @param {*} ok
  881. * @param {*} no
  882. */
  883. export function getCamWorksList(data, ok, no) {
  884. return http.postJson(`${URL_FILL}/manage/work/sceneWorkList`, data, ok, no);
  885. }
  886. /**
  887. * 检查作品id
  888. * @param {*} data
  889. * @param {*} ok
  890. * @param {*} no
  891. */
  892. export function exchangeId(data, ok, no) {
  893. return http.postJson(`${URL_FILL}/web/common/getIdInfo`, data, ok, no);
  894. }
  895. // 以下是重构新增的接口
  896. /**
  897. * 新增作品
  898. */
  899. export function addWork(data, ok, no) {
  900. return http.postJson(`${URL_FILL}/manage/work/addWork`, data, ok, no);
  901. }
  902. /**
  903. * 获取作品信息
  904. */
  905. export function getWorkInfo(data, ok, no) {
  906. !data.workId && (data.workId = number());
  907. return http.getJson(`${URL_FILL}/work/view`, data, ok, no);
  908. }
  909. /**
  910. * 保存作品基本设置
  911. */
  912. export function saveBaseWorkInfo(data, ok, no) {
  913. !data.workId && (data.workId = number());
  914. return http.postJson(`${URL_FILL}/work/edit/base/save`, data, ok, no);
  915. }
  916. /**
  917. * 保存视角
  918. */
  919. export function visualSave(data, ok, no) {
  920. console.error(data);
  921. !data.workId && (data.workId = number());
  922. return http.postJson(`${URL_FILL}/work/edit/visual/save`, data, ok, no);
  923. }
  924. /**
  925. * 保存视角
  926. */
  927. export function workHotSave(data, ok, no) {
  928. !data.workId && (data.workId = number());
  929. return http.postJson(`${URL_FILL}/work/edit/workHot/save`, data, ok, no);
  930. }
  931. /**
  932. * 保存初始场景
  933. */
  934. export function initialSet(data, ok, no) {
  935. !data.workId && (data.workId = number());
  936. return http.postJson(`${URL_FILL}/work/edit/navigation/scene/initial/set`, data, ok, no);
  937. }
  938. // /**
  939. // * 导航新增分组
  940. // */
  941. // export function group_add(data, ok, no) {
  942. // !data.workId && (data.workId = number());
  943. // return http.postJson(`${URL_FILL}/work/edit/navigation/group/add`, data, ok, no);
  944. // }
  945. /**
  946. * 保存导航
  947. */
  948. export function navigationSave(data, ok, no) {
  949. !data.workId && (data.workId = number());
  950. return http.postJson(`${URL_FILL}/work/edit/navigation/navigation/save`, data, ok, no);
  951. }
  952. /**
  953. * 保存遮罩
  954. */
  955. export function maskSave(data, ok, no) {
  956. !data.workId && (data.workId = number());
  957. return http.postJson(`${URL_FILL}/work/edit/mask/save`, data, ok, no);
  958. }
  959. /**
  960. * 保存讲解
  961. */
  962. export function explanationSave(data, ok, no) {
  963. !data.workId && (data.workId = number());
  964. return http.postJson(`${URL_FILL}/work/edit/explanation/save`, data, ok, no);
  965. }
  966. // /**
  967. // * 导航新增分组
  968. // */
  969. // export function navigation_delete(data, ok, no) {
  970. // !data.workId && (data.workId = number());
  971. // return http.delete(`${URL_FILL}/work/edit/navigation/navigation/delete`, data, ok, no);
  972. // }