一、复习
高亮显示(用boolean来判断(只能控制两个值)):
- html>
- <html>
- <head>
- <meta charset="utf-8" />
- <title>title>
- <style type="text/css">
- /* 激活 高亮显示 */
- .active{
- color: red;
- background-color: cornsilk;
- }
- style>
- head>
- <body>
- <div id="app">
- <ul>
-
-
-
-
- <li :class="{active: has}" >第一项li>
- <li :class="{active: !has}" >第二项li>
- <li :class="{active: has }" >第三项li>
- ul>
- div>
- <script src="js/vue.min.js" type="text/javascript" charset="utf-8">script>
- <script type="text/javascript">
- var vm = new Vue({
- el: '#app',
- data: {
- has:true
- },
- })
- script>
- body>
- html>

二、class绑定
v-bind:class动态绑定样式
动态改变列表样式
- html>
- <html>
- <head>
- <meta charset="utf-8" />
- <title>title>
- <style type="text/css">
- /* 激活 高亮显示 */
- .active{
- color: red;
- background-color: cornsilk;
- }
- style>
- head>
- <body>
- <div id="app">
- <ul>
-
-
-
-
-
- <li :class="{active: i==0}" @mousemove="i=0" @mouseout="i=100">第一项li>
- <li :class="{active: i==1}" @mousemove="i=1" @mouseout="i=100">第二项li>
- <li :class="{active: i==2}" @mousemove="i=2" @mouseout="i=100">第三项li>
- ul>
- div>
- <script src="js/vue.min.js" type="text/javascript" charset="utf-8">script>
- <script type="text/javascript">
- var vm = new Vue({
- el: '#app',
- data: {
- i:0
- },
- })
- script>
- body>
- html>

三、style样式绑定
v-bind:style动态绑定样式
v-bind:style 的数组语法可以将多个样式对象应用到一个元素上
- html>
- <html>
- <head>
- <meta charset="utf-8" />
- <title>title>
- <style type="text/css">
- style>
- head>
- <body>
- <div id="app">
- <div v-bind:style="styleObject">style jsondiv>
- <div id="">
-
- div>
- div>
- <script src="js/vue.min.js" type="text/javascript" charset="utf-8">script>
- <script type="text/javascript">
- var vm = new Vue({
- el: '#app',
- data: {
- styleObject:{
- color: 'red',
- fontSize: '16px',
- }
- },
- })
- script>
- body>
- html>

