Bläddra i källkod

用户协议和隐私政策

fanghuisheng 2 år sedan
förälder
incheckning
d9301b1cf9

+ 176 - 197
src/components/list-test/list-test.vue

@@ -1,205 +1,184 @@
 <template>
-	<view  class="site-wrapper" ref="contentWrapper">
-		
-		<!-- 筛选框start -->
-		<view class="ding">
-			<view class="cu-bar search bg-gray filter-section">
-				<view class="search-form round bg-white">
-					<text class="cuIcon-search"></text>
-					<input class="" @focus="InputFocus" @blur="InputBlur" :adjust-position="false" type="text" placeholder="请输入站点名称"
-					 confirm-type="search" v-model="nowSiteName"></input>
-				</view>
-				<view class="action">
-					<button class="cu-btn bg-blue round" @click="searchData">查询</button>
-				</view>
-			</view>
-		</view>
-		<!-- 筛选框end -->
-		
-		<!-- 站点列表start -->
-		<view class="site-items">
-			<view class="cu-list menu-avatar">
-				<view class="cu-item" :class="modalName=='move-box-'+ index?'move-cur':''" v-for="(item,index) in bindData"
-				 :key="index" :data-target="'move-box-' + index">
-					<view class="cu-avatar round lg"  v-bind:style="{ 'background-image': 'url(' + nowIcon+ ')' }"></view>
-					
-					
-					<view class="content" v-if="nowType==1"  @tap="goNowUrl(item)" >
-						<view class="text-grey site-tit">
-							<text style="width:260rpx;" class="inOneLine">{{item.siteName}}</text>
-							
-							<text style="font-size:28rpx;text-align:right"> 
-							   ( 共{{item.siteAlarmCount}}个未处理告警 )
-							</text>
-						</view>
-					</view>
-					
-					<view class="content" v-else  @tap="goNowUrl" @longpress="showDetail(item)">
-						<view class="text-grey site-tit">
-							{{item.siteName}}
-							<text>(共3个设备)</text>
-						</view>
-						<view class="showDetail" v-if="item.isShow" @tap.stop="goNowDetailUrl" >查看详情</view>
-					</view>
-					
-					
-					
-					
-					<view class="nav-right num">
-						<view class="text-grey">
-							<text class="icon iconfont margin-right-xs margin-left-lg">&#xe629;</text>
-						</view>
-					</view>
-				</view>
-			</view>
-		</view>
-		<!-- 站点列表end -->
-	
-		
-	</view>
+  <view class="site-wrapper" ref="contentWrapper">
+    <!-- 筛选框start -->
+    <view class="ding">
+      <view class="cu-bar search bg-gray filter-section">
+        <view class="search-form round bg-white">
+          <text class="cuIcon-search"></text>
+          <input class="" @focus="InputFocus" @blur="InputBlur" :adjust-position="false" type="text" placeholder="请输入站点名称" confirm-type="search" v-model="nowSiteName" />
+        </view>
+        <view class="action">
+          <button class="cu-btn bg-blue round" @click="searchData">查询</button>
+        </view>
+      </view>
+    </view>
+    <!-- 筛选框end -->
+
+    <!-- 站点列表start -->
+    <view class="site-items">
+      <view class="cu-list menu-avatar">
+        <view class="cu-item" :class="modalName == 'move-box-' + index ? 'move-cur' : ''" v-for="(item, index) in bindData" :key="index" :data-target="'move-box-' + index">
+          <view class="cu-avatar round lg" v-bind:style="{ 'background-image': 'url(' + nowIcon + ')' }"></view>
+
+          <view class="content" v-if="nowType == 1" @tap="goNowUrl(item)">
+            <view class="text-grey site-tit">
+              <text style="width: 260rpx" class="inOneLine">{{ item.siteName }}</text>
+
+              <text style="font-size: 28rpx; text-align: right"> ( 共{{ item.siteAlarmCount }}个未处理告警 ) </text>
+            </view>
+          </view>
+
+          <view class="content" v-else @tap="goNowUrl" @longpress="showDetail(item)">
+            <view class="text-grey site-tit">
+              {{ item.siteName }}
+              <text>(共3个设备)</text>
+            </view>
+            <view class="showDetail" v-if="item.isShow" @tap.stop="goNowDetailUrl">查看详情</view>
+          </view>
+
+          <view class="nav-right num">
+            <view class="text-grey">
+              <text class="icon iconfont margin-right-xs margin-left-lg">&#xe629;</text>
+            </view>
+          </view>
+        </view>
+      </view>
+    </view>
+    <!-- 站点列表end -->
+  </view>
 </template>
 
 <script>
