7 changed files with 377 additions and 143 deletions
			
			
		- 
					61src/common/util.js
 - 
					14src/components/Home.vue
 - 
					4src/components/Login.vue
 - 
					0src/components/nav1/Form.vue
 - 
					130src/components/nav1/Page1.vue
 - 
					303src/components/nav1/Table.vue
 - 
					8src/main.js
 
@ -0,0 +1,61 @@ | 
				
			|||
var SIGN_REGEXP = /([yMdhsm])(\1*)/g; | 
				
			|||
var DEFAULT_PATTERN = 'yyyy-MM-dd'; | 
				
			|||
function padding(s, len) { | 
				
			|||
    var len = len - (s + '').length; | 
				
			|||
    for (var i = 0; i < len; i++) { s = '0' + s; } | 
				
			|||
    return s; | 
				
			|||
}; | 
				
			|||
 | 
				
			|||
export default { | 
				
			|||
    getQueryStringByName: function (name) { | 
				
			|||
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); | 
				
			|||
        var r = window.location.search.substr(1).match(reg); | 
				
			|||
        var context = ""; | 
				
			|||
        if (r != null) | 
				
			|||
            context = r[2]; | 
				
			|||
        reg = null; | 
				
			|||
        r = null; | 
				
			|||
        return context == null || context == "" || context == "undefined" ? "" : context; | 
				
			|||
    }, | 
				
			|||
    formatDate: { | 
				
			|||
 | 
				
			|||
 | 
				
			|||
        format: function (date, pattern) { | 
				
			|||
            pattern = pattern || DEFAULT_PATTERN; | 
				
			|||
            return pattern.replace(SIGN_REGEXP, function ($0) { | 
				
			|||
                switch ($0.charAt(0)) { | 
				
			|||
                    case 'y': return padding(date.getFullYear(), $0.length); | 
				
			|||
                    case 'M': return padding(date.getMonth() + 1, $0.length); | 
				
			|||
                    case 'd': return padding(date.getDate(), $0.length); | 
				
			|||
                    case 'w': return date.getDay() + 1; | 
				
			|||
                    case 'h': return padding(date.getHours(), $0.length); | 
				
			|||
                    case 'm': return padding(date.getMinutes(), $0.length); | 
				
			|||
                    case 's': return padding(date.getSeconds(), $0.length); | 
				
			|||
                } | 
				
			|||
            }); | 
				
			|||
        }, | 
				
			|||
        parse: function (dateString, pattern) { | 
				
			|||
            var matchs1 = pattern.match(SIGN_REGEXP); | 
				
			|||
            var matchs2 = dateString.match(/(\d)+/g); | 
				
			|||
            if (matchs1.length == matchs2.length) { | 
				
			|||
                var _date = new Date(1970, 0, 1); | 
				
			|||
                for (var i = 0; i < matchs1.length; i++) { | 
				
			|||
                    var _int = parseInt(matchs2[i]); | 
				
			|||
                    var sign = matchs1[i]; | 
				
			|||
                    switch (sign.charAt(0)) { | 
				
			|||
                        case 'y': _date.setFullYear(_int); break; | 
				
			|||
                        case 'M': _date.setMonth(_int - 1); break; | 
				
			|||
                        case 'd': _date.setDate(_int); break; | 
				
			|||
                        case 'h': _date.setHours(_int); break; | 
				
			|||
                        case 'm': _date.setMinutes(_int); break; | 
				
			|||
                        case 's': _date.setSeconds(_int); break; | 
				
			|||
                    } | 
				
			|||
                } | 
				
			|||
                return _date; | 
				
			|||
            } | 
				
			|||
            return null; | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
    } | 
				
			|||
 | 
				
			|||
}; | 
				
			|||
@ -1,130 +0,0 @@ | 
				
			|||
