|  | @@ -115,7 +115,7 @@ const EMPTY_BOOK = (() => {
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    // 编辑处理
 | 
	
		
			
				|  |  | -  async function handleEdit(changedCells, diffMap, needRefresh) {
 | 
	
		
			
				|  |  | +  async function handleEdit(changedCells, diffMap, needRefresh, saveAll) {
 | 
	
		
			
				|  |  |      const postData = []; // 请求用
 | 
	
		
			
				|  |  |      // 更新缓存用
 | 
	
		
			
				|  |  |      const updateData = [];
 | 
	
	
		
			
				|  | @@ -130,7 +130,7 @@ const EMPTY_BOOK = (() => {
 | 
	
		
			
				|  |  |              if (diffMap) {
 | 
	
		
			
				|  |  |                diffData = diffMap[row];
 | 
	
		
			
				|  |  |              } else {
 | 
	
		
			
				|  |  | -              diffData = getRowDiffData(rowData, cache[row], setting.header);
 | 
	
		
			
				|  |  | +              diffData = saveAll ? getRowAllData(rowData, setting.header) : getRowDiffData(rowData, cache[row], setting.header);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              if (diffData) {
 | 
	
		
			
				|  |  |                // 改一行, 实际可能是改多行,表格一行数据是多行合并显示的
 | 
	
	
		
			
				|  | @@ -158,7 +158,9 @@ const EMPTY_BOOK = (() => {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |        });
 | 
	
		
			
				|  |  |        if (postData.length) {
 | 
	
		
			
				|  |  | -        $.bootstrapLoading.start();
 | 
	
		
			
				|  |  | +        if (!saveAll) {
 | 
	
		
			
				|  |  | +          $.bootstrapLoading.start();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          await ajaxPost('/priceInfo/editPriceData', { postData }, TIME_OUT);
 | 
	
		
			
				|  |  |          // 更新缓存,先更新然后删除,最后再新增,防止先新增后缓存数据的下标与更新、删除数据的下标对应不上
 | 
	
		
			
				|  |  |          updateData.forEach(item => {
 | 
	
	
		
			
				|  | @@ -198,7 +200,9 @@ const EMPTY_BOOK = (() => {
 | 
	
		
			
				|  |  |          if (deleteData.length || insertData.length || needRefresh) {
 | 
	
		
			
				|  |  |            showData(workBookObj.sheet, cache, setting.header);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        $.bootstrapLoading.end();
 | 
	
		
			
				|  |  | +        if (!saveAll) {
 | 
	
		
			
				|  |  | +          $.bootstrapLoading.end();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          CLASS_BOOK.reload();
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      } catch (err) {
 | 
	
	
		
			
				|  | @@ -364,7 +368,7 @@ const EMPTY_BOOK = (() => {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |        // 分块进行ai匹配
 | 
	
		
			
				|  |  |        const step = 100 / (chunks.length || 1);
 | 
	
		
			
				|  |  | -      for (const chunk of chunks) {
 | 
	
		
			
				|  |  | +      for (const chunk of [chunks[0]]) {
 | 
	
		
			
				|  |  |          const listA = [];
 | 
	
		
			
				|  |  |          const listB = [];
 | 
	
		
			
				|  |  |          const summaryData = [];
 | 
	
	
		
			
				|  | @@ -472,7 +476,7 @@ const EMPTY_BOOK = (() => {
 | 
	
		
			
				|  |  |        let percent = 0;
 | 
	
		
			
				|  |  |        const step = 100 / (chunks.length || 1);
 | 
	
		
			
				|  |  |        for (const chunk of chunks) {
 | 
	
		
			
				|  |  | -        await handleEdit(chunk);
 | 
	
		
			
				|  |  | +        await handleEdit(chunk, undefined, undefined, true);
 | 
	
		
			
				|  |  |          percent += parseInt(`${step}`);
 | 
	
		
			
				|  |  |          $("#progress_modal_bar").css('width', `${percent}%`);
 | 
	
		
			
				|  |  |          await setTimeoutSync(200);
 |