tool.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. import Taro from '@tarojs/taro'
  2. const configRight = (params = {key: '', name: ''}, bc) => {
  3. const sysMenuObj = Taro.getStorageSync('sysMenuObj')
  4. if (sysMenuObj[params.key]) {
  5. if (bc) bc(params)
  6. } else {
  7. // 临时方案,后续优化
  8. Taro.$msg(`您没有${params.name}的权限~`)
  9. return
  10. }
  11. }
  12. const msgBase = (msgText, bc) => {
  13. Taro.showToast({
  14. title: msgText,
  15. icon: 'none',
  16. duration: 2000
  17. }).then(() => {
  18. if (bc) bc()
  19. })
  20. }
  21. const confirmMsgFn = (msgText, successBc, errorBc, title = '提示') => {
  22. Taro.showModal({
  23. title,
  24. content: msgText,
  25. success: function (res) {
  26. if (res.confirm) {
  27. if (successBc) successBc()
  28. } else if (res.cancel) {
  29. if (errorBc) errorBc()
  30. }
  31. }
  32. })
  33. }
  34. const getXOR = (val) => {
  35. var data = formatHex(val)
  36. var count = 0
  37. var sum = 0
  38. var ss = data.split(" ")
  39. for (var i = 0; i < ss.length; i++) {
  40. if (ss[i] === "") continue
  41. sum = sum ^ parseInt(ss[i], 16)
  42. count++
  43. }
  44. var hex = sum.toString(16)
  45. hex = hex.toUpperCase()
  46. if (hex.length < 2) hex = '0' + hex
  47. return hex
  48. }
  49. const formatHex = (s) => {
  50. var n = ""
  51. s = s.replace(/ ([0-9A-Fa-f]) /g, " 0$1 ")
  52. s = s.replace(/\s/g, "")
  53. for (var i = 0; i < s.length; i++) {
  54. n += s[i]
  55. if (i % 2 == 1 && i != s.length - 1) n += " "
  56. }
  57. return n
  58. }
  59. const transToArray = (str, num) => { // 将字符串分割成每n个一组
  60. let arr = [] //保存每次截取后的字符串
  61. let counts = Math.ceil(str.length / num) //循环截取的次数,向上取整
  62. let [s, e] = [0, num]
  63. for (let i = 0; i < counts; i++) {
  64. let newStr = str.substring(s, e)
  65. arr.push(newStr)
  66. s = e
  67. e += num
  68. }
  69. return arr
  70. }
  71. const transBuffer = (hex) => {
  72. const typeArray = new Uint8Array(hex.match(/[\da-f]{2}/gi).map((h) => {
  73. return parseInt(h, 16)
  74. }))
  75. const buffer = typeArray.buffer
  76. return buffer
  77. }
  78. const ab2hex = (buffer) => {// ArrayBuffer转16进度字符串示例
  79. const hexArr = Array.prototype.map.call(new Uint8Array(buffer),function(bit) {
  80. return ('00' + bit.toString(16)).slice(-2)
  81. })
  82. return hexArr.join('')
  83. }
  84. export {
  85. configRight,
  86. msgBase,
  87. confirmMsgFn,
  88. getXOR, // 异或校验
  89. formatHex,
  90. transToArray,
  91. transBuffer,
  92. ab2hex
  93. }