1.0.8 • Published 1 year ago

@lovels/xtt v1.0.8

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

TOC

简介

XTT-JS框架,公共方法、组件、样式集合。

使用

安装
npm i @lovels/xtt
引用
// 全局注册
import XTT from "@lovels/xtt
import "@lovels/xtt/style.css"; // 引用公共样式
app.use(XTT, 'Vue3')


// 按需使用
import XTT from "@lovels/xtt
const { UnitConfig, ··· } = XTT;

方法

UnitConfig

常用方法
深拷贝
//deepClone
const { UnitConfig } = XTT;
let oldData = {};
let newData = UnitConfig.deepClone(oldData);
扁平树结构
//flatTree
const { UnitConfig } = XTT;
let oldList = [];
let newList = [];
UnitConfig.flatTree(oldList, newList);
生成UUID
//getUUID
const { UnitConfig } = XTT;
UnitConfig.getUUID(`自定义前缀名称 || 空`);
判断是否可以JSON.parse
//isJSON
const { UnitConfig } = XTT;
UnitConfig.isJSON(`String`);
防抖
//debounce
//fun 需要执行的函数  function
//wait 等待时间   number 毫秒
//immediate 立即执行   boolean
const { UnitConfig } = XTT;
UnitConfig.debounce(fun, wait, immediate);
判断是否为空(undefined,null,‘’ )
//isNil
//value 需要判断的内容
//return boolean
const { UnitConfig } = XTT;
UnitConfig.isNil(value);
设置Tab
 /**
 * 设置Tab
 * @param {String} name 
 * @param {Object} tab1 
 */
const { UnitConfig } = XTT;
UnitConfig.setTab(name, tab1);
获取Tab
 /**
 * 获取Tab
 * @param {String} name 
 * @param {String} tab 
 * @returns {(String | *)}
 */
const { UnitConfig } = XTT;
UnitConfig.getTab(name, tab);
筛选tab当前active
/**
 * 筛选tab当前active
 * @param {Array} list 
 * @param {String} key 
 * @param {String} pageKey  = 'tabActive'  页面级存储名称
 * @returns {String}
 */
const { UnitConfig } = XTT;
UnitConfig.tabActive(list, key, pageKey);
存储筛选项
/**
 * 存储筛选项
 * @param {String} pageKey  = 'tabActive'  页面级存储名称
 */
const { UnitConfig } = XTT;
UnitConfig.setScreen(name, keys, pageKey);
获取筛选项
/**
 * 获取筛选项
 * @param {String} pageKey  = 'tabActive'  页面级存储名称
 */
const { UnitConfig } = XTT;
UnitConfig.getScreen(name, pageKey);
编译筛选数据
/**
 * 编译筛选数据
 */
const { UnitConfig } = XTT;
UnitConfig.getFiltrateData(FiltrateList = []);
参数处理
/**
* 参数处理
* @param {*} params  参数
*/
const { UnitConfig } = XTT;
UnitConfig.tansParams(params);
字符串格式化(%s )
/**
* 字符串格式化(%s )
*/
const { UnitConfig } = XTT;
UnitConfig.sprintf(str);
时间/日期
判断ios|安卓
/**
 * 判断ios|安卓
 * @returns {String} ios | android
 */
const { UnitConfig } = XTT;
UnitConfig.appSource();
new Date ios -转为/
/**
 * new Date  ios -转为/
 * @param {(String | Date)} data 
 * @returns {(String | Date)}
 */
const { UnitConfig } = XTT;
UnitConfig.isIosDate(data);
日期时间格式化
//Format
const { UnitConfig } = XTT;
UnitConfig.Format( new Date(), "yyyy-MM-dd hh:mm:ss" )
获取时间
/**
 * 获取时间
 * @param {(String | Date | *)} [date] 
 * @returns {Date}
 */
const { UnitConfig } = XTT;
UnitConfig.getDate(date);
获取当前时间 格式:YYYY-MM-DD
/**
 * 获取当前时间 格式:YYYY-MM-DD
 */
const { UnitConfig } = XTT;
UnitConfig.getTimt_YMD(data, type = "YYYY-MM-DD");
获取两个日期间的所有日期
/**
 * 获取两个日期间的所有日期
 */
const { UnitConfig } = XTT;
UnitConfig.getBetweenDate(start, end);
获取下/上n个秒,分钟,小时,天,月,年
/**
 * 获取下/上n个秒,分钟,小时,天,月,年
 */
const { UnitConfig } = XTT;
UnitConfig.getBeforeOrAfter(original, type, n, format);
获取某月第一天和最后一天
/**
 * 获取某月第一天和最后一天
 */
const { UnitConfig } = XTT;
UnitConfig.getMonthFirstAndLast(date = new Date());
获取某天的周一和周日
/**
 * 获取某天的周一和周日
 */
const { UnitConfig } = XTT;
UnitConfig.getWeekFirstAndLast(date = new Date());
分钟数转 返回: 小时:分钟
/**
 * 分钟数转 返回: 小时:分钟
 */
const { UnitConfig } = XTT;
UnitConfig.minuteToTime(min);
获取两个时间差转化为天,小时,分钟,秒
/**
 * 获取两个时间差转化为天,小时,分钟,秒
 */
const { UnitConfig } = XTT;
UnitConfig.getDateDiff(from, to, unit);
日期格式化
/**
* 日期格式化
*/
const { UnitConfig } = XTT;
UnitConfig.parseTime(time, pattern);
添加日期范围
/**
* 添加日期范围
*/
const { UnitConfig } = XTT;
UnitConfig.addDateRange(params, dateRange, propName);
图片/文件转换
base64转换为blob
/**
 * base64转换为blob
 * @param {String} urlData 
 * @returns {Blob}
 */
const { UnitConfig } = XTT;
UnitConfig.dataURLtoFile(urlData);
验证是否为blob格式
/**
 * 验证是否为blob格式
 */
const { UnitConfig } = XTT;
UnitConfig.blobValidate(data);
url转base64
/**
 * url转base64
 */
const { UnitConfig } = XTT;
UnitConfig.urlToBase64(url);
blob转换为file
/**
 * blob转换为file
 */
const { UnitConfig } = XTT;
UnitConfig.blobToFile(newBlob, fileName);
base64补全
/**
 * base64补全
 */
const { UnitConfig } = XTT;
UnitConfig.vtBbace64(base);
图片压缩
/**
 * 图片压缩
 */
const { UnitConfig } = XTT;
UnitConfig.imageCompress(image);
获取图片base64
/**
 * 获取图片base64
 */
const { UnitConfig } = XTT;
UnitConfig.getBase64(img, callback);
图片按比例缩放
/**
 * 图片按比例缩放
 */
const { UnitConfig } = XTT;
UnitConfig.imageEqualScaling(img, tt = 700);
修改图片背景色
/**
 * 修改图片背景色
 */
const { UnitConfig } = XTT;
UnitConfig.setImageBack(image, color = "", name = "image");
图形压缩
/**
 * 图形压缩
 */
const { UnitConfig } = XTT;
UnitConfig.etOriginalFile(image, quality);
链接
判断url是否是http或https
//isHttp
const { UnitConfig } = XTT;
UnitConfig.isHttp(`http://localhost:8080`);
判断path是否为外链
//isExternal
const { UnitConfig } = XTT;
UnitConfig.isExternal(`http://localhost:8080`)
url判断有效
/**
 * url是否有效
 * @param {string} url
 * @returns {Boolean}
 */
const { UnitConfig } = XTT;
UnitConfig.validURL(url);
颜色
hex颜色转rgb颜色
//hexToRgb
const { UnitConfig } = XTT;
UnitConfig.hexToRgb(`String`);
rgb颜色转Hex颜色
//rgbToHex
const { UnitConfig } = XTT;
UnitConfig.rgbToHex(r, g, b);
变浅颜色值
//getLightColor
const { UnitConfig } = XTT;
UnitConfig.getLightColor(color, level);
变深颜色值
//getDarkColor
const { UnitConfig } = XTT;
UnitConfig.getDarkColor(color, level);
随机颜色值
//randomHexColor
const { UnitConfig } = XTT;
UnitConfig.randomHexColor();
其他方法
本地缓存localStorage
/**
 * 本地缓存
 * local.set(key, value) 存储
 * local.get(key) 获取
 * local.setJSON(key, jsonValue) 存储JSON
 * local.getJSON(key) 获取JSON
 * local.remove(key) 删除
 */
const { UnitConfig } = XTT;
UnitConfig.local.set(key, value);
UnitConfig.local.get(key);
UnitConfig.local.setJSON(key, jsonValue);
UnitConfig.local.getJSON(key);
UnitConfig.local.remove(key);
本地缓存sessionStorage
/**
 * 会话级缓存
 * session.set(key, value) 存储
 * session.get(key) 获取
 * session.setJSON(key, jsonValue) 存储JSON
 * session.getJSON(key) 获取JSON
 * session.remove(key) 删除
 */
