Merge remote-tracking branch 'origin/main'

# Conflicts:
#	src/main/java/com/jetbrains/help/util/FileTools.java
This commit is contained in:
藏柏 2025-03-18 14:46:43 +08:00
commit ff87be4161
2 changed files with 16 additions and 12 deletions

View File

@ -3,12 +3,10 @@ package com.jetbrains.help.util;
import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.FileUtil;
import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import org.springframework.boot.system.ApplicationHome; import org.springframework.boot.system.ApplicationHome;
import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.ClassPathResource;
import java.io.File; import java.io.*;
import java.io.IOException;
public interface FileTools { public interface FileTools {
@ -30,14 +28,14 @@ public interface FileTools {
File file = getFile(path); File file = getFile(path);
if (ObjectUtil.isNotNull(application.getSource())) { if (ObjectUtil.isNotNull(application.getSource())) {
ClassPathResource classPathResource = new ClassPathResource(path); ClassPathResource classPathResource = new ClassPathResource(path);
File classPathFile = FileUtil.file(classPathResource.getPath());
if (classPathResource.exists() && !file.exists()) { if (classPathResource.exists() && !file.exists()) {
try { try (InputStream inputStream = classPathResource.getInputStream()) {
FileUtil.writeFromStream(classPathResource.getInputStream(), classPathFile); FileUtil.writeFromStream(inputStream, file);
} catch (Exception e) { } catch (Exception e) {
throw new IllegalArgumentException(CharSequenceUtil.format("{} 文件读取失败!", classPathFile.getPath()), e); throw new IllegalArgumentException(
CharSequenceUtil.format("{} 文件读取失败!", path), e
);
} }
FileUtil.copy(classPathFile, file, true);
} }
} }
return file; return file;

View File

@ -74,16 +74,22 @@ $(document).ready(function() {
return navigator.clipboard.writeText(val); return navigator.clipboard.writeText(val);
} else { } else {
console.log(val); console.log(val);
const scrollX = window.scrollX;
const textArea = document.createElement('textarea') const textArea = document.createElement('textarea')
textArea.value = val textArea.value = val
// 使text area不在viewport同时设置不可见 // 使text area不在viewport同时设置不可见
document.body.appendChild(textArea) document.body.appendChild(textArea)
textArea.focus() textArea.focus()
textArea.select() textArea.select()
return new Promise((res, rej) => { try {
document.execCommand('copy') ? res() : rej() const result = document.execCommand('copy');
textArea.remove() return result ? Promise.resolve() : Promise.reject();
}) } catch (e) {
return Promise.reject(e);
} finally {
textArea.remove();
window.scrollTo(scrollX, 0);
}
} }
}; };