-      
+      
         
           
         
@@ -112,8 +116,8 @@
     />
 
     
-    
-      
+    
+      
       
         
       
     
-    
+    
   
 
 
@@ -140,7 +150,7 @@ import {
   $recvElectronChanel,
   $changeComponentShow
 } from '@/utils/communication'
-const fs = require("fs");
+const fs = require('fs')
 const eventBus: any = inject('bus')
 var clickTreeNode: any = reactive({})
 
@@ -180,6 +190,7 @@ var sortableInstance: any = reactive(null)
 
 //--------------添加模型类型----------------
 var dialogVisible: any = ref(false)
+var dialogTitle: any = ref('添加模型类型')
 var modelType: any = ref('')
 
 const handleClose = () => {
@@ -194,16 +205,30 @@ const addType = () => {
   if (!modelType.value) {
     return ElMessage.warning('请输入模型类型名称')
   }
-  let params = {
-    name: modelType.value,
-    parentId: clickTreeNode && clickTreeNode.id ? clickTreeNode.id : undefined
-  }
-  ModelApi.addModelType(params).then((res) => {
-    if (res.code == 0 || res.code == 200) {
-      ElMessage.success('添加成功')
-      getModelList()
+  if (dialogTitle.value == '添加模型类型') {
+    let params = {
+      name: modelType.value,
+      parentId: clickTreeNode && clickTreeNode.id ? clickTreeNode.id : undefined
     }
-  })
+    ModelApi.addModelType(params).then((res) => {
+      if (res.code == 0 || res.code == 200) {
+        ElMessage.success('添加成功')
+        getModelList()
+      }
+    })
+  } else {
+    let params = {
+      name: modelType.value,
+      id: clickTreeNode.id
+    }
+    ModelApi.updateModelTypeName(params).then((res) => {
+      if (res.code == 0 || res.code == 200) {
+        ElMessage.success('修改成功')
+        getModelList()
+      }
+    })
+  }
+
   modelType.value = ''
   dialogVisible.value = false
 }
@@ -286,30 +311,30 @@ const createModelDB = async () => {
 }
 
 //导入模型库
-const importModelDB = ()=>{
+const importModelDB = () => {
   let option = {
-        properties: ["openFile"],
-        filters: [
-            {
-                name: '模型库', //、底图
-                extensions: ['model'],
-            },
-        ],
-    };
-    $sendElectronChanel("open-directory-dialog", option);
-    $recvElectronChanel("selectedItem", (e, path) => {
-        if (path.length) addModelDB(path[0]);
-    });
+    properties: ['openFile'],
+    filters: [
+      {
+        name: '模型库', //、底图
+        extensions: ['model']
+      }
+    ]
+  }
+  $sendElectronChanel('open-directory-dialog', option)
+  $recvElectronChanel('selectedItem', (e, path) => {
+    if (path.length) addModelDB(path[0])
+  })
 }
 
-const addModelDB = (path)=>{
-  let formData  = new FormData()
-  formData.append('modelPath',path)
-  ModelApi.importModelDB(formData).then(res=>{
+const addModelDB = (path) => {
+  let formData = new FormData()
+  formData.append('modelPath', path)
+  ModelApi.importModelDB(formData).then((res) => {
     if (res.code == 0 || res.code == 200) {
-          ElMessage.success('导入成功')
-          getModelList()
-        }
+      ElMessage.success('导入成功')
+      getModelList()
+    }
   })
 }
 
@@ -453,8 +478,8 @@ const handleMenuCommand = (command: string) => {
 }
 
 const handleTypeClick = (row: TypeNode) => {
-  console.log(row)
-  // currentTypeId.value = row.id
+  getModelListByType(row.id)
+  currentTypeId.value = row.$treeNodeId
   // // 模拟根据类型ID加载模型数据
   // loadModelsByType(row.id)
   // contextMenu.visible && (contextMenu.visible = false)
@@ -482,9 +507,13 @@ const loadModelsByType = (typeId: string) => {
 }
 
 const handleAddType = () => {
+  dialogTitle.value = '添加模型类型'
+  modelType.value = ''
   dialogVisible.value = true
 }
 const handleAddChildType = (row: TypeNode) => {
+  dialogTitle.value = '添加模型类型'
+  modelType.value = ''
   dialogVisible.value = true
 }
 
@@ -493,11 +522,12 @@ const handleImportModel = (row: TypeNode) => {
 }
 
 const handleRenameType = (row: TypeNode) => {
-  console.log('重命名类型', row)
+  dialogTitle.value = '模型类型重命名'
+  modelType.value = row.label
+  dialogVisible.value = true
 }
 
 const handleDeleteType = (row: TypeNode) => {
-
   ElMessageBox.confirm('是否删除数据?', '警告', {
     confirmButtonText: '确定',
     cancelButtonText: '取消',
@@ -521,7 +551,6 @@ const handleEdit = (row: ModelItem) => {
 }
 const updatePoster1 = (row, flag = false, path = '') => {
   let cb = (c) => {
-
     const formData = new FormData()
     formData.append('modelId', row.id)
     formData.append('file', c)
@@ -553,71 +582,69 @@ const updatePoster1 = (row, flag = false, path = '') => {
   }
 }
 
-const updatePoster = (row, flag = false, path = "")=> {
-      let that = this;
-      let cb = (c) => {
-
-        const formData = new FormData()
-        formData.append('modelId', row.id)
-        formData.append('file', c)
-        ModelApi.updatePoster(formData).then((res) => {
-          if (res.code == 0 || res.code == 200) {
-            getModelListByType(row.modelTypeId)
-            ElMessage.success('添加成功')
-          }
-        })
-      };
-      if (!flag) {
-          let option = {
-              properties: ["openFile"],
-              filters: [
-                  {
-                      name: "图片",
-                      extensions: ["png", "jpg", "jpeg"],
-                  },
-              ],
-          };
-          $sendElectronChanel("open-directory-dialog", option);
-          $recvElectronChanel("selectedItem", (e, paths) => {
-              if (paths.length) {
-                  // 取出路径中的文件名
-                  let name = getNamefromPath(paths[0]);
-                  // 读取文件
-                  fs.readFile(paths[0], (err, data) => {
-                      const blob = new Blob([data], {
-                          type: "image/png, image/jpeg, image/jpg",
-                      });
-                      var file = new File([blob], `${name}` + ".png");
-                      cb(file);
-                  });
-                  // cb(paths[0]);
-              }
-          });
-      } else {
-          cb(path);
+const updatePoster = (row, flag = false, path = '') => {
+  let that = this
+  let cb = (c) => {
+    const formData = new FormData()
+    formData.append('modelId', row.id)
+    formData.append('file', c)
+    ModelApi.updatePoster(formData).then((res) => {
+      if (res.code == 0 || res.code == 200) {
+        getModelListByType(row.modelTypeId)
+        ElMessage.success('添加成功')
       }
+    })
+  }
+  if (!flag) {
+    let option = {
+      properties: ['openFile'],
+      filters: [
+        {
+          name: '图片',
+          extensions: ['png', 'jpg', 'jpeg']
+        }
+      ]
+    }
+    $sendElectronChanel('open-directory-dialog', option)
+    $recvElectronChanel('selectedItem', (e, paths) => {
+      if (paths.length) {
+        // 取出路径中的文件名
+        let name = getNamefromPath(paths[0])
+        // 读取文件
+        fs.readFile(paths[0], (err, data) => {
+          const blob = new Blob([data], {
+            type: 'image/png, image/jpeg, image/jpg'
+          })
+          var file = new File([blob], `${name}` + '.png')
+          cb(file)
+        })
+        // cb(paths[0]);
+      }
+    })
+  } else {
+    cb(path)
+  }
+}
+
+const getNamefromPath = (path) => {
+  let index = 1
+  if (path.endsWith('.json')) {
+    index = 2
+  }
+  let arr = path.split('/')
+  let str = arr[arr.length - index]
+
+  let name = str
+  if (!path.endsWith('.json')) {
+    let arr1 = str.split('.')
+    arr1.pop()
+    name = arr1.join('.')
   }
 
-  const  getNamefromPath = (path) => {
-  let index = 1;
-  if (path.endsWith(".json")) {
-    index = 2;
-  }
-  let arr = path.split("/");
-  let str = arr[arr.length - index];
-
-  let name = str;
-  if (!path.endsWith(".json")) {
-    let arr1 = str.split(".");
-    arr1.pop();
-    name = arr1.join(".");
-  }
-
-  return name;
+  return name
 }
 
 const handleDelete = (row: ModelItem) => {
-
   ElMessageBox.confirm('是否删除数据?', '警告', {
     confirmButtonText: '确定',
     cancelButtonText: '取消',
@@ -772,7 +799,8 @@ onMounted(() => {
 }
 .el-tree {
   background: transparent !important;
-  --el-tree-node-hover-bg-color: rgba(var(--color-sdk-base-rgb), 0.2) !important;
+  /* --el-tree-node-hover-bg-color: rgba(var(--color-sdk-base-rgb), 0.2) !important; */
+  --el-tree-node-hover-bg-color: unset !important;
   color: rgba(255, 255, 255, 1) !important;
   /* font-size: 12px !important; */
 }
diff --git a/src/renderer/src/views/components/headers/components/setPup/setPup.vue b/src/renderer/src/views/components/headers/components/setPup/setPup.vue
index fd38b71..8c7e8f9 100644
--- a/src/renderer/src/views/components/headers/components/setPup/setPup.vue
+++ b/src/renderer/src/views/components/headers/components/setPup/setPup.vue
@@ -25,6 +25,9 @@
           
             
           
+          
+            
+          
           
             
           
@@ -41,6 +44,7 @@ import engineering from './components/engineering.vue'
 import equipment from './components/equipment.vue'
 import version from './components/version.vue'
 import modelManage from './components/modelManage.vue'
+import graphLabelManage from './components/graphLabelManage.vue'
 
 import { useI18n } from 'vue-i18n'
 const { t } = useI18n()
diff --git a/src/renderer/src/views/components/leftSide/leftSideFirst.vue b/src/renderer/src/views/components/leftSide/leftSideFirst.vue
index a0defa0..f81a1a6 100644
--- a/src/renderer/src/views/components/leftSide/leftSideFirst.vue
+++ b/src/renderer/src/views/components/leftSide/leftSideFirst.vue
@@ -204,6 +204,16 @@ const handleClick = (item: any, e) => {
         type: 'warning'
       })
     }
+  } else if (item.key === 'military') {
+    //军标库
+    if ((window as any).checkAuthIsValid) {
+      eventBus.emit('openGraph', true)
+    } else {
+      ElMessage({
+        message: '您没有该功能的权限',
+        type: 'warning'
+      })
+    }
   }
 }
 const fold = () => {
diff --git a/src/renderer/src/views/components/propertyBox/model copy.vue b/src/renderer/src/views/components/propertyBox/graph.vue
similarity index 55%
rename from src/renderer/src/views/components/propertyBox/model copy.vue
rename to src/renderer/src/views/components/propertyBox/graph.vue
index 67de218..f703464 100644
--- a/src/renderer/src/views/components/propertyBox/model copy.vue	
+++ b/src/renderer/src/views/components/propertyBox/graph.vue
@@ -4,7 +4,7 @@
       
         
       
@@ -13,55 +13,81 @@