<template> | 
				
			|||
	<section> | 
				
			|||
		<el-col :span="24" class="toolbar"> | 
				
			|||
			<el-form :inline="true" :model="formInline" class="demo-form-inline"> | 
				
			|||
				<el-form-item> | 
				
			|||
					<el-date-picker v-model="value1" type="date" placeholder="开始日期" :picker-options="pickerOptions0"> | 
				
			|||
					</el-date-picker> | 
				
			|||
				</el-form-item> | 
				
			|||
				<el-form-item> | 
				
			|||
					<el-date-picker v-model="value1" type="date" placeholder="结束日期" :picker-options="pickerOptions0"> | 
				
			|||
					</el-date-picker> | 
				
			|||
				</el-form-item> | 
				
			|||
				<el-form-item> | 
				
			|||
					<el-input v-model="formInline.user" placeholder="姓名"></el-input> | 
				
			|||
				</el-form-item> | 
				
			|||
				<el-form-item> | 
				
			|||
					<el-button type="primary">查询</el-button> | 
				
			|||
				</el-form-item> | 
				
			|||
			</el-form> | 
				
			|||
		</el-col> | 
				
			|||
 | 
				
			|||
		<template> | 
				
			|||
			<el-table :data="tableData" highlight-current-row style="width: 100%;"> | 
				
			|||
				<el-table-column type="index" width="50"> | 
				
			|||
				</el-table-column> | 
				
			|||
				<el-table-column prop="name" label="姓名" width="180" sortable> | 
				
			|||
				</el-table-column> | 
				
			|||
				<el-table-column prop="sex" label="性别" width="100" :formatter="formatSex" sortable> | 
				
			|||
				</el-table-column> | 
				
			|||
				<el-table-column prop="age" label="年龄" width="100" sortable> | 
				
			|||
				</el-table-column> | 
				
			|||
				<el-table-column prop="birth" label="生日" width="180" sortable> | 
				
			|||
				</el-table-column> | 
				
			|||
				<el-table-column prop="addr" label="地址" sortable> | 
				
			|||
				</el-table-column> | 
				
			|||
				<el-table-column inline-template :context="_self" label="操作" width="100"> | 
				
			|||
					<span> | 
				
			|||
					<el-button type="text" size="small">编辑</el-button> | 
				
			|||
					<el-button type="text" size="small" @click="handleDel(row)">删除</el-button> | 
				
			|||
				</span> | 
				
			|||
				</el-table-column> | 
				
			|||
			</el-table> | 
				
			|||
		</template> | 
				
			|||
 | 
				
			|||
		<!--<el-col :span="24" class="toolbar" style="padding-bottom:10px;"> | 
				
			|||
			<el-pagination :current-page="1" :page-sizes="[100, 200, 300, 400]" :page-size="100" layout="total, sizes, prev, pager, next, jumper" | 
				
			|||
				:total="400" style="float:right"> | 
				
			|||
			</el-pagination> | 
				
			|||
		</el-col>--> | 
				
			|||
	</section> | 
				
			|||
</template> | 
				
			|||
 | 
				
			|||
