Vue Cli目录

VueCli官网:https://element.eleme.io/#/zh-CN

VueCli写法

:    等于    v-bind

router/index.js

//引入模块import Vue from 'vue'import VueRouter from 'vue-router'import Home from '../views/Home.vue'import Music from '../views/Music.vue'import Test from '../views/Test.vue'Vue.use(VueRouter)//path是路由参数,当门路匹配到以后路由参数时,就会跳转component所对应的页面组件const routes = [  {    path: '/',            //首页    name: 'Home',    component: Home  },  {    path: '/about',        //模块门路    name: 'About',    component: Aubot  },  {    path: '/music',        //模块门路    name: 'Music',    component: Music  },  {    path: '/test',        //模块门路    name: 'Test',    component: Test  }]const router = new VueRouter({  routes})export default router

app.vue 为主入口

<template>  <div id="app"><!-- router容许应用路由跳转  mode设置程度 垂直 -->    <el-menu    mode="horizontal"    background-color="#97c0c8"    text-color="#fff"    router    >      <el-menu-item index="/">首页</el-menu-item>      <el-menu-item index="/about">音 乐</el-menu-item>      <el-menu-item index="/music">走马灯</el-menu-item>      <el-menu-item index="/test">测试</el-menu-item>    </el-menu><!-- 部分跳转页面 --><router-view></router-view>  </div></template><style></style>

views/About

