Browse Source

节点空处理

CzRger 3 months ago
parent
commit
b9edf0f694

File diff suppressed because it is too large
+ 7 - 0
src/assets/svg/hide.svg


File diff suppressed because it is too large
+ 7 - 0
src/assets/svg/show.svg


+ 6 - 2
src/views/web/archive/index-worker.vue

@@ -52,6 +52,9 @@
           <div class="archive-list-block">
             <div class="archive-list-block-title">
               <SvgIcon class="flag" name="flag_1" color="var(--cus-main-color)"/>关系图谱
+              <el-tooltip :content="state.chartData.showZero ? '点击切换隐藏空节点' : '点击切换显示空节点'" placement="top">
+                  <SvgIcon style="margin-left: 6px" class="__hover" :name="state.chartData.showZero ? 'show' : 'hide'" color="var(--cus-text-color-2)" size="14" @click="state.chartData.showZero = !state.chartData.showZero"/>
+              </el-tooltip>
               <div class="layout-select">
                 <CusFormColumn
                   :span="24"
@@ -62,7 +65,7 @@
               </div>
             </div>
             <div class="archive-list-block-page" v-loading="state.chartData.loading">
-              <RelationChart :data="state.chartData.data" :layout="state.chartData.layout" @chartPage="onChartPage"/>
+              <RelationChart :data="state.chartData.data" :layout="state.chartData.layout" :show-zero="state.chartData.showZero" @chartPage="onChartPage"/>
             </div>
           </div>
           <div class="archive-list-block" v-if="state.chartTable.chartId">
@@ -155,7 +158,8 @@ const state: any = reactive({
       nodes: [],
       edges: []
     },
-    layout: 'radial'
+    layout: 'radial',
+    showZero: false,
   },
   ws: {
     getMain: () => {},

+ 3 - 2
src/views/web/archive/index.vue

@@ -62,7 +62,7 @@
               </div>
             </div>
             <div class="archive-list-block-page" v-loading="state.chartData.loading">
-              <RelationChart :data="state.chartData.data" :layout="state.chartData.layout" @chartPage="onChartPage"/>
+              <RelationChart :data="state.chartData.data" :layout="state.chartData.layout" :show-zero="state.chartData.showZero" @chartPage="onChartPage"/>
             </div>
           </div>
           <div class="archive-list-block" v-if="state.chartTable.chartId">
@@ -154,7 +154,8 @@ const state: any = reactive({
       nodes: [],
       edges: []
     },
-    layout: 'radial'
+    layout: 'radial',
+    showZero: false
   },
   ws: {
     instance: null,

+ 13 - 3
src/views/web/archive/relation-chart.vue

@@ -12,7 +12,8 @@ const emit = defineEmits(['chartPage'])
 const {proxy} = getCurrentInstance()
 const props = defineProps({
   data: {},
-  layout: {default: 'radial'}
+  layout: {default: 'radial'},
+  showZero: {default: false}
 })
 const state: any = reactive({
   resizeObserver: <any>null,
@@ -20,6 +21,7 @@ const state: any = reactive({
 })
 const ref_main = ref()
 const setNodes = (data) => {
+  const arr: any = []
   data.nodes.forEach(v => {
     v.weight = Number(v.weight)
     v.style = {
@@ -27,7 +29,15 @@ const setNodes = (data) => {
       badges:[{text: String(v.num), placement: 'top-right', offsetX: -10, offsetY: 10}],
       iconSrc: v.iconSrc,
     }
+    if (props.showZero) {
+      arr.push(v)
+    } else {
+      if (v.num > 0) {
+        arr.push(v)
+      }
+    }
   })
+  return arr
 }
 const setEdges = (data) => {
   const arr: any = []
@@ -44,7 +54,7 @@ const setEdges = (data) => {
 const initChart = () => {
   if (props.data?.nodes?.length > 0) {
     const data = JSON.parse(JSON.stringify(props.data))
-    setNodes(data)
+    data.nodes = setNodes(data)
     data.edges = setEdges(data)
     if (state.chart) {
       state.chart.destroy()
@@ -186,7 +196,7 @@ const initChart = () => {
     state.resizeObserver.observe(ref_main.value);
   }
 }
-watch(() => [props.data, props.layout], () => {
+watch(() => [props.data, props.layout, props.showZero], () => {
   initChart()
 })
 onMounted(() => {

+ 6 - 6
vite.config.ts

@@ -60,17 +60,17 @@ export default defineConfig({
         }
       },
       '/ssw-api/api': {
-        // target: 'http://10.110.45.26:18069/',
-        target: 'http://8.130.72.63:18068/',
+        target: 'http://10.110.45.26:18069/',
+        // target: 'http://8.130.72.63:18068/',
         changeOrigin: true,
         rewrite: (path) => {
-          return path.replace(/^\/ssw-api\/api/, '')
-          // return path
+          // return path.replace(/^\/ssw-api\/api/, '')
+          return path
         }
       },
       '/ws-api': {
-        target: 'ws://8.130.72.63:18073/',
-        // target: 'ws://10.110.45.26:18069/ws-api',
+        // target: 'ws://8.130.72.63:18073/',
+        target: 'ws://10.110.45.26:18069/ws-api',
         ws: true,
         changeOrigin: true,
         rewrite: path => {

+ 5 - 0
yarn.lock

@@ -3264,6 +3264,11 @@ snapdragon@^0.8.1:
     source-map-resolve "^0.5.0"
     use "^3.1.0"
 
+sortablejs@^1.15.3:
+  version "1.15.3"
+  resolved "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.15.3.tgz#033668db5ebfb11167d1249ab88e748f27959e29"
+  integrity sha512-zdK3/kwwAK1cJgy1rwl1YtNTbRmc8qW/+vgXf75A7NHag5of4pyI6uK86ktmQETyWRH7IGaE73uZOOBcGxgqZg==
+
 "source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.2.0:
   version "1.2.0"
   resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af"