<script> | 
				
			|||
  export default { | 
				
			|||
    data() { | 
				
			|||
      return { | 
				
			|||
				formInline: { | 
				
			|||
					user: '' | 
				
			|||
				}, | 
				
			|||
				pickerOptions0: { | 
				
			|||
          disabledDate(time) { | 
				
			|||
            return time.getTime() < Date.now() - 8.64e7; | 
				
			|||
          } | 
				
			|||
        }, | 
				
			|||
				value1:'', | 
				
			|||
        tableData: [{ | 
				
			|||
						id:1000, | 
				
			|||
            name: 'lanqy1', | 
				
			|||
            sex: 1, | 
				
			|||
            age: 20, | 
				
			|||
						birth:'1996-03-02', | 
				
			|||
						addr:'广东广州天河体育中心' | 
				
			|||
          }, { | 
				
			|||
						id:1001, | 
				
			|||
            name: 'lanqy2', | 
				
			|||
            sex: 1, | 
				
			|||
            age: 20, | 
				
			|||
						birth:'1996-03-02', | 
				
			|||
						addr:'广东广州天河体育中心' | 
				
			|||
          }, { | 
				
			|||
						id:1002, | 
				
			|||
            name: 'lanqy3', | 
				
			|||
            sex: 0, | 
				
			|||
            age: 20, | 
				
			|||
						birth:'1996-03-02', | 
				
			|||
						addr:'广东广州天河体育中心' | 
				
			|||
          }, { | 
				
			|||
						id:1003, | 
				
			|||
            name: 'lanqy4', | 
				
			|||
            sex: 1, | 
				
			|||
            age: 20, | 
				
			|||
						birth:'1996-03-02', | 
				
			|||
						addr:'广东广州天河体育中心' | 
				
			|||
          }] | 
				
			|||
     } | 
				
			|||
    }, | 
				
			|||
    methods: { | 
				
			|||
			//性别显示转换 | 
				
			|||
			formatSex:function(row,column){ | 
				
			|||
				return row.sex==1?'男':row.sex==0?'女':'未知'; | 
				
			|||
			}, | 
				
			|||
			handleDel:function(row){ | 
				
			|||
				//console.log(row); | 
				
			|||
				var _this=this; | 
				
			|||
				this.$confirm('确认删除该记录吗?', '提示', { | 
				
			|||
					type: 'warning' | 
				
			|||
				}).then(() => { | 
				
			|||
					for(var i=0;i<_this.tableData.length;i++){ | 
				
			|||
						if(_this.tableData[i].id==row.id){ | 
				
			|||
							_this.tableData.splice(i,1); | 
				
			|||
						} | 
				
			|||
					} | 
				
			|||
				}).catch(() => { | 
				
			|||
							 | 
				
			|||
				}); | 
				
			|||
			} | 
				
			|||
    } | 
				
			|||
  } | 
				
			|||
</script> | 
				
			|||
 | 
				
			|||
<style scoped> | 
				
			|||
	.toolbar .el-form-item { | 
				
			|||
		margin-bottom: 10px; | 
				
			|||
	} | 
				
			|||
	 | 
				
			|||
	.toolbar { | 
				
			|||
		background: #fff; | 
				
			|||
		padding: 10px 10px 0px 10px; | 
				
			|||
	} | 
				
			|||
</style> | 
				
			|||
@ -0,0 +1,303 @@ | 
				
			|||
<template> | 
				
			|||
	<section> | 
				
			|||
		<!--工具条--> | 
				
			|||
		<el-col :span="24" class="toolbar"> | 
				
			|||
			<el-form :inline="true" :model="formInline" class="demo-form-inline"> | 
				
			|||
				<el-form-item> | 
				
			|||
					<el-input v-model="formInline.user" placeholder="姓名"></el-input> | 
				
			|||
				</el-form-item> | 
				
			|||
				<el-form-item> | 
				
			|||
					<el-button>查询</el-button> | 
				
			|||
				</el-form-item> | 
				
			|||
				<el-form-item> | 
				
			|||
					<el-button @click="handleAdd">新增</el-button> | 
				
			|||
				</el-form-item> | 
				
			|||
			</el-form> | 
				
			|||
		</el-col> | 
				
			|||
 | 
				
			|||
		<!--列表--> | 
				
			|||
		<template> | 
				
			|||
			<el-table :data="tableData" highlight-current-row v-loading="listLoading" style="width: 100%;"> | 
				
			|||
				<el-table-column type="index" width="50"> | 
				
			|||
				</el-table-column> | 
				
			|||
				<el-table-column prop="name" label="姓名" width="180" sortable> | 
				
			|||
				</el-table-column> | 
				
			|||
				<el-table-column prop="sex" label="性别" width="100" :formatter="formatSex" sortable> | 
				
			|||
				</el-table-column> | 
				
			|||
				<el-table-column prop="age" label="年龄" width="100" sortable> | 
				
			|||
				</el-table-column> | 
				
			|||
				<el-table-column prop="birth" label="生日" width="180" sortable> | 
				
			|||
				</el-table-column> | 
				
			|||
				<el-table-column prop="addr" label="地址" sortable> | 
				
			|||
				</el-table-column> | 
				
			|||
				<el-table-column inline-template :context="_self" label="操作" width="100"> | 
				
			|||
					<span> | 
				
			|||
					<el-button type="text" size="small" @click="handleEdit(row)">编辑</el-button> | 
				
			|||
					<el-button type="text" size="small" @click="handleDel(row)">删除</el-button> | 
				
			|||
				</span> | 
				
			|||
				</el-table-column> | 
				
			|||
			</el-table> | 
				
			|||
		</template> | 
				
			|||
 | 
				
			|||
		<!--分页--> | 
				
			|||
		<el-col :span="24" class="toolbar" style="padding-bottom:10px;"> | 
				
			|||
			<el-pagination :current-page="1" :page-sizes="[100, 200, 300, 400]" :page-size="100" layout="total, sizes, prev, pager, next, jumper" | 
				
			|||
				:total="400" style="float:right"> | 
				
			|||
			</el-pagination> | 
				
			|||
		</el-col> | 
				
			|||
 | 
				
			|||
		<!--编辑界面--> | 
				
			|||
		<el-dialog :title="editFormTtile" 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-select v-model="editForm.sex" placeholder="请选择性别"> | 
				
			|||
						<el-option label="男" :value="1"></el-option> | 
				
			|||
						<el-option label="女" :value="0"></el-option> | 
				
			|||
					</el-select>--> | 
				
			|||
					<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.addr"></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">{{btnEditText}}</el-button> | 
				
			|||
			</div> | 
				
			|||
		</el-dialog> | 
				
			|||
	</section> | 
				
			|||
</template> | 
				
			|||
 | 
				
			|||
