组件 | Elementhttps://element.eleme.cn/#/zh-CN/component/installation
<template> <el-select v-model="data定义的变量" placeholder="请选择用户类型"> <el-option v-for="item in userTypeOptions" :key="item.id" :label="item.roleName" :value="item.id" > el-option> el-select> template>userTypeOptions后端响应的对象数组数据
- <el-table max-height="420" :data="tableData" stripe style="width: 100%">
-
-
- <el-table-column label="编号" width="140">
- <template slot-scope="scope">
- {{ scope.$index + 1 }}
- template>
- el-table-column>
- <el-table-column prop="userType" label="用户类型" width="160">
- el-table-column>
- <el-table-column prop="account" label="账号" width="160">
- el-table-column>
- <el-table-column prop="userName" label="用户名" width="160">
- el-table-column>
- <el-table-column prop="ctime" label="创建时间" width="160">
-
- el-table-column>
- <el-table-column prop="createdUserId" label="创建人id" width="120">
- el-table-column>
- <el-table-column label="状态" width="100">
-
- <template slot-scope="scope1">
-
-
- <el-switch
- v-model="scope1.row.status"
- :active-value="1"
- active-color="#ff4949"
- :inactive-value="0"
- inactive-color="#13ce66"
- @change="handleAuthority(scope1.row)"
- >
- el-switch>
- template>
- el-table-column>
- <el-table-column label="操作">
-
- <template slot-scope="scope2">
- <el-button size="mini" @click="handleEdit(scope2.$index, scope2.row)"
- >编辑
- >
- <el-button
- size="mini"
- type="danger"
- @click="handleDelete(scope2.$index, scope2.row)"
- >删除
- >
- template>
- el-table-column>
- el-table>
表格中添加模板的作用域实现 异步处理
监听status的状态
- //监听启用禁用按钮的状态
- handleAuthority(row) {
- console.log(row);
- console.log(row.status);
- // 发送请求到后端来更新status值
- const newStatus = row.status ? 1 : 0; // 反转status值
- this.updateUserStatus(newStatus, row.id);
- },
权限修改异步处理:
- // //修改权限请求
- updateUserStatus(authority, userId) {
- //开始发送修改请求
- var url = `http://localhost:8080/qy/User/UpdateUserStatus/${authority}/${userId}`;
- var config = {
- headers: {
- //配置请求表头防止后端接收不到data中的参数
- "Content-Type": "application/json",
- // 可以在这里添加其他的header配置
- },
- };
- this.axios
- .get(url, config)
- .then((res) => {
- console.log("修改成功", res);
- })
- .catch((rej) => {
- //请求失败捕获
- console.log(rej);
- });
- },
el-pagination 分页
- <el-pagination
- @size-change="handleSizeChange"
- @current-change="handleCurrentChange"
- :current-page="pageNo"
- :page-sizes="[7, 14, 21, 28]"
- :page-size="pageSize"
- layout="total, sizes, prev, pager, next, jumper"
- :total="totalParam"
- >
- el-pagination>
几个监听函数与异步请求
- methods: {
- //监听分页条数
- handleSizeChange(val) {
- console.log(`每页 ${val} 条`);
- this.pageSize = val;
- this.selectUser();
- },
- //监听分页条数的改变
- handleCurrentChange(val) {
- console.log(`当前页: ${val}`);
- this.pageNo = val;
- this.selectUser();
- },
- //用户表全查方法
- selectUser() {
- console.log("查询");
- var url = `http://localhost:8080/qy/User/select`;
- var userparam = {
- userType: this.value,
- userName: this.likeUserUserName,
- account: this.likeUserAccount,
- };
- var pageParam = {
- pageNo: this.pageNo,
- pageSize: this.pageSize,
- };
-
- var userDto = {
- pages: pageParam,
- users: userparam,
- };
- userDto = JSON.stringify(userDto);
- var data = userDto;
- var config = {
- headers: {
- //配置请求表头防止后端接收不到data中的参数
- "Content-Type": "application/json",
- // 可以在这里添加其他的header配置
- },
- };
- this.axios
- .post(url, data, config)
- .then((res) => {
- console.log(res);
- //使用res.data.data 获取自己封装的对象中的数据
- console.log("data", res.data.data);
- if (res.data.status == 200) {
- //将响应数据存进数组
- this.tableData = res.data.data.pages;
- //修改后端传递的用户类型
- // 使用forEach函数修改userType属性值
- this.tableData.forEach((item) => {
- // eslint-disable-next-line no-prototype-builtins
- if (item.hasOwnProperty("userType")) {
- // 在这里修改userType的值,例如将其设置为新值4
- item.userType =
- item.userType === 1
- ? "系统管理员"
- : item.userType === 2
- ? "挂号员"
- : "门诊医师";
- }
- });
- //接收数据库总条数
- this.totalParam = res.data.data.total;
- }
-
- if (res.data.status == -1) {
- //用户未登录重定向到登录页面
- this.$message.error(res.data.msg);
- this.$router.push("/login");
- }
- })
- .catch((rej) => {
- //请求失败捕获
- console.log(rej);
- });
- },
- },
axios实现发送异步请求
el-dialog 弹窗
- <el-dialog title="编辑用户" :visible.sync="dialogFormVisible">
- <el-form :model="editForm">
-
- <el-input type="hidden" name="id" v-model="editForm.id">el-input>
- <el-form-item label="用户名">
- <el-input v-model="editForm.userName" autocomplete="off">el-input>
- el-form-item>
- el-form>
-
- <div slot="footer" class="dialog-footer">
- <el-button @click="dialogFormVisible = false">取 消el-button>
- <el-button type="primary" @click="submitForm">确 定el-button>
- div>
- el-dialog>
-
-
- <el-dialog title="删除用户" :visible.sync="dialogRemove" width="30%">
- <span>确认要删除用户吗?span>
-
- <span slot="footer" class="dialog-footer">
- <el-button @click="dialogRemove = false">取 消el-button>
- <el-button type="primary" @click="deleteSubmint">确 定el-button>
- span>
- el-dialog>
监听弹窗
- //监听修改代码弹窗
- handleEdit(index, row) {
- console.log(index, row);
- //将查询到的行数据显示到弹窗的表单里 默认显示
- this.editForm = row;
- //显示对话框获取用户输入的信息
- this.dialogFormVisible = true;
- },
- //监听删除代码弹窗
- handleDelete(index, row) {
- console.log(index, row);
- //将查询到的行数据显示到弹窗的表单里 默认显示
- this.deleteForm = row;
- //显示对话框获取用户输入的信息
- this.dialogRemove = true;
- },
-
相关阅读:
JUC并发编程——ForkJoin与异步回调
干货 | 利用 pytest 玩转数据驱动测试框架
【无标题】
SpringBoot集成flink
离线建AC自动机维护子串+线段树维护AC自动机:HDU4117
rust编译器教我做人,为啥还要学习rust语言,因为想使用rust做一些底层服务,更深入的研究技术。
一篇文章带你入门vim
文件上传漏洞(3), 文件上传实战绕过思路, 进阶篇, 代码审计
【NOI模拟赛】Anaid 的树(莫比乌斯反演,指数型生成函数,埃氏筛,虚树)
【自然语言处理(NLP)实战】LSTM网络实现中文文本情感分析(手把手与教学超详细)
-
原文地址:https://blog.csdn.net/qq_58647634/article/details/132775302