-	export default {
-		// name: 'listTest',
-		props:{
-			bindType:{
-				type:Number,
-				default: ''
-			},
-			bindData:{
-				type:Array,
-				default: ''
-			},
-			bindUrl:{
-				type:String,
-				default: ''
-			},
-			bindDetailUrl:{
-				type:String,
-				default: ''
-			},
-			bindIcon:{
-				type:String,
-				default: ''
-			},
-			bindNum:{
-				type:String,
-				default: ''
-			},
-			bindSiteName:{
-				type:String,
-				default: ''
-			}
-		},
-		data() {
-			return {
-				modalName: null,
-				nowData:this.bindData,
-				nowUrl:this.bindUrl,
-				nowDetailUrl:this.bindDetailUrl,
-				nowIcon:this.bindIcon,
-				nowNum:this.bindNum,
-				nowType:this.bindType,
-				nowSiteName:this.bindSiteName,
-				
-			};
-		},
-		onPullDownRefresh() {
-			console.log('refresh');
-			setTimeout(function() {
-				uni.stopPullDownRefresh();
-			}, 1000);
-		},
-		
-		computed: {
-			newSiteListData() {
-				return this.nowData.map(item => {
-					this.$set(item, "isShow", false)
-					return item
-				})
-			}
-		
-		},
-		
-		mounted() {
-			document.addEventListener('click', (e) => {
-				if (e.target.className != 'showDetail') {
-					this.nowData.forEach(item => {
-						item.isShow = false
-					})
-				}
-			})
-		},
-		methods:{
-			
-			searchData(){
-				// console.log("a: "+val, oldVal);
-				this.$parent.getDataList({
-					"siteName":this.nowSiteName
-				})
-			},
-			
-			
-			// 隐藏显示
-			showDetail(e) {
-				// alert(1);
-				// 存储点击那一项的状态
-				const nowStatu = e.isShow;
-				// 将每一项列表的isShow设置为false,让所有的列表都隐藏
-				this.nowData.forEach(item => {
-					item.isShow = false
-				})
-				// 用于再次点击该项的取反
-				e.isShow = !nowStatu
-			},
-			
-			
-			
-			// 页面跳转
-			goNowUrl(item) {
-				if(item.siteAlarmCount){
-					uni.navigateTo({
-						url: this.nowUrl+'?companyCode='+item.companyCode,
-						success: res => {},
-						fail: () => {},
-						complete: () => {}
-					});
-				}
-				
-			},
-			
-			goNowDetailUrl() {
-				uni.navigateTo({
-					url: this.nowDetailUrl,
-					success: res => {},
-					fail: () => {},
-					complete: () => {}
-				});
-			},
-			InputFocus(e) {
-				this.InputBottom = e.detail.height
-			},
-			InputBlur(e) {
-				this.InputBottom = 0
-			},
-		}
-	}
+export default {
+  // name: 'listTest',
+  props: {
+    bindType: {
+      type: Number,
+      default: "",
+    },
+    bindData: {
+      type: Array,
+      default: "",
+    },
+    bindUrl: {
+      type: String,
+      default: "",
+    },
+    bindDetailUrl: {
+      type: String,
+      default: "",
+    },
+    bindIcon: {
+      type: String,
+      default: "",
+    },
+    bindNum: {
+      type: String,
+      default: "",
+    },
+    bindSiteName: {
+      type: String,
+      default: "",
+    },
+  },
+  data() {
+    return {
+      modalName: null,
+      nowData: this.bindData,
+      nowUrl: this.bindUrl,
+      nowDetailUrl: this.bindDetailUrl,
+      nowIcon: this.bindIcon,
+      nowNum: this.bindNum,
+      nowType: this.bindType,
+      nowSiteName: this.bindSiteName,
+    };
+  },
+  onPullDownRefresh() {
+    console.log("refresh");
+    setTimeout(function () {
+      uni.stopPullDownRefresh();
+    }, 1000);
+  },
+
+  computed: {
+    newSiteListData() {
+      return this.nowData.map((item) => {
+        this.$set(item, "isShow", false);
+        return item;
+      });
+    },
+  },
+
+  mounted() {
+    document.addEventListener("click", (e) => {
+      if (e.target.className != "showDetail") {
+        this.nowData.forEach((item) => {
+          item.isShow = false;
+        });
+      }
+    });
+  },
+  methods: {
+    searchData() {
+      // console.log("a: "+val, oldVal);
+      this.$parent.getDataList({
+        siteName: this.nowSiteName,
+      });
+    },
+
+    // 隐藏显示
+    showDetail(e) {
+      // alert(1);
+      // 存储点击那一项的状态
+      const nowStatu = e.isShow;
+      // 将每一项列表的isShow设置为false,让所有的列表都隐藏
+      this.nowData.forEach((item) => {
+        item.isShow = false;
+      });
+      // 用于再次点击该项的取反
+      e.isShow = !nowStatu;
+    },
+
+    // 页面跳转
+    goNowUrl(item) {
+      if (item.siteAlarmCount) {
+        uni.navigateTo({
+          url: this.nowUrl + "?companyCode=" + item.companyCode,
+          success: (res) => {},
+          fail: () => {},
+          complete: () => {},
+        });
+      }
+    },
+
+    goNowDetailUrl() {
+      uni.navigateTo({
+        url: this.nowDetailUrl,
+        success: (res) => {},
+        fail: () => {},
+        complete: () => {},
+      });
+    },
+    InputFocus(e) {
+      this.InputBottom = e.detail.height;
+    },
+    InputBlur(e) {
+      this.InputBottom = 0;
+    },
+  },
+};
 </script>
 
 <style>
