From a971d0c13ab9cd5107152f6eba5e1e724a37fa0b Mon Sep 17 00:00:00 2001 From: 杨磊 <505174330@qq.com> Date: 星期五, 07 六月 2024 17:20:31 +0800 Subject: [PATCH] Merge branch 'master' of http://182.92.203.7:2001/r/TCM_CharacterLibrary --- src/pages/character/detail.vue | 10 + src/pages/character/index.vue | 1 src/pages/territory/territory.vue | 8 + src/uni_modules/cc-defineTable/components/cc-defineTable/cc-defineTable.vue | 3 src/pages/inherit/list.vue | 143 +++++++++---------- src/pages/index/index.vue | 8 src/pages/knowledgeBase/knowledgeBase.vue | 81 +++++++++- src/uni_modules/luanqing-search/components/luanqing-search/luanqing-search.vue | 41 ++++- src/uni_modules/next-search-more/components/next-search-more/next-search-more.vue | 26 +++ src/api/index.js | 14 ++ src/components/headNav/headNav.vue | 27 +++ src/pages/inherit/index.vue | 33 ++++ src/pages/TcmSystem/TcmSystem.vue | 25 ++ 13 files changed, 308 insertions(+), 112 deletions(-) diff --git a/src/api/index.js b/src/api/index.js index de739a5..528c29e 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -358,3 +358,17 @@ }); }; +export const getInstitutionList = () => { + return req1({ + url: "/medical/institutionList", + method: "post" + }); +}; + + + + + + + + diff --git a/src/components/headNav/headNav.vue b/src/components/headNav/headNav.vue index 4d99911..503337d 100644 --- a/src/components/headNav/headNav.vue +++ b/src/components/headNav/headNav.vue @@ -33,6 +33,7 @@ width: 2.33rem; margin-right: 0.3rem; justify-content: flex-end; + position: relative; " > <input @@ -43,6 +44,8 @@ flex: 1; background-color: #fff; font-size: 0.13rem; + padding-right: 30px; + box-sizing: border-box; " @blur="InputBlur" @confirm="toggleSearch" @@ -50,6 +53,30 @@ v-model="searchInput" placeholder="璇疯緭鍏ユ悳绱㈠唴瀹�" /> + <span + class="cleanupBtn" + v-if="searchInput" + @click="searchInput = ''" + style=" + position: absolute; + top: 50%; + margin-top: -10px; + right: 42px; + color: #fff; + z-index: 2; + display: inline-block; + width: 20px; + height: 20px; + text-align: center; + line-height: 20px; + background-color: #a5a5a5; + font-weight: bold; + border-radius: 50%; + font-size: 12px; + cursor: pointer; + " + >鉁�</span + > <view title="鎼滅储" class="search-logo" diff --git a/src/pages/TcmSystem/TcmSystem.vue b/src/pages/TcmSystem/TcmSystem.vue index f8582d5..3175d81 100644 --- a/src/pages/TcmSystem/TcmSystem.vue +++ b/src/pages/TcmSystem/TcmSystem.vue @@ -15,9 +15,10 @@ 鐑棬鎼滅储锛� <ul class="flex" style="margin-right: 10rpx"> <li - v-for="item in hot" + v-for="(item, index) in hot" :key="item.id" - @tap="HotClick(item.name)" + @tap="HotClick(item.name, index)" + :class="{ cursor: true, active: hotAciveIndex === index }" style="margin: 0 0.05rem; color: #244a7b; cursor: pointer" > {{ item.name }} @@ -429,6 +430,7 @@ }, data() { return { + hotAciveIndex: "", // 鏈烘瀯缁熻 institution: { title: "鏈烘瀯缁熻", @@ -546,7 +548,13 @@ }); }, // 鍙充晶鐨刲ist鏁版嵁 - getMList(key) { + getMList(key, index) { + if (index !== undefined) { + this.SearchValue = ""; + this.hotAciveIndex = index; + } else { + this.hotAciveIndex = ""; + } this.pageLoading = true; let Obj = { medicalSearchType: this.searchType, @@ -687,9 +695,9 @@ this.getMList(); }, // 鐑棬鎼滅储 - HotClick(val) { + HotClick(val, index) { // this.SearchValue = val; - this.getMList(val); + this.getMList(val, index); }, // 鎸夌収浠�涔堟帓搴� selectChange(e) { @@ -787,7 +795,7 @@ top: -0.25rem; color: #2c2c2c; font-weight: bold; - span{ + span { font-weight: initial; } } @@ -1245,4 +1253,9 @@ .nullBox { width: 100%; } + +.cursor.active { + color: #027edc !important; + font-weight: bold; +} </style> diff --git a/src/pages/character/detail.vue b/src/pages/character/detail.vue index 2f1247f..d3a5697 100644 --- a/src/pages/character/detail.vue +++ b/src/pages/character/detail.vue @@ -645,6 +645,11 @@ { name: "鎵�澶勬椂鏈�", value: obj.dynastyDesc || "-", + valueClick: () => { + uni.navigateTo({ + url: "/pages/knowledgeBase/knowledgeBase?dynasty=" + obj.dynastyId + }); + } }, { name: "姘戞棌", @@ -665,6 +670,11 @@ { name: "鑱屽畼", value: obj.official || "-", + valueClick: () => { + uni.navigateTo({ + url: "/pages/knowledgeBase/knowledgeBase?isAdvancedSearch=1&official=" + obj.official + }); + } }, { name: "娴佹淳", diff --git a/src/pages/character/index.vue b/src/pages/character/index.vue index 0055b31..4e5eb1a 100644 --- a/src/pages/character/index.vue +++ b/src/pages/character/index.vue @@ -21,7 +21,6 @@ <li @click="onSearch({ text: item }, index)" :class="{ cursor: true, active: hotAciveIndex === index }" - hotAciveIndex v-for="(item, index) in hotKeyList" :key="item" > diff --git a/src/pages/index/index.vue b/src/pages/index/index.vue index 85e7dd3..e8d6e6d 100644 --- a/src/pages/index/index.vue +++ b/src/pages/index/index.vue @@ -742,9 +742,7 @@ } } -/* .Bbottom { - display: flex; - justify-content: center; - - } */ +::v-deep .cleanupBtn{ + right: 52px !important; +} </style> diff --git a/src/pages/inherit/index.vue b/src/pages/inherit/index.vue index 64c5077..370cf29 100644 --- a/src/pages/inherit/index.vue +++ b/src/pages/inherit/index.vue @@ -10,7 +10,37 @@ <div class="filterBox font-family"> <div class="searchBox"> - <input type="text" v-model="keyword" placeholder="璇疯緭鍏ュ叧閿瓧" /> + <input + type="text" + v-model="keyword" + @confirm="search" + placeholder="璇疯緭鍏ュ叧閿瓧" + style="padding-right: 54px; box-sizing: border-box" + /> + <span + class="cleanupBtn" + v-if="keyword" + @click="keyword = ''" + style=" + position: absolute; + top: 50%; + margin-top: -10px; + right: 84px; + color: #fff; + z-index: 2; + display: inline-block; + width: 20px; + height: 20px; + text-align: center; + line-height: 20px; + background-color: #a5a5a5; + font-weight: bold; + border-radius: 50%; + font-size: 12px; + cursor: pointer; + " + >鉁�</span + > <button @click="search">鎼滅储</button> </div> <div class="dynasty"> @@ -411,6 +441,7 @@ align-items: center; margin: 0 auto; margin-top: 0.2rem; + position: relative; } .searchBox > input { diff --git a/src/pages/inherit/list.vue b/src/pages/inherit/list.vue index 59f24e5..21130a8 100644 --- a/src/pages/inherit/list.vue +++ b/src/pages/inherit/list.vue @@ -132,69 +132,71 @@ identifier: this.idIndex, socialFlag: true }).then((res) => { - let data = res.object; + this.dataList = 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 == this.idIndex - ? linkItem.startId - : linkItem.endId) - ); - if (linkItem.relationType == "浜插睘鍏崇郴") { - data.nodeList[index].linkType = 1; - data.nodeList[index].color = "#F8E2D7"; - data.nodeList[index].borderColor = "#F3AA78"; - } - if (linkItem.relationType == "绀句細鍏崇郴") { - data.nodeList[index].linkType = 2; - data.nodeList[index].color = "#ecf4fe"; - data.nodeList[index].borderColor = "#597aa5"; - } - this.links.push({ - 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 = []; - this.dataList = data.nodeList.map((item) => { - return { - ...item, - itemStyle: { - color: item.identifier == this.idIndex ? "#F8E2D7" : item.color, - borderColor: - item.identifier == this.idIndex ? "#F3AA78" : item.borderColor, - borderWidth: "3" - } - }; - }); - this.initBarChart(this.dataList, this.links); + // 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 == this.idIndex + // ? linkItem.startId + // : linkItem.endId) + // ); + // if (linkItem.relationType == "浜插睘鍏崇郴") { + // data.nodeList[index].linkType = 1; + // data.nodeList[index].color = "#F8E2D7"; + // data.nodeList[index].borderColor = "#F3AA78"; + // } + // if (linkItem.relationType == "绀句細鍏崇郴") { + // data.nodeList[index].linkType = 2; + // data.nodeList[index].color = "#ecf4fe"; + // data.nodeList[index].borderColor = "#597aa5"; + // } + // this.links.push({ + // 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 = data.nodeList.map((item) => { + // return { + // ...item, + // itemStyle: { + // color: item.identifier == this.idIndex ? "#F8E2D7" : item.color, + // borderColor: + // item.identifier == this.idIndex ? "#F3AA78" : item.borderColor, + // borderWidth: "3" + // } + // }; + // }); + setTimeout(() => { + this.initBarChart(); + }, 50); + }); // 涓栧尰鏂囧寲 @@ -228,7 +230,7 @@ }, 50); } }, - initBarChart(dataList, links) { + initBarChart() { // WMBg //閫氳繃 $ref 杩涜鎸傝浇 var barChart = document.getElementById("barChart"); @@ -268,8 +270,7 @@ animationEasingUpdate: "quinticInOut", series: [ { - type: "graph", - layout: "force", + type: "tree", symbolSize: SymbolSize + 20, //鏄惁鍏佽鐢ㄦ埛鎷栧姩鍥剧墖 roam: true, @@ -280,25 +281,19 @@ }, edgeSymbol: ["circle", "arrow"], edgeSymbolSize: [4, 10], - data: dataList, - links: links, + data: [this.dataList], lineStyle: { opacity: 0.9, width: 2, curveness: 0.3 - }, - emphasis: { - focus: "adjacency", - lineStyle: { - width: 10 - } }, force: { initLayout: null, // gravity: 0 repulsion: 600, edgeLength: 400 - } + }, + expandAndCollapse: false, } ] }; diff --git a/src/pages/knowledgeBase/knowledgeBase.vue b/src/pages/knowledgeBase/knowledgeBase.vue index 638d85e..0562beb 100644 --- a/src/pages/knowledgeBase/knowledgeBase.vue +++ b/src/pages/knowledgeBase/knowledgeBase.vue @@ -26,11 +26,11 @@ 鐑棬鎼滅储锛� <ul class="flex" style="margin-right: 10rpx"> <li - v-for="item in hot" - @click="hotSearchClick(item)" + v-for="(item, index) in hot" + @click="hotSearchClick(item, index)" :key="item.id" - class="cursor" - style="color: #5879a4" + :class="{ cursor: true, active: hotAciveIndex === index }" + style="color: #244a7b" > {{ item.name }} </li> @@ -194,7 +194,11 @@ <el-table-column prop="id" label="搴忓彿" width="110"></el-table-column> <el-table-column prop="personName" label="濮撳悕"> <template slot-scope="scope"> - <a style="cursor: pointer;color: #027EDC;" @click="gotoDetail(scope.row.id)">{{ scope.row.personName }}</a> + <a + style="cursor: pointer; color: #027edc" + @click="gotoDetail(scope.row.id)" + >{{ scope.row.personName }}</a + > </template> </el-table-column> <el-table-column prop="personAlias" label="鍒悕"></el-table-column> @@ -255,7 +259,8 @@ getPDownload, getPList, getHotSearch, - getPersonList + getPersonList, + getInstitutionList } from "@/api/index.js"; export default { components: { @@ -264,6 +269,7 @@ }, data() { return { + hotAciveIndex: "", // 楂樼骇鎼滅储鏄剧ず isAdvancedSearch: false, // 楂樼骇鎼滅储 @@ -336,10 +342,10 @@ value: "" }, { - type: "input", + type: "select", label: "鏈烘瀯", name: "institution", - value: "" + options: [] } ] }, @@ -395,12 +401,53 @@ }; }, onLoad(options) { - this.onSearch({ text: options.keyword }); + if (options.isAdvancedSearch && options.isAdvancedSearch == "1") { + this.isAdvancedSearch = true; + } + if (options.official) { + if (options.official) { + this.from.from[ + this.from.from.findIndex((item) => item.name == "official") + ].value = options.official; + } + + const result = this.from.from.reduce((obj, item) => { + obj[item.name] = item.value; + return obj; + }, {}); + // 鎻愪氦閫昏緫 + this.onSubmit(result); + } else { + if (options.dynasty) { + this.dynasty.index = Number(options.dynasty); + this.dynasty.id = Number(options.dynasty); + } + this.onSearch({ text: options.keyword }); + } }, mounted() { this.getStatistics(); + this.institutionList(); }, methods: { + institutionList() { + getInstitutionList().then((res) => { + this.$set( + this.from.from[ + this.from.from.findIndex((item) => item.name == "institution") + ], + "options", + res.list.map((item) => { + return { + label: item.name, + value: item.id + }; + }) + ); + + console.log(this.from.from); + }); + }, //閲嶇疆鎼滅储缁撴灉 resetForm() { this.onSearch(""); @@ -559,8 +606,8 @@ }); }, // 鐑棬鎼滅储 - hotSearchClick(item) { - this.onSearch({ text: item.name }); + hotSearchClick(item, index) { + this.onSearch({ text: item.name }, index); }, // 宸︿晶鐨勬満鏋勭粺璁$瓑绛夋寜閽� handInstitCLick(item, name) { @@ -632,8 +679,14 @@ }); }, // 鍩虹鎼滅储 - async onSearch(val) { + async onSearch(val, index) { this.keywords = val.text; + if (index !== undefined) { + this.keywords = ""; + this.hotAciveIndex = index; + } else { + this.hotAciveIndex = ""; + } let Obj = { keywords: val.text, //鎼滅储妗嗘绱� name: "", //濮撳悕 @@ -1209,6 +1262,10 @@ li { font-size: 0.12rem; margin: 0 0.1rem; + &.active { + color: #027edc !important; + font-weight: bold; + } } } diff --git a/src/pages/territory/territory.vue b/src/pages/territory/territory.vue index 8b1da9c..0f7c3fa 100644 --- a/src/pages/territory/territory.vue +++ b/src/pages/territory/territory.vue @@ -983,4 +983,12 @@ opacity: 0; } } */ + +::v-deep .cleanupBtn{ + right: 60px !important; +} + +::v-deep .widget_input{ + min-width: 240px !important; +} </style> diff --git a/src/uni_modules/cc-defineTable/components/cc-defineTable/cc-defineTable.vue b/src/uni_modules/cc-defineTable/components/cc-defineTable/cc-defineTable.vue index 520dcd2..6776f44 100644 --- a/src/uni_modules/cc-defineTable/components/cc-defineTable/cc-defineTable.vue +++ b/src/uni_modules/cc-defineTable/components/cc-defineTable/cc-defineTable.vue @@ -7,7 +7,8 @@ <view v-for="(subItem, subIndex) in item.list" :key="subIndex"> <view class="param-item"> <label>{{ subItem.name }}</label> - <text class="font-family" :title="subItem.value">{{ subItem.value }}</text> + <text v-if="subItem.valueClick" class="font-family" style="color: #027edc;cursor: pointer;" :title="subItem.value" @click="subItem.valueClick">{{ subItem.value }}</text> + <text v-else class="font-family" :title="subItem.value">{{ subItem.value }}</text> </view> </view> </view> diff --git a/src/uni_modules/luanqing-search/components/luanqing-search/luanqing-search.vue b/src/uni_modules/luanqing-search/components/luanqing-search/luanqing-search.vue index 43a43f4..50a4572 100644 --- a/src/uni_modules/luanqing-search/components/luanqing-search/luanqing-search.vue +++ b/src/uni_modules/luanqing-search/components/luanqing-search/luanqing-search.vue @@ -1,14 +1,38 @@ <template> <view class="widget_style"> - <view class="ffff" style="display: flex; height: 100%"> + <view class="ffff" style="display: flex; height: 100%; position: relative"> <input placeholder-class="widget_input_placehold" @confirm="onClickSearch" v-model="content" class="widget_input" - :style="style1" + style="min-width: 4rem; padding-right: 54px;box-sizing: border-box;" :placeholder="placehold" /> + <span + class="cleanupBtn" + v-if="content" + @click="content = ''" + style=" + position: absolute; + top: 50%; + margin-top: -10px; + right: 84px; + color: #fff; + z-index: 2; + display: inline-block; + width: 20px; + height: 20px; + text-align: center; + line-height: 20px; + background-color: #a5a5a5; + font-weight: bold; + border-radius: 50%; + font-size: 12px; + cursor: pointer; + " + >鉁�</span + > <view class="widget_button" v-if="isSearchTrue" @click="onClickSearch">{{ buttonText }}</view> @@ -22,7 +46,6 @@ data() { return { content: "", - style1: "", style2: "" }; }, @@ -53,9 +76,7 @@ }, created() { // 缂栫粐璁剧疆鍔ㄦ�佸搴� - // this.style1 = 'min-width:calc('+this.width+'vw);'; // this.style2 = 'min-width:calc('+(this.width / 5)+'vw);'; - this.style1 = "width:4.5rem"; this.style2 = "width:.5rem"; this.content = this.keyword || ""; }, @@ -65,11 +86,11 @@ this.$emit("onSearch", { text: this.content }); } }, - watch: { - keyword(value) { - this.content = value - } - } + watch: { + keyword(value) { + this.content = value; + } + } }; </script> diff --git a/src/uni_modules/next-search-more/components/next-search-more/next-search-more.vue b/src/uni_modules/next-search-more/components/next-search-more/next-search-more.vue index 45a054a..b62e99f 100644 --- a/src/uni_modules/next-search-more/components/next-search-more/next-search-more.vue +++ b/src/uni_modules/next-search-more/components/next-search-more/next-search-more.vue @@ -35,8 +35,29 @@ @focus="focus" @blur="blur" /> - <text v-if="isDelShow" class="icon icon-del" @click="clear" - ></text + <span + class="cleanupBtn" + v-if="inputVal" + @click="inputVal = ''" + style=" + position: absolute; + top: 50%; + margin-top: -10px; + right: 10px; + color: #fff; + z-index: 2; + display: inline-block; + width: 20px; + height: 20px; + text-align: center; + line-height: 20px; + background-color: #a5a5a5; + font-weight: bold; + border-radius: 50%; + font-size: 12px; + cursor: pointer; + " + >鉁�</span > </view> <view @@ -246,6 +267,7 @@ width: 100%; display: flex; align-items: center; + position: relative; &.center { justify-content: center; -- Gitblit v1.9.1