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" -