Browse Source

新增错误提示页面

lsh 4 months ago
parent
commit
f7abc4b560
11 changed files with 103 additions and 71 deletions
  1. 8 7
      App.vue
  2. 4 0
      lib/link.ts
  3. 10 25
      lib/store.ts
  4. 0 4
      main.js
  5. 9 0
      pages.json
  6. 11 13
      pages/accredit/index.vue
  7. 33 0
      pages/error/index.vue
  8. 9 7
      pages/feedback/details.vue
  9. 10 8
      pages/feedback/index.vue
  10. BIN
      static/image/error.png
  11. 9 7
      stores/rest.ts

+ 8 - 7
App.vue

@@ -3,17 +3,18 @@ import { onMounted, ref } from 'vue'
 import * as link from '@/lib/link'
 import rest from '@/stores/rest'
 import dd from 'gdt-jsapi';
-
-import { useGlobalStore } from '@/lib/store';
+import { useUserStore } from '@/lib/store'
+import { storeToRefs } from 'pinia'
 
 export default {
   setup() {
-    const globalStore = useGlobalStore();
+	const store = useUserStore();
+	const { globalParameter } = storeToRefs(store);
 
 	const formData = ref({
 		appkey: null,
 		appsecret: null,
-		authcode: null,
+		authCode: null,
 		domainname: null,
 	})
 	const getBasicInfo = ()=> {
@@ -26,11 +27,11 @@ export default {
 		dd.ready(()=> {
 			dd.getAuthCode({}).then((result) => {
 				 if (result.code){
-					formData.value.authcode = result.code
+					formData.value.authCode = result.code
 				 }else {
-					formData.value.authcode = result.auth_code
+					formData.value.authCode = result.auth_code
 				 }
-				globalStore.setAuthCode(formData.value.authcode);
+				 globalParameter.value.authCode = formData.value.authCode
 			}).catch(err => {
 				link.goLogin()
 			})

+ 4 - 0
lib/link.ts

@@ -77,4 +77,8 @@ export const goBJDetails = (id = null) => {
 //  登录页面
 export const goLogin = ()=> {
 	navto('/pages/login/index')
+}
+// 错误页面
+export const getErrorPage = ()=> {
+	navto('/pages/error/index')
 }

+ 10 - 25
lib/store.ts

@@ -1,28 +1,13 @@
 import { defineStore } from 'pinia';
 
-export const useGlobalStore = defineStore('global', {
-  state: () => ({
-    authCode: null,
-    zjhm: null,
-    userName: null,
-  }),
-  actions: {
-    setAuthCode(authCode) {
-      this.authCode = authCode;
-      localStorage.setItem('authCode', authCode);
-    },
-    setZjhm(zjhm) {
-      this.zjhm = zjhm;
-      localStorage.setItem('zjhm', zjhm);
-    },
-    setUserName(userName) {
-      this.userName = userName;
-      localStorage.setItem('userName', userName);
-    },
-    loadFromLocalStorage() {
-      this.authCode = localStorage.getItem('authCode');
-      this.zjhm = localStorage.getItem('zjhm');
-      this.userName = localStorage.getItem('userName');
-    },
-  },
+export const useUserStore = defineStore('user', {
+  state: () => {
+    return {
+      globalParameter: {
+        authCode: '',
+		userName: '',
+		zjhm: '',
+      }
+    }
+  }
 });

+ 0 - 4
main.js

@@ -22,7 +22,6 @@ import {
   SkeletonParagraph,
 } from 'vant';
 import { createPinia } from 'pinia';
-import { useGlobalStore } from '@/lib/store';
 
 export function createApp() {
   const app = createSSRApp(App);
@@ -37,9 +36,6 @@ export function createApp() {
   app.use(SkeletonAvatar);
   app.use(SkeletonParagraph);
   
-  const globalStore = useGlobalStore(); 
-  globalStore.loadFromLocalStorage();
-  
   return {
     app
   }

+ 9 - 0
pages.json

@@ -19,6 +19,15 @@
 			}
 		},
 		{
+			"path": "pages/error/index",
+			"style": {
+				"navigationBarTitleText": "错误页面",
+				"h5":{
+					"titleNView":false
+				}
+			}
+		},
+		{
 			"path": "pages/feedback/index",
 			"style": {
 				"navigationBarTitleText": "中医用药一件事-办件记录",

+ 11 - 13
pages/accredit/index.vue

@@ -9,14 +9,15 @@
 	import { aesEncrypt, aesDecrypt } from "@/lib/encryption"
 	import { onLoad } from "@dcloudio/uni-app";
 	
-	import { useGlobalStore } from '@/lib/store';
-	 
-	const globalStore = useGlobalStore();
+	import { useUserStore } from '@/lib/store';
+	import { storeToRefs } from 'pinia';
+	const store = useUserStore();	 
+	const { globalParameter } = storeToRefs(store);
 	
 	const formData = ref({
 		appkey: null,
 		appsecret: null,
-		authcode: null,
+		authCode: null,
 		domainname: null,
 	})
 	
@@ -24,13 +25,13 @@
 		dd.ready(()=> {
 			dd.getAuthCode({}).then((result) => {
 				 if (result.code){
-					 formData.value.authcode = result.code
+					 formData.value.authCode = result.code
 				 }else {
-					 formData.value.authcode = result.auth_code
+					 formData.value.authCode = result.auth_code
 				 }
-				globalStore.setAuthCode(formData.value.authcode);
+				globalParameter.value.authCode = formData.value.authCode
 				setTimeout(() => { 
-					getUserInfo(formData.value.authcode); 
+					getUserInfo(formData.value.authCode); 
 				}, 0);
 			}).catch(err => {
 				alert('不是钉钉环境',err)
@@ -39,9 +40,9 @@
 		})
 	}
 	
-	const getUserInfo = async (authcode) => {
+	const getUserInfo = async (authCode) => {
 	  try {
-		let res = await rest.post('/zyyp/ykz/getUserInfo?authCode='+ authcode,'')
+		let res = await rest.post('/zyyp/ykz/getUserInfo?authCode='+ authCode,'')
 		link.goBJList(aesEncrypt(res.openid),aesEncrypt(res.lastName))
 	  } catch (error) {
 	    console.error(error);
@@ -64,9 +65,6 @@
 		}else{
 			login()
 		}
-		// 示例:设置 authCode 
-		globalStore.setAuthCode('your_auth_code'); // 示例:获取 authCode
-		console.log(globalStore.authCode);
 	})
 </script>
 

+ 33 - 0
pages/error/index.vue

@@ -0,0 +1,33 @@
+<template>
+	<view class="error-page">
+		<image mode="heightFix" src="/static/image/error.png" />
+		<view class="error-title">暂无权限</view>
+		<view class="error-text">尊敬的用户,您没有本应用访问权限。本应用责任部门为重庆两江新区社会发展局,若您需使用本应用,请拨打联系电话023-67685085。</view>
+	</view>
+</template>
+
+<script>
+</script>
+
+<style lang="scss">
+	.error-page {
+		background-color: #fff;
+		height: calc(100vh - 200rpx);
+		display: flex;
+		align-items: center;
+		flex-direction: column;
+		padding: 190rpx 80rpx 0;
+		.error-title {
+			margin: 40rpx 0;
+			font-size: 16px;
+			line-height: 22px;
+			font-weight: 400;
+			color: #363A44;
+		}
+		.error-text {
+			font-size: 14px;
+			font-weight: 400;
+			color: #B9BCBF;
+		}
+	}
+</style>

+ 9 - 7
pages/feedback/details.vue

@@ -67,8 +67,10 @@
 	import { feedbackVO } from '../../lib/type';
 	import { formatDate } from '@/lib/util'
 
-	import { useGlobalStore } from '@/lib/store';
-	const globalStore = useGlobalStore();
+	import { useUserStore } from '@/lib/store';
+	import { storeToRefs } from 'pinia';
+	const store = useUserStore();	 
+	const { globalParameter } = storeToRefs(store);
 
 	const formRules = reactive({
 		djr: {
@@ -155,7 +157,7 @@
 			// 提交请求
 			try {
 				if (uniType.value == 'add') {
-					await rest.post('/zyyp/feedback/create', formData.value,globalStore.authCode)
+					await rest.post('/zyyp/feedback/create', formData.value,globalParameter.value.authCode)
 					dlg.success('已新增反馈登记!')
 				}
 				link.back()
@@ -170,10 +172,10 @@
 	//  初始化数据
 	const getInfo = async () => {
 		try {
-			formData.value.djr = globalStore.userName 
-			formData.value.zjhm = globalStore.zjhm
+			formData.value.djr = globalParameter.value.userName 
+			formData.value.zjhm = globalParameter.value.zjhm
 			// 医疗机构列表
-			let res = await rest.get('/system/dept/list-all-simple2',{ orgType: 1 },globalStore.authCode)
+			let res = await rest.get('/system/dept/list-all-simple2',{ orgType: 1 },globalParameter.value.authCode)
 			if (!res) return
 			// 转换数据 
 			yljgList.value = (res as any[]).map(item => ({ 
@@ -182,7 +184,7 @@
 			}));
 			// 
 			if (itemId.value){
-				let itemRes = await rest.get('/zyyp/feedback/get', { id: itemId.value },globalStore.authCode) as feedbackVO
+				let itemRes = await rest.get('/zyyp/feedback/get', { id: itemId.value },globalParameter.value.authCode) as feedbackVO
 				formData.value = itemRes
 				popupDeptText.value = itemRes.yljgmc
 				const matchedItem = feedbackArray.value.find(item => item.value === Number(itemRes.fklx));

+ 10 - 8
pages/feedback/index.vue

@@ -43,8 +43,10 @@
 	import { formatDate } from '@/lib/util'
 	import FeedbackList from './FeedbackList.vue'
 	
-	import { useGlobalStore } from '@/lib/store'; 
-	const globalStore = useGlobalStore();
+	import { useUserStore } from '@/lib/store';
+	import { storeToRefs } from 'pinia';
+	const store = useUserStore();
+	const { globalParameter } = storeToRefs(store);
 	
 	const queryParams = ref({
 		pageNo: 1,
@@ -112,7 +114,7 @@
 	const getList = async () => {
 		try {
 			// loaded.value = true;
-			let res = await rest.get('/zyyp/feedback/page', queryParams.value,globalStore.authCode)
+			let res = await rest.get('/zyyp/feedback/page', queryParams.value,globalParameter.value.authCode)
 			let _list = res.list
 	
 	
@@ -185,21 +187,21 @@
 	}
 	
 	onLoad((data) => {
-		alert("onLoad:" + JSON.stringify(globalStore))
+		alert("onLoad:" + JSON.stringify(globalParameter.value))
 		queryParams.value.zjhm = aesDecrypt(data.hzsfzh)
 		let zjhm = aesDecrypt(data.hzsfzh)
 		let name = aesDecrypt(data.hzxm)
-		globalStore.setZjhm(zjhm);
-		globalStore.setUserName(name);
+		globalParameter.value.zjhm = zjhm
+		globalParameter.value.userName = name
 	})
 	
 	onShow(() => { 
-		alert("onShow:" + JSON.stringify(globalStore))
+		alert("onShow:" + JSON.stringify(globalParameter.value))
 		queryParams.value.pageNo = 1;
 		getList()
 	})
 	onMounted(() => {
-		alert("onMounted:" + JSON.stringify(globalStore))
+		alert("onMounted:" + JSON.stringify(globalParameter.value))
 	});
 </script>
 

BIN
static/image/error.png


+ 9 - 7
stores/rest.ts

@@ -1,5 +1,6 @@
 import { BASE_URL } from "@/lib/config"
 import dlg from "@/lib/dlg"
+import * as link from '@/lib/link'
 import { getToken, getTenant } from "@/lib/auth/token"
 
 
@@ -71,13 +72,14 @@ const fetch = async (method : any, url : string, data : any, loading = false,aut
 						let { code, msg, data, message } = res.data
 						// console.log(method + "[" + url + "]success", res);
 						if (!isSuccess(code)) {
-							if (msg) {
-								reject(msg);
-							}
-							if (message) {
-								dlg.error(message);
-								reject(message);
-							}
+							link.getErrorPage()
+							// if (msg) {
+							// 	reject(msg);
+							// }
+							// if (message) {
+							// 	dlg.error(message);
+							// 	reject(message);
+							// }
 						}
 						resolve(res.data['data']);
 					} else {