保存进度!
This commit is contained in:
		
							
								
								
									
										156
									
								
								code/tomcat/server.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										156
									
								
								code/tomcat/server.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,156 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<!--
 | 
				
			||||||
 | 
					  Licensed to the Apache Software Foundation (ASF) under one or more
 | 
				
			||||||
 | 
					  contributor license agreements.  See the NOTICE file distributed with
 | 
				
			||||||
 | 
					  this work for additional information regarding copyright ownership.
 | 
				
			||||||
 | 
					  The ASF licenses this file to You under the Apache License, Version 2.0
 | 
				
			||||||
 | 
					  (the "License"); you may not use this file except in compliance with
 | 
				
			||||||
 | 
					  the License.  You may obtain a copy of the License at
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					  distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					  See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					  limitations under the License.
 | 
				
			||||||
 | 
					-->
 | 
				
			||||||
 | 
					<!-- Note:  A "Server" is not itself a "Container", so you may not
 | 
				
			||||||
 | 
					     define subcomponents such as "Valves" at this level.
 | 
				
			||||||
 | 
					     Documentation at /docs/config/server.html
 | 
				
			||||||
 | 
					 -->
 | 
				
			||||||
 | 
					<Server port="8005" shutdown="SHUTDOWN">
 | 
				
			||||||
 | 
					    <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
 | 
				
			||||||
 | 
					    <!-- Security listener. Documentation at /docs/config/listeners.html
 | 
				
			||||||
 | 
					  <Listener className="org.apache.catalina.security.SecurityListener" />
 | 
				
			||||||
 | 
					  -->
 | 
				
			||||||
 | 
					    <!-- OpenSSL support using Tomcat Native -->
 | 
				
			||||||
 | 
					    <Listener className="org.apache.catalina.core.AprLifecycleListener" />
 | 
				
			||||||
 | 
					    <!-- OpenSSL support using FFM API from Java 22 -->
 | 
				
			||||||
 | 
					    <!-- <Listener className="org.apache.catalina.core.OpenSSLLifecycleListener" /> -->
 | 
				
			||||||
 | 
					    <!-- Prevent memory leaks due to use of particular java/javax APIs-->
 | 
				
			||||||
 | 
					    <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
 | 
				
			||||||
 | 
					    <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
 | 
				
			||||||
 | 
					    <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!-- Global JNDI resources
 | 
				
			||||||
 | 
					       Documentation at /docs/jndi-resources-howto.html
 | 
				
			||||||
 | 
					  -->
 | 
				
			||||||
 | 
					    <GlobalNamingResources>
 | 
				
			||||||
 | 
					        <!-- Editable user database that can also be used by
 | 
				
			||||||
 | 
					         UserDatabaseRealm to authenticate users
 | 
				
			||||||
 | 
					    -->
 | 
				
			||||||
 | 
					        <Resource name="UserDatabase" auth="Container"
 | 
				
			||||||
 | 
					            type="org.apache.catalina.UserDatabase"
 | 
				
			||||||
 | 
					            description="User database that can be updated and saved"
 | 
				
			||||||
 | 
					            factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
 | 
				
			||||||
 | 
					            pathname="conf/tomcat-users.xml" />
 | 
				
			||||||
 | 
					    </GlobalNamingResources>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!-- A "Service" is a collection of one or more "Connectors" that share
 | 
				
			||||||
 | 
					       a single "Container" Note:  A "Service" is not itself a "Container",
 | 
				
			||||||
 | 
					       so you may not define subcomponents such as "Valves" at this level.
 | 
				
			||||||
 | 
					       Documentation at /docs/config/service.html
 | 
				
			||||||
 | 
					   -->
 | 
				
			||||||
 | 
					    <Service name="Catalina">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <!--The
 | 
				
			||||||
 | 
					        connectors can use a shared executor, you can define one or more named thread pools-->
 | 
				
			||||||
 | 
					        <!--
 | 
				
			||||||
 | 
					    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
 | 
				
			||||||
 | 
					        maxThreads="150" minSpareThreads="4"/>
 | 
				
			||||||
 | 
					    -->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <!-- A "Connector" represents an endpoint by which requests are received
 | 
				
			||||||
 | 
					         and responses are returned. Documentation at :
 | 
				
			||||||
 | 
					         HTTP Connector: /docs/config/http.html
 | 
				
			||||||
 | 
					         AJP  Connector: /docs/config/ajp.html
 | 
				
			||||||
 | 
					         Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
 | 
				
			||||||
 | 
					    -->
 | 
				
			||||||
 | 
					        <Connector port="8080" protocol="HTTP/1.1"
 | 
				
			||||||
 | 
					            connectionTimeout="20000"
 | 
				
			||||||
 | 
					            redirectPort="8443" />
 | 
				
			||||||
 | 
					        <!-- A "Connector" using the shared thread pool-->
 | 
				
			||||||
 | 
					        <!--
 | 
				
			||||||
 | 
					    <Connector executor="tomcatThreadPool"
 | 
				
			||||||
 | 
					               port="8080" protocol="HTTP/1.1"
 | 
				
			||||||
 | 
					               connectionTimeout="20000"
 | 
				
			||||||
 | 
					               redirectPort="8443" />
 | 
				
			||||||
 | 
					    -->
 | 
				
			||||||
 | 
					        <!-- Define an SSL/TLS HTTP/1.1 Connector on port 8443 with HTTP/2
 | 
				
			||||||
 | 
					         This connector uses the NIO implementation. The default
 | 
				
			||||||
 | 
					         SSLImplementation will depend on the presence of the APR/native
 | 
				
			||||||
 | 
					         library and the useOpenSSL attribute of the AprLifecycleListener.
 | 
				
			||||||
 | 
					         Either JSSE or OpenSSL style configuration may be used regardless of
 | 
				
			||||||
 | 
					         the SSLImplementation selected. JSSE style configuration is used below.
 | 
				
			||||||
 | 
					    -->
 | 
				
			||||||
 | 
					        <!--
 | 
				
			||||||
 | 
					    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
 | 
				
			||||||
 | 
					               maxThreads="150" SSLEnabled="true">
 | 
				
			||||||
 | 
					        <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
 | 
				
			||||||
 | 
					        <SSLHostConfig>
 | 
				
			||||||
 | 
					            <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
 | 
				
			||||||
 | 
					                         certificateKeystorePassword="changeit" type="RSA" />
 | 
				
			||||||
 | 
					        </SSLHostConfig>
 | 
				
			||||||
 | 
					    </Connector>
 | 
				
			||||||
 | 
					    -->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <!-- Define an AJP 1.3 Connector on port 8009 -->
 | 
				
			||||||
 | 
					        <!--
 | 
				
			||||||
 | 
					    <Connector protocol="AJP/1.3"
 | 
				
			||||||
 | 
					               address="::1"
 | 
				
			||||||
 | 
					               port="8009"
 | 
				
			||||||
 | 
					               redirectPort="8443" />
 | 
				
			||||||
 | 
					    -->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <!-- An Engine represents the entry point (within Catalina) that processes
 | 
				
			||||||
 | 
					         every request.  The Engine implementation for Tomcat stand alone
 | 
				
			||||||
 | 
					         analyzes the HTTP headers included with the request, and passes them
 | 
				
			||||||
 | 
					         on to the appropriate Host (virtual host).
 | 
				
			||||||
 | 
					         Documentation at /docs/config/engine.html -->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <!-- You should set jvmRoute to support load-balancing via AJP ie :
 | 
				
			||||||
 | 
					    <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
 | 
				
			||||||
 | 
					    -->
 | 
				
			||||||
 | 
					        <Engine name="Catalina" defaultHost="localhost">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            <!--For
 | 
				
			||||||
 | 
					            clustering, please take a look at documentation at:
 | 
				
			||||||
 | 
					          /docs/cluster-howto.html  (simple how to)
 | 
				
			||||||
 | 
					          /docs/config/cluster.html (reference documentation) -->
 | 
				
			||||||
 | 
					            <!--
 | 
				
			||||||
 | 
					      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
 | 
				
			||||||
 | 
					      -->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            <!-- Use the LockOutRealm to prevent attempts to guess user passwords
 | 
				
			||||||
 | 
					           via a brute-force attack -->
 | 
				
			||||||
 | 
					            <Realm className="org.apache.catalina.realm.LockOutRealm">
 | 
				
			||||||
 | 
					                <!-- This Realm uses the UserDatabase configured in the global JNDI
 | 
				
			||||||
 | 
					             resources under the key "UserDatabase".  Any edits
 | 
				
			||||||
 | 
					             that are performed against this UserDatabase are immediately
 | 
				
			||||||
 | 
					             available for use by the Realm.  -->
 | 
				
			||||||
 | 
					                <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
 | 
				
			||||||
 | 
					                    resourceName="UserDatabase" />
 | 
				
			||||||
 | 
					            </Realm>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            <Host name="localhost" appBase="webapps"
 | 
				
			||||||
 | 
					                unpackWARs="true" autoDeploy="true">
 | 
				
			||||||
 | 
					                <Context path="/regulatory" docBase="D:/数据/制度库/文件" debug="0" privileged="true" />
 | 
				
			||||||
 | 
					                <!-- SingleSignOn valve, share authentication between web applications
 | 
				
			||||||
 | 
					             Documentation at: /docs/config/valve.html -->
 | 
				
			||||||
 | 
					                <!--
 | 
				
			||||||
 | 
					        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
 | 
				
			||||||
 | 
					        -->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                <!-- Access log processes all example.
 | 
				
			||||||
 | 
					             Documentation at: /docs/config/valve.html
 | 
				
			||||||
 | 
					             Note: The pattern used is equivalent to using pattern="common" -->
 | 
				
			||||||
 | 
					                <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
 | 
				
			||||||
 | 
					                    prefix="localhost_access_log" suffix=".txt"
 | 
				
			||||||
 | 
					                    pattern="%h %l %u %t "%r" %s %b" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            </Host>
 | 
				
			||||||
 | 
					        </Engine>
 | 
				
			||||||
 | 
					    </Service>
 | 
				
			||||||
 | 
					</Server>
 | 
				
			||||||
							
								
								
									
										371
									
								
								code/web/regulatory-management-util/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										371
									
								
								code/web/regulatory-management-util/package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -15,10 +15,13 @@
 | 
				
			|||||||
      "devDependencies": {
 | 
					      "devDependencies": {
 | 
				
			||||||
        "@element-plus/icons-vue": "^2.3.2",
 | 
					        "@element-plus/icons-vue": "^2.3.2",
 | 
				
			||||||
        "@stylistic/eslint-plugin": "^5.5.0",
 | 
					        "@stylistic/eslint-plugin": "^5.5.0",
 | 
				
			||||||
        "@types/node": "^24.9.1",
 | 
					        "@types/node": "^24.9.2",
 | 
				
			||||||
        "@typescript-eslint/eslint-plugin": "^8.46.2",
 | 
					        "@typescript-eslint/eslint-plugin": "^8.46.2",
 | 
				
			||||||
        "@typescript-eslint/parser": "^8.46.2",
 | 
					        "@typescript-eslint/parser": "^8.46.2",
 | 
				
			||||||
        "@vitejs/plugin-vue": "^6.0.1",
 | 
					        "@vitejs/plugin-vue": "^6.0.1",
 | 
				
			||||||
 | 
					        "@vue-office/docx": "^1.6.3",
 | 
				
			||||||
 | 
					        "@vue-office/excel": "^1.7.14",
 | 
				
			||||||
 | 
					        "@vue-office/pdf": "^2.0.10",
 | 
				
			||||||
        "@vue/tsconfig": "^0.8.1",
 | 
					        "@vue/tsconfig": "^0.8.1",
 | 
				
			||||||
        "element-plus": "^2.11.5",
 | 
					        "element-plus": "^2.11.5",
 | 
				
			||||||
        "eslint": "^9.38.0",
 | 
					        "eslint": "^9.38.0",
 | 
				
			||||||
@@ -27,7 +30,9 @@
 | 
				
			|||||||
        "sass": "^1.93.2",
 | 
					        "sass": "^1.93.2",
 | 
				
			||||||
        "typescript": "~5.9.3",
 | 
					        "typescript": "~5.9.3",
 | 
				
			||||||
        "vite": "^7.1.12",
 | 
					        "vite": "^7.1.12",
 | 
				
			||||||
 | 
					        "vue-demi": "^0.14.10",
 | 
				
			||||||
        "vue-eslint-parser": "^10.2.0",
 | 
					        "vue-eslint-parser": "^10.2.0",
 | 
				
			||||||
 | 
					        "vue-pdf-embed": "^2.1.3",
 | 
				
			||||||
        "vue-tsc": "^3.1.2"
 | 
					        "vue-tsc": "^3.1.2"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
@@ -828,6 +833,202 @@
 | 
				
			|||||||
      "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
 | 
					      "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
 | 
				
			||||||
      "license": "MIT"
 | 
					      "license": "MIT"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/@napi-rs/canvas": {
 | 
				
			||||||
 | 
					      "version": "0.1.81",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/@napi-rs/canvas/-/canvas-0.1.81.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-ReCjd5SYI/UKx/olaQLC4GtN6wUQGjlgHXs1lvUvWGXfBMR3Fxnik3cL+OxKN5ithNdoU0/GlCrdKcQDFh2XKQ==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "workspaces": [
 | 
				
			||||||
 | 
					        "e2e/*"
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 10"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "optionalDependencies": {
 | 
				
			||||||
 | 
					        "@napi-rs/canvas-android-arm64": "0.1.81",
 | 
				
			||||||
 | 
					        "@napi-rs/canvas-darwin-arm64": "0.1.81",
 | 
				
			||||||
 | 
					        "@napi-rs/canvas-darwin-x64": "0.1.81",
 | 
				
			||||||
 | 
					        "@napi-rs/canvas-linux-arm-gnueabihf": "0.1.81",
 | 
				
			||||||
 | 
					        "@napi-rs/canvas-linux-arm64-gnu": "0.1.81",
 | 
				
			||||||
 | 
					        "@napi-rs/canvas-linux-arm64-musl": "0.1.81",
 | 
				
			||||||
 | 
					        "@napi-rs/canvas-linux-riscv64-gnu": "0.1.81",
 | 
				
			||||||
 | 
					        "@napi-rs/canvas-linux-x64-gnu": "0.1.81",
 | 
				
			||||||
 | 
					        "@napi-rs/canvas-linux-x64-musl": "0.1.81",
 | 
				
			||||||
 | 
					        "@napi-rs/canvas-win32-x64-msvc": "0.1.81"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/@napi-rs/canvas-android-arm64": {
 | 
				
			||||||
 | 
					      "version": "0.1.81",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/@napi-rs/canvas-android-arm64/-/canvas-android-arm64-0.1.81.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-78Lz+AUi+MsWupyZjXwpwQrp1QCwncPvRZrdvrROcZ9Gq9grP7LfQZiGdR8LKyHIq3OR18mDP+JESGT15V1nXw==",
 | 
				
			||||||
 | 
					      "cpu": [
 | 
				
			||||||
 | 
					        "arm64"
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "os": [
 | 
				
			||||||
 | 
					        "android"
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 10"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/@napi-rs/canvas-darwin-arm64": {
 | 
				
			||||||
 | 
					      "version": "0.1.81",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/@napi-rs/canvas-darwin-arm64/-/canvas-darwin-arm64-0.1.81.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-omejuKgHWKDGoh8rsgsyhm/whwxMaryTQjJTd9zD7hiB9/rzcEEJLHnzXWR5ysy4/tTjHaQotE6k2t8eodTLnA==",
 | 
				
			||||||
 | 
					      "cpu": [
 | 
				
			||||||
 | 
					        "arm64"
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "os": [
 | 
				
			||||||
 | 
					        "darwin"
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 10"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/@napi-rs/canvas-darwin-x64": {
 | 
				
			||||||
 | 
					      "version": "0.1.81",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/@napi-rs/canvas-darwin-x64/-/canvas-darwin-x64-0.1.81.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-EYfk+co6BElq5DXNH9PBLYDYwc4QsvIVbyrsVHsxVpn4p6Y3/s8MChgC69AGqj3vzZBQ1qx2CRCMtg5cub+XuQ==",
 | 
				
			||||||
 | 
					      "cpu": [
 | 
				
			||||||
 | 
					        "x64"
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "os": [
 | 
				
			||||||
 | 
					        "darwin"
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 10"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/@napi-rs/canvas-linux-arm-gnueabihf": {
 | 
				
			||||||
 | 
					      "version": "0.1.81",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/@napi-rs/canvas-linux-arm-gnueabihf/-/canvas-linux-arm-gnueabihf-0.1.81.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-teh6Q74CyAcH31yLNQGR9MtXSFxlZa5CI6vvNUISI14gWIJWrhOwUAOly+KRe1aztWR0FWTVSPxM4p5y+06aow==",
 | 
				
			||||||
 | 
					      "cpu": [
 | 
				
			||||||
 | 
					        "arm"
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "os": [
 | 
				
			||||||
 | 
					        "linux"
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 10"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/@napi-rs/canvas-linux-arm64-gnu": {
 | 
				
			||||||
 | 
					      "version": "0.1.81",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/@napi-rs/canvas-linux-arm64-gnu/-/canvas-linux-arm64-gnu-0.1.81.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-AGEopHFYRzJOjxY+2G1RmHPRnuWvO3Qdhq7sIazlSjxb3Z6dZHg7OB/4ZimXaimPjDACm9qWa6t5bn9bhXvkcw==",
 | 
				
			||||||
 | 
					      "cpu": [
 | 
				
			||||||
 | 
					        "arm64"
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "os": [
 | 
				
			||||||
 | 
					        "linux"
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 10"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/@napi-rs/canvas-linux-arm64-musl": {
 | 
				
			||||||
 | 
					      "version": "0.1.81",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/@napi-rs/canvas-linux-arm64-musl/-/canvas-linux-arm64-musl-0.1.81.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-Bj3m1cl4GIhsigkdwOxii4g4Ump3/QhNpx85IgAlCCYXpaly6mcsWpuDYEabfIGWOWhDUNBOndaQUPfWK1czOQ==",
 | 
				
			||||||
 | 
					      "cpu": [
 | 
				
			||||||
 | 
					        "arm64"
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "os": [
 | 
				
			||||||
 | 
					        "linux"
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 10"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/@napi-rs/canvas-linux-riscv64-gnu": {
 | 
				
			||||||
 | 
					      "version": "0.1.81",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/@napi-rs/canvas-linux-riscv64-gnu/-/canvas-linux-riscv64-gnu-0.1.81.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-yg/5NkHykVdwPlD3XObwCa/EswkOwLHswJcI9rHrac+znHsmCSj5AMX/RTU9Z9F6lZTwL60JM2Esit33XhAMiw==",
 | 
				
			||||||
 | 
					      "cpu": [
 | 
				
			||||||
 | 
					        "riscv64"
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "os": [
 | 
				
			||||||
 | 
					        "linux"
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 10"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/@napi-rs/canvas-linux-x64-gnu": {
 | 
				
			||||||
 | 
					      "version": "0.1.81",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/@napi-rs/canvas-linux-x64-gnu/-/canvas-linux-x64-gnu-0.1.81.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-tPfMpSEBuV5dJSKexO/UZxpOqnYTaNbG8aKa1ek8QsWu+4SJ/foWkaxscra/RUv85vepx6WWDjzBNbNJsTnO0w==",
 | 
				
			||||||
 | 
					      "cpu": [
 | 
				
			||||||
 | 
					        "x64"
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "os": [
 | 
				
			||||||
 | 
					        "linux"
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 10"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/@napi-rs/canvas-linux-x64-musl": {
 | 
				
			||||||
 | 
					      "version": "0.1.81",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/@napi-rs/canvas-linux-x64-musl/-/canvas-linux-x64-musl-0.1.81.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-1L0xnYgzqn8Baef+inPvY4dKqdmw3KCBoe0NEDgezuBZN7MA5xElwifoG8609uNdrMtJ9J6QZarsslLRVqri7g==",
 | 
				
			||||||
 | 
					      "cpu": [
 | 
				
			||||||
 | 
					        "x64"
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "os": [
 | 
				
			||||||
 | 
					        "linux"
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 10"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/@napi-rs/canvas-win32-x64-msvc": {
 | 
				
			||||||
 | 
					      "version": "0.1.81",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/@napi-rs/canvas-win32-x64-msvc/-/canvas-win32-x64-msvc-0.1.81.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-57ryVbhm/z7RE9/UVcS7mrLPdlayLesy+9U0Uf6epCoeSGrs99tfieCcgZWFbIgmByQ1AZnNtFI2N6huqDLlWQ==",
 | 
				
			||||||
 | 
					      "cpu": [
 | 
				
			||||||
 | 
					        "x64"
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "os": [
 | 
				
			||||||
 | 
					        "win32"
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 10"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/@nodelib/fs.scandir": {
 | 
					    "node_modules/@nodelib/fs.scandir": {
 | 
				
			||||||
      "version": "2.1.5",
 | 
					      "version": "2.1.5",
 | 
				
			||||||
      "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
 | 
					      "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
 | 
				
			||||||
@@ -1542,9 +1743,9 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@types/node": {
 | 
					    "node_modules/@types/node": {
 | 
				
			||||||
      "version": "24.9.1",
 | 
					      "version": "24.9.2",
 | 
				
			||||||
      "resolved": "https://registry.npmmirror.com/@types/node/-/node-24.9.1.tgz",
 | 
					      "resolved": "https://registry.npmmirror.com/@types/node/-/node-24.9.2.tgz",
 | 
				
			||||||
      "integrity": "sha512-QoiaXANRkSXK6p0Duvt56W208du4P9Uye9hWLWgGMDTEoKPhuenzNcC4vGUmrNkiOKTlIrBoyNQYNpSwfEZXSg==",
 | 
					      "integrity": "sha512-uWN8YqxXxqFMX2RqGOrumsKeti4LlmIMIyV0lgut4jx7KQBcBiW6vkDtIBvHnHIquwNfJhk8v2OtmO8zXWHfPA==",
 | 
				
			||||||
      "dev": true,
 | 
					      "dev": true,
 | 
				
			||||||
      "license": "MIT",
 | 
					      "license": "MIT",
 | 
				
			||||||
      "peer": true,
 | 
					      "peer": true,
 | 
				
			||||||
@@ -1841,6 +2042,60 @@
 | 
				
			|||||||
        "vscode-uri": "^3.0.8"
 | 
					        "vscode-uri": "^3.0.8"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/@vue-office/docx": {
 | 
				
			||||||
 | 
					      "version": "1.6.3",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/@vue-office/docx/-/docx-1.6.3.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-Cs+3CAaRBOWOiW4XAhTwwxJ0dy8cPIf6DqfNvYcD3YACiLwO4kuawLF2IAXxyijhbuOeoFsfvoVbOc16A/4bZA==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "hasInstallScript": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "peerDependencies": {
 | 
				
			||||||
 | 
					        "@vue/composition-api": "^1.7.1",
 | 
				
			||||||
 | 
					        "vue": "^2.0.0 || >=3.0.0",
 | 
				
			||||||
 | 
					        "vue-demi": "^0.14.6"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "peerDependenciesMeta": {
 | 
				
			||||||
 | 
					        "@vue/composition-api": {
 | 
				
			||||||
 | 
					          "optional": true
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/@vue-office/excel": {
 | 
				
			||||||
 | 
					      "version": "1.7.14",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/@vue-office/excel/-/excel-1.7.14.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-pVUgt+emDQUnW7q22CfnQ+jl43mM/7IFwYzOg7lwOwPEbiVB4K4qEQf+y/bc4xGXz75w1/e3Kz3G6wAafmFBFg==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "hasInstallScript": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "peerDependencies": {
 | 
				
			||||||
 | 
					        "@vue/composition-api": "^1.7.1",
 | 
				
			||||||
 | 
					        "vue": "^2.0.0 || >=3.0.0",
 | 
				
			||||||
 | 
					        "vue-demi": "^0.14.6"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "peerDependenciesMeta": {
 | 
				
			||||||
 | 
					        "@vue/composition-api": {
 | 
				
			||||||
 | 
					          "optional": true
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/@vue-office/pdf": {
 | 
				
			||||||
 | 
					      "version": "2.0.10",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/@vue-office/pdf/-/pdf-2.0.10.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-yHVLrMAKpMPBkhBwofFyGEtEeJF0Zd7oGmf56Pe5aj/xObdRq3E1CIZqTqhWJNgHV8oLQqaX0vs4p5T1zq+GIA==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "hasInstallScript": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "peerDependencies": {
 | 
				
			||||||
 | 
					        "@vue/composition-api": "^1.7.1",
 | 
				
			||||||
 | 
					        "vue": "^2.0.0 || >=3.0.0",
 | 
				
			||||||
 | 
					        "vue-demi": "^0.14.6"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "peerDependenciesMeta": {
 | 
				
			||||||
 | 
					        "@vue/composition-api": {
 | 
				
			||||||
 | 
					          "optional": true
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/@vue/compiler-core": {
 | 
					    "node_modules/@vue/compiler-core": {
 | 
				
			||||||
      "version": "3.5.22",
 | 
					      "version": "3.5.22",
 | 
				
			||||||
      "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.22.tgz",
 | 
					      "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.22.tgz",
 | 
				
			||||||
@@ -2006,33 +2261,6 @@
 | 
				
			|||||||
        "url": "https://github.com/sponsors/antfu"
 | 
					        "url": "https://github.com/sponsors/antfu"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@vueuse/core/node_modules/vue-demi": {
 | 
					 | 
				
			||||||
      "version": "0.14.10",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
 | 
					 | 
				
			||||||
      "dev": true,
 | 
					 | 
				
			||||||
      "hasInstallScript": true,
 | 
					 | 
				
			||||||
      "license": "MIT",
 | 
					 | 
				
			||||||
      "bin": {
 | 
					 | 
				
			||||||
        "vue-demi-fix": "bin/vue-demi-fix.js",
 | 
					 | 
				
			||||||
        "vue-demi-switch": "bin/vue-demi-switch.js"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": ">=12"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "funding": {
 | 
					 | 
				
			||||||
        "url": "https://github.com/sponsors/antfu"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "peerDependencies": {
 | 
					 | 
				
			||||||
        "@vue/composition-api": "^1.0.0-rc.1",
 | 
					 | 
				
			||||||
        "vue": "^3.0.0-0 || ^2.6.0"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "peerDependenciesMeta": {
 | 
					 | 
				
			||||||
        "@vue/composition-api": {
 | 
					 | 
				
			||||||
          "optional": true
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/@vueuse/metadata": {
 | 
					    "node_modules/@vueuse/metadata": {
 | 
				
			||||||
      "version": "9.13.0",
 | 
					      "version": "9.13.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.13.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.13.0.tgz",
 | 
				
			||||||
@@ -2056,33 +2284,6 @@
 | 
				
			|||||||
        "url": "https://github.com/sponsors/antfu"
 | 
					        "url": "https://github.com/sponsors/antfu"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@vueuse/shared/node_modules/vue-demi": {
 | 
					 | 
				
			||||||
      "version": "0.14.10",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
 | 
					 | 
				
			||||||
      "dev": true,
 | 
					 | 
				
			||||||
      "hasInstallScript": true,
 | 
					 | 
				
			||||||
      "license": "MIT",
 | 
					 | 
				
			||||||
      "bin": {
 | 
					 | 
				
			||||||
        "vue-demi-fix": "bin/vue-demi-fix.js",
 | 
					 | 
				
			||||||
        "vue-demi-switch": "bin/vue-demi-switch.js"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": ">=12"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "funding": {
 | 
					 | 
				
			||||||
        "url": "https://github.com/sponsors/antfu"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "peerDependencies": {
 | 
					 | 
				
			||||||
        "@vue/composition-api": "^1.0.0-rc.1",
 | 
					 | 
				
			||||||
        "vue": "^3.0.0-0 || ^2.6.0"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "peerDependenciesMeta": {
 | 
					 | 
				
			||||||
        "@vue/composition-api": {
 | 
					 | 
				
			||||||
          "optional": true
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/acorn": {
 | 
					    "node_modules/acorn": {
 | 
				
			||||||
      "version": "8.15.0",
 | 
					      "version": "8.15.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
 | 
				
			||||||
@@ -3340,6 +3541,19 @@
 | 
				
			|||||||
        "node": ">=8"
 | 
					        "node": ">=8"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/pdfjs-dist": {
 | 
				
			||||||
 | 
					      "version": "4.10.38",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/pdfjs-dist/-/pdfjs-dist-4.10.38.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-/Y3fcFrXEAsMjJXeL9J8+ZG9U01LbuWaYypvDW2ycW1jL269L3js3DVBjDJ0Up9Np1uqDXsDrRihHANhZOlwdQ==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "Apache-2.0",
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">=20"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "optionalDependencies": {
 | 
				
			||||||
 | 
					        "@napi-rs/canvas": "^0.1.65"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/picocolors": {
 | 
					    "node_modules/picocolors": {
 | 
				
			||||||
      "version": "1.1.1",
 | 
					      "version": "1.1.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
 | 
				
			||||||
@@ -3865,6 +4079,34 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/vue-demi": {
 | 
				
			||||||
 | 
					      "version": "0.14.10",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.10.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "hasInstallScript": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "peer": true,
 | 
				
			||||||
 | 
					      "bin": {
 | 
				
			||||||
 | 
					        "vue-demi-fix": "bin/vue-demi-fix.js",
 | 
				
			||||||
 | 
					        "vue-demi-switch": "bin/vue-demi-switch.js"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">=12"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "funding": {
 | 
				
			||||||
 | 
					        "url": "https://github.com/sponsors/antfu"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "peerDependencies": {
 | 
				
			||||||
 | 
					        "@vue/composition-api": "^1.0.0-rc.1",
 | 
				
			||||||
 | 
					        "vue": "^3.0.0-0 || ^2.6.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "peerDependenciesMeta": {
 | 
				
			||||||
 | 
					        "@vue/composition-api": {
 | 
				
			||||||
 | 
					          "optional": true
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/vue-eslint-parser": {
 | 
					    "node_modules/vue-eslint-parser": {
 | 
				
			||||||
      "version": "10.2.0",
 | 
					      "version": "10.2.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-10.2.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-10.2.0.tgz",
 | 
				
			||||||
@@ -3903,6 +4145,19 @@
 | 
				
			|||||||
        "url": "https://opencollective.com/eslint"
 | 
					        "url": "https://opencollective.com/eslint"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/vue-pdf-embed": {
 | 
				
			||||||
 | 
					      "version": "2.1.3",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/vue-pdf-embed/-/vue-pdf-embed-2.1.3.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-EGgZNb8HRrAloBpb8p8CugDpJpoPbQ8CFfAYdWZgq2e5qBMP9JSeLzVQIAJkXsclHXRIS3O9fp3WQbP9T5Inwg==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "pdfjs-dist": "^4.10.38"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "peerDependencies": {
 | 
				
			||||||
 | 
					        "vue": "^3.3.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/vue-router": {
 | 
					    "node_modules/vue-router": {
 | 
				
			||||||
      "version": "4.6.3",
 | 
					      "version": "4.6.3",
 | 
				
			||||||
      "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.6.3.tgz",
 | 
					      "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.6.3.tgz",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,10 +16,13 @@
 | 
				
			|||||||
  "devDependencies": {
 | 
					  "devDependencies": {
 | 
				
			||||||
    "@element-plus/icons-vue": "^2.3.2",
 | 
					    "@element-plus/icons-vue": "^2.3.2",
 | 
				
			||||||
    "@stylistic/eslint-plugin": "^5.5.0",
 | 
					    "@stylistic/eslint-plugin": "^5.5.0",
 | 
				
			||||||
    "@types/node": "^24.9.1",
 | 
					    "@types/node": "^24.9.2",
 | 
				
			||||||
    "@typescript-eslint/eslint-plugin": "^8.46.2",
 | 
					    "@typescript-eslint/eslint-plugin": "^8.46.2",
 | 
				
			||||||
    "@typescript-eslint/parser": "^8.46.2",
 | 
					    "@typescript-eslint/parser": "^8.46.2",
 | 
				
			||||||
    "@vitejs/plugin-vue": "^6.0.1",
 | 
					    "@vitejs/plugin-vue": "^6.0.1",
 | 
				
			||||||
 | 
					    "@vue-office/docx": "^1.6.3",
 | 
				
			||||||
 | 
					    "@vue-office/excel": "^1.7.14",
 | 
				
			||||||
 | 
					    "@vue-office/pdf": "^2.0.10",
 | 
				
			||||||
    "@vue/tsconfig": "^0.8.1",
 | 
					    "@vue/tsconfig": "^0.8.1",
 | 
				
			||||||
    "element-plus": "^2.11.5",
 | 
					    "element-plus": "^2.11.5",
 | 
				
			||||||
    "eslint": "^9.38.0",
 | 
					    "eslint": "^9.38.0",
 | 
				
			||||||
@@ -28,7 +31,9 @@
 | 
				
			|||||||
    "sass": "^1.93.2",
 | 
					    "sass": "^1.93.2",
 | 
				
			||||||
    "typescript": "~5.9.3",
 | 
					    "typescript": "~5.9.3",
 | 
				
			||||||
    "vite": "^7.1.12",
 | 
					    "vite": "^7.1.12",
 | 
				
			||||||
 | 
					    "vue-demi": "^0.14.10",
 | 
				
			||||||
    "vue-eslint-parser": "^10.2.0",
 | 
					    "vue-eslint-parser": "^10.2.0",
 | 
				
			||||||
 | 
					    "vue-pdf-embed": "^2.1.3",
 | 
				
			||||||
    "vue-tsc": "^3.1.2"
 | 
					    "vue-tsc": "^3.1.2"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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-28 11:28:01
 | 
					 * @LastModified: 2025-10-30 15:16:59
 | 
				
			||||||
 * @FilePath: src/router/index.ts
 | 
					 * @FilePath: src/router/index.ts
 | 
				
			||||||
 * @Description:
 | 
					 * @Description:
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
@@ -71,6 +71,16 @@ const routes = [
 | 
				
			|||||||
                },
 | 
					                },
 | 
				
			||||||
                component: ()=> import( "@/views/console/data/RegulatoryManagement.vue" ),
 | 
					                component: ()=> import( "@/views/console/data/RegulatoryManagement.vue" ),
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                path: "/new-regulatory",
 | 
				
			||||||
 | 
					                name: "NewRegulatory",
 | 
				
			||||||
 | 
					                meta: {
 | 
				
			||||||
 | 
					                    title: "新建",
 | 
				
			||||||
 | 
					                    icon: "OfficeBuilding",
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                hidden: false,
 | 
				
			||||||
 | 
					                component: () => import( "@/views/console/data/NewRegulatory.vue" ),
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                path: "/upload-regulatory",
 | 
					                path: "/upload-regulatory",
 | 
				
			||||||
                name: "UploadRegulatory",
 | 
					                name: "UploadRegulatory",
 | 
				
			||||||
@@ -78,7 +88,7 @@ const routes = [
 | 
				
			|||||||
                    title: "上传制度",
 | 
					                    title: "上传制度",
 | 
				
			||||||
                    icon: "OfficeBuilding",
 | 
					                    icon: "OfficeBuilding",
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
                hidden: true,
 | 
					                hidden: false,
 | 
				
			||||||
                component: () => import( "@/views/console/data/UploadRegulatory.vue" ),
 | 
					                component: () => import( "@/views/console/data/UploadRegulatory.vue" ),
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,83 @@
 | 
				
			|||||||
 | 
					<!--
 | 
				
			||||||
 | 
					author:        Kane Wang <wangkane@qq.com>
 | 
				
			||||||
 | 
					date:          2025-10-30 15:06:18
 | 
				
			||||||
 | 
					component:     NewRegulatory
 | 
				
			||||||
 | 
					Copyright © CPIC All rights reserved
 | 
				
			||||||
 | 
					-->
 | 
				
			||||||
 | 
					<template>
 | 
				
			||||||
 | 
					    <div class="wrapper">
 | 
				
			||||||
 | 
					        <div class="query-box-wrapper">
 | 
				
			||||||
 | 
					            <el-row :gutter="10">
 | 
				
			||||||
 | 
					                <el-col :span="1">
 | 
				
			||||||
 | 
					                    <span>名称</span>
 | 
				
			||||||
 | 
					                </el-col>
 | 
				
			||||||
 | 
					                <el-col :span="10">
 | 
				
			||||||
 | 
					                    <el-input />
 | 
				
			||||||
 | 
					                </el-col>
 | 
				
			||||||
 | 
					            </el-row>
 | 
				
			||||||
 | 
					            <el-row :gutter="10">
 | 
				
			||||||
 | 
					                <el-col :span="1">
 | 
				
			||||||
 | 
					                    <span>部门</span>
 | 
				
			||||||
 | 
					                </el-col>
 | 
				
			||||||
 | 
					                <el-col :span="4">
 | 
				
			||||||
 | 
					                    <el-input />
 | 
				
			||||||
 | 
					                </el-col>
 | 
				
			||||||
 | 
					                <el-col :span="2">
 | 
				
			||||||
 | 
					                    <span>发布、修订年份</span>
 | 
				
			||||||
 | 
					                </el-col>
 | 
				
			||||||
 | 
					                <el-col :span="4">
 | 
				
			||||||
 | 
					                    <el-input />
 | 
				
			||||||
 | 
					                </el-col>
 | 
				
			||||||
 | 
					            </el-row>
 | 
				
			||||||
 | 
					            <el-row :gutter="10">
 | 
				
			||||||
 | 
					                <div class="button-wrapper-left">
 | 
				
			||||||
 | 
					                    <el-button type="primary" icon="document">
 | 
				
			||||||
 | 
					                        新增文档
 | 
				
			||||||
 | 
					                    </el-button>
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
 | 
					                <div class="button-wrapper-right">
 | 
				
			||||||
 | 
					                    <el-button type="primary" icon="document">
 | 
				
			||||||
 | 
					                        提交
 | 
				
			||||||
 | 
					                    </el-button>
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
 | 
					            </el-row>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					<script lang="ts">
 | 
				
			||||||
 | 
					import {reactive, ref}  from "vue";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
					    name: "NewRegulatory",
 | 
				
			||||||
 | 
					    components: {},
 | 
				
			||||||
 | 
					    setup()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        const ui = reactive({
 | 
				
			||||||
 | 
					            showUI: true,
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return {
 | 
				
			||||||
 | 
					            ui,
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					<style lang="scss" scoped>
 | 
				
			||||||
 | 
					@import "@/assets/css/public/_public.scss";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.wrapper {
 | 
				
			||||||
 | 
					    // max-width: 800px;
 | 
				
			||||||
 | 
					    min-width: 1024px;
 | 
				
			||||||
 | 
					    margin: 10px 10px 10px 10px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    >*+* {
 | 
				
			||||||
 | 
					        margin-top: 10px;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.query-box-wrapper
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    @include query-box-wrap;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
@@ -6,21 +6,57 @@ Copyright © CPIC All rights reserved
 | 
				
			|||||||
-->
 | 
					-->
 | 
				
			||||||
<template>
 | 
					<template>
 | 
				
			||||||
    <div class="wrapper">
 | 
					    <div class="wrapper">
 | 
				
			||||||
        上传文件
 | 
					        <!-- <VuePdfEmbed v-if="ui.isPDF" :source="ui.fileURL" text-layer annotation-layer /> -->
 | 
				
			||||||
 | 
					        <!-- <VueOfficePdf v-if="ui.isPDF" :src="ui.fileURL" @error="errorHandle" /> -->
 | 
				
			||||||
 | 
					        <VueOfficeDocx v-if="ui.isXlsx" :src="ui.fileURL" @error="errorHandle" />
 | 
				
			||||||
 | 
					        <VueOfficeExcel
 | 
				
			||||||
 | 
					            v-if="ui.isXlsx"
 | 
				
			||||||
 | 
					            :src="ui.fileURL"
 | 
				
			||||||
 | 
					            @error="errorHandle"
 | 
				
			||||||
 | 
					        />
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
<script lang="ts">
 | 
					<script lang="ts">
 | 
				
			||||||
import {reactive, ref } from "vue";
 | 
					import {reactive, ref } from "vue";
 | 
				
			||||||
 | 
					import { ElMessage } from "element-plus";
 | 
				
			||||||
 | 
					// import VuePdfEmbed, { useVuePdfEmbed }  from "vue-pdf-embed";
 | 
				
			||||||
 | 
					import VueOfficePdf from "@vue-office/pdf";
 | 
				
			||||||
 | 
					import VueOfficeDocx from "@vue-office/docx";
 | 
				
			||||||
 | 
					import VueOfficeExcel from "@vue-office/excel";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import "vue-pdf-embed/dist/styles/annotationLayer.css";
 | 
				
			||||||
 | 
					import "vue-pdf-embed/dist/styles/textLayer.css";
 | 
				
			||||||
 | 
					import "@vue-office/excel/lib/index.css";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
    name:"UploadRegulatory",
 | 
					    name:"UploadRegulatory",
 | 
				
			||||||
 | 
					    components: {
 | 
				
			||||||
 | 
					        // VueOfficePdf,
 | 
				
			||||||
 | 
					        VueOfficeDocx,
 | 
				
			||||||
 | 
					        VueOfficeExcel,
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    setup()
 | 
					    setup()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        const  ui = reactive({
 | 
					        const  ui = reactive({
 | 
				
			||||||
            showUI: true,
 | 
					            showUI: true,
 | 
				
			||||||
 | 
					            isPDF: false,
 | 
				
			||||||
 | 
					            isDocx: false,
 | 
				
			||||||
 | 
					            isXlsx: true,
 | 
				
			||||||
 | 
					            // fileURL: "http://10.39.0.1:8080/regulatory/%E4%BF%A1%E6%81%AF%E6%8A%80%E6%9C%AF%E9%83%A8/%E5%85%B3%E4%BA%8E%E5%8D%B0%E5%8F%91%E3%80%8A%E5%A4%AA%E5%B9%B3%E6%B4%8B%E4%BA%A7%E9%99%A9%E5%8E%A6%E9%97%A8%E5%88%86%E5%85%AC%E5%8F%B8IT%E8%B5%84%E4%BA%A7%E7%AE%A1%E7%90%86%E5%8A%9E%E6%B3%95%E3%80%8B%EF%BC%882019%E5%B9%B4%E4%BF%AE%E8%AE%A2%EF%BC%89%E7%9A%84%E9%80%9A%E7%9F%A5/%E5%8E%A6%E5%A4%AA%E4%BF%9D%E4%BA%A7%E5%8F%91%E3%80%902019%E3%80%9146%E5%8F%B7%E5%85%B3%E4%BA%8E%E5%8D%B0%E5%8F%91%E3%80%8A%E5%A4%AA%E5%B9%B3%E6%B4%8B%E4%BA%A7%E9%99%A9%E5%8E%A6%E9%97%A8%E5%88%86%E5%85%AC%E5%8F%B8IT%E8%B5%84%E4%BA%A7%E7%AE%A1%E7%90%86%E5%8A%9E%E6%B3%95%E3%80%8B%EF%BC%882019%E5%B9%B4%E4%BF%AE%E8%AE%A2%EF%BC%89%E7%9A%84%E9%80%9A%E7%9F%A5.pdf",
 | 
				
			||||||
 | 
					            // fileURL: "http://10.39.0.1:8080/regulatory/%E4%BF%A1%E6%81%AF%E6%8A%80%E6%9C%AF%E9%83%A8/%E5%85%B3%E4%BA%8E%E5%8D%B0%E5%8F%91%E3%80%8A%E5%A4%AA%E5%B9%B3%E6%B4%8B%E4%BA%A7%E9%99%A9%E5%8E%A6%E9%97%A8%E5%88%86%E5%85%AC%E5%8F%B8%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E9%9C%80%E6%B1%82%E7%AE%A1%E7%90%86%E5%8A%9E%E6%B3%95%EF%BC%882020%E5%B9%B4%E4%BF%AE%E8%AE%A2%EF%BC%89%E3%80%8B%E7%9A%84%E9%80%9A%E7%9F%A5/%E9%99%84%E4%BB%B62%EF%BC%9A%E4%B8%9A%E5%8A%A1%E9%9C%80%E6%B1%82%E8%AF%B4%E6%98%8E%E4%B9%A6.docx",
 | 
				
			||||||
 | 
					            fileURL: "http://10.39.0.1:8080/regulatory/%E4%BF%A1%E6%81%AF%E6%8A%80%E6%9C%AF%E9%83%A8/%E5%85%B3%E4%BA%8E%E5%8D%B0%E5%8F%91%E3%80%8A%E5%A4%AA%E5%B9%B3%E6%B4%8B%E4%BA%A7%E9%99%A9%E5%8E%A6%E9%97%A8%E5%88%86%E5%85%AC%E5%8F%B8%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E9%9C%80%E6%B1%82%E7%AE%A1%E7%90%86%E5%8A%9E%E6%B3%95%EF%BC%882020%E5%B9%B4%E4%BF%AE%E8%AE%A2%EF%BC%89%E3%80%8B%E7%9A%84%E9%80%9A%E7%9F%A5/%E9%99%84%E4%BB%B64%EF%BC%9A%E5%88%86%E5%85%AC%E5%8F%B8%E8%87%AA%E5%BB%BA%E7%B3%BB%E7%BB%9F%E9%83%A8%E7%BD%B2%E6%83%85%E5%86%B5%E7%99%BB%E8%AE%B0%E8%A1%A8.xlsx",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return {ui,};
 | 
					        const errorHandle = ()=>
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            ElMessage.error( "渲染文档出错!" );
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return {
 | 
				
			||||||
 | 
					            ui,
 | 
				
			||||||
 | 
					            errorHandle, };
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
@@ -28,6 +64,13 @@ export default {
 | 
				
			|||||||
.wrapper {
 | 
					.wrapper {
 | 
				
			||||||
    margin: 10px 10px 10px 10px;
 | 
					    margin: 10px 10px 10px 10px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    width: calc(100% - 20px);
 | 
				
			||||||
 | 
					    height: calc( 100vh - 70px);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // .VueOfficeExcel {
 | 
				
			||||||
 | 
					    //     height: calc( 100vh - 70px);
 | 
				
			||||||
 | 
					    // }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    >*+* {
 | 
					    >*+* {
 | 
				
			||||||
        margin-top: 10px;
 | 
					        margin-top: 10px;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										30
									
								
								开发日志.md
									
									
									
									
									
								
							
							
						
						
									
										30
									
								
								开发日志.md
									
									
									
									
									
								
							@@ -31,6 +31,36 @@ resolve: {
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### tomcat 跨域下载文件
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					tomcat 默认是不支持跨域的,不做配置使用vue下载文件会有Access-Control-Allow-Origin问题。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					解决方法: 编辑 web.xml 文件,找到
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```xml
 | 
				
			||||||
 | 
					<!-- The mapping for the HTTP header security Filter -->
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					在下面添加
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```xml
 | 
				
			||||||
 | 
					<filter>
 | 
				
			||||||
 | 
					  <filter-name>CorsFilter</filter-name>
 | 
				
			||||||
 | 
					  <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
 | 
				
			||||||
 | 
					  <init-param>
 | 
				
			||||||
 | 
						<param-name>cors.allowed.origins</param-name>
 | 
				
			||||||
 | 
						<param-value>*</param-value>
 | 
				
			||||||
 | 
					  </init-param>
 | 
				
			||||||
 | 
					</filter>
 | 
				
			||||||
 | 
					<filter-mapping>
 | 
				
			||||||
 | 
					  <filter-name>CorsFilter</filter-name>
 | 
				
			||||||
 | 
					  <url-pattern>/*</url-pattern>
 | 
				
			||||||
 | 
					</filter-mapping>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					重启 tomcat 解决。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 组件
 | 
					## 组件
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### pdf预览组件
 | 
					### pdf预览组件
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user