-	
-	.showDetail {
-		position: absolute;
-		background: #fff;
-		box-shadow: 0 1px 6px 0 rgb(32 33 36 / 28%);
-		padding: 0rpx 32rpx;
-		border-radius: 10rpx;
-		top: 42rpx;
-		right: 0%;
-		z-index: 3000000;
-		font-size: 28rpx;
-	
-	}
-
+.showDetail {
+  position: absolute;
+  background: #fff;
+  box-shadow: 0 1px 6px 0 rgb(32 33 36 / 28%);
+  padding: 0rpx 32rpx;
+  border-radius: 10rpx;
+  top: 42rpx;
+  right: 0%;
+  z-index: 3000000;
+  font-size: 28rpx;
+}
 </style>

+ 21 - 26
src/components/zzlb-mutiselect/zzlb-mutiselect.vue

@@ -1,15 +1,15 @@
 <template>
-  <view class="" style="width: 100%;">
-    <view class=" flex flex-wrap">
-      <view v-for="(item, index) in items" class="cu-tag bg-cyan radius">
+  <view class="" style="width: 100%">
+    <view class="flex flex-wrap">
+      <view v-for="(item, index) in items" :key="index" class="cu-tag bg-cyan radius">
         <slot name="default" v-bind:item="item">{{ item }}</slot>
         <text class="margin-left line-blue cuIcon-close round bg-red" @click="onremove(index)"></text>
       </view>
-      <view class="flex ">
+      <view class="flex">
         <input style1="width: 60px;" placeholder="输入..." type="text" v-model="query" @input="onshuru" @click="onquery" @keyup="onquery" />
         <text
           v-if="query"
-          class=" cuIcon-close "
+          class="cuIcon-close"
           @click="
             query = '';
             onquery();
@@ -23,12 +23,7 @@
         <button class="cu-btn " @click="visible = 0">取消</button>
         <button class="cu-btn " @click="onqueren">确认</button>
       </view> -->
-      <picker-view
-        class="picker-view"
-        @change="e => (pvvalue = mlist[e.detail.value[0]])"
-        indicator-style1="height:40px"
-        :style1="{ height: (mlist.length > 6 ? 6 : mlist.length / 2) * 34 + 'px' }"
-      >
+      <picker-view class="picker-view" @change="(e) => (pvvalue = mlist[e.detail.value[0]])" indicator-style1="height:40px" :style1="{ height: (mlist.length > 6 ? 6 : mlist.length / 2) * 34 + 'px' }">
         <picker-view-column>
           <view class="item" v-for="(item, index) in mlist" :key="index">
             <slot name="option" v-bind:item="item">{{ item }}</slot>
@@ -41,34 +36,34 @@
 <script>
 export default {
   props: {
-    url: { type: String, default: '' },
+    url: { type: String, default: "" },
     list: {
       type: Array,
-      default: function() {
+      default: function () {
         return [];
-      }
+      },
     },
     value: {
       type: Array,
-      default: function() {
+      default: function () {
         return [];
-      }
-    }
+      },
+    },
   },
   data() {
     return {
       visible: 0,
       items: [],
-      query: '',
+      query: "",
       mlist: [],
-      pvvalue: []
+      pvvalue: [],
     };
   },
   computed: {},
   watch: {
     value() {
       this.items = this.value || [];
-    }
+    },
   },
   methods: {
     onquery() {
@@ -77,14 +72,14 @@ export default {
       this.pvvalue = this.mlist[0];
 
       if (this.list && this.list.length > 0) {
-        const l = this.list.filter(f => f.indexOf(this.query) > -1);
+        const l = this.list.filter((f) => f.indexOf(this.query) > -1);
         if (l.indexOf(this.pvvalue) === -1) {
           this.pvvalue = l[0];
         }
         this.mlist = l;
         return;
       }
-      this.$http.get(this.url, { params: { title: this.query } }).then(r => {
+      this.$http.get(this.url, { params: { title: this.query } }).then((r) => {
         r.data.list;
         this.mlist = r.data.list;
         this.pvvalue = this.mlist[0];
@@ -92,7 +87,7 @@ export default {
     },
     onremove(index) {
       this.items.splice(index, 1);
-      this.$emit('input', this.items);
+      this.$emit("input", this.items);
     },
     onshuru() {
       this.visible = 1;
@@ -100,9 +95,9 @@ export default {
     onqueren() {
       this.visible = 0;
       if (this.pvvalue) this.items.push(this.pvvalue);
-      this.$emit('input', this.items);
-    }
-  }
+      this.$emit("input", this.items);
+    },
+  },
 };
 </script>
 <style>

+ 4 - 5
src/config.js

@@ -1,7 +1,5 @@
 // 应用全局配置
 export default {
-  // baseUrl: 'https://vue.ruoyi.vip/prod-api',
-
   //#ifdef H5
   baseUrl: import.meta.env.MODE === "production" ? "http://mobile.usky.cn:8099/prod-api" : "http://172.16.120.165:13200/prod-api",
   //#endif
@@ -10,7 +8,6 @@ export default {
   baseUrl: "http://" + uni.getStorageSync("serveUrl") + "/prod-api",
   //#endif
 
-  // baseUrl: "http://mobile.usky.cn:8099/prod-api",
   websiteUrl: "https://qhome.usky.cn",
   // NODE_ENV=devlopment
   // 应用信息
@@ -26,11 +23,13 @@ export default {
     // 政策协议
     agreements: [
       {
-        title: "隐私政策",
+        title: "用户服务协议",
+        content: "暂无数据",
         url: "https://ruoyi.vip/protocol.html",
       },
       {
-        title: "用户服务协议",
+        title: "隐私政策",
+        content: "暂无数据",
         url: "https://ruoyi.vip/protocol.html",
       },
     ],

+ 6 - 0
src/pages.json

@@ -102,6 +102,12 @@
         "navigationBarTitleText": "浏览文本"
       }
     },
+    {
+      "path": "pages/common/textview/index1",
+      "style": {
+        "navigationBarTitleText": "浏览文本"
+      }
+    },
     {
       "path": "pages/export/export",
       "style": {

+ 43 - 0
src/pages/common/textview/index1.vue

@@ -0,0 +1,43 @@
+<template>
+  <view class="view-text">
+    <u-parse class="uni-body view-content" :content="content"></u-parse>
+  </view>
+</template>
+
+<script setup>
+import { onReady, onLoad, onShow, onNavigationBarButtonTap } from "@dcloudio/uni-app";
+import { ref, onMounted, inject, shallowRef, reactive, getCurrentInstance, toRefs } from "vue";
+
+const data = reactive({
+  title: "",
+  content: "",
+});
+
+const { title, content } = toRefs(data);
+
+onLoad((options) => {
+  title.value = options.title;
+  content.value = options.content;
+  uni.setNavigationBarTitle({
+    title: options.title,
+  });
+});
+</script>
+
+<style>
+page {
+  background-color: #ffffff;
+}
+</style>
+
+<style lang="scss" scoped>
+.view-text {
+  padding: 5px;
+  .view-content {
+    font-size: 26rpx;
+    color: #333;
+    line-height: 24px;
+    word-wrap: break-word;
+  }
+}
+</style>

+ 97 - 41
src/pages/login.vue

@@ -53,6 +53,18 @@
       <view class="switchText" @click="switchMode">
         <text>{{ switchText }}</text>
       </view>
+
+      <!-- #ifdef APP-PLUS -->
+      <view class="xieyi text-center">
+        <u-checkbox-group>
+          <u-checkbox v-model="userChecked" shape="circle" inactiveColor="#0081ff" size="13"></u-checkbox>
+        </u-checkbox-group>
+        <text>我已阅读并同意</text>
+        <text @click="handleUserAgrement" class="text-blue">用户协议</text>
+        <text>和</text>
+        <text @click="handlePrivacy" class="text-blue">隐私协议</text>
+      </view>
+      <!--#endif-->
     </view>
     <view class="bottom">
       <div class="title">{{ bottomTitle }}</div>
@@ -92,16 +104,16 @@ const data = reactive({
   inputIconBool: true,
   /** 服务器配置数据 */
   linkUrl: uni.getStorageSync("serveUrl"),
+  /** 用户隐私协议数据 */
+  userChecked: false,
 
   // VerificationCodeOne
 });
 
-const { title, bg, bottomTitle, logo, phone, verify, codeTime, switchText, username, password, tenantId, inputIconBool, linkUrl } = toRefs(data);
+const { title, bg, bottomTitle, logo, phone, verify, codeTime, switchText, username, password, tenantId, inputIconBool, linkUrl, userChecked } = toRefs(data);
 
 function goSeverConfig() {
-  uni.navigateTo({
-    url: "/pages/serveConfig",
-  });
+  proxy.$tab.navigateTo("/pages/serveConfig");
 }
 
 /**登录方式切换 */
@@ -115,6 +127,13 @@ function switchMode() {
 
 /** 点击发送验证码 */
 function getVerifyCode() {
+  //#ifdef APP-PLUS
+  if (!uni.getStorageSync("serveUrl")) {
+    proxy.$modal.msg("首次登录请先进行服务器配置");
+    return;
+  }
+  //#endif
+
   if (!phone.value) {
     proxy.$modal.msg("请输入手机号码");
     return;
@@ -123,9 +142,19 @@ function getVerifyCode() {
     proxy.$modal.msg("请输入正确的手机号码");
     return;
   }
+
+  //#ifdef APP-PLUS
+  if (userChecked.value) {
+    proxy.$modal.msg("请在阅读并同意 用户协议和隐私协议后登录");
+    return;
+  }
+  //#endif
+
   verify.value = undefined;
-  getSendSms({
+  getCodeImg({
     phone: phone.value,
+  }).then((res) => {
+    console.log(res);
   });
   if (codeTime.value > 0) {
     proxy.$modal.msg("不能重复获取");
@@ -142,13 +171,6 @@ function getVerifyCode() {
   }
 }
 
-/** 获取验证码 */
-async function getSendSms(params) {
-  getCodeImg(params).then((res) => {
-    console.log(res);
-  });
-}
-
 /**
  * 判断运行环境
  */
@@ -161,11 +183,10 @@ function env() {
 
   //#ifdef H5
   linkUrl.value = window.location.host;
-  // var linkUrl='ces.cn';
-  // var linkUrl='172.16.120.165:13203'
-  //#endif
-
+  // linkUrl.value='ces.cn';
+  // linkUrl.value='172.16.120.165:13203'
   getMobileTenantConfigApi({ url: linkUrl.value });
+  //#endif
 
   //  uni.showToast({
   //   title: '服务器链接地址为'+linkUrl,
@@ -192,7 +213,7 @@ function env() {
 }
 
 /** 点击提交按钮 */
-async function submitRes() {
+function submitRes() {
   //#ifdef APP-PLUS
   if (!uni.getStorageSync("serveUrl")) {
     proxy.$modal.msg("首次登录请先进行服务器配置");
@@ -213,11 +234,6 @@ async function submitRes() {
       proxy.$modal.msg("请输入验证码");
       return;
     }
-    login({
-      phone: phone.value,
-      verify: verify.value,
-      tenantId: tenantId.value,
-    });
   } else {
     if (!username.value) {
       proxy.$modal.msg("请输入账户");
@@ -227,34 +243,37 @@ async function submitRes() {
       proxy.$modal.msg("请输入密码");
       return;
     }
+  }
 
-    login({
-      username: username.value,
-      password: password.value,
-      tenantId: tenantId.value,
-    });
+  //#ifdef APP-PLUS
+  if (userChecked.value) {
+    proxy.$modal.msg("请在阅读并同意 用户协议和隐私协议后登录");
+    return;
   }
+  //#endif
+
+  login({
+    username: username.value,
+    password: password.value,
+    tenantId: tenantId.value,
+  });
 }
 
 /** 获取登录数据 */
-async function login(data) {
+function login(data) {
   proxy.$modal.loading("登录中,请耐心等待...");
 
   useStore.Login(data).then(() => {
-    info();
-  });
-}
-
-/** 获取用户信息 */
-async function info() {
-  proxy.$modal.closeLoading();
-  useStore.GetInfo().then((res) => {
-    proxy.$tab.reLaunch("/pages/index");
+    /** 获取用户信息 */
+    proxy.$modal.closeLoading();
+    useStore.GetInfo().then((res) => {
+      proxy.$tab.reLaunch("/pages/index");
+    });
   });
 }
 
 /** 获取登录页数据 */
-async function getMobileTenantConfigApi(params) {
+function getMobileTenantConfigApi(params) {
   getMobileTenantConfig(params).then((res) => {
     if (res.data.length > 0) {
       let data = res.data[0];
@@ -268,6 +287,17 @@ async function getMobileTenantConfigApi(params) {
   });
 }
 
+// 用户协议
+function handleUserAgrement() {
+  let site = getApp().globalData.config.appInfo.agreements[0];
+  proxy.$tab.navigateTo(`/pages/common/textview/index1?title=${site.title}&content=${site.content}`);
+}
+// 隐私协议
+function handlePrivacy() {
+  let site = getApp().globalData.config.appInfo.agreements[1];
+  proxy.$tab.navigateTo(`/pages/common/textview/index1?title=${site.title}&content=${site.content}`);
+}
+
 watchEffect(() => {
   //#ifdef APP-PLUS
   if (uni.getStorageSync("serveUrl")) {
@@ -341,7 +371,7 @@ page {
       }
 
       :deep(.input-placeholder) {
-        color: #a0a4af;
+        color: #96a6b5 !important;
       }
 
       :deep(.uni-input-wrapper) {
@@ -359,7 +389,7 @@ page {
       }
 
       :deep(:-webkit-autofill) {
-        caret-color: #a0a4af; // 设置光标颜色
+        caret-color: #000; // 设置光标颜色
         // -webkit-text-fill-color: gray !important;
         -webkit-box-shadow: 0 0 0px 1000px transparent inset !important;
         background-color: transparent;
@@ -446,7 +476,7 @@ page {
     }
 
     .switchText {
-      color: #a0a4af;
+      color: #96a6b5;
       width: 100%;
       display: block;
       margin-top: 20px;
@@ -460,6 +490,32 @@ page {
       color: #fff;
       border: 0px;
     }
+
+    .xieyi {
+      color: #96a6b5;
+      margin-top: 30px;
+      display: flex;
+      justify-content: center;
+      > uni-view {
+        margin: auto 0;
+      }
+      > uni-text {
+        margin: auto 0;
+      }
+      // animation: roundRule 0.5s linear infinite;
+    }
+
+    @keyframes roundRule {
+      0% {
+        transform: translateX(0);
+      }
+      50% {
+        transform: translateX(-5px);
+      }
+      100% {
+        transform: translateX(0);
+      }
+    }
   }
 
   .bottom {

+ 1 - 3
src/pages/serveConfig.vue

@@ -98,9 +98,7 @@ function handleSubmit() {
  * @跳转登录
  */
 function navigateTo() {
-  uni.navigateTo({
-    url: "/pages/login",
-  });
+  proxy.$tab.redirectTo("/pages/login");
 }
 
 onLoad((options) => {

+ 1 - 1
src/permission.js

@@ -4,7 +4,7 @@ import { getToken } from "@/utils/auth";
 const loginPage = "/pages/login";
 
 // 页面白名单
-const whiteList = ["/pages/login", "/pages/serveConfig", "/pages/common/webview/index", "/pages/business/mhxf/unitInfoCollection/index"];
+const whiteList = ["/pages/login", "/pages/serveConfig", "/pages/common/textview/index1", "/pages/common/webview/index", "/pages/business/mhxf/unitInfoCollection/index"];
 
 // 检查地址白名单
 function checkWhite(url) {