From e7b81924e3fa4d7c5a52484f465efa6733e8c402 Mon Sep 17 00:00:00 2001
From: zhouwenxuan <1175765986@qq.com>
Date: 星期四, 26 十月 2023 11:10:38 +0800
Subject: [PATCH] 防止重复点击

---
 pages/tabBar/notice/measures.vue   |    5 
 pages/tabBar/notice/detail.vue     |   53 +++++++++++-
 common/anti_shake.js               |   30 +++++++
 main.js                            |    2 
 App.vue                            |  132 ++++++++++++++++----------------
 pages/index/index.vue              |   10 +-
 pages/tabBar/response/response.vue |    2 
 7 files changed, 155 insertions(+), 79 deletions(-)

diff --git a/App.vue b/App.vue
index 4c65956..ea88211 100644
--- a/App.vue
+++ b/App.vue
@@ -3,72 +3,72 @@
 var jpushModule = uni.requireNativePlugin("JG-JPush")
 	export default {
 			onLaunch: function() {
-				// console.log('App Launch',jpushModule)
-				// jpushModule.initJPushService();
-				// jpushModule.setLoggerEnable(true);
-				// jpushModule.addConnectEventListener(result=>{
-				// 	let connectEnable = result.connectEnable
-				// 	uni.$emit('connectStatusChange',connectEnable)
-				// });
-				// //消息回调——点击通知栏消息 跳转指定页面
-				// jpushModule.addNotificationListener(result=>{
-				// 	if (result.notificationEventType == "notificationOpened") {
-				// 		//判断是否登录
-				// 		if (uni.getStorageSync('tk')) {
-				// 			//工作通知——工作人员工作通知页
-				// 			if (result.title.includes('工作通知')){
-				// 				uni.switchTab({
-				// 					url: '/pages/tabBar/notice/notice',
-				// 				})	
-				// 			//信息审核——领导审核页
-				// 			}else if(result.title == '您有新的信息需要审批'){
-				// 				uni.switchTab({
-				// 					url: '/pages/tabBar/examine/examine',
-				// 				})
-				// 			//审核结果——首页(后续加pc端信息发布页)
-				// 			}else if(result.title.includes('信息审核')){
-				// 				uni.switchTab({
-				// 					url: '/pages/tabBar/information/information',
-				// 				})
-				// 			}	
-				// 		}else {
-				// 			console.log("未登录")
-				// 			//未登录跳转首页
-				// 			uni.navigateTo({
-				// 				url: '/pages/index/index',
-				// 				complete(res) {
-				// 					console.log(res);
-				// 				}
-				// 			})
-				// 			uni.showToast({
-				// 				icon: 'none',
-				// 				title: '请先登录',
-				// 				duration: 3000
-				// 			})
-				// 		}
-				// 	}
-				// });
-				// jpushModule.addCustomMessageListener(result=>{
-				// 	let type = result.type
-				// 	let messageType = result.messageType
-				// 	let content = result.content
-				// 	uni.showToast({
-				// 		icon: 'none',
-				// 		title: JSON.stringify(result),
-				// 		duration: 3000
-				// 	})
-				// });
-				// jpushModule.addLocalNotificationListener(result=>{
-				// 	let messageID = result.messageID
-				// 	let title = result.title
-				// 	let content = result.content
-				// 	let extras = result.extras
-				// 	uni.showToast({
-				// 		icon: 'none',
-				// 		title: JSON.stringify(result),
-				// 		duration: 3000
-				// 	})
-				// })
+				console.log('App Launch',jpushModule)
+				jpushModule.initJPushService();
+				jpushModule.setLoggerEnable(true);
+				jpushModule.addConnectEventListener(result=>{
+					let connectEnable = result.connectEnable
+					uni.$emit('connectStatusChange',connectEnable)
+				});
+				//消息回调——点击通知栏消息 跳转指定页面
+				jpushModule.addNotificationListener(result=>{
+					if (result.notificationEventType == "notificationOpened") {
+						//判断是否登录
+						if (uni.getStorageSync('tk')) {
+							//工作通知——工作人员工作通知页
+							if (result.title.includes('工作通知')){
+								uni.switchTab({
+									url: '/pages/tabBar/notice/notice',
+								})	
+							//信息审核——领导审核页
+							}else if(result.title == '您有新的信息需要审批'){
+								uni.switchTab({
+									url: '/pages/tabBar/examine/examine',
+								})
+							//审核结果——首页(后续加pc端信息发布页)
+							}else if(result.title.includes('信息审核')){
+								uni.switchTab({
+									url: '/pages/tabBar/information/information',
+								})
+							}	
+						}else {
+							console.log("未登录")
+							//未登录跳转首页
+							uni.navigateTo({
+								url: '/pages/index/index',
+								complete(res) {
+									console.log(res);
+								}
+							})
+							uni.showToast({
+								icon: 'none',
+								title: '请先登录',
+								duration: 3000
+							})
+						}
+					}
+				});
+				jpushModule.addCustomMessageListener(result=>{
+					let type = result.type
+					let messageType = result.messageType
+					let content = result.content
+					uni.showToast({
+						icon: 'none',
+						title: JSON.stringify(result),
+						duration: 3000
+					})
+				});
+				jpushModule.addLocalNotificationListener(result=>{
+					let messageID = result.messageID
+					let title = result.title
+					let content = result.content
+					let extras = result.extras
+					uni.showToast({
+						icon: 'none',
+						title: JSON.stringify(result),
+						duration: 3000
+					})
+				})
 				
 				
 				
diff --git a/common/anti_shake.js b/common/anti_shake.js
new file mode 100644
index 0000000..2dbbd77
--- /dev/null
+++ b/common/anti_shake.js
@@ -0,0 +1,30 @@
+// 防止处理多次点击
+function noMoreClicks(methods, info) {
+    // methods是需要点击后需要执行的函数, info是点击需要传的参数
+    let that = this;
+    if (that.noClick) {
+		console.log("点击")
+        // 第一次点击
+        that.noClick= false;
+        if(info && info !== '') {
+            // info是执行函数需要传的参数
+            methods(info);
+        } else {
+            methods();
+        }
+        setTimeout(()=> {
+            that.noClick= true;
+        }, 2000)//时间可以自己定义
+    } else {
+        // 这里是重复点击的判断
+		uni.showToast({
+			title: '请稍后点击',
+			icon: 'error',
+			duration: 1000
+		})
+    }
+}
+//导出
+export default {
+    noMoreClicks,//禁止多次点击
+}
\ No newline at end of file
diff --git a/main.js b/main.js
index d344b41..8048a2b 100644
--- a/main.js
+++ b/main.js
@@ -5,10 +5,12 @@
 import request from '@/common/request.js'
 import uView from '@/uni_modules/uview-ui'
 import store from './store/index.js'
+import commom from './common/anti_shake.js'
 Vue.use(uView)
 Vue.config.productionTip = false
 
 Vue.prototype.$Z = request;
+Vue.prototype.$noMoreClicks = commom.noMoreClicks;
 App.mpType = 'app'
 
 const app = new Vue({
diff --git a/pages/index/index.vue b/pages/index/index.vue
index dab79d2..2b9226a 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -70,7 +70,7 @@
 			}
 		},
 		onLoad() {
-			// this.connect()
+			this.connect()
 		},
 		methods: {
 			Login(){
@@ -80,10 +80,10 @@
 						this.isLogining = false;
 						 //登录成功后
 						 //设置别名
-						// jpushModule.setAlias({
-						// 	'alias': this.phone,
-						// 	'sequence': 1
-						// })
+						jpushModule.setAlias({
+							'alias': this.phone,
+							'sequence': 1
+						})
 						uni.setStorageSync("name", this.form.name);
 						uni.setStorageSync("pwd", this.form.pwd);
 						uni.setStorageSync("tk", res.data.tk);
diff --git a/pages/tabBar/notice/detail.vue b/pages/tabBar/notice/detail.vue
index 434a482..45b62ed 100644
--- a/pages/tabBar/notice/detail.vue
+++ b/pages/tabBar/notice/detail.vue
@@ -45,6 +45,14 @@
 				<view style="width: 100%; height: 550px;" v-if="directViewUrl">
 					<iframe :src="directViewUrl" class="frameStyle"></iframe>
 				</view>
+				<view style="width: 100%; height: 550px;" v-if="urls.length > 0">
+					<view v-for="(item, index) in urls" :key="index" >
+						<view style="display: flex;margin-top: 10px;" @click="openFile(item)" >
+							<u-icon name="attach" color="#2979ff" size="20"></u-icon> <span>{{item.name}}</span>
+						</view>
+					</view>
+				</view>
+				
 <!-- 				<view class="attache" v-if="isAllImg == 'no'">
 					<view v-for="(item, index) in detailData.attachments" :key="index" >
 							<view  style="display: flex;margin-top: 10px;" v-if="item.suffix == 'jpg'|| item.suffix =='jpeg' || item.suffix =='png'"> 
@@ -150,16 +158,48 @@
 				unitType: '',
 				directViewUrl: '',
 				cityMessage: '响应措施反馈',
-				measureData: {}
+				measureData: {},
+				urls: []
 			}
 		},
 		 onLoad:function(options){
+			 // #ifdef APP-PLUS
+			const currentWebview = this.$scope.$getAppWebview();//获取当前web-view  此对象相当于html5plus里的plus.webview.currentWebview()。在uni-app里vue页面直接使用plus.webview.currentWebview()无效
+			setTimeout(function() {
+				const wv = currentWebview.children()[0];
+				console.log(wv);
+				wv.setStyle({//设置web-view距离顶部的距离以及自己的高度,单位为px
+				top: 68,
+				height:300
+				})
+			  }, 1000);//如页面初始化调用需要写延迟
+			// #endif
 			this.role = uni.getStorageSync('roleName');
 			 //获取手机状态栏高度
 			this.statusBarHeight = uni.getSystemInfoSync()['statusBarHeight'];
 		    let test = options.data && JSON.parse(decodeURIComponent(options.data));
 			this.detailData = test;
+			
 			this.directViewUrl = this.detailData.directViewUrl;
+			if(this.detailData.attachments && this.detailData.attachments.length >0){
+				this.urls = this.detailData.attachments.map(item => {
+					return {
+						url: VUE_APP_BASE_URL + item.attachement,
+						name: item.attachementName
+					}
+				})
+			}else if(this.detailData.attachment && this.detailData.attachment.length >0){
+				this.urls = this.detailData.attachment.map(item => {
+					return {
+						url: VUE_APP_BASE_URL + item.attachment,
+						name: item.attachmentName
+					}
+				})
+			}
+			console.log("urls",this.urls)
+			
+			
+			
 			// this.directViewUrl = 'https://huaban.com/'
 			this.unitType = uni.getStorageSync('unittype');
 			if(this.detailData.role == 'leader' || this.detailData.role == 'infoPeople' ) {
@@ -279,11 +319,12 @@
 			openFile(item) {
 				let fileUrl = '';
 				console.log("iiii",item)
-				if(this.detailData.role == 'leader' || this.detailData.role == 'infoPeople' ){
-				  fileUrl = VUE_APP_BASE_URL + item.attachment;
-				}else {
-				  fileUrl = VUE_APP_BASE_URL + item.attachement;
-				}
+				// if(this.detailData.role == 'leader' || this.detailData.role == 'infoPeople' ){
+				//   fileUrl = VUE_APP_BASE_URL + item.attachment;
+				// }else {
+				//   fileUrl = VUE_APP_BASE_URL + item.attachement;
+				// }
+				fileUrl = item.url
 				console.log("urlllllllll",fileUrl)
 				uni.downloadFile({
 					url: fileUrl,
diff --git a/pages/tabBar/notice/measures.vue b/pages/tabBar/notice/measures.vue
index 7aee752..b12f0ba 100644
--- a/pages/tabBar/notice/measures.vue
+++ b/pages/tabBar/notice/measures.vue
@@ -52,7 +52,7 @@
 			</view>
 		</view>
 		<view class="measures">
-		<u-button  class="measureBtn" type="primary" @click="submit">提交</u-button>
+		<u-button  class="measureBtn" type="primary" @click="$noMoreClicks(submit)">提交</u-button>
 		</view>
 	</view>
 </template>
@@ -79,7 +79,8 @@
 				measureIds : [],
 				baseUrl: VUE_APP_BASE_URL,
 				list: [],
-				showBtn: false
+				showBtn: false,
+				noClick:true,
 			}
 		},
 		onLoad(options) {
diff --git a/pages/tabBar/response/response.vue b/pages/tabBar/response/response.vue
index 64cee7d..0d1fe8b 100644
--- a/pages/tabBar/response/response.vue
+++ b/pages/tabBar/response/response.vue
@@ -82,6 +82,8 @@
 			},
 			getResponseList() {
         this.loading = true
+
+
 				getResponse(this.data).then(res => {
 					if (res.code === 100) {
 						let list = res.data ? res.data : [];

--
Gitblit v1.9.2