123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294 |
- /**
- * Created by chen on 2017/8/1.
- */
- /*var rate_data = [
- {"ID":1,"ParentID":null,"name":"企业管理费","rate":null,"memo":""},
- {"ID":101,"ParentID":1,"name":"建筑工程","rate":16.36,"memo":""},
- {"ID":102,"ParentID":1,"name":"市政工程","rate":17.43,"memo":""},
- {"ID":103,"ParentID":1,"name":"机械土石方","rate":10.82,"memo":""},
- {"ID":104,"ParentID":1,"name":"仿古建筑工程","rate":12,"memo":""},
- {"ID":105,"ParentID":1,"name":"建筑修缮工程","rate":12.47,"memo":""},
- {"ID":106,"ParentID":1,"name":"炉窑砌筑工程","rate":10.8,"memo":""},
- {"ID":2, "ParentID":null,"name":"夜间施工费","rate":null,"memo":""},
- {"ID":201,"ParentID":2,"name":"建筑工程","rate":0.45,"memo":""},
- {"ID":202,"ParentID":2,"name":"市政工程","rate":0.4,"memo":""},
- {"ID":203,"ParentID":2,"name":"机械土石方","rate":0.7,"memo":""},
- {"ID":204,"ParentID":2,"name":"仿古建筑工程","rate":0.2,"memo":""},
- {"ID":205,"ParentID":2,"name":"建筑修缮工程","rate":0.35,"memo":""},
- {"ID":206,"ParentID":2,"name":"炉窑砌筑工程","rate":0.4,"memo":""},
- {"ID":3, "ParentID":null,"name":"规费","rate":null,"memo":""},
- {"ID":301,"ParentID":3,"name":"建筑工程","rate":16.03,"memo":""},
- {"ID":302,"ParentID":3,"name":"市政工程","rate":16.33,"memo":""},
- {"ID":303,"ParentID":3,"name":"机械土石方","rate":15.5,"memo":""},
- {"ID":304,"ParentID":3,"name":"仿古建筑工程","rate":12,"memo":""},
- {"ID":305,"ParentID":3,"name":"建筑修缮工程","rate":12.47,"memo":""},
- {"ID":306,"ParentID":3,"name":"炉窑砌筑工程","rate":10.8,"memo":""},
- {"ID":4,"ParentID":null,"name":"利润","rate":null,"memo":""},
- {"ID":401,"ParentID":4,"name":"建筑工程","rate":8.73,"memo":""},
- {"ID":402,"ParentID":4,"name":"市政工程","rate":9.2,"memo":""},
- {"ID":403,"ParentID":4,"name":"机械土石方","rate":6.5,"memo":""},
- {"ID":404,"ParentID":4,"name":"仿古建筑工程","rate":7,"memo":""},
- {"ID":405,"ParentID":4,"name":"建筑修缮工程","rate":3.72,"memo":""},
- {"ID":406,"ParentID":4,"name":"炉窑砌筑工程","rate":4.9,"memo":""},
- {"ID":5,"ParentID":null,"name":"税金","rate":11,"memo":""}];*/
- var feeRateObject={
- mainViews:null,
- datas:null,
- canEdit:false,
- activateFeeRate:null,
- needCascadeSet:false,
- selectionLoad:false,
- columns: [
- {
- id: 'name',
- caption: '专业名称',
- dataField: 'name',
- width: 450,
- allowEditing: false
- },
- {
- id: 'rate',
- caption: '值%',
- dataField: 'rate',
- format: '0.000',
- width: 120,
- minWidth: 50,
- allowEditing: true
- },
- {
- id: 'memo',
- caption: '备注',
- dataField: 'memo',
- minWidth: 120,
- allowEditing: true
- },
- {
- id: 'ID',
- caption: 'ID',
- dataField: 'ID',
- width: 80,
- visible: false,
- allowEditing: false
- },
- {
- id: 'subFeeRate',
- caption: '子费率',
- dataField: 'subFeeRate',
- width: 80,
- visible: false,
- allowEditing: false
- },
- {
- id: '_id',
- caption: '自动ID',
- dataField: '_id',
- width: 80,
- visible: false,
- allowEditing: false
- },
- {
- id: 'ParentID',
- caption: '父结点ID',
- dataField: 'ParentID',
- width: 80,
- visible: false,
- allowEditing: false
- }
- ],
- options :{
- allowSorting: false,
- showRowHeader: true,
- colMinWidth: 80,
- rowHeight: 30,
- allowEditing: true,
- editMode: 'inline',
- editUnit: 'cell',
- selectionUnit: "row",
- hierarchy: {
- keyField: 'ID',
- parentField: 'ParentID',
- collapsed: false,
- column: 'name'
- }
- },
- dataSource : {
- loadRange: function(params) {
- params.success(feeRateObject.datas);
- },
- update: function(params) {
- if(!params.hasOwnProperty('sourceIndex')){
- var selected = feeRateObject.mainViews.getSelections()[0];
- params.sourceIndex = selected.sourceRow;
- }
- if(!$('#cascadeSet').prop('checked')||params.hasOwnProperty('viewIndex')){
- projectObj.project.FeeRate.updateFeeRateByEdit(params,feeRateObject.activateFeeRate);
- }
- params.success();
- }
- },
- createSpreadView:function () {
- if (this.mainViews) {
- this.mainViews.destroy();
- this.mainViews = null;
- }
- this.activateFeeRate = projectObj.project.FeeRate.getActivateFeeRate();
- this.datas = this.activateFeeRate.rates;
- this.mainViews = new GC.Spread.Views.DataView($('#divFee')[0],
- this.dataSource, this.columns, new GC.Spread.Views.Plugins.GridLayout(this.options));
- this.mainViews["rowClick"].addHandler(subRateObject.reFreshRateViews);
- this.mainViews .invalidate();
- document.querySelector('#divFee').focus();
- },
- reFreshRateViews:function() {
- if(this.mainViews){
- this.mainViews.refresh()
- }else {
- setTimeout("feeRateObject.createSpreadView()",100);
- }
- },
- updateBySelect:function (rate,selectMap,mapID) {
- var selected = this.mainViews.getSelections()[0];
- var item = this.datas[selected.sourceRow];
- item.rate = rate;
- _.forEach(selectMap,function (value,key) {
- var recode = item.subFeeRate.recodes[key];
- var optionList = recode.optionList;
- _.forEach(optionList,function (o) {
- if(o.value==value){
- o.selected=true;
- }else {
- o.selected = false;
- }
- })
- })
- if($('#cascadeSet').prop('checked')){
- this.cascadeSetRates(item,selected.sourceRow,mapID,selectMap)
- }else {
- this.mainViews.data.updateItem(selected.sourceRow,item);
- }
- projectObj.project.FeeRate.synchronizeFeeRate();
- //this.views.data.updateItem()
- },
- cascadeSetRates:function(selectedItem,sourceRow,mapID,selectMap){
- var items=[];
- items.push({rateIndex:sourceRow,rate:selectedItem});
- _.forEach(this.datas,function (recode,Index) {
- if(Index!=sourceRow&&recode.subFeeRate){
- var valueMaps = recode.subFeeRate.valueMaps;
- var valueMap = _.find(valueMaps,{ID:mapID});
- if(valueMap){//选项完全一样的情况
- if(valueMap.value==recode.rate){
- return;
- }else {
- recode.rate = valueMap.value;
- _.forEach(selectMap,function (value,key) {
- var tempRecode = recode.subFeeRate.recodes[key];
- var optionList = tempRecode.optionList;
- _.forEach(optionList,function (o) {
- if(o.value==value){
- o.selected=true;
- }else {
- o.selected = false;
- }
- })
- })
- items.push({rateIndex:Index,rate:recode});
- }
- }else {//某条选项一样的情况
- var needUpdate = false;
- var selectList = mapID.split('-');
- var newList=[];
- _.forEach(recode.subFeeRate.recodes,function (r) {
- var oList = r.optionList;
- var oldSelectIndex=0;
- var hasChange=false;
- _.forEach(oList,function (o,key) {
- if(o.selected){
- oldSelectIndex = key;
- }
- if(_.includes(selectList,o.value)){
- needUpdate=true;
- o.selected=true;
- hasChange=true;
- newList.push(o.value);
- }else {
- o.selected=false;
- }
- })
- if(!hasChange){
- oList[oldSelectIndex].selected=true;
- newList.push(oList[oldSelectIndex].value)
- }
- })
- if(needUpdate){
- var newValue = _.find(valueMaps,{ID:newList.join("-")})//取出费率值并更新
- if(newValue){
- if(recode.rate != newValue.value){
- recode.rate = newValue.value
- items.push({rateIndex:Index,rate:recode});
- }
- }
- }
- }
- }
- })
- _.forEach(items,function (t) {
- feeRateObject.mainViews.data.updateItem(t.rateIndex,t.rate);
- })
- projectObj.project.FeeRate.batchUpdateFeeRate(items,feeRateObject.activateFeeRate);
- },
- loadFeeRateSelection:function() {
- if(!this.selectionLoad){
- var selectedID=0;
- _.forEach(projectObj.project.FeeRate.datas,function (data) {
- var option = $("<option>").val(data.ID).text(data.libName);
- $('#inlineFormCustomSelect').append(option);
- if(data.status=='activate'){
- selectedID=data.ID;
- }
- })
- $('#inlineFormCustomSelect').val(selectedID);
- }
- }
- }
- $('#tab_fee_rate').bind('click', function () {
- $("#de").trigger("click");
- feeRateObject.reFreshRateViews();
- $('#projectName').text(projectInfoObj.projectInfo.name);
- feeRateObject.loadFeeRateSelection();
- });
- /*$('#fee_rates').bind('click', function () {
- feeRateObject.datas[0].name = 'test';
- feeRateObject.mainViews.refresh();
- feeRateObject.mainViews.invalidate();
- });*/
- $('#inlineFormCustomSelect').change(function(){
- var updateTask = [];
- var selectID = $(this).val();
- var oldValue=0;
- _.forEach(projectObj.project.FeeRate.datas,function (feeRate) {
- if(feeRate.status=='activate'){
- oldValue=feeRate.ID;
- }
- if(feeRate.ID ==selectID){
- feeRate.status='activate';
- }else {
- feeRate.status='disable';
- }
- updateTask.push({query:{ID:feeRate.ID,projectID:projectObj.project.ID()},doc:{status:feeRate.status}});
- })
- projectObj.project.FeeRate.updateStatusBySelected(updateTask);
- feeRateObject.createSpreadView();
- subRateObject.destorySpreadView();
- socket.emit('changeActivateFeeRate',{oldRoom:oldValue,newRoom:selectID});
- })
|