iview-admin 新建表单重复提交的问题?或者说是新建页面出现两个tab的问题?

3 篇文章 0 订阅
2 篇文章 0 订阅

再打开“新建表单”的页面是,点击刷新网页后,tab会出现两个新建页面,发布完成后自动关闭,只能关闭一个。刚才输入的内容会保存在另一个新建页面里面,用户不知道的情况下,就会再点一次保存,就出现了两次提交车现象。
有没有人遇到过?求指教。

图片说明

新建页面,不在左边的路由中显示,通过发布页面里面的“新建”按钮弹出。

<Button  @click="handleOpenCreate(0)" ><Icon type="md-add" /> 新建</Button>

handleOpenCreate (status) {
      this.$router.push({
        name: 'tickets_create',
        params: {
          curStatus: status
        }
      })
    },

这个问题,自己找到了解决办法。

------

通过代码跟踪发现,每次刷新页面,都会从localStorage.tagNaveList中获取tablist,所以大胆的去把它去重复,结果问题解决。现在刷新后,重复的“新建”页面就没有了,解决办法如下:

src/components/main/main.vue

mounted () {
    /**
     * @description 初始化设置面包屑导航和标签导航
     */
    // 新增代码开始,解决重复的新建页面问题
    var arr = JSON.parse(window.localStorage.getItem('tagNaveList'))
    var newArr = [];
    var obj = {};
    for (var i = 0; i < arr.length; i++) {
      if (!obj[arr[i].name]) {
      newArr.push(arr[i]);
      obj[arr[i].name] = true;
      }
    }
    window.localStorage.setItem('tagNaveList', JSON.stringify(newArr))
    // 新增代码结束
    this.setTagNavList()
    this.setHomeRoute(routers)
    const { name, params, query, meta } = this.$route
    this.addTag({
      route: { name, params, query, meta }
    })
    this.setBreadCrumb(this.$route)
    // 设置初始语言
    this.setLocal(this.$i18n.locale)
    // 如果当前打开页面不在标签栏中,跳到homeName页
    if (!this.tagNavList.find(item => item.name === this.$route.name)) {
      this.$router.push({
        name: this.$config.homeName
      })
    }
    // 获取未读消息条数
    this.getUnreadMessageCount()
  }
}

------

上面的方法还是有点问题,当打开“新建”后,直接刷新,还是会出现两个“新建”页面,继续跟踪代码,发现addTag(),备注掉后,问题貌似解决了。上面去重复的代码可以保留,先备注吧。

mounted () {
    /**
     * @description 初始化设置面包屑导航和标签导航
     */
    // 新增代码开始,解决重复的新建页面问题   -失败, 把下面的addTag()备注掉,就OK了
    // var arr = JSON.parse(window.localStorage.getItem('tagNaveList'))
    // var newArr = [];
    // var obj = {};
    // for (var i = 0; i < arr.length; i++) {
    //   if (!obj[arr[i].name]) {
    //   newArr.push(arr[i]);
    //   obj[arr[i].name] = true;
    //   }
    // }
    // window.localStorage.setItem('tagNaveList', JSON.stringify(newArr))
    // 新增代码结束
    this.setTagNavList()
    this.setHomeRoute(routers)
    const { name, params, query, meta } = this.$route
    //这个addTag是导致 新建页面重复的bug
    // this.addTag({
    //   route: { name, params, query, meta }
    // })
    this.setBreadCrumb(this.$route)
    // 设置初始语言
    this.setLocal(this.$i18n.locale)
    // 如果当前打开页面不在标签栏中,跳到homeName页
    if (!this.tagNavList.find(item => item.name === this.$route.name)) {
      this.$router.push({
        name: this.$config.homeName
      })
    }
    // 获取未读消息条数
    this.getUnreadMessageCount()
  }

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值