lc.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506
  1. //alert(document.documentMode)
  2. var needReflash=true;
  3. //设计加载url
  4. function workFlowDesigner(THIS) {
  5. head=null;
  6. // var aa = document.getElementById("selectWorkFlow");
  7. // iframe
  8. var page = document.getElementById("workFlowDesigner");
  9. //应用名
  10. /* 再去掉,去掉 thisAppName -- 本来也没用到,IDEA -- Unused local variable appName 。Lin
  11. var appName = document.getElementById("thisAppName").value;
  12. */
  13. //// 选中为空
  14. // if (aa.selectedIndex == 0) {
  15. // page.src = "";
  16. // return;
  17. // }
  18. //
  19. // selectName = aa.value;
  20. //
  21. // var selectOption=aa.options[aa.selectedIndex];
  22. // var version=selectOption.getAttribute("version");
  23. //
  24. needReflash=true;
  25. // var designURL = document.getElementById("workFlowDesignerURL").value
  26. // + '&fileName=' + selectName + '&thisAppName=' + getURLParam("thisAppName")+"&version="+version;
  27. if(!THIS.value)return
  28. /* 再改,去掉 thisAppName。Lin
  29. var designURL = document.getElementById("workFlowDesignerURL").value
  30. + '&thisAppName=' + getURLParam("thisAppName")+THIS.value
  31. */ var designURL = document.getElementById("workFlowDesignerURL").value + THIS.value
  32. page.src = designURL
  33. }
  34. /* 再去掉,去掉 thisAppName -- 原来也没用到,IDEA -- Unused function changeLocationThisAppsName。Lin
  35. function changeLocationThisAppsName(value){
  36. window.location.href=window.location.href.replace(/\&thisAppName=.+?\&/,"&thisAppName="+value+"&")
  37. }
  38. */
  39. function changeLocationBusiness(value){
  40. console.log(value);
  41. var href=window.location.href;
  42. if(href.indexOf("biz")<0){
  43. href=href+"&biz="+value+"&";
  44. }else{
  45. href=href.split("&biz=")[0]+"&biz="+value+"&"
  46. }
  47. console.log(href);
  48. window.location.href=href;
  49. }
  50. //查看加载
  51. function view() {
  52. var aa = document.getElementById("selectWorkFlow");
  53. // iframe
  54. var page = document.getElementById("workFlowDesigner");
  55. //应用名
  56. /* 再去掉,去掉 thisAppName -- 原来也没用到,IDEA--Unused local variable appName。Lin
  57. var appName = document.getElementById("thisAppName").value;
  58. */
  59. if (aa.selectedIndex == 0) {
  60. page.src = "";
  61. return;
  62. }
  63. var selectName = aa.value;
  64. /* 再改,去掉 thisAppName。Lin
  65. var viewURL = document.getElementById("workFlowViewURL").value + '&fileName=' + selectName + '&thisAppName=' + getURLParam("thisAppName");
  66. */var viewURL = document.getElementById("workFlowViewURL").value + '&fileName=' + selectName;
  67. //打开页面
  68. wd.display.showComponent({
  69. show: ["wdDialog"],
  70. hide: [],
  71. url: viewURL,
  72. title: "查看",
  73. width: 800,
  74. high: 750,
  75. wdDialogId: 223555,
  76. form: ""
  77. })
  78. }
  79. function setObjectKey(thisdiv){
  80. var URL=document.getElementById("setObjectKeyURL").value;
  81. // var iframepage = document.getElementById("workFlowDesigner").contentWindow.document;
  82. var business=document.getElementsByName("biz")[0].value; // ("business")。Lin
  83. //打开页面
  84. wd.display.showComponent({
  85. show: ["wdDialog"],
  86. hide: [],
  87. // url: URL+"&fileName="+iframepage.getElementById("fileName").value,
  88. url: URL+"&biz="+business,
  89. title: "增加流程",
  90. width: 800,
  91. high: 550,
  92. wdDialogId: 223555,
  93. form: ""
  94. })
  95. }
  96. function modifiedObjectKey(thisdiv){
  97. var URL=document.getElementById("alterObjectKeyURL").value;
  98. var iframepage = document.getElementById("workFlowDesigner").contentWindow.document;
  99. var version=iframepage.getElementById("version").value
  100. if(version==""){
  101. alert("默认无法修改")
  102. return;
  103. }
  104. //打开页面
  105. wd.display.showComponent({
  106. show: ["wdDialog"],
  107. hide: [],
  108. url: URL+"&fileName="+iframepage.getElementById("fileName").value+"&version="+version,
  109. title: "修改属性",
  110. width: 800,
  111. high: 630,
  112. wdDialogId: 223555,
  113. form: ""
  114. })
  115. }
  116. //多流程--控制修改按钮 的隐藏、显示
  117. function changeObjectKeyOption(thisdiv){
  118. var iframepage = document.getElementById("selectWorkFlow");
  119. // iframepage
  120. var page = document.getElementById("workFlowDesigner");
  121. //应用名
  122. /* 再去掉,去掉 thisAppName -- 原来也没用到,IDEA -- Unused local variable appName。Lin
  123. var appName = document.getElementById("thisAppName").value;
  124. */
  125. // 选中为空
  126. if (iframepage.selectedIndex == 0) {
  127. page.src = "";
  128. return;
  129. }
  130. var selectName = iframepage.value;
  131. var version;
  132. // var changeButton=document.getElementById("objectKeyOption").getElementsByTagName("button")[1];
  133. var changeButton=document.querySelectorAll("#objectKeyOption input,#objectKeyOption button")[1]
  134. changeButton.style.display="none"
  135. if(thisdiv.value!=""){
  136. version="&version="+thisdiv.value;
  137. changeButton.style.display=""
  138. }
  139. /* 再改,去掉 thisAppName。Lin
  140. var designURL = document.getElementById("workFlowDesignerURL").value + '&fileName=' + selectName + '&thisAppName=' + getURLParam("thisAppName")+(version?version:"")
  141. */ var designURL = document.getElementById("workFlowDesignerURL").value + '&fileName=' + selectName + (version?version:"")
  142. page.src = designURL
  143. }
  144. if(document.addEventListener){
  145. window.addEventListener('load',inittext,false);
  146. }else{
  147. window.attachEvent('onload',inittext);
  148. }
  149. function inittext(){
  150. // var jsonData=eval("("+ document.getElementById("jsonData").innerHTML +")")
  151. // console.log(jsonData)
  152. }
  153. function setKeyConfirm(thisDiv){
  154. var URL=document.getElementById("saveURL").value
  155. var datass=document.getElementById("jsonData").innerHTML;
  156. if(datass.length==0){datass='{nodes:{},lines:{}}'}
  157. var alldata=eval("("+ datass +")")
  158. var objectKey;
  159. if(alldata.objectKey){
  160. objectKey=alldata.objectKey
  161. }else{
  162. objectKey=[]}
  163. var key={}
  164. var data={}
  165. var codebook={}
  166. var temp={}
  167. var temp2=[]
  168. var inputName=document.getElementById("inputName").value;
  169. var inputDesc=document.getElementById("inputDesc").value;
  170. var version=(objectKey.length)+1
  171. if(inputName.length==0){
  172. alert("名称不能为空")
  173. return;
  174. }
  175. temp2=parseTabToJson()
  176. console.log(temp2)
  177. temp.name=inputName;
  178. temp.desc=inputDesc;
  179. temp.codebooks=temp2;
  180. temp.version=version;
  181. temp.nodes={}
  182. temp.lines={}
  183. // alert(objectKey.length)
  184. objectKey.push(temp)
  185. console.log(objectKey)
  186. // return;
  187. $.post(URL,{
  188. "fileName":document.getElementById("fileName").value,
  189. "objectKey":JSON.stringify(objectKey)
  190. },function(result){
  191. if(result.indexOf("保存成功")!=-1){
  192. //刷新设计页面,关闭窗口
  193. wd.display.getwdDialogOpener().frames[0].location.reload();
  194. wd.display.closeDialog();
  195. }else{alert(result)}
  196. })
  197. }
  198. function alterKeyConfirm(thisdiv){
  199. var URL=document.getElementById("saveURL").value
  200. var datass=document.getElementById("jsonData").innerHTML;
  201. if(datass.length==0){datass='{nodes:{},lines:{}}'}
  202. var alldata=eval("("+ datass +")")
  203. var objectKey;
  204. if(alldata.objectKey){
  205. objectKey=alldata.objectKey
  206. }else{
  207. objectKey=[];
  208. }
  209. var key={}
  210. var data={}
  211. var codebook={}
  212. var temp={}
  213. var temp2=[]
  214. var li=document.getElementById("selectOptions").getElementsByTagName("tr")
  215. var inputName=document.getElementById("inputName").value;
  216. var inputDesc=document.getElementById("inputDesc").value;
  217. var version=$("#version").val();
  218. if(inputName.length==0){
  219. alert("名称不能为空")
  220. return;
  221. }
  222. var code=parseTabToJson()
  223. console.log(code)
  224. // return
  225. temp.name=inputName;
  226. temp.desc=inputDesc;
  227. temp.codebooks=temp2;
  228. for(var i=0;i<objectKey.length;i++){
  229. if(objectKey[i].version==version){
  230. objectKey[i].name=inputName;
  231. objectKey[i].desc=inputDesc;
  232. objectKey[i].codebooks=code;
  233. console.log(objectKey[i])
  234. }
  235. }
  236. $.post(URL,{
  237. "fileName":document.getElementById("fileName").value,
  238. "objectKey":JSON.stringify(objectKey)
  239. },function(result){
  240. if(result.indexOf("保存成功")!=-1){
  241. //刷新设计页面,关闭窗口
  242. wd.display.getwdDialogOpener().frames[0].location.reload();
  243. wd.display.closeDialog();
  244. }else{
  245. alert(result)
  246. }
  247. })
  248. }
  249. var tempDragElement=null;
  250. var tempDragElement2=null;
  251. function dragover(thisdiv){
  252. window.event.preventDefault();
  253. }
  254. function drag(thisdiv){
  255. console.log("drag")
  256. tempDragElement=thisdiv;
  257. }
  258. function drag2(thisdiv){
  259. console.log("drag")
  260. tempDragElement2=thisdiv
  261. }
  262. function dragstart(thisdiv){
  263. console.log(thisdiv)
  264. }
  265. function drop(thisdiv){
  266. window.event.preventDefault()
  267. window.event.stopPropagation()
  268. console.log("drop!");
  269. // console.log(thisdiv)
  270. // console.log(tempDragElement)
  271. if(tempDragElement2!=null){
  272. if(thisdiv.getAttribute("class")=="tab"){
  273. var divString="<div class='maybe' draggable='true' ondrag='drag2(this)' ondrop='drop(this)' ondragover='dragover(this)'></div>"
  274. var div=parseStringToDom(divString);
  275. thisdiv.appendChild(div);
  276. }else if(thisdiv.getAttribute("class")=="maybe"){
  277. // if(confirm("覆盖?")){}
  278. }
  279. tempDragElement2=null
  280. }
  281. if(tempDragElement!=null){
  282. if(tempDragElement.tagName=="TR"){
  283. if(thisdiv.getAttribute("class")!="maybe"){return}
  284. var code=parseTableToJson(tempDragElement)
  285. var divString="<div class='and' draggable='true' ondrag='drag(this)'></div>";
  286. var div=parseStringToDom(divString);
  287. div.setAttribute("data",JSON.stringify(code));
  288. var showspan=parseStringToDom("<span class='detail'>"+parseDragElementInnerData(code)+"</span>")
  289. var closespan=parseStringToDom("<span class='btn-list' onclick='this.parentNode.parentNode.removeChild(this.parentNode);'>删除</span>")
  290. // div.innerHTML= parseDragElementInnerData(code);
  291. div.appendChild(showspan)
  292. div.appendChild(closespan);
  293. thisdiv.appendChild(div);
  294. console.log("tr")
  295. }
  296. if(tempDragElement.tagName=="DIV"){
  297. //位置不变
  298. if(tempDragElement.parentNode==thisdiv){
  299. }else{
  300. thisdiv.appendChild(tempDragElement)
  301. }
  302. console.log("div")
  303. }
  304. tempDragElement=null;
  305. }
  306. }
  307. /*
  308. * data :json对象
  309. */
  310. function parseDragElementInnerData(data){
  311. if(!data.desc){
  312. data=eval("("+data+")");
  313. }
  314. console.log(data);
  315. return data.desc+":"+data.html
  316. }
  317. /*
  318. * tr: tr 层
  319. */
  320. function parseTableToJson(tr){
  321. var code={}
  322. code.desc=tr.getElementsByClassName("desc")[0].innerHTML;
  323. var select=tr.getElementsByTagName("select")[0]
  324. var index=select.selectedIndex
  325. code.html=select.options[index].innerHTML
  326. code.value=select.options[index].value
  327. code.name=select.getAttribute("name");
  328. code.codebook=select.hasAttribute("codebook")?select.getAttribute("codebook"):null
  329. // //关系 1,2
  330. // code.relationship=tr.getElementsByClassName("relationship")[0].value;
  331. // //是否启用 0,1
  332. // code.apply=tr.getElementsByClassName("apply")[0].checked?1:0;
  333. return code;
  334. }
  335. function parseStringToDom(string){
  336. return new DOMParser().parseFromString(string,"text/html").body.childNodes[0]
  337. }
  338. function parseTabToJson(){
  339. var result=[];
  340. var maybe=document.getElementById("tab").getElementsByClassName("maybe")
  341. for(var i=0;i<maybe.length;i++){
  342. var and=maybe[i].getElementsByClassName("and")
  343. if(maybe[i].getAttribute("class")!="maybe"||and.length==0){continue};
  344. var temp=[];
  345. for(var j=0;j<and.length;j++){
  346. var data=eval("("+ and[j].getAttribute("data")+")");
  347. temp.push(data);
  348. }
  349. result.push(temp);
  350. }
  351. return result
  352. }
  353. //从URL获取参数
  354. function getURLParam(name) {
  355. var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  356. var r = window.location.search.substr(1).match(reg);
  357. // console.log(r)
  358. // console.log(window.location.search.substr(1).split(reg))
  359. if (r != null) return unescape(r[2]);
  360. return null;
  361. }