0.5.6 • Published 3 years ago
dougy-lib v0.5.6
业务
获取应用
- 方法:
getBill - 类型:
(target: string) => Promise<Menu | undefined> - 参数:
name单据名称billName/单据类型billType,必传menus菜单列表,非必传
- 说明:从菜单列表中获取billName/billType的菜单,若传入menus,则从menus中查找,默认情况下从缓存中查找
- 代码示例:
import { getBill } from "dougy-lib";
await getBill("收入合同"); // 通过名称获取收入合同应用- 返回示例:
{
billType: "IncomeContract",
billTypeName: "收入合同",
cDataPower: "1",
cProjectPower: "1",
createTime: "",
creatorId: "",
creatorName: "",
diyId: "IncomeContract",
diyType: "1",
icon: "static/images/icon/incomeContract.png",
isDefault: "0",
isEnable: "0",
isFavourite: "0",
oldName: "收入合同",
recordId: "",
sort: 1,
vBillPower: [
0, 1, 2, 3, 4, 5, 7, 9, 15, 16, 17, 18, 19, 20, 15, 16
],
vModule: "CR",
vModuleName: "合同管理",
vName: "收入合同",
vPkMenu: "81",
};获取应用权限
- 方法:
getPower - 类型:
function getPower(target: Menu | string): Power & { notExist: boolean; } - 参数:
target单据对象/单据名称/单据类型
- 说明:从单据对象,或用单据名称/单据类型查询到的单据对象中取得应用的权限
- 代码示例:
import { getPower } from "dougy-lib";
const incomeContract = {...} // 收入合同应用对象
getPower(incomeContract);
getPower("收入合同")
getPower("IncomeContract")- 返回示例:
{
vBillPower: [], // 业务权限列表
cDataPower: "empty", // 数据权限
cProjectPower: "empty", // 项目权限
notExist: true, // 是否未查询到应用
}验证应用权限
- 方法:
powerVerify - 类型:
(target: string, powerName: (typeof POWER_NAMES)[number]) => { valid: boolean; message: string; } - 参数:
target单据名称/单据类型powerName权限名称查看,新增,编辑,删除,导入,打印,支付确认,导出,配置,修订,项目看板,公司看板,统计分析,开票,付款,去签证,去执行,去结算,去申请开票,去开票,去收款,去申请付款,去付款,去采购
- 说明:从单据对象,或用单据名称/单据类型查询到的单据对象中取得应用的权限
- 代码示例:
import { powerVerify } from "dougy-lib";
powerVerify("收入合同", "查看")
powerVerify("IncomeContract", "新增")- 返回示例:
{
valid: false, // 是否有权限
message: "未查询到应用权限", // 提示文字
}获取应用列表权限
- 方法:
getDataPower - 类型:
(target: string) => DataPowerReturn - 参数:
target单据名称/单据类型
- 说明:获取单据列表的数据权限
- 代码示例:
import { getDataPower } from "dougy-lib";
getDataPower("收入合同")
getDataPower("IncomeContract")- 返回示例:
{
cProjectPower: "0", // 是否有权限
cDataPower: "0", // 提示文字
}获取单据在选择时的权限
- 方法:
getSelectDataPower - 类型:
(options: GetSelectDataPowerOptions) => DataPowerReturn - 参数:
options.bill页面单据名称/单据类型options.selectTarget选择目标的单据名称/单据类型options.billIsDoc页面单据是否为档案类型options.selectTargetIsDoc选择目标单据是否为档案类型
- 代码示例:
import { getSelectDataPower } from "dougy-lib";
getSelectDataPower({
bill: "收入合同",
selectTarget: "项目",
billIsDoc: false,
selectTargetIsDoc: false
})- 返回示例:
{
cProjectPower: "0", // 是否有权限
cDataPower: "0", // 提示文字
}获取参数控制开启状态
- 方法:
getParameterConfiguration - 类型:
(type: string, i: number) => boolean - 参数:
type单据名称i位置
- 代码示例:
import { getParameterConfiguration } from "dougy-lib";
getParameterConfiguration("付款登记", 7)- 返回示例:
false数据
验证空数据
- 方法:
dataVerify - 类型:
function dataVerify<T = unknown>(data: T | undefined, defaultData: T): Tfunction dataVerify<T = unknown>(data: T | undefined): T | undefined
- 参数:
data验证数据对象defaultData默认值,非必传
- 代码示例:
import { dataVerify } from "dougy-lib";
dataVerify("", [])
dataVerify(undefined, [])
dataVerify([{}], [])
dataVerify([{}])- 返回示例:
// ""
// []
// [{}]
// [{}]列表合并
- 方法:
mergeList - 类型:
<P, T = P>(prevList: P[], curList: T[], options?: { params?: Record<string, unknown> | undefined; transform?: ((item: T) => P) | undefined; } | undefined) => P[] - 参数:
prevList历史数组curList当前数组options合并配置非必传options.params分页参数非必传options.transformcurItem到prevItem的转换方法非必传
- 说明:如果是单据列表数据的合并,则必须传options.params
- 代码示例:
import { mergeList } from "dougy-lib";
mergeList([1,2], [3,4])
mergeList(
[
{ v: 123, c: "222" },
{ v: 123, c: "222" },
],
[{ t: "2223" }],
{
transform: item => ({ v: Number(item.t), c: "1" }),
}
);- 返回示例:
// [1,2,3,4]
// [
// { v: 123, c: "222" },
// { v: 123, c: "222" },
// { v: 2223, c: "1" }
// ]数组比较 arrayCompare
对象比较 objCompare
金额转大写 amountUpper
是否改变 isDiff
工具
缓存 DgyStorage
获取URL查询参数
- 方法:
getUrlQuery - 类型:
(params?: { url?: string, key?: string }) => Record<string, string> - 参数:
url需要获取参数的url,非必传key需要从url中获取的某一个参数的键名,非必传
- 说明:从url中获取参数,两个参数都是非必传,传入url则从该url中获取参数,默认从当前页面url中获取,传入key则返回该键名对应的查询参数,默认返回所有参数的对象
- 代码示例:
import { getUrlQuery } from "dougy-lib";
getUrlQuery(); // 获取当前url中所有参数
getUrlQuery({ key: "corpId" }) // 获取当前url中的corpId的值
getUrlQuery({ key: ["userId", "corpId"] }) // 获取当前url中的{userId, corpId}
getUrlQuery({ url: "xxx" }) // 获取传入url中的所有参数
getUrlQuery({ url: "xxx", key: "corpId" }) // 获取传入url中的userId
getUrlQuery({ url: "xxx", key: ["userId", "corpId"] }) // 获取传入url中的{userId, corpId}- 返回示例:
// {userId: "123", corpId: "ding123"}
// 或
// "123"
// 或
// undefined数字转内存大小 toSC
对象转字符串 jsonToString
字符串转对象 stringToJson
UUID uuid
路径取值
- 方法:
getPropByPath - 类型:
<T = unknown>(target: Record<string, unknown> | unknown[], path: string, defaultValue?: T) => T - 参数:
target取值对象path取值路径defaultValue未取到值时的默认值
- 说明:可以使用字符串拼接属性,从目标对象中取值
- 代码示例:
import { getPropByPath } from "dougy-lib";
getPropByPath({}, "a.b")
getPropByPath(
{ test: [{ val: [{ num: 123, str: "string" }] }] },
"test[0].val[0].num"
)- 返回示例:
// ""
// 123防抖
- 方法:
debounce - 类型:
(fn: (...arg: unknown[]) => unknown | Promise<unknown>, delary?: number): (...arg: unknown[]) => void - 参数:
fn用于防抖的方法回调delary延时,默认150s,非必传
- 说明:无论执行多少次,都只会在最后一次触发delary毫秒后才执行,并且每次执行,都会刷新delary
- 代码示例:
import { debounce } from "dougy-lib";
const testFn = debounce((i: number) => {
console.log(i)
}, 200)
testFn(1);
testFn(2);
testFn(3);
setTimeout(() => {
testFn(4);
}, 150)
setTimeout(() => {
testFn(5)
}, 300)
setTimeout(() => {
testFn(6)
}, 510)- 返回示例:
// 5
// 6节流
- 方法:
throttle - 类型:
(fn: (...arg: unknown[]) => unknown | Promise<unknown>, delary?: number): (...arg: unknown[]) => void - 参数:
fn用于节流的方法回调delary延时,默认150s,非必传
- 说明:在delary延时内,只执行第一次的调用,后面的调用将被取消
- 代码示例:
import { throttle } from "dougy-lib";
const testFn = throttle((i: number) => {
console.log(i)
}, 200)
testFn(1);
testFn(2);
testFn(3);
setTimeout(() => {
testFn(4);
}, 150)
setTimeout(() => {
testFn(5)
}, 300)
setTimeout(() => {
testFn(6)
}, 510)- 返回示例:
// 1
// 5
// 6复选
- 方法:
checkSelect - 类型:
<I = string | number | Record<string, unknown>>(checkList: I[], item: I, key?: keyof I | undefined) => CheckoutSelectReturn<I> - 参数:
checkList已选列表item判断选中项key判断键名,当item是对象时需要传该参数,非必传
- 说明:判断某项是否存在列表中,并返回复选结果
- 代码示例:
import { checkSelect } from "dougy-lib";
checkSelect([1, 3, 6], 2)
checkSelect([{ a: 1 }, { a: 2 }, { a: 3 }], { a: 2 }, "a")- 返回示例:
{
list: [1, 3, 6, 2],
prevList: [1, 3, 6],
isHad: false,
}
{
list: [{ a: 1 }, { a: 3 }],
prevList: [{ a: 1 }, { a: 2 }, { a: 3 }],
isHad: true,
}队列执行 queue
获取终端 getTerminal
配置
数字
税额计算
计算税额
- 方法:
getTaxAmount - 类型:
(num: string | number, rate: string | number, type: "byAmount" | "byIncluded") => number - 参数:
num用于计算税额的金额rate税率typebyAmount:根据不含税金额计算,byIncluded:根据含税金额计算
- 说明:根据含税金额/不含税金额、税率计算税额
- 代码示例:
import { getTaxAmount } from "dougy-lib";
getTaxAmount("167936.29", 13, "byIncluded") // "19320.10"计算不含税金额
- 方法:
getAmount - 类型:
(taxIncludedAmount: number | string, rate: number | string, retain?: number | "none") => TaxResult - 参数:
taxIncludedAmount含税金额rate税率retain保留小数位(默认2)
- 说明:根据含税金额/不含税金额、税率计算税额
- 代码示例:
import { getAmount } from "dougy-lib";
getAmount(167936.3, 13)- 返回示例:
{
taxIncludedAmount: "167936.30",
amount: "148616.19",
rate: 13,
taxAmount: "19320.11",
}计算含税金额
- 方法:
getTaxIncludedAmount - 类型:
(amount: number | string, rate: number | string, retain?: number | "none") => TaxResult - 参数:
amount不含税金额rate税率retain保留小数位(默认2)
- 说明:根据含税金额/不含税金额、税率计算税额
- 代码示例:
import { getTaxIncludedAmount } from "dougy-lib";
getTaxIncludedAmount(148616.19, 13)- 返回示例:
{
taxIncludedAmount: "167936.29",
amount: "148616.19",
rate: 13,
taxAmount: "19320.10",
}精度计算
- 对象:
calc - 方法:
add(...nums: (number | string)[]) => number加sub(...nums: (number | string)[]) => number减mul(...nums: (number | string)[]) => number乘div(...nums: (number | string)[]) => number除
- 参数:
nums需要计算的数字集合
- 说明:
calc是一个包含加减乘除方法的对象,同样可以单独使用任何一个计算方法,calc中计算的使用方式,同单据使用一致 - 代码示例:
import { calc } from "dougy-lib";
// 或单个使用
// import { add, sub, mul, div } from "dougy-lib"
calc.add(0.1, 0.1) // 0.2
calc.sub(0.3, 0.1) // 0.2
calc.mul(0.6, 3) // 1.8
calc.div(0.3, 0.1) // 3
calc.div(167936.3, 1.13).toFixed(2) // "148616.19"转千分符金额
- 方法:
numberCurrency - 类型:
(num: number | string, options?: CurrentSeparateOptions) => string - 参数:
num需要转换的数字或字符串,必传options需要从url中获取的某一个参数的键名,非必传options.prefix字符串前缀,非必传options.suffix字符串后缀,非必传options.retain保留位数,默认跟随num的小数位长度,非必传options.currency是否添加货币符号,非必传
- 说明:将传入的数值转换为带有千分符的金额数值
- 代码示例:
import { currencyConvert } from "dougy-lib";
numberCurrency(123) // "123"
numberCurrency("123456.001") // "123,456.001"
numberCurrency("12332543.00123", { retain: 3, currency: true }) // "¥12,332,543.001"
numberCurrency("12332543.00123", { prefix: "-", suffix: "=", retain: 3 }) // "-12,332,543.001="是否为有效数字 numberValid
任意值转数字 toNumber
功能
数据请求 http
请求对比 pedding
Vue
指令
金额千分符 currency
过滤
金额千分符 currency
自定义
枚举
0.5.4
3 years ago
0.5.3
3 years ago
0.5.6
3 years ago
0.5.5
3 years ago
0.4.9
3 years ago
0.4.8
3 years ago
0.5.0
3 years ago
0.5.2
3 years ago
0.3.9
3 years ago
0.4.5
3 years ago
0.4.4
3 years ago
0.4.7
3 years ago
0.4.6
3 years ago
0.4.1
3 years ago
0.4.3
3 years ago
0.4.2
3 years ago
0.3.8
3 years ago
0.3.7
3 years ago
0.3.6
3 years ago
0.3.5
3 years ago
0.3.4
3 years ago
0.3.2
3 years ago
0.3.1
3 years ago
0.3.0
3 years ago
0.2.9
3 years ago
0.2.8
3 years ago
0.2.7
3 years ago
0.2.6
3 years ago
0.2.5
3 years ago
0.2.4
3 years ago
0.2.3
3 years ago
0.2.1
3 years ago
0.2.0
3 years ago
0.1.9
3 years ago
0.1.8
3 years ago
0.1.7
3 years ago
0.1.5
3 years ago
0.1.4
3 years ago
0.1.3
3 years ago
0.1.2
3 years ago
0.1.1
3 years ago
0.1.0
3 years ago
0.0.9
3 years ago
0.0.8
3 years ago
0.0.7
3 years ago
0.0.6
3 years ago
0.0.5
3 years ago
0.0.4
3 years ago
0.0.3
3 years ago
0.0.2
3 years ago
0.0.1
3 years ago