import { http, getToken } from "../utils/request"; import config from "../config"; import { $waiting } from "@/components/shared/loading"; import { postOrderTraversal } from "@/utils/other.js"; import { i18n } from "@/lang"; const number = function () { return config.projectNum; }; const scene = function () { return config.sceneNum; }; const CLIENT_CODE = config.client_code; const URL_FILL = config.urlFill; let ossUrl = config.CDN; // https://ossxiaoan.4dage.com/720yun_fd_manage /** * 获取用户账号信息 */ export function getUserInfo(ok, no) { return http.postJson(`/api/user/getUserInfo`, {}, ok, no); } /** * 获取全景作品基本信息 * @param {*} data * @param {*} ok * @param {*} no */ export function getPanoInfo(data, ok, no) { return http.get(`${ossUrl}/720yun_fd_manage/${data || number()}/someData.json?_=${Math.random()}`, {}, ok, no); } /** * 获取四维看看场景信息 * @param {*} data * @param {*} ok * @param {*} no */ export function getSceneInfomation(data, ok, no) { debugger; return http.get(`/api/scene/getInfo?num=${data.id}&_=${Math.random()}`, {}, ok, no); } /** * 获取场景分组列表 * @param {*} data * @param {*} ok * @param {*} no */ export function getTabList(data, ok, no) { return http.get(`${URL_FILL}/manage/catalog/getCatalog/${number()}`, data, ok, no); } /** * 根据分组ID获取场景 * @param {*} data * @param {*} ok * @param {*} no */ export function getTabSceneList(data, ok, no) { return http.get(`${URL_FILL}/manage/catalog/getScene/${data.catalogId}`, {}, ok, no); } /** * 修改场景分组名称 * @param {*} data * @param {*} ok * @param {*} no */ export function editTabName(data, ok, no) { data.workId = number(); return http.postJson(`${URL_FILL}/manage/catalog/save`, data, ok, no); } /** * 新增/保存全景 * @param {*} data * @param {*} ok * @param {*} no */ export function savePanoToWorks(data, ok, no) { data.workId = number(); return http.postJson(`${URL_FILL}/manage/scene/saves`, data, ok, no); } /** * 删除标签 * @param {*} data * @param {*} ok * @param {*} no */ export function delTab(data, ok, no) { return http.get(`${URL_FILL}/manage/catalog/remove/${data}`, {}, ok, no); } /** * 删除场景 * @param {*} data * @param {*} ok * @param {*} no */ export function delPano(data, ok, no) { return http.get(`${URL_FILL}/manage/scene/remove/${data}`, {}, ok, no); } /** * 获取三维场景列表(不应使用其搜索功能,因为无法全局搜索,而且无论搜的是什么词,指定文件夹中所有子文件夹都会被返回。 */ export function get3DSceneList(data, ok) { const { pathLevel2Id, folderId, pageNum, pageSize } = data; if (folderId === "root") { ok({ data: { list: [ { name: i18n.t("gather.siweikankan"), sceneName: i18n.t("gather.siweikankan"), id: "kankan", type: "dir", }, { name: i18n.t("gather.siweikanjian"), sceneName: i18n.t("gather.siweikanjian"), id: "kanjian", type: "dir", }, { name: i18n.t("gather.siweiSS"), sceneName: i18n.t("gather.siweiSS"), id: "siweiSS", type: "dir", }, { name: i18n.t("gather.siweiSG"), sceneName: i18n.t("gather.siweiSG"), id: "siweiSG", type: "dir", }, ], total: 4, }, }); return; } else { //1,3,4,5 let tmpSceneSource = 1; let folderType = 0; // pathLevel2Id === "kankan" ? "1" : "3" switch (true) { case pathLevel2Id === "kankan": tmpSceneSource = 1; break; case pathLevel2Id === "kanjian": tmpSceneSource = 3; folderType = 2; break; case pathLevel2Id === "siweiSS": tmpSceneSource = 4; folderType = 4; break; case pathLevel2Id === "siweiSG": tmpSceneSource = 5; folderType = 5; break; } // const data = { // cameraId: null, // cameraType: null, // endTime: "", // folderId: Number.isInteger(folderId) ? folderId : "", // folderType: String(folderType), // isOldMu: false, // isSetData: true, // keywordType: "sceneName", // pageNum, // pageSize, // sceneName: "", // sceneSource: tmpSceneSource, // sceneType: null, // searchKey: "", // startTime: "", // // isObj: 1, // }; const data = { pageNum: pageNum, pageSize: pageSize, cameraId: null, searchKey: "", cameraType: null, isSetData: true, folderId: Number.isInteger(folderId) ? folderId : "", keywordType: "sceneName", folderType: String(folderType), sceneType: null, sceneSource: tmpSceneSource, endTime: "", startTime: "", }; // const info = JSON.parse(localStorage.getItem("info")); // if (tmpSceneSource === 4 || tmpSceneSource === 5) { // const MegaData = { // pageNum, // pageSize, // sceneSource: tmpSceneSource, // selectType: 1, // snCode: null, // title: "", // cooperationUserName: null, // phone: info.userName || "", // folderId: Number.isInteger(folderId) ? folderId : "", // }; // const userInfo = JSON.parse(localStorage.getItem("info")); // let headers = {}; // const token = localStorage.getItem("token"); // headers["Fdtoken"] = token; // http // .postJsonWithHeader( // process.env.VUE_APP_MEGA_LIST_URL, // MegaData, // headers // ) // .then((res) => { // ok({ // code: 0, // data: { // list: res.data.pageInfo.list.map((item) => { // if (item.isFolder === 1) { // item.type = "dir"; // item.sceneName = item.name; // } // return item; // }), // total: res.data.pageInfo.total, // }, // }); // }); // } else { // } if (tmpSceneSource == 4 || tmpSceneSource == 5) { data["isObj"] = 1; } http.postJson(`/ucenter/user/scene/newList`, data).then((res) => { ok({ code: 0, data: { list: res.data.pageInfo.list.map((item) => { if (item.isFolder === 1) { item.type = "dir"; item.sceneName = item.name; } return item; }), total: res.data.pageInfo.total, }, }); }); } } /** * 获取三维场景列表(使用关键词搜索功能,分别搜索看看和看见,两个结果合并后返回) */ export function searchInAll3DScenes(data, ok) { const { searchKey } = data; const info = JSON.parse(localStorage.getItem("info")); return Promise.all([ http.postJson(`/ucenter/user/scene/getOnlySceneList`, { cameraId: null, cameraType: null, endTime: "", folderId: "", folderType: "0", isOldMu: false, isSetData: true, keywordType: "sceneName", pageNum: 1, pageSize: 999999, sceneName: searchKey, sceneSource: "1", sceneType: null, searchKey, startTime: "", }), http.postJson(`/ucenter/user/scene/getOnlySceneList`, { cameraId: null, cameraType: null, endTime: "", folderId: "", folderType: "2", isOldMu: false, isSetData: true, keywordType: "sceneName", pageNum: 1, pageSize: 999999, sceneName: searchKey, sceneSource: "3", sceneType: null, searchKey, startTime: "", }), http.postJson(`/ucenter/user/scene/getOnlySceneList`, { cameraId: null, cameraType: null, endTime: "", folderId: "", folderType: "4", isOldMu: false, isSetData: true, keywordType: "sceneName", pageNum: 1, pageSize: 999999, sceneName: searchKey, sceneSource: "4", sceneType: null, searchKey, startTime: "", isObj: "1", }), http.postJson(`/ucenter/user/scene/getOnlySceneList`, { cameraId: null, cameraType: null, endTime: "", folderId: "", folderType: "5", isOldMu: false, isSetData: true, keywordType: "sceneName", pageNum: 1, pageSize: 999999, sceneName: searchKey, sceneSource: "5", sceneType: null, searchKey, startTime: "", isObj: "1", }), // http.postJsonWithHeader( // process.env.VUE_APP_MEGA_LIST_URL, // { // pageNum: 1, // pageSize: 999999, // sceneSource: "4", // selectType: 1, // snCode: null, // title: String(searchKey).trim(), // phone: info.userName || "", // cooperationUserName: null, // folderId: "", // }, // { // Fdtoken: getToken(), // } // ), // http.postJsonWithHeader( // process.env.VUE_APP_MEGA_LIST_URL, // { // pageNum: 1, // pageSize: 999999, // sceneSource: "5", // selectType: 1, // snCode: null, // title: String(searchKey).trim(), // phone: info.userName || "", // cooperationUserName: null, // folderId: "", // }, // { // Fdtoken: getToken(), // } // ), ]).then((res) => { console.log(res); let total = res[0].data.total + res[1].data.total + res[2].data.total + res[3].data.total; let list = [...res[0].data.list, ...res[1].data.list, ...res[2].data.list, ...res[3].data.list]; ok({ code: 0, data: { total, list, }, }); }); } /** * 获取初始场景 * @param {*} data * @param {*} ok * @param {*} no */ export function getIndex(data, ok, no) { return http.get(`${URL_FILL}/manage/scene/getIndex/${number()}`, data, ok, no); } /** * 保存初始场景 * @param {*} data * @param {*} ok * @param {*} no */ export function saveIndexInfo(data, ok, no) { return http.post(`${URL_FILL}/manage/scene/setIndex/${data.id}/${number()}`, "", ok, no); } /** * 上传封面 * @param {*} data: {file sceneCode} * @param {*} ok * @param {*} no */ export function uploadCover(data, ok, no) { return http.uploadBlobFile(`${URL_FILL}/manage/work/upload`, data, ok, no); } /** * 保存全景图初始视角 * @param {*} data * @param {*} ok * @param {*} no */ export function savePosition(data, ok, no) { return http.postJson(`${URL_FILL}/manage/scene/editXml`, data, ok, no); } /** * 重命名全景图 * @param {*} data * @param {*} ok * @param {*} no */ export function editPanoName(data, ok, no) { return http.postJson(`${URL_FILL}/manage/scene/edit`, data, ok, no); } /** * 重命名分组名称 * @param {*} data * @param {*} ok * @param {*} no */ export function editCatalogName(data, ok, no) { return http.postJson(`${URL_FILL}/manage/catalog/edit`, data, ok, no); } /** * 保存初始画面 * @param {*} data * @param {*} ok * @param {*} no */ export function saveInitScreen(data, ok, no) { return http.post(`${URL_FILL}/manage/scene/saveIndex`, data, ok, no); } /** * 保存全景图配置信息 * @param {*} data * @param {*} ok * @param {*} no */ export function saveSomeData(data, ok, no) { return http.postJson(`${URL_FILL}/manage/scene/editSomeData`, data, ok, no); } /** * 保存使用的热点 * @param {*} data * @param {*} ok * @param {*} no */ export function saveUseHots(data, ok, no) { return http.postJson(`${URL_FILL}/manage/scene/save/useHots`, data, ok, no); } /** * 保存初始场景 * @param {*} data * @param {*} ok * @param {*} no */ export function deleteIndexInfo(data, ok, no) { return http.get(`${URL_FILL}/manage/scene/removeIndex/${number()}`, data, ok, no); } /** * 获取场景基本信息 * @param {*} data * @param {*} ok * @param {*} no */ export function getSceneInfo(data, ok, no) { return http.get(`${URL_FILL}/manage/scene/detail/${scene()}`, {}, ok, no); } /** * 获取场景分组列表(展示端) * @param {*} data * @param {*} ok * @param {*} no */ export function getWebTabList(data, ok, no) { return http.get(`${URL_FILL}/web/common/getCatalog/${number()}`, data, ok, no); } /** * 检查作品是否可用 * @param {*} data * @param {*} ok * @param {*} no */ export function checkWork(data, ok, no) { let visit = ""; if (window.location.pathname.indexOf("showMobile.html") > -1 || window.location.pathname.indexOf("show.html") > -1) { visit = 1111; } console.log("checkWork", data); return http.get(`${URL_FILL}/web/common/checkWork/${number()}${visit ? "?visit=" + visit : ""}`, data, ok, no); } /** * 根据分组ID获取场景(展示端) * @param {*} data * @param {*} ok * @param {*} no */ export function getWebTabSceneList(data, ok, no) { return http.get(`${URL_FILL}/web/common/getScene/${data.catalogId}`, {}, ok, no); } /** * 检测登陆状态 */ export function checkLogin() { if (window.location.pathname.indexOf("material.html") > -1) { return http.get(`${URL_FILL}/web/common/checkToken/?_=${Math.random()}`); } else { return http.get(`${URL_FILL}/manage/work/checkToken/${number()}`); } } /** * 检测素材状态 */ export function checkMStatus(data, ok, no) { return http.get(`${URL_FILL}/manage/fodder/checkStatus/${data.ids.join(",")}`, { islongpolling: data.islongpolling }, ok, no); } /** * 获取作品基本信息(展示端) * @param {*} data * @param {*} ok * @param {*} no */ export function getWebWorksInfo(data, ok, no) { return http.get(`${URL_FILL}/web/common/detail/${number()}`, {}, ok, no); } /** * 校验密码(展示端) * @param {*} data * @param {*} ok * @param {*} no */ export function checkPassword(data, ok, no) { data.workId = number(); return http.postJson(`${URL_FILL}/web/common/checkPwd`, data, ok, no); } /** * 获取初始场景(展示端) * @param {*} data * @param {*} ok * @param {*} no */ export function getWebIndex(data, ok, no) { return http.get(`${URL_FILL}/web/common/getIndex/${number()}`, {}, ok, no); } /** * 查询该作品是否存在场景 * @param {*} data * @param {*} ok * @param {*} no */ export function getAllVrList(data, ok, no) { return http.get(`${URL_FILL}/manage/scene/findByWork/${number()}`, data, ok, no); } /** * 保存全景图基本信息 * @param {*} data * @param {*} ok * @param {*} no */ export function savePanoInfo(data, ok, no) { data.houseId = number(); return http.postJson("/fcb/pano/scene/house/edit", data, ok, no); } /** * 获取房车宝签名 * @param {*} data * @param {*} ok * @param {*} no */ export function getAuthCode(data, ok, no) { return http.postJson(`/fcb/project/api/query/authCode`, data, ok, no); } /** * 获取户型列表 * @param {*} data * @param {*} ok * @param {*} no */ export function getHouseList(data, ok, no) { data.token = getToken(); data.houseId = number(); return http.postJson(`/fcb/pano/scene/findVrModel`, data, ok, no); } /** * 获取全景图列表 * @param {*} data * @param {*} ok * @param {*} no */ export function getPanoList(data, ok, no) { data.houseId = number(); return http.postJson("/fcb/pano/scene/list", data, ok, no); } /** * 获取全景图列表(搜索) * @param {*} data * @param {*} ok * @param {*} no */ export function getSearchPanoList(data, ok, no) { data.houseId = number(); return http.postJson("/fcb/pano/scene/searchUnion", data, ok, no); } /** * 获取楼盘详情 * @param {*} data * @param {*} ok * @param {*} no */ export function getHouseDetail(data, ok, no) { data.houseId = number(); return http.postJson(`/fcb/pano/scene/findRoom/${data.houseId}`, {}, ok, no); } /** * 调整顺序 * @param {*} data * @param {*} ok * @param {*} no */ export function setListSort(data, ok, no) { return http.postJson(`/fcb/pano/scene/setSort`, data, ok, no); } // 素材库 /** * 获取素材列表 * @param {*} data * @param {*} ok * @param {*} no */ export function getMaterialList(data, ok, no) { let url = `${URL_FILL}/manage/fodder/listAndDir`; // if (data.urlSelect) { // url = `${URL_FILL}/manage/fodder/select/${data.type}/${number()}` // } return http.postJson( url, data, (result) => { // console.log(result); // 处理旧版本时上传的素材没有新版本新加入的字段的问题 if (result && result.code === 0 && result.data.list) { for (const item of result.data.list) { if (item.dirId === null) { item.dirId = 1; } if (item.dirName === "") { item.dirName = "根目录"; } } } return ok(result); }, (err) => { return no(err); } ); } /** * 上传素材 * @param {*} data * @param {*} ok * @param {*} no */ export function uploadMaterialOld(data, subdata, ok, no, onProgress) { return http.uploadFile(`${URL_FILL}/manage/fodder/upload/${subdata.type}/${subdata.uid}`, data, ok, no, onProgress); } export function uploadMaterial(data, ok, no, onProgress) { return http.uploadFile(`${URL_FILL}/manage/fodder/uploadDir`, data, ok, no, onProgress); } /** * 删除素材或文件夹 * @param {*} data * @param {*} ok * @param {*} no */ export function delMaterial(id, ok, no) { return http.postJson(`${URL_FILL}/manage/fodder/remove/${id}`, {}, ok, no); } /** * 修改素材 * @param {*} data * @param {*} ok * @param {*} no */ export function editMaterial(data, ok, no) { return http.postJson(`${URL_FILL}/manage/fodder/update`, data, ok, no); } /** * 文件夹相关 */ function folderTreeSortRoutine(folderList) { if (folderList.children) { folderList.children.sort((a, b) => { const createTimeA = new Date(a.createTime); const createTimeB = new Date(b.createTime); if (createTimeA.getTime() > createTimeB.getTime()) { return -1; } else if (createTimeA.getTime() === createTimeB.getTime()) { return 0; } else { return 1; } }); } } // 获取目录结构 export function getFolderTree(data) { return http.getJson(`${URL_FILL}/manage/dir/getTree/${data.type}`).then((res) => { if (res.code === 0 && Array.isArray(res.data)) { const temp = { name: "根目录", id: 1, children: res.data, }; res.data = temp; postOrderTraversal(res.data, folderTreeSortRoutine); } return res; }); } // 素材库中新增文件夹 export function createFolder(data, ok, no) { return http.postJson(`${URL_FILL}/manage/dir/save`, data, ok, no); } // 素材库中文件夹重命名 export function renameFolder(data, ok, no) { return http.postJson(`${URL_FILL}/manage/dir/save`, data, ok, no); } // 移动素材或文件夹到一个文件夹 export function moveToFolder(list, targetId, ancestors) { const param = { ancestors, dirIds: list .filter((item) => { return item.type === "dir"; }) .map((item) => { return item.id; }) .join(","), fodderIds: list .filter((item) => { return item.type !== "dir"; }) .map((item) => { return item.id; }) .join(","), parentId: targetId, }; return http.postJson(`${URL_FILL}/manage/dir/move`, param).then((res) => { if (res.code === 0) { return Promise.resolve(res); } else { return Promise.reject(false); } }); } export async function delFolder(id) { return http.postJson(`${URL_FILL}/manage/dir/remove/${id}`).then((res) => { if (res.code === 0) { return Promise.resolve(res); } else { return Promise.reject(false); } }); // return http.postJson(`${URL_FILL}/manage/dir/remove/${id}`, ok, no) } /** * end of 文件夹相关 */ /** * 添加我的作品 * @param {*} data * @param {*} ok * @param {*} no */ export function addWorks(data, ok, no) { return http.postJson(`${URL_FILL}/manage/work/add`, data, ok, no); } /** * 获取我的作品列表 * @param {*} data * @param {*} ok * @param {*} no */ export function getWorksList(data, ok, no) { return http.postJson(`${URL_FILL}/manage/work/list`, data, ok, no); } /** * 保存我的作品 * @param {*} data * @param {*} ok * @param {*} no */ export function saveWorks(data, ok, no) { !data.id && (data.id = number()); // return http.postJson(`http://192.168.0.152:8001/qjkankan/manage/work/edit`, data, ok, no) return http.postJson(`${URL_FILL}/manage/work/edit`, data, ok, no); } /** * 删除我的作品 * @param {*} data * @param {*} ok * @param {*} no */ export function delWorks(data, ok, no) { return http.postJson(`${URL_FILL}/manage/work/remove/${data}`, {}, ok, no); } /** * 检查用户空间 * @param {*} data * @param {*} ok * @param {*} no */ // export function checkUserSize(data, ok, no) { // return http.get(`http://192.168.0.152:8001/qjkankan/manage/fodder/checkUserSize`, data, ok, no) // // return http.get(`${URL_FILL}/manage/fodder/checkUserSize`, data, ok, no) // } export async function checkUserSize() { // const url = "http://192.168.0.152:8001/qjkankan/manage/fodder/checkUserSize" const url = `${URL_FILL}/manage/fodder/checkUserSize`; return http.get(url).then((res) => { if (res.code === 0) { return Promise.resolve(res.data); } else { return Promise.reject(false); } }); // return http.postJson(`${URL_FILL}/manage/dir/remove/${id}`, ok, no) } /** * 上传附件 * @param {*} data * @param {*} ok * @param {*} no */ export function uploadAttachment(data, ok, no) { return http.uploadFile(`${URL_FILL}/manage/work/uploadHot`, data, ok, no); } /** * 更新通知 * @param {*} data * @param {*} ok * @param {*} no */ export function getNoticeApi(data, ok, no) { return http.getJson(`${URL_FILL}/manage/work/getServiceUpTip`, data, ok, no); } /** * 动态获取QRcode */ export function getQrCode(data, ok, no) { return http.postJson(`${URL_FILL}/manage/logo/gerQrCode`, data, ok, no); } /** * 获取我的作品列表 * @param {*} data * @param {*} ok * @param {*} no */ export function getCamWorksList(data, ok, no) { return http.postJson(`${URL_FILL}/manage/work/sceneWorkList`, data, ok, no); } /** * 检查作品id * @param {*} data * @param {*} ok * @param {*} no */ export function exchangeId(data, ok, no) { return http.postJson(`${URL_FILL}/web/common/getIdInfo`, data, ok, no); } // 以下是重构新增的接口 /** * 新增作品 */ export function addWork(data, ok, no) { return http.postJson(`${URL_FILL}/manage/work/addWork`, data, ok, no); } /** * 获取作品信息 */ export function getWorkInfo(data, ok, no) { !data.workId && (data.workId = number()); return http.getJson(`${URL_FILL}/work/view`, data, ok, no); } /** * 保存作品基本设置 */ export function saveBaseWorkInfo(data, ok, no) { !data.workId && (data.workId = number()); return http.postJson(`${URL_FILL}/work/edit/base/save`, data, ok, no); } /** * 保存视角 */ export function visualSave(data, ok, no) { console.error(data); !data.workId && (data.workId = number()); return http.postJson(`${URL_FILL}/work/edit/visual/save`, data, ok, no); } /** * 保存视角 */ export function workHotSave(data, ok, no) { !data.workId && (data.workId = number()); return http.postJson(`${URL_FILL}/work/edit/workHot/save`, data, ok, no); } /** * 保存初始场景 */ export function initialSet(data, ok, no) { !data.workId && (data.workId = number()); return http.postJson(`${URL_FILL}/work/edit/navigation/scene/initial/set`, data, ok, no); } // /** // * 导航新增分组 // */ // export function group_add(data, ok, no) { // !data.workId && (data.workId = number()); // return http.postJson(`${URL_FILL}/work/edit/navigation/group/add`, data, ok, no); // } /** * 保存导航 */ export function navigationSave(data, ok, no) { !data.workId && (data.workId = number()); return http.postJson(`${URL_FILL}/work/edit/navigation/navigation/save`, data, ok, no); } /** * 保存遮罩 */ export function maskSave(data, ok, no) { !data.workId && (data.workId = number()); return http.postJson(`${URL_FILL}/work/edit/mask/save`, data, ok, no); } /** * 保存讲解 */ export function explanationSave(data, ok, no) { !data.workId && (data.workId = number()); return http.postJson(`${URL_FILL}/work/edit/explanation/save`, data, ok, no); } // /** // * 导航新增分组 // */ // export function navigation_delete(data, ok, no) { // !data.workId && (data.workId = number()); // return http.delete(`${URL_FILL}/work/edit/navigation/navigation/delete`, data, ok, no); // }