sub_fee_rate_views.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. /**
  2. * Created by chen on 2017/8/1.
  3. */
  4. var optionMap={
  5. "1":[{}]
  6. };
  7. var subRateData=[
  8. {"ID":10101,"name":"工程分类","typeName":"一类工程",optionList:[{name:'一类工程',value:"1",selected:true},{name:'二类工程',value:"2",selected:false},{name:'三类工程',value:"3",selected:false}]},
  9. {"ID":10102,"name":"地区","typeName":"在市区",optionList:[{name:'在市区',value:16.36,selected:false},{name:'县城镇',value:16.21,selected:true},{name:'不在市区、县城镇',value:15.94,selected:false}]}
  10. ];
  11. var subRateObject={
  12. views:null,
  13. datas:null,
  14. valueMap:null,
  15. canEdit:true,
  16. columns: [
  17. {
  18. id: 'name',
  19. caption: '参数名称',
  20. dataField: 'name',
  21. width: 250,
  22. allowEditing: false
  23. },
  24. {
  25. id: 'typeName',
  26. caption: '参数值',
  27. dataField: 'typeName',
  28. width: 200,
  29. minWidth: 50,
  30. allowEditing: true,
  31. presenter:'<div><select class="form-control form-control-sm" id="{{=it.ID}}" onchange="subRateObject.subRateChange(this)" style="width: 100%"> </select></div>'
  32. },
  33. {
  34. id: 'ID',
  35. caption: 'ID',
  36. dataField: 'ID',
  37. width: 80,
  38. visible: false,
  39. allowEditing: false
  40. }
  41. ],
  42. options :{
  43. allowSorting: false,
  44. showRowHeader: true,
  45. colMinWidth: 80,
  46. rowHeight: 33,
  47. allowEditing: this.canEdit,
  48. editMode: 'inline',
  49. editUnit: 'cell',
  50. selectionUnit:(this.canEdit == true) ? "cell" : "row"
  51. },
  52. createSpreadView:function () {
  53. if (this.views) {
  54. this.views.destroy();
  55. this.views = null;
  56. }
  57. this.views = new GC.Spread.Views.DataView($('#subRate')[0],
  58. this.datas, this.columns, new GC.Spread.Views.Plugins.GridLayout(this.options));
  59. this.views["rowDbClick"].addHandler(function () {
  60. console.log('hh')
  61. });
  62. this.views.invalidate();
  63. document.querySelector('#subRate').focus();
  64. this.addComboboxOption(this.datas);
  65. },
  66. reFreshRateViews:function(sender,args) {
  67. subRateObject.datas = projectObj.project.FeeRate.getSubViewData(args.item);
  68. subRateObject.valueMap=projectObj.project.FeeRate.getValueMap(args.item);
  69. subRateObject.createSpreadView();
  70. },
  71. addComboboxOption:function (datas) {
  72. //<option value ="volvo">Volvo</option> <option value ="saab">Saab</option> <option value="opel">Opel</option> <option value="audi">Audi</option>
  73. _.forEach(datas,function (item) {
  74. var selectvalue = 0;
  75. _.forEach(item.optionList,function (o) {
  76. var option = $("<option>").val(o.value).text(o.name);
  77. $('#'+item.ID).append(option);
  78. if(o.selected){
  79. selectvalue = o.value;
  80. }
  81. })
  82. $('#'+item.ID).val(selectvalue);
  83. })
  84. },
  85. subRateChange:function(select){
  86. var me = subRateObject;
  87. var selectValueList=[];
  88. var selectMap={};
  89. if(me.datas&&me.datas.length>0){
  90. _.forEach(me.datas,function (d,key) {
  91. var selectValue = $('#'+d.ID).val();
  92. selectValueList.push(selectValue);
  93. selectMap[key]=selectValue;
  94. })
  95. var mapID =selectValueList.join('-');
  96. var rate = me.valueMap[mapID];
  97. feeRateObject.updateBySelect(rate,selectMap,mapID);
  98. }
  99. },
  100. destorySpreadView:function () {
  101. if(this.views){
  102. this.views.destroy();
  103. this.views = null;
  104. }
  105. subRateObject.datas=null;
  106. subRateObject.valueMap=null;
  107. }
  108. }