Commit 25344a34 authored by liaozan's avatar liaozan 🏀

feat: support preview+1

parent b8fb0e76
package com.schbrain.archetype.initializer.response; package com.schbrain.archetype.initializer.response;
import lombok.AllArgsConstructor; import cn.hutool.core.io.FileUtil;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.util.CollectionUtils;
import java.io.File;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
...@@ -13,24 +12,27 @@ import java.util.List; ...@@ -13,24 +12,27 @@ import java.util.List;
* @since 2022/3/20 * @since 2022/3/20
*/ */
@Data @Data
@NoArgsConstructor
@AllArgsConstructor
public class PreviewFileTree { public class PreviewFileTree {
private String fileName; private String fileName;
private String fileContent; private String fileContent;
private Boolean isFile;
private List<PreviewFileTree> children; private List<PreviewFileTree> children;
public PreviewFileTree(String fileName, String fileContent) { public PreviewFileTree(File file) {
this.fileName = fileName; this(file, Collections.emptyList());
this.fileContent = fileContent;
this.children = Collections.emptyList();
} }
public boolean isFile() { public PreviewFileTree(File file, List<PreviewFileTree> children) {
return CollectionUtils.isEmpty(children); this.isFile = file.isFile();
this.fileName = file.getName();
this.children = children;
if (this.isFile) {
this.fileContent = FileUtil.readUtf8String(file);
}
} }
} }
\ No newline at end of file
package com.schbrain.archetype.initializer.service; package com.schbrain.archetype.initializer.service;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ZipUtil; import cn.hutool.core.util.ZipUtil;
import com.schbrain.archetype.initializer.maven.MavenUtils; import com.schbrain.archetype.initializer.maven.MavenUtils;
...@@ -57,7 +56,7 @@ public class ArchetypeService { ...@@ -57,7 +56,7 @@ public class ArchetypeService {
private PreviewFileTree buildFileTree(File root) { private PreviewFileTree buildFileTree(File root) {
File[] fileItems = root.listFiles(); File[] fileItems = root.listFiles();
if (ArrayUtil.isEmpty(fileItems)) { if (ArrayUtil.isEmpty(fileItems)) {
return new PreviewFileTree(root.getName(), null); return new PreviewFileTree(root);
} }
List<PreviewFileTree> children = Arrays.stream(fileItems) List<PreviewFileTree> children = Arrays.stream(fileItems)
.map(fileItem -> { .map(fileItem -> {
...@@ -65,17 +64,13 @@ public class ArchetypeService { ...@@ -65,17 +64,13 @@ public class ArchetypeService {
if (fileItem.isDirectory()) { if (fileItem.isDirectory()) {
childrenFileTree = buildFileTree(fileItem); childrenFileTree = buildFileTree(fileItem);
} else { } else {
String fileContent = FileUtil.readUtf8String(fileItem); childrenFileTree = new PreviewFileTree(fileItem);
childrenFileTree = new PreviewFileTree(fileItem.getName(), fileContent);
} }
return childrenFileTree; return childrenFileTree;
}) })
.sorted(Comparator.comparing(PreviewFileTree::isFile)) .sorted(Comparator.comparing(PreviewFileTree::getIsFile))
.collect(Collectors.toList()); .collect(Collectors.toList());
PreviewFileTree fileTree = new PreviewFileTree(); return new PreviewFileTree(root, children);
fileTree.setFileName(root.getName());
fileTree.setChildren(children);
return fileTree;
} }
private File getGeneratedFiles(String id) throws FileNotFoundException { private File getGeneratedFiles(String id) throws FileNotFoundException {
......
...@@ -28,15 +28,6 @@ ...@@ -28,15 +28,6 @@
</template> </template>
</el-dialog> </el-dialog>
<el-dialog v-model="fileContentDialogVisible" title="预览" width="80%">
<div v-html="fileContent"></div>
<template #footer>
<span class="dialog-footer">
<el-button type="primary" @click="fileContentDialogVisible = false">关闭</el-button>
</span>
</template>
</el-dialog>
</div> </div>
</template> </template>
...@@ -90,10 +81,7 @@ export default { ...@@ -90,10 +81,7 @@ export default {
const reader = new FileReader(); const reader = new FileReader();
reader.readAsText(error.data, 'utf-8'); reader.readAsText(error.data, 'utf-8');
reader.onload = function () { reader.onload = function () {
ElMessageBox.alert(JSON.parse(reader.result).message, '提示', { ElMessageBox.alert(JSON.parse(reader.result).message, '提示', {confirmButtonText: '确定'})
confirmButtonText: '确定'
}
)
} }
}) })
}, },
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment