新增跟修改几乎大家都会写,那么你们有没有尝试过把新增与修改写到一起去呢?我就尝试过,后来发现这样写是真的太香了!可以少写很多代码!接下来就开始吧!
首先准备一个模态框,(因为跳转页面还没有尝试过把它们俩结合)然后把下面两句代码放进去,如下图:
位置就跟我放的差不多就行。根据supplierid来判断是新增还是修改。
接下来写一个监听提交事件,代码如下:
form.on(‘submit(*)’, function (data) {
.
p
o
s
t
(
"
.post("
.post("{ctx}/systemController/Addsupp.do", data.field, function (ddt) {
if (typeof ddt == “string”) {
ddt = JSON.parse(ddt);
}
form.render(‘select’); //刷新select选择框渲染
if (ddt.state) {
$("#close").click();
tableurl();//这个是查询表格数据的方法名
}
layer.msg(ddt.msg, {icon: 0});
})
return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。
});
在此之前记得把新增模态框打开哦!代码如下:
//新增
function insertcargo() {
$(“input[type=‘reset’]”).click();
$("#AddandUplaod").click();
$("#exampleModalLabel").text(“新增供应商”);
}
然后接着写修改回填的代码,代码如下:
//修改回填
function modifycargo() {
var checkStatus = table.checkStatus(‘tabledata’); //idTest 即为基础参数 id 对应的值
if (checkStatus.data.length == 1) {
//
(
"
i
n
p
u
t
[
t
y
p
e
=
′
r
e
s
e
t
′
]
"
)
.
c
l
i
c
k
/
/
这
句
代
码
容
易
跟
新
增
那
一
句
冲
突
,
(
并
不
是
所
有
的
都
会
冲
突
,
就
以
我
跟
我
朋
友
为
例
,
我
的
就
会
冲
突
,
我
朋
友
就
不
会
。
)
所
有
我
建
议
还
是
改
为
:
("input[type='reset']").click//这句代码容易跟新增那一句冲突,(并不是所有的都会冲突,就以我跟我朋友为例,我的就会冲突,我朋友就不会。)所有我建议还是改为:
("input[type=′reset′]").click//这句代码容易跟新增那一句冲突,(并不是所有的都会冲突,就以我跟我朋友为例,我的就会冲突,我朋友就不会。)所有我建议还是改为:("#aa").click();
$("#aa").click();
$("#AddandUplaod").click();
//回填数据
form.val(“formTest”, {
“supplierid”: checkStatus.data[0].supplierid // “name”: “value”
, “suppliername”: checkStatus.data[0].suppliername
, “suppliertypeid”: checkStatus.data[0].suppliertypeid
, “regionid”: checkStatus.data[0].regionid
, “status”: checkStatus.data[0].status == true ? true : false
, “defaults”: checkStatus.data[0].defaults == true ? true : false
, “contactaddress”: checkStatus.data[0].contactaddress
, “remark”: checkStatus.data[0].remark
, “contactid”: checkStatus.data[0].contactid
, “contacts”: checkStatus.data[0].contacts
, “contactnum”: checkStatus.data[0].contactnum
, “settlementtypeid”: checkStatus.data[0].settlementtypeid
})
} else {
layer.alert(“请选择一条数据”);
}
$("#exampleModalLabel").text(“修改供应商”);
}
我是先把jsp页面的代码先写完在写控制器的代码,这样电话在控制器会比较好写一点,个人认为。
还有就是Xml中的sql语句dao层service层的代码并没有什么变化,跟以前的一样就好了。
控制器的代码如下:
@ResponseBody
@RequestMapping("/Addsupp")
public String Addsupp(suppVo supp) {
jsonReturn.setState(false);
System.out.println(supp);
if (supp != null && supp.getContacts() != null && supp.getContacts().length() > 0) {
suppVo suppVo = suppService.selectOnly(supp.getSuppliername());
int a = 0;
String b = “”;
if (supp.getSupplierid() == null || supp.getSupplierid() == 0) {//新增
if (suppVo == null) {
a = suppService.insertSelective(supp);
b = “添加”;
} else {
jsonReturn.setMsg(“该供应商已存在”);
JSONObject jsonObject = new JSONObject(jsonReturn);
return jsonObject.toString();
}
} else {//修改
if (suppVo == null || suppVo.getSupplierid() == supp.getSupplierid()) {
a = suppService.updateByPrimaryKeySelective(supp);
b = “修改”;
} else {
jsonReturn.setMsg(“该供应商已存在”);
JSONObject jsonObject = new JSONObject(jsonReturn);
return jsonObject.toString();
}
}
if (a > 0) {
jsonReturn.setState(true);
jsonReturn.setMsg(“供应商” + b + “成功”);
} else {
jsonReturn.setMsg(“供应商” + b + “失败”);
}
} else {
jsonReturn.setMsg(“数据接受失败”);
}
JSONObject jsonObject = new JSONObject(jsonReturn);
return jsonObject.toString();//如果乱码的话就改为下面那句代码
//return new String(jsonObject.toString().getBytes(“utf-8”),“iso-8859-1”);
}
控制器会有比较多的判断,个人建议是先把一个判断写完然后再写第二个判断,这样思维就不会很乱了。
这样就完成了,代码量是不是减少了好多!这样工作率就大大提升了。快尝试一下!