瀏覽代碼

up下拉框+M地图

shaogen1995 2 年之前
父節點
當前提交
309deef2b5

+ 23 - 4
code/src/components/UI/select/index.vue

@@ -41,11 +41,19 @@
           <li
             v-for="option in props.options"
             :key="option.value"
-            :class="{ active: props.modelValue === option.value }"
+            :class="{
+              active: props.modelValue === option.value,
+              noneInfo: option.isShow === 0,
+              getInfo: option.isShow === 1,
+            }"
             @mousedown="(ev) => optionClickHandler(ev, option)"
           >
             <template v-if="$slots.option">
-              <slot name="option" :raw="option" :active="props.modelValue === option.value" />
+              <slot
+                name="option"
+                :raw="option"
+                :active="props.modelValue === option.value"
+              />
             </template>
             <template v-else>{{ option.label }}</template>
           </li>
@@ -87,13 +95,18 @@ const showOption = ref(false);
 const mountEl = document.body;
 
 const inputValue = computed(() => {
-  const selectOption = props.options.find(({ value }) => value === props.modelValue);
+  const selectOption = props.options.find(
+    ({ value }) => value === props.modelValue
+  );
   return selectOption ? selectOption.label : "";
 });
 
 const optionClickHandler = (ev, option) => {
   console.log(option);
-  if (props.stopEl && props.stopEl.toUpperCase() === ev.target.tagName.toUpperCase()) {
+  if (
+    props.stopEl &&
+    props.stopEl.toUpperCase() === ev.target.tagName.toUpperCase()
+  ) {
     setTimeout(() => {
       vmRef.value.input.focus();
     });
@@ -144,6 +157,12 @@ export default { name: "ui-select" };
 </script>
 
 <style lang="scss" scoped>
+.noneInfo {
+  color: rgb(197, 172, 172);
+}
+.getInfo {
+  color: #fff;
+}
 .select {
   input {
     cursor: pointer;

+ 69 - 36
code/src/components/mb_select/index.vue

@@ -2,69 +2,98 @@
   <div class="mb_select" v-clickoutside="onClickOutSide">
     <transition name="slide">
       <ul v-if="isShow">
-        <li @click="handleOption(item)" :class="{ active: item.id == value }" v-for="(item,i) in options" :key="i">
-          <span>{{item.name}}</span>
+        <li
+          @click="handleOption(item)"
+          :class="{
+            active: item.id == value,
+            noneInfo: item.isShow === 0,
+            getInfo: item.isShow === 1,
+          }"
+          v-for="(item, i) in options"
+          :key="i"
+        >
+          <span>{{ item.name }}</span>
         </li>
       </ul>
     </transition>
 
-    <div :class="{noradius:noradius,noradiusAll:noradiusAll}" class="activecon" @click="isShow=!isShow">
-      <span>{{active?active.name:''}}</span>
-      <img :src="require(`@/assets/images/icon/${isShow?'label_open':'label_shrink'}.png`)" alt="">
+    <div
+      :class="{ noradius: noradius, noradiusAll: noradiusAll }"
+      class="activecon"
+      @click="isShow = !isShow"
+    >
+      <span>{{ active ? active.name : "" }}</span>
+      <img
+        :src="
+          require(`@/assets/images/icon/${
+            isShow ? 'label_open' : 'label_shrink'
+          }.png`)
+        "
+        alt=""
+      />
     </div>
   </div>
 </template>
 
 <script setup>
-import { ref, onMounted, watch, defineProps, defineEmits, nextTick, computed } from "vue";
+import {
+  ref,
+  onMounted,
+  watch,
+  defineProps,
+  defineEmits,
+  nextTick,
+  computed,
+} from "vue";
 
 const props = defineProps({
   options: {
     type: Array,
     default: () => {
-      return []
+      return [];
     },
   },
 
   value: {
     type: Number || String,
     default: () => {
-      return 0
-    }
+      return 0;
+    },
   },
 
   noradiusAll: {
     type: Boolean,
     default: () => {
-      return false
-    }
+      return false;
+    },
   },
 
   noradius: {
     type: Boolean,
     default: () => {
-      return false
-    }
+      return false;
+    },
   },
-})
+});
 
-const emit = defineEmits(['handleOption'])
+const emit = defineEmits(["handleOption"]);
 
-const isShow = ref(false)
+const isShow = ref(false);
 
 const onClickOutSide = (e) => {
-  isShow.value = false
-}
+  isShow.value = false;
+};
 
