| 
					
				 | 
			
			
				@@ -122,12 +122,15 @@ function getAllList(currPageNum = 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     let html = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // '/tender/' + tender.id + '/measure/stage/' + stage.order + '/download/file/' + att.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     for(const att of currPageAttData) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const delHtml = deleteFilePermission && parseInt(cur_uid) === att.uid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ? `<a class="ml-1 text-danger" href="javascript:void(0)" name="att-delete" file-id="${att.id}"><i class="fa fa-close" title="删除"></i></a>` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            : ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         html += `<tr> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <td width="25"><input type="checkbox" class="check-file" file-id=${att.id}></td> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <td> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <div class="d-flex"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <a href="javascript:void(0)" class="pl-0 col-11 att-file-name" file-id=${att.id}>${att.filename}${att.fileext}</a> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <a href="/tender/${tender.id}/measure/stage/${stage.order}/download/file/${att.id}" class="col-1 pl-0 att-file-btn"><i class="fa fa-download"></i></a> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <a href="javascript:void(0)" class="pl-0 col-10 att-file-name" file-id=${att.id}>${att.filename}${att.fileext}</a> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div class="att-file-btn col-2"><a href="/tender/${tender.id}/ledger/download/file/${att.id}" class="pl-0"><i class="fa fa-download"></i></a>${delHtml}</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         </td><td>${att.username}</td></tr>` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -135,20 +138,23 @@ function getAllList(currPageNum = 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     $('#alllist-table').on('click', 'tr', function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $('#alllist-table tr').removeClass('bg-light') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $(this).addClass('bg-light') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 生成当前节点列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function getNodeList(node) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     let html = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     for(const att of attData) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (node === att.lid) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const delHtml = deleteFilePermission && parseInt(cur_uid) === att.uid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ? `<a class="ml-1 text-danger" href="javascript:void(0)" name="att-delete" file-id="${att.id}"><i class="fa fa-close" title="删除"></i></a>` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                : ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // html += '<tr><td><a href="javascript:void(0)" file-id="'+ att.id +'">'+ att.filename + att.fileext +'</a></td><td>'+ att.username +'</td></tr>'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             html += `<tr> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <td width="25"><input type="checkbox" class="check-file" file-id=${att.id}></td> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <td> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <div class="d-flex"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <a href="javascript:void(0)" class="pl-0 col-11 att-file-name" file-id=${att.id}>${att.filename}${att.fileext}</a> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <a href="/tender/${tender.id}/measure/stage/${stage.order}/download/file/${att.id}" class="col-1 pl-0 att-file-btn"><i class="fa fa-download"></i></a> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <a href="javascript:void(0)" class="pl-0 col-10 att-file-name" file-id=${att.id}>${att.filename}${att.fileext}</a> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <div class="att-file-btn col-2"><a href="/tender/${tender.id}/ledger/download/file/${att.id}" class="pl-0"><i class="fa fa-download"></i></a>${delHtml}</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             </td><td>${att.username}</td></tr>` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -3151,7 +3157,7 @@ $(document).ready(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let html = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (data.attachment) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 for (const att of data.attachment) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    const delHtml = (parseInt(att.uid) === userID && (att.renew || stage.status !== auditConst.status.checked)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    const delHtml = (parseInt(att.uid) === userID && (att.renew || stage.status !== auditConst.status.checked || deleteFilePermission)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         ? '<a class="delete-att text-danger ml-1" href="javascript:void(0);" data-imid="'+ data.att_uuid +'" data-attid="'+ att.file_id +'" title="删除"><i class="fa fa-remove "></i></a>' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         : ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     const viewHtml = att.viewpath ? `<a class="ml-1" href="${att.viewpath}" target="_blank" title="预览"><i class="fa fa-eye"></i></a>` : ''; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -5320,6 +5326,31 @@ $(document).ready(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             stageAssistRela.refreshAssistTable(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $('body').on('click', 'a[name=att-delete]', function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const fid = this.getAttribute('file-id'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!fid) return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const node = SpreadJsObj.getSelectObject(slSpread.getActiveSheet()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const data = {id: fid}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        postData('/tender/' + tender.id + '/measure/stage/' + stage.order + '/delete/file', data, function (result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 删除到attData中 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const att_index = attData.findIndex(function (item) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return item.id === parseInt(fid); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            attData.splice(att_index, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 重新生成List 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ($('#alllist-table tr').length === 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                getAllList(parseInt($('#currentPage').text()) - 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                getAllList(parseInt($('#currentPage').text())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            getNodeList(node.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $('#showAttachment').hide(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $('#showAttachment').attr('file-id', ''); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function makeOneShouFang(sf) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const lData = _.find(ledgerData, { id: sf.lid }); 
			 |