From 440b4ab9d4278d3f9c13b004d2c2289f45254cbc Mon Sep 17 00:00:00 2001
From: Liuyi <candymxq888@outlook.com>
Date: 星期二, 19 十一月 2024 17:29:06 +0800
Subject: [PATCH] 添加积分记录,修改位置获取

---
 unpackage/dist/dev/mp-weixin/pages/index/index.js |  364 ++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 252 insertions(+), 112 deletions(-)

diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.js b/unpackage/dist/dev/mp-weixin/pages/index/index.js
index 07b6a79..656a757 100644
--- a/unpackage/dist/dev/mp-weixin/pages/index/index.js
+++ b/unpackage/dist/dev/mp-weixin/pages/index/index.js
@@ -1,6 +1,7 @@
 "use strict";
 const common_vendor = require("../../common/vendor.js");
 const common_assets = require("../../common/assets.js");
+const config_baseUrl = require("../../config/baseUrl.js");
 const api_index = require("../../api/index.js");
 const _sfc_main = {
   __name: "index",
@@ -11,7 +12,6 @@
         topHeight.value = common_vendor.index.getMenuButtonBoundingClientRect().top * 2;
       }
     }
-    const isLoss = common_vendor.ref(false);
     const cardInfo = common_vendor.ref({
       id: "",
       userName: "微信用户",
@@ -20,39 +20,45 @@
       waterCardNumber: "",
       balance: "",
       count: "",
-      state: ""
+      state: "",
+      //state:true:挂失,false:正常
+      cardType: "",
+      //卡类型01卡消费 02计次消费 03游客消费 04电子卡
+      userCardType: ""
+      //userCardType:true:共享卡,false:正常卡
     });
+    const isLoss = common_vendor.ref(false);
     const isVip = common_vendor.ref(false);
-    function getVipInfo() {
-      return new Promise((resolve, reject) => {
-        api_index.getVipInfoApi().then((res) => {
-          if (res.code == 200) {
-            cardInfo.value.waterCardNumber = res.data.cardNumber;
-            cardInfo.value.state = res.data.state;
-            isLoss.value = cardInfo.value.state == 2 ? true : false;
-            if (res.data.cardType == 1) {
-              cardInfo.value.balance = res.data.balance;
-            } else if (res.data.cardType == 2) {
-              cardInfo.value.count = res.data.count;
-            }
-            isVip.value = true;
+    const isShareCard = common_vendor.ref(false);
+    async function getVipInfo() {
+      await api_index.getVipInfoApi().then((res) => {
+        if (res.code == 200 && res.data.id) {
+          console.log("获取会员卡返回响应-首页", res);
+          cardInfo.value.waterCardNumber = res.data.cardNumber;
+          cardInfo.value.cardType = res.data.cardType;
+          cardInfo.value.state = res.data.state == 2 ? true : false;
+          cardInfo.value.userCardType = res.data.userCardType == 2 ? true : false;
+          isLoss.value = cardInfo.value.state;
+          isShareCard.value = cardInfo.value.userCardType;
+          if (res.data.cardType == 1) {
+            cardInfo.value.balance = res.data.balance;
+          } else if (res.data.cardType == 2) {
+            cardInfo.value.count = res.data.count;
           }
-        });
+          isVip.value = true;
+          console.log("cardInfo", cardInfo.value, "isShareCard.value", isShareCard.value);
+        }
       });
     }
-    function getInfo() {
-      api_index.getUserInfo().then((res) => {
+    async function getInfo() {
+      await api_index.getUserInfo().then(async (res) => {
         if (res.code == 200) {
           cardInfo.value.userName = res.data.userInfo.userName ? res.data.userInfo.userName : cardInfo.value.userName;
           cardInfo.value.headImg = res.data.userInfo.headImg;
           cardInfo.value.userPhone = res.data.userInfo.userPhone;
           cardInfo.value.id = res.data.userInfo.id;
-          if (res.data.userInfo.waterCardNumber) {
-            getVipInfo();
-            console.log("00000");
-          } else {
-            isVip.value = false;
-          }
+          await getVipInfo();
+          console.log("00000", cardInfo.value);
           common_vendor.index.setStorageSync("userInfo", JSON.stringify(cardInfo.value));
         }
       });
@@ -60,23 +66,23 @@
     function toScan() {
       common_vendor.index.scanCode({
         scanType: ["qrCode"],
-        success: function(res) {
+        success: async function(res) {
           console.log("条码内容:" + res.result);
           common_vendor.index.navigateTo({
-            url: "/pages/scanWater/index"
+            url: `/pages/scanWater/index?facilityCode=${res.result}`
           });
         }
       });
     }
     const functionList = common_vendor.ref([
-      { text: "余额记录", icon: "../../static/images/index/icon31.png", url: "/pages/functionList/balanceRecord/index", isUrl: 1 },
-      { text: "消费记录", icon: "../../static/images/index/icon32.png", url: "/pages/functionList/paymentRecord/index", isUrl: 1 },
-      { text: "充值记录", icon: "../../static/images/index/icon33.png", url: "/pages/functionList/rechargeRecord/index", isUrl: 1 },
-      { text: "账户共享", icon: "../../static/images/index/icon34.png", url: "", isUrl: 1 },
-      { text: "故障上报", icon: "../../static/images/index/icon35.png", url: "/pages/infoBreakdown/index", isUrl: 1 },
-      { text: "电子发票", icon: "../../static/images/index/icon36.png", url: "", isUrl: 1 },
-      { text: "会员卡挂失", icon: "../../static/images/index/icon37.png", url: "", isUrl: 2 },
-      { text: "会员卡注销", icon: "../../static/images/index/icon38.png", url: "", isUrl: 3 }
+      { text: "余额记录", icon: "../../static/images/index/icon31.png", bgColor: "#16b387", url: "/pages/functionList/balanceRecord/index", isUrl: 1 },
+      { text: "消费记录", icon: "../../static/images/index/icon32.png", bgColor: "#329ae8", url: "/pages/functionList/paymentRecord/index", isUrl: 1 },
+      { text: "充值记录", icon: "../../static/images/index/icon33.png", bgColor: "#f0a50e", url: "/pages/functionList/rechargeRecord/index", isUrl: 1 },
+      { text: "水卡共享", icon: "../../static/images/index/icon34.png", bgColor: "#55ca8c", url: "/pages/functionList/share/cardShare/index", isUrl: 1 },
+      { text: "故障上报", icon: "../../static/images/index/icon35.png", bgColor: "#a88ff1", url: "/pages/infoBreakdown/index", isUrl: 1 },
+      { text: "优惠卷", icon: "../../static/images/index/icon36.png", bgColor: "#18bfc4", url: "", isUrl: 4 },
+      { text: "会员卡挂失", icon: "../../static/images/index/icon37.png", bgColor: "#4875f0", url: "", isUrl: 2 },
+      { text: "会员卡解绑", icon: "../../static/images/index/icon38.png", bgColor: "#f45088", url: "", isUrl: 3 }
     ]);
     function navTo(itemUrl) {
       if (itemUrl) {
@@ -89,59 +95,159 @@
       if (isUrl == 1) {
         navTo(url);
       } else if (isUrl == 2) {
-        common_vendor.index.showModal({
-          title: "会员卡挂失",
-          content: "确认挂失会员卡?",
-          success: async function(res) {
-            if (res.confirm) {
-              await api_index.reportLossApi(cardInfo.value.waterCardNumber).then(async (res2) => {
-                if (res2.code == 200) {
-                  common_vendor.index.showToast({
-                    title: "已挂失",
-                    duration: 2e3
-                  });
-                  await api_index.getVipInfoApi().then((res3) => {
-                    if (res3.code == 200) {
-                      if (res3.data.state == 2) {
-                        isLoss.value = true;
-                      }
+        if (cardInfo.value.waterCardNumber) {
+          if (!isShareCard.value && !cardInfo.value.state) {
+            common_vendor.index.showModal({
+              title: "会员卡挂失",
+              content: "确认挂失会员卡?",
+              success: async function(res) {
+                if (res.confirm) {
+                  await api_index.reportLossApi(cardInfo.value.waterCardNumber).then(async (res2) => {
+                    if (res2.code == 200) {
+                      common_vendor.index.showToast({
+                        title: "已挂失",
+                        duration: 2e3
+                      });
+                      await api_index.getVipInfoApi().then((res3) => {
+                        if (res3.code == 200) {
+                          if (res3.data.state == 2) {
+                            isLoss.value = true;
+                          }
+                        }
+                      });
                     }
                   });
                 }
-              });
-            } else {
-              console.log("点击了取消7");
-            }
+              }
+            });
+          } else if (isShareCard.value) {
+            common_vendor.index.showToast({
+              title: "共享卡无权限",
+              icon: "none"
+            });
+          } else if (cardInfo.value.state) {
+            common_vendor.index.showToast({
+              title: "已挂失",
+              icon: "none"
+            });
+          }
+        } else {
+          common_vendor.index.showToast({
+            title: "未绑定会员卡!",
+            icon: "none"
+          });
+        }
+      } else if (isUrl == 3) {
+        if (cardInfo.value.waterCardNumber) {
+          if (!isShareCard.value) {
+            common_vendor.index.showModal({
+              title: "会员卡注销",
+              content: "确认注销会员卡?",
+              success: async function(res) {
+                if (res.confirm) {
+                  await api_index.removeCardApi(cardInfo.value.waterCardNumber).then(async (res2) => {
+                    if (res2.code == 200) {
+                      common_vendor.index.showToast({
+                        title: "已注销",
+                        duration: 2e3,
+                        icon: "none"
+                      });
+                      await api_index.getVipInfoApi().then((res3) => {
+                        if (res3.code == 200) {
+                          if (!res3.data.id) {
+                            isVip.value = false;
+                            cardInfo.value.balance = "";
+                            cardInfo.value.count = "";
+                            cardInfo.value.waterCardNumber = "";
+                            common_vendor.index.setStorageSync("userInfo", JSON.stringify(cardInfo.value));
+                          }
+                        }
+                      });
+                    }
+                  });
+                }
+              }
+            });
+          } else {
+            common_vendor.index.showToast({
+              title: "共享卡无权限",
+              icon: "none"
+            });
+          }
+        } else {
+          common_vendor.index.showToast({
+            title: "未绑定会员卡!",
+            icon: "none"
+          });
+        }
+      } else {
+        upGrade();
+      }
+    }
+    function upGrade() {
+      common_vendor.index.showToast({
+        title: "该功能正在升级中!",
+        duration: 1e3,
+        icon: "none"
+      });
+    }
+    let userLocation = {
+      lat: "",
+      lon: ""
+    };
+    function getUserLocation() {
+      common_vendor.index.authorize({
+        scope: "scope.userLocation",
+        success() {
+          console.log("成功授权位置信息1");
+          storageLocation();
+        },
+        fail() {
+          console.log("用户拒绝授权位置信息,再次提示用户授权");
+          showToast();
+        }
+      });
+      function storageLocation() {
+        common_vendor.index.getLocation({
+          type: "gcj02",
+          isHighAccuracy: true,
+          success: (res) => {
+            userLocation.lat = res.latitude;
+            userLocation.lon = res.longitude;
+            common_vendor.index.setStorageSync("userLocation", JSON.stringify(userLocation));
+          },
+          fail: () => {
+            showToast();
           }
         });
-      } else if (isUrl == 3) {
+      }
+      function showToast() {
         common_vendor.index.showModal({
-          title: "会员卡注销",
-          content: "确认注销会员卡?",
-          success: async function(res) {
+          title: "请求授权当前位置",
+          content: "请求获取您的位置,加载附近饮水设备信息!",
+          confirmText: "前往设置",
+          success: (res) => {
             if (res.confirm) {
-              await api_index.removeCardApi(cardInfo.value.waterCardNumber).then(async (res2) => {
-                if (res2.code == 200) {
-                  common_vendor.index.showToast({
-                    title: "已注销",
-                    duration: 2e3,
-                    icon: "none"
-                  });
-                  await api_index.getVipInfoApi().then((res3) => {
-                    if (res3.code == 200) {
-                      if (!res3.data.id) {
-                        isVip.value = false;
-                        cardInfo.value.balance = "";
-                        cardInfo.value.count = "";
-                        cardInfo.value.waterCardNumber = "";
-                        common_vendor.index.setStorageSync("userInfo", JSON.stringify(cardInfo.value));
-                      }
-                    }
-                  });
+              common_vendor.index.openSetting({
+                success: (res1) => {
+                  if (res1.authSetting["scope.userLocation"]) {
+                    console.log("用户二次授权成功");
+                    setTimeout(() => {
+                      storageLocation();
+                    }, 1e3);
+                  } else {
+                    showToast();
+                    console.log("用户拒绝授权");
+                  }
                 }
               });
             } else {
-              console.log("点击了取消8");
+              common_vendor.index.showToast({
+                title: "请先授权!",
+                duration: 2e3,
+                icon: "none"
+              });
+              showToast();
             }
           }
         });
@@ -149,63 +255,97 @@
     }
     common_vendor.onMounted(async () => {
       getTopHeight();
+      await getInfo();
+      await getUserLocation();
+      console.log("进入首页了");
     });
     common_vendor.onShow(async () => {
+      getTopHeight();
       await getInfo();
+    });
+    common_vendor.index.showShareMenu({
+      withShareTicket: true,
+      menus: ["shareAppMessage", "shareTimeline"],
+      success: function() {
+        console.log("分享菜单显示成功");
+      },
+      fail: function(err) {
+        console.error("分享菜单显示失败", err);
+      }
     });
     return (_ctx, _cache) => {
       return common_vendor.e({
-        a: common_assets._imports_0$1,
-        b: common_vendor.t(cardInfo.value.userName),
-        c: common_vendor.o(($event) => navTo("/pages/userInfo/index")),
-        d: common_vendor.o(($event) => navTo("/pages/userInfo/index")),
-        e: common_assets._imports_1$1,
-        f: common_assets._imports_2,
-        g: common_vendor.o(($event) => navTo("/pages/addCard/index")),
-        h: common_assets._imports_3,
-        i: isVip.value
-      }, isVip.value ? {
-        j: common_assets._imports_4
+        a: cardInfo.value.headImg
+      }, cardInfo.value.headImg ? {
+        b: common_vendor.unref(config_baseUrl.BASE_URL) + "/upload" + cardInfo.value.headImg
+      } : {
+        c: common_assets._imports_0$3
+      }, {
+        d: common_vendor.t(cardInfo.value.userName),
+        e: common_vendor.o(($event) => navTo("/pages/userInfo/index")),
+        f: common_vendor.o(($event) => navTo("/pages/userInfo/index")),
+        g: common_assets._imports_1$1,
+        h: common_assets._imports_0$2,
+        i: isShareCard.value
+      }, isShareCard.value ? {
+        j: common_vendor.t(cardInfo.value.waterCardNumber)
       } : {}, {
-        k: isLoss.value && isVip.value
-      }, isLoss.value && isVip.value ? {} : {}, {
+        k: !isShareCard.value
+      }, !isShareCard.value ? common_vendor.e({
         l: isVip.value
       }, isVip.value ? {
-        m: common_vendor.t(cardInfo.value.waterCardNumber)
+        m: common_assets._imports_3
       } : {}, {
         n: isVip.value
       }, isVip.value ? {} : {}, {
         o: !isVip.value
       }, !isVip.value ? {} : {}, {
-        p: isVip.value
+        p: isLoss.value && isVip.value
+      }, isLoss.value && isVip.value ? {} : {}, {
+        q: isVip.value
       }, isVip.value ? {
-        q: common_vendor.t(cardInfo.value.balance)
+        r: common_vendor.t(cardInfo.value.waterCardNumber)
       } : {}, {
-        r: isVip.value
+        s: isVip.value
+      }, isVip.value ? {} : {}, {
+        t: isVip.value
       }, isVip.value ? {
-        s: common_vendor.o(($event) => navTo("/pages/recharge/index"))
+        v: common_vendor.t(cardInfo.value.balance)
       } : {}, {
-        t: topHeight.value + "rpx",
-        v: common_assets._imports_5,
-        w: common_vendor.o(($event) => navTo("/pages/sendWater/index")),
-        x: common_assets._imports_1,
-        y: common_vendor.o(($event) => navTo("/pages/facilityList/index")),
-        z: common_assets._imports_7,
-        A: common_vendor.o(($event) => toScan()),
-        B: common_vendor.f(functionList.value, (item, index, i0) => {
+        w: !isVip.value
+      }, !isVip.value ? {
+        x: common_assets._imports_4,
+        y: common_vendor.o(($event) => navTo("/pages/addCard/index"))
+      } : {}, {
+        z: isVip.value
+      }, isVip.value ? {
+        A: common_vendor.o(($event) => navTo("/pages/recharge/index"))
+      } : {}) : {}, {
+        B: topHeight.value + "rpx",
+        C: common_assets._imports_5,
+        D: common_vendor.o(upGrade),
+        E: common_assets._imports_1,
+        F: common_vendor.o(($event) => navTo("/pages/facilityList/index")),
+        G: common_assets._imports_7,
+        H: common_vendor.o(($event) => toScan()),
+        I: common_vendor.f(functionList.value, (item, index, i0) => {
           return {
             a: item.icon,
-            b: common_vendor.t(item.text),
-            c: common_vendor.o(($event) => setEvent(item.isUrl, item.url), index),
-            d: index
+            b: item.bgColor,
+            c: common_vendor.t(item.text),
+            d: common_vendor.o(($event) => setEvent(item.isUrl, item.url), index),
+            e: index
           };
         }),
-        C: common_assets._imports_8,
-        D: common_assets._imports_9,
-        E: common_assets._imports_10,
-        F: common_vendor.o(($event) => navTo("/pages/station/index")),
-        G: common_assets._imports_11,
-        H: common_assets._imports_10
+        J: common_assets._imports_8,
+        K: common_assets._imports_9,
+        L: common_vendor.o(($event) => navTo("/pages/pointsMall/index")),
+        M: common_assets._imports_10,
+        N: common_assets._imports_11,
+        O: common_vendor.o(($event) => navTo("/pages/station/index")),
+        P: common_assets._imports_12,
+        Q: common_assets._imports_11,
+        R: common_vendor.o(upGrade)
       });
     };
   }

--
Gitblit v1.9.3