vue模拟列表数据

vue模拟列表数据

<template>
  <div class="home">
    <el-container style="height: 100vh; border: 1px solid #eee">
      <el-aside
        width="auto"
        style="background-color: rgb(238, 241, 246); height: 100vh"
      >
        <el-menu
          :default-openeds="['1', '3']"
          style="min-height: 100%; border-right: none"
          class="el-menu-vertical-demo"
          background-color="rgb(48, 65, 86)"
          text-color="#fff"
          active-text-color="#ffd04b"
          :collapse-transition="false"
          :collapse="isCollapse"
        >
          <div style="height: 60px; line-height: 60px; text-align: center">
            <img
              src="../assets/logo.png"
              alt=""
              style="
                width: 20px;
                position: relative;
                top: 5px;
                margin-right: 5px;
              "
            />
            <b style="color: white" v-show="logoTextShow">后台管理系统</b>
          </div>
          <el-submenu index="1">
            <template slot="title"
              ><i class="el-icon-message"></i><span>导航一</span></template
            >
            <el-menu-item-group>
              <template slot="title">分组一</template>
              <el-menu-item index="1-1">选项1</el-menu-item>
              <el-menu-item index="1-2">选项2</el-menu-item>
            </el-menu-item-group>
            <el-menu-item-group title="分组2">
              <el-menu-item index="1-3">选项3</el-menu-item>
            </el-menu-item-group>
            <el-submenu index="1-4">
              <template slot="title">选项4</template>
              <el-menu-item index="1-4-1">选项4-1</el-menu-item>
            </el-submenu>
          </el-submenu>
          <el-submenu index="2">
            <template slot="title"
              ><i class="el-icon-menu"></i><span>导航二</span></template
            >
            <el-menu-item-group>
              <template slot="title">分组一</template>
              <el-menu-item index="2-1">选项1</el-menu-item>
              <el-menu-item index="2-2">选项2</el-menu-item>
            </el-menu-item-group>
            <el-menu-item-group title="分组2">
              <el-menu-item index="2-3">选项3</el-menu-item>
            </el-menu-item-group>
            <el-submenu index="2-4">
              <template slot="title">选项4</template>
              <el-menu-item index="2-4-1">选项4-1</el-menu-item>
            </el-submenu>
          </el-submenu>
          <el-submenu index="3">
            <template slot="title"
              ><i class="el-icon-setting"></i><span>导航三</span></template
            >
            <el-menu-item-group>
              <template slot="title">分组一</template>
              <el-menu-item index="3-1">选项1</el-menu-item>
              <el-menu-item index="3-2">选项2</el-menu-item>
            </el-menu-item-group>
            <el-menu-item-group title="分组2">
              <el-menu-item index="3-3">选项3</el-menu-item>
            </el-menu-item-group>
            <el-submenu index="3-4">
              <template slot="title">选项4</template>
              <el-menu-item index="3-4-1">选项4-1</el-menu-item>
            </el-submenu>
          </el-submenu>
        </el-menu>
      </el-aside>

      <el-container>
        <el-header
          style="
            font-size: 12px;
            border-bottom: 1px solid #ccc;
            line-height: 60px;
            display: flex;
          "
        >
          <div style="flex: 1; font-size: 20px">
            <span
              :class="collapseBtnClass"
              style="cursor: pointer"
              @click="handleCollapse"
            ></span>
          </div>
          <el-dropdown style="width: 70px; cursor: pointer">
            <span>王小虎</span>

            <i class="el-icon-arrow-down" style="margin-left: 5px"></i>
            <el-dropdown-menu slot="dropdown">
              <el-dropdown-item>个人信息</el-dropdown-item>
              <el-dropdown-item>退出logout</el-dropdown-item>
            </el-dropdown-menu>
          </el-dropdown>
        </el-header>

        <el-main>
          <div style="margin-bottom: 30px">
            <el-breadcrumb separator="/">
              <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
              <el-breadcrumb-item>用户管理</el-breadcrumb-item>
            </el-breadcrumb>
          </div>

          <div style="padding: 10px 0">
            <el-input
              style="width: 200px"
              suffix-icon="el-icon-search"
              placeholder="请输入名称"
            ></el-input>
            <el-input
              style="width: 200px"
              suffix-icon="el-icon-message"
              placeholder="请输入邮箱"
              class="ml-5"
            ></el-input>
            <el-input
              style="width: 200px"
              suffix-icon="el-icon-position"
              placeholder="请输入地址"
              class="ml-5"
            ></el-input>
            <el-button class="ml-5" type="primary">搜索</el-button>
          </div>
          <div style="margin: 10px 0">
            <el-button type="primary"
              >新增<i
                class="el-icon-circle-plus-outline"
                style="margin-left: 5px"
              ></i
            ></el-button>
            <el-button type="primary"
              >批量删除<i
                class="el-icon-remove-outline"
                style="margin-left: 5px"
              ></i
            ></el-button>
            <el-button type="primary"
              >导入<i class="el-icon-bottom" style="margin-left: 5px"></i
            ></el-button>
            <el-button type="primary"
              >导出<i class="el-icon-top" style="margin-left: 5px"></i
            ></el-button>
          </div>
          <el-table
            :data="tableData"
            border
            stripe
            :header-cell-style="{ background: '#eee' }"
          >
            <el-table-column prop="username" label="姓名" width="140">
            </el-table-column>
            <el-table-column prop="nickname" label="昵称" width="120">
            </el-table-column>
            <el-table-column prop="address" label="地址"> </el-table-column>
            <el-table-column prop="email" label="邮箱"> </el-table-column>
            <el-table-column prop="createTime" label="创建时间">
            </el-table-column>

            <el-table-column label="操作">
              <template slot-scope="scope">
                <el-button
                  type="text"
                  @click="handleClick(scope.row)"
                  size="small"
                  >编辑</el-button
                >
                <el-button
                  type="text"
                  @click="handleClick(scope.row)"
                  size="small"
                  >删除</el-button
                >
              </template>
            </el-table-column>
          </el-table>
          <div style="padding: 10px 0">
            <el-pagination
              :page-sizes="[5, 10, 15, 20]"
              :page-size="10"
              layout="total, sizes, prev, pager, next, jumper"
              :total="total"
              @size-change="handleSizeChange"
              @current-change="handleCurrentChange"
            >
            </el-pagination>
          </div>
        </el-main>
      </el-container>
    </el-container>
  </div>
</template>

<style>
.home {
  height: 100vh;
}
.el-menu-vertical-demo:not(.el-menu--collapse) {
  width: 200px;
  min-height: 400px;
}
</style>

<script>
export default {
  name: "HomeView",
  data() {
    const item = {
      date: "2016-05-02",
      name: "王小虎",
      address: "上海市普陀区金沙江路 1518 弄",
    };
    return {
      tableData: [], // Array(10).fill(item),
      total: 0,
      isCollapse: false,
      collapseBtnClass: "el-icon-s-fold",
      logoTextShow: true,
      headerCLass: "{background:'#eee'}",
    };
  },
  created() {
    fetch("http://localhost:9090/admin/user/pageLists?pageSize=2&pageNum=2")
      .then((res) => res.json())
      .then((res) => {
        debugger;
        this.tableData = res.pageList;
        this.total = res.total;
      });
  },
  methods: {
    handleCollapse() {
      this.isCollapse = !this.isCollapse;

      if (this.isCollapse) {
        // 收缩
        this.collapseBtnClass = "el-icon-s-unfold";
        this.logoTextShow = false;
      } else {
        // 展开
        this.collapseBtnClass = "el-icon-s-fold";
        this.logoTextShow = true;
      }
    },
  },
};
</script>

其中主要部分

  data() {
    const item = {
      date: "2016-05-02",
      name: "王小虎",
      address: "上海市普陀区金沙江路 1518 弄",
    };
    return {
      tableData:  Array(10).fill(item),
    };
  }

 

posted @ 2023-02-09 21:22  程序员小明1024  阅读(32)  评论(0编辑  收藏  举报