Quellcode durchsuchen

更新登录链接

tremble vor 3 Jahren
Ursprung
Commit
c36df02567

+ 12 - 3
src/components/Controls/Panel/Main.vue

@@ -1,6 +1,6 @@
 <template>
-  <Panel v-show="player.showWidgets">
-    <div class="menu color">
+  <Panel v-show="player.showWidgets" :isOpen="isOpen" >
+    <div @click="hanldeOpen" class="menu color">
       <div class="logo">
         <img :src="require('@/assets/images/icon/logo.png')" alt="" />
         <p>CDF澳門上葡京</p>
@@ -68,7 +68,7 @@
 
 <script setup>
 import { useStore } from "vuex";
-import { onMounted, watch, computed, reactive, ref, nextTick } from "vue";
+import { onMounted, watch, computed, ref, nextTick } from "vue";
 import Panel from "@/views/Panel.vue";
 import { useApp, getApp } from "@/app";
 import * as apis from "@/apis/index.js";
@@ -76,6 +76,15 @@ import browser from "@/utils/browser";
 
 const store = useStore();
 
+const isOpen = ref(false);
+
+const hanldeOpen = ()=>{
+  isOpen.value = true
+  setTimeout(() => {
+    isOpen.value = false
+  }, 200);
+}
+
 const currentCategory = ref({
   id: "",
   categoryName: "全部",

+ 5 - 1
src/components/Tags/goods-list.vue

@@ -119,7 +119,11 @@ const addCart = async (item) => {
   if (result.data.status==200) {
    return Dialog.toast({ content: `添加成功`, type: 'success' })
   } else{
-   return Dialog.toast({ content: `登录状态失效,添加失败`, type: 'error' })
+   Dialog.toast({ content: `登录状态失效,请重新登录`, type: 'error' })
+   setTimeout(() => {
+    browser.openLink(`/pages/login/login`)
+   }, 700);
+   return
   }
   
 };

+ 4 - 1
src/components/Tags/treasure.vue

@@ -24,7 +24,10 @@ const emit = defineEmits(["close"]);
 
 const goto_now = () => {
   emit("close");
-  browser.openLink(tag.hotContent.couponLink)
+
+  browser.openLink('/subPackage/pages/activity/activity?pageId='+tag.hotContent.couponLink,
+   `https://m.cdfmembers.com/shop/600667208/showactivity?pageId=${tag.hotContent.couponLink}`,
+   `/pages/showactivity/main?pageId=${tag.hotContent.couponLink}`)
 };
 </script>
 

+ 56 - 9
src/views/Panel.vue

@@ -1,26 +1,72 @@
 <template>
   <div class="panel" @mousemove.prevent @touchmove.prevent :style="{ top: panelNewTop == null ? null : `${panelNewTop}px` }">
-    <slot></slot>
+    <slot :isOpen="props.isOpen" @openPanel="clickaa"></slot>
   </div>
 </template>
 
 <script setup>
-import { ref, onMounted, computed, watch, nextTick } from "vue";
+import { ref, onMounted, computed, watch, nextTick, defineProps } from "vue";
 import { useStore } from "vuex";
 
+const props = defineProps({
+  isOpen: {
+    default: false,
+  },
+});
+
+watch(
+  () => props.isOpen,
+  (val, old) => {
+    if (val) {
+      openPanel();
+    }
+  }
+);
+
 const panelNewTop = ref(null);
 const panelOrgTop = ref(0);
-const show = ref(true);
+
 const store = useStore();
 
 const resetPanel = () => {
   if (panelOrgTop.value > 0) {
-    panelNewTop.value = panelOrgTop.value;
-    const $panel = document.querySelector(".panel");
-    const $color = $panel.querySelectorAll(".color");
-    $color.forEach((item) => {
-      item.style.backgroundColor = `rgba(0, 0, 0, ${0.2})`;
-    });
+    KanKan.Animate.transitions.start((progress) => {
+      const $panel = document.querySelector(".panel");
+      let orgTop = $panel.offsetTop;
+      let newTop = panelOrgTop.value;
+      let value = orgTop - newTop;
+
+      panelNewTop.value = orgTop - value * progress;
+
+      const $color = $panel.querySelectorAll(".color");
+      $color.forEach((item) => {
+        item.style.backgroundColor = `rgba(0, 0, 0, ${0.2})`;
+      });
+    }, 200);
+  }
+};
+
+const openPanel = () => {
+  const $panel = document.querySelector(".panel");
+
+  let orgTop = $panel.offsetTop;
+  let newTop = window.innerHeight - $panel.clientHeight;
+  let value = orgTop - newTop;
+  if (value > 0) {
+    KanKan.Animate.transitions.start((progress) => {
+      panelNewTop.value = orgTop - value * progress;
+      let opc = progress;
+      if (opc < 0.2) {
+        opc = 0.2;
+      } else if (opc > 0.5) {
+        opc = 0.5;
+      }
+
+      const $color = $panel.querySelectorAll(".color");
+      $color.forEach((item) => {
+        item.style.backgroundColor = `rgba(0, 0, 0, ${opc})`;
+      });
+    }, 200);
   }
 };
 
@@ -28,6 +74,7 @@ onMounted(() => {
   nextTick(() => {
     document.querySelector(".player").addEventListener("touchstart", () => {
       resetPanel();
+      // openPanel();
     });
   });
   const $panel = document.querySelector(".panel");