15aa69b9476a30a4d7f5ef40e75d672e8d043990.svn-base 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535
  1. <template>
  2. <div>
  3. <div v-if="isData">
  4. <div v-if="obj.a ">
  5. <div class="tit">
  6. <span>{{ballType == 'lq' ? '让分':'让球'}}</span>
  7. </div>
  8. <div class="playCode">
  9. <div class="row item-center">
  10. <div class="teamName wrap">{{home_team}}</div>
  11. <div class="row allAlignment">
  12. <div
  13. class="row center obbsBox rightAlignment"
  14. v-for="(item,index) in data"
  15. v-if="item.odds_code == 'coh'"
  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,ballType == 'lq' ? '让分':'让球')"
  22. >
  23. <span>{{item.odds}}</span>
  24. </div>
  25. </div>
  26. </div>
  27. </div>
  28. <div class="row item-center">
  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 == 'cog'"
  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,ballType == 'lq' ? '让分':'让球')"
  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">
  54. <div class="row item-center">
  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 == 'coh_h'"
  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">
  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 == 'cog_h'"
  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">
  99. <div class="row item-center">
  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 == 'coh_1'"
  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 == 'cog_1'"
  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 v-if="obj.d ">
  140. <div class="tit">
  141. <span>让分-第二节</span>
  142. </div>
  143. <div class="playCode">
  144. <div class="row item-center">
  145. <div class="teamName wrap">{{home_team}}</div>
  146. <div class="row allAlignment">
  147. <div
  148. class="row center obbsBox rightAlignment"
  149. v-for="(item,index) in data"
  150. v-if="item.odds_code == 'coh_2'"
  151. >
  152. <span class="condation">{{item.condition}}</span>
  153. <div
  154. class="odds row center"
  155. :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
  156. @click="betMethod(index,item.id,home_team,'让球-第二节')"
  157. >
  158. <span>{{item.odds}}</span>
  159. </div>
  160. </div>
  161. </div>
  162. </div>
  163. <div class="row item-center">
  164. <div class="teamName wrap">{{guest_team}}</div>
  165. <div class="row allAlignment">
  166. <div
  167. class="row center obbsBox rightAlignment"
  168. v-for="(item,index) in data"
  169. v-if="item.odds_code == 'cog_2'"
  170. >
  171. <span class="condation">{{item.condition}}</span>
  172. <div
  173. class="odds row center"
  174. :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
  175. @click="betMethod(index,item.id,guest_team,'让球-第二节')"
  176. >
  177. <span>{{item.odds}}</span>
  178. </div>
  179. </div>
  180. </div>
  181. </div>
  182. </div>
  183. </div>
  184. <div v-if="obj.e">
  185. <div class="tit">
  186. <span>让分-第三节</span>
  187. </div>
  188. <div class="playCode">
  189. <div class="row item-center">
  190. <div class="teamName wrap">{{home_team}}</div>
  191. <div class="row allAlignment">
  192. <div
  193. class="row center obbsBox rightAlignment"
  194. v-for="(item,index) in data"
  195. v-if="item.odds_code == 'coh_3'"
  196. >
  197. <span class="condation">{{item.condition}}</span>
  198. <div
  199. class="odds row center"
  200. :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
  201. @click="betMethod(index,item.id,home_team,'让球-第三节')"
  202. >
  203. <span>{{item.odds}}</span>
  204. </div>
  205. </div>
  206. </div>
  207. </div>
  208. <div class="row item-center">
  209. <div class="teamName wrap">{{guest_team}}</div>
  210. <div class="row allAlignment">
  211. <div
  212. class="row center obbsBox rightAlignment"
  213. v-for="(item,index) in data"
  214. v-if="item.odds_code == 'cog_3'"
  215. >
  216. <span class="condation">{{item.condition}}</span>
  217. <div
  218. class="odds row center"
  219. :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
  220. @click="betMethod(index,item.id,guest_team,'让球-第三节')"
  221. >
  222. <span>{{item.odds}}</span>
  223. </div>
  224. </div>
  225. </div>
  226. </div>
  227. </div>
  228. </div>
  229. <div v-if="obj.f ">
  230. <div class="tit">
  231. <span>让分-第四节</span>
  232. </div>
  233. <div class="playCode">
  234. <div class="row item-center">
  235. <div class="teamName wrap">{{home_team}}</div>
  236. <div class="row allAlignment">
  237. <div
  238. class="row center obbsBox rightAlignment"
  239. v-for="(item,index) in data"
  240. v-if="item.odds_code == 'coh_4'"
  241. >
  242. <span class="condation">{{item.condition}}</span>
  243. <div
  244. class="odds row center"
  245. :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
  246. @click="betMethod(index,item.id,home_team,'让球-第四节')"
  247. >
  248. <span>{{item.odds}}</span>
  249. </div>
  250. </div>
  251. </div>
  252. </div>
  253. <div class="row item-center">
  254. <div class="teamName wrap">{{guest_team}}</div>
  255. <div class="row allAlignment">
  256. <div
  257. class="row center obbsBox rightAlignment"
  258. v-for="(item,index) in data"
  259. v-if="item.odds_code == 'cog_4'"
  260. >
  261. <span class="condation">{{item.condition}}</span>
  262. <div
  263. class="odds row center"
  264. :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
  265. @click="betMethod(index,item.id,guest_team,'让球-第四节')"
  266. >
  267. <span>{{item.odds}}</span>
  268. </div>
  269. </div>
  270. </div>
  271. </div>
  272. </div>
  273. </div>
  274. <div v-if="obj.g ">
  275. <div class="tit">
  276. <span>让球-前五局</span>
  277. </div>
  278. <div class="playCode">
  279. <div class="row item-center">
  280. <div class="teamName wrap">{{home_team}}</div>
  281. <div class="row allAlignment">
  282. <div
  283. class="row center obbsBox rightAlignment"
  284. v-for="(item,index) in data"
  285. v-if="item.odds_code == 'coh_5'"
  286. >
  287. <span class="condation">{{item.condition}}</span>
  288. <div
  289. class="odds row center"
  290. :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
  291. @click="betMethod(index,item.id,home_team,'让球-前五局')"
  292. >
  293. <span>{{item.odds}}</span>
  294. </div>
  295. </div>
  296. </div>
  297. </div>
  298. <div class="row item-center">
  299. <div class="teamName wrap">{{guest_team}}</div>
  300. <div class="row allAlignment">
  301. <div
  302. class="row center obbsBox rightAlignment"
  303. v-for="(item,index) in data"
  304. v-if="item.odds_code == 'cog_5'"
  305. >
  306. <span class="condation">{{item.condition}}</span>
  307. <div
  308. class="odds row center"
  309. :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
  310. @click="betMethod(index,item.id,guest_team,'让球-前五局')"
  311. >
  312. <span>{{item.odds}}</span>
  313. </div>
  314. </div>
  315. </div>
  316. </div>
  317. </div>
  318. </div>
  319. </div>
  320. </div>
  321. </template>
  322. <script>
  323. export default {
  324. data() {
  325. return {
  326. title: "CO",
  327. data: [], //数据源
  328. isData: "", //是否有数据
  329. guest_team: "", //客队名
  330. home_team: "", //主队名
  331. obj: "", //
  332. match_id: "", //赛事id
  333. limit: "", //投注数量
  334. lg_id: "",
  335. ballType:'',//球类类别
  336. };
  337. },
  338. /***
  339. * 方法
  340. */
  341. methods: {
  342. //玩法分类
  343. playGrouping(data) {
  344. let obj = {};
  345. let betting = this.$store.getters.getBetting;
  346. data.forEach(e => {
  347. // console.log(e);
  348. if(betting.length > 0){
  349. for(let i= 0; i< betting.length; i++){
  350. if(betting[i].title =="CO" && betting[i].data.length >0){
  351. for(let j = 0 ; j < betting[i].data.length ; j++ ){
  352. if(betting[i].data[j].id == e.id){
  353. this.$set(e,'isTrue',true);
  354. //betting[i].data.splice(j,1);
  355. }
  356. }
  357. break;
  358. }
  359. }
  360. }
  361. e.lg_id = this.lg_id;
  362. if (e.odds_code == "coh" || e.odds_code == "cog") {
  363. obj.a = true;
  364. } else if (e.odds_code.endsWith("_h")) {
  365. obj.b = true;
  366. } else if (e.odds_code.endsWith("_1")) {
  367. obj.c = true;
  368. } else if (e.odds_code.endsWith("_2")) {
  369. obj.d = true;
  370. } else if (e.odds_code.endsWith("_3")) {
  371. obj.e = true;
  372. } else if (e.odds_code.endsWith("_4")) {
  373. obj.f = true;
  374. } else if (e.odds_code.endsWith("_5")) {
  375. obj.g = true;
  376. }
  377. });
  378. this.obj = obj;
  379. // console.log(this.obj)
  380. },
  381. /*-------------------------------------------*/
  382. //玩法投注
  383. betMethod(index, id, name, playName) {
  384. if (this.data[index].isTrue) {
  385. this.$set(this.data[index], "isTrue", false);
  386. } else {
  387. if (this.limit < 10) {
  388. this.$set(this.data[index], "isTrue", true);
  389. }
  390. }
  391. //调用投注公共方法
  392. let betting = this.$store.getters.getBetting;
  393. let _this = this;
  394. let ballId = this.$store.getters.getBallCode;
  395. let teamName = {
  396. home: this.home_team,
  397. guest: this.guest_team
  398. };
  399. this.$public.publicBetMethod(
  400. this.data,
  401. this.title,
  402. id,
  403. index,
  404. betting,
  405. teamName,
  406. playName,
  407. name,
  408. this.match_id,
  409. ballId,
  410. this.limit,
  411. function(data, type) {
  412. if (type) {
  413. _this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 });
  414. }
  415. _this.$store.dispatch("SET_BETTING", []);
  416. _this.$store.dispatch("SET_BETTING", data);
  417. }
  418. );
  419. }
  420. },
  421. /**
  422. * 计算属性
  423. */
  424. computed: {
  425. //获取玩法数据
  426. getGameRatio() {
  427. return this.$store.getters.getGameRatio;
  428. },
  429. //获取投注数据
  430. getBetting() {
  431. return this.$store.getters.getBetting;
  432. },
  433. //获取投注数据数量
  434. getLimit() {
  435. return this.$store.getters.getLimit;
  436. }
  437. },
  438. /**
  439. * 监听器
  440. */
  441. watch: {
  442. //玩法数据处理和监听
  443. getGameRatio(val) {
  444. this.lg_id = val.lg_id;
  445. this.match_id = val.match_id;
  446. this.guest_team = val.guest_team;
  447. this.home_team = val.home_team;
  448. val.oddsData.forEach(e => {
  449. if (e[0].p_code == this.title) {
  450. this.data = e;
  451. //console.log(this.data,'wo')
  452. this.ballType = this.$store.getters.getBallCode;
  453. this.isData = true;
  454. this.playGrouping(this.data);
  455. }
  456. });
  457. //console.log(this.data);
  458. },
  459. //投注数据监听和处理
  460. getBetting(val) {
  461. if (val.length > 0) {
  462. for (let i = 0; i < val.length; i++) {
  463. if (val[i].title == this.title) {
  464. let id = this.$store.getters.getDeleteType;
  465. for (let j = 0; j < this.data.length; j++) {
  466. if (this.data[j].id == id) {
  467. this.$set(this.data[j], "isTrue", false);
  468. break;
  469. }
  470. }
  471. break;
  472. }
  473. }
  474. }
  475. },
  476. //投注数量
  477. getLimit(val) {
  478. this.limit = val;
  479. }
  480. }
  481. };
  482. </script>
  483. <style scoped>
  484. .tit {
  485. background: #cdcdcd;
  486. font-size: 0.14rem;
  487. padding: 0 0.1rem;
  488. height: 0.4rem;
  489. line-height: 0.4rem;
  490. color: #333;
  491. }
  492. .playCode {
  493. background: #fff;
  494. min-height: 0.8rem;
  495. padding: 0 .1rem;
  496. }
  497. .playCode > div {
  498. min-height: 0.4rem;
  499. font-size: 0.14rem;
  500. }
  501. .obbsBox {
  502. width: 1.3rem;
  503. }
  504. .teamName {
  505. width: 1.5rem;
  506. }
  507. .odds {
  508. width: 0.48rem;
  509. height: 0.3rem;
  510. border: 0.01rem solid #ccc;
  511. line-height: 0.3rem;
  512. text-align: center;
  513. border-radius: 0.05rem;
  514. cursor: pointer;
  515. }
  516. .odds:hover,
  517. .odds:hover {
  518. background: #ddd;
  519. color: #f76649;
  520. }
  521. .condation {
  522. color: #f4755b;
  523. font-weight: bold;
  524. margin-right: 0.1rem;
  525. }
  526. .guest .odds span {
  527. line-height: 0.44rem;
  528. }
  529. </style>