Comparing version 1.2.6 to 1.2.7
@@ -34,2 +34,8 @@ "use strict"; | ||
})(MODE || (MODE = {})); | ||
/** | ||
* 列表弹框,弹出一个列表。 | ||
* 1. 可以对列表里面的数据进行增删改查 | ||
* 2. 可以弹出一个单选或多选框,选一条或多条数据后,返回给页面 | ||
* | ||
*/ | ||
var ListModal = /** @class */ (function (_super) { | ||
@@ -36,0 +42,0 @@ __extends(ListModal, _super); |
@@ -9,23 +9,62 @@ import { ModalProps } from 'antd/lib/modal/Modal'; | ||
/** | ||
* | ||
* 类型,目前 仅支持 `select`(默认) 和 `switch` ,仅当有 option 时才生效 | ||
*/ | ||
type?: string; | ||
/** | ||
* 是否不允许修改 | ||
*/ | ||
readonly?: boolean; | ||
options?: any[]; | ||
/** | ||
* 选项列表,说明,当type 为 `switch`时,选项列表的长度必须为 **2**, 且第 **0** 项为选中状态 | ||
*/ | ||
options?: { | ||
name: string; | ||
value: string | number; | ||
}[]; | ||
} | ||
/** | ||
* 列表弹框的 Props 继承了 antd 里面 Modal 的 Props | ||
* 说明: **各种 modal 的原生 visable 属性,在vap项目里面,统一定制为 show** | ||
*/ | ||
export interface ListModalProps<T> extends ModalProps { | ||
/** | ||
* 列定义 | ||
*/ | ||
columns: Column<T>[]; | ||
/** | ||
* 是否显示,相当于原生modal里面的 visable 属性 | ||
*/ | ||
show: boolean; | ||
/** | ||
* 查询地址 | ||
* | ||
* 查询地址 必传,必须是 POST 接口 | ||
*/ | ||
query: string; | ||
/** | ||
* 添加接口地址,传的话会有添加功能,必须是 PUT 接口 | ||
*/ | ||
add?: string; | ||
/** | ||
* 添加接口地址,传的话会有编辑功能,必须是 PATCH 接口 | ||
*/ | ||
edit?: string; | ||
/** | ||
* 删除接口地址,传的话会有删除功能,必须是 DELETE 接口 | ||
*/ | ||
del?: string; | ||
/** | ||
* 是否支持多选,必须select有传时才能使用 | ||
*/ | ||
mutiSelect?: boolean; | ||
/** | ||
* 传择回调,传入 select 后,弹框变为选择模式,不再支持增删改操作 | ||
*/ | ||
select?: Function; | ||
/** | ||
* 默认查询参数 | ||
*/ | ||
param?: any; | ||
/** | ||
* 数据的 rowKey ,默认为 'id' | ||
*/ | ||
rowKey?: string; | ||
} |
/// <reference types="react" /> | ||
import { DataTableProps } from './interface'; | ||
import * as React from 'react'; | ||
/** | ||
* TableLayout 是深度定制的 table:主要统一了一些元素: | ||
* 1. 统一使用 order by 进行排序 | ||
* 2. 默认每页显示10条记录 | ||
* 3. 默认使用小号的table | ||
* 4. 默认 rowKey 为 ‘id’ | ||
* 5. 支持过滤、搜索等条件搜索 | ||
* 6. 使用fetch进行查询 | ||
* 7. 支持主动刷新等等。 | ||
* | ||
*/ | ||
export default class TableLayout<T> extends React.PureComponent<DataTableProps<T>, any> { | ||
@@ -5,0 +16,0 @@ rowKey: string; |
@@ -27,2 +27,13 @@ "use strict"; | ||
var DefaultPageSize = 10; | ||
/** | ||
* TableLayout 是深度定制的 table:主要统一了一些元素: | ||
* 1. 统一使用 order by 进行排序 | ||
* 2. 默认每页显示10条记录 | ||
* 3. 默认使用小号的table | ||
* 4. 默认 rowKey 为 ‘id’ | ||
* 5. 支持过滤、搜索等条件搜索 | ||
* 6. 使用fetch进行查询 | ||
* 7. 支持主动刷新等等。 | ||
* | ||
*/ | ||
var TableLayout = /** @class */ (function (_super) { | ||
@@ -29,0 +40,0 @@ __extends(TableLayout, _super); |
import { TableProps } from 'antd/lib/table/interface'; | ||
/** | ||
* @param name 过滤器名 | ||
* @param field 过滤器对应的字段名 | ||
* @param options 可用的过滤项 | ||
* @param def 默认选中的项 | ||
* @param muti 是否允许多选,默认不支持多选 | ||
* @param mutisplit 开户 `muti = true` 多选时,选中多的的分隔符 | ||
* @param inline 后面的是否换行,默认换行 | ||
* | ||
```javascript | ||
const filters = [] | ||
``` | ||
* 过滤器,目前支持单选和多选,通常用于类型选择,状态过滤等 | ||
*/ | ||
export interface Option { | ||
name: string; | ||
value: string | number; | ||
checked?: boolean; | ||
} | ||
/** | ||
* @public | ||
*/ | ||
export interface Filter { | ||
/** | ||
* 过滤字段的标题 | ||
*/ | ||
name: string; | ||
/** | ||
* 对应进行查询的字段 | ||
*/ | ||
field: string; | ||
options?: Option[]; | ||
/** | ||
* 过滤器的选项列表,{name:xx,value:xx}[] | ||
*/ | ||
options?: { | ||
name: string; | ||
value: string | number; | ||
}[]; | ||
/** | ||
* 是否多选,为 true 时,以复选框的形式展示 | ||
*/ | ||
muti?: boolean; | ||
/** | ||
* 当为多选时,每条记录的分隔符 | ||
*/ | ||
mutisplit?: string; | ||
/** | ||
* 后面后一个过滤器是否与本过滤器显示在同一行 | ||
*/ | ||
inline?: boolean; | ||
} | ||
/** | ||
* @public | ||
* 搜索条件,以输入的方式展示 | ||
*/ | ||
export interface Search { | ||
/** | ||
* 搜索的名称 | ||
*/ | ||
name: string; | ||
/** | ||
* 对应进行查询的字段 | ||
*/ | ||
field: string; | ||
} | ||
/** | ||
* @public | ||
* 一项操作,以Button进行展示 | ||
*/ | ||
export interface Action { | ||
/** | ||
* 操作名 | ||
*/ | ||
name: string; | ||
/** | ||
* 操作按钮上的图标 | ||
*/ | ||
icon?: string; | ||
/** | ||
* 是否需要选择,必须 table 的 select 为 true 时,才能使用,否则没法激活 | ||
*/ | ||
mustSelect?: boolean; | ||
/** | ||
* 点击操作,当mustSelect为 true时,方法可以接收一个参数,为当前选中的项 | ||
*/ | ||
action?: Function; | ||
} | ||
/** | ||
* TableLayout 的 Props 继承于 antd 的 Table 的 Props | ||
* 对原先的Table组件进行了一致性的调整和简化。易于统一的规范化使用 | ||
* 说明:默认rowKey 为 `id` | ||
*/ | ||
export interface DataTableProps<T> extends TableProps<T> { | ||
/** | ||
* 记录总数 | ||
*/ | ||
total: number; | ||
/** | ||
* 发动 fetch 的事件字符串,由 {moduleName}/{moudleMethod} 组成 | ||
*/ | ||
fetch: string; | ||
/** | ||
* 全局通用 事件发送器 | ||
*/ | ||
dispatch: Function; | ||
/** | ||
* 是否可以多选,如果为 true,则出现多选框功能 | ||
*/ | ||
select?: boolean; | ||
/** | ||
* 可根据条件进行过滤的字段 | ||
*/ | ||
filters?: Filter[]; | ||
/** | ||
* 可根据条件进行搜索的字段 | ||
*/ | ||
searchs?: Search[]; | ||
/** | ||
* 可以进行的操作 | ||
*/ | ||
actions?: Action[]; | ||
/** | ||
* 默认的排序,如果不传,则按 rowKey 倒序排列 | ||
*/ | ||
order?: { | ||
@@ -56,0 +106,0 @@ by: string; |
/// <reference types="react" /> | ||
import * as React from 'react'; | ||
import { CommentProps } from './interface'; | ||
/** | ||
* 组件 | ||
*/ | ||
export default class extends React.PureComponent<CommentProps> { | ||
render(): JSX.Element; | ||
} |
@@ -12,4 +12,16 @@ "use strict"; | ||
})(); | ||
var __assign = (this && this.__assign) || Object.assign || function(t) { | ||
for (var s, i = 1, n = arguments.length; i < n; i++) { | ||
s = arguments[i]; | ||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) | ||
t[p] = s[p]; | ||
} | ||
return t; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var React = require("react"); | ||
var _ = require("lodash"); | ||
/** | ||
* 组件 | ||
*/ | ||
var default_1 = /** @class */ (function (_super) { | ||
@@ -21,3 +33,14 @@ __extends(default_1, _super); | ||
default_1.prototype.render = function () { | ||
return React.createElement("div", { className: "comment " + this.props.className ? this.props.className : '', style: { | ||
var param = { | ||
className: 'comment', | ||
style: {} | ||
}; | ||
if (this.props.id) { | ||
param.id = this.props.id; | ||
} | ||
if (this.props.className) { | ||
param.className = param.className + ' ' + this.props.className; | ||
} | ||
if (this.props.style) { | ||
_.extend(param.style, this.props.style, { | ||
width: this.props.width, | ||
@@ -28,3 +51,5 @@ height: this.props.height, | ||
position: 'absolute' | ||
} }, this.props.children); | ||
}); | ||
} | ||
return React.createElement("div", __assign({ style: {} }, param), this.props.children); | ||
}; | ||
@@ -31,0 +56,0 @@ return default_1; |
@@ -0,7 +1,11 @@ | ||
/// <reference types="react" /> | ||
import * as React from 'react'; | ||
export interface CommentProps { | ||
style?: React.CSSProperties; | ||
className?: string; | ||
width: number; | ||
height: number; | ||
left: number; | ||
top: number; | ||
id?: string; | ||
width: number | string; | ||
height: number | string; | ||
left: number | string; | ||
top: number | string; | ||
} |
{ | ||
"name": "vap", | ||
"version": "1.2.6", | ||
"version": "1.2.7", | ||
"description": "vap", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -9,3 +9,4 @@ declare const _default: { | ||
SESION: (...urls: string[]) => void; | ||
CLEAR: (...urls: string[]) => void; | ||
}; | ||
export default _default; |
@@ -107,2 +107,6 @@ "use strict"; | ||
*/ | ||
var CACHE_URL = new Set(); | ||
/** | ||
* @private | ||
*/ | ||
function request(url, options) { | ||
@@ -122,5 +126,2 @@ if (options === void 0) { options = { method: 'GET', headers: {}, body: null }; } | ||
.then(function (response) { | ||
// if (newOptions.method === 'DELETE' || response.status === 204) { | ||
// return response.text(); | ||
// } | ||
return response.json(); | ||
@@ -131,7 +132,10 @@ }); | ||
* 发送 HTTP GET 请求,支持 **回调函数** 与 **异步队列** 方式进行请求 | ||
* 按 RESTFUL 规范说明 : GET 通常用来获取特定不变的数据 | ||
* | ||
* @param url 请求链接 | ||
* @param url 请求接口链接地址 | ||
* @param callback 回调函数,如果没有设置,则返回一个 Promise对象 | ||
* @returns 如果没有指定回调函数,则返回一个 Promise对象 | ||
* | ||
* 额外说明 : GET 方法支持浏览器前端缓存,可以预先将需要缓存的地址通过 Ajax.SESSION() 方法传入,对于已经缓存的地址不会发出实际的网络请求 | ||
* | ||
* 代码示例: | ||
@@ -144,10 +148,6 @@ * ```javascript | ||
* // 通过 异步队列 使用 | ||
* async function getList() { | ||
* return Ajax.GET('/api-url'); | ||
* } | ||
* var json = yield call(getList); | ||
* console.log(json); | ||
* const all = yield Ajax.GET('/api-url'); | ||
* console.log(all); | ||
* ``` | ||
*/ | ||
var CACHE_URL = new Set(); | ||
function GET(url, callback) { | ||
@@ -198,2 +198,22 @@ return __awaiter(this, void 0, void 0, function () { | ||
} | ||
/** | ||
* 发送 HTTP POST 请求,支持 **回调函数** 与 **异步队列** 方式进行请求 | ||
* 按 RESTFUL 规范说明 : POST 通常用来做复杂的条件查询 | ||
* | ||
* @param url 请求接口链接地址 | ||
* @param param 请求参数,调用时会参数的 `json格式` 传给接口 | ||
* @param callback 回调函数,如果没有设置,则返回一个 Promise对象 | ||
* @returns 如果没有指定回调函数,则返回一个 Promise对象 | ||
* | ||
* 代码示例: | ||
* ```javascript | ||
* // 通过 回调函数 使用 | ||
* import {Ajax} from 'utils' | ||
* Ajax.POST('/api-url',{status:0,find:'name'},json=>console.log(json)); | ||
* | ||
* // 通过 异步队列 使用 | ||
* const resp = yield Ajax.POST('/api-url',{status:0,find:'name'}); | ||
* console.log(resp); | ||
* ``` | ||
*/ | ||
function POST(url, param, callback) { | ||
@@ -223,2 +243,22 @@ return __awaiter(this, void 0, void 0, function () { | ||
} | ||
/** | ||
* 发送 HTTP PUT 请求,支持 **回调函数** 与 **异步队列** 方式进行请求 | ||
* 按 RESTFUL 规范说明 : PUT 通常用来做对象的新增 | ||
* | ||
* @param url 请求接口链接地址 | ||
* @param param 请求参数,调用时会参数的 `json格式` 传给接口 | ||
* @param callback 回调函数,如果没有设置,则返回一个 Promise对象 | ||
* @returns 如果没有指定回调函数,则返回一个 Promise对象 | ||
* | ||
* 代码示例: | ||
* ```javascript | ||
* // 通过 回调函数 使用 | ||
* import {Ajax} from 'utils' | ||
* Ajax.PUT('/api-url',{status:0,find:'name'},json=>console.log(json)); | ||
* | ||
* // 通过 异步队列 使用 | ||
* const resp = yield Ajax.PUT('/api-url',{status:0,find:'name'}); | ||
* console.log(resp); | ||
* ``` | ||
*/ | ||
function PUT(url, param, callback) { | ||
@@ -248,2 +288,22 @@ return __awaiter(this, void 0, void 0, function () { | ||
} | ||
/** | ||
* 发送 HTTP PATCH 请求,支持 **回调函数** 与 **异步队列** 方式进行请求 | ||
* 按 RESTFUL 规范说明 : PATCH 通常用来做对象的修改 | ||
* | ||
* @param url 请求接口链接地址 | ||
* @param param 请求参数,调用时会参数的 `json格式` 传给接口 | ||
* @param callback 回调函数,如果没有设置,则返回一个 Promise对象 | ||
* @returns 如果没有指定回调函数,则返回一个 Promise对象 | ||
* | ||
* 代码示例: | ||
* ```javascript | ||
* // 通过 回调函数 使用 | ||
* import {Ajax} from 'utils' | ||
* Ajax.PATCH('/api-url',{status:0,find:'name'},json=>console.log(json)); | ||
* | ||
* // 通过 异步队列 使用 | ||
* const resp = yield Ajax.PATCH('/api-url',{status:0,find:'name'}); | ||
* console.log(resp); | ||
* ``` | ||
*/ | ||
function PATCH(url, param, callback) { | ||
@@ -273,2 +333,22 @@ return __awaiter(this, void 0, void 0, function () { | ||
} | ||
/** | ||
* 发送 HTTP DELETE 请求,支持 **回调函数** 与 **异步队列** 方式进行请求 | ||
* 按 RESTFUL 规范说明 : DELETE 通常用来做对象的删除 | ||
* | ||
* @param url 请求接口链接地址 | ||
* @param param 请求参数,调用时会参数的 `json格式` 传给接口 | ||
* @param callback 回调函数,如果没有设置,则返回一个 Promise对象 | ||
* @returns 如果没有指定回调函数,则返回一个 Promise对象 | ||
* | ||
* 代码示例: | ||
* ```javascript | ||
* // 通过 回调函数 使用 | ||
* import {Ajax} from 'utils' | ||
* Ajax.DELETE('/api-url',{status:0,find:'name'},json=>console.log(json)); | ||
* | ||
* // 通过 异步队列 使用 | ||
* const resp = yield Ajax.DELETE('/api-url',{status:0,find:'name'}); | ||
* console.log(resp); | ||
* ``` | ||
*/ | ||
function DELETE(url, param, callback) { | ||
@@ -300,3 +380,3 @@ return __awaiter(this, void 0, void 0, function () { | ||
* 请多个请求一起返回了再处理,两个以上请求时,可以使用 | ||
* @param pos 异步请求, | ||
* @param 异步请求列表 | ||
* 示例 | ||
@@ -307,3 +387,3 @@ * ``` | ||
Ajax.GET('/api-common/user/ip'), | ||
Ajax.POST('/api-common/user') | ||
Ajax.POST('/api-common/user',{}) | ||
).then(function(resp){ | ||
@@ -313,3 +393,2 @@ console.log(resp[0],resp[1],resp[2]); | ||
* ``` | ||
* | ||
*/ | ||
@@ -328,5 +407,14 @@ function WHEN() { | ||
/** | ||
* 注册需要缓存的链接地址,只能是 GET 请求的 URL | ||
* 注册需要缓存的链接地址 | ||
* 此URL 在一次打开的过程中只会请求一次, | ||
* 如果需要清除,可以调用 Cache.sessionDelete(url) 来清除 | ||
* @param urls 接口地址列表,只支持 GET 接口 | ||
* 如果需要清除,可以调用 Ajax.CLEAR(url) 来清除 | ||
* 示例 | ||
* ``` | ||
* Ajax.SESSION('/url1','/url2','/url3'); | ||
* Ajax.GET('/url1'); | ||
* Ajax.GET('/url1'); | ||
* Ajax.GET('/url1'); | ||
* Ajax.CLEAR('/url1','/url2'); | ||
* ``` | ||
* | ||
@@ -346,2 +434,27 @@ */ | ||
; | ||
exports.default = { GET: GET, POST: POST, PUT: PUT, PATCH: PATCH, DELETE: DELETE, WHEN: WHEN, SESION: SESION }; | ||
/** | ||
* 清除接口本地缓存 | ||
* @param urls 接口地址列表,只支持 GET 接口 | ||
* 如果需要清除,可以调用 Ajax.CLEAR(url) 来清除 | ||
* 示例 | ||
* ``` | ||
* Ajax.SESSION('/url1','/url2','/url3'); | ||
* Ajax.GET('/url1'); | ||
* Ajax.GET('/url1'); | ||
* Ajax.GET('/url1'); | ||
* Ajax.CLEAR('/url1','/url2'); | ||
* ``` | ||
* | ||
*/ | ||
function CLEAR() { | ||
var urls = []; | ||
for (var _a = 0; _a < arguments.length; _a++) { | ||
urls[_a] = arguments[_a]; | ||
} | ||
urls.map(function (url) { | ||
if (!CACHE_URL.has(url)) { | ||
Cache_1.default.sessionDelete(url); | ||
} | ||
}); | ||
} | ||
exports.default = { GET: GET, POST: POST, PUT: PUT, PATCH: PATCH, DELETE: DELETE, WHEN: WHEN, SESION: SESION, CLEAR: CLEAR }; |
declare const _default: { | ||
GET: (key: string, def?: any) => any; | ||
SET: (key: string, value: any) => void; | ||
LISTEN: (key: string, callback: Function) => void; | ||
sessionDelete: (key: string) => void; | ||
sessionData: (key: string, value?: any) => string; | ||
sessionData: (key: string, value?: any) => any; | ||
sessionString: (key: string, value: string) => string; | ||
}; | ||
export default _default; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var _ = require("lodash"); | ||
var CACHE = {}; | ||
var session = sessionStorage; | ||
exports.default = { | ||
// 暂时注释掉还未使用的方法 | ||
// /** | ||
// * 获取缓存 | ||
// */ | ||
// GET:function(key:string ,def:any= null){ | ||
// if(_.has(CACHE,key)){ | ||
// return CACHE[key]; | ||
// } | ||
// return def; | ||
// }, | ||
// /** | ||
// * 设置缓存 | ||
// */ | ||
// SET:function(key:string ,value:any){ | ||
// if(value===null){ | ||
// _.unset(CACHE,key); | ||
// }else{ | ||
// CACHE[key]==value; | ||
// } | ||
// }, | ||
// /** | ||
// * 监听缓存,当值变化时,回调 | ||
// */ | ||
// LISTEN:function(key:string,callback:Function){ | ||
// console.log(key); | ||
// }, | ||
/** | ||
* 获取缓存 | ||
*/ | ||
GET: function (key, def) { | ||
if (def === void 0) { def = null; } | ||
if (_.has(CACHE, key)) { | ||
return CACHE[key]; | ||
} | ||
return def; | ||
}, | ||
/** | ||
* 设置缓存 | ||
*/ | ||
SET: function (key, value) { | ||
if (value === null) { | ||
_.unset(CACHE, key); | ||
} | ||
else { | ||
CACHE[key] == value; | ||
} | ||
}, | ||
/** | ||
* 监听缓存,当值变化时,回调 | ||
*/ | ||
LISTEN: function (key, callback) { | ||
console.log(key); | ||
}, | ||
/** | ||
* 删除SESSION缓存 | ||
@@ -41,7 +39,10 @@ */ | ||
/** | ||
* 本地 windows Session | ||
* 获取(传`key`参数),设置(同时传`key`,`value`参数) | ||
* @param key key | ||
* @param value val 需要是对象或数组类型 | ||
* | ||
*/ | ||
sessionData: function (key, value) { | ||
if (value === void 0) { value = undefined; } | ||
if (value) { | ||
if (value !== undefined) { | ||
var txt = JSON.stringify(value); | ||
@@ -57,5 +58,14 @@ session.setItem(key, txt); | ||
}, | ||
/** | ||
* 获取(传`key`参数),设置(同时传`key`,`value`参数) | ||
* @param key key | ||
* @param value val 字符串类型 | ||
* | ||
*/ | ||
sessionString: function (key, value) { | ||
return ''; | ||
if (value) { | ||
session.setItem(key, value); | ||
} | ||
return session.getItem(key); | ||
} | ||
}; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.default = { | ||
/** | ||
* 通用分页 | ||
*/ | ||
PAGE_OPTIONS: ["10", "15", "50", "100"], | ||
@@ -5,0 +8,0 @@ /** |
@@ -43,6 +43,2 @@ "use strict"; | ||
/** | ||
* utils - Model 提供对模型的增删改功能 | ||
* | ||
*/ | ||
/** | ||
* 更新一个列表中的一个对象,并返回一个新的列表 | ||
@@ -53,5 +49,2 @@ * @param list 需要被修改的列表 | ||
* @return 一个新的列表 | ||
* | ||
* 示例 | ||
* | ||
*/ | ||
@@ -73,3 +66,4 @@ function update(list, data, rowKey) { | ||
* 往列表的最前面插入一项,并返回一个新的列表 | ||
* | ||
* @param list 需要被插入的列表 | ||
* @param data 新的数据 | ||
*/ | ||
@@ -84,4 +78,6 @@ function add(list, data) { | ||
/** | ||
* 删除列表中的指定项,并返回一个新的列表 | ||
* | ||
* 在一个列表里面删除指定的数据,并返回一个新的列表 | ||
* @param list 需要被插入的列表 | ||
* @param ids 需要删除的 id 列表 | ||
* @param rowKey 每条数据的识别的主键 默认为 'id' | ||
*/ | ||
@@ -103,2 +99,10 @@ function del(list, ids, rowKey) { | ||
* 另外说明,_delete 请求以 ids 为参数,多条记录删除时,以逗号分隔 | ||
* | ||
* @param modelName dva 模块名字,不能重复 | ||
* @param api 参考上文说明 | ||
* @param objectName 对象的名字 默认为 '对象' | ||
* @param rowKey 每条数据的识别的主键 默认为 'id' | ||
* @param nameField 每条数据的名称字段 默认为空 | ||
* @param pre 预处理的方法,如果定义的话,会预先执行此方法进行数据转换 | ||
* | ||
*/ | ||
@@ -105,0 +109,0 @@ function BuildModel(modelName, api, objectName, rowKey, nameField, pre) { |
@@ -0,5 +1,17 @@ | ||
/** | ||
* 用于列表,字典等 Render 的 Value,由 name(显示) 和 value(实际取值) 两个字段组成 | ||
*/ | ||
export interface Value { | ||
/** | ||
* 显示在页面上的名称 | ||
*/ | ||
name: string; | ||
/** | ||
* 实际取值 | ||
*/ | ||
value: number | string; | ||
} | ||
/** | ||
* 状态Map格式,最多支持五组状态,分别为 success、processing、default、error、warning | ||
*/ | ||
export interface StatusMap { | ||
@@ -12,12 +24,25 @@ success?: Value; | ||
} | ||
/** | ||
* Render 实体,一般情况下,可以直接用于 antd 框架里面的各种 列render 字段 render 等 | ||
* 另外 ,render 具有一个 update 方法,当数据更新时,可以调用 render.update方法来进行内部更新 | ||
* 每种 render 的内部更新传递的参数可能有所不同 | ||
*/ | ||
export interface Render { | ||
(value: any): string; | ||
/** | ||
* 内部数据更新函数, | ||
* listRender : 传一个数组 any[] | ||
* statusRender : 传一个 StatusMap | ||
* momentRender : 不用传参数,会将Render时间移至当前最新时间 | ||
* htmlRender : 无此方法 | ||
*/ | ||
update: (data?: any) => void; | ||
} | ||
declare const _default: { | ||
strRender: (len?: number, hasDot?: boolean, className?: string) => Render; | ||
listRender: (arr?: any[], value?: string, name?: string, def?: string) => Render; | ||
statusRender: (statusMap?: StatusMap, def?: string) => Render; | ||
momentRender: (time?: boolean, format?: string, nearly?: number) => Render; | ||
momentRender: (time?: boolean, nearly?: number, format?: string) => Render; | ||
htmlRender: (className?: string) => (val: any) => JSX.Element; | ||
}; | ||
export default _default; |
@@ -9,4 +9,43 @@ "use strict"; | ||
/** | ||
* 字符串截取 Render | ||
* @param len 截取长度,默认为 20 | ||
* @param hasDot 是否有3个省略号 默认为 true | ||
* @param className className | ||
*/ | ||
strRender: function (len, hasDot, className) { | ||
if (len === void 0) { len = 20; } | ||
if (hasDot === void 0) { hasDot = true; } | ||
if (className === void 0) { className = ''; } | ||
var fn = function (str) { | ||
var newLength = 0; | ||
var newStr = []; | ||
var chineseRegex = /[^\x00-\xff]/g; | ||
var singleChar = ""; | ||
var strLength = str.replace(chineseRegex, "**").length; | ||
for (var i = 0; i < strLength; i++) { | ||
singleChar = str.charAt(i).toString(); | ||
if (singleChar.match(chineseRegex) !== null) { | ||
newLength += 2; | ||
} | ||
else { | ||
newLength++; | ||
} | ||
if (newLength > len) { | ||
break; | ||
} | ||
newStr.push(singleChar); | ||
} | ||
if (hasDot && strLength > len) { | ||
newStr.push("..."); | ||
} | ||
return React.createElement("span", { className: className }, newStr.join('')); | ||
}; | ||
return fn; | ||
}, | ||
/** | ||
* 列表 Render 构造器 | ||
* | ||
* @param arr 默认为一个空数组 | ||
* @param value 数据对应取值的字段 默认为 'id' | ||
* @param name 数据对应显示的字段 默认为 'name' | ||
* @param def 数据没有找到时的字段 默认为 '未知' | ||
*/ | ||
@@ -39,4 +78,5 @@ listRender: function (arr, value, name, def) { | ||
/** | ||
* 状态值 Render 构造器 | ||
* | ||
* 状态 Render 构造器 | ||
* @param statusMap 一个StatusMap 默认为 { success: { name: '正常', value: 0 }, error: { name: '异常', value: 1 } } | ||
* @param def 数据没有找到时的显示名称 默认为 '未知' | ||
*/ | ||
@@ -76,8 +116,11 @@ statusRender: function (statusMap, def) { | ||
* 时间 Render 构造器 | ||
* @param time 是否显示时分秒,默认为 true 即 `YYYY-MM-DD HH:mm:ss`, 设置为 `false` 则显示为'YYYY-MM-DD' | ||
* @param nearly 最近 {x} 天 时,转换为 moment 方式显示,比如 5秒前,15小时前,2天前等等。 默认为 3 | ||
* @param format 时间参数的格式,默认为空,如果是特别格式,请指定此参数,否则不好解析 | ||
* | ||
*/ | ||
momentRender: function (time, format, nearly) { | ||
momentRender: function (time, nearly, format) { | ||
if (time === void 0) { time = true; } | ||
if (nearly === void 0) { nearly = 3; } | ||
if (format === void 0) { format = null; } | ||
if (nearly === void 0) { nearly = 3; } | ||
var now = moment(); | ||
@@ -108,3 +151,4 @@ var from = now.unix(); | ||
/** | ||
* | ||
* 返回一个 htmlRender,用于显示自定义的html,会用div包住 | ||
* @param className 包住自定义html的 className 默认为空 | ||
*/ | ||
@@ -111,0 +155,0 @@ htmlRender: function (className) { |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
159733
4171