This commit is contained in:
20932067@zju.edu.cn 2021-01-22 18:28:46 +08:00
parent 8bdf414948
commit 3b4192b848
5 changed files with 206 additions and 162 deletions

View File

@ -55,7 +55,8 @@
size="mini" size="mini"
@click="handleAdd" @click="handleAdd"
v-hasPermi="['test:stu:add']" v-hasPermi="['test:stu:add']"
>新增</el-button> >新增
</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
@ -66,7 +67,8 @@
:disabled="single" :disabled="single"
@click="handleUpdate" @click="handleUpdate"
v-hasPermi="['test:stu:edit']" v-hasPermi="['test:stu:edit']"
>修改</el-button> >修改
</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
@ -77,7 +79,8 @@
:disabled="multiple" :disabled="multiple"
@click="handleDelete" @click="handleDelete"
v-hasPermi="['test:stu:remove']" v-hasPermi="['test:stu:remove']"
>删除</el-button> >删除
</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
@ -87,17 +90,18 @@
size="mini" size="mini"
@click="handleExport" @click="handleExport"
v-hasPermi="['test:stu:export']" v-hasPermi="['test:stu:export']"
>导出</el-button> >导出
</el-button>
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
<el-table v-loading="loading" :data="stuList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="stuList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center"/>
<el-table-column label="id" align="center" prop="id" /> <el-table-column label="id" align="center" prop="id"/>
<el-table-column label="学生姓名" align="center" prop="name" /> <el-table-column label="学生姓名" align="center" prop="name"/>
<el-table-column label="电话" align="center" prop="tel" /> <el-table-column label="电话" align="center" prop="tel"/>
<el-table-column label="电子邮件" align="center" prop="email" /> <el-table-column label="电子邮件" align="center" prop="email"/>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@ -106,14 +110,16 @@
icon="el-icon-edit" icon="el-icon-edit"
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
v-hasPermi="['test:stu:edit']" v-hasPermi="['test:stu:edit']"
>修改</el-button> >修改
</el-button>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
icon="el-icon-delete" icon="el-icon-delete"
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
v-hasPermi="['test:stu:remove']" v-hasPermi="['test:stu:remove']"
>删除</el-button> >删除
</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -130,13 +136,13 @@
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="学生姓名" prop="name"> <el-form-item label="学生姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入学生姓名" /> <el-input v-model="form.name" placeholder="请输入学生姓名"/>
</el-form-item> </el-form-item>
<el-form-item label="电话" prop="tel"> <el-form-item label="电话" prop="tel">
<el-input v-model="form.tel" placeholder="请输入电话" /> <el-input v-model="form.tel" placeholder="请输入电话"/>
</el-form-item> </el-form-item>
<el-form-item label="电子邮件" prop="email"> <el-form-item label="电子邮件" prop="email">
<el-input v-model="form.email" placeholder="请输入电子邮件" /> <el-input v-model="form.email" placeholder="请输入电子邮件"/>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@ -148,164 +154,173 @@
</template> </template>
<script> <script>
import { listStu, getStu, delStu, addStu, updateStu, exportStu } from "@/api/test/stu"; import {listStu, getStu, delStu, addStu, updateStu, exportStu} from "@/api/test/stu";
export default { export default {
name: "Stu", name: "Stu",
components: { components: {},
}, data() {
data() { return {
return { //
// loading: true,
loading: true, //
// ids: [],
ids: [], //
// single: true,
single: true, //
// multiple: true,
multiple: true, //
// showSearch: true,
showSearch: true, //
// total: 0,
total: 0, //
// stuList: [],
stuList: [], //
// title: "",
title: "", //
// open: false,
open: false, //
// daterangeCreateTime: [],
daterangeCreateTime: [], //
// queryParams: {
queryParams: { pageNum: 1,
pageNum: 1, pageSize: 10,
pageSize: 10, name: null,
name: null, tel: null,
tel: null, email: null,
email: null, createTime: null
createTime: null },
}, //
// form: {},
form: {}, //
// rules: {
rules: { name: [
} {required: true, message: "学生姓名不能为空}", trigger: "blur"},
}; ],
}, tel: [
created() { {required: true, message: "电话不能为空}", trigger: "blur"},
this.getList(); {pattern: /^1[0-9]{10}$/, message: '电话格式有误', trigger: "blur"},
}, ],
methods: { email: [
/** 查询学生列表 */ {required: true, message: "电子邮件不能为空}", trigger: "blur"},
getList() { {
this.loading = true; pattern: /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/,
// this.queryParams.params = {}; message: '电子邮件格式有误',
// if (null != this.daterangeCreateTime && '' != this.daterangeCreateTime) { trigger: "blur"
// this.queryParams.params["beginCreateTime"] = this.daterangeCreateTime[0]; },
// this.queryParams.params["endCreateTime"] = this.daterangeCreateTime[1]; ],
// } }
listStu(this.addCreateDateRange(this.queryParams,this.daterangeCreateTime)).then(response => {
this.stuList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
name: null,
tel: null,
email: null,
createTime: null
}; };
this.resetForm("form");
}, },
/** 搜索按钮操作 */ created() {
handleQuery() {
this.queryParams.pageNum = 1;
this.getList(); this.getList();
}, },
/** 重置按钮操作 */ methods: {
resetQuery() { /** 查询学生列表 */
this.daterangeCreateTime = []; getList() {
this.resetForm("queryForm"); this.loading = true;
this.handleQuery(); listStu(this.addCreateDateRange(this.queryParams, this.daterangeCreateTime)).then(response => {
}, this.stuList = response.rows;
// this.total = response.total;
handleSelectionChange(selection) { this.loading = false;
this.ids = selection.map(item => item.id) });
this.single = selection.length!==1 },
this.multiple = !selection.length //
}, cancel() {
/** 新增按钮操作 */ this.open = false;
handleAdd() { this.reset();
this.reset(); },
this.open = true; //
this.title = "添加学生"; reset() {
}, this.form = {
/** 修改按钮操作 */ id: null,
handleUpdate(row) { name: null,
this.reset(); tel: null,
const id = row.id || this.ids email: null,
getStu(id).then(response => { createTime: null
this.form = response.data; };
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.daterangeCreateTime = [];
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true; this.open = true;
this.title = "修改学生"; this.title = "添加学生";
}); },
}, /** 修改按钮操作 */
/** 提交按钮 */ handleUpdate(row) {
submitForm() { this.reset();
this.$refs["form"].validate(valid => { const id = row.id || this.ids
if (valid) { getStu(id).then(response => {
if (this.form.id != null) { this.form = response.data;
updateStu(this.form).then(response => { this.open = true;
this.msgSuccess("修改成功"); this.title = "修改学生";
this.open = false; });
this.getList(); },
}); /** 提交按钮 */
} else { submitForm() {
addStu(this.form).then(response => { this.$refs["form"].validate(valid => {
this.msgSuccess("新增成功"); if (valid) {
this.open = false; if (this.form.id != null) {
this.getList(); updateStu(this.form).then(response => {
}); this.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addStu(this.form).then(response => {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
} }
} });
}); },
}, /** 删除按钮操作 */
/** 删除按钮操作 */ handleDelete(row) {
handleDelete(row) { const ids = row.id || this.ids;
const ids = row.id || this.ids; this.$confirm('是否确认删除学生编号为"' + ids + '"的数据项?', "警告", {
this.$confirm('是否确认删除学生编号为"' + ids + '"的数据项?', "警告", {
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",
type: "warning" type: "warning"
}).then(function() { }).then(function () {
return delStu(ids); return delStu(ids);
}).then(() => { }).then(() => {
this.getList(); this.getList();
this.msgSuccess("删除成功"); this.msgSuccess("删除成功");
}) })
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
const queryParams = this.queryParams; const queryParams = this.queryParams;
this.$confirm('是否确认导出所有学生数据项?', "警告", { this.$confirm('是否确认导出所有学生数据项?', "警告", {
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",
type: "warning" type: "warning"
}).then(function() { }).then(function () {
return exportStu(queryParams); return exportStu(queryParams);
}).then(response => { }).then(response => {
this.download(response.msg); this.download(response.msg);
}) })
}
} }
} };
};
</script> </script>

View File

@ -192,9 +192,6 @@ public class GenTableServiceImpl implements IGenTableService {
List<String> templates = VelocityUtils.getTemplateList(table.getTplCategory()); List<String> templates = VelocityUtils.getTemplateList(table.getTplCategory());
for (String template : templates) { for (String template : templates) {
// 渲染模板 // 渲染模板
if (template.equals("")){
}
StringWriter sw = new StringWriter(); StringWriter sw = new StringWriter();
Template tpl = Velocity.getTemplate(template, Constants.UTF8); Template tpl = Velocity.getTemplate(template, Constants.UTF8);
tpl.merge(context, sw); tpl.merge(context, sw);

View File

@ -135,6 +135,11 @@ public class ${ClassName}Controller extends HcyBaseController {
return AjaxResult.error("${column.columnComment}不能为空!"); return AjaxResult.error("${column.columnComment}不能为空!");
} }
#end #end
#if($column.isRegular != 1)
if (!Pattern.matches("${column.regular}",${className}.get${AttrName}())){
return AjaxResult.error("${column.columnComment}格式错误!");
}
#end
#end #end
try { try {
ServerResult<Integer> serverResult = ${className}Service.insert${ClassName}(${className}); ServerResult<Integer> serverResult = ${className}Service.insert${ClassName}(${className});
@ -173,6 +178,11 @@ public class ${ClassName}Controller extends HcyBaseController {
return AjaxResult.error("${column.columnComment}不能为空!"); return AjaxResult.error("${column.columnComment}不能为空!");
} }
#end #end
#if($column.isRegular != 1)
if (!Pattern.matches("${column.regular}",${className}.get${AttrName}())){
return AjaxResult.error("${column.columnComment}格式错误!");
}
#end
#end #end
ServerResult<Integer> serverResult = ${className}Service.update${ClassName}(${className}); ServerResult<Integer> serverResult = ${className}Service.update${ClassName}(${className});
if (serverResult.isStart()) { if (serverResult.isStart()) {
@ -194,6 +204,9 @@ public class ${ClassName}Controller extends HcyBaseController {
@DeleteMapping("/{${pkColumn.javaField}s}") @DeleteMapping("/{${pkColumn.javaField}s}")
public AjaxResult remove(@PathVariable ${pkColumn.javaType}[] ${pkColumn.javaField}s) { public AjaxResult remove(@PathVariable ${pkColumn.javaType}[] ${pkColumn.javaField}s) {
try { try {
if (${pkColumn.javaField}s.length<0){
return AjaxResult.error("id不能为空!");
}
ServerResult<Integer> serverResult = ${className}Service.delete${ClassName}ByIds(${pkColumn.javaField}s); ServerResult<Integer> serverResult = ${className}Service.delete${ClassName}ByIds(${pkColumn.javaField}s);
if (serverResult.isStart()) { if (serverResult.isStart()) {
return AjaxResult.success(); return AjaxResult.success();

View File

@ -418,7 +418,10 @@ export default {
#set($comment=$column.columnComment) #set($comment=$column.columnComment)
#end #end
$column.javaField: [ $column.javaField: [
{ required: true, message: "$comment不能为空", trigger: #if($column.htmlType == "select")"change"#else"blur"#end } { required: true, message: "${comment}不能为空}", trigger: #if($column.htmlType == "select")"change"#else"blur"#end },
#if($column.isRegular != 1)
{ pattern: /${column.regular}/, message: '${column.columnComment}格式有误', trigger:"blur"},
#end
]#if($velocityCount != $columns.size()),#end ]#if($velocityCount != $columns.size()),#end
#end #end
@ -442,20 +445,21 @@ export default {
this.loading = true; this.loading = true;
#foreach ($column in $columns) #foreach ($column in $columns)
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN") #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
this.queryParams.params = {};
#break #break
#end #end
#end #end
#foreach ($column in $columns) #foreach ($column in $columns)
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN") #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) #set($VariableName= "daterange"+$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
if (null != this.daterange${AttrName} && '' != this.daterange${AttrName}) { #set($variable = true)
this.queryParams.params["begin${AttrName}"] = this.daterange${AttrName}[0]; #break
this.queryParams.params["end${AttrName}"] = this.daterange${AttrName}[1];
}
#end #end
#end #end
list${BusinessName}(this.queryParams).then(response => { #if($variable)
list${BusinessName}(this.addCreateDateRange(this.queryParams,this.$VariableName)).then(response =>{
#else
list${BusinessName}(this.queryParams).then(response => {
#end
this.${businessName}List = response.rows; this.${businessName}List = response.rows;
this.total = response.total; this.total = response.total;
this.loading = false; this.loading = false;

View File

@ -115,9 +115,15 @@ public class StuController extends HcyBaseController {
if (stu.getTel() == null || stu.getTel()<0) { if (stu.getTel() == null || stu.getTel()<0) {
return AjaxResult.error("电话不能为空!"); return AjaxResult.error("电话不能为空!");
} }
if (!Pattern.matches("^1[0-9]{10}$",String.valueOf(stu.getTel()))){
return AjaxResult.error("电话格式错误!");
}
if (stu.getEmail() == null || stu.getEmail().equals("")) { if (stu.getEmail() == null || stu.getEmail().equals("")) {
return AjaxResult.error("电子邮件不能为空!"); return AjaxResult.error("电子邮件不能为空!");
} }
if (!Pattern.matches("^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$",stu.getEmail())){
return AjaxResult.error("电子邮件格式错误!");
}
try { try {
ServerResult<Integer> serverResult = stuService.insertStu(stu); ServerResult<Integer> serverResult = stuService.insertStu(stu);
if (serverResult.isStart()) { if (serverResult.isStart()) {
@ -146,9 +152,15 @@ public class StuController extends HcyBaseController {
if (stu.getTel() == null || stu.getTel()<0) { if (stu.getTel() == null || stu.getTel()<0) {
return AjaxResult.error("电话不能为空!"); return AjaxResult.error("电话不能为空!");
} }
if (!Pattern.matches("^1[0-9]{10}$",String.valueOf(stu.getTel()))){
return AjaxResult.error("电话格式错误!");
}
if (stu.getEmail() == null || stu.getEmail().equals("")) { if (stu.getEmail() == null || stu.getEmail().equals("")) {
return AjaxResult.error("电子邮件不能为空!"); return AjaxResult.error("电子邮件不能为空!");
} }
if (!Pattern.matches("^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$",stu.getEmail())){
return AjaxResult.error("电子邮件格式错误!");
}
ServerResult<Integer> serverResult = stuService.updateStu(stu); ServerResult<Integer> serverResult = stuService.updateStu(stu);
if (serverResult.isStart()) { if (serverResult.isStart()) {
return AjaxResult.success(); return AjaxResult.success();
@ -169,6 +181,9 @@ public class StuController extends HcyBaseController {
@DeleteMapping("/{ids}") @DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids) { public AjaxResult remove(@PathVariable Long[] ids) {
try { try {
if (ids.length<0){
return AjaxResult.error("id不能为空!");
}
ServerResult<Integer> serverResult = stuService.deleteStuByIds(ids); ServerResult<Integer> serverResult = stuService.deleteStuByIds(ids);
if (serverResult.isStart()) { if (serverResult.isStart()) {
return AjaxResult.success(); return AjaxResult.success();