四、vue实现批量删除与vue实现分页
plus回传page对象,数据从page取(共多少条,多少页),控制page,观察者
- html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>title>
- <style type="text/css">
- /* 激活 高亮显示 */
- .active {
- color: red;
- background-color: cornsilk;
- }
- style>
- head>
- <body>
- <div id="app">
-
- <div v-show="show">
- <button @click="delList()">批量删除button>
- <table border="" cellspacing="" cellpadding="">
- <tr>
- <th><input type="checkbox" v-model="qx" />th>
- <th>编号th>
- <th>名字th>
- <th>备注th>
- <th>操作th>
- tr>
- <tr v-for="(a,i) in list" :class="{active: i==j}" @mousemove="j=i" @mouseleave="j=100">
- <td><input type="checkbox" v-model="aids" :value="a.aid" />td>
- <td>{{a.aid}}td>
- <td>{{a.aname}}td>
- <td>{{a.abackup}}td>
- <td>
- <button @click="delAstate(i)">删除button>
- <button @click="show=false,vm.a=a,action='update'">修改button>
- td>
- tr>
- table>
- 共{{total}}条,{{page}}/{{pages}}页
- <button @click="page=1">首页button>
- <button @click="page=(page==1?1:page-1)">上一页button>
- <button @click="page=(page==pages?pages:page+1)">下一页button>
- <button @click="page=pages">尾页button><br>
-
- <button @click="show=false,a={},action='insert'">添加button>
- div>
-
-
- <div v-show="!show">
- 编号:<input v-model="a.aid" /><br>
- 名字:<input v-model="a.aname" /><br>
- 备注:<input v-model="a.abackup" /><br>
- <button type="button" @click="insAstate()">操作button>
- <button @click="show=true">返回button>
- div>
-
- div>
- <script type="text/javascript" src="js/vue.min.js">script>
- <script type="text/javascript" src="js/axios.min.js">script>
- <script type="text/javascript">
- var vm = new Vue({
- el: '#app',
- data: {
- show: true,
- a: {},
- list: [],
- action: '',
- j: 0,
- qx: false,
- aids: [],
- page:1,
- total:0,
- pages:0,
-
- },
- created() {
- axios.defaults.baseURL = "http://localhost:9090/"
- /* axios.post("astate/selectList").then(function(res) {
- vm.list = res.data
- }) */
- //this.selectList()
- this.selectPage()
- },
- watch: {
- qx(nv,ov){
- if(nv){
- this.list.forEach(function(a,i) {
- vm.aids.push(a.aid)
- })
- }else{
- this.aids = [];
- }
- },
- page(){
- this.selectPage()
- }
- },
-
- methods: {
- insAstate() {
- axios.post("admin/" + this.action, this.a).then(function(res) {
- if (res.data == "1") {
- alert("操作成功")
- if (vm.action == 'insert') {
- vm.list.push(vm.a)
- vm.a = {}
- }
- } else {
- alert("操作失败")
- }
- })
- },
- delAstate(i) {
- axios.post("astate/delete", "aid=" + this.list[i].aid).then(function(res) {
- if (res.data == '1') {
- alert("删除成功")
- vm.list.splice(i, 1)
- } else {
- alert("删除失败")
- }
- })
- },
- delList(){
- //直接以数组json格式传过来
- axios.post("astate/deleteList",this.aids).then(function(res) {
- if (res.data == '1') {
- alert("删除成功")
- vm.selectPage()
- } else {
- alert("删除失败")
- }
- })
- },
- selectList(){
- axios.post("astate/selectList").then(function(res) {
- vm.list = res.data
- })
- },
- //分页查询
- selectPage() {
- axios.post("astate/selectByPage", "page=" + this.page).then(function(res) {
- console.log(res.data)
- vm.total = res.data.total;
- vm.pages = res.data.pages;
- //数据
- vm.list = res.data.records;
-
- })
- }
- }
- })
- script>
- body>
- html>
后端:
yml配置:
- @Value("${jdbc.size}")
- private Integer size;
-
-
- //批量删除
- @RequestMapping("/deleteList")
- public String deleteList(String[] aid){
- try {
- //把数组转换为集合
- as.removeByIds(Arrays.asList(aid));
- System.out.println(aid + "删除成功");
- return "1";
- } catch (Exception e) {
- e.printStackTrace();
- }
- return "0";
- }
-
- //分页
- @RequestMapping("/selectByPage")
- public Page selectByPage(Integer page){
- return as.page(new Page(page,size));
- }


1、面包屑导航
- <el-breadcrumb separator="/">
- <el-breadcrumb-item>首页el-breadcrumb-item>
- <el-breadcrumb-item>基础数据管理el-breadcrumb-item>
- <el-breadcrumb-item>拍卖状态展示el-breadcrumb-item>
- el-breadcrumb>
- <el-row>
- <el-col style="text-align: center;"><h2>拍卖状态管理h2>el-col>
- el-row>
2、table
-
- <el-table :data="list" ref="objs" style="width: 100%;">
-
- <el-table-column type="selection" align="center">el-table-column>
- <el-table-column prop="aid" label="编号" align="center">el-table-column>
- <el-table-column prop="aname" label="名称" align="center">el-table-column>
- <el-table-column prop="abackup" label="备注" align="center">el-table-column>
- <el-table-column label="操作" align="center" width="180px">
-
- <template slot-scope="scope">
- <el-button size="small" type="primary" @click="toupdate(scope.$index, show=true, url='update', action='修改')">修改el-button>
- <el-button size="small" type="danger" @click="deleteobj(scope.$index)">删除el-button>
- template>
- el-table-column>
- el-table>
3、element-UI消息框
消息提示:
- this.$message({
- type:'success',
- message:'删除成功!'
- })
- this.$message.success("删除成功!")
确认框:
- this.$confirm("确认删除?", "提示", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning"
- }).then(()=>{//确定}).catch(()=>{//取消})
例子:
- delobj(i){
- this.$confirm("是否删除所有选中项?", "提示", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning"
- }).then(() => { //确定
- axios.post("astate/delete",'aid='+this.list[i].aid).then(res => {
- if (res.data=="1") {
- this.$message({
- //以json为参数
- type:"success",
- message:"删除成功"
- })
- this.list.splice(i,1)
- } else{
- //简写形式
- this.$message.error("删除失败!")
- }
-
- })
- }).catch(() => { //取消
- this.$message.error("删除取消!")
- })
- },
4、element-UI实现批量删除、全选、分页(普通分页)
- html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>拍卖状态管理title>
- head>
- <body>
- <div id="app">
-
- <el-table :data="list" ref="objs">
-
- <el-table-column type="selection">el-table-column>
-
- <el-table-column prop="aid" label="编号">el-table-column>
- <el-table-column prop="aname" label="名称">el-table-column>
- <el-table-column prop="abackup" label="属性">el-table-column>
-
- <el-table-column label="操作">
- <template slot-scope="scope">
- <el-button size="small" type="primary" @click="show=true,obj=scope.row, action='update', title='修改'">修改el-button>
- <el-button size="small" type="danger" @click="delobj(scope.$index)">删除el-button>
- template>
- el-table-column>
- el-table>
-
-
- <el-row style="margin-top: 5px;">
- <el-col :xs="15" :sm="15">
- <el-pagination :current-page.sync="page"
- layout="total, sizes, prev, pager, next, jumper"
- :total="total">
- el-pagination>
- el-col>
-
- <el-col :xs="6" :sm="6" style="text-align: right;">
- el-col>
- el-row>
-
-
- <el-row style="margin-top: 5px;">
- <el-col :xs="4" :sm="4">
- <el-button type="danger" size="medium" style="width: 120px;" @click="deleteList">删除选中项el-button>
- el-col>
- <el-col :xs="4" :sm="4" style="text-align: right;">
- <el-button type="primary" size="medium" style="width: 120px;" @click="show=true,obj={}, action='insert', title='录入'">添加el-button>
- el-col>
- el-row>
-
-
- <el-dialog :title="title" :visible.sync="show">
-
- <el-form ref="form" :model="obj" label-width="80px" size="mini">
- <el-form-item label="编号">
- <el-input v-model="obj.aid" :readonly="action=='update'">el-input>
- el-form-item>
- <el-form-item label="名称">
- <el-input v-model="obj.aname">el-input>
- el-form-item>
-
- <el-form-item label="备注">
- <el-input v-model="obj.abackup">el-input>
- el-form-item>
- <el-form-item size="large">
-
- <el-button type="primary" size="medium" @click="modify">保存el-button>
- <el-button type="primary" size="medium" @click="show=false">返回el-button>
- el-form-item>
- el-form>
- el-dialog>
- div>
-
- <link rel="stylesheet" type="text/css" href="js/element_ui.css" />
- <script src="js/vue.min.js" type="text/javascript" charset="utf-8">script>
- <script src="js/element_ui.js" type="text/javascript" charset="utf-8">script>
- <script src="js/axios.min.js" type="text/javascript" charset="utf-8">script>
- <script type="text/javascript">
- var vm = new Vue({
- el: '#app',
- data: {
- //展示两个页面
- show: false,
- list: [],
- //对象
- obj: {},
- action: '',
- title:'',
- page: 1,
- total: 0,
- pages: 0,
-
- },
- created() {
- axios.defaults.baseURL = "http://localhost:9090/"
- this.selectByPage()
- },
- /* 增加观察者模式 观察页码的变化 */
- watch:{
- page(){
- this.selectByPage()
- }
- },
- methods: {
- selectList() {
- axios.post("astate/selectList").then(res => {
- this.list = res.data
- })
- },
- delobj(i) {
- this.$confirm("是否删除所有选中项?", "提示", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning"
- }).then(() => { //确定
- axios.post("astate/delete", 'aid=' + this.list[i].aid).then(res => {
- if (res.data == "1") {
- this.$message({
- //以json为参数
- type: "success",
- message: "删除成功"
- })
- this.list.splice(i, 1)
- } else {
- //简写形式
- this.$message.error("删除失败!")
- }
-
- })
- }).catch(() => { //取消
- this.$message.error("删除取消!")
- })
- },
- deleteList() {
- //判断是否有选中项 this.$refs.objs.selection;找到所有选中行
- var selections = this.$refs.objs.selection;
- if (selections.length == 0) {
- this.$message.error("必须选中一行");
- return;
- }
- this.$confirm("是否删除所有选中项?", "提示", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning"
- }).then(() => {
- //把选中项放在数组
- var ids = [];
- selections.forEach((a, i) => {
- ids.push(a.aid)
- })
- axios.post("astate/deleteList", ids).then(res => {
- if (res.data == "1") {
- this.$message.success("删除成功!")
-
- this.selectByPage()
-
- } else {
- //简写形式
- this.$message.error("删除失败!")
- }
- })
- }).catch(() => {
- this.$message.error("删除取消");
- })
- },
- modify(){
- axios.post("astate/"+this.action,this.obj).then(res => {
- if(res.data == "1"){
- this.$message.success(this.title+"成功!")
- this.list.push(this.obj);
- this.obj = {};
- /* this.selectList(); */
- this.selectByPage()
- }else{
- this.$message.success(this.title+"失败!")
- }
- })
- },
- /* 实现分页 */
- selectByPage() {
- axios.post("admin/selectByPage", "page=" + this.page).then(res => {
- vm.total = res.data.total;
- vm.pages = res.data.pages;
- vm.list = res.data.records;
- })
- },
-
- }
- })
- /* setInterval(()=>{},2000) */
- script>
-
- body>
- html>
-
后端:
- //批量删除
- @RequestMapping("/deleteList")
- public String deleteList(@RequestBody List
list) { - try {
- as.removeByIds(list);
- System.out.println("删除成功");
- return "1";
- } catch (Exception e) {
- e.printStackTrace();
- }
- return "0";
- }
-
- //分页
- @RequestMapping("/selectByPage")
- public Page selectByPage(Integer page){
- return as.page(new Page(page,size));
- }
5、element-UI实现批量删除、全选、分页(普通分页+搜索)
- html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>管理员信息管理title>
- head>
- <body>
- <div id="app">
- <el-breadcrumb separator="/">
- <el-breadcrumb-item>首页el-breadcrumb-item>
- <el-breadcrumb-item>基础数据管理el-breadcrumb-item>
- <el-breadcrumb-item>管理员信息列表el-breadcrumb-item>
- el-breadcrumb>
- <el-row>
- <el-col style="text-align: center;">
- <h2>管理员搜索h2>
- el-col>
- el-row>
-
-
-
- <el-form :inline="true" :model="admin" class="demo-form-inline" size="small" label-width="90px">
-
- <el-form-item label="姓名">
- <el-input v-model="admin.aname" placeholder="管理员姓名">el-input>
- el-form-item>
-
- <el-form-item label="角色">
- <el-select v-model="admin.rid" placeholder="选择角色">
-
- <el-option label="管理员" value="管理员">el-option>
- <el-option label="业务员" value="业务员">el-option>
- <el-option label="财务" value="财务">el-option>
- <el-option label="采购员" value="采购员">el-option>
- el-select>
- el-form-item>
-
-
- <el-form-item>
- <el-button type="primary" @click="selectByPage">查询el-button>
- el-form-item>
- el-form>
-
-
- <el-table :data="list" ref="objs">
- <el-table-column type="selection">el-table-column>
- <el-table-column prop="aid" label="编号">el-table-column>
- <el-table-column prop="aname" label="名称">el-table-column>
- <el-table-column prop="rid" label="角色">el-table-column>
- <el-table-column prop="abackup" label="备注">el-table-column>
- <el-table-column label="操作">
- <template slot-scope="scope">
- <el-button size="small" type="primary" @click="show=true,obj=scope.row, action='update', title='修改' ">修改el-button>
- <el-button size="small" type="danger" @click="delobj(scope.$index)">删除el-button>
- template>
- el-table-column>
- el-table>
-
-
- <el-row style="margin-top: 5px;">
- <el-col :xs="15" :sm="15">
-
-
-
-
- <el-pagination :current-page.sync="page" :page-size.sync="line" :page-sizes="pagelist"
- layout="total, sizes, prev, pager, next, jumper"
- :total="total">
- el-pagination>
- el-col>
-
- <el-col :xs="6" :sm="6" style="text-align: right;">
- el-col>
- el-row>
-
-
- <el-row style="margin-top: 5px;">
- <el-col :xs="4" :sm="4">
- <el-button type="danger" size="medium" style="width: 120px;" @click="deleteList">删除选中项el-button>
- el-col>
- <el-col :xs="4" :sm="4" style="text-align: right;">
- <el-button type="primary" size="medium" style="width: 120px;" @click="show=true, action='insert', title='录入' ">添加el-button>
- el-col>
- el-dialog>
- el-row>
-
-
- <el-dialog :title="title" :visible.sync="show">
- <el-form ref="form" :model="obj" label-width="80px" size="mini">
- <el-form-item label="编号">
- <el-input v-model="obj.aid">el-input>
- el-form-item>
- <el-form-item label="名称">
- <el-input v-model="obj.aname">el-input>
- el-form-item>
- <el-form-item label="密码">
- <el-input v-model="obj.apwd">el-input>
- el-form-item>
- <el-form-item label="角色">
- <el-select v-model="obj.rid" placeholder="选择角色">
-
- <el-option label="管理员" value="管理员">el-option>
- <el-option label="业务员" value="业务员">el-option>
- <el-option label="财务" value="财务">el-option>
- <el-option label="采购员" value="采购员">el-option>
- el-select>
- el-form-item>
- <el-form-item label="备注">
- <el-input v-model="obj.abackup">el-input>
- el-form-item>
- <el-form-item size="large">
- <el-button type="primary" size="medium" @click="modify">保存el-button>
- el-form-item>
- el-form>
-
- div>
- <link rel="stylesheet" type="text/css" href="js/element_ui.css" />
- <script src="js/vue.min.js" type="text/javascript" charset="utf-8">script>
- <script src="js/element_ui.js" type="text/javascript" charset="utf-8">script>
- <script src="js/axios.min.js" type="text/javascript" charset="utf-8">script>
- <script type="text/javascript">
- var vm = new Vue({
- el: "#app",
- data: {
- list: [],
- show: false,
- /* 录入和修改 */
- obj: {},
- action: '',
- title: '',
- /* 搜索用的 */
- admin: {
- aname:'',
- rid:''
- },
- page: 1,
- total: 0,
- /* 后台传过来 动态增加 */
- line: 0,
- pagelist: [],
- },
- created() {
- axios.defaults.baseURL = "http://localhost:9090/";
- this.selectByPage()
- },
- computed: {
- /* 通过计算属性拼接条件page aname rid */
- param() {
- return `page=${this.page}&aname=${this.admin.aname}&rid=${this.admin.rid}`;
- }
- },
- /* 增加观察者模式 观察页码的变化 */
- watch:{
- page(){
- this.selectByPage()
- }
- },
- methods: {
- selectList() {
- axios.post("admin/selectList").then(res => {
- this.list = res.data;
- })
- },
- /* 实现分页 */
- selectByPage() {
- /* 传param->aname、rid、page */
- axios.post("admin/selectByPage", this.param).then(res => {
- this.list = res.data.records;
- this.total = res.data.total;
- /* 动态增加 需要后台回传数据*/
- this.line = res.data.size;
- this.pagelist = [this.line];
- })
- },
- delobj(i) {
- this.$confirm("确认删除?", "提示", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning"
- }).then(() => { //then是确认的
- axios.post("admin/delete", 'aid=' + this.list[i].aid).then(res => {
- if (res.data == "1") {
- this.$message({
- /* 传个json */
- type: "success",
- message: "删除成功!"
- })
- /* 删除之后展示数据 */
- this.list.splice(i, 1)
- } else {
- //简写形式
- this.$message.error("删除失败!")
- }
- })
- }).catch(() => { //catch是点取消的提示
- //this.$message.error("取消删除!") //可以当取消提示用
- })
- },
- deleteList() {
- //判断是否有选中项
- var selections = this.$refs.objs.selection;
- if (selections.length == 0) {
- this.$message.error("必须选择一项")
- return;
- }
- this.$confirm("是否删除所有选中项?", "提示", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning"
- }).then(() => {
- var ids = [];
- selections.forEach((a, i) => {
- ids.push(a.aid)
- })
- axios.post("admin/deleteList", ids).then(res => {
- if (res.data == "1") {
- this.$message({
- /* 传个json */
- type: "success",
- message: "删除成功!"
- })
- /* 删除 */
- this.selectByPage();
-
- } else {
- //简写形式
- this.$message.error("删除失败!")
- }
- })
- }).catch(() => {
-
- })
- },
- modify() {
- axios.post("admin/" + this.action, this.obj).then(res => {
- if (res.data == "1") {
- this.$message.success(this.title + "成功!")
- this.list.push(this.obj);
- this.obj = {}
- this.selectByPage()
- } else {
- this.$message.error(this.title + "失败!")
- }
- })
- }
- }
- })
- script>
- body>
- html>
后端:
- //批量删除
- @RequestMapping("/deleteList")
- public String deleteList(String[] aid){
- try {
- //把数组转换为集合
- as.removeByIds(Arrays.asList(aid));
- System.out.println(aid + "删除成功");
- return "1";
- } catch (Exception e) {
- e.printStackTrace();
- }
- return "0";
- }
-
- //分页+动态搜索
- @RequestMapping("/selectByPage")
- public Page selectByPage(Integer page,String aname,String rid){
- //搜索器
- QueryWrapper qw = new QueryWrapper();
- //模糊搜素
- qw.like(!StringUtils.isEmpty(aname),"aname",aname);
- qw.eq(!StringUtils.isEmpty(rid),"rid",rid);
- return as.page(new Page(page,size),qw);
- }