From 040daecbc9bf04074c3f7053ea1710f380c03ea1 Mon Sep 17 00:00:00 2001 From: YM <479443481@qq.com> Date: 星期五, 26 七月 2024 11:40:48 +0800 Subject: [PATCH] 1 --- src/pages/academicSchools/index.vue | 401 +++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 278 insertions(+), 123 deletions(-) diff --git a/src/pages/academicSchools/index.vue b/src/pages/academicSchools/index.vue index 85406aa..fcfbb37 100644 --- a/src/pages/academicSchools/index.vue +++ b/src/pages/academicSchools/index.vue @@ -2,7 +2,7 @@ <view style="width: 100%; height: 100%; display: flex; flex-direction: column" > - <headNav :idIndex="'6'" text="瀛︽湳娴佹淳" /> + <headNav :idIndex="'6'" text="瀛︽湳鍥捐氨" /> <!-- 楂樼骇鎼滅储 --> <view style=" @@ -149,49 +149,65 @@ empty-text="鏆傛棤鎼滅储淇℃伅" size="small" :border="true" + :height="tableData.length > 0 ? '443' : 'auto'" > <el-table-column prop="id" label="搴忓彿" width="70" ></el-table-column> - <el-table-column prop="personName" width="120" label="濮撳悕"> + <el-table-column prop="name" width="150" label="濮撳悕"> <template slot-scope="scope"> <a style="cursor: pointer; color: #027edc" - @click="gotoDetail(scope.row.id)" - >{{ scope.row.personName }}</a + @click=" + () => { + currentId = scope.row.id; + getData(); + isAdvancedSearch = false; + } + " + >{{ scope.row.name }}</a > </template> </el-table-column> - <el-table-column prop="personAlias" label="鍒悕"></el-table-column> - <el-table-column prop="palce" label="娲诲姩鍦�"></el-table-column> + <el-table-column prop="alias" label="鍒悕"></el-table-column> + <el-table-column prop="place" label="娲诲姩鍦�"></el-table-column> <el-table-column - prop="birthYear" + prop="medicalBranch" label="鍖诲鍒嗙" - width="120" + width="150" ></el-table-column> - <el-table-column prop="deathYear" label="浣滃搧"></el-table-column> + <el-table-column prop="workName" label="浣滃搧"></el-table-column> <el-table-column - prop="nativePlace" - width="120" + prop="personLabel" + width="150" label="浜虹墿鏍囩" ></el-table-column> <el-table-column prop="socialDistinction" label="绀句細韬唤" - width="120" + width="150" ></el-table-column> <el-table-column - prop="official" - width="120" + prop="period" + width="150" label="鏃舵湡" ></el-table-column> </el-table> - <div style="text-align: right;padding-top: 20px;"> - <el-button style="width: 120px;background-color: #244a7b; color: #fff" - >纭</el-button + <div class="drawerPage"> + <el-pagination + class="paging flex" + background + @size-change="handleSizeChangeForm" + @current-change="handleCurrentChangeForm" + :current-page="formData.currentPage" + :page-sizes="[10, 20, 60, 100]" + :page-size="formData.pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="formData.total" > + </el-pagination> </div> </div> </view> @@ -204,7 +220,7 @@ } " ></i> - <el-table :data="personList" style="width: 100%"> + <el-table :data="personList" style="width: 100%" :max-height="600"> <el-table-column prop="name" label="濮撳悕"> <template slot-scope="scope"> <span @@ -233,7 +249,7 @@ style="margin-top: 0.1rem; flex: 1; width: 100%; position: relative" > <div - v-if="!loading && relationships.length == 0" + v-if="!loading && nodeDatas.length == 0" style=" position: absolute; top: 30%; @@ -274,7 +290,7 @@ <p>鍖诲鍒嗙锛� {{ detailData.medicalBranch }}</p> <p>灏忎紶锛歿{ detailData.biography }}</p> </div> - <div class="btn" @click="spaceTimeArr(detailData.id)">鏌ョ湅鏇村>>></div> + <div class="btn" @click="spaceTimeArr(detailData.id, 1)">鏌ョ湅鏇村>>></div> </div> <div id="schoolDialog" class="customDialog"> <div class="title"> @@ -282,13 +298,12 @@ <span @click="closeDom">鍏抽棴</span> </div> <div class="content"> - <p>濮撳悕锛歿{ detailData.name }}</p> - <p>鍒悕锛歿{ detailData.alias }}</p> - <p>绫嶈疮锛歿{ detailData.nativePlace }}</p> - <p>鍖诲鍒嗙锛� {{ detailData.medicalBranch }}</p> - <p>灏忎紶锛歿{ detailData.biography }}</p> + <p>浠h〃浜虹墿锛歿{ detailData.character }}</p> + <p>閲嶈鍖诲锛歿{ detailData.skilledDoctor }}</p> + <p>浠h〃鎬ц憲浣滐細{{ detailData.works }}</p> + <p>瀛︽淳鎬濇兂锛� {{ detailData.thought }}</p> </div> - <div class="btn" @click="spaceTimeArr(detailData.id)">鏌ョ湅鏇村>>></div> + <div class="btn" @click="spaceTimeArr(detailData.id, 2)">鏌ョ湅鏇村>>></div> </div> <el-drawer title="鍦板潃鍒楄〃" @@ -383,7 +398,8 @@ getPersonTag, getSocialDistinction, getDynastyAll, - getPlaceInfo, + getAdvancedData, + getPlaceInfo } from "@/api/index.js"; import * as echarts from "echarts"; export default { @@ -404,28 +420,28 @@ // 鍒嗙被 categories: [ { - name: "浜插睘鍏崇郴", + name: "浜插睘鍏崇郴" }, { - name: "甯堟壙鍏崇郴", + name: "甯堟壙鍏崇郴" }, { - name: "鏂囩尞浣滃搧", + name: "鏂囩尞浣滃搧" }, { - name: "绀句細鍏崇郴", + name: "绀句細鍏崇郴" }, { - name: "娲诲姩鍦�", + name: "娲诲姩鍦�" }, { - name: "瀛︽湳娴佹淳", - }, + name: "瀛︽湳娴佹淳" + } ], // 褰撳墠浜虹墿淇℃伅 ownInfo: null, detailData: { - name: "", + name: "" }, isAdvancedSearch: false, formData: { @@ -435,13 +451,17 @@ personTags: "", socialIdentity: "", period: "", + page: 1, + currentPage: 1, + pageSize: 10, + total: 0 }, showPerson: false, personList: [], personPageInfo: { totalCount: 0, page: 1, - limit: 10, + limit: 10 }, personTag: [], socialDistinction: [], @@ -460,7 +480,7 @@ infoOfPersons: [], infoOfSchools: [], nodeDatas: [], - links: [], + links: [] }; }, mounted() { @@ -482,7 +502,7 @@ this.gridData = []; this.getAddressList(); }, - // 鍒嗛〉 + // 鍒嗛〉 handleSizeChange(val) { this.pageSize = val; this.getAddressList(); @@ -491,13 +511,22 @@ this.page = val; this.getAddressList(); }, + + handleSizeChangeForm(val) { + this.formData.pageSize = val; + this.searchFun(); + }, + handleCurrentChangeForm(val) { + this.formData.page = val; + this.searchFun(); + }, // 琛ㄦ牸閫夋嫨 handleSelectionChange(val) { const data = val.map((item) => { return { ...item, name: item.currentName, - id: item.dynastyId, + id: item.dynastyId }; }); this.formData.actively = data; @@ -518,7 +547,7 @@ return { ...item, name: item.currentName, - id: item.dynastyId, + id: item.dynastyId }; }); this.formData.actively = data; @@ -529,7 +558,7 @@ getAddressList() { const data = { page: this.page, - pageSize: this.pageSize, + pageSize: this.pageSize }; if (this.dynastyId != "") { data["dynastyId"] = this.dynastyId; @@ -545,15 +574,9 @@ this.gridData = res?.list?.map((item, i) => { return { ...item, - index: i, + index: i }; }); - setTimeout(() => { - this.multipleTableSelection.forEach((row) => { - this.$refs.multipleTable.toggleRowSelection(row); - }); - this.formData.actively = this.multipleTableSelection; - }, 2000); } else { this.gridData = []; } @@ -577,14 +600,127 @@ name: "", actively: [], works: "", - personTags: "", - socialIdentity: "", - period: "", + personTags: [], + socialIdentity: [], + period: [], + page: 1, + currentPage: 1, + pageSize: 10, + total: 0 }; }, - searchFun() { - console.log(this.formData); + const palceData = this.formData.actively?.map((item) => { + return { + ancientName: item.ancientName ?? "", + dynastyId: item.dynastyId, + currentName: item.currentName + }; + }); + let Obj = { + keyword: this.formData.name, + placeList: [...palceData], + literatureName: this.formData.works, + personTagIdList: this.formData.personTags, + socialDistinctionIdList: this.formData.socialIdentity, + dynastyIdList: this.formData.period, + page: this.formData.page, + pageSize: this.formData.pageSize + }; + // // 鎼滅储 + getAdvancedData(Obj).then((res) => { + if (res?.success) { + this.tableData = res.list.map((item) => { + return { + id: item.personId, + name: + item?.NAME?.map((e, i) => { + let data = []; + Object.entries(e).forEach((c) => { + if (c[0]?.indexOf("content") > -1) { + data.push(c[1]); + } + }); + return data; + }).join() ?? "", + alias: + item?.ALIAS?.map((e, i) => { + let data = []; + Object.entries(e).forEach((c) => { + if (c[0]?.indexOf("content") > -1) { + data.push(c[1]); + } + }); + return data; + }).join() ?? "", + place: + item?.NATIVE_PLACE?.map((e, i) => { + let data = []; + Object.entries(e).forEach((c) => { + if (c[0]?.indexOf("content") > -1) { + data.push(c[1]); + } + }); + return data; + }).join() ?? "", + medicalBranch: + item?.MEDICAL_BRANCH?.map((e, i) => { + let data = []; + Object.entries(e).forEach((c) => { + if (c[0]?.indexOf("content") > -1) { + data.push(c[1]); + } + }); + return data; + }).join() ?? "", + socialDistinction: + item?.SOCIAL_IDENTITY?.map((e, i) => { + let data = []; + Object.entries(e).forEach((c) => { + if (c[0]?.indexOf("content") > -1) { + data.push(c[1]); + } + }); + return data; + }).join() ?? "", + period: + item?.PERIOD?.map((e, i) => { + let data = []; + Object.entries(e).forEach((c) => { + if (c[0]?.indexOf("content") > -1) { + data.push(c[1]); + } + }); + return data; + }).join() ?? "", + workName: + item?.REPRESENTATIVE_WORKS?.map((e, i) => { + let data = []; + Object.entries(e).forEach((c) => { + if (c[0]?.indexOf("content") > -1) { + data.push(c[1]); + } + }); + return data; + }).join() ?? "", + personLabel: + item?.PERSON_LABEL?.map((e, i) => { + let data = []; + Object.entries(e).forEach((c) => { + if (c[0]?.indexOf("content") > -1) { + data.push(c[1]); + } + }); + return data; + }).join() ?? "" + }; + }); + if (res?.npage) { + // 鎬绘暟閲� + this.formData.total = res.npage.totalCount; + } + } + }); }, selectActively() { @@ -610,7 +746,7 @@ parentName: parent?.NAME[0]?.content1 ?? parent.parentName, name: personInfo?.NAME[0]?.content1, category: type, - symbolSize: 15, + symbolSize: 15 }; if (order > 80) { order = 80; @@ -712,7 +848,7 @@ const data = item[str]?.map((e) => { return { ...e, - personId: item.personId, + personId: item.personId }; }); if (ele[str] && data?.length) { @@ -724,6 +860,7 @@ } return arr; }, + //鏁扮粍鍘婚噸 deduplicateArray(arr, idKey) { // 浣跨敤涓�涓緟鍔╁璞℃潵璺熻釜宸茬粡瑙佽繃鐨処D @@ -845,7 +982,7 @@ // place = [...newArr]; // } // if (obj.schoolList?.length) { - // this.categories.push({ name: "瀛︽湳娴佹淳" }); + // this.categories.push({ name: "瀛︽湳鍥捐氨" }); // let newArr = []; // const data = this.changeLiterature(obj.schoolList, "schoolList"); // this.getPersonInfo( @@ -900,8 +1037,8 @@ id: item.mainId, name: mainPerson.NAME[0].content1, itemStyle: { - color: "#244a7b", - }, + color: "#244a7b" + } }); } else { switch (parent.thisType) { @@ -918,7 +1055,7 @@ this.nodeDatas.push({ category: 0, id: item.mainId, - name: p.NAME[0].content1, + name: p.NAME[0].content1 }); } } @@ -934,8 +1071,8 @@ padding: [3, 8], borderRadius: 30, position: "middle", // 璁剧疆鏍囩鏂囨湰鍦ㄧ嚎鐨勪腑闂翠綅缃笂灞呬腑鏄剧ず - distance: -10, // 灏嗘爣绛炬斁缃湪杩炴帴绾夸笂 - }, + distance: -10 // 灏嗘爣绛炬斁缃湪杩炴帴绾夸笂 + } }); break; case 2: @@ -947,12 +1084,12 @@ this.nodeDatas.push({ category: 2, id: item.mainId, - name: item.literatureName, + name: item.literatureName }); } this.links.push({ source: item.mainId, - target: parent.mainId, + target: parent.mainId }); break; case 3: @@ -964,12 +1101,12 @@ this.nodeDatas.push({ category: 4, id: item.mainId, - name: item.ancientName, + name: item.ancientName }); } this.links.push({ source: item.mainId, - target: parent.mainId, + target: parent.mainId }); break; case 4: @@ -985,13 +1122,13 @@ this.nodeDatas.push({ category: 5, id: item.mainId, - name: s.name[0], + name: s.name[0] }); } } this.links.push({ source: item.mainId, - target: parent.mainId, + target: parent.mainId }); break; case 5: @@ -1007,7 +1144,7 @@ this.nodeDatas.push({ category: 3, id: item.mainId, - name: p.NAME[0].content1, + name: p.NAME[0].content1 }); } } @@ -1023,8 +1160,8 @@ padding: [3, 8], borderRadius: 30, position: "middle", // 璁剧疆鏍囩鏂囨湰鍦ㄧ嚎鐨勪腑闂翠綅缃笂灞呬腑鏄剧ず - distance: -10, // 灏嗘爣绛炬斁缃湪杩炴帴绾夸笂 - }, + distance: -10 // 灏嗘爣绛炬斁缃湪杩炴帴绾夸笂 + } }); break; case 6: @@ -1040,7 +1177,7 @@ this.nodeDatas.push({ category: 1, id: item.mainId, - name: p.NAME[0].content1, + name: p.NAME[0].content1 }); } } @@ -1056,8 +1193,8 @@ padding: [3, 8], borderRadius: 30, position: "middle", // 璁剧疆鏍囩鏂囨湰鍦ㄧ嚎鐨勪腑闂翠綅缃笂灞呬腑鏄剧ず - distance: -10, // 灏嗘爣绛炬斁缃湪杩炴帴绾夸笂 - }, + distance: -10 // 灏嗘爣绛炬斁缃湪杩炴帴绾夸笂 + } }); break; } @@ -1075,7 +1212,7 @@ if (item.placeList && item.placeList.length) { this.handleData(item.placeList, { ...item, thisType: 3 }); } - // 瀛︽湳娴佹淳 + // 瀛︽湳鍥捐氨 if (item.schoolList && item.schoolList.length) { this.handleData(item.schoolList, { ...item, thisType: 4 }); } @@ -1108,7 +1245,7 @@ } return { ...item, - symbolSize: size > 80 ? 80 : size, + symbolSize: size > 80 ? 80 : size }; }); @@ -1142,8 +1279,8 @@ orient: "vertical", data: this.categories.map(function (a) { return a.name; - }), - }, + }) + } ], series: [ { @@ -1158,27 +1295,27 @@ label: { show: true, position: "right", - formatter: "{b}", + formatter: "{b}" }, scaleLimit: { min: 0.4, - max: 2, + max: 2 }, lineStyle: { color: "source", - curveness: 0.2, + curveness: 0.2 }, emphasis: { focus: "adjacency", lineStyle: { - width: 5, - }, + width: 5 + } }, force: { repulsion: 600, - edgeLength: 300, - }, - }, + edgeLength: 300 + } + } ], color: [ "#5470c6", @@ -1186,8 +1323,8 @@ "#fac858", "#ee6666", "#ea7ccc", - "#9a60b4", - ], + "#9a60b4" + ] }; // 璁剧疆鐐瑰嚮浜嬩欢鐩戝惉 myChart.off("click"); @@ -1207,6 +1344,8 @@ const e = params.event; const div = document.getElementById("customDialog"); div.style.display = "block"; + const div2 = document.getElementById("schoolDialog"); + div2.style.display = "none"; div.style.left = e.offsetX + 50 + "px"; div.style.top = e.offsetY - 50 + "px"; const data = this.infoOfPersons?.find((i) => i.id == id); @@ -1232,7 +1371,7 @@ i += 1; return e["content" + i]; }).join("銆�") ?? "", - biography: data?.BIOGRAPHY ?? "", + biography: data?.BIOGRAPHY ?? "" }; this.detailData = obj; } @@ -1241,32 +1380,26 @@ const e = params.event; const div = document.getElementById("schoolDialog"); div.style.display = "block"; + const div2 = document.getElementById("customDialog"); + div2.style.display = "none"; div.style.left = e.offsetX + 50 + "px"; div.style.top = e.offsetY - 50 + "px"; - const data = this.infoOfPersons?.find((i) => i.id == id); + const data = this.infoOfSchools?.find((i) => i.schoolId == id); const obj = { - id: params.data.id, - name: - data?.NAME?.map((e, i) => { - i += 1; - return e["content" + i]; - }).join("銆�") ?? "", - alias: - data?.ALIAS?.map((e, i) => { - i += 1; - return e["content" + i]; - }).join("銆�") ?? "", - nativePlace: - data?.NATIVE_PLACE?.map((e, i) => { - i += 1; - return e["content" + i]; - }).join("銆�") ?? "", - medicalBranch: - data?.MEDICAL_BRANCH?.map((e, i) => { - i += 1; - return e["content" + i]; - }).join("銆�") ?? "", - biography: data?.BIOGRAPHY ?? "", + id: id, + name: data.name[0], + character: data.important_people + ? data.important_people.map((item) => item.personName).join("銆�") + : "", + skilledDoctor: data.important_physician + ? data.important_physician.map((item) => item.personName).join("銆�") + : "", + works: data.important_work + ? data.important_work.map((item) => item.literatureTitle).join("銆�") + : "", + thought: data.school_introduction + ? data.school_introduction.join("銆�") + : "" }; this.detailData = obj; } @@ -1275,10 +1408,12 @@ closeDom() { const div = document.getElementById("customDialog"); div.style.display = "none"; + const div2 = document.getElementById("schoolDialog"); + div2.style.display = "none"; }, + // 鍩虹鎼滅储 onSearch(val, index) { - console.log(val); if (index !== undefined) { // 鐑棬鎼滅储鍏抽敭瀛楋紝鐩存帴鏌ヨ鏁版嵁 this.searchKey = ""; @@ -1292,12 +1427,13 @@ this.searchPerson(val.text); } }, + // 鏍规嵁鍏抽敭瀛楁绱汉鐗� searchPerson(key) { academicSearch({ keyword: key, - page: this.personPageInfo.page, - pageSize: this.personPageInfo.limit, + page: 1, + pageSize: 999 }).then((res) => { this.personList = res.list.map((item) => { return { @@ -1318,19 +1454,28 @@ division: item.medicalBranchList && item.medicalBranchList.length ? item.medicalBranchList[0].content1 - : "-", + : "-" }; }); this.showPerson = true; }); }, + // 鍏崇郴鍥� 鐐瑰嚮閲岄潰鐨勫厓绱� - spaceTimeArr(id) { - // 鍏崇郴鍥剧殑鏁版嵁 - uni.navigateTo({ - url: "/pages/character/detail?id=" + id, - }); + spaceTimeArr(id, type) { + if (type == 1) { + // 浜虹墿 + uni.navigateTo({ + url: "/pages/character/detail?id=" + id + }); + } else { + // 瀛︽淳 + uni.navigateTo({ + url: "/pages/academicGenres/detail?id=" + id + }); + } }, + // 鑾峰彇鏈濅唬echarts鐨勬暟鎹� echartsArr() { getDataStatistics().then((res) => { @@ -1344,6 +1489,7 @@ }); }); }, + // 鐑棬鎼滅储 hotSearch() { getHotSearch().then((res) => { @@ -1352,11 +1498,12 @@ this.hotKeyList = indexList.map((item) => { return { id: item, - name: res.object[item], + name: res.object[item] }; }); }); }, + isAvancedClick() { this.isAdvancedSearch = !this.isAdvancedSearch; // this.$nextTick(() => { @@ -1367,8 +1514,8 @@ // document.querySelector(".fbox1").style.height = box1Height + "px"; // } // }); - }, - }, + } + } }; </script> @@ -1386,6 +1533,14 @@ font-size: 14px; } +.fromTable + .drawerPage + >>> .el-pagination.is-background + .el-pager + li:not(.disabled).active { + background-color: rgb(36, 74, 123) !important; +} + .customDrawer >>> .el-drawer__header { margin-bottom: 20px; border-bottom: 1px solid #eee; -- Gitblit v1.9.1