change bin list
@@ -1,3 +1,6 @@
|
||||
|
||||
|
||||
|
||||
This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
|
||||
|
||||
## Available Scripts
|
||||
|
||||
|
After Width: | Height: | Size: 122 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 55 KiB |
|
After Width: | Height: | Size: 135 KiB |
|
After Width: | Height: | Size: 63 KiB |
|
After Width: | Height: | Size: 48 KiB |
|
After Width: | Height: | Size: 63 KiB |
@@ -65,7 +65,6 @@ let LangZh = {
|
||||
validateAdminSuccess: "验证管理员成功!",
|
||||
pressToHome: "点击下方按钮来完成安装过程并进入首页。",
|
||||
enterHome: "完成,并进入首页",
|
||||
|
||||
finish: "完成",
|
||||
},
|
||||
layout: {
|
||||
|
||||
@@ -121,6 +121,7 @@ export default class Matter extends BaseEntity {
|
||||
new InputFilter("分享uuid", "shareUuid"),
|
||||
new InputFilter("提取码", "shareCode"),
|
||||
new InputFilter("分享根目录", "shareRootUuid"),
|
||||
new SortFilter('删除时间排序', 'orderDeleteTime'),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||