Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

vap

Package Overview
Dependencies
Maintainers
1
Versions
568
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

vap - npm Package Compare versions

Comparing version 1.2.6 to 1.2.7

6

layouts/admin/ListModal/index.js

@@ -34,2 +34,8 @@ "use strict";

})(MODE || (MODE = {}));
/**
* 列表弹框,弹出一个列表。
* 1. 可以对列表里面的数据进行增删改查
* 2. 可以弹出一个单选或多选框,选一条或多条数据后,返回给页面
*
*/
var ListModal = /** @class */ (function (_super) {

@@ -36,0 +42,0 @@ __extends(ListModal, _super);

47

layouts/admin/ListModal/interface.d.ts

@@ -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);

94

layouts/admin/TableLayout/interface.d.ts
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) {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc