taylor
8 years ago
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