当前位置:   article > 正文

vue2+若依+页面切换刷新回来后保留数据_若依返回页面不重置搜索框,刷新列表

若依返回页面不重置搜索框,刷新列表

如题 现有两个页面,接单页面和订单详情页面。接单页面有一个查询弹窗。

1、默认将客服设置成当前登录的人员,并只展示出该客服负责的订单

2、重新设置了搜索条件,进入订单详情页面再回来,页面会刷新,搜索条件也会被重置,希望不要重置搜索条件而是进行保留

 

 

 讲道理,昨天第一个需求提出来的时候我可以把它给实现了,第二个需求提出来的时候我愣是傻了,单以为只要切换页面就必定会刷新页面,搜索条件必重置,做不了

今天上午来,又看了一遍需求,突然想到为什么我第一个需求可以用vuex写出来,第二个为啥不能

于是看了一下若依框架里的vuex代码,把功能实现出来了,和原生的vue用法基本一致。

一、写vuex

src->store->modules里新建一个search.js(因为有两个页面需要完成这个功能,所以写了两个state)

  1. const search = {
  2. state:{
  3. orderSearch: {},
  4. invoiceSearch: {}
  5. },
  6. mutations:{
  7. SET_ORDER:(state, val) =>{
  8. state.orderSearch = val
  9. },
  10. SET_INOVICE:(state, val)=>{
  11. state.invoiceSearch = val
  12. }
  13. }
  14. }
  15. export default search

二、

在src-store的index.js里把刚刚的search.js暴露(?)出去

  1. import search from './modules/search.js'
  2. modules: {
  3. search
  4. },

三、使用

在mounted里把vuex里的数据拿出来,在beforcDestory里把搜索条件存进vuex

记得在清空功能里也存一下!

  1. mounted() {
  2. this.queryParams.serviceCode = this.$store.state.user.name
  3. this.queryParams.serviceName = this.$store.state.user.nickName
  4. if(Object.keys(this.$store.state.search.orderSearch).length){
  5. this.queryParams = this.$store.state.search.orderSearch
  6. }
  7. this.getList();
  8. },

判断对象是否为空的方法①JSON.stringify(obj).length=='{}' ②Object.keys(obj).length

不知道为啥我第一个方法是没有用的,我之后再研究哈,这里用的是第二种

————

  1. beforeDestroy(){
  2. this.$store.commit('SET_ORDER', this.queryParams)
  3. },

————

  1. //重置
  2. searchResetClick() {
  3. this.queryParams = {
  4. pageNum: 1,
  5. pageSize: 50,
  6. serviceCode: '',
  7. serviceName: '',
  8. }
  9. this.$forceUpdate()
  10. this.$store.commit('SET_ORDER', {})
  11. },

用vuex后,自带的重置功能就不能使用了,否则切换页面回来后重置也只能重置成保存后的条件,需要手动重置

END

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/505563
推荐阅读
  

闽ICP备14008679号