循序渐进VUE+Element 前端应用开发(15)--- 用户管理模块的处理

在这里插入图片描述

剩下的就是对Vue + Element前端的界面处理事情了。

我们先来看看查询的处理,常规的查询涉及日期区间的查询处理,这里我们用一个一个查询日期的处理操作,如下图所示。

在这里插入图片描述

表单的界面代码如下所示 :

<el-date-picker

v-model=“searchForm.creationTime”

type=“daterange”

align=“right”

unlink-panels

range-separator=“至”

start-placeholder=“开始日期”

end-placeholder=“结束日期”

:picker-options=“pickerOptions”

/>

其中定义了一个pickerOptions 属性,用于快速选择日期的,在data里面增加一个这样的属性即可。

pickerOptions: {

shortcuts: [{

text: ‘最近一周’,

onClick(picker) {

const end = new Date();

const start = new Date();

start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);

picker.$emit(‘pick’, [start, end]);

}

}, {

text: ‘最近一个月’,

onClick(picker) {

const end = new Date();

const start = new Date();

start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);

picker.$emit(‘pick’, [start, end]);

}

}, {

text: ‘最近三个月’,

onClick(picker) {

const end = new Date();

const start = new Date();

start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);

picker.$emit(‘pick’, [start, end]);

}

}]

},

在页面里面,我们定义了一些分页查询的处理条件和对象,如下所示。

在这里插入图片描述

查询表单则定义一个单独的表单对象,如下代码所示:

searchForm: { // 查询表单

UserName: ‘’,

PhoneNumber: ‘’,

creationTime: ‘’

},

页面加载准备好,我们就调用获取列表的数据即可。

created() { // 页面加载后,加载列表数据

this.getlist()

},

获取列表的处理操作如下代码所示,主要就是准备构建好对应的查询参数,然后调用UserApi类的接口查询列表即可。

getlist() { // 列表数据获取

var CreationTimeStart = ‘’

if (this.searchForm.creationTime && this.searchForm.creationTime.length > 0) {

CreationTimeStart = this.parseTime(this.searchForm.creationTime[0], ‘{y}-{m}-{d}’)

}

var CreationTimeEnd = ‘’

if (this.searchForm.creationTime && this.searchForm.creationTime.length > 1) {

CreationTimeEnd = this.parseTime(this.searchForm.creationTime[1], ‘{y}-{m}-{d}’)

}

var param = { // 构造常规的分页查询条件

SkipCount: (this.pageinfo.pageindex - 1) * this.pageinfo.pagesize,

MaxResultCount: this.pageinfo.pagesize,

// 过滤条件

UserName: this.searchForm.UserName,

PhoneNumber: this.searchForm.PhoneNumber,

CreationTimeStart: CreationTimeStart,

CreationTimeEnd: CreationTimeEnd

};

// 获取列表,绑定到模型上,并修改分页数量

this.listLoading = true

user.GetAll(param).then(data => {

this.list = data.result.items

this.pageinfo.total = data.result.totalCount

this.listLoading = false

})

},

search() { // 查询列表处理

this.pageinfo.pageindex = 1;// 重置为第一页=

this.getlist()

},

通过列表的查询操作,我们就可以把数据获取到,界面就会得到及时的更新显示了:

// 获取列表,绑定到模型上,并修改分页数量

this.listLoading = true

user.GetAll(param).then(data => {

this.list = data.result.items

this.pageinfo.total = data.result.totalCount

this.listLoading = false

})

而列表主要就是在界面使用el-table组件进行展示的了,如下图所示代码。

在这里插入图片描述

el-table绑定了对应的数据,并设置好显示的格式以及选择操作事件、行双击事件等操作。

而el-table里面的显示的列,需要根据我们返回数据的属性名称进行显示,如下代码所示。

在这里插入图片描述

而如果我们需要对属性进行特殊的展示,我们就需要使用v-if条件或者过滤器进行处理了。如下是根据不同内容,构建标签显示内容。

已激活

未激活

而对于时间,我们则可以使用格式化函数或者过滤器规范显示的格式内容。

