Ver Fonte

初步适配新接口

Wind-Breaker1 há 1 ano atrás
pai
commit
6c6ff9666a

+ 6 - 5
src/services/api.ts

@@ -52,24 +52,25 @@ export async function getCollectionList(
   data: any,
   config: any
 ) {
-  return await axios.post(`/api/data/${collection}/list`, data, config);
+  // return await axios.post(`/api/data/${collection}/list`, data, config);
+  return await axios.post(`/api/data/v/list`, data, config);
 }
 
 export async function getLe5leV(id: string, projection?: any) {
-  return await axios.post('/api/data/le5leV/get', {
+  return await axios.post('/api/data/v/get', {
     id,
     projection,
   });
 }
 
 export async function getComponents(id: string) {
-  return await axios.post(`/api/data/le5leV-components/get`, {
+  return await axios.post(`/api/data/v-components/get`, {
     id,
   });
 }
 
 export async function getComponentsList(data: any, config: any) {
-  return await axios.post('/api/data/le5leV-components/list', data, config);
+  return await axios.post('/api/data/v-components/list', data, config);
 }
 
 export async function getLe5le3d(id: string, projection?: any) {
@@ -80,7 +81,7 @@ export async function getLe5le3d(id: string, projection?: any) {
 }
 
 export async function getProjectsList(data: any, config: any) {
-  return await axios.post('/api/data/le5leV/list', data, config);
+  return await axios.post('/api/data/v/list', data, config);
 }
 
 export async function getLe5le2d(id: string, projection?: any) {

+ 49 - 39
src/services/common.ts

@@ -127,7 +127,7 @@ export const _save = async (
     return;
   }
   if (
-    vType === 'le5leV-components' &&
+    vType === 'v-components' &&
     meta2d.store.active &&
     meta2d.store.active.length === 1 &&
     meta2d.store.active[0].name === 'combine'
@@ -167,7 +167,7 @@ export const _save = async (
     comData.name =
       (meta2d.store.active[0] as any).description ||
       `meta2d.${new Date().toLocaleString()}`;
-    let ret: any = await addCollection('le5leV-components', comData); // 新增
+    let ret: any = await addCollection('v-components', comData); // 新增
     if (ret.error) {
       return;
     }
@@ -186,7 +186,7 @@ export const _save = async (
     return;
   }
   if (!data.tags.includes('系统模板') && !data.tags.includes('系统方案')) {
-    if (vType === 'le5leV-template') {
+    if (vType === 'v-template') {
       if (data.tags && !data.tags.includes('模板')) {
         delete data._id;
         delete data.id;
@@ -244,7 +244,7 @@ export const _save = async (
     // }, 1000);
   }
   // setTimeout(async () => {
-  if (data.component || vType === 'le5leV-components') {
+  if (data.component || vType === 'v-components') {
     data.component = true;
     // pens 存储原数据用于二次编辑 ; componentDatas 组合后的数据,用于复用
     data.componentDatas = meta2d.toComponent(
@@ -255,7 +255,7 @@ export const _save = async (
   } else {
     data.component = false; // 必要值
   }
-  let collection = data.component ? 'le5leV-components' : 'le5leV';
+  let collection = data.component ? 'v-components' : 'v';
   let ret: any;
   if (!data.name) {
     // 文件名称
@@ -274,7 +274,7 @@ export const _save = async (
     if (!folder._id) {
       let type = vType;
       if (!type) {
-        type = 'le5leV';
+        type = 'v';
       }
       let folderRet: any = await axios.post('/api/data/folders/get', {
         query: {
@@ -357,12 +357,12 @@ export const _save = async (
     router.currentRoute.value.query.version ||
     type === SaveType.SaveAs // 另存为肯定走新增,也会产生新的 id
   ) {
-    data._id = ret._id;
-    (meta2d.store.data as Meta2dBackData)._id = data._id;
+    data.id = ret.id;
+    (meta2d.store.data as Meta2dBackData).id = data.id;
     router.replace({
       path: '/',
       query: {
-        id: data._id,
+        id: data.id,
         r: Date.now() + '',
         c: data.component ? 1 : undefined,
       },
@@ -376,7 +376,7 @@ export const _save = async (
   return true;
   // }, 2000);
 };
-
+// TODO 保存图纸
 export const save = async (
   type: SaveType = SaveType.Save,
   vType?: string,
@@ -395,13 +395,15 @@ export const save = async (
 
   meta2d.stopAnimate();
   const data: Meta2dBackData = meta2d.data();
+  console.log('data',deepClone(data))
   if (!(user && user.id)) {
     MessagePlugin.warning(noLoginTip);
     localforage.setItem(localStorageName, JSON.stringify(data));
     return;
   }
+  // 保存为组件
   if (
-    vType === 'le5leV-components' &&
+    vType === 'v-components' &&
     meta2d.store.active &&
     meta2d.store.active.length === 1 &&
     meta2d.store.active[0].name === 'combine'
@@ -442,7 +444,7 @@ export const save = async (
       (meta2d.store.data as Meta2dBackData).showChild,
       false
     );
-    let ret: any = await addCollection('le5leV-components', comData); // 新增
+    let ret: any = await addCollection('v-components', comData); // 新增
     if (ret.error) {
       return;
     }
@@ -458,20 +460,21 @@ export const save = async (
   ) {
     return;
   }
-  if (!data.tags) {
-    data.tags = [];
-  }
-  if (!data.tags.includes('系统模板') && !data.tags.includes('系统方案')) {
-    if (vType === 'le5leV-template') {
+  if (
+    data.tags &&
+    !data.tags.includes('系统模板') &&
+    !data.tags.includes('系统方案')
+  ) {
+    if (vType === 'v-template') {
       if (data.tags && !data.tags.includes('模板')) {
-        delete data._id;
+        delete data.id;
         delete data.id;
         delete data.folder;
       }
       data.tags = ['模板'];
     } else if (!vType) {
       if (data.tags && !data.tags.includes('方案')) {
-        delete data._id;
+        delete data.id;
         delete data.id;
         delete data.folder;
       }
@@ -479,9 +482,9 @@ export const save = async (
     }
   }
   const thumbFolder =
-    vType === 'le5leV-template'
+    vType === 'v-template'
       ? '模板'
-      : vType === 'le5leV-components'
+      : vType === 'v-components'
       ? '组件'
       : '方案';
   if (type === SaveType.SaveAs) {
@@ -513,17 +516,20 @@ export const save = async (
       );
       return;
     }
-    if (data._id && type === SaveType.Save) {
+    let conflict = undefined;
+    console.log()
+    if (data.id && type === SaveType.Save) {
       if (data.image && !(await delImage(data.image))) {
         return;
       }
     }
 
-    const file = await upload(
+    const file:any = await upload(
       blob,
-      true,
-      data.name,
-      `/大屏/${thumbFolder}/${data.folder || '默认'}`
+      // true,
+      data.image?.split('/').pop() || data.name,
+      `/大屏/${thumbFolder}/${data.folder || '默认'}`,
+      conflict
     );
     if (!file) {
       return;
@@ -535,7 +541,7 @@ export const save = async (
     (meta2d.store.data as Meta2dBackData).image = data.image;
     (meta2d.store.data as Meta2dBackData).filename = data.filename;
   }
-  if (data.component || vType === 'le5leV-components') {
+  if (data.component || vType === 'v-components') {
     data.component = true;
     // pens 存储原数据用于二次编辑 ; componentDatas 组合后的数据,用于复用
     data.componentDatas = meta2d.toComponent(
@@ -546,7 +552,7 @@ export const save = async (
   } else {
     data.component = false; // 必要值
   }
-  let collection = data.component ? 'le5leV-components' : 'le5leV';
+  let collection = data.component ? 'v-components' : 'v';
   let ret: any;
 
   !data.version && (data.version = baseVer);
@@ -554,7 +560,13 @@ export const save = async (
   if (!data.folder) {
     data.folder = ''; // folder.name;
   }
-
+  const body = {
+    data,
+    image:data.image,
+    name:data.name,
+    folder:data.folder,
+    shared:true
+  }
   if (type === SaveType.SaveAs) {
     // 另存为一定走 新增 ,由于后端 未控制 userId 等属性,清空一下
     for (const k of delAttrs) {
@@ -570,30 +582,28 @@ export const save = async (
     //   delete data.folder;
     //   ret = await updateCollection(collection, data);
     // } else
-    if (data._id) {
-      ret = await updateCollection(collection, data);
+    if (data.id) {
+      ret = await updateCollection(collection, {id:data.id,...body});
     } else {
-      ret = await addCollection(collection, data); // 新增
+      ret = await addCollection(collection, body); // 新增
     }
   }
-
   if (ret.error) {
     return;
   }
   //  保存图纸之后的钩子函数
   globalThis.afterSaveMeta2d && (await globalThis.afterSaveMeta2d(ret));
   if (
-    !data._id ||
-    data.owner?.id !== user.id ||
+    !data.id ||
     router.currentRoute.value.query.version ||
     type === SaveType.SaveAs // 另存为肯定走新增,也会产生新的 id
   ) {
-    data._id = ret._id;
-    (meta2d.store.data as Meta2dBackData)._id = data._id;
+    data.id = ret.id;
+    (meta2d.store.data as Meta2dBackData).id = data.id;
     router.replace({
       path: '/',
       query: {
-        id: data._id,
+        id: data.id,
         r: Date.now() + '',
         c: data.component ? 1 : undefined,
       },
@@ -682,7 +692,7 @@ export function autoSave(force = false) {
   ) {
     let _vType = '';
     if (data.tags.includes('模板')) {
-      _vType = 'le5leV-template';
+      _vType = 'v-template';
     }
     save(SaveType.Save, _vType);
   } else {

+ 10 - 4
src/services/file.ts

@@ -2,16 +2,22 @@ import axios from 'axios';
 
 export async function upload(
   blob: Blob,
-  shared = false,
+  // shared = false,
   filename = 'thumb.png',
-  directory = '/大屏/图片/默认'
+  directory = '/大屏/图片/默认',
+  conflict?:string
 ) {
   const form = new FormData();
   form.append('filename', filename);
   form.append('directory', directory);
-  form.append('public', shared + '');
+  // form.append('shared', shared + '');
   form.append('file', blob);
-  const ret: any = await axios.post('/api/image/upload', form);
+  // let ret;
+  if(conflict) {
+    // ret = await axios.post('/api/image/upload',{conflict}, form);
+    form.append('conflict', conflict);
+  } 
+  const ret = await axios.post('/api/image/upload', form);
   if (!ret) {
     return;
   }

+ 18 - 16
src/views/components/Graphics.vue

@@ -511,7 +511,7 @@ const groupChange = async (name: string) => {
         // userLastName = name;
 
         //用户方案
-        subGroups.value = await getCollectionImageList('方案', 'le5leV');
+        subGroups.value = await getCollectionImageList('方案', 'v');
         groupType.value = 1;
         userLastName = name;
       }
@@ -626,7 +626,7 @@ const groupChange = async (name: string) => {
 
   // searchGraphics();
 };
-
+// TODO 获取方案文件
 //获取方案文件夹
 const getCollectionImageList = async (name?: string, collection?: string) => {
   //1. 获取网盘文件夹
@@ -649,13 +649,14 @@ const getCollectionImageList = async (name?: string, collection?: string) => {
   }
 
   const data = {
-    query: {
-      // folder: '',
-      tags: name !== '组件' ? name : undefined,
-    },
+    directory: "/大屏/方案/123",
+    // query: {
+    //   // folder: '',
+    //   tags: name !== '组件' ? name : undefined,
+    // },
     projection: {
       image: 1,
-      _id: 1,
+      id: 1,
       name: 1,
       tags: 1,
       folder: 1,
@@ -697,7 +698,7 @@ const getCollectionImageList = async (name?: string, collection?: string) => {
     results.push({
       name: folder,
       canEdited: true,
-      _id: item._id,
+      id: item.id,
       list: resultsMap[folder],
     });
   }
@@ -1150,7 +1151,7 @@ const open = async (item: any) => {
       delete ret[k];
     }
     autoSave();
-    meta2d.open(ret);
+    meta2d.open(ret.data);
     meta2d.fitView();
   }
   select();
@@ -1248,7 +1249,7 @@ const createFoder = async () => {
   if (activeAssets.value !== 'user') {
     return;
   }
-  if (editedFolder.value._id) {
+  if (editedFolder.value.id) {
     const ret: any = await axios.post('/api/directory/update', {
       oldFullpath: `/大屏/${activedGroup.value}/` + editedFolder.value.oldLabel,
       newFullpath: `/大屏/${activedGroup.value}/` + editedFolder.value.label,
@@ -1264,7 +1265,7 @@ const createFoder = async () => {
       editedFolder.value.list?.forEach(async (item) => {
         item.folder = editedFolder.value.label;
         await updateCollection(collection, {
-          _id: item._id,
+          id: item.id,
           folder: editedFolder.value.label,
         });
       });
@@ -1448,6 +1449,7 @@ const onContextMenu = async (e: MouseEvent, group: any, item: any) => {
 const delDialog = reactive<any>({
   contextmenuObj: {},
 });
+// TODO 右键菜单移动图纸
 const onMenu = async (val: string) => {
   const id = contextmenu.component._id || contextmenu.component.id;
   setTimeout(() => {
@@ -1544,11 +1546,11 @@ const onMenu = async (val: string) => {
       });
       if (activedGroup.value !== '图片') {
         let collection = contextmenu.component.component
-          ? 'le5leV-components'
-          : 'le5leV';
+          ? 'v-components'
+          : 'v';
         // 更新后端组件信息
         let ret = await updateCollection(collection, {
-          _id: id,
+          id,
           folder: val === '默认' ? '' : val,
         });
         if (!ret) {
@@ -1661,8 +1663,8 @@ const delComponent = async () => {
   // const id = contextmenu.component._id || contextmenu.component.id;
   if (['组件', '方案', '模板'].includes(activedGroup.value)) {
     let collection = delDialog.contextmenuObj.component.component
-      ? 'le5leV-components'
-      : 'le5leV';
+      ? 'v-components'
+      : 'v';
     const id =
       delDialog.contextmenuObj.component._id ||
       delDialog.contextmenuObj.component.id;

+ 4 - 3
src/views/components/View.vue

@@ -857,7 +857,7 @@ const watcher = watch(
     open();
   }
 );
-
+//TODO 打开图纸
 const open = async (flag: boolean = false) => {
   if (route.query.token) {
     //删除t域名登陆问题
@@ -888,13 +888,14 @@ const open = async (flag: boolean = false) => {
       ret = await getLe5leV(route.query.id + '');
     }
     if (ret) {
-      if (!(ret.pens && ret.pens.length)) {
+      if (!(ret.data.pens && ret.data.pens.length)) {
         //获取不到pen说明是parse svg
         MessagePlugin.warning('解析的svg图元不允许编辑!');
         newFile();
         return;
       }
-      meta2d.open(ret);
+      ret.data.id = ret.id;
+      meta2d.open(ret.data);
       if (!route.query.c) {
         shared.value = ret.shared;
 

+ 8 - 4
vite.config.ts

@@ -40,11 +40,15 @@ export default defineConfig({
   },
   server: {
     proxy: {
+      '/image': 'http://192.168.110.6:777',
+      '/file': 'http://192.168.110.6:777',
+      '/api': 'http://192.168.110.6:777',
+      '/v/material': 'http://192.168.110.6:777',
       //java 后端 http://192.168.110.6:8083
-      '/image': 'https://v.le5le.com/',
-      '/file': 'https://v.le5le.com/',
-      '/api': 'https://v.le5le.com/',
-      '/v/material': 'https://assets.le5lecdn.com/',
+      // '/image': 'https://v.le5le.com/',
+      // '/file': 'https://v.le5le.com/',
+      // '/api': 'https://v.le5le.com/',
+      // '/v/material': 'https://assets.le5lecdn.com/',
     },
   },
 });