以下是使用 Element UI 实现用户管理页面的示例代码,包含用户数据列表展示、增删改查功能、分页处理以及数据存储(服务端 JSON 文件或变量)。

HTML:

<template>
  <div>
    <el-input v-model='searchText' placeholder='搜索用户'></el-input>
    <el-button type='primary' class='add-btn' @click='addUser'>添加用户</el-button>
    <el-table :data='tableData' v-loading='loading' stripe>
      <el-table-column prop='name' label='用户姓名'></el-table-column>
      <el-table-column prop='phone' label='电话'></el-table-column>
      <el-table-column prop='email' label='邮箱'></el-table-column>
      <el-table-column prop='address' label='地址'></el-table-column>
      <el-table-column label='操作'>
        <template slot-scope='{ row }'>
          <el-button type='text' @click='editUser(row)'>编辑</el-button>
          <el-button type='text' @click='deleteUser(row)'>删除</el-button>
        </template>
      </el-table-column>
    </el-table>
    <el-pagination
      @size-change='handleSizeChange'
      @current-change='handleCurrentChange'
      :current-page='currentPage'
      :page-sizes='[10, 20, 50]'
      :page-size='pageSize'
      :total='total'
      layout='total, sizes, prev, pager, next, jumper'
    ></el-pagination>
    <el-dialog :visible.sync='dialogVisible' title='添加/编辑用户'>
      <el-form :model='form' :rules='rules' ref='form'>
        <el-form-item label='用户姓名' prop='name'>
          <el-input v-model='form.name'></el-input>
        </el-form-item>
        <el-form-item label='电话' prop='phone'>
          <el-input v-model='form.phone'></el-input>
        </el-form-item>
        <el-form-item label='邮箱' prop='email'>
          <el-input v-model='form.email'></el-input>
        </el-form-item>
        <el-form-item label='地址' prop='address'>
          <el-input v-model='form.address'></el-input>
        </el-form-item>
      </el-form>
      <div slot='footer' class='dialog-footer'>
        <el-button @click='dialogVisible = false'>取消</el-button>
        <el-button type='primary' @click='submitForm'>确定</el-button>
      </div>
    </el-dialog>
  </div>
</template>

JavaScript:

<script>
import { mapActions } from 'vuex';

export default {
  data() {
    return {
      loading: false,
      searchText: '',
      tableData: [],
      currentPage: 1,
      pageSize: 10,
      total: 0,
      dialogVisible: false,
      form: {
        name: '',
        phone: '',
        email: '',
        address: '',
      },
      rules: {
        name: [{ required: true, message: '请输入用户姓名', trigger: 'blur' }],
        phone: [
          { required: true, message: '请输入电话', trigger: 'blur' },
          { pattern: /^[0-9]{11}$/, message: '请输入11位有效电话', trigger: 'blur' },
        ],
        email: [
          { required: true, message: '请输入邮箱', trigger: 'blur' },
          { type: 'email', message: '请输入有效邮箱', trigger: 'blur' },
        ],
        address: [{ required: true, message: '请输入地址', trigger: 'blur' }],
      },
    };
  },
  mounted() {
    this.fetchData();
  },
  computed: {
    filteredData() {
      const searchText = this.searchText.trim().toLowerCase();
      return this.tableData.filter(
        (item) =>
          item.name.toLowerCase().includes(searchText) ||
          item.phone.toLowerCase().includes(searchText) ||
          item.email.toLowerCase().includes(searchText) ||
          item.address.toLowerCase().includes(searchText)
      );
    },
  },
  methods: {
    ...mapActions(['addUser', 'editUser', 'deleteUser', 'fetchData']),
    handleSizeChange(val) {
      this.pageSize = val;
      this.fetchData();
    },
    handleCurrentChange(val) {
      this.currentPage = val;
      this.fetchData();
    },
    submitForm() {
      this.$refs.form.validate((valid) => {
        if (valid) {
          this.dialogVisible = false;
          if (this.form.id) {
            this.editUser(this.form);
          } else {
            this.addUser(this.form);
          }
        } else {
          return false;
        }
      });
    },
  },
};
</script>

此示例代码使用 Vue.js 和 Vuex,需要安装并配置好相应的依赖。数据来源可以是服务端的 JSON 文件或者服务端定义的变量,需要在 Vuex 中定义对应的数据操作方法。对于分页的处理,可以使用 Element UI 提供的分页组件和相关事件实现。用户数据的增删改查可以通过调用相应的 Vuex 方法实现,同时需要在页面中显示对应的对话框组件来输入和编辑用户数据。在表格中使用 Element UI 的 table 和 table-column 组件展示用户数据,可以使用搜索框组件来查询用户数据。

以上代码仅作为示例,实际应用中需要根据具体需求进行修改和完善。

Element UI 用户管理页面:增删改查、分页和数据存储

原文地址: https://www.cveoy.top/t/topic/njG1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录