bill hace 7 meses
padre
commit
d4f92775eb

+ 2 - 1
src/components/materials/index.vue

@@ -216,7 +216,8 @@ const delHandler = async (id: Material["id"]) => {
   if (await Dialog.confirm("确定要删除此数据吗?")) {
     await delMaterial(id);
     const ndx = selectKeys.value.indexOf(id);
-    if (ndx) {
+    console.log(selectKeys.value, id);
+    if (~ndx) {
       selectKeys.value.splice(ndx, 1);
     }
     refresh();

+ 1 - 0
src/sdk/association/fuseMode.ts

@@ -116,6 +116,7 @@ const setModels = (sdk: SDK, models: FuseModels, oldModels: FuseModels) => {
         }
 
         if (deepIsRevise(update, transform)) {
+          
           unSet(() => Object.assign(item, transform));
         }
       }, 16);

+ 1 - 0
src/sdk/sdk.ts

@@ -249,6 +249,7 @@ export type Path = {
   changeDirection: ( show: boolean,  reverse: boolean ) => void
   changeFontSize: (fontSize: number) => void
   focus: (f: boolean) => void
+  highlight: (f: boolean) => void;
   changeVisibilityRange: (range: number) => void
   changePointName: (index: number, name: string) => void
   // 飞向路径

+ 6 - 4
src/store/fuse-model.ts

@@ -31,6 +31,7 @@ import { initialTaggings } from "./tagging";
 import { initialMeasures } from "./measure";
 
 import type { FuseModel as SModel, FuseModelAttrs } from "@/api";
+import { isUnSet } from "@/utils/unset";
 
 export type FuseModel = SModel & {
   loaded: boolean;
@@ -148,7 +149,6 @@ export const recoverFuseModels = () => {
     const model = fuseModels.value.find((item) => item.id === oldItem.id);
     return model ? Object.assign(model, oldItem) : serviceToLocal(oldItem);
   });
-  console.log(backupItems);
 };
 
 export const updateFuseModel = updateStoreItem(
@@ -187,8 +187,9 @@ export const saveFuseModels = saveStoreItems(fuseModels, getBackupFuseModels, {
 });
 
 export const autoSaveFuseModels = autoSetModeCallback(fuseModels, {
-  isUpdate: (fuseModels) =>
-    deepIsRevise(
+  isUpdate: (fuseModels) => {
+    if (isUnSet) return false
+    return deepIsRevise(
       fuseModels.map((item) => ({
         ...item,
         loaded: true,
@@ -201,7 +202,8 @@ export const autoSaveFuseModels = autoSetModeCallback(fuseModels, {
         error: true,
         progress: 0,
       }))
-    ),
+    )
+  },
   backup: backupFuseModels,
   recovery: recoverFuseModels,
   save: async () => {

+ 1 - 1
src/store/path.ts

@@ -68,7 +68,7 @@ export const backupPaths = () => {
 
 export const initialPaths = fetchStoreItems(paths, async () => {
   const paths = await fetchPaths()
-  return paths.filter(getPathIsShow)
+  return paths
 }, backupPaths)
 export const recoverPaths = async () => {
   const backupItems = bcPaths;

+ 1 - 1
src/views/guide/path/edit-path.vue

@@ -305,6 +305,6 @@ const switchPlay = () => {
 
 <style>
 .nameInput.ui-input .text.suffix input {
-  padding-right: 60px;
+  padding-right: 70px;
 }
 </style>

+ 5 - 1
src/views/guide/path/edit.vue

@@ -7,7 +7,7 @@
       </ui-button>
     </template>
   </ui-group>
-  <ui-group>
+  <ui-group class="path-group">
     <PathSign
       v-for="path in paths"
       :key="path.id"
@@ -94,4 +94,8 @@ useViewStack(autoSavePaths);
 .guide-list {
   padding-bottom: 30px;
 }
+
+.path-group {
+  padding-bottom: 50px;
+}
 </style>

+ 29 - 3
src/views/guide/path/sign.vue

@@ -1,6 +1,11 @@
 <template>
-  <!-- ${focus ? 'active' : ''} -->
-  <ui-group-option :class="`sign-guide `" @click.stop="clickHandler">
+  <!-- -->
+  <ui-group-option
+    :class="`sign-guide ${hover ? 'active' : ''} `"
+    @click.stop="clickHandler"
+    @mouseenter="enterHandler"
+    @mouseleave="leaveHandler"
+  >
     <div class="info">
       <div class="guide-cover">
         <span class="img">
@@ -54,6 +59,7 @@ const actions = {
 };
 
 const focus = computed(() => custom.showPath === props.path.id);
+const hover = ref(false);
 const node = computed(() => getPathNode(props.path.id));
 watchEffect((onCleanup) => {
   if (!node.value) return;
@@ -61,10 +67,29 @@ watchEffect((onCleanup) => {
   const focusHandler = (f: boolean) => {
     node.value?.fly();
   };
-  $node.bus.on("focus", focusHandler);
+  const leaveHandler = () => {
+    hover.value = false;
+  };
+  const enterHandler = () => {
+    hover.value = true;
+  };
+
+  $node.bus.on("enter", enterHandler);
+  $node.bus.on("leave", leaveHandler);
   onCleanup(() => $node.bus.off("focus", focusHandler));
 });
 
+const leaveHandler = () => {
+  hover.value = false;
+  node.value?.highlight && node.value?.highlight(false);
+};
+
+const enterHandler = () => {
+  hover.value = true;
+  console.log("enter");
+  node.value?.highlight && node.value?.highlight(true);
+};
+
 const clickHandler = () => {
   node.value?.fly();
 };
@@ -137,6 +162,7 @@ const clickHandler = () => {
 
       p {
         color: #fff;
+        word-break: break-all;
         font-size: 14px;
         margin-bottom: 6px;
       }

+ 2 - 1
src/views/tagging-position/index.vue

@@ -80,7 +80,8 @@ useViewStack(() => {
 
 watch(showId, (id) => {
   const position = positions.value?.find((item) => item.id === id);
-  if (!custom.showMode) {
+  console.log(custom.showMode);
+  if (custom.showMode === "fuse") {
     position && flyTaggingPosition(position);
   }
 });