添加了一个下载(保存)文件的功能

This commit is contained in:
cjl_macbook
2018-08-07 20:54:06 +08:00
parent 768a53059f
commit c5fcacd089
3 changed files with 50 additions and 27 deletions

View File

@@ -26,7 +26,6 @@ class Generator {
void refreshTemplate(DefaultTemplate template) {
var fieldList = template.fieldList;
bool needRefresh = false;
fieldList.forEach((filed) {
if (filed is MapField) {
// filed.typeString

View File

@@ -9,6 +9,8 @@ bool useJsonKey = true;
bool isCamelCase = true;
var downloadFileName = "";
const defaultValue = """{
"body": "",
"data": [1],
@@ -45,6 +47,7 @@ void main() {
InputElement eJsonKey = querySelector("#use_json_key");
InputElement eCamelCase = querySelector("#camelCase");
TextAreaElement result = querySelector("#result");
void onJsonKeyChange() {
useJsonKey = eJsonKey.checked;
@@ -78,12 +81,27 @@ void main() {
refreshData();
querySelector("#copy").onClick.listen((event) {
TextAreaElement result = querySelector("#result");
result.focus();
result.setSelectionRange(0, result.textLength);
document.execCommand("copy", null, "");
result.blur();
});
ButtonElement saveButton = querySelector("#save");
saveButton.onClick.listen((event) async {
Blob blob = Blob([result.value]);
// FileSystem _filesystem =
// await window.requestFileSystem(1024 * 1024, persistent: false);
// FileEntry fileEntry = await _filesystem.root.createFile('dart_test.csv');
// FileWriter fw = await fileEntry.createWriter();
// fw.write(blob);
// File file = await fileEntry.file();
AnchorElement saveLink = document.createElementNS("http://www.w3.org/1999/xhtml", "a");
saveLink.href = Url.createObjectUrlFromBlob(blob);
// saveLink.type = "download";
saveLink.download = downloadFileName;
saveLink.click();
});
}
void refreshData() {
@@ -107,6 +125,7 @@ void refreshData() {
var generator = Generator(string, entityClassName);
var dartCode = generator.makeDartCode();
var dartFileName = ("${generator.fileName}.dart");
downloadFileName = dartFileName;
querySelector("#file_name").text = "应该使用的文件名为: $dartFileName";
result.value = dartCode;

View File

@@ -3,10 +3,10 @@
<html>
<head>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta name="scaffolded-by" content="https://github.com/google/stagehand"/>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="scaffolded-by" content="https://github.com/google/stagehand" />
<title>hello_world</title>
<link rel="stylesheet" href="styles.css">
<link rel="icon" href="favicon.ico">
@@ -15,30 +15,35 @@
<body>
<div>
<div id="input" class="textarea">
<div class="top">
将json粘贴至左边
<div>
<div id="input" class="textarea">
<div class="top">
将json粘贴至左边
</div>
<textarea id="json" title="json字符串"></textarea>
<div>
<button id="format">格式化</button>
</div>
</div>
<textarea id="json" title="json字符串"></textarea>
<div>
<button id="format">格式化</button>
<div id="output" class="textarea">
<div class="top"></div>
<div class="result_title">
类名称
<input id="out_entity_name" />
<input type="checkbox" id="use_json_key" />
<span id="check_label">jsonKey annotation</span>
<input type="checkbox" id="camelCase" />
<span id="camelCaseLabel">use camelCase</span>
</div>
<div id="file_name"></div>
<textarea id="result" title="结果"></textarea>
<div>
<button id="copy">复制</button>
<button id="save">下载</button>
</div>
</div>
</div>
<div id="output" class="textarea">
<div class="top"></div>
<div class="result_title">
类名称
<input id="out_entity_name"/>
<input type="checkbox" id="use_json_key"/><span id="check_label">jsonKey annotation</span>
<input type="checkbox" id="camelCase"/><span id="camelCaseLabel">use camelCase</span>
</div>
<div id="file_name"></div>
<textarea id="result" title="结果"></textarea>
<div><button id="copy">复制</button></div>
</div>
</div>
</div>
</body>
</html>