From 6f7c9ef272906bbd5d905ee069bc5d6d1bf55614 Mon Sep 17 00:00:00 2001
From: YM <479443481@qq.com>
Date: 星期四, 06 六月 2024 21:41:27 +0800
Subject: [PATCH] Merge branch 'master' of http://182.92.203.7:2001/r/TCM_CharacterLibrary

---
 src/pages/character/detail.vue |  302 +++++++++++++++++++++++++++-----------------------
 1 files changed, 162 insertions(+), 140 deletions(-)

diff --git a/src/pages/character/detail.vue b/src/pages/character/detail.vue
index d84ce9c..9922981 100644
--- a/src/pages/character/detail.vue
+++ b/src/pages/character/detail.vue
@@ -414,7 +414,7 @@
   getPersonBiog,
   getPersonWritings,
   getPersonRelationAtSchool,
-  getSpaceTime
+  getSpaceTime,
 } from "@/api/index.js";
 import { getImg, getFile } from "@/static/tool.js";
 import L from "leaflet";
@@ -422,7 +422,7 @@
 
 export default {
   components: {
-    Table1
+    Table1,
   },
   data() {
     return {
@@ -443,60 +443,60 @@
       tableColumns1: [
         {
           prop: "a",
-          label: "姝d功鍚�"
+          label: "姝d功鍚�",
         },
         {
           prop: "e",
-          label: "浣滆��"
+          label: "浣滆��",
         },
         {
           prop: "b",
-          label: "钁椾綔骞�"
+          label: "钁椾綔骞�",
         },
         {
           prop: "c",
-          label: "钁椾綔鏂瑰紡"
+          label: "钁椾綔鏂瑰紡",
         },
         {
           prop: "d",
-          label: "鎬荤洰鍒嗙被"
-        }
+          label: "鎬荤洰鍒嗙被",
+        },
       ],
       tableColumns2: [
         {
           prop: "a",
-          label: "鍏崇郴浜�"
+          label: "鍏崇郴浜�",
         },
         {
           prop: "b",
-          label: "鍏崇郴绫诲瀷"
+          label: "鍏崇郴绫诲瀷",
         },
         {
           prop: "c",
-          label: "鑰冩嵁"
+          label: "鑰冩嵁",
         },
         {
           prop: "d",
-          label: "鍑哄"
-        }
+          label: "鍑哄",
+        },
       ],
       tableColumns3: [
         {
           prop: "a",
-          label: "娲诲姩鏃堕棿鍖洪棿"
+          label: "娲诲姩鏃堕棿鍖洪棿",
         },
         {
           prop: "b",
-          label: "娲诲姩鍚嶇О"
+          label: "娲诲姩鍚嶇О",
         },
         {
           prop: "c",
-          label: "娲诲姩鍦扮偣"
+          label: "娲诲姩鍦扮偣",
         },
         {
           prop: "d",
-          label: "娲诲姩鎻忚堪"
-        }
+          label: "娲诲姩鎻忚堪",
+        },
       ],
       tableData1: [],
       tableData2: [],
@@ -506,7 +506,7 @@
       nodes: [],
       relationships: [],
       personResearchList: [],
-      markerList: []
+      markerList: [],
     };
   },
   onLoad(options) {
@@ -551,7 +551,7 @@
       document.body.removeChild(textarea);
       this.$message({
         message: "澶嶅埗鎴愬姛锛�",
-        type: "success"
+        type: "success",
       });
     },
     toLink(item) {
@@ -567,7 +567,7 @@
       // 鍩烘湰淇℃伅
       getPersonInfo({
         id: this.detailId,
-        type: "PERSON_BASIC"
+        type: "PERSON_BASIC",
       }).then((res) => {
         const obj = {};
         if (
@@ -590,13 +590,13 @@
       //鐜颁唬鐮旂┒
       getPersonInfo({
         id: this.detailId,
-        type: "PERSON_RESEARCH"
+        type: "PERSON_RESEARCH",
       }).then((res) => {
         this.personResearchList = res.object.personResearchList;
       });
 
       getWebBasic({
-        personId: this.detailId
+        personId: this.detailId,
       }).then((res) => {
         const obj = res.object;
         if (obj.school) {
@@ -611,7 +611,7 @@
       // 娲诲姩骞磋氨
       getPersonInfo({
         id: this.detailId,
-        type: "PERSON_SPACE_TIME"
+        type: "PERSON_SPACE_TIME",
       }).then((res) => {
         if (res.object.personSpaceTimeList) {
           this.tableData5 = res.object.personSpaceTimeList.map((item) => {
@@ -619,7 +619,7 @@
               a: item.time,
               b: item.activityName,
               c: item.activityAddrOld,
-              d: item.desc // 杩欓噷缂哄皯娲诲姩鎻忚堪瀛楁
+              d: item.desc, // 杩欓噷缂哄皯娲诲姩鎻忚堪瀛楁
             };
           });
         }
@@ -631,15 +631,15 @@
           list: [
             {
               name: "鍒悕",
-              value: obj.alias || "-"
+              value: obj.alias || "-",
             },
             {
               name: "瀛�",
-              value: obj.zi || "-"
+              value: obj.zi || "-",
             },
             {
               name: "鍙�",
-              value: obj.hao || "-"
+              value: obj.hao || "-",
             },
             {
               name: "鎵�澶勬椂鏈�",
@@ -652,19 +652,19 @@
             },
             {
               name: "姘戞棌",
-              value: obj.ethnic || "-"
-            }
-          ]
+              value: obj.ethnic || "-",
+            },
+          ],
         },
         {
           list: [
             {
               name: "绫嶈疮",
-              value: obj.native || "-"
+              value: obj.native || "-",
             },
             {
               name: "鎬у埆",
-              value: obj.gender || "-"
+              value: obj.gender || "-",
             },
             {
               name: "鑱屽畼",
@@ -683,33 +683,33 @@
                 sres.object.school_NAME &&
                 sres.object.school_NAME.length
                   ? sres.object.school_NAME[0].content
-                  : "-"
+                  : "-",
             },
             {
               name: "瀛︽湳鐗圭偣",
-              value: obj.features || "-"
-            }
-          ]
-        }
+              value: obj.features || "-",
+            },
+          ],
+        },
       ];
     },
     getSourceData() {
       getSource({
-        personId: this.detailId
+        personId: this.detailId,
       }).then((res) => {
         this.sourceDataList = res.list;
       });
     },
     getImages() {
       getPersonImages({
-        personId: this.detailId
+        personId: this.detailId,
       }).then((res) => {
         this.imageList = res.list.map((item) => getImg(item.filePath));
       });
     },
     getBiog() {
       getPersonBiog({
-        personId: this.detailId
+        personId: this.detailId,
       }).then((res) => {
         this.biogData = res.list.map((item) => {
           return {
@@ -718,14 +718,14 @@
               "銆�" +
               item.bookName +
               "銆� " +
-              (item.pageNo ? "P " + item.pageNo : "") // 杩欓噷鍙湁bookid鏃犳硶鍖归厤鍒颁功鍚�
+              (item.pageNo ? "P " + item.pageNo : ""), // 杩欓噷鍙湁bookid鏃犳硶鍖归厤鍒颁功鍚�
           };
         });
       });
     },
     getWritings() {
       getPersonWritings({
-        personId: this.detailId
+        personId: this.detailId,
       }).then((res) => {
         this.tableData1 = res.list.map((item) => {
           return {
@@ -733,7 +733,7 @@
             b: item.dynasty,
             c: item.writeWay,
             d: item.classify,
-            e: this.detailInfo.NAME
+            e: this.detailInfo.NAME,
           };
         });
       });
@@ -758,7 +758,7 @@
       // });
       getPersonInfo({
         id: this.detailId,
-        type: "PERSON_RELATIONS"
+        type: "PERSON_RELATIONS",
       }).then((res) => {
         this.tableData4;
         console.log(res, "PERSON_RELATIONS");
@@ -766,13 +766,13 @@
       // 绀句細鍏崇郴
       getPersonRelationAtSchool({
         personId: this.detailId,
-        relationSearchTypeEO: "SOCIAL"
+        relationSearchTypeEO: "SOCIAL",
       }).then((res) => {
         if (res.list && res.list.length) {
           this.tableData4 = res.list.map((f) => {
             return {
               a: f.name1,
-              b: f.relationName
+              b: f.relationName,
             };
           });
         }
@@ -780,13 +780,13 @@
       // 浜插睘鍏崇郴
       getPersonRelationAtSchool({
         personId: this.detailId,
-        relationSearchTypeEO: "KINSHIP"
+        relationSearchTypeEO: "KINSHIP",
       }).then((res) => {
         if (res.list && res.list.length) {
           this.tableData2 = res.list.map((f) => {
             return {
               a: f.name1,
-              b: f.relationName
+              b: f.relationName,
             };
           });
         }
@@ -794,13 +794,13 @@
       // 甯堟壙鍏崇郴
       getPersonRelationAtSchool({
         personId: this.detailId,
-        relationSearchTypeEO: "INHERITANCE"
+        relationSearchTypeEO: "INHERITANCE",
       }).then((res) => {
         if (res.list && res.list.length) {
           this.tableData3 = res.list.map((f) => {
             return {
               a: f.name1,
-              b: f.relationName
+              b: f.relationName,
             };
           });
         }
@@ -808,7 +808,7 @@
     },
     getMappingData(name) {
       getFuzzySearch({
-        keyword: name
+        keyword: name,
       }).then((res) => {
         this.nodes = [];
         this.relationships = [];
@@ -824,19 +824,19 @@
             if (item.name1 && exists1 !== true) {
               this.nodes.push({
                 name: item.name1,
-                id: item.identifier1
+                id: item.identifier1,
               });
             }
             if (item.name2 && exists2 !== true) {
               this.nodes.push({
                 name: item.name2,
-                id: item.identifier2
+                id: item.identifier2,
               });
             }
             let obj = {
               source: item.name1,
               target: item.name2,
-              relation: item.relationName || "" // 濡傛灉瀛樺湪 relationName 瀛楁鍒欎娇鐢紝鍚﹀垯涓虹┖瀛楃涓�
+              relation: item.relationName || "", // 濡傛灉瀛樺湪 relationName 瀛楁鍒欎娇鐢紝鍚﹀垯涓虹┖瀛楃涓�
             };
             this.relationships.push(obj);
           });
@@ -846,19 +846,26 @@
     },
     getMapInfo() {
       getSpaceTime({
-        personId: this.detailId
+        personId: this.detailId,
       }).then((res) => {
         if (res.list && res.list.length) {
-          const data = res.list.map((item) => {
-            return {
-              name: item.activityName,
-              value: [item.xcoord, item.ycoord]
-            };
-          });
+          const data = [];
+          for (let i = 0; i < res.list.length; i++) {
+            const item = res.list[i];
+            if (item.xcoord && item.ycoord) {
+              const obj = {
+                name: item.activityName,
+                value: [item.xcoord, item.ycoord],
+              };
+              data.push(obj);
+            }
+          }
           this.markerList = data;
           // 鏃剁┖鍦板浘
           // 杩欓噷鍙彇浜嗙涓�鏉★紝闇�瑕佸叏閮ㄦ暟鎹�
-          this.initMap(data[0]);
+          if (data && data.length) {
+            this.initMap(data);
+          }
         }
 
         // loadBMap("1NJdwrI1CfT6lrykVhDkmWgsO6O2bjQK").then(() => {
@@ -869,34 +876,49 @@
     initMap(markerList) {
       var map = L.map("spaceTime", {
         preferCanvas: true,
-        attributionControl: false
-      }).setView([markerList.value[1], markerList.value[0]], 13);
+        attributionControl: false,
+      }).setView([markerList[0].value[1], markerList[0].value[0]], 13);
       L.tileLayer
         .chinaProvider("TianDiTu.Normal.Map", {
           key: "76bc34ead7e30e663a4eded8aeaf5860",
           maxZoom: 18,
-          minZoom: 3
+          minZoom: 3,
+        })
+        .addTo(map);
+      L.tileLayer
+        .chinaProvider("TianDiTu.Normal.Annotion", {
+          key: "76bc34ead7e30e663a4eded8aeaf5860",
+          maxZoom: 18,
+          minZoom: 3,
         })
         .addTo(map);
       let icon = L.divIcon({
         html: "<div class='map-circle-name ripple'></div>",
         iconSize: [80, 80],
-        className: "map-circle"
+        className: "map-circle",
       });
       this.map = map;
       const temp_mark = L.marker([markerList.value[1], markerList.value[0]], {
-        icon: icon
+        icon: icon,
       }).addTo(map);
+      if (markerList.length) {
+        for (let i = 0; i < markerList.length; i++) {
+          const item = markerList[i];
+          const temp_mark = L.marker([item.value[1], item.value[0]], {
+            icon: icon,
+          }).addTo(map);
+        }
+      }
     },
     // 鏀惧ぇ鍦板浘璺宠浆
     fangdaClick(index) {
       if (index == 1) {
         uni.navigateTo({
-          url: "/pages/character/index?keyword=" + this.detailInfo.NAME
+          url: "/pages/character/index?keyword=" + this.detailInfo.NAME,
         });
       } else if (index == 2) {
         uni.navigateTo({
-          url: "/pages/characterMap/characterMap?id=" + this.detailId
+          url: "/pages/characterMap/characterMap?id=" + this.detailId,
         });
       }
     },
@@ -912,13 +934,13 @@
     scrollToTop() {
       window.scrollTo({
         top: 0,
-        behavior: "smooth" // 浣跨敤骞虫粦婊氬姩
+        behavior: "smooth", // 浣跨敤骞虫粦婊氬姩
       });
     },
     openFileClick(index) {
       let obj = {
         id: this.detailId,
-        type: "Person"
+        type: "Person",
       };
       switch (index) {
         case 1:
@@ -1021,8 +1043,8 @@
                 position: "middle", // 璁剧疆鏍囩鏂囨湰鍦ㄧ嚎鐨勪腑闂翠綅缃笂灞呬腑鏄剧ず
                 // bottom: -(FontSize+10),
                 z: 10, // 璁剧疆鏍囩鐨剒杞撮珮搴︼紝浣垮叾姣旇繛鎺ョ嚎鏇撮珮
-                distance: -(Distance + 1) // 灏嗘爣绛炬斁缃湪杩炴帴绾夸笂
-              }
+                distance: -(Distance + 1), // 灏嗘爣绛炬斁缃湪杩炴帴绾夸笂
+              },
             });
           }
         }
@@ -1037,8 +1059,8 @@
           itemStyle: {
             color: "#eae0eb", // 鍙互鏍规嵁绱㈠紩璁剧疆涓嶅悓鐨勯鑹�
             borderWidth: BorderWidth,
-            borderColor: "#996f9f"
-          }
+            borderColor: "#996f9f",
+          },
         };
       });
       var option;
@@ -1048,14 +1070,14 @@
           top: FontSize + 10,
           subtextStyle: {
             fontSize: FontSize, // 璁剧疆鍓爣棰樻枃瀛楀ぇ灏忎负 14px
-            color: "#2C2C2C"
-          }
+            color: "#2C2C2C",
+          },
         },
         backgroundColor: {
           type: "image",
           image: "/static/image/characterRelationBg.png",
           size: "100% 100%", // 鑳屾櫙鍥剧墖鐨勫昂瀵革紝鍙互鏄櫨鍒嗘瘮鎴栬�呭儚绱�
-          position: "center center" // 鑳屾櫙鍥剧墖鐨勪綅缃紝鍙互鏄� top, bottom, middle 鎴栬�呯櫨鍒嗘瘮
+          position: "center center", // 鑳屾櫙鍥剧墖鐨勪綅缃紝鍙互鏄� top, bottom, middle 鎴栬�呯櫨鍒嗘瘮
         },
         tooltip: {},
         animationDurationUpdate: 1500,