其中 :formatter=“dateFormat” 指定了对应的格式化处理函数。

dateFormat(row, column, cellValue) {

// this.parseTime是在main.js中的全局挂载函数

return cellValue ? this.parseTime(cellValue, ‘{y}-{m}-{d}’) : ‘’ // 完整格式:{y}-{m}-{d} {h}-{i}-{s}

},

timeFormat(row, column, cellValue) {

// this.parseTime是在main.js中的全局挂载函数

return cellValue ? this.parseTime(cellValue, ‘{y}-{m}-{d} {h}:{i}:{s}’) : ‘’ // 完整格式:{y}-{m}-{d} {h}-{i}-{s}

}

另外,操作列的代码,主要就是构建一些方法操作的入口,并传递对应的变量,如ID值即可。

<el-button icon=“el-icon-search” type=“success” circle size=“mini” @click=“showView(scope.row.id)” />

<el-button icon=“el-icon-edit” type=“primary” circle size=“mini” @click=“showEdit(scope.row.id)” />

<el-button icon=“el-icon-delete” type=“danger” circle size=“mini” @click=“showDelete(scope.row.id)” />

<el-button icon=“el-icon-setting” type=“warning” circle size=“mini” @click=“showSetPass(scope.row.id)” />

列表的底部分页处理,也是利用对应的属性进行显示即可,并处理分页变化的事件。

<el-pagination

:current-page=“pageinfo.pageindex”

:page-size=“pageinfo.pagesize”

:total=“pageinfo.total”

:page-sizes=“[10,20,30,40]”

layout=“total, sizes, prev, pager, next”

@size-change=“sizeChange”

@current-change=“currentChange”

/>

最后完成列表界面代码,显示列表界面如下所示。

在这里插入图片描述

而对于查看、编辑、新增等对话框,一般我们需要创建对应的表单属性,用来承载对应的信息的,如我们为了查看信息的需要,创建一个viewForm的对象,如下所示。

viewForm: { // 查看表单

id: ‘’,

userName: ‘’,

surname: ‘’,

name: ‘’,

emailAddress: ‘’,

phoneNumber: ‘’,

ouNames: ‘’

},

在这里插入图片描述

在查看信息对话框里面,我们展示对应的用户信息,包括基础信息和相关的关系,如下界面代码所示。

在这里插入图片描述

界面组件通过v-modal进行绑定对应的ViewForm属性对象即可。

最后,我们在触发showView函数里面,获取对应的用户信息,然后展示在界面上即可,showView函数代码如下所示。

showView(id) { // 显示查看对话框处理

var param = { id: id }

user.Get(param).then(data => {

// console.log(data.result)
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)


后记


总结一下这三次面试下来我的经验是:

  1. 一定不要死记硬背,要理解原理,否则面试官一深入就会露馅!

  2. 代码能力一定要注重,尤其是很多原理性的代码(之前两次让我写过Node中间件,Promise.all,双向绑定原理,被虐的怀疑人生)!

  3. 尽量从面试官的问题中表现自己知识的深度与广度,让面试官发现你的闪光点!

  4. 多刷面经!

我把所有遇到的面试题都做了一个整理,并且阅读了很多大牛的博客之后写了解析,免费分享给大家,算是一个感恩回馈吧,有需要的朋友【点击我】免费获取。祝大家早日拿到自己心怡的工作!

篇幅有限,仅展示部分内容



理解原理,否则面试官一深入就会露馅!

  1. 代码能力一定要注重,尤其是很多原理性的代码(之前两次让我写过Node中间件,Promise.all,双向绑定原理,被虐的怀疑人生)!

  2. 尽量从面试官的问题中表现自己知识的深度与广度,让面试官发现你的闪光点!

  3. 多刷面经!

我把所有遇到的面试题都做了一个整理,并且阅读了很多大牛的博客之后写了解析,免费分享给大家,算是一个感恩回馈吧,有需要的朋友【点击我】免费获取。祝大家早日拿到自己心怡的工作!

篇幅有限,仅展示部分内容



  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值