From fe85e4208e502c78e3494a460617ae8753f51341 Mon Sep 17 00:00:00 2001 From: YM <479443481@qq.com> Date: 星期五, 26 七月 2024 11:16:11 +0800 Subject: [PATCH] Merge branch 'master' of http://182.92.203.7:2001/r/TCM_CharacterLibrary --- src/pages/academicSchools/index.vue | 499 +++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 388 insertions(+), 111 deletions(-) diff --git a/src/pages/academicSchools/index.vue b/src/pages/academicSchools/index.vue index b77bb62..0bb5433 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=" @@ -62,10 +62,11 @@ <div class="selectActivelyBox" @click="selectActively"> <p v-if="formData.actively.length == 0">璇烽�夋嫨娲诲姩鍦�</p> <el-tag + style="margin-right: 5px" v-for="item in formData.actively" - :key="item.id" + :key="item.index" size="small" - closable + type="info" >{{ item.name }}</el-tag > </div> @@ -131,12 +132,84 @@ </el-col> </el-row> <div style="text-align: right"> - <el-button type="primary" size="mini" @click="searchFun" + <el-button + size="mini" + style="background-color: #244a7b; color: #fff" + @click="searchFun" >鎼滅储</el-button > <el-button size="mini" @click="resetForm">閲嶇疆</el-button> </div> </el-form> + <div class="fromTable"> + <el-table + :data="tableData" + class="lightBo" + style="width: 100%" + 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="name" width="150" label="濮撳悕"> + <template slot-scope="scope"> + <a + style="cursor: pointer; color: #027edc" + @click=" + () => { + currentId = scope.row.id; + getData(); + isAdvancedSearch = false; + } + " + >{{ scope.row.name }}</a + > + </template> + </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="medicalBranch" + label="鍖诲鍒嗙" + width="150" + ></el-table-column> + <el-table-column prop="workName" label="浣滃搧"></el-table-column> + <el-table-column + prop="personLabel" + width="150" + label="浜虹墿鏍囩" + ></el-table-column> + <el-table-column + prop="socialDistinction" + label="绀句細韬唤" + width="150" + ></el-table-column> + <el-table-column + prop="period" + width="150" + label="鏃舵湡" + ></el-table-column> + </el-table> + <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> <div v-if="showPerson" class="personDialog"> <i @@ -147,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 @@ -176,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%; @@ -185,6 +258,7 @@ text-align: center; font-size: 0.2rem; color: #666; + z-index: 99; " > 鏆傛棤鐩稿叧鏁版嵁 @@ -200,6 +274,7 @@ text-align: center; font-size: 0.2rem; color: #666; + z-index: 99; " ></div> </div> @@ -223,15 +298,13 @@ <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> - <el-drawer title="鍦板潃鍒楄〃" :visible.sync="drawer" @@ -272,14 +345,14 @@ <el-table ref="multipleTable" :data="gridData" - tooltip-effect="dark" style="width: 100%" height="530" @selection-change="handleSelectionChange" + row-key="index" > <el-table-column type="selection" width="55"> </el-table-column> <el-table-column prop="currentName" label="鍦板悕"> </el-table-column> - <el-table-column width="250" label="骞翠唬鍗�闁�" show-overflow-tooltip> + <el-table-column width="250" label="骞翠唬鍗�闁�"> <template slot-scope="scope">{{ scope.row.start + "-" + scope.row.end }}</template> @@ -295,6 +368,8 @@ </div> <div class="drawerPage"> <el-pagination + class="paging flex" + background @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" @@ -308,7 +383,7 @@ <div class="drawerBtn"> <el-button @click="setCurrent">鍏ㄩ伕鐣跺墠闋�</el-button> <el-button @click="setCurrent('cancle')">鍙栨秷鍏ㄩ伕</el-button> - <el-button @click="onOkAddress" type="primary">纰哄畾</el-button> + <el-button @click="drawer = false" type="primary">纰哄畾</el-button> </div> </div> </el-drawer> @@ -319,17 +394,19 @@ import { getPersonData, getHotSearch, - getPDataStatistics, academicSearch, getPersonTag, getSocialDistinction, getDynastyAll, + getAdvancedData, getPlaceInfo, } from "@/api/index.js"; import * as echarts from "echarts"; export default { data() { return { + // 楂樼礆鎼滅储琛ㄦ牸 + tableData: [], loading: true, hotAciveIndex: "", currentId: 21682, @@ -358,13 +435,13 @@ name: "娲诲姩鍦�" }, { - name: "瀛︽湳娴佹淳" + name: "瀛︽湳鍥捐氨" } ], // 褰撳墠浜虹墿淇℃伅 ownInfo: null, detailData: { - name: "", + name: "" }, isAdvancedSearch: false, formData: { @@ -374,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: [], @@ -391,15 +472,15 @@ currentPage: 1, pageSize: 10, total: 0, - multipleSelection: [], drawer: false, dynastyId: "", tableKey: "", + multipleTableSelection: [], // echarts infoOfPersons: [], infoOfSchools: [], nodeDatas: [], - links: [], + links: [] }; }, mounted() { @@ -421,7 +502,7 @@ this.gridData = []; this.getAddressList(); }, - // 鍒嗛〉 + // 鍒嗛〉 handleSizeChange(val) { this.pageSize = val; this.getAddressList(); @@ -430,9 +511,26 @@ this.page = val; this.getAddressList(); }, + + handleSizeChangeForm(val) { + this.formData.pageSize = val; + this.searchFun(); + }, + handleCurrentChangeForm(val) { + this.formData.page = val; + this.searchFun(); + }, // 琛ㄦ牸閫夋嫨 handleSelectionChange(val) { - this.multipleSelection = val; + const data = val.map((item) => { + return { + ...item, + name: item.currentName, + id: item.dynastyId + }; + }); + this.formData.actively = data; + this.multipleTableSelection = this.formData.actively; }, // 鍏ㄩ伕 setCurrent(str) { @@ -441,29 +539,26 @@ return false; } if (this.gridData.length) { + this.$refs.multipleTable.clearSelection(); this.gridData.forEach((row) => { this.$refs.multipleTable.toggleRowSelection(row); }); - this.multipleSelection = this.gridData; + const data = this.gridData.map((item) => { + return { + ...item, + name: item.currentName, + id: item.dynastyId + }; + }); + this.formData.actively = data; + this.multipleTableSelection = this.formData.actively; } - }, - // 纰鸿獚鍦板潃 - onOkAddress() { - const data = this.multipleSelection.map((item) => { - return { - ...item, - name: item.currentName, - id: item.dynastyId, - }; - }); - this.formData.actively = data; - this.drawer = false; }, // 鐛插彇鍦板潃鍒楄〃 getAddressList() { const data = { page: this.page, - pageSize: this.pageSize, + pageSize: this.pageSize }; if (this.dynastyId != "") { data["dynastyId"] = this.dynastyId; @@ -472,8 +567,16 @@ data["keyword"] = this.tableKey; } getPlaceInfo(data).then((res) => { + if (res?.success && res?.npage) { + this.total = res.npage.totalCount; + } if (res?.success && res?.list.length) { - this.gridData = res?.list; + this.gridData = res?.list?.map((item, i) => { + return { + ...item, + index: i + }; + }); } else { this.gridData = []; } @@ -497,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() { @@ -530,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; @@ -632,7 +848,7 @@ const data = item[str]?.map((e) => { return { ...e, - personId: item.personId, + personId: item.personId }; }); if (ele[str] && data?.length) { @@ -644,6 +860,7 @@ } return arr; }, + //鏁扮粍鍘婚噸 deduplicateArray(arr, idKey) { // 浣跨敤涓�涓緟鍔╁璞℃潵璺熻釜宸茬粡瑙佽繃鐨処D @@ -668,16 +885,19 @@ getData() { this.loading = true; getPersonData(this.currentId).then((res) => { - console.log("1111111111111", res); - this.infoOfPersons = res.object.infoOfPersons; - this.infoOfSchools = res.object.infoOfSchools; - this.nodeDatas = []; - this.links = []; - this.handleData([res.object.personChain], null); - console.log("this.nodeDatas", this.nodeDatas); - console.log("this.links", this.links); - this.loading = false; - this.relation(); + if (res && res.object) { + this.infoOfPersons = res?.object?.infoOfPersons; + this.infoOfSchools = res?.object?.infoOfSchools; + this.nodeDatas = []; + this.links = []; + this.handleData([res.object.personChain], null); + this.loading = false; + this.relation(); + } else { + this.loading = false; + this.nodeDatas = []; + this.links = []; + } // this.nodes = []; // this.relationships = []; // let kinData = []; @@ -762,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( @@ -817,8 +1037,8 @@ id: item.mainId, name: mainPerson.NAME[0].content1, itemStyle: { - color: "#244a7b", - }, + color: "#244a7b" + } }); } else { switch (parent.thisType) { @@ -851,8 +1071,8 @@ padding: [3, 8], borderRadius: 30, position: "middle", // 璁剧疆鏍囩鏂囨湰鍦ㄧ嚎鐨勪腑闂翠綅缃笂灞呬腑鏄剧ず - distance: -10, // 灏嗘爣绛炬斁缃湪杩炴帴绾夸笂 - }, + distance: -10 // 灏嗘爣绛炬斁缃湪杩炴帴绾夸笂 + } }); break; case 2: @@ -869,7 +1089,7 @@ } this.links.push({ source: item.mainId, - target: parent.mainId, + target: parent.mainId }); break; case 3: @@ -886,7 +1106,7 @@ } this.links.push({ source: item.mainId, - target: parent.mainId, + target: parent.mainId }); break; case 4: @@ -908,7 +1128,7 @@ } this.links.push({ source: item.mainId, - target: parent.mainId, + target: parent.mainId }); break; case 5: @@ -940,8 +1160,8 @@ padding: [3, 8], borderRadius: 30, position: "middle", // 璁剧疆鏍囩鏂囨湰鍦ㄧ嚎鐨勪腑闂翠綅缃笂灞呬腑鏄剧ず - distance: -10, // 灏嗘爣绛炬斁缃湪杩炴帴绾夸笂 - }, + distance: -10 // 灏嗘爣绛炬斁缃湪杩炴帴绾夸笂 + } }); break; case 6: @@ -973,8 +1193,8 @@ padding: [3, 8], borderRadius: 30, position: "middle", // 璁剧疆鏍囩鏂囨湰鍦ㄧ嚎鐨勪腑闂翠綅缃笂灞呬腑鏄剧ず - distance: -10, // 灏嗘爣绛炬斁缃湪杩炴帴绾夸笂 - }, + distance: -10 // 灏嗘爣绛炬斁缃湪杩炴帴绾夸笂 + } }); break; } @@ -992,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 }); } @@ -1025,7 +1245,7 @@ } return { ...item, - symbolSize: size > 80 ? 80 : size, + symbolSize: size > 80 ? 80 : size }; }); @@ -1059,8 +1279,8 @@ orient: "vertical", data: this.categories.map(function (a) { return a.name; - }), - }, + }) + } ], series: [ { @@ -1075,21 +1295,21 @@ 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, @@ -1126,9 +1346,7 @@ div.style.display = "block"; 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.infoOfPersons?.find((i) => i.id == id); const obj = { id: id, name: @@ -1162,32 +1380,24 @@ div.style.display = "block"; 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); + console.log(data); + debugger 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 ?? "" + name: data.name[0], + character: data.important_PEOPLE + ? data.important_PEOPLE.map((item) => item.content2).join("銆�") + : "", + skilledDoctor: data.important_PHYSICIAN + ? data.important_PHYSICIAN.map((item) => item.content2).join("銆�") + : "", + works: data.important_WORK + ? data.important_WORK.map((item) => item.content).join("銆�") + : "", + thought: data.school_THOUGHT + ? data.school_THOUGHT.map((item) => item.content).join("銆�") + : "" }; this.detailData = obj; } @@ -1197,9 +1407,9 @@ const div = document.getElementById("customDialog"); div.style.display = "none"; }, + // 鍩虹鎼滅储 onSearch(val, index) { - console.log(val); if (index !== undefined) { // 鐑棬鎼滅储鍏抽敭瀛楋紝鐩存帴鏌ヨ鏁版嵁 this.searchKey = ""; @@ -1213,12 +1423,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 { @@ -1239,19 +1450,21 @@ division: item.medicalBranchList && item.medicalBranchList.length ? item.medicalBranchList[0].content1 - : "-", + : "-" }; }); this.showPerson = true; }); }, + // 鍏崇郴鍥� 鐐瑰嚮閲岄潰鐨勫厓绱� spaceTimeArr(id) { // 鍏崇郴鍥剧殑鏁版嵁 uni.navigateTo({ - url: "/pages/character/detail?id=" + id, + url: "/pages/character/detail?id=" + id }); }, + // 鑾峰彇鏈濅唬echarts鐨勬暟鎹� echartsArr() { getDataStatistics().then((res) => { @@ -1265,6 +1478,7 @@ }); }); }, + // 鐑棬鎼滅储 hotSearch() { getHotSearch().then((res) => { @@ -1273,11 +1487,12 @@ this.hotKeyList = indexList.map((item) => { return { id: item, - name: res.object[item], + name: res.object[item] }; }); }); }, + isAvancedClick() { this.isAdvancedSearch = !this.isAdvancedSearch; // this.$nextTick(() => { @@ -1288,17 +1503,42 @@ // document.querySelector(".fbox1").style.height = box1Height + "px"; // } // }); - }, - }, + } + } }; </script> <style> +.fromTable { + width: 100%; + padding: 40px 0; + box-sizing: border-box; +} + +.fromTable >>> .el-table thead th.el-table__cell { + background-color: rgb(194 208 217) !important; + color: #333; + font-weight: normal; + 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; padding: 20px; box-sizing: border-box; +} + +.headerClassBg { + background-color: rgb(95, 127, 168); } .drawerTips { @@ -1310,9 +1550,16 @@ width: 100%; } +.drawerTable >>> .el-table thead th.el-table__cell { + background-color: rgb(231, 236, 239) !important; + color: #333; + font-weight: normal; +} + .tableTabs { width: 100%; display: flex; + margin-bottom: 20px; } .inputItem { @@ -1338,6 +1585,36 @@ box-sizing: border-box; } +/* 鍒嗛〉 */ +.paging ::v-deep .btn-prev, +.paging ::v-deep .btn-next { + border: 0; + height: 30px; +} + +.paging ::v-deep .btn-prev span, +.paging ::v-deep .btn-next span { + font-size: 0.12rem; + height: 0.3rem; + line-height: 0.3rem; + background-color: #fff; + color: #9e9e9e; + text-align: center; + border: 1px solid #9e9e9e; + padding: 0 0.1rem; +} + +.paging ::v-deep .el-pager li { + font-size: 0.1rem; + width: 0.28rem; + height: 0.3rem; + line-height: 0.3rem; + background-color: #fff; + color: #9e9e9e; + text-align: center; + border: 1px solid #9e9e9e; +} + #relation { width: 100%; height: 100%; -- Gitblit v1.9.1