Skip to content

JPwise-Web 工具方法参考 - Claude Code

🛠️ 核心工具方法详解

📅 日期时间工具

javascript
import { jnpf } from '@/utils/jnpf'

// 日期格式化
jnpf.dateFormat(new Date(), 'yyyy-MM-dd')
jnpf.dateFormat(new Date(), 'yyyy-MM-dd HH:mm:ss')

// 相对时间显示
jnpf.toDateText(timestamp)                    // 转相对时间描述

// 日期计算
jnpf.getDate('YYYY-MM-DD', 'd', 7)           // 获取7天后的日期
jnpf.toDate(值, 'YYYY-MM-DD')                // 通用日期格式化
jnpf.timestamp(日期)                         // 转时间戳
jnpf.getSubDays(日期)                        // 计算日期差值
jnpf.timediff(开始时间, 结束时间)              // 计算时间差
jnpf.getDateInfo()                          // 获取当前日期字符串

🔢 数值计算工具

javascript
// 财务和精确计算
jnpf.toDecimal(数字)                         // 财务格式化
jnpf.add(a, b)                              // 精确加法
jnpf.sub(a, b)                              // 精确减法
jnpf.multiply(a, b)                         // 精确乘法
jnpf.div(a, b)                              // 精确除法

// 数组计算
jnpf.getMin(数组, '字段', 初始值)             // 查找最小值
jnpf.getMax(数组, '字段', 初始值)             // 查找最大值

// 格式化
jnpf.parseNumber(字符串)                     // 字符串转数字
jnpf.formatNumber(值)                       // 千分位格式化
jnpf.toThousands(值, "add"/"del")           // 千分位处理
jnpf.getAmountChinese(金额)                 // 金额转中文大写

💾 数据存储工具

javascript
// localStorage操作(保持数据类型)
jnpf.storageSet({键值对对象})                // 存储数据(保持类型)
jnpf.storageGet("键名")                     // 读取数据(还原类型)
jnpf.storageRemove("键名")                  // 删除数据
jnpf.storageClear()                        // 清除所有jpwise_*数据

// 使用示例
jnpf.storageSet({
  userPreferences: { pageSize: 20, theme: 'dark' },
  lastVisit: new Date()
})

const preferences = jnpf.storageGet('userPreferences')

🔐 权限检查工具

javascript
// 权限验证方法
jnpf.hasP("权限码")                         // 检查列权限
jnpf.hasFormP("字段权限码")                 // 检查表单字段权限  
jnpf.hasBtnP({code: "按钮码"})              // 检查按钮权限

// 使用示例
if (jnpf.hasFormP('SALARY')) {
  // 显示薪资字段
}

if (jnpf.hasBtnP({code: 'delete'})) {
  // 显示删除按钮
}

📋 枚举处理工具

javascript
// 枚举转换
jnpf.getEnumValue("文本", 枚举列表)          // 文本转编码
jnpf.getEnumText("编码", 枚举列表, 配置?)     // 编码转文本

// 使用示例
const statusList = [
  { enCode: "1", fullName: "启用" },
  { enCode: "0", fullName: "禁用" }
]
const statusText = jnpf.getEnumText("1", statusList) // 返回"启用"

🛠 通用工具函数

javascript
// ID和随机数
jnpf.idGeneratorNoParam()                   // 生成唯一ID
jnpf.getRandomInt(最小值, 最大值)             // 生成随机整数

// 数组和检查
jnpf.isInArr(ID, 数组)                      // 检查ID是否存在

// 设备和环境检查
jnpf.isPC()                                // 判断是否PC设备
jnpf.isInner()                             // 判断是否内网

// 流程相关
jnpf.checkFlowPhase(流程数据)               // 检查流程状态

// 动态执行
jnpf.getScriptFunc("JS代码")                // 执行JS字符串
jnpf.stringToFunctionObject("函数字符串")    // 字符串转函数对象

// 组件查找
jnpf.findAncestorRef("引用名", 父组件)        // 查找祖先组件引用

📝 表单验证工具

验证规则导入

javascript
import { required, email, phone } from '@/utils/formValidate'
import { validEmail, validPhone } from '@/utils/validate'

// 在data中定义验证规则
dataRule: {
  name: [required('名称不能为空')],
  email: [email('邮箱格式不正确')],
  phone: [phone('手机号格式不正确')]
}

🗂️ 数据字典工具

字典数据处理

javascript
import { getDictionaryInfo, setSelectParams } from '@/utils/base.js'

// 获取字典数据
getDictionaryInfo(code).then(res => {
  this.dictionaryOptions = res
})

// 设置选择参数
setSelectParams(params)

🔗 混入基础用法

必须使用的混入

javascript
// 列表页面混入
import listMixin from '@/mixins/basics/list'

// 表单页面混入
import formMixin from '@/mixins/basics/form'

// 权限控制混入
import btnPermission from '@/mixins/btn_permission'

export default {
  mixins: [listMixin, btnPermission],
  data() {
    return {
      apiUrl: '/api/module/list' // 配置API端点
    }
  }
}

📖 详细混入使用指南: 混入使用指南


相关文档: