/* 目前nuxt 版本如果不高于 1.0.0 并不支持vuex的方法,因此获取相对于的东西只能通过this.$store.state来获取 如果nuxt框架为 1.0.0以上,vuex属性状态这里可以优化 */ import BScroll from 'better-scroll' import Vue from 'vue' import baseUtils from '~utils/baseUtils' import baseUrls from '~utils/baseUrls' // import { mapState } from 'vuex' Vue.mixin({ data () { return { initScroll: null } }, computed: { user() { return this.$store.state.option.user }, sortEnterprises () { if (this.user.data.enterprises) { let ens = this.user.data.enterprises.slice() if (ens && ens.length) { ens.sort(function (a, b) { return b.lastLoginTime - a.lastLoginTime }) } return ens } else { return '' } }, // 判断是否erp嵌入 isInFrame () { if (this.$route.query.type === 'erp') { this.$store.commit('option/ADD_COOKIES', 'type=erp;') return true } else { let cookies = this.$store.state.option.cookies let cookieArr = cookies.split(';') let cookieObj = {} for (let i = 0; i < cookieArr.length; i++) { if (cookieArr[i].indexOf('=') > -1) { let tmpArr = cookieArr[i].split('=') cookieObj[tmpArr[0].trim()] = tmpArr[1].trim() } } return cookieObj.type === 'erp' } }, currentEnName () { if (this.user.data.enterprise) { return this.user.data.enterprise.uu ? this.user.data.enterprise.enName : this.user.data.userName + '(个人账户)' } else { return {} } }, baseUtils () { return baseUtils }, baseUrls () { return baseUrls }, isMobile () { return this.$store.state.option.isMobile } }, methods: { goLastPage: function () { window.history.back(-1) }, preventTouchMove (e) { e.preventDefault() }, stopPropagation: function (e) { if (e) { e.stopPropagation() } }, _initscroll() { if (!this.initScroll) { this.initScroll = new BScroll(this.$refs.mobileModalBox, { click: true }) } else { this.initScroll.destroy() this.initScroll = new BScroll(this.$refs.mobileModalBox, { click: true }) } }, login: function (url) { this.$router.push(`/auth/login${url ? '?returnUrl=' + url : ''}`) }, goStoreApply: function () { if (this.user.logged) { if (this.user.data.enterprise.uu) { this.$http.get('/basic/vendor/transactionInfo').then(response => { if (response.data.isOpenStore) { window.location.href = '/vendor#/store/maintain' } else { window.location.href = '/vendor#/store-apply' } }, err => { this.$message.error('该账户未开通卖家中心') console.log(err) }) } else { this.$router.push('/personalMaterial') } } else { this.login() } }, authorityInterceptor: function (url, callback) { this.baseUtils.getAuthority(this, url, callback, this.isMobile) } }, filters: { time: function (time) { if (typeof time === 'number') { if (!time) { return '无' } else { let d = new Date(time) let year = d.getFullYear() let month = d.getMonth() + 1 let day = d.getDate() < 10 ? '0' + d.getDate() : '' + d.getDate() let hour = d.getHours() < 10 ? '0' + d.getHours() : '' + d.getHours() let minutes = d.getMinutes() < 10 ? '0' + d.getMinutes() : '' + d.getMinutes() let seconds = d.getSeconds() < 10 ? '0' + d.getSeconds() : '' + d.getSeconds() return year + '-' + month + '-' + day + ' ' + hour + ':' + minutes + ':' + seconds } } } } })