0c032d4f56bc70640196e95e70aecbd3d18acab9.svn-base 9.7 KB

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