From 1bd2237b161e519c340052916c8e941a16595ba3 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期一, 31 七月 2023 02:06:41 +0800
Subject: [PATCH] #售前规划申请单上传文件预览

---
 src/main/java/com/zy/crm/manager/controller/PlanController.java |   29 +++++++++
 src/main/webapp/static/js/plan/plan.js                          |   43 ++++++++++++++
 src/main/webapp/views/plan/plan.html                            |    2 
 src/main/java/com/zy/crm/common/utils/FileSaveExampleUtil.java  |   65 +++++++++++++++++++++
 4 files changed, 137 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/crm/common/utils/FileSaveExampleUtil.java b/src/main/java/com/zy/crm/common/utils/FileSaveExampleUtil.java
index cc6d062..e599ad4 100644
--- a/src/main/java/com/zy/crm/common/utils/FileSaveExampleUtil.java
+++ b/src/main/java/com/zy/crm/common/utils/FileSaveExampleUtil.java
@@ -4,6 +4,10 @@
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import lombok.Data;
 import org.springframework.web.multipart.MultipartFile;
 
 public class FileSaveExampleUtil {
@@ -61,4 +65,65 @@
         File dest = new File(filePath);
         file.transferTo(dest);
     }
+
+    public static void deleteFilesInDirectory(String directoryPath) {
+        File directory = new File(directoryPath);
+        if (directory.exists() && directory.isDirectory()) {
+            File[] files = directory.listFiles();
+            if (files != null) {
+                for (File file : files) {
+                    if (file.isFile()) {
+                        file.delete();
+                        System.out.println("Deleted file: " + file.getAbsolutePath());
+                    }
+                }
+            }
+        }
+    }
+
+    public static List<FileDTO> viewFileList(String directoryPath) {
+        List<FileDTO> fileList = new ArrayList<>();
+
+        File directory = new File(directoryPath);
+        if (directory.exists() && directory.isDirectory()) {
+            File[] files = directory.listFiles();
+            if (files != null) {
+                for (File file : files) {
+                    if (file.isFile()) {
+                        FileDTO fileDTO = new FileDTO(file.getName(), file.length(), file.getAbsolutePath());
+//                        FileDTO fileDTO = new FileDTO(file.getName(), file.length());
+                        fileList.add(fileDTO);
+                    }
+                }
+            }
+        }
+
+        return fileList;
+    }
+
+    @Data
+    public static class FileDTO {
+        private String name;
+        private long size;
+        private String path;
+
+        public FileDTO(String name, long size, String path) {
+            this.name = name;
+            this.size = size;
+            this.path = path;
+        }
+
+        public FileDTO(String name, long size) {
+            this.name = name;
+            this.size = size;
+//            this.path = path;
+        }
+
+        // getters and setters
+    }
+
+//    public static void main(String[] args) {
+//        String directoryPath = "/path/to/directory";
+//        deleteFilesInDirectory(directoryPath);
+//    }
 }
diff --git a/src/main/java/com/zy/crm/manager/controller/PlanController.java b/src/main/java/com/zy/crm/manager/controller/PlanController.java
index 172b69d..335d9c9 100644
--- a/src/main/java/com/zy/crm/manager/controller/PlanController.java
+++ b/src/main/java/com/zy/crm/manager/controller/PlanController.java
@@ -226,6 +226,35 @@
         return R.ok();
     }
 
+    @RequestMapping(value = "/plan/delete/file/auth")
+//    @ManagerAuth
+    public R deleteFile(@RequestParam("planId") String planId,@RequestParam MultipartFile file){
+        planId="涓婁紶鏂囦欢-20";
+        String[] split = planId.split("-");
+        int id = Integer.parseInt(split[1]);
+        System.out.println("---寮�濮�---");
+        String savePath = "D:/crm/plan/file/"+id+"/"+file.getName(); // 鎸囧畾淇濆瓨鏂囦欢鐨勮矾寰�
+        try{
+            FileSaveExampleUtil.deleteFilesInDirectory(savePath);
+        }catch (Exception e){
+            return R.error();
+        }
+        return R.ok();
+    }
+
+    @RequestMapping(value = "/plan/view/file/auth")
+//    @ManagerAuth
+    public R viewFile(@RequestParam("planId") String planId){
+        int id = Integer.parseInt(planId);
+        String savePath = "D:/crm/plan/file/"+id+"/"; // 鎸囧畾淇濆瓨鏂囦欢鐨勮矾寰�
+        try{
+            List<FileSaveExampleUtil.FileDTO> fileDTOS = FileSaveExampleUtil.viewFileList(savePath);
+            return R.ok(fileDTOS);
+        }catch (Exception e){
+            return R.error();
+        }
+    }
+
 
 
     @PostMapping(value = "/plan/approval/auth")
