目錄
- 問題描述
- 問題分析
- 修改思路
- 具體實現
- 其他經驗
問題描述
增加一個修改的功能。要求,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尚未解決的問題