123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505 |
- /**
- *
- * 浮漂msg消息公用方法
- * 插入dom节点方式运,为了兼容 三端,采用元素js 操作 dom + css
- * @param type
- * @returns {Object|*}
- */
- var getMsgBuoyActive = {
- // 版本号
- version: '0.0.2',
- platform: '', // work_bench、wx、app、pc
- msgids: '',
- floatDOM: '',
- messageList: [],
- messageInfo: {},
- textmas: '剑鱼标讯-招标信息查询_全国招标采购信息订阅推送_专业招标大数据服务平台',
- init: function () {
- // 初始化平台计算
- this.getPlatform()
- // 限制初始化页面
- if (this.platform === 'app' || this.platform === 'wx') {
- if (this.checkNowInMobileHomePage()) {
- this.getBuoyMsgAjax()
- }
- } else {
- this.listenNotification()
- this.getBuoyMsgAjax()
- }
- },
- /**
- * 检查当前是否是 移动端首页 页面
- * @returns {boolean}
- */
- checkNowInMobileHomePage () {
- var Pages = [
- '/jyapp/jylab/mainSearch',
- '/jylab/mainSearch',
- '/jy_mobile/tabbar/home'
- ]
- return Pages.some(function (v) {
- return location.href.indexOf(v) > -1
- })
- },
- getPlatform: function () {
- this.platform = this.platformOS()
- },
- initDOMNode: function () {
- // 判断是否存在,需要先移除dom
- var oldNode = $('.msggroup')
- if (oldNode && typeof oldNode.remove === 'function') {
- oldNode.remove()
- }
- // 没有消息时退出执行
- if (!(this.messageList && this.messageList.length)) {
- return
- }
- var message = this.messageList[0]
- var textmas = this.textmas
- if (message) {
- textmas = message.buoyDetail
- this.msgids = message.id
- }
- let scanHTML = `<div class="msggroup" style="display:none;">
- <div class="msgbox">
- <div id="msg_content" class="msg_content">
- <span class="text-content">${textmas}</span>
- </div>
- </div>
- <div class="msg_close">
- </div>
- </div>`
- var scanDOM = $(scanHTML)
- this.floatDOM = scanDOM.show()
- scanDOM.find('#msg_content').html(`<span class="text-content">${textmas}</span>`)
- if (this.platform === 'pc') {
- $('#public-nav .iner').append(scanDOM)
- } else if (this.platform === 'work_bench') {
- // 插入节点
- $('.el-header > .navbar-group').append(scanDOM)
- } else {
- $('body').append(scanDOM)
- }
- // 初始化样式表
- this.createStyle()
- // 初始化监听事件
- this.addEventClick()
- // 初始化样式表style
- this.scroll()
- },
- getBuoyMsgAjax: function () {
- var _this = this
- $.ajax({
- url: '/jyapi/messageCenter/GetBuoyMsg',
- type: 'POST',
- }).done(function (res) {
- if (res && res.error_code === 0 && res.data) {
- try {
- _this.messageList = res.data
- if (res.data && res.data.length) {
- _this.messageInfo = _this.messageList[0]
- _this.initDOMNode()
- }
- } catch (error) {
- console.warn(error)
- }
- }
- })
- },
- istoReaded: function (ids, url) {
- // 消息盒子 消失
- // 效果彩蛋 ~~ 1200ms逐渐消失
- $(".msggroup").fadeOut(1200);
- $(".msggroup").fadeTo("1200", 0.6);
- $.ajax({
- type: 'POST',
- url: '/jymessageCenter/markRead',
- async: false,
- data: {
- msgId: ids
- },
- success: function (res) {
- if (res.error_code === 0 && res.data) {
- console.log(res);
- }
- }
- })
- },
- // 监听点击事件 行为
- addEventClick: function (praume) {
- var _this = this
- // 直接使用选择器进行绑定监听
- this.floatDOM.find('.msg_content').on('click', function () {
- _this.floatDOM.find('.msg_close').trigger('click')
- const ua = window.navigator.userAgent.toLocaleLowerCase()
- const isIos = /iphone|ipad|ipod/.test(ua)
- const isAndroid = /android/.test(ua)
- try {
- // 跳转链接
- switch (getMsgBuoyActive.platformOS()) {
- case 'pc':
- location.href = _this.messageInfo.pcUrl ? _this.messageInfo.pcUrl : '/swordfish/frontPage/messageCenter/sess/index'
- break;
- case 'work_bench':
- window.open(_this.messageInfo.pcUrl ? _this.messageInfo.pcUrl : '/swordfish/frontPage/messageCenter/sess/index')
- break;
- case 'wx': {
- location.href = _this.messageInfo.weChatUrl ? _this.messageInfo.weChatUrl :'/weixin/frontPage/messageCenter/sess/index'
- break;
- }
- case 'app': {
- if(isIos && _this.messageInfo.iosUrl){
- location.href = _this.messageInfo.iosUrl
- } else if(isAndroid && _this.messageInfo.androidUrl) {
- location.href = _this.messageInfo.androidUrl
- } else {
- _this.isAppH5Jump()
- }
- break;
- }
- default:
- break;
- }
- } catch (e) {
- console.log(e);
- }
- })
- // 关闭消息
- this.floatDOM.find('.msg_close').on('click', function (e) {
- getMsgBuoyActive.istoReaded(getMsgBuoyActive.msgids)
- })
- },
- isAppH5Jump: function(){
- // H5 环境支持跳转
- if (window.utilsEnv && window.utilsEnv.platformEnvs.platform === 'h5') {
- location.href = '/jy_mobile/tabbar/message'
- } else {
- try {
- // app跳转到消息中心tab
- JyObj.skipAppointTab('message')
- } catch (error) {
- console.log('error')
- }
- }
- },
- scroll: function () {
- // 可视窗口宽度 \
- let windowWidth = document.body.offsetWidth, Pc_Topstyle
- var floatDOM = this.floatDOM
- // 设置每个弹框相对位置定位style - 根据平台
- // pc 和移动端 定位盒子
- // Pc_Topstyle = getMsgBuoyActive.platformOS() === 'pc'
- // ? `width:315px;right:${Number(windowWidth - 1200)/2}px;top:80px;`
- // : `width:92%;right: 4%; bottom: 17vw;`
- switch (getMsgBuoyActive.platformOS()) {
- case 'pc':
- floatDOM.addClass('message-float-pc')
- break;
- case 'work_bench':
- Pc_Topstyle = `width:315px;right:186px;top:80px;`
- break;
- case 'app':
- floatDOM.addClass('message-float-mobile')
- Pc_Topstyle = `bottom: 8vw;`
- break;
- case 'wx':
- floatDOM.addClass('message-float-mobile')
- Pc_Topstyle = `bottom: calc(8vw + 9.33vw);`
- break;
- default:
- break;
- }
- floatDOM.show()
- floatDOM[0].style = `display:block;${Pc_Topstyle}`
- if (getMsgBuoyActive.platformOS() === 'app') {
- floatDOM.find('.msg_close')[0].style = `background: #000;`
- }
- var content = floatDOM.find('.msg_content')[0],
- box = floatDOM[0],
- contentWidth = content.offsetWidth,
- boxWidth = box.offsetWidth
- box.style.setProperty('animation', '5s')
- var _this = this
- if (!contentWidth || !boxWidth) {
- setTimeout(function () {
- _this.scroll()
- }, 200)
- return
- }
- if (contentWidth <= boxWidth) {
- // 内容宽度小于盒子宽度,停止滚动
- content.style.setProperty('animation', '5s');
- } else {
- var computedContentWidth = contentWidth * 2 + 20
- // 根据宽度设置滚动距离和动画时长,复制实现无缝滚动
- content.style.setProperty('animation', 'move ' + computedContentWidth / 50 + 's linear infinite');
- $(content).append($(".msg_content .text-content").clone())
- // // 修改@keyframes的值
- // const frame = `@Keyframes move {
- // from {
- // transform: translate(0);
- // }
- // to {
- // transform: translateX(-${contentWidth - boxWidth}px)
- // }
- // }`;
- // // 找到对应的css样式表,先删除再新增
- // let sheets = document.styleSheets;
- // for (let i = 0; i < sheets.length; ++i) {
- // const item = sheets[i];
- // if (item.cssRules[0] && item.cssRules[0].name && item.cssRules[0].name === 'move') {
- // item.deleteRule(0);
- // item.insertRule(frame, 0)
- // }
- // }
- }
- },
- // 动态创建样式==
- createStyle: function () {
- var frame = `
- @Keyframes move {
- from {
- transform: translate(0);
- }
- to {
- transform: translateX(-50%)
- }
- }
- .msggroup {
- position: absolute;
- width: 351px;
- height: 44px;
- right: 3%;
- background: linear-gradient(180deg, #E8FFFF 0%, #FFFFFF 100%);
- box-shadow: 0px 4px 16px rgb(8 31 38 / 8%);
- border-radius: 8px;
- border: 0.5px solid;
- border-image-source: linear-gradient(163deg, #1a1c1d 0%, rgba(42, 190, 209, 0) 100%);
- z-index: 7;
- line-height: 44px;
- font-size: 13px;
- padding: 0 5px;
- background-size: 100% 100%;
- background-image: url(data:image/png;base64,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);
- background-repeat: no-repeat;
- }
- .msgbox {
- width: 100%;
- overflow: hidden;
- white-space: nowrap;
- }
- .msg_content {
- animation: move 5s linear infinite;
- display: inline-block;
- cursor: pointer;
- }
- .msg_content .text-content {
- padding: 0 10px;
- }
- .msg_close {
- position: absolute;
- width: 18px;
- height: 18px;
- right: -6px;
- top: -10px;
- cursor: pointer;
- background: #2ABED1;
- opacity: 0.8;
- /*background:url('/images/close_pc_msg.png') 0 0;
- background-size: cover;*/
- -moz-border-radius: 50px;
- -webkit-border-radius: 50px;
- border-radius: 50px;
- }
- .msg_close img {
- width:100%;
- height:100%;
- }
- .msg_close:before,
- .msg_close:after {
- content: "";
- position: absolute;
- height: 1.3px;
- width: 65%;
- top: 50%;
- left: 20%;
- margin-top: -1px;
- background: #fff;
- }
- .msg_close:before {
- -webkit-transform: rotate(45deg);
- -moz-transform: rotate(45deg);
- -ms-transform: rotate(45deg);
- -o-transform: rotate(45deg);
- transform: rotate(45deg);
- }
- .msg_close:after {
- -webkit-transform: rotate(-45deg);
- -moz-transform: rotate(-45deg);
- -ms-transform: rotate(-45deg);
- -o-transform: rotate(-45deg);
- transform: rotate(-45deg);
- }
- `
- frame += this.addPlatformStyle()
- // 创建style标签
- const style = document.createElement('style');
- style.type = 'text/css';
- style.innerHTML = frame;
- document.getElementsByTagName('head')[0].appendChild(style);
- },
- addPlatformStyle: function () {
- var text = ''
- if (this.platform === 'pc') {
- text = `
- .msggroup.message-float-pc {
- right: 0;
- bottom: -10px;
- transform: translate(0, 100%);
- }
- `
- } else if (this.platform === 'wx' || this.platform === 'app') {
- text = `
- .msggroup.message-float-mobile {
- position: fixed;
- width: calc(100% - 8vw);
- /* width:315px; */
- left: 50%;
- bottom: 0;
- z-index: 9;
- transform: translate(-50%, 0);
- }
- `
- }
- return text
- },
- // 判断平台环境,用于定位样式
- platformOS: function () {
- let ua = navigator.userAgent || window.navigator.userAgent,
- IsWeChatBrowser = ua.toLowerCase().indexOf('micromessenger') !== -1,
- androidOrIOS = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(ua),
- isAndroid = /(?:Android)/.test(ua),
- isPad = /(?:iPad|PlayBook)/.test(ua) || (isAndroid && !/(?:Mobile)/.test(ua)),
- isPhone = /(?:iPhone)/.test(ua) && !isPad,
- isPc = !isPhone && !isAndroid && !IsWeChatBrowser && !androidOrIOS,
- iswork_bench = /work-bench|dashboard|workspace/i.test(location.href)
- if (IsWeChatBrowser) {
- return 'wx'
- } else if (iswork_bench) {
- return 'work_bench'
- } else if (androidOrIOS) {
- return 'app'
- } else if (isPc) {
- return 'pc'
- } else if (isPhone) {
- return 'ios'
- } else if (isAndroid) {
- return 'Android'
- }
- },
- /**
- * @date 2023/1/4 消息通知改为 webscoket 获取并调用浏览器消息通知
- */
- listenNotification () {
- /**
- * 进行浏览器通知,判断上次通知是否与当前一致,一致则不进行重复通知
- * @param datas - 信息数据
- */
- function sendNotification (datas) {
- var waitShowMessageId = localStorage.getItem('notification-login-clear-info') || -1
- if (waitShowMessageId === datas.id) {
- return console.warn('重复消息ID,不进行重复通知')
- }
- try {
- Notification.requestPermission(function(status) {
- var notifyStatus = Notification.permission || status
- if(notifyStatus === 'granted'){
- localStorage.setItem('notification-login-clear-info', datas.id)
- var notify = new Notification(datas.title,{
- icon: '/images/t3_new.jpg',
- body: datas.show_content || datas.content || ''
- })
- // 点击时桌面消息时触发
- notify.onclick = function () {
- try {
- getMsgBuoyActive.istoReaded(datas.id)
- notify.close()
- switch (getMsgBuoyActive.platformOS()) {
- case 'pc':
- location.href = '/swordfish/frontPage/messageCenter/sess/index'
- break;
- case 'work_bench':
- window.open('/swordfish/frontPage/messageCenter/sess/index')
- break;
- }
- } catch (e) {
- console.warn(e)
- }
- }
- } else {
- Notification.requestPermission(function () {
- sendNotification(datas)
- })
- }
- })
- } catch (e) {
- console.warn('不支持通知')
- }
- }
- // 定义 scoket 信息
- var pushMessageScoket = {
- url: "ws"+(!isIE9&&"https:"==document.location.protocol?"s":"")+"://"+window.location.host,
- init: function () {
- if (typeof CommonWebScoket === 'function') {
- this._scoket = new CommonWebScoket(this.url + '/webscoket/getBuoyMsg', '', {
- ajaxReq: function() {},
- reconnect: function (commom) {
- commom.isOver = true
- commom.over()
- },
- complete: function (data, type) {
- try {
- var pushMessage = JSON.parse(data)
- if (pushMessage.id) {
- sendNotification(pushMessage)
- }
- } catch (e) {
- console.warn(e)
- }
- }
- }).init()
- }
- }
- }
- // 初始化
- pushMessageScoket.init()
- }
- }
- // 初始化
- $(function () {
- try {
- // 尝试判断是否在iframe中
- if (!goTemplateData.inIframe) {
- getMsgBuoyActive.init()
- }
- } catch (error) {
- getMsgBuoyActive.init()
- }
- })
|