一些常用的工具函数(snows-utils),已发npm,会陆续更新

简介:一些常用的自定义方法

**注意:请用最新版本(之前的有些版本有小问题,目前没有找到删除指定的版本的方法)
       v2.0.0之前的版本都是没有通过webpack打包的,文件相对于2.0.0之后的会大一点(在同等方法内)

一些常用的工具函数snows-utils (npm.js)https://www.npmjs.com/package/snows-utilsGitLab.comhttps://gitlab.com/snows_l/source-snows-utils.git

一、安装以及使用

    1、安装:npm i snows-utils/yarn add snows-utils

    2、使用:

      1):统一导入:import xUtils from 'snows-utils'

      2):分别导入:import { splitChunk,arr2tree, arr2percentage[, ...] } from 'snows-utils'

二、所有方法

 1、dataType

    1)、getDataType(param)

    2)、isStr(param)

    3)、isNum(param)

    4)、isArr(param)

    5)、isObj(param)

    6)、isFunc(param)

    7)、isNull(param)

    8)、isUndef(param)

  2、Vue2Directive  (目前都是vue2的自定义指令 基于vue2)

    1)、dialogDrag(directiveName)

    2)、dialogDragWidth(directiveName)

    3)、dialogDragHeight(directiveName)

    4)、dialogDragScale(directiveName)

    5)、dialogFullScreen(directiveName)

    6)、focus(directiveName)

  3、Url

    1)、isUrl(url)

    2)、getParamKeyByUrl(url, name)

    3)、getAllParamsByUrl(url)

    4)、addParamOnLocation(key, value)

  4、Array

    1)、arr2percentage(valueList,  digit)

    2)、splitChunk(source, singleNum)

    3)、arr2tree(source, id, parentId, children, isAddHasChildAttr, isDelNnllChildAttr)

  5、Number

    1)、num2chineseStr(number)

    2)、num2MoneyFormat(number)

    3)、num2micrometer(number)

    4)、removeMicromete(number)

    5)、randomNum(minNum, maxNum)

    6)、isDecimal(number)

    7)、decimalLen(number)

  6、String

    1)、transformEmail(email)

    2)、transformPhone(mobile)

    3)、str2num(str)

    4)、isEmail(param)

    5)、isPhone(param)

