目录
- 问题描述
- 问题分析
- 修改思路
- 具体实现
- 其他经验
-
问题描述
增加一个修改的功能。要求,1.修改完之后 预览可以看见 可以直接审核通过 2.看到的是申请者的信息 不是登陆者的信息 3.可以反复修改
-
问题分析
可以参照编辑会员信息那一模块进行修改,但是有几个不同的问题需要处理
2.1参数,以及参数的传递方式 account 和 apply_id
2.1.1 参数不同:account 和 apply_id
2.1.2 传参方式:
直接通过函数参数传值(jsp\js)
var url = "!gh/tradeManage/~/pages/userTradeInfo.jsp?option=viewAdd&apply_id=" + apply_id;
通过表单传值(js)
$("#apply_type").val(0)
rdcp.form.submit("trade_form", {
url: "!gh/tradeManage/~query/Q_AUDIT_APPLY_2" ,
2.2 操作表,以及操作表的方式
2.2.1操作表:bi_trade_info和bi_trade_apply
2.2.2操作方式:
update:会员信息申请要求,修改后对预览立即可见
insert:编辑会员信息修改过后,必须审核通过,才能再次修改,审核通过才能查看详细信息。
3. 修改思路
小旗部分是我修改过的文件
4. 具体实现
auditApplyToTrade.js
增加修改按钮
var del = '<a class="btn_view" href="javascript:void(0);" onclick="view(\'' + row.APPLY_ID + '\');">预览</a>'
+'<a class="btn_edit" href="javascript:void(0);" onclick="examine(\'' + row.APPLY_ID + '\');">审核</a>'
+'<a class="btn_edit" href="javascript:void(0);" onclick="edit(\'' + row.APPLY_ID + '\');">修改</a>';
...
function edit(apply_id) {
var tabId = "editTradeInfo";
var title = "修改入会申请";
var url = "!gh/tradeManage/~/pages/applyToTrade2.jsp?option=edit&apply_id=" + apply_id;
OpenTab(tabId, title, url);
}
applyToTrade2.jsp
点击修改之后的界面,主要为了衔接相应的js代码
<script type="text/javascript" src="!gh/tradeManage/~/scripts/applyToTrade2.js"></script>
applyToTrade2.js
提交之前加载相应的信息+提交之后对信息的更新
rdcp.form.load("trade_form", "!gh/tradeManage/~query/Q_LOAD_USER_APPLY_INFO", {"apply_id":apply_id}, function (data) {//方案1
function submit(){
var total = 0;
if(total>0) return;
var flag = $("#is_agree").attr("checked");
if(flag!="checked"){
$.messager.alert("提示","请勾选同意《中华全总工会入会申请书》!",'info');
return;
}
if(option=="add"){
$("#apply_type").val(0);
rdcp.form.submit("trade_form", {
url: "!gh/tradeManage/~query/Q_ADD_TRADE_APPLY" ,
success: function (data) {
$.messager.alert('提示', '入会申请提交成功,请等待审核结果!', 'info',function () {
cancel();
});
}
}, {"mask": true});
}else if(option=="edit"){
$("#apply_type").val(0)
$("#apply_id").val(apply_id)
alert(apply_id)
rdcp.form.submit("trade_form", {
url: "!gh/tradeManage/~query/Q_AUDIT_APPLY_2" ,
success: function (data) {
$.messager.alert('提示', '修改入会申请信息提交成功,请等待审核结果!', 'info',function () {
cancel();
});
}
}, {"mask": true});
}
}
Q_AUDIT_APPLY_2.xml
用于更新相应的操作表
<?xml version='1.0' encoding='UTF-8'?>
<query-config>
<!-- 修改用户信息-->
<query id="Q_AUDIT_APPLY_2" type="batch" result="easyui">
<stmt>
<![CDATA[
update bi_trade_apply set account=[account],name=[name],sex=[sex],birthday=to_date([birthday],'yyyy-mm-dd'),political_status=[political_status],nation=[nation],
email=[email],card_type=[card_type],card_no=[card_no],qualifications=[qualifications],degree=[degree],post=[post],duties=[duties],memo=[memo],dept_id=[dept_id],tele_phone=[tele_phone],
apply_time=sysdate,apply_user=${_CurrUser.id},apply_status=1,apply_type=[apply_type]
where apply_id=[apply_id];
]]>
</stmt>
</query>
</query-config>
5.其他经验
5.1关于whgh中bug定位的正确姿势:
定位jsp:通过后台
定位js:通过alt+鼠标左键 、 jsp首页的include、
定位xml:通过后台和find in path
5.2调试的正确姿势:
Jsp:用idea或者chrome
Js :chrome
5.3刷新代码:
Jsp:ctrl+shift+delete 清理缓存
js:一般只需要update class即可
xml:一般只需要update class即可
5.4关于传参:
Jsp:此外要注意一点的是 String类型只能初始化一次
<%
String option = request.getParameter("option");
String apply_id = request.getParameter("apply_id");
String account;
SysPUser user = (SysPUser) session.getAttribute(LoginUserSession.UserSession_Key);
account=request.getParameter("account")==null?user.getAccount():request.getParameter("account");
%>
Js:百分号
var option = "<%=option%>";
jsp与js之间 : 表格、函数
5.6传参问题
具体原理请参考我的另一篇笔记:
https://blog.csdn.net/qq_26769591/article/details/80625341
补充一个很重要的点:表单传值=url传值=jsp param 传值
5.7Debug
5.7.1运行中动态修改参数:据sjx说,在idea中可以在检测的变量表中,右键变量,然后set_value
有的时候成功有的时候不能成功。
5.7.2单步调试的快捷键
5.7.3查看变量的值:
只能通过watch ,而且watch 的变量是js中的变量
在console中 只是重新创建了局部变量,而且是js代码
对于html元素的定位 目前只能通过idea中进行 find in path 这种方式 没有其他的方法
5.8定位问题
5.9语法问题
具体原理请参考我的另一篇笔记:
https://blog.csdn.net/qq_26769591/article/details/80625341
5.10尚未解决的问题