<template>  <div>    <el-input v-model="input" placeholder="请输出歌手名" style="width: 13%; margin-top: 13px; margin-bottom: 13px; margin-right: 13px; margin-left: 3px;"></el-input>    <el-button @click='findInput(input)' style="margin-right: 13px;">搜寻</el-button>    <el-button @click='dialogSave=true' style="margin-right: 13px;">新增</el-button>    <el-button @click='dialogUpload=true' style="margin-right: 13px;">导入</el-button>    <el-button @click='downloadExcel()' style="margin-right: 13px;">导出</el-button>    <el-button @click='print()' style="margin-right: 13px;">打印</el-button>      <el-table :data="tableData" stripe style="width: 100%">        <el-table-column prop="song" label="歌曲名" width="180">        </el-table-column>        <el-table-column prop="name" label="歌手" width="180">        </el-table-column>        <el-table-column prop="sex" :formatter="sexType" label="性别" width="180">        </el-table-column>        <el-table-column prop="createTime" label="创立工夫" width="180">        </el-table-column>        <el-table-column>          <el-button slot-scope="scope" @click='dialogUpdate=true,update(scope.row)'>批改</el-button>        </el-table-column>        <el-table-column>          <!-- 获取当行元素 -->          <el-button slot-scope="scope" @click='deleteId(scope.row.id)'>删除</el-button>        </el-table-column>      </el-table>      <!-- 分页 -->         <el-pagination            @size-change="handleSizeChange"            @current-change="handleCurrentChange"            :current-page="pageSize"            :page-sizes="[5, 10, 15, 20]"            :page-size="size"            layout="total, sizes, prev, pager, next, jumper"            :total="count">         </el-pagination>      <el-dialog title="新增" :visible.sync="dialogSave" style="width: 100%;">        <table>          <tr>            <td>歌曲名:</td>            <td><el-input v-model="musicName"></el-input></td>          </tr>          <tr>            <td>歌 手:</td>            <td><el-input v-model="name"></el-input></td>          </tr>          <tr>            <td>性 别:</td>            <td><el-input v-model="sex"></el-input></td>          </tr>        </table>        <el-button type="submit" @click="dialogSave=false" style="margin-right: 33px;">勾销</el-button>        <el-button type="submit" @click="insertData()">提交</el-button>      </el-dialog>      <el-dialog title="批改" :visible.sync="dialogUpdate">        <table>          <tr>            <td>歌曲名:</td>            <td><el-input v-model="updateMusicName"></el-input></td>          </tr>          <tr>            <td>歌 手:</td>            <td><el-input v-model="updateName"></el-input></td>          </tr>          <tr>            <td>性 别:</td>            <td><el-input v-model="updateSex"></el-input></td>          </tr>        </table>        <el-button type="submit" @click="dialogUpdate=false" style="margin-right: 33px;">勾销</el-button>        <el-button type="submit" @click="updateData()">批改</el-button>      </el-dialog>      <el-dialog title="导入上传" :visible.sync="dialogUpload">        <el-upload          drag          action="http://localhost:1313/uploadExcel"          accept=".xls,.xlsx"          :on-success="upload"          >          <i class="el-icon-upload"></i>          <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>          <!-- <div class="el-upload__tip" slot="tip">只能上传jpg/png文件,且不超过500kb</div> -->        </el-upload>        <el-button @click="close()">敞开</el-button>      </el-dialog>  </div></template><script>  export default {      data() {        return {          tableData: [],          dialogSave: false,          dialogUpdate: false,          dialogDelete: false,          input: "",          musicName:"",          name:"",          sex:"",          updateMusicName:"",          updateName:"",          updateSex:"",          id:"",          pageSize:1,          size:5,          count:0,          dialogUpload:false,          // file:[]        }      },      created:function(){        var that=this;        this.$axios.get("/selectAll"+"/"+that.pageSize+"/"+that.size).then(function(res){          that.tableData=res.data;          // console.log(res.data);        });        this.$axios.get("/selectCount").then(function(res){          that.count=res.data;        })      },      methods: {        //页面跳转        // junp(){        //   this.$router.push({        //     path:'/music'        //   })        // }        deleteId(id){          // this.dialogDelete=true;          // console.log(id);          var that=this;          this.$axios.delete("/deleteMessage",{            data:{              id:id,              name:that.musicName,              sex:that.sex,              song:that.musicName,              }          }).then(function(res){            alert(res.data);            that.selectAll();            that.selectCount();          })        },        findInput(input){          var that=this;          // console.log(input);          this.$axios.post("/selectCondition"+"/"+that.pageSize+"/"+that.size,{              name:input          }).then(function(res){            that.tableData=res.data;            that.count=res.data.length;          })        },        insertData(){          var that=this;          this.$axios.post("/insertMessage",{              name:that.name,              sex:that.sex,              song:that.musicName          }).then(function(res){            alert(res.data);            that.selectAll();            that.selectCount();          })          this.musicName="",          this.name="",          this.sex="",          this.dialogSave=false        },        update(data){          // console.log(data);          this.updateMusicName=data.song;          this.updateName=data.name;          this.id=data.id;          // this.updateSex=data.sex;          if(data.sex==1){            this.updateSex="男";          }else if(data.sex==2){            this.updateSex="女";          }        },        updateData(){          var that=this;          this.$axios.post("/updateMessage",{              id:that.id,              name:that.updateName,              song:that.updateMusicName,              sex:that.updateSex          }).then(function(res){            alert(res.data);            that.selectAll();          })          this.dialogUpdate=false        },        //table表格格式化        sexType(row, column){          if (row.sex == 1) {            return "男";          } else if(row.sex == 2){            return "女";          }        },        selectAll(){          var that=this;          this.$axios.get("/selectAll"+"/"+that.pageSize+"/"+that.size).then(function(res){            that.tableData=res.data;          })        },        handleSizeChange(size){          this.size=size;          // console.log(this.pageSize+"++++++条数++++++");          if(this.pageSize>1){            this.pageSize=1;          }          this.selectAll();        },        handleCurrentChange(pageSize){          this.pageSize=pageSize;          // console.log(this.pageSize+"++++++当前页数++++++");          this.selectAll();        },        selectCount(){          var that=this;          this.$axios.get("/selectCount").then(function(res){            that.count=res.data;          })        },        print(){          window.print();        },        // uploadExcel(){        //   var that=this;        //   this.$axios.post("http://localhost:1313/uploadExcel").then(function(res){        //     alert(res.data);        //   })        // },        downloadExcel(){          window.open("/downloadExcel"+'/'+this.input)        },        upload(response,file,fileList){          // console.log(response);          // console.log(file);          // console.log(fileList);          alert(response);          // this.file=fileList;        },        close(){          this.selectAll();          this.dialogUpload=false;        }      }    }</script><style>  .el-input{    margin-left: 13px;  }</style>

性能

1、弹窗

<template>  <div>    <!-- dialogSave默认false不显示true为显示 -->    <el-button @click='dialogSave=true' style="margin-right: 13px;">新增</el-button>    <el-dialog title="新增" :visible.sync="dialogSave" style="width: 100%;"></el-dialog>  </div></template><script>    export default {        data() {          return {            dialogSave:false        }      }    }</script>

2、加载页面执行办法、打印

<template>  <div>    <el-button @click='print()' style="margin-right: 13px;">打印</el-button>  </div></template><script>    export default {        data() {          return {        }      },      // 加载执行该办法      created:function(){      },      methods:{        print(){          window.print();        }      }    }</script>

3、axios连贯接口 get、post、delete申请

<template>  <div>    <el-button @click="selectCount()">测试</el-button>  </div></template><script>    export default {        data() {          return {            tableData:[],            name:"",            sex:"",            musicName:""        }      },      methods:{        //function办法里this须要var that=this;才可失常应用        // get申请        selectCount(){          this.$axios.get("/selectCount").then(function(res){            console.log(res.data);          })        },        // post申请        insertData(){          var that=this;          this.$axios.post("/insertMessage",{              name:that.name,              sex:that.sex,              song:that.musicName          }).then(function(res){            alert(res.data);            // 调用该办法            that.selectCount();          })          this.musicName="",          this.name="",          this.sex=""        },        // delete申请        deleteId(id){          var that=this;          this.$axios.delete("/deleteMessage",{            data:{              id:id,              name:that.musicName              }          }).then(function(res){            alert(res.data);            that.selectCount();          })        }      }    }</script>

4、el-table遍历、 :formatter数据格式化(1、2转化为男、女)、 slot- scope获取当前列的数据信息

<template>  <div>    <!-- prop是父组件用来传递数据的一个自定义属性  label为标签-->    <el-table :data="tableData" stripe style="width: 100%">      <el-table-column prop="song" label="歌曲名" width="180">      </el-table-column>      <el-table-column prop="name" label="歌手" width="180">      </el-table-column>      <!-- 字典表能够通过formatter更改值 -->      <el-table-column prop="sex" :formatter="sexType" label="性别" width="180">      </el-table-column>      <el-table-column prop="createTime" label="创立工夫" width="180">      </el-table-column>      <el-table-column>        <!-- 获取当前列的信息   @click能够通过逗号 调用多个办法 -->        <el-button slot-scope="scope" @click='update(scope.row)'>批改</el-button>      </el-table-column>      <el-table-column>        <!-- 获取当行元素 -->        <el-button slot-scope="scope" @click='deleteId(scope.row.id)'>删除</el-button>      </el-table-column>    </el-table>  </div></template><script>    export default {        data() {          return {            tableData:[]        }      },      // 加载执行该办法      created:function(){        var that=this;        this.$axios.get("/selectAll"+"/"+3+"/"+3).then(function(res){          that.tableData=res.data;          console.log(that.tableData)        })      },methods:{        update(res){          console.log(res)        },        deleteId(res){          console.log(res);        },        //table表格格式化        sexType(row, column){          if (row.sex == 1) {            return "男";          } else if(row.sex == 2){            return "女";          }        }      }    }</script>

5、接口设置好下载款式 从新关上一个页面调用该办法下载

<template>  <div>    <el-button @click="downloadExcel()">测试</el-button>  </div></template><script>    export default {        data() {          return {        }      },      methods:{        downloadExcel(){          window.open("/downloadExcel"+'/'+this.input)        },      }    }</script>

6、分页

<template>  <div>    <!-- 分页 -->    <!--    @size-change        执行扭转当前页条数    @current-change     执行扭转当前页数    :current-page       默认当前页数    :page-sizes         设置以后条数    :page-size          默认以后条数    layout              组件布局,子组件名用逗号分隔    :total              总条数     -->       <el-pagination          @size-change="handleSizeChange"          @current-change="handleCurrentChange"          :current-page="pageSize"          :page-sizes="[5, 10, 15, 20]"          :page-size="size"          layout="total, sizes, prev, pager, next, jumper"          :total="count">       </el-pagination>  </div></template><script>    export default {        data() {          return {        }      },      methods:{        handleSizeChange(size){          this.size=size;          // console.log(this.pageSize+"++++++条数++++++");          // 扭转条数 当前页大于1 跳转到第一页          if(this.pageSize>1){            this.pageSize=1;          }          this.selectAll();        },        handleCurrentChange(pageSize){          this.pageSize=pageSize;          // console.log(this.pageSize+"++++++当前页数++++++");          this.selectAll();        }      }    }</script>