三、方法描述

  1、dataType

    1)、getDataType(param)
      /**
        * @description: 判断数据的类型
        * @param { * } param 需要判断类型的值
        * @return { * } 返回判断的类型
        */


    2)、isStr(param)
      /**
        * @description: 判断是否是 字符串 类型
        * @param { * } param
        * @return { Boolean }
        */


    3)、isNum(param)
      /**
        * @description: 判断是否是 数字 类型
        * @param { * } param
        * @return { Boolean }
        */


    4)、isArr(param)
      /**
        * @description: 判断是否是 数组 类型
        * @param { * } param
        * @return { Boolean }
        */


    5)、isObj(param)
      /**
        * @description: 判断是否是 对象 类型
        * @param { * } param
        * @return { Boolean }
        */


    6)、isFunc(param)
      /**
        * @description: 判断是否是 函数 类型
        * @param { * } param
        * @return { Boolean }
        */


    7)、isNull(param)
      /**
        * @description: 判断是否是 unll 类型
        * @param { * } param
        * @return { Boolean }
        */


    8)、isUndef(param)
      /**
        * @description: 判断是否是 undefined 类型
        * @param { * } param
        * @return { Boolean }
        */

  2、Vue2Directive  (目前都是vue2的自定义指令 基于vue2)

    1)、dialogDrag(directiveName = 'dialogDrag')
      /**
        * @description: 基于vue2和elmentUI的el-dialog弹框拖拽 自定义指令 (调用就可以直接使用)
        * @param { String } directiveName 指令名称(不用加 v- 前缀) 默认 v-dialogDrag
        */


    2)、dialogDragWidth(directiveName = 'dialogDragWidth')
      /**
        * @description: 基于vue2和elmentUI的el-dialog弹框宽度缩放 自定义指令 (调用就可以直接使用)
        * @param { String } directiveName 指令名称(不用加 v- 前缀) 默认 v-dialogDragWidth
        */


    3)、dialogDragHeight(directiveName = 'dialogDragHeight')
      /**
        * @description: 基于vue2和elmentUI的el-dialog弹框 高度缩放 自定义指令 (调用就可以直接使用)
        * @param { String } directiveName 指令名称(不用加 v- 前缀) 默认 v-dialogDragHeight
        */


    4)、dialogDragScale(directiveName = 'dialogDragScale')
      /**
        * @description: 基于vue2和elmentUI的el-dialog弹框 大小缩放 自定义指令 (调用就可以直接使用)
        * @param { String } directiveName 指令名称(不用加 v- 前缀) 默认 v-dialogDragScale
        */


    5)、dialogFullScreen(directiveName = 'dialogFullScreen')
      /**
        * @description: 基于vue2和elmentUI的el-dialog弹框 双击title实现全屏 自定义指令 (调用就可以直接使用)
        * @param { String } directiveName 指令名称(不用加 v- 前缀) 默认 v-dialogFullScreen
        */


    6)、focus(directiveName = 'focus')
      /**
        * @description: 基于vue2自动聚焦 自定义指令 (调用就可以直接使用)
        * @param { String } directiveName 指令名称(不用加 v- 前缀) 默认 v-focus
        */

  3、Url

    1)、isUrl(url)
      /**
        * @description: 判断是否是Url地址
        * @param { String } url url
        * @return { Boolean } 是否是url
        */


    2)、getParamKeyByUrl(url, name)
      /**
        * @description:  在地址栏中获取指定的参数值
        * @param { String } Url url地址
        * @param { String } name 获取那个参数的值
        * @return { String | null }
        */


    3)、getAllParamsByUrl(url)
      /**
        * @description: 在指定url中获取所有的参数
        * @param { String } url url地址
        * @return { Object } 返回params对象
        */


    4)、addParamOnLocation(key, value)
      /**
        * @description: 给当前url添加param
        * @param { String } key 添加的参数名
        * @param { String } value 参数值
        * @return { Null } 没有返回值
        */

  4、Array

      1)、arr2percentage(valueList,  digit)
        /**
          * @description: 数组自动计算百分之比,加起来等于100%
          * @param { Array } valueList 源数组
          * @param { Number } digit 保留几位小数 默认保留两位小数
          * @return { Array } 返回转成百分比的数组
          */

      2)、splitChunk(source, singleNum)
        /**
          * @description: 将源数组source,以每组singleNum个进行分成二位数组 (可以用作分页)
          * @param { Array } source 源数组
          * @param { Number } singleNum 每组各个数
          * @return { Array } 处理好的二维数组
          */

      3)、arr2tree(source, id, parentId, children, isAddHasChildAttr, isDelNnllChildAttr)
        /**
          * @description: 将数组结构的数据转成树形结构
          * @param { Array } source 需要转换的源数据
          * @param { String } id id字段 默认 'id'
          * @param { String } parentId 父节点字段 默认 'parentId'
          * @param { String } children 孩子节点字段 默认 'children'
          * @param { Boolean } isAddHasChildAttr 是否添加hasChild属性 默认 false
          * @param { Boolean } isDelNnllChildAttr 是否删除children为undefined的children属性 默认 false
          * @return { Array } 返回多棵树组成的数组
          */


  5、Number

    1)、num2chineseStr(number)
      /**
        * @description: 阿拉伯数字转换成汉字--普通
        * @param { Number } number
        * @return { Number }  转换之后的大写
        */


    2)、num2MoneyFormat(number)
      /**
        * @description: 阿拉伯数字转换金钱格式
        * @param { Number } number
        * @return { String } 转换之后的金额
        */


    3)、num2micrometer(number)
      /**
        * @description: 金额添加千分位
        * @param { Number } number 需要添加千分位的数
        * @return{ Number }
        */


    4)、removeMicromete(number)
      /**
        * @description: 去除千分位中的‘,’
        * @param { Number } number 带千分位的数字
        * @return { Number }
        */


    5)、randomNum(minNum, maxNum)
      /**
        * @description 生成从minNum到maxNum的随机数
        * @param { Number } minNum 最小值
        * @param { Number } maxNum 最大值
        * @return { Number } 随机数
        */


    6)、isDecimal(number)
      /**
        * @description: 判断是否是小数
        * @param{ Number }Number
        * @return{ Boolean }
        */


    7)、decimalLen(number)
      /**
        * @description: 检查一个小数的小数位长度
        * @param { Number } number
        * @return { Number }
        */

  6、String

    1)、transformEmail(email)
      /**
        * @description: 将邮箱地址转换成加密带*  eg:sno***l@163.com
        * @param {string} email 邮箱地址
        * @return {string} 转成之后的邮箱地址
        */


    2)、transformPhone(mobile)
      /**
        * @description: 将电话转换成加密带*的电话
        * @param { String } mobile 手机号码
        * @return { String } 返回加密的手机号码
        */

    3)、str2num(str)
      /**
        * @description: str转数字
        * @param { String } str
        * @return { Number }
        */

    4)、isEmail(param)
      /**
        * @description: 判断是否是邮箱地址
        * @param { String } param 地址
        * @return { Boolean } 是否是邮箱地址
        */


    5)、isPhone(param)
      /**
        * @description: 判断是否是手机号码
        * @param { String } param 手机号吗
        * @return { Boolean } 是否是手机号码
        */
 

...

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,以下是C#完成雪花漫天飞舞的场景的代码示例: ```csharp using System; using System.Drawing; using System.Windows.Forms; public partial class FormSnow : Form { // 定义结构体SNOW,用于存储雪花的位置、大小、速度、加速度等信息 private struct SNOW { public int x, y; public int size; public int speed; public int accel; } private SNOW[] snows; // 存储所有雪花的数组 private int snowCount = 100; // 雪花的数量 private int timerInterval = 50; // 定时器的间隔(毫秒) private Random random = new Random(); // 随机数生成器 public FormSnow() { InitializeComponent(); InitSnows(); // 初始化雪花数组 timer1.Interval = timerInterval; timer1.Start(); // 启动定时器 } private void InitSnows() { snows = new SNOW[snowCount]; for (int i = 0; i < snowCount; i++) { snows[i].x = random.Next(ClientSize.Width); // 随机生成雪花的横坐标 snows[i].y = -random.Next(ClientSize.Height); // 随机生成雪花的纵坐标(在屏幕顶部) snows[i].size = random.Next(5, 20); // 随机生成雪花的大小 snows[i].speed = random.Next(1, 5); // 随机生成雪花的速度 snows[i].accel = random.Next(1, 3); // 随机生成雪花的加速度 } } private void MoveSnows() { for (int i = 0; i < snowCount; i++) { snows[i].y += snows[i].speed; // 更新雪花的纵坐标(向下移动) snows[i].speed += snows[i].accel; // 更新雪花的速度(加速下落) if (snows[i].y > ClientSize.Height + snows[i].size) { // 如果雪花移动到了屏幕下方,就重新生成一个雪花 snows[i].x = random.Next(ClientSize.Width); snows[i].y = -random.Next(ClientSize.Height); snows[i].size = random.Next(5, 20); snows[i].speed = random.Next(1, 5); snows[i].accel = random.Next(1, 3); } } } private void FormSnow_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; g.Clear(Color.Black); // 清空屏幕 // 绘制所有雪花 for (int i = 0; i < snowCount; i++) { g.FillEllipse(Brushes.White, snows[i].x, snows[i].y, snows[i].size, snows[i].size); } } private void timer1_Tick(object sender, EventArgs e) { MoveSnows(); // 更新雪花的位置和速度 Invalidate(); // 重绘屏幕 } } ``` 以上代码实现了雪花漫天飞舞的效果,其中: 1. 在 `InitSnows()` 方法中,利用随机函数生成了 `snowCount` 个随机位置、大小、速度、加速度的雪花,并存储在 `snows` 数组中; 2. 在 `MoveSnows()` 方法中,更新了所有雪花的位置和速度,并进行了边界检测,如果超出屏幕范围就重新生成一个雪花; 3. 在 `FormSnow_Paint()` 方法中,绘制了所有雪花; 4. 在 `timer1_Tick()` 方法中,调用 `MoveSnows()` 方法更新雪花的位置和速度,并调用 `Invalidate()` 方法重绘屏幕。 希望能够对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

snows_l

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值