其实最近写的最多的还是js和jq
1.在td上添加一个id
<td align="center" width="68px" id="tdre_payed_money">已付</td>
2.点击保存时
//月结选中和回执份数不能同时存在
if($re_month.attr("checked")==true && parseInt($re_return_receive.val())>0){
alert("月结和回执份数不能同时存在!");
return false;
}
//如果月结是选中已付 变成月结付 回执份数>0回单付 否则还是已付
if($re_month.attr("checked")==true){
$("#tdre_payed_money").html("月结付");
}else if(parseInt($re_return_receive.val())>0){
$("#tdre_payed_money").html("回单付");
}else{
$("#tdre_payed_money").html("已付");
}
canSubmit=false;
注意写在canSubmit=false;之前否则只能save一次即使错误
----------------end---------------------------------
货物跟踪查询
1.点击货物编号 弹出页
{field:'re_goods_code',title:'货物编号',width:200,align:'left',
formatter:function(val,rec){
if(rec.re_authorize_code != "" && rec.re_authorize_code != null){
return "<a href='javascript:void(0);' style='color:white;' onClick='linkQueryPage(\"" + val + "\")'> "+ val +"</a>";
}
else{
return "<a href='javascript:void(0);' onClick='linkQueryPage(\"" + val + "\")'> "+ val +"</a>";
}
}
},
/**
* 货物跟踪弹出层
*/
function linkQueryPage(goodsCode)
{
$.layer({
type: 2,
title: false,
fix: false,
closeBtn: false,
shadeClose: true,
shade: [0.1,'#fff', true],
border : [5, 0.3, '#666', true],
offset: ['80px',''],
area: ['950px','600px'],
iframe: {src: 'reGoodsTrack!selectReceiveDiv.action?re_goods_code='+ goodsCode}
});
}
2.在action中
/**
* 货物跟踪查询弹出层
* @return
*/
public String selectReceiveDiv(){
re=reGoodsTrackService.selectGoods(re_goods_code.trim(), re_old_code,re_receive_code);
return "success_div";
}
得到re结果集
3.页面默认得到re结果集
<input type="hidden" id="re_receive_code" name="re_receive_code" value="${re.re_receive_code}"/>
<table width="100%" border="0" cellspacing="3" cellpadding="0">
<tr>
<td bgcolor="#9ABACF">
<table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">
<tr>
<td width="14%" height="20" align="right" bgcolor="#F9FAFC">收货机构 </td>
<td width="36%" align="left" bgcolor="#FFFFFF"> ${re.re_group_code}</td>
<td width="15%" align="right" bgcolor="#F9FAFC">到货机构 </td>
<td width="35%" align="left" bgcolor="#FFFFFF"> ${re.re_targetgroup_code}</td>
</tr>
<tr>
<td height="20" align="right" bgcolor="#F9FAFC">目的地 </td>
<td align="left" bgcolor="#FFFFFF"> ${re.re_arrive_name}</td>
<td align="right" bgcolor="#F9FAFC">客户单号 </td>
<td align="left" bgcolor="#FFFFFF"> ${re.re_client_code}</td>
</tr>
给id为re_receive_code的隐藏域赋值
4.在jq中
// 初始化数据列表
$('#reData').datagrid(
{
width : (widthValue),
height : (heightValue),
fitColumns : false,
remoteSort : false,
autoRowHeight : false,
url : "reGoodsTrack!selectDIV",
queryParams:{'re_receive_code':$("#re_receive_code").val()},
loadMsg : "数据加载中,请稍等...",
striped : true,
columns : [ [ {
field : 'log_group_code',
title : '操作机构',
width : 100,
align : 'left',
formatter : function(val, rec) {
return " " + val;
}
}, {
field : 'log_date',
title : '操作时间',
width : 150,
align : 'center',
formatter : function(val, rec) {
return " " + val;
}
}, {
field : 'log_goods_code',
title : '货物编号',
width : 150,
align : 'left',
formatter : function(val, rec) {
return " " + val;
}
}, {
field : 'log_optype',
title : '操作类型',
width : 120,
align : 'left',
formatter : function(val, rec) {
return " " + val;
}
}, {
field : 'log_content',
title : '内容',
width : 580,
align : 'left',
formatter : function(val, rec) {
return " "+val + " ";
}
} ] ]
});
将隐藏域值取出赋给查询条件
5.action中
public String selectDIV(){
//把re_receive_code设置到页面隐藏域中,通过jq赋值给属性
if(re_receive_code!=null && re_receive_code!=""){
Log log = new Log();
log.setLog_receive_code(re_receive_code);
jsonObject = reGoodsTrackService.selectLog(log);
}
return "jsonObject";
}查询出日志信息。
--------------end---------------------------------
datagrid两种赋值方式另一种详解
提货改到货
1.jsp这边存在隐藏域提交保存查询出来的数据,为提交数据做准备
<input type="hidden" id="re_receive_code" name="re_receive_code" />
<input type="hidden" id="re_pickup_date" name="re_pickup_date" />
<input type="hidden" id="rt_state" name="rt_state" />
<input type="hidden" id="re_goods_code" name="re_goods_code" />
top部分为label标签
<tr>
<td width="14%" height="20" align="right" bgcolor="#F9FAFC">收货机构 </td>
<td width="36%" align="left" bgcolor="#FFFFFF"> <label id="re_group_code"></label></td>
<td width="15%" align="right" bgcolor="#F9FAFC">到货机构 </td>
<td width="35%" align="left" bgcolor="#FFFFFF"> <label id="re_targetgroup_code"></label></td>
</tr>
<tr>
<td height="20" align="right" bgcolor="#F9FAFC">目的地 </td>
<td align="left" bgcolor="#FFFFFF"> <label id="re_arrive_name"></label></td>
<td align="right" bgcolor="#F9FAFC">客户单号 </td>
<td align="left" bgcolor="#FFFFFF"> <label id="re_client_code"></label></td>
</tr>
下面为普通的grid
<tr style="height: 37%">
<td style="height: 37%;">
<table id="reData"></table>
</td>
</tr>
2.js页面点击查询,是datagrid的另一种加载数据方式如下:
同样存在查询参数和判断条件如下
if($.trim($("#query_goods_code").val()) == "" && $.trim($("#query_old_code").val()) == "" ) {
$.messager.alert('提示信息','货物编号、流水号不能全为空!','error');
return false;
}
//查询参数
var queryParams = {
'query_goods_code':$("#query_goods_code").val(),
'query_old_code':$("#query_old_code").val(),
'time':new Date()
};
重点是 $('#reData').datagrid('loadData',data.logs);这种方式。
$.ajax({
url:"puQuerypage!query",
type:"get",
data:queryParams,
dataType:"json",
async:false,
cache:false,
error: function(request){
$.messager.alert('提示信息','Connection error','error');
return false;
},
success:function (data,status){
if(data.saveMessage == "2"){
$.messager.alert('提示信息','提货后做过改运费的票子不能做此操作!','error');
return false;
}else if(data.saveMessage == "3"){
$.messager.alert('提示信息','无数据或者转出票不能做此操作!','error');
return false;
}else {
$('#reData').datagrid('loadData',data.logs);
if (data.sumInfo.re_receive_code != null
&& data.sumInfo.re_receive_code != "") {
//给隐藏域赋值,点击提交使用
$("#re_receive_code").val(data.sumInfo.re_receive_code);
$("#re_pickup_date").val(data.sumInfo.re_pickup_date);
$("#rt_state").val(data.sumInfo.rt_state);
$("#re_goods_code").val(data.sumInfo.re_goods_code);
//得到服务器当前时间赋值给页面隐藏域,点击提交使用
$("#sysDate").val(data.sysDate);
//end
$("#re_group_code").text(data.sumInfo.re_group_code);
$("#re_targetgroup_code").text(data.sumInfo.re_targetgroup_code);
$("#re_arrive_name").text(data.sumInfo.re_arrive_name);
$("#re_client_code").text(data.sumInfo.re_client_code);
$("#re_goods_name").text(data.sumInfo.re_goods_name);
$("#re_goods_count").text(data.sumInfo.re_goods_count);
$("#re_goods_codeL").text(data.sumInfo.re_goods_code);
$("#re_old_code").text(data.sumInfo.re_old_code);
$("#re_type").text(data.sumInfo.re_type);
$("#re_get_type").text(data.sumInfo.re_get_type);
$("#re_send_man").text(data.sumInfo.re_send_man);
$("#re_send_tel").text(data.sumInfo.re_send_tel);
$("#re_receive_man").text(data.sumInfo.re_receive_man);
$("#re_receive_tel").text(data.sumInfo.re_receive_tel);
$("#re_standard_count").text(data.sumInfo.re_standard_count);
$("#re_weight").text(data.sumInfo.re_weight);
$("#re_volume").text(data.sumInfo.re_volume);
$("#re_pickupfee").text(data.sumInfo.re_pickupfee);
$("#re_return_receive").text(data.sumInfo.re_return_receive);
$("#re_songhuofei").text(data.sumInfo.re_songhuofei);
$("#re_payed_money").text(data.sumInfo.re_payed_money);
$("#re_arrive_pay").text(data.sumInfo.re_arrive_pay);
$("#re_mat_traffic").text(data.sumInfo.re_mat_traffic);
$("#re_insure_account").text(data.sumInfo.re_insure_account);
$("#re_gets_goods").text(data.sumInfo.re_gets_goods);
$("#re_insure_money").text(data.sumInfo.re_insure_money);
$("#re_remark").text(data.sumInfo.re_remark);
}
}
}
});
3.注意我们看action页面
public String query(){
jsonMap = new HashMap<String, Object>();
if(puQuerypage == null) {
puQuerypage = new PuQuerypage();
}
sysDate = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
puQuerypage.setQuery_goods_code(query_goods_code.trim());
puQuerypage.setQuery_old_code(query_old_code.trim());
puQuerypage = puQuerypageService.query(puQuerypage);
if(puQuerypage!=null){
List<String> list = puQuerypageService.queryCheckMm(puQuerypage.getRe_receive_code()+"");
if(list!=null&&list.size()>0){
puQuerypage = null;
jsonMap.put("saveMessage", "2");
//request.setAttribute("tipMessage", "提货后做过改运费的票子不能做此操作!");
}else{
Log log = new Log();
log.setLog_receive_code(Long.toString(puQuerypage.getRe_receive_code()));
logs = puQuerypageService.selectLog(log);
}
}
else{
jsonMap.put("saveMessage", "3");
//request.setAttribute("tipMessage", "转出票不能做此操作!");
}
jsonMap.put("sumInfo", puQuerypage);
jsonMap.put("logs", logs);
jsonMap.put("sysDate", sysDate);
jsonObject = JSONObject.fromObject(jsonMap);
return "jsonObject";
}
json中存在label要用的数据sumInfo,datagrid要用的数据是logs,sysDate是提交要用的数据注意保存在隐藏域中
4.一个是服务器时间,另一个是数据库表中字段时间是如何比较呢?
我们看到是拿到前端js中比较的
$("#rt_state").val(data.sumInfo.rt_state);
//得到服务器当前时间赋值给页面隐藏域,点击提交使用
$("#sysDate").val(data.sysDate);
提交比较部分:
var sysDate = $("#sysDate").val();
var state = $("#rt_state").val();
var arr1 = sysDate.split('-');
var nowdate = new Date(arr1[0], arr1[1], arr1[2]);
var arr = pdate.split('-');
var comdate = new Date(arr[0], arr[1], arr[2]);
if(nowdate.getTime() != comdate.getTime()) {
$.messager.alert('提示信息','只能对当天提货数据进行该操作!','error');
return false;
}
--------------end---------------------------------