const { UnitConfig } = XTT;
UnitConfig.session.set(key, value);
UnitConfig.session.get(key);
UnitConfig.session.setJSON(key, jsonValue);
UnitConfig.session.getJSON(key);
UnitConfig.session.remove(key);
关闭微信浏览器窗口
/**
 * 关闭微信浏览器窗口
 * @param {*} next 
 */
const { UnitConfig } = XTT;
UnitConfig.WeixinJSBridgeClose(next);
转换字符串,undefined,null等转化为""
/**
* 转换字符串,undefined,null等转化为""
*/
const { UnitConfig } = XTT;
UnitConfig.parseStrEmpty(str);
数据合并
/**
* 数据合并
*/
const { UnitConfig } = XTT;
UnitConfig.mergeRecursive(source, target);
构造树型结构数据
/**
 * 构造树型结构数据
 * @param {*} data 数据源
 * @param {*} id id字段 默认 'id'
 * @param {*} parentId 父节点字段 默认 'parentId'
 * @param {*} children 孩子节点字段 默认 'children'
 */
const { UnitConfig } = XTT;
UnitConfig.handleTree(data, id, parentId, children);
返回项目路径
/**
 * 返回项目路径
 */
const { UnitConfig } = XTT;
UnitConfig.getNormalPath(p);
小写字母判断有效
/**
 * 小写字母判断有效
 * @param {string} str
 * @returns {Boolean}
 */
const { UnitConfig } = XTT;
UnitConfig.validLowerCase(str);
大写字母判断有效
/**
 * 大写字母判断有效
 * @param {string} str
 * @returns {Boolean}
 */
const { UnitConfig } = XTT;
UnitConfig.validUpperCase(str);
字母判断有效
/**
 * 字母判断有效
 * @param {string} str
 * @returns {Boolean}
 */
const { UnitConfig } = XTT;
UnitConfig.validAlphabets(str);
邮箱判断有效
/**
 * 邮箱判断有效
 * @param {string} email
 * @returns {Boolean}
 */
const { UnitConfig } = XTT;
UnitConfig.validEmail(email);
字符串判断有效
/**
 * 字符串判断有效
 * @param {string} str
 * @returns {Boolean}
 */
const { UnitConfig } = XTT;
UnitConfig.isString(str);
是否为数组
/**
 * 是否为数组
 * @param {Array} arg
 * @returns {Boolean}
 */
const { UnitConfig } = XTT;
UnitConfig.isArray(arg);
转驼峰
/**
 * 转驼峰
 */
const { UnitConfig } = XTT;
UnitConfig.toHump(name);
驼峰转下划线
/**
 * 驼峰转下划线
 */
const { UnitConfig } = XTT;
UnitConfig.toLine(name);
将表情转为字符
/**
 * 将表情转为字符
 */
const { UnitConfig } = XTT;
UnitConfig.utf16toEntities(str);
将字符转为表情
/**
 * 将字符转为表情
 */
const { UnitConfig } = XTT;
UnitConfig.uncodeUtf16(str);
SHA1加密
/**
 * SHA1加密
 */
const { UnitConfig } = XTT;
UnitConfig.encodeUTF8(s);
退出钉钉应用
/**
 * 退出钉钉应用
 */
const { UnitConfig } = XTT;
UnitConfig.closeDing(next = () => { });
获取当前终端
/**
 * 获取当前终端
 */
const { UnitConfig } = XTT;
UnitConfig.isPLUS(keys);
是否为null
/**
 * 是否为null
 */
const { UnitConfig } = XTT;
UnitConfig.isNull(value);
对象数组针对某个字段去重
/**
 * 对象数组针对某个字段去重
 */
const { UnitConfig } = XTT;
UnitConfig.uniqueArray(arr, field);
字典转换
/**
 * 字典转换
 */
const { UnitConfig } = XTT;
UnitConfig.translateDict(id, dictList);
获取多个字典时匹配字典类型
/**
 * 获取多个字典时匹配字典类型
 */
const { UnitConfig } = XTT;
UnitConfig.matchDictType(code, list);
获取多个枚举时匹配枚举类型
/**
 * 获取多个枚举时匹配枚举类型
 */
const { UnitConfig } = XTT;
UnitConfig.matchEnumType(code, list);
数组根据某个属性分组
/**
 * 数组根据某个属性分组
 */
const { UnitConfig } = XTT;
UnitConfig.groupArray(array, key);

BUS 事件总线

const { Bus } = XTT;

// 挂载
Bus.$on(`自定义名称`, (res) => {
    console.log(`回调`)
});

// 触发
Bus.$emit(`自定义名称`, `传参 || 空`);

