coeList.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. /**
  2. * Created by CSL on 2017-05-18.
  3. */
  4. $("#drirect-dinge").click(function(){
  5. $(this).attr('href', "/rationRepository/ration" + "?repository=" + getQueryString("repository"))
  6. });
  7. $("#gongliao").click(function(){
  8. $(this).attr('href', "/rationRepository/lmm" + "?repository=" + getQueryString("repository"))
  9. });
  10. var coeList = {
  11. libID: -1,
  12. datas: [],
  13. colDefMain: [
  14. {name: "ID", displayName: "编号",formatter: "000000", size: 100},
  15. {name: "name", displayName: "名称", size: 280},
  16. {name: "content", displayName: "内容", size: 250}
  17. ],
  18. colDefContent: [
  19. {name: "coeType", displayName: "类型", size: 100, hAlign: "center"},
  20. {name: "gljID", displayName: "工料机ID", size: 100, hAlign: "center",formatter: "000000"},
  21. {name: "operator", displayName: "操作符", size: 60, hAlign: "center"},
  22. {name: "amount", displayName: "数量", size: 80, hAlign: "right"}
  23. ],
  24. mainSpread: null,
  25. detailSpread: null,
  26. getLibID: function(libName){
  27. var me = this;
  28. $.ajax({
  29. type:"POST",
  30. url:"/rationRepository/api/getLibIDByName",
  31. data:{"libName": libName},
  32. dataType:"json",
  33. cache:false,
  34. async: false,
  35. timeout:20000,
  36. success: function (result) {
  37. if (result.data) {
  38. me.libID = result.data;
  39. }
  40. },
  41. error: function (result) {
  42. alert('内部程序错误!');
  43. }
  44. })
  45. },
  46. getDatas: function (libName) {
  47. var me = this;
  48. me.getLibID(libName);
  49. if (me.libID == -1){
  50. return false;
  51. };
  52. $.ajax({
  53. type:"POST",
  54. url:"/rationRepository/api/getCoeList",
  55. data:{"libID": me.libID},
  56. dataType:"json",
  57. cache:false,
  58. async: false,
  59. timeout:20000,
  60. success: function (result) {
  61. if (result.data) {
  62. me.datas = result.data;
  63. };
  64. },
  65. error: function (result) {
  66. alert('内部程序错误!');
  67. }
  68. })
  69. },
  70. show: function (){
  71. var me = this;
  72. var libName = getQueryString("repository");
  73. // datas from server.
  74. me.getDatas(libName);
  75. me.mainSpread = sheetObj.create($('#mainSpread')[0], me.colDefMain, me.datas);
  76. me.detailSpread = sheetObj.create($('#contentSpread')[0], me.colDefContent, me.datas[0].coes);
  77. me.mainSpread.getSheet(0).bind(GC.Spread.Sheets.Events.EnterCell, me.onMainEnterCell);
  78. me.detailSpread.getSheet(0).bind(GC.Spread.Sheets.Events.CellChanged, me.onDetailCellChanged);
  79. var coeType = new GC.Spread.Sheets.CellTypes.ComboBox();
  80. coeType.items(["单个","全部","人工类","材料类","机械类"]);
  81. me.detailSpread.getSheet(0).getRange(-1, 0, -1, 1).cellType(coeType);
  82. // datas for test.
  83. //sheetObj.create($('#mainSpread')[0], me.colDefMain, createDatas(50));
  84. //sheetObj.create($('#contentSpread')[0], me.colDefContent, createContents(10));
  85. },
  86. onMainEnterCell: function(sender, args) {
  87. var me = coeList;
  88. var row = args.sheet.getActiveRowIndex();
  89. me.detailSpread.suspendPaint();
  90. me.detailSpread.getSheet(0).setDataSource(me.datas[row].coes);
  91. me.detailSpread.resumePaint();
  92. },
  93. onDetailCellChanged: function(sender, args) {
  94. var me = coeList;
  95. var row = args.sheet.getActiveRowIndex();
  96. var curType = args.sheet.getValue(row,0);
  97. if (!(curType == '单个')){
  98. args.sheet.setValue(row, 1, null);
  99. //args.sheet.getCell(row, 1).backColor("red");
  100. }
  101. else{
  102. //args.sheet.getCell(row, 1).backColor("Blue");
  103. };
  104. }
  105. };
  106. coeList.show();
  107. function createDatas(counts){
  108. var datas = [];
  109. var names = ['洞内排水量15m3/h以内', '二级以上松土', '三四级石方', '灌注桩,水平泵送混凝土距离100m', '用于拆除工程'];
  110. for (var i = 0; i < counts; i++) {
  111. var data = new Object();
  112. data.ID = i;
  113. data.name = names[i % names.length] + i;
  114. data.content = '附注条件' + data.name + '之内容部分';
  115. datas.push(data);
  116. };
  117. return datas;
  118. }
  119. function createContents(counts){
  120. var datas = [];
  121. var types = ['人工类', '材料类', '机械类','单GLJ','全部'];
  122. var operators = ['+', '-', '*', '/', '='];
  123. for (var i = 0; i < counts; i++) {
  124. var data = new Object();
  125. data.coeType = types[i % types.length];
  126. data.gljID = (data.coeType == '单GLJ') ? Math.floor(Math.random() * 1000) : '';
  127. data.operator = operators[i % operators.length];
  128. data.amount = Math.floor(Math.random() * 1000) / 100;
  129. data.amount2 = Math.floor(Math.random() * 1000) / 100;
  130. data.amount3 = Math.floor(Math.random() * 1000) / 100;
  131. data.amount4 = Math.floor(Math.random() * 1000) / 100;
  132. datas.push(data);
  133. };
  134. return datas;
  135. }