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