34a7376993852216e9d8e48d9fcdbb831855acf1.svn-base 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <?xml-stylesheet type="text/css" href="../../css/body.css" ?>
  3. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  4. <xhtml:head>
  5. <xhtml:title>
  6. <![CDATA[公用界面管理 >> 权限设置管理 >> 菜单/界面录入]]>
  7. </xhtml:title>
  8. <model id="model1" autocdata="false">
  9. <instance id="instance1">
  10. <root xmlns="">
  11. <initData>
  12. </initData>
  13. <codeData>
  14. </codeData>
  15. <formData>
  16. <searchInfo>
  17. <MNSCR_ID>*</MNSCR_ID>
  18. <P_MNSCR_ID/>
  19. </searchInfo>
  20. <searchInfo2>
  21. <SCR_ID/>
  22. </searchInfo2>
  23. </formData>
  24. <gridData>
  25. <viewItem>A</viewItem>
  26. </gridData>
  27. </root>
  28. </instance>
  29. <script type="javascript" ev:event="xforms-ready">
  30. <![CDATA[
  31. if (window.parent == null) Init();
  32. ]]>
  33. </script>
  34. </model>
  35. <script type="javascript" src="../../js/boaCommon.js"/>
  36. <script type="javascript" src="../../js/boaMsg.js"/>
  37. <script type="javascript" src="../../js/mesCommon.js">
  38. <![CDATA[
  39. var submitID = "UIZ020020-service";
  40. var isValid = false;
  41. function Init(node) {
  42. InitParams(node);
  43. isValid = model.getValue("/root/initData/rcvInfo/ROOT_AMN_YN") == "Y";
  44. if (isValid == false) return;
  45. exec("/root/formData/searchInfo", "", "", "/root/codeData/ListResult_0_VO");
  46. model.duplicate("/root/formData/searchInfo", "/root/initData/rcvInfo/REG_ID"); // 保存时使用
  47. model.duplicate("/root/formData/searchInfo2", "/root/initData/rcvInfo/REG_ID");
  48. pageInit();
  49. }
  50. function pageInit(refresh) {
  51. model.removenode("/root/reqData");
  52. model.removenode("/root/resData");
  53. model.refresh();
  54. if (typeof refresh == "undefined") {
  55. var datagrid = datagrid1;
  56. datagrid.rebuild();
  57. var rows = datagrid.rows - 1;
  58. var colRef = datagrid.colRef("MNSCR_ID");
  59. datagrid.isReadOnly(0, colRef, rows, colRef) = true;
  60. commGridLevels(datagrid);
  61. colStyle(datagrid, "P_MNSCR_NM,MNSCR_NM,MNSCR_URL,MNSCR_DSP_SEQ,MNSCR_IMG_YN,MNSCR_IMG_URL,UPCHECK_YN");
  62. }
  63. datagrid = datagrid2;
  64. datagrid.rebuild();
  65. datagrid.refresh();
  66. colStyle(datagrid2, "FN_IMG_URL,JS_FUNC_NM,DSP_SEQ,CHK");
  67. output201.refresh();
  68. }
  69. function find() {
  70. if (isValid == false) return;
  71. exec("/root/formData/searchInfo", "", "find", "/root/gridData/ListResult_0_VO",
  72. "/root/codeData/ListResult_1_VO");
  73. model.setValue("/root/formData/searchInfo2/SCR_ID", "");
  74. model.removenode("/root/gridData/ListResult_2_VO");
  75. radio1.dispatch("xforms-value-changed");
  76. }
  77. function save() {
  78. if (isValid == false) return;
  79. exec("/root/formData/searchInfo", datagrid1, "save", "/root/gridData/ListResult_0_VO",
  80. "/root/codeData/ListResult_1_VO", "/root/gridData/ListResult_2_VO");
  81. radio1.dispatch("xforms-value-changed");
  82. }
  83. function create() {}
  84. function remove() {}
  85. function commGridLevels() {
  86. var datagrid = datagrid1;
  87. var cnt = datagrid.rows;
  88. var colRef = datagrid.colRef("LEVEL");
  89. for(var i = datagrid.fixedRows; i < cnt; i++)
  90. datagrid.outlinelevel(i) = Number(datagrid.valueMatrix(i, colRef));
  91. datagrid.outlinebar = 4;
  92. datagrid.treecolor = "red";
  93. }
  94. var onrowchanged = false;
  95. ]]>
  96. </script>
  97. </xhtml:head>
  98. <xhtml:body overflow="hidden" pagewidth="980" pageheight="620" style="font-family:宋体; ">
  99. <group id="group1" overflow="hidden" style="left:0px; top:0px; width:980px; height:30px; ">
  100. <line id="line2" style="x1:0px; y1:29px; x2:980px; y2:29px; "/>
  101. <caption id="caption101" class="cell" style="left:0px; top:5px; width:90px; height:20px; vertical-align:middle; ">菜单</caption>
  102. <input id="input101" ref="/root/codeData/ListResult_0_VO/ListResult_0_Row[MNSCR_ID=/root/formData/searchInfo/MNSCR_ID]/MNSCR_NM" editable="false" inputtype="button" style="left:92px; top:5px; width:200px; height:20px; ">
  103. <script type="javascript" ev:event="onclick">
  104. <![CDATA[
  105. treeview1.visible = (treeview1.visible == false);
  106. ]]>
  107. </script>
  108. </input>
  109. <select1 id="radio1" ref="/root/gridData/viewItem" appearance="full" cols="3" style="left:300px; top:5px; width:155px; height:20px; border-style:none; ">
  110. <choices>
  111. <item>
  112. <label>所有</label>
  113. <value>A</value>
  114. </item>
  115. <item>
  116. <label>非禁项</label>
  117. <value>N</value>
  118. </item>
  119. <item>
  120. <label>禁用项</label>
  121. <value>Y</value>
  122. </item>
  123. </choices>
  124. <script type="javascript" ev:event="xforms-value-changed">
  125. <![CDATA[
  126. var datagrid = datagrid1;
  127. switch (model.getValue("/root/gridData/viewItem")) {
  128. case "N":
  129. datagrid.nodeset = "/root/gridData/ListResult_0_VO/ListResult_0_Row[UPCHECK_YN != 'Y']";
  130. break;
  131. case "Y":
  132. datagrid.nodeset = "/root/gridData/ListResult_0_VO/ListResult_0_Row[UPCHECK_YN = 'Y']";
  133. break;
  134. default : datagrid.nodeset = "/root/gridData/ListResult_0_VO/ListResult_0_Row";
  135. }
  136. pageInit();
  137. ]]>
  138. </script>
  139. </select1>
  140. </group>
  141. <datagrid id="datagrid1" nodeset="/root/gridData/ListResult_0_VO/ListResult_0_Row" caption="菜单/画面^上级菜单^菜单/画面名称^菜单区分^界面URL路径^顺序^启用^使用图片^图片URL^修改人^修改时间^P_MNSCR_ID^LEVEL" colsep="^" colwidth="120, 150, 280, 35, 250, 35, 35, 35, 250, 70, 100, 80, 100" extendlastcol="false" mergecellsfixedrows="bycolrec" rowheight="42" rowsep="|" style="left:0px; top:34px; width:980px; height:265px; border-style:solid; border-right-style:sunken; ">
  142. <col ref="MNSCR_ID" style="text-align:left; "/>
  143. <col editable="false" key="false" ref="P_MNSCR_NM" type="inputbutton" visibility="hidden"/>
  144. <col ref="MNSCR_NM" type="input" style="text-align:left; "/>
  145. <col ref="MNSCR_TP"/>
  146. <col ref="MNSCR_URL" type="input" style="text-align:left; "/>
  147. <col ref="MNSCR_DSP_SEQ" type="input"/>
  148. <col checkvalue="Y,N" ref="UPCHECK_YN" type="checkbox"/>
  149. <col checkvalue="Y,N" ref="MNSCR_IMG_YN" type="checkbox"/>
  150. <col ref="MNSCR_IMG_URL" type="input"/>
  151. <col key="false" ref="MOD_ID" style="text-align:left; "/>
  152. <col key="false" ref="MOD_DATE" format="yyyy-mm-dd hh:mm:ss" mask="exclude"/>
  153. <col ref="P_MNSCR_ID" visibility="hidden"/>
  154. <col key="false" ref="LEVEL" visibility="hidden"/>
  155. <script type="javascript" ev:event="oncolchanged">
  156. <![CDATA[
  157. treeview2.visible = false;
  158. ]]>
  159. </script>
  160. <script type="javascript" ev:event="onclick">
  161. <![CDATA[
  162. var datagrid = datagrid1;
  163. if (datagrid.isCell(event.target)) datagrid.editCell();
  164. if (!onrowchanged) return;
  165. showProgressBar();
  166. var row = datagrid.row;
  167. if (datagrid.valueMatrix(row, datagrid.colRef("MNSCR_TP")) == "S") {
  168. model.setValue("/root/formData/searchInfo2/SCR_ID", datagrid.valueMatrix(row, datagrid.colRef("MNSCR_ID")));
  169. exec("/root/formData/searchInfo2", "", "onclick", "/root/gridData/ListResult_2_VO");
  170. } else {
  171. model.setValue("/root/formData/searchInfo2/SCR_ID", "");
  172. model.removenode("/root/gridData/ListResult_2_VO");
  173. }
  174. pageInit(false);
  175. removeProgressBar();
  176. onrowchanged = false;
  177. ]]>
  178. </script>
  179. <script type="javascript" ev:event="onrowchanged">
  180. <![CDATA[
  181. treeview2.visible = false;
  182. var datagrid = datagrid1;
  183. var row = datagrid.row;
  184. model.setValue("/root/formData/searchInfo/P_MNSCR_ID", datagrid.valueMatrix(row, datagrid.colRef("P_MNSCR_ID")));
  185. onrowchanged = true;
  186. ]]>
  187. </script>
  188. <script type="javascript" ev:event="onbuttonclick">
  189. <![CDATA[
  190. var datagrid = datagrid1;
  191. if (datagrid.col != datagrid.colRef("P_MNSCR_NM")) return;
  192. treeview2.visible = (treeview2.visible == false);
  193. if (treeview2.visible == false) return;
  194. treeview2.refresh();
  195. var btn = event.pTarget;
  196. //var children = btn.parent.parent.children; // btn -> cell -> datarigd -> children
  197. var children = datagrid.children;
  198. var tvTop = Number(btn.attribute("top")) + Number(btn.attribute("height")) +
  199. Number(datagrid.attribute("top").substr(0, datagrid.attribute("top").length - 2));
  200. treeview2.attribute("top") = tvTop + "px";
  201. for(i=0; i< children.length; i++) {
  202. var control = children.item(i);
  203. if (control.elementName == "xforms:gridinput") {
  204. var tvLeft = Number(control.attribute("left"));
  205. treeview2.attribute("left") = tvLeft + "px";
  206. break;
  207. }
  208. }
  209. ]]>
  210. </script>
  211. </datagrid>
  212. <treeview id="treeview1" ref="/root/formData/searchInfo/MNSCR_ID" visibility="hidden" expanddepth="1" image="../../images/blt_1.gif" itemsettype="depth" style="left:92px; top:25px; width:200px; height:150px; ">
  213. <itemset nodeset="/root/codeData/ListResult_0_VO/ListResult_0_Row">
  214. <label ref="MNSCR_NM"/>
  215. <value ref="MNSCR_ID"/>
  216. <depth ref="LEVEL"/>
  217. </itemset>
  218. <script type="javascript" ev:event="xforms-select">
  219. <![CDATA[
  220. event.pTarget.visible = false;
  221. ]]>
  222. </script>
  223. <script type="javascript" ev:event="xforms-value-changed">
  224. <![CDATA[
  225. find();
  226. ]]>
  227. </script>
  228. </treeview>
  229. <treeview id="treeview2" ref="/root/formData/searchInfo/P_MNSCR_ID" visibility="hidden" expanddepth="-1" image="../../images/blt_1.gif" itemsettype="depth" style="left:270px; top:120px; width:200px; height:150px; ">
  230. <itemset nodeset="/root/codeData/ListResult_1_VO/ListResult_1_Row">
  231. <label ref="MNSCR_NM"/>
  232. <value ref="MNSCR_ID"/>
  233. <depth ref="LEVEL"/>
  234. </itemset>
  235. <script type="javascript" ev:event="xforms-select">
  236. <![CDATA[
  237. event.pTarget.visible = false;
  238. ]]>
  239. </script>
  240. <script type="javascript" ev:event="xforms-value-changed">
  241. <![CDATA[
  242. event.pTarget.visible = false;
  243. var datagrid = datagrid1;
  244. var nodeset = datagrid.nodeset;
  245. var curFocusedIdx = datagrid.row - datagrid.fixedRows + 1;
  246. model.setValue(nodeset + "["+curFocusedIdx+"]/P_MNSCR_ID", event.pTarget.value);
  247. datagrid.valueMatrix(datagrid.row, datagrid.colRef("P_MNSCR_NM")) = event.pTarget.label;
  248. datagrid.addStatus(datagrid.row, "update");
  249. ]]>
  250. </script>
  251. </treeview>
  252. <group id="group2" style="left:0px; top:304px; width:980px; height:30px; ">
  253. <line id="line3" style="x1:0px; y1:0px; x2:980px; y2:0px; "/>
  254. <line id="line4" style="x1:0px; y1:29px; x2:980px; y2:29px; "/>
  255. <caption id="caption201" class="cell" style="left:0px; top:5px; width:90px; height:20px; vertical-align:middle; ">所选界面</caption>
  256. <output id="output201" ref="/root/formData/searchInfo2/SCR_ID" style="left:92px; top:5px; width:110px; height:20px; border-color:#c0c0c0; border-style:solid; "/>
  257. <button id="button202" class="sw" style="left:212px; top:5px; width:100px; height:20px; ">
  258. <caption>保存按键</caption>
  259. <script type="javascript" ev:event="onclick">
  260. <![CDATA[
  261. if (isValid == false) return;
  262. var datagrid = datagrid2;
  263. var rowSep = (datagrid.attribute("rowsep")=='')?'|':datagrid.attribute('rowsep');
  264. var colSep = (datagrid.attribute("colsep")=='')?'^':datagrid.attribute('colsep');
  265. var data = datagrid.getUpdateData();
  266. var up_data = data.split(rowSep);
  267. var rows = up_data.length - 1;
  268. var colRef = datagrid.colRef("MOD_ID");
  269. var colChk = datagrid.colRef("CHK");
  270. for (var i=1; i<rows; i++) {
  271. var vRow = up_data[i].split(colSep);
  272. var Idx = Number(vRow[1]);
  273. /* FC_REF为空串时,记录不存在 */
  274. var ref = datagrid.valueMatrix(Idx, colRef);
  275. var chk = datagrid.valueMatrix(Idx, colChk);
  276. // 没有被选定
  277. if (ref == "") { // 插入
  278. datagrid.rowStatus(Idx) = 0;
  279. if (chk == "Y") datagrid.addStatus(Idx, "insert");
  280. } else { // 删除、更新
  281. if (chk == "N") datagrid.addStatus(Idx, "delete");
  282. }
  283. }
  284. exec("/root/formData/searchInfo2", datagrid, "save2", "/root/gridData/ListResult_2_VO");
  285. datagrid.rebuild();
  286. //datagrid.refresh();
  287. ]]>
  288. </script>
  289. </button>
  290. </group>
  291. <datagrid id="datagrid2" nodeset="/root/gridData/ListResult_2_VO/ListResult_2_Row" caption="按键^按键^按键^按键^启用^修改人^修改时间|代码^说明^脚本^顺序^启用^修改人^修改时间" colsep="^" colwidth="50, 100, 350, 35, 35, 80, 120" extendlastcol="false" mergecellsfixedrows="bycolrec" rowheader="select" rowheight="21" rowsep="|" style="left:0px; top:338px; width:980px; height:282px; border-style:solid; border-right-style:sunken; ">
  292. <col ref="FC_ID"/>
  293. <col ref="FC_NM" style="text-align:left; "/>
  294. <col ref="JS_FUNC_NM" type="input" style="text-align:left; "/>
  295. <col ref="DSP_SEQ" type="input"/>
  296. <col checkvalue="Y,N" key="false" ref="CHK" type="checkbox"/>
  297. <col key="false" ref="MOD_ID" style="text-align:left; "/>
  298. <col key="false" ref="MOD_DATE" format="yyyy-mm-dd hh:mm:ss" mask="exclude"/>
  299. <script type="javascript" ev:event="onentercell">
  300. <![CDATA[
  301. event.pTarget.editCell();
  302. ]]>
  303. </script>
  304. </datagrid>
  305. <script type="javascript" ev:event="onclick">
  306. <![CDATA[
  307. var target = event.target;
  308. var parent = event.pTarget.parent;
  309. var parent2 = null;
  310. if (parent != null) parent2 = parent.parent;
  311. if (target != "treeview1" && target != "input101"
  312. && parent != null && parent.attribute("id") != "treeview1" && parent.attribute("id") != "input101"
  313. && parent2 != null && parent2.attribute("id") != "treeview1" && parent2.attribute("id") != "input101")
  314. treeview1.visible = false;
  315. if (parent !== null && parent.attribute("id") != "treeview2")
  316. treeview2.visible = false;
  317. ]]>
  318. </script>
  319. </xhtml:body>
  320. </xhtml:html>