美文网首页
vue做后台管理系统,记住列表的查询条件和分页

vue做后台管理系统,记住列表的查询条件和分页

作者: michaelzhouh | 来源:发表于2017-09-22 11:54 被阅读0次

需求:后台管理系统列表,带查询条件和分页,点编辑,新页面打开,保存之后再跳转回之前的页面。

(如果是表单字段少,强烈建议dialog修改。请忽略本文)

实现思路:

1.  store存储一个map,这个map的键是列表页面的url(也就是路由),值是查询条件和分页页码(根据条件自己定义);

2.  列表页面初始化的时候,读取map

3.  列表页面的查询之前,存储map

我个人认为还是很方便的,优点有2个:如果需要记录列表的页面,添加4行代码就OK了;通用,不需要再额外定制参数

下面进入正题:

1、store添加一个state

listPagePars:new Map(),

2、muntations添加

SAVE_LIST_PAGE_PARS: (state,{ path,pars }) => {

    state.listPagePars.set(path,pars);

},

3、actions添加

saveListPagePars: ({ commit },{path,pars}) => {

    commit('SAVE_LIST_PAGE_PARS',{ path,pars });

},

4、经过上面3个步骤,vuex改造完毕(代码都很少),然后是列表页面的vue

data() {

  return{

    pars: {//核心的,列表页面的统一参数,建议整个系统内部的列表页都统一这种格式

      filter: {

        customer_name:'',//查询条件,有多少写多少

        mobile:''

      },

      page:1,

      page_size:15,

      order_field:'customer_id', //排序字段

      order_type:'desc', //排序方式

},

……

}

5、列表查询的时候,比如methods里面有个

getCustomers() {

  this.$store.dispatch('saveListPagePars',{path:this.$route.path,pars:this.pars});  //核心,每次查询条件变化,都先存一次

  this.$http.get(API_URL.customer_list,{params:this.pars }).then((res) => {

  ……

});

6、列表页面初始化

created() {

  if(this.$store.state.app.listPagePars.has(this.$route.path)) {

    this.pars=this.$store.state.app.listPagePars.get(this.$route.path);

  }

  this.getCustomers();

},

完毕,代码量很少,需要注意的是列表的查询表单,统一用pars这种格式规范,有个好处是,查询的ajax也需要pars参数,比较统一。

相关文章

网友评论

      本文标题:vue做后台管理系统,记住列表的查询条件和分页

      本文链接:https://www.haomeiwen.com/subject/bwzxextx.html