-const handleOption = data => {
-  isShow.value = false
-  emit('handleOption', data)
-}
+const handleOption = (data) => {
+  isShow.value = false;
+  emit("handleOption", data);
+};
 
 const active = computed(() => {
-  return props.options.find(item => item.id == props.value) || props.options[0]
-})
-
+  return (
+    props.options.find((item) => item.id == props.value) || props.options[0]
+  );
+});
 </script>
 
 <style lang="scss" scoped>
@@ -75,7 +104,7 @@ const active = computed(() => {
   font-size: 14px;
 
   .activecon {
-    background: #B61E22;
+    background: #b61e22;
     border-radius: 50px;
     width: 100%;
     height: 40px;
@@ -94,8 +123,7 @@ const active = computed(() => {
       border-radius: 0;
     }
 
-
-    >span {
+    > span {
       display: inline-block;
       width: calc(100% - (12px + 8px) * 2);
       white-space: nowrap;
@@ -103,7 +131,7 @@ const active = computed(() => {
       text-overflow: ellipsis;
     }
 
-    >img {
+    > img {
       position: absolute;
       top: 50%;
       transform: translateY(-50%);
@@ -113,7 +141,7 @@ const active = computed(() => {
     }
   }
 
-  >ul {
+  > ul {
     position: absolute;
     left: 0;
     bottom: 20px;
@@ -129,18 +157,14 @@ const active = computed(() => {
     transition: all 0.3s;
     overflow-y: auto;
 
-    >li {
+    > li {
       color: #999;
       margin: 20px 0;
       white-space: nowrap;
       overflow: hidden;
       text-overflow: ellipsis;
 
-      &.active {
-        color: var(--font-active);
-      }
-
-      >span {
+      > span {
         display: inline-block;
         width: 80%;
         white-space: nowrap;
@@ -148,6 +172,15 @@ const active = computed(() => {
         text-overflow: ellipsis;
       }
     }
+    .noneInfo {
+      color: #ccc;
+    }
+    .getInfo {
+      color: #b61e22;
+    }
+    .active {
+      color: var(--font-active);
+    }
   }
 }
 </style>

+ 8 - 0
code/src/config/api.js

@@ -1,5 +1,13 @@
 import { axios } from "./http";
 
+// 后面修改的获取博物馆列表,区分有数据和无数据
+export const getMuseumListOrInfoAPI = (type) => {
+  return axios({
+    url: `/show/museum/filterList/${type}`,
+  })
+}
+
+
 // 获取博物馆列表
 export function getMuseumList(data, cb) {
   let params = {

+ 2 - 2
code/src/config/http.js

@@ -4,8 +4,8 @@ import { Loading } from "@/components/UI";
 
 var isProduction = process.env.NODE_ENV === "production";
 
-// const serverName = isProduction ? "/api/" : "http://192.168.20.55:8035/api/";
-const serverName = isProduction ? "/api/" : "http://gdbwg.4dage.com/api/";
+const serverName = isProduction ? "/api/" : "http://192.168.20.55:8035/api/";
+// const serverName = isProduction ? "/api/" : "http://gdbwg.4dage.com/api/";
 
 const serverLocation = window.location.hostname;
 

+ 38 - 21
code/src/views/collection/index.vue

@@ -100,6 +100,7 @@ import {
   getMuseumList,
   getAge,
   getType,
+  getMuseumListOrInfoAPI,
 } from "@/config/api";
 import showCollection from "@/components/showCollection/index.vue";
 import emitter from "@/mitt/index";
@@ -155,6 +156,21 @@ export default {
 
     const menuActive = ref("");
 
+    const getMuseumListOrInfoFu = async () => {
+      let res = await getMuseumListOrInfoAPI("goods");
+      museumList.value = res.data.map((item) => {
+        return {
+          ...item,
+          label: item.name,
+          value: item.id,
+        };
+      });
+      if (!props.currentMuseumItem) {
+        currentMuseum.value = museumList.value[0].value;
+      } else {
+        currentMuseum.value = props.currentMuseumItem.id;
+      }
+    };
     onMounted(() => {
       getAge((data) => {
         ages.value = data.data.data.map((item) => {
@@ -176,27 +192,28 @@ export default {
         });
       });
 
-      getMuseumList(
-        {
-          cityId: "",
-          pageNum: 1,
-          pageSize: 1000,
-        },
-        (data) => {
-          museumList.value = data.data.records.map((item) => {
-            return {
-              ...item,
-              label: item.name,
-              value: item.id,
-            };
-          });
-          if (!props.currentMuseumItem) {
-            currentMuseum.value = museumList.value[0].value;
-          } else {
-            currentMuseum.value = props.currentMuseumItem.id;
-          }
-        }
-      );
+      getMuseumListOrInfoFu()
+      // getMuseumList(
+      //   {
+      //     cityId: "",
+      //     pageNum: 1,
+      //     pageSize: 1000,
+      //   },
+      //   (data) => {
+      //     museumList.value = data.data.records.map((item) => {
+      //       return {
+      //         ...item,
+      //         label: item.name,
+      //         value: item.id,
+      //       };
+      //     });
+      //     if (!props.currentMuseumItem) {
+      //       currentMuseum.value = museumList.value[0].value;
+      //     } else {
+      //       currentMuseum.value = props.currentMuseumItem.id;
+      //     }
+      //   }
+      // );
     });
 
     return {

+ 206 - 112
code/src/views/collection/mobile.vue

@@ -3,18 +3,40 @@
     <div class="slebar">
       <div>分类:</div>
       <ul>
-        <li @click="menuActive = item.id" :class="{ active: menuActive == item.id }" v-for="(item, i) in menu" :key="i">
+        <li
+          @click="menuActive = item.id"
+          :class="{ active: menuActive == item.id }"
+          v-for="(item, i) in menu"
+          :key="i"
+        >
           {{ item.name }}
         </li>
       </ul>
     </div>
 
     <div class="masonrycon">
-      <div v-if="list && list.length > 0" class="masonry" v-infinite-scroll="getData" infinite-scroll-disabled="busy"
-        :infinite-scroll-immediate-check="true" infinite-scroll-distance="30" v-masonry="containerId" fit-width="true"
-        gutter="10" initLayout="true" transition-duration="0.3s" item-selector=".item">
-        <div @click="onClickCollection(item)" v-masonry-tile class="item" :class="{ odd: index % 2 != 0 }"
-          v-for="(item, index) in list" :key="index">
+      <div
+        v-if="list && list.length > 0"
+        class="masonry"
+        v-infinite-scroll="getData"
+        infinite-scroll-disabled="busy"
+        :infinite-scroll-immediate-check="true"
+        infinite-scroll-distance="30"
+        v-masonry="containerId"
+        fit-width="true"
+        gutter="10"
+        initLayout="true"
+        transition-duration="0.3s"
+        item-selector=".item"
+      >
+        <div
+          @click="onClickCollection(item)"
+          v-masonry-tile
+          class="item"
+          :class="{ odd: index % 2 != 0 }"
+          v-for="(item, index) in list"
+          :key="index"
+        >
           <div class="itemimg">
             <div :style="`background-image:url(${item.thumb})`"></div>
           </div>
@@ -29,75 +51,120 @@
     </div>
   </div>
 
-  <teleport to='body'>
+  <teleport to="body">
     <div class="fnbar">
       <div class="barsub">
-        <mb_select :noradius="true" class="mb_select" @handleOption="handleTab" :value="activeId" :options="yearlist" />
+        <mb_select
+          :noradius="true"
+          class="mb_select"
+          @handleOption="handleTab"
+          :value="activeId"
+          :options="yearlist"
+        />
       </div>
 
       <div class="barsub">
-        <mb_select :noradiusAll="true" class="mb_select" @handleOption="handleTab" :value="activeId"
-          :options="yearlist" />
+        <mb_select
+          :noradiusAll="true"
+          class="mb_select"
+          @handleOption="handleTab"
+          :value="activeId"
+          :options="yearlist"
+        />
       </div>
 
       <div class="searchimg" v-show="!showInput">
-        <img @click="showInput=true" :src="require('@/assets/images/icon/label_search.png')" alt="">
+        <img
+          @click="showInput = true"
+          :src="require('@/assets/images/icon/label_search.png')"
+          alt=""
+        />
       </div>
 
       <transition name="fade">
         <div class="searchcon" v-if="showInput">
-          <img :src="require('@/assets/images/icon/label_search.png')" alt="">
-          <input v-model="searchKey" type="text" placeholder="请输入藏品名称">
-          <span @click="showInput=false">取消</span>
+          <img :src="require('@/assets/images/icon/label_search.png')" alt="" />
+          <input v-model="searchKey" type="text" placeholder="请输入藏品名称" />
+          <span @click="showInput = false">取消</span>
         </div>
       </transition>
     </div>
   </teleport>
 
-  <teleport to='body'>
+  <teleport to="body">
     <div class="fnbar">
       <div class="barsub">
-        <mb_select :noradius="true" class="mb_select" @handleOption="data=>currentMuseum=data.id" :value="currentMuseum"
-          :options="museumList" />
+        <mb_select
+          :noradius="true"
+          class="mb_select"
+          @handleOption="(data) => (currentMuseum = data.id)"
+          :value="currentMuseum"
+          :options="museumList"
+        />
       </div>
 
       <div class="barsub">
-        <mb_select :noradiusAll="true" class="mb_select" @handleOption="data=>currentAge=data.id" :value="currentAge"
-          :options="ages" />
+        <mb_select
+          :noradiusAll="true"
+          class="mb_select"
+          @handleOption="(data) => (currentAge = data.id)"
+          :value="currentAge"
+          :options="ages"
+        />
       </div>
 
       <div class="barsub">
-        <mb_select :noradiusAll="true" class="mb_select" @handleOption="data=>currentType=data.id" :value="currentType"
-          :options="types" />
+        <mb_select
+          :noradiusAll="true"
+          class="mb_select"
+          @handleOption="(data) => (currentType = data.id)"
+          :value="currentType"
+          :options="types"
+        />
       </div>
 
       <div class="searchimg" v-show="!showInput">
-        <img @click="showInput=true" :src="require('@/assets/images/icon/label_search.png')" alt="">
+        <img
+          @click="showInput = true"
+          :src="require('@/assets/images/icon/label_search.png')"
+          alt=""
+        />
       </div>
 
       <transition name="fade">
         <div class="searchcon" v-if="showInput">
-          <img :src="require('@/assets/images/icon/label_search.png')" alt="">
-          <input v-model="searchKey" type="text" placeholder="请输入展览名称">
-          <span @click="showInput=false,searchKey=''">取消</span>
+          <img :src="require('@/assets/images/icon/label_search.png')" alt="" />
+          <input v-model="searchKey" type="text" placeholder="请输入展览名称" />
+          <span @click="(showInput = false), (searchKey = '')">取消</span>
         </div>
       </transition>
-
     </div>
   </teleport>
 
   <transition name="fade">
-    <teleport to='body'>
+    <teleport to="body">
       <showCollection v-if="activeCollection" :item="activeCollection" />
     </teleport>
   </transition>
-
 </template>
 
 <script>
-import { defineProps, getCurrentInstance, onMounted, watch, nextTick, ref } from "vue";
+import {
+  defineProps,
+  getCurrentInstance,
+  onMounted,
+  watch,
+  nextTick,
+  ref,
+} from "vue";
 import mb_select from "@/components/mb_select";
-import { getCollectionList, getMuseumList, getAge, getType } from "@/config/api";
+import {
+  getCollectionList,
+  getMuseumList,
+  getAge,
+  getType,
+  getMuseumListOrInfoAPI,
+} from "@/config/api";
 import showCollection from "@/components/showCollection/index.vue";
 import emitter from "@/mitt/index";
 
@@ -110,13 +177,11 @@ export default {
     const currentType = ref("");
     const currentMuseum = ref("");
 
-
-    const busy = ref(false)
+    const busy = ref(false);
     const ages = ref([]);
     const types = ref([]);
     const museumList = ref([]);
 
-
     const menu = ref([
       {
         id: "",
@@ -142,46 +207,72 @@ export default {
 
     const menuActive = ref("");
 
+    const getMuseumListOrInfoFu = async () => {
+      let res = await getMuseumListOrInfoAPI("goods");
+      museumList.value = res.data.map((item) => {
+        return {
+          ...item,
+          label: item.name,
+          value: item.id,
+        };
+      });
+      if (!currentMuseum.value) {
+        currentMuseum.value = museumList.value[0].value;
+      }
+    };
+
     onMounted(() => {
-      getAge(data => {
-        ages.value = data.data.data.map(item => {
+      getAge((data) => {
+        ages.value = data.data.data.map((item) => {
           return {
             ...item,
             label: item.name,
-            value: item.id
-          }
-        })
-      })
+            value: item.id,
+          };
+        });
+      });
 
-      getType(data => {
-        types.value = data.data.data.map(item => {
+      getType((data) => {
+        types.value = data.data.data.map((item) => {
           return {
             ...item,
             label: item.name,
-            value: item.id
-          }
-        })
-      })
-
-      getMuseumList({
-        "cityId": '',
-        "pageNum": 1,
-        "pageSize": 1000,
-      }, data => {
-        museumList.value = data.data.records.map(item => {
-          return {
-            ...item,
-            label: item.name,
-            value: item.id
-          }
-        })
-        if (!currentMuseum.value) {
-          currentMuseum.value = museumList.value[0].value
-        }
-      })
-    })
+            value: item.id,
+          };
+        });
+      });
+
+      getMuseumListOrInfoFu();
+      // getMuseumList({
+      //   "cityId": '',
+      //   "pageNum": 1,
+      //   "pageSize": 1000,
+      // }, data => {
+      //   museumList.value = data.data.records.map(item => {
+      //     return {
+      //       ...item,
+      //       label: item.name,
+      //       value: item.id
+      //     }
+      //   })
+      //   if (!currentMuseum.value) {
+      //     currentMuseum.value = museumList.value[0].value
+      //   }
+      // })
+    });
 
-    return { ages, types, currentMuseum, museumList, menu, currentAge, menuActive, currentType, searchKey, busy }
+    return {
+      ages,
+      types,
+      currentMuseum,
+      museumList,
+      menu,
+      currentAge,
+      menuActive,
+      currentType,
+      searchKey,
+      busy,
+    };
   },
   components: { showCollection, mb_select },
 
@@ -195,57 +286,61 @@ export default {
         pageNum: 1,
         showSize: 4,
         current: 1,
-      }
-    }
+      },
+    };
   },
   watch: {
     searchKey() {
-      this.getData(true)
+      this.getData(true);
     },
     currentAge() {
-      this.getData(true)
+      this.getData(true);
     },
     currentMuseum() {
-      this.getData(true)
-      this.$emit('updateMuseum', this.museumList.find((item => item.id == this.currentMuseum)))
+      this.getData(true);
+      this.$emit(
+        "updateMuseum",
+        this.museumList.find((item) => item.id == this.currentMuseum)
+      );
     },
     currentType() {
-      this.getData(true)
+      this.getData(true);
     },
     menuActive() {
-      this.getData(true)
-    }
+      this.getData(true);
+    },
   },
   methods: {
-    handleTab() {
-
-    },
+    handleTab() {},
     getData(reset) {
       if (reset) {
-        this.list = []
+        this.list = [];
       }
-      this.busy = true
-      getCollectionList({
-        "ageId": this.currentAge,
-        "museumId": this.currentMuseum,
-        "type": this.menuActive,
-        "pageNum": this.paging.pageNum,
-        "pageSize": this.paging.pageSize,
-        "searchKey": this.searchKey,
-        "textureId": this.currentType,
-      }, data => {
-        this.busy = false
-        if (data.data.total <= this.list.length) {
-          this.busy = true
-          return
-        }
-        this.list = this.list.concat(data.data.records)
-        this.paging.pageNum += 1
+      this.busy = true;
+      getCollectionList(
+        {
+          ageId: this.currentAge,
+          museumId: this.currentMuseum,
+          type: this.menuActive,
+          pageNum: this.paging.pageNum,
+          pageSize: this.paging.pageSize,
+          searchKey: this.searchKey,
+          textureId: this.currentType,
+        },
+        (data) => {
+          this.busy = false;
+          if (data.data.total <= this.list.length) {
+            this.busy = true;
+            return;
+          }
+          this.list = this.list.concat(data.data.records);
+          this.paging.pageNum += 1;
 
-        this.$nextTick(() => {
-          this.$redrawVueMasonry(this.containerId);
-        });
-      })
+          this.$nextTick(() => {
+            this.$redrawVueMasonry(this.containerId);
+          });
+        }
+      );
 
       // console.log(this);
       // this.list = this.list.concat([]);
@@ -255,13 +350,13 @@ export default {
       // });
     },
     onClickCollection(data) {
-      this.activeCollection = data
-    }
+      this.activeCollection = data;
+    },
   },
   mounted() {
-    emitter.on('closeCollection', () => {
-      this.activeCollection = ''
-    })
+    emitter.on("closeCollection", () => {
+      this.activeCollection = "";
+    });
   },
 };
 </script>
@@ -281,11 +376,11 @@ export default {
     font-size: 14px;
     padding-bottom: 20px;
 
-    >ul {
+    > ul {
       display: flex;
       align-items: center;
 
-      >li {
+      > li {
         text-align: center;
         margin: 0 6px;
         cursor: pointer;
@@ -325,7 +420,7 @@ export default {
           height: calc(100% - 40px);
           width: 100%;
 
-          >div {
+          > div {
             height: 100%;
             width: 100%;
             background-repeat: no-repeat;
@@ -354,7 +449,6 @@ export default {
   }
 }
 
-
 .fnbar {
   position: absolute;
   bottom: 20px;
@@ -376,7 +470,7 @@ export default {
     position: absolute;
     right: 5%;
 
-    >img {
+    > img {
       width: 16px;
       height: 16px;
     }
@@ -397,23 +491,23 @@ export default {
     padding: 0 10px;
     justify-content: space-around;
 
-    >img {
+    > img {
       width: 20px;
       height: 20px;
     }
 
-    >input {
+    > input {
       width: 100%;
       height: 100%;
       padding-left: 16px;
       color: #fff;
 
       &::placeholder {
-        color: #D2D2D2;
+        color: #d2d2d2;
       }
     }
 
-    >span {
+    > span {
       display: inline-block;
       color: var(--font-active);
       width: 30px;

+ 47 - 25
code/src/views/exhibition/exhibition/collections.vue

@@ -98,6 +98,7 @@ import {
   getMuseumList,
   getAge,
   getType,
+  getMuseumListOrInfoAPI,
 } from "@/config/api";
 import showCollection from "@/components/showCollection/index.vue";
 import emitter from "@/mitt/index";
@@ -154,6 +155,26 @@ export default {
 
     const menuActive = ref("");
 
+    const getMuseumListOrInfoFu = async () => {
+      let res = await getMuseumListOrInfoAPI("goods");
+      museumList.value = res.data
+        .map((item) => {
+          return {
+            ...item,
+            label: item.name,
+            value: item.id,
+          };
+        })
+        .filter((item) => {
+          return item.name !== "广东省博物馆";
+        });
+      if (!props.currentMuseumItem) {
+        currentMuseum.value = museumList.value[0].value;
+      } else {
+        currentMuseum.value = props.currentMuseumItem.id;
+      }
+    };
+
     onMounted(() => {
       getAge((data) => {
         ages.value = data.data.data.map((item) => {
@@ -175,31 +196,32 @@ export default {
         });
       });
 
-      getMuseumList(
-        {
-          cityId: "",
-          pageNum: 1,
-          pageSize: 1000,
-        },
-        (data) => {
-          museumList.value = data.data.records
-            .map((item) => {
-              return {
-                ...item,
-                label: item.name,
-                value: item.id,
-              };
-            })
-            .filter((item) => {
-              return item.name !== "广东省博物馆";
-            });
-          if (!props.currentMuseumItem) {
-            currentMuseum.value = museumList.value[0].value;
-          } else {
-            currentMuseum.value = props.currentMuseumItem.id;
-          }
-        }
-      );
+      getMuseumListOrInfoFu();
+      // getMuseumList(
+      //   {
+      //     cityId: "",
+      //     pageNum: 1,
+      //     pageSize: 1000,
+      //   },
+      //   (data) => {
+      //     museumList.value = data.data.records
+      //       .map((item) => {
+      //         return {
+      //           ...item,
+      //           label: item.name,
+      //           value: item.id,
+      //         };
+      //       })
+      //       .filter((item) => {
+      //         return item.name !== "广东省博物馆";
+      //       });
+      //     if (!props.currentMuseumItem) {
+      //       currentMuseum.value = museumList.value[0].value;
+      //     } else {
+      //       currentMuseum.value = props.currentMuseumItem.id;
+      //     }
+      //   }
+      // );
     });
 
     return {

+ 28 - 11
code/src/views/exhibition/exhibition/mobile/permanent.vue

@@ -38,7 +38,7 @@ import { defineProps, onMounted, watch, nextTick, ref } from "vue";
 import exItem from "@/components/exItem";
 import mb_select from "@/components/mb_select";
 
-import { getExhibitionList, getMuseumList } from "@/config/api";
+import { getExhibitionList, getMuseumList ,getMuseumListOrInfoAPI} from "@/config/api";
 
 
 const searchKey = ref("");
@@ -104,15 +104,9 @@ const getData = (reset = null) => {
   })
 }
 
-
-
-onMounted(() => {
-  getMuseumList({
-    "cityId": '',
-    "pageNum": 1,
-    "pageSize": 1000,
-  }, data => {
-    museumList.value = data.data.records.map(item => {
+const getMuseumListOrInfoFu = async () => {
+  let res = await getMuseumListOrInfoAPI("exhibition");
+    museumList.value = res.data.map(item => {
       return {
         ...item,
         label: item.name,
@@ -126,7 +120,30 @@ onMounted(() => {
     } else {
       currentMuseum.value = props.currentMuseumItem.id
     }
-  })
+};
+
+onMounted(() => {
+  getMuseumListOrInfoFu()
+  // getMuseumList({
+  //   "cityId": '',
+  //   "pageNum": 1,
+  //   "pageSize": 1000,
+  // }, data => {
+  //   museumList.value = data.data.records.map(item => {
+  //     return {
+  //       ...item,
+  //       label: item.name,
+  //       value: item.id
+  //     }
+  //   }).filter(item => {
+  //     return item.name !== '广东省博物馆'
+  //   })
+  //   if (!props.currentMuseumItem) {
+  //     currentMuseum.value = museumList.value[0].value
+  //   } else {
+  //     currentMuseum.value = props.currentMuseumItem.id
+  //   }
+  // })
 })
 </script>
 

+ 52 - 26
code/src/views/exhibition/exhibition/permanent.vue

@@ -39,7 +39,11 @@
 import { defineProps, defineEmits, onMounted, watch, nextTick, ref } from "vue";
 
 import exItem from "@/components/exItem";
-import { getExhibitionList, getMuseumList } from "@/config/api";
+import {
+  getExhibitionList,
+  getMuseumList,
+  getMuseumListOrInfoAPI,
+} from "@/config/api";
 
 const searchKey = ref("");
 
@@ -109,32 +113,54 @@ const getData = (reset = null) => {
   );
 };
 
+const getMuseumListOrInfoFu = async () => {
+  let res = await getMuseumListOrInfoAPI("exhibition");
+  museumList.value = res.data
+    .map((item) => {
+      return {
+        ...item,
+        label: item.name,
+        value: item.id,
+      };
+    })
+    .filter((item) => {
+      return item.name !== "广东省博物馆";
+    });
+  if (!props.currentMuseumItem) {
+    currentMuseum.value = museumList.value[0].value;
+  } else {
+    currentMuseum.value = props.currentMuseumItem.id;
+  }
+};
+
 onMounted(() => {
-  getMuseumList(
-    {
-      cityId: "",
-      pageNum: 1,
-      pageSize: 1000,
-    },
-    (data) => {
-      museumList.value = data.data.records
-        .map((item) => {
-          return {
-            ...item,
-            label: item.name,
-            value: item.id,
-          };
-        })
-        .filter((item) => {
-          return item.name !== "广东省博物馆";
-        });
-      if (!props.currentMuseumItem) {
-        currentMuseum.value = museumList.value[0].value;
-      } else {
-        currentMuseum.value = props.currentMuseumItem.id;
-      }
-    }
-  );
+  getMuseumListOrInfoFu();
+
+  // getMuseumList(
+  //   {
+  //     cityId: "",
+  //     pageNum: 1,
+  //     pageSize: 1000,
+  //   },
+  //   (data) => {
+  //     museumList.value = data.data.records
+  //       .map((item) => {
+  //         return {
+  //           ...item,
+  //           label: item.name,
+  //           value: item.id,
+  //         };
+  //       })
+  //       .filter((item) => {
+  //         return item.name !== "广东省博物馆";
+  //       });
+  //     if (!props.currentMuseumItem) {
+  //       currentMuseum.value = museumList.value[0].value;
+  //     } else {
+  //       currentMuseum.value = props.currentMuseumItem.id;
+  //     }
+  //   }
+  // );
 });
 </script>
   

+ 1 - 0
code/src/views/exhibition/mobile.vue

@@ -90,6 +90,7 @@ let updateMuseum = (data)=>{
   overflow-y: auto;
   overflow-x: hidden;
   height: calc(100% - 60px);
+  padding-bottom: 60px;
 
   .info {
     padding-top: 20px;