62de96945c256d4c3d37f3b3508b6e8a26dc7846.svn-base 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525
  1. <!--
  2. * @Description: In User Settings Edit
  3. * @Author: your name
  4. * @Date: 2019-08-26 10:58:22
  5. * @LastEditTime: 2019-08-27 15:49:51
  6. * @LastEditors: Please set LastEditors
  7. -->
  8. <template>
  9. <div class="goal">
  10. <!-- <div v-if="isDisplay"> -->
  11. <div v-if="obj.a">
  12. <yd-accordion :accordion="true">
  13. <yd-accordion-item title="总分:单/双" open>
  14. <div class="row allAlignment box">
  15. <div class=" column allAlignment left_box">
  16. <div
  17. v-for="(item,index) in data"
  18. :key="'b'+index"
  19. v-if="item.odds_code =='tss'"
  20. class=" row allAlignment"
  21. >
  22. <div>{{item.condition}}</div>
  23. <div v-if="item.odds >0" class="ratio" :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
  24. @click="toggle(item.id,item.condition,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'总分:单/双',item.oddsType)"
  25. >
  26. <span>{{item.odds}}</span>
  27. </div>
  28. <div v-else class="ratio column center">
  29. <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  30. </div>
  31. </div>
  32. </div>
  33. <div class=" column allAlignment right_box ">
  34. <div
  35. v-for="(item,index) in data"
  36. :key="index"
  37. v-if="item.odds_code =='tsd' "
  38. class=" row allAlignment"
  39. >
  40. <div>{{item.condition}}</div>
  41. <div v-if="item.odds >0" class="ratio"
  42. :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
  43. @click="toggle(item.id,item.condition,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'总分:单/双',item.oddsType)"
  44. >
  45. <span>{{item.odds}}</span>
  46. </div>
  47. <div v-else class="ratio column center">
  48. <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  49. </div>
  50. </div>
  51. </div>
  52. </div>
  53. </yd-accordion-item>
  54. </yd-accordion>
  55. </div>
  56. <div v-if="obj.b">
  57. <yd-accordion :accordion="true">
  58. <yd-accordion-item title="总分:单/双-上半场" open>
  59. <div class="row allAlignment box">
  60. <div class=" column allAlignment left_box">
  61. <div
  62. v-for="(item,index) in data"
  63. :key="item.id"
  64. v-if="item.odds_code =='tss_h'"
  65. class=" row allAlignment"
  66. >
  67. <div>{{item.condition}}</div>
  68. <div v-if="item.odds >0" class="ratio"
  69. :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'} "
  70. @click="toggle(item.id,item.condition,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'总分:单/双-上半场',item.oddsType)"
  71. >
  72. <span>{{item.odds}}</span>
  73. </div>
  74. <div v-else class="ratio column center">
  75. <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  76. </div>
  77. </div>
  78. </div>
  79. <div class=" column allAlignment right_box">
  80. <div
  81. v-for="(item,index) in data"
  82. :key="item.id"
  83. v-if="item.odds_code =='tsd_h' "
  84. class="row allAlignment"
  85. >
  86. <div>{{item.condition}}</div>
  87. <div v-if="item.odds >0" class="ratio"
  88. :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
  89. @click="toggle(item.id,item.condition,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'总分:单/双-上半场',item.oddsType)"
  90. >
  91. <span>{{item.odds}}</span>
  92. </div>
  93. <div v-else class="ratio column center">
  94. <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  95. </div>
  96. </div>
  97. </div>
  98. </div>
  99. </yd-accordion-item>
  100. </yd-accordion>
  101. </div>
  102. <div v-if="obj.c">
  103. <yd-accordion :accordion="true">
  104. <yd-accordion-item title="总分:单/双-第一节" open>
  105. <div class="row allAlignment box">
  106. <div class=" column allAlignment left_box">
  107. <div
  108. v-for="(item,index) in data"
  109. :key="item.id"
  110. v-if="item.odds_code =='tss_1'"
  111. class=" row allAlignment"
  112. >
  113. <div>{{item.condition}}</div>
  114. <div v-if="item.odds >0" class="ratio"
  115. :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'} "
  116. @click="toggle(item.id,item.condition,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'总分:单/双-第一节',item.oddsType)"
  117. >
  118. <span>{{item.odds}}</span>
  119. </div>
  120. <div v-else class="ratio column center">
  121. <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  122. </div>
  123. </div>
  124. </div>
  125. <div class=" column allAlignment right_box">
  126. <div
  127. v-for="(item,index) in data"
  128. :key="item.id"
  129. v-if="item.odds_code =='tsd_1' "
  130. class="row allAlignment"
  131. >
  132. <div>{{item.condition}}</div>
  133. <div v-if="item.odds >0" class="ratio"
  134. :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
  135. @click="toggle(item.id,item.condition,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'总分:单/双-第一节',item.oddsType)"
  136. >
  137. <span>{{item.odds}}</span>
  138. </div>
  139. <div v-else class="ratio column center">
  140. <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  141. </div>
  142. </div>
  143. </div>
  144. </div>
  145. </yd-accordion-item>
  146. </yd-accordion>
  147. </div>
  148. <div v-if="obj.d">
  149. <yd-accordion :accordion="true">
  150. <yd-accordion-item title="总分:单/双-第二节" open>
  151. <div class="row allAlignment box">
  152. <div class=" column allAlignment left_box">
  153. <div
  154. v-for="(item,index) in data"
  155. :key="item.id"
  156. v-if="item.odds_code =='tss_2'"
  157. class=" row allAlignment"
  158. >
  159. <div>{{item.condition}}</div>
  160. <div v-if="item.odds >0" class="ratio"
  161. :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'} "
  162. @click="toggle(item.id,item.condition,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'总分:单/双-第二节',item.oddsType)"
  163. >
  164. <span>{{item.odds}}</span>
  165. </div>
  166. <div v-else class="ratio column center">
  167. <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  168. </div>
  169. </div>
  170. </div>
  171. <div class=" column allAlignment right_box">
  172. <div
  173. v-for="(item,index) in data"
  174. :key="item.id"
  175. v-if="item.odds_code =='tsd_2' "
  176. class="row allAlignment"
  177. >
  178. <div>{{item.condition}}</div>
  179. <div v-if="item.odds >0" class="ratio"
  180. :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
  181. @click="toggle(item.id,item.condition,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'总分:单/双-第二节',item.oddsType)"
  182. >
  183. <span>{{item.odds}}</span>
  184. </div>
  185. <div v-else class="ratio column center">
  186. <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  187. </div>
  188. </div>
  189. </div>
  190. </div>
  191. </yd-accordion-item>
  192. </yd-accordion>
  193. </div>
  194. <div v-if="obj.e">
  195. <yd-accordion :accordion="true">
  196. <yd-accordion-item title="总分:单/双-第三节" open>
  197. <div class="row allAlignment box">
  198. <div class=" column allAlignment left_box">
  199. <div
  200. v-for="(item,index) in data"
  201. :key="item.id"
  202. v-if="item.odds_code =='tss_3'"
  203. class=" row allAlignment"
  204. >
  205. <div>{{item.condition}}</div>
  206. <div v-if="item.odds >0" class="ratio"
  207. :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'} "
  208. @click="toggle(item.id,item.condition,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'总分:单/双-第三节',item.oddsType)"
  209. >
  210. <span>{{item.odds}}</span>
  211. </div>
  212. <div v-else class="ratio column center">
  213. <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  214. </div>
  215. </div>
  216. </div>
  217. <div class=" column allAlignment right_box">
  218. <div
  219. v-for="(item,index) in data"
  220. :key="item.id"
  221. v-if="item.odds_code =='tsd_3' "
  222. class="row allAlignment"
  223. >
  224. <div>{{item.condition}}</div>
  225. <div v-if="item.odds >0" class="ratio"
  226. :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
  227. @click="toggle(item.id,item.condition,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'总分:单/双-第三节',item.oddsType)"
  228. >
  229. <span>{{item.odds}}</span>
  230. </div>
  231. <div v-else class="ratio column center">
  232. <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  233. </div>
  234. </div>
  235. </div>
  236. </div>
  237. </yd-accordion-item>
  238. </yd-accordion>
  239. </div>
  240. <div v-if="obj.f">
  241. <yd-accordion :accordion="true">
  242. <yd-accordion-item title="总分:单/双-第四节" open>
  243. <div class="row allAlignment box">
  244. <div class=" column allAlignment left_box">
  245. <div
  246. v-for="(item,index) in data"
  247. :key="item.id"
  248. v-if="item.odds_code =='tss_4'"
  249. class=" row allAlignment"
  250. >
  251. <div>{{item.condition}}</div>
  252. <div v-if="item.odds >0" class="ratio"
  253. :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'} "
  254. @click="toggle(item.id,item.condition,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'总分:单/双-第四节',item.oddsType)"
  255. >
  256. <span>{{item.odds}}</span>
  257. </div>
  258. <div v-else class="ratio column center">
  259. <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  260. </div>
  261. </div>
  262. </div>
  263. <div class=" column allAlignment right_box">
  264. <div
  265. v-for="(item,index) in data"
  266. :key="item.id"
  267. v-if="item.odds_code =='tsd_4' "
  268. class="row allAlignment"
  269. >
  270. <div>{{item.condition}}</div>
  271. <div v-if="item.odds >0" class="ratio"
  272. :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
  273. @click="toggle(item.id,item.condition,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'总分:单/双-第四节',item.oddsType)"
  274. >
  275. <span>{{item.odds}}</span>
  276. </div>
  277. <div v-else class="ratio column center">
  278. <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  279. </div>
  280. </div>
  281. </div>
  282. </div>
  283. </yd-accordion-item>
  284. </yd-accordion>
  285. </div>
  286. <!-- </div> -->
  287. </div>
  288. </template>
  289. <script>
  290. export default {
  291. // 进球大小单双数
  292. data() {
  293. return {
  294. title: "TS",
  295. // status: -1,
  296. smallStatus: [],
  297. isDisplay: false,
  298. home_team: "",
  299. guest_team: "",
  300. match_id: "",
  301. lg_id:'',
  302. score: "0",
  303. data: [], //
  304. obj:{},//
  305. betting: [], //已投注倍率id集合
  306. dataNum: 10000 //对应的数据的下标
  307. };
  308. },
  309. methods: {
  310. //玩法投注
  311. toggle(id, name, odds, odds_only, p_code, match_id, odds_code,play_name,oddsType) {
  312. let _this = this;
  313. let bettingInfo = {
  314. id,
  315. home_team: this.home_team,
  316. guest_team: this.guest_team,
  317. name:'',
  318. odds,
  319. ballId: this.$store.getters.getBallId,
  320. condition:name,
  321. odds_code,
  322. score: this.score,
  323. play_name,
  324. bettingTime: "",
  325. odds_only,
  326. lg_id:this.lg_id,
  327. odds_id:id,
  328. p_code,
  329. match_id,
  330. oddsType
  331. };
  332. //调用玩法投注公共方法
  333. this.$public.bettingFunction(
  334. this.betting,
  335. bettingInfo,
  336. this.data,
  337. this.$store.getters.getBetting,
  338. this.title,
  339. this.dataNum,
  340. this.$store.getters.getLimit,
  341. function(res, type) {
  342. _this.$set(res, "isTrue", type);
  343. },
  344. function(data, val,type) {
  345. if(type) {
  346. _this.$dialog.alert({mes: '你的注单已达到上限啦!'});
  347. }
  348. _this.$store.dispatch("BETTING", []);
  349. _this.$store.dispatch("BETTING", data ? data : val);
  350. if(_this.$store.getters.getIsBetting == '100') return false
  351. _this.$store.dispatch("ISBETTING",'100')
  352. }
  353. );
  354. },
  355. //获取玩法id
  356. getBettingId(data) {
  357. // console.log("ssaa", data);
  358. if (data) {
  359. data.forEach((res, index) => {
  360. if (res.title == this.title) {
  361. this.betting = res.data;
  362. this.dataNum = index;
  363. }
  364. });
  365. }
  366. },
  367. /*-------------------------------*/
  368. //获取子玩法分类
  369. getChildPlay(data){
  370. let obj ={};
  371. data.forEach(e=>{
  372. if(e.odds_code.startsWith('ts') ){
  373. obj.a= true;
  374. }
  375. if(e.odds_code.endsWith('h')){
  376. obj.b= true;
  377. }
  378. if(e.odds_code.endsWith('1')){
  379. obj.c= true;
  380. }
  381. if(e.odds_code.endsWith('2')){
  382. obj.d= true;
  383. }
  384. if(e.odds_code.endsWith('3')){
  385. obj.e= true;
  386. }
  387. if(e.odds_code.endsWith( '4')){
  388. obj.f= true;
  389. }
  390. })
  391. this.obj = obj;
  392. }
  393. },
  394. computed: {
  395. getUserIcons() {
  396. return this.$store.getters.getGameRatio;
  397. },
  398. getBetting() {
  399. return this.$store.getters.getBetting;
  400. },
  401. //获取投注框删除的投注信息
  402. getDeleteType() {
  403. return this.$store.getters.getDeleteType;
  404. }
  405. },
  406. watch: {
  407. //监听vuex里面数据
  408. getUserIcons(val) {
  409. this.match_id = val.match_id;
  410. if (!val) return false;
  411. this.home_team = val.home_team;
  412. this.guest_team = val.guest_team;
  413. this.lg_id=val.lg_id
  414. val.oddsData.forEach(res => {
  415. if (res[0].p_code == this.title) {
  416. this.isDisplay = true;
  417. //console.log(res);
  418. this.data = res;
  419. this.getChildPlay(this.data);
  420. }
  421. });
  422. this.getBettingId(this.$store.getters.getBetting);
  423. if (this.dataNum != 10000) {
  424. this.betting.forEach(res => {
  425. this.data.forEach((e, index) => {
  426. if (res.id == e.id) {
  427. this.$set(e, "isTrue", true);
  428. }
  429. });
  430. });
  431. }
  432. //console.log(this.data, "a123");
  433. },
  434. //获取已投注信息
  435. getBetting(val) {
  436. let _this = this;
  437. this.$public.getBettingId(val, this.title, function(data, index) {
  438. _this.betting = data;
  439. _this.dataNum = index;
  440. });
  441. },
  442. //监听投注框删除处理
  443. getDeleteType(val) {
  444. this.data.forEach(e => {
  445. if (val == "all") {
  446. this.$set(e, "isTrue", false);
  447. } else {
  448. if (e.id == val) {
  449. this.$set(e, "isTrue", false);
  450. }
  451. }
  452. });
  453. }
  454. }
  455. };
  456. </script>
  457. <style scoped>
  458. div /deep/ .yd-accordion-head {
  459. padding: 0 0.32rem;
  460. background: #a0a0a0;
  461. }
  462. .goalBox {
  463. display: flex;
  464. justify-content: space-between;
  465. align-items: center;
  466. background: #f8f8f8;
  467. padding: 0 0.32rem;
  468. }
  469. div /deep/ .yd-accordion-title {
  470. color: #fefefe;
  471. font-size: 0.28rem;
  472. }
  473. div /deep/ .yd-accordion-head-arrow:after {
  474. border: none;
  475. width: 0.5rem;
  476. height: 0.5rem;
  477. background: url("../assets/st-imges/xiangxia.png") no-repeat;
  478. background-size: 100% 100%;
  479. }
  480. .box {
  481. font-size: 0.24rem;
  482. color: #333333;
  483. background: #f4f4f4;
  484. padding: 0 0.32rem;
  485. }
  486. .left_box {
  487. width: 50%;
  488. border-right: 1px solid #e4e4e4;
  489. line-height: 0.9rem;
  490. }
  491. .right_box {
  492. width: 50%;
  493. padding-left: 0.16rem;
  494. line-height: 0.9rem;
  495. }
  496. .ratio {
  497. display: flex;
  498. align-items: center;
  499. justify-content: center;
  500. width: 1.07rem;
  501. height: 0.76rem;
  502. border: 1px solid #cecece;
  503. border-radius: 0.1rem;
  504. margin: 0.06rem;
  505. padding: .1rem;
  506. text-align: center;
  507. }
  508. .col {
  509. background: #f76649;
  510. border: 2px solid #f76649 !important;
  511. }
  512. .col span {
  513. color: #f4f4f4 !important;
  514. }
  515. /* .odds .score {
  516. display: block;
  517. margin-top: 0.04rem;
  518. } */
  519. </style>