ソースを参照

【概述总览】对接接口

任一存 2 年 前
コミット
27b77a2e88
3 ファイル変更55 行追加31 行削除
  1. 24 0
      src/api.js
  2. 30 30
      src/views/General.vue
  3. 1 1
      src/views/TreasureDetail.vue

+ 24 - 0
src/api.js

@@ -15,6 +15,30 @@ import historyRawData from "@/assets/mock/history.json"
 // })
 
 export default {
+  getGeneralList({
+    endTime = '',
+    pageNum = 0,
+    pageSize = 0,
+    searchKey = '',
+    startTime = '',
+  } = {}) {
+    return axios({
+      method: 'post',
+      url: `${process.env.VUE_APP_API_ORIGIN}/api/show/company/pageList`,
+      headers: {
+        "Content-Type": "application/json",
+      },
+      data: {
+        endTime,
+        pageNum,
+        pageSize,
+        searchKey,
+        startTime,
+      },
+    }).then((res) => {
+      return res.data.data.records
+    })
+  },
   // getHistoryList({
   //   pageNum = 0,
   //   pageSize = 0,

+ 30 - 30
src/views/General.vue

@@ -62,7 +62,7 @@
             {{ corpItem.name }}
           </span>
           <span class="corp-time">
-            {{ corpItem.createTime }}
+            {{ corpItem.createDay }}
           </span>
         </div>
       </li>
@@ -80,15 +80,15 @@
         draggable="false"
       >
       <img
-        v-show="activeCorpInfo.img"
+        v-show="activeCorpInfo.thumb"
         class="banner"
-        :src="activeCorpInfo.img"
+        :src="activeCorpInfo.thumb"
         alt=""
         draggable="false"
       >
       <div
         class="txt"
-        v-html="activeCorpInfo.content || ''"
+        v-html="activeCorpInfo.description || ''"
       />
     </article>
   </div>
@@ -103,7 +103,6 @@ import {
   ref,
 } from 'vue'
 import deepClone from 'lodash/cloneDeep'
-import corpInfo from '@/assets/mock/general.json'
 
 export default {
   name: 'GeneralView',
@@ -113,41 +112,43 @@ export default {
   setup () {
     const filterKeyword = ref('')
 
-    const corpListRaw = reactive(corpInfo.data)
-    const corpListMap = computed(() => {
-      const corpListFiltered = corpListRaw.filter((item) => {
-        return !filterKeyword.value || item.name.includes(filterKeyword.value)
+    const corpListRaw = reactive({ value: null })
+    const corpListMap = reactive(new Map())
+    watch(filterKeyword, utils.debounce(async (vNew) => {
+      corpListRaw.value = await api.getGeneralList({
+        searchKey: filterKeyword.value
       })
-
-      const afterSort = deepClone(corpListFiltered)
-      afterSort.sort((a, b) => {
-        return Date.parse(a.createTime.substring(0, 4)) - Date.parse(b.createTime.substring(0, 4))
-      })
-
-      const ret = new Map()
-      afterSort.forEach(element => {
+      corpListMap.clear()
+      corpListRaw.value.forEach(element => {
         let decade = ''
-        if (element.createTime.substring(0, 2) === '18') {
+        if (element.createDay.substring(0, 2) === '18') {
           decade = `十九世纪`
-        } else if (element.createTime.substring(0, 2) === '19') {
-          const decadeValue = element.createTime[2]
+        } else if (element.createDay.substring(0, 2) === '19') {
+          const decadeValue = element.createDay[2]
           decade = `上世纪${decadeValue}0年代`
         } else {
-          const decadeValue = element.createTime[2]
+          const decadeValue = element.createDay[2]
           decade = `本世纪${decadeValue}0年代`
         }
-        if (!ret.get(decade)) {
-          ret.set(decade, [])
+        if (!corpListMap.get(decade)) {
+          corpListMap.set(decade, [])
         }
-        ret.get(decade).push(element)
+        corpListMap.get(decade).push(element)
       })
-      return ret
+    }, 500, false), {
+      immediate: true,
     })
+
     const activeCorpId = ref(null)
+    const isShowDesc = ref(true)
     const activeCorpInfo = computed(() => {
-      return corpListRaw.find((item) => {
-        return item.id === activeCorpId.value
-      })
+      if (corpListRaw.value) {
+        return corpListRaw.value.find((item) => {
+          return item.id === activeCorpId.value
+        })
+      } else {
+        return {}
+      }
     })
     // 无论是网页里还是unity内部点击了企业,都调用这个
     function onClickCorpItem(id) {
@@ -155,6 +156,7 @@ export default {
         gUnityInst.SendMessage('Panel1', 'SetEnterpriseUnSelected', activeCorpId.value) //设置id为1的企业为未选中状态(此id需要是已显示的)
       }
       gUnityInst.SendMessage('Panel1', 'SetEnterpriseSelected', id) //设置id为1的企业为选中状态(此id需要是已显示的)
+
       activeCorpId.value = id
       isShowDesc.value = true
 
@@ -166,8 +168,6 @@ export default {
     }
     window.onCorpOnMapClicked = onClickCorpItem
 
-    const isShowDesc = ref(true)
-
     return {
       filterKeyword,
 

+ 1 - 1
src/views/TreasureDetail.vue

@@ -147,7 +147,7 @@
       <button @click="fullScreenStatus = !fullScreenStatus">
         <img
           class=""
-          :src="require(`@/assets/images/icon_full_screen_${fullScreenStatus ? 'on' : 'off'}.png`)"
+          :src="require(`@/assets/images/icon_full_screen_${fullScreenStatus ? 'off' : 'on'}.png`)"
           alt=""
           draggable="false"
         >