glj_view_contextMenu.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322
  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. if(gljOprObj.detailSheetReadonly()){
  118. return true
  119. }else {
  120. return gljContextMenu.selectedRow>sheetData.length;
  121. }
  122. },
  123. callback: function () {
  124. projectObj.project.quantity_detail.insertQuantityDetail(gljContextMenu.selectedRow);
  125. },
  126. visible: function(key, opt){
  127. return subSpread.getActiveSheet().name()=='quantity_detail';
  128. }
  129. },
  130. "delete_detail": {
  131. name: '删除行',
  132. icon: 'fa-remove',
  133. disabled: function () {
  134. var sheetData = gljOprObj.detailData;
  135. return gljContextMenu.selectedRow>sheetData.length-1;
  136. },
  137. callback:function () {
  138. projectObj.project.quantity_detail.deleteQuantityDetail(gljContextMenu.selectedRow);
  139. },
  140. visible: function(key, opt){
  141. return subSpread.getActiveSheet().name()=='quantity_detail';
  142. }
  143. },
  144. "move_up": {
  145. name: '上移',
  146. icon: 'fa-arrow-up',
  147. disabled: function () {
  148. var sheetData = gljOprObj.detailData;
  149. return gljContextMenu.selectedRow==0||gljContextMenu.selectedRow>sheetData.length-1;
  150. },
  151. callback: function () {
  152. projectObj.project.quantity_detail.moveUp(gljContextMenu.selectedRow);
  153. },
  154. visible: function(key, opt){
  155. return subSpread.getActiveSheet().name()=='quantity_detail';
  156. }
  157. },
  158. "move_down": {
  159. name: '下移',
  160. icon: 'fa-arrow-down',
  161. disabled: function () {
  162. var sheetData = gljOprObj.detailData;
  163. return gljContextMenu.selectedRow>sheetData.length-2;
  164. },
  165. callback: function () {
  166. projectObj.project.quantity_detail.moveDown(gljContextMenu.selectedRow);
  167. },
  168. visible: function(key, opt){
  169. return subSpread.getActiveSheet().name()=='quantity_detail';
  170. }
  171. },
  172. "copy": {
  173. name: '复制',
  174. icon: 'fa-files-o',
  175. disabled: function () {
  176. var sheet = subSpread.getActiveSheet();
  177. var sheetData = gljOprObj.detailData;
  178. var value = sheet.getCell(gljContextMenu.selectedRow,gljContextMenu.selectedCol).value();
  179. return gljContextMenu.selectedRow>sheetData.length-1||value==null;
  180. },
  181. callback: function () {
  182. gljContextMenu.clipboard={
  183. row:gljContextMenu.selectedRow,
  184. col:gljContextMenu.selectedCol
  185. };
  186. },
  187. visible: function(key, opt){
  188. return subSpread.getActiveSheet().name()=='quantity_detail';
  189. }
  190. },
  191. "paste": {
  192. name: '粘贴',
  193. icon: 'fa-clipboard',
  194. disabled: function () {
  195. var sheetData = gljOprObj.detailData;
  196. return gljContextMenu.selectedRow>sheetData.length||gljContextMenu.clipboard==null;
  197. },
  198. callback: function () {
  199. var sheet = subSpread.getActiveSheet();
  200. var c=gljContextMenu.clipboard;
  201. console.log(sheet.getCell(c.row,c.col).value());
  202. var args={
  203. 'row':gljContextMenu.selectedRow,
  204. 'col':gljContextMenu.selectedCol,
  205. 'editingText':sheet.getCell(c.row,c.col).value()
  206. }
  207. gljOprObj.onEditDetailSheet(args);
  208. },
  209. visible: function(key, opt){
  210. return subSpread.getActiveSheet().name()=='quantity_detail';
  211. }
  212. },
  213. "modify_rule": {
  214. name: '修改规则',
  215. icon: 'fa-sign-in',
  216. disabled: function () {//当选中空行或者ruleID为空的情况下,灰显
  217. let sheetData = installationFeeObj.rationInstallData;
  218. if(gljContextMenu.selectedRow>sheetData.length-1){
  219. return true
  220. }
  221. let ri = sheetData[gljContextMenu.selectedRow];
  222. if(!ri.ruleId||ri.ruleId==''){
  223. return true;
  224. }
  225. return false;
  226. },
  227. callback: function () {
  228. $("#modify_feeRule").modal({show:true});
  229. },
  230. visible: function(key, opt){
  231. return subSpread.getActiveSheet().name()=='rationInstallSheet';
  232. }
  233. },
  234. "apply_to_FX": {
  235. name: '应用到当前分项',
  236. icon: 'fa-sign-in',
  237. disabled: function () {
  238. /* var sheetData = gljOprObj.detailData;
  239. return gljContextMenu.selectedRow>sheetData.length-2;*/
  240. },
  241. callback: function () {
  242. //projectObj.project.quantity_detail.moveDown(gljContextMenu.selectedRow);
  243. },
  244. visible: function(key, opt){
  245. return subSpread.getActiveSheet().name()=='rationInstallSheet';
  246. }
  247. },
  248. "apply_to_FB": {
  249. name: '应用到当前分部',
  250. icon: 'fa-sign-in',
  251. disabled: function () {
  252. /* var sheetData = gljOprObj.detailData;
  253. return gljContextMenu.selectedRow>sheetData.length-2;*/
  254. },
  255. callback: function () {
  256. //projectObj.project.quantity_detail.moveDown(gljContextMenu.selectedRow);
  257. },
  258. visible: function(key, opt){
  259. return subSpread.getActiveSheet().name()=='rationInstallSheet';
  260. }
  261. },
  262. "apply_to_PRO": {
  263. name: '应用到当前项目',
  264. icon: 'fa-sign-in',
  265. disabled: function () {
  266. /* var sheetData = gljOprObj.detailData;
  267. return gljContextMenu.selectedRow>sheetData.length-2;*/
  268. },
  269. callback: function () {
  270. //projectObj.project.quantity_detail.moveDown(gljContextMenu.selectedRow);
  271. },
  272. visible: function(key, opt){
  273. return subSpread.getActiveSheet().name()=='rationInstallSheet';
  274. }
  275. }
  276. }
  277. });
  278. },
  279. onbuild:function ($trigger, e) {
  280. var target = SheetDataHelper.safeRightClickSelection($trigger, e, subSpread);
  281. gljContextMenu.selectedRow = target.row;
  282. gljContextMenu.selectedCol = target.col;
  283. //controller.setTreeSelected(controller.tree.items[target.row]);
  284. return target.hitTestType === GC.Spread.Sheets.SheetArea.viewport || target.hitTestType === GC.Spread.Sheets.SheetArea.rowHeader;
  285. }
  286. }
  287. function getGLJData(actionType) {
  288. $('#actionType').val(actionType);
  289. $.bootstrapLoading.start();
  290. console.log(+new Date());
  291. projectObj.project.ration_glj.getGLJData(function (result) {
  292. console.log(+new Date());
  293. zTreeHelper.createTree(result.datas.treeData, gljOprObj.gljTreeSetting, "gljTree", gljOprObj);
  294. gljOprObj.stdGLJ=result.datas.stdGLJ;
  295. gljOprObj.complementaryGLJs=result.datas.complementaryGLJs;
  296. for(let compleGlj of gljOprObj.complementaryGLJs){
  297. //是否新增
  298. compleGlj.isComplementary = true;
  299. }
  300. gljOprObj.AllRecode=gljOprObj.stdGLJ.concat(gljOprObj.complementaryGLJs);
  301. gljOprObj.distTypeTree=gljOprObj.getComboData(result.datas.distTypeTree);
  302. $('#modalCon').width($(window).width()*0.5);
  303. $("input[name='glj']").get(0).checked=true;
  304. $.bootstrapLoading.end();
  305. console.log(+new Date());
  306. $("#glj_tree_div").modal({show:true});
  307. })
  308. }
  309. function showGLJClassTree(record) {
  310. CommonAjax.post('/rationGlj/getGLJClass',record, function (data) {
  311. if(data.exist==true){
  312. alert("当前工料机已存在。");
  313. }else {
  314. gljOprObj.selectedGLJClass = record;
  315. $("#glj_class_div").modal({show:true});
  316. zTreeHelper.createTree(data.items, gljOprObj.gljTreeSetting, "classTree", gljOprObj);
  317. }
  318. })
  319. }