| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311 |
- var headerCount;//头部行高
- var nextDataRowIndex;//下条数据所在行
- var bgColor1='rgb(226,239,218)';
- var selfNumCol=3;
- $(function(){
- spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), { sheetCount: 1 });
- initSpread();
- });
- function initSpread(){
- spread.suspendPaint();
- if(dbJson){//数据库
- spread.fromJSON(dbJson);
- }
- var sheet = spread.getActiveSheet();
- removeMenu(sheet);
- if(readOnly) {
- setSheetReadOnly(sheet);
- spread.resumePaint();
- return;
- }else {
- setInstDefault(spread);
- }
- addMenu(sheet);
- spread.options.newTabVisible = false;//取消新增sheet按钮
- spread.options.allowExtendPasteRange =true;//扩展粘贴区域
- // bindEvent(spread);
- setDefaultLock(sheet);
- setCellEdit(sheet);
- var setting = sheet.tag();
- if(setting){
- if(setting.sheetVar) {
- headerCount = setting.sheetVar.headerCount;
- }
- if(setting.nextDataRowIndex){
- nextDataRowIndex = setting.nextDataRowIndex;
- }
- }
- if(!nextDataRowIndex){
- nextDataRowIndex = headerCount;
- }
- if(needInitData){
- initData();
- }
- sheet.clearSelection();
- sheet.showColumn(0, GC.Spread.Sheets.HorizontalPosition.left);
- spread.bind(GC.Spread.Sheets.Events.RowChanging, function (e, info) {
- //info.propertyName="deleteRows" //删除行
- if(info.propertyName="deleteRows"){
- var deleteRow = info.row;
- var deleteCount = info.count;
- var sheetTag = sheet.tag();
- var ids = sheetTag.ids;
- for(var i=deleteRow;i<deleteRow+deleteCount;i++) {
- if(nextDataRowIndex>headerCount) nextDataRowIndex--;
- var rowTag = sheet.getTag(i,-1);
- if(!rowTag) continue;
- for(var j=0;j<ids.length;j++){
- if(ids[j]==rowTag.id){
- delete ids[j];
- }
- }
- }
- addSheetTagValue(sheet,{ids:ids,nextDataRowIndex:nextDataRowIndex});
- }
- });
- spread.resumePaint();
- }
- function setDefaultLock(sheet){
- var option = {
- allowSelectLockedCells:true,
- allowSelectUnlockedCells:true,
- allowFilter: true,
- allowSort: false,
- allowResizeRows: true,
- allowResizeColumns: true,
- allowEditObjects: false,
- allowDragInsertRows: false,
- allowDragInsertColumns: false,
- allowInsertRows: false,
- allowInsertColumns: false,
- allowDeleteRows: true,
- allowDeleteColumns: false
- };
- sheet.options.protectionOptions = option;
- sheet.options.isProtected = true;
- var defaultStyle = sheet.getDefaultStyle() //默认的样式,
- defaultStyle.locked=false;
- defaultStyle.formatter=_format;
- sheet.setDefaultStyle(defaultStyle);
- }
- function setCellEdit(sheet){
- var rowCount = sheet.getRowCount();
- var colCount = sheet.getColumnCount();
- for(var i=0;i<rowCount;i++){
- for(var j=0;j<colCount;j++){
- // dataCell
- var tag = sheet.getTag(i,j);
- if(tag){
- if(tag.dataCell){
- if(!tag.readOnly || tag.readOnly==0){
- sheet.getRange(i,j,1,1).locked(false);
- }
- }
- }
- }
- }
- }
- function initData(){
- for(var i=0;i<budgetPostEntityList.length;i++){
- var one = budgetPostEntityList[i];
- addRow(one);
- }
- }
- function getDoubleValidator() {
- return GC.Spread.Sheets.DataValidation.createFormulaValidator('^(-?\d+)(\.\d+)?$');
- }
- function addRow(one){
- var sheet = spread.getActiveSheet();
- var sheetTag = sheet.tag();
- if(!sheetTag) sheetTag={};
- if(!sheetTag.ids) sheetTag.ids=[];
- var id = one.id;
- var postName=one.postName;
- var type = one.type;
- var typeString = one.typeString;
- var userType = one.userType;
- var userTypeString = one.userTypeString;
- if($.inArray(id, sheetTag.ids)!=-1){
- return;
- }
- sheetTag.ids.push(id);
- addSheetTagValue(sheet,{ids:sheetTag.ids});
- var row = nextDataRowIndex++;
- sheet.addRows(row,1);//总计行
- var sheetRowCount = sheet.getRowCount();
- if(row>sheetRowCount-1){
- sheet.addRows(sheetRowCount,1)
- }
- var rowSetting={};//行变量
- rowSetting.type=type;
- rowSetting.userType=userType;
- var col=0;
- // sheet.setFormula(row, 0, "row()-"+headerCount);
- //项目岗位
- sheet.setValue(row, col, postName);
- sheet.getCell(row,col).backColor(bgColor1).locked(true);
- col++;
- //岗位类型
- sheet.setValue(row, col,typeString);
- sheet.getCell(row,col).backColor(bgColor1).locked(true);
- col++;
- //人员类型
- sheet.setValue(row, col,userTypeString);
- sheet.getCell(row,col).backColor(bgColor1).locked(true);
- var renyuanleixing=getCellStr(sheet,row,col);
- col++;
- //自有数量
- var ziyoushuliang=getCellStr(sheet,row,col);
- sheet.getCell(row,col).value(postNumDetailList[id]).hAlign(GC.Spread.Sheets.HorizontalAlign.center);
- col++;
- // 缴金人数比例
- var jiaojinbili=getCellStr(sheet,row,col);
- sheet.getCell(row,col).formatter('0%').hAlign(GC.Spread.Sheets.HorizontalAlign.center);
- col++;
- //月度工资 (含固定补贴)
- sheet.getCell(row,col).formatter(_format);
- var yuedugongzi =getCellStr(sheet,row,col);
- col++;
- //证书补贴
- sheet.getCell(row,col).formatter(_format);
- var zhengshubutie =getCellStr(sheet,row,col);
- col++;
- //社保缴纳基数
- sheet.getCell(row,col).formatter(_format);
- var shebaojishu =getCellStr(sheet,row,col);
- col++;
- //社保缴纳比例
- sheet.getCell(row,col).formatter('0%');
- var shebaobili =getCellStr(sheet,row,col);
- col++;
- //公积金缴纳基数
- sheet.getCell(row,col).formatter(_format);
- var gongjijinjishu =getCellStr(sheet,row,col);
- col++;
- //公积金缴纳比例
- sheet.getCell(row,col).formatter('0%');
- var gongjijinbili =getCellStr(sheet,row,col);
- col++;
- //年度工资 (含固定补贴)
- var niandugongzi =getCellStr(sheet,row,col);
- sheet.setFormula(row,col,ziyoushuliang+"*"+yuedugongzi+"*12+"+ziyoushuliang+"*"+zhengshubutie+"*12");
- sheet.getCell(row,col).backColor(bgColor1);
- col++;
- //高温补贴
- sheet.setFormula(row,col,'IF('+renyuanleixing+'="一线外岗",1200,800)*'+ziyoushuliang);
- sheet.getCell(row,col).backColor(bgColor1);
- col++;
- //法定及额外加(值)班费
- if(postName!='大区经理' && postName!='项目经理' && postName!='项目副经理' && postName!='项目经理助理') {
- sheet.setFormula(row,col, sheetTag.basePay+"/21.75*11*3*0.5*"+ziyoushuliang);
- }
- col++;
- //工作餐补及中夜班津贴
- col++;
- //社保
- sheet.setFormula(row,col,ziyoushuliang+"*"+shebaojishu+"*"+shebaobili+"*12*"+jiaojinbili);
- sheet.getCell(row,col).backColor(bgColor1);
- col++;
- //公积金
- sheet.setFormula(row,col,ziyoushuliang+"*"+gongjijinjishu+"*"+gongjijinbili+"*12*"+jiaojinbili);
- sheet.getCell(row,col).backColor(bgColor1);
- col++;
- //奖金
- col++;
- //春节、中秋
- sheet.setFormula(row,col,ziyoushuliang+"*200");
- sheet.getCell(row,col).backColor(bgColor1);
- col++;
- // 年夜饭
- sheet.setFormula(row,col,ziyoushuliang+"*150");
- sheet.getCell(row,col).backColor(bgColor1);
- col++;
- // 健康体检、旅游
- var lvyou =getCellStr(sheet,row,col);
- sheet.setFormula(row,col,'IF('+renyuanleixing+'="管理人员",2000,0)*'+ziyoushuliang);
- sheet.getCell(row,col).backColor(bgColor1);
- col++;
- //隐藏列
- col++;
- // 人工费用
- sheet.setFormula(row,col,"sum("+niandugongzi+":"+lvyou+")");
- sheet.getCell(row,col).backColor(bgColor1);
- col++;
- // 内训费
- col++;
- // 外训费
- col++;
- //边框
- var lineStyle = GC.Spread.Sheets.LineStyle.thin;
- var lineBorder = new GC.Spread.Sheets.LineBorder('black', lineStyle);
- var sheetArea = GC.Spread.Sheets.SheetArea.viewport;
- var columnCount = sheet.getColumnCount();
- for(var col=0;col<columnCount;col++) {
- sheet.getRange(row,col).setBorder(lineBorder, { left: true, right: true,top:true,bottom:true}, sheetArea);
- }
- // sheet.getCell(row,1).text(one.costPrice);
- addSheetTagValue(sheet,{nextDataRowIndex:nextDataRowIndex});
- rowSetting.id=id;
- addCellTagValue(sheet,row,-1,rowSetting);
- }
- function fitColumn(){
- var sheet = spread.getActiveSheet();
- sheet.autoFitColumn(0);sheet.autoFitColumn(1);sheet.autoFitColumn(2);
- }
- function removeMenu(){
- for(var i=0;i< spread.contextMenu.menuData.length;i++){
- var menu = spread.contextMenu.menuData[i];
- var text=menu.text;
- if(text=='清除' || text=='插入'|| text=='隐藏'|| text=='显示' ){//去掉过滤、排序
- delete spread.contextMenu.menuData[i];
- }
- }
- }
- function addMenu(){
- }
- function refushNum(){
- var sheet=spread.getActiveSheet();
- $.post('budgetInstController.do?getPostNum',{entityId:entityId,periodYear:periodYear},function(d){
- if(d.success){
- loopAllRow(sheet,function(row){
- var rowTag = sheet.getTag(row,-1);
- if(rowTag) {
- var rowId = rowTag.id;
- if(rowId){
- for(var i=0;i<d.obj.length;i++){
- var one = d.obj[i];
- if(one.postId==rowId){
- sheet.setValue(row,selfNumCol,one.num);
- break;
- }
- }
- }
- }
- });
- // postNumDetailList['${postNumDetail.postId}']='${postNumDetail.num}';
- tip('刷新成功');
- }else {
- tip(d.msg);
- }
- },'json');
- }
|