TaskDrag_wev8.js
6.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
var lastSelectedTRObj=null; //最后一次选区择的那个TR对像
var lastSelectedLineObj=null;
var srcRowObj; //用于记录被拖动的源行对象
var targetRowObj; //用于记录被拖动的目录行对象
var allowMove; //允许移动的对象
var popedomMove; //由于权限不让移动
var el;
var dragFlag=0;
//点击改变其本身的样式为select
function onDragTDDBClick(obj){
var parentObj =$(obj).parent("tr")[0];
if(lastSelectedTRObj&&lastSelectedTRObj!=parentObj){
lastSelectedTRObj.className="DataLight"
for(var i=0;i<lastSelectedTRObj.cells.length;i++){
lastSelectedTRObj.cells[i].className="DataLight";
}
};
if(parentObj.className!="Selected"){
parentObj.className="Selected";
lastSelectedTRObj=parentObj;
for(var i=0;i<parentObj.cells.length;i++){
try{
parentObj.cells[i].className="Selected";
}catch(e){
alert(i);
}
}
}else{
parentObj.className="DataLight";
for(var i=0;i<parentObj.cells.length;i++){
parentObj.cells[i].className="DataLight";
}
lastSelectedTRObj=null;
}
}
function mousedown(e){
el =$.event.fix(e).target;
if(el==null||el.nodeName!="TD"||el.cellIndex!=0 || $(el).parents("tr")[0].rowIndex<2) return false; //第2行以上第一列是TD的对像
if ($(el).attr("trOwner")=="manager") return false ;
if ($(el).attr("class")!="Selected") return false;
srcRowObj = $(el).parents("tr")[0];
allowMove=true ;
popedomMove = true ;
}
function mouseup(e){
try
{
if (!allowMove) return false;
allowMove = false ;
if (!popedomMove){
if (lastSelectedTRObj!=null) lastSelectedTRObj.className="DataLight";
if (lastSelectedLineObj!=null) $(lastSelectedLineObj).find("td").css("background-color","#EFEFEF");
return false ;
}
if (el!=null && el.tagName=="TD" && ($(el).parent()[0].className=="DataLight" || $(el).parent()[0].className=="Selected"|| $(el).parent()[0].className=="Header") && el.cellIndex==0) {
targetRowObj = el.parentElement
}
if (insertObj(srcRowObj,targetRowObj)) {
if (lastSelectedTRObj!=null&&lastSelectedTRObj!=targetRowObj) lastSelectedTRObj.className="DataLight";
}
if (lastSelectedLineObj!=null) $(lastSelectedLineObj).find("td").css("background-color","#EFEFEF");
} catch (e){
if (lastSelectedTRObj!=null) {
lastSelectedTRObj.className="DataLight";
lastSelectedTRObj == null ;
}
if (lastSelectedLineObj!=null) $(lastSelectedLineObj).find("td").css("background-color","#EFEFEF");
alert(e.number+": "+e.description)
throw(e);
}
}
function mousemove(e){
if (!allowMove) return false;
el =$.event.fix(e).target;
if (el!=null && el.nodeName=="TD" && ($(el).parent().attr("class")=="DataLight" || $(el).parent().attr("class")=="Selected"|| $(el).parent().attr("class")=="Header") && el.cellIndex==0) {
if ($(el).parent().attr("rowStatus")=="disabled") {
popedomMove = false ;
return false;
}
if (lastSelectedLineObj!=null) {
$(lastSelectedLineObj).find("td").css("background","#EFEFEF");
}
$(el).parent().next().find("td").css("background-color","#7F7F7F");
lastSelectedLineObj = $(el).parent().next();
}
}
function insertObj(srcObj,targetObj){
if (srcObj==targetObj) return false ;
//修改逻辑DOC对象及移动相关的行对象
var locatObj;
var locatAt;
var isFirstRow=false;
if (targetObj.className=="Header"){ //当目标行是表头的时候,则afterObj为其下一行的下一行,并且方式为前
locatObj=$(targetObj).next().next()[0];
locatAt="before"
isFirstRow=true;
} else if(isLastLine(targetObj)=="false"){ //当为最后一行时 插入的地方为,目标行后面
locatObj=targetObj;
locatAt="after"
} else { //当为普及通行时 插入的地方为,目标行的下一行的下一行的前面
locatObj=$(targetObj).next().next()[0];
locatAt="before";
}
//移动其它
var result = modeNode(srcObj,targetObj,locatObj,locatAt,isFirstRow);
return result;
}
//是否是最后一行
function isLastLine(obj){
try {
var Next2Sibling = $(obj).next().next();
if (Next2Sibling.length==0) return "false";
return "true" ;
}catch (e){
return "false";
}
}
function findNextBrother(nodeId){
flag=0;
return flag;
}
var srcRowIndex=-1;
var targetRowIndex=-1;
var srcRowNextObj;
function taskDragSort(){
jQuery("input[name='seleBeforeTask']").each(function(k){
var beforeTask=$(this);
var beforeTaskIndex=0;
var oldIndex=$(this).attr("oldIndex");
if(beforeTask.val()!="0"){
oldIndex=$("input[name='txtRowIndex']:eq("+(beforeTask.val()-1)+")").val();
}else{
oldIndex="0";
}
$(this).attr("oldIndex",oldIndex);
});
$("#tblTask").dragsort({
itemSelector: "tr",
dragSelector: ".td_drag",
dragBetween: true,
dragStart: function(){
srcRowObj=$(this)[0];
srcRowIndex=srcRowObj.rowIndex;
srcRowNextObj=$(this).next();
},
dragEndBefore:function(){
if($(this).hasClass("itemtr")||$(this).hasClass("Selected")||$(this).hasClass("Header")){
targetRowObj=$(this)[0];
targetRowIndex=targetRowObj.rowIndex;
return true;
}else{
targetRowObj=null;
return false;
}
},
dragEnd: function(){
if(targetRowObj!=null){
$(srcRowNextObj).before($(this));
}
//由上向下不允许拖动
//if(targetRowObj&&targetRowIndex<srcRowIndex){
if(targetRowObj){
insertObj(srcRowObj,targetRowObj);
resetBeforeTask();
targetRowObj=null;
}
//}
},
placeHolderTemplate: "<tr><td style='width:15px'></td><td style='width:20px'></td><td style=''></td></tr>",
scrollSpeed: 5
});
}
function resetBeforeTask(){
jQuery("input[name='seleBeforeTask']").each(function(k){
var beforeTask=$(this);
var beforeTaskIndex=0;
var oldIndex=$(this).attr("oldIndex");
jQuery("input[name='txtRowIndex']").each(function(i){
if(oldIndex==jQuery(this).val()){
//beforeTask.val(i+1);
beforeTaskIndex=i+1;
return false;
}
});
beforeTask.val(beforeTaskIndex);
if(beforeTaskIndex==0){
beforeTask.next().html("");
}
});
}
//选择前置任务
function onSelectBeforeTask(spanname,inputename){
datas = window.showModalDialog("/systeminfo/BrowserMain.jsp?url=/proj/data/ProjectTaskBrowser.jsp",document.getElementsByName("txtTaskName"));
if (datas){
if(datas.id!=""){
$(spanname).html(datas.name);
$(inputename).val(datas.id);
var oldIndex=$("input[name='txtRowIndex']:eq("+(datas.id-1)+")").val();
$(inputename).attr("oldIndex",oldIndex);
}else{
$(spanname).html("");
$(inputename).val("");
}
}
beforeTask_check(inputename);
}