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', }, ], total: 2, } }) return } else { http.postJson(`/ucenter/user/scene/newList`, { cameraId: null, cameraType: null, endTime: "", folderId: Number.isInteger(folderId) ? folderId : '', folderType: pathLevel2Id === 'kankan' ? "0" : '2', isOldMu: false, isSetData: true, keywordType: "sceneName", pageNum, pageSize, sceneName: '', sceneSource: pathLevel2Id === 'kankan' ? "1" : '3', sceneType: null, searchKey: '', startTime: "", }).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 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: "", }), ]).then((res) => { let total = res[0].data.total + res[1].data.total let list = [...res[0].data.list, ...res[1].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 } 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) }