diff --git a/src/main/webapp/static/js/plan/plan.js b/src/main/webapp/static/js/plan/plan.js
index 3809a81..41e305e 100644
--- a/src/main/webapp/static/js/plan/plan.js
+++ b/src/main/webapp/static/js/plan/plan.js
@@ -204,7 +204,7 @@
         ,url: '/plan/insert/file/auth' //姝ゅ鐢ㄧ殑鏄涓夋柟鐨� http 璇锋眰婕旂ず锛屽疄闄呬娇鐢ㄦ椂鏀规垚鎮ㄨ嚜宸辩殑涓婁紶鎺ュ彛鍗冲彲銆�
         ,accept: 'file'
         ,multiple: true
-        ,number: 3
+        ,number: 10
         ,auto: false
         ,bindAction: '#testListAction'
         ,choose: function(obj){
@@ -544,6 +544,47 @@
                     title: '涓婁紶鏂囦欢-'+data.id,
                     content: $('#myModal')
                 });
+                // 鑾峰彇璺緞涓嬬殑鏂囦欢鍒楄〃锛屼娇鐢� jQuery 鐨� ajax 鏂规硶
+                $.ajax({
+                    url: '/plan/view/file/auth',
+                    data:{
+                        planId:data.id
+                    },
+                    success: function(response) {
+                        if (response.code==200){
+                            var targetTable = document.getElementById("data-btn-file3");
+                            // var targetTable1 = document.getElementById("layui-layer2");
+                            // // 鑾峰彇鏂囨湰鍐呭
+                            // var text = targetTable1.textContent.trim();
+                            // console.log(text); // 杈撳嚭 '涓婁紶鏂囦欢-20'
+                            targetTable.innerHTML = '';
+                            // 灏嗚幏鍙栧埌鐨勬枃浠跺垪琛ㄦ坊鍔犲埌鏂囦欢闃熷垪涓繘琛屾樉绀�
+                            response.data.forEach(function(file,index) {
+                                console.log('Failed to get file list data.');
+                                console.log(file);
+
+                                // 鍒涘缓tr鍏冪礌
+                                var tr = document.createElement("tr");
+                                tr.id = "upload-"+index;
+                                tr.innerHTML = '<td>' + file.name + '</td>'
+                                    + '<td>' + (file.size / 1024).toFixed(1) + 'kb</td>'
+                                    + '<td><div class="layui-progress" lay-filter="progress-demo-' + index + '"><div class="layui-progress-bar" lay-percent=""></div></div></td>'
+                                    + '<td>'
+                                    + '<button class="layui-btn layui-btn-xs demo-reload layui-hide">閲嶄紶</button>'
+                                    + '<button class="layui-btn layui-btn-xs layui-btn-danger demo-delete">鍒犻櫎</button>'
+                                    + '</td>';
+
+                                // 灏唗r鍏冪礌娣诲姞鍒扮洰鏍噒able涓�
+                                targetTable.appendChild(tr);
+                            });
+                        }else {
+                            console.log('Failed to get file list error.');
+                        }
+                    },
+                    error: function() {
+                        console.log('Failed to get file list.');
+                    }
+                });
                 break;
         }
     });
diff --git a/src/main/webapp/views/plan/plan.html b/src/main/webapp/views/plan/plan.html
index ffb748c..80ace3c 100644
--- a/src/main/webapp/views/plan/plan.html
+++ b/src/main/webapp/views/plan/plan.html
@@ -106,7 +106,7 @@
     </div>
 </div>
 
-<div id="myModal"  layui-hide="true">
+<div id="myModal"  style="display: none;">
     <div style="padding: 10px">
         <div class="layui-upload">
             <button type="button" class="layui-btn layui-btn-normal" id="data-btn-file2">閫夋嫨鏂囦欢</button><input class="layui-upload-file" type="file" accept="" name="file" multiple="">

--
Gitblit v1.9.1