pjzb_inp.ss.jsp 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. <div class='content-div' ssFith="true">
  2. <input type="hidden" name="pjzbid" value="${pjzbid}"/>
  3. <input type="hidden" name="pjtxid" value="${pjtxid}">
  4. <table class="form">
  5. <tr>
  6. <th width="143px">名称</th>
  7. <td><input type='text' name='mc' value="${pjzb.mc}" /></td>
  8. <%-- <th width="88px">序号</th>--%>
  9. <%-- <td><in@put type='text' name='xh' value="${pjzb.xh}" /></td>--%>
  10. </tr>
  11. <tr>
  12. <th>上级指标</th>
  13. <td colspan="3">
  14. <input name="sjpjzbid" value="${pjzb.sjpjzbid}" ssFilter='{pjzbid:${pjzb.pjzbid}}'/>
  15. </td>
  16. </tr>
  17. <tr>
  18. <th>类型</th>
  19. <td><input name="pjzblxm" value="${pjzb.pjzblxm}"/></td>
  20. </tr>
  21. <tr id="zfTr" style="display:none">
  22. <th>总分</th>
  23. <td><input type="text" name="zf" value="${pjzb.zf}"/></td>
  24. </tr>
  25. <%-- <tr>--%>
  26. <%-- <th>字典</th>--%>
  27. <%-- <td colspan="3">--%>
  28. <%-- <in@put name="dictionary" type="hidden" value="${pjzb.dictionary}" />--%>
  29. <%-- <in@put name="dictionary" style="width:175px;" type="text" />--%>
  30. <%-- <wd:write type="objectPicker" name="dictionary" codebook="dictionary" />--%>
  31. <%-- </td>--%>
  32. <%-- </tr>--%>
  33. <tr>
  34. <th>描述</th>
  35. <td><input name="ms" width="100%" height="115px"/></td>
  36. </tr>
  37. </table>
  38. <!--指标是评价指标选项-->
  39. <table id="zbs" class="form" style="display: none;margin:12px 0px 15px;">
  40. <tr style="display: none;">
  41. <td></td>
  42. <td><input id="pjzbMs" type="text" name="pjzbMs" onchange="combXxms();"/></td>
  43. <td class="check"><input id="zbsPjzbxfs" onkeyup="keyup(this)" type="text" name="zbsPjzbxfs" value="" onchange="combXxms();"/></td>
  44. <td><input type="button" class="content-button" value="删除"/></td>
  45. </tr>
  46. <tr>
  47. <th colspan="4">
  48. <input name="xxms" type="hidden"/> <%-- 不能用 value='${pjzb.xxms}',导致 "[{"name":"A","desc":"强","score":"5"},]" 变为 "[{"。Lin --%>
  49. <input type="button" value="增加" class="content-button addPfX"/>
  50. </th>
  51. </tr>
  52. <tr>
  53. <th>选项</th>
  54. <th>描述</th>
  55. <th>分数</th>
  56. <th>操作</th>
  57. </tr>
  58. </table>
  59. </div>
  60. <script type="text/javascript">
  61. var beginNum = 65;
  62. /// 增加,变动时,使用 <in@put value='$@{pjzb.xxms}',导致 "[{"name":"A","desc":"强","score":"5"},]" 变为 "[{"。Lin
  63. window.onload = function() {
  64. combXxms();
  65. }
  66. ///
  67. <equal.ss val="${empty pjzbid}" val2="false">
  68. $(function() {
  69. var jsonArray = ${pjzb.xxms};
  70. if (!$.isEmptyObject(jsonArray)) {
  71. $("#zbs").show();
  72. $("#zf").hide();
  73. var htmls = '';
  74. var index = 0;
  75. //var jsonArray=eval('('+obj+')');
  76. for(var i=0;i<jsonArray.length;i++){
  77. var item=jsonArray[i];
  78. beginNum = beginNum + 1;
  79. htmls += '<tr>'
  80. htmls += '<td><input id="zbsPjzbx" type="hidden" name="zbsPjzbx' + i + '" value="' + item.name + '" style="width: calc(100% - 12px);">'+item.name+'</td>'
  81. htmls += '<td><input id="pjzbMs" type="text" name="pjzbMs'+i+'" value="'+item.desc+'" onchange="combXxms();"/></td>' // 增加 onchange="combXxms();"。Lin
  82. htmls += '<td class="check"><input id="zbsPjzbxfs" onkeyup="keyup(this)" type="text" value="' + item.score+ '" name="zbsPjzbxfs' + i + '" value="" style="width: calc(100% - 12px);" onchange="combXxms();"></td>' // 增加 onchange="combXxms();"。Lin
  83. htmls += '<td><input type="button" class="content-button scButton" value="删除"></td>'
  84. htmls += '</tr>'
  85. }
  86. $("#zbs").append(htmls);
  87. }
  88. $(".scButton").click(function() {
  89. var parent = $(this).parents("table:first");
  90. $(this).parent().parent().remove();
  91. sort(parent);
  92. combXxms(); // 增加。Lin
  93. });
  94. var eid = ${pjzb.pjzblxm};
  95. if (eid == '21' || eid == '51') {
  96. $("#zbs").hide();
  97. $("#zf").show();
  98. }
  99. });
  100. </equal.ss>
  101. function keyup(obj) {
  102. var value = $(obj).val();
  103. if (/[^\d]/.test(value)) {
  104. value = value.replace(/[^\d]/g, '')
  105. $(obj).val(value);
  106. return;
  107. }
  108. }
  109. function check() {
  110. var result = [];
  111. console.info($(".check"));
  112. $(".check").each(function(ind, ele) {
  113. var code = $(ele).find("input").get(0).val();
  114. console.info(code);
  115. result.push(code);
  116. });
  117. console.info(result);
  118. }
  119. $(function() {
  120. $("input[name='pjzblxm']").change(function() {
  121. var selectedVal = $(this).val();
  122. if (selectedVal == 1 || selectedVal == 11) {
  123. $("#zbs").show();
  124. $("#zfTr").hide();
  125. } else if (selectedVal == 21 || selectedVal == 51) {
  126. $("#zbs").hide();
  127. $("#zfTr").show();
  128. } else {
  129. $("#zbs").hide();
  130. $("#zfTr").hide();
  131. }
  132. });
  133. $(".addPfX").click(function() {
  134. var newTr;
  135. var selectedVal = $("input[name='pjzblxm']").val();
  136. if (selectedVal == 1 || selectedVal == 11) {
  137. newTr = $("#zbs tr:first").clone(true);
  138. $("#zbs").append(newTr);
  139. //重新排序
  140. sort($("#zbs"));
  141. }
  142. if (newTr) {
  143. newTr.show();
  144. //给节点的名称加个编号作为后缀
  145. newTr.find(":button").click(function() {
  146. var parent = $(this).parents("table:first");
  147. $(this).parent().parent().remove();
  148. sort(parent);
  149. combXxms(); // 增加。Lin
  150. });
  151. }
  152. });
  153. function sort($table) {
  154. beginNum = 65;
  155. $table.find("tr:gt(2)").each(function(index) {
  156. if ($.trim($(this).parents("table:first").attr("id")) == 'zbs') {
  157. var xx = String.fromCharCode(beginNum);
  158. var input = '<input id="zbsPjzbx" type="hidden" name="zbsPjzbx' + (index + 1) + '" value="'+xx+'"/>';
  159. $(this).find("td:first").empty().append(input).append(xx);
  160. $(this).find(":input[name*='pjzbMs']:first").attr("name", "pjzbMs" + (index + 1)).css("width", "calc(100% - 12px)");
  161. $(this).find(":input[name*='zbsPjzbxfs']:first").attr("name", "zbsPjzbxfs" + (index + 1)).css("width", "calc(100% - 12px)");
  162. beginNum = beginNum + 1;
  163. }
  164. });
  165. }
  166. $("#pjzb_zj").submit(function() {
  167. var selectedVal = $("input[name='pjzblxm']").val();
  168. if (selectedVal == 1 || selectedVal == 11) {
  169. $("#zbs tr:first").remove();
  170. } else {
  171. $("#zbs").remove();
  172. }
  173. return true;
  174. });
  175. });
  176. // 增加,在页面里合并选项到 选项描述 字段里。Lin
  177. function combXxms() {
  178. let xxmsArr = [];
  179. const pjzbxsmInput = document.getElementsByName('pjzblxm')[0];
  180. let pjzbxsmValue = pjzbxsmInput.value;
  181. if(pjzbxsmValue==="11"||pjzbxsmValue==="1") {
  182. // 获取所有input元素
  183. const inputs = document.getElementsByTagName('input');
  184. // 创建正则表达式匹配前缀和数字
  185. const regex = /^zbsPjzbxfs(\d+)/;
  186. // 存储提取的数字
  187. const numbers = [];
  188. // 遍历所有input元素
  189. for (let i = 0; i < inputs.length; i++) {
  190. const input = inputs[i];
  191. const name = input.name;
  192. // 检查name是否符合模式
  193. const match = name.match(regex);
  194. if (match) {
  195. // 提取数字部分并转换为数值
  196. const number = parseInt(match[1], 10);
  197. numbers.push(number);
  198. }
  199. }
  200. // console.log('提取的数字数组:', numbers);
  201. for (let i = 0; i < numbers.length; i++) {
  202. let index = numbers[i];
  203. let opt = document.getElementsByName('zbsPjzbx' + index)[0].value;
  204. let desc = document.getElementsByName('pjzbMs' + index)[0].value;
  205. let score = document.getElementsByName('zbsPjzbxfs' + index)[0].value;
  206. let o = {
  207. "name": opt,
  208. "desc": desc,
  209. "score": score
  210. };
  211. xxmsArr.push(o);
  212. }
  213. }
  214. // 转换为JSON字符串
  215. const jsonStr = JSON.stringify(xxmsArr);
  216. // 设置到隐藏字段
  217. const xxmsInput = document.getElementsByName('xxms')[0];
  218. if (xxmsInput) {
  219. xxmsInput.value = jsonStr;
  220. console.log('已设置隐藏字段值:', xxmsInput.value);
  221. }
  222. }
  223. </script>