|  | @@ -257,7 +257,7 @@ $(document).ready(() => {
 | 
	
		
			
				|  |  |                          return;
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                      const num = parseFloat(validText);
 | 
	
		
			
				|  |  | -                    if (num < 0 || !/^\d+(\.\d{1,3})?$/.test(num)) {
 | 
	
		
			
				|  |  | +                    if (validText !== null && (num < 0 || !/^\d+(\.\d{1,3})?$/.test(num))) {
 | 
	
		
			
				|  |  |                          toastr.error('请输入大于0并且小于3位小数的浮点数');
 | 
	
		
			
				|  |  |                          SpreadJsObj.reLoadRowData(info.sheet, info.row);
 | 
	
		
			
				|  |  |                          return;
 | 
	
	
		
			
				|  | @@ -270,7 +270,7 @@ $(document).ready(() => {
 | 
	
		
			
				|  |  |                          return;
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                      const num = parseFloat(validText);
 | 
	
		
			
				|  |  | -                    if (num < 0 || !/^\d+(\.\d{1,3})?$/.test(num)) {
 | 
	
		
			
				|  |  | +                    if (validText !== null && (num < 0 || !/^\d+(\.\d{1,3})?$/.test(num))) {
 | 
	
		
			
				|  |  |                          toastr.error('请输入大于0并且小于3位小数的浮点数');
 | 
	
		
			
				|  |  |                          SpreadJsObj.reLoadRowData(info.sheet, info.row);
 | 
	
		
			
				|  |  |                          return;
 | 
	
	
		
			
				|  | @@ -284,7 +284,7 @@ $(document).ready(() => {
 | 
	
		
			
				|  |  |                          return;
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                      const num = parseFloat(validText);
 | 
	
		
			
				|  |  | -                    if (num < 0 || num > 100 || !/^\d+$/.test(num)) {
 | 
	
		
			
				|  |  | +                    if (validText !== null && (num < 0 || num > 100 || !/^\d+$/.test(num))) {
 | 
	
		
			
				|  |  |                          toastr.error('只能输入0-100的正整数');
 | 
	
		
			
				|  |  |                          SpreadJsObj.reLoadRowData(info.sheet, info.row);
 | 
	
		
			
				|  |  |                          return;
 | 
	
	
		
			
				|  | @@ -298,7 +298,7 @@ $(document).ready(() => {
 | 
	
		
			
				|  |  |                          return;
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                      const num = parseFloat(validText);
 | 
	
		
			
				|  |  | -                    if (num < 0 || num > 100 || !/^\d+$/.test(num)) {
 | 
	
		
			
				|  |  | +                    if (validText !== null && (num < 0 || num > 100 || !/^\d+$/.test(num))) {
 | 
	
		
			
				|  |  |                          toastr.error('只能输入0-100的正整数');
 | 
	
		
			
				|  |  |                          SpreadJsObj.reLoadRowData(info.sheet, info.row);
 | 
	
		
			
				|  |  |                          return;
 | 
	
	
		
			
				|  | @@ -326,46 +326,102 @@ $(document).ready(() => {
 | 
	
		
			
				|  |  |                  });
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          },
 | 
	
		
			
				|  |  | -        // clipboardPasting(e, info) {
 | 
	
		
			
				|  |  | +        // clipboardPasted(e, info) {
 | 
	
		
			
				|  |  | +        //     console.log(info)
 | 
	
		
			
				|  |  |          //     if (info.sheet.zh_setting) {
 | 
	
		
			
				|  |  | -        //         const sortData = info.sheet.zh_data;
 | 
	
		
			
				|  |  | -        //         const range = info.cellRange;
 | 
	
		
			
				|  |  | -        //         const validField = ['code', 'name', 'unit', 'spec', 'basic_price', 'basic_times', 'msg_tp', 'msg_times', 'm_up_risk', 'm_down_risk', 'remark'];
 | 
	
		
			
				|  |  | -        //         for (let iCol = range.col; iCol < range.col + range.colCount; iCol++) {
 | 
	
		
			
				|  |  | -        //             const col = info.sheet.zh_setting.cols[iCol];
 | 
	
		
			
				|  |  | -        //             // if (col.type === 'Number') {
 | 
	
		
			
				|  |  | -        //             //     const num = _.toNumber(newData[col.field]);
 | 
	
		
			
				|  |  | -        //             //     if (num) {
 | 
	
		
			
				|  |  | -        //             //         newData[col.field] = num;
 | 
	
		
			
				|  |  | -        //             //     } else {
 | 
	
		
			
				|  |  | -        //             //         try {
 | 
	
		
			
				|  |  | -        //             //             newData[col.field] = math.evaluate(transExpr(newData[col.field]));
 | 
	
		
			
				|  |  | -        //             //         } catch(err) {
 | 
	
		
			
				|  |  | -        //             //             toastr.error('输入的表达式非法');
 | 
	
		
			
				|  |  | -        //             //             stagePosSpreadObj.loadCurPosData();
 | 
	
		
			
				|  |  | -        //             //             return;
 | 
	
		
			
				|  |  | -        //             //
 | 
	
		
			
				|  |  | -        //             //         }
 | 
	
		
			
				|  |  | -        //             //     }
 | 
	
		
			
				|  |  | -        //             // }
 | 
	
		
			
				|  |  | -        //             if (validField.indexOf(col.field) === -1) {
 | 
	
		
			
				|  |  | -        //                 toastr.error('不可修改此数据');
 | 
	
		
			
				|  |  | -        //                 info.cancel = true;
 | 
	
		
			
				|  |  | +        //         const select = SpreadJsObj.getSelectObject(info.sheet);
 | 
	
		
			
				|  |  | +        //         const col = info.sheet.zh_setting.cols[info.col];
 | 
	
		
			
				|  |  | +        //         // 未改变值则不提交
 | 
	
		
			
				|  |  | +        //         const validText = info.editingText ? trimInvalidChar(info.editingText) : null;
 | 
	
		
			
				|  |  | +        //         console.log(validText);
 | 
	
		
			
				|  |  | +        //         const orgValue = select[col.field];
 | 
	
		
			
				|  |  | +        //         if (orgValue == validText || ((!orgValue || orgValue === '') && (validText === ''))) {
 | 
	
		
			
				|  |  | +        //             SpreadJsObj.reLoadRowData(info.sheet, info.row);
 | 
	
		
			
				|  |  | +        //             return;
 | 
	
		
			
				|  |  | +        //         }
 | 
	
		
			
				|  |  | +        //         // 判断部分值是否输入的是数字判断和数据计算
 | 
	
		
			
				|  |  | +        //         if (col.field === 'basic_price') {
 | 
	
		
			
				|  |  | +        //             if (isNaN(validText)) {
 | 
	
		
			
				|  |  | +        //                 toastr.error('不能输入其它非数字类型字符');
 | 
	
		
			
				|  |  | +        //                 SpreadJsObj.reLoadRowData(info.sheet, info.row);
 | 
	
		
			
				|  |  | +        //                 return;
 | 
	
		
			
				|  |  | +        //             }
 | 
	
		
			
				|  |  | +        //             const num = parseFloat(validText);
 | 
	
		
			
				|  |  | +        //             if (num < 0 || !/^\d+(\.\d{1,3})?$/.test(num)) {
 | 
	
		
			
				|  |  | +        //                 toastr.error('请输入大于0并且小于3位小数的浮点数');
 | 
	
		
			
				|  |  | +        //                 SpreadJsObj.reLoadRowData(info.sheet, info.row);
 | 
	
		
			
				|  |  | +        //                 return;
 | 
	
		
			
				|  |  | +        //             }
 | 
	
		
			
				|  |  | +        //         }
 | 
	
		
			
				|  |  | +        //         if (col.field === 'msg_tp') {
 | 
	
		
			
				|  |  | +        //             if (isNaN(validText)) {
 | 
	
		
			
				|  |  | +        //                 toastr.error('不能输入其它非数字类型字符');
 | 
	
		
			
				|  |  | +        //                 SpreadJsObj.reLoadRowData(info.sheet, info.row);
 | 
	
		
			
				|  |  | +        //                 return;
 | 
	
		
			
				|  |  | +        //             }
 | 
	
		
			
				|  |  | +        //             const num = parseFloat(validText);
 | 
	
		
			
				|  |  | +        //             if (num < 0 || !/^\d+(\.\d{1,3})?$/.test(num)) {
 | 
	
		
			
				|  |  | +        //                 toastr.error('请输入大于0并且小于3位小数的浮点数');
 | 
	
		
			
				|  |  | +        //                 SpreadJsObj.reLoadRowData(info.sheet, info.row);
 | 
	
		
			
				|  |  |          //                 return;
 | 
	
		
			
				|  |  |          //             }
 | 
	
		
			
				|  |  |          //         }
 | 
	
		
			
				|  |  | +        //         if (col.field === 'm_up_risk') {
 | 
	
		
			
				|  |  | +        //             // 只能输入正整数
 | 
	
		
			
				|  |  | +        //             if (isNaN(validText)) {
 | 
	
		
			
				|  |  | +        //                 toastr.error('不能输入其它非数字类型字符');
 | 
	
		
			
				|  |  | +        //                 SpreadJsObj.reLoadRowData(info.sheet, info.row);
 | 
	
		
			
				|  |  | +        //                 return;
 | 
	
		
			
				|  |  | +        //             }
 | 
	
		
			
				|  |  | +        //             const num = parseFloat(validText);
 | 
	
		
			
				|  |  | +        //             if (num < 0 || num > 100 || !/^\d+$/.test(num)) {
 | 
	
		
			
				|  |  | +        //                 toastr.error('只能输入0-100的正整数');
 | 
	
		
			
				|  |  | +        //                 SpreadJsObj.reLoadRowData(info.sheet, info.row);
 | 
	
		
			
				|  |  | +        //                 return;
 | 
	
		
			
				|  |  | +        //             }
 | 
	
		
			
				|  |  | +        //         }
 | 
	
		
			
				|  |  | +        //         if (col.field === 'm_down_risk') {
 | 
	
		
			
				|  |  | +        //             // 只能输入正整数
 | 
	
		
			
				|  |  | +        //             if (isNaN(validText)) {
 | 
	
		
			
				|  |  | +        //                 toastr.error('不能输入其它非数字类型字符');
 | 
	
		
			
				|  |  | +        //                 SpreadJsObj.reLoadRowData(info.sheet, info.row);
 | 
	
		
			
				|  |  | +        //                 return;
 | 
	
		
			
				|  |  | +        //             }
 | 
	
		
			
				|  |  | +        //             const num = parseFloat(validText);
 | 
	
		
			
				|  |  | +        //             if (num < 0 || num > 100 || !/^\d+$/.test(num)) {
 | 
	
		
			
				|  |  | +        //                 toastr.error('只能输入0-100的正整数');
 | 
	
		
			
				|  |  | +        //                 SpreadJsObj.reLoadRowData(info.sheet, info.row);
 | 
	
		
			
				|  |  | +        //                 return;
 | 
	
		
			
				|  |  | +        //             }
 | 
	
		
			
				|  |  | +        //         }
 | 
	
		
			
				|  |  | +        //         if (col.field === 't_type') {
 | 
	
		
			
				|  |  | +        //             if (validText === 1) {
 | 
	
		
			
				|  |  | +        //                 select.quantity = null;
 | 
	
		
			
				|  |  | +        //                 select.expr = null;
 | 
	
		
			
				|  |  | +        //                 select.m_tp = null;
 | 
	
		
			
				|  |  | +        //             }
 | 
	
		
			
				|  |  | +        //         }
 | 
	
		
			
				|  |  | +        //         select[col.field] = validText;
 | 
	
		
			
				|  |  | +        //         select.msg_spread = materialCol.getValue.msg_spread(select);
 | 
	
		
			
				|  |  | +        //         select.m_spread = materialCol.getValue.m_spread(select);
 | 
	
		
			
				|  |  | +        //         select.m_tp = materialCol.getValue.m_tp(select);
 | 
	
		
			
				|  |  | +        //         // 更新至服务器
 | 
	
		
			
				|  |  | +        //         postData(window.location.pathname + '/save', { type:'update', updateData: select }, function (result) {
 | 
	
		
			
				|  |  | +        //             m_tp = result.m_tp;
 | 
	
		
			
				|  |  | +        //             resetTpTable();
 | 
	
		
			
				|  |  | +        //             SpreadJsObj.reLoadRowData(info.sheet, info.row);
 | 
	
		
			
				|  |  | +        //         }, function () {
 | 
	
		
			
				|  |  | +        //             select[col.field] = orgValue;
 | 
	
		
			
				|  |  | +        //             SpreadJsObj.reLoadRowData(info.sheet, info.row);
 | 
	
		
			
				|  |  | +        //         });
 | 
	
		
			
				|  |  |          //     }
 | 
	
		
			
				|  |  |          // },
 | 
	
		
			
				|  |  | -        // clipboardPasted(e, info) {
 | 
	
		
			
				|  |  | -        //     // console.log(e, info);
 | 
	
		
			
				|  |  | -        // },
 | 
	
		
			
				|  |  |          setReadOnly: function(readOnly) {
 | 
	
		
			
				|  |  |              SpreadJsObj.resetFieldReadOnly(materialSpread.getActiveSheet(), 'msg_spread', 'm_spread', 'm_tp', 'pre_tp', readOnly);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      };
 | 
	
		
			
				|  |  |      materialSpreadObj.refreshActn();
 | 
	
		
			
				|  |  |      materialSpread.bind(spreadNS.Events.SelectionChanged, materialSpreadObj.selectionChanged);
 | 
	
		
			
				|  |  | -    // materialSpread.bind(spreadNS.Events.ClipboardPasting, materialSpreadObj.clipboardPasting);
 | 
	
		
			
				|  |  |      // materialSpread.bind(spreadNS.Events.ClipboardPasted, materialSpreadObj.clipboardPasted);
 | 
	
		
			
				|  |  |      // const sheet = materialSpread.getActiveSheet();
 | 
	
		
			
				|  |  |      // sheet.suspendPaint();
 |