7.用户管理页面(二)
页面内容展示
一、请求到的数据放置位置
1.直接放在user.vue中

2.放在vuex中



......
二、数据表格化展示
获取到userList和userCount的数据后,怎么展示呢?当然是使用element-plus啦。

这种要怎么写呢?当然是再添加一个配置文件咯!


需要和接口名称一致。
然后封装自己的table。
到目前为止,所有的数据都是以文本的形式展示,如果我想以按钮的形式展示怎么办?其实el-table-column里面是有插槽的。


难点!如何让每一列的某些字段做特定修改


对时间的格式化!这个功能在很多页面都会用到,所以想设置一个全局属性。
main.ts


在实际开发中肯定不能把所有代码都写到mian.ts中。

在main.ts中只需

又因为对时间做格式化是一个非常常见的功能,所以具体实现当然是放在utils里面啦。
npm install dayjs
时间格式化功能完成后,继续对表格进行优化。
比如要不要有序号列:
显示与否应该是由外界决定的:


再比如前面要不要有选择的小框框。
现在如果选中每一个,怎么拿到那一行对应的数据呢?


但我们的数据获取到后并不是就在这处理了,而是要去外面处理,所以要通过emit发射出去。

这部分功能完成以后,还需要做一个就是对数据进行操作的按钮。


三、添加表单名称、新增操作以及分页功能

这里涉及到插槽、具名插槽、默认插槽等知识点。

这里有一个问题就是我们显示的都是英文的,需要进行国际化。

四、封装
搜索框和表格之间的联系后面再做,现在先把表格那的内容全部抽取到page-content,首先把配置抽到contenttableconfig.ts中。
然后有一个问题,我们数据请求的代码写在哪呢?还写在user.vue中吗。如果还写在user.vue中一方面会有大量的代码,而其他页面比如role.vue其实要实现的功能也差不多,那怎么办?
可以每个页面有一个pageName属性,然后真正的网络请求直接交给pagecontent去做。

现在又有一个问题,在page-content中

这样我们不论那个页面进行数据请求,拿到的都是user的数据,这肯定不行啊。可以通过getters对state中的数据进行一个处理。


五、数据搜索、重置
在pagesearch中我们是对搜索框中的数据进行了双向绑定的,所以是可以拿到输入数据的。(难点)
双向绑定的属性应该是由配置文件的field来决定。


现在formdata就是动态来决定啦!
然后就是重置按钮

但是很奇怪,formdata中的数据确实为空了,但是搜索框中还是有显示。问题就出在下面:


怎么解决呢?

另外一种好理解一点的方法见另一版。
数据搜索功能:
现在的问题是:pagesearch怎么从pagecontent中拿到搜索数据

当在pagesearch中点击了搜索按钮后,先传到user组件,再由user组件去调用gepagedata


那么怎么在父组件user中调用子组件page-content中的方法呢?当然是要拿到这个组件咯!

上面这点代码在很多地方都会用到,所以这里可以再做一个抽取。抽取到hooks中。
六、数据尾部优化








浙公网安备 33010602011771号