Browse Source

feat:前端页面支持导出文件、类型选择

develop
白凤吉 2 months ago
parent
commit
b1d68229e2
  1. 12
      app/src/main/assets/web/asset-manifest.json
  2. 2
      app/src/main/assets/web/index.html
  3. 4
      app/src/main/assets/web/static/css/main.7779cd83.css
  4. 1
      app/src/main/assets/web/static/css/main.7779cd83.css.map
  5. 23
      app/src/main/java/com/iflytop/profilometer/api/record/RecordApi.java

12
app/src/main/assets/web/asset-manifest.json

@ -1,7 +1,7 @@
{
"files": {
"main.css": "/static/css/main.7779cd83.css",
"main.js": "/static/js/main.e7d7db22.js",
"main.css": "/static/css/main.85138b91.css",
"main.js": "/static/js/main.f84d5562.js",
"static/js/453.e7f11a48.chunk.js": "/static/js/453.e7f11a48.chunk.js",
"static/media/icon_leftR.svg": "/static/media/icon_leftR.76cd3e03bb846b0bacb0a84808f24c36.svg",
"static/media/icon_tab3_u.svg": "/static/media/icon_tab3_u.6d18cbd7c4dc6a54f745fdfcc7716050.svg",
@ -26,12 +26,12 @@
"static/media/icon_bluetooth.svg": "/static/media/icon_bluetooth.a48021d03233ba0570bf3960cddf6a65.svg",
"static/media/power.svg": "/static/media/power.544f6ce9a5b3e930a515cf130f9f9551.svg",
"static/media/icon_check_s_u.svg": "/static/media/icon_check_s_u.2c5e20bec088338dc1cb2161b5cba37d.svg",
"main.7779cd83.css.map": "/static/css/main.7779cd83.css.map",
"main.e7d7db22.js.map": "/static/js/main.e7d7db22.js.map",
"main.85138b91.css.map": "/static/css/main.85138b91.css.map",
"main.f84d5562.js.map": "/static/js/main.f84d5562.js.map",
"453.e7f11a48.chunk.js.map": "/static/js/453.e7f11a48.chunk.js.map"
},
"entrypoints": [
"static/css/main.7779cd83.css",
"static/js/main.e7d7db22.js"
"static/css/main.85138b91.css",
"static/js/main.f84d5562.js"
]
}

2
app/src/main/assets/web/index.html

@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no"/><title>廓形仪</title><script defer="defer" src="/static/js/main.e7d7db22.js"></script><link href="/static/css/main.7779cd83.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>function setupWebViewJavascriptBridge(e){if(window.WebViewJavascriptBridge)return e(WebViewJavascriptBridge);if(/android/i.test(navigator.userAgent))document.addEventListener("WebViewJavascriptBridgeReady",(function(){e(WebViewJavascriptBridge)}),!1);else{if(window.WVJBCallbacks)return window.WVJBCallbacks.push(e);window.WVJBCallbacks=[e];var i=document.createElement("iframe");i.style.display="none",i.src="https://__bridge_loaded__",document.documentElement.appendChild(i),setTimeout((function(){document.documentElement.removeChild(i)}),0)}}setupWebViewJavascriptBridge((function(e){window.bridge=e}));var SyncBridgeJS={call:function(e,i){return prompt("sync/syncBridge/"+e,i)}}</script></body></html>
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no"/><title>廓形仪</title><script defer="defer" src="/static/js/main.f84d5562.js"></script><link href="/static/css/main.85138b91.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>function setupWebViewJavascriptBridge(e){if(window.WebViewJavascriptBridge)return e(WebViewJavascriptBridge);if(/android/i.test(navigator.userAgent))document.addEventListener("WebViewJavascriptBridgeReady",(function(){e(WebViewJavascriptBridge)}),!1);else{if(window.WVJBCallbacks)return window.WVJBCallbacks.push(e);window.WVJBCallbacks=[e];var i=document.createElement("iframe");i.style.display="none",i.src="https://__bridge_loaded__",document.documentElement.appendChild(i),setTimeout((function(){document.documentElement.removeChild(i)}),0)}}setupWebViewJavascriptBridge((function(e){window.bridge=e}));var SyncBridgeJS={call:function(e,i){return prompt("sync/syncBridge/"+e,i)}}</script></body></html>

4
app/src/main/assets/web/static/css/main.7779cd83.css
File diff suppressed because it is too large
View File

1
app/src/main/assets/web/static/css/main.7779cd83.css.map
File diff suppressed because it is too large
View File

23
app/src/main/java/com/iflytop/profilometer/api/record/RecordApi.java

@ -2,15 +2,13 @@ package com.iflytop.profilometer.api.record;
import android.content.Context;
import android.os.Environment;
import android.os.Handler;
import android.os.Looper;
import android.widget.Toast;
import com.iflytop.profilometer.common.constant.SystemConfigType;
import com.iflytop.profilometer.common.enums.DownloadFileType;
import com.iflytop.profilometer.common.result.Result;
import com.iflytop.profilometer.common.utils.FileUtil;
import com.iflytop.profilometer.core.migration.algo.type.XYPoint;
import com.iflytop.profilometer.core.websocket.WebSocketManager;
import com.iflytop.profilometer.dao.ProfileRecordDao;
import com.iflytop.profilometer.dao.ProfileRecordPointSetDao;
import com.iflytop.profilometer.dao.SyncTaskDao;
@ -126,6 +124,10 @@ public class RecordApi {
File exportDir = new File(downloadRoot, "廓形导出");
if (!exportDir.exists() && !exportDir.mkdirs()) {
try {
Map<String, Object> toastMap = new HashMap<>();
toastMap.put("type", "msg-toast");
toastMap.put("data", "目录创建失败,请赋予存储权限");
WebSocketManager.send(JSONUtil.toJsonStr(toastMap));
throw new IOException("Failed to create export directory: " + exportDir);
} catch (IOException e) {
throw new RuntimeException(e);
@ -160,10 +162,10 @@ public class RecordApi {
zos.closeEntry();
}
new Handler(Looper.getMainLooper()).post(() -> {
Toast.makeText(context, "导出成功\n" + "/Download/廓形导出/\n" + zipName, Toast.LENGTH_LONG).show();
});
Map<String, Object> toastMap = new HashMap<>();
toastMap.put("type", "msg-toast");
toastMap.put("data", "导出成功\n" + "/Download/廓形导出/\n" + zipName);
WebSocketManager.send(JSONUtil.toJsonStr(toastMap));
} catch (Exception e) {
throw new RuntimeException(e);
}
@ -179,9 +181,10 @@ public class RecordApi {
String fileName = "export-" + desc.getName() + "." + downloadFileType;
try {
FileUtil.writeTextToDownloadSubDir("廓形导出", fileName, sb.toString());
new Handler(Looper.getMainLooper()).post(() -> {
Toast.makeText(context, "导出成功\n" + "/Download/廓形导出/\n" + fileName, Toast.LENGTH_LONG).show();
});
Map<String, Object> toastMap = new HashMap<>();
toastMap.put("type", "msg-toast");
toastMap.put("data", "导出成功\n" + "/Download/廓形导出/\n" + fileName);
WebSocketManager.send(JSONUtil.toJsonStr(toastMap));
} catch (IOException e) {
throw new RuntimeException(e);
}

Loading…
Cancel
Save