7c5debfec5e6317b34237194d5060361019faf88.svn-base 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317
  1. <template>
  2. <div>
  3. <div v-if=" obj.a">
  4. <div class="tit" >
  5. <span>总局数:大/小</span>
  6. </div>
  7. <div class="playCode">
  8. <div class="home flex">
  9. <span class="teamName">大</span>
  10. <div v-for="(item,index) in data" v-if="item.odds_code == 'tnb'">
  11. <span class="odds" :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
  12. @click="betMethod(index,item.id,'大','总局数:大/小')" >{{item.odds}}</span>
  13. </div>
  14. </div>
  15. <div class="guest flex">
  16. <span class="teamName">小</span>
  17. <div class="oddsBox" v-for="(item,index) in data" v-if="item.odds_code == 'tns'" >
  18. <span class="odds" :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
  19. @click="betMethod(index,item.id,'小','总局数:大/小')"
  20. >{{item.odds}}</span>
  21. </div>
  22. </div>
  23. </div>
  24. </div>
  25. <div v-if=" obj.b">
  26. <div class="tit" >
  27. <span>第一盘总局数:大/小</span>
  28. </div>
  29. <div class="playCode">
  30. <div class="home flex">
  31. <span class="teamName">大</span>
  32. <div v-for="(item,index) in data" v-if="item.odds_code == 'tnb_1'">
  33. <span class="odds" :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
  34. @click="betMethod(index,item.id,'大','第一盘总局数:大/小')" >{{item.odds}}</span>
  35. </div>
  36. </div>
  37. <div class="guest flex">
  38. <span class="teamName">小</span>
  39. <div
  40. class="oddsBox"
  41. v-for="(item,index) in data"
  42. v-if="item.odds_code == 'tns_1'"
  43. >
  44. <span
  45. class="odds"
  46. :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
  47. @click="betMethod(index,item.id,'小','第一盘总局数:大/小')"
  48. >{{item.odds}}</span>
  49. </div>
  50. </div>
  51. </div>
  52. </div>
  53. <div v-if=" obj.c">
  54. <div class="tit" >
  55. <span>第二盘总局数:大/小</span>
  56. </div>
  57. <div class="playCode">
  58. <div class="home flex">
  59. <span class="teamName">大</span>
  60. <div v-for="(item,index) in data" v-if="item.odds_code == 'tnb_2'">
  61. <span class="odds" :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
  62. @click="betMethod(index,item.id,'大','第二盘总局数:大/小')" >{{item.odds}}</span>
  63. </div>
  64. </div>
  65. <div class="guest flex">
  66. <span class="teamName">小</span>
  67. <div
  68. class="oddsBox"
  69. v-for="(item,index) in data"
  70. v-if="item.odds_code == 'tns_2'"
  71. >
  72. <span
  73. class="odds"
  74. :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
  75. @click="betMethod(index,item.id,'小','第二盘总局数:大/小')"
  76. >{{item.odds}}</span>
  77. </div>
  78. </div>
  79. </div>
  80. </div>
  81. </div>
  82. </template>
  83. <script>
  84. export default {
  85. data() {
  86. return {
  87. title: "TN",
  88. andShow: "",
  89. guest_team: "", //客队名
  90. home_team: "", //主队名
  91. obj: "",
  92. match_id: "",
  93. data: [],
  94. limit: "", //投注数量
  95. lg_id:'',
  96. };
  97. },
  98. /**
  99. * 页面初始化完成挂载
  100. */
  101. mounted() {
  102. this.andShow = this.$store.getters.getBallCode;
  103. },
  104. /***
  105. * 方法
  106. */
  107. methods: {
  108. //玩法分类
  109. playGrouping(data) {
  110. let obj = {};
  111. let betting = this.$store.getters.getBetting;
  112. data.forEach(e => {
  113. if(betting.length > 0){
  114. for(let i= 0; i< betting.length; i++){
  115. if(betting[i].title =="TN" && betting[i].data.length >0){
  116. for(let j = 0 ; j < betting[i].data.length ; j++ ){
  117. if(betting[i].data[j].id == e.id){
  118. this.$set(e,'isTrue',true);
  119. //betting[i].data.splice(j,1);
  120. }
  121. }
  122. break;
  123. }
  124. }
  125. }
  126. //console.log(e.odds_code)
  127. e.lg_id = this.lg_id;
  128. if (e.odds_code == 'tnb'|| e.odds_code == 'tns') {
  129. obj.a = true;
  130. }else if (e.odds_code.endsWith("_1")) {
  131. obj.b = true;
  132. } else if (e.odds_code.endsWith("_2")) {
  133. obj.c = true;
  134. }
  135. //else if (e.odds_code.startsWith("two_two")) {
  136. // obj.d = true;
  137. // } else if (e.odds_code.startsWith("three")) {
  138. // obj.e = true;
  139. // } else if (e.odds_code.startsWith("four")) {
  140. // obj.f = true;
  141. // }
  142. });
  143. this.obj = obj;
  144. // console.log(this.obj);
  145. },
  146. /*---------------------------------- */
  147. //玩法投注
  148. betMethod(index, id, name, playName) {
  149. if (this.data[index].isTrue) {
  150. this.$set(this.data[index], "isTrue", false);
  151. this.$forceUpdate();
  152. } else {
  153. this.$set(this.data[index], "isTrue", true);
  154. this.$forceUpdate();
  155. }
  156. //调用投注公共方法
  157. let betting = this.$store.getters.getBetting;
  158. let _this = this;
  159. let ballId = this.$store.getters.getBallCode;
  160. let teamName = {
  161. home: this.home_team,
  162. guest: this.guest_team
  163. };
  164. this.$public.publicBetMethod(
  165. this.data,
  166. this.title,
  167. id,
  168. index,
  169. betting,
  170. teamName,
  171. playName,
  172. name,
  173. this.match_id,
  174. ballId,
  175. this.limit,
  176. function(data, type) {
  177. if (type) {
  178. _this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 });
  179. }
  180. _this.$store.dispatch("SET_BETTING", []);
  181. _this.$store.dispatch("SET_BETTING", data);
  182. }
  183. );
  184. }
  185. },
  186. /**
  187. * 计算属性
  188. */
  189. computed: {
  190. getGameRatio() {
  191. return this.$store.getters.getGameRatio;
  192. },
  193. //获取投注数据
  194. getBetting() {
  195. return this.$store.getters.getBetting;
  196. },
  197. //获取投注数据数量
  198. getLimit() {
  199. return this.$store.getters.getLimit;
  200. }
  201. },
  202. /**
  203. * 监听器
  204. */
  205. watch: {
  206. getGameRatio(val) {
  207. this.lg_id = val.lg_id
  208. this.match_id = val.match_id;
  209. this.guest_team = val.guest_team;
  210. this.home_team = val.home_team;
  211. val.oddsData.forEach(e => {
  212. if (e[0].p_code == this.title) {
  213. this.data = e;
  214. this.playGrouping(this.data);
  215. //console.log(this.data);
  216. }
  217. });
  218. },
  219. //投注数据监听和处理
  220. getBetting(val) {
  221. if (val.length > 0) {
  222. let id = this.$store.getters.getDeleteType;
  223. for (let i = 0; i < val.length; i++) {
  224. if (val[i].title == this.title) {
  225. for (let j = 0; j < this.data.length; j++) {
  226. if (this.data[j].id == id) {
  227. this.$set(this.data[j], "isTrue", false);
  228. break;
  229. }
  230. }
  231. break;
  232. }
  233. }
  234. } else {
  235. for (let j = 0; j < this.data.length; j++) {
  236. if (this.data[j].isTrue) {
  237. this.$set(this.data[j], "isTrue", false);
  238. }
  239. }
  240. }
  241. },
  242. //投注数量
  243. getLimit(val) {
  244. this.limit = val;
  245. }
  246. }
  247. };
  248. </script>
  249. <style scoped>
  250. .flex {
  251. display: flex;
  252. justify-content: space-between;
  253. align-items: center;
  254. }
  255. .tit {
  256. background: #cdcdcd;
  257. font-size: 0.14rem;
  258. padding: 0 0.1rem;
  259. height: 0.4rem;
  260. line-height: 0.4rem;
  261. color: #333;
  262. }
  263. .playCode,
  264. .andCode {
  265. color: rgb(0, 0, 0);
  266. display: flex;
  267. }
  268. .playCode .home,
  269. .playCode .guest {
  270. height: 0.4rem;
  271. line-height: 0.4rem;
  272. width: 50%;
  273. font-size: 0.14rem;
  274. background: #fff;
  275. padding: 0 0 0 0.1rem;
  276. }
  277. .playCode .home {
  278. width: calc(50% - 1px);
  279. padding-right: 0.1rem;
  280. font-size: 0.14rem;
  281. padding: 0 0.1rem;
  282. border-right: 1px solid #e4e4e4;
  283. }
  284. .oddsBox {
  285. margin-right: 0.1rem;
  286. }
  287. .odds {
  288. display: inline-block;
  289. display: inline-block;
  290. width: 0.48rem;
  291. height: 0.3rem;
  292. border: 0.01rem solid #ccc;
  293. line-height: 0.3rem;
  294. text-align: center;
  295. border-radius: 0.05rem;
  296. cursor: pointer;
  297. }
  298. .odds:hover {
  299. background: #ddd;
  300. color: #f76649;
  301. }
  302. .guest {
  303. padding-right: 0.1rem;
  304. }
  305. .home:hover,
  306. .guest:hover {
  307. background: #fff5e9;
  308. }
  309. .draw {
  310. width: 20%;
  311. background: #fff;
  312. padding: 0 0.1rem;
  313. border-right: 1px solid #e4e4e4;
  314. }
  315. </style>