glj_view_contextMenu.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318
  1. /**
  2. * Created by chen on 2017/7/25.
  3. */
  4. var gljContextMenu = {
  5. selectedRow :null,
  6. selectedCol:null,
  7. clipboard:null,
  8. loadGLJSpreadContextMenu: function () {
  9. $.contextMenu({
  10. selector: '#subSpread',
  11. build: this.onbuild,
  12. items: {
  13. "delete_glj": {
  14. name: '删除工料机',
  15. icon: 'fa-remove',
  16. disabled: function () {
  17. var sheetData = gljOprObj.sheetData;
  18. var disable = true;
  19. if(subSpread.getActiveSheetIndex()==0&&sheetData!=null&&sheetData.length>0&&gljContextMenu.selectedRow<sheetData.length){
  20. disable= sheetData[gljContextMenu.selectedRow].isMixRatio==true?true:false;
  21. }
  22. return disable;
  23. },
  24. callback: function () {
  25. var sheetData = gljOprObj.sheetData;
  26. var deleteRow = sheetData[gljContextMenu.selectedRow];
  27. projectObj.project.ration_glj.updataOrdelete(deleteRow);
  28. },
  29. visible: function(key, opt){
  30. return subSpread.getActiveSheet().name()=='ration_glj';
  31. }
  32. },
  33. "add_glj": {
  34. name: '添加工料机',
  35. icon: 'fa-sign-in',
  36. disabled: function () {
  37. var disable = true;
  38. var selected = projectObj.project.mainTree.selected;
  39. var sheetData = gljOprObj.sheetData;
  40. if(selected&&selected.sourceType==ModuleNames.ration&&selected.data.type==rationType.ration){
  41. disable=false;
  42. }
  43. if(subSpread.getActiveSheetIndex()==0&&sheetData!=null&&sheetData.length>0&&gljContextMenu.selectedRow<sheetData.length){
  44. disable= sheetData[gljContextMenu.selectedRow].isMixRatio==true?true:false;
  45. }
  46. return disable;
  47. },
  48. callback:function () {
  49. getGLJData('add');
  50. },
  51. visible: function(key, opt){
  52. return subSpread.getActiveSheet().name()=='ration_glj';
  53. }
  54. },
  55. "replace_glj": {
  56. name: '替换工料机',
  57. icon: 'fa-sign-in',
  58. disabled: function () {
  59. var sheetData = gljOprObj.sheetData;
  60. var disable = true;
  61. if(subSpread.getActiveSheetIndex()==0&&sheetData!=null&&sheetData.length>0&&gljContextMenu.selectedRow<sheetData.length){
  62. disable= sheetData[gljContextMenu.selectedRow].isMixRatio==true?true:false;
  63. }
  64. return disable;
  65. },
  66. callback: function () {
  67. getGLJData('replace');
  68. },
  69. visible: function(key, opt){
  70. return subSpread.getActiveSheet().name()=='ration_glj';
  71. }
  72. },
  73. "m_replace_glj": {
  74. name: '批量替换工料机',
  75. icon: 'fa-sign-in',
  76. disabled: function () {
  77. var sheetData = gljOprObj.sheetData;
  78. var disable = true;
  79. if(subSpread.getActiveSheetIndex()==0&&sheetData!=null&&sheetData.length>0&&gljContextMenu.selectedRow<sheetData.length){
  80. disable= sheetData[gljContextMenu.selectedRow].isMixRatio==true?true:false;
  81. }
  82. return disable;
  83. },
  84. callback: function () {
  85. getGLJData('m_replace');
  86. },
  87. visible: function(key, opt){
  88. return subSpread.getActiveSheet().name()=='ration_glj';
  89. }
  90. },
  91. "add_to_lib": {
  92. name: '保存到我的工料机库',
  93. icon: 'fa-sign-in',
  94. disabled: function () {
  95. var sheetData = gljOprObj.sheetData;
  96. var disable = true;
  97. if(subSpread.getActiveSheetIndex()==0&&sheetData!=null&&sheetData.length>0&&gljContextMenu.selectedRow<sheetData.length){
  98. var recode = sheetData[gljContextMenu.selectedRow];
  99. disable= recode.isMixRatio!=true&&recode.isAdd==true?false:true
  100. }
  101. return disable;
  102. },
  103. callback: function () {
  104. var sheetData = gljOprObj.sheetData;
  105. var recode = sheetData[gljContextMenu.selectedRow];
  106. showGLJClassTree(recode);
  107. },
  108. visible: function(key, opt){
  109. return subSpread.getActiveSheet().name()=='ration_glj';
  110. }
  111. },
  112. "insert_detail": {
  113. name: '插入行',
  114. icon: 'fa-sign-in',
  115. disabled: function () {
  116. var sheetData = gljOprObj.detailData;
  117. return gljContextMenu.selectedRow>sheetData.length;
  118. },
  119. callback: function () {
  120. projectObj.project.quantity_detail.insertQuantityDetail(gljContextMenu.selectedRow);
  121. },
  122. visible: function(key, opt){
  123. return subSpread.getActiveSheet().name()=='quantity_detail';
  124. }
  125. },
  126. "delete_detail": {
  127. name: '删除行',
  128. icon: 'fa-remove',
  129. disabled: function () {
  130. var sheetData = gljOprObj.detailData;
  131. return gljContextMenu.selectedRow>sheetData.length-1;
  132. },
  133. callback:function () {
  134. projectObj.project.quantity_detail.deleteQuantityDetail(gljContextMenu.selectedRow);
  135. },
  136. visible: function(key, opt){
  137. return subSpread.getActiveSheet().name()=='quantity_detail';
  138. }
  139. },
  140. "move_up": {
  141. name: '上移',
  142. icon: 'fa-arrow-up',
  143. disabled: function () {
  144. var sheetData = gljOprObj.detailData;
  145. return gljContextMenu.selectedRow==0||gljContextMenu.selectedRow>sheetData.length-1;
  146. },
  147. callback: function () {
  148. projectObj.project.quantity_detail.moveUp(gljContextMenu.selectedRow);
  149. },
  150. visible: function(key, opt){
  151. return subSpread.getActiveSheet().name()=='quantity_detail';
  152. }
  153. },
  154. "move_down": {
  155. name: '下移',
  156. icon: 'fa-arrow-down',
  157. disabled: function () {
  158. var sheetData = gljOprObj.detailData;
  159. return gljContextMenu.selectedRow>sheetData.length-2;
  160. },
  161. callback: function () {
  162. projectObj.project.quantity_detail.moveDown(gljContextMenu.selectedRow);
  163. },
  164. visible: function(key, opt){
  165. return subSpread.getActiveSheet().name()=='quantity_detail';
  166. }
  167. },
  168. "copy": {
  169. name: '复制',
  170. icon: 'fa-files-o',
  171. disabled: function () {
  172. var sheet = subSpread.getActiveSheet();
  173. var sheetData = gljOprObj.detailData;
  174. var value = sheet.getCell(gljContextMenu.selectedRow,gljContextMenu.selectedCol).value();
  175. return gljContextMenu.selectedRow>sheetData.length-1||value==null;
  176. },
  177. callback: function () {
  178. gljContextMenu.clipboard={
  179. row:gljContextMenu.selectedRow,
  180. col:gljContextMenu.selectedCol
  181. };
  182. },
  183. visible: function(key, opt){
  184. return subSpread.getActiveSheet().name()=='quantity_detail';
  185. }
  186. },
  187. "paste": {
  188. name: '粘贴',
  189. icon: 'fa-clipboard',
  190. disabled: function () {
  191. var sheetData = gljOprObj.detailData;
  192. return gljContextMenu.selectedRow>sheetData.length||gljContextMenu.clipboard==null;
  193. },
  194. callback: function () {
  195. var sheet = subSpread.getActiveSheet();
  196. var c=gljContextMenu.clipboard;
  197. console.log(sheet.getCell(c.row,c.col).value());
  198. var args={
  199. 'row':gljContextMenu.selectedRow,
  200. 'col':gljContextMenu.selectedCol,
  201. 'editingText':sheet.getCell(c.row,c.col).value()
  202. }
  203. gljOprObj.onEditDetailSheet(args);
  204. },
  205. visible: function(key, opt){
  206. return subSpread.getActiveSheet().name()=='quantity_detail';
  207. }
  208. },
  209. "modify_rule": {
  210. name: '修改规则',
  211. icon: 'fa-sign-in',
  212. disabled: function () {//当选中空行或者ruleID为空的情况下,灰显
  213. let sheetData = installationFeeObj.rationInstallData;
  214. if(gljContextMenu.selectedRow>sheetData.length-1){
  215. return true
  216. }
  217. let ri = sheetData[gljContextMenu.selectedRow];
  218. if(!ri.ruleId||ri.ruleId==''){
  219. return true;
  220. }
  221. return false;
  222. },
  223. callback: function () {
  224. $("#modify_feeRule").modal({show:true});
  225. },
  226. visible: function(key, opt){
  227. return subSpread.getActiveSheet().name()=='rationInstallSheet';
  228. }
  229. },
  230. "apply_to_FX": {
  231. name: '应用到当前分项',
  232. icon: 'fa-sign-in',
  233. disabled: function () {
  234. /* var sheetData = gljOprObj.detailData;
  235. return gljContextMenu.selectedRow>sheetData.length-2;*/
  236. },
  237. callback: function () {
  238. //projectObj.project.quantity_detail.moveDown(gljContextMenu.selectedRow);
  239. },
  240. visible: function(key, opt){
  241. return subSpread.getActiveSheet().name()=='rationInstallSheet';
  242. }
  243. },
  244. "apply_to_FB": {
  245. name: '应用到当前分部',
  246. icon: 'fa-sign-in',
  247. disabled: function () {
  248. /* var sheetData = gljOprObj.detailData;
  249. return gljContextMenu.selectedRow>sheetData.length-2;*/
  250. },
  251. callback: function () {
  252. //projectObj.project.quantity_detail.moveDown(gljContextMenu.selectedRow);
  253. },
  254. visible: function(key, opt){
  255. return subSpread.getActiveSheet().name()=='rationInstallSheet';
  256. }
  257. },
  258. "apply_to_PRO": {
  259. name: '应用到当前项目',
  260. icon: 'fa-sign-in',
  261. disabled: function () {
  262. /* var sheetData = gljOprObj.detailData;
  263. return gljContextMenu.selectedRow>sheetData.length-2;*/
  264. },
  265. callback: function () {
  266. //projectObj.project.quantity_detail.moveDown(gljContextMenu.selectedRow);
  267. },
  268. visible: function(key, opt){
  269. return subSpread.getActiveSheet().name()=='rationInstallSheet';
  270. }
  271. }
  272. }
  273. });
  274. },
  275. onbuild:function ($trigger, e) {
  276. var target = SheetDataHelper.safeRightClickSelection($trigger, e, subSpread);
  277. gljContextMenu.selectedRow = target.row;
  278. gljContextMenu.selectedCol = target.col;
  279. //controller.setTreeSelected(controller.tree.items[target.row]);
  280. return target.hitTestType === GC.Spread.Sheets.SheetArea.viewport || target.hitTestType === GC.Spread.Sheets.SheetArea.rowHeader;
  281. }
  282. }
  283. function getGLJData(actionType) {
  284. $('#actionType').val(actionType);
  285. $.bootstrapLoading.start();
  286. console.log(+new Date());
  287. projectObj.project.ration_glj.getGLJData(function (result) {
  288. console.log(+new Date());
  289. zTreeHelper.createTree(result.datas.treeData, gljOprObj.gljTreeSetting, "gljTree", gljOprObj);
  290. gljOprObj.stdGLJ=result.datas.stdGLJ;
  291. gljOprObj.complementaryGLJs=result.datas.complementaryGLJs;
  292. for(let compleGlj of gljOprObj.complementaryGLJs){
  293. //是否新增
  294. compleGlj.isComplementary = true;
  295. }
  296. gljOprObj.AllRecode=gljOprObj.stdGLJ.concat(gljOprObj.complementaryGLJs);
  297. gljOprObj.distTypeTree=gljOprObj.getComboData(result.datas.distTypeTree);
  298. $('#modalCon').width($(window).width()*0.5);
  299. $("input[name='glj']").get(0).checked=true;
  300. $.bootstrapLoading.end();
  301. console.log(+new Date());
  302. $("#glj_tree_div").modal({show:true});
  303. })
  304. }
  305. function showGLJClassTree(record) {
  306. CommonAjax.post('/rationGlj/getGLJClass',record, function (data) {
  307. if(data.exist==true){
  308. alert("当前工料机已存在。");
  309. }else {
  310. gljOprObj.selectedGLJClass = record;
  311. $("#glj_class_div").modal({show:true});
  312. zTreeHelper.createTree(data.items, gljOprObj.gljTreeSetting, "classTree", gljOprObj);
  313. }
  314. })
  315. }