diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..2c53f4f99c541cb74d648174a5efcc48c37e4630 --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +Homework-vite/node_modules + + +.idea +out +*.iml + +#编译文件 +*.class + + diff --git a/HomeWork-java/.gitignore b/HomeWork-java/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..f52fa28546d473d65eb53ffdf75035f8ee324966 --- /dev/null +++ b/HomeWork-java/.gitignore @@ -0,0 +1,17 @@ +/target +/out +/classes + +### STS ### +.classpath +.project +.settings +# tempResources + +### IntelliJ IDEA ### +.idea +*.iml + +## 部署相关的文件 +online-pages +resource \ No newline at end of file diff --git a/HomeWork-java/WebRoot/META-INF/MANIFEST.MF b/HomeWork-java/WebRoot/META-INF/MANIFEST.MF new file mode 100644 index 0000000000000000000000000000000000000000..254272e1c0740423e25eb40be9a98ce1556474b1 --- /dev/null +++ b/HomeWork-java/WebRoot/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Class-Path: + diff --git a/HomeWork-java/WebRoot/WEB-INF/lib/projecttools-0.0.2.jar b/HomeWork-java/WebRoot/WEB-INF/lib/projecttools-0.0.2.jar new file mode 100644 index 0000000000000000000000000000000000000000..f2267edc65568826761f40648e658370fed5c317 Binary files /dev/null and b/HomeWork-java/WebRoot/WEB-INF/lib/projecttools-0.0.2.jar differ diff --git a/HomeWork-java/WebRoot/WEB-INF/lib/tool-sdk-3.4.jar b/HomeWork-java/WebRoot/WEB-INF/lib/tool-sdk-3.4.jar new file mode 100644 index 0000000000000000000000000000000000000000..976f3a3bb8571fe80a638730f6d381491a004d63 Binary files /dev/null and b/HomeWork-java/WebRoot/WEB-INF/lib/tool-sdk-3.4.jar differ diff --git a/HomeWork-java/WebRoot/WEB-INF/lib/toolconstants-4.5.0.jar b/HomeWork-java/WebRoot/WEB-INF/lib/toolconstants-4.5.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..df00ccb847c9af8732f0dd2d912caa129600a7c3 Binary files /dev/null and b/HomeWork-java/WebRoot/WEB-INF/lib/toolconstants-4.5.0.jar differ diff --git a/HomeWork-java/WebRoot/WEB-INF/lib/tre-public-moudle-1.2.11.jar b/HomeWork-java/WebRoot/WEB-INF/lib/tre-public-moudle-1.2.11.jar new file mode 100644 index 0000000000000000000000000000000000000000..20eb9685d20eb7678936ed2f32788cdb15a646f2 Binary files /dev/null and b/HomeWork-java/WebRoot/WEB-INF/lib/tre-public-moudle-1.2.11.jar differ diff --git a/HomeWork-java/WebRoot/WEB-INF/lib/wtbutil-1.0.5.jar b/HomeWork-java/WebRoot/WEB-INF/lib/wtbutil-1.0.5.jar new file mode 100644 index 0000000000000000000000000000000000000000..9d4ec11fc68acc5b9ea4fe8d7e45b03b7d1c0a82 Binary files /dev/null and b/HomeWork-java/WebRoot/WEB-INF/lib/wtbutil-1.0.5.jar differ diff --git a/HomeWork-java/WebRoot/WEB-INF/pages/main.jsp b/HomeWork-java/WebRoot/WEB-INF/pages/main.jsp new file mode 100644 index 0000000000000000000000000000000000000000..4d14109bac1d86c556f2f28b70f915b94fbcfe3a --- /dev/null +++ b/HomeWork-java/WebRoot/WEB-INF/pages/main.jsp @@ -0,0 +1,97 @@ +<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%> + + + + + + + Vite开发工具 + + + + + + + + + + + + diff --git a/HomeWork-java/WebRoot/WEB-INF/pages/main1.jsp b/HomeWork-java/WebRoot/WEB-INF/pages/main1.jsp new file mode 100644 index 0000000000000000000000000000000000000000..6309d09250509ea973a68f597a9bf8f7220cebd8 --- /dev/null +++ b/HomeWork-java/WebRoot/WEB-INF/pages/main1.jsp @@ -0,0 +1,144 @@ +<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%> + + + + + + + Webpack开发工具 + + + + + + +

+ 请输入Webpack调试服务器的地址: + + +

+ + + + + + \ No newline at end of file diff --git a/HomeWork-java/WebRoot/WEB-INF/web.xml b/HomeWork-java/WebRoot/WEB-INF/web.xml new file mode 100644 index 0000000000000000000000000000000000000000..b6036cbb04ec45775dc4c75949a5edcba01eede6 --- /dev/null +++ b/HomeWork-java/WebRoot/WEB-INF/web.xml @@ -0,0 +1,35 @@ + + + JavaToolDemo3.0 + + index.jsp + + + contextConfigLocation + classpath:spring-context.xml + + + org.springframework.web.context.ContextLoaderListener + + + spring-mvc + org.springframework.web.servlet.DispatcherServlet + + contextConfigLocation + classpath:spring-mvc.xml + + 1 + + + spring-mvc + / + + + filter + com.fy.javanode.system.UrlFilter + + + filter + /* + + \ No newline at end of file diff --git a/HomeWork-java/WebRoot/index.jsp b/HomeWork-java/WebRoot/index.jsp new file mode 100644 index 0000000000000000000000000000000000000000..1c6a382a54184f3f6701b9c2547d2fcc2ce3d09c --- /dev/null +++ b/HomeWork-java/WebRoot/index.jsp @@ -0,0 +1,247 @@ +<%@ page language="java" import="java.util.*" + contentType="text/html; charset=utf-8"%> + + + +工具开发环境 + + +
工具开发环境
+
+
+
工具ID:
+ +
+
+
帮区ID:
+ +
+
+
设施帮区ID:
+ +
+
+
工具操作平台:
+ +
+
+
用户帐号:
+ +
+
+
用户名:
+ +
+
+
用户ID:
+ +
+
+
accessToken:
+ +
+
+
是否有数据库:
+ +
+
+
工具运行参数:
+ +
+
+
返回类型:
+ +
+
+
运发平台:
+ +
+ 运行 +
+
+
+
+
+
+
+ 后台守护运行 + + 运行参数:

+ 延迟启动时间:  毫秒 +

时间表达式(cron): +

运行时间:  毫秒 +

+
+ +    + +
+
+
+
+
+
+ + + diff --git a/HomeWork-java/lib/hutool-all-5.8.9.jar b/HomeWork-java/lib/hutool-all-5.8.9.jar new file mode 100644 index 0000000000000000000000000000000000000000..9cc4e2e5917daef9174bb8acb9ffcca02d1fe083 Binary files /dev/null and b/HomeWork-java/lib/hutool-all-5.8.9.jar differ diff --git a/HomeWork-java/lib/simplesqlparameter-1.0.5.jar b/HomeWork-java/lib/simplesqlparameter-1.0.5.jar new file mode 100644 index 0000000000000000000000000000000000000000..a45a6a2e6d54309c3c33c0c80c9205b29902bd25 Binary files /dev/null and b/HomeWork-java/lib/simplesqlparameter-1.0.5.jar differ diff --git a/HomeWork-java/lib/toolbasejar-1.0.11.jar b/HomeWork-java/lib/toolbasejar-1.0.11.jar new file mode 100644 index 0000000000000000000000000000000000000000..990c3628eb2265960533e0372134d86ece63e922 Binary files /dev/null and b/HomeWork-java/lib/toolbasejar-1.0.11.jar differ diff --git a/HomeWork-java/lib/toolhelper-2.0.11.jar b/HomeWork-java/lib/toolhelper-2.0.11.jar new file mode 100644 index 0000000000000000000000000000000000000000..a1dbb84f391dc6dfc685a00811057ee5271b052e Binary files /dev/null and b/HomeWork-java/lib/toolhelper-2.0.11.jar differ diff --git a/HomeWork-java/pom.xml b/HomeWork-java/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..686be2ed8f1927dd04f4b15d710b1643c69f8a74 --- /dev/null +++ b/HomeWork-java/pom.xml @@ -0,0 +1,325 @@ + + 4.0.0 + com.wetoband.template + ToolTemplate-java + 1.0.0 + + WebRoot/resource + WebRoot/WEB-INF + 4.3.9.RELEASE + + + + + + javax + javaee-api + 7.0 + + + + javax.servlet + jstl + 1.2 + + + + org.springframework + spring-context + 4.1.3.RELEASE + + + org.springframework + spring-webmvc + 4.1.3.RELEASE + + + org.springframework + spring-tx + 4.1.3.RELEASE + + + + org.springframework + spring-aspects + 4.3.7.RELEASE + + + + org.aspectj + aspectjrt + 1.8.4 + + + commons-codec + commons-codec + 1.4 + + + + com.fasterxml.jackson.core + jackson-databind + 2.7.4 + + + + org.slf4j + slf4j-api + 1.7.25 + + + org.apache.logging.log4j + log4j-core + 2.7 + + + org.apache.logging.log4j + log4j-api + 2.7 + + + org.apache.logging.log4j + log4j-web + 2.7 + + + org.apache.logging.log4j + log4j-slf4j-impl + 2.7 + + + slf4j-api + org.slf4j + + + + + log4j + log4j + 1.2.17 + + + + commons-logging + commons-logging + 1.2 + + + + org.apache.httpcomponents + httpclient + 4.5.2 + + + commons-codec + commons-codec + + + + + org.apache.httpcomponents + httpcore + 4.4.4 + + + org.apache.httpcomponents + httpmime + 4.4.5 + + + + + com.alibaba + fastjson + 1.2.51 + + + + com.caucho + hessian + 4.0.7 + + + + dom4j + dom4j + 1.6.1 + + + + com.mchange + c3p0 + 0.9.5.2 + + + + mysql + mysql-connector-java + 5.1.14 + + + + org.apache.httpcomponents + httpmime + 4.5.2 + + + + commons-fileupload + commons-fileupload + 1.3.1 + + + commons-io + commons-io + + + + + commons-io + commons-io + 1.4 + + + + com.caucho + quercus + 4.0.45 + + + + org.mongodb + mongodb-driver + 3.5.0 + + + org.mongodb + mongodb-driver-core + 3.5.0 + + + org.mongodb + bson + 3.5.0 + + + + ant + ant + 1.6.5 + + + antlr + antlr + 2.7.7 + + + org.mybatis + mybatis + 3.5.6 + + + com.alibaba + druid + 1.2.4 + + + + org.projectlombok + lombok + 1.18.0 + provided + + + org.springframework + spring-context-support + 4.1.3.RELEASE + + + org.quartz-scheduler + quartz + 2.2.1 + + + c3p0 + c3p0 + + + slf4j-api + org.slf4j + + + + + org.apache.poi + poi-ooxml + 3.9 + + + commons-codec + commons-codec + + + + + + src + + + lib + lib + + **/*.jar + + + + ${project.build.webInfDirectory}/custom-lib + lib + + **/*.jar + + + + src + + config.xml + + + + + tempResources + + + ${project.build.resourceDirectory}/pages + pages + + + ${project.build.resourceDirectory}/js + js + + + ${project.build.resourceDirectory}/images + images + + + ${project.build.resourceDirectory}/css + css + + + + + maven-compiler-plugin + 2.3.2 + + + ${project.basedir}/lib;WebRoot/WEB-INF/lib; + + 1.8 + 1.8 + + + + + \ No newline at end of file diff --git a/HomeWork-java/src/com/wetoband/template/AppConfig.java b/HomeWork-java/src/com/wetoband/template/AppConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..6e52c7fd33002060a7ab25392561c901dc11ef3d --- /dev/null +++ b/HomeWork-java/src/com/wetoband/template/AppConfig.java @@ -0,0 +1,39 @@ +package com.wetoband.template; + +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +/** + * Spring IOC 容器的配置 + * 用于声明配置Bean + * @author xiaoliang + * @date 2022/04/18 19:53 + **/ +@ComponentScan("com.wetoband.template") +@Configuration +public class AppConfig { + public static AnnotationConfigApplicationContext initApplicationContext() { + // 注意 : + /*1. 这里 类AnnotationConfigApplicationContext 类加载器跟下面的 componentsClassLoader 可能不同,要留意这一点 。 + 2. 对象 applicationContext 新建时,所使用的用来加载组件bean对象的类加载器,也就是其属性 getClassLoader() + 默认是 类 AnnotationConfigApplicationContext 的类加载器 。 + 3. 如果 applicationContext.getClassLoader() 和目标组件bean对象的类加载器不一致,会导致找不到目标组件bean, + 所以一定要将 applicationContext 对象的 classLoader 属性设置成目标组件bean对象的类加载器*/ + AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(); + + // 类加载器的设置很重要,如果目标组件类所在包下的类已经被加载,这里一定要设置使用同样的类加载器 + /*前提假设 : 类 AppConfig 是目标bean组件所在的包,并且目标bean组件类,包括 AppConfig 在内都已经被同一类加载器加载, + 这里获取目标bean组件的类加载器并设置到 applicationContext 对象的 classLoader 属性上,这样 + applicationContext 就能正常地发现目标组件了*/ + ClassLoader componentsClassLoader = AppConfig.class.getClassLoader(); + // 该模式下必须要保证这里指定的ClassLoader和AppConfig类的类加载器一致 + applicationContext.setClassLoader(componentsClassLoader); + + // 此时注册组件类 AppConfig.class 到 applicationContext 时,发现组件bean所使用的类加载器会是 componentsClassLoader + applicationContext.register(AppConfig.class); + applicationContext.refresh(); // 该方法需要配合 register 方法使用 + + return applicationContext; + } +} diff --git a/HomeWork-java/src/com/wetoband/template/action/ToolTemplateAction.java b/HomeWork-java/src/com/wetoband/template/action/ToolTemplateAction.java new file mode 100644 index 0000000000000000000000000000000000000000..84865041df32aa3d6835ebe3f770815a1dbdf542 --- /dev/null +++ b/HomeWork-java/src/com/wetoband/template/action/ToolTemplateAction.java @@ -0,0 +1,69 @@ +package com.wetoband.template.action; + +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpResponse; +import com.fy.basejar.tool.ActionToolBase; +import com.wetoband.template.AppConfig; +import com.wetoband.template.entity.HomeWork; +import com.wetoband.template.entity.User; +import com.wetoband.template.service.HomeWorkService; +import com.wetoband.template.service.UserService; +import com.wetoband.template.service.impl.HomeWorkServiceImpl; +import com.wetoband.template.service.impl.UserServiceImpl; +import com.wetoband.template.util.R; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; + +import javax.servlet.http.HttpServletRequest; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.util.HashMap; +import java.util.Map; + +/** + * + */ +public class ToolTemplateAction extends ActionToolBase { + + public final static ApplicationContext IOC = AppConfig.initApplicationContext(); + //获取service实例 + HomeWorkService homeWorkService=IOC.getBean(HomeWorkServiceImpl.class); + UserService userService=IOC.getBean(UserServiceImpl.class); + + @Action + public R get(HttpServletRequest request ) throws Exception { + + return R.ok().put("msg", "Hello World").message("GET请求成功"); + } + + @Action + public R post(HttpServletRequest request) throws Exception { + return R.ok().put("msg", "Hello World").message("POST请求成功"); + } + @Action + public R getHomeWorkById(HttpServletRequest request) throws Exception { + //获取参数 + Integer id =Integer.parseInt(request.getParameter("id")); + HomeWork homeWork = homeWorkService.getHomeWorkById(id); + return R.ok().put("data",homeWork); + } + + public static String runTool(String toolId, String action, Map map, String bandId) { + HashMap params = new HashMap<>(); + params.put("toolID", toolId); + params.put("action", action); + params.put("bandID", bandId); + params.put("gid", bandId); + params.putAll(map); + String url = "https://www.wetoband.com/tre//runToolWithToolShopToolID?returnType=VALUE"; + HttpResponse response = HttpRequest.post(url) + .header("wtbauthc-trust", "true") + .cookie("access_token=" + ToolTemplateAction.getCurrentContext().getAccessToken()) + .form(params) + .execute().sync(); + return response.body(); + } +} diff --git a/HomeWork-java/src/com/wetoband/template/annotation/LogOperate.java b/HomeWork-java/src/com/wetoband/template/annotation/LogOperate.java new file mode 100644 index 0000000000000000000000000000000000000000..f770737623cc24cbbb50bc6af4dad5b9b6ce38bf --- /dev/null +++ b/HomeWork-java/src/com/wetoband/template/annotation/LogOperate.java @@ -0,0 +1,21 @@ +package com.wetoband.template.annotation; + + +import com.wetoband.template.constant.LogOperateType; + +import java.lang.annotation.*; + +/** + * 日志操作注解,配合切面使用,主要只有在spring环境中切面才能生效 + */ +@Documented // 定义注解的保留策略 +@Inherited // 说明子类可以继承父类中的该注解 +@Retention(RetentionPolicy.RUNTIME) // 定义注解的保留策略 +@Target(ElementType.METHOD) // 定义注解的作用目标 +public @interface LogOperate { + + String value() default ""; + + LogOperateType type() default LogOperateType.QUERY; + +} \ No newline at end of file diff --git a/HomeWork-java/src/com/wetoband/template/aspects/LogOperateAspect.java b/HomeWork-java/src/com/wetoband/template/aspects/LogOperateAspect.java new file mode 100644 index 0000000000000000000000000000000000000000..63be084d19ea076b0bf31cc6e4d436c7a7cd4c3d --- /dev/null +++ b/HomeWork-java/src/com/wetoband/template/aspects/LogOperateAspect.java @@ -0,0 +1,105 @@ +package com.wetoband.template.aspects; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.wetoband.template.annotation.LogOperate; +import com.wetoband.template.constant.LogOperateType; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Pointcut; +import org.aspectj.lang.reflect.MethodSignature; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.List; + +/** + * 使用,在需要打印日志的方法上增加注解信息 LogOperate + * @LogOperate(value = "新增数据标准信息", type = LogOperateType.ADD) + */ +@Aspect +@Component +public class LogOperateAspect { + + private static final Logger logger = LoggerFactory.getLogger(LogOperateAspect.class); + + + /** + * 描述:日志操作 + * + * @param + * @return void + * @author fangzhao at 2020/4/7 16:52 + */ + @Pointcut("@annotation(com.wetoband.template.annotation.LogOperate)") +// @Pointcut("execution (* com.blp.service..*.*(..))") + public void logOperateAnnotation() {} + + /** + * 描述:环绕通知 + * + * @param joinPoint + * @return java.lang.Object + * @author fangzhao at 2020/4/7 16:54 + */ + @Around("logOperateAnnotation()") + public Object around(ProceedingJoinPoint joinPoint) throws Throwable { + + long beginTime = System.currentTimeMillis(); + MethodSignature signature = (MethodSignature) joinPoint.getSignature(); + Method method = signature.getMethod(); + LogOperate logOperate = method.getAnnotation(LogOperate.class); + String value = ""; + String msg = ""; + if (null != logOperate) { + // 注解上的描述 + value = logOperate.value(); + LogOperateType logOperateType = logOperate.type(); + msg = logOperateType.getMsg(); + } + // 请求的类名、方法名 + String className = joinPoint.getTarget().getClass().getName(); + String methodName = signature.getName(); + + // 请求的参数 + Object[] args = joinPoint.getArgs(); + List list = new ArrayList<>(); + String json = null; + if (null != args && 0 < args.length) { + for (Object arg : args) { + if (arg instanceof HttpServletResponse || arg instanceof HttpServletRequest || arg instanceof MultipartFile) { + } else { + list.add(arg); + } + } + } + + try { + json = new ObjectMapper().writeValueAsString(list); + } catch (Exception e) { + logger.error("JSON 转换异常:{}", e.getMessage()); + } + + logger.info("请求开始,对象:{},执行操作:{}, 类型:{}, 参数:{}", className + "-" + methodName, value, msg, json); + + Object proceed = joinPoint.proceed(); + + long endTime = System.currentTimeMillis(); + if (logger.isDebugEnabled()) { + logger.debug("请求结束,{},耗时: {} 最大内存: {}m 已分配内存: {}m 已分配内存中的剩余空间: {}m 最大可用内存: {}m", + proceed, + (endTime - beginTime), + Runtime.getRuntime().maxMemory() / 1024 / 1024, + Runtime.getRuntime().totalMemory() / 1024 / 1024, + Runtime.getRuntime().freeMemory() / 1024 / 1024, + (Runtime.getRuntime().maxMemory() - Runtime.getRuntime().totalMemory() + Runtime.getRuntime().freeMemory()) / 1024 / 1024); + } + return proceed; + } +} \ No newline at end of file diff --git a/HomeWork-java/src/com/wetoband/template/constant/LogOperateType.java b/HomeWork-java/src/com/wetoband/template/constant/LogOperateType.java new file mode 100644 index 0000000000000000000000000000000000000000..207091b59cc97b04b299deeb72d9b7d282a40eda --- /dev/null +++ b/HomeWork-java/src/com/wetoband/template/constant/LogOperateType.java @@ -0,0 +1,49 @@ +package com.wetoband.template.constant; +/** + * 通过切面记录操作日志 + * https://www.jianshu.com/p/bb9bb657c0be + * + * @author xiaoliang + * @date 2022/03/02 11:49 + **/ +public enum LogOperateType { + + /** + * 描述:日志操作类型定义 + * @author fangzhao at 2020/4/7 16:55 + */ + QUERY(1, "查询"),ADD(2, "新增"), MODIFY(3, "修改"),DELETE(4, "删除"), + UPLOAD(5, "上传"), DOWNLOAD(6, "下载"), IMPORT(7, "导入"), EXPORT(8, "导出"), + OTHER(9,"其它操作"); + + private final int code; + private final String msg; + + LogOperateType(int code, String msg) { + this.code = code; + this.msg = msg; + } + + public int getCode() { + return code; + } + + public String getMsg() { + return msg; + } + + /** + * 枚举类型转换,由于构造函数获取了枚举的子类enums,让遍历更加高效快捷 + * @param code 数据库中存储的自定义code属性 + * @return code对应的枚举类 + */ + public static LogOperateType locateEnum(int code) { + for(LogOperateType status : LogOperateType.values()) { + if(status.getCode() == code) { + return status; + } + } + throw new IllegalArgumentException("未知的枚举类型:" + code); + } + +} \ No newline at end of file diff --git a/HomeWork-java/src/com/wetoband/template/constant/ResultCode.java b/HomeWork-java/src/com/wetoband/template/constant/ResultCode.java new file mode 100644 index 0000000000000000000000000000000000000000..8b0701594f66f4f7031fd84fab8c04069c7635dc --- /dev/null +++ b/HomeWork-java/src/com/wetoband/template/constant/ResultCode.java @@ -0,0 +1,22 @@ +package com.wetoband.template.constant; + +public enum ResultCode { + // 状态码 + SUCCESS(200, "请求成功"), + ERROR(400, "请求出错"); + + private int code; + private String msg; + ResultCode(int code, String msg){ + this.code = code; + this.msg = msg; + } + + public int getCode() { + return code; + } + + public String getMsg() { + return msg; + } +} diff --git a/HomeWork-java/src/com/wetoband/template/constant/WordType.java b/HomeWork-java/src/com/wetoband/template/constant/WordType.java new file mode 100644 index 0000000000000000000000000000000000000000..2c16dea8575af126808e81bbc7eaa2caade587a6 --- /dev/null +++ b/HomeWork-java/src/com/wetoband/template/constant/WordType.java @@ -0,0 +1,26 @@ +package com.wetoband.template.constant; + +public enum WordType { + DynamicWord(0), // 动态词汇 + TermWord(1), // 术语词汇 + RoleWord(2), // 角色词汇 + UserWord(3), // 用户词汇 + ChatroomWord(4), // 消息板词汇 + OrganizationCustomWord(5), // 机构自定义词汇 + PositionWord(6), // 职位词汇 + DepartmentWord(7), // 部门词汇 + ToolWord(8), // 工具词汇 + UnitWord(9), // 部件词汇 + PublicWord(10), // 公共词汇 + OrganizationInfoWord(11), // 机构信息词汇 + BandWord(12), // 帮区词汇 + ; + private final int value; + WordType(int value) { + this.value = value; + } + + public int getValue() { + return value; + } +} diff --git a/HomeWork-java/src/com/wetoband/template/dao/HomeWorkDao.java b/HomeWork-java/src/com/wetoband/template/dao/HomeWorkDao.java new file mode 100644 index 0000000000000000000000000000000000000000..411e2c272c22a00b8603428415eddc3fac3aadb5 --- /dev/null +++ b/HomeWork-java/src/com/wetoband/template/dao/HomeWorkDao.java @@ -0,0 +1,11 @@ +package com.wetoband.template.dao; + +import com.fy.toolhelper.db.IBaseDao; +import com.wetoband.template.entity.HomeWork; + +import java.sql.Connection; +import java.sql.SQLException; + +public interface HomeWorkDao extends IBaseDao { + HomeWork getHomeWorkById(Connection connection, int id) throws SQLException; +} diff --git a/HomeWork-java/src/com/wetoband/template/dao/UserDao.java b/HomeWork-java/src/com/wetoband/template/dao/UserDao.java new file mode 100644 index 0000000000000000000000000000000000000000..5cf04c1af368c51c3ec50cb3c47d217303691673 --- /dev/null +++ b/HomeWork-java/src/com/wetoband/template/dao/UserDao.java @@ -0,0 +1,22 @@ +package com.wetoband.template.dao; + + +import com.fy.toolhelper.db.IBaseDao; +import com.wetoband.template.entity.User; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +/** + * (Draft)表数据库访问层 + * + * @author makejava + * @since 2022-02-28 17:00:42 + */ +public interface UserDao extends IBaseDao { + + User getUser(Connection connection, Long id) throws SQLException; + +} + diff --git a/HomeWork-java/src/com/wetoband/template/dao/impl/HomeWorkDaoImpl.java b/HomeWork-java/src/com/wetoband/template/dao/impl/HomeWorkDaoImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..3155146bdbbd608b64a42aaa92596493adc56260 --- /dev/null +++ b/HomeWork-java/src/com/wetoband/template/dao/impl/HomeWorkDaoImpl.java @@ -0,0 +1,45 @@ +package com.wetoband.template.dao.impl; + +import com.fy.toolhelper.db.BaseDaoImpl; +import com.wetoband.template.dao.HomeWorkDao; +import com.wetoband.template.entity.HomeWork; +import org.springframework.stereotype.Repository; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +@Repository +public class HomeWorkDaoImpl extends BaseDaoImpl implements HomeWorkDao { + public HomeWorkDaoImpl() throws Exception { + } + + @Override + public HomeWork getHomeWorkById(Connection connection, int id) throws SQLException { + //sql语句 + String sql = "SELECT * FROM homework WHERE user_id=?"; + PreparedStatement pstm = connection.prepareStatement(sql); + pstm.setLong(1, id); + ResultSet rs = pstm.executeQuery(); + List HomeWorkList = new ArrayList<>(); + if (rs.next()) { + //似乎是要将拿到的数据一个个set进去?不确定有木有更好的方法 + HomeWork homework = new HomeWork(); + homework.setHomework_id(rs.getInt("homework_id")); + homework.setUser_id(rs.getLong("user_id")); + homework.setType(rs.getInt("type")); + /*省略*/ + return homework; + } + if (rs != null) { + rs.close(); + } + if (pstm != null) { + pstm.close(); + } + return null; + } +} diff --git a/HomeWork-java/src/com/wetoband/template/dao/impl/UserDaoImpl.java b/HomeWork-java/src/com/wetoband/template/dao/impl/UserDaoImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..6a01801b596cc787588151aaa5d5a181d0c52bbd --- /dev/null +++ b/HomeWork-java/src/com/wetoband/template/dao/impl/UserDaoImpl.java @@ -0,0 +1,41 @@ +package com.wetoband.template.dao.impl; + +import com.fy.toolhelper.db.BaseDaoImpl; +import com.wetoband.template.dao.UserDao; +import com.wetoband.template.entity.User; +import org.springframework.stereotype.Repository; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +@Repository +public class UserDaoImpl extends BaseDaoImpl implements UserDao { + + public UserDaoImpl() throws Exception { + } + + public User getUser(Connection connection, Long id) throws SQLException { + String sql = "SELECT * FROM blp_draft WHERE application_case_id=?"; + PreparedStatement pstm = connection.prepareStatement(sql); + pstm.setLong(1, id); + ResultSet rs = pstm.executeQuery(); + List userList = new ArrayList<>(); + if (rs.next()) { + User user = new User(); + /*省略*/ + return user; + } + if (rs != null) { + rs.close(); + } + if (pstm != null) { + pstm.close(); + } + return null; + } + +} \ No newline at end of file diff --git a/HomeWork-java/src/com/wetoband/template/entity/Homework.java b/HomeWork-java/src/com/wetoband/template/entity/Homework.java new file mode 100644 index 0000000000000000000000000000000000000000..1706eb7c278808527bbe2efb5cfaf0c602ccbec0 --- /dev/null +++ b/HomeWork-java/src/com/wetoband/template/entity/Homework.java @@ -0,0 +1,30 @@ +package com.wetoband.template.entity; + +import lombok.Data; + +import javax.persistence.Column; +import javax.persistence.Id; +import javax.persistence.Table; + +@Data +@Table(name = "homework") +public class HomeWork { + @Id + @Column(name = "homework_id") + private Integer homework_id; + @Column(name = "user_id") + private Long user_id; + @Column(name = "type") + private Integer type; + @Column(name = "homework_describe") + private String homework_describe; + @Column(name = "start_time") + private String start_time; + @Column(name = "finish_time") + private String finish_time; + @Column(name = "homework_name") + private String homework_name; + @Column(name = "course_name") + private String course_name; + +} diff --git a/HomeWork-java/src/com/wetoband/template/entity/User.java b/HomeWork-java/src/com/wetoband/template/entity/User.java new file mode 100644 index 0000000000000000000000000000000000000000..df3b7f92ca93c396e4f7d1ce6c4053c3f718148e --- /dev/null +++ b/HomeWork-java/src/com/wetoband/template/entity/User.java @@ -0,0 +1,19 @@ +package com.wetoband.template.entity; + +import lombok.Data; + +import javax.persistence.Column; +import javax.persistence.Id; +import javax.persistence.Table; + +@Data +@Table(name = "user") +public class User { + @Id + @Column(name = "id") + private Long id; + @Column(name = "name") + private String name; + @Column(name = "age") + private Integer age; +} diff --git a/HomeWork-java/src/com/wetoband/template/remote/service/CoreRemoteService.java b/HomeWork-java/src/com/wetoband/template/remote/service/CoreRemoteService.java new file mode 100644 index 0000000000000000000000000000000000000000..6ea51b6fd569e1693bd7a861b2411d96cbc4cbf3 --- /dev/null +++ b/HomeWork-java/src/com/wetoband/template/remote/service/CoreRemoteService.java @@ -0,0 +1,72 @@ +package com.wetoband.template.remote.service; + +import com.alibaba.fastjson.JSONObject; + +import java.util.List; +import java.util.Map; + +public interface CoreRemoteService { + + /* + * 帮区相关 + * */ + Map getBandByBandObjIds(List bandObjIds) throws Exception; + + Map getBandByBandObjId(String ObjId) throws Exception; + + JSONObject getRolesInBand(Long bandId) throws Exception; + + JSONObject getUsersInBand(Long bandId) throws Exception; + + JSONObject getChatroomsInBand(Long bandId) throws Exception; + + JSONObject getDocumentsInBand(Long bandId) throws Exception; + + JSONObject getToolsInBand(Long bandId) throws Exception; + JSONObject getVariablesInBand(Long bandId) throws Exception; + + JSONObject getBandByBandId(String bandId) throws Exception; + + + /* + * 机构相关 + * */ + JSONObject getOrganizationInfo(Long organizationId) throws Exception; + + JSONObject getDepartmentByOrganizationId(Long organizationId) throws Exception; + + JSONObject getPositionByOrganizationId(Long organizationId) throws Exception; + + JSONObject getMembersByOrganizationId(Long organizationId) throws Exception; + + // 获取用户所在机构的所在所有帮区 + JSONObject getBandsByOrganizationId(Long organizationId) throws Exception; + // 获取帮区路径 + JSONObject getBandsPath(String bandId) throws Exception; + + /** + *部门相关 + **/ + JSONObject getUsersInDepartment(Long departmentId) throws Exception; + + JSONObject getPositionsInDepartment(Long departmentId) throws Exception; + + /** + * 帮语相关 + */ + JSONObject getUserByUserName(String userName) throws Exception; + JSONObject getBandByBandName(String bandName) throws Exception; + JSONObject getChatroomByChatroomName(String chatroomName, String bandId) throws Exception; + JSONObject getToolByToolName(String toolName, String bandId) throws Exception; + + JSONObject getUserByUserId(Long userId) throws Exception; + + /** + * 根据角色名称获取帮区角色信息 + * @param + * @return + * @throws Exception + */ + JSONObject getBandRolesByRoleName(String bandId, String roleName) throws Exception; + +} diff --git a/HomeWork-java/src/com/wetoband/template/remote/service/impl/CoreRemoteServiceImpl.java b/HomeWork-java/src/com/wetoband/template/remote/service/impl/CoreRemoteServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..d92fc10639aed14d1308ef54a339a84265b604c4 --- /dev/null +++ b/HomeWork-java/src/com/wetoband/template/remote/service/impl/CoreRemoteServiceImpl.java @@ -0,0 +1,411 @@ +package com.wetoband.template.remote.service.impl; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.fy.basejar.remote.parameter.WtbCoreParameter; +import com.fy.basejar.remote.service.BaseRemoteService; +import com.fy.basejar.remote.util.RemoteRequestUtils; +import com.fy.basejar.tool.ActionToolBase; +import com.fy.toolhelper.tool.ActionTool; +import com.wetoband.template.remote.service.CoreRemoteService; +import lombok.NoArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 根据远程请求的项目区分RemoteService + * 默认的连接器基于HttpClient实现的, 并定义一套接口, 开发者继承{@link /BaseRemoteServiceImpl来获取CONNECTOR属性(静态变量). + * 一般需要提供两个处理器: {@link IHttpProcessResolver}和 {@link IHttpResultResolver}以处理各个请求过程中通用的代码. + * {@link BaseRemoteService}内置了三个写好的请求模板, 开发者选用即可: + * {@link WtbCoreRemoteServiceBase} 请求吾托帮核心的处理, 注意: 吾托帮核心的通用查询参数封装在{@link WtbCoreParameter}中了, 直接使用即可. + * {@link WtbStoreRemoteServiceBase} 请求吾托帮商城的处理, 注意: 吾托帮商城的通用查询参数封装在{@link WtbStoreParameter}中了, 直接使用即可. + * {@link ToolRemoteServiceBase} 请求运行其它工具的处理 + * 如果有其它请求的需要, 请继承{@link BaseRemoteService}重写相应回调即可. + */ +@Service +@NoArgsConstructor +public class CoreRemoteServiceImpl extends BaseRemoteService.WtbCoreRemoteServiceBase implements CoreRemoteService { + + Map params = null; + + @Override + public Map getBandByBandObjIds(List bandObjIds) throws Exception { + params = RemoteRequestUtils.getNotNullableQueryParams(new WtbCoreParameter()); + StringBuilder sb = new StringBuilder(); + sb.append("["); + for (int i = 0; i < bandObjIds.size(); i++) { + if (i == bandObjIds.size() - 1) { + sb.append(bandObjIds.get(i)); + } else { + sb.append(bandObjIds.get(i) + ","); + } + } + sb.append("]"); + RemoteRequestUtils.addNotNullableParam(params, "accessToken", ActionTool.getTempory(ActionToolBase.TMP_KEY_ACCESS_TOKEN)); + RemoteRequestUtils.addNotNullableParam(params, "aid", "21419389378723787447"); + RemoteRequestUtils.addNotNullableParam(params, "objIDs", sb.toString()); + // String url="/core/v4/user/me/objs“; 参数为 realObjID + // String url="/core/v4/user/me/obj”; 参数为 objID + String url = "/core/v4/user/me/objs"; + JSONObject jsonObject = CONNECTOR.doGet(PROCESS, JSON_RESULT, url, params); + JSONArray rows = jsonObject.getJSONArray("rows"); + return rows.size() == 0 ? null : rows.getJSONObject(0); + } + + @Override + public Map getBandByBandObjId(String ObjId) { + JSONObject jsonObject = null; + JSONArray rows = null; + try { + params = RemoteRequestUtils.getNotNullableQueryParams(new WtbCoreParameter()); + Long gid = ActionTool.getCurrentContext().getGid(); + RemoteRequestUtils.addNotNullableParam(params, "gid", gid); + + RemoteRequestUtils.addNotNullableParam(params, "objID", ObjId); + // String url="/core/v4/user/me/objs“; 参数为 realObjID + // String url="/core/v4/user/me/obj”; 参数为 objID + String url = "/core/v4/user/me/obj"; + jsonObject = CONNECTOR.doGet(PROCESS, JSON_RESULT, url, params); + rows = jsonObject.getJSONArray("rows"); + } catch (Exception e) { + return null; + } + return rows.size() == 0 ? null : rows.getJSONObject(0); + } + + /** + * 获取帮区中的角色 + * + * @param bandId 帮区id + * @return JSONObject + * @throws Exception + */ + @Override + public JSONObject getRolesInBand(Long bandId) throws Exception { + params = RemoteRequestUtils.getNotNullableQueryParams(new WtbCoreParameter()); + Long gid = ActionTool.getCurrentContext().getGid(); + RemoteRequestUtils.addNotNullableParam(params, "gid", gid); + String url = "/core/v4/band/{?}/role"; + //下面是打印测试 + JSONObject o = CONNECTOR.doGet(PROCESS, JSON_RESULT, url, params, bandId.toString()); + return o; + } + + /** + * 获取帮区中的用户 + * + * @param bandId 帮区id + * @return JSONObject + * @throws Exception + */ + @Override + public JSONObject getUsersInBand(Long bandId) throws Exception { + params = RemoteRequestUtils.getNotNullableQueryParams(new WtbCoreParameter()); + Long gid = ActionTool.getCurrentContext().getGid(); + RemoteRequestUtils.addNotNullableParam(params, "gid", gid); + + String url = "/core/v4/band/{?}/user"; + //下面是打印测试 + Object o = CONNECTOR.doGet(PROCESS, JSON_RESULT, url, params, bandId.toString()); + System.out.println(o); + return CONNECTOR.doGet(PROCESS, JSON_RESULT, url, params, bandId.toString()); + } + + /** + * 获取帮区中的消息板 + * + * @param bandId + * @return + * @throws Exception + */ + @Override + public JSONObject getChatroomsInBand(Long bandId) throws Exception { + params = RemoteRequestUtils.getNotNullableQueryParams(new WtbCoreParameter()); + Long gid = ActionTool.getCurrentContext().getGid(); + RemoteRequestUtils.addNotNullableParam(params, "gid", gid); + + String url = "/core/v4/band/{?}/chatroom"; + //下面是打印测试 + Object o = CONNECTOR.doGet(PROCESS, JSON_RESULT, url, params, bandId.toString()); + System.out.println(o); + return CONNECTOR.doGet(PROCESS, JSON_RESULT, url, params, bandId.toString()); + } + + /** + * 获取帮区中的文档 + * + * @param bandId + * @return + * @throws Exception + */ + @Override + public JSONObject getDocumentsInBand(Long bandId) throws Exception { + params = RemoteRequestUtils.getNotNullableQueryParams(new WtbCoreParameter()); + Long gid = ActionTool.getCurrentContext().getGid(); + RemoteRequestUtils.addNotNullableParam(params, "gid", gid); + + String url = "/core/v4/band/{?}/document"; + //下面是打印测试 + Object o = CONNECTOR.doGet(PROCESS, JSON_RESULT, url, params, bandId.toString()); + System.out.println(o); + return CONNECTOR.doGet(PROCESS, JSON_RESULT, url, params, bandId.toString()); + } + + /** + * 获取帮区中的工具 + * + * @param bandId + * @return + * @throws Exception + */ + @Override + public JSONObject getToolsInBand(Long bandId) throws Exception { + params = RemoteRequestUtils.getNotNullableQueryParams(new WtbCoreParameter()); + Long gid = ActionTool.getCurrentContext().getGid(); + RemoteRequestUtils.addNotNullableParam(params, "gid", gid); + RemoteRequestUtils.addNotNullableParam(params, "aid", "21419389378723787447"); + String url = "/core/v4/band/{?}/tool"; + //下面是打印测试 + Object o = CONNECTOR.doGet(PROCESS, JSON_RESULT, url, params, bandId.toString()); + System.out.println(o); + return CONNECTOR.doGet(PROCESS, JSON_RESULT, url, params, bandId.toString()); + + } + + @Override + public JSONObject getVariablesInBand(Long bandId) throws Exception { + /* params = RemoteRequestUtils.getNotNullableQueryParams(new WtbCoreParameter()); + Long gid = ActionTool.getCurrentContext().getGid(); + RemoteRequestUtils.addNotNullableParam(params, "gid", gid); + String url = "/core/v4/band/{?}/variables"; + return CONNECTOR.doGet(PROCESS, JSON_RESULT, url, params, bandId.toString());*/ + return null; + + } + + @Override + public JSONObject getBandByBandId(String bandId) throws Exception { + params = RemoteRequestUtils.getNotNullableQueryParams(new WtbCoreParameter()); + Long gid = ActionTool.getCurrentContext().getGid(); + RemoteRequestUtils.addNotNullableParam(params, "gid", gid); + RemoteRequestUtils.addNotNullableParam(params, "aid", "21419389378723787447"); + String url = "/core/v4/band/{?}"; + return CONNECTOR.doGet(PROCESS, JSON_RESULT, url, params, bandId.toString()); + } + + @Override + public JSONObject getOrganizationInfo(Long organizationId) throws Exception { + params = RemoteRequestUtils.getNotNullableQueryParams(new WtbCoreParameter()); + Long gid = ActionTool.getCurrentContext().getGid(); + RemoteRequestUtils.addNotNullableParam(params, "gid", gid); + RemoteRequestUtils.addNotNullableParam(params, "aid", "21419389378723787447"); + String url = "/core/v4/organization/{?}"; + return CONNECTOR.doGet(PROCESS, JSON_RESULT, url, params, organizationId.toString()); + } + + /** + * 获取机构部门 + * + * @param organizationId + * @return + * @throws Exception + */ + @Override + public JSONObject getDepartmentByOrganizationId(Long organizationId) throws Exception { + params = RemoteRequestUtils.getNotNullableQueryParams(new WtbCoreParameter()); + Long gid = ActionTool.getCurrentContext().getGid(); + RemoteRequestUtils.addNotNullableParam(params, "gid", gid); +// RemoteRequestUtils.addNotNullableParam(params, "aid", "21419389378723787447"); + String url = "/core/v4/organization/{?}/department"; + return CONNECTOR.doGet(PROCESS, JSON_RESULT, url, params, organizationId.toString()); + } + + /** + * 获取机构职位 + * + * @param organizationId + * @return + * @throws Exception + */ + @Override + public JSONObject getPositionByOrganizationId(Long organizationId) throws Exception { + params = RemoteRequestUtils.getNotNullableQueryParams(new WtbCoreParameter()); + Long gid = ActionTool.getCurrentContext().getGid(); + RemoteRequestUtils.addNotNullableParam(params, "gid", gid); + RemoteRequestUtils.addNotNullableParam(params, "aid", "21419389378723787447"); + String url = "/core/v4/organization/{?}/position"; + return CONNECTOR.doGet(PROCESS, JSON_RESULT, url, params, organizationId.toString()); + } + + /** + * 获取机构人员 + * + * @param organizationId + * @return + * @throws Exception + */ + @Override + public JSONObject getMembersByOrganizationId(Long organizationId) throws Exception { + HashMap query = new HashMap<>(); + params = RemoteRequestUtils.getNotNullableQueryParams(new WtbCoreParameter()); + Long gid = ActionTool.getCurrentContext().getGid(); + RemoteRequestUtils.addNotNullableParam(params, "gid", gid); + RemoteRequestUtils.addNotNullableParam(params, "aid", "21419389378723787447"); + String url = "/core/v4/organization/{?}/user"; + return CONNECTOR.doGet(PROCESS, JSON_RESULT, url, params, organizationId.toString()); + } + + /** + * 获取机构当前用户在某个机构的所有帮区 + * + * @param organizationId + * @return + * @throws Exception + */ + @Override + public JSONObject getBandsByOrganizationId(Long organizationId) throws Exception { + params = RemoteRequestUtils.getNotNullableQueryParams(new WtbCoreParameter()); + Long gid = ActionTool.getCurrentContext().getGid(); + RemoteRequestUtils.addNotNullableParam(params, "gid", gid); + RemoteRequestUtils.addNotNullableParam(params, "aid", "21419389378723787447"); + String url = "/core/v4/organization/{?}/band"; + return CONNECTOR.doGet(PROCESS, JSON_RESULT, url, params, organizationId.toString()); + } + + /** + * 获取帮区路径 + * + * @param bandId + * @return + */ + @Override + public JSONObject getBandsPath(String bandId) { + JSONObject jsonObject = null; + try { + params = RemoteRequestUtils.getNotNullableQueryParams(new WtbCoreParameter()); + Long gid = ActionTool.getCurrentContext().getGid(); + RemoteRequestUtils.addNotNullableParam(params, "gid", gid); + RemoteRequestUtils.addNotNullableParam(params, "aid", "21419389378723787447"); + String url = "/core/v4/band/{?}/bandPath"; + System.out.println(params); + jsonObject = CONNECTOR.doGet(PROCESS, JSON_RESULT, url, params, bandId); + } catch (Exception e) { + System.out.println(e.getCause()); + } + return jsonObject; + } + + @Override + public JSONObject getUsersInDepartment(Long departmentId) throws Exception { + params = RemoteRequestUtils.getNotNullableQueryParams(new WtbCoreParameter()); + Long gid = ActionTool.getCurrentContext().getGid(); + RemoteRequestUtils.addNotNullableParam(params, "gid", gid); + RemoteRequestUtils.addNotNullableParam(params, "aid", "21419389378723787447"); + String url = "/core/v4/department/{?}/user"; + return CONNECTOR.doGet(PROCESS, JSON_RESULT, url, params, departmentId.toString()); + } + + @Override + public JSONObject getPositionsInDepartment(Long departmentId) throws Exception { + params = RemoteRequestUtils.getNotNullableQueryParams(new WtbCoreParameter()); + Long gid = ActionTool.getCurrentContext().getGid(); + RemoteRequestUtils.addNotNullableParam(params, "gid", gid); + RemoteRequestUtils.addNotNullableParam(params, "aid", "21419389378723787447"); + String url = "/core/v4/department/{?}/position"; + return CONNECTOR.doGet(PROCESS, JSON_RESULT, url, params, departmentId.toString()); + } + + @Override + public JSONObject getUserByUserName(String userName) throws Exception { + params = RemoteRequestUtils.getNotNullableQueryParams(new WtbCoreParameter()); + String query = "{\"userName\":\"%s\",\"userStatus\": \"NORMAL\"}"; + query = String.format(query, userName); + RemoteRequestUtils.addNotNullableParam(params, "query", query); + Long gid = ActionTool.getCurrentContext().getGid(); + RemoteRequestUtils.addNotNullableParam(params, "gid", gid); + RemoteRequestUtils.addNotNullableParam(params, "aid", "21419389378723787447"); + String url = "/core/v4/user"; + return CONNECTOR.doGet(PROCESS, JSON_RESULT, url, params); + } + + @Override + public JSONObject getBandByBandName(String bandName) throws Exception { + + params = RemoteRequestUtils.getNotNullableQueryParams(new WtbCoreParameter()); + Long gid = ActionTool.getCurrentContext().getGid(); + + String query = "{\"name\":\"%s\"}"; + query = String.format(query, bandName); + + RemoteRequestUtils.addNotNullableParam(params, "query", query); + RemoteRequestUtils.addNotNullableParam(params, "gid", gid); + RemoteRequestUtils.addNotNullableParam(params, "aid", "21419389378723787447"); + + String url = "/core/v4/band"; + return CONNECTOR.doGet(PROCESS, JSON_RESULT, url, params); + } + + @Override + public JSONObject getChatroomByChatroomName(String chatroomName, String bandId) throws Exception { + params = RemoteRequestUtils.getNotNullableQueryParams(new WtbCoreParameter()); + + // aid在config.xml中配置了 + Long gid = ActionTool.getCurrentContext().getGid(); + RemoteRequestUtils.addNotNullableParam(params, "aid", "21419389378723787447"); + + String query = "{\"name\":\"%s\"}"; + query = String.format(query, chatroomName); + + RemoteRequestUtils.addNotNullableParam(params, "query", query); + RemoteRequestUtils.addNotNullableParam(params, "gid", gid); + + String url = "/core/v4/band/{?}/chatroom"; + return CONNECTOR.doGet(PROCESS, JSON_RESULT, url, params, bandId); + } + + @Override + public JSONObject getToolByToolName(String toolName, String bandId) throws Exception { + params = RemoteRequestUtils.getNotNullableQueryParams(new WtbCoreParameter()); + + // aid在config.xml中配置了 + // todo 获取运行帮区id + // solved 方法参数上bandID + bandId = "".equals(bandId) ? String.valueOf(ActionTool.getCurrentContext().getBandID()) : bandId; + Long gid = ActionTool.getCurrentContext().getGid(); + + String query = "{\"name\":\"%s\",\"bandID\":\"%s\"}"; + query = String.format(query, toolName, bandId); + + RemoteRequestUtils.addNotNullableParam(params, "query", query); + RemoteRequestUtils.addNotNullableParam(params, "gid", gid); + RemoteRequestUtils.addNotNullableParam(params, "aid", "21419389378723787447"); + + String url = "/core/v4/tool"; + return CONNECTOR.doGet(PROCESS, JSON_RESULT, url, params); + } + + @Override + public JSONObject getUserByUserId(Long userId) throws Exception { + params = RemoteRequestUtils.getNotNullableQueryParams(new WtbCoreParameter()); + Long gid = ActionTool.getCurrentContext().getGid(); + RemoteRequestUtils.addNotNullableParam(params, "gid", gid); + RemoteRequestUtils.addNotNullableParam(params, "aid", "21419389378723787447"); + String url = "/core/v4/user/{?}"; + return CONNECTOR.doGet(PROCESS, JSON_RESULT, url, params, userId.toString()); + } + + @Override + public JSONObject getBandRolesByRoleName(String bandId, String roleName) throws Exception { + params = RemoteRequestUtils.getNotNullableQueryParams(new WtbCoreParameter()); + Long gid = ActionTool.getCurrentContext().getGid(); + RemoteRequestUtils.addNotNullableParam(params, "gid", gid); + RemoteRequestUtils.addNotNullableParam(params, "aid", "21419389378723787447"); + RemoteRequestUtils.addNotNullableParam(params, "roleName", roleName); + String url = "/core/v4/band/{?}/role"; + return CONNECTOR.doGet(PROCESS, JSON_RESULT, url, params, bandId); + } + +} diff --git a/HomeWork-java/src/com/wetoband/template/service/HomeWorkService.java b/HomeWork-java/src/com/wetoband/template/service/HomeWorkService.java new file mode 100644 index 0000000000000000000000000000000000000000..f70ac2c10d1c91522beb64027ba0b62d3065ed82 --- /dev/null +++ b/HomeWork-java/src/com/wetoband/template/service/HomeWorkService.java @@ -0,0 +1,10 @@ +package com.wetoband.template.service; + +import com.wetoband.template.entity.HomeWork; + +import java.sql.Connection; +import java.sql.SQLException; + +public interface HomeWorkService { + public HomeWork getHomeWorkById(int id) throws Exception; +} diff --git a/HomeWork-java/src/com/wetoband/template/service/UserService.java b/HomeWork-java/src/com/wetoband/template/service/UserService.java new file mode 100644 index 0000000000000000000000000000000000000000..15b84d6c656fa02e1febcd814c48c5939fc145d1 --- /dev/null +++ b/HomeWork-java/src/com/wetoband/template/service/UserService.java @@ -0,0 +1,15 @@ +package com.wetoband.template.service; + +import com.wetoband.template.entity.User; + +/** + * (Draft)表服务接口 + * + * @author makejava + * @since 2022-02-28 17:00:42 + */ +public interface UserService { + public User getUser(User user) throws Exception; + + +} diff --git a/HomeWork-java/src/com/wetoband/template/service/impl/HomeWorkServiceImpl.java b/HomeWork-java/src/com/wetoband/template/service/impl/HomeWorkServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..c37fc3ec5a23185065e74094625d6c5ec8b222c4 --- /dev/null +++ b/HomeWork-java/src/com/wetoband/template/service/impl/HomeWorkServiceImpl.java @@ -0,0 +1,26 @@ +package com.wetoband.template.service.impl; + +import com.fy.basejar.tool.ActionToolBase; +import com.wetoband.template.dao.HomeWorkDao; +import com.wetoband.template.entity.HomeWork; +import com.wetoband.template.service.HomeWorkService; +import lombok.NoArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.sql.Connection; +import java.sql.DriverManager; + +@Service +@NoArgsConstructor +public class HomeWorkServiceImpl implements HomeWorkService { + @Autowired + private HomeWorkDao homeWorkDao; + @Override + public HomeWork getHomeWorkById(int id) throws Exception { + //这里是获取数据库连接。调用了jar包中的方法。具体我没看懂,反正这样子就能拿到了连接。。。 + final Connection connection = ActionToolBase.getDBConnection(); + //将连接传入dao层。 + return homeWorkDao.getHomeWorkById(connection,id); + } +} diff --git a/HomeWork-java/src/com/wetoband/template/service/impl/UserServiceImpl.java b/HomeWork-java/src/com/wetoband/template/service/impl/UserServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..8f437343e741879557a0ab2cc237e3f26570c4d6 --- /dev/null +++ b/HomeWork-java/src/com/wetoband/template/service/impl/UserServiceImpl.java @@ -0,0 +1,32 @@ +package com.wetoband.template.service.impl; + +import com.fy.basejar.tool.ActionToolBase; +import com.wetoband.template.dao.UserDao; +import com.wetoband.template.entity.User; +import com.wetoband.template.service.UserService; +import lombok.NoArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.sql.Connection; + +/** + * (Draft)表服务实现类 + * + * @author makejava + * @since 2022-02-28 17:00:42 + */ +@Service +@NoArgsConstructor +public class UserServiceImpl implements UserService { + + @Autowired + UserDao userDao; + + @Override + public User getUser(User user) throws Exception{ + final Connection connection = ActionToolBase.getDBConnection(); + return userDao.getUser(connection, user.getId()); + } + +} diff --git a/HomeWork-java/src/com/wetoband/template/util/R.java b/HomeWork-java/src/com/wetoband/template/util/R.java new file mode 100644 index 0000000000000000000000000000000000000000..633f276ee2c2d2cf69030fafd1f1d2c97d521760 --- /dev/null +++ b/HomeWork-java/src/com/wetoband/template/util/R.java @@ -0,0 +1,81 @@ +/** + * Copyright (c) 2016-2019 人人开源 All rights reserved. + *

+ * https://www.renren.io + *

+ * 版权所有,侵权必究! + */ + +package com.wetoband.template.util; + +import com.wetoband.template.constant.ResultCode; +import lombok.Data; + +import java.util.HashMap; +import java.util.Map; + +/** + * 返回数据 + */ +@Data +public class R { + + // 是否成功 + private Boolean success; + + // 返回码 + private Integer code; + + // 返回消息 + private String message; + + // 返回数据 + private Map data = new HashMap(); + + // 私有构造方法 + private R() { + } + + public static R ok() { + R r = new R(); + r.setSuccess(true); + r.setCode(ResultCode.SUCCESS.getCode()); + r.setMessage(ResultCode.SUCCESS.getMsg()); + return r; + } + + public static R error() { + R r = new R(); + r.setSuccess(false); + r.setCode(ResultCode.ERROR.getCode()); + r.setMessage(ResultCode.ERROR.getMsg()); + return r; + } + + // 返回this 可以链式编程 + public R success(Boolean success) { + this.setSuccess(success); + return this; + } + + public R message(String message) { + this.setMessage(message); + return this; + } + + public R code(Integer code) { + this.setCode(code); + return this; + } + + // 可以传入Map,或者直接一个键值对 + public R put(String key, Object value) { + this.data.put(key, value); + return this; + } + + public R put(Map map) { + this.setData(map); + return this; + } +} \ No newline at end of file diff --git a/HomeWork-java/src/com/wetoband/template/util/ResourceManager.java b/HomeWork-java/src/com/wetoband/template/util/ResourceManager.java new file mode 100644 index 0000000000000000000000000000000000000000..1aec3db3ead6c47bd2f51cc2603add9363a4f13e --- /dev/null +++ b/HomeWork-java/src/com/wetoband/template/util/ResourceManager.java @@ -0,0 +1,29 @@ +package com.wetoband.template.util; + +import com.wetoband.template.action.ToolTemplateAction; + +import java.sql.Connection; + +public class ResourceManager { + + public static Connection getConnection() { + try { + return ToolTemplateAction.getDBConnection(); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + public static void close(AutoCloseable ...autoCloseables) { + for (final AutoCloseable autoCloseable : autoCloseables) { + try { + if (autoCloseable != null) { + autoCloseable.close(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + } +} diff --git a/HomeWork-java/src/config.xml b/HomeWork-java/src/config.xml new file mode 100644 index 0000000000000000000000000000000000000000..bc22c5b9378005d032474a10482594b1eec10891 --- /dev/null +++ b/HomeWork-java/src/config.xml @@ -0,0 +1,11 @@ + + + + 3.0 + + com.wetoband.template.action.ToolTemplateAction + + {aid:"21419389378723787447"} + + http://127.0.0.1:8080 + \ No newline at end of file diff --git a/HomeWork-java/target/classes/callToolConfig.xml b/HomeWork-java/target/classes/callToolConfig.xml new file mode 100644 index 0000000000000000000000000000000000000000..4133fba582b72575d86452985c2569abcea3f396 --- /dev/null +++ b/HomeWork-java/target/classes/callToolConfig.xml @@ -0,0 +1,14 @@ + + + + + + + 12345 + JavaToolDemo3.0 + + http://localhost:8080/JavaToolDemo3.0 + + 1 + + \ No newline at end of file diff --git a/HomeWork-java/target/classes/config.properties b/HomeWork-java/target/classes/config.properties new file mode 100644 index 0000000000000000000000000000000000000000..c9af6a3edf8b2c522ecc4c6bde80f9e5c5964f74 --- /dev/null +++ b/HomeWork-java/target/classes/config.properties @@ -0,0 +1,39 @@ +#\u4E3B\u8282\u70B9 +MAIN_NODE_URL=https://www.wetoband.com/tre/ +#\u6838\u5FC3 +WTBCORE_URL=https://www.wetoband.com/core/ +#\u5DE5\u5177\u5546\u5E97 +TOOL_SHOP_URL=https://www.wetoband.com/shop/ +TOOLRESOURCE_URL=https://www.wetoband.com/ts/ +GATEWAY_URL=https://www.wetoband.com/web/ +WTB_EXCEPTION_URL=http://127.0.0.1 +OPENINTERFACE_URL=https://www.wetoband.com/core/ + +HTTP_CONN_REQUEST_TIMEOUT_SECOND=6 +HTTP_CONN_TIMEOUT_SECOND=6 +#\u77ED\u94FE\u63A5socket\u8D85\u65F6 +HTTP_SOCKET_TIMEOUT_SECOND=6 +#\u957F\u94FE\u63A5socket\u8D85\u65F6\uFF0C\u4E3B\u8981\u7528\u6765\u4F20\u8F93\u6587\u4EF6 +HTTP_LONG_CONNECTION_TIMEOUT_SECOND=60 + +JDBC_DRIVER=com.mysql.jdbc.Driver +JDBC_URL=jdbc:mysql://8.138.182.34:3306/homework + +#JDBC_URL=jdbc:mysql://192.168.88.47:3306/blp?useUnicode=true&characterEncoding=utf8 +JDBC_USERNAME=root +JDBC_PASSWORD=123456 +#JDBC_PASSWORD=K4jA0yOa9BYUmd6G +#JDBC_URL=jdbc:mysql://127.0.0.1:3306/blp?useUnicode=true&characterEncoding=utf8 +#JDBC_USERNAME=root +#JDBC_PASSWORD=root + +MONGODB_IP=localhost +MONGODB_PORT=27017 +MONGODB_DBNAME=admin +MONGODB_USERNAME=root +MONGODB_PASSWORD=root + +SWAP_VALUE_MAX_SIZE=0 +SWAP_VALUE_SERVER_PORT=6666 +GET_SWAP_VALUE_IP=192.168.10.254 +GET_SWAP_VALUE_PORT=6666 \ No newline at end of file diff --git a/HomeWork-java/target/classes/config.xml b/HomeWork-java/target/classes/config.xml new file mode 100644 index 0000000000000000000000000000000000000000..bc22c5b9378005d032474a10482594b1eec10891 --- /dev/null +++ b/HomeWork-java/target/classes/config.xml @@ -0,0 +1,11 @@ + + + + 3.0 + + com.wetoband.template.action.ToolTemplateAction + + {aid:"21419389378723787447"} + + http://127.0.0.1:8080 + \ No newline at end of file diff --git a/HomeWork-java/target/classes/lib/hutool-all-5.8.9.jar b/HomeWork-java/target/classes/lib/hutool-all-5.8.9.jar new file mode 100644 index 0000000000000000000000000000000000000000..9cc4e2e5917daef9174bb8acb9ffcca02d1fe083 Binary files /dev/null and b/HomeWork-java/target/classes/lib/hutool-all-5.8.9.jar differ diff --git a/HomeWork-java/target/classes/lib/simplesqlparameter-1.0.5.jar b/HomeWork-java/target/classes/lib/simplesqlparameter-1.0.5.jar new file mode 100644 index 0000000000000000000000000000000000000000..a45a6a2e6d54309c3c33c0c80c9205b29902bd25 Binary files /dev/null and b/HomeWork-java/target/classes/lib/simplesqlparameter-1.0.5.jar differ diff --git a/HomeWork-java/target/classes/lib/toolbasejar-1.0.11.jar b/HomeWork-java/target/classes/lib/toolbasejar-1.0.11.jar new file mode 100644 index 0000000000000000000000000000000000000000..990c3628eb2265960533e0372134d86ece63e922 Binary files /dev/null and b/HomeWork-java/target/classes/lib/toolbasejar-1.0.11.jar differ diff --git a/HomeWork-java/target/classes/lib/toolhelper-2.0.11.jar b/HomeWork-java/target/classes/lib/toolhelper-2.0.11.jar new file mode 100644 index 0000000000000000000000000000000000000000..a1dbb84f391dc6dfc685a00811057ee5271b052e Binary files /dev/null and b/HomeWork-java/target/classes/lib/toolhelper-2.0.11.jar differ diff --git a/HomeWork-java/target/classes/log4j2.xml b/HomeWork-java/target/classes/log4j2.xml new file mode 100644 index 0000000000000000000000000000000000000000..aceca5b8190ee911099770e9855e059a9927bdf5 --- /dev/null +++ b/HomeWork-java/target/classes/log4j2.xml @@ -0,0 +1,87 @@ + + + + ${sys:catalina.home}/logs/tool + %d{yyyy-MM-dd HH:mm:ss,SSS} [%l]-[%p] %m%n + 250 MB + 3d + + UTF-8 + + + + + + + + + + ${logPattern} + + + + + + + + + + + + + + + + ${logPattern} + + + + + + + + + + + + + + + + ${logPattern} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/HomeWork-java/tempResources/callToolConfig.xml b/HomeWork-java/tempResources/callToolConfig.xml new file mode 100644 index 0000000000000000000000000000000000000000..4133fba582b72575d86452985c2569abcea3f396 --- /dev/null +++ b/HomeWork-java/tempResources/callToolConfig.xml @@ -0,0 +1,14 @@ + + + + + + + 12345 + JavaToolDemo3.0 + + http://localhost:8080/JavaToolDemo3.0 + + 1 + + \ No newline at end of file diff --git a/HomeWork-java/tempResources/config.properties b/HomeWork-java/tempResources/config.properties new file mode 100644 index 0000000000000000000000000000000000000000..c9af6a3edf8b2c522ecc4c6bde80f9e5c5964f74 --- /dev/null +++ b/HomeWork-java/tempResources/config.properties @@ -0,0 +1,39 @@ +#\u4E3B\u8282\u70B9 +MAIN_NODE_URL=https://www.wetoband.com/tre/ +#\u6838\u5FC3 +WTBCORE_URL=https://www.wetoband.com/core/ +#\u5DE5\u5177\u5546\u5E97 +TOOL_SHOP_URL=https://www.wetoband.com/shop/ +TOOLRESOURCE_URL=https://www.wetoband.com/ts/ +GATEWAY_URL=https://www.wetoband.com/web/ +WTB_EXCEPTION_URL=http://127.0.0.1 +OPENINTERFACE_URL=https://www.wetoband.com/core/ + +HTTP_CONN_REQUEST_TIMEOUT_SECOND=6 +HTTP_CONN_TIMEOUT_SECOND=6 +#\u77ED\u94FE\u63A5socket\u8D85\u65F6 +HTTP_SOCKET_TIMEOUT_SECOND=6 +#\u957F\u94FE\u63A5socket\u8D85\u65F6\uFF0C\u4E3B\u8981\u7528\u6765\u4F20\u8F93\u6587\u4EF6 +HTTP_LONG_CONNECTION_TIMEOUT_SECOND=60 + +JDBC_DRIVER=com.mysql.jdbc.Driver +JDBC_URL=jdbc:mysql://8.138.182.34:3306/homework + +#JDBC_URL=jdbc:mysql://192.168.88.47:3306/blp?useUnicode=true&characterEncoding=utf8 +JDBC_USERNAME=root +JDBC_PASSWORD=123456 +#JDBC_PASSWORD=K4jA0yOa9BYUmd6G +#JDBC_URL=jdbc:mysql://127.0.0.1:3306/blp?useUnicode=true&characterEncoding=utf8 +#JDBC_USERNAME=root +#JDBC_PASSWORD=root + +MONGODB_IP=localhost +MONGODB_PORT=27017 +MONGODB_DBNAME=admin +MONGODB_USERNAME=root +MONGODB_PASSWORD=root + +SWAP_VALUE_MAX_SIZE=0 +SWAP_VALUE_SERVER_PORT=6666 +GET_SWAP_VALUE_IP=192.168.10.254 +GET_SWAP_VALUE_PORT=6666 \ No newline at end of file diff --git a/HomeWork-java/tempResources/log4j2.xml b/HomeWork-java/tempResources/log4j2.xml new file mode 100644 index 0000000000000000000000000000000000000000..aceca5b8190ee911099770e9855e059a9927bdf5 --- /dev/null +++ b/HomeWork-java/tempResources/log4j2.xml @@ -0,0 +1,87 @@ + + + + ${sys:catalina.home}/logs/tool + %d{yyyy-MM-dd HH:mm:ss,SSS} [%l]-[%p] %m%n + 250 MB + 3d + + UTF-8 + + + + + + + + + + ${logPattern} + + + + + + + + + + + + + + + + ${logPattern} + + + + + + + + + + + + + + + + ${logPattern} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/HomeWork-vite/.env b/HomeWork-vite/.env new file mode 100644 index 0000000000000000000000000000000000000000..437e3b139706d9682ead68bf174705454cdab69f --- /dev/null +++ b/HomeWork-vite/.env @@ -0,0 +1 @@ +VITE_APP_TITLE=模板工具 \ No newline at end of file diff --git a/HomeWork-vite/.gitignore b/HomeWork-vite/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..a547bf36d8d11a4f89c59c144f24795749086dd1 --- /dev/null +++ b/HomeWork-vite/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/HomeWork-vite/.vscode/extensions.json b/HomeWork-vite/.vscode/extensions.json new file mode 100644 index 0000000000000000000000000000000000000000..c0a6e5a48110e472b09d68afa2a030af6ab3208b --- /dev/null +++ b/HomeWork-vite/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] +} diff --git a/HomeWork-vite/README.md b/HomeWork-vite/README.md new file mode 100644 index 0000000000000000000000000000000000000000..e62e093e7092d1069ce0eb8f8497a66475e45d0b --- /dev/null +++ b/HomeWork-vite/README.md @@ -0,0 +1,7 @@ +# Vue 3 + Vite + +This template should help get you started developing with Vue 3 in Vite. The template uses Vue 3 ` + + + diff --git a/HomeWork-vite/modifyFile.js b/HomeWork-vite/modifyFile.js new file mode 100644 index 0000000000000000000000000000000000000000..4da0d8306ef9ddfc6dffd04128d408eb19c8c724 --- /dev/null +++ b/HomeWork-vite/modifyFile.js @@ -0,0 +1,98 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +import fs from 'fs'; + +// 修改app.js中的${resourceUrl} +const _assetsCSSPath = './dist/css/'; +const _assetsJSPath = './dist/js/'; +const _assetsIndexHtmlPath = './dist/index.html'; +const _assetsPagesFolder = './dist/pages'; +const _assetsMainJspPath = './dist/pages/main.jsp'; + +function modifyCss() { + if (!fs.existsSync(_assetsCSSPath)) { + modifyMainJSP(); + return; + } + const files = fs.readdirSync(_assetsCSSPath); + if (files.length === 0) { + modifyMainJSP(); + return; + } + let numFilesProcessed = 0; // 跟踪已处理的文件数量 + const cssVariables = {}; + files.forEach(function (appCssName) { + const cssName = _assetsCSSPath + appCssName; + fs.readFile(cssName, (err, data) => { + if (err) throw err; + let newContent = data.toString(); + // eslint-disable-next-line no-template-curly-in-string + const regex = /url\(\/\$%7BresourceUrl%7D(.*?)\)/g; + newContent = newContent.replace(regex, (match, url) => { + const cleanUrl = url.replace('/$%7BresourceUrl%7D', ''); + const variableName = `--var-image${Object.keys(cssVariables).length + 1}`; + cssVariables[variableName] = cleanUrl; + return `var(${variableName})`; + }); + fs.writeFile(cssName, newContent, () => { + console.log(`'修改 ${cssName} 完成'`); + numFilesProcessed++; // 增加已处理文件的数量 + if (numFilesProcessed === files.length) { + let jsCode = ''; + if (Object.keys(cssVariables).length > 0) { + jsCode = ''; + } + modifyMainJSP(jsCode); + } + }); + }); + }); +} +function modifyJs() { + const files = fs.readdirSync(_assetsJSPath); + files.forEach(function (appJsName) { + const jsName = _assetsJSPath + appJsName; + fs.readFile(jsName, (err, data) => { + if (err) throw err; + let newContent = data.toString(); + // eslint-disable-next-line no-template-curly-in-string + newContent = newContent.replace(/"\/\$%7BresourceUrl%7D\/"/g, ' g_resourceUrl'); + newContent = newContent.replace(/"\/\$%7BresourceUrl%7D\//g, ' g_resourceUrl+"'); + + fs.writeFile(jsName, newContent, () => { + console.log(`'修改 ${jsName} 完成'`); + }); + }); + }); +} +function modifyMainJSP(jsCode) { + fs.readFile(_assetsIndexHtmlPath, (err) => { + if (err) throw err; + // eslint-disable-next-line no-template-curly-in-string + // 创建pages文件夹 + fs.mkdirSync(_assetsPagesFolder, { recursive: true }); // 创建文件夹,recursive选项表示递归创建目录,如果目录已经存在则不报错 + console.log(`'创建 ${_assetsPagesFolder} 完成'`); + // 修改index.html文件名为main.jsp + fs.renameSync(_assetsIndexHtmlPath, _assetsMainJspPath); + console.log(`'修改 ${_assetsIndexHtmlPath} 为 ${_assetsMainJspPath} 完成'`); + // 修改main.jsp中${resourceUrl}转义的字符并去掉/ + fs.readFile(_assetsMainJspPath, (err, data) => { + if (err) throw err; + let newContent = data.toString(); + // eslint-disable-next-line no-template-curly-in-string + newContent = newContent.replace(/\/\$%7BresourceUrl%7D\//g, '${resourceUrl}'); + if (jsCode) { + newContent = newContent.replace('', jsCode + ''); + } + fs.writeFile(_assetsMainJspPath, newContent, () => { + console.log(`'修改 ${_assetsMainJspPath} 完成'`); + }); + }); + }); +} +modifyCss(); +modifyJs(); diff --git a/HomeWork-vite/package-lock.json b/HomeWork-vite/package-lock.json new file mode 100644 index 0000000000000000000000000000000000000000..790f8b0e873b43faf073b7e64025b73bd1908dea --- /dev/null +++ b/HomeWork-vite/package-lock.json @@ -0,0 +1,1688 @@ +{ + "name": "tool-template-vite", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "tool-template-vite", + "version": "0.0.0", + "dependencies": { + "@element-plus/icons-vue": "^2.3.1", + "axios": "^1.6.2", + "element-plus": "^2.8.8", + "lodash": "^4.17.21", + "qs": "^6.11.2", + "vue": "^3.3.11", + "vue-router": "^4.5.0" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^4.5.2", + "sass": "^1.69.5", + "vite": "^5.0.8" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.6", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.23.6.tgz", + "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@ctrl/tinycolor": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", + "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@element-plus/icons-vue": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz", + "integrity": "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==", + "license": "MIT", + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.19.9", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.19.9.tgz", + "integrity": "sha512-jkYjjq7SdsWuNI6b5quymW0oC83NN5FdRPuCbs9HZ02mfVdAP8B8eeqLSYU3gb6OJEaY5CQabtTFbqBf26H3GA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.19.9", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.19.9.tgz", + "integrity": "sha512-q4cR+6ZD0938R19MyEW3jEsMzbb/1rulLXiNAJQADD/XYp7pT+rOS5JGxvpRW8dFDEfjW4wLgC/3FXIw4zYglQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.19.9", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.19.9.tgz", + "integrity": "sha512-KOqoPntWAH6ZxDwx1D6mRntIgZh9KodzgNOy5Ebt9ghzffOk9X2c1sPwtM9P+0eXbefnDhqYfkh5PLP5ULtWFA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.19.9", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.9.tgz", + "integrity": "sha512-KBJ9S0AFyLVx2E5D8W0vExqRW01WqRtczUZ8NRu+Pi+87opZn5tL4Y0xT0mA4FtHctd0ZgwNoN639fUUGlNIWw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.19.9", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.19.9.tgz", + "integrity": "sha512-vE0VotmNTQaTdX0Q9dOHmMTao6ObjyPm58CHZr1UK7qpNleQyxlFlNCaHsHx6Uqv86VgPmR4o2wdNq3dP1qyDQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.9", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.9.tgz", + "integrity": "sha512-uFQyd/o1IjiEk3rUHSwUKkqZwqdvuD8GevWF065eqgYfexcVkxh+IJgwTaGZVu59XczZGcN/YMh9uF1fWD8j1g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.19.9", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.9.tgz", + "integrity": "sha512-WMLgWAtkdTbTu1AWacY7uoj/YtHthgqrqhf1OaEWnZb7PQgpt8eaA/F3LkV0E6K/Lc0cUr/uaVP/49iE4M4asA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.19.9", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.19.9.tgz", + "integrity": "sha512-C/ChPohUYoyUaqn1h17m/6yt6OB14hbXvT8EgM1ZWaiiTYz7nWZR0SYmMnB5BzQA4GXl3BgBO1l8MYqL/He3qw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.19.9", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.19.9.tgz", + "integrity": "sha512-PiPblfe1BjK7WDAKR1Cr9O7VVPqVNpwFcPWgfn4xu0eMemzRp442hXyzF/fSwgrufI66FpHOEJk0yYdPInsmyQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.19.9", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.19.9.tgz", + "integrity": "sha512-f37i/0zE0MjDxijkPSQw1CO/7C27Eojqb+r3BbHVxMLkj8GCa78TrBZzvPyA/FNLUMzP3eyHCVkAopkKVja+6Q==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.19.9", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.19.9.tgz", + "integrity": "sha512-t6mN147pUIf3t6wUt3FeumoOTPfmv9Cc6DQlsVBpB7eCpLOqQDyWBP1ymXn1lDw4fNUSb/gBcKAmvTP49oIkaA==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.19.9", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.9.tgz", + "integrity": "sha512-jg9fujJTNTQBuDXdmAg1eeJUL4Jds7BklOTkkH80ZgQIoCTdQrDaHYgbFZyeTq8zbY+axgptncko3v9p5hLZtw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.19.9", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.9.tgz", + "integrity": "sha512-tkV0xUX0pUUgY4ha7z5BbDS85uI7ABw3V1d0RNTii7E9lbmV8Z37Pup2tsLV46SQWzjOeyDi1Q7Wx2+QM8WaCQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.19.9", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.9.tgz", + "integrity": "sha512-DfLp8dj91cufgPZDXr9p3FoR++m3ZJ6uIXsXrIvJdOjXVREtXuQCjfMfvmc3LScAVmLjcfloyVtpn43D56JFHg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.19.9", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.19.9.tgz", + "integrity": "sha512-zHbglfEdC88KMgCWpOl/zc6dDYJvWGLiUtmPRsr1OgCViu3z5GncvNVdf+6/56O2Ca8jUU+t1BW261V6kp8qdw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.19.9", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.19.9.tgz", + "integrity": "sha512-JUjpystGFFmNrEHQnIVG8hKwvA2DN5o7RqiO1CVX8EN/F/gkCjkUMgVn6hzScpwnJtl2mPR6I9XV1oW8k9O+0A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.19.9", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.9.tgz", + "integrity": "sha512-GThgZPAwOBOsheA2RUlW5UeroRfESwMq/guy8uEe3wJlAOjpOXuSevLRd70NZ37ZrpO6RHGHgEHvPg1h3S1Jug==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.19.9", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.9.tgz", + "integrity": "sha512-Ki6PlzppaFVbLnD8PtlVQfsYw4S9n3eQl87cqgeIw+O3sRr9IghpfSKY62mggdt1yCSZ8QWvTZ9jo9fjDSg9uw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.19.9", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.19.9.tgz", + "integrity": "sha512-MLHj7k9hWh4y1ddkBpvRj2b9NCBhfgBt3VpWbHQnXRedVun/hC7sIyTGDGTfsGuXo4ebik2+3ShjcPbhtFwWDw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.19.9", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.19.9.tgz", + "integrity": "sha512-GQoa6OrQ8G08guMFgeXPH7yE/8Dt0IfOGWJSfSH4uafwdC7rWwrfE6P9N8AtPGIjUzdo2+7bN8Xo3qC578olhg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.19.9", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.19.9.tgz", + "integrity": "sha512-UOozV7Ntykvr5tSOlGCrqU3NBr3d8JqPes0QWN2WOXfvkWVGRajC+Ym0/Wj88fUgecUCLDdJPDF0Nna2UK3Qtg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.19.9", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.19.9.tgz", + "integrity": "sha512-oxoQgglOP7RH6iasDrhY+R/3cHrfwIDvRlT4CGChflq6twk8iENeVvMJjmvBb94Ik1Z+93iGO27err7w6l54GQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.8.tgz", + "integrity": "sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==", + "dependencies": { + "@floating-ui/utils": "^0.2.8" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.12", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.12.tgz", + "integrity": "sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.8" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.8.tgz", + "integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==" + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "license": "MIT" + }, + "node_modules/@popperjs/core": { + "name": "@sxzz/popperjs-es", + "version": "2.11.7", + "resolved": "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz", + "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.8.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.8.0.tgz", + "integrity": "sha512-zdTObFRoNENrdPpnTNnhOljYIcOX7aI7+7wyrSpPFFIOf/nRdedE6IYsjaBE7tjukphh1tMTojgJ7p3lKY8x6Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.8.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.8.0.tgz", + "integrity": "sha512-aiItwP48BiGpMFS9Znjo/xCNQVwTQVcRKkFKsO81m8exrGjHkCBDvm9PHay2kpa8RPnZzzKcD1iQ9KaLY4fPQQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.8.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.8.0.tgz", + "integrity": "sha512-zhNIS+L4ZYkYQUjIQUR6Zl0RXhbbA0huvNIWjmPc2SL0cB1h5Djkcy+RZ3/Bwszfb6vgwUvcVJYD6e6Zkpsi8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.8.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.8.0.tgz", + "integrity": "sha512-A/FAHFRNQYrELrb/JHncRWzTTXB2ticiRFztP4ggIUAfa9Up1qfW8aG2w/mN9jNiZ+HB0t0u0jpJgFXG6BfRTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.8.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.8.0.tgz", + "integrity": "sha512-JsidBnh3p2IJJA4/2xOF2puAYqbaczB3elZDT0qHxn362EIoIkq7hrR43Xa8RisgI6/WPfvb2umbGsuvf7E37A==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.8.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.8.0.tgz", + "integrity": "sha512-hBNCnqw3EVCkaPB0Oqd24bv8SklETptQWcJz06kb9OtiShn9jK1VuTgi7o4zPSt6rNGWQOTDEAccbk0OqJmS+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.8.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.8.0.tgz", + "integrity": "sha512-Fw9ChYfJPdltvi9ALJ9wzdCdxGw4wtq4t1qY028b2O7GwB5qLNSGtqMsAel1lfWTZvf4b6/+4HKp0GlSYg0ahA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.8.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.8.0.tgz", + "integrity": "sha512-BH5xIh7tOzS9yBi8dFrCTG8Z6iNIGWGltd3IpTSKp6+pNWWO6qy8eKoRxOtwFbMrid5NZaidLYN6rHh9aB8bEw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.8.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.8.0.tgz", + "integrity": "sha512-PmvAj8k6EuWiyLbkNpd6BLv5XeYFpqWuRvRNRl80xVfpGXK/z6KYXmAgbI4ogz7uFiJxCnYcqyvZVD0dgFog7Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.8.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.8.0.tgz", + "integrity": "sha512-mdxnlW2QUzXwY+95TuxZ+CurrhgrPAMveDWI97EQlA9bfhR8tw3Pt7SUlc/eSlCNxlWktpmT//EAA8UfCHOyXg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.8.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.8.0.tgz", + "integrity": "sha512-ge7saUz38aesM4MA7Cad8CHo0Fyd1+qTaqoIo+Jtk+ipBi4ATSrHWov9/S4u5pbEQmLjgUjB7BJt+MiKG2kzmA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.8.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.8.0.tgz", + "integrity": "sha512-p9E3PZlzurhlsN5h9g7zIP1DnqKXJe8ZUkFwAazqSvHuWfihlIISPxG9hCHCoA+dOOspL/c7ty1eeEVFTE0UTw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.8.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.8.0.tgz", + "integrity": "sha512-kb4/auKXkYKqlUYTE8s40FcJIj5soOyRLHKd4ugR0dCq0G2EfcF54eYcfQiGkHzjidZ40daB4ulsFdtqNKZtBg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/lodash": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.13.tgz", + "integrity": "sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==" + }, + "node_modules/@types/lodash-es": { + "version": "4.17.12", + "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz", + "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.16", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz", + "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==" + }, + "node_modules/@vitejs/plugin-vue": { + "version": "4.5.2", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.5.2.tgz", + "integrity": "sha512-UGR3DlzLi/SaVBPX0cnSyE37vqxU3O6chn8l0HJNzQzDia6/Au2A4xKv+iIJW8w2daf80G7TYHhi1pAUjdZ0bQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0 || ^5.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.3.11", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.11.tgz", + "integrity": "sha512-h97/TGWBilnLuRaj58sxNrsUU66fwdRKLOLQ9N/5iNDfp+DZhYH9Obhe0bXxhedl8fjAgpRANpiZfbgWyruQ0w==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.23.5", + "@vue/shared": "3.3.11", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.3.11", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.11.tgz", + "integrity": "sha512-zoAiUIqSKqAJ81WhfPXYmFGwDRuO+loqLxvXmfUdR5fOitPoUiIeFI9cTTyv9MU5O1+ZZglJVTusWzy+wfk5hw==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.3.11", + "@vue/shared": "3.3.11" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.3.11", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.11.tgz", + "integrity": "sha512-U4iqPlHO0KQeK1mrsxCN0vZzw43/lL8POxgpzcJweopmqtoYy9nljJzWDIQS3EfjiYhfdtdk9Gtgz7MRXnz3GA==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.23.5", + "@vue/compiler-core": "3.3.11", + "@vue/compiler-dom": "3.3.11", + "@vue/compiler-ssr": "3.3.11", + "@vue/reactivity-transform": "3.3.11", + "@vue/shared": "3.3.11", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.5", + "postcss": "^8.4.32", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.3.11", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.11.tgz", + "integrity": "sha512-Zd66ZwMvndxRTgVPdo+muV4Rv9n9DwQ4SSgWWKWkPFebHQfVYRrVjeygmmDmPewsHyznCNvJ2P2d6iOOhdv8Qg==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.3.11", + "@vue/shared": "3.3.11" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.4", + "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz", + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", + "license": "MIT" + }, + "node_modules/@vue/reactivity": { + "version": "3.3.11", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.11.tgz", + "integrity": "sha512-D5tcw091f0nuu+hXq5XANofD0OXnBmaRqMYl5B3fCR+mX+cXJIGNw/VNawBqkjLNWETrFW0i+xH9NvDbTPVh7g==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.3.11" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.3.11", + "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.11.tgz", + "integrity": "sha512-fPGjH0wqJo68A0wQ1k158utDq/cRyZNlFoxGwNScE28aUFOKFEnCBsvyD8jHn+0kd0UKVpuGuaZEQ6r9FJRqCg==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.23.5", + "@vue/compiler-core": "3.3.11", + "@vue/shared": "3.3.11", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.5" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.3.11", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.11.tgz", + "integrity": "sha512-g9ztHGwEbS5RyWaOpXuyIVFTschclnwhqEbdy5AwGhYOgc7m/q3NFwr50MirZwTTzX55JY8pSkeib9BX04NIpw==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.3.11", + "@vue/shared": "3.3.11" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.3.11", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.11.tgz", + "integrity": "sha512-OlhtV1PVpbgk+I2zl+Y5rQtDNcCDs12rsRg71XwaA2/Rbllw6mBLMi57VOn8G0AjOJ4Mdb4k56V37+g8ukShpQ==", + "license": "MIT", + "dependencies": { + "@vue/runtime-core": "3.3.11", + "@vue/shared": "3.3.11", + "csstype": "^3.1.2" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.3.11", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.11.tgz", + "integrity": "sha512-AIWk0VwwxCAm4wqtJyxBylRTXSy1wCLOKbWxHaHiu14wjsNYtiRCSgVuqEPVuDpErOlRdNnuRgipQfXRLjLN5A==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.3.11", + "@vue/shared": "3.3.11" + }, + "peerDependencies": { + "vue": "3.3.11" + } + }, + "node_modules/@vue/shared": { + "version": "3.3.11", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.11.tgz", + "integrity": "sha512-u2G8ZQ9IhMWTMXaWqZycnK4UthG1fA238CD+DP4Dm4WJi5hdUKKLg0RMRaRpDPNMdkTwIDkp7WtD0Rd9BH9fLw==", + "license": "MIT" + }, + "node_modules/@vueuse/core": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.13.0.tgz", + "integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==", + "dependencies": { + "@types/web-bluetooth": "^0.0.16", + "@vueuse/metadata": "9.13.0", + "@vueuse/shared": "9.13.0", + "vue-demi": "*" + }, + "funding": { + "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==", + "hasInstallScript": 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/@vueuse/metadata": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.13.0.tgz", + "integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-9.13.0.tgz", + "integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==", + "dependencies": { + "vue-demi": "*" + }, + "funding": { + "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==", + "hasInstallScript": 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/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/async-validator": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.6.2", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.6.2.tgz", + "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" + }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/element-plus": { + "version": "2.8.8", + "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.8.8.tgz", + "integrity": "sha512-MLAH1x2PGTnOT7Iwqh9ASgfZhvgqQqrdbxuJH0w2fGjzE4ZjryyLQj24HXoQO7Zon66U3lrYxbdLI57M6OX0qw==", + "license": "MIT", + "dependencies": { + "@ctrl/tinycolor": "^3.4.1", + "@element-plus/icons-vue": "^2.3.1", + "@floating-ui/dom": "^1.0.1", + "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7", + "@types/lodash": "^4.14.182", + "@types/lodash-es": "^4.17.6", + "@vueuse/core": "^9.1.0", + "async-validator": "^4.2.5", + "dayjs": "^1.11.13", + "escape-html": "^1.0.3", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "lodash-unified": "^1.0.2", + "memoize-one": "^6.0.0", + "normalize-wheel-es": "^1.2.0" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/esbuild": { + "version": "0.19.9", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.19.9.tgz", + "integrity": "sha512-U9CHtKSy+EpPsEBa+/A2gMs/h3ylBC0H0KSqIg7tpztHerLi6nrrcoUJAkNCEPumx8yJ+Byic4BVwHgRbN0TBg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.19.9", + "@esbuild/android-arm64": "0.19.9", + "@esbuild/android-x64": "0.19.9", + "@esbuild/darwin-arm64": "0.19.9", + "@esbuild/darwin-x64": "0.19.9", + "@esbuild/freebsd-arm64": "0.19.9", + "@esbuild/freebsd-x64": "0.19.9", + "@esbuild/linux-arm": "0.19.9", + "@esbuild/linux-arm64": "0.19.9", + "@esbuild/linux-ia32": "0.19.9", + "@esbuild/linux-loong64": "0.19.9", + "@esbuild/linux-mips64el": "0.19.9", + "@esbuild/linux-ppc64": "0.19.9", + "@esbuild/linux-riscv64": "0.19.9", + "@esbuild/linux-s390x": "0.19.9", + "@esbuild/linux-x64": "0.19.9", + "@esbuild/netbsd-x64": "0.19.9", + "@esbuild/openbsd-x64": "0.19.9", + "@esbuild/sunos-x64": "0.19.9", + "@esbuild/win32-arm64": "0.19.9", + "@esbuild/win32-ia32": "0.19.9", + "@esbuild/win32-x64": "0.19.9" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.3", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", + "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.0", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "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", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "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==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/immutable": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.4.tgz", + "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "node_modules/lodash-unified": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/lodash-unified/-/lodash-unified-1.0.3.tgz", + "integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==", + "peerDependencies": { + "@types/lodash-es": "*", + "lodash": "*", + "lodash-es": "*" + } + }, + "node_modules/magic-string": { + "version": "0.30.5", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.5.tgz", + "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" + }, + "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==", + "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==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-wheel-es": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz", + "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==" + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.4.32", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.32.tgz", + "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/qs": { + "version": "6.11.2", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rollup": { + "version": "4.8.0", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.8.0.tgz", + "integrity": "sha512-NpsklK2fach5CdI+PScmlE5R4Ao/FSWtF7LkoIrHDxPACY/xshNasPsbpG0VVHxUTbf74tJbVT4PrP8JsJ6ZDA==", + "dev": true, + "license": "MIT", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.8.0", + "@rollup/rollup-android-arm64": "4.8.0", + "@rollup/rollup-darwin-arm64": "4.8.0", + "@rollup/rollup-darwin-x64": "4.8.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.8.0", + "@rollup/rollup-linux-arm64-gnu": "4.8.0", + "@rollup/rollup-linux-arm64-musl": "4.8.0", + "@rollup/rollup-linux-riscv64-gnu": "4.8.0", + "@rollup/rollup-linux-x64-gnu": "4.8.0", + "@rollup/rollup-linux-x64-musl": "4.8.0", + "@rollup/rollup-win32-arm64-msvc": "4.8.0", + "@rollup/rollup-win32-ia32-msvc": "4.8.0", + "@rollup/rollup-win32-x64-msvc": "4.8.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/sass": { + "version": "1.69.5", + "resolved": "https://registry.npmmirror.com/sass/-/sass-1.69.5.tgz", + "integrity": "sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/vite": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/vite/-/vite-5.0.8.tgz", + "integrity": "sha512-jYMALd8aeqR3yS9xlHd0OzQJndS9fH5ylVgWdB+pxTwxLKdO1pgC5Dlb398BUxpfaBxa4M9oT7j1g503Gaj5IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.19.3", + "postcss": "^8.4.32", + "rollup": "^4.2.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vue": { + "version": "3.3.11", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.3.11.tgz", + "integrity": "sha512-d4oBctG92CRO1cQfVBZp6WJAs0n8AK4Xf5fNjQCBeKCvMI1efGQ5E3Alt1slFJS9fZuPcFoiAiqFvQlv1X7t/w==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.3.11", + "@vue/compiler-sfc": "3.3.11", + "@vue/runtime-dom": "3.3.11", + "@vue/server-renderer": "3.3.11", + "@vue/shared": "3.3.11" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-router": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.5.0.tgz", + "integrity": "sha512-HDuk+PuH5monfNuY+ct49mNmkCRK4xJAV9Ts4z9UFc4rzdDnxQLyCMGGc8pKhZhHTVzfanpNwB/lwqevcBwI4w==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.4" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + } + } +} diff --git a/HomeWork-vite/package.json b/HomeWork-vite/package.json new file mode 100644 index 0000000000000000000000000000000000000000..c4885381b3de47a448f0b22c8386b3f01d1f2a9b --- /dev/null +++ b/HomeWork-vite/package.json @@ -0,0 +1,25 @@ +{ + "name": "tool-template-vite", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build && node modifyFile.js", + "preview": "vite preview" + }, + "dependencies": { + "@element-plus/icons-vue": "^2.3.1", + "axios": "^1.6.2", + "element-plus": "^2.8.8", + "lodash": "^4.17.21", + "qs": "^6.11.2", + "vue": "^3.3.11", + "vue-router": "^4.5.0" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^4.5.2", + "sass": "^1.69.5", + "vite": "^5.0.8" + } +} diff --git a/HomeWork-vite/src/App.vue b/HomeWork-vite/src/App.vue new file mode 100644 index 0000000000000000000000000000000000000000..026b17569064756e935f01341df608de8788d230 --- /dev/null +++ b/HomeWork-vite/src/App.vue @@ -0,0 +1,53 @@ + + + diff --git a/HomeWork-vite/src/assets/dog.jpg b/HomeWork-vite/src/assets/dog.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bff3105f177a52fc5897eb2ba989ef67cd5e589d Binary files /dev/null and b/HomeWork-vite/src/assets/dog.jpg differ diff --git a/HomeWork-vite/src/base/constant.js b/HomeWork-vite/src/base/constant.js new file mode 100644 index 0000000000000000000000000000000000000000..d828875f1a2f0933ad4bff1bad5acc9005c8b36f --- /dev/null +++ b/HomeWork-vite/src/base/constant.js @@ -0,0 +1,136 @@ +import _ from 'lodash'; +const AID = '21419389378723787447'; + +const getActToolUrl = () => { + const actToolUrl = window.g_actToolUrl; + if (process.env.NODE_ENV === 'development') { + // 如果是在开发环境,由于actToolUrl是后端的IP和端口,需要替换为前端的IP和端口,这里只需要把这个url的http://localhost:8080/替换为空,前端会自动加上一个BASE_URL。 + const newUrl = actToolUrl.replace(/http(s)?:\/\/[^:]+:\d+/, ''); + return newUrl; + } else { + return actToolUrl; + } +}; +/** + * 是否是同一个部署 + */ +export const isSameDeploy = (gid1, gid2) => { + if (!gid1 || !gid2) { + return false; + } + return ( + Math.floor(parseInt(gid1) / Math.pow(10, 8)) === Math.floor(parseInt(gid2) / Math.pow(10, 8)) + ); +}; + +const getRunToolUrl = () => { + return window.g_runToolUrl; +}; + +const getForwardUrl = () => { + return window.g_forwardUrl; +}; + +const getRtParam = () => { + return window.g_rtParam; +}; + +const RESOURCE_URL = window.g_resourceUrl; + +const USER_ID = window.g_userId; + +const getAccessToken = () => { + return window.g_accessToken; +}; + +const getBandId = () => { + return window.g_bandId; +}; + +const PARAM = window.g_param; + +const CLIENTYPE = window.g_clientType; + +const TOOLID = window.g_toolId; + +const CORE_URL = window.g_coreUrl; + +/** + * 获取吾托帮门户地址 + */ +const GATEWAY_URL = () => { + const domainUrl = _.truncate(getRunToolUrl(), { + separator: 'tre', + omission: '' + }); + return domainUrl; +}; + +const TRE_URL = GATEWAY_URL + '/tre/'; + +const RUN_SYSTEMTOOL_URL = GATEWAY_URL + '/tre/runSystemTool?'; + +/** + * 判断当前设备类型 + */ +const isCurrentClient = (type) => { + const ua = navigator.userAgent; + const isWindowsPhone = /(?:Windows Phone)/.test(ua); + const isSymbian = /(?:SymbianOS)/.test(ua) || isWindowsPhone; + const isAndroid = /(?:Android)/.test(ua); + const isFireFox = /(?:Firefox)/.test(ua); + const isChrome = /(?:Chrome|CriOS)/.test(ua); + // 平板 + const isTablet = + /(?:iPad|PlayBook)/.test(ua) || + (isAndroid && !/(?:Mobile)/.test(ua)) || + (isFireFox && /(?:Tablet)/.test(ua)); + const isPhone = /(?:iPhone)/.test(ua) && !isTablet; + const isPc = !isPhone && !isAndroid && !isSymbian; + const isWx = /(MicroMessenger)/.test(ua); + const isHtml5Plus = /(Html5Plus)/.test(ua); + // 判断是否为微信浏览器 + if (isWx && type === 'wx') { + return true; + } + + if (isPhone && type === 'ios') { + return true; + } + + // 判断是否为安卓系统 + if (type === 'android' && isAndroid) { + return true; + } + + // 判断是否为APP客户端 + if (type === 'app' && (isAndroid || isPhone) && isHtml5Plus) { + return true; + } + + // 判断是否是移动端,移动端泛指APP客户端、移动端网页和微信浏览器 + if (type === 'mobile' && (isAndroid || isPhone || isTablet)) { + return true; + } + + if (type === 'desktop' && isPc) { + return true; + } + return false; +}; + +export { + AID, + CLIENTYPE, + CORE_URL, + GATEWAY_URL, + RUN_SYSTEMTOOL_URL, + TRE_URL, + getAccessToken, + getActToolUrl, + getBandId, + getForwardUrl, + getRtParam, + getRunToolUrl, + isCurrentClient +}; diff --git a/HomeWork-vite/src/components/HelloWorld/index.module.scss b/HomeWork-vite/src/components/HelloWorld/index.module.scss new file mode 100644 index 0000000000000000000000000000000000000000..7b961e67e1451e87519b3a921bed2d2be8edb42f --- /dev/null +++ b/HomeWork-vite/src/components/HelloWorld/index.module.scss @@ -0,0 +1,3 @@ +.result { + color: red; +} diff --git a/HomeWork-vite/src/components/HelloWorld/index.vue b/HomeWork-vite/src/components/HelloWorld/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..35b82ca5271cc67f326caef955b98e5be6c4cf49 --- /dev/null +++ b/HomeWork-vite/src/components/HelloWorld/index.vue @@ -0,0 +1,59 @@ + diff --git a/HomeWork-vite/src/main.js b/HomeWork-vite/src/main.js new file mode 100644 index 0000000000000000000000000000000000000000..a016b4942e390de43d7f68cafc4cd7ec60cefd26 --- /dev/null +++ b/HomeWork-vite/src/main.js @@ -0,0 +1,27 @@ +import { createApp } from 'vue'; +import App from './App.vue'; +import router from './router'; +import ElementPlus from 'element-plus' +import 'element-plus/dist/index.css' +import * as ElementPlusIconsVue from '@element-plus/icons-vue' + +const init = () => { + const app = createApp(App).use(router).use(ElementPlus); + // 全局注册所有 Element Plus 图标 + for (const [key, component] of Object.entries(ElementPlusIconsVue)) { + app.component(key, component); + } + app.mount('#app') +}; + + + +if (process.env.NODE_ENV === 'development') { + // 本地开发需要等待全局变量初始化 + setTimeout(() => { + init(); + }, 2000); +} else { + console.log('初始化app'); + init(); +} diff --git a/HomeWork-vite/src/network/HttpClient.js b/HomeWork-vite/src/network/HttpClient.js new file mode 100644 index 0000000000000000000000000000000000000000..e77a01b1326c48530b5f7cb1605592eec131279a --- /dev/null +++ b/HomeWork-vite/src/network/HttpClient.js @@ -0,0 +1,21 @@ +import axios from 'axios'; +import qs from 'qs'; +import { getActToolUrl } from '@/base/constant'; + +export class HttpClient { + // 熟悉请求后端之后,可按照自己的编码风格进行修改 + static get(action, params = {}) { + params.action = action; + return axios + .get(getActToolUrl(), { params }) + .then((res) => res.data) + .catch((err) => err.response); + } + static post(action, params = {}) { + params.action = action; + return axios + .post(getActToolUrl(), qs.stringify(params)) + .then((res) => res.data) + .catch((err) => err.response); + } +} diff --git a/HomeWork-vite/src/router/index.js b/HomeWork-vite/src/router/index.js new file mode 100644 index 0000000000000000000000000000000000000000..2353eeffeb797ec7b047c1e9d6f04073f0952f93 --- /dev/null +++ b/HomeWork-vite/src/router/index.js @@ -0,0 +1,35 @@ +import { createRouter, createWebHashHistory } from 'vue-router'; +import Home from '@/views/Home/index.vue'; +import HomeWorkManager from '@/views/HomeWorkManager/index.vue'; +import WrongManager from '@/views/WrongManager/index.vue'; +import component from 'element-plus/es/components/tree-select/src/tree-select-option.mjs'; +import uploadHomeWork from '@/views/HomeWorkManager/uploadHomeWork.vue'; +const routes = [ + { + path: '/', + name: 'Home', + component: Home, + }, + { + path: '/HomeWorkManager', + name: 'HomeWorkManager', + component: HomeWorkManager + }, + { + path: '/WrongManager', + name: 'WrongManager', + component: WrongManager + }, + { + path: '/uploadHomeWork', + name: 'uploadHomeWork', + component: uploadHomeWork + } +]; + +const router = createRouter({ + history: createWebHashHistory(), // 最好使用WebHashHistory方式;如果使用WebHistory会非常麻烦,不建议使用这种方式 + routes +}); + +export default router; diff --git a/HomeWork-vite/src/style.css b/HomeWork-vite/src/style.css new file mode 100644 index 0000000000000000000000000000000000000000..bb131d6b8fe5d93269c14fac087a104cc94af508 --- /dev/null +++ b/HomeWork-vite/src/style.css @@ -0,0 +1,79 @@ +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +.card { + padding: 2em; +} + +#app { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/HomeWork-vite/src/type/index.js b/HomeWork-vite/src/type/index.js new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/HomeWork-vite/src/views/Home/Login_Student.vue b/HomeWork-vite/src/views/Home/Login_Student.vue new file mode 100644 index 0000000000000000000000000000000000000000..d527735abd35d116154bef4cbed64eeff24deab1 --- /dev/null +++ b/HomeWork-vite/src/views/Home/Login_Student.vue @@ -0,0 +1,140 @@ + + + + + \ No newline at end of file diff --git a/HomeWork-vite/src/views/Home/index.vue b/HomeWork-vite/src/views/Home/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..c47e162f27f5e0940dc309b650fc364a81e57a4d --- /dev/null +++ b/HomeWork-vite/src/views/Home/index.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/HomeWork-vite/src/views/HomeWorkManager/HomeWorkManger.vue b/HomeWork-vite/src/views/HomeWorkManager/HomeWorkManger.vue new file mode 100644 index 0000000000000000000000000000000000000000..06de0e1b4c48ca23d7699506ce0cd653a585eaeb --- /dev/null +++ b/HomeWork-vite/src/views/HomeWorkManager/HomeWorkManger.vue @@ -0,0 +1,199 @@ + + + + + + \ No newline at end of file diff --git a/HomeWork-vite/src/views/HomeWorkManager/index.vue b/HomeWork-vite/src/views/HomeWorkManager/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..85194b69b0949438e6fd278a7a3f51780a0baafb --- /dev/null +++ b/HomeWork-vite/src/views/HomeWorkManager/index.vue @@ -0,0 +1,9 @@ + + + diff --git a/HomeWork-vite/src/views/HomeWorkManager/uploadHomeWork.vue b/HomeWork-vite/src/views/HomeWorkManager/uploadHomeWork.vue new file mode 100644 index 0000000000000000000000000000000000000000..414c944734b01aed75ec08a00d198a6741eb0b1d --- /dev/null +++ b/HomeWork-vite/src/views/HomeWorkManager/uploadHomeWork.vue @@ -0,0 +1,137 @@ + + + + + \ No newline at end of file diff --git a/HomeWork-vite/src/views/WrongManager/WrongManager.vue b/HomeWork-vite/src/views/WrongManager/WrongManager.vue new file mode 100644 index 0000000000000000000000000000000000000000..8efdbf5de6f2531bcffdf589822b6743cd804934 --- /dev/null +++ b/HomeWork-vite/src/views/WrongManager/WrongManager.vue @@ -0,0 +1,203 @@ + + + + + diff --git a/HomeWork-vite/src/views/WrongManager/index.vue b/HomeWork-vite/src/views/WrongManager/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..ba8591c94473d7cb05d5188c08b79b152abdbc64 --- /dev/null +++ b/HomeWork-vite/src/views/WrongManager/index.vue @@ -0,0 +1,7 @@ + + + \ No newline at end of file diff --git a/HomeWork-vite/text.js b/HomeWork-vite/text.js new file mode 100644 index 0000000000000000000000000000000000000000..fb4ffd3236be8afe6efbf40656b25714609d10a5 --- /dev/null +++ b/HomeWork-vite/text.js @@ -0,0 +1,39 @@ +export const DEV_SCRIPT = ``; + +export const PROD_SCRIPT = ``; + +export const PROD_MAIN_JSP_HEADER = + '<%@ page import="java.util.*" contentType="text/html; charset=utf-8" %>'; diff --git a/HomeWork-vite/vite.config.js b/HomeWork-vite/vite.config.js new file mode 100644 index 0000000000000000000000000000000000000000..650c1158c222ace56259020e8fa60af0e6865052 --- /dev/null +++ b/HomeWork-vite/vite.config.js @@ -0,0 +1,83 @@ +import vue from '@vitejs/plugin-vue'; +import { resolve } from 'path'; +import { defineConfig, mergeConfig } from 'vite'; +import { DEV_SCRIPT, PROD_MAIN_JSP_HEADER, PROD_SCRIPT } from './text'; + +// https://vitejs.dev/config/ +export default defineConfig(({ command }) => { + const common_config = { + plugins: [vue()], + resolve: { + alias: { + '@': resolve(__dirname, './src') + } + } + }; + // 开发环境的配置 + if (command === 'serve') { + // 配置修改HTML代码的插件 + const htmlPlugin = () => { + return { + name: 'html-transform', + transformIndexHtml(html) { + return html.replace(/