App.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
common/anti_shake.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
main.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pages/index/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pages/tabBar/notice/detail.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pages/tabBar/notice/measures.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pages/tabBar/response/response.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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 }) }) 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,//禁止多次点击 } 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({ 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); 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, 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) { 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 : [];