You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

128 lines
3.5 KiB
Plaintext

11 months ago
import { getRequestParams } from './utils/Decode';
//列表模式.
export enum GenerListPageShowModel {
//表格模式(待办模式)
Table,
//分组模式(类似于:PanelGroup模式)
GroupBigIcon,
//窗口模式(发起)
Windows,
//Icon模式(系统列表).
BigIcon,
}
//帮助文档显示格式.
export enum HelpShowModel {
//不显示
None,
//顶部按钮
TopButton,
//左侧Panel.
LeftPanel,
}
export abstract class PageBaseGenerList {
/**
* 获得外部的参数
* @param key 参数key
* @returns
*/
// public RequestVal(key: string) {
// const val = getRequestParams(key);
// if (!val) return getAllRequestParams(key);
// }
public PageTitle: string | null = '待办'; //页面标题.
public Icon: string | null = 'icon-file'; //标题.
public ClassID?: string; //实体类ID.
public DTFieldOfSearch: string | null = 'RDT'; //日期查询字段.
public DTFieldOfLabel: string | null = '记录日期'; //日期查询字段.
// public BtnsOfRow = ''; //行操作按钮 逗号隔开
public BtnOfToolbar = ''; //工具栏
public LinkField = 'Title'; //链接字段,点击链接进入新窗口字段.
public GroupFields = ''; //可以分组显示的字段.
public GroupFieldDefault = ''; //默认的分组字段.
public LabFields = ''; // 标签显示列
public BtnsOfRow = '';
//帮助按钮定义.
public HelpDocs = ''; // 帮助文档,如果没有就不显示了.
public HelpShowModel = HelpShowModel.None; // 帮助文档,如果没有就不显示了.
// 显示格式: 0=表格(待办), 1=分组显示, 2= Windows模式(发起). 3=BigIcon(我的系统)
public HisGLShowModel = GenerListPageShowModel.Table;
// 参数,从外部传过来的
public params: Record<string, any> = {};
public setParams(params: Record<string, any>) {
this.params = params;
}
/**
* 获得外部的参数, 此方法为实现.
* @param key 参数key
* @returns
*/
// 当前登录人的token
public RequestVal(key: string) {
return this.params[key] || getRequestParams(key);
}
public PageSize = 0; // 分页的页面行数, 0不分页.
//返回的数据
public Data: Array<Record<string, any>> = [];
//显示的列.
public Columns: Array<Record<string, any>> = [];
/**
* 构造方法
* @param clsId 类的ID.
*/
protected constructor(clsId) {
this.ClassID = clsId;
}
//初始化数据.
abstract Init();
/** 标题点击事件 */
abstract LinkFieldClick(object: Record<string, any>);
/** 按钮点击事件 */
abstract BtnClick(btnName: string, record: Record<string, any>);
/**
* 时间友好提示
* @param adt
* @returns
*/
public FirendlyDT(adt: string) {
const minute = 1000 * 60;
const hour = minute * 60;
const day = hour * 24;
const week = day * 7;
const month = day * 30;
const time1 = new Date().getTime(); //当前的时间戳
const time2 = Date.parse(new Date(adt).toString()); //指定时间的时间戳
const time = time1 - time2;
let result = '';
if (time < 0) {
result = '--';
} else if (time / month >= 1) {
result = Math.floor(time / month) + '月前';
} else if (time / week >= 1) {
result = Math.floor(time / week) + '周前';
} else if (time / day >= 1) {
result = Math.floor(time / day) + '天前';
} else if (time / hour >= 1) {
result = Math.floor(time / hour) + '小时前';
} else if (time / minute >= 1) {
result = Math.floor(time / minute) + '分钟前';
} else {
result = '刚刚';
}
return result;
}
}