Task.js 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621
  1. MWF.xApplication.TeamWork = MWF.xApplication.TeamWork || {};
  2. MWF.xApplication.TeamWork.Task = new Class({
  3. Extends: MPopupForm,
  4. Implements: [Options, Events],
  5. options: {
  6. "style": "default",
  7. "width": 1000,
  8. "height": "90%",
  9. "top": null,
  10. "left": null,
  11. "bottom" : null,
  12. "right" : null,
  13. "minWidth" : 300,
  14. "minHeight" : 220,
  15. "isLimitSize": true,
  16. "ifFade": false,
  17. "hasTop": false,
  18. "hasTopIcon" : false,
  19. "hasTopContent" : false,
  20. "hasIcon": false,
  21. "hasBottom": false,
  22. "hasMask" : true,
  23. "closeByClickMask" : true,
  24. "hasScroll" : false,
  25. "scrollType" : "",
  26. "title": "",
  27. "draggable": false,
  28. "resizeable" : false,
  29. "maxAction" : false,
  30. "closeAction": false,
  31. "relativeToApp" : true,
  32. "sizeRelateTo" : "app", //desktop
  33. "resultSeparator" : ","
  34. },
  35. initialize: function (explorer, data, options, para) {
  36. this.setOptions(options);
  37. this.explorer = explorer;
  38. if( para ){
  39. if( this.options.relativeToApp ){
  40. this.app = para.app || this.explorer.app;
  41. this.container = para.container || this.app.content;
  42. this.lp = para.lp || this.explorer.lp || this.app.lp;
  43. this.css = para.css || this.explorer.css || this.app.css;
  44. this.actions = para.actions || this.explorer.actions || this.app.actions || this.app.restActions;
  45. }else{
  46. this.container = para.container;
  47. this.lp = para.lp || this.explorer.lp;
  48. this.css = para.css || this.explorer.css;
  49. this.actions = para.actions || this.explorer.actions;
  50. }
  51. }else{
  52. if( this.options.relativeToApp ){
  53. this.app = this.explorer.app;
  54. this.container = this.app.content;
  55. this.lp = this.explorer.lp || this.app.lp;
  56. this.css = this.explorer.css || this.app.css;
  57. this.actions = this.explorer.actions || this.app.actions || this.app.restActions;
  58. }else{
  59. this.container = window.document.body;
  60. this.lp = this.explorer.lp;
  61. this.css = this.explorer.css;
  62. this.actions = this.explorer.actions;
  63. }
  64. }
  65. this.data = data || {};
  66. this.css = {};
  67. this.cssPath = "/x_component_TeamWork/$Task/"+this.options.style+"/css.wcss";
  68. this.load();
  69. this.lp = this.app.lp.task;
  70. },
  71. _createTableContent: function () {
  72. var _self = this;
  73. this.getTaskData(function(){
  74. this.topLayout = new Element("div.topLayout",{styles:this.css.topLayout}).inject(this.formTableArea);
  75. //this.topImage = new Element("div.topImage",{styles:this.css.topImage}).inject(this.topLayout);
  76. this.topContent = new Element("div.topContent",{styles:this.css.topContent,text:this.taskData.name}).inject(this.topLayout);
  77. if(this.isNew){
  78. this.topContent.set("text",this.lp.newTask)
  79. }
  80. this.topIconContainer = new Element("div.topIconContainer",{styles:this.css.topIconContainer}).inject(this.topLayout);
  81. //更多
  82. this.topIconMore = new Element("div.topIconMore",{styles:this.css.topIconMore,title:this.lp.more}).inject(this.topIconContainer);
  83. this.topIconMore.addEvents({
  84. click:function(){
  85. }.bind(this),
  86. mouseover:function(){
  87. this.setStyles({"background-image":"url(/x_component_TeamWork/$Task/default/icon/icon_more_click.png)"});
  88. },
  89. mouseout:function(){
  90. this.setStyles(_self.css.topIconMore)
  91. }
  92. });
  93. //关闭
  94. this.topIconClose = new Element("div.topIconClose",{styles:this.css.topIconClose,title:this.lp.close}).inject(this.topIconContainer);
  95. this.topIconClose.addEvents({
  96. click:function(){
  97. this.close()
  98. }.bind(this),
  99. mouseover:function(){
  100. this.setStyles({"background-image":"url(/x_component_TeamWork/$Task/default/icon/icon_off_click.png)"});
  101. },
  102. mouseout:function(){
  103. this.setStyles(_self.css.topIconClose)
  104. }
  105. });
  106. this.contentLayout = new Element("div.contentLayout",{styles:this.css.contentLayout}).inject(this.formTableArea);
  107. this.createContentLayout();
  108. this.createDetailLayout();
  109. // this.bottomLayout = new Element("div.bottomLayout",{styles:this.css.bottomLayout}).inject(this.formTableArea);
  110. // this.okAction = new Element("div.okAction",{styles:this.css.okAction,text:"确定"}).inject(this.bottomLayout);
  111. // this.okAction.addEvents({
  112. // click:function(){
  113. // this.saveTaskData();
  114. // }.bind(this)
  115. // })
  116. }.bind(this));
  117. },
  118. createContentLayout:function(){
  119. var _self = this;
  120. this.taskInforContainer = new Element("div.taskInforContainer",{styles:this.css.taskInforContainer}).inject(this.contentLayout);
  121. this.taskActionBar = new Element("div.taskActionBar",{styles:this.css.taskActionBar}).inject(this.taskInforContainer);
  122. this.taskActionSave = new Element("div.taskActionSave",{styles:this.css.taskActionSave,text:this.lp.save}).inject(this.taskActionBar);
  123. this.taskActionSave.addEvents({
  124. click:function(){
  125. }.bind(this),
  126. mouseover:function(){
  127. this.setStyles({
  128. "color":"#ffffff",
  129. "background-color":"#4A90E2",
  130. "border":"1px solid #4A90E2"
  131. })
  132. },
  133. mouseout:function(){
  134. this.setStyles(_self.css.taskActionSave)
  135. }
  136. });
  137. this.app.setScrollBar(this.taskInforContainer);
  138. this.taskNameContainer = Element("div.taskNameContainer",{styles:this.css.taskNameContainer}).inject(this.taskInforContainer);
  139. //状态
  140. this.taskStatusContainer = Element("div.taskStatusContainer",{styles:this.css.taskStatusContainer}).inject(this.taskInforContainer);
  141. this.taskStatusIcon = Element("div.taskStatusIcon",{styles:this.css.taskStatusIcon}).inject(this.taskStatusContainer);
  142. this.taskStatusText = Element("div.taskStatusText",{styles:this.css.taskStatusText,text:this.lp.taskStatus}).inject(this.taskStatusContainer);
  143. this.taskStatusValue = Element("div.taskStatusValue",{styles:this.css.taskStatusValue}).inject(this.taskStatusContainer);
  144. //责任人
  145. this.taskDutyContainer = Element("div.taskDutyContainer",{styles:this.css.taskDutyContainer}).inject(this.taskInforContainer);
  146. this.taskDutyIcon = Element("div.taskDutyIcon",{styles:this.css.taskDutyIcon}).inject(this.taskDutyContainer);
  147. this.taskDutyText = Element("div.taskDutyText",{styles:this.css.taskDutyText,text:this.lp.taskDuty}).inject(this.taskDutyContainer);
  148. this.taskDutyValue = Element("div.taskDutyValue",{styles:this.css.taskDutyValue}).inject(this.taskDutyContainer);
  149. //时间
  150. this.taskTimeContainer = Element("div.taskTimeContainer",{styles:this.css.taskTimeContainer}).inject(this.taskInforContainer);
  151. this.taskTimeIcon = Element("div.taskTimeIcon",{styles:this.css.taskTimeIcon}).inject(this.taskTimeContainer);
  152. this.taskTimeText = Element("div.taskTimeText",{styles:this.css.taskTimeText,text:this.lp.taskTime}).inject(this.taskTimeContainer);
  153. this.taskTimeValue = Element("div.taskTimeValue",{styles:this.css.taskTimeValue}).inject(this.taskTimeContainer);
  154. //备注
  155. this.taskRemarkContainer = Element("div.taskRemarkContainer",{styles:this.css.taskRemarkContainer}).inject(this.taskInforContainer);
  156. this.taskRemarkIcon = Element("div.taskRemarkIcon",{styles:this.css.taskRemarkIcon}).inject(this.taskRemarkContainer);
  157. this.taskRemarkText = Element("div.taskRemarkText",{styles:this.css.taskRemarkText,text:this.lp.taskRemark}).inject(this.taskRemarkContainer);
  158. this.taskRemarkValue = Element("div.taskRemarkValue",{styles:this.css.taskRemarkValue}).inject(this.taskRemarkContainer);
  159. //优先级
  160. this.taskPriorityContainer = Element("div.taskPriorityContainer",{styles:this.css.taskPriorityContainer}).inject(this.taskInforContainer);
  161. this.taskPriorityIcon = Element("div.taskPriorityIcon",{styles:this.css.taskPriorityIcon}).inject(this.taskPriorityContainer);
  162. this.taskPriorityText = Element("div.taskPriorityText",{styles:this.css.taskPriorityText,text:this.lp.taskPriority}).inject(this.taskPriorityContainer);
  163. this.taskPriorityValue = Element("div.taskPriorityValue",{styles:this.css.taskPriorityValue}).inject(this.taskPriorityContainer);
  164. this.setTaskData();
  165. //this.setAuth();
  166. },
  167. createDetailLayout:function(){
  168. this.taskDetailLayout = new Element("div.taskDetailLayout",{styles:this.css.taskDetailLayout}).inject(this.contentLayout);
  169. },
  170. getTaskData:function(callback){
  171. if(this.data.taskId){
  172. this.actions.taskGet(this.data.taskId,function(json){
  173. if(json.data) {
  174. this.taskData = json.data;
  175. if(callback)callback()
  176. }
  177. }.bind(this))
  178. }
  179. },
  180. setTaskData:function(){
  181. var _self = this;
  182. //名称
  183. if(this.taskNameContainer){
  184. this.loadNameValue();
  185. }
  186. //状态
  187. if(this.taskStatusValue){
  188. this.loadStatusValue()
  189. }
  190. //负责人
  191. if(this.taskDutyValue){
  192. this.loadDutyValue()
  193. }
  194. //时间
  195. if(this.taskTimeContainer){
  196. this.loadTimeValue()
  197. }
  198. },
  199. saveTaskData:function() {
  200. },
  201. loadNameValue:function(){ //名称
  202. var _self = this;
  203. this.taskNameContainer.set("text",this.taskData.name);
  204. if(true){ //权限修改
  205. var node = this.taskNameContainer;
  206. var nameEdit = false;
  207. node.addEvents({
  208. mouseenter:function(){
  209. if(this.getElement("input")) return;
  210. var name = this.get("text");
  211. node.empty();
  212. var input = new Element("input.taskNameInput",{type:"text",value:name,styles:_self.css.taskNameInput}).inject(node);
  213. input.addEvents({
  214. click:function(ev){
  215. nameEdit = true;
  216. ev.stopPropagation()
  217. },
  218. blur:function(){
  219. var v = this.get("value");
  220. _self.taskNameContainer.empty();
  221. _self.taskNameContainer.set("text",v);
  222. _self.taskNameContainer.setStyles({"background-color":""});
  223. nameEdit = false;
  224. }
  225. });
  226. },
  227. mouseleave:function(){
  228. if(!nameEdit){
  229. if(this.getElement("input")){
  230. var n = this.getElement("input").get("value");
  231. this.empty();
  232. this.set("text",n);
  233. }
  234. this.setStyles({"background-color":""})
  235. }
  236. }
  237. });
  238. }
  239. },
  240. loadStatusValue:function(){ //状态
  241. var _self = this;
  242. if(this.taskStatusValue) this.taskStatusValue.empty();
  243. this.taskStatusValueContainer = new Element("div.taskStatusValueContainer",{styles:this.css.taskStatusValueContainer}).inject(this.taskStatusValue);
  244. this.taskStatusValueIcon = new Element("div.taskStatusValueIcon",{styles:this.css.taskStatusValueIcon}).inject(this.taskStatusValueContainer);
  245. if(this.taskData.workStatus == this.lp.status.draft){
  246. this.taskStatusValueContainer.setStyles({"color":"#666666"});
  247. this.taskStatusValueIcon.setStyles({"background-image":"url(/x_component_TeamWork/$Task/default/icon/icon_draft.png)"});
  248. }else if(this.taskData.workStatus == this.lp.status.flow){
  249. this.taskStatusValueContainer.setStyles({"color":"#666666"});
  250. this.taskStatusValueIcon.setStyles({"background-image":"url(/x_component_TeamWork/$Task/default/icon/icon_flow.png)"});
  251. }else if(this.taskData.workStatus == this.lp.status.complete){
  252. this.taskStatusValueContainer.setStyles({"color":"#69b439"});
  253. this.taskStatusValueIcon.setStyles({"background-image":"url(/x_component_TeamWork/$Task/default/icon/icon_complete.png)"});
  254. }
  255. this.taskStatusValueText = new Element("div.taskStatusValueText",{styles:this.css.taskStatusValueText,text:this.taskData.workStatus}).inject(this.taskStatusValueContainer);
  256. if(true){ //权限
  257. this.taskStatusValueContainer.addEvents({
  258. click:function(){
  259. var sc = new MWF.xApplication.TeamWork.Task.StatusCheck(this.container, this.taskStatusValueContainer, this.app, {data:this.taskData}, {
  260. css:this.css, lp:this.lp, axis : "y",
  261. position : { //node 固定的位置
  262. x : "right",
  263. y : "middle"
  264. },
  265. nodeStyles : {
  266. "min-width":"200px",
  267. "padding":"2px",
  268. "border-radius":"5px",
  269. "box-shadow":"0px 0px 4px 0px #999999",
  270. "z-index" : "201"
  271. },
  272. onPostLoad:function(){
  273. sc.node.setStyles({"opacity":"0","top":(sc.node.getStyle("top").toInt()+4)+"px"});
  274. var fx = new Fx.Tween(sc.node,{duration:400});
  275. fx.start(["opacity"] ,"0", "1");
  276. },
  277. onClose:function(rd){
  278. if(!rd) return;
  279. if(rd.status == "flow") this.taskData.workStatus = this.lp.status.flow;
  280. else if(rd.status == "complete") this.taskData.workStatus = this.lp.status.complete;
  281. this.loadStatusValue();
  282. }.bind(this)
  283. });
  284. sc.load();
  285. }.bind(this),
  286. mouseover:function(){
  287. this.setStyles({"background-color":"#efefef"});
  288. this.getElement(".taskStatusValueIcon").setStyles({ "background-image":"url(/x_component_TeamWork/$Task/default/icon/icon_down.png)"})
  289. },
  290. mouseout:function(){
  291. this.setStyles(_self.css.taskStatusValueContainer);
  292. var bgurl = "url(/x_component_TeamWork/$Task/default/icon/icon_draft.png)";
  293. if(_self.taskData.workStatus == _self.lp.status.flow)bgurl = "url(/x_component_TeamWork/$Task/default/icon/icon_flow.png)";
  294. else if(_self.taskData.workStatus == _self.lp.status.complete)bgurl = "url(/x_component_TeamWork/$Task/default/icon/icon_complete.png)";
  295. this.getElement(".taskStatusValueIcon").setStyles({"background-image":bgurl})
  296. }
  297. });
  298. }
  299. },
  300. loadDutyValue:function(){
  301. var _self = this;
  302. if(this.taskDutyValue) this.taskDutyValue.empty();
  303. this.taskDutyValueContainer = new Element("div.taskDutyValueContainer",{styles:this.css.taskDutyValueContainer}).inject(this.taskDutyValue);
  304. if(true){//权限
  305. if(this.taskData.executor==""){
  306. this.taskDutyAddIcon = new Element("div.taskDutyAddIcon",{styles:this.css.taskDutyAddIcon}).inject(this.taskDutyValueContainer);
  307. this.taskDutyAddText = new Element("div.taskDutyAddText",{styles:this.css.taskDutyAddText,text:this.lp.addDuty}).inject(this.taskDutyValueContainer);
  308. this.taskDutyAddText.addEvents({
  309. mouseover:function(){this.setStyles({"color":"#4a90e2"})},
  310. mouseout:function(){this.setStyles({"color":"#666666"})},
  311. click:function(){
  312. this.selectPerson(this.taskDutyAddText,"identity",1,
  313. function(json){
  314. if(json.length>0){
  315. this.taskData.executor = json[0];
  316. this.loadDutyValue()
  317. }
  318. }.bind(this));
  319. }.bind(this)
  320. })
  321. }else{
  322. this.loadTaskPerson(this.taskDutyValueContainer,this.taskData.executor,true);
  323. }
  324. }else{
  325. if(this.taskData.executor!=""){
  326. this.loadTaskPerson(this.taskDutyValueContainer,this.taskData.executor);
  327. }
  328. }
  329. },
  330. loadTimeValue:function(){
  331. var _self = this;
  332. // this.timee = new Element("input",{styles:{"width":"200px","height":"30px"}}).inject(this.taskTimeContainer);
  333. // this.timee.addEvents({
  334. // click:function(){
  335. // var opt = {
  336. // type:"datetime",
  337. // onClear:function(){}
  338. // };
  339. // this.app.selectCalendar(this.timee,this.container,opt,function(dateString){
  340. // //this.timee.set("value",dateString);
  341. // }.bind(this))
  342. // }.bind(this)
  343. // });
  344. // return;
  345. //taskTimeContainer
  346. this.taskStartTime = new Element("div.taskStartTime",{styles:this.css.taskStartTime}).inject(this.taskTimeContainer);
  347. this.taskTimeLine = new Element("div.taskTimeLine",{styles:this.css.taskTimeLine,text:"-"}).inject(this.taskTimeContainer);
  348. this.taskEndTime = new Element("div.taskEndTime",{styles:this.css.taskEndTime}).inject(this.taskTimeContainer);
  349. if(this.taskData.startTime && this.taskData.startTime!=""){
  350. this.taskStartTime.set("text",this.taskData.startTime);
  351. this.taskStartTime.setStyles({"color":"#333333"});
  352. }else{
  353. this.taskStartTime.set("text",this.lp.taskTimeStart);
  354. }
  355. if(this.taskData.endTime && this.taskData.endTime!=""){
  356. this.taskEndTime.set("text",this.taskData.endTime);
  357. this.taskEndTime.setStyles({"color":"#333333"});
  358. }else{
  359. this.taskEndTime.set("text",this.lp.taskTimeEnd);
  360. }
  361. if(true){ //权限
  362. this.taskStartTime.setStyles({"background-color":"#f5f5f5","cursor":"pointer"});
  363. this.taskEndTime.setStyles({"background-color":"#f5f5f5","cursor":"pointer"});
  364. this.taskStartTime.addEvents({
  365. click:function(){
  366. var opt = {
  367. type:"datetime"
  368. };
  369. this.app.selectCalendar(this.taskStartTime,this.container,opt,function(json){
  370. if(json.action == "ok"){
  371. this.taskStartTime.set("text",json.dateString);
  372. this.taskData.startTime = json.dateString
  373. }else if(json.action == "clear"){
  374. this.taskStartTime.set("text",this.lp.taskTimeStart);
  375. this.taskData.startTime = json.dateString
  376. }
  377. }.bind(this))
  378. }.bind(this)
  379. });
  380. this.taskEndTime.addEvents({
  381. click:function(){
  382. var opt = {
  383. type:"datetime"
  384. };
  385. this.app.selectCalendar(this.taskEndTime,this.container,opt,function(json){
  386. if(json.action == "ok"){
  387. this.taskEndTime.set("text",json.dateString);
  388. this.taskData.endTime = json.dateString
  389. }else if(json.action == "clear"){
  390. this.taskEndTime.set("text",this.lp.taskTimeEnd);
  391. this.taskData.endTime = json.dateString
  392. }
  393. }.bind(this))
  394. }.bind(this)
  395. })
  396. }
  397. },
  398. loadTaskPerson:function(node,identity,flag){
  399. var _self = this;
  400. var name = identity.split("@")[0];
  401. var container = new Element("div",{styles:{"height":"30px","padding":"0 5px","border-radius":"4px"}}).inject(node);
  402. var circleStyles={
  403. "width":"24px","height":"24px","border-radius":"20px","float":"left",
  404. "background-color":"#4A90E2","color":"#ffffff","line-height":"22px",
  405. "text-align":"center","margin-top":"3px","font-size":"12px"
  406. };
  407. var nameStyles={
  408. "height":"24px","float":"left","margin-left":"2px",
  409. "color":"#333333","line-height":"22px","margin-top":"3px"
  410. };
  411. var closeStyles={
  412. "width":"16px","height":"16px","float":"left","margin-left":"2px",
  413. "background":"url(/x_component_TeamWork/$Task/default/icon/icon_off.png) no-repeat center"
  414. };
  415. var circleDiv = new Element("div",{styles:circleStyles,text:name.substr(0,1)}).inject(container);
  416. var nameDiv = new Element("div",{styles:nameStyles,text:name}).inject(container);
  417. if(flag){
  418. container.addEvents({
  419. mouseenter:function(){
  420. var closeIcon = new Element("div.closeIcon",{styles:closeStyles}).inject(this);
  421. closeIcon.addEvents({
  422. click:function(e){
  423. _self.taskData.executor = "";
  424. _self.loadDutyValue();
  425. e.stopPropagation();
  426. }
  427. });
  428. this.setStyles({"background-color":"#efefef","cursor":"pointer"});
  429. },
  430. mouseleave:function(){
  431. if(this.getElement(".closeIcon"))this.getElement(".closeIcon").destroy();
  432. this.setStyles({"background-color":""})
  433. },
  434. click:function(e){
  435. _self.selectPerson(_self.taskDutyAddText,"identity",1,
  436. function(json){
  437. if(json.length>0){
  438. _self.taskData.executor = json[0];
  439. _self.loadDutyValue()
  440. }
  441. }
  442. );
  443. }
  444. })
  445. }
  446. },
  447. setAuth:function(){
  448. var _self = this;
  449. //名称
  450. },
  451. reload : function( keepData ){
  452. // if( keepData ){
  453. // this.data = this.form.getResult(false, this.options.resultSeparator, false, false, true);
  454. // }
  455. this.formTopNode = null;
  456. if(this.setFormNodeSizeFun && this.app && this.app.removeEvent){
  457. this.app.removeEvent("resize",this.setFormNodeSizeFun);
  458. }
  459. if( this.formMaskNode )this.formMaskNode.destroy();
  460. if( this.formAreaNode )this.formAreaNode.destroy();
  461. if( this.isNew ){
  462. this.create();
  463. }else if( this.isEdited ){
  464. this.edit();
  465. }else{
  466. this.open();
  467. }
  468. },
  469. selectPerson: function( item, type,count , callback) {
  470. MWF.xDesktop.requireApp("Selector", "package", null, false);
  471. this.fireEvent("querySelect", this);
  472. var value = [];
  473. var options = {
  474. "type": type,
  475. "title": "选人",
  476. "count": count,
  477. "values": value || [],
  478. "onComplete": function (items) {
  479. var arr = [];
  480. items.each(function (item) {
  481. arr.push(item.data.distinguishedName);
  482. }.bind(this));
  483. if(callback)callback(arr);
  484. }.bind(this)
  485. };
  486. var selector = new MWF.O2Selector(this.app.content, options);
  487. }
  488. });
  489. MWF.xApplication.TeamWork.Task.StatusCheck = new Class({
  490. Extends: MWF.xApplication.TeamWork.Common.ToolTips,
  491. options : {
  492. // displayDelay : 300,
  493. hasArrow:false,
  494. event:"click"
  495. },
  496. _loadCustom : function( callback ){
  497. var _self = this;
  498. this.css = this.options.css;
  499. this.lp = this.options.lp;
  500. //this.data
  501. var container = {
  502. "cursor":"pointer",
  503. "height":"40px",
  504. "width":"100%"
  505. };
  506. var text={
  507. "height":"30px","line-height":"30px","float":"left",
  508. "padding-left":"10px","padding-right":"10px","margin-left":"6px","margin-top":"5px",
  509. "font-size":"13px","color":"#666666","border-radius":"2px"
  510. };
  511. var icon = {
  512. "float":"right","width":"24px","height":"24px",
  513. "margin-top":"6px","margin-right":"8px",
  514. "background":"url(/x_component_TeamWork/$Task/default/icon/icon_dagou.png) no-repeat center"
  515. };
  516. var flowContainer = new Element("div",{styles:container}).inject(this.contentNode);
  517. var flowText = new Element("div",{styles:text,text:this.lp.status.flow}).inject(flowContainer);
  518. flowText.setStyles({"background-color":"#f0f0f0"});
  519. if(this.data.data.workStatus == this.lp.status.flow){
  520. var flowIcon = new Element("div",{styles:icon}).inject(flowContainer);
  521. }
  522. flowContainer.addEvents({
  523. click:function(){
  524. var data = {"status":"flow"};
  525. this.close(data)
  526. }.bind(this),
  527. mouseover:function(){this.setStyles({"background-color":"#f2f5f7"})},
  528. mouseout:function(){this.setStyles({"background-color":""})}
  529. });
  530. var completeContainer = new Element("div",{styles:container}).inject(this.contentNode);
  531. var completeText = new Element("div",{styles:text,text:this.lp.status.complete}).inject(completeContainer);
  532. completeText.setStyles({"color":"#69b439","background-color":"#f1f9ec"});
  533. if(this.data.data.workStatus == this.lp.status.complete){
  534. var completeIcon = new Element("div",{styles:icon}).inject(completeContainer);
  535. }
  536. completeContainer.addEvents({
  537. click:function(){
  538. var data = {"status":"complete"};
  539. this.close(data)
  540. }.bind(this),
  541. mouseover:function(){this.setStyles({"background-color":"#f2f5f7"})},
  542. mouseout:function(){this.setStyles({"background-color":""})}
  543. });
  544. // this.naviViewTipLayout = new Element("div.naviViewTipLayout",{styles:this.css.naviViewTipLayout}).inject(this.contentNode);
  545. // this.naviViewTipEditContainer = new Element("div.naviViewTipContainer",{styles:this.css.naviViewTipContainer}).inject(this.naviViewTipLayout);
  546. // this.naviViewTipEditIcon = new Element("div.naviViewTipEditIcon",{styles:this.css.naviViewTipEditIcon}).inject(this.naviViewTipEditContainer);
  547. // this.naviViewTipEditText = new Element("div.naviViewTipText",{styles:this.css.naviViewTipText,text:this.lp.viewEdit}).inject(this.naviViewTipEditContainer);
  548. // this.naviViewTipEditContainer.addEvents({
  549. // click:function(){
  550. //
  551. // }.bind(this),
  552. // mouseover:function(){this.naviViewTipEditContainer.setStyles({"background-color":"#F7F7F7"})}.bind(this),
  553. // mouseout:function(){this.naviViewTipEditContainer.setStyles({"background-color":""})}.bind(this)
  554. // });
  555. //
  556. // this.naviViewTipRemoveContainer = new Element("div.naviViewTipContainer",{styles:this.css.naviViewTipContainer}).inject(this.naviViewTipLayout);
  557. // this.naviViewTipRemoveIcon = new Element("div.naviViewTipRemoveIcon",{styles:this.css.naviViewTipRemoveIcon}).inject(this.naviViewTipRemoveContainer);
  558. // this.naviViewTipRemoveText = new Element("div.naviViewTipText",{styles:this.css.naviViewTipText,text:this.lp.viewRemove}).inject(this.naviViewTipRemoveContainer);
  559. // this.naviViewTipRemoveContainer.addEvents({
  560. // click:function(e){
  561. // _self.app.confirm("warn",e,_self.app.lp.common.confirm.removeTitle,_self.app.lp.common.confirm.removeContent,300,120,function(){
  562. //
  563. //
  564. // },function(){
  565. // this.close();
  566. //
  567. // });
  568. // }.bind(this),
  569. // mouseover:function(){this.naviViewTipRemoveContainer.setStyles({"background-color":"#F7F7F7"})}.bind(this),
  570. // mouseout:function(){this.naviViewTipRemoveContainer.setStyles({"background-color":""})}.bind(this)
  571. // });
  572. if(callback)callback();
  573. }
  574. });