7bf089f135f9c0cb8c9cb567a761fb7c7af1d238.svn-base 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. import { type } from "os";
  2. export default {
  3. //数据存放到sessionStorage缓存
  4. setCache: function (key, val) {
  5. if (val instanceof Array) {
  6. let str = JSON.stringify(val);
  7. window.sessionStorage.setItem(key, str);
  8. } else {
  9. window.sessionStorage.setItem(key, val);
  10. }
  11. },
  12. //获取缓存sessionStorage数据
  13. getCache: function (key) {
  14. return window.sessionStorage.getItem(key);
  15. },
  16. //获取缓存localStorage数据
  17. setItem: function (key,val) {
  18. return localStorage.setItem(key,val);
  19. },
  20. //获取缓存localStorage数据
  21. getItem: function (key) {
  22. return localStorage.getItem(key);
  23. },
  24. /**
  25. * 比赛时间计时器
  26. * @param {分钟} f
  27. * @param {秒} s
  28. * @param {回掉方法} fun
  29. */
  30. timer: function (f, s, fun) {
  31. let timing = setInterval(function () {
  32. s++;
  33. if (s < 10) {
  34. s = "0" + s;
  35. }
  36. if (s == 60) {
  37. f++;
  38. s = '00';
  39. }
  40. fun && fun(f, s);
  41. }, 1000)
  42. },
  43. /**
  44. * 玩法投注公共方法
  45. * @param {玩法组件的选择赔率id数组} betting
  46. * @param {*当前玩法赔率及相关数据} bettingInfo
  47. * @param {*当前玩法赔率数据信息列表} data
  48. * @param {*Vuex里面的投注列表} getBettingList
  49. * @param {*当前组的玩法的title} name
  50. * @param {*判断当前组件是否已有投注} dataNum
  51. * @param {*修改当前样式回调方法} callback
  52. * @param {*更新Vuex投注列表} fun
  53. */
  54. bettingFunction: function (betting, bettingInfo, data, getBettingList, name, dataNum, callback, fun) {
  55. let isTrue = true;
  56. betting.forEach((e, index) => {
  57. if (bettingInfo.id == e.id) {
  58. data.forEach((res) => {
  59. if (bettingInfo.id == res.id) {
  60. callback && callback(res, false);
  61. betting.splice(index, 1);
  62. }
  63. })
  64. isTrue = false;
  65. }
  66. });
  67. if (isTrue) {
  68. betting.push(bettingInfo);
  69. betting.forEach((e) => {
  70. if (bettingInfo.id == e.id) {
  71. data.forEach(res => {
  72. if (bettingInfo.id == res.id) {
  73. callback && callback(res, true);
  74. }
  75. })
  76. isTrue = false;
  77. }
  78. })
  79. }
  80. let obj = {
  81. title: name,
  82. data: betting
  83. };
  84. let array = [];
  85. if (dataNum != 10000) {
  86. getBettingList[dataNum] = obj;
  87. } else {
  88. if (getBettingList) {
  89. if (getBettingList.length > 0) {
  90. getBettingList.push(obj);
  91. }
  92. } else {
  93. array.push(obj);
  94. }
  95. }
  96. fun && fun(getBettingList, array);
  97. },
  98. /**
  99. * 获取vuex相对应玩法index下标和投注数据集合
  100. * @param {组件类所有玩法数据集合} data
  101. * @param {组件里玩法别名} title
  102. * @param {从Vuex里面的投注列表的匹配对应的投注数据集合} betting
  103. * @param {相对应玩法index下标} dataNum
  104. */
  105. getBettingId(data, title, callback) {
  106. if (data) {
  107. data.forEach((res, index) => {
  108. if (res.title == title) {
  109. callback && callback(res.data, index);
  110. }
  111. });
  112. }
  113. },
  114. /**
  115. * 接口轮询定时器
  116. * @param {function} callback 定时器回调方法
  117. */
  118. ajaxTimerFun(callback){
  119. //到计时
  120. let timing = setInterval(function(){
  121. callback && callback(timing)
  122. },43200000);
  123. // },5000);
  124. },
  125. /**
  126. * 复合算法
  127. * @param {int} data 第几场赛事
  128. * @param {array} dataList 投注赛事列表
  129. */
  130. betPlay(data,dataList){
  131. let listLenth = dataList.length;
  132. //赔率算法
  133. let addSum =1;
  134. dataList.forEach((res,index )=>{
  135. //if(data >= index+1){
  136. let add = addSum *(1+res.odds*1);
  137. addSum =add
  138. //}
  139. })
  140. //组合算法分母
  141. function denominator (num){
  142. let group =1;
  143. for(let i = listLenth ; i >(listLenth -num);i--){
  144. let add = group*i
  145. group = add;
  146. }
  147. return group;
  148. }
  149. //组合算法分子
  150. function molecule (num){
  151. let son =1;
  152. for(let i = num ; i >1;i--){
  153. let add = son*i;
  154. son = add;
  155. }
  156. return son;
  157. }
  158. //组合算法
  159. function algorithm(data) {
  160. return {
  161. title:`${data}串1`,//algorithm
  162. index:denominator(data)/molecule(data),
  163. odds:addSum-1,
  164. };
  165. }
  166. return algorithm(data);
  167. }
  168. }