保存进度!
This commit is contained in:
@@ -34,6 +34,7 @@ public class FileUpload
|
||||
* 3、MultipartFile参数形参名称必须和请求form中file标签的name属性一致,否则值为null。
|
||||
* 4、返回值为接收结果和文件保存绝对路径。
|
||||
*
|
||||
* @deprecated
|
||||
* @param taskName 任务名称字符串
|
||||
* @param files MultipartFile结构的文件对象
|
||||
* @param request HttpServletRequest对象实例
|
||||
@@ -41,61 +42,61 @@ public class FileUpload
|
||||
*/
|
||||
// @RequestMapping( path = "/file-upload.do" )
|
||||
// @ResponseBody
|
||||
public FileUploadResult getUploadFile(
|
||||
@RequestParam( "task-name" ) String taskName,
|
||||
@RequestParam( "files" ) MultipartFile file,
|
||||
HttpServletRequest request
|
||||
)
|
||||
{
|
||||
// session id用来创建临时目录,避免重复
|
||||
String sessionID = request.getSession().getId();
|
||||
FileUploadResult result = new FileUploadResult();
|
||||
Vector<String> fileNames = new Vector<String>();
|
||||
// public FileUploadResult getUploadFile(
|
||||
// @RequestParam( "task-name" ) String taskName,
|
||||
// @RequestParam( "files" ) MultipartFile file,
|
||||
// HttpServletRequest request
|
||||
// )
|
||||
// {
|
||||
// // session id用来创建临时目录,避免重复
|
||||
// String sessionID = request.getSession().getId();
|
||||
// FileUploadResult result = new FileUploadResult();
|
||||
// Vector<String> fileNames = new Vector<String>();
|
||||
|
||||
result.setSuccess( true );
|
||||
result.setMessage( "上传成功!" );
|
||||
// result.setSuccess( true );
|
||||
// result.setMessage( "上传成功!" );
|
||||
|
||||
String filePath = request.getServletContext().getRealPath( "/temp/upload/" + sessionID );
|
||||
File dir = new File( filePath );
|
||||
// String filePath = request.getServletContext().getRealPath( "/temp/upload/" + sessionID );
|
||||
// File dir = new File( filePath );
|
||||
|
||||
if ( !dir.mkdirs() )
|
||||
{
|
||||
// if ( !dir.mkdirs() )
|
||||
// {
|
||||
|
||||
}
|
||||
// }
|
||||
|
||||
// 检查文件长度,如果为0则跳过
|
||||
if ( file.isEmpty() )
|
||||
{
|
||||
result.setSuccess( false );
|
||||
result.setMessage( "不允许上传空文件。" );
|
||||
}
|
||||
else
|
||||
{
|
||||
// 保存文件到临时目录
|
||||
Long milliSecond = LocalDateTime.now().toInstant( ZoneOffset.of( "+8" ) ).toEpochMilli();
|
||||
String fileName = String.valueOf( milliSecond ) + file.getOriginalFilename();
|
||||
File destFile = new File( filePath, fileName );
|
||||
// String fileName = file.getOriginalFilename();
|
||||
// // 检查文件长度,如果为0则跳过
|
||||
// if ( file.isEmpty() )
|
||||
// {
|
||||
// result.setSuccess( false );
|
||||
// result.setMessage( "不允许上传空文件。" );
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// // 保存文件到临时目录
|
||||
// Long milliSecond = LocalDateTime.now().toInstant( ZoneOffset.of( "+8" ) ).toEpochMilli();
|
||||
// String fileName = String.valueOf( milliSecond ) + file.getOriginalFilename();
|
||||
// File destFile = new File( filePath, fileName );
|
||||
// // String fileName = file.getOriginalFilename();
|
||||
|
||||
try
|
||||
{
|
||||
file.transferTo( destFile );
|
||||
// 把上传文件的绝对路径保存,返回给前端
|
||||
fileNames.add( destFile.getAbsolutePath() );
|
||||
// try
|
||||
// {
|
||||
// file.transferTo( destFile );
|
||||
// // 把上传文件的绝对路径保存,返回给前端
|
||||
// fileNames.add( destFile.getAbsolutePath() );
|
||||
|
||||
result.setSuccess( true );
|
||||
result.setMessage( "上传成功" );
|
||||
result.setFileList( fileNames );
|
||||
}
|
||||
catch ( IOException error )
|
||||
{
|
||||
result.setSuccess( false );
|
||||
result.setMessage( "上传失败,原因:" + error.getMessage() );
|
||||
}
|
||||
}
|
||||
// result.setSuccess( true );
|
||||
// result.setMessage( "上传成功" );
|
||||
// result.setFileList( fileNames );
|
||||
// }
|
||||
// catch ( IOException error )
|
||||
// {
|
||||
// result.setSuccess( false );
|
||||
// result.setMessage( "上传失败,原因:" + error.getMessage() );
|
||||
// }
|
||||
// }
|
||||
|
||||
return result;
|
||||
}
|
||||
// return result;
|
||||
// }
|
||||
|
||||
/**
|
||||
* 接收上传文件,并保存到临时目录:
|
||||
|
||||
@@ -38,7 +38,7 @@ public class FileUploadResult extends QueryResponse
|
||||
public FileUploadResult(
|
||||
boolean success,
|
||||
String message,
|
||||
Vector<String> fileList
|
||||
Vector<UploadedFile> fileList
|
||||
)
|
||||
{
|
||||
super( success, message );
|
||||
@@ -46,17 +46,17 @@ public class FileUploadResult extends QueryResponse
|
||||
this.fileList = fileList;
|
||||
}
|
||||
|
||||
public Vector<String> getFileList()
|
||||
public Vector<UploadedFile> getFileList()
|
||||
{
|
||||
return fileList;
|
||||
}
|
||||
|
||||
public void setFileList( Vector<String> fileList )
|
||||
public void setFileList( Vector<UploadedFile> fileList )
|
||||
{
|
||||
this.fileList = 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/pdf": "^2.0.10",
|
||||
"@vue/tsconfig": "^0.8.1",
|
||||
"axios": "^1.13.1",
|
||||
"element-plus": "^2.11.5",
|
||||
"eslint": "^9.38.0",
|
||||
"eslint-plugin-vue": "^10.5.1",
|
||||
@@ -2362,6 +2363,25 @@
|
||||
"dev": true,
|
||||
"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": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
||||
@@ -2399,6 +2419,20 @@
|
||||
"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": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
|
||||
@@ -2462,6 +2496,19 @@
|
||||
"dev": true,
|
||||
"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": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||
@@ -2535,6 +2582,16 @@
|
||||
"dev": true,
|
||||
"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": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmmirror.com/detect-libc/-/detect-libc-1.0.3.tgz",
|
||||
@@ -2549,6 +2606,21 @@
|
||||
"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": {
|
||||
"version": "2.11.5",
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"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": {
|
||||
"version": "0.25.8",
|
||||
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.8.tgz",
|
||||
@@ -3038,6 +3159,44 @@
|
||||
"dev": true,
|
||||
"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": {
|
||||
"version": "2.3.3",
|
||||
"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_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": {
|
||||
"version": "6.0.2",
|
||||
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
|
||||
@@ -3079,6 +3287,19 @@
|
||||
"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": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
|
||||
@@ -3096,6 +3317,48 @@
|
||||
"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": {
|
||||
"version": "7.0.5",
|
||||
"resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
|
||||
@@ -3305,6 +3568,16 @@
|
||||
"@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": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz",
|
||||
@@ -3349,6 +3622,29 @@
|
||||
"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": {
|
||||
"version": "9.0.5",
|
||||
"resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.5.tgz",
|
||||
@@ -3635,6 +3931,13 @@
|
||||
"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": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
"@vue-office/excel": "^1.7.14",
|
||||
"@vue-office/pdf": "^2.0.10",
|
||||
"@vue/tsconfig": "^0.8.1",
|
||||
"axios": "^1.13.1",
|
||||
"element-plus": "^2.11.5",
|
||||
"eslint": "^9.38.0",
|
||||
"eslint-plugin-vue": "^10.5.1",
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* @Author: Kane Wang <wangkane@qq.com>
|
||||
* @Date: 2025-10-13 15:31:41
|
||||
* @LastEditors: Kane Wang
|
||||
* @LastModified: 2025-10-30 15:16:59
|
||||
* @LastModified: 2025-10-31 15:10:46
|
||||
* @FilePath: src/router/index.ts
|
||||
* @Description:
|
||||
*
|
||||
@@ -75,7 +75,7 @@ const routes = [
|
||||
path: "/new-regulatory",
|
||||
name: "NewRegulatory",
|
||||
meta: {
|
||||
title: "新建",
|
||||
title: "测试用 - 新建",
|
||||
icon: "OfficeBuilding",
|
||||
},
|
||||
hidden: false,
|
||||
@@ -85,7 +85,7 @@ const routes = [
|
||||
path: "/upload-regulatory",
|
||||
name: "UploadRegulatory",
|
||||
meta: {
|
||||
title: "上传制度",
|
||||
title: "测试用 - 上传制度",
|
||||
icon: "OfficeBuilding",
|
||||
},
|
||||
hidden: false,
|
||||
|
||||
@@ -13,6 +13,14 @@ interface RegulatoryData {
|
||||
department_name: string;
|
||||
release_year: 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>
|
||||
</el-col>
|
||||
<el-col :span="10">
|
||||
<el-input />
|
||||
<el-input style="text-align:center;" />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="10">
|
||||
@@ -40,7 +40,7 @@ Copyright © CPIC All rights reserved
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="3">
|
||||
<div class="button-wrapper-left">
|
||||
<el-button type="primary" icon="document">
|
||||
<el-button type="primary" icon="document" @click="showUploadFileDialog">
|
||||
新增文档
|
||||
</el-button>
|
||||
<el-button type="primary" icon="document">
|
||||
@@ -58,6 +58,51 @@ Copyright © CPIC All rights reserved
|
||||
</el-col>
|
||||
</el-row>
|
||||
</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>
|
||||
</template>
|
||||
<script lang="ts">
|
||||
@@ -70,11 +115,36 @@ export default {
|
||||
{
|
||||
const ui = reactive({
|
||||
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 {
|
||||
ui,
|
||||
headerCellStyle,
|
||||
cellStyle,
|
||||
onUploadSuccess,
|
||||
showUploadFileDialog,
|
||||
};
|
||||
},
|
||||
};
|
||||
@@ -96,4 +166,8 @@ export default {
|
||||
{
|
||||
@include query-box-wrap;
|
||||
}
|
||||
|
||||
:deep(.el-input) .el-input__inner {
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
@@ -92,11 +92,15 @@ export default {
|
||||
department_name: "信息技术部",
|
||||
release_year: "2019",
|
||||
regulatory_name: "关于印发修订后的《太平洋产险厦门分公司信息系统账号权限管理实施细则》的通知",
|
||||
comment:"",
|
||||
regulatory_files: [],
|
||||
},
|
||||
{
|
||||
department_name: "信息技术部",
|
||||
release_year: "2019",
|
||||
regulatory_name: "关于印发修订后的《太平洋产险厦门分公司个人信息保护管理实施细则》的通知",
|
||||
comment:"",
|
||||
regulatory_files: [],
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user