Ver Fonte

扩展objp filter field

Ben há 6 horas atrás
pai
commit
12f8a34c02
3 ficheiros alterados com 291 adições e 6 exclusões
  1. 52 6
      js/vue/ss-components.js
  2. 237 0
      page/biz/ka_grczAdd.jsp
  3. 2 0
      page/clip/header.jsp

+ 52 - 6
js/vue/ss-components.js

@@ -789,6 +789,15 @@ import { EVEN_VAR } from "./EventBus.js";
         type: String,
         required: false,
       },
+      filterfield: {
+        type: String,
+        required: false,
+      },
+      // filterField: {
+      //   //此属性为页面表单元素的name用逗号分隔,作用为在向后台查询下拉菜单选项时,会带上这些name的表单元素的value值 Ben(20260313)
+      //   type: String,
+      //   required: false,
+      // },
       cb: {
         type: String,
         required: true,
@@ -827,6 +836,7 @@ import { EVEN_VAR } from "./EventBus.js";
     },
     emits: ["update:modelValue", "input", "blur", "change"],
     setup(props, { emit }) {
+
       const canInput = props.inp;
       const errMsg = Vue.ref(props.errTip);
       const selectItem = Vue.ref({});
@@ -1043,17 +1053,53 @@ import { EVEN_VAR } from "./EventBus.js";
 
           if (props.url && props.cb) {
             //如果有定义过滤器
-            if (props.filter) {
-              const filterObj = props.filter; // 转为json对象
-              for (let k in filterObj) {
-                let v = filterObj[k];
-                url += "&" + k + "=" + v;
+            if (props.filter||props.filterfield) {
+
+              let filterObj = props.filter;
+              if(!props.filter)
+                filterObj = {};
+
+              if (props.filter){
+                const filterObj = props.filter; // 转为json对象
+                for (let k in filterObj) {
+                  let v = filterObj[k];
+                  url += "&" + k + "=" + v;
+                }
+              }
+
+              if (props.filterfield) {//加上filterfield的值过滤
+                let filterfieldArr = props.filterfield.split(",");
+                for(var i=0;i<filterfieldArr.length;i++){
+                  let fieldName = filterfieldArr[i];
+                  let fields = document.getElementsByName(fieldName);
+                  if(!fields||fields.length<1){
+                    alert('下拉菜单配置的过滤条件'+fieldName+'不存在!');
+                    continue;
+                  }
+
+                  let v = null;
+                  for (let j = 0; j < fields.length; j++) {
+                      if(fields[j].value){
+                        v=fields[j].value;
+                        break;
+                      }
+                  }
+                  
+                  // let field = document.getElementsByName(fieldName)[0];
+                  // let v = field.value;
+                  if (v) {
+                    url += "&" + fieldName + "=" + v;
+                    filterObj[fieldName]=v;
+                  }
+                }
+
+                console.log('filterfield url:'+url);
               }
 
               //包含HTML实体的JSON字符串转为JSON对象,如原字符串是{&quot;dwid&quot;:&quot;88&quot;},注意key也必需用单引号包着
               // const decodedString = props.filter.replace(/&quot;/g, '"'); // 转换为: {"dwid":"88"}
               // objectPickerParam = JSON.parse(decodedString); // 转为json对象
-              objectPickerParam = props.filter;
+              objectPickerParam = filterObj;
               objectPickerParam["input"] = props.inp;
               objectPickerParam["codebook"] = props.cb;
 

+ 237 - 0
page/biz/ka_grczAdd.jsp

@@ -0,0 +1,237 @@
+<%@ 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,"ka");%>
+<%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-div" ssFith="true">
+	<table class='form'>
+
+		<tr>
+			<th width="20%">充值类别</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>
+		<tr>
+			<th width="20%">人员类别</th>
+			<td >
+				
+<script>
+ss.dom.formElemConfig.rylbm={val:'1100',type:window.ss.dom.TYPE.ONOFFBTN};
+</script>
+
+				<ss-onoff
+v-model="rylbm"
+name="rylbm"
+label="学员"
+value="1100"
+:multiple="false"
+:null="false"
+placeholder="学员"
+v-model="rylbm"
+:readonly="false"
+></ss-onoff>
+
+				<ss-onoff
+v-model="rylbm"
+name="rylbm"
+label="职工亲属"
+value="1000"
+:multiple="false"
+:null="false"
+placeholder="职工亲属"
+v-model="rylbm"
+:readonly="false"
+></ss-onoff>
+
+			</td>
+		</tr>
+
+		<tr>
+			<th width="20%">班级</th>
+			<td >
+				
+<script>
+ss.dom.formElemConfig.bjid={val:null,type:window.ss.dom.TYPE.OBJP};
+</script>
+<ss-objp
+:opt="bjidOption"
+:inp="true"
+url="<ss:serv name='loadObjpOpt' parm='{"objectpickerdropdown":"1"}' />"
+cb="bj"
+v-model="bjid"
+name="bjid"
+:readonly="false"
+></ss-objp>
+
+			</td>
+		</tr>
+
+		<tr>
+			<th width="20%">人员</th>
+			<td width="30%">
+				<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"}' />"
+cb="ryByBjRylbm"
+v-model="ryid"
+name="ryid"
+:readonly="false"
+filterField="bjid,rylbm"
+onChange="selBaseInfoByRyid"
+></ss-objp>
+
+			</td>
+		</tr>
+		<tr>
+			<th width="20%">部门/班级</th>
+			<td id='bmbj'></td>
+		</tr>
+		<tr>
+			<th width="20%">姓名</th>
+			<td id='xm'></td>
+		</tr>
+		<tr>
+			<th width="20%">人员号</th>
+			<td id='ryh'></td>
+		</tr>
+		<tr>
+			<th width="20%">金额</th>
+			<td width="30%"><input name="je"/></td>
+		</tr>
+		<tr>
+			<th width="20%">描述</th>
+			<td width="30%"><input name="je"/></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='ka_grczAdd'/></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("ka_grczAdd");})();</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>
+<script type="text/javascript">
+try{wd.display.showMsgPopup('${msg}');
+}catch(err){console.error(err);}
+</script>
+<ss:equal val="${empty wdclosewindowparam}" val2="false">
+<script type="text/javascript">
+try{wd.display.setCloseWindowParam('${wdclosewindowparam}');
+}catch(err){console.error(err);}
+</script>
+</ss:equal>
+
+</html>
+<%@ include file="/page/clip/footer.jsp" %>
+
+<script>
+	function selBaseInfoByRyid(value){
+		$.ajax({
+			url:"<ss:serv name='ry_selBaseInfoByRyid'/>",
+			type:"post",
+			data:{
+				ryid:value
+			},
+			dataType:"json",
+			success:function(data){
+				if (data.ssCode != 0) {
+					alert(data.ssMsg);
+					return;
+				}
+				var d = data.ssData;
+				document.getElementById('xm').innerHTML = data.ssData.xm;
+				document.getElementById('ryh').innerHTML = data.ssData.ryh;
+				if (d.rylbm != 1100)	// 不是学员。Lin
+					document.getElementById('bmbj').innerHTML = data.ssData.bmmc;
+				else
+					document.getElementById('bmbj').innerHTML = data.ssData.bjmc;
+			}
+		});
+	}
+</script>

+ 2 - 0
page/clip/header.jsp

@@ -11,6 +11,8 @@
 <script>
 	window.ss.dom.formElemConfig = window.ss.dom.formElemConfig || {};//放当前页面表单元素配置的变量
 	window.ss.dom.listConfig = window.ss.dom.listConfig || {};
+	window.ss.dom.btnElemConfig = window.ss.dom.btnElemConfig|| {};<%-- 放当前页面按钮元素配置的变量 Ben(20260313) --%>
+
 </script>
 <%-- 增加,老UI过渡。Lin(新UI) --%>
 <%--<ss:skin file='main.css'/>--%><%-- 再改,新UI彻底去掉老UI样式文件 Ben(20251215) --%>