|
@@ -4,6 +4,7 @@ import 'package:fis_common/index.dart';
|
|
|
import 'package:fis_ui/types/widget_builders.dart';
|
|
|
import 'package:flutter/material.dart';
|
|
|
import 'package:get/get.dart';
|
|
|
+import 'package:vitalapp/architecture/app_parameters.dart';
|
|
|
import 'package:vitalapp/components/button.dart';
|
|
|
import 'package:vitalapp/components/search_input.dart';
|
|
|
import 'package:vitalapp/pages/home/controller.dart';
|
|
@@ -22,6 +23,7 @@ import 'package:vitalapp/managers/interfaces/excelData.dart';
|
|
|
import 'package:vitalapp/pages/patient/csv_datas/excel_datas_view.dart';
|
|
|
|
|
|
class HealthCheckLeft extends GetView<HealthCheckListController> {
|
|
|
+ final _excelImportUrl = AppParameters.data.excelImportUrl;
|
|
|
HealthCheckLeft({
|
|
|
super.key,
|
|
|
required this.onRowTap,
|
|
@@ -127,76 +129,8 @@ class HealthCheckLeft extends GetView<HealthCheckListController> {
|
|
|
}
|
|
|
|
|
|
Future<void> _importClick(String key) async {
|
|
|
- final html.FileUploadInputElement uploadInput =
|
|
|
- html.FileUploadInputElement();
|
|
|
- uploadInput.accept = '.xls,.xlsx,.csv';
|
|
|
- uploadInput.click();
|
|
|
-
|
|
|
- await uploadInput.onChange.first;
|
|
|
-
|
|
|
- html.File? file = uploadInput.files?.first;
|
|
|
- String extension = file?.name.split('.').last.toLowerCase() ?? "";
|
|
|
- Store.app.busy = true;
|
|
|
- if (extension == "csv") {
|
|
|
- try {
|
|
|
- List<List<dynamic>> csvData = await readCSVFile(file!);
|
|
|
- var records =
|
|
|
- await Get.find<IExcelDataManager>().CsvDataConvert(csvData, key);
|
|
|
- if (records.isNotEmpty) {
|
|
|
- Get.to(ExcelDatasView(records, key));
|
|
|
- } else {
|
|
|
- PromptBox.toast('无可上传数据');
|
|
|
- }
|
|
|
- } catch (e) {}
|
|
|
- } else if (extension == "xlsx") {
|
|
|
- final reader = html.FileReader();
|
|
|
- reader.onLoadEnd.listen((e) async {
|
|
|
- var bytes = reader.result as List<int>;
|
|
|
- var excel = Excel.decodeBytes(bytes);
|
|
|
-
|
|
|
- for (var table in excel.tables.keys) {
|
|
|
- print(table);
|
|
|
- print(excel.tables[table]?.maxColumns);
|
|
|
- print(excel.tables[table]?.maxRows);
|
|
|
- var records = await Get.find<IExcelDataManager>()
|
|
|
- .ExcelDataConvert(excel.tables[table]!.rows, key);
|
|
|
- Store.app.busy = false;
|
|
|
- if (records.isNotEmpty) {
|
|
|
- Get.to(ExcelDatasView(records, key));
|
|
|
- } else {
|
|
|
- PromptBox.toast('无可上传数据');
|
|
|
- }
|
|
|
- }
|
|
|
- Store.app.busy = false;
|
|
|
- });
|
|
|
- reader.onError.listen((fileEvent) {
|
|
|
- print("Some Error occured while reading the file");
|
|
|
- });
|
|
|
- Store.app.busy = true;
|
|
|
- reader.readAsArrayBuffer(file!);
|
|
|
- }
|
|
|
- Store.app.busy = false;
|
|
|
- }
|
|
|
-
|
|
|
- Future<List<List<dynamic>>> readCSVFile(html.File file) async {
|
|
|
- final reader = html.FileReader();
|
|
|
- final completer = Completer<List<List<dynamic>>>();
|
|
|
-
|
|
|
- reader.onLoadEnd.listen((e) {
|
|
|
-
|
|
|
- String contents;
|
|
|
- try {
|
|
|
- contents = utf8.decode(reader.result as List<int>);
|
|
|
- } catch (e) {
|
|
|
-
|
|
|
- contents = reader.result.toString();
|
|
|
- }
|
|
|
- final List<List<dynamic>> csvData =
|
|
|
- CsvToListConverter().convert(contents);
|
|
|
- completer.complete(csvData);
|
|
|
- });
|
|
|
-
|
|
|
- reader.readAsText(file);
|
|
|
- return completer.future;
|
|
|
+ html.window.open(
|
|
|
+ "$_excelImportUrl?token=${Store.user.token}&templateKey=$key",
|
|
|
+ "ExcelImport");
|
|
|
}
|
|
|
}
|