From 4e1859708f3c00c9a7b79a3489ac9a6640f8f7b7 Mon Sep 17 00:00:00 2001 From: litian <2804272236@qq.com> Date: 星期二, 28 五月 2024 18:18:39 +0800 Subject: [PATCH] yuedu --- src/views/components/dictionary.vue | 130 ++++++++++++++++++++++++++++++++++++------- 1 files changed, 108 insertions(+), 22 deletions(-) diff --git a/src/views/components/dictionary.vue b/src/views/components/dictionary.vue index 7531fff..49c0079 100644 --- a/src/views/components/dictionary.vue +++ b/src/views/components/dictionary.vue @@ -1,51 +1,92 @@ <template> - <div> - <div class="searchBox"> + <div class="page"> + <div class="search-Box"> <el-input class="custom-input" placeholder="璇疯緭鍏ュ唴瀹�" v-model="searchContent"> <template #suffix> <el-icon @click="getSearchResult" class="hover"><Search /></el-icon> </template> </el-input> </div> - <div class="resultBox"> + <div class="resultBox" v-if="searchResult.length > 0"> <div v-for="result in searchResult" :key="result.id"> <div class="phone_con"> - <div class="per-phone">鑻�/<span>{{result.ukPhone}}</span>/</div> - <div class="per-phone">缇�/<span>{{result.usPhone}}</span>/</div> + <div class="per-phone">鑻� /<span>{{result.ukPhone}}</span>/</div> + <div class="per-phone">缇� /<span>{{result.usPhone}}</span>/</div> + </div> + <div class="trans"> + <div v-for="item in result.trans" :key="item"> + <div class="itemList"> + <div class="pos">{{item.pos}}.</div> + <div class="tranCn">{{item.tranCn}}</div> + </div> + </div> + </div> + <div class="trans" v-if="result.phrase"> + <div class="title">璇嶇粍鐭</div> + <div v-for="(item,index) in result.phrase" :key="item"> + <div class="itemList"> + <div class="index">{{index + 1}}</div> + <div class="pos">{{item.pContent}}</div> + <div class="tranCn">{{item.pCn}}</div> + </div> + </div> + </div> + <div class="trans" v-if="result.syno"> + <div class="title">杩戜箟璇�</div> + <div v-for="item in result.syno" :key="item"> + <div class="itemList"> + <div class="pos">{{item.pos}}</div> + <div class="tranCn">{{item.tran}}</div> + </div> + <div class="hwds"> + <div v-for="hw in item.hwds" :key="hw" class="">{{hw.w}}</div> + </div> + </div> + </div> + <div class="trans" v-if="result.sentence"> + <div class="title">渚嬪彞</div> + <div v-for="(item,index) in result.sentence" :key="item"> + <div class="itemList1"> + <div class="pos"><span class="index">{{index +1}}</span>{{item.sContent}}</div> + <div class="tranCn">{{item.sCn}}</div> + </div> + </div> </div> </div> + </div> + <div class="noResultBox" v-else> + 鏆傛棤鍐呭 </div> </div> </template> <script setup lang="ts"> import { ref, reactive, watch, onMounted, inject } from 'vue' -const request = inject('request') -const props = defineProps({ - searchCon: Boolean -}) +const MG: any = inject('MG') const searchContent = ref('') const isFull = ref(false) -watch(props, (newValue) => { - // 缁熺洃鍚琾rops鐨勫�煎彉鍖栵紝鍔ㄦ�佷慨鏀筰sShow鐨勫�� - searchContent.value = newValue.searchCon + +onMounted(() => { }) const searchResult = ref([]) + const getSearchResult = () => { if (searchContent.value) { - request({ - url: '/edu/api/FindWords', - method: 'post', - data: { + MG.edu.findWords([{ word: searchContent.value, isFull: isFull.value - } - }).then((res) => { - console.log(JSON.parse(res[0].sentence)[0].sCn) - // encodeURIComponent(res[0].syno[0].tran) + }]).then((res) => { + console.log(res) if (res.length > 0) { - searchResult.value = res + res[0].map((item) => { + item.phrase = JSON.parse(item.phrase) + item.relWord = JSON.parse(item.relWord) + item.sentence = JSON.parse(item.sentence) + item.syno = JSON.parse(item.syno) + item.trans = JSON.parse(item.trans) + }) + searchResult.value = res[0] } }) } @@ -53,7 +94,11 @@ </script> <style lang="less"> -.searchBox { +.page{ + height:100%; + overflow-y:auto +} +.search-Box { width: 400px; margin: 0 auto; .custom-input { @@ -73,7 +118,12 @@ } } } +.noResultBox{ + padding:40px; + text-align: center; +} .resultBox{ + padding:20px; .phone_con{ .per-phone{ width:150px; @@ -88,6 +138,42 @@ margin-top: 10px; // max-width: 100%; padding: 8px 10px; + span{ + margin:0 10px; + } + } + } + .trans{ + padding:20px 0; + border-bottom:1px solid #eeeff0; + .title{ + padding:10px 0; + } + .itemList{ + display:flex; + padding: 10px 0; + .index{ + margin-right:15px; + } + .pos{ + margin-right:30px; + } + } + .hwds{ + display:flex; + div{ + padding:0 10px; + } + } + .itemList1{ + padding:10px 0; + .index{ + margin-right:15px; + } + .tranCn{ + margin-left:20px; + margin-top:5px; + } } } } -- Gitblit v1.9.1