1f5d7b7dc2b2db751becb2ce951e01003561fdad.svn-base 40 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049
  1. <!--
  2. * @Description: In User Settings Edit
  3. * @Author: your name
  4. * @Date: 2019-08-26 10:58:22
  5. * @LastEditTime: 2019-08-27 11:32:22
  6. * @LastEditors: Please set LastEditors
  7. -->
  8. <template>
  9. <!-- 禁止滚动 -->
  10. <div>
  11. <div class="Serch row item-center">
  12. <div class="Soccer-game row item-center">
  13. <div
  14. style=" display:flex;align-items:center;justify-content:center;"
  15. class="Soccer-game-title"
  16. @click="isreturn()"
  17. >
  18. <img class="box-img" src="../assets/st-imges/returnbox.png">
  19. {{this.title}}
  20. </div>
  21. </div>
  22. <div class="Serch-box row item-center">
  23. <div class="Serch-box-home row item-center">
  24. <img class="Serch-box-img" src="../assets/st-imges/sousuo.png">
  25. <input
  26. v-model="SerchValue"
  27. @input="searchTeam(SerchValue)"
  28. class="Serch-box-input"
  29. type="text"
  30. placeholder="请输入球队名称"
  31. >
  32. <img
  33. class="Serch-box-del"
  34. @click="delinputvalue()"
  35. v-if="Serchchange==true"
  36. src="../assets/st-imges/del.png"
  37. >
  38. </div>
  39. </div>
  40. </div>
  41. <div v-if="isMatchShow" class="row allAlignment box center">
  42. <span>{{data.leagueName}}</span>
  43. <div class="Match-title-num">
  44. <span>{{data.matchNum}}</span>
  45. </div>
  46. </div>
  47. <div v-if="isMatchShow && ballSelt == 10" v-for=" (item,index) in data.matchData" :key="index" class="Match-box">
  48. <div class="row allAlignment Match-box-top">
  49. <div class="Match-box-top-left">
  50. <span>{{item.match_date}}</span>
  51. <span>{{item.match_time}}</span>
  52. </div>
  53. <div class="Match-box-top-right row">
  54. <span style="margin-right: .15rem;" class="Match-box-top-num">{{item.tag}}</span>
  55. <span style="margin-right: .15rem;">让球</span>
  56. <span style="margin-right: .15rem;">大小</span>
  57. </div>
  58. </div>
  59. <div
  60. class="row allAlignment center"
  61. @click="matchInfo(item.match_id);"
  62. style="padding:0 .32rem"
  63. >
  64. <div class="column average name-box">
  65. <div>{{item.home_team}}</div>
  66. <div>{{item.guest_team}}</div>
  67. </div>
  68. <div class="Match-bottom-right">
  69. <!-- 主队 -->
  70. <div class="" v-for="(items,indexs) in item.oddsData" :key="indexs">
  71. <div v-if="items.odds">
  72. <div class="" v-if="items.odds_code.startsWith('co')">
  73. <div :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}" class="letballHome" v-if="items.odds_code.endsWith('h')" @click.stop="bteBetting(item.match_id,items.id,item.home_team,item.guest_team,item.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'homeOdds',data.lg_id,items.status,items.p_code,'让球')">
  74. <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
  75. <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''">{{items.odds}}</span>
  76. <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  77. </div>
  78. <div :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}" class="letballGuest" v-if="items.odds_code.endsWith('g')" @click.stop="bteBetting(item.match_id,items.id,item.home_team,item.guest_team,item.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'homeOdds',data.lg_id,items.status,items.p_code,'让球')">
  79. <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
  80. <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''">{{items.odds}}</span>
  81. <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  82. </div>
  83. </div>
  84. <div v-if="items.odds_code.startsWith('gs')" class="row bigSmall" @click.stop="bteBetting(item.match_id,items.id,item.home_team,item.guest_team,item.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'guestOdds',data.lg_id,items.status,items.p_code,'大小')">
  85. <div :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}" class="bigHome" v-if="items.odds_code.endsWith('h')">
  86. <div style="color: rgb(247, 102, 73); " class="stardBig" v-if="items.odds > 0">
  87. <span class="bigSmall">大</span>
  88. <span v-if="items.condition != '大'">{{items.condition}}</span>
  89. </div>
  90. <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''">{{items.odds}}</span>
  91. <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  92. </div>
  93. <div :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}" class="bigGuest" v-if="items.odds_code.endsWith('g')" @click.stop="bteBetting(item.match_id,items.id,item.home_team,item.guest_team,item.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'guestOdds',data.lg_id,items.status,items.p_code,'大小')">
  94. <div style="color: rgb(247, 102, 73); " class="stardBig" v-if="items.odds > 0">
  95. <span class="bigSmall">小</span>
  96. <span v-if="items.condition != '小'">{{items.condition}}</span>
  97. </div>
  98. <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''">{{items.odds}}</span>
  99. <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  100. </div>
  101. </div>
  102. <div v-if="items.odds_code.startsWith('gs')" class="row bigSmall" @click.stop="bteBetting(item.match_id,items.id,item.home_team,item.guest_team,item.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'guestOdds',data.lg_id,items.status,items.p_code,'大小')">
  103. <div :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}" class="bigHome" v-if="items.odds_code.endsWith('b')">
  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" :class="items.condition == '' ? 'mg':''">{{items.odds}}</span>
  109. <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  110. </div>
  111. <div :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}" class="bigGuest" v-if="items.odds_code.endsWith('s')" @click.stop="bteBetting(item.match_id,items.id,item.home_team,item.guest_team,item.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'guestOdds',data.lg_id,items.status,items.p_code,'大小')">
  112. <div style="color: rgb(247, 102, 73); " class="stardBig" v-if="items.odds > 0">
  113. <span class="bigSmall">小</span>
  114. <span v-if="items.condition != '小'">{{items.condition}}</span>
  115. </div>
  116. <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''">{{items.odds}}</span>
  117. <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  118. </div>
  119. </div>
  120. <div v-if="items.odds_code.startsWith('gs')" class="row bigSmall" @click.stop="bteBetting(item.match_id,items.id,item.home_team,item.guest_team,item.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'guestOdds',data.lg_id,items.status,items.p_code,'大小')">
  121. <div :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}" class="bigHome" v-if="items.odds_code.endsWith('b')">
  122. <div style="color: rgb(247, 102, 73); " class="stardBig" v-if="items.odds > 0">
  123. <span class="bigSmall">大</span>
  124. <span v-if="items.condition != '大'">{{items.condition}}</span>
  125. </div>
  126. <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''">{{items.odds}}</span>
  127. <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  128. </div>
  129. <div :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}" class="bigGuest" v-if="items.odds_code.endsWith('s')" @click.stop="bteBetting(item.match_id,items.id,item.home_team,item.guest_team,item.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'guestOdds',data.lg_id,items.status,items.p_code,'大小')">
  130. <div style="color: rgb(247, 102, 73); " class="stardBig" v-if="items.odds > 0">
  131. <span class="bigSmall">小</span>
  132. <span v-if="items.condition != '小'">{{items.condition}}</span>
  133. </div>
  134. <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''">{{items.odds}}</span>
  135. <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  136. </div>
  137. </div>
  138. </div>
  139. </div>
  140. </div>
  141. </div>
  142. </div>
  143. <!-- 网球 -->
  144. <div v-if="isMatchShow && ballSelt == 100" v-for=" (item,index) in data.matchData" :key="item.id" class="Match-box">
  145. <div class="row allAlignment Match-box-top wqMatch-box">
  146. <div class="Match-box-top-left">
  147. <span>{{item.match_date}}</span>
  148. <span style="color: rgb(253, 143, 38);">{{item.match_time}}</span>
  149. <div>三盘两胜</div>
  150. </div>
  151. <div class="Match-box-top-right row">
  152. <span style="margin-right: .15rem;height:100%;line-height:0.65rem;" class="Match-box-top-num">{{item.tag}}</span>
  153. <span style="margin-right: .15rem;line-height:0.65rem;">独赢盘</span>
  154. <span style="margin-right: .15rem;line-height:0.65rem;">让盘</span>
  155. </div>
  156. </div>
  157. <div
  158. class="row allAlignment center"
  159. @click="matchInfo(item.match_id);"
  160. style="padding:0 .32rem"
  161. >
  162. <div class="column average wqavg name-box">
  163. <div>{{item.home_team}}</div>
  164. <div>{{item.guest_team}}</div>
  165. </div>
  166. <div class="Match-bottom-right">
  167. <!-- 主队 -->
  168. <div class="" v-for="(items,indexs) in item.oddsData" :key="indexs">
  169. <div class="" v-if="items.odds_code.startsWith('c')">
  170. <div :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}" class="letballHome" v-if="items.odds_code.endsWith('h')" @click.stop="bteBetting(item.match_id,items.id,item.home_team,item.guest_team,item.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'homeOdds',data.lg_id,items.status,items.p_code,'独赢盘')">
  171. <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
  172. <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''">{{items.odds}}</span>
  173. <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  174. </div>
  175. <div :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}" class="letballGuest" v-if="items.odds_code.endsWith('g')" @click.stop="bteBetting(item.match_id,items.id,item.home_team,item.guest_team,item.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'homeOdds',data.lg_id,items.status,items.p_code,'独赢盘')">
  176. <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
  177. <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''">{{items.odds}}</span>
  178. <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  179. </div>
  180. </div>
  181. <div v-if="items.odds_code.startsWith('ld')" class="row bigSmall" @click.stop="bteBetting(item.match_id,items.id,item.home_team,item.guest_team,item.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'guestOdds',data.lg_id,items.status,items.p_code,'让盘')">
  182. <div :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}" class="bigHome" v-if="items.odds_code.endsWith('h')">
  183. <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
  184. <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''">{{items.odds}}</span>
  185. <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  186. </div>
  187. <div :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}" class="bigGuest" v-if="items.odds_code.endsWith('g')" @click.stop="bteBetting(item.match_id,items.id,item.home_team,item.guest_team,item.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'guestOdds',data.lg_id,items.status,items.p_code,'让盘')">
  188. <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
  189. <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''">{{items.odds}}</span>
  190. <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  191. </div>
  192. </div>
  193. </div>
  194. </div>
  195. </div>
  196. </div>
  197. <!-- 棒球 -->
  198. <div v-if="isMatchShow && ballSelt == 1000" v-for=" (item,index) in data.matchData" :key="item.id" class="Match-box">
  199. <div class="row allAlignment Match-box-top">
  200. <div class="Match-box-top-left">
  201. <span>{{item.match_date}}</span>
  202. <span>{{item.match_time}}</span>
  203. </div>
  204. <div class="Match-box-top-right row">
  205. <span style="margin-right: .15rem;" class="Match-box-top-num">{{item.tag}}</span>
  206. <span style="margin-right: .15rem;">独赢盘</span>
  207. </div>
  208. </div>
  209. <div
  210. class="row allAlignment center"
  211. @click="matchInfo(item.match_id);"
  212. style="padding:0 .32rem"
  213. >
  214. <div class="column average name-box">
  215. <div>{{item.home_team}}</div>
  216. <div>{{item.guest_team}}</div>
  217. </div>
  218. <!-- <div class="Match-bottom-right">
  219. <div class="row">
  220. <div
  221. class="Match-list-left"
  222. v-for="(items,indexs) in item.oddsData.homeOdds"
  223. :key="indexs"
  224. @click.stop="bteBetting(item.match_id, items.id,item.home_team,item.guest_team,item.home_team,items.odds,items.condition,items.odds_only,items.odds_code,'homeOdds',items.lg_id,items.status,items.p_code)"
  225. >
  226. <div :class="{ 'active' : items.isTrue == true}" class="column center">
  227. <span style="color:#FD8F26" v-if="items.odds > 0">{{items.condition}}</span>
  228. <span v-if="items.odds >0">{{items.odds}}</span>
  229. <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  230. </div>
  231. </div>
  232. </div>
  233. <div class="row">
  234. <div
  235. class="Match-list-right row"
  236. v-for="(items,indexs) in item.oddsData.guestOdds"
  237. :key="indexs"
  238. @click.stop="bteBetting(item.match_id,items.id,item.home_team,item.guest_team,item.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'guestOdds',items.lg_id,items.status,items.p_code)"
  239. >
  240. <div :class="{'active':items.isTrue==true}" class="column center">
  241. <span v-if="items.odds > 0">
  242. <i style="color:#FD8F26">{{items.condition}}</i>
  243. </span>
  244. <span v-if="items.odds >0">{{items.odds}}</span>
  245. <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  246. </div>
  247. </div>
  248. </div>
  249. </div> -->
  250. <div class="Match-bottom-right">
  251. <!-- 主队 -->
  252. <div class="" v-for="(items,indexs) in item.oddsData" :key="indexs">
  253. <div v-if="items.odds_code">
  254. <div v-if="items.odds_code.startsWith('c')" class="row bigSmall" @click.stop="bteBetting(item.match_id,items.id,item.home_team,item.guest_team,item.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'homeOdds',data.lg_id,items.status,items.p_code,'独赢盘')">
  255. <div :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}" class="bigHome" v-if="items.odds_code.endsWith('h')">
  256. <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
  257. <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''">{{items.odds}}</span>
  258. <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  259. </div>
  260. <div :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}" class="bigGuest" v-if="items.odds_code.endsWith('g')" @click.stop="bteBetting(item.match_id,items.id,item.home_team,item.guest_team,item.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'guestOdds',data.lg_id,items.status,items.p_code,'独赢盘')">
  261. <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
  262. <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''">{{items.odds}}</span>
  263. <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
  264. </div>
  265. </div>
  266. </div>
  267. </div>
  268. </div>
  269. </div>
  270. </div>
  271. <!-- <div class = "lod">
  272. <Loading></Loading>
  273. </div>-->
  274. <div class="BettingWindow" v-if="isBettingShow =='100'">
  275. <BettingWindow/>
  276. </div>
  277. <div v-if="noData">
  278. <NotOpend :title="this.info"/>
  279. </div>
  280. </div>
  281. </template>
  282. <script>
  283. import BettingWindow from "./StBettingWindow.vue";
  284. import NotOpend from "@/components/StNotOpend";
  285. import Loading from "@/components/StLoading";
  286. export default {
  287. name: "SerchBox",
  288. data() {
  289. return {
  290. SerchValue: "",
  291. Serchchange: false,
  292. title: " ", //标题
  293. data: " ",
  294. isMatchShow: true,
  295. lg_id: "",
  296. isAddData: false, //判断是否添加
  297. game_code: this.$route.query.game_code, //球的类型别名
  298. leagueID: this.$route.query.leagueID, //获取联赛id
  299. isBettingShow: "0", //投注显示关闭默认false
  300. score: "0", //比分
  301. codeShow: false, // 如果是参赛表传值过来,则显示另一部分
  302. info: "没有相关联赛信息",
  303. noData: false, //没有数据为true
  304. betting: [], //vuex里面玩法投注数据
  305. timers: true,
  306. getIsShow:true,
  307. ballSelt:0, // 当为10的时候为篮球,足球,100的时候为网球,1000的时候为棒球
  308. // 存储变色数据
  309. previousStorage:[]
  310. };
  311. },
  312. components: {
  313. BettingWindow,
  314. NotOpend,
  315. Loading
  316. },
  317. /**
  318. *函数方法
  319. */
  320. methods: {
  321. /*--------------------------------------------------------------------------------*/
  322. // 返回上一页
  323. isreturn() {
  324. history.go(-1);
  325. },
  326. /*--------------------------------------------------------------------------------*/
  327. // 是否显示删除按钮
  328. serchchange(val) {
  329. if (val.length >= 1) {
  330. this.Serchchange = true;
  331. } else {
  332. this.Serchchange = false;
  333. }
  334. },
  335. /*--------------------------------------------------------------------------------*/
  336. // 查询球队
  337. searchTeam(val) {
  338. let getActivity = this.$store.getters.getActivity;
  339. let matchDate = this.$route.query.matchDate;
  340. let dataObj = this.dataObj;
  341. if (val.length >= 1) {
  342. this.Serchchange = true;
  343. } else {
  344. this.Serchchange = false;
  345. }
  346. dataObj.search = val;
  347. if (this.$route.query.navBall) {
  348. this.getMatchData(this.$ports.match.matchState, dataObj);
  349. } else {
  350. dataObj.type_code = "";
  351. dataObj.search = val;
  352. this.getMatchData(this.$ports.match.matchDetails, dataObj);
  353. }
  354. },
  355. /*--------------------------------------------------------------------------------*/
  356. // 清空输入
  357. delinputvalue() {
  358. this.SerchValue = "";
  359. this.Serchchange = false;
  360. let matchDate = this.$route.query.matchDate;
  361. let dataObj = {
  362. oddsType: this.$store.getters.activity,
  363. game_code: this.game_code,
  364. leagueID: "",
  365. lg_id: this.leagueID,
  366. type_code: this.$store.getters.getActivity,
  367. matchDate: "",
  368. match_date: matchDate,
  369. search: "",
  370. str_type: ""
  371. };
  372. if (this.$route.query.navBall) {
  373. this.getMatchData(this.$ports.match.matchState, dataObj);
  374. } else {
  375. dataObj.leagueID = this.leagueID;
  376. dataObj.lg_id = "";
  377. dataObj.type_code = "";
  378. dataObj.matchDate = matchDate;
  379. dataObj.match_date = "";
  380. this.getMatchData(this.$ports.match.matchDetails, dataObj);
  381. }
  382. },
  383. /*--------------------------------------------------------------------------------*/
  384. // 添加、删除vuex投注数据公共方法
  385. AddDelete: function(match_id,id,home,guest,name,odds,condition,odds_only,odds_code,type,lg_id,status,p_code,play_name
  386. ) {
  387. let isAdd = true,isNew=true;
  388. let matchList = this.$store.getters.getBetting;
  389. if (status == "-1") return false;
  390. let ball = this.$store.getters.getBallId;
  391. // if(ball == 'zq'){
  392. let bettingInfo = {
  393. id,
  394. home_team: home,
  395. guest_team: guest,
  396. name,
  397. odds,
  398. match_id,
  399. condition,
  400. ballId: ball,
  401. odds_code: odds_code,
  402. p_code,
  403. play_name,
  404. score: this.score,
  405. bettingTime: "",
  406. odds_only,
  407. lg_id,
  408. odds_id: id
  409. };
  410. //添加新的玩法赔率数据
  411. let obj = {
  412. title:p_code,
  413. data: [bettingInfo]
  414. };
  415. if(matchList !=null ){
  416. for(let i =0 ;i < matchList.length; i++ ){
  417. if(matchList[i].title == p_code){
  418. //删除vuex投注数据
  419. matchList[i].data.forEach((res, index) => {
  420. // console.log(res.id,id)
  421. if (res.id == id) {
  422. matchList[i].data.splice(index, 1);
  423. this.$store.dispatch("SET_LIMIT", false);
  424. this.$store.dispatch("BETTING", []);
  425. this.$store.dispatch("BETTING", matchList);
  426. isAdd = false;
  427. isNew = false;
  428. //处理当前页面样式
  429. this.modifyStyle(id,type);
  430. }
  431. });
  432. //添加vuex投注数据
  433. if (isAdd){
  434. isNew = false;
  435. if (this.$store.getters.getLimit * 1 >= 10) return false;
  436. //处理当前页面样式
  437. this.modifyStyle(id, type);
  438. matchList[i].data.push(bettingInfo);
  439. this.$store.dispatch("BETTING",[]);
  440. this.$store.dispatch("BETTING",matchList);
  441. if (this.$store.getters.getIsBetting == "100") return false;
  442. this.$store.dispatch("ISBETTING",100);
  443. }
  444. break;
  445. }
  446. }
  447. if(isNew){
  448. matchList.push(obj)
  449. this.$store.dispatch("BETTING",[]);
  450. this.$store.dispatch("BETTING",matchList);
  451. this.modifyStyle(id, type);
  452. if (this.$store.getters.getIsBetting == "100") return false;
  453. this.$store.dispatch("ISBETTING", "100");
  454. }
  455. }else{
  456. this.$store.dispatch("BETTING",[obj]);
  457. this.modifyStyle(id, type);
  458. if (this.$store.getters.getIsBetting == "100") return false;
  459. this.$store.dispatch("ISBETTING", "100");
  460. }
  461. },
  462. /*--------------------------------------------------------------------------------*/
  463. //修改当前页面样式公共方法
  464. modifyStyle: function(id, type) {
  465. // console.log('type',type)
  466. //if(this.$store.getters.getLimit*1 > 10 )
  467. this.data.matchData.every(e => {
  468. let ret = false;
  469. if (type == "homeOdds") {
  470. e.oddsData.every((res, index) => {
  471. if (res.id == id) {
  472. this.$set(
  473. res,
  474. "isTrue",
  475. res.isTrue ? false : true
  476. );
  477. this.$forceUpdate()
  478. ret = true;
  479. return false;
  480. }
  481. return true;
  482. });
  483. } else if (type == "guestOdds") {
  484. e.oddsData.every((res, index) => {
  485. if (res.id == id) {
  486. this.$set(
  487. res,
  488. "isTrue",
  489. res.isTrue ? false : true
  490. );
  491. this.$forceUpdate()
  492. ret = true;
  493. return false;
  494. }
  495. return true;
  496. });
  497. }
  498. if (ret) {
  499. return false;
  500. } else {
  501. return true;
  502. }
  503. });
  504. },
  505. /*--------------------------------------------------------------------------------*/
  506. // 修改投注样式
  507. bteBetting( match_id, id,home,guest,name,odds,condition,odds_only,odds_code,type,lg_id,status,p_code,play_name) {
  508. // console.log('data',id)
  509. if(odds > 0){
  510. if (this.data) {
  511. //处理vuex里面数据
  512. this.AddDelete(match_id,id,home,guest,name,odds, condition, odds_only,odds_code, type,lg_id,status,p_code,play_name);
  513. if (this.$store.getters.getLimit * 1 >= 10) {
  514. this.$dialog.alert({ mes: "你的注单已达到上限啦!" });
  515. }
  516. }
  517. }
  518. },
  519. /*--------------------------------------------------------------------------------*/
  520. //跳转到赛事详情
  521. matchInfo: function(id) {
  522. this.$router.push({
  523. path:"/StRollBallBettingPage",
  524. query: {
  525. gameCode: this.game_code,
  526. home: 1,
  527. name: this.$route.query.name
  528. }
  529. });
  530. this.$store.dispatch("MACTH_ID", id);
  531. },
  532. /*--------------------------------------------------------------------------------*/
  533. // url : 地址, game_code 球类 leagueID lg_id 联赛id type_code 状态 matchDate match_date 赛事日期 search 搜索 str_type 选项类型
  534. //获取联赛比赛列表
  535. getMatchData: function(url, data) {
  536. // console.log('ajax')
  537. //“concede_home”: 主队全场让球,“concede_guest”: 客队全场让球,“size_home”: 主队大小,“size_guest”: 客队大小
  538. this.$http.get(url, data).then(res => {
  539. this.codeShow = true;
  540. // let
  541. if (res.data.status == 1 && res.data.data != null) {
  542. this.lg_id = res.data.data.lg_id;
  543. if (res.data.data.matchData && res.data.data.matchData.length < 1) {
  544. this.isMatchShow = false;
  545. this.noData = true;
  546. } else if (res.data.data.matchData &&res.data.data.matchData.length > 0 ) {
  547. this.isMatchShow = true;
  548. this.noData = false;
  549. this.dataGroup(res.data.data);
  550. }
  551. }else{
  552. this.data = '';
  553. this.noData = true;
  554. this.isMatchShow = false;
  555. }
  556. });
  557. let _this = this;
  558. setTimeout(function(){
  559. _this.$store.dispatch("GETSHOW", false);
  560. },1000)
  561. },
  562. /*--------------------------------------------------------------------------------*/
  563. /*--------------------------------------------------------------------------------*/
  564. // 赛事赔率玩法数据组合方法
  565. dataGroup: function(data) {
  566. console.log('SerchBox')
  567. let homeOdds = [],guestOdds = [];
  568. let A, B, C, D;
  569. // console.log('beeeee',this.betting)
  570. let ball = this.$store.getters.getBallId;
  571. data.matchData.forEach((column, index) => {
  572. if (column.oddsData == null || column.oddsData.length == 0) {
  573. if(ball == 'bq'){
  574. column.oddsData = {
  575. homeOdds: [{ status: -1 }],
  576. guestOdds: [{ status: -1 }]
  577. };
  578. }else{
  579. column.oddsData = {
  580. homeOdds: [{ status: -1 }, { status: -1 }],
  581. guestOdds: [{ status: -1 }, { status: -1 }]
  582. };
  583. }
  584. } else {
  585. column.oddsData.forEach(val => {
  586. if(this.betting.length > 0){
  587. this.betting.forEach(e =>{
  588. e.forEach(item =>{
  589. if(val.id == item.id){
  590. val.isTrue = true;
  591. }
  592. })
  593. })
  594. }
  595. });
  596. }
  597. });
  598. this.data = data;
  599. // console.log('处理数据',this.data);
  600. //更新数据和上一次的数据匹配
  601. let storage =this.previousStorage;
  602. if(storage && storage != null && storage.length > 0){
  603. // if(this.data){
  604. // this.data.forEach(e =>{
  605. // e.match_info.forEach(k =>{
  606. this.data.matchData.forEach(k=>{
  607. k.oddsData.forEach(item =>{
  608. storage.forEach(a =>{
  609. a.forEach(b =>{
  610. if(item.id == b.id){
  611. if(item.odds > b.odds){
  612. item.change = 'add'
  613. }else if(item.odds < b.odds){
  614. item.change = 'red';
  615. }else{
  616. item.change = '';
  617. }
  618. }
  619. })
  620. })
  621. })
  622. })
  623. //})
  624. // }else{
  625. // console.log('ss')
  626. // }
  627. }
  628. this.previousStorage = [];
  629. console.log('111',this.data)
  630. this.data.matchData.forEach(e =>{
  631. this.previousStorage.push(e.oddsData)
  632. })
  633. this.$store.dispatch('GETGAMERATIO',this.data)
  634. }
  635. },
  636. /**
  637. * 计算属性
  638. */
  639. computed: {
  640. //
  641. getIsBettingType() {
  642. return this.$store.getters.getIsBetting;
  643. },
  644. //获取投注框删除的投注信息
  645. getDeleteType() {
  646. return this.$store.getters.getDeleteType;
  647. },
  648. },
  649. /**
  650. * 监听器
  651. */
  652. watch: {
  653. /*--------------------------------------------------------------------------------*/
  654. // 监听投注框开关
  655. getIsBettingType(val) {
  656. this.isBettingShow = val;
  657. },
  658. getDeleteType(val) {
  659. let flag = true;
  660. this.data.matchData.forEach(e => {
  661. if (val == "all") {
  662. e.oddsData.forEach(data => {
  663. this.$set(data, "isTrue", false);
  664. });
  665. e.oddsData.forEach(data => {
  666. this.$set(data, "isTrue", false);
  667. });
  668. } else {
  669. let showData = true;
  670. e.oddsData.forEach(data => {
  671. if (data.id == val) {
  672. this.$set(data, "isTrue", false);
  673. showData = false;
  674. }
  675. });
  676. if (showData) {
  677. e.oddsData.forEach(data => {
  678. if (data.id == val) {
  679. this.$set(data, "isTrue", false);
  680. }
  681. });
  682. }
  683. }
  684. });
  685. },
  686. /*--------------------------------------------------------------------------------*/
  687. },
  688. /***
  689. * 页面加载完成触发事件
  690. */
  691. mounted() {
  692. // 获取球类,判定状态
  693. let ball = this.$store.getters.getBallId;
  694. if(ball == 'zq' || ball == 'lq'){
  695. this.ballSelt = 10;
  696. }else if(ball == 'wq'){
  697. this.ballSelt = 100;
  698. }else if(ball == 'bq'){
  699. this.ballSelt = 1000;
  700. }
  701. if (this.getIsShow) {
  702. this.$store.dispatch("GETSHOW", true);
  703. this.getIsShow = false;
  704. }
  705. let _this = this;
  706. let matchDate = this.$route.query.matchDate;
  707. let query = this.$route.query;
  708. let { game_code, leagueID, name } = this.$route.query;
  709. this.title = name;
  710. this.game_code = game_code;
  711. let dataObj = {
  712. oddsType: this.$store.getters.getActivity,
  713. game_code: this.game_code,
  714. leagueID: "",
  715. lg_id: this.leagueID,
  716. type_code: this.$store.getters.getActivity,
  717. matchDate: "",
  718. match_date: matchDate,
  719. search: "",
  720. str_type: ""
  721. };
  722. this.dataObj = dataObj;
  723. //
  724. if (this.$store.getters.getIsBetting == "100") {
  725. this.isBettingShow = 100;
  726. }
  727. // //获取vuex玩法已投注相对应的数据
  728. let getBetting = this.$store.getters.getBetting;
  729. if(getBetting){
  730. if(ball == 'zq'){
  731. getBetting.forEach((e,index) =>{
  732. if('CO' == e.title || 'GS' == e.title){
  733. this.betting.push(e.data);
  734. }
  735. })
  736. }else if(ball == 'lq'){
  737. getBetting.forEach((e,index) =>{
  738. if('CO' == e.title || 'TN' == e.title){
  739. this.betting.push(e.data);
  740. }
  741. })
  742. }else if(ball == 'bq'){
  743. getBetting.forEach((e,index) =>{
  744. if('C' == e.title){
  745. this.betting.push(e.data);
  746. }
  747. })
  748. }else if(ball == 'wq'){
  749. getBetting.forEach((e,index) =>{
  750. if('LD' == e.title || 'C' == e.title){
  751. this.betting.push(e.data);
  752. }
  753. })
  754. }
  755. }
  756. if (query.navBall &&query.strType != undefined && query.code != undefined) {
  757. this.$public.ajaxTimerFun(function(timing) {
  758. // console.log(1)
  759. if (_this.timers) {
  760. _this.getMatchData(_this.$ports.match.matchState, dataObj);
  761. }else{
  762. clearInterval(timing);
  763. }
  764. },(1000*10));
  765. this.getMatchData(this.$ports.match.matchState, dataObj);
  766. } else if (this.$route.query.strType != undefined) {
  767. dataObj.str_type = this.$route.query.strType;
  768. if (this.$store.getters.getActivity != "StChampion") {
  769. this.$public.ajaxTimerFun(function(timing) {
  770. // console.log(2)
  771. if (_this.timers) {
  772. _this.getMatchData(_this.$ports.match.matchState, dataObj);
  773. }else{
  774. clearInterval(timing);
  775. }
  776. },(1000*10));
  777. this.getMatchData(this.$ports.match.matchState, dataObj);
  778. } else {
  779. this.$public.ajaxTimerFun(function(timing) {
  780. // console.log(3)
  781. if (_this.timers) {
  782. _this.getMatchData(_this.$ports.match.matchState, dataObj);
  783. }else{
  784. clearInterval(timing);
  785. }
  786. },(1000*10));
  787. this.getMatchData(this.$ports.match.matchState, dataObj);
  788. }
  789. } else if (this.$route.query.matchDtl != undefined) {
  790. this.$public.ajaxTimerFun(function(timing) {
  791. dataObj.leagueID = _this.leagueID;
  792. dataObj.lg_id='';
  793. dataObj.matchDate = matchDate
  794. if (_this.timers) {
  795. _this.getMatchData(_this.$ports.match.matchDetails, dataObj);
  796. }else{
  797. // console.log(4)
  798. clearInterval(timing);
  799. }
  800. },(1000*10));
  801. dataObj.leagueID=this.leagueID;
  802. dataObj.matchDate = this.$route.query.matchDate;
  803. dataObj.lg_id='';
  804. this.getMatchData(this.$ports.match.matchDetails, dataObj);
  805. } else if (this.$route.query.btn != undefined) {
  806. dataObj.lg_id = "27822";
  807. this.getMatchData(this.$ports.match.matchState, dataObj);
  808. } else {
  809. this.$public.ajaxTimerFun(function(timing) {
  810. // console.log(5)
  811. if (_this.timers) {
  812. _this.getMatchData(_this.$ports.match.matchState, dataObj);
  813. }else{
  814. clearInterval(timing);
  815. }
  816. },(1000*10));
  817. this.getMatchData(this.$ports.match.matchState, dataObj);
  818. }
  819. },
  820. beforeDestroy() {
  821. this.timers = false;
  822. }
  823. };
  824. </script>
  825. <style scoped>
  826. .Serch {
  827. height: 0.75rem;
  828. display: flex;
  829. justify-content: space-between;
  830. align-items: center;
  831. background-color: #363636;
  832. color: #fd8f26;
  833. font-family: "PingFang-SC-Regular";
  834. padding: 0 0.32rem;
  835. }
  836. .lock {
  837. background: #f4f4f4;
  838. }
  839. .Serch-box-input {
  840. width: 2rem;
  841. border: none;
  842. position: absolute;
  843. left: 0.5rem;
  844. top: 0.06rem;
  845. }
  846. .Serch-box-img {
  847. width: 0.3rem;
  848. height: 0.3rem;
  849. position: absolute;
  850. left: 0.1rem;
  851. top: 0.06rem;
  852. }
  853. .Serch-box-del {
  854. width: 0.2rem;
  855. height: 0.2rem;
  856. position: absolute;
  857. right: 0.2rem;
  858. }
  859. .Serch-box-home {
  860. height: 0.44rem;
  861. width: 4.73rem;
  862. background: #e4e4e4;
  863. border-radius: 0.2rem;
  864. display: flex;
  865. justify-content: space-around;
  866. align-items: center;
  867. padding-left: 0.1rem;
  868. padding-right: 0.1rem;
  869. position: relative;
  870. }
  871. .box-img {
  872. width: 0.37rem;
  873. height: 0.3rem;
  874. margin-right: 0.18rem;
  875. }
  876. .Soccer-game-title {
  877. display: flex;
  878. color: #f76649;
  879. align-items: center;
  880. width: 1.5rem;
  881. height: 0.75rem;
  882. font-size: 0.3rem;
  883. }
  884. .Soccer-game-box {
  885. display: flex;
  886. left: -0.3rem;
  887. top: 0.2rem;
  888. background: #fff;
  889. background: #626262;
  890. color: #a6a6a6;
  891. height: 0.7rem;
  892. align-items: center;
  893. }
  894. .Soccer-game-src {
  895. width: 0.25rem;
  896. height: 0.25rem;
  897. }
  898. .box {
  899. padding: 0 0.32rem;
  900. color: #e1e1df;
  901. height: 0.88rem;
  902. font-size: 0.32rem;
  903. background: linear-gradient(to bottom, #999999, #6a6a6b);
  904. }
  905. .Match-title-num {
  906. width: 0.46rem;
  907. height: 0.46rem;
  908. line-height: 0.46rem;
  909. text-align: center;
  910. background: #f76649;
  911. font-size: 0.26rem;
  912. border-radius: 50%;
  913. color: #f5f5f5;
  914. }
  915. .Match-box-top-right > span {
  916. width: 1.07rem;
  917. text-align: center;
  918. }
  919. .Match-box {
  920. /* height: 2.45rem; */
  921. }
  922. .name-box {
  923. height: 1.76rem;
  924. }
  925. .Match-box-top {
  926. height: 0.45rem;
  927. line-height: 0.45rem;
  928. background: #dcdcdc;
  929. font-size: 0.23rem;
  930. padding: 0 0.32rem;
  931. }
  932. div.wqMatch-box{
  933. height: 0.65rem;
  934. line-height: 0.3rem;
  935. }
  936. .Match-box-top-num {
  937. width: 0.64rem !important;
  938. height: 0.45rem;
  939. background: #ebebeb;
  940. font-size: 0.24rem;
  941. }
  942. .Match-box {
  943. background: #f8f8f8;
  944. }
  945. .Match-bottom-right {
  946. height: 2rem;
  947. width: 2.5rem;
  948. padding: 0.1rem 0.1rem 0 0.14rem;
  949. position: relative;
  950. }
  951. .Match-list-left div {
  952. width: 1.07rem;
  953. height: 0.76rem;
  954. border: 1px solid #e4e4e4;
  955. border-radius: 0.1rem;
  956. padding: 0.1rem;
  957. margin: 0.06rem 0.08rem;
  958. }
  959. .Match-list-right div {
  960. width: 1.07rem;
  961. height: 0.76rem;
  962. border: 1px solid #e4e4e4;
  963. border-radius: 0.1rem;
  964. margin: 0.06rem 0.08rem;
  965. }
  966. .active {
  967. background: #f76649;
  968. border: none;
  969. color: #e1e1df !important;
  970. }
  971. .wqavg{
  972. width: 4.3rem;
  973. }
  974. /* 赔率 */
  975. .letballHome,.letballGuest,.bigHome,.bigGuest{
  976. width: 1.07rem;
  977. height: 0.76rem;
  978. border: 1px solid #e4e4e4;
  979. border-radius: 0.1rem;
  980. margin: 0.06rem 0.08rem;
  981. padding: 0.05rem 0;
  982. /* margin: 0.06rem 0.6rem 0.06rem 0; */
  983. text-align: center;
  984. }
  985. .letballGuest{
  986. position: absolute;
  987. bottom: 0.19rem;
  988. }
  989. .bigHome span,.bigGuest span,.letballHome span,.letballGuest span{
  990. display: block;
  991. }
  992. .bigHome{
  993. position: absolute;
  994. right: 0;
  995. top: 0.1rem;
  996. }
  997. .bigGuest{
  998. position: absolute;
  999. right: 0;
  1000. top: 0.93rem;
  1001. }
  1002. .active span{
  1003. color: #e1e1df !important;
  1004. }
  1005. .stardBig{
  1006. display: flex;
  1007. align-items: center;
  1008. justify-content: center;
  1009. }
  1010. .stardBig .bigSmall{
  1011. color: #9b9999;
  1012. }
  1013. .mg{
  1014. margin-top: 0.2rem;
  1015. }
  1016. </style>