Переглянути джерело

refactor(ws_ff): 事件名 SSAppMounted 改为 ssAppMounted,源文件同步

- initVue.js / ws_ff.jsp: 事件名规范化为驼峰风格 ssAppMounted
- 新增 page/biz/ws_ff.ss.jsp 源文件同步:
  * 外层 div 加 id="app",与编译产物保持一致
  * ws_dwff_specific.js 引用挪出 #app,避免被 Vue 编译时 ignore
  * IIFE + $("#test").click + ryOption 显示恢复 三段 js 包到 addEventListener('ssAppMounted', ...)
- <drag.ss> 简化标签未动(待编译程序统一处理)
ruhuxu 3 днів тому
батько
коміт
b07c95880b
3 змінених файлів з 555 додано та 9 видалено
  1. 3 3
      js/vue/initVue.js
  2. 546 0
      page/biz/ws_ff.ss.jsp
  3. 6 6
      page/ws_ff.jsp

+ 3 - 3
js/vue/initVue.js

@@ -112,14 +112,14 @@ SS.ready(function () {
                 }
             });
 
-            // mount 完成统一钩子:旧页面(jQuery/原生 DOM 拖拽等)可订阅 SSAppMounted 事件,
+            // mount 完成统一钩子:旧页面(jQuery/原生 DOM 拖拽等)可订阅 ssAppMounted 事件,
             // 在 Vue mount 替换 DOM 之后再做事件绑定,避免被 mount 抹掉 by xu 20260429
             try {
                 window.SS = window.SS || {};
                 window.SS.__appMounted = true;
-                document.dispatchEvent(new Event('SSAppMounted'));
+                document.dispatchEvent(new Event('ssAppMounted'));
             } catch (e) {
-                console.error('dispatch SSAppMounted failed:', e);
+                console.error('dispatch ssAppMounted failed:', e);
             }
         }
     })

+ 546 - 0
page/biz/ws_ff.ss.jsp

