Commit 5aa8f5e1 by 放生的三文鱼

增加导入导出

parent b61721b7
......@@ -152,6 +152,11 @@ export function* assetImport(payload) {
return yield call(service.assetImport, payload);
}
// draftImport
export function* draftImport(payload) {
return yield call(service.draftImport, payload);
}
export function* getDirectoryById(payload) {
return yield call(service.getDirectoryById, payload);
}
......@@ -204,6 +209,11 @@ export function* importLogs(payload) {
return yield call(service.importLogs, payload);
}
// importDraftLogs
export function* importDraftLogs(payload) {
return yield call(service.importDraftLogs, payload);
}
export function* recoveryFromRecycleBin(payload) {
return yield call(service.recoveryFromRecycleBin, payload);
}
......
......@@ -112,6 +112,12 @@ export function importLogs(payload) {
return GetJSON("/dataassetmanager/dataAssetApi/listDataAssetImportLogsByPage", payload);
}
// 导入草稿日志 /draftApi/listDraftImportLogsByPage
export function importDraftLogs(payload) {
return GetJSON("/dataassetmanager/draftApi/listDraftImportLogsByPage", payload);
}
export function recoveryFromRecycleBin(payload) {
return PostJSON("/dataassetmanager/dataAssetApi/recoveryFromRecycleBin", payload);
}
......@@ -184,6 +190,11 @@ export function assetImport(payload) {
return PostFile("/dataassetmanager/dataAssetApi/import", payload);
}
// /draftApi/batchUpdateByImport
export function draftImport(payload) {
return PostFile("/dataassetmanager/draftApi/batchUpdateByImport", payload);
}
export function getDirectoryById(payload) {
return GetJSON("/dataassetmanager/directoryApi/getDirectoryById", payload);
}
......
import React, { useCallback, createContext, useMemo } from "react";
import React, { useCallback, useState, useMemo } from "react";
import {
Table,
Button,
......@@ -12,17 +12,21 @@ import {
import { ExclamationCircleFilled } from "@ant-design/icons";
import { useGetAssetDraft } from "../hooks/assetData";
import { debounce } from "lodash";
import { appId } from "../../../../App";
import AssetDetailDrawer from "../../AssetManage/Component/AssetDetailDrawer";
import ImportModal from "./ImportModal";
import LocalStorage from "local-storage";
import "./index.less";
// 主组件
const AssetManagementTable = () => {
const [draftParams, setDraftParams] = React.useState({
const [draftParams, setDraftParams] = useState({
visible: false,
dirId: "",
draftId: "",
templateType: "",
});
const [importModalVisible, setImportModalVisible] = useState(false);
const {
loading,
templates,
......@@ -42,6 +46,7 @@ const AssetManagementTable = () => {
} = useGetAssetDraft({ setDraftParams });
const [modal, contextHolder] = Modal.useModal();
const changeTemplate = (value) => {
LocalStorage.set(`templateType-${appId}`, value);
setCurrentTemplate(value);
};
......@@ -81,7 +86,7 @@ const AssetManagementTable = () => {
onOk: () => {
if (type === "删除") {
batchDelete();
}else if (type === "送审") {
} else if (type === "送审") {
batchPublish();
}
confirmed.destroy();
......@@ -89,6 +94,14 @@ const AssetManagementTable = () => {
});
};
const handleExportDraft = () => {
window.open(
`/api/dataassetmanager/draftApi/exportByDraftIds?dataAssetIds=${selectedRowKeys.join(
","
)}&templateType=${currentTemplate}`
);
};
const hasItems = useMemo(() => {
return selectedRowKeys.length === 0;
}, [selectedRowKeys]);
......@@ -113,8 +126,16 @@ const AssetManagementTable = () => {
value={currentTemplate}
onChange={changeTemplate}
/>
<Button disabled={hasItems}>批量修改</Button>
<Button disabled={hasItems}>导出</Button>
<Button
onClick={() => {
setImportModalVisible(true);
}}
>
批量修改
</Button>
<Button disabled={hasItems} onClick={handleExportDraft}>
导出
</Button>
<Button
disabled={hasItems}
type="primary"
......@@ -202,6 +223,17 @@ const AssetManagementTable = () => {
});
}}
/>
<ImportModal
visible={importModalVisible}
onCancel={() => {
setImportModalVisible(false);
}}
onSuccess={() => {
getDraftData();
setImportModalVisible(false);
}}
/>
{contextHolder}
</div>
);
......
import React, { useState, useEffect, useContext } from 'react';
import { Button, Upload, Drawer, Table, Pagination, Divider, Form, Typography } from 'antd';
import { UploadOutlined, DownloadOutlined } from '@ant-design/icons';
import { dispatch } from '../../../model';
import { showMessage, formatDate } from '../../../util';
import { AppContext } from '../../../App';
import { getTemplateType } from '../../../util/axios';
import { dispatch } from '../../../../model';
import { showMessage, formatDate } from '../../../../util';
import { AppContext } from '../../../../App';
import { getTemplateType } from '../../../../util/axios';
const FC = (props) => {
const { onCancel, onSuccess, visible, } = props;
const { onCancel, onSuccess, visible} = props;
const [ fileList, setFileList ] = useState([]);
const [ confirmLoading, setConfirmLoading ] = useState(false);
......@@ -154,8 +154,8 @@ const FC = (props) => {
setConfirmLoading(true);
dispatch({
type: 'assetmanage.draftAssetImport',
payload: { fileList: fileList, params: { env: `${app?.env?.domainId}`, saveAsDraft: false } },
type: 'assetmanage.draftImport',
payload: { fileList: fileList, params: { env: `${app?.env?.domainId}`} },
callback: data => {
setConfirmLoading(false);
setFileList([]);
......@@ -178,7 +178,7 @@ const FC = (props) => {
<Drawer
forceRender
visible={ visible }
title='资产目录草稿批量修改'
title='资产草稿批量修改'
width={900}
placement="right"
closable={ true }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment