Bläddra i källkod

添加签名验签功能

ximinghao 3 dagar sedan
förälder
incheckning
891018cd7e
3 ändrade filer med 64 tillägg och 1 borttagningar
  1. 47 0
      src/api/sign.js
  2. 9 1
      src/views/HomePage.vue
  3. 8 0
      src/views/yxgl/StatisticalAnalysis.vue

+ 47 - 0
src/api/sign.js

@@ -0,0 +1,47 @@
+import {
+	postform
+} from '../utils/request'
+
+const dmsPath = systemConfig.dmsDataProxy
+// const dmsPath = "http://127.0.0.1:10081/dms"
+
+const verifySign = (data) => {
+	return postform(dmsPath + '/content/verifySign', {
+		data: JSON.stringify(data)
+	})
+}
+
+const verifyTableSign = (data) => {
+	return postform(dmsPath + '/content/verifyTableSign', {
+		data: JSON.stringify(data)
+	})
+}
+
+const hasInvalidSignResult = (result) => {
+	return Boolean(result && Number(result.code) === 214)
+}
+
+const verifySignSuccess = async (data) => {
+	try {
+        const result = await verifySign(data)
+        return !hasInvalidSignResult(result)
+    } catch {
+        return true
+    }
+}
+
+const verifyTableSignSuccess = async (data) => {
+	try {
+        const result = await verifyTableSign(data)
+        return !hasInvalidSignResult(result)
+    } catch {
+        return true
+    }
+}
+
+export {
+	verifySign,
+	verifyTableSign,
+	verifySignSuccess,
+	verifyTableSignSuccess
+}

+ 9 - 1
src/views/HomePage.vue

@@ -639,6 +639,7 @@ import {
 } from "@/api/count";
 import * as echarts from "echarts";
 import moment from "moment";
+import { verifyTableSignSuccess } from "@/api/sign";
 let chart1 = null;
 let chartMultiLevelUse = null;
 import NumberScroll from "@/components/AppVue/numberScroll.vue";
@@ -815,6 +816,7 @@ export default {
     await this.pullLastDayCount();
   },
   mounted() {
+    this.verifyHotDataSign();
     const nowDate = new Date();
     nowDate.setHours(0, 0, 0, 0);
     this.chartMluTimeRange = [
@@ -840,7 +842,13 @@ export default {
     window.removeEventListener("scroll", this.handleScroll, true);
   },
   methods: {
-    goAnchor(id) {
+    async verifyHotDataSign() {
+      const isSuccess = await verifyTableSignSuccess([1652]);
+      if (!isSuccess) {
+        this.$message.warning("当前热度数据可能已被篡改,注意甄别");
+      }
+    },
+   goAnchor(id) {
       const anchor = document.getElementById(id);
       if (anchor) {
         anchor.scrollIntoView({ behavior: "smooth" });

+ 8 - 0
src/views/yxgl/StatisticalAnalysis.vue

@@ -270,6 +270,7 @@ import appCenter from "@/api/appCenter";
 import { countlmType } from "@/api/count";
 import { formatYxglServiceCategory } from "@/utils/yxglServiceCategoryLabels.js";
 import HomePage_Demo from "@/views/HomePage_Demo.vue";
+import { verifyTableSignSuccess } from "@/api/sign";
 
 export default {
   name: "",
@@ -398,6 +399,7 @@ export default {
     },
   },
   mounted() {
+    this.verifyHotDataSign();
     this.$nextTick(() => {
       this.nowTimes = [
         new Date(new Date().setTime(new Date() - 3600 * 1000 * 24 * 30)),
@@ -406,6 +408,12 @@ export default {
     });
   },
   methods: {
+    async verifyHotDataSign() {
+      const isSuccess = await verifyTableSignSuccess([1652]);
+      if (!isSuccess) {
+        this.$message.warning("当前热度数据可能已被篡改,注意甄别");
+      }
+    },
     formatYxglServiceCategory,
     /** 详情弹窗筛选下拉:服务类型等字段展示中文,value 仍为原始值以便筛选 */
     selectOptionDisplayLabel(fieldKey, raw) {