@@ -0,0 +1,546 @@
+<html>
+<head>
+<meta charset="UTF-8">
+<title></title>
+<css.ss file="/ss/treeTable/jquery.treetable.css"/>
+<css.ss file="/ss/treeTable/jquery.treetable.theme.default.css"/>
+<js.ss file="/ss/drag_.js"/> <%-- 原为 "/wd/js/drag.js",因与 Drag.js 重名,故改名为 drag_.js。Lin --%>
+
+<style type="text/css">
+	.bac {
+		width: 41px;
+		height: 41px;
+		background-image: url("/ss/window/theme/dhx_blue/image/close.png");
+		position: absolute;
+		top: 0;
+		right: 0;
+	}
+	.bac:hover {
+		background-position: 41px 0;
+	}
+/*.box {
+	width: 400px;
+	height: 250px;
+	background-color: white;
+	margin: -374px 166px;
+	position: absolute;
+	z-index: 10;
+	display: none;
+	border: #008B8B 1px solid;
+}*/
+	.bottom-div {
+		position: absolute;
+	}
+	#ryOption .radioItem {
+		display: none;
+	}
+	.nbFrame {
+		height: 115px;
+		overflow: auto;
+	}
+	[id^="wrapper"] {
+		display: flex;
+		align-items: center;
+		background: transparent !important;
+	}
+	.ys_cl {
+		display: inline-block;
+		max-width: 56%;
+		overflow: hidden;
+		text-overflow: ellipsis;
+	}
+	.box2 .ys_cl {
+		max-width: 95%;
+	}
+</style>
+
+	<ss:skin file='main.css'/>
+
+</head>
+
+<body style="padding-top:12px;padding-left:8px;">
+<%-- 加 id="app" 与编译产物保持一致,便于 Vue 通用初始化接管 by xu 20260429 --%>
+<div class="form-container" id="app">
+	<div class="content-box fit-height-content"><%-- vue样式要套上这两套DIV Ben(20260414) --%>
+
+<form id="myForm" method="post" style="padding-right: 4px">
+<input type="hidden" value="" name="nbSelectedId" />
+<input type="hidden" value="" name="rySelectedId" />
+
+<%-- 原 <script src="/page/biz/js/ws_dwff_specific.js"></script> 已挪到 #app 外,避免被 Vue 编译为模板时 ignore by xu 20260429 --%>
+
+	<input type="hidden" name="ryidList" id="ryidList" value=""/>
+
+	<div class="content-div" ssFith='{max:520,min:480,lvl:1}' style="height:480px;">
+
+	<div class="longCardList-div" style="width: calc(100% - 4px);box-sizing: border-box;">
+		<table class="scrollbar" style="max-height: 100%;width: 100%;">
+		<tbody ssFith='{list:true,rowHeight:66}' style="width: 100%;padding: 0px 4px 0px 11px;box-sizing: border-box;"> <%-- 去掉 id="wdTbody0",好像没用到。Lin --%>
+			<tr onclick='<serv.ss dlg="true" name="ws_ck" dest="objPlay" parm="{wsid:&quot;${wsid}&quot;}"/>'>
+				<td class="hLine">
+					<div class="longCardList-info" style="font-size: 12px;display: inline-block;float: left;">
+						<span class="longCardList-highlight" style="margin-bottom: 3px;">
+							<a>文书标题:${ws.bt}</a>
+						</span>
+						<div id="cardList-abstract" class="longCardList-dim" style="height: auto;min-height: 20px;max-height: 40px;">
+							文书摘要:<txt.ss val="${ws.zy}"/>
+						</div>
+						<div id="cardList-category" class="longCardList growHeightDiv">
+							<span>文书类型:来文</span>
+<%--					<span>文书范围:<wd:translate name="wsfw" value='${ws.wsfwm}'/></span> --%>
+							<span>文书类别:<cbTrans.ss cb="wslb" val='${ws.wslbm}'/></span>
+							<span>收文时间:<txt.ss val='${ws.swsj}' fmt="yyyy-MM-dd HH:mm"/></span>
+						</div>
+					</div>
+				</td>
+			</tr>
+		</tbody>
+		</table>
+	</div>
+
+		<table class='form' style="table-layout:fixed;">
+		<tbody>
+			<tr>
+				<th width="150px">拟办</th>
+				<td style="padding-right: 0px;">
+					<div class="nbFrame scrollbar">
+						<div id="nbSelected" ssSelClazz="list-checkedIcon" class="scrollbar">
+							<rpt.ss name="nbList" id="item">
+								<div ssObjId='${item.id}' <equal.ss val="${index}" val2="0">isSq="true"</equal.ss> class='list-background nb-Div' style='overflow:hidden;max-width:780px;'
+										onClick='if($(window.event.srcElement).is("a,img"))return;
+											<serv.ss dlg="true" dest="shInfo" parm="{sm:&quot;${item.sm}&quot;,fjid:&quot;${item.fjid}&quot;,ynrid:&quot;${item.ynrid}&quot;}"/>'>
+									<span class='nbName list-dim' style='display: inline-block;float: left;width: 85px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;height:41px;line-height:41px;'>
+										${item.xm}
+									</span>
+									<span class='nbBt list-dim' style='float: left;display:inline-flex;height:41px;line-height:41px;width:calc(100% - 265px);'>
+										<span style="overflow:hidden;text-overflow:ellipsis;" title="${item.sm}">
+											${item.sm}
+										</span>
+										<equal.ss val="${empty item.fjid}" val2="false">
+											<span>
+												<input type="button" class="underlineIcon-attachment" style="margin-left: 5px;" />
+											</span>
+										</equal.ss>
+<%--
+										<wd:equal leftValue="${empty item.ynrid}" rightValue="false">
+											<span>
+												<@input type="button" class="underlineIcon-media" style="margin-left: 5px;" />
+											</span>
+										</wd:equal>
+--%>
+									</span>
+										<div class='sj list-smallDim' style='float: right;margin-right: 10px;font-size: 0px;padding-top:12px;width:80px;'>${item.sj} </div>
+								</div>
+							</rpt.ss>
+						</div>
+					</div>
+				</td>
+			</tr>
+<%-- </form> 放错位置了,移到后面。Lin
+		</form> --%>
+			<tr id="ys">
+				<th>阅示/处理人员</th>
+				<td style="padding: 0;padding-top: 5px;">
+					<input name="clfs" type="hidden" value="2"/> <%-- 增加了 闭标签 "/"。Lin --%>
+					<div style="float: right;margin-right: 8px;margin-bottom: 3px;">
+						<input class="radioItem" type="button" value="领导" ssVal="1" name="choice"/> <%-- wdValue=。Lin --%>
+						<notEqual.ss val="${ws.wsfwm}" val2="25"> <%-- 25 = 部门内。Lin --%>
+							<input class="radioItem" type="button" value="部门" ssVal="2" name="choice"/> <%-- wdValue=。Lin --%>
+						</notEqual.ss>
+						<equal.ss val="${ws.wsfwm}" val2="25"> <%-- 25 = 部门内。Lin --%>
+							<input class="radioItem" type="button" value="成员" ssVal="2" name="choice"/> <%-- wdValue=。Lin --%>
+						</equal.ss>
+<%--					<input class="radioItem" type="button" value="群组" wdValue="3" name="choice"/> --%>
+						<onoff.ss rad="true" name="choice" val="1"/> <%-- 先去掉 nullable="false" onClass="content-onButton" offClass="content-offButton"。Lin --%>
+					</div>
+					<div class="dragList-div" id="container" style="width: 100%;margin-bottom:10px;">
+						<div class="box">
+							<p class="label">已选<span id="ryDropAll" class="icon-allRight"></span></p>
+							<div class="list-body" style="overflow-x: hidden;width: 100%;height: 240px;">
+								<div id="rySelected" ssSelClazz="list-checkedIcon" class="scrollbar" style="height:100%">
+								</div>
+							</div>
+						</div>
+						<div class="box box2">
+							<p class="label">可选<span id="ryPickAll" class="icon-allLeft"></span></p>
+							<div class="list-body" style="overflow-x: hidden;width: 100%;height: 240px;">
+								<div id="ryOption" ssSelClazz="list-checkedIcon" class="scrollbar" style="height:100%">
+									<rpt.ss name="leaderList" id="item">
+										<div ssObjId="${item.ryid}" ssVal="${item.ryid}" val="1" class="leader list-background" style="min-height: 41px;line-height: 41px;width: 100%;box-sizing: border-box;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;"> <%-- wdValue=。Lin --%>
+											<span class="ys_cl">${item.xm}</span>
+	<%--								<input class="radioItem" type="button" value="处理" wdValue="${item.ryid}" name="clfs" lx="1"/> --%>
+											<span style="margin-left:10px;">
+												<input class="radioItem" type="button" value="阅示" ssVal="2" name="clfs_${item.ryid}" lx="1" ysBtn=""/> <%-- wdValue=。Lin --%>
+												<input class="radioItem" type="button" value="处理" ssVal="${item.ryid}" name="clfs_${item.ryid}" lx="1" onclick="handleCl('${item.ryid}')" clBtn=""/> <%-- wdValue=。Lin --%>
+												<onoff.ss rad="true" name="clfs_${item.ryid}" val="2"/> <%-- 先去掉 onClass="content-onButton" offClass="content-offButton" nullable="false"。Lin --%>
+											</span>
+										</div>
+									</rpt.ss>
+									<notEqual.ss val="${ws.wsfwm}" val2="25"> <%-- 25 = 部门内。Lin --%>
+										<rpt.ss name="bmList" id="item">
+											<div ssObjId="${item.bmid}" ssVal="${item.bmid}" val="2" class="bmList list-background" style="min-height: 41px;line-height: 41px;width: 100%;box-sizing: border-box;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;"> <%-- wdValue=。Lin --%>
+												<span class="ys_cl">${item.mc}</span>
+	<%--									<input class="radioItem" type="button" value="处理" wdValue="${item.bmid}" name="clfs" lx="2"/> --%>
+												<span style="margin-left:10px;">
+													<input class="radioItem" type="button" value="阅示" ssVal="2" name="clfs_${item.bmid}" lx="2" ysBtn=""/> <%-- wdValue=。Lin --%>
+													<input class="radioItem" type="button" value="处理" ssVal="${item.bmid}" name="clfs_${item.bmid}" lx="2" onclick="handleCl('${item.bmid}')" clBtn=""/> <%-- wdValue=。Lin --%>
+													<onoff.ss rad="true" name="clfs_${item.bmid}" val="2"/> <%-- 先去掉 onClass="content-onButton" offClass="content-offButton" nullable="false"。Lin --%>
+												</span>
+											</div>
+										</rpt.ss>
+									</notEqual.ss>
+									<equal.ss val="${ws.wsfwm}" val2="25"> <%-- 25 = 部门内。Lin --%>
+										<rpt.ss name="childList" id="item"> <%-- ="topRyList"。Lin --%>
+											<div ssObjId="${item.ryid}" ssVal="${item.ryid}" val="2" class="bmList list-background" style="min-height: 41px;line-height: 41px;width: 100%;box-sizing: border-box;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;"> <%-- wdValue=。Lin --%>
+												<span class="ys_cl">${item.xm}</span>
+	<%--									<input class="radioItem" type="button" value="处理" wdValue="${item.ryid}" name="clfs" lx="1"/> --%>
+												<span style="margin-left:10px;">
+													<input class="radioItem" type="button" value="阅示" ssVal="2" name="clfs_${item.ryid}" lx="1" ysBtn=""/> <%-- wdValue=。Lin --%>
+													<input class="radioItem" type="button" value="处理" ssVal="${item.ryid}" name="clfs_${item.ryid}" lx="1" onclick="handleCl('${item.ryid}')" clBtn=""/> <%-- wdValue=。Lin --%>
+													<onoff.ss rad="true" name="clfs_${item.ryid}" val="2"/> <%-- 先去掉 onClass="content-onButton" offClass="content-offButton" nullable="false"。Lin --%>
+												</span>
+											</div>
+										</rpt.ss>
+									</equal.ss>
+									<rpt.ss name="qzList" id="item">
+										<div ssObjId="${item.qzid}" ssVal="${item.qzid}" val="3" class="qzList list-background" style="min-height: 41px;line-height: 41px;width: 100%;box-sizing: border-box;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;"> <%-- wdValue=。Lin --%>
+											<span class="ys_cl">${item.mc}</span>
+											<span style="margin-left:10px;">
+												<input class="radioItem" type="button" value="阅示" ssVal="2" name="clfs_${item.qzid}" lx="1" ysBtn=""/> <%-- wdValue=。Lin --%>
+												<onoff.ss rad="true" name="clfs_${item.qzid}" val="2"/> <%-- 先去掉 onClass="content-onButton" offClass="content-offButton" nullable="false"。Lin --%>
+											</span>
+										</div>
+									</rpt.ss>
+									<onoff.ss rad="true" name="clfs" val="2" null="true"/> <%-- 先去掉 onClass="content-onButton" offClass="content-offButton"。Lin --%>
+								</div>
+							</div>
+						</div>
+					</div>
+<%-- 去掉,没用到。Lin
+					<wd:equal leftValue="${ws.wsfwm==25}" rightValue="false">
+--%>
+<%-- 放开,原被注释掉。Lin --%>
+					<div class="select-items select-others" style="top:0;margin: 5px 0px 0px 6px;">
+						<input name="under" type="button" value="及其下人员" style="margin-bottom: 10px;margin-right: 8px;" />
+						<onoff.ss name="under" val="0"/> <%-- 去掉 onClass="content-onButton" offClass="content-offButton"。Lin --%>
+					</div>
+<%-- 放开,原被注释掉。Lin --%>
+<%-- 去掉,没用到。Lin
+					</wd:equal>
+--%>
+				</td>
+			</tr>
+		</tbody>
+		</table>
+	</div>
+
+
+					<div class="bottom-down-div border-top">
+			<input type="button" id="test" value="确认" class="bottom-button"/>
+			<input type="button" value="关闭" class="bottom-button" onclick="wd.display.closeDialog();"/>
+					</div>
+
+
+
+<%--
+		<div class='bottom-div'>
+
+			<ss-bottom-button
+					id="saveAndCommit"
+					text="确认"
+					onclick='alert("提交表单")'
+					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 type="hidden" id="getNbListUrl" value="@service{name:'ws_ff_nb_cx'}@"/>
+<%--脚本查询拟办列表--%>
+<input type="hidden" id="updateShlbmUrl" value="@service{name:'ws_ff_nbshlbm_bc'}@"/>
+<%-- 脚本修改拟办类别为改稿类别 --%>
+<input type="hidden" id="XyshiftRyidsUrl" value="@service{name:'ws_ff_xyxgry_cx'}@"/>
+<%-- 学员查询 --%>
+<input type="hidden" id="toRyidUrl" value="<serv.ss name='ws_wrRyListByBmListByReq'/>"/> <%-- name:'ws_ff_bm2ry'。Lin --%>
+<input type="hidden" id="qzToRyidUrl" value="@service{name:'ws_ff_qz2ry'}@"/>
+<input type="hidden" id="lyUrl" value='@service{dest:"ws_ly",show:"wdDialog",param:{"id":"ssVal{id}"}}@'/>
+<%-- wsfwm大于51的用到 --%>
+<input type="hidden" id="queryRyUrl" value="@service{name:'ws_ff_xyxg_cx'}@"/>
+
+</form> <%-- 从上面移到这。Lin --%>
+	</div>
+</div>
+
+<%-- 原在 #app 内被 Vue 编译时 ignore,挪到 #app 外恢复加载 by xu 20260429 --%>
+<script src="/page/biz/js/ws_dwff_specific.js"></script>
+
+<drag.ss name="nb" grp="true" func="editOrder"/>
+
+<drag.ss name="ry" grp="true" func="editOrder"/>
+
+<js.ss file="/ss/treeTable/jquery.treetable.js"/>
+<js.ss file="/ss/title.js"/>
+<script>
+	window.onload = function() {
+		$('.list-background').addClass('list');
+	}
+</script>
+<script>
+	//页面初始化的方法
+	function handleDispense(){
+		var val = $('input[name="choice"][type="hidden"]').val();
+		$("#ryOption>div").hide();
+		$("#ryOption>div[val='"+val+"']").show();
+	}
+	// 这两段都依赖 #app 内 DOM,必须等 Vue mount 完成(ssAppMounted)后再绑定,
+	// 否则 mount 替换 DOM 时会把这里挂的 jQuery 事件全部抹掉 by xu 20260429
+	document.addEventListener('ssAppMounted', function() {
+		(function() {
+			handleDispense();
+			$('input[name="choice"][type="button"]').click(handleDispense);
+		})();
+
+		// 阅示人员校验
+		$("#test").click(function() {
+			if ($('div.nb-Div').length > 0) {
+				var _length = $("#nbSelected").find("div.list-checkedIcon").length;
+				if (_length == 0) {
+					wd.display.alert("您尚未选拟办记录");
+					return;
+				}
+			}
+			var len = $('#rySelected > div').size();
+			if (len > 0) {
+				agree();
+			} else {
+				wd.display.alert("至少选择一个人员或部门");
+			}
+		});
+	});
+
+	function bmidToRyid(bms,prefix){
+		var ryids=[];
+		if(bms&&bms.length>0){
+		}else{
+			return ryids;
+		}
+		prefix=prefix||"";
+		var under = $('input[name="under"][type="button"]').attr('class') == 'content-onButton';
+		var url = document.getElementById("toRyidUrl").value;
+		$.ajax({
+			type: "post",
+			url: url,
+			async: false,
+			data: {
+				"bms": bms,
+				"under": under
+			},
+			dataType: "json",
+			traditional: true,
+			success: function(data) {
+				//console.log(data);
+/* 改,统一 Ajax 返回标准 -- .ssCode、.ssMsg、.ssData。Lin
+				if (data.result) {
+*/			if (data.ssCode != 0) {
+					$.each(data.data, function(i, element) {
+						ryids.push(prefix+element);
+					});
+				}
+			}
+		});
+		return ryids;
+	}
+
+	//工作流成功
+	function agree() {
+		//var val = $('input[name="clfs"][type="hidden"]').val();
+		var ryids = new Array();//存动态分支并行的ryid或者blryid(blryid存入ws的jbryid);
+		var bms = new Array();//用来转换为ryids,同样最后也是放进ryids里面
+		//var bms2 = new Array();
+		//存放拟办 勾选的为拟办
+		var shidNb = new Array();
+		//存放改稿  没有勾选的为改稿
+		var shidGg=new Array();
+		var sqid = "";
+		var allDiv = $('div[id="nbSelected"]>div');
+		for (var i = 0; i < allDiv.length; i++) {
+			var id = $(allDiv[i]).attr("ssObjId");	// ("wdobjectid")。是 wdobjectid,不是 wdObjectId。Lin
+			var isSq = $(allDiv[i]).attr("isSq");
+			if ($(allDiv[i]).hasClass("list-checkedIcon") > 0) {
+				//勾选 拟办
+				if (isSq == "true") {
+					sqid = id;
+				}else{
+					shidNb.push(id);
+				}
+			} else {
+				//没有勾选  改稿
+				if (!isSq) {
+					shidGg.push(id);
+				}
+			}
+		}
+
+		//领导选项卡
+		$("#rySelected").find("div.leader").each(function(i, element) {
+			//if (element.getAttribute("wdobjectid") == $('.dragList-div .content-onButton').attr('wdvalue')) {
+			if (element.getAttribute("ssObjId") == $(element).find("[name^='clfs_']").eq(0).val()) {	// ("wdobjectid")。是 wdobjectid,不是 wdObjectId。Lin
+				ryids.push("blryid" + element.getAttribute("ssObjId"));	// ("wdobjectid"))。是 wdobjectid,不是 wdObjectId。Lin
+			} else {
+				ryids.push(element.getAttribute("ssObjId"));	// ("wdobjectid"))。是 wdobjectid,不是 wdObjectId。Lin
+			}
+		});
+
+		//部门选项卡
+		$("#rySelected").find("div.bmList").each(function(i, element) {
+			<%-- 不是部门内 --%>
+			<notEqual.ss val="${ws.wsfwm}" val2="25" > <%-- 25 = 部门内。Lin --%>
+				//if (element.getAttribute("wdobjectid") == $('.dragList-div .content-onButton').attr('wdvalue')) {
+				if (element.getAttribute("ssObjId") == $(element).find("[name^='clfs_']").eq(0).val()) {	// ("wdobjectid")。是 wdobjectid,不是 wdObjectId。Lin
+					//ryids.push("blbmid"+element.getAttribute("wdobjectid"));
+					ryids=ryids.concat(bmidToRyid([element.getAttribute("ssObjId")],"blryid"));	// ("wdobjectid")],。是 wdobjectid,不是 wdObjectId。Lin
+				} else {
+					bms.push(element.getAttribute("ssObjId"));	// ("wdobjectid"))。是 wdobjectid,不是 wdObjectId。Lin
+				}
+			</notEqual.ss>
+			<%-- 是部门内 因为部门内是直接选部门内的成员所以直接存入ryids中就行了 --%>
+			<equal.ss val="${ws.wsfwm}" val2="25"> <%-- 25 = 部门内。Lin --%>
+				ryids.push(element.getAttribute("ssObjId"));	// ("wdobjectid"))。是 wdobjectid,不是 wdObjectId。Lin
+			</equal.ss>
+		});
+		if (bms.length > 0) {
+			var under = $('input[name="under"][type="button"]').attr('class') == 'content-onButton';
+			var url = document.getElementById("toRyidUrl").value;
+			$.ajax({
+				type: "post",
+				url: url,
+				async: false,
+				data: {
+					"bms": bms,
+					"under": under
+				},
+				dataType: "json",
+				traditional: true,
+				success: function(data) {
+					console.log(data);
+					if (data.result) {
+						$.each(data.data, function(i, element) {
+							ryids.push(element);
+						});
+					}
+				}
+			});
+		}
+
+		//群组选项卡
+		var qzids=[];
+		$("#rySelected").find("div.qzList").each(function(i, element) {
+			qzids.push(element.getAttribute("ssObjId"));	// ("wdobjectid"))。是 wdobjectid,不是 wdObjectId。Lin
+		});
+		if (qzids.length > 0) {
+			var url = document.getElementById("qzToRyidUrl").value;
+			$.ajax({
+				type: "post",
+				url: url,
+				async: false,
+				data: {
+					"qzids": qzids.join(",")
+				},
+				dataType: "json",
+				traditional: true,
+				success: function(result) {
+					if (result) {
+						$.each(result, function(i, item) {
+							ryids.push(item.ryid);
+						});
+					}
+				}
+			});
+		}
+
+		// 处理人员
+		/*var clrys = [];
+		$('[name^="clfs_"]').each(function() {
+				var _this = $(this)[0]
+				if(_this.className == "" && _this.value != 2) {
+					clrys.push(_this.value)
+				}
+		})
+		$('[name="clfs"]').val(clrys.toString().replace(/\,/g, "|"))*/
+
+		var ryidList = ryids.toString().replace(/\,/g, "|");
+		if (ryidList == "") {
+			wd.display.alert("所选择的区域无适当人选");
+		} else {
+			var ryidArr = ryidList.split(",");
+			var f = document.getElementById("myForm");
+/* 改。Lin
+ * 去掉 sfty:1 和 sm:'单位分发处理',服务 ws_submFf 没用到
+			var formUrl = "@service{name:'ws_ff_dw_tj',dest:'sys_info',param:{sqid:'ssVal{sqid}',shidNb:'ssVal{shidNb}',shidGg:'ssVal{shidGg}',shid:'${shid}',sfty:1,sm:'单位分发处理'}}@";
+*/		var formUrl = "<serv.ss name='ws_submFf' dest='info' param='{sqid:"ssVal{sqid}",shidNb:"ssVal{shidNb}",shidGg:"ssVal{shidGg}",shid:"${shid}"}'/>";
+			f.action = wd.display.replaceDynamicParam(formUrl, {
+					"shidNb": shidNb,
+					"shidGg": shidGg,
+					"sqid": sqid
+			});
+			$('#ryidList').val(ryidList);
+			f.submit();
+		}
+	}
+
+	//工作流失败
+	function reject() {
+		var f = document.getElementById('myForm');
+/* 改,再去掉 check("审核"),直接用 "ss.agrTask" 或 "ss.rejTask"
+		f.action = "@service{name:'check',dest:'sys_info',param:{shid:'${shid}',sfty:0}}@";
+*/	f.action = "<serv.ss name='rejTask' dest='info' parm='{shid:"${shid}"}'/>";
+		f.submit();
+	}
+
+	function handleCl(id) {
+		//$("[name='clfs_' + id]").val(2)
+		$('[name^="clfs_"][type="hidden"]').each(function() {
+			$(this).val(2)
+		})
+		//$('[name^="clfs_"][wdvalue="2"]').each(function() {
+		$('[ysBtn]').each(function() {
+			$(this).removeClass("content-offButton").addClass("content-onButton")
+		})
+		$('[clBtn]').each(function() {
+			$(this).removeClass("content-onButton").addClass("content-offButton")
+		})
+	}
+</script>
+<%-- 去掉,没用到。Lin
+<script type="text/javascript">
+	var data1 = '${nbList}';
+</script>
+--%>
+
+<script type="text/javascript">
+// 操作 #ryOption(在 #app 内),必须等 Vue mount 完成后再跑,否则操作的是会被替换掉的旧 DOM by xu 20260429
+document.addEventListener('ssAppMounted', function() {
+	//把备选框中的所有子DIV,重新显示出来 Ben(20260428)
+	const parentDiv = document.getElementById('ryOption');
+
+	if (parentDiv) {
+		// 获取所有直接子DIV元素
+		const directChildDivs = Array.from(parentDiv.children).filter(child => child.tagName === 'DIV');
+
+		// 或者使用querySelector选择器
+		// const directChildDivs = parentDiv.querySelectorAll(':scope > div');
+
+		directChildDivs.forEach(div => {
+			div.style.display = '';
+		});
+	}
+});
+</script>
+
+</body>
+</html>

+ 6 - 6
page/ws_ff.jsp

@@ -338,12 +338,12 @@ ss.dom.formElemConfig.under={val:'0',type:window.ss.dom.TYPE.ONOFFBTN};
 <script type="text/javascript" charset="utf-8" src="/ss/js/wdDrag.js"></script>
 <script>var isWriteOut=true;var wd=wd||{};wd.drag=wd.drag||{};</script>
 <%-- setDrag 必须在 Vue mount 完成后跑,否则会被 mount 替换 DOM 抹掉拖拽事件 by xu 20260429 --%>
-<script>document.addEventListener('SSAppMounted',function(){setDrag("nb",true,["editOrder"],{})});</script>
+<script>document.addEventListener('ssAppMounted',function(){setDrag("nb",true,["editOrder"],{})});</script>
 
 <script type="text/javascript" charset="utf-8" src="/ss/js/wdDrag.js"></script>
 <script>var isWriteOut=true;var wd=wd||{};wd.drag=wd.drag||{};</script>
-<%-- 同上,延后到 SSAppMounted 后再绑定 by xu 20260429 --%>
-<script>document.addEventListener('SSAppMounted',function(){setDrag("ry",true,["editOrder"],{})});</script>
+<%-- 同上,延后到 ssAppMounted 后再绑定 by xu 20260429 --%>
+<script>document.addEventListener('ssAppMounted',function(){setDrag("ry",true,["editOrder"],{})});</script>
 
 <script type="text/javascript" src="/ss/treeTable/jquery.treetable.js"></script>
 <script type="text/javascript" src="/ss/js/title.js"></script>
