<!DOCTYPE html>
|
<html>
|
<head>
|
<meta charset="utf-8">
|
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
<meta name="HandheldFriendly" content="true" />
|
<meta name="MobileOptimized" content="320" />
|
<title>新凯迪制造云平台</title>
|
<!-- 引入像素转换 px->rpx -->
|
<!-- <script src="../../js/rpx4html.js"></script> -->
|
|
<!-- 引入样式文件 -->
|
<link rel="stylesheet" href="../../css/vant.css" />
|
<!-- 引入 Vue 和 Vant 的 JS 文件 -->
|
<script src="../../js/vue.min.js"></script>
|
<script src="../../js/vant.min.js"></script>
|
|
<script type="text/javascript" src="../../js/jquery-1.6.4.min.js"></script>
|
<script type="text/javascript" src="../../js/axios.min.js"></script>
|
<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 id="app">
|
|
<div class="body">
|
|
<!-- <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-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-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-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-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" />
|
|
|
</div>
|
</body>
|
<script>
|
var app = new Vue({
|
el: '#app',
|
data: function() {
|
return {
|
isLoading: false, //下拉刷新
|
images: [
|
'../../static/images/swiper01.png',
|
'../../static/images/swiper02.png',
|
],
|
sheetShow: false,
|
overlayShow: false,
|
showPopover: false,
|
actions: [{
|
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 = {
|
usertype: 'APP',
|
usercode: localStorage.getItem('usercode')
|
}
|
const {
|
data: res
|
} = await get('Login/LoginMenu', data)
|
this.firstMenu = res
|
},
|
// 一级菜单点击
|
vanGridItem(item) {
|
this.sheetShow = true
|
this.firstMenuName = item.name
|
this.secondMenu = item.children
|
},
|
// 二级菜单点击
|
vanGridSecondItem(item) {
|
let url = ''
|
switch (item.code) {
|
// 设备管理
|
case '2040':
|
url = '../sbgl/rcdj.html'
|
break;
|
case '2041':
|
url = '../sbgl/dqby.html'
|
break;
|
case '2042':
|
url = '../sbgl/wxsq.html'
|
break;
|
case '2043':
|
url = '../sbgl/sbwx.html'
|
break;
|
case '2044':
|
url = '../sbgl/wxyz.html'
|
break;
|
case '2090':
|
url = '../adgl/adhj.html'
|
break;
|
case '2091':
|
url = '../adgl/adxy.html'
|
break;
|
}
|
window.location = url
|
},
|
// 顶部右图标点击
|
onClickRight() {
|
this.overlayShow = true
|
},
|
// 顶部右图标下拉选择
|
// 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>
|
<style type="text/css">
|
body {
|
background-color: #fff;
|
}
|
|
.body {
|
height: 600px;
|
background-color: grey;
|
margin-top: 0px;
|
background-color: #fff;
|
position: relative;
|
}
|
|
.van-nav-bar__content {
|
background-color: #2651d8;
|
height: 44px;
|
}
|
|
.van-nav-bar__title {
|
color: #fff;
|
letter-spacing: 2px;
|
}
|
|
.van-nav-bar__right {
|
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>
|