gwSjxc_edit.ss.jsp 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. <html>
  2. <head>
  3. <style>
  4. .dragList{
  5. float: right;
  6. }
  7. .objectPickerNameDiv-business {
  8. margin-left: 7px;
  9. margin-bottom: 6px;
  10. }
  11. </style>
  12. </head>
  13. <script>
  14. $(function(){
  15. var dataList='${dataList}';
  16. if(dataList){
  17. dataList=eval("("+dataList+")");
  18. //dataList=[{business:"ry",name:"ry",desc:"人员",optionList:[{name:"xm",desc:"姓名",selected:"1"},{name:"csrq",desc:"出生日期"}]}];
  19. //dataList.push({business:"ry",name:"bm",desc:"部门",optionList:[{name:"mc",desc:"名称"},{name:"csrq",desc:"出生日期"}]});
  20. }else{
  21. return;
  22. }
  23. var selectedObj;
  24. //记录当前选项
  25. function renewedDataList(){
  26. if(selectedObj){
  27. var items=DM.getDrager().selectedList.getAllItems()
  28. var selectedItems={};
  29. for(var i=0;i<items.length;i++){
  30. if(selectedObj==items[i].parentid){
  31. selectedItems[items[i].id]=1;
  32. }
  33. }
  34. for(var i=0;i<dataList.length;i++){
  35. var data=dataList[i];
  36. if(data.name!=selectedObj)continue;
  37. for(var j=0;j<data.optionList.length;j++){
  38. var optionData=data.optionList[j];
  39. if(selectedItems[selectedObj+"-"+optionData.name]){
  40. optionData.selected="1";
  41. }else{
  42. optionData.selected="0";
  43. }
  44. }
  45. }
  46. }
  47. console.log(dataList);
  48. selectedObj=null;
  49. DM.getDrager().optionList.empty();
  50. $("[name=dataList]").val(JSON.stringify(dataList));
  51. return dataList;
  52. }
  53. function appendSelectedList(html){
  54. var $dom=$(html);
  55. DM.getDrager().selectedList.append($dom[0]);
  56. }
  57. function appendOptionList(html){
  58. var $dom=$(html);
  59. DM.getDrager().optionList.append($dom[0]);
  60. }
  61. // 更新当前页面的选择的数据
  62. function updatedataList(){
  63. var data = eval("("+$("[name=dataList]").val()+")");
  64. var yx = [];
  65. var idd = [];
  66. var items=DM.getDrager().selectedList.getAllItems();
  67. for(var i=0;i<items.length;i++){
  68. if (items[i].parentid != null) {
  69. yx.push(items[i].id);
  70. } else {
  71. idd.push(items[i].id);
  72. }
  73. }
  74. //console.log(yx);
  75. for (var i = 0; i < data.length; i++) {
  76. var name = data[i].name;
  77. var options = data[i].optionList;
  78. if (idd.indexOf(name) == -1) continue;
  79. for (var j = 0; j < options.length; j++) {
  80. var id = name+'-'+options[j].name;
  81. if (yx.indexOf(id) > -1) {
  82. options[j].selected='1';
  83. console.log("好");
  84. } else {
  85. options[j].selected='0';
  86. }
  87. }
  88. }
  89. dataList = data;
  90. console.log(dataList);
  91. $("[name=dataList]").val(JSON.stringify(dataList));
  92. }
  93. //第一步,选业务
  94. function businessChange(){
  95. // 存储已经拖好的数据
  96. updatedataList();
  97. var v=this.getValue();
  98. showObjectList(v);
  99. }
  100. //按业务过滤列出对象
  101. function showObjectList(business){
  102. renewedDataList();
  103. DM.getDrager().selectedList.empty();
  104. for(var i=0;i<dataList.length;i++){
  105. var data=dataList[i];
  106. if(business&&data.business!=business)
  107. continue;
  108. appendSelectedList('<div dxm="'+data.name+'" ssObjId="'+data.name+'" class="item dragList list-background list" style="min-height: 41px;line-height: 41px;width: calc(100% - 4px);box-sizing: border-box;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;"><span>'+data.desc+'</span></div>');
  109. for(var j=0;j<data.optionList.length;j++){
  110. var optionData=data.optionList[j];
  111. if("1"!=optionData.selected)
  112. continue;
  113. appendSelectedList('<div ssPobjId="'+data.name+'" ssObjId="'+data.name+'-'+optionData.name+'" class="item dragList list-background list" style="min-height: 41px;line-height: 41px;width: calc(100% - 4px);box-sizing: border-box;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;"><span>'+optionData.desc+'</span></div>');
  114. }
  115. }
  116. DM.getDrager().selectedList.reload();
  117. }
  118. //第二步,选对象
  119. function itemClick(){
  120. var dxm=this.element.getAttribute("dxm");
  121. if(this.parentid||!dxm)
  122. return;
  123. renewedDataList();
  124. selectedObj=dxm;
  125. for(var i=0;i<dataList.length;i++){
  126. var data=dataList[i];
  127. if(data.name!=selectedObj)
  128. continue;
  129. for(var j=0;j<data.optionList.length;j++){
  130. var optionData=data.optionList[j];
  131. if("1"==optionData.selected)
  132. continue;
  133. appendOptionList('<div ssObjId="'+data.name+'-'+optionData.name+'" class="item dragList list-background list" style="min-height: 41px;line-height: 41px;width:100%;box-sizing: border-box;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;"><span>'+optionData.desc+'</span></div>');
  134. }
  135. }
  136. DM.getDrager().optionList.reload();
  137. }
  138. $("#save").on("click",function(){
  139. // renewedDataList();
  140. updatedataList();
  141. $("form").submit();
  142. })
  143. DM.getDrager().itemClick=itemClick;
  144. wd.edit.objectPicker.getInstance("business").onchange=businessChange;
  145. showObjectList();
  146. })
  147. </script>
  148. <body>
  149. <form action="<serv.ss name='gwSjxc_save' dest='info' parm='{gwid:"${gwid}"}'/>" method="post">
  150. <input name="dataList" type="hidden" value=""/>
  151. <div class="content-div" ssFith="true">
  152. <input name="business" type="hidden" width="200px" placeholder="业务"/>
  153. <objp.ss name="business" cb="biz" />
  154. <div id="container" class="dragList-div">
  155. <div class="box">
  156. <p class="label">对象</p>
  157. <div class="list-body " style="position: relative;overflow-x: hidden;width: 100%;height: 200px;">
  158. <div id="sjxSelected" class="scrollbar" style="height:100%">
  159. </div>
  160. </div>
  161. </div>
  162. <div class="box">
  163. <p class="label">属性</p>
  164. <div class="list-body " style="position: relative;overflow-x: hidden;width: 100%;height: 200px;">
  165. <div id="sjxOption" class="scrollbar" style="height:100%">
  166. </div>
  167. </div>
  168. </div>
  169. </div>
  170. <drag.ss name="sjx" grp="true" func="editGroup,editOrder"/>
  171. <div class='bottom-div'>
  172. <div class="bottom-down-div border-top">
  173. <%-- 再改为 valList=。Lin
  174. <equal.ss val1='${dataType eq "change" || dataType eq "update"}' val2="true"> --%>
  175. <equal.ss val="${dataType}" valList="change,update">
  176. <input type="button" value="保存" class="bottom-button" id="save">
  177. </equal.ss>
  178. </div>
  179. </div>
  180. </div>
  181. </form>
  182. </body>
  183. </html>