• vue2自定义插件


    新建utils文件夹global.js

    1. export default {
    2. install(Vue, options = {}) {
    3. Vue.prototype.msgSuccess = function (msg) {
    4. this.$message({ showClose: true, message: msg, type: "success" });
    5. }
    6. Vue.prototype.msgError = function (msg) {
    7. this.$message({ showClose: true, message: msg, type: "error" });
    8. }
    9. Vue.prototype.msgWarning = function (msg) {
    10. this.$message({ showClose: true, message: msg, type: "warning" });
    11. }
    12. Vue.prototype.msgInfo = function (msg) {
    13. this.$message({ showClose: true, message: msg, type: "info" });
    14. }
    15. // 日期格式化
    16. Vue.prototype._parseTime = function (time, pattern) {
    17. if (arguments.length === 0 || !time) {
    18. return null
    19. }
    20. const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}'
    21. let date
    22. if (typeof time === 'object') {
    23. date = time
    24. } else {
    25. if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
    26. time = parseInt(time)
    27. } else if (typeof time === 'string') {
    28. time = time.replace(new RegExp(/-/gm), '/');
    29. }
    30. if ((typeof time === 'number') && (time.toString().length === 10)) {
    31. time = time * 1000
    32. }
    33. date = new Date(time)
    34. }
    35. const formatObj = {
    36. y: date.getFullYear(),
    37. m: date.getMonth() + 1,
    38. d: date.getDate(),
    39. h: date.getHours(),
    40. i: date.getMinutes(),
    41. s: date.getSeconds(),
    42. a: date.getDay()
    43. }
    44. const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
    45. let value = formatObj[key]
    46. // Note: getDay() returns 0 on Sunday
    47. if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] }
    48. if (result.length > 0 && value < 10) {
    49. value = '0' + value
    50. }
    51. return value || 0
    52. })
    53. return time_str
    54. }
    55. /**
    56. * 对象数组根据某一属性排序
    57. * @param {string} field
    58. * @param {boolean} rev true表示升序排列,false降序排序
    59. * @returns {function}
    60. */
    61. Vue.prototype._sortBy = function (field, rev) {
    62. if (rev === undefined) {
    63. rev = 1;
    64. } else {
    65. rev = (rev) ? 1 : -1;
    66. }
    67. return function (a, b) {
    68. let val1 = a[field] * 1;
    69. let val2 = b[field] * 1;
    70. if (val1 < val2) {
    71. return rev * 1;
    72. } else if (val1 > val2) {
    73. return rev * -1;
    74. }
    75. }
    76. }
    77. /**
    78. * 数字千分号
    79. * @returns {string}
    80. */
    81. Vue.prototype._formatNumber = function(num) {
    82. var decimalPart = '';
    83. num = num ? num.toString() : '0';
    84. if (num.indexOf('.') !== -1) {
    85. decimalPart = '.' + num.split('.')[1];
    86. num = parseInt(num.split('.')[0]);
    87. }
    88. var array = num.toString().split('');
    89. var index = -3;
    90. while (array.length + index > 0) {
    91. // 从单词的最后每隔三个数字添加逗号
    92. array.splice(index, 0, ',');
    93. index -= 4;
    94. }
    95. return array.join('') + decimalPart;
    96. };
    97. /**
    98. * 随机生成三位数
    99. * @returns {boolean}
    100. */
    101. Vue.prototype._mathRandom1000 = function() {
    102. return (Math.random() * 1000).toFixed(0) * 1
    103. }
    104. /**
    105. * 判断是否是手机端
    106. * @returns {boolean}
    107. */
    108. Vue.prototype._isMobile = function() {
    109. var flag = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)
    110. if (flag) {
    111. return true
    112. }
    113. }
    114. }
    115. }
    1. 消息函数

      • 定义了 msgSuccessmsgErrormsgWarning 和 msgInfo 方法,用于显示不同类型的消息。
    2. 日期格式化

      • _parseTime 函数根据给定的模式格式化日期,支持多种输入类型。
    3. 排序

      • _sortBy 函数允许根据指定字段对对象数组进行升序或降序排序。
    4. 数字格式化

      • _formatNumber 方法格式化数字,添加千分位分隔符。
    5. 随机数生成

      • _mathRandom1000 函数生成一个介于 0 到 999 之间的随机整数。
    6. 移动设备检测

      • _isMobile 方法根据用户代理字符串检查用户是否在移动设备上。

     

    示例用法

    可以提供一个安装和使用该插件的示例,以帮助用户理解如何在 Vue 应用中使用它。以下是简单的示例:

     

    1. import Vue from 'vue';
    2. import MyPlugin from './path/to/my-plugin';
    3. Vue.use(MyPlugin);
    4. // 现在你可以在组件中使用这些方法
    5. this.msgSuccess('操作成功!');

  • 相关阅读:
    通过二级域名解决1台云服务器搭建多个公众号后端服务的问题
    java8 (jdk 1.8) 新特性——Lambda
    JS Ajax 封装
    8、Spring 源码学习 ~ 自定义标签的解析
    Vue3的组件如何通讯
    计算机毕业设计(附源码)python智慧景区一体化售票系统
    Oracle11gr2 + plsql 配置
    RabbitMQ的stream流用法(output绑定通道 / input监听该通道的消息)
    如何通过日志恢复被删除的数据
    vue脚手架(vue-cli)详细安装过程
  • 原文地址:https://blog.csdn.net/qq_22187895/article/details/143356243