首页 > 其他分享 >vue+ elementUI

vue+ elementUI

时间:2023-06-14 19:12:56浏览次数:37  
标签:elementUI vue name 王小虎 普陀区 export 跳转 页面

1、在dos窗口下运行命令 npm i element-ui -S 安装elementui

2、配置elementui

3、画面代码展示

登录页面
<template>
  <div>
    <!-- :是 v-bind的简写 -->
    <el-form ref="loginForm" :model="form" :rules="rules" label-width="80px" class="login-box">
        <h3 class="login-title">欢迎登录</h3>
        <el-form-item label="账号" prop="username">
          <el-input type="text" placeholder="请输入账号" v-model="form.username"/>
        </el-form-item>
        <el-form-item label="密码" prop="password">
          <el-input type="password" placeholder="请输入密码" v-model="form.password"/>
        </el-form-item>
        <el-form-item>
          <el-button type="primary" v-on:click="onSubmit('loginForm')">登录</el-button>
          <el-button @click="resetForm('loginForm')">重置</el-button>
        </el-form-item>
    </el-form>

    <el-dialog title="温馨提示" :visible.sync="dialogVisible" width="30%" :before-close="handleClose">
        <!-- <el-dialog title="温馨提示" :visible.sync="dialogVisible" width="30%" > -->
            <span>请输入账号和密码</span>
            <span slot="footer" class="dialog-footer">
                <el-button type="primary" @click="dialogVisible = false">确定</el-button>
            </span>
        </el-dialog>
  </div>
</template>

<script>
export default {
    name: 'Login',
    data() {
        return {
            form: {
                username: '',
                password: ''
            },
            //表单验证,需要在 el-form-item 元素中增加prop属性
            rules:{
                username:[
                    {
                        required:true,
                        message:"账号不可为空",
                        trigger:"blur"
                    }
                ],
                password:[
                    {required:true,message:"密码不可为空12",tigger:"blur"}
                ]
            },

            // 对话框显示何隐藏
            dialogVisible: false,
        }
    },
    methods: {
        onSubmit(formName) {
            this.$refs[formName].validate((valid) => {
                if(valid) {
                    if(this.form.username == "admin" && this.form.password == "123456a?") {
                        // 跳转画面
                        // 使用vue-router ,跳转到指定的页面,这种方式称为编程式路导航
                        this.$router.push('/main');
                    } else {
                        this.$message.error('用户名 or 密码不正确');
                    }
                } else {
                    // alert('budui ');
                    // 表单验证没有通过的时候
                    this.dialogVisible = true;
                    

                    return false;
                }

            });

        },
        resetForm(formName) {
            this.$refs[formName].resetFields();
        },
        

    },

}
</script>

<style lang="scss" scoped>
.login-box{
  border:1px solid #DCDFE6;
  width: 350px;
  margin:180px auto;
  padding: 35px 35px 15px 35px;
  border-radius: 5px;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  box-shadow: 0 0 25px #909399;
}
.login-title{
  text-align:center;
  margin: 0 auto 40px auto;
  color: #303133;
}
</style>

点击登录跳转页面
<template>
<div>
  <!-- <h1>main</h1>  -->
  <el-container>
        <el-aside width="200px">
        <el-menu>
          <el-submenu index="1">
            <template slot="title">
              <i class="el-icon-caret-right"></i>用户管理
            </template>
            <el-menu-item-group>
              <el-menu-item index="1-1">
                <!-- 个人信息  -->
                <router-link to="/user/profile">个人信息</router-link>
              </el-menu-item>
              <el-menu-item index="1-2">                
                <!-- 用户列表 -->
                <router-link to="/user/list">用户列表</router-link>
              </el-menu-item>
            </el-menu-item-group>
          </el-submenu>

          <el-submenu index="2">
            <template slot="title"><i class="el-icon-caret-right"></i>内容管理</template>
            <el-menu-item-group>
              <el-menu-item index="2-1">
                分类管理 
              </el-menu-item>
              <el-menu-item index="2-2">
                内容列表
              </el-menu-item>
            </el-menu-item-group>
          </el-submenu>


        </el-menu>
      </el-aside>

      <el-container>
        <el-header style="text-align: right; font-size: 12px">
          <el-dropdown>
            <i class="el-icon-setting" style="margin-right: 15px"></i>
            <el-dropdown-menu slot="dropdown">
              <el-dropdown-item>
                <!-- 个人信息111 -->
                <router-link to="/user/profile">个人信息</router-link>
              </el-dropdown-item>
              <el-dropdown-item>
                退出登录222
              </el-dropdown-item>
            </el-dropdown-menu>
          </el-dropdown>
        </el-header>

        <el-main>
          <!-- <h1>main</h1> -->
          <router-view></router-view>
        </el-main>
      </el-container>
    </el-container>
