|  | @@ -39,9 +39,19 @@ let basicInfoView = {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    setDatePicker: function (sheet, dateRows) {
 | 
	
		
			
				|  |  | +        let me = this;
 | 
	
		
			
				|  |  | +        this.renderSheetFuc(sheet, function () {
 | 
	
		
			
				|  |  | +            for(let i = 0, len = dateRows.length; i < len; i++){
 | 
	
		
			
				|  |  | +                sheet.getCell(dateRows[i], 1).cellType(me.getDatePickerCellType()).width(100).formatter('yyyy-mm-dd');
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      buildHeader: function (sheet, headers) {
 | 
	
		
			
				|  |  |          let me = basicInfoView;
 | 
	
		
			
				|  |  |          let fuc = function () {
 | 
	
		
			
				|  |  | +            sheet.options.clipBoardOptions = GC.Spread.Sheets.ClipboardPasteOptions.values;
 | 
	
		
			
				|  |  |              sheet.setColumnCount(headers.length);
 | 
	
		
			
				|  |  |              sheet.setRowHeight(0, 40, GC.Spread.Sheets.SheetArea.colHeader);
 | 
	
		
			
				|  |  |              for(let i = 0, len = headers.length; i < len; i++){
 | 
	
	
		
			
				|  | @@ -77,6 +87,7 @@ let basicInfoView = {
 | 
	
		
			
				|  |  |          let fuc = function () {
 | 
	
		
			
				|  |  |              sheet.setRowCount(datas.length);
 | 
	
		
			
				|  |  |              me.initTree(sheet, true, datas);
 | 
	
		
			
				|  |  | +            me.setDatePicker(sheet, me.setting.dateRows);
 | 
	
		
			
				|  |  |              sheet.setFormatter(-1, 1, '@');
 | 
	
		
			
				|  |  |              for(let col = 0, cLen = cols.length; col < cLen; col++){
 | 
	
		
			
				|  |  |                  sheet.getRange(-1, col, -1, 1).hAlign(GC.Spread.Sheets.HorizontalAlign[cols[col]['hAlign']]);
 | 
	
	
		
			
				|  | @@ -107,6 +118,7 @@ let basicInfoView = {
 | 
	
		
			
				|  |  |              //date
 | 
	
		
			
				|  |  |              if(me.setting.dateRows.indexOf(args.row) !== -1){
 | 
	
		
			
				|  |  |                  if(v.length > 0){
 | 
	
		
			
				|  |  | +                    v = formatDate(new Date(v), 'yyyy-MM-dd')
 | 
	
		
			
				|  |  |                      v = me.filtDate(v);
 | 
	
		
			
				|  |  |                      if(!v){
 | 
	
		
			
				|  |  |                          alert('请输入正确的日期格式yyyy-mm-dd');
 | 
	
	
		
			
				|  | @@ -130,6 +142,7 @@ let basicInfoView = {
 | 
	
		
			
				|  |  |          let me = basicInfoView;
 | 
	
		
			
				|  |  |          let items = sheetCommonObj.analyzePasteData(me.setting, args);
 | 
	
		
			
				|  |  |          let recRows = [];
 | 
	
		
			
				|  |  | +        console.log('enter');
 | 
	
		
			
				|  |  |          for(let i = 0, len = items.length; i < len; i++){
 | 
	
		
			
				|  |  |              let row = i + args.cellRange.row;
 | 
	
		
			
				|  |  |              if(me.setting.locked.rows.indexOf(row) !== -1){
 | 
	
	
		
			
				|  | @@ -137,7 +150,9 @@ let basicInfoView = {
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              else if(me.setting.dateRows.indexOf(row) !== -1){
 | 
	
		
			
				|  |  |                  items[i].value = me.filtDate(items[i].value);
 | 
	
		
			
				|  |  | -                if(!items[i].value){
 | 
	
		
			
				|  |  | +                console.log(items.value);
 | 
	
		
			
				|  |  | +                if(!me.isDef(items[i].value)){
 | 
	
		
			
				|  |  | +                    console.log('aa');
 | 
	
		
			
				|  |  |                      recRows.push(row);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  else {
 | 
	
	
		
			
				|  | @@ -148,6 +163,8 @@ let basicInfoView = {
 | 
	
		
			
				|  |  |                  me.datas[row].value = items[i].value;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +        console.log(recRows);
 | 
	
		
			
				|  |  | +        console.log(me.datas);
 | 
	
		
			
				|  |  |          if(recRows.length > 0){
 | 
	
		
			
				|  |  |              me.renderSheetFuc(args.sheet, function () {
 | 
	
		
			
				|  |  |                  for(let i = 0, len = recRows.length; i < len; i++){
 | 
	
	
		
			
				|  | @@ -369,7 +386,57 @@ let basicInfoView = {
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |          return new TreeNodeCellType()
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    getDatePickerCellType: function () {
 | 
	
		
			
				|  |  | +        let ns = GC.Spread.Sheets;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        function DatePickerCellType() {
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        DatePickerCellType.prototype = new GC.Spread.Sheets.CellTypes.Base();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        DatePickerCellType.prototype.createEditorElement = function (context) {
 | 
	
		
			
				|  |  | +            //Create input presenter.
 | 
	
		
			
				|  |  | +            return document.createElement("input");
 | 
	
		
			
				|  |  | +        };
 | 
	
		
			
				|  |  | +        DatePickerCellType.prototype.activateEditor = function (editorContext, cellStyle, cellRect, context) {
 | 
	
		
			
				|  |  | +            //Initialize input editor.
 | 
	
		
			
				|  |  | +            if (editorContext) {
 | 
	
		
			
				|  |  | +                $editor = $(editorContext);
 | 
	
		
			
				|  |  | +                //DatePickerCellType.prototype.activateEditor.apply(this, arguments);
 | 
	
		
			
				|  |  | +                $editor.datepicker({dateFormat: 'yy-mm-dd'});
 | 
	
		
			
				|  |  | +                $editor.css("position", "absolute");
 | 
	
		
			
				|  |  | +                $editor.attr("gcUIElement", "gcEditingInput");
 | 
	
		
			
				|  |  | +                $(".ui-datepicker").attr("gcUIElement", "gcEditingInput");
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        DatePickerCellType.prototype.deactivateEditor = function (editorContext, context) {
 | 
	
		
			
				|  |  | +            //Remove input editor when end editor status.
 | 
	
		
			
				|  |  | +            if (editorContext) {
 | 
	
		
			
				|  |  | +                var element = editorContext;
 | 
	
		
			
				|  |  | +                $(element).datepicker("hide");
 | 
	
		
			
				|  |  | +                $(element).datepicker("destroy");
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +           // DatePickerCellType.prototype.deactivateEditor.apply(this, arguments)
 | 
	
		
			
				|  |  | +        };
 | 
	
		
			
				|  |  | +        DatePickerCellType.prototype.setEditorValue = function (editor, value, context) {
 | 
	
		
			
				|  |  | +            //Sync value from Cell value to editor value.
 | 
	
		
			
				|  |  | +            $(editor).datepicker("setDate", value);
 | 
	
		
			
				|  |  | +        };
 | 
	
		
			
				|  |  | +        DatePickerCellType.prototype.getEditorValue = function (editor, context) {
 | 
	
		
			
				|  |  | +            //Sync value from editor value to cell value.
 | 
	
		
			
				|  |  | +            return $(editor).datepicker("getDate");
 | 
	
		
			
				|  |  | +        };
 | 
	
		
			
				|  |  | +        DatePickerCellType.prototype.updateEditor = function (editorContext, cellStyle, cellRect, context) {
 | 
	
		
			
				|  |  | +            if (editorContext) {
 | 
	
		
			
				|  |  | +                $editor = $(editorContext);
 | 
	
		
			
				|  |  | +                $editor.css("width", cellRect.width - 1);
 | 
	
		
			
				|  |  | +                $editor.css("height", cellRect.height - 3);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        };
 | 
	
		
			
				|  |  | +        return new DatePickerCellType();
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  $(document).ready(function () {
 |