<script> | 
				
			|||
	import util from '../../common/util' | 
				
			|||
	import NProgress from 'nprogress' | 
				
			|||
 | 
				
			|||
  export default { | 
				
			|||
    data() { | 
				
			|||
      return { | 
				
			|||
				formInline: { | 
				
			|||
					user: '' | 
				
			|||
				}, | 
				
			|||
				pickerOptions0: { | 
				
			|||
					disabledDate(time) { | 
				
			|||
						return time.getTime() < Date.now() - 8.64e7; | 
				
			|||
					} | 
				
			|||
				}, | 
				
			|||
				value1:'', | 
				
			|||
				editFormVisible:false,//编辑界面显是否显示 | 
				
			|||
				editFormTtile:'编辑',//编辑界面标题 | 
				
			|||
				//编辑界面数据 | 
				
			|||
				editForm: { | 
				
			|||
					id:0, | 
				
			|||
					name: '', | 
				
			|||
					sex: -1, | 
				
			|||
					age: 0, | 
				
			|||
					birth: '', | 
				
			|||
					addr: '' | 
				
			|||
				}, | 
				
			|||
				editLoading:false, | 
				
			|||
				btnEditText:'提 交', | 
				
			|||
				editFormRules:{ | 
				
			|||
					name:[ | 
				
			|||
						{ required: true, message: '请输入姓名', trigger: 'blur' } | 
				
			|||
					] | 
				
			|||
				}, | 
				
			|||
				tableData: [{ | 
				
			|||
					id:1000, | 
				
			|||
					name: 'lanqy1', | 
				
			|||
					sex: 1, | 
				
			|||
					age: 20, | 
				
			|||
					birth:'1996-03-02', | 
				
			|||
					addr:'广东广州天河体育中心' | 
				
			|||
				}, { | 
				
			|||
					id:1001, | 
				
			|||
					name: 'lanqy2', | 
				
			|||
					sex: 1, | 
				
			|||
					age: 20, | 
				
			|||
					birth:'1996-03-02', | 
				
			|||
					addr:'广东广州天河体育中心' | 
				
			|||
				}, { | 
				
			|||
					id:1002, | 
				
			|||
					name: 'lanqy3', | 
				
			|||
					sex: 0, | 
				
			|||
					age: 20, | 
				
			|||
					birth:'1996-03-02', | 
				
			|||
					addr:'广东广州天河体育中心' | 
				
			|||
				}, { | 
				
			|||
					id:1003, | 
				
			|||
					name: 'lanqy4', | 
				
			|||
					sex: 1, | 
				
			|||
					age: 20, | 
				
			|||
					birth:'1996-03-02', | 
				
			|||
					addr:'广东广州天河体育中心' | 
				
			|||
				}, { | 
				
			|||
					id:1004, | 
				
			|||
					name: 'lanqy5', | 
				
			|||
					sex: 1, | 
				
			|||
					age: 20, | 
				
			|||
					birth:'1996-03-02', | 
				
			|||
					addr:'广东广州天河体育中心' | 
				
			|||
				}, { | 
				
			|||
					id:1005, | 
				
			|||
					name: 'lanqy6', | 
				
			|||
					sex: 1, | 
				
			|||
					age: 20, | 
				
			|||
					birth:'1996-03-02', | 
				
			|||
					addr:'广东广州天河体育中心' | 
				
			|||
				}, { | 
				
			|||
					id:1006, | 
				
			|||
					name: 'lanqy7', | 
				
			|||
					sex: 1, | 
				
			|||
					age: 20, | 
				
			|||
					birth:'1996-03-02', | 
				
			|||
					addr:'广东广州天河体育中心' | 
				
			|||
				}, { | 
				
			|||
					id:1007, | 
				
			|||
					name: 'lanqy8', | 
				
			|||
					sex: 1, | 
				
			|||
					age: 20, | 
				
			|||
					birth:'1996-03-02', | 
				
			|||
					addr:'广东广州天河体育中心' | 
				
			|||
				}], | 
				
			|||
				listLoading:false | 
				
			|||
     		} | 
				
			|||
    }, | 
				
			|||
    methods: { | 
				
			|||
			//性别显示转换 | 
				
			|||
			formatSex:function(row,column){ | 
				
			|||
				return row.sex==1?'男':row.sex==0?'女':'未知'; | 
				
			|||
			}, | 
				
			|||
			//删除记录 | 
				
			|||
			handleDel:function(row){ | 
				
			|||
				//console.log(row); | 
				
			|||
				var _this=this; | 
				
			|||
				this.$confirm('确认删除该记录吗?', '提示', { | 
				
			|||
					//type: 'warning' | 
				
			|||
				}).then(() => { | 
				
			|||
					_this.listLoading=true; | 
				
			|||
					NProgress.start(); | 
				
			|||
					setTimeout(function(){ | 
				
			|||
						for(var i=0;i<_this.tableData.length;i++){ | 
				
			|||
							if(_this.tableData[i].id==row.id){ | 
				
			|||
								_this.tableData.splice(i,1); | 
				
			|||
 | 
				
			|||
								_this.listLoading=false; | 
				
			|||
								NProgress.done(); | 
				
			|||
								_this.$notify({ | 
				
			|||
									title: '成功', | 
				
			|||
									message: '删除成功', | 
				
			|||
									type: 'success' | 
				
			|||
								}); | 
				
			|||
 | 
				
			|||
								break; | 
				
			|||
							} | 
				
			|||
						} | 
				
			|||
					},1000); | 
				
			|||
				}).catch(() => { | 
				
			|||
							 | 
				
			|||
				}); | 
				
			|||
			}, | 
				
			|||
			//显示编辑界面 | 
				
			|||
			handleEdit:function(row){ | 
				
			|||
				this.editFormVisible=true; | 
				
			|||
				this.editFormTtile='编辑'; | 
				
			|||
				this.editForm.id=row.id; | 
				
			|||
				this.editForm.name=row.name; | 
				
			|||
				this.editForm.sex=row.sex; | 
				
			|||
				this.editForm.age=row.age; | 
				
			|||
				this.editForm.birth=row.birth; | 
				
			|||
				this.editForm.addr=row.addr; | 
				
			|||
			}, | 
				
			|||
			//编辑 or 新增 | 
				
			|||
			editSubmit:function(){ | 
				
			|||
				var _this=this; | 
				
			|||
 | 
				
			|||
				_this.$refs.editForm.validate((valid)=>{ | 
				
			|||
					if(valid){ | 
				
			|||
						 | 
				
			|||
						_this.$confirm('确认提交吗?','提示',{}).then(()=>{ | 
				
			|||
							_this.editLoading=true; | 
				
			|||
							NProgress.start(); | 
				
			|||
							_this.btnEditText='提交中'; | 
				
			|||
							setTimeout(function(){ | 
				
			|||
								_this.editLoading=false; | 
				
			|||
								NProgress.done(); | 
				
			|||
								_this.btnEditText='提 交'; | 
				
			|||
								_this.$notify({ | 
				
			|||
									title: '成功', | 
				
			|||
									message: '提交成功', | 
				
			|||
									type: 'success' | 
				
			|||
								}); | 
				
			|||
								_this.editFormVisible = false; | 
				
			|||
 | 
				
			|||
								if(_this.editForm.id==0){ | 
				
			|||
									//新增 | 
				
			|||
									_this.tableData.push({ | 
				
			|||
										id:new Date().getTime(), | 
				
			|||
										name: _this.editForm.name, | 
				
			|||
										sex: _this.editForm.sex, | 
				
			|||
										age: _this.editForm.age, | 
				
			|||
										birth: _this.editForm.birth==''?'':util.formatDate.format(new Date(_this.editForm.birth),'yyyy-MM-dd'), | 
				
			|||
										addr: _this.editForm.addr | 
				
			|||
									}); | 
				
			|||
								}else{ | 
				
			|||
									//编辑 | 
				
			|||
									for(var i=0;i<_this.tableData.length;i++){ | 
				
			|||
										if(_this.tableData[i].id==_this.editForm.id){ | 
				
			|||
											_this.tableData[i].name=_this.editForm.name; | 
				
			|||
											_this.tableData[i].sex=_this.editForm.sex; | 
				
			|||
											_this.tableData[i].age=_this.editForm.age; | 
				
			|||
											_this.tableData[i].birth=_this.editForm.birth==''?'':util.formatDate.format(new Date(_this.editForm.birth),'yyyy-MM-dd'); | 
				
			|||
											_this.tableData[i].addr=_this.editForm.addr; | 
				
			|||
											break; | 
				
			|||
										} | 
				
			|||
									} | 
				
			|||
								} | 
				
			|||
							},1000); | 
				
			|||
						 | 
				
			|||
						}); | 
				
			|||
 | 
				
			|||
					} | 
				
			|||
				}); | 
				
			|||
 | 
				
			|||
			}, | 
				
			|||
			//显示新增界面 | 
				
			|||
			handleAdd:function(){ | 
				
			|||
				var _this=this; | 
				
			|||
 | 
				
			|||
				this.editFormVisible=true; | 
				
			|||
				this.editFormTtile='新增'; | 
				
			|||
				 | 
				
			|||
				this.editForm.id=0; | 
				
			|||
				this.editForm.name=''; | 
				
			|||
				this.editForm.sex=1; | 
				
			|||
				this.editForm.age=0; | 
				
			|||
				this.editForm.birth=''; | 
				
			|||
				this.editForm.addr=''; | 
				
			|||
			} | 
				
			|||
    } | 
				
			|||
  } | 
				
			|||
</script> | 
				
			|||
 | 
				
			|||
<style scoped> | 
				
			|||
	.toolbar .el-form-item { | 
				
			|||
		margin-bottom: 10px; | 
				
			|||
	} | 
				
			|||
	 | 
				
			|||
	.toolbar { | 
				
			|||
		background: #fff; | 
				
			|||
		padding: 10px 10px 0px 10px; | 
				
			|||
	} | 
				
			|||
</style> | 
				
			|||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue