From 5a39da04cdd86de85324edeb26074a6af32112a6 Mon Sep 17 00:00:00 2001
From: 杨磊 <505174330@qq.com>
Date: 星期四, 06 六月 2024 19:36:13 +0800
Subject: [PATCH] chinaProvider

---
 src/pages/inherit/list.vue |  154 ++++++++++++++++++++++++++++++++-------------------
 1 files changed, 96 insertions(+), 58 deletions(-)

diff --git a/src/pages/inherit/list.vue b/src/pages/inherit/list.vue
index 45f0b2d..59f24e5 100644
--- a/src/pages/inherit/list.vue
+++ b/src/pages/inherit/list.vue
@@ -1,5 +1,5 @@
 <template>
-  <view class="">
+  <view>
     <headNav
       idIndex="2"
       :searchBg="false"
@@ -34,7 +34,7 @@
           涓栧尰鏂囧寲
         </li>
       </ul>
-      <view class="" style="width: 1rem"></view>
+      <view style="width: 1rem"></view>
     </view>
     <view v-if="showType == 1" class="legendBox">
       <view class="socialMappingBox" @click="showSocialMapping">
@@ -56,38 +56,45 @@
     <!-- echarts鍥� -->
     <div v-if="showType == 1" class="barChart" id="barChart"></div>
     <view v-if="showType == 2" class="cultureBox">
-      <view class="cultureItem">
+      <view class="cultureItem" v-if="culture1">
         <view class="imgBox">
-          <img src="@/static/image/inherit/icon1.png" alt="" />
+          <img src="@/static/image/inherit/icon1.svg" alt="" />
         </view>
-        <p>
-          钑欏睍涓佷笐鍚岄噷鏃ュ博棰濆簭鍏堣�冩湀姹犵縼钁椼�婂洓褰吀鏄庛�嬪叓鍗凤紝鐨嗙簿鎸囧ゥ瀹わ紝鑼傜妧鏈兘鐤�狅紝鐝嶅洜鎾补鎯宠彍锛屽兊鎾版鍞愶紝浠ヤ究鏅虹潧锛屾湇鎸囧崡銆備笘涔嬮浄鐥呴洦瀹讹紝鍜镐互鏈嶇剦棣栧姟锛屼笉鐭ユ淳涔冨洓鑳戒箣鏈紝璋撲箣宸ц�呴洦銆備笂澹鑸嶅叾鍏紝闈炲洓涓嶅彲銆�
-        </p>
-        <h4>鈥斺�斻�婂鍏湇鑰冦�婸 3</h4>
+        <p>{{ culture1.content }}</p>
+        <h4 v-if="culture1.source">
+          鈥斺�斻�妠{ culture1.source }}銆婸 {{ culture1.pageNo }}
+        </h4>
       </view>
-      <view class="cultureItem">
+      <view class="cultureItem" v-if="culture2">
         <view class="imgBox">
-          <img src="@/static/image/inherit/icon2.png" alt="" />
+          <img src="@/static/image/inherit/icon2.svg" alt="" />
         </view>
-        <p>鐎曟箹涓栧剴锛屽吋浠ラ啱槌达紝涓�闁�鐖跺瓙鍏勫紵瀵屾湁钁楄堪锛屾鐗硅涓�鏂戣�炽��</p>
-        <h4>鈥斺�斻�婂鍏湇鑰冦�婸 3</h4>
+        <p>{{ culture2.content }}</p>
+        <h4 v-if="culture2.source">
+          鈥斺�斻�妠{ culture2.source }}銆婸 {{ culture2.pageNo }}
+        </h4>
       </view>
-      <view class="cultureItem">
+      <view class="cultureItem" v-if="culture3">
         <view class="imgBox">
-          <img src="@/static/image/inherit/icon3.png" alt="" />
+          <img src="@/static/image/inherit/icon3.svg" alt="" />
         </view>
-        <p>
-          鐥呭潑鍒荤�曟箹銆婃湰鑽夈�嬩箣鍥犱粛瑷涜锛岀埌閲嶇埐閸ユ澘銆傜稉濮嬫柤鐧告湭鍏湀锛岃縿涔欓厜浜旀湀锛岄柋浜屾锛岀硿宸ユ暩钀紝涔冨厠钁充簨銆傚叾鏍$悊瑷涜锛岀洠鐫e墳鍔傦紝鍛藉厭瀛愬腑鐝嶃�佸+鐟溿�佸+鐝╁垎浠讳箣锛涘晢姒锋柟鍔戯紝鍗�鍒ュ搧褰欙紝閱+鐜嬪悰閺″爞涔嬪姏鐖插锛涘弮浠ラ嵕鍚涘彈鐧斤紱鑰岀稉绱�鍏朵簨锛屽绲備笉鎳堣�咃紝鍓囪寖鍚涢潨瀛樹篃銆傛澶栧鐢板悰鎾扮暟銆佹浌鍚涙櫞宄�佺唺鍚涗徊灞便�佺縼鍚涢惖姊呫�侀花鍚涘辜闆层�佸嫉鍚涜搏涔嬨�佺▼鍚涢仈涓夈�侀櫝鍚涙尟閬犮�佽ū鍚涘姛鐢�佹湵鍚涜椈鑷c�佹垨鍙冩牎璁愶紝鎴栧徃缍滄牳锛屾垨鑱峰湒绻紝璎瑰倷鏇镐箣
-        </p>
-        <h4>鈥斺�斻�婂鍏湇鑰冦�婸 3</h4>
+        <p>{{ culture3.content }}</p>
+        <h4 v-if="culture3.source">
+          鈥斺�斻�妠{ culture3.source }}銆婸 {{ culture3.pageNo }}
+        </h4>
       </view>
+      <div
+        v-if="!culture1 && !culture2 && !culture3"
+        style="color: #666; text-align: center; font-size: 16px"
+      >
+        涓栧尰鏂囧寲鏃犳暟鎹�
+      </div>
     </view>
   </view>
 </template>
 <script>
 import * as echarts from "echarts";
 import {
-  inheritMedicalSataStatistics,
   inheritMedicalCultureList,
   inheritMedicalRelationList
 } from "@/api/index.js";
@@ -102,15 +109,21 @@
       dataList: [],
       links: [],
       socialMapping: true,
-      showType: "1"
+      showType: "1",
+      culture1: null,
+      culture2: null,
+      culture3: null
     };
   },
   onLoad(options) {
     this.idIndex = options.id;
     this.mainName = decodeURIComponent(options.name);
-    console.log("optionsoptionsoptions", options.id);
+    this.type = options.type;
   },
   mounted() {
+    if (this.type) {
+      this.changeType(this.type);
+    }
     this.getData();
   },
   methods: {
@@ -119,29 +132,54 @@
         identifier: this.idIndex,
         socialFlag: true
       }).then((res) => {
-        console.log(res);
         let data = res.object;
         // 澶勭悊鑺傜偣棰滆壊
         this.links = [];
         for (let i = 0; i < data.edgeList.length; i++) {
           const linkItem = data.edgeList[i];
           const index = data.nodeList.findIndex(
-              (item) => item.identifier == linkItem.endId
-            );
+            (item) =>
+              item.identifier ==
+              (linkItem.endId == this.idIndex
+                ? linkItem.startId
+                : linkItem.endId)
+          );
           if (linkItem.relationType == "浜插睘鍏崇郴") {
             data.nodeList[index].linkType = 1;
-            data.nodeList[index].color = "#DCE7EB";
-            data.nodeList[index].borderColor = "#5F81A4";
+            data.nodeList[index].color = "#F8E2D7";
+            data.nodeList[index].borderColor = "#F3AA78";
           }
           if (linkItem.relationType == "绀句細鍏崇郴") {
             data.nodeList[index].linkType = 2;
-            data.nodeList[index].color = "#E1E1E1";
-            data.nodeList[index].borderColor = "#888888";
+            data.nodeList[index].color = "#ecf4fe";
+            data.nodeList[index].borderColor = "#597aa5";
           }
           this.links.push({
-            source: this.mainName,
-            target: data.nodeList[index].name,
-            relationName: linkItem.relation
+            source: data.nodeList.find(
+              (item) => item.identifier == linkItem.startId
+            ).name,
+            target: data.nodeList.find(
+              (item) => item.identifier == linkItem.endId
+            ).name,
+            relationType: linkItem.relationType,
+            label: {
+              show: true,
+              formatter: function (params) {
+                // 浣跨敤鍑芥暟鍔ㄦ�佺敓鎴愭爣绛惧唴瀹�
+                // return relationships.find(rel => rel.source === nodes[params.data
+                // 		.source] && rel.target === nodes[params.data.target])
+                // 	.relation;
+                return linkItem.relation;
+              }, // 璁剧疆鍏崇郴鏍囩鍐呭涓�"Child-Parent"
+              color: "#2C2C2C",
+              fontSize: 16,
+              backgroundColor: "rgba(255, 255, 255, 1)",
+              padding: [3, 8],
+              borderRadius: 30,
+              position: "middle", // 璁剧疆鏍囩鏂囨湰鍦ㄧ嚎鐨勪腑闂翠綅缃笂灞呬腑鏄剧ず
+              // z: -1, // 璁剧疆鏍囩鐨剒杞撮珮搴︼紝浣垮叾姣旇繛鎺ョ嚎鏇撮珮
+              distance: -10 // 灏嗘爣绛炬斁缃湪杩炴帴绾夸笂
+            }
           });
         }
         this.dataList = [];
@@ -150,13 +188,22 @@
             ...item,
             itemStyle: {
               color: item.identifier == this.idIndex ? "#F8E2D7" : item.color,
-              borderColor: item.identifier == this.idIndex ? "#F3AA78" : item.borderColor,
+              borderColor:
+                item.identifier == this.idIndex ? "#F3AA78" : item.borderColor,
               borderWidth: "3"
             }
           };
         });
-        console.log(this.dataList,this.links);
-        this.initBarChart();
+        this.initBarChart(this.dataList, this.links);
+      });
+
+      // 涓栧尰鏂囧寲
+      inheritMedicalCultureList({
+        identifier: this.idIndex
+      }).then((res) => {
+        this.culture1 = res.list.find((item) => item.typeName == "瀹堕");
+        this.culture2 = res.list.find((item) => item.typeName == "鍖诲痉");
+        this.culture3 = res.list.find((item) => item.typeName == "瀹惰");
       });
     },
     showSocialMapping() {
@@ -167,9 +214,7 @@
         newDataList = [...this.dataList];
         newLinks = [...this.links];
       } else {
-        newDataList = this.dataList.filter(
-          (item) => item.itemStyle.borderColor == "#F3AA78"
-        );
+        newDataList = this.dataList.filter((item) => item.color !== "#ecf4fe");
         newLinks = [...this.links];
       }
       this.initBarChart(newDataList, newLinks);
@@ -183,7 +228,7 @@
         }, 50);
       }
     },
-    initBarChart() {
+    initBarChart(dataList, links) {
       // WMBg
       //閫氳繃 $ref 杩涜鎸傝浇
       var barChart = document.getElementById("barChart");
@@ -233,30 +278,20 @@
               color: "black", // 璁剧疆鑺傜偣鏂囧瓧棰滆壊涓洪粦鑹�
               fontSize: FontSize // 璁剧疆鏂囧瓧澶у皬
             },
-            edgeSymbol: ["circle"],
+            edgeSymbol: ["circle", "arrow"],
             edgeSymbolSize: [4, 10],
-
-            edgeLabel: {
-              show: true,
-              fontSize: FontSize, //鏇存敼涓よ�呭叧绯荤殑瀛椾綋
-              position: "middle",
-              //杩欓噷璁剧疆鍏崇郴鏂囧瓧鏄惁鍜岀嚎娈甸噸鍙�
-              //   padding: [0, 0], // 璋冩暣鍐呰竟璺濅互纭繚鏍囩涓庣嚎娈电揣瀵嗚创鍚�
-              // verticalAlign: 'middle', // 璁剧疆鏂囨湰鐨勫瀭鐩村榻愭柟寮忎负灞呬腑
-              formatter: function (params) {
-                // params.data 鏄竟鐨勬暟鎹璞★紝浣犲彲浠ュ湪杩欓噷瀹氫箟鍏崇郴鍚�
-                // 渚嬪锛屼綘鍙互鏍规嵁 source 鍜� target 鐨勫悕绉版潵瀹氫箟鍏崇郴鍚�
-                return params.data.relationName || "鐖跺瓙"; // 濡傛灉瀹氫箟浜� relationName 鍒欐樉绀哄畠锛屽惁鍒欐樉绀衡�滅埗瀛愨��
-              }
-            },
-            //鍚勪釜鑺傜偣
-            data: this.dataList, //鍏崇郴杩炴帴
-            links: this.links,
+            data: dataList,
+            links: links,
             lineStyle: {
-              color: "#000000",
               opacity: 0.9,
               width: 2,
-              curveness: 0
+              curveness: 0.3
+            },
+            emphasis: {
+              focus: "adjacency",
+              lineStyle: {
+                width: 10
+              }
             },
             force: {
               initLayout: null,
@@ -300,6 +335,9 @@
   height: 0.24rem;
   font-size: 0.12rem;
   padding: 0;
+  border: 1px solid #9e9e9e;
+  border-radius: 0;
+  color: #000;
 }
 .barChart {
   width: 100vw;

--
Gitblit v1.9.1