From 9757022fd559a5f996ae986647bbd8d13fc8ad6c Mon Sep 17 00:00:00 2001
From: carson_git <543983849@qq.com>
Date: Mon, 11 Jan 2021 22:53:50 +0800
Subject: [PATCH 1/2]
---
py/pdcopyist/src/controllers/common.py | 4 +
.../src/controllers/cusFuns_controller.py | 6 +-
.../src/controllers/loaddata_controller.py | 25 ++++-
.../src/controllers/loaddata_model.py | 85 ++++++++++++++
py/pdcopyist/src/core/Proxy.py | 6 +-
.../{cusFuns/core/Args.py => core/UIArgs.py} | 57 ++++++----
.../src/cusFuns/columnNameChanger/index.py | 2 +-
.../src/cusFuns/columnRemover/index.py | 2 +-
.../src/cusFuns/core/DecoratorFuns.py | 2 +-
py/pdcopyist/src/cusFuns/core/UIModl.py | 10 +-
.../src/cusFuns/exportFile/index_csv.py | 2 +-
.../src/cusFuns/exportFile/index_excel.py | 2 +-
.../src/cusFuns/exportFile/index_feather.py | 2 +-
py/pdcopyist/src/cusFuns/typeChanger/index.py | 2 +-
py/test_json.json | 36 ++++++
ui/src/api/index.ts | 19 +++-
ui/src/applications/index.ts | 27 +++--
ui/src/components/Commons/CustomizeItem.tsx | 37 +++++--
.../FunctionTabs/FileUpload/FileModal.vue | 82 ++++++++++++++
.../FunctionTabs/FileUpload/FileUpload.ts | 46 ++++----
.../FunctionTabs/FileUpload/Modal.ts | 24 ----
.../FunctionTabs/FileUpload/index.vue | 104 ++++++++----------
ui/src/mock/dataSource/index.ts | 6 +
ui/src/mock/dataSource/ui_args.json | 36 ++++++
ui/src/mock/index.ts | 2 +-
ui/src/models/CusFuns.ts | 10 +-
ui/src/models/DataLoadModel.ts | 71 ++----------
ui/src/models/UIArgs.ts | 12 ++
ui/src/store/DataLoadStore.ts | 79 +++++++------
29 files changed, 513 insertions(+), 285 deletions(-)
create mode 100644 py/pdcopyist/src/controllers/loaddata_model.py
rename py/pdcopyist/src/{cusFuns/core/Args.py => core/UIArgs.py} (53%)
create mode 100644 py/test_json.json
create mode 100644 ui/src/components/FunctionTabs/FileUpload/FileModal.vue
delete mode 100644 ui/src/components/FunctionTabs/FileUpload/Modal.ts
create mode 100644 ui/src/mock/dataSource/index.ts
create mode 100644 ui/src/mock/dataSource/ui_args.json
create mode 100644 ui/src/models/UIArgs.ts
diff --git a/py/pdcopyist/src/controllers/common.py b/py/pdcopyist/src/controllers/common.py
index 1d09707..7445dfb 100644
--- a/py/pdcopyist/src/controllers/common.py
+++ b/py/pdcopyist/src/controllers/common.py
@@ -5,6 +5,10 @@ import flask
import pandas as pd
+def to_json(obj):
+ return flask.json.dumps(obj, default=json_converter)
+
+
def df2json(df: pd.DataFrame, head_tail_num=10):
ret = None
diff --git a/py/pdcopyist/src/controllers/cusFuns_controller.py b/py/pdcopyist/src/controllers/cusFuns_controller.py
index 7ee8174..f6971ab 100644
--- a/py/pdcopyist/src/controllers/cusFuns_controller.py
+++ b/py/pdcopyist/src/controllers/cusFuns_controller.py
@@ -24,8 +24,7 @@ def cus_fun():
def get_cus_funcs_desc():
# auto_register(base_path , 'src/cusFuns')
ret = ProxyManager.get().get_cus_funcs_desc()
- ret = flask.json.dumps(ret, default=json_converter)
- return ret
+ return common.to_json(ret)
@app.route('/model', methods=['get'])
@@ -34,8 +33,7 @@ def get_cus_funcs_ui_model():
uid = str(request.args.get('uid'))
ret = ProxyManager.get().get_ui_model(uid)
- ret = flask.json.dumps(ret, default=json_converter)
- return ret
+ return common.to_json(ret)
@app.route('/input', methods=['post'])
diff --git a/py/pdcopyist/src/controllers/loaddata_controller.py b/py/pdcopyist/src/controllers/loaddata_controller.py
index aecabde..77c01c8 100644
--- a/py/pdcopyist/src/controllers/loaddata_controller.py
+++ b/py/pdcopyist/src/controllers/loaddata_controller.py
@@ -1,5 +1,10 @@
import json
+from pdcopyist.src.core.UIArgs import Content
+from typing import List
+
+from werkzeug.datastructures import FileStorage
+from pdcopyist.src.controllers.loaddata_model import UIJsonModel
import flask
from flask import request, Blueprint
import pandas as pd
@@ -9,11 +14,19 @@ from pdcopyist.src.controllers import common
app = Blueprint('loaddata', __name__)
-# @app.route('/get_file_args/ext=', methods=['get'])
-# def get_file_args(ext: str):
-# print(ext)
-# print(request.values.get('ext'))
-# return 'done'
+@app.route('/ui_args', methods=['post'])
+def get_ui_args():
+ '''
+ 根据文件后缀名,返回界面所需内容
+ '''
+ file: FileStorage = flask.request.files.get('file')
+ ext = flask.request.form['ext']
+
+ model = UIJsonModel.get_model(file, ext)
+ ret = model.to_args()
+ ret = common.to_json(ret)
+
+ return ret
@app.route('/file', methods=['post'])
@@ -23,7 +36,7 @@ def upload_file():
ext = flask.request.form['ext']
filename = flask.request.form['file_name']
- args = json.loads(flask.request.form['args'])
+ args: List[Content] = json.loads(flask.request.form['args'])
# todo:根据不同情况做处理
px = ProxyManager.get()
diff --git a/py/pdcopyist/src/controllers/loaddata_model.py b/py/pdcopyist/src/controllers/loaddata_model.py
new file mode 100644
index 0000000..c012a8c
--- /dev/null
+++ b/py/pdcopyist/src/controllers/loaddata_model.py
@@ -0,0 +1,85 @@
+
+
+from werkzeug.datastructures import FileStorage
+from pdcopyist.src.core import UIArgs
+from pdcopyist.src.core.UIArgs import AbcArgs, Content
+from pdcopyist.src.helper.utils import CanJson
+from typing import List
+
+
+class DataArgs(CanJson):
+
+ def __init__(self, model_type) -> None:
+ self.model_type = model_type.__name__
+ self.contents: List[Content] = []
+
+ def append_arg(self, args: AbcArgs):
+ self.contents.append(args.to_content())
+
+
+class UIJsonModel(object):
+
+ @staticmethod
+ def get_model(file: FileStorage, file_ext: str) -> 'UIJsonModel':
+ if file_ext in ['xlsx', 'xls', 'xlsm']:
+ return ExcelUIJsonModel(file, file_ext)
+
+ if file_ext in ['csv']:
+ return CsvUIJsonModel(file, file_ext)
+
+ raise Exception('not support file')
+
+ def __init__(self, file: FileStorage, file_ext: str) -> None:
+ self.file = file
+ self.file_ext = file_ext
+
+ def handler(self, **kwargs):
+ raise NotImplementedError
+
+ def to_args(self) -> DataArgs:
+ raise NotImplementedError
+
+
+class ExcelUIJsonModel(UIJsonModel):
+
+ def __init__(self, file, file_ext: str) -> None:
+ super().__init__(file, file_ext)
+
+ def _get_sheet_names(self, file):
+ import pandas as pd
+ xl = pd.ExcelFile(file)
+ return xl.sheet_names
+
+ def to_args(self) -> DataArgs:
+ pass
+ da = DataArgs(ExcelUIJsonModel)
+ da.append_arg(UIArgs.Input(
+ '文件名:', enable=False, default=self.file.filename))
+ da.append_arg(UIArgs.Input('后缀:', enable=False, default=self.file_ext))
+ da.append_arg(UIArgs.Select(
+ '选择工作表:', self._get_sheet_names(self.file), var_name='sheet_name'))
+
+ return da
+
+ def handler(self, file: FileStorage, **kwargs):
+ pass
+
+
+class CsvUIJsonModel(UIJsonModel):
+
+ def __init__(self, file, file_ext: str) -> None:
+ super().__init__(file, file_ext)
+
+ def to_args(self) -> DataArgs:
+ pass
+ da = DataArgs(CsvUIJsonModel)
+ da.append_arg(UIArgs.Input(
+ '文件名:', enable=False, default=str(self.file)))
+ da.append_arg(UIArgs.Input('后缀:', enable=False, default=self.file_ext))
+ da.append_arg(UIArgs.Select(
+ '编码:', source=['utf8', 'gb2312'], var_name='encoding'))
+
+ return da
+
+ def handler(self, **kwargs):
+ raise NotImplementedError
diff --git a/py/pdcopyist/src/core/Proxy.py b/py/pdcopyist/src/core/Proxy.py
index 383b2f4..ad33fcd 100644
--- a/py/pdcopyist/src/core/Proxy.py
+++ b/py/pdcopyist/src/core/Proxy.py
@@ -108,14 +108,14 @@ class ProxyManager(object):
def __init__(self) -> None:
self.df_proxy = CallerProxy()
self.pd_read_proxy = CallerProxy()
- self.source_cache: pd.DataFrame = None
- self.last_df_cache = None
+ self.source_cache: pd.DataFrame = pd.DataFrame()
+ self.last_df_cache: pd.DataFrame = pd.DataFrame()
def _get_all_proxys(self) -> Iterable[CallerProxy]:
yield self.pd_read_proxy
yield self.df_proxy
- def get_last_df_cache(self):
+ def get_last_df_cache(self) -> pd.DataFrame:
return self.last_df_cache
@staticmethod
diff --git a/py/pdcopyist/src/cusFuns/core/Args.py b/py/pdcopyist/src/core/UIArgs.py
similarity index 53%
rename from py/pdcopyist/src/cusFuns/core/Args.py
rename to py/pdcopyist/src/core/UIArgs.py
index f38847a..0017a47 100644
--- a/py/pdcopyist/src/cusFuns/core/Args.py
+++ b/py/pdcopyist/src/core/UIArgs.py
@@ -1,9 +1,19 @@
-import pandas as pd
+from pdcopyist.src.helper.utils import CanJson
from pdcopyist.src.core import Proxy
+import pandas as pd
from typing import Callable, Iterable
-from pdcopyist.src.cusFuns.core.UIModl import Content
+
+
+class Content(CanJson):
+ def __init__(self, title: str, type: str, var_name: str, enable=True, source=None, defaultValue=None) -> None:
+ self.title = title
+ self.type = type
+ self.var_name = var_name
+ self.enable = enable
+ self.source = source
+ self.defaultValue = defaultValue
class AbcArgs(object):
@@ -12,11 +22,12 @@ class AbcArgs(object):
"""
pass
- def __init__(self, title, default=None, required=True, to_content_overwrite: Callable = None) -> None:
+ def __init__(self, title, var_name=None, enable=True, default=None, required=True, to_content_overwrite: Callable = None) -> None:
self.title = title
self.default = default
self.required = required
- self.var_name: str = None
+ self.var_name: str = var_name
+ self.enable = enable
self.to_content_overwrite = to_content_overwrite
def set_var_name(self, var_name) -> 'AbcArgs':
@@ -32,11 +43,12 @@ class AbcArgs(object):
class ColumnSelect(AbcArgs):
- def __init__(self, title, default=None, required=True) -> None:
- super().__init__(title, default=default, required=required)
+ def __init__(self, title, var_name=None, enable=True, default=None, required=True, to_content_overwrite: Callable = None) -> None:
+ super().__init__(title, var_name=var_name, enable=enable, default=default,
+ required=required, to_content_overwrite=to_content_overwrite)
def to_content(self) -> Content:
- ct = Content(self.title, 'select', self.var_name,
+ ct = Content(self.title, 'select', self.var_name, enable=self.enable,
source='data_columns', defaultValue=self.default)
return ct
@@ -46,16 +58,19 @@ class ColumnSelect(AbcArgs):
class Input(AbcArgs):
- def __init__(self, title, placeholder=None, default=None, required=True) -> None:
- super().__init__(title, default=default, required=required)
+ def __init__(self, title, var_name=None, placeholder=None, enable=True, default=None, required=True, to_content_overwrite: Callable = None) -> None:
+ super().__init__(title, var_name=var_name, enable=enable, default=default,
+ required=required, to_content_overwrite=to_content_overwrite)
self.placeholder = placeholder
def to_content(self) -> Content:
if self.to_content_overwrite:
return self.to_content_overwrite()
- ct = Content(self.title, 'input', self.var_name,
+ ct = Content(self.title, 'input', self.var_name, enable=self.enable,
defaultValue=self.default)
+
+ ct.placeholder = self.placeholder
return ct
def to_rule(self):
@@ -64,8 +79,8 @@ class Input(AbcArgs):
class Select(AbcArgs):
- def __init__(self, title, source, default=None, required=True) -> None:
- super().__init__(title, default=default, required=required)
+ def __init__(self, title, source, var_name=None, default=None, required=True) -> None:
+ super().__init__(title, var_name=var_name, default=default, required=required)
if isinstance(source, Iterable):
source = [{'value': i, 'text': str(v)}
@@ -76,7 +91,7 @@ class Select(AbcArgs):
if self.to_content_overwrite:
return self.to_content_overwrite()
- ct = Content(self.title, 'select', self.var_name,
+ ct = Content(self.title, 'select', self.var_name, enable=self.enable,
source=self.source, defaultValue=self.default)
return ct
@@ -86,22 +101,22 @@ class Select(AbcArgs):
class ColumnWithTypeSelect(AbcArgs):
- def __init__(self, title, default=None, required=True) -> None:
- super().__init__(title, default=default, required=required)
+ def __init__(self, title, var_name=None, default=None, required=True) -> None:
+ super().__init__(title, var_name=var_name, default=default, required=required)
def get_value(self, index: int):
- df: pd.DataFrame = Proxy.ProxyManager.get().get_last_df_cache()
+ df = Proxy.ProxyManager.get().get_last_df_cache()
col = str(df.columns[index])
return col
def to_content(self) -> Content:
- df: pd.DataFrame = Proxy.ProxyManager.get().get_last_df_cache()
+ df = Proxy.ProxyManager.get().get_last_df_cache()
cols = [f'{name}({t})' for name, t in zip(df.columns, df.dtypes)]
source = [{'value': i, 'text': str(v)}
for i, v in enumerate(cols)]
- ct = Content(self.title, 'select', self.var_name,
+ ct = Content(self.title, 'select', self.var_name, enable=self.enable,
source=source, defaultValue=self.default)
return ct
@@ -111,14 +126,14 @@ class ColumnWithTypeSelect(AbcArgs):
class Switch(AbcArgs):
- def __init__(self, title, default=None, required=True) -> None:
- super().__init__(title, default=default, required=required)
+ def __init__(self, title, var_name=None, default=None, required=True) -> None:
+ super().__init__(title, var_name=var_name, default=default, required=required)
def to_content(self) -> Content:
if self.to_content_overwrite:
return self.to_content_overwrite()
- ct = Content(self.title, 'switch', self.var_name,
+ ct = Content(self.title, 'switch', self.var_name, enable=self.enable,
defaultValue=self.default)
return ct
diff --git a/py/pdcopyist/src/cusFuns/columnNameChanger/index.py b/py/pdcopyist/src/cusFuns/columnNameChanger/index.py
index 953c555..ad95567 100644
--- a/py/pdcopyist/src/cusFuns/columnNameChanger/index.py
+++ b/py/pdcopyist/src/cusFuns/columnNameChanger/index.py
@@ -1,6 +1,6 @@
import importlib
from pdcopyist.src.cusFuns.core.DecoratorFuns import dt_handle_func, dt_args, dt_source_code
-from pdcopyist.src.cusFuns.core import Args as ty
+from pdcopyist.src.core import UIArgs as ty
import pandas as pd
diff --git a/py/pdcopyist/src/cusFuns/columnRemover/index.py b/py/pdcopyist/src/cusFuns/columnRemover/index.py
index 44c93c3..929d619 100644
--- a/py/pdcopyist/src/cusFuns/columnRemover/index.py
+++ b/py/pdcopyist/src/cusFuns/columnRemover/index.py
@@ -1,5 +1,5 @@
from pdcopyist.src.cusFuns.core.DecoratorFuns import dt_handle_func, dt_args
-from pdcopyist.src.cusFuns.core import Args as ty
+from pdcopyist.src.core import UIArgs as ty
import pandas as pd
diff --git a/py/pdcopyist/src/cusFuns/core/DecoratorFuns.py b/py/pdcopyist/src/cusFuns/core/DecoratorFuns.py
index fb525d8..f65b009 100644
--- a/py/pdcopyist/src/cusFuns/core/DecoratorFuns.py
+++ b/py/pdcopyist/src/cusFuns/core/DecoratorFuns.py
@@ -4,7 +4,7 @@ from typing import Any, Callable, List
from pdcopyist.src.cusFuns.core.UIModl import FunModel
-from pdcopyist.src.cusFuns.core.Args import AbcArgs
+from pdcopyist.src.core.UIArgs import AbcArgs
class CusFunsWrapper(object):
diff --git a/py/pdcopyist/src/cusFuns/core/UIModl.py b/py/pdcopyist/src/cusFuns/core/UIModl.py
index d6f31d0..c38481d 100644
--- a/py/pdcopyist/src/cusFuns/core/UIModl.py
+++ b/py/pdcopyist/src/cusFuns/core/UIModl.py
@@ -1,19 +1,11 @@
+from pdcopyist.src.core.UIArgs import Content
from typing import Dict, List
from pdcopyist.src.helper.utils import CanJson
-class Content(CanJson):
- def __init__(self, title: str, type: str, var_name: str, source=None, defaultValue=None) -> None:
- self.title = title
- self.type = type
- self.var_name = var_name
- self.source = source
- self.defaultValue = defaultValue
-
-
class FunModel(CanJson):
def __init__(self, fun_name: str) -> None:
diff --git a/py/pdcopyist/src/cusFuns/exportFile/index_csv.py b/py/pdcopyist/src/cusFuns/exportFile/index_csv.py
index 4a031eb..3625f51 100644
--- a/py/pdcopyist/src/cusFuns/exportFile/index_csv.py
+++ b/py/pdcopyist/src/cusFuns/exportFile/index_csv.py
@@ -1,5 +1,5 @@
from pdcopyist.src.cusFuns.core.DecoratorFuns import dt_handle_func, dt_args, dt_source_code
-from pdcopyist.src.cusFuns.core import Args as ty
+from pdcopyist.src.core import UIArgs as ty
import pandas as pd
m_encoding = ['utf8', 'gb2312', 'gbk']
diff --git a/py/pdcopyist/src/cusFuns/exportFile/index_excel.py b/py/pdcopyist/src/cusFuns/exportFile/index_excel.py
index 75dbad3..c26311e 100644
--- a/py/pdcopyist/src/cusFuns/exportFile/index_excel.py
+++ b/py/pdcopyist/src/cusFuns/exportFile/index_excel.py
@@ -1,5 +1,5 @@
from pdcopyist.src.cusFuns.core.DecoratorFuns import dt_handle_func, dt_args, dt_source_code
-from pdcopyist.src.cusFuns.core import Args as ty
+from pdcopyist.src.core import UIArgs as ty
import pandas as pd
diff --git a/py/pdcopyist/src/cusFuns/exportFile/index_feather.py b/py/pdcopyist/src/cusFuns/exportFile/index_feather.py
index 088dbf4..cac412d 100644
--- a/py/pdcopyist/src/cusFuns/exportFile/index_feather.py
+++ b/py/pdcopyist/src/cusFuns/exportFile/index_feather.py
@@ -1,5 +1,5 @@
from pdcopyist.src.cusFuns.core.DecoratorFuns import dt_handle_func, dt_args, dt_source_code
-from pdcopyist.src.cusFuns.core import Args as ty
+from pdcopyist.src.core import UIArgs as ty
import pandas as pd
diff --git a/py/pdcopyist/src/cusFuns/typeChanger/index.py b/py/pdcopyist/src/cusFuns/typeChanger/index.py
index 9828d3f..e7d9c9a 100644
--- a/py/pdcopyist/src/cusFuns/typeChanger/index.py
+++ b/py/pdcopyist/src/cusFuns/typeChanger/index.py
@@ -1,5 +1,5 @@
from pdcopyist.src.cusFuns.core.DecoratorFuns import dt_handle_func, dt_args, dt_source_code
-from pdcopyist.src.cusFuns.core import Args as ty
+from pdcopyist.src.core import UIArgs as ty
import pandas as pd
diff --git a/py/test_json.json b/py/test_json.json
new file mode 100644
index 0000000..541208e
--- /dev/null
+++ b/py/test_json.json
@@ -0,0 +1,36 @@
+{
+ "contents": [
+ {
+ "defaultValue": "\\u65b0\\u5efa Microsoft Excel \\u5de5\\u4f5c\\u8868.xlsx",
+ "enable": false,
+ "placeholder": null,
+ "source": null,
+ "title": "\\u6587\\u4ef6\\u540d\\uff1a",
+ "type": "input",
+ "var_name": null
+ },
+ {
+ "defaultValue": "xlsx",
+ "enable": false,
+ "placeholder": null,
+ "source": null,
+ "title": "\\u540e\\u7f00\\uff1a",
+ "type": "input",
+ "var_name": null
+ },
+ {
+ "defaultValue": null,
+ "enable": true,
+ "source": [
+ {
+ "text": "Sheet1",
+ "value": 0
+ }
+ ],
+ "title": "\\u9009\\u62e9\\u5de5\\u4f5c\\u8868\\uff1a",
+ "type": "select",
+ "var_name": "sheet_name"
+ }
+ ],
+ "model_type": "ExcelUIJsonModel"
+}
\ No newline at end of file
diff --git a/ui/src/api/index.ts b/ui/src/api/index.ts
index 17a566f..4fc37c8 100644
--- a/ui/src/api/index.ts
+++ b/ui/src/api/index.ts
@@ -2,7 +2,7 @@ import { CmdResult } from "@/models/PandasCmdModel";
import axios, { AxiosRequestConfig } from "axios";
import * as DfFilters from "@/models/DfFilters";
-import { FileArgsType, UploadFile } from '@/models/DataLoadModel';
+import { UserInputRet, DataArgs, UploadFile } from '@/models/DataLoadModel';
import { GroupbyModel } from '@/models/GroupbyModel';
import { Command } from '@/models/CommanderModel';
import { TableHandle } from '@/models/TableHandleModel';
@@ -25,7 +25,22 @@ async function post(url: string, data?: any, config?: AxiosRequestConfig | undef
}
-export async function uploadFile(file: UploadFile, args: FileArgsType) {
+export async function getFileUiArgs(file: UploadFile) {
+ const param = new FormData();
+ param.append("file", file.file);
+
+ param.append('file_name', file.file.name)
+ param.append('ext', file.getFileExt())
+
+ const config = {
+ headers: { "Content-Type": "multipart/form-data" },
+ };
+
+ const ret = await axios.post('api/data_source/ui_args', param, config)
+ return ret.data as DataArgs
+}
+
+export async function uploadFile(file: UploadFile, args: UserInputRet) {
const param = new FormData();
param.append("file", file.file);
diff --git a/ui/src/applications/index.ts b/ui/src/applications/index.ts
index 8b98b3a..81a47cb 100644
--- a/ui/src/applications/index.ts
+++ b/ui/src/applications/index.ts
@@ -11,7 +11,6 @@ import PdCmdStore from "@/store/PandasCmdStore";
import { FilterList } from '@/models/DfFilters';
-import DataLoadStore from "@/store/DataLoadStore";
import CodeBuilderStore from '@/store/CodeBuilderStore';
import PandasCmdStore from '@/store/PandasCmdStore';
import { GroupbyModel } from '@/models/GroupbyModel';
@@ -19,6 +18,7 @@ import CommandStore from '@/store/CommandStore';
import { TableHandle } from '@/models/TableHandleModel';
import { CusFunction } from "@/models/CustomizeFunctionApiModel";
import { CusFunInputRet } from "@/models/CusFuns";
+import { UploadFile, UserInputRet } from "@/models/DataLoadModel";
function initApp() {
@@ -48,14 +48,27 @@ async function updateForPandasCmd(ret: CmdResult,
}
-export async function loadDataFromFile() {
- let dls = DataLoadStore.getStateReadonly()
+// export async function loadDataFromFile() {
+// let dls = DataLoadStore.getStateReadonly()
- let ret = await api.uploadFile(dls.File, dls.Args)
- await updateForPandasCmd(ret)
- // initApp()
+// let ret = await api.uploadFile(dls.File, dls.Args)
+// await updateForPandasCmd(ret)
+// // initApp()
- await updateCodeStore()
+// await updateCodeStore()
+// }
+
+
+export async function getFileUiArgs(file: File) {
+ let ret = await api.getFileUiArgs(new UploadFile(file))
+ return ret
+}
+
+export async function uploadFile(file: File, input: UserInputRet) {
+ let ret = await api.uploadFile(new UploadFile(file), input)
+ await updateForPandasCmd(ret, async () => {
+ await updateCodeStore()
+ })
}
export async function filterByPandasQeury(queryString: string) {
diff --git a/ui/src/components/Commons/CustomizeItem.tsx b/ui/src/components/Commons/CustomizeItem.tsx
index 284409f..604193d 100644
--- a/ui/src/components/Commons/CustomizeItem.tsx
+++ b/ui/src/components/Commons/CustomizeItem.tsx
@@ -1,6 +1,6 @@
import DfStore from "@/store/DfStore";
import { defineComponent, PropType, Ref } from "vue";
-import * as cfModel from "@/models/CusFuns";
+import * as uiArgs from "@/models/UIArgs";
type optType = {
value: string;
@@ -11,7 +11,7 @@ export default defineComponent({
name: "CustomizeItem",
props: {
typeMessage: {
- type: Object as PropType,
+ type: Object as PropType,
required: true,
},
@@ -43,8 +43,10 @@ export default defineComponent({
return (
);
}
@@ -60,13 +62,21 @@ export default defineComponent({
);
opts = createOptsFromSource(colsInfos, (v) => (
- {v.text}
+
+ {v.text}
+
));
} else {
opts = createOptsFromSource(
this.$props.typeMessage.source,
(v) => (
-
+
{v.text}
)
@@ -79,6 +89,7 @@ export default defineComponent({
return (
@@ -94,6 +105,7 @@ export default defineComponent({
return (
(
-
+
{v.text}
)
@@ -118,6 +134,7 @@ export default defineComponent({
return (
@@ -133,6 +150,7 @@ export default defineComponent({
return (
(
-
+
{v.text}
)
@@ -156,6 +178,7 @@ export default defineComponent({
return (
+
+
+
+
+
+
+
+
+
+ 加载
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ui/src/components/FunctionTabs/FileUpload/FileUpload.ts b/ui/src/components/FunctionTabs/FileUpload/FileUpload.ts
index b80e367..6d42153 100644
--- a/ui/src/components/FunctionTabs/FileUpload/FileUpload.ts
+++ b/ui/src/components/FunctionTabs/FileUpload/FileUpload.ts
@@ -1,37 +1,35 @@
-import { reactive, Ref, ref } from "vue";
-import * as apps from "@/applications";
+// import { reactive, Ref, ref } from "vue";
+// import * as apps from "@/applications";
-import DataLoadStore from "@/store/DataLoadStore";
+// function useFileload() {
+// let fileArgsModalShowed = ref(false)
+// let loading = ref(false)
-function useFileload() {
- let fileArgsModalShowed = ref(false)
- let loading = ref(false)
+// function beforeUpload(file: File) {
+// DataLoadStore.setFile(file)
+// fileArgsModalShowed.value = true
+// return false
+// }
- function beforeUpload(file: File) {
- DataLoadStore.setFile(file)
- fileArgsModalShowed.value = true
- return false
- }
+// async function onOk() {
+// loading.value = true
+// await apps.loadDataFromFile()
+// loading.value = false
+// fileArgsModalShowed.value = false
+// }
- async function onOk() {
- loading.value = true
- await apps.loadDataFromFile()
- loading.value = false
- fileArgsModalShowed.value = false
- }
+// return {
+// beforeUpload,
+// fileArgsModalShowed, onOk, loading
+// }
+// }
- return {
- beforeUpload,
- fileArgsModalShowed, onOk, loading
- }
-}
-
-export default useFileload
\ No newline at end of file
+// export default useFileload
\ No newline at end of file
diff --git a/ui/src/components/FunctionTabs/FileUpload/Modal.ts b/ui/src/components/FunctionTabs/FileUpload/Modal.ts
deleted file mode 100644
index 14fbb19..0000000
--- a/ui/src/components/FunctionTabs/FileUpload/Modal.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import { reactive, ref } from "vue";
-import * as apps from "@/applications";
-import { UploadFile } from '@/models/UploadFile';
-
-
-export default function useModal(file: UploadFile) {
-
- let fileArgsModalShowed = ref(false)
- const m_file = file
-
- async function onOk() {
- // await apps.loadDataFromFile(m_file)
- }
-
-
-
- return {
- fileArgsModalShowed, onOk
- }
-}
-
-
-
-
diff --git a/ui/src/components/FunctionTabs/FileUpload/index.vue b/ui/src/components/FunctionTabs/FileUpload/index.vue
index 028f8a8..dd51acb 100644
--- a/ui/src/components/FunctionTabs/FileUpload/index.vue
+++ b/ui/src/components/FunctionTabs/FileUpload/index.vue
@@ -6,86 +6,68 @@
点击或拖拽文件到这里
+
-
-
-
-
-
-
-
-
-
-
-
-
-
- 加载
-
-
+
+
-// :http-request="upload"
-