b401469a46c10ba4b43af373edf0bb0be034f401.svn-base 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638
  1. <template>
  2. <div>
  3. <div class="serch row item-center allAlignment" v-show = "noShow">
  4. <div class="row center all pointer hover br05 fz14" @click="elasticFrame()">
  5. <span style="font-size:.14rem;color:#ccc;">选择联赛</span>
  6. </div>
  7. <div class="row item-center">
  8. <div class="row item-center">
  9. <input
  10. class="fz14"
  11. type="text"
  12. placeholder="请输入联赛和球队名称"
  13. v-model="serchTxt"
  14. onkeyup="this.value=this.value.replace(/\s+/g,'')"
  15. color="#AAA"
  16. >
  17. <div class="row center serch-img pointer hover" @click="Serch()">
  18. <img src="@/assets/st-imges/serch.png" alt>
  19. </div>
  20. </div>
  21. <div class="row item-center">
  22. <div class="row center clear pointer hover br05 fz14" @click="clearSerchTxt()">清除</div>
  23. <div class="row center redraw pointer hover br05" @click="red()">
  24. <img src="@/assets/st-imges/redraw.png" alt>
  25. </div>
  26. </div>
  27. </div>
  28. </div>
  29. <!-- 日期 -->
  30. <div v-if="(this.$store.getters.getActivity == 'StMorningPlate'||this.$store.getters.getActivity == 'StStringScene')" class="date row item-center pdg20">
  31. <nav class="row datebox scroll allAlignment">
  32. <p @click="dateActive(item.id)" :class="dateClick == item.id?'dateShow':''" v-for="(item,index) in date" :key="index">{{item.title}}</p>
  33. </nav>
  34. </div>
  35. <div class="singleAndDouble" v-for="(item,index) in data" :key="index">
  36. <div class="singleAndDouble-header pdg20 row item-center">
  37. <div style="width:24%;font-size:.16rem;" class="row item-center">{{item.leagueName}}</div>
  38. <div style="width:34%;height:100%" class="singleAndDouble-header-title">
  39. <div class="row center">全场</div>
  40. <div class="row item-center average" style="color:#999">
  41. <p>0-1</p>
  42. <p>2-3</p>
  43. <p>4-6</p>
  44. <p>7或以上</p>
  45. </div>
  46. </div>
  47. <div style="width:34%;height:100%" class="singleAndDouble-header-title">
  48. <div class="row center">上半场</div>
  49. <div class="row item-center average" style="color:#999">
  50. <p>0</p>
  51. <p>1</p>
  52. <p>2</p>
  53. <p>3或以上</p>
  54. </div>
  55. </div>
  56. </div>
  57. <div
  58. class="singleAndDouble-body row pdg20"
  59. style="border-bottom:.01rem solid #ddd"
  60. v-for="(items,i) in item.matchData"
  61. :key="i"
  62. >
  63. <div style="width:24%;padding:.05rem 0" class="row item-center">
  64. <div style="width:.8rem;text-align:center;margin-right:.1rem; line-height: .2rem;">
  65. <p>{{items.match_date}}</p>
  66. <p style="font-size:.12rem;color:#F76649">{{items.match_time}}</p>
  67. <p>
  68. <img style="width:.14rem;height:.14rem" src="@/assets/st-imges/shizhong.png">
  69. </p>
  70. </div>
  71. <div>
  72. <p>{{items.home_team}}</p>
  73. <p style="margin-top:.1rem;">{{items.guest_team}}</p>
  74. </div>
  75. </div>
  76. <!-- 全场 -->
  77. <div
  78. style="width:34%;border-right:.01rem solid #ddd;padding-left:.08rem;padding-right:.08rem;position: relative;"
  79. class="row item-center average" >
  80. <div v-for="(itemList,idx) in items.oddsData" :key="itemList.id" v-if="itemList.odds_code.startsWith('tg') && !itemList.odds_code.endsWith('h')">
  81. <p class="singleAndDouble-list-btn zero" v-if="itemList.odds_code == 'tg0'" @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,'','总进球数')" :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}">{{itemList.odds}}</p>
  82. <p class="singleAndDouble-list-btn two" v-if="itemList.odds_code =='tg1'" @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,'','总进球数')" :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}">{{itemList.odds}}</p>
  83. <p class="singleAndDouble-list-btn four" v-if="itemList.odds_code == 'tg2'" @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,'','总进球数')" :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}">{{itemList.odds}}</p>
  84. <p class="singleAndDouble-list-btn seven" v-if="itemList.odds_code == 'tg3'" @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,'','总进球数')" :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}">{{itemList.odds}}</p>
  85. </div>
  86. </div>
  87. <!-- 半场 -->
  88. <div style="width:34%;padding-left:.08rem;padding-right:.08rem;position: relative;" class="row item-center average">
  89. <div v-for="(itemList,idx) in items.oddsData" :key="itemList.id" v-if="itemList.odds_code.endsWith('h')">
  90. <p class="singleAndDouble-list-btn zero" v-if="itemList.odds_code == 'tg0_h'" @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,'','总进球数-上半场')" :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}">{{itemList.odds}}</p>
  91. <p class="singleAndDouble-list-btn two" v-if="itemList.odds_code == 'tg1_h'" @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,'','总进球数-上半场')" :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}">{{itemList.odds}}</p>
  92. <p class="singleAndDouble-list-btn four" v-if="itemList.odds_code == 'tg2_h'" @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,'','总进球数-上半场')" :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}">{{itemList.odds}}</p>
  93. <p class="singleAndDouble-list-btn seven" v-if="itemList.odds_code == 'tg3_h'" @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,'','总进球数-上半场')" :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}">{{itemList.odds}}</p>
  94. </div>
  95. </div>
  96. <div @click="promptInfo()" class="right-img">
  97. <img style="margin-bottom:.1rem" src="@/assets/st-imges/TheGame.png">
  98. <br>
  99. <img src="@/assets/st-imges/TheScore.png">
  100. </div>
  101. </div>
  102. </div>
  103. <div v-if="noData">
  104. <noData/>
  105. </div>
  106. </div>
  107. </template>
  108. <script>
  109. import "@/css/index.css";
  110. import noData from '@/components/noData';
  111. export default {
  112. name: "totalBallSize",
  113. components:{
  114. noData
  115. },
  116. data() {
  117. return {
  118. date: [{id:'all',title:'全部'}],//日期
  119. dateClick:'all',//激活的日期
  120. serchTxt: "",
  121. data: [],
  122. // pCode:this.$store.getters.getPaly_code, //传入接口的值
  123. activity:this.$store.getters.getActivity,
  124. // ballCode :this.$store.getters.getBallCode,
  125. timers:true,
  126. noData : false, // 暂无数据显示
  127. limit : '',
  128. passLimit:'',
  129. dataList:[],
  130. noShow :true,
  131. lg_id:'',//联赛
  132. };
  133. },
  134. mounted() {
  135. //获取选择的联赛id
  136. if(this.$store.getters.getLeagueData.length >0 ){
  137. if(this.$store.getters.getLeagueData.length == 1){
  138. this.lg_id = this.$store.getters.getLeagueData[0]
  139. }else{
  140. this.lg_id = this.$store.getters.getLeagueData.join(',');
  141. }
  142. }
  143. this.$store.dispatch("GETLOADING", true);
  144. this.getAJAX(this.lg_id);
  145. this.$store.dispatch("SET_BETTING",[]);
  146. let _this = this;
  147. this.$public.ajaxTimerFun((timing)=>{
  148. if(_this.timers){
  149. _this.getAJAX(_this.lg_id,_this.serchTxt);
  150. }else{
  151. clearInterval(timing)
  152. }
  153. })
  154. },
  155. beforeDestroy() {
  156. this.timers = false;
  157. },
  158. methods:{
  159. /*******************直播比赛数据提示*******************/
  160. promptInfo(){
  161. this.$dialog.alert({mes: '此功能占未开放'});
  162. },
  163. getAJAX(lg_id,search){
  164. this.$http.get(this.$ports.home.gameList,{
  165. type:this.$store.getters.getActivity,
  166. p_code : this.$store.getters.getPaly_code,
  167. game_code : this.$store.getters.getBallCode,
  168. match_date:this.dateClick == 'all'? '': this.dateClick,
  169. lg_id, //需要拷贝
  170. search
  171. }).then(res =>{
  172. if(res.data.status == 1 && res.data.data.length > 0){
  173. this.noData = false;
  174. // //数据匹配判断是否上一次有数据
  175. // if(this.dataList.length){
  176. // this.$public.oddsDataUpdate(res.data.data[0],this.dataList,1)
  177. // }
  178. this.data = res.data.data[0];
  179. let betting = '';
  180. //临时储存数据
  181. this.dataList = res.data.data[0];
  182. if(this.$store.getters.getActivity == 'StStringScene'){
  183. betting = this.$store.getters.getPassBetting;
  184. }else{
  185. betting = this.$store.getters.getBetting;
  186. }
  187. this.dataGroup(this.data,betting)
  188. this.$store.dispatch("GETLOADING", false);
  189. }else{
  190. this.noData = true;
  191. }
  192. this.noShow = true;
  193. this.$store.dispatch("GETLOADING", false);
  194. }
  195. )
  196. },
  197. // 进入添加选中效果
  198. dataGroup(data,betting){
  199. if(betting != null && betting.length > 0){
  200. // console.log('bet',betting)
  201. data.forEach(e =>{
  202. e.matchData.forEach(k =>{
  203. k.oddsData.forEach(item =>{
  204. betting.forEach(i =>{
  205. i.data.forEach(j =>{
  206. if(j.id == item.id){
  207. item.isTrue = true
  208. }
  209. })
  210. })
  211. })
  212. })
  213. })
  214. }
  215. },
  216. // 修改样式
  217. selection(idx,i,index,id,p_code,match_id,homeName,guestName,name,playName) {
  218. //调用投注公共方法
  219. let _this = this;
  220. let ballId = this.$store.getters.getBallCode;
  221. let acty = this.$store.getters.getActivity;
  222. let teamName = {
  223. home : homeName,
  224. guest : guestName
  225. }
  226. if(this.$store.getters.getActivity == 'StStringScene'){
  227. let betting = this.$store.getters.getPassBetting;
  228. if(betting == null){
  229. betting = [];
  230. }
  231. this.$public.strandPublicBetting(this.data,p_code,id,idx,i,index,betting,acty,match_id,playName,name,ballId,homeName,guestName,this.passLimit,function(data,type){
  232. if(type){
  233. _this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 });
  234. }
  235. _this.$store.dispatch("SET_PASSBETTING",[]);
  236. _this.$store.dispatch("SET_PASSBETTING",data);
  237. })
  238. }else{
  239. let betting = this.$store.getters.getBetting;
  240. this.$public.publicBetting(this.data,p_code,id,idx,i,index,betting,acty,match_id,teamName,playName,name,ballId,this.limit,function(data,type){
  241. if(type){
  242. _this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 });
  243. }
  244. _this.$store.dispatch("SET_BETTING",[]);
  245. _this.$store.dispatch("SET_BETTING",data);
  246. })
  247. }
  248. // 串场为单串
  249. if(this.limit < 10){
  250. this.data[idx].matchData.forEach((val,i) =>{
  251. val.oddsData.forEach(item =>{
  252. if(this.$store.getters.getActivity == 'StStringScene'){
  253. if(this.passLimit < 10){
  254. if(val.match_id == match_id){
  255. // 当isTrue值为true时,点击时置为false
  256. if(item.id == id){
  257. // console.log(item.isTrue)
  258. if(item.isTrue == true){
  259. this.$forceUpdate();
  260. item.isTrue = false
  261. }else if(item.isTrue = false){
  262. this.$forceUpdate();
  263. item.isTrue = true
  264. }else{
  265. this.$forceUpdate();
  266. this.$set(item, "isTrue", item.isTrue ? false : true);
  267. }
  268. }else{
  269. if(item.isTrue == true){
  270. item.isTrue = false;
  271. }
  272. }
  273. }
  274. }else{
  275. if(item.id == id){
  276. this.$forceUpdate();
  277. this.$set(item,'isTrue',false)
  278. }
  279. }
  280. }else{
  281. if(item.id == id){
  282. this.$forceUpdate();
  283. this.$set(item, "isTrue", item.isTrue ? false : true);
  284. }
  285. }
  286. })
  287. })
  288. }else{
  289. this.data[idx].matchData.forEach(val =>{
  290. val.oddsData.forEach(item =>{
  291. if(item.id == id){
  292. this.$set(item,'isTrue',false)
  293. }
  294. })
  295. })
  296. }
  297. },
  298. //搜索按钮被点击
  299. Serch() {
  300. if (this.serchTxt === '') {
  301. this.$dialog.toast({ mes: "请输入您想要搜索的内容。", timeout: 2000 });
  302. return false;
  303. } else {
  304. this.data = [];
  305. this.$store.dispatch("SET_LEAGUEDATA",[]); //需要拷贝
  306. this.getAJAX('',this.serchTxt) //需要拷贝
  307. }
  308. },
  309. // 删除搜索框内容
  310. clearSerchTxt(){
  311. if(this.serchTxt != ""){
  312. this.data = [];
  313. this.serchTxt = "";
  314. this.$store.dispatch("SET_LEAGUEDATA",[]); //需要拷贝
  315. this.getAJAX();
  316. }
  317. },
  318. // 刷新
  319. red(){
  320. this.serchTxt = "";
  321. this.lg_id ="";
  322. this.$store.dispatch("SET_LEAGUEDATA",[]); //需要拷贝
  323. if(this.serchTxt.length>0){
  324. this.Serch()
  325. }else{
  326. this.data = '';
  327. this.getAJAX();
  328. }
  329. },
  330. //跳转到联赛选择页
  331. elasticFrame(){
  332. this.$store.dispatch("SET_CONTROLROUTING", 10015)
  333. },
  334. // 日期计算
  335. fun_date() {
  336. let date = new Date();
  337. let MonthNum = 0;
  338. let lastMonth = new Date(date.getFullYear(),date.getMonth() + 1,0).getDate();
  339. for (let i = 1; i < 7; i++) {
  340. let years = date.getFullYear();
  341. let month = date.getMonth() + 1;
  342. let day =
  343. date.getDate() + i < 10
  344. ? "0" + (date.getDate() + i)
  345. : date.getDate() + i;
  346. if (date.getDate() + i > lastMonth) {
  347. MonthNum++;
  348. month = date.getMonth() + 2;
  349. day = "0" + MonthNum;
  350. }
  351. let time = {};
  352. time.id = years + "-" + month + "-" + day;
  353. time.title =years+' - '+month + " - " + day;
  354. this.date.push(time);
  355. }
  356. },
  357. dateActive(str){
  358. this.dateClick = str;
  359. this.data = '';
  360. this.getAJAX(this.lg_id,this.serchTxt);
  361. },
  362. },
  363. created(){
  364. this.fun_date();
  365. },
  366. computed:{
  367. getActy(){
  368. return this.$store.getters.getActivity;
  369. },
  370. // getPaly_code() {
  371. // return this.$store.getters.getPaly_code;
  372. // },
  373. // getBallId(){
  374. // return this.$store.getters.getBallCode;
  375. // },
  376. getDeleteType() {
  377. return this.$store.getters.getDeleteType;
  378. },
  379. // 获取投注数量
  380. getLimit() {
  381. return this.$store.getters.getLimit;
  382. },
  383. getPassLimit(){
  384. return this.$store.getters.getPassLimit;
  385. }
  386. },
  387. watch:{
  388. getActy(val){
  389. this.activity = val;
  390. // this.data = '';
  391. this.getAJAX();
  392. this.$store.dispatch("SET_BETTING",[]);//设置默认值
  393. if(val != 'StStringScene'){
  394. this.$store.dispatch("SET_PASSBETTING",[]);
  395. }
  396. },
  397. // getPaly_code(val){
  398. // this.pCode = val;
  399. // this.getAJAX();
  400. // },
  401. // getBallId(val){
  402. // this.ballCode = val;
  403. // this.getAJAX();
  404. // },
  405. getDeleteType(val){
  406. let jumpOut = false;
  407. for(var i = 0; i < this.data.length; i++){
  408. for(var k = 0; k < this.data[i].matchData.length; k++){
  409. for(var j = 0; j < this.data[i].matchData[k].oddsData.length;j++){
  410. if(this.data[i].matchData[k].oddsData[j].id == val){
  411. this.$forceUpdate();
  412. this.data[i].matchData[k].oddsData[j].isTrue = false;
  413. jumpOut = true;
  414. break;
  415. }
  416. }
  417. if(jumpOut == true){
  418. break;
  419. }
  420. }
  421. if(jumpOut == true){
  422. break;
  423. }
  424. }
  425. },
  426. getLimit(val){
  427. this.limit = val;
  428. if(this.$store.getters.getActivity == 'StStringScene'){
  429. }else{
  430. if(val == 0){
  431. this.data.forEach(e =>{
  432. e.matchData.forEach(k =>{
  433. k.oddsData.forEach(item =>{
  434. if(item.isTrue){
  435. item.isTrue = false;
  436. }
  437. })
  438. })
  439. })
  440. }
  441. }
  442. },
  443. getPassLimit(val){
  444. this.passLimit = val;
  445. if(this.$store.getters.getActivity == 'StStringScene'){
  446. if(val == 0){
  447. this.data.forEach(e =>{
  448. e.matchData.forEach(k =>{
  449. k.oddsData.forEach(item =>{
  450. if(item.isTrue){
  451. this.$forceUpdate();
  452. item.isTrue = false;
  453. }
  454. })
  455. })
  456. })
  457. }
  458. }
  459. },
  460. }
  461. };
  462. </script>
  463. <style scoped>
  464. .pdg20 {
  465. padding: 0 0.2rem;
  466. }
  467. .singleAndDouble-header {
  468. min-height: 0.5rem;
  469. background: #e5e5e5;
  470. }
  471. .singleAndDouble-header-title div {
  472. min-height: 0.25rem;
  473. padding: 0 .05rem;
  474. }
  475. .singleAndDouble-header-title p{
  476. width: .6rem;
  477. text-align: center;
  478. }
  479. .singleAndDouble-body {
  480. position: relative;
  481. background: #fff;
  482. }
  483. .singleAndDouble-body:hover{
  484. background: #fff5e9;
  485. }
  486. .singleAndDouble-list-btn {
  487. width: 0.48rem;
  488. height: 0.3rem;
  489. border: 0.01rem solid #ccc;
  490. line-height: 0.3rem;
  491. text-align: center;
  492. border-radius: 0.05rem;
  493. cursor: pointer;
  494. position: absolute;
  495. bottom: 32%;
  496. }
  497. .singleAndDouble-list-btn:hover{
  498. background: #ddd;
  499. color: #f76649;
  500. }
  501. .right-img {
  502. width: 0.15rem;
  503. position: absolute;
  504. right: 0.3rem;
  505. bottom: 5%;
  506. }
  507. .right-img img {
  508. width: 0.22rem;
  509. height: 0.2rem;
  510. }
  511. * {
  512. font-size: 0.14rem;
  513. }
  514. .serch {
  515. width: 100%;
  516. height: 0.5rem;
  517. background: #aaa;
  518. padding: 0 0.2rem;
  519. }
  520. input {
  521. border: none;
  522. background: #efefef;
  523. padding-left: 0.2rem;
  524. width: 4.6rem;
  525. height: 0.3rem;
  526. border-radius: 0.05rem 0 0 0.05rem;
  527. }
  528. .serch-img {
  529. width: 0.5rem;
  530. height: 0.3rem;
  531. background: #666;
  532. border-radius: 0 0.05rem 0.05rem 0;
  533. margin-right: 0.3rem;
  534. }
  535. .all {
  536. width: 1.2rem;
  537. height: 0.3rem;
  538. background: #666;
  539. color: #333;
  540. }
  541. .clear {
  542. width: 0.6rem;
  543. height: 0.3rem;
  544. background: #666;
  545. color: #ccc;
  546. margin-right: 0.1rem;
  547. }
  548. .redraw {
  549. width: 0.3rem;
  550. height: 0.3rem;
  551. background: #666;
  552. }
  553. img {
  554. width: 0.2rem;
  555. height: 0.2rem;
  556. }
  557. .br05{
  558. border-radius: .05rem
  559. }
  560. .fz14{
  561. font-size: .14rem
  562. }
  563. .hover:hover {
  564. background: #bbb;
  565. color: #fff!important;
  566. }
  567. .hover:hover span{
  568. color: #fff!important;
  569. }
  570. .pointer {
  571. cursor: pointer;
  572. }
  573. .col{
  574. border-radius: 2px;
  575. background: #F76649;
  576. color: #fff;
  577. }
  578. .zero{
  579. left: 6%;
  580. }
  581. .two{
  582. left: 30%;
  583. }
  584. .four{
  585. left: 54%;
  586. }
  587. .seven{
  588. left: 78%;
  589. }
  590. /* 日期样式 */
  591. .date {
  592. height: 0.4rem;
  593. background: #898989;
  594. font-size: .16rem;
  595. color: #fff;
  596. font-weight: bold;
  597. }
  598. .date > p {
  599. width: 0.26rem;
  600. height: 0.26rem;
  601. background: #bbb;
  602. border-radius: 0.05rem;
  603. }
  604. .date div {
  605. width: 100%;
  606. height: 100%;
  607. }
  608. .datebox {
  609. overflow-x: auto;
  610. overflow-y: hidden;
  611. width: 100%;
  612. height: 0.4rem;
  613. }
  614. .datebox p {
  615. text-align: center;
  616. line-height: .4rem;
  617. padding: 0 .05rem;
  618. cursor: pointer;
  619. font-size: .16rem;
  620. }
  621. .dateShow{
  622. color: #f76649;
  623. }
  624. </style>