</div>
</template>

<script>
export default {
  name: 'Main',


}
</script>

<style lang="scss" scoped>
.el-header {
  background-color: #8ab9e8;
  color: #333;
  line-height: 60px;
}
.el-aside {
  color: #333;
}
</style>

点击个人信息跳转页面
<template>
  <div>
    <h1>用户信息</h1>
  </div>
</template>

<script>
export default {
    name: 'UserProfile',


}
</script>

<style>

</style>

点击用户列表跳转页面
<template>
  <div>
    <h1>用户一览</h1>
    <el-table
      :data="tableData"
      style="width: 100%">
      <el-table-column
        prop="date"
        label="日期"
        width="180">
      </el-table-column>
      <el-table-column
        prop="name"
        label="姓名"
        width="180">
      </el-table-column>
      <el-table-column
        prop="address"
        label="地址">
      </el-table-column>
    </el-table>
  </div>
</template>

<script>
export default {
    name: 'UserList',
    data() {
        return {
          tableData: [{
            date: '2016-05-02',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1518 弄'
          }, {
            date: '2016-05-04',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1517 弄'
          }, {
            date: '2016-05-01',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1519 弄'
          }, {
            date: '2016-05-03',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1516 弄'
          }]
        }
      },
      methods: {
        doSearch:function() {

        }
      },
}
</script>

<style>

</style>

----------------------------补充说明--------------------------------------------------------------

补充1、


补充2:以上跳转用到了:默认路由、子路由,


标签:elementUI,vue,name,王小虎,普陀区,export,跳转,页面
From: https://www.cnblogs.com/liangkuan/p/17481132.html

相关文章

  • 记录--极致舒适的Vue可编辑表格
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助使用ElementPlus的Table啥都好,就是没有可编辑表格!!!......
  • vue+css: 引用的组件快速改变滚动条样式
    在a组件页面内有b组件,b组件产生的滚动条太丑不好看但是又不想改变b组件(b组件公共用的地方很多)又不想专门复制份在此基础上改。只要在使用的组件上增加css代码即可同时让组件内滚动条生效,原理是因为此滚动条相当于未定义类的当前组件全局。所以可以直接使用并生效comp.vue<styl......
  • 2023.6.14 - vue多页面项目配置
    抽离multipage.config.js多页面配置文件const{resolve}=require('path');constfs=require('fs');//获取多页的入口配置constpagesPath='src/pages';//pages页面配置constpages=getAllPages(resolve(pagesPath));//alias配置constaliasConfi......
  • vue封装包含区域内不可拖拽的可拖拽组件
    标题比较绕口,大概意思就是封装一个可拖拽组件,但是因为组件内有文件或者表单或者其它原因而不可在这个区域内使用拖拽,所以在绑定拖拽区域方法的同时限制不可拖拽区域。实现方式很简单  直接看代码drag.jsimportVuefrom'vue'exportconstdrag=Vue.directive('drag',{......
  • vue3 css ts 双重弹跳加载动画
    /双重弹跳加载动画*/效果如同页面https://codepen.io/yjx123/pen/zYMvbML<ahref="javascript:void(0)"@click="startLoading"><inline-svg:src="getAssetPath(iconPath)"></inline-svg><div:style="{......
  • 【React工作记录一百零五】springBoot+vue实现登录操作和JWT验证
    前言大家好我是歌谣今天继续进行前后端的一个学习目前进入的是javaweb部分今天来聊聊登录部分和JWT验证部分的书写用户登录loginControllerpackagecom.itheima.controller;importcom.itheima.pojo.Emp;importcom.itheima.pojo.Result;importcom.itheima.service.EmpSer......
  • webStorm添加elementui注解
    https://element.eleme.io  添加成功后的效果 ......
  • 2023-06-14 记录一下vue组件如何调用App.vue里面的方法(代码来至chatGpt)
    可以通过在子组件中使用$emit方法来触发App.vue中的方法。具体步骤如下:在App.vue中定义一个方法<script>exportdefault{methods:{appMethod(){console.log('调用了App.vue中的方法')}}}</script>在子组件中使用$emit方法触发该方......
  • vue watch deep 用法
    简单案例<template><div><h1>watchdeep</h1><p>obj:{{obj}}</p><p>调用watch次数:{{times}}</p><button@click="chgObj">改变对象</button></div></t......
  • Vue3中循环任务优化方案
    需求在使用循环任务时,往往需要使用到setInterval方法。其接受三个参数,分别是1.具体执行的函数2.执行时间间隔3.传递个函数的参数,并返回一个id,后续可以使用这个id来停止循环的执行。具体的使用可以查阅MDN。在实际开发中,很容易重复创建相同的interval实例,进行反复的执行,并且在......