1f8086c2b55129d17017b848750d02c05a59a05e.svn-base 62 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692
  1. <template>
  2. <div>
  3. <div v-if="noData">
  4. <NotOpend :title="this.info"/>
  5. </div>
  6. <!-- 足球 -->
  7. <!-- 让球&大小 -->
  8. <div class="match" v-if="isShow && wq_show && zlBallShow">
  9. <div v-for="(item,$index) in letBallData" :key="$index" class="mg">
  10. <div class="row allAlignment haderBox center">
  11. <span>{{item.leagueName}}</span>
  12. <div class="row Match-title-num">
  13. <span>{{item.matchNum}}</span>
  14. </div>
  15. </div>
  16. <div class="Match-box">
  17. <div v-for="(itemList,index) in item.matchData" :key="index" @click="matchInfo(itemList.match_id)">
  18. <div class="row allAlignment Match-box-top">
  19. <div class="Match-box-top-left">
  20. <span>{{itemList.match_process}}</span>
  21. <span class="texttop" v-if="activity == 'StRollBall'">{{itemList.a_time}}</span>
  22. <span class="texttop" v-if="activity == 'StSoon' && itemList.wait_time > 0">{{itemList.wait_time}}分钟</span>
  23. <span class="texttop" v-else-if="activity == 'StSoon' && itemList.wait_time < 0">--分钟</span>
  24. </div>
  25. <div class="Match-box-top-right row">
  26. <span style="margin-right: .1rem;" class="Match-box-top-num">{{itemList.tag}}</span>
  27. <span style="margin-right: .1rem;">让球</span>
  28. <span style="margin-right: .1rem;">大小</span>
  29. </div>
  30. </div>
  31. <div class="row allAlignment center listbox">
  32. <div class="column average name-box">
  33. <div class="box noBox row item-center main-box">
  34. <span
  35. v-if="itemList.home_score == '0' || itemList.home_score"
  36. class="num-box"
  37. style="color:#eb921e"
  38. >{{itemList.home_score}}</span>
  39. <span v-else style="color:#eb921e">{{itemList.home_score}}</span>
  40. &nbsp;&nbsp;{{itemList.home_team}}
  41. </div>
  42. <div class="box noBox row item-center main-box">
  43. <span
  44. v-if="itemList.guest_score || itemList.guest_score == '0'"
  45. class="num-box"
  46. style="color:#eb921e"
  47. >{{itemList.guest_score}}</span>
  48. <span v-else style="color:#eb921e">{{itemList.guest_score}}</span>
  49. &nbsp;&nbsp;{{itemList.guest_team}}
  50. </div>
  51. </div>
  52. <div class="Match-list-box row item-center average">
  53. <div class="Match-bottom-right">
  54. <!-- 主队 -->
  55. <div class v-for="(items,indexs) in itemList.oddsData[0]" :key="indexs" :class="items.odds == 0?'locking':''" >
  56. <div v-if="items.odds ">
  57. <div class v-if="items.odds_code.startsWith('concede')">
  58. <div>
  59. <div
  60. :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
  61. class="letballHome column center"
  62. v-if="items.odds_code.endsWith('home')"
  63. @click.stop="isBetting($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.home_team,items.odds,items.condition,items.odds_only,items.odds_code,'homeOdds',items.p_code,items.status,item.lg_id,'让球',items.oddsType)"
  64. >
  65. <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
  66. <span v-if="items.odds >0" >{{items.odds}}</span>
  67. <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;margin-top:0.1rem;" src="@/assets/st-imges/mima.png"><img>
  68. </div>
  69. </div>
  70. <div
  71. :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
  72. class="letballGuest column center"
  73. v-if="items.odds_code.endsWith('guest')"
  74. @click.stop="isBetting($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.home_team,items.odds,items.condition,items.odds_only,items.odds_code,'homeOdds',items.p_code,items.status,item.lg_id,'让球',items.oddsType)"
  75. >
  76. <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
  77. <span v-if="items.odds >0" >{{items.odds}}</span>
  78. <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;margin-top:0.1rem;" src="@/assets/st-imges/mima.png"><img>
  79. </div>
  80. </div>
  81. <div
  82. v-if="items.odds_code.startsWith('goal')"
  83. class="row bigSmall"
  84. @click.stop="isBetting($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'guestOdds',items.p_code,items.status,item.lg_id,'大小',items.oddsType)"
  85. >
  86. <div
  87. :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
  88. class="bigHome column center"
  89. v-if="items.odds_code.endsWith('big')"
  90. >
  91. <div style="color: rgb(247, 102, 73);" class="stardBig" v-if="items.odds > 0">
  92. <span class="bigSmall">大</span>
  93. <span v-if="items.condition !='大'">{{items.condition}}</span>
  94. </div>
  95. <span v-if="items.odds >0" >{{items.odds}}</span>
  96. <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;margin-top:0.1rem;" src="@/assets/st-imges/mima.png"><img>
  97. </div>
  98. <div
  99. :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
  100. class="bigGuest column center"
  101. v-if="items.odds_code.endsWith('small')"
  102. @click.stop="isBetting($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'guestOdds',items.p_code,items.status,item.lg_id,'大小',items.oddsType)"
  103. >
  104. <div style="color: rgb(247, 102, 73); " class="stardBig" v-if="items.odds > 0">
  105. <span class="bigSmall">小</span>
  106. <span v-if="items.condition !='小'">{{items.condition}}</span>
  107. </div>
  108. <span v-if="items.odds >0" >{{items.odds}}</span>
  109. <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;margin-top:0.1rem;" src="@/assets/st-imges/mima.png"><img>
  110. </div>
  111. </div>
  112. <div v-if="items.odds_code.startsWith('total')" class="row bigSmall"
  113. @click.stop="isBetting($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'guestOdds',items.p_code,items.status,item.lg_id,'大小',items.oddsType)"
  114. >
  115. <div :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
  116. class="bigHome column center" v-if="items.odds_code.endsWith('big')">
  117. <div style="color: rgb(247, 102, 73);" class="stardBig">
  118. <span class="bigSmall">大</span>
  119. <span>{{items.condition}}</span>
  120. </div>
  121. <span v-if="items.odds >0" >{{items.odds}}</span>
  122. <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;margin-top:0.1rem;" src="@/assets/st-imges/mima.png"><img>
  123. </div>
  124. <div
  125. :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
  126. class="bigGuest column center"
  127. v-if="items.odds_code.endsWith('small')"
  128. @click.stop="isBetting($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'guestOdds',items.p_code,items.status,item.lg_id,'大小',items.oddsType)"
  129. >
  130. <div style="color: rgb(247, 102, 73); " class="stardBig" v-if="items.odds > 0">
  131. <span class="bigSmall">小</span>
  132. <span>{{items.condition}}</span>
  133. </div>
  134. <span v-if="items.odds >0" >{{items.odds}}</span>
  135. <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;margin-top:0.1rem;" src="@/assets/st-imges/mima.png"><img>
  136. </div>
  137. </div>
  138. </div>
  139. </div>
  140. </div>
  141. </div>
  142. </div>
  143. </div>
  144. </div>
  145. </div>
  146. </div>
  147. <!-- 1x2 -->
  148. <div v-if="!isShow && !ishow && wq_show">
  149. <div v-for="(item,$index) in letBallData" :key="item.id" @click="bettingChange()">
  150. <div class="row allAlignment haderBox center">
  151. <span>{{item.leagueName}}</span>
  152. <div class="Match-title-num">
  153. <span>{{item.matchNum}}</span>
  154. </div>
  155. </div>
  156. <div
  157. v-for="(itemList,idx) in item.matchData"
  158. :key="idx"
  159. @click="matchInfo(itemList.match_id)"
  160. >
  161. <div class="box noPd">
  162. <div class="row allAlignment item-center top-box">
  163. <span>
  164. <span>{{itemList.match_process}}</span>
  165. <span class="texttop" v-if="activity == 'StRollBall'">{{itemList.a_time}}</span>
  166. <span class="texttop" v-if="activity == 'StSoon' && itemList.wait_time > 0">{{itemList.wait_time}}分钟</span>
  167. <span class="texttop" v-else-if="activity == 'StSoon' && itemList.wait_time < 0">--分钟</span>
  168. </span>
  169. <span class="top-num">{{itemList.tag}}</span>
  170. </div>
  171. </div>
  172. <div class="box-bottom">
  173. <div class="box row item-center main-box">
  174. <span
  175. v-if="itemList.home_score == '0' || itemList.home_score"
  176. class="num-box"
  177. style="color:#eb921e"
  178. >{{itemList.home_score}}</span>
  179. <span v-else style="color:#eb921e">{{itemList.home_score}}</span>
  180. &nbsp;&nbsp;{{itemList.home_team}}
  181. </div>
  182. <div class="box row item-center main-box">
  183. <span
  184. v-if="itemList.guest_score || itemList.guest_score == '0'"
  185. class="num-box"
  186. style="color:#eb921e"
  187. >{{itemList.guest_score}}</span>
  188. <span v-else style="color:#eb921e">{{itemList.guest_score}}</span>
  189. &nbsp;&nbsp;{{itemList.guest_team}}
  190. </div>
  191. <div class="footBox" style="position:relative">
  192. <div class="box row allAlignment bottom-box center" v-for="(items,i) in itemList.oddsData[1]"
  193. :key="i" v-if="items != null">
  194. <div v-if="items.condition == 1" class="item-center bottom-num stardLeft"
  195. :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
  196. @click.stop="isClick($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'capot',items.p_code,items.oddsType,item.lg_id,'1X2')"
  197. >
  198. <p style="color:#eb921e">{{items.condition}}</p>
  199. <p>{{items.odds}}</p>
  200. </div>
  201. <div v-if="items.condition == 'X'" class="item-center bottom-num stardCenter"
  202. :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
  203. @click.stop="isClick($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'capot',items.p_code,items.oddsType,item.lg_id,'1X2')"
  204. >
  205. <p style="color:#eb921e">{{items.condition}}</p>
  206. <p>{{items.odds}}</p>
  207. </div>
  208. <div v-if="items.condition == 2" class="item-center bottom-num stardRight"
  209. :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
  210. @click.stop="isClick($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'capot',items.p_code,items.oddsType,item.lg_id,'1X2')"
  211. >
  212. <p style="color:#eb921e">{{items.condition}}</p>
  213. <p>{{items.odds}}</p>
  214. </div>
  215. </div>
  216. </div>
  217. </div>
  218. </div>
  219. </div>
  220. </div>
  221. <!-- 篮球 -->
  222. <div class="match" v-if="isShow && wq_show && !zlBallShow">
  223. <div v-for="(item,$index) in letBallData" :key="$index" class="mg">
  224. <div class="row allAlignment haderBox center">
  225. <span>{{item.leagueName}}</span>
  226. <div class="row Match-title-num">
  227. <span>{{item.matchNum}}</span>
  228. </div>
  229. </div>
  230. <div class="Match-box">
  231. <div
  232. v-for="(itemList,index) in item.matchData"
  233. :key="index"
  234. @click="matchInfo(itemList.match_id)"
  235. >
  236. <div class="row allAlignment Match-box-top">
  237. <div class="Match-box-top-left">
  238. <span>{{itemList.match_process}}</span>
  239. <span class="texttop" v-if="activity == 'StRollBall'">{{itemList.wait_time}}</span>
  240. <span class="texttop" v-if="activity == 'StSoon' && itemList.wait_time > 0">{{itemList.wait_time}}分钟</span>
  241. <span class="texttop" v-else-if="activity == 'StSoon' && itemList.wait_time < 0">--分钟</span>
  242. </div>
  243. <div class="Match-box-top-right row">
  244. <span style="margin-right: .1rem;" class="Match-box-top-num">{{itemList.tag}}</span>
  245. <span style="margin-right: .1rem;">让球</span>
  246. <span style="margin-right: .1rem;">大小</span>
  247. </div>
  248. </div>
  249. <div class="row allAlignment center listbox">
  250. <div class="column average name-box">
  251. <div class="box noBox row item-center main-box">
  252. <span
  253. v-if="itemList.home_score == '0' || itemList.home_score"
  254. class="num-box"
  255. style="color:#eb921e"
  256. >{{itemList.home_score}}</span>
  257. <span v-else style="color:#eb921e">{{itemList.home_score}}</span>
  258. &nbsp;&nbsp;{{itemList.home_team}}
  259. </div>
  260. <div class="box noBox row item-center main-box">
  261. <span
  262. v-if="itemList.guest_score || itemList.guest_score == '0'"
  263. class="num-box"
  264. style="color:#eb921e"
  265. >{{itemList.guest_score}}</span>
  266. <span v-else style="color:#eb921e">{{itemList.guest_score}}</span>
  267. &nbsp;&nbsp;{{itemList.guest_team}}
  268. </div>
  269. </div>
  270. <div class="Match-list-box row item-center average">
  271. <div class="Match-bottom-right">
  272. <!-- 主队 -->
  273. <div class v-for="(items,idx) in itemList.oddsData[0]" :key="idx">
  274. <div v-if="items != null">
  275. <div class v-if="items.odds_code.startsWith('concede')">
  276. <div
  277. :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
  278. class="letballHome column center"
  279. v-if="items.odds_code.endsWith('home')"
  280. @click.stop="isBetting($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.home_team,items.odds,items.condition,items.odds_only,items.odds_code,'concede',items.p_code,items.status,item.lg_id,'让球',items.oddsType)"
  281. >
  282. <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
  283. <span v-if="items.odds >0" >{{items.odds}}</span>
  284. <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  285. </div>
  286. <div
  287. :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
  288. class="letballGuest column center"
  289. v-if="items.odds_code.endsWith('guest')"
  290. @click.stop="isBetting($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.home_team,items.odds,items.condition,items.odds_only,items.odds_code,'concede',items.p_code,items.status,item.lg_id,'让球',items.oddsType)"
  291. >
  292. <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
  293. <span v-if="items.odds >0" >{{items.odds}}</span>
  294. <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  295. </div>
  296. </div>
  297. <div class="row bigSmall" v-if="items.odds_code.startsWith('total')">
  298. <div
  299. :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
  300. class="bigHome column center"
  301. v-if="items.odds_code.endsWith('big')"
  302. @click.stop="isBetting($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.home_team,items.odds,items.condition,items.odds_only,items.odds_code,'total_size',items.p_code,items.status,item.lg_id,'大小',items.oddsType)"
  303. >
  304. <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
  305. <span v-if="items.odds >0" >{{items.odds}}</span>
  306. <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  307. </div>
  308. <div
  309. :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
  310. class="bigGuest column center"
  311. v-if="items.odds_code.endsWith('small')"
  312. @click.stop="isBetting($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.home_team,items.odds,items.condition,items.odds_only,items.odds_code,'total_size',items.p_code,items.status,item.lg_id,'大小',items.oddsType)"
  313. >
  314. <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
  315. <span v-if="items.odds >0" >{{items.odds}}</span>
  316. <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  317. </div>
  318. </div>
  319. </div>
  320. </div>
  321. </div>
  322. </div>
  323. </div>
  324. </div>
  325. </div>
  326. </div>
  327. </div>
  328. <!-- 独赢盘 -->
  329. <div class="match" v-if="!isShow && ishow && wq_show">
  330. <div v-for="(item,$index) in letBallData" :key="$index" class="mg">
  331. <div class="row allAlignment letBallBox center">
  332. <span>{{item.leagueName}}</span>
  333. <div class="row Match-title-num">
  334. <span>{{item.matchNum}}</span>
  335. </div>
  336. </div>
  337. <div class="Match-box">
  338. <div
  339. v-for="(itemList,index) in item.matchData"
  340. :key="index"
  341. class="Match-box"
  342. @click="matchInfo(itemList.match_id)"
  343. >
  344. <div class="row allAlignment Match-box-top">
  345. <div class="Match-box-top-left">
  346. <span class="texttop" v-if="activity == 'StRollBall'">{{itemList.a_time}}</span>
  347. <span class="texttop" v-if="activity == 'StSoon' && itemList.wait_time > 0">{{itemList.wait_time}}分钟</span>
  348. <span class="texttop" v-else-if="activity == 'StSoon' && itemList.wait_time < 0">--分钟</span>
  349. </div>
  350. <div class="Match-box-top-right row">
  351. <span style="margin-right: .1rem;" class="Match-box-top-num">{{itemList.tag}}</span>
  352. <span style="margin-right: .1rem;">独赢盘</span>
  353. </div>
  354. </div>
  355. <div class="row allAlignment center listbox">
  356. <div class="column average name-box">
  357. <div>{{itemList.home_team}}</div>
  358. <div>{{itemList.guest_team}}</div>
  359. </div>
  360. <div class="Match-list-box row item-center average">
  361. <div class="Match-bottom-right" style="width:1.3rem;">
  362. <!-- 主队 -->
  363. <div class="capotBox">
  364. <div
  365. class="Match-list-left"
  366. v-for="(items,indexs) in itemList.oddsData[1]"
  367. :key="indexs"
  368. @click.stop="isBetting($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.home_team,items.odds,items.condition,items.odds_only,items.odds_code,'capot',items.p_code,items.status,item.lg_id,'独赢盘',items.oddsType)"
  369. >
  370. <div :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}" class="column center">
  371. <span style="color:#f76649">{{items.condition}}</span>
  372. <span>{{items.odds}}</span>
  373. </div>
  374. </div>
  375. </div>
  376. </div>
  377. </div>
  378. </div>
  379. </div>
  380. </div>
  381. </div>
  382. </div>
  383. <!-- 如过是网球则显示 -->
  384. <div class="match" v-if="isShow && !wq_show">
  385. <div v-for="(item,$index) in letBallData" :key="$index" class="mg">
  386. <!-- <div v-for="items in list[index]" :key="items.id"> -->
  387. <div class="row allAlignment letBallBox center">
  388. <span>{{item.leagueName}}</span>
  389. <div class="row Match-title-num">
  390. <span>{{item.matchNum}}</span>
  391. </div>
  392. </div>
  393. <div class="Match-box">
  394. <div
  395. v-for="(itemList,index) in item.matchData"
  396. :key="index"
  397. class="Match-box"
  398. @click="matchInfo(itemList.match_id)"
  399. >
  400. <div class="row allAlignment Match-box-top">
  401. <div class="Match-box-top-left">
  402. <!-- <span>{{itemList.match_date}}</span> -->
  403. <span class="texttop">{{itemList.match_process}}</span>
  404. <span class="texttop" v-if="activity == 'StRollBall'">{{itemList.a_time}}</span>
  405. <span class="texttop" v-if="activity == 'StSoon' && itemList.wait_time > 0">{{itemList.wait_time}}分钟</span>
  406. <span class="texttop" v-else-if="activity == 'StSoon' && itemList.wait_time < 0">--分钟</span>
  407. </div>
  408. <div class="Match-box-top-right row">
  409. <span style="margin-right: .1rem;" class="Match-box-top-num">{{itemList.tag}}</span>
  410. <span style="margin-right: .1rem;">独赢盘</span>
  411. <span style="margin-right: .1rem;">让盘</span>
  412. </div>
  413. </div>
  414. <div class="row allAlignment center listbox">
  415. <div class="column average name-box">
  416. <div>{{itemList.home_team}}</div>
  417. <div>{{itemList.guest_team}}</div>
  418. </div>
  419. <div class="Match-list-box row item-center average">
  420. <div class="Match-bottom-right">
  421. <!-- 主队 -->
  422. <div class v-for="(items,indexs) in itemList.oddsData" :key="indexs">
  423. <div v-if="items.odds">
  424. <div class v-if="items.odds_code.startsWith('kemp')">
  425. <div
  426. :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
  427. class="letballHome column center"
  428. v-if="items.odds_code.endsWith('home')"
  429. @click.stop="isBetting($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.home_team,items.odds,items.condition,items.odds_only,items.odds_code,'kemp',items.p_code,items.status,item.lg_id,'独赢盘',items.oddsType)"
  430. >
  431. <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
  432. <span v-if="items.odds >0" >{{items.odds}}</span>
  433. <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;margin-top:0.1rem;" src="@/assets/st-imges/mima.png"><img>
  434. </div>
  435. <div
  436. :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
  437. class="letballGuest column center"
  438. v-if="items.odds_code.endsWith('guest')"
  439. @click.stop="isBetting($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.home_team,items.odds,items.condition,items.odds_only,items.odds_code,'kemp',items.p_code,items.status,item.lg_id,'独赢盘',items.oddsType)"
  440. >
  441. <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
  442. <span v-if="items.odds >0" >{{items.odds}}</span>
  443. <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;margin-top:0.1rem;" src="@/assets/st-imges/mima.png"><img>
  444. </div>
  445. </div>
  446. <div
  447. v-if="items.odds_code.startsWith('dishes')"
  448. class="row bigSmall"
  449. @click.stop="isBetting($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'dishes_home',items.p_code,items.status,item.lg_id,'让盘',items.oddsType)"
  450. >
  451. <div
  452. :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
  453. class="bigHome column center"
  454. v-if="items.odds_code.endsWith('guest')"
  455. >
  456. <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
  457. <span v-if="items.odds >0" >{{items.odds}}</span>
  458. <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;margin-top:0.1rem;" src="@/assets/st-imges/mima.png"><img>
  459. </div>
  460. <div
  461. :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
  462. class="bigGuest column center"
  463. v-if="items.odds_code.endsWith('home')"
  464. @click.stop="isBetting($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'dishes_home',items.p_code,items.status,item.lg_id,'让盘',items.oddsType)"
  465. >
  466. <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
  467. <span v-if="items.odds >0" >{{items.odds}}</span>
  468. <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;margin-top:0.1rem;" src="@/assets/st-imges/mima.png"><img>
  469. </div>
  470. </div>
  471. </div>
  472. </div>
  473. </div>
  474. </div>
  475. </div>
  476. </div>
  477. </div>
  478. </div>
  479. </div>
  480. <div v-if="isBettingWindow == '100'">
  481. <BettingWindow/>
  482. </div>
  483. </div>
  484. </template>
  485. <script>
  486. import Bus from "../assets/bus.js";
  487. import NotOpend from "@/components/StNotOpend";
  488. import BettingWindow from "@/components/StBettingWindow";
  489. export default {
  490. props: ["gameCode", "name", "ishow"],
  491. components: { NotOpend, BettingWindow },
  492. data() {
  493. return {
  494. show: false, //暂时状态
  495. isShow: true,
  496. noData: true, //显示暂无数据
  497. wq_show: true, //是否为棒球与网球,是则不显示
  498. info: "没有相关比赛信息",
  499. status: false,
  500. isBettingWindow: -1, //投注组件隐藏
  501. isAjax: false, //开关
  502. list: [],
  503. letBallData: [], //让球大小和1X2数据
  504. timers: true,
  505. activity: "",
  506. betting: [], //vuex里面玩法投注数据
  507. thisNum: 10000, //vuex里面
  508. index: "", //
  509. data: "", //玩法赔率数据源
  510. getIsShow: true,
  511. score: "0", //比分
  512. actydy: "", // 切换独赢状态BUG
  513. ball: this.$store.getters.getBallId, // 球类bm
  514. zlBallShow: true, //显示足球还是篮球
  515. previousStorage:[],
  516. wqPreviousStorage :[]
  517. };
  518. },
  519. /**
  520. * 函数方法
  521. */
  522. methods: {
  523. matchInfo(id) {
  524. this.$router.push({
  525. path: "/StRollBallBettingPage",
  526. query: {
  527. gameCode: this.$store.getters.getBallId,
  528. number: 1,
  529. home: true,
  530. name: this.name
  531. }
  532. });
  533. this.$store.dispatch("MACTH_ID", id);
  534. },
  535. //打开联赛投注页面
  536. goMatchInfo: function() {
  537. let ball = this.$store.getters.getBallId;
  538. // this.$store.dispatch("GETSHOW", true);
  539. Bus.$on("show", data => {
  540. this.isShow = data;
  541. if (this.isShow == false && this.ishow == true) {
  542. this.actydy = true;
  543. } else {
  544. this.actydy = false;
  545. }
  546. // // 暂时注释,有BUG
  547. // if (ball == "wq" || ball == "zq") {
  548. // } else {
  549. // // for(var i = 0; i < this.letBallData.length; i++){
  550. // // this.letBallData[i].matchData.forEach(val =>{
  551. // // // console.log('val',val)
  552. // // if(val.oddsData[0].homeOdds || val.oddsData[0].guestOdds){
  553. // // val.oddsData = [];
  554. // // }
  555. // // })
  556. // // this.dataGroup(this.letBallData[i],i)
  557. // // }
  558. // }
  559. });
  560. },
  561. getAjax: function(game_code, type_code) {
  562. if (!game_code || !type_code) return false;
  563. this.$http
  564. .get(this.$ports.match.matchState, { game_code, type_code })
  565. .then(res => {
  566. //console.log('数据结构',res.data.data);
  567. this.isAjax = true;
  568. if (
  569. res.data.status == 1 &&
  570. res.data.data.length > 0 &&
  571. res.data != null
  572. ) {
  573. this.letBallData = res.data.data;
  574. // console.log(this.letBallData)
  575. this.noData = false;
  576. //让球大小组合
  577. // for (var i = 0; i < res.data.data.length; i++) {
  578. this.dataGroup(this.letBallData);
  579. // }
  580. // //滚球比赛时间倒计时
  581. // if (this.activity == "StRollBall" && this.ball == 'zq') {
  582. // let _this = this;
  583. // _this.letBallData.forEach(val => {
  584. // val.matchData.forEach(e => {
  585. // if(e.a_time){
  586. // let [f, s] = e.a_time.split(":");
  587. // if (e.a_time != "") {
  588. // let [f, s] = e.a_time.split(":");
  589. // this.$public.timer(f, s, function(f, s) {
  590. // e.a_time = f + ":" + s;
  591. // });
  592. // }
  593. // }
  594. // });
  595. // });
  596. // }
  597. } else {
  598. // 是否显示组件
  599. this.noData = true;
  600. //console.log('data',this.noData)
  601. // 每次更新数据没有数据时则置空。
  602. this.letBallData = [];
  603. }
  604. });
  605. let _this = this;
  606. setTimeout(() => {
  607. _this.$store.dispatch("GETSHOW", false);
  608. }, 1000);
  609. },
  610. /*--------------------------------------------------------------------------------*/
  611. // 添加、删除vuex投注数据公共方法
  612. AddDelete: function(array, $index, type) {
  613. let bettingInfo = array;
  614. let isAdd = true,isNew=true;
  615. let matchList = this.$store.getters.getBetting;
  616. let ball = this.$store.getters.getBallId;
  617. //添加新的玩法赔率数据
  618. let obj = {
  619. title:bettingInfo.p_code,
  620. data: [bettingInfo]
  621. };
  622. if(matchList != null){
  623. for(let i = 0; i < matchList.length;i++){
  624. if(matchList[i].title == bettingInfo.p_code){
  625. //删除vuex投注数据
  626. // console.log(matchList[i].data)
  627. matchList[i].data.forEach((res, index) => {
  628. // console.log(res.id,id)
  629. if (res.id == array.id) {
  630. matchList[i].data.splice(index, 1);
  631. this.$store.dispatch("SET_LIMIT", false);
  632. this.$store.dispatch("BETTING", []);
  633. this.$store.dispatch("BETTING", matchList);
  634. isAdd = false;
  635. isNew = false;
  636. //处理当前页面样式
  637. this.modifyStyle($index, array.id,type);
  638. }
  639. });
  640. //添加vuex投注数据
  641. if (isAdd){
  642. isNew = false;
  643. if (this.$store.getters.getLimit * 1 >= 10) return false;
  644. //处理当前页面样式
  645. this.modifyStyle($index, array.id, type);
  646. matchList[i].data.push(bettingInfo);
  647. this.$store.dispatch("BETTING",[]);
  648. this.$store.dispatch("BETTING",matchList);
  649. if (this.$store.getters.getIsBetting == "100") return false;
  650. this.$store.dispatch("ISBETTING",100);
  651. }
  652. break;
  653. }
  654. }
  655. if(isNew){
  656. matchList.push(obj)
  657. this.$store.dispatch("BETTING",[]);
  658. this.$store.dispatch("BETTING",matchList);
  659. this.modifyStyle($index, array.id, type);
  660. if (this.$store.getters.getIsBetting == "100") return false;
  661. this.$store.dispatch("ISBETTING", "100");
  662. }
  663. }else{
  664. this.$store.dispatch("BETTING",[obj]);
  665. this.modifyStyle($index, array.id, type);
  666. if (this.$store.getters.getIsBetting == "100") return false;
  667. this.$store.dispatch("ISBETTING", "100");
  668. }
  669. },
  670. /*--------------------------------------------------------------------------------*/
  671. //修改当前页面样式公共方法
  672. modifyStyle: function($index, id, type) {
  673. let ball = this.$store.getters.getBallId;
  674. this.letBallData[$index].matchData.every((e, i) => {
  675. let ret = false;
  676. if(ball == 'lq'){
  677. if(type == 'concede'){
  678. e.oddsData[0].forEach((res,index) =>{
  679. if(res != null){
  680. if(res.id == id){
  681. this.$forceUpdate();
  682. this.$set(res,'isTrue',res.isTrue ? false : true)
  683. }
  684. }
  685. })
  686. }else if(type =='total_size'){
  687. e.oddsData[0].forEach((res,index) =>{
  688. if(res.id == id){
  689. // console.log('id',res.id,id)
  690. this.$forceUpdate();
  691. this.$set(res,'isTrue',res.isTrue ? false : true)
  692. }
  693. })
  694. }else if(type == 'capot'){
  695. e.oddsData[1].forEach((res,index) =>{
  696. if(res.id == id){
  697. this.$forceUpdate();
  698. this.$set(res,'isTrue',res.isTrue ? false : true)
  699. }
  700. })
  701. }
  702. }else{
  703. if (type == "homeOdds") {
  704. e.oddsData[0].every((res, index) => {
  705. if (res.id == id) {
  706. this.$forceUpdate();
  707. this.$set(res, "isTrue", res.isTrue ? false : true);
  708. ret = true;
  709. return false;
  710. }
  711. return true;
  712. });
  713. } else if (type == "guestOdds") {
  714. e.oddsData[0].every((res, index) => {
  715. if (res.id == id) {
  716. this.$forceUpdate();
  717. this.$set(res, "isTrue", res.isTrue ? false : true);
  718. ret = true;
  719. return false;
  720. }
  721. return true;
  722. });
  723. } else if (type == "capot") {
  724. e.oddsData[1].every((res, index) => {
  725. if (res.id == id) {
  726. this.$forceUpdate();
  727. this.$set(res, "isTrue", res.isTrue ? false : true);
  728. ret = true;
  729. return false;
  730. }
  731. return true;
  732. });
  733. }else if(type == 'kemp'){
  734. e.oddsData.every((res,index) =>{
  735. if(res.id == id){
  736. this.$forceUpdate();
  737. this.$set(res,'isTrue',res.isTrue ? false : true);
  738. ret = true;
  739. return false;
  740. }
  741. return true;
  742. })
  743. }else if(type == 'dishes_home'){
  744. e.oddsData.forEach((res,index) =>{
  745. if(res.id == id){
  746. this.$forceUpdate();
  747. this.$set(res,'isTrue',res.isTrue ? false : true)
  748. }
  749. })
  750. }
  751. }
  752. if (ret) {
  753. return false;
  754. } else {
  755. return true;
  756. }
  757. });
  758. },
  759. /*--------------------------------------------------------------------------------*/
  760. // 修改投注样式
  761. isBetting(
  762. $index,
  763. match_id,
  764. id,
  765. home,
  766. guest,
  767. name,
  768. odds,
  769. condition,
  770. odds_only,
  771. odds_code,
  772. type,
  773. p_code,
  774. status,
  775. lg_id,
  776. play_name,
  777. oddsType
  778. ) {
  779. let ball = this.$store.getters.getBallId;
  780. let bettingInfo = {};
  781. if(odds > 0){
  782. let bettingInfo = {
  783. id,
  784. home_team: home,
  785. guest_team: guest,
  786. name,
  787. odds,
  788. match_id,
  789. condition,
  790. ballId: this.$store.getters.getBallId,
  791. odds_code: odds_code,
  792. p_code: p_code,
  793. play_name,
  794. score: this.score,
  795. bettingTime: "",
  796. odds_only,
  797. lg_id,
  798. oddsType
  799. };
  800. this.AddDelete(bettingInfo, $index, type);
  801. if (this.$store.getters.getLimit * 1 >= 10) {
  802. this.$dialog.alert({ mes: "你的注单已达到上限啦!" });
  803. }
  804. }
  805. },
  806. /*--------------------------------------------- */
  807. //让球大小数据组合
  808. dataGroup: function(data) {
  809. let ball = this.$store.getters.getBallId;
  810. data.forEach(item =>{
  811. item.matchData.forEach((column, index) => {
  812. if (this.$store.getters.getBallId == "wq") {
  813. column.oddsData.forEach(val =>{
  814. if(this.betting.length > 0){
  815. this.betting.forEach(e => {
  816. e.forEach(item =>{
  817. if (val.id == item.id) {
  818. this.$set(val, "isTrue", true);
  819. }
  820. })
  821. });
  822. }
  823. })
  824. }else {
  825. if(Array.isArray(column.oddsData[1]) == true){
  826. column.oddsData[1].forEach(val => {
  827. if (this.betting.length >0) {
  828. this.betting.forEach(e => {
  829. e.forEach(item =>{
  830. if (val.id == item.id) {
  831. this.$forceUpdate();
  832. this.$set(val, "isTrue", true);
  833. }
  834. })
  835. });
  836. }
  837. });
  838. }
  839. if(Array.isArray(column.oddsData[0]) == true){
  840. column.oddsData[0].forEach(val => {
  841. if(val != null){
  842. if (this.betting.length >0) {
  843. this.betting.forEach(e => {
  844. e.forEach(item =>{
  845. if (val.id == item.id) {
  846. this.$forceUpdate();
  847. this.$set(val, "isTrue", true);
  848. }
  849. })
  850. });
  851. }
  852. }
  853. });
  854. }
  855. }
  856. });
  857. })
  858. // 数据更新切换样式
  859. let storage = this.previousStorage;
  860. let wqStorage = this.wqPreviousStorage;
  861. // console.log('a',storage)
  862. // console.log('222',storage)
  863. if(storage && storage != null && storage != '' && storage.length > 0 ){
  864. if(ball == 'zq' || ball == 'lq' || ball == 'bq'){
  865. // let dataa = data;
  866. data.forEach(itemList =>{
  867. itemList.matchData.forEach((e,idx) =>{
  868. e.oddsData.forEach(item =>{
  869. if(item.length > 0){
  870. item.forEach((list,index) =>{
  871. if(list != null){
  872. storage.forEach((a,i) =>{
  873. a.forEach(b =>{
  874. b.forEach(k =>{
  875. if(k != null){
  876. if(list.id == k.id){
  877. if(list.odds > k.odds){
  878. // console.log("1")
  879. list.change = 'add'
  880. }else if(list.odds < k.odds){
  881. // console.log("2")
  882. list.change = 'red';
  883. }
  884. else if(list.odds == k.odds){
  885. // console.log("3")
  886. list.change = '';
  887. }
  888. }
  889. }
  890. })
  891. })
  892. // a.splice(i,1)
  893. })
  894. }
  895. })
  896. }
  897. // item.splice(idx,1)
  898. })
  899. })
  900. })
  901. }
  902. }else if(wqStorage && wqStorage != null && wqStorage != '' && wqStorage.length > 0 ){
  903. if(ball == 'wq'){
  904. data.forEach(list =>{
  905. list.matchData.forEach(e =>{
  906. e.oddsData.forEach(item =>{
  907. wqStorage.forEach(a =>{
  908. a.forEach(b =>{
  909. if(item.id == b.id){
  910. if(item.odds > b.odds){
  911. item.change = 'add'
  912. }else if(item.odds < b.odds){
  913. item.change = 'red';
  914. }else{
  915. item.change = '';
  916. }
  917. }
  918. })
  919. })
  920. })
  921. })
  922. })
  923. }
  924. }
  925. this.previousStorage = [];
  926. this.wqPreviousStorage = [];
  927. if(ball =='lq' || ball =='zq' || ball =='bq'){
  928. data.forEach(list =>{
  929. list.matchData.forEach(k =>{
  930. this.previousStorage.push(k.oddsData)
  931. })
  932. })
  933. }else{
  934. data.forEach(res =>{
  935. res.matchData.forEach(k =>{
  936. this.wqPreviousStorage.push(k.oddsData)
  937. })
  938. })
  939. }
  940. this.$store.dispatch('GETGAMERATIO',data)
  941. // console.log("处理数据", this.letBallData);
  942. },
  943. /*---------------------------------------------*/
  944. //
  945. isClick(
  946. $index,
  947. match_id,
  948. id,
  949. home,
  950. guest,
  951. name,
  952. odds,
  953. condition,
  954. odds_only,
  955. odds_code,
  956. type,
  957. p_code,
  958. oddsType
  959. ) {
  960. let bettingInfo = {
  961. id,
  962. home_team: home,
  963. guest_team: guest,
  964. name,
  965. odds,
  966. match_id,
  967. condition,
  968. ballId: this.$store.getters.getBallId,
  969. odds_code: odds_code,
  970. p_code: p_code,
  971. play_name: "1X2",
  972. score: this.score,
  973. bettingTime: "",
  974. odds_only,
  975. oddsType
  976. };
  977. this.AddDelete(bettingInfo, $index, type);
  978. if (this.$store.getters.getLimit * 1 >= 10) {
  979. this.$dialog.alert({ mes: "你的注单已达到上限啦!" });
  980. }
  981. },
  982. /*---------------------------------------------*/
  983. //
  984. bettingChange() {
  985. // this.isBettingWindow = '100';
  986. }
  987. /*---------------------------------------------*/
  988. },
  989. /**
  990. * 计算属性
  991. */
  992. computed: {
  993. // 监听vuex状态值的改变
  994. getInfo: function() {
  995. return {
  996. game_code: this.$store.getters.getBallId,
  997. type_code: this.$store.getters.getActivity
  998. };
  999. },
  1000. getIsBetting: function() {
  1001. return this.$store.getters.getIsBetting;
  1002. },
  1003. // // 获取滚动状态
  1004. // getscorllcode() {
  1005. // return this.$public.getCache("box_size");
  1006. // },
  1007. // getBetting() {
  1008. // return this.$store.getters.getBetting;
  1009. // },
  1010. //获取投注框删除的投注信息
  1011. getDeleteType() {
  1012. return this.$store.getters.getDeleteType;
  1013. },
  1014. getActivity: function() {
  1015. return this.$store.getters.getActivity;
  1016. }
  1017. },
  1018. watch: {
  1019. getActivity(val) {
  1020. this.activity = val;
  1021. },
  1022. /*--------------------------------- */
  1023. getInfo(obj) {
  1024. let getBetting = this.$store.getters.getBetting;
  1025. // console.log('111',getBetting)
  1026. this.betting = [];
  1027. if(getBetting){
  1028. if(obj.game_code == 'zq'){
  1029. getBetting.forEach((e,index) =>{
  1030. if('concede' == e.title || 'goal_size' == e.title || 'capot' == e.title){
  1031. this.betting.push(e.data);
  1032. }
  1033. })
  1034. // console.log('zq',this.betting)
  1035. }else if(obj.game_code == 'lq'){
  1036. getBetting.forEach((e,index) =>{
  1037. if('concede' == e.title || 'total_size' == e.title){
  1038. this.betting.push(e.data);
  1039. }
  1040. })
  1041. }else if(obj.game_code == 'bq'){
  1042. getBetting.forEach((e,index) =>{
  1043. if('capot' == e.title || 'concede' == e.title || 'total_size' == e.title){
  1044. this.betting.push(e.data);
  1045. }
  1046. })
  1047. }else if(obj.game_code == 'wq'){
  1048. getBetting.forEach((e,index) =>{
  1049. if('dishes' == e.title || 'kemp' == e.title){
  1050. this.betting.push(e.data);
  1051. }
  1052. })
  1053. }
  1054. }
  1055. //console.log("obj.game_code", obj.game_code);
  1056. let getActivity = this.$store.getters.getActivity;
  1057. this.goMatchInfo();
  1058. // if (getActivity == "StSoon" || getActivity == "StRollBall") {
  1059. // if (this.isAjax) {
  1060. this.$store.dispatch("GETSHOW", true);
  1061. this.letBallData = [];
  1062. this.getAjax(obj.game_code, obj.type_code);
  1063. // }
  1064. // }
  1065. if (obj.game_code == "zq") {
  1066. this.zlBallShow = true;
  1067. } else if (obj.game_code == "lq") {
  1068. this.zlBallShow = false;
  1069. }
  1070. if (obj.game_code == "lq" || obj.game_code == "bq") {
  1071. this.ishow = true;
  1072. }
  1073. if (obj.game_code == "wq") {
  1074. //this.rShow = false;
  1075. this.isShow = true;
  1076. this.wq_show = false;
  1077. } else {
  1078. //this.rShow = true;
  1079. this.wq_show = true;
  1080. }
  1081. },
  1082. /*-------------------------------------*/
  1083. // 监听投注框开关
  1084. getIsBetting(val) {
  1085. this.isBettingWindow = val;
  1086. },
  1087. getDeleteType(val) {
  1088. let flag = true;
  1089. // 下标问题
  1090. let ball = this.$store.getters.getBallId;
  1091. //("matchData", this.letBallData);
  1092. this.letBallData.forEach((item, index) => {
  1093. //console.log("item", item);
  1094. item.matchData.forEach(e => {
  1095. if (val == "all") {
  1096. if(ball == 'lq'){
  1097. e.oddsData[0].forEach(data =>{
  1098. this.$set(data, "isTrue", false);
  1099. })
  1100. // e.oddsData[0].total_size.forEach(data =>{
  1101. // this.$set(data, "isTrue", false);
  1102. // })
  1103. }else if(ball == 'wq'){
  1104. e.oddsData.forEach(data =>{
  1105. this.$set(data,'isTrue',false);
  1106. })
  1107. }
  1108. else{
  1109. e.oddsData[0].forEach(data => {
  1110. this.$set(data, "isTrue", false);
  1111. });
  1112. e.oddsData[0].forEach(data => {
  1113. this.$set(data, "isTrue", false);
  1114. });
  1115. e.oddsData[1].forEach(data => {
  1116. this.$set(data, "isTrue", false);
  1117. });
  1118. }
  1119. } else {
  1120. let showData = true;
  1121. if(ball == 'lq'){
  1122. e.oddsData[0].forEach(data => {
  1123. if (data.id == val) {
  1124. this.$set(data, "isTrue", false);
  1125. showData = false;
  1126. }
  1127. });
  1128. // e.oddsData[0].total_size.forEach(data => {
  1129. // if (data.id == val) {
  1130. // this.$set(data, "isTrue", false);
  1131. // showData = false;
  1132. // }
  1133. // });
  1134. if (showData) {
  1135. e.oddsData[0].forEach(data => {
  1136. if (data.id == val) {
  1137. this.$set(data, "isTrue", false);
  1138. }
  1139. });
  1140. // e.oddsData[0].total_size.forEach(data => {
  1141. // if (data.id == val) {
  1142. // this.$set(data, "isTrue", false);
  1143. // }
  1144. // });
  1145. }
  1146. }else if(ball == 'wq'){
  1147. e.oddsData.forEach(data =>{
  1148. this.$set(data,'isTrue',false);
  1149. })
  1150. }
  1151. else{
  1152. e.oddsData[0].forEach(data => {
  1153. if (data.id == val) {
  1154. this.$set(data, "isTrue", false);
  1155. showData = false;
  1156. }
  1157. });
  1158. if (this.isShow == false && this.$store.getters.getBallId == "zq" || ball == 'bq') {
  1159. e.oddsData[1].forEach(data => {
  1160. if (data.id == val) {
  1161. this.$set(data, "isTrue", false);
  1162. showData = false;
  1163. }
  1164. });
  1165. }
  1166. if (showData) {
  1167. e.oddsData[0].forEach(data => {
  1168. if (data.id == val) {
  1169. this.$set(data, "isTrue", false);
  1170. }
  1171. });
  1172. }
  1173. }
  1174. }
  1175. });
  1176. });
  1177. },
  1178. /*--------------------------------------------------------------------------------*/
  1179. /*--------------------------------------------------------------------------------*/
  1180. },
  1181. mounted() {
  1182. // 调用bus传值
  1183. this.goMatchInfo();
  1184. //console.log("ssa", 123);
  1185. this.activity = this.$store.getters.getActivity;
  1186. let _this = this;
  1187. let getters = this.$store.getters;
  1188. if(getters.getBallId == 'wq'){
  1189. this.wq_show = false;
  1190. }
  1191. // 获取是否滑动信息
  1192. if (this.$public.getCache("box_size") == 1) {
  1193. this.isshrink = true;
  1194. }
  1195. //是否展示投注框
  1196. if (getters.getIsBetting == "100") {
  1197. this.isBettingWindow = 100;
  1198. }
  1199. //获取vuex玩法已投注相对应的数据
  1200. let getBetting = this.$store.getters.getBetting;
  1201. let ball = this.$store.getters.getBallId;
  1202. if(getBetting){
  1203. if(ball == 'zq'){
  1204. getBetting.forEach((e,index) =>{
  1205. if('concede' == e.title || 'goal_size' == e.title || 'capot' == e.title){
  1206. this.betting.push(e.data);
  1207. }
  1208. })
  1209. }else if(ball == 'lq'){
  1210. getBetting.forEach((e,index) =>{
  1211. if('concede' == e.title || 'total_size' == e.title){
  1212. this.betting.push(e.data);
  1213. }
  1214. })
  1215. }else if(ball == 'bq'){
  1216. getBetting.forEach((e,index) =>{
  1217. if('capot' == e.title || 'concede' == e.title || 'total_size' == e.title){
  1218. this.betting.push(e.data);
  1219. }
  1220. })
  1221. }else if(ball == 'wq'){
  1222. getBetting.forEach((e,index) =>{
  1223. if('dishes' == e.title || 'kemp' == e.title){
  1224. this.betting.push(e.data);
  1225. }
  1226. })
  1227. }
  1228. }
  1229. if (this.getIsShow) {
  1230. this.$store.dispatch("GETSHOW", true);
  1231. this.getIsShow = false;
  1232. }
  1233. this.getAjax(ball,this.activity);
  1234. this.$public.ajaxTimerFun(function(timing) {
  1235. if (_this.timers) {
  1236. _this.getAjax(getters.getBallId, getters.getActivity);
  1237. } else {
  1238. clearInterval(timing);
  1239. }
  1240. }, 1000 * 10);
  1241. },
  1242. beforeDestroy() {
  1243. this.timers = false;
  1244. }
  1245. };
  1246. </script>
  1247. <style scoped>
  1248. .yd-cell-box .yd-cell {
  1249. z-index: 99;
  1250. border-radius: 0.2rem;
  1251. }
  1252. .matchBox {
  1253. background: #f9f9f9;
  1254. padding: 0.27rem 0.34rem 0 0.32rem;
  1255. }
  1256. .match .tit {
  1257. display: flex;
  1258. justify-content: space-between;
  1259. font-size: 0.32rem;
  1260. margin-bottom: 0.3rem;
  1261. }
  1262. .match .list {
  1263. overflow: hidden;
  1264. transition: all 0.3s cubic-bezier(0.4, 0.6, 0.2, 1);
  1265. }
  1266. .match .list div {
  1267. background: #dcdcdc;
  1268. width: 100%;
  1269. height: 0.88rem;
  1270. padding: 0.26rem 0.56rem 0.3rem 0.3rem;
  1271. display: flex;
  1272. justify-content: space-between;
  1273. border-radius: 0.08rem;
  1274. margin-bottom: 0.12rem;
  1275. }
  1276. .match .list span {
  1277. color: #333333;
  1278. font-size: 0.28rem;
  1279. }
  1280. .match .list .num {
  1281. width: 0.4rem;
  1282. height: 0.4rem;
  1283. display: inline-block;
  1284. line-height: 0.4rem;
  1285. text-align: center;
  1286. color: #f5f5f5;
  1287. border-radius: 50%;
  1288. font-size: 0.2rem;
  1289. background: #f76649;
  1290. }
  1291. .yd-accordion {
  1292. background: transparent;
  1293. }
  1294. .match .list div:nth-last-child(1) {
  1295. margin-bottom: 0.34rem;
  1296. }
  1297. div /deep/ .yd-accordion-head,
  1298. div /deep/ .yd-accordion-head-content,
  1299. div /deep/ .yd-accordion-title,
  1300. div /deep/ .yd-accordion-title-full {
  1301. height: 0.3rem;
  1302. }
  1303. div /deep/ .yd-accordion-title {
  1304. min-height: 0;
  1305. font-size: 0.28rem;
  1306. }
  1307. div /deep/ .yd-accordion-head {
  1308. margin-bottom: 0.3rem;
  1309. border: none;
  1310. }
  1311. .list-box {
  1312. border: 2px solid #cecece;
  1313. border-radius: 0.2rem;
  1314. }
  1315. div /deep/ .yd-accordion-head:after {
  1316. height: 0px;
  1317. }
  1318. div /deep/ .yd-accordion-head-arrow:after {
  1319. border: none;
  1320. width: 0.4rem;
  1321. height: 0.4rem;
  1322. background: url("../assets/st-imges/xiangxia.png") no-repeat;
  1323. background-size: 0.4rem 0.4rem;
  1324. }
  1325. /* 1x2 */
  1326. .top-box {
  1327. height: 0.45rem;
  1328. /* font-size: 0.24rem;
  1329. background: #fff; */
  1330. border-bottom: 1px solid #e4e4e4;
  1331. padding: 0 0.32rem;
  1332. /* line-height: 0.44rem; */
  1333. background: #dcdcdc;
  1334. font-size: 0.23rem;
  1335. }
  1336. .box-bottom {
  1337. padding: 0.1rem 0.32rem;
  1338. background: #f8f8f8;
  1339. }
  1340. .top-num {
  1341. display: inline-block;
  1342. width: 0.64rem;
  1343. height: 0.44rem;
  1344. line-height: 0.44rem;
  1345. color: #000000;
  1346. text-align: center;
  1347. background: #ebebeb;
  1348. font-size: 0.24rem;
  1349. }
  1350. .noPd {
  1351. padding: 0;
  1352. }
  1353. .noBox {
  1354. padding: 0;
  1355. background: #f4f4f4;
  1356. }
  1357. .Match-title-num {
  1358. width: 0.46rem;
  1359. height: 0.46rem;
  1360. line-height: 0.46rem;
  1361. text-align: center;
  1362. background: #f76649;
  1363. font-size: 0.26rem;
  1364. border-radius: 50%;
  1365. color: #e4e4e4;
  1366. }
  1367. .haderBox {
  1368. margin-top: .05rem;
  1369. padding: 0 0.32rem;
  1370. height: 0.88rem;
  1371. font-size: 0.32rem;
  1372. background: #f8f8f8;
  1373. }
  1374. .main-box {
  1375. height: 0.9rem;
  1376. font-size: 0.24rem;
  1377. }
  1378. .bottom-box {
  1379. height: 1.1rem;
  1380. background: #f8f8f8;
  1381. font-size: 0.24rem;
  1382. }
  1383. .bottom-box div {
  1384. width: 1.07rem;
  1385. height: 0.76rem;
  1386. border: 1px solid #cecece;
  1387. border-radius: 0.1rem;
  1388. font-size: 0.24rem;
  1389. }
  1390. .bottom-num {
  1391. display: flex;
  1392. justify-content: center;
  1393. align-items: center;
  1394. flex-wrap: wrap;
  1395. }
  1396. .bottom-num p{
  1397. width: 100%;
  1398. text-align: center;
  1399. }
  1400. .active {
  1401. background: #f76649;
  1402. border: 2px solid #f76649 !important;
  1403. }
  1404. .active > p {
  1405. color: #e4e4e4 !important;
  1406. }
  1407. .num-box {
  1408. width: 0.66rem;
  1409. height: 0.34rem;
  1410. background: #f76649;
  1411. border-radius: 0.17rem;
  1412. color: #f5f5f5 !important;
  1413. line-height: 0.34rem;
  1414. text-align: center;
  1415. }
  1416. .footBox {
  1417. height: 1rem;
  1418. display: flex;
  1419. flex-wrap: wrap;
  1420. justify-content: space-around;
  1421. align-items: center;
  1422. }
  1423. .footBox .box {
  1424. display: flex;
  1425. align-items: center;
  1426. }
  1427. /* 让球&大小 */
  1428. .letBallBox {
  1429. padding: 0 0.32rem;
  1430. height: 0.88rem;
  1431. font-size: 0.32rem;
  1432. background: #f4f4f4;
  1433. }
  1434. .mg {
  1435. margin-bottom: 0.1rem;
  1436. }
  1437. .Match-title-num {
  1438. width: 0.46rem;
  1439. height: 0.46rem;
  1440. align-items: center;
  1441. justify-content: center;
  1442. line-height: 0.46rem;
  1443. text-align: center;
  1444. background: #f76649;
  1445. font-size: 0.2rem;
  1446. border-radius: 50%;
  1447. color: #f5f5f5;
  1448. }
  1449. .Match-box-top-right > span {
  1450. width: 1.07rem;
  1451. text-align: center;
  1452. }
  1453. .listbox {
  1454. padding: 0.1rem 0.32rem;
  1455. }
  1456. .name-box {
  1457. height: 1.76rem;
  1458. width: 3.8rem;
  1459. }
  1460. .Match-box-top {
  1461. height: 0.44rem;
  1462. padding: 0 0.32rem;
  1463. /* line-height: 0.44rem; */
  1464. background: #dcdcdc;
  1465. font-size: 0.23rem;
  1466. }
  1467. .Match-box-top-num {
  1468. width: 0.64rem !important;
  1469. height: 0.44rem;
  1470. background: #ebebeb;
  1471. font-size: 0.24rem;
  1472. }
  1473. .texttop {
  1474. color: #f76649;
  1475. }
  1476. .Match-box {
  1477. /* padding: 0 0 0.12rem; */
  1478. background: #f8f8f8;
  1479. }
  1480. .Match-list-box {
  1481. /* width: 35%; */
  1482. height: 1.76rem;
  1483. flex-wrap: wrap;
  1484. position: relative;
  1485. }
  1486. .rbigMall{
  1487. position: absolute;
  1488. right: 0;
  1489. top: 0.1rem;
  1490. }
  1491. .rbigMall .letballGuest{
  1492. position: absolute;
  1493. top: 0.81rem;
  1494. right: 0;
  1495. }
  1496. .Match-list-box .match-list div {
  1497. width: 1.07rem;
  1498. height: 0.8rem;
  1499. border: 1px solid #cecece;
  1500. border-radius: 0.1rem;
  1501. flex-wrap: wrap;
  1502. }
  1503. .active {
  1504. background: #e4e4e4;
  1505. }
  1506. /* 后加 */
  1507. .Match-title-num {
  1508. width: 0.46rem;
  1509. height: 0.46rem;
  1510. line-height: 0.46rem;
  1511. text-align: center;
  1512. background: #f76649;
  1513. font-size: 0.26rem;
  1514. border-radius: 50%;
  1515. color: #f5f5f5;
  1516. }
  1517. .Match-box-top-right > span {
  1518. width: 1.07rem;
  1519. text-align: center;
  1520. }
  1521. .name-box {
  1522. height: 1.76rem;
  1523. }
  1524. .Match-box-top {
  1525. height: 0.45rem;
  1526. line-height: 0.45rem;
  1527. background: #dcdcdc;
  1528. font-size: 0.23rem;
  1529. padding: 0 0.32rem;
  1530. }
  1531. .Match-box-top-num {
  1532. width: 0.64rem !important;
  1533. height: 0.45rem;
  1534. background: #ebebeb;
  1535. font-size: 0.24rem;
  1536. }
  1537. .Match-box {
  1538. background: #f4f4f4;
  1539. }
  1540. .Match-bottom-right {
  1541. padding: 0 0.14rem;
  1542. }
  1543. .Match-list-left div {
  1544. width: 1.07rem;
  1545. height: 0.76rem;
  1546. border: 1px solid #e4e4e4;
  1547. border-radius: 0.1rem;
  1548. padding: 0.1rem;
  1549. margin: 0.06rem 0.08rem;
  1550. }
  1551. .Match-list-right div {
  1552. width: 1.07rem;
  1553. height: 0.76rem;
  1554. border: 1px solid #e4e4e4;
  1555. border-radius: 0.1rem;
  1556. margin: 0.06rem 0.08rem;
  1557. }
  1558. .active {
  1559. background: #f76649;
  1560. border: none;
  1561. color: #e1e1df !important;
  1562. }
  1563. .active span {
  1564. color: #e1e1df !important;
  1565. }
  1566. .active i {
  1567. color: #e1e1df !important;
  1568. }
  1569. /* 赔率 */
  1570. .Match-bottom-right {
  1571. height: 2rem;
  1572. width: 2.5rem;
  1573. padding: 0.1rem 0.1rem 0 0.14rem;
  1574. position: relative;
  1575. }
  1576. .letballHome,
  1577. .letballGuest,
  1578. .bigHome,
  1579. .bigGuest {
  1580. width: 1.07rem;
  1581. height: 0.76rem;
  1582. /* line-height: 0.76rem; */
  1583. border: 1px solid #e4e4e4;
  1584. border-radius: 0.1rem;
  1585. margin: 0.06rem 0.08rem;
  1586. /* padding: 0.1rem 0; */
  1587. /* margin: 0.06rem 0.6rem 0.06rem 0; */
  1588. text-align: center;
  1589. }
  1590. .letballGuest{
  1591. position: absolute;
  1592. bottom: 0.19rem;
  1593. }
  1594. .bigHome span,
  1595. .bigGuest span,
  1596. .letballHome span,
  1597. .letballGuest span {
  1598. display: block;
  1599. }
  1600. .bigHome {
  1601. position: absolute;
  1602. right: 0;
  1603. top: 0.1rem;
  1604. }
  1605. .bigGuest {
  1606. position: absolute;
  1607. right: 0;
  1608. top: 0.93rem;
  1609. }
  1610. .active span {
  1611. color: #e1e1df !important;
  1612. }
  1613. .capotBox{
  1614. display: flex;
  1615. flex-direction: column;
  1616. }
  1617. .ratio {
  1618. width: 1rem;
  1619. height: 0.76rem;
  1620. border: 1px solid #cecece;
  1621. margin-right: 0.14rem;
  1622. border-radius: 0.1rem;
  1623. margin: 0.06rem;
  1624. }
  1625. .locking{
  1626. display: flex;
  1627. justify-content: space-between;
  1628. flex-wrap: wrap;
  1629. align-items: center;
  1630. }
  1631. .stardLeft{
  1632. position: absolute;
  1633. left: 0.2rem;
  1634. }
  1635. .stardCenter{
  1636. position: absolute;
  1637. left: 2.9rem;
  1638. }
  1639. .stardRight{
  1640. position: absolute;
  1641. right: 0.2rem;
  1642. }
  1643. .stardBig{
  1644. display: flex;
  1645. align-items: center;
  1646. justify-content: center;
  1647. }
  1648. .stardBig .bigSmall{
  1649. color: #9b9999;
  1650. }
  1651. .mg{
  1652. margin-top: 0.2rem;
  1653. }
  1654. </style>