|
|
@@ -1,89 +1,75 @@
|
|
|
-<%@ page import="java.util.Map" %>
|
|
|
-<%@ page import="java.util.TreeMap" %>
|
|
|
-<%@ page language="java" pageEncoding="UTF-8" isELIgnored="false" %>
|
|
|
-<%@ taglib uri="/ssTag" prefix="ss"%>
|
|
|
-
|
|
|
-<% pageContext.setAttribute(ss.page.PageC.PAGE_objName,"grcz");%>
|
|
|
-<%pageContext.setAttribute("wdpageinformation","{'hastab':'0'}");%>
|
|
|
-<!DOCTYPE html>
|
|
|
-<html>
|
|
|
-<head>
|
|
|
-<%@ include file="/page/clip/header.jsp" %>
|
|
|
-
|
|
|
- <style>
|
|
|
- .table-container>tr>th{
|
|
|
- width:130px !important;
|
|
|
- }
|
|
|
- /* 把content-box的高度限制 从公共css 抽到具体有需要的页面 by xu 20251215 */
|
|
|
- .form-container .content-box {
|
|
|
- height: calc(100% - 80px) !important;
|
|
|
- }
|
|
|
- td{
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- justify-content: flex-start;
|
|
|
- }
|
|
|
- </style>
|
|
|
-
|
|
|
-</head>
|
|
|
-<body class="env-input-body">
|
|
|
-<form method="post" id="app" class="form-container">
|
|
|
-<div class="content-box fit-height-content">
|
|
|
-
|
|
|
- <div class="content-div" ssFith="true">
|
|
|
- <table class='form'>
|
|
|
-
|
|
|
- <tr>
|
|
|
- <th style="width: 120px">退费类别</th>
|
|
|
- <td >
|
|
|
-
|
|
|
-<script>
|
|
|
-ss.dom.formElemConfig.grczlbm={val:'11',type:window.ss.dom.TYPE.ONOFFBTN};
|
|
|
-</script>
|
|
|
-
|
|
|
-
|
|
|
- <%
|
|
|
- Map<Integer,String > grczlbMap = (Map)(request.getAttribute("grczlbMap"));
|
|
|
- for (Integer key : grczlbMap.keySet()) {
|
|
|
- pageContext.setAttribute("k",key);
|
|
|
- pageContext.setAttribute("v",grczlbMap.get(key));
|
|
|
- %>
|
|
|
-
|
|
|
- <ss-onoff
|
|
|
-v-model="grczlbm"
|
|
|
-name="grczlbm"
|
|
|
-label="${v}"
|
|
|
-value="${k}"
|
|
|
-:multiple="false"
|
|
|
-:null="false"
|
|
|
-placeholder="${v}"
|
|
|
-v-model="grczlbm"
|
|
|
-:readonly="false"
|
|
|
-></ss-onoff>
|
|
|
-
|
|
|
-
|
|
|
- <%
|
|
|
- }
|
|
|
- %>
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <%-- 再改,合并到 "班级" 里。Lin
|
|
|
- <tr>
|
|
|
- <th>人员类别</th>
|
|
|
- <td >
|
|
|
- <onoff@ss name="rylbm" mode="edit" rad="true" null="false" val="1100" />
|
|
|
- <@input name="rylbm" value="学员" ssVal="1100" />
|
|
|
- <@input name="rylbm" value="职工亲属" ssVal="1000" />
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- --%>
|
|
|
- <tr>
|
|
|
- <th>班级/亲属</th>
|
|
|
- <td >
|
|
|
-
|
|
|
-<script>
|
|
|
-ss.dom.formElemConfig.bjid={val:null,type:window.ss.dom.TYPE.OBJP};
|
|
|
-</script>
|
|
|
+<%@ page import="java.util.Map" %>
|
|
|
+<%@ page import="java.util.TreeMap" %>
|
|
|
+<%@ page language="java" pageEncoding="UTF-8" isELIgnored="false" %>
|
|
|
+<%@ taglib uri="/ssTag" prefix="ss"%>
|
|
|
+
|
|
|
+<% pageContext.setAttribute(ss.page.PageC.PAGE_objName,"grcz");%>
|
|
|
+<%pageContext.setAttribute("wdpageinformation","{'hastab':'0'}");%>
|
|
|
+<!DOCTYPE html>
|
|
|
+<html>
|
|
|
+<head>
|
|
|
+<%@ include file="/page/clip/header.jsp" %>
|
|
|
+
|
|
|
+ <style>
|
|
|
+ .table-container>tr>th{
|
|
|
+ width:130px !important;
|
|
|
+ }
|
|
|
+ /* 把content-box的高度限制 从公共css 抽到具体有需要的页面 by xu 20251215 */
|
|
|
+ .form-container .content-box {
|
|
|
+ height: calc(100% - 80px) !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ </style>
|
|
|
+
|
|
|
+</head>
|
|
|
+<body class="env-input-body">
|
|
|
+<form method="post" id="app" class="form-container">
|
|
|
+<div class="content-box fit-height-content">
|
|
|
+
|
|
|
+ <div class="content-div" ssFith="true">
|
|
|
+ <table class='form'>
|
|
|
+
|
|
|
+ <tr>
|
|
|
+ <th style="width: 120px">退费类别</th>
|
|
|
+ <td >
|
|
|
+
|
|
|
+<script>
|
|
|
+ss.dom.formElemConfig.grczlbm={val:'11',type:window.ss.dom.TYPE.ONOFFBTN};
|
|
|
+</script>
|
|
|
+
|
|
|
+
|
|
|
+ <%
|
|
|
+ Map<Integer,String > grczlbMap = (Map)(request.getAttribute("grczlbMap"));
|
|
|
+ for (Integer key : grczlbMap.keySet()) {
|
|
|
+ pageContext.setAttribute("k",key);
|
|
|
+ pageContext.setAttribute("v",grczlbMap.get(key));
|
|
|
+ %>
|
|
|
+
|
|
|
+ <ss-onoff
|
|
|
+v-model="grczlbm"
|
|
|
+name="grczlbm"
|
|
|
+label="${v}"
|
|
|
+value="${k}"
|
|
|
+:multiple="false"
|
|
|
+:null="false"
|
|
|
+placeholder="${v}"
|
|
|
+v-model="grczlbm"
|
|
|
+:readonly="false"
|
|
|
+onchange="handleGrczlbmChange"
|
|
|
+></ss-onoff>
|
|
|
+
|
|
|
+
|
|
|
+ <%
|
|
|
+ }
|
|
|
+ %>
|
|
|
+ </td>
|
|
|
+
|
|
|
+ <th style="width: 120px">班级/亲属</th>
|
|
|
+ <td style="display: flex;align-items: center;">
|
|
|
+
|
|
|
+<script>
|
|
|
+ss.dom.formElemConfig.bjid={val:null,type:window.ss.dom.TYPE.OBJP};
|
|
|
+</script>
|
|
|
<ss-objp
|
|
|
:opt="bjidOption"
|
|
|
:inp="true"
|
|
|
@@ -95,12 +81,12 @@ name="bjid"
|
|
|
width="200px"
|
|
|
onChange="handleBjChange"
|
|
|
></ss-objp>
|
|
|
-
|
|
|
-
|
|
|
-<script>
|
|
|
-ss.dom.formElemConfig.rylbm={val:'1100',type:window.ss.dom.TYPE.ONOFFBTN};
|
|
|
-</script>
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
+<script>
|
|
|
+ss.dom.formElemConfig.rylbm={val:'1100',type:window.ss.dom.TYPE.ONOFFBTN};
|
|
|
+</script>
|
|
|
+
|
|
|
<ss-onoff
|
|
|
v-model="rylbm"
|
|
|
name="rylbm"
|
|
|
@@ -113,96 +99,117 @@ v-model="rylbm"
|
|
|
:readonly="false"
|
|
|
onchange="handleRylbmChange"
|
|
|
></ss-onoff>
|
|
|
-
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
-
|
|
|
-<%-- 先去掉,接入读卡器时再加。Lin
|
|
|
- <tr>
|
|
|
- <th>卡号</th>
|
|
|
- <td >
|
|
|
- <@input name="kah"/>
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
---%>
|
|
|
-
|
|
|
- <tr>
|
|
|
- <th>人员</th>
|
|
|
- <td>
|
|
|
- <input name="czryid" type="hidden" value='${sessionScope.ssUser.ryid}'/> <%-- 操作人员ID。Lin --%>
|
|
|
-
|
|
|
-
|
|
|
-<script>
|
|
|
-ss.dom.formElemConfig.ryid={val:null,type:window.ss.dom.TYPE.OBJP};
|
|
|
-</script>
|
|
|
-<ss-objp
|
|
|
-:opt="ryidOption"
|
|
|
-:inp="true"
|
|
|
-url="<ss:serv name='loadObjpOpt' parm='{"objectpickerdropdown":"1","objectpickerfilterField":"bjid,rylbm"}' />"
|
|
|
-cb="ryByBjOrRylb"
|
|
|
-v-model="ryid"
|
|
|
-name="ryid"
|
|
|
-:readonly="false"
|
|
|
-filterField="bjid,rylbm"
|
|
|
-onChange="selBaseInfoByRyid"
|
|
|
-></ss-objp>
|
|
|
-
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>部门/班级</th>
|
|
|
- <td id='bmbj'></td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>姓名</th>
|
|
|
- <td id='xm'></td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>人员号</th>
|
|
|
- <td id='ryh'></td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>金额</th>
|
|
|
- <td><input name="je"/></td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>描述</th>
|
|
|
- <td><input name="ms"/></td>
|
|
|
- </tr>
|
|
|
- </table>
|
|
|
- </div>
|
|
|
-
|
|
|
-
|
|
|
- <div class='bottom-div'>
|
|
|
-
|
|
|
- <ss-bottom-button
|
|
|
- id="saveAndCommit"
|
|
|
- text="保存并提交"
|
|
|
- onclick='ss.form.submit({url:"<ss:serv name='grcz_lr_tj' dest='addSure' parm='{thisViewObject:"grcz",dataType:"update"}'/>",width:881,height:361,minHeight:515,maxHeight:515,targetWin:null});'<%-- 最后一个参数原来为targetWin:parent导致刷新了顶层窗口,改为null Ben(20251215) --%>
|
|
|
- icon-class="bottom-div-save"
|
|
|
- ></ss-bottom-button>
|
|
|
-
|
|
|
-
|
|
|
- <ss-bottom-button
|
|
|
- text="关闭"
|
|
|
- onclick='ss.display.closeDialog();'
|
|
|
- icon-class="bottom-div-close"
|
|
|
- ></ss-bottom-button>
|
|
|
-
|
|
|
- </div>
|
|
|
-
|
|
|
-
|
|
|
-<input name='wdComponentID' type='hidden' value='grcz_grtfAdd'/></div></form>
|
|
|
-<script type="text/javascript">var wdRecordValue='${wdRecordValue}';</script>
|
|
|
-<script type="text/javascript" src="/ss/js/wdRecord.js"></script>
|
|
|
-<script type="text/javascript">(function(){wdRecord("grcz_grtfAdd");})();</script>
|
|
|
-<script type="text/javascript" src="/ss/js/wdFitHeight.js"></script>
|
|
|
-<script type="text/javascript">initWdFitHeight(0)</script>
|
|
|
-<script type="text/javascript">initWdFitHeightFunction=function(){initWdFitHeight(0);};</script>
|
|
|
-<ss:equal val="${empty resizeComponent}" val2="false">
|
|
|
-<script>{var iframe=wd.display.getFrameOfWindow();
|
|
|
-if(iframe&&iframe.contentWindow==window)
|
|
|
-wd.display.resizeComponent(${resizeComponent.width}, ${resizeComponent.height}, ${empty resizeComponent.minHeight?'null':resizeComponent.minHeight}, ${empty resizeComponent.maxHeight?'null':resizeComponent.maxHeight});}</script>
|
|
|
+
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+
|
|
|
+<%-- 先去掉,接入读卡器时再加。Lin
|
|
|
+ <tr>
|
|
|
+ <th>卡号</th>
|
|
|
+ <td >
|
|
|
+ <@input name="kah"/>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+--%>
|
|
|
+
|
|
|
+ <tr>
|
|
|
+ <th>人员</th>
|
|
|
+ <td>
|
|
|
+ <input name="czryid" type="hidden" value='${sessionScope.ssUser.ryid}'/> <%-- 操作人员ID。Lin --%>
|
|
|
+
|
|
|
+
|
|
|
+<script>
|
|
|
+ss.dom.formElemConfig.ryid={val:null,type:window.ss.dom.TYPE.OBJP};
|
|
|
+</script>
|
|
|
+<ss-objp
|
|
|
+:opt="ryidOption"
|
|
|
+:inp="true"
|
|
|
+url="<ss:serv name='loadObjpOpt' parm='{"objectpickerdropdown":"1","objectpickerfilterField":"bjid,rylbm"}' />"
|
|
|
+cb="ryByBjOrRylb"
|
|
|
+v-model="ryid"
|
|
|
+name="ryid"
|
|
|
+:readonly="false"
|
|
|
+filterField="bjid,rylbm"
|
|
|
+onChange="selBaseInfoByRyid"
|
|
|
+></ss-objp>
|
|
|
+
|
|
|
+ </td>
|
|
|
+
|
|
|
+ <th>部门/班级</th>
|
|
|
+ <td id='bmbj'></td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>姓名</th>
|
|
|
+ <td id='xm'></td>
|
|
|
+
|
|
|
+ <th>人员号</th>
|
|
|
+ <td id='ryh'></td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>金额</th>
|
|
|
+ <td>
|
|
|
+ <script>
|
|
|
+ // 功能说明:退费金额字段改为 SsInp 组件,并声明 Vue 表单模型 by xu 20260323
|
|
|
+ ss.dom.formElemConfig.je={val:'',type:window.ss.dom.TYPE.INPUT};
|
|
|
+ </script>
|
|
|
+ <ss-inp
|
|
|
+ v-model="je"
|
|
|
+ name="je"
|
|
|
+ placeholder="请输入金额"
|
|
|
+ ></ss-inp>
|
|
|
+ </td>
|
|
|
+
|
|
|
+ <th>描述</th>
|
|
|
+ <td>
|
|
|
+ <script>
|
|
|
+ // 功能说明:退费描述字段改为 SsInp 组件,并声明 Vue 表单模型 by xu 20260323
|
|
|
+ ss.dom.formElemConfig.ms={val:'',type:window.ss.dom.TYPE.INPUT};
|
|
|
+ </script>
|
|
|
+ <ss-inp
|
|
|
+ v-model="ms"
|
|
|
+ name="ms"
|
|
|
+ placeholder="请输入描述"
|
|
|
+ ></ss-inp>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>消费余额</th>
|
|
|
+ <td id='xfye' colspan="3"></td>
|
|
|
+ </tr>
|
|
|
+ </table>
|
|
|
+ </div>
|
|
|
+
|
|
|
+
|
|
|
+ <div class='bottom-div'>
|
|
|
+
|
|
|
+ <ss-bottom-button
|
|
|
+ id="saveAndCommit"
|
|
|
+ text="保存并提交"
|
|
|
+ onclick='submitGrtfForm();'<%-- 功能说明:个人退费页提交前先校验“个人退费”金额必须为负数 by xu 20260323 --%>
|
|
|
+ icon-class="bottom-div-save"
|
|
|
+ ></ss-bottom-button>
|
|
|
+
|
|
|
+
|
|
|
+ <ss-bottom-button
|
|
|
+ text="关闭"
|
|
|
+ onclick='ss.display.closeDialog();'
|
|
|
+ icon-class="bottom-div-close"
|
|
|
+ ></ss-bottom-button>
|
|
|
+
|
|
|
+ </div>
|
|
|
+
|
|
|
+
|
|
|
+<input name='wdComponentID' type='hidden' value='grcz_grtfAdd'/></div></form>
|
|
|
+<script type="text/javascript">var wdRecordValue='${wdRecordValue}';</script>
|
|
|
+<script type="text/javascript" src="/ss/js/wdRecord.js"></script>
|
|
|
+<script type="text/javascript">(function(){wdRecord("grcz_grtfAdd");})();</script>
|
|
|
+<script type="text/javascript" src="/ss/js/wdFitHeight.js"></script>
|
|
|
+<script type="text/javascript">initWdFitHeight(0)</script>
|
|
|
+<script type="text/javascript">initWdFitHeightFunction=function(){initWdFitHeight(0);};</script>
|
|
|
+<ss:equal val="${empty resizeComponent}" val2="false">
|
|
|
+<script>{var iframe=wd.display.getFrameOfWindow();
|
|
|
+if(iframe&&iframe.contentWindow==window)
|
|
|
+wd.display.resizeComponent(${resizeComponent.width}, ${resizeComponent.height}, ${empty resizeComponent.minHeight?'null':resizeComponent.minHeight}, ${empty resizeComponent.maxHeight?'null':resizeComponent.maxHeight});}</script>
|
|
|
</ss:equal>
|
|
|
<ss:help/>
|
|
|
</body>
|
|
|
@@ -216,11 +223,35 @@ try{wd.display.setCloseWindowParam('${wdclosewindowparam}');
|
|
|
}catch(err){console.error(err);}
|
|
|
</script>
|
|
|
</ss:equal>
|
|
|
+<script type="text/javascript" src="/js/validate/validator-rules.js"></script><%-- 功能说明:个人退费页接入桌面端校验规则,支持 SsInp 红线提示 by xu 20260323 --%>
|
|
|
+<script type="text/javascript" src="/js/validate/validation-manager.js"></script><%-- 功能说明:个人退费页接入桌面端校验管理器,支持 SsInp 红线提示 by xu 20260323 --%>
|
|
|
|
|
|
</html>
|
|
|
<%@ include file="/page/clip/footer.jsp" %>
|
|
|
|
|
|
<script>
|
|
|
+ // 功能说明:根据当前退费类别渲染 code-label 映射,供金额负数校验复用 by xu 20260323
|
|
|
+ var GRTF_LABEL_MAP = {
|
|
|
+<%
|
|
|
+ for (Integer key : grczlbMap.keySet()) {
|
|
|
+%>
|
|
|
+ "<%=key%>": "<%=grczlbMap.get(key)%>",
|
|
|
+<%
|
|
|
+ }
|
|
|
+%>
|
|
|
+ };
|
|
|
+
|
|
|
+ // 功能说明:维护个人退费页中需要强制输入负数的退费类别名称,避免依赖固定编码 by xu 20260323
|
|
|
+ var NEGATIVE_ONLY_GRTF_LABEL_MAP = {
|
|
|
+ "个人退费": true
|
|
|
+ };
|
|
|
+
|
|
|
+ // 功能说明:记录当前退费类别的最新 value/label,避免 onoff 隐藏值切换时机导致金额校验判断失真 by xu 20260323
|
|
|
+ var CURRENT_GRTF_CATEGORY_STATE = {
|
|
|
+ value: "",
|
|
|
+ label: ""
|
|
|
+ };
|
|
|
+
|
|
|
function getFormAppVm(){
|
|
|
var appEl = document.getElementById("app");
|
|
|
if (!appEl || !appEl.__vue_app__ || !appEl.__vue_app__._instance) {
|
|
|
@@ -280,6 +311,125 @@ try{wd.display.setCloseWindowParam('${wdclosewindowparam}');
|
|
|
clearRySelection(vm);
|
|
|
}
|
|
|
|
|
|
+ // 功能说明:退费类别变化后延后一拍重跑金额校验,确保隐藏字段值更新后再清理红线状态 by xu 20260323
|
|
|
+ function handleGrczlbmChange(groupValue, value, label){
|
|
|
+ CURRENT_GRTF_CATEGORY_STATE.value = groupValue == null ? "" : groupValue.toString();
|
|
|
+ CURRENT_GRTF_CATEGORY_STATE.label = label == null ? "" : label.toString();
|
|
|
+ setTimeout(function(){
|
|
|
+ if (window.ssVm && typeof window.ssVm.validateField === "function") {
|
|
|
+ window.ssVm.validateField("je");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ validateNegativeAmountByCategory(false);
|
|
|
+ }, 0);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 功能说明:初始化个人退费页金额负数校验规则,整页金额都必须输入负数 by xu 20260323
|
|
|
+ function initNegativeAmountValidation(){
|
|
|
+ if (!window.ssVm || typeof window.ssVm.add !== "function" || window.ss.dom._grczGrtfNegativeAmountValidationInited) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ window.ss.dom._grczGrtfNegativeAmountValidationInited = true;
|
|
|
+ window.ssVm.add("ss.commonValidator.custom", ["je"], {
|
|
|
+ msgPrfx: "金额",
|
|
|
+ relField: "grczlbm",
|
|
|
+ validate: function(value, categoryValue){
|
|
|
+ var currentLabel = getCurrentGrczlbmLabel(categoryValue);
|
|
|
+ if (value == null || value.toString().trim() === "") {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ if (isValidNegativeAmountText(value)) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return {
|
|
|
+ valid: false,
|
|
|
+ message: (currentLabel || "退费") + "金额只能输入负数"
|
|
|
+ };
|
|
|
+ }
|
|
|
+ }, {
|
|
|
+ je: window.ss.dom.formElemConfig.je ? window.ss.dom.formElemConfig.je.val : ""
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ // 功能说明:根据当前退费类别值读取显示文案,供联动校验和错误提示复用 by xu 20260323
|
|
|
+ function getCurrentGrczlbmLabel(categoryValue){
|
|
|
+ var currentValue = categoryValue == null ? getCurrentGrczlbmValue() : categoryValue.toString();
|
|
|
+ if (CURRENT_GRTF_CATEGORY_STATE.label && (!currentValue || CURRENT_GRTF_CATEGORY_STATE.value === currentValue)) {
|
|
|
+ return CURRENT_GRTF_CATEGORY_STATE.label;
|
|
|
+ }
|
|
|
+ return GRTF_LABEL_MAP[currentValue] || "";
|
|
|
+ }
|
|
|
+
|
|
|
+ // 功能说明:统一判断金额文本是否为合法负数,供提交校验和 ssVm 规则复用 by xu 20260323
|
|
|
+ function isValidNegativeAmountText(value){
|
|
|
+ var amountText = value == null ? "" : value.toString().trim();
|
|
|
+ if (!amountText) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ var amountNumber = Number(amountText);
|
|
|
+ return !isNaN(amountNumber) && amountNumber < 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 功能说明:根据当前退费类别值读取隐藏字段值,供金额校验复用 by xu 20260323
|
|
|
+ function getCurrentGrczlbmValue(){
|
|
|
+ var vm = getFormAppVm();
|
|
|
+ if (vm && vm.grczlbm != null && vm.grczlbm !== "") {
|
|
|
+ return vm.grczlbm.toString();
|
|
|
+ }
|
|
|
+ var categoryElem = document.querySelector('[name="grczlbm"]');
|
|
|
+ return categoryElem && categoryElem.value != null ? categoryElem.value.toString() : "";
|
|
|
+ }
|
|
|
+
|
|
|
+ // 功能说明:统一校验个人退费金额必须为负数,不再区分具体退费类别 by xu 20260323
|
|
|
+ function validateNegativeAmountByCategory(showMsg){
|
|
|
+ var currentLabel = getCurrentGrczlbmLabel();
|
|
|
+ var jeElem = document.querySelector('[name="je"]');
|
|
|
+ if (!jeElem) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (isValidNegativeAmountText(jeElem.value)) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (showMsg !== false) {
|
|
|
+ alert((currentLabel || "退费") + "金额只能输入负数");
|
|
|
+ jeElem.focus();
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 功能说明:个人退费页提交前先走 ssVm 全量校验,确保显示 SsInp 左侧红线与底部提示 by xu 20260323
|
|
|
+ function submitGrtfForm(){
|
|
|
+ if (window.ssVm && window.ssVm.validations && window.ssVm.validations.size > 0) {
|
|
|
+ var validateResult = window.ssVm.validateAll();
|
|
|
+ if (!validateResult.valid) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ } else if (!validateNegativeAmountByCategory(true)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ var formElem = document.querySelector("form");
|
|
|
+ if (!formElem) {
|
|
|
+ alert("表单不存在");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ formElem.action = "<ss:serv name='grcz_lr_tj' dest='addSure' parm='{thisViewObject:\"grcz\",dataType:\"update\"}'/>";
|
|
|
+ ss.display.resizeComponent(881,361,515,515);
|
|
|
+ formElem.submit();
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ SS.ready(function(){
|
|
|
+ // 功能说明:页面初始化后同步当前退费类别状态,避免首次校验读取不到最新类别文案 by xu 20260323
|
|
|
+ CURRENT_GRTF_CATEGORY_STATE.value = getCurrentGrczlbmValue();
|
|
|
+ CURRENT_GRTF_CATEGORY_STATE.label = GRTF_LABEL_MAP[CURRENT_GRTF_CATEGORY_STATE.value] || "";
|
|
|
+ // 功能说明:页面初始化后注册个人退费金额负数校验规则,保证 SsInp 输入时直接出现红线提示 by xu 20260323
|
|
|
+ initNegativeAmountValidation();
|
|
|
+ });
|
|
|
+
|
|
|
function handleBjChange(value){
|
|
|
if (value == null || value === "") {
|
|
|
return;
|