change bin list

This commit is contained in:
Simba
2020-07-18 14:42:25 +08:00
parent 71bc7ebe8e
commit 17a674d956
14 changed files with 37 additions and 103 deletions
+3
View File
@@ -1,3 +1,6 @@
This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
## Available Scripts
Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

-1
View File
@@ -65,7 +65,6 @@ let LangZh = {
validateAdminSuccess: "验证管理员成功!",
pressToHome: "点击下方按钮来完成安装过程并进入首页。",
enterHome: "完成,并进入首页",
finish: "完成",
},
layout: {
+1
View File
@@ -121,6 +121,7 @@ export default class Matter extends BaseEntity {
new InputFilter("分享uuid", "shareUuid"),
new InputFilter("提取码", "shareCode"),
new InputFilter("分享根目录", "shareRootUuid"),
new SortFilter('删除时间排序', 'orderDeleteTime'),
];
}
+4 -87
View File
@@ -18,11 +18,9 @@ import {
CloseCircleOutlined,
} from "@ant-design/icons";
import ImagePreviewer from "../widget/previewer/ImagePreviewer";
import Sun from "../../common/model/global/Sun";
import { UserRole } from "../../common/model/user/UserRole";
import BreadcrumbModel from "../../common/model/base/option/BreadcrumbModel";
import BreadcrumbPanel from "../widget/BreadcrumbPanel";
import Lang from "../../common/model/global/Lang";
import TankTitle from "../widget/TankTitle";
interface IProps extends RouteComponentProps {}
@@ -33,14 +31,10 @@ export default class List extends TankComponent<IProps, IState> {
matter = new Matter();
//当前选中的文件
selectedMatters: Matter[] = [];
//搜索的文字
searchText: string | null = null;
//获取分页的一个帮助器
pager = new Pager<Matter>(this, Matter, 100);
pager = new Pager<Matter>(this, Matter, Pager.MAX_PAGE_SIZE);
user = Moon.getSingleton().user;
preference = Moon.getSingleton().preference;
//当前面包屑模型数组。
breadcrumbModels: BreadcrumbModel[] = [];
constructor(props: IProps) {
super(props);
@@ -69,30 +63,15 @@ export default class List extends TankComponent<IProps, IState> {
this.selectedMatters = [];
// 刷新文件列表
this.refreshPager();
// 刷新面包屑
this.refreshBreadcrumbs();
};
refreshPager = () => {
// 初始化当前matter uuid
if (this.matter.uuid !== this.pager.getFilterValue("puuid")) {
this.matter.uuid =
this.pager.getFilterValue("puuid") || Matter.MATTER_ROOT;
}
this.pager.setFilterValue("puuid", this.matter.uuid);
//如果没有任何的排序,默认使用时间倒序和文件夹在顶部
if (!this.pager.getCurrentSortFilter()) {
this.pager.setFilterValue("orderCreateTime", SortDirection.DESC);
this.pager.setFilterValue("orderDeleteTime", SortDirection.DESC);
this.pager.setFilterValue("orderDir", SortDirection.DESC);
}
//如果没有设置用户的话,那么默认显示当前登录用户的资料
if (!this.pager.getFilterValue("userUuid")) {
this.pager.setFilterValue("userUuid", this.user.uuid);
}
// 过滤掉被软删除的文件
this.pager.setFilterValue("deleted", true);
@@ -201,72 +180,11 @@ export default class List extends TankComponent<IProps, IState> {
ImagePreviewer.showMultiPhoto(imageArray, startIndex);
};
goToDirectory = (id: string) => {
this.searchText = null;
this.pager.setFilterValue("puuid", id);
this.pager.page = 0;
const query = this.pager.getParams();
Sun.navigateQueryTo({ path: "/matter/list", query });
this.refresh();
};
//刷新面包屑
refreshBreadcrumbs = () => {
const uuid = this.pager.getFilterValue("puuid") || Matter.MATTER_ROOT;
//根目录简单处理即可。
if (uuid === Matter.MATTER_ROOT) {
this.matter.uuid = Matter.MATTER_ROOT;
this.breadcrumbModels = [
{
name: Lang.t("matter.recycleBin"),
path: "/matter/list",
query: {},
displayDirect: true,
},
];
} else {
this.matter.uuid = uuid;
this.matter.httpDetail(() => {
const arr = [];
let cur: Matter | null = this.matter;
do {
arr.push(cur);
cur = cur.parent;
} while (cur);
this.breadcrumbModels = arr.reduceRight(
(t: any, item: Matter, i: number) => {
const query = this.pager.getParams();
query["puuid"] = item.uuid!;
t.push({
name: item.name,
path: "/matter/list",
query: query,
displayDirect: !i, // 当前目录不需要导航
});
return t;
},
[
{
name: Lang.t("matter.recycleBin"),
path: "/matter/list",
query: {},
displayDirect: false,
},
]
);
this.updateUI();
});
}
};
//TODO: 1. 时间应该显示删除时间。 2. 面包屑跳转有问题。
render() {
const { pager, selectedMatters } = this;
return (
<div className="matter-list">
<BreadcrumbPanel breadcrumbModels={this.breadcrumbModels} />
<TankTitle name={Lang.t("layout.bin")} />
<Row className="mt10">
<Col xs={24} sm={24} md={14} lg={16}>
@@ -333,7 +251,6 @@ export default class List extends TankComponent<IProps, IState> {
recycleMode
key={matter.uuid!}
matter={matter}
onGoToDirectory={this.goToDirectory}
onDeleteSuccess={this.refresh}
onRecoverySuccess={this.refresh}
onCheckMatter={this.checkMatter}
+1 -6
View File
@@ -61,7 +61,7 @@ export default class List extends TankComponent<IProps, IState> {
//搜索的文字
searchText: string | null = null;
//获取分页的一个帮助器
pager = new Pager<Matter>(this, Matter, 100);
pager = new Pager<Matter>(this, Matter, Pager.MAX_PAGE_SIZE);
user = Moon.getSingleton().user;
preference = Moon.getSingleton().preference;
//导演
@@ -174,11 +174,6 @@ export default class List extends TankComponent<IProps, IState> {
this.pager.setFilterValue("orderDir", SortDirection.DESC);
}
//如果没有设置用户的话,那么默认显示当前登录用户的资料
if (!this.pager.getFilterValue("userUuid")) {
this.pager.setFilterValue("userUuid", this.user.uuid);
}
// 过滤掉被软删除的文件
this.pager.setFilterValue("deleted", false);
+28 -9
View File
@@ -20,7 +20,7 @@ import {
InfoCircleOutlined,
EllipsisOutlined,
RedoOutlined,
CloseCircleOutlined
CloseCircleOutlined,
} from "@ant-design/icons";
import { Modal, Checkbox, Tooltip } from "antd";
import { CheckboxChangeEvent } from "antd/es/checkbox";
@@ -30,7 +30,7 @@ import Lang from "../../../common/model/global/Lang";
interface IProps {
matter: Matter;
recycleMode?: boolean; // 回收站模式,默认false
recycleMode?: boolean; // 回收站模式,默认false,简化相关操作,不可进入文件夹里
director?: Director;
onCreateDirectoryCallback?: () => any;
onDeleteSuccess?: () => any;
@@ -215,13 +215,20 @@ export default class MatterPanel extends TankComponent<IProps, IState> {
};
clickRow = () => {
const { matter, director, onGoToDirectory, onPreviewImage } = this.props;
const {
matter,
recycleMode = false,
director,
onGoToDirectory,
onPreviewImage,
} = this.props;
if (director && director.isEditing()) {
console.error("导演正忙着,不予执行");
return;
}
if (matter.dir) {
if (recycleMode) return;
onGoToDirectory!(matter.uuid!);
} else {
//图片进行预览操作
@@ -342,11 +349,19 @@ export default class MatterPanel extends TankComponent<IProps, IState> {
{StringUtil.humanFileSize(matter.size)}
</span>
</Tooltip>
<Tooltip title={Lang.t("matter.updateTime")}>
<span className="matter-date mr10">
{DateUtil.simpleDateHourMinute(matter.updateTime)}
</span>
</Tooltip>
{recycleMode ? (
<Tooltip title={Lang.t("matter.deleteTime")}>
<span className="matter-date mr10">
{DateUtil.simpleDateHourMinute(matter.deleteTime)}
</span>
</Tooltip>
) : (
<Tooltip title={Lang.t("matter.updateTime")}>
<span className="matter-date mr10">
{DateUtil.simpleDateHourMinute(matter.updateTime)}
</span>
</Tooltip>
)}
</div>
);
};
@@ -458,7 +473,11 @@ export default class MatterPanel extends TankComponent<IProps, IState> {
return (
<div className="more-panel">
<div className="cell-btn navy text">
<span>{DateUtil.simpleDateHourMinute(matter.updateTime)}</span>
<span>
{DateUtil.simpleDateHourMinute(
recycleMode ? matter.deleteTime : matter.updateTime
)}
</span>
<span className="matter-size">
{StringUtil.humanFileSize(matter.size)}
</span>