@@ -1069,7 +1091,7 @@
             label: {
               show: true,
               color: "black", // 璁剧疆鑺傜偣鏂囧瓧棰滆壊涓洪粦鑹�
-              fontSize: FontSize // 璁剧疆鏂囧瓧澶у皬
+              fontSize: FontSize, // 璁剧疆鏂囧瓧澶у皬
             },
             edgeSymbol: ["circle"],
             edgeSymbolSize: [4, 10],
@@ -1078,16 +1100,16 @@
             lineStyle: {
               opacity: 0.9,
               width: 2,
-              curveness: 0.3
+              curveness: 0.3,
             },
             emphasis: {
               focus: "adjacency",
               lineStyle: {
-                width: 10
-              }
-            }
-          }
-        ]
+                width: 10,
+              },
+            },
+          },
+        ],
       };
       // 灏嗙敓鎴愮殑杩炴帴绾挎坊鍔犲埌echarts鍥捐〃鐨刼ption涓�
       option.series[0].links = links;
@@ -1111,10 +1133,10 @@
           text: "",
           subtext: "",
           sublink: "",
-          left: "center"
+          left: "center",
         },
         tooltip: {
-          trigger: "item"
+          trigger: "item",
         },
         bmap: {
           center: data[0].value,
@@ -1126,123 +1148,123 @@
                 featureType: "water",
                 elementType: "all",
                 stylers: {
-                  color: "#86a1ac"
-                }
+                  color: "#86a1ac",
+                },
               },
               {
                 featureType: "land",
                 elementType: "all",
                 stylers: {
-                  color: "#f1d99d"
-                }
+                  color: "#f1d99d",
+                },
               },
               {
                 featureType: "railway",
                 elementType: "all",
                 stylers: {
-                  visibility: "off"
-                }
+                  visibility: "off",
+                },
               },
               {
                 featureType: "highway",
                 elementType: "all",
                 stylers: {
-                  color: "#f1d99d"
-                }
+                  color: "#f1d99d",
+                },
               },
               {
                 featureType: "highway",
                 elementType: "labels",
                 stylers: {
-                  visibility: "off"
-                }
+                  visibility: "off",
+                },
               },
               {
                 featureType: "arterial",
                 elementType: "geometry",
                 stylers: {
-                  color: "#f1d99d"
-                }
+                  color: "#f1d99d",
+                },
               },
               {
                 featureType: "arterial",
                 elementType: "geometry.fill",
                 stylers: {
-                  color: "#f1d99d"
-                }
+                  color: "#f1d99d",
+                },
               },
               {
                 featureType: "poi",
                 elementType: "all",
                 stylers: {
-                  visibility: "off"
-                }
+                  visibility: "off",
+                },
               },
               {
                 featureType: "green",
                 elementType: "all",
                 stylers: {
-                  visibility: "off"
-                }
+                  visibility: "off",
+                },
               },
               {
                 featureType: "subway",
                 elementType: "all",
                 stylers: {
-                  visibility: "off"
-                }
+                  visibility: "off",
+                },
               },
               {
                 featureType: "manmade",
                 elementType: "all",
                 stylers: {
-                  color: "#f1d99d"
-                }
+                  color: "#f1d99d",
+                },
               },
               {
                 featureType: "local",
                 elementType: "all",
                 stylers: {
-                  color: "#f1d99d"
-                }
+                  color: "#f1d99d",
+                },
               },
               {
                 featureType: "local",
                 elementType: "labels",
                 stylers: {
-                  visibility: "off"
-                }
+                  visibility: "off",
+                },
               },
               {
                 featureType: "arterial",
                 elementType: "labels",
                 stylers: {
-                  visibility: "off"
-                }
+                  visibility: "off",
+                },
               },
               {
                 featureType: "boundary",
                 elementType: "all",
                 stylers: {
-                  color: "#f1d99d"
-                }
+                  color: "#f1d99d",
+                },
               },
               {
                 featureType: "building",
                 elementType: "all",
                 stylers: {
-                  color: "#f1d99d"
-                }
+                  color: "#f1d99d",
+                },
               },
               {
                 featureType: "label",
                 elementType: "labels.text.fill",
                 stylers: {
-                  color: "#000"
-                }
-              }
-            ]
-          }
+                  color: "#000",
+                },
+              },
+            ],
+          },
         },
         series: [
           {
@@ -1252,18 +1274,18 @@
             data: data,
             symbolSize: 0,
             encode: {
-              value: 2
+              value: 2,
             },
             label: {
               formatter: "{b}",
               position: "right",
-              show: false
+              show: false,
             },
             emphasis: {
               label: {
-                show: true
-              }
-            }
+                show: true,
+              },
+            },
           },
           {
             name: "",
@@ -1272,32 +1294,32 @@
             data: data,
             symbolSize: 20,
             encode: {
-              value: 2
+              value: 2,
             },
             showEffectOn: "render",
             rippleEffect: {
-              brushType: "stroke"
+              brushType: "stroke",
             },
             label: {
               formatter: "{b}",
               position: "right",
-              show: false
+              show: false,
             },
             itemStyle: {
               color: "#ec7b43",
               shadowBlur: 10,
-              shadowColor: "#333"
+              shadowColor: "#333",
             },
             emphasis: {
-              scale: false
+              scale: false,
             },
-            zlevel: 1
-          }
-        ]
+            zlevel: 1,
+          },
+        ],
       };
       option && myChart.setOption(option);
-    }
-  }
+    },
+  },
 };
 </script>
 

--
Gitblit v1.9.1