@@ -359,9 +359,9 @@ ss.dom.formElemConfig.under={val:'0',type:window.ss.dom.TYPE.ONOFFBTN};
 		$("#ryOption>div").hide();
 		$("#ryOption>div[val='"+val+"']").show();
 	}
-	// 这两段都依赖 #app 内 DOM,必须等 Vue mount 完成(SSAppMounted)后再绑定,
+	// 这两段都依赖 #app 内 DOM,必须等 Vue mount 完成(ssAppMounted)后再绑定,
 	// 否则 mount 替换 DOM 时会把这里挂的 jQuery 事件全部抹掉 by xu 20260429
-	document.addEventListener('SSAppMounted', function() {
+	document.addEventListener('ssAppMounted', function() {
 		(function() {
 			handleDispense();
 			$('input[name="choice"][type="button"]').click(handleDispense);
@@ -586,7 +586,7 @@ ss.dom.formElemConfig.under={val:'0',type:window.ss.dom.TYPE.ONOFFBTN};
 
 <script type="text/javascript">
 // 操作 #ryOption(在 #app 内),必须等 Vue mount 完成后再跑,否则操作的是会被替换掉的旧 DOM by xu 20260429
-document.addEventListener('SSAppMounted', function() {
+document.addEventListener('ssAppMounted', function() {
 	//把备选框中的所有子DIV,重新显示出来 Ben(20260428)
 	const parentDiv = document.getElementById('ryOption');