复现过程:
不直接点击超链接跳转页面 ,登录后直接通过出问题的页面的全链接访问成功复现问题。
解决方案和过程
通过控制台打印出localStorage里的内容看所取得数据是否存在 ,在看使用的方法是否兼容不同浏览器 ,可能部分数组的方法不兼容导致, 因为我这个是取的vueX里的内容 要先看能否打印出来,多次尝试后发现税率列表没有取到。所以要在页面加载前保证税率列表存在。

<el-table-column prop="taxRate" label="税率" width="60" align="right" > <template slot-scope="scope"> //vue的mixins混入功能 <span> {
{
getTaxRateName(scope.row.taxRate) }} </span> </template> </el-table-column>
讯享网
相关知识点
mixins使用一、局部混入:
1)、混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。

2)、选项合并
当组件和混入对象含有同名选项时,这些选项将以恰当的方式进行“合并”。
比如,数据对象在内部会进行递归合并,并在发生冲突时以组件数据优先。
①:新建minxins.js文件
讯享网import {
mapState } from 'vuex' export default {
data() {
return {
// taxRateList: [] } }, computed: {
...mapState(['taxRateList']) }, mounted() {
}, methods: {
/ * 获取 税率字典list * @returns {Promise<void>} */ // async getTaxrateList() {
// let list = await this.$api.common.*({
// classCode: 'taxRate' // }) // this.$set(this, 'taxRateList', list) // }, / * 通过税率code 返回相应名称 * @param code * @returns {*} */ getTaxRateName(code) {
if (this.taxRateList.length) {
let rate = this.taxRateList.find(t => t.codeCode == code) if (rate) {
return rate.codeName } return '' } }, / * 返回税率名称,过滤掉百分号 * @param code * @returns {*} */ getTaxRate(code) {
let name = this.getTaxRateName(code) if (name && name.endsWith('%')) {
return name.slice(0, -1) } return '' } } }

import mixins from '@/mixins' Vue.mixin(mixins) Vue.use(VueCookies) new Vue({
router, store, render: h => h(App) }).$mount('#app')
这么贴心不给个关注吗~~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/54760.html