🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@deppon/deppon-utils

Package Overview
Dependencies
Maintainers
1
Versions
113
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@deppon/deppon-utils

Frontend utility functions

latest
npmnpm
Version
2.5.79
Version published
Weekly downloads
5.3K
710.81%
Maintainers
1
Weekly downloads
 
Created
Source

@deppon/deppon-utils

前端工具函数库,适用于 Vue 项目。

功能

提供丰富的工具函数,包括:

DOM 操作

  • removeClass - 移除 DOM 类名
  • removeDom - 移除 DOM 元素
  • insertAfter - 在元素后插入
  • findParentDom - 查找父元素

浏览器相关

  • browser - 浏览器检测
  • setTitle - 设置页面标题
  • windowScrollTop - 获取/设置滚动位置
  • scrollTo - 滚动到指定位置
  • scrollToElement - 滚动到指定元素
  • noScroll - 禁止滚动
  • resolveIOSScroll - 解决 iOS 滚动问题

工具函数

  • debounce - 防抖
  • throttle - 节流
  • random - 随机数生成
  • isPhone - 手机号验证
  • isArray - 数组判断
  • isObject - 对象判断
  • isString - 字符串判断
  • removeSpace - 移除空格
  • lengthOfStr - 字符串长度计算
  • splitArray - 数组分割

URL 处理

  • parseUrlParams - 解析 URL 参数
  • objectToParams - 对象转 URL 参数
  • replcaeUrlParam - 替换 URL 参数
  • replcaeUrlParams - 替换多个 URL 参数
  • localUrl - 本地 URL 处理

iframe 路由跳转

  • isViewTabSupported - 检查是否支持 viewTab(是否在 iframe 环境中)
  • getParentParams - 从父级 iframe 获取参数
  • appendUrlParam - 在 URL 后追加参数
  • closeParentTab - 关闭父级标签页
  • viewTab - 在 iframe 环境中打开新标签页
  • navigate - 智能路由跳转(优先使用 viewTab,否则使用普通跳转)
  • isUap - 判断系统是否在 UAP 环境内
  • getCookie - 获取 Cookie
  • setCookieDomain - 设置 document.domain 以支持 cookie 跨域
  • copyStr - 复制字符串
  • copyToClipboard - 复制到剪贴板
  • preloadImage - 预加载图片
  • Time - 时间处理
  • queryCode - 查询代码
  • login - 登录
  • loginCheck - 登录检查
  • authorize - 授权
  • checkName - 名称检查
  • open - 打开链接
  • openApp - 打开 App
  • xDomain - 跨域处理
  • flexible - 移动端适配
  • limitVersion - 版本限制
  • observerDom - DOM 观察器
  • md5 - MD5 加密
  • getRestTimeStr - 获取剩余时间字符串

使用示例

iframe 路由跳转

import {
    viewTab,
    navigate,
    getParentParams,
    isViewTabSupported,
    appendUrlParam,
    closeParentTab,
} from '@deppon/deppon-utils';

// 检查是否支持 viewTab
if (isViewTabSupported()) {
    // 从父级获取参数
    const params = getParentParams();
    console.log('父级参数:', params);

    // 打开新标签页
    viewTab('产品折扣新增', '/product/discount/add', 'iframe', params, {
        uumsFunction: {
            functionCode: 'CMC_FUNCTION_00002',
            sourceSystem: 'CMC',
        },
        appendIsUap: true, // 默认会在 URL 后追加 isUap=true
    });

    // 或者使用智能跳转(自动降级)
    navigate('产品折扣新增', '/product/discount/add', 'iframe', params, {
        uumsFunction: {
            functionCode: 'CMC_FUNCTION_00002',
            sourceSystem: 'CMC',
        },
    });
}

// 在 URL 后追加参数
const urlWithParam = appendUrlParam('/product/list', 'isUap=true');

// 关闭父级标签页
closeParentTab('/product/list', 'IFRAME');

实际项目中的使用方式

// 替换原有的 top.viewTab 调用
import { viewTab, getParentParams, appendUrlParam, closeParentTab } from '@deppon/deppon-utils';

// 原有代码:
// top.viewTab && top.viewTab("CMC-产品折扣新增", url, "iframe", params, {
//     uumsFunction: {
//         functionCode: "CMC_FUNCTION_00002",
//         sourceSystem: "CMC",
//     },
// });

// 新代码:
const params = getParentParams();
viewTab('CMC-产品折扣新增', url, 'iframe', params, {
    uumsFunction: {
        functionCode: 'CMC_FUNCTION_00002',
        sourceSystem: 'CMC',
    },
});

// 如果需要先关闭标签页再打开
const tabUrl = appendUrlParam(url, 'isUap=true');
closeParentTab(tabUrl, 'IFRAME');
viewTab('CMC-产品折扣新增', url, 'iframe', params, {
    uumsFunction: {
        functionCode: 'CMC_FUNCTION_00002',
        sourceSystem: 'CMC',
    },
});

UAP 环境判断

import { isUap } from '@deppon/deppon-utils';

// 判断是否在 UAP 环境中
if (isUap()) {
    // UAP 环境下的逻辑
    console.log('当前在 UAP 环境中');
    // 隐藏头部、侧边栏等
    // 使用 UAP 特定的样式
} else {
    // 非 UAP 环境下的逻辑
    console.log('当前不在 UAP 环境中');
    // 显示完整的页面布局
}

// 在 Vue 组件中使用
export default {
    data() {
        return {
            isUapEnv: isUap(),
        };
    },
    mounted() {
        if (this.isUapEnv) {
            // UAP 环境初始化逻辑
        }
    },
};

UAP 环境判断逻辑:

  • 检查 URL 参数中是否有 isUap=true(支持 query 和 hash 模式)
  • 检查是否在 iframe 环境中且父级支持 viewTabExt

使用场景:

  • 根据环境显示/隐藏页面元素(如头部、侧边栏)
  • 应用不同的样式(如 UAP 环境下调整布局)
  • 执行不同的初始化逻辑
import { setCookieDomain } from '@deppon/deppon-utils';

// 在应用初始化时调用,自动设置 document.domain 以支持 cookie 跨域
setCookieDomain();

// 在 Vue 应用中使用
import { createApp } from 'vue';
import { setCookieDomain } from '@deppon/deppon-utils';

const app = createApp(App);
setCookieDomain(); // 在应用创建时调用
app.mount('#app');

设置逻辑:

  • 如果 URL 包含 deppontest.com,自动设置 document.domain = 'deppontest.com'
  • 如果 URL 包含 deppon.com,自动设置 document.domain = 'deppon.com'

注意事项:

  • document.domain 只能在当前域或其父域上设置
  • 设置 document.domain 后,端口号会被忽略
  • 如果设置失败(例如跨域限制),会静默失败,不影响其他功能

Keywords

utils

FAQs

Package last updated on 22 Jul 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts