From af3442f2767cb79740de7f02203531d72e3ca4c7 Mon Sep 17 00:00:00 2001 From: Kane Wang Date: Fri, 31 Oct 2025 19:08:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=9D=E5=AD=98=E8=BF=9B=E5=BA=A6=EF=BC=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/fileupload/FileUpload.java | 95 +++--- .../fileupload/FileUploadResult.java | 8 +- .../controllers/fileupload/UploadedFile.java | 44 +++ .../package-lock.json | 303 ++++++++++++++++++ .../regulatory-management-util/package.json | 1 + .../src/router/index.ts | 6 +- .../src/types/regulatory/regulatory.ts | 10 +- .../src/views/console/data/NewRegulatory.vue | 80 ++++- .../console/data/RegulatoryManagement.vue | 4 + 9 files changed, 493 insertions(+), 58 deletions(-) create mode 100644 code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/UploadedFile.java diff --git a/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/FileUpload.java b/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/FileUpload.java index 460bd5a..98cf3e8 100644 --- a/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/FileUpload.java +++ b/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/FileUpload.java @@ -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 fileNames = new Vector(); + // 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 fileNames = new Vector(); - 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; + // } /** * 接收上传文件,并保存到临时目录: diff --git a/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/FileUploadResult.java b/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/FileUploadResult.java index 750bda8..84a918d 100644 --- a/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/FileUploadResult.java +++ b/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/FileUploadResult.java @@ -38,7 +38,7 @@ public class FileUploadResult extends QueryResponse public FileUploadResult( boolean success, String message, - Vector fileList + Vector fileList ) { super( success, message ); @@ -46,17 +46,17 @@ public class FileUploadResult extends QueryResponse this.fileList = fileList; } - public Vector getFileList() + public Vector getFileList() { return fileList; } - public void setFileList( Vector fileList ) + public void setFileList( Vector fileList ) { this.fileList = fileList; } @JsonProperty( "fileList" ) - private Vector fileList; + private Vector fileList; } diff --git a/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/UploadedFile.java b/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/UploadedFile.java new file mode 100644 index 0000000..bda8a1e --- /dev/null +++ b/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/UploadedFile.java @@ -0,0 +1,44 @@ +/** + * @Author: Kane Wang + * @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; + } +} diff --git a/code/web/regulatory-management-util/package-lock.json b/code/web/regulatory-management-util/package-lock.json index 237a20d..1fe5142 100644 --- a/code/web/regulatory-management-util/package-lock.json +++ b/code/web/regulatory-management-util/package-lock.json @@ -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", diff --git a/code/web/regulatory-management-util/package.json b/code/web/regulatory-management-util/package.json index 9ae3183..7e05e40 100644 --- a/code/web/regulatory-management-util/package.json +++ b/code/web/regulatory-management-util/package.json @@ -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", diff --git a/code/web/regulatory-management-util/src/router/index.ts b/code/web/regulatory-management-util/src/router/index.ts index c996e35..6cd3df3 100644 --- a/code/web/regulatory-management-util/src/router/index.ts +++ b/code/web/regulatory-management-util/src/router/index.ts @@ -2,7 +2,7 @@ * @Author: Kane Wang * @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, diff --git a/code/web/regulatory-management-util/src/types/regulatory/regulatory.ts b/code/web/regulatory-management-util/src/types/regulatory/regulatory.ts index c9da426..7a84c50 100644 --- a/code/web/regulatory-management-util/src/types/regulatory/regulatory.ts +++ b/code/web/regulatory-management-util/src/types/regulatory/regulatory.ts @@ -13,6 +13,14 @@ interface RegulatoryData { department_name: string; release_year: string; regulatory_name: string; + comment: string; + regulatory_files: null | RegulatoryFile[] } -export { type RegulatoryData }; \ No newline at end of file +interface RegulatoryFile { + regulatory_file_name: string; + file_url: string; + file_type: string +} + +export { type RegulatoryData, type RegulatoryFile }; \ No newline at end of file diff --git a/code/web/regulatory-management-util/src/views/console/data/NewRegulatory.vue b/code/web/regulatory-management-util/src/views/console/data/NewRegulatory.vue index 95395e1..6266d78 100644 --- a/code/web/regulatory-management-util/src/views/console/data/NewRegulatory.vue +++ b/code/web/regulatory-management-util/src/views/console/data/NewRegulatory.vue @@ -12,7 +12,7 @@ Copyright © CPIC All rights reserved 名称 - + @@ -40,7 +40,7 @@ Copyright © CPIC All rights reserved
- + 新增文档 @@ -58,6 +58,51 @@ Copyright © CPIC All rights reserved
+ + + + + + + + + + 查看 + + + +
+ + + + + +
+ 将文件拖到此处,或点击上传 +
+
+
+