//------------------------Utility------------------------ function findPosX(obj) { //辅助函数 得到元素左边与浏览器左边的边距 var curleft = 0; if (obj && obj.offsetParent) { while (obj.offsetParent) { curleft += obj.offsetLeft; obj = obj.offsetParent; } } else if (obj && obj.x) curleft += obj.x; return curleft; // + document.body.scrollLeft - document.body.clientLeft; } function findPosY(obj) { //辅助函数 得到元素上边与浏览器上边的边距 var curtop = 0; if (obj && obj.offsetParent) { while (obj.offsetParent) { curtop += obj.offsetTop; obj = obj.offsetParent; } } else if (obj && obj.y) curtop += obj.y; return curtop; // + document.body.scrollTop - document.body.clientTop; } var dragGhost = document.createElement("div"); dragGhost.style.border = "dashed 1px #CCCCCC"; dragGhost.style.background = "white"; dragGhost.style.display = "none"; dragGhost.style.margin = "10px"; dragGhost.style.width = "100%"; var container; var keys; var columns = []; var groups = []; //------------------------Start Here------------------------ $(document).ready(function () { // init(); DM.getDrager().itemClick=function(){ console.log(this); console.log(this.children()) if(!this.parentid){ // DM.getDrager().optionList.reload() // DM.getDrager().selectedList.reload() var thisItem=this; if(thisItem.id.indexOf("-") == -1){ DM.getDrager().optionList.empty(); var allcodebook=$(thisItem.element).find(".allcodebook"); var selectedList=DM.getDrager().selectedList.getAllItems() selectedId={}; for(var i=0;i>>>>>>"); //绑定事件,选中并且拖选初始化 var keys = document.getElementById("keys"); keys.onclick = function (e) { // console.log("click") if (!e) { e = window.event } var target = e.target; var currentTarget = e.currentTarget; var groupNode = null for (var i = 0; i < currentTarget.childNodes.length; i++) { if (typeof currentTarget.childNodes[i].className == "undefined") { continue; } //定位位置 if ($(currentTarget.childNodes[i]).hasClass("group")) { var aa = currentTarget.childNodes[i].compareDocumentPosition(target); if (aa == 0 || aa == 20) { groupNode = currentTarget.childNodes[i]; } } } //找不到 ,返回 if (groupNode == null) { return; } //点击显示控制 //移除选中状态 $(currentTarget).children(".selected").removeClass("selected") $("#candidate .item").remove(); if (lastNode == groupNode) { //重复点击关闭 //移除选中状态 $(groupNode).removeClass("selected"); //删除待选 $(".useobject").remove(); $(currentTarget).children(".selected").removeClass("selected") lastNode = null; } else { //选中标记 $(groupNode).addClass("selected"); $(".useobject").remove(); // console.log(groupNode) $(groupNode).find(".item").each(function (index, element) { settingItemMessage(element); // console.log(element) }) // 右侧栏显示拖动选项 $(groupNode).children(".codebook").each(function (index, element) { var temp = element.cloneNode(true) temp.className = "item list-normal list-background"; // console.log(codebookname+" "+codebookvalue); //排重 var exit = false; $(groupNode).children(".items").children(".item").each(function (ind, ele) { if ($(ele).attr("value") == $(temp).attr("value")) { exit = true; } }) if (exit) { return; } settingItemMessage(temp); // $(temp).append("(部门内)"); $("#candidate .items").append(temp).hide(); }) $("#candidate .items").fadeIn(500) //重复点击判断 lastNode = groupNode; //拖动初始化 initDrag() } } } //重复点击 var lastNode; var isIE = document.all; //------------------------Drag Item------------------------ function dragItem(item) { var handle = item; if (!handle) return; Drag.init(handle, item); item.onDragStart = function (left, top, mouseX, mouseY) { this.lock = this.lockDrag(); if (this.lock) { return }; //将ghost插入到当前位置 dragGhost.style.display = "block"; //开始拖动的时候设置透明度 this.style.opacity = "0.5"; this.style.filter = "alpha(opacity=50)"; dragGhost.style.height = (isIE ? this.offsetHeight : this.offsetHeight - 2) + "px"; //this指的是item this.style.width = this.offsetWidth + "px"; //因为初始的width为auto var scrollTop = this.parentNode.scrollTop; this.style.left = (findPosX(this) - 5) + "px"; this.style.top = (findPosY(this) - scrollTop) + "px"; this.style.position = "absolute"; // console.log(this.group) // this.group.insertBefore(dragGhost,this); // console.log(this.group.items) this.group.items.insertBefore(dragGhost, this); //记录每一列的左边距 在拖动过程中判断拖动对象所在的列会用到 this.columnsX = []; for (var i = 0; i < columns.length; i++) { this.columnsX.push(findPosX(columns[i])); } this.groupsY = []; for (var i = 0; i < groups.length; i++) { this.groupsY.push([findPosY(groups[i]), groups[i].column]); } } item.onDrag = function (left, top, mouseX, mouseY) { if (this.lock) { return } //先要判断在哪一列移动 var columnIndex = 0; for (var i = 0; i < this.columnsX.length; i++) { if ((findPosX(this) + this.offsetWidth / 2) > this.columnsX[i]) { columnIndex = i; } } var column = columns[columnIndex]; var groupIndex = null; //选择group for (var i = 0; i < this.groupsY.length; i++) { if (this.groupsY[i][1] == column) { if (column.id == "keys") { if ($(groups[i]).hasClass("selected")) { groupIndex = i; } } else if (column.id == "candidate") { groupIndex = i; } } } var group = groups[groupIndex]; if (this.group != group) { this.group = group; // group.appendChild(dragGhost); group.items.appendChild(dragGhost); } var currentNode = null; for (var i = 0; i < this.group.items.childNodes.length; i++) { // var item=this.group.childNodes[i]; var tempitem = this.group.items.childNodes[i]; // if(item.className=="item" // &&item!=this // &&top>>>>3"); //没有选中 if ($("#keys .selected").length == 0) { console.log("no selected"); return true; } //其他未选中的,同时拖动被初始化,无法拖动 if (this.parentNode.parentNode.parentNode.id == "keys" && !$(this.parentNode.parentNode).hasClass("selected")) { return true; } return false; } } function setKeyConfirm(thisDiv) { console.info("<<<<<<<>>>>>2"); var URL = document.getElementById("saveURL").value var datass = document.getElementById("jsonData").innerHTML; if (datass.length == 0) { datass = '{nodes:{},lines:{}}' } var alldata = eval("(" + datass + ")") var objectKey; if (alldata.objectKey) { objectKey = alldata.objectKey } else { objectKey = [] } var key = {} var data = {} var codebook = {} var temp = {} var temp2 = [] var inputName = document.getElementById("inputName").value; var inputDesc = document.getElementById("inputDesc").value; var submitName = document.getElementById("submitName").value; var showName = document.getElementById("showName").value; var bgmbid = document.getElementById("bgmbid") ? document.getElementById("bgmbid").value : null; // submitName=inputName if (inputName.length == 0||submitName.length==0) { alert("名称和申请名称不能为空") return; } var version = 0; for (var i = 0; i < objectKey.length; i++) { var v = parseInt(objectKey[i].version); if (v >= version) { version = v; } } version++; temp2 = parseTabToJson() console.log(temp2) temp.name = inputName; temp.desc = inputDesc; temp.submitName = submitName temp.codebooks = temp2; temp.version = version; temp.nodes = {} temp.lines = {} if (bgmbid) { temp.bgmbid = bgmbid } if(showName){ temp.showName=showName; } // alert(objectKey.length) objectKey.push(temp) console.log(objectKey) // return; $.post(URL, { "fileName": document.getElementById("fileName").value, "objectKey": JSON.stringify(objectKey) }, function (result) { // alert(result) if (result.indexOf("保存成功") != -1) { //刷新设计页面,关闭窗口 wd.display.showMsgPopup(result); // wd.display.getwdDialogOpener().frames[0].location.reload(); wd.display.getwdDialogOpener().location.reload(); wd.display.closeDialog(); } else { alert(result) } }) } function alterKeyConfirm(thisdiv) { console.info("<<<<<<<>>>>>1"); var URL = document.getElementById("saveURL").value var datass = document.getElementById("jsonData").innerHTML; if (datass.length == 0) { datass = '{nodes:{},lines:{}}' } var alldata = eval("(" + datass + ")") var objectKey; if (alldata.objectKey) { objectKey = alldata.objectKey } else { objectKey = []; } var key = {} var data = {} var codebook = {} var temp = {} var temp2 = [] var inputName = document.getElementById("inputName").value; var inputDesc = document.getElementById("inputDesc").value; var submitName = document.getElementById("submitName").value; var showName = document.getElementById("showName").value; var bgmbid = document.getElementById("bgmbid") ? document.getElementById("bgmbid").value : null; // submitName=inputName var version = $("#version").val(); if (inputName.length == 0||submitName.length==0) { alert("名称和申请名称不能为空"); return; } var code = parseTabToJson() console.log(code) // return temp.name = inputName; temp.desc = inputDesc; temp.codebooks = temp2; for (var i = 0; i < objectKey.length; i++) { if (objectKey[i].version == version) { objectKey[i].name = inputName; objectKey[i].submitName = submitName; if(showName){ objectKey[i].showName = showName; }else{ delete objectKey[i].showName; } objectKey[i].desc = inputDesc; objectKey[i].codebooks = code; if (bgmbid) { objectKey[i].bgmbid = bgmbid } else { delete objectKey[i].bgmbid; } // if(showName){ // objectKey[i].showName=showName; // }else{ // delete objectKey[i].showName; // } console.log(objectKey[i]) } } $.post(URL, { "fileName": document.getElementById("fileName").value, "objectKey": JSON.stringify(objectKey) }, function (result) { // alert(result); if (result.indexOf("保存成功") != -1) { //刷新设计页面,关闭窗口 wd.display.showMsgPopup(result); // window.location.reload(); wd.display.getwdDialogOpener().frames[0].location.reload(); // wd.display.getwdDialogOpener().location.reload(); wd.display.closeDialog(); } else { alert(result) } }) } function parseTabToJson() { console.info("<<<<<<<>>>>>0"); var result = []; // $("#keys .items").each(function (index, element) { // var templist = [] // $(element).children(".item").each(function (ind, ele) { // //
${codebookValue}
// // // var code = {}; // code.codebook = ele.getAttribute("codebook"); // code.name = ele.getAttribute("name"); // code.value = ele.getAttribute("value"); // code.desc = ele.getAttribute("desc"); // code.html = ele.getAttribute("html"); // templist.push(code); // }) // // if(templist.length>0){ // result.push(templist); // // } // }) var selectedList=DM.getDrager().selectedList.getAllItems() var allItems={}; for(var i=0;i0){ result.push(templist); } } return result } function settingItemMessage(item) { if(true)return var codebookname = item.getAttribute("codebook"); var codebookvalue = item.getAttribute("value"); var version = $("#version").val(); var datass = document.getElementById("jsonData").innerHTML; if (datass.length == 0) { datass = '{nodes:{},lines:{}}' } var alldata = eval("(" + datass + ")") var objectKey; if (alldata.objectKey) { objectKey = alldata.objectKey } else { objectKey = []; } for (var i = 0; i < objectKey.length; i++) { var objectname = objectKey[i].name; var codebooks = objectKey[i]["codebooks"]; if (version == objectKey[i].version) { continue } if ((function () { if (codebooks && codebooks.length == 0) return false; for (var j = 0; codebooks && j < codebooks.length; j++) { if (codebooks[j].length == 0) continue; var codebookname2 = codebooks[j][0].codebook; if (codebookname2 == codebookname) { for (var k = 0; k < codebooks[j].length; k++) { if (codebooks[j][k].value == codebookvalue) { return true; } } } } })()) { $(item).append("(" + objectname + ")"); } } } function changeComponentName(ele){ window.location.href=document.getElementById("setObjectKeyURL").value+"&fileName="+ele.value; }