| | |
| | | <script type="text/javascript" src="../../js/http.js"></script> |
| | | |
| | | <script type="text/javascript" src="../../js/global.js"></script> |
| | | |
| | | <script src="http://121.196.36.24:8001/Scripts/jquery-3.4.1.min.js"></script> |
| | | <script src="http://121.196.36.24:8001/Scripts/jquery.signalR-2.2.2.min.js"></script> |
| | | <script src="http://121.196.36.24:8001/SignalR/Hubs"></script> |
| | | |
| | | |
| | | |
| | | <script type="text/javascript"> |
| | | var pushServer = "http://demo.dcloud.net.cn/push/?"; |
| | | var message = null; |
| | | |
| | | // 监听plusready事件 |
| | | document.addEventListener("plusready", function() { |
| | | message = document.getElementById("message"); |
| | | // 监听点击消息事件 |
| | | plus.push.addEventListener("click", function(msg) { |
| | | // 判断是从本地创建还是离线推送的消息 |
| | | switch (msg.payload) { |
| | | case "LocalMSG": |
| | | outSet("点击本地创建消息启动:"); |
| | | break; |
| | | default: |
| | | outSet("点击离线推送消息启动:"); |
| | | break; |
| | | } |
| | | // 提示点击的内容 |
| | | plus.nativeUI.alert(msg.content); |
| | | // 处理其它数据 |
| | | logoutPushMsg(msg); |
| | | }, false); |
| | | // 监听在线消息事件 |
| | | plus.push.addEventListener("receive", function(msg) { |
| | | if (msg.aps) { // Apple APNS message |
| | | outSet("接收到在线APNS消息:"); |
| | | } else { |
| | | outSet("接收到在线透传消息:"); |
| | | } |
| | | logoutPushMsg(msg); |
| | | }, false); |
| | | }, false); |
| | | |
| | | /** |
| | | * 日志输入推送消息内容 |
| | | */ |
| | | function logoutPushMsg(msg) { |
| | | outLine("title: " + msg.title); |
| | | outLine("content: " + msg.content); |
| | | if (msg.payload) { |
| | | if (typeof(msg.payload) == "string") { |
| | | outLine("payload(String): " + msg.payload); |
| | | } else { |
| | | outLine("payload(JSON): " + JSON.stringify(msg.payload)); |
| | | } |
| | | } else { |
| | | outLine("payload: undefined"); |
| | | } |
| | | if (msg.aps) { |
| | | outLine("aps: " + JSON.stringify(msg.aps)); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 获取本地推送标识信息 |
| | | */ |
| | | function getPushInfo() { |
| | | outSet("获取客户端推送标识信息:"); |
| | | plus.push.getClientInfoAsync(function(info) { |
| | | outLine('Success'); |
| | | outLine(JSON.stringify(info)); |
| | | }, function(e) { |
| | | outLine('Failed'); |
| | | outLine(JSON.stringify(e)); |
| | | }); |
| | | } |
| | | /** |
| | | * 本地创建一条推动消息 |
| | | */ |
| | | function createLocalPushMsg(msg) { |
| | | var cont = $('#cont').val(); |
| | | var options = { |
| | | cover: false |
| | | }; |
| | | plus.push.createMessage(msg, "LocalMSG", options); |
| | | outSet("创建本地消息成功!"); |
| | | outLine("请到系统消息中心查看!"); |
| | | if (plus.os.name == "iOS") { |
| | | outLine('*如果无法创建消息,请到"设置"->"通知"中配置应用在通知中心显示!'); |
| | | } |
| | | } |
| | | /** |
| | | * 读取所有推送消息 |
| | | */ |
| | | function listAllPush() { |
| | | var msgs = null; |
| | | switch (plus.os.name) { |
| | | case "Android": |
| | | msgs = plus.push.getAllMessage(); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | if (!msgs) { |
| | | outSet("此平台不支持枚举推送消息列表!"); |
| | | return; |
| | | } |
| | | outSet("枚举消息列表(" + msgs.length + "):"); |
| | | for (var i in msgs) { |
| | | var msg = msgs[i]; |
| | | outLine(i + ": " + msg.title + " - " + msg.content); |
| | | } |
| | | } |
| | | /** |
| | | * 清空所有推动消息 |
| | | */ |
| | | function clearAllPush() { |
| | | plus.push.clear(); |
| | | outSet("清空所有推送消息成功!"); |
| | | } |
| | | |
| | | |
| | | $(function() { |
| | | //前端Hub的使用,注意的是,Hub的名字是ChatHub,这里使用时首字母小写 |
| | | // var work = $.connection.chatHub; |
| | | var work = $.connection.chatHub; |
| | | |
| | | //对应后端的SendMessage函数,消息接收函数 |
| | | work.client.sendMessage = function(msg) { |
| | | console.log(msg,1) |
| | | createLocalPushMsg(msg) |
| | | }; |
| | | |
| | | //后端SendLogin调用后,产生的loginUser回调 |
| | | work.client.loginUser = function(userlist) { |
| | | // console.log(userlist, 9) |
| | | // reloadUser(userlist); |
| | | }; |
| | | |
| | | $.connection.hub.url = 'http://121.196.36.24:8001/signalr' |
| | | //hub连接开启 |
| | | $.connection.hub.start().done(function() { |
| | | |
| | | var username = localStorage.getItem('username'); |
| | | |
| | | //发送上线信息 |
| | | work.server.sendLogin(username); |
| | | |
| | | // const aaa = [{ |
| | | // "code": "Q", |
| | | // "name": "呼叫质量", |
| | | // "children": [{ |
| | | // "usercode": "999", |
| | | // "username": "楼先生" |
| | | // }] |
| | | // }] |
| | | |
| | | // work.server.sendByGroupList('楼先生', 'CJ002', 'SB001', aaa) |
| | | |
| | | }); |
| | | |
| | | }); |
| | | |
| | | //重新加载用户列表 |
| | | // var reloadUser = function() { |
| | | // $("#username").empty(); |
| | | // for (i = 0; i < 5; i++) { |
| | | // $("#username").append("<option value=" + i + ">" + i + "</option>"); |
| | | // } |
| | | // } |
| | | |
| | | |
| | | |
| | | </script> |
| | | |
| | | |
| | | |
| | | </head> |
| | | <body> |
| | |
| | | |
| | | <div class="body"> |
| | | |
| | | <van-nav-bar title="工作台" @click-right="onClickRight"> |
| | | <!-- <object data="../../components/my_van_nav_bar.html" title='我' width="100%" height="44"></object> --> |
| | | |
| | | <!-- <van-nav-bar title="工作台" @click-right="onClickRight"> |
| | | <template #right> |
| | | <van-popover placement="bottom-end" :offset="[13,8]" v-model="showPopover" trigger="click" |
| | | :actions="actions" @select="onSelect"> |
| | | <template #reference> |
| | | <van-icon name="bars" size='20' color='#fff' /> |
| | | <van-badge :content="10" max='99'> |
| | | <van-icon name="bars" size='20' color='#fff' /> |
| | | </van-badge> |
| | | </template> |
| | | </van-popover> |
| | | </template> |
| | | </van-nav-bar> --> |
| | | |
| | | |
| | | <van-nav-bar title="工作台" @click-right="onClickRight"> |
| | | <template #right> |
| | | <van-popover placement="bottom-end" :offset="[13,8]" v-model="showPopover" trigger="click"> |
| | | |
| | | <div class="topRight"> |
| | | <div class="topRightItem" @click="myMessageClick"> |
| | | <div> |
| | | <van-icon name="comment-o" |
| | | :badge="messageNumber!==0?(messageNumber>9?'9+':messageNumber):false" |
| | | size="1.28rem" style="margin-right: 8px;margin-top: 18px;" /> |
| | | </div> |
| | | <div style="font-size: 14px;border-bottom: 1px solid #eee;">我的消息</div> |
| | | </div> |
| | | <div class="topRightItem" @click="topPopoverClick('退出登录')"> |
| | | <div> |
| | | <van-icon name="revoke" style="margin-right: 8px;" /> |
| | | </div> |
| | | <div style="font-size: 14px;">退出登录</div> |
| | | </div> |
| | | </div> |
| | | |
| | | <template #reference> |
| | | <van-badge :content="messageNumber" max='9' v-if='messageNumber!==0'> |
| | | <van-icon name="bars" size='20' color='#fff' /> |
| | | </van-badge> |
| | | <van-icon v-else name="bars" size='20' color='#fff' /> |
| | | </template> |
| | | </van-popover> |
| | | </template> |
| | | </van-nav-bar> |
| | | |
| | | <van-swipe :autoplay="3000"> |
| | | <van-swipe-item v-for="(image, index) in images" :key="index"> |
| | | <img v-lazy="image" :src='image' style="background-size: 100% 100%;width: 100%;" /> |
| | | </van-swipe-item> |
| | | </van-swipe> |
| | | |
| | | <van-grid :gutter="20" :border='false' square :column-num="3" style="margin: 30px auto 0; width: 90%;"> |
| | | <van-grid-item v-for="item in firstMenu" @click='vanGridItem(item)' :key="item" :text="item.name"> |
| | | <img :src="item.imgurl" alt="" |
| | | style="width: 56px;height:56px;margin-top: 10px;border-radius: 10px;"> |
| | | <div style="margin-top: 5px;font-size: 14px;color: #929399;">{{item.name}}</div> |
| | | </van-grid-item> |
| | | </van-grid> |
| | | <van-pull-refresh v-model="isLoading" @refresh="onRefresh"> |
| | | <van-swipe :autoplay="3000"> |
| | | <van-swipe-item v-for="(image, index) in images" :key="index"> |
| | | <img v-lazy="image" :src='image' style="background-size: 100% 100%;width: 100%;" /> |
| | | </van-swipe-item> |
| | | </van-swipe> |
| | | |
| | | <van-action-sheet lazy-render :closeable='false' close-on-click-action close-on-click-overlay |
| | | safe-area-inset-bottom v-model="sheetShow" :title="firstMenuName"> |
| | | <van-grid :border='false' :gutter="5" square :column-num="3" style="width: 80%; margin: auto;"> |
| | | <van-grid-item v-for="item in secondMenu" @click='vanGridSecondItem(item)' :key="item" |
| | | icon="photo-o"> |
| | | <van-grid :gutter="20" :border='false' square :column-num="3" |
| | | style="margin: 30px auto 0; width: 90%;"> |
| | | <van-grid-item v-for="item in firstMenu" @click='vanGridItem(item)' :key="item" |
| | | :text="item.name"> |
| | | <img :src="item.imgurl" alt="" |
| | | style="width: 48px;height:48px;margin-top: 10px;border-radius: 10px;"> |
| | | <div style="margin-top: 5px;font-size: 12px;color: #929399;">{{item.name}}</div> |
| | | style="width: 56px;height:56px;margin-top: 10px;border-radius: 10px;"> |
| | | <div style="margin-top: 5px;font-size: 14px;color: #929399;">{{item.name}}</div> |
| | | </van-grid-item> |
| | | </van-grid> |
| | | </van-action-sheet> |
| | | </div> |
| | | |
| | | <van-action-sheet lazy-render :closeable='false' close-on-click-action close-on-click-overlay |
| | | safe-area-inset-bottom v-model="sheetShow" :title="firstMenuName"> |
| | | <van-grid :border='false' :gutter="5" square :column-num="3" style="width: 80%; margin: auto;"> |
| | | <van-grid-item v-for="item in secondMenu" @click='vanGridSecondItem(item)' :key="item" |
| | | icon="photo-o"> |
| | | <img :src="item.imgurl" alt="" |
| | | style="width: 48px;height:48px;margin-top: 10px;border-radius: 10px;"> |
| | | <div style="margin-top: 5px;font-size: 12px;color: #929399;">{{item.name}}</div> |
| | | </van-grid-item> |
| | | </van-grid> |
| | | </van-action-sheet> |
| | | </div> |
| | | </van-pull-refresh> |
| | | |
| | | <van-overlay :show="overlayShow" @click="overlayShow=false" /> |
| | | |
| | |
| | | el: '#app', |
| | | data: function() { |
| | | return { |
| | | isLoading: false, //下拉刷新 |
| | | images: [ |
| | | '../../static/images/swiper01.png', |
| | | '../../static/images/swiper02.png', |
| | |
| | | overlayShow: false, |
| | | showPopover: false, |
| | | actions: [{ |
| | | icon: 'description', |
| | | text: '操作指导' |
| | | }, { |
| | | icon: 'award-o', |
| | | text: '成品追溯' |
| | | }, { |
| | | icon: 'revoke', |
| | | text: '退出登录' |
| | | }], |
| | | icon: 'comment-o', |
| | | text: '安灯响应' |
| | | }, |
| | | { |
| | | icon: 'description', |
| | | text: '操作指导' |
| | | }, { |
| | | icon: 'award-o', |
| | | text: '成品追溯' |
| | | }, { |
| | | icon: 'revoke', |
| | | text: '退出登录' |
| | | } |
| | | ], |
| | | firstMenu: [], //一级菜单 |
| | | firstMenuName: '', |
| | | secondMenu: [], //二级菜单 |
| | | |
| | | messageNumber: 0, //我的消息数值 |
| | | } |
| | | }, |
| | | created() { |
| | |
| | | }, |
| | | mounted() { |
| | | this.getfirstMenu() |
| | | |
| | | this.getLoginAppAnDonMessage() |
| | | setInterval(()=>{ |
| | | this.getLoginAppAnDonMessage() |
| | | },1000*10) |
| | | |
| | | }, |
| | | methods: { |
| | | onRefresh() { |
| | | setTimeout(() => { |
| | | vant.Toast('刷新成功'); |
| | | this.getfirstMenu() |
| | | this.getLoginAppAnDonMessage() |
| | | // vant.Notify('刷新成功'); |
| | | this.isLoading = false; |
| | | |
| | | }, 1000); |
| | | }, |
| | | |
| | | // 获取消息接口 |
| | | async getLoginAppAnDonMessage() { |
| | | const data = { |
| | | userid: localStorage.getItem('userid'), |
| | | usercode: localStorage.getItem('usercode'), |
| | | username: localStorage.getItem('username'), |
| | | usertype: localStorage.getItem('usertype'), |
| | | } |
| | | |
| | | const res = await post('Login/LoginAppAnDonMessage' + formatParams(data)) |
| | | this.messageNumber = res.data.length |
| | | // this.messageNumber=9 |
| | | }, |
| | | |
| | | // 获取一级菜单 |
| | | async getfirstMenu() { |
| | | const data = { |
| | |
| | | case '2044': |
| | | url = '../sbgl/wxyz.html' |
| | | break; |
| | | case '2090': |
| | | url = '../adgl/adhj.html' |
| | | break; |
| | | case '2091': |
| | | url = '../adgl/adxy.html' |
| | | break; |
| | | } |
| | | window.location = url |
| | | }, |
| | |
| | | this.overlayShow = true |
| | | }, |
| | | // 顶部右图标下拉选择 |
| | | onSelect(action) { |
| | | if (action.text === '操作指导') { |
| | | topPopoverClick('操作指导') |
| | | } else if (action.text === '成品追溯') { |
| | | topPopoverClick('成品追溯') |
| | | } else if (action.text === '退出登录') { |
| | | topPopoverClick('退出登录') |
| | | } |
| | | this.overlayShow = false |
| | | }, |
| | | // onSelect(action) { |
| | | // if (action.text === '操作指导') { |
| | | // topPopoverClick('操作指导') |
| | | // } else if (action.text === '成品追溯') { |
| | | // topPopoverClick('成品追溯') |
| | | // } else if (action.text === '退出登录') { |
| | | // topPopoverClick('退出登录') |
| | | // } |
| | | // this.overlayShow = false |
| | | // }, |
| | | myMessageClick() { |
| | | window.location = '../other/wdxx.html' |
| | | } |
| | | } |
| | | }) |
| | | </script> |
| | |
| | | padding: 0; |
| | | margin-right: 16px; |
| | | } |
| | | |
| | | .topRight { |
| | | width: 128px; |
| | | min-height: 40px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | /* padding: 10px; */ |
| | | } |
| | | |
| | | .topRightItem { |
| | | display: flex; |
| | | height: 44px; |
| | | align-items: center; |
| | | line-height: 44px; |
| | | /* border-bottom: 1px dotted #000; */ |
| | | padding: 0 16px; |
| | | } |
| | | </style> |
| | | </html> |