span="8":长度为8--> 添加用户 slot="footer" class="dialog-footer"> 取 消 确 定 带边框,stripe->使用带斑马纹的表。前端VUE|Vue用户管理(增删改查)功能详情。" />

前端VUE|Vue用户管理(增删改查)功能详情

1、最终实现效果: 前端VUE|Vue用户管理(增删改查)功能详情
文章图片

Users.vue:

> export default { data() { // 验证添加用户邮箱的规则 const checkEmail = (rule, value, cb) => { // 验证邮箱的正则表达式 const regEmail = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/ if (regEmail.test(value)) { return cb() } cb(new Error('请输入合法的邮箱')) } // 验证添加用户手机的规则 const checkMoblie = (rule, value, cb) => { // 验证手机的正则表达式 const regMobile = /^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/ if (regMobile.test(value)) { return cb() } cb(new Error('请输入合法的手机号码')) }return { // 获取用户列表参数 queryInfo: { query: '', // 当前页数 pagenum: 1, // 当前每页显示多少条数据 pagesize: 2, }, userList: [], total: 0, // 控制添加用户对话框的显示与隐藏 addDialogVisible: false,// 添加用户的表单数据 addUserForm: { username: '', password: '', email: '', mobile: '', },// 添加用户的表单规则 addUserFormRules: { username: [ { required: true, message: '请输入合法的用户名', trigger: 'blur' }, { min: 3, max: 10, message: '用户名的长度在3-10个字符之间', trigger: 'blur', }, ], password: [ { required: true, message: '请输入合法的密码', trigger: 'blur' }, { min: 6, max: 15, message: '密码的长度在6-15个字符之间', trigger: 'blur', }, ], email: [ { required: true, message: '请输入合法的邮箱', trigger: 'blur' }, { validator: checkEmail, trigger: 'blur' }, ], mobile: [ { required: true, message: '请输入合法的手机号码', trigger: 'blur' }, { validator: checkMoblie, trigger: 'blur' }, ], }, // 控制修改用户对话框的显示与隐藏 editDialogVisible: false, // 修改用户的表单数据 editUserForm: {}, // 修改表单的验证规则对象 editUserFormRules: { email: [ { required: true, message: '请输入合法的邮箱', trigger: 'blur' }, { validator: checkEmail, trigger: 'blur' }, ], mobile: [ { required: true, message: '请输入合法的手机号码', trigger: 'blur' }, { validator: checkMoblie, trigger: 'blur' }, ], }, } }, created() { this.getUserList() }, methods: { // 获取用户列表数据 async getUserList() { const { data: res } = await this.$http.get('users', { params: this.queryInfo, }) if (res.meta.status !== 200) return this.$message.error('数据获取失败') this.userList = res.data.users this.total = res.data.total console.log(res) }, // 监听pageSize改变的事件 handleSizeChange(newSize) { console.log(newSize) this.queryInfo.pagesize = newSize this.getUserList() }, // 监听page页码值改变的事件 handleCurrentChange(newPage) { console.log(newPage) this.queryInfo.pagenum = newPage this.getUserList() }, // 监听switch开头状态的改变 async userStateChange(userInfor) { console.log(userInfor) const { data: res } = await this.$http.put( `users/${userInfor.id}/state/${userInfor.mg_state}` ) if (res.meta.status !== 200) { userInfor.mg_state = !userInfor.mg_state return this.$message.error('更新用户失败!') } this.$message.success('更新用户成功!') }, // 监听添加用户对话框的:close关闭事件,清除数据(resetFields) addDialogClosed() { this.$refs.addUserFormRef.resetFields() }, // 点击按钮,添加用户,validate(预校验) addUser() { this.$refs.addUserFormRef.validate(async (valid) => { if (!valid) return // 成功后向api发出添加用户的网络请求 const { data: res } = await this.$http.post('users', this.addUserForm) if (res.meta.status !== 201) { this.$message.error('添加用户失败!') } this.$message.success('添加用户成功!') // 隐藏添加用户的对话框 this.addDialogVisible = false // 重新获取用户列表 this.getUserList() }) }, // 展示编辑用户数据的对话框 async showEditDialog(id) { const { data: res } = await this.$http.get('users/' + id) if (res.meta.status !== 200) return this.$message.error('查询失败!') this.editDialogVisible = true this.editUserForm = res.data }, // 监听修改用户对话框关闭事件,resetFields重置数据 editDialogClosed() { this.$refs.editUserFormRef.resetFields() }, // 修改用户信息并发出请求 editUserInfo() { this.$refs.editUserFormRef.validate(async (valid) => { if (!valid) return // 发出修改用户信息的数据请求 const { data: res } = await this.$http.put( 'users/' + this.editUserForm.id, { email: this.editUserForm.email, mobile: this.editUserForm.mobile } ) if (res.meta.status !== 200) { return this.$message.error('更新用户信息失败!') } // 关闭修改信息对话框 this.editDialogVisible = false // 刷新数据列表 this.getUserList() // 提示修改成功 this.$message.success('更新用户信息成功!') }) }, // 根据Id删除用户 async removeUserById(id) { const confirmRes = await this.$confirm( '此操作将永久删除该用户, 是否继续?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning', } ).catch((err) => err) // 如果用户确认删除,返回confirm // 如果用户取消删除,返回cancel if (confirmRes !== 'confirm') { return this.$message.info('已取消删除') } const { data: res } = await this.$http.delete('users/' + id) if (res.meta.status !== 200) { return this.$message.error('删除用户失败!') } this.$message.success('删除用户成功!') this.getUserList() }, }, } lang="less" scoped>

2、首先我们把基本的页面先设置好 【前端VUE|Vue用户管理(增删改查)功能详情】前端VUE|Vue用户管理(增删改查)功能详情
文章图片

user.vue:
> export default { data() { return {} }, created() {}, methods: {}, } lang="less" scoped>

3、第一步:通过API接口,查询数据信息,把数据渲染到HTML中 前端VUE|Vue用户管理(增删改查)功能详情
文章图片

user.vue:
> export default { data() { return { // 定义获取用户列表参数(queryInfo),query:查询,pagenum:当前页数,pagesize:当前每页显示多少条数据 queryInfo: { query: '', pagenum: 1, pagesize: 2, }, // 获取用户列表数据,存放到userList中,查询条数放到total中 userList: [], total: 0, } }, created() { this.getUserList() }, methods: { // 获取用户列表数据(getUserList) async getUserList() { const { data: res } = await this.$http.get('users', { params: this.queryInfo, }) if (res.meta.status !== 200) return this.$message.error('数据获取失败') this.userList = res.data.users this.total = res.data.total console.log(res) }, }, } lang="less" scoped>

前端VUE|Vue用户管理(增删改查)功能详情
文章图片

4、第二步:把状态(Boolean)做成开头效果 前端VUE|Vue用户管理(增删改查)功能详情
文章图片

> export default { data() { return { // 定义获取用户列表参数(queryInfo),query:查询,pagenum:当前页数,pagesize:当前每页显示多少条数据 queryInfo: { query: '', pagenum: 1, pagesize: 2, }, // 获取用户列表数据,存放到userList中,查询条数放到total中 userList: [], total: 0, } }, created() { this.getUserList() }, methods: { // 获取用户列表数据(getUserList) async getUserList() { const { data: res } = await this.$http.get('users', { params: this.queryInfo, }) if (res.meta.status !== 200) return this.$message.error('数据获取失败') this.userList = res.data.users this.total = res.data.total console.log(res) }, }, } lang="less" scoped>

前端VUE|Vue用户管理(增删改查)功能详情
文章图片

5、第四步:在操作中添加(修改、删除、设置)按钮 前端VUE|Vue用户管理(增删改查)功能详情
文章图片


6、第五步:添加用户列表搜索查询功能 前端VUE|Vue用户管理(增删改查)功能详情
文章图片

> export default { data() { return { // 定义获取用户列表参数(queryInfo),query:查询,pagenum:当前页数,pagesize:当前每页显示多少条数据 queryInfo: { query: '', pagenum: 1, pagesize: 2, }, // 获取用户列表数据,存放到userList中,查询条数放到total中 userList: [], total: 0, } }, created() { this.getUserList() }, methods: { // 获取用户列表数据(getUserList) async getUserList() { const { data: res } = await this.$http.get('users', { params: this.queryInfo, }) if (res.meta.status !== 200) return this.$message.error('数据获取失败') this.userList = res.data.users this.total = res.data.total console.log(res) }, }, } lang="less" scoped>

前端VUE|Vue用户管理(增删改查)功能详情
文章图片

7、第六步:添加(增加用户对话框) 前端VUE|Vue用户管理(增删改查)功能详情
文章图片

> export default { data() { return { // 定义获取用户列表参数(queryInfo),query:查询,pagenum:当前页数,pagesize:当前每页显示多少条数据 queryInfo: { query: '', pagenum: 1, pagesize: 2, }, // 获取用户列表数据,存放到userList中,查询条数放到total中 userList: [], total: 0, // 控制添加用户对话框的显示与隐藏 addDialogVisible: false, } }, created() { this.getUserList() }, methods: { // 获取用户列表数据(getUserList) async getUserList() { const { data: res } = await this.$http.get('users', { params: this.queryInfo, }) if (res.meta.status !== 200) return this.$message.error('数据获取失败') this.userList = res.data.users this.total = res.data.total console.log(res) }, // 监听添加用户对话框的:close关闭事件,清除数据(resetFields) addDialogClosed() { this.$refs.addUserFormRef.resetFields() }, }, } lang="less" scoped>


8、第7步:添加分页功能 前端VUE|Vue用户管理(增删改查)功能详情
文章图片

前端VUE|Vue用户管理(增删改查)功能详情
文章图片

> export default { data() { return { // 定义获取用户列表参数(queryInfo),query:查询,pagenum:当前页数,pagesize:当前每页显示多少条数据 queryInfo: { query: '', pagenum: 1, pagesize: 1, }, // 获取用户列表数据,存放到userList中,查询条数放到total中 userList: [], total: 0, // 控制添加用户对话框的显示与隐藏 addDialogVisible: false, } }, created() { this.getUserList() }, methods: { // 获取用户列表数据(getUserList) async getUserList() { const { data: res } = await this.$http.get('users', { params: this.queryInfo, }) if (res.meta.status !== 200) return this.$message.error('数据获取失败') this.userList = res.data.users this.total = res.data.total console.log(res) }, // 监听pageSize改变的事件 handleSizeChange(newSize) { console.log(newSize) this.queryInfo.pagesize = newSize this.getUserList() }, // 监听page页码值改变的事件 handleCurrentChange(newPage) { console.log(newPage) this.queryInfo.pagenum = newPage this.getUserList() }, }, } lang="less" scoped>


9、第八步:修改用户状态 前端VUE|Vue用户管理(增删改查)功能详情
文章图片

> export default { data() { return { // 定义获取用户列表参数(queryInfo),query:查询,pagenum:当前页数,pagesize:当前每页显示多少条数据 queryInfo: { query: '', pagenum: 1, pagesize: 1, }, // 获取用户列表数据,存放到userList中,查询条数放到total中 userList: [], total: 0, // 控制添加用户对话框的显示与隐藏 addDialogVisible: false, } }, created() { this.getUserList() }, methods: { // 获取用户列表数据(getUserList) async getUserList() { const { data: res } = await this.$http.get('users', { params: this.queryInfo, }) if (res.meta.status !== 200) return this.$message.error('数据获取失败') this.userList = res.data.users this.total = res.data.total console.log(res) }, // 监听pageSize改变的事件 handleSizeChange(newSize) { console.log(newSize) this.queryInfo.pagesize = newSize this.getUserList() }, // 监听page页码值改变的事件 handleCurrentChange(newPage) { console.log(newPage) this.queryInfo.pagenum = newPage this.getUserList() }, // 监听switch开头状态的改变 async userStateChange(userInfor) { console.log(userInfor) const { data: res } = await this.$http.put( `users/${userInfor.id}/state/${userInfor.mg_state}` ) if (res.meta.status !== 200) { userInfor.mg_state = !userInfor.mg_state return this.$message.error('更新用户失败!') } this.$message.success('更新用户成功!') }, }, } lang="less" scoped>


10、第九步:添加用户对话框实现校验规则(跟登陆校验差不多) 前端VUE|Vue用户管理(增删改查)功能详情
文章图片

> export default { data() { // 验证添加用户邮箱的规则 const checkEmail = (rule, value, cb) => { // 验证邮箱的正则表达式 const regEmail = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/ if (regEmail.test(value)) { return cb() } cb(new Error('请输入合法的邮箱')) } // 验证添加用户手机的规则 const checkMoblie = (rule, value, cb) => { // 验证手机的正则表达式 const regMobile = /^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/ if (regMobile.test(value)) { return cb() } cb(new Error('请输入合法的手机号码')) } return { // 定义获取用户列表参数(queryInfo),query:查询,pagenum:当前页数,pagesize:当前每页显示多少条数据 queryInfo: { query: '', pagenum: 1, pagesize: 1, }, // 获取用户列表数据,存放到userList中,查询条数放到total中 userList: [], total: 0, // 控制添加用户对话框的显示与隐藏 addDialogVisible: false, // 添加用户的表单数据 addUserForm: { username: '', password: '', email: '', mobile: '', },// 添加用户的表单规则 addUserFormRules: { username: [ { required: true, message: '请输入合法的用户名', trigger: 'blur' }, { min: 3, max: 10, message: '用户名的长度在3-10个字符之间', trigger: 'blur', }, ], password: [ { required: true, message: '请输入合法的密码', trigger: 'blur' }, { min: 6, max: 15, message: '密码的长度在6-15个字符之间', trigger: 'blur', }, ], email: [ { required: true, message: '请输入合法的邮箱', trigger: 'blur' }, { validator: checkEmail, trigger: 'blur' }, ], mobile: [ { required: true, message: '请输入合法的手机号码', trigger: 'blur' }, { validator: checkMoblie, trigger: 'blur' }, ], }, } }, created() { this.getUserList() }, methods: { // 获取用户列表数据(getUserList) async getUserList() { const { data: res } = await this.$http.get('users', { params: this.queryInfo, }) if (res.meta.status !== 200) return this.$message.error('数据获取失败') this.userList = res.data.users this.total = res.data.total console.log(res) }, // 监听pageSize改变的事件 handleSizeChange(newSize) { console.log(newSize) this.queryInfo.pagesize = newSize this.getUserList() }, // 监听page页码值改变的事件 handleCurrentChange(newPage) { console.log(newPage) this.queryInfo.pagenum = newPage this.getUserList() }, // 监听switch开头状态的改变 async userStateChange(userInfor) { console.log(userInfor) const { data: res } = await this.$http.put( `users/${userInfor.id}/state/${userInfor.mg_state}` ) if (res.meta.status !== 200) { userInfor.mg_state = !userInfor.mg_state return this.$message.error('更新用户失败!') } this.$message.success('更新用户成功!') }, // 监听添加用户对话框的:close关闭事件,清除数据(resetFields) addDialogClosed() { this.$refs.addUserFormRef.resetFields() }, }, } lang="less" scoped>


11、第十步:用户添加功能(终于到添加用户了,真是好多功能要考虑,/(ㄒoㄒ)/~~)

    推荐阅读