import { isWeixin } from '@/common/utils/common'; import { webViewHref, navToPage, crossPage } from '@/common/utils/navPag'; import { firstPerform } from "js-perform-lock"; import store from '@/store/index.js' import { setStorage, getStorage, removeStorage } from "@/common/utils/storage.js" // #ifdef H5 import wx from 'weixin-js-sdk' // #endif // 微信小程序页面劫持 export const goLoginPage = (new firstPerform(1000)).refactor(function (pageObj) { navToPage({ url: pageObj ? ("/pages/login/indexs?pageObj=" + encodeURIComponent(pageObj)) : "/pages/login/indexs" }, "navigateTo") // store.dispatch('user/resetToken') }); // #ifdef MP-WEIXIN export const routerBeforeEach = (new firstPerform(200)).refactor(function () { function getrouter() { let routes = getCurrentPages(); if (routes.length) { let curRoute = routes[routes.length - 1].route let whitePages = [ 'pages/login/index', 'pages/login/indexs', 'pages/index/index', 'pages/goods/index', 'pages/mine/index', ] if (!store.getters.token && whitePages.indexOf(curRoute) == -1) { goLoginPage() } } else { setTimeout(getrouter, 300) } } getrouter() }); // #endif const updatePageLay = function () { var uni_page_head = document.querySelector("uni-page-head[uni-page-head-type='default']") if (uni_page_head) { uni_page_head.remove() } } // (new firstPerform(1000)).refactor(function() { // // 去除顶部 // var uni_page_head = document.querySelector("uni-page-head[uni-page-head-type='default']") // if (uni_page_head) { // uni_page_head.remove() // } // // 去除底部 // // var uni_tabbar_bottom = document.getElementsByClassName("uni-tabbar-bottom") // // if (uni_tabbar_bottom.length) { // // uni_tabbar_bottom[0].remove() // // var uni_page_wrapper = document.getElementsByTagName("uni-page-wrapper") // // if (uni_page_wrapper.length) { // // loadStyleString( // // "uni-page-wrapper{height: calc(100% - env(safe-area-inset-bottom)) !important} uni-page-wrapper::after{height: env(safe-area-inset-bottom) !important}" // // ); // // } // // } // }); window.backPage = function () { // 获取当前页面栈的实例数组 const pages = getCurrentPages(); if(pages.length > 1) { navToPage({delta: 1}, 'navigateBack') }else { var searchParams = window.location.search; navToPage({url: `/pages/index/index${searchParams}`}, 'reLaunch') } } // 插入样式 function loadStyleString(css) { var style = document.createElement("style"); style.type = "text/css"; try { style.appendChild(document.createTextNode(css)); } catch (ex) { style.styleSheet.cssText = css; } var head = document.getElementsByTagName('head')[0]; head.appendChild(style); } var insertFloatButton = (function () { var isDragging = false; var offsetX, offsetY; var div; let blackList = [`${process.env.VUE_APP_BASE_PATH}pages/index/index`, `${process.env.VUE_APP_BASE_PATH}pages/workorder/index`, `${process.env.VUE_APP_BASE_PATH}pages/goods/index`, `${process.env.VUE_APP_BASE_PATH}pages/mine/index`]; // 获取手机信息配置接口 const sys = uni.getSystemInfoSync(); // 屏幕的宽高 var windowWidth = sys.windowWidth; var windowHeight = sys.windowHeight; // 设置边界值 var edge = 10; // 设置块宽度 var divWidth = 52; // 触摸移动时更新块的位置 document.addEventListener('touchmove', function (event) { event.stopPropagation(); if (div && isDragging) { var touch = event.touches[0]; div.style.left = touch.pageX - offsetX + 'px'; let clientY = touch.clientY - divWidth; let edgeBottom = windowHeight - (divWidth * 2) - edge; let moveTop = 0; // 上下触及边界 if (clientY < edge) { moveTop = edge; } else if (clientY > edgeBottom) { moveTop = edgeBottom; } else { moveTop = clientY } div.style.top = moveTop + 'px'; setStorage('top', moveTop); } }); // 触摸结束时停止拖动 document.addEventListener('touchend', function (event) { event.stopPropagation(); let edgeRigth = windowWidth - divWidth - edge; let moveLeft = div.style.left; // 左右触及边界 if (moveLeft < windowWidth / 2 - divWidth) { moveLeft = edge; } else { moveLeft = edgeRigth; } div.style.left = moveLeft + 'px'; setStorage('left', moveLeft); isDragging = false; // div.style.cursor = 'grab'; }); return function () { // 设置默认值 if (!getStorage('left')) { setStorage('left', windowWidth - divWidth - edge); } if (!getStorage('top')) { setStorage('top', windowHeight - (divWidth * 2) - edge - 100); } let hasDiv = document.getElementById('floatButtonBox'); let isBlack = blackList.includes(window.location.pathname); if (isBlack && hasDiv) { hasDiv.remove() } else if (!isBlack && !hasDiv) { // 获取当前页面的查询参数 var searchParams = window.location.search; div = document.createElement('div'); div.id = 'floatButtonBox'; div.style.width = divWidth + 'px'; div.style.position = 'fixed'; div.style.top = getStorage('top') + 'px'; div.style.left = getStorage('left') + 'px'; div.style.zIndex = '99999'; div.innerHTML = ` `; // 鼠标按下时开始拖动 div.addEventListener('touchstart', function (event) { event.stopPropagation(); isDragging = true; var touch = event.touches[0]; offsetX = touch.pageX - div.getBoundingClientRect().left; offsetY = touch.pageY - div.getBoundingClientRect().top; // div.style.cursor = 'grabbing'; }); document.body.appendChild(div); } } })() // 存放页面公用数据、方法... export default { data() { return { crossPage: crossPage, } }, computed: { crossPagePam() { var num = this.$store.state.user.crossPagePam || 0 var city = this.$store.state.user.city || '' var province = this.$store.state.user.province || '' var data = getStorage("crossPageTs") return { crossPageTs: data, timestamp: num, city: city, province: province, } } }, onLoad() { // #ifdef MP-WEIXIN // routerBeforeEach() // #endif }, onShow() { insertFloatButton() // const originalTitle = document.title; // const fixedDescription = ` - ${'商户名称'}`; // if(!~document.title.indexOf(fixedDescription)){ // document.title = originalTitle + fixedDescription; // } }, mounted() { // #ifdef MP-WEIXIN // routerBeforeEach() // #endif if (isWeixin()) { updatePageLay() } }, methods: { webViewHref: webViewHref, } }