explanatory.js 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. /**
  2. * Created by Zhong on 2017/12/20.
  3. */
  4. //定额章节节点说明、计算规则
  5. let explanatoryOprObj = {
  6. preTreeNode: null,
  7. currentTreeNode: null,//定额章节树节点
  8. currentExplanation: null,
  9. currentRuleText: null,
  10. setAttribute: function (preNode, currentNode, explanation, ruleText) {
  11. let me = explanatoryOprObj;
  12. me.preTreeNode = preNode;
  13. me.currentTreeNode = currentNode;
  14. me.currentExplanation = explanation;
  15. me.currentRuleText = ruleText;
  16. },
  17. clickUpdate: function (exarea, ruarea) {//解决编辑完后在未失去焦点的时候直接定额章节树
  18. let me = explanatoryOprObj;
  19. if(exarea.is(':focus')){
  20. let explanation = exarea.val();
  21. if(explanation !== me.currentExplanation){
  22. me.preTreeNode.data.explanation = explanation;
  23. me.unbindEvents(exarea, ruarea);
  24. exarea.blur();
  25. me.updateExplanation(pageOprObj.rationLibId, me.preTreeNode.getID(), explanation, function () {
  26. me.bindEvents(exarea, ruarea);
  27. });
  28. }
  29. }
  30. if(ruarea.is(':focus')){
  31. let ruleText = ruarea.val();
  32. if(ruleText !== me.currentRuleText){
  33. me.preTreeNode.data.ruleText = ruleText;
  34. me.unbindEvents(exarea, ruarea);
  35. ruarea.blur();
  36. me.updateRuleText(pageOprObj.rationLibId, me.preTreeNode.getID(), ruleText, function () {
  37. me.bindEvents(exarea, ruarea);
  38. });
  39. }
  40. }
  41. },
  42. unbindEvents: function (exarea, ruarea) {
  43. exarea.unbind();
  44. ruarea.unbind();
  45. },
  46. bindEvents: function (exarea, ruarea) {
  47. let me = explanatoryOprObj;
  48. exarea.bind('change', function () {
  49. let explanation = exarea.val();
  50. let node = me.currentTreeNode;
  51. exarea.attr('disabled', true);
  52. me.updateExplanation(pageOprObj.rationLibId, node.getID(), explanation, function () {
  53. node.data.explanation = explanation;
  54. exarea.attr('disabled', false);
  55. });
  56. });
  57. ruarea.bind('change', function () {
  58. let ruleText = ruarea.val();
  59. let node = me.currentTreeNode;
  60. ruarea.attr('disabled', true);
  61. me.updateRuleText(pageOprObj.rationLibId, node.getID(), ruleText, function () {
  62. node.data.ruleText = ruleText;
  63. ruarea.attr('disabled', false);
  64. });
  65. });
  66. },
  67. showText: function (exarea, ruarea, explanation, ruleText) {
  68. exarea.val(explanation && explanation !== 'undefined' ? explanation : '');
  69. ruarea.val(ruleText && ruleText !== 'undefined' ? ruleText : '');
  70. },
  71. //更新说明
  72. updateExplanation: function (repId, nodeId, explanation, callback) {
  73. $.ajax({
  74. type: 'post',
  75. url: 'api/updateExplanation',
  76. data: {lastOpr: userAccount, repId: pageOprObj.rationLibId, nodeId: nodeId, explanation: explanation},
  77. dataType: 'json',
  78. success: function () {
  79. callback();
  80. }
  81. });
  82. },
  83. //更新计算规则
  84. updateRuleText: function (repId, nodeId, explanation, callback) {
  85. $.ajax({
  86. type: 'post',
  87. url: 'api/updateRuleText',
  88. data: {lastOpr: userAccount, repId: pageOprObj.rationLibId, nodeId: nodeId, ruleText: explanation},
  89. dataType: 'json',
  90. success: function () {
  91. callback();
  92. }
  93. });
  94. }
  95. };