保存进度!
This commit is contained in:
		@@ -34,6 +34,7 @@ public class FileUpload
 | 
				
			|||||||
     * 3、MultipartFile参数形参名称必须和请求form中file标签的name属性一致,否则值为null。
 | 
					     * 3、MultipartFile参数形参名称必须和请求form中file标签的name属性一致,否则值为null。
 | 
				
			||||||
     * 4、返回值为接收结果和文件保存绝对路径。
 | 
					     * 4、返回值为接收结果和文件保存绝对路径。
 | 
				
			||||||
     * 
 | 
					     * 
 | 
				
			||||||
 | 
					     * @deprecated
 | 
				
			||||||
     * @param taskName 任务名称字符串
 | 
					     * @param taskName 任务名称字符串
 | 
				
			||||||
     * @param files    MultipartFile结构的文件对象
 | 
					     * @param files    MultipartFile结构的文件对象
 | 
				
			||||||
     * @param request  HttpServletRequest对象实例
 | 
					     * @param request  HttpServletRequest对象实例
 | 
				
			||||||
@@ -41,61 +42,61 @@ public class FileUpload
 | 
				
			|||||||
     */
 | 
					     */
 | 
				
			||||||
    // @RequestMapping( path = "/file-upload.do" )
 | 
					    // @RequestMapping( path = "/file-upload.do" )
 | 
				
			||||||
    // @ResponseBody
 | 
					    // @ResponseBody
 | 
				
			||||||
    public FileUploadResult getUploadFile(
 | 
					    // public FileUploadResult getUploadFile(
 | 
				
			||||||
            @RequestParam( "task-name" ) String taskName,
 | 
					    //         @RequestParam( "task-name" ) String taskName,
 | 
				
			||||||
            @RequestParam( "files" ) MultipartFile file,
 | 
					    //         @RequestParam( "files" ) MultipartFile file,
 | 
				
			||||||
            HttpServletRequest request
 | 
					    //         HttpServletRequest request
 | 
				
			||||||
    )
 | 
					    // )
 | 
				
			||||||
    {
 | 
					    // {
 | 
				
			||||||
        // session id用来创建临时目录,避免重复
 | 
					    //     // session id用来创建临时目录,避免重复
 | 
				
			||||||
        String           sessionID = request.getSession().getId();
 | 
					    //     String           sessionID = request.getSession().getId();
 | 
				
			||||||
        FileUploadResult result    = new FileUploadResult();
 | 
					    //     FileUploadResult result    = new FileUploadResult();
 | 
				
			||||||
        Vector<String>   fileNames = new Vector<String>();
 | 
					    //     Vector<String>   fileNames = new Vector<String>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        result.setSuccess( true );
 | 
					    //     result.setSuccess( true );
 | 
				
			||||||
        result.setMessage( "上传成功!" );
 | 
					    //     result.setMessage( "上传成功!" );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        String filePath = request.getServletContext().getRealPath( "/temp/upload/" + sessionID );
 | 
					    //     String filePath = request.getServletContext().getRealPath( "/temp/upload/" + sessionID );
 | 
				
			||||||
        File   dir      = new File( filePath );
 | 
					    //     File   dir      = new File( filePath );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if ( !dir.mkdirs() )
 | 
					    //     if ( !dir.mkdirs() )
 | 
				
			||||||
        {
 | 
					    //     {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        }
 | 
					    //     }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 检查文件长度,如果为0则跳过
 | 
					    //     // 检查文件长度,如果为0则跳过
 | 
				
			||||||
        if ( file.isEmpty() )
 | 
					    //     if ( file.isEmpty() )
 | 
				
			||||||
        {
 | 
					    //     {
 | 
				
			||||||
            result.setSuccess( false );
 | 
					    //         result.setSuccess( false );
 | 
				
			||||||
            result.setMessage( "不允许上传空文件。" );
 | 
					    //         result.setMessage( "不允许上传空文件。" );
 | 
				
			||||||
        }
 | 
					    //     }
 | 
				
			||||||
        else
 | 
					    //     else
 | 
				
			||||||
        {
 | 
					    //     {
 | 
				
			||||||
            // 保存文件到临时目录
 | 
					    //         // 保存文件到临时目录
 | 
				
			||||||
            Long   milliSecond = LocalDateTime.now().toInstant( ZoneOffset.of( "+8" ) ).toEpochMilli();
 | 
					    //         Long   milliSecond = LocalDateTime.now().toInstant( ZoneOffset.of( "+8" ) ).toEpochMilli();
 | 
				
			||||||
            String fileName    = String.valueOf( milliSecond ) + file.getOriginalFilename();
 | 
					    //         String fileName    = String.valueOf( milliSecond ) + file.getOriginalFilename();
 | 
				
			||||||
            File   destFile    = new File( filePath, fileName );
 | 
					    //         File   destFile    = new File( filePath, fileName );
 | 
				
			||||||
            // String fileName = file.getOriginalFilename();
 | 
					    //         // String fileName = file.getOriginalFilename();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            try
 | 
					    //         try
 | 
				
			||||||
            {
 | 
					    //         {
 | 
				
			||||||
                file.transferTo( destFile );
 | 
					    //             file.transferTo( destFile );
 | 
				
			||||||
                // 把上传文件的绝对路径保存,返回给前端
 | 
					    //             // 把上传文件的绝对路径保存,返回给前端
 | 
				
			||||||
                fileNames.add( destFile.getAbsolutePath() );
 | 
					    //             fileNames.add( destFile.getAbsolutePath() );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                result.setSuccess( true );
 | 
					    //             result.setSuccess( true );
 | 
				
			||||||
                result.setMessage( "上传成功" );
 | 
					    //             result.setMessage( "上传成功" );
 | 
				
			||||||
                result.setFileList( fileNames );
 | 
					    //             result.setFileList( fileNames );
 | 
				
			||||||
            }
 | 
					    //         }
 | 
				
			||||||
            catch ( IOException error )
 | 
					    //         catch ( IOException error )
 | 
				
			||||||
            {
 | 
					    //         {
 | 
				
			||||||
                result.setSuccess( false );
 | 
					    //             result.setSuccess( false );
 | 
				
			||||||
                result.setMessage( "上传失败,原因:" + error.getMessage() );
 | 
					    //             result.setMessage( "上传失败,原因:" + error.getMessage() );
 | 
				
			||||||
            }
 | 
					    //         }
 | 
				
			||||||
        }
 | 
					    //     }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return result;
 | 
					    //     return result;
 | 
				
			||||||
    }
 | 
					    // }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 接收上传文件,并保存到临时目录:
 | 
					     * 接收上传文件,并保存到临时目录:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -38,7 +38,7 @@ public class FileUploadResult extends QueryResponse
 | 
				
			|||||||
    public FileUploadResult(
 | 
					    public FileUploadResult(
 | 
				
			||||||
            boolean success,
 | 
					            boolean success,
 | 
				
			||||||
            String message,
 | 
					            String message,
 | 
				
			||||||
            Vector<String> fileList
 | 
					            Vector<UploadedFile> fileList
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        super( success, message );
 | 
					        super( success, message );
 | 
				
			||||||
@@ -46,17 +46,17 @@ public class FileUploadResult extends QueryResponse
 | 
				
			|||||||
        this.fileList = fileList;
 | 
					        this.fileList = fileList;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public Vector<String> getFileList()
 | 
					    public Vector<UploadedFile> getFileList()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        return fileList;
 | 
					        return fileList;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void setFileList( Vector<String> fileList )
 | 
					    public void setFileList( Vector<UploadedFile> fileList )
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        this.fileList = fileList;
 | 
					        this.fileList = fileList;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @JsonProperty( "fileList" )
 | 
					    @JsonProperty( "fileList" )
 | 
				
			||||||
    private Vector<String> fileList;
 | 
					    private Vector<UploadedFile> fileList;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,44 @@
 | 
				
			|||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author: Kane Wang <wangkane@qq.com>
 | 
				
			||||||
 | 
					 * @Date: 2025-10-31 17:33:13
 | 
				
			||||||
 | 
					 * @LastEditors: Kane Wang
 | 
				
			||||||
 | 
					 * @LastModified: 2025-10-31 17:36:03
 | 
				
			||||||
 | 
					 * @FilePath: src/main/java/com/cpic/xim/web/controllers/fileupload/UploadedFile.java
 | 
				
			||||||
 | 
					 * @Description:
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *               Copyright (c) 2025 by Kane All rights reserved
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					package com.cpic.xim.web.controllers.fileupload;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class UploadedFile
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private String fileName;
 | 
				
			||||||
 | 
					    private String localFilePath;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getFileName()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return fileName;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setFileName( String fileName )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        this.fileName = fileName;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getLocalFilePath()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return localFilePath;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setLocalFilePath( String localFilePath )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        this.localFilePath = localFilePath;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public UploadedFile( String fileName, String localFilePath )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        this.fileName      = fileName;
 | 
				
			||||||
 | 
					        this.localFilePath = localFilePath;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										303
									
								
								code/web/regulatory-management-util/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										303
									
								
								code/web/regulatory-management-util/package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -23,6 +23,7 @@
 | 
				
			|||||||
        "@vue-office/excel": "^1.7.14",
 | 
					        "@vue-office/excel": "^1.7.14",
 | 
				
			||||||
        "@vue-office/pdf": "^2.0.10",
 | 
					        "@vue-office/pdf": "^2.0.10",
 | 
				
			||||||
        "@vue/tsconfig": "^0.8.1",
 | 
					        "@vue/tsconfig": "^0.8.1",
 | 
				
			||||||
 | 
					        "axios": "^1.13.1",
 | 
				
			||||||
        "element-plus": "^2.11.5",
 | 
					        "element-plus": "^2.11.5",
 | 
				
			||||||
        "eslint": "^9.38.0",
 | 
					        "eslint": "^9.38.0",
 | 
				
			||||||
        "eslint-plugin-vue": "^10.5.1",
 | 
					        "eslint-plugin-vue": "^10.5.1",
 | 
				
			||||||
@@ -2362,6 +2363,25 @@
 | 
				
			|||||||
      "dev": true,
 | 
					      "dev": true,
 | 
				
			||||||
      "license": "MIT"
 | 
					      "license": "MIT"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/asynckit": {
 | 
				
			||||||
 | 
					      "version": "0.4.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/axios": {
 | 
				
			||||||
 | 
					      "version": "1.13.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/axios/-/axios-1.13.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-hU4EGxxt+j7TQijx1oYdAjw4xuIp1wRQSsbMFwSthCWeBQur1eF+qJ5iQ5sN3Tw8YRzQNKb8jszgBdMDVqwJcw==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "follow-redirects": "^1.15.6",
 | 
				
			||||||
 | 
					        "form-data": "^4.0.4",
 | 
				
			||||||
 | 
					        "proxy-from-env": "^1.1.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/balanced-match": {
 | 
					    "node_modules/balanced-match": {
 | 
				
			||||||
      "version": "1.0.2",
 | 
					      "version": "1.0.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
 | 
				
			||||||
@@ -2399,6 +2419,20 @@
 | 
				
			|||||||
        "node": ">=8"
 | 
					        "node": ">=8"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/call-bind-apply-helpers": {
 | 
				
			||||||
 | 
					      "version": "1.0.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "es-errors": "^1.3.0",
 | 
				
			||||||
 | 
					        "function-bind": "^1.1.2"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/callsites": {
 | 
					    "node_modules/callsites": {
 | 
				
			||||||
      "version": "3.1.0",
 | 
					      "version": "3.1.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
 | 
				
			||||||
@@ -2462,6 +2496,19 @@
 | 
				
			|||||||
      "dev": true,
 | 
					      "dev": true,
 | 
				
			||||||
      "license": "MIT"
 | 
					      "license": "MIT"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/combined-stream": {
 | 
				
			||||||
 | 
					      "version": "1.0.8",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "delayed-stream": "~1.0.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.8"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/concat-map": {
 | 
					    "node_modules/concat-map": {
 | 
				
			||||||
      "version": "0.0.1",
 | 
					      "version": "0.0.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
 | 
				
			||||||
@@ -2535,6 +2582,16 @@
 | 
				
			|||||||
      "dev": true,
 | 
					      "dev": true,
 | 
				
			||||||
      "license": "MIT"
 | 
					      "license": "MIT"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/delayed-stream": {
 | 
				
			||||||
 | 
					      "version": "1.0.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">=0.4.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/detect-libc": {
 | 
					    "node_modules/detect-libc": {
 | 
				
			||||||
      "version": "1.0.3",
 | 
					      "version": "1.0.3",
 | 
				
			||||||
      "resolved": "https://registry.npmmirror.com/detect-libc/-/detect-libc-1.0.3.tgz",
 | 
					      "resolved": "https://registry.npmmirror.com/detect-libc/-/detect-libc-1.0.3.tgz",
 | 
				
			||||||
@@ -2549,6 +2606,21 @@
 | 
				
			|||||||
        "node": ">=0.10"
 | 
					        "node": ">=0.10"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/dunder-proto": {
 | 
				
			||||||
 | 
					      "version": "1.0.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "call-bind-apply-helpers": "^1.0.1",
 | 
				
			||||||
 | 
					        "es-errors": "^1.3.0",
 | 
				
			||||||
 | 
					        "gopd": "^1.2.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/element-plus": {
 | 
					    "node_modules/element-plus": {
 | 
				
			||||||
      "version": "2.11.5",
 | 
					      "version": "2.11.5",
 | 
				
			||||||
      "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.11.5.tgz",
 | 
					      "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.11.5.tgz",
 | 
				
			||||||
@@ -2587,6 +2659,55 @@
 | 
				
			|||||||
        "url": "https://github.com/fb55/entities?sponsor=1"
 | 
					        "url": "https://github.com/fb55/entities?sponsor=1"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/es-define-property": {
 | 
				
			||||||
 | 
					      "version": "1.0.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/es-errors": {
 | 
				
			||||||
 | 
					      "version": "1.3.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/es-object-atoms": {
 | 
				
			||||||
 | 
					      "version": "1.1.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "es-errors": "^1.3.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/es-set-tostringtag": {
 | 
				
			||||||
 | 
					      "version": "2.1.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "es-errors": "^1.3.0",
 | 
				
			||||||
 | 
					        "get-intrinsic": "^1.2.6",
 | 
				
			||||||
 | 
					        "has-tostringtag": "^1.0.2",
 | 
				
			||||||
 | 
					        "hasown": "^2.0.2"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/esbuild": {
 | 
					    "node_modules/esbuild": {
 | 
				
			||||||
      "version": "0.25.8",
 | 
					      "version": "0.25.8",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.8.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.8.tgz",
 | 
				
			||||||
@@ -3038,6 +3159,44 @@
 | 
				
			|||||||
      "dev": true,
 | 
					      "dev": true,
 | 
				
			||||||
      "license": "ISC"
 | 
					      "license": "ISC"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/follow-redirects": {
 | 
				
			||||||
 | 
					      "version": "1.15.11",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.11.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "funding": [
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          "type": "individual",
 | 
				
			||||||
 | 
					          "url": "https://github.com/sponsors/RubenVerborgh"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">=4.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "peerDependenciesMeta": {
 | 
				
			||||||
 | 
					        "debug": {
 | 
				
			||||||
 | 
					          "optional": true
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/form-data": {
 | 
				
			||||||
 | 
					      "version": "4.0.4",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.4.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "asynckit": "^0.4.0",
 | 
				
			||||||
 | 
					        "combined-stream": "^1.0.8",
 | 
				
			||||||
 | 
					        "es-set-tostringtag": "^2.1.0",
 | 
				
			||||||
 | 
					        "hasown": "^2.0.2",
 | 
				
			||||||
 | 
					        "mime-types": "^2.1.12"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 6"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/fsevents": {
 | 
					    "node_modules/fsevents": {
 | 
				
			||||||
      "version": "2.3.3",
 | 
					      "version": "2.3.3",
 | 
				
			||||||
      "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz",
 | 
					      "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz",
 | 
				
			||||||
@@ -3053,6 +3212,55 @@
 | 
				
			|||||||
        "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
 | 
					        "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/function-bind": {
 | 
				
			||||||
 | 
					      "version": "1.1.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "funding": {
 | 
				
			||||||
 | 
					        "url": "https://github.com/sponsors/ljharb"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/get-intrinsic": {
 | 
				
			||||||
 | 
					      "version": "1.3.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "call-bind-apply-helpers": "^1.0.2",
 | 
				
			||||||
 | 
					        "es-define-property": "^1.0.1",
 | 
				
			||||||
 | 
					        "es-errors": "^1.3.0",
 | 
				
			||||||
 | 
					        "es-object-atoms": "^1.1.1",
 | 
				
			||||||
 | 
					        "function-bind": "^1.1.2",
 | 
				
			||||||
 | 
					        "get-proto": "^1.0.1",
 | 
				
			||||||
 | 
					        "gopd": "^1.2.0",
 | 
				
			||||||
 | 
					        "has-symbols": "^1.1.0",
 | 
				
			||||||
 | 
					        "hasown": "^2.0.2",
 | 
				
			||||||
 | 
					        "math-intrinsics": "^1.1.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "funding": {
 | 
				
			||||||
 | 
					        "url": "https://github.com/sponsors/ljharb"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/get-proto": {
 | 
				
			||||||
 | 
					      "version": "1.0.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "dunder-proto": "^1.0.1",
 | 
				
			||||||
 | 
					        "es-object-atoms": "^1.0.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/glob-parent": {
 | 
					    "node_modules/glob-parent": {
 | 
				
			||||||
      "version": "6.0.2",
 | 
					      "version": "6.0.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
 | 
				
			||||||
@@ -3079,6 +3287,19 @@
 | 
				
			|||||||
        "url": "https://github.com/sponsors/sindresorhus"
 | 
					        "url": "https://github.com/sponsors/sindresorhus"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/gopd": {
 | 
				
			||||||
 | 
					      "version": "1.2.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "funding": {
 | 
				
			||||||
 | 
					        "url": "https://github.com/sponsors/ljharb"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/graphemer": {
 | 
					    "node_modules/graphemer": {
 | 
				
			||||||
      "version": "1.4.0",
 | 
					      "version": "1.4.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
 | 
				
			||||||
@@ -3096,6 +3317,48 @@
 | 
				
			|||||||
        "node": ">=8"
 | 
					        "node": ">=8"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/has-symbols": {
 | 
				
			||||||
 | 
					      "version": "1.1.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "funding": {
 | 
				
			||||||
 | 
					        "url": "https://github.com/sponsors/ljharb"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/has-tostringtag": {
 | 
				
			||||||
 | 
					      "version": "1.0.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "has-symbols": "^1.0.3"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "funding": {
 | 
				
			||||||
 | 
					        "url": "https://github.com/sponsors/ljharb"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/hasown": {
 | 
				
			||||||
 | 
					      "version": "2.0.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "function-bind": "^1.1.2"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/ignore": {
 | 
					    "node_modules/ignore": {
 | 
				
			||||||
      "version": "7.0.5",
 | 
					      "version": "7.0.5",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
 | 
				
			||||||
@@ -3305,6 +3568,16 @@
 | 
				
			|||||||
        "@jridgewell/sourcemap-codec": "^1.5.5"
 | 
					        "@jridgewell/sourcemap-codec": "^1.5.5"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/math-intrinsics": {
 | 
				
			||||||
 | 
					      "version": "1.1.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/memoize-one": {
 | 
					    "node_modules/memoize-one": {
 | 
				
			||||||
      "version": "6.0.0",
 | 
					      "version": "6.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz",
 | 
				
			||||||
@@ -3349,6 +3622,29 @@
 | 
				
			|||||||
        "url": "https://github.com/sponsors/jonschlinkert"
 | 
					        "url": "https://github.com/sponsors/jonschlinkert"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/mime-db": {
 | 
				
			||||||
 | 
					      "version": "1.52.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.6"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/mime-types": {
 | 
				
			||||||
 | 
					      "version": "2.1.35",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "mime-db": "1.52.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.6"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/minimatch": {
 | 
					    "node_modules/minimatch": {
 | 
				
			||||||
      "version": "9.0.5",
 | 
					      "version": "9.0.5",
 | 
				
			||||||
      "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.5.tgz",
 | 
					      "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.5.tgz",
 | 
				
			||||||
@@ -3635,6 +3931,13 @@
 | 
				
			|||||||
        "node": ">= 0.6.0"
 | 
					        "node": ">= 0.6.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/proxy-from-env": {
 | 
				
			||||||
 | 
					      "version": "1.1.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/punycode": {
 | 
					    "node_modules/punycode": {
 | 
				
			||||||
      "version": "2.3.1",
 | 
					      "version": "2.3.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -24,6 +24,7 @@
 | 
				
			|||||||
    "@vue-office/excel": "^1.7.14",
 | 
					    "@vue-office/excel": "^1.7.14",
 | 
				
			||||||
    "@vue-office/pdf": "^2.0.10",
 | 
					    "@vue-office/pdf": "^2.0.10",
 | 
				
			||||||
    "@vue/tsconfig": "^0.8.1",
 | 
					    "@vue/tsconfig": "^0.8.1",
 | 
				
			||||||
 | 
					    "axios": "^1.13.1",
 | 
				
			||||||
    "element-plus": "^2.11.5",
 | 
					    "element-plus": "^2.11.5",
 | 
				
			||||||
    "eslint": "^9.38.0",
 | 
					    "eslint": "^9.38.0",
 | 
				
			||||||
    "eslint-plugin-vue": "^10.5.1",
 | 
					    "eslint-plugin-vue": "^10.5.1",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,7 +2,7 @@
 | 
				
			|||||||
 * @Author: Kane Wang <wangkane@qq.com>
 | 
					 * @Author: Kane Wang <wangkane@qq.com>
 | 
				
			||||||
 * @Date: 2025-10-13 15:31:41
 | 
					 * @Date: 2025-10-13 15:31:41
 | 
				
			||||||
 * @LastEditors: Kane Wang
 | 
					 * @LastEditors: Kane Wang
 | 
				
			||||||
 * @LastModified: 2025-10-30 15:16:59
 | 
					 * @LastModified: 2025-10-31 15:10:46
 | 
				
			||||||
 * @FilePath: src/router/index.ts
 | 
					 * @FilePath: src/router/index.ts
 | 
				
			||||||
 * @Description:
 | 
					 * @Description:
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
@@ -75,7 +75,7 @@ const routes = [
 | 
				
			|||||||
                path: "/new-regulatory",
 | 
					                path: "/new-regulatory",
 | 
				
			||||||
                name: "NewRegulatory",
 | 
					                name: "NewRegulatory",
 | 
				
			||||||
                meta: {
 | 
					                meta: {
 | 
				
			||||||
                    title: "新建",
 | 
					                    title: "测试用 - 新建",
 | 
				
			||||||
                    icon: "OfficeBuilding",
 | 
					                    icon: "OfficeBuilding",
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
                hidden: false,
 | 
					                hidden: false,
 | 
				
			||||||
@@ -85,7 +85,7 @@ const routes = [
 | 
				
			|||||||
                path: "/upload-regulatory",
 | 
					                path: "/upload-regulatory",
 | 
				
			||||||
                name: "UploadRegulatory",
 | 
					                name: "UploadRegulatory",
 | 
				
			||||||
                meta: {
 | 
					                meta: {
 | 
				
			||||||
                    title: "上传制度",
 | 
					                    title: "测试用 - 上传制度",
 | 
				
			||||||
                    icon: "OfficeBuilding",
 | 
					                    icon: "OfficeBuilding",
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
                hidden: false,
 | 
					                hidden: false,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,6 +13,14 @@ interface RegulatoryData {
 | 
				
			|||||||
    department_name: string;
 | 
					    department_name: string;
 | 
				
			||||||
    release_year: string;
 | 
					    release_year: string;
 | 
				
			||||||
    regulatory_name: string;
 | 
					    regulatory_name: string;
 | 
				
			||||||
 | 
					    comment: string;
 | 
				
			||||||
 | 
					    regulatory_files: null | RegulatoryFile[]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export { type RegulatoryData };
 | 
					interface RegulatoryFile {
 | 
				
			||||||
 | 
					    regulatory_file_name: string;
 | 
				
			||||||
 | 
					    file_url: string;
 | 
				
			||||||
 | 
					    file_type: string
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export { type RegulatoryData, type RegulatoryFile };
 | 
				
			||||||
@@ -12,7 +12,7 @@ Copyright © CPIC All rights reserved
 | 
				
			|||||||
                    <span>名称</span>
 | 
					                    <span>名称</span>
 | 
				
			||||||
                </el-col>
 | 
					                </el-col>
 | 
				
			||||||
                <el-col :span="10">
 | 
					                <el-col :span="10">
 | 
				
			||||||
                    <el-input />
 | 
					                    <el-input style="text-align:center;" />
 | 
				
			||||||
                </el-col>
 | 
					                </el-col>
 | 
				
			||||||
            </el-row>
 | 
					            </el-row>
 | 
				
			||||||
            <el-row :gutter="10">
 | 
					            <el-row :gutter="10">
 | 
				
			||||||
@@ -40,7 +40,7 @@ Copyright © CPIC All rights reserved
 | 
				
			|||||||
            <el-row :gutter="10">
 | 
					            <el-row :gutter="10">
 | 
				
			||||||
                <el-col :span="3">
 | 
					                <el-col :span="3">
 | 
				
			||||||
                    <div class="button-wrapper-left">
 | 
					                    <div class="button-wrapper-left">
 | 
				
			||||||
                        <el-button type="primary" icon="document">
 | 
					                        <el-button type="primary" icon="document" @click="showUploadFileDialog">
 | 
				
			||||||
                            新增文档
 | 
					                            新增文档
 | 
				
			||||||
                        </el-button>
 | 
					                        </el-button>
 | 
				
			||||||
                        <el-button type="primary" icon="document">
 | 
					                        <el-button type="primary" icon="document">
 | 
				
			||||||
@@ -58,6 +58,51 @@ Copyright © CPIC All rights reserved
 | 
				
			|||||||
                </el-col>
 | 
					                </el-col>
 | 
				
			||||||
            </el-row>
 | 
					            </el-row>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
 | 
					        <el-table
 | 
				
			||||||
 | 
					            width="100%" stripe
 | 
				
			||||||
 | 
					            border
 | 
				
			||||||
 | 
					            :head-cell-style="headerCellStyle"
 | 
				
			||||||
 | 
					        >
 | 
				
			||||||
 | 
					            <el-table-column label="文件名" align="center" width="200px">
 | 
				
			||||||
 | 
					                <template #default="file">
 | 
				
			||||||
 | 
					                    <span>{{ file.row.filename }}</span>
 | 
				
			||||||
 | 
					                </template>
 | 
				
			||||||
 | 
					            </el-table-column>
 | 
				
			||||||
 | 
					            <el-table-column label="文件类型" align="center">
 | 
				
			||||||
 | 
					                <template #default="file">
 | 
				
			||||||
 | 
					                    <span>{{ file.row.filename }}</span>
 | 
				
			||||||
 | 
					                </template>
 | 
				
			||||||
 | 
					            </el-table-column>
 | 
				
			||||||
 | 
					            <el-table-column label="操作" align="center" width="200px">
 | 
				
			||||||
 | 
					                <el-button type="primary" icon="search">
 | 
				
			||||||
 | 
					                    查看
 | 
				
			||||||
 | 
					                </el-button>
 | 
				
			||||||
 | 
					            </el-table-column>
 | 
				
			||||||
 | 
					        </el-table>
 | 
				
			||||||
 | 
					        <div class="upload-dialog-wrapper">
 | 
				
			||||||
 | 
					            <el-dialog
 | 
				
			||||||
 | 
					                v-model="ui.showUploadDialog" title="上传文件"
 | 
				
			||||||
 | 
					                width="600px"
 | 
				
			||||||
 | 
					                :close-on-click-model="false" :close-on-press-escape="false"
 | 
				
			||||||
 | 
					                :show-close="true"
 | 
				
			||||||
 | 
					            >
 | 
				
			||||||
 | 
					                <el-upload
 | 
				
			||||||
 | 
					                    drag
 | 
				
			||||||
 | 
					                    :action="ui.urlFileUpload"
 | 
				
			||||||
 | 
					                    name="files"
 | 
				
			||||||
 | 
					                    :show-file-list="false"
 | 
				
			||||||
 | 
					                    :data="ui.uploadParameters"
 | 
				
			||||||
 | 
					                    :on-success="onUploadSuccess"
 | 
				
			||||||
 | 
					                >
 | 
				
			||||||
 | 
					                    <el-icon class="el-icon--upload">
 | 
				
			||||||
 | 
					                        <upload-filled />
 | 
				
			||||||
 | 
					                    </el-icon>
 | 
				
			||||||
 | 
					                    <div class="el-upload__text">
 | 
				
			||||||
 | 
					                        将文件拖到此处,或<em>点击上传</em>
 | 
				
			||||||
 | 
					                    </div>
 | 
				
			||||||
 | 
					                </el-upload>
 | 
				
			||||||
 | 
					            </el-dialog>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
<script lang="ts">
 | 
					<script lang="ts">
 | 
				
			||||||
@@ -70,11 +115,36 @@ export default {
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
        const ui = reactive({
 | 
					        const ui = reactive({
 | 
				
			||||||
            showUI: true,
 | 
					            showUI: true,
 | 
				
			||||||
        }
 | 
					            showUploadDialog: false,
 | 
				
			||||||
 | 
					            urlFileUpload: "",
 | 
				
			||||||
 | 
					            uploadParameters: {
 | 
				
			||||||
 | 
					                "file-name": "1234",
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            showFileList: false,
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        const headerCellStyle = reactive(
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                textAlign: "center",
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
 | 
					        const cellStyle = reactive({
 | 
				
			||||||
 | 
					            textAlign: "center",
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        const onUploadSuccess = ()=> {};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        const showUploadFileDialog = (): void =>
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            ui.showUploadDialog = true;
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return {
 | 
					        return {
 | 
				
			||||||
            ui,
 | 
					            ui,
 | 
				
			||||||
 | 
					            headerCellStyle,
 | 
				
			||||||
 | 
					            cellStyle,
 | 
				
			||||||
 | 
					            onUploadSuccess,
 | 
				
			||||||
 | 
					            showUploadFileDialog,
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@@ -96,4 +166,8 @@ export default {
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    @include query-box-wrap;
 | 
					    @include query-box-wrap;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:deep(.el-input) .el-input__inner {
 | 
				
			||||||
 | 
					    text-align: center;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
</style>
 | 
					</style>
 | 
				
			||||||
@@ -92,11 +92,15 @@ export default {
 | 
				
			|||||||
                    department_name: "信息技术部",
 | 
					                    department_name: "信息技术部",
 | 
				
			||||||
                    release_year: "2019",
 | 
					                    release_year: "2019",
 | 
				
			||||||
                    regulatory_name: "关于印发修订后的《太平洋产险厦门分公司信息系统账号权限管理实施细则》的通知",
 | 
					                    regulatory_name: "关于印发修订后的《太平洋产险厦门分公司信息系统账号权限管理实施细则》的通知",
 | 
				
			||||||
 | 
					                    comment:"",
 | 
				
			||||||
 | 
					                    regulatory_files: [],
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    department_name: "信息技术部",
 | 
					                    department_name: "信息技术部",
 | 
				
			||||||
                    release_year: "2019",
 | 
					                    release_year: "2019",
 | 
				
			||||||
                    regulatory_name: "关于印发修订后的《太平洋产险厦门分公司个人信息保护管理实施细则》的通知",
 | 
					                    regulatory_name: "关于印发修订后的《太平洋产险厦门分公司个人信息保护管理实施细则》的通知",
 | 
				
			||||||
 | 
					                    comment:"",
 | 
				
			||||||
 | 
					                    regulatory_files: [],
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user