// 卸载
Bus.$off(`自定义名称`);// 卸载
Bus.$off([`自定义名称`, `自定义名称`]);// 批量卸载
Bus.$off();// 批量卸载

webSocket

const { WebSocket } = XTT;
const Socket = WebSocket(`http://localhost:8080/websocket/message`);

Socket.on("open", (event) => {
	console.log("连接到服务器", event);
});
Socket.on("message", (mes) => {
	console.log("message", mes);
});
Socket.on("error", (error) => {
	console.log("error", error);
});
Socket.on("close", (event) => {
	console.log("close", event);
});

watermark 水印

const { Watermark } = XTT;

// 单行
Watermark.set(`这是一个水印`); 
// 多行
Watermark.set(`这是第一行\n这是第二行`);

组件

样式

类型Class名称大小示例
colorcolor-white白色
color-black黑色
color-success成功颜色
color-warning警告颜色
color-danger危险颜色
color-info信息颜色
color-blue蓝色
background-colorbackground-white白色
background-black黑色
font-sizefS-1字体大小0-40fS-0fS-1···fS-40
borderborder-base-1border-light-1border-lighter-1border-extra-light-1边框颜色宽度0-5border-base-1borderT-base-1borderB-base-1borderTB-base-1borderL-base-1borderR-base-1borderLR-base-1
border-radiusborder-radius-1边框圆角0-10border-radius-0border-radius-1···border-radius-10
paddingpadding-1padding0-40padding-1paddingT-1paddingB-1paddingTB-1paddingL-1paddingR-1paddingLR-1
marginmargin-1margin0-40margin-1marginT-1marginB-1marginTB-1marginL-1marginR-1marginLR-1
overFlowoverFlow-1文字溢出0-10overFlow-0overFlow-1···overFlow-10
flexflex-box盒模型
flex-item-centerY位于容器的中心
flex-item-startY位于容器的开头
flex-item-endY位于容器的结尾
flex-just-centerX位于容器的中心
flex-just-grapX平均于各行之间留有空白
flex-just-no-grapX平均于各行之间没有空白
flex-just-startX位于容器的开头
flex-just-endX位于容器的结尾
flex-wrap换行
flex-nowrap不换行
flex-column竖向排列
flex-grow占用剩余空间
inlinedisplay-inline行内元素
blockdisplay-block块元素
inline-blockdisplay-inline-block行内块元素
text-aligntext-align-center文字居中
text-align-left文字居左
text-align-right文字居右
font-weightfont-weight-bold文字加粗
widthwidth-HP宽度铺满父元素
heightheight-HP高度铺满父元素
overflowoverflow-hiddenXY轴溢出隐藏
overflowX-hiddenX轴溢出隐藏
overflowY-hiddenY轴溢出隐藏
overflow-autoXY轴滚动条
overflowX-autoX轴滚动条
overflowY-autoY轴滚动条
white-spacewhite-space-nowrap文字不换行
positionposition-r绝对定位
position-a相对定位
cursorcursor-pointer鼠标小手

其他方法

Vue3 获取图片

//按需加载
import XTT from "@lovels/xtt
const { UnitConfig } = XTT;
UnitConfig.getImageUrl = ((url) => {
  return new URL(`./assets/images/${url}`, import.meta.url).href || '';
})

//全局注册
import XTT from "@lovels/xtt
app.use(XTT, 'Vue3')
//Vue3 获取图片 注册全局方法
if (app.config.globalProperties.$UnitConfig) {
  app.config.globalProperties.$UnitConfig.getImageUrl = ((url) => {
    return new URL(`./assets/images/${url}`, import.meta.url).href || '';
  })
}
proxy.$UnitConfig.getImageUrl('image.png');

包管理

npm version | major | minor | patch | premajor | preminor | prepatch | prerelease | from-git

发布

补丁版本 npm version patch

测试版本 npm version prerelease

npm publish --access public

加入组织

npm init --scope=lovels (自行忽略)

Node.js

v18.2.0

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3-11

1 year ago

1.0.3-10

1 year ago

1.0.3-9

1 year ago

1.0.3-8

1 year ago

1.0.3-7

1 year ago

1.0.3-6

1 year ago

1.0.3-5

1 year ago

1.0.3-4

1 year ago

1.0.3-3

1 year ago

1.0.3-2

1 year ago

1.0.3-1

1 year ago

1.0.3-0

1 year ago

1.0.2-4

1 year ago

1.0.2-3

1 year ago

1.0.2-2

1 year ago

1.0.2-1

1 year ago

1.0.2-0

1 year ago

1.0.1-1

1 year ago

1.0.1-0

1 year ago

1.0.0

1 year ago