58c329ac1dbc67cc95aaf8b64e6e94af610cf7be.svn-base 17 KB

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