基于vue.js 2.0,不使用webpack,只在浏览器上单独使用Element UI的Table表格控件完成增删改查页面
源码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>表格控件测试</title> <!-- 引入样式 --> <link rel="stylesheet" href="/res/css/vue/element-ui-1.2.8.css"> </head> <body> <div id="app"> <h2>{{ message }}</h2> </div> <div id="tableView"> <!--列表顶部搜索和工具条--> <el-row> <el-form :inline="true" :model="searchForm" class="demo-form-inline"> <el-form-item label="ID"> <el-input v-model="searchForm.id" placeholder="ID"></el-input> </el-form-item> <el-form-item label="名称"> <el-input v-model="searchForm.name" placeholder="名称"></el-input> </el-form-item> <el-form-item label="状态"> <el-select v-model="searchForm.state" placeholder="状态"> <el-option label="区域一" value="shanghai"></el-option> <el-option label="区域二" value="beijing"></el-option> </el-select> </el-form-item><el-form-item> <el-button type="primary" icon="search" @click="searchClick">查询</el-button> <el-button type="success" icon="plus" @click="addClick">新增</el-button> </el-form-item> </el-form> </el-row> <!--列表--> <el-row> <el-table :data="tableData" v-loading.body="loading" border @selection-change="selectionChange" style="width: 100%"> <el-table-column type="selection" width="55"> </el-table-column> <el-table-column prop="birth" label="日期" width="150"> </el-table-column> <el-table-column prop="name" label="姓名" width="120"> </el-table-column> <el-table-column prop="province" label="省份" width="120"> </el-table-column> <el-table-column prop="city" label="市区" width="120"> </el-table-column> <el-table-column prop="address" label="地址" width="300"> </el-table-column> <el-table-column prop="zip" label="邮编" width="120"> </el-table-column> <el-table-column label="操作"> <template scope="scope"> <el-button :plain="true" type="success" size="small" icon="edit" @click="editClick(scope.row)">编辑</el-button> <el-button :plain="true" type="danger" size="small" icon="delete" @click="deleteClick(scope.row)">删除</el-button> </template> </el-table-column> </el-table> </el-row> <!--列表底部工具条和分页符--> <el-row style="margin-top: 20px" type="flex" justify="end"> <el-col :span="6" > <el-button :plain="true" type="danger" size="small" icon="delete" @click="removeSelection">删除所选</el-button> </el-col> <el-col :span="18" > <el-pagination style="float: right" @size-change="pageSizeChange" @current-change="currentPageChange" :current-page="currentPage" :page-sizes="[10, 20, 30, 50]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total"> </el-pagination> </el-col> </el-row> <!--编辑界面--> <el-dialog title="编辑" v-model="editFormVisible" :close-on-click-modal="false"> <el-form :model="editForm" label-width="80px" :rules="editFormRules" ref="editForm"> <el-form-item label="姓名" prop="name"> <el-input v-model="editForm.name" auto-complete="off"></el-input> </el-form-item> <el-form-item label="性别"> <el-radio-group v-model="editForm.sex"> <el-radio class="radio" :label="1">男</el-radio> <el-radio class="radio" :label="0">女</el-radio> </el-radio-group> </el-form-item> <el-form-item label="年龄"> <el-input-number v-model="editForm.age" :min="0" :max="200"></el-input-number> </el-form-item> <el-form-item label="生日"> <el-date-picker type="date" placeholder="选择日期" v-model="editForm.birth"></el-date-picker> </el-form-item> <el-form-item label="地址"> <el-input type="textarea" v-model="editForm.address"></el-input> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> <el-button @click.native="editFormVisible = false">取消</el-button> <el-button type="primary" @click.native="editSubmit" :loading="editLoading">提交</el-button> </div> </el-dialog> </div> <script src="/res/js/vue/vue-2.2.0.min.js"></script> <script src="/res/js/vue/element-ui-1.2.8.js"></script> <script type="text/javascript"> var app = new Vue({ el: "#app", data: { message: "表格控件测试" } }); var tableView = new Vue({ el: "#tableView", data: { //列表数据 tableData: [{ birth: "2016-05-03", name: "王小虎", province: "上海", city: "普陀区", address: "上海市普陀区金沙江路 1518 弄", zip: 200333 }, { birth: "2016-05-02", name: "王小虎", province: "上海", city: "普陀区", address: "上海市普陀区金沙江路 1518 弄", zip: 200333 }, { birth: "2016-05-04", name: "王小虎", province: "上海", city: "普陀区", address: "上海市普陀区金沙江路 1518 弄", zip: 200333 }, { birth: "2016-05-01", name: "王小虎", province: "上海", city: "普陀区", address: "上海市普陀区金沙江路 1518 弄", zip: 200333 }], //显示加载中样式 loading:false, //搜索表单 searchForm: { id: "", name: "", state: "" }, //多选值 multipleSelection: [], //当前页 currentPage:3, //分页大小 pageSize:100, //总记录数 total:800, //删除的弹出框 deleteVisible:false, //编辑界面是否显示 editFormVisible: false, editLoading: false, editFormRules: { name: [ { required: true, message: "请输入姓名", trigger: "blur" } ] }, //编辑界面数据 editForm: { id: 0, name: "", sex: -1, age: 0, birth: "", address: "" }, }, methods:{ //表格重新加载数据 loadingData:function() { var _self = this; _self.loading = true; setTimeout(function(){ console.info("加载数据成功"); _self.loading = false; },300); }, //表格编辑事件 editClick:function(row) { this.editFormVisible = true; this.editForm = Object.assign({}, row); }, //表格删除事件 deleteClick:function(row) { var _self = this; this.$confirm("确认删除" + row.name +"吗?", "提示", { type: "warning" }).then(function(){ _self.$message({ message: row.name + "删除成功", type: "success" }); _self.loadingData();//重新加载数据 }).catch(function(e){ if(e != "cancel") console.log("出现错误:" + e); }); }, //新建事件 addClick:function() { var _self = this; this.editFormVisible = true; //_self.loadingData();//重新加载数据 }, //表格查询事件 searchClick:function() { alert("搜索"); var _self = this; _self.loadingData();//重新加载数据 }, //表格勾选事件 selectionChange:function(val) { for(var i=0;i<val.length;i++) { var row = val[i]; } this.multipleSelection = val; console.info(val); }, //删除所选,批量删除 removeSelection:function() { var _self = this; var multipleSelection = this.multipleSelection; if(multipleSelection.length < 1) { _self.$message({ message: "请至少选中一条记录", type: "error" }); return; } var ids = ""; for(var i=0;i<multipleSelection.length;i++) { var row = multipleSelection[i]; ids += row.name + "," } this.$confirm("确认删除" + ids +"吗?", "提示", { type: "warning" }).then(function(){ _self.$message({ message: ids + "删除成功", type: "success" }); _self.loadingData();//重新加载数据 }).catch(function(e){ if(e != "cancel") console.log("出现错误:" + e); }); }, //分页大小修改事件 pageSizeChange:function(val) { console.log("每页 " + val +" 条"); this.pageSize = val; var _self = this; _self.loadingData();//重新加载数据 }, //当前页修改事件 currentPageChange:function(val) { this.currentPage = val; console.log("当前页: " + val); var _self = this; _self.loadingData();//重新加载数据 }, //保存点击事件 editSubmit:function(){ console.info(this.editForm); } } }) </script> </body> </html>
效果
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 通达OA开发 常用网址的一点小改动 你能看出来吗
- 下一篇: php 内存泄露检查工具valgrind