pk.vue 45 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629
  1. <template>
  2. <div class="pages">
  3. <Headside></Headside>
  4. <div class="pk-detail-con">
  5. <img src="../assets/img/pk/redGood.svg" class="lp_icon"/>
  6. <div class="progress">
  7. <div class="progress-bar" :style="{width: pkVal}">
  8. <i class="lightning"></i>
  9. </div>
  10. </div>
  11. <img src="../assets/img/pk/blueGood.svg" class="rp_icon"/>
  12. </div>
  13. <div class="pk_container">
  14. <div class="lt">
  15. <ul>
  16. <li :class="RedstudentsClassName" v-for="(s,i) in students.redUnite">
  17. <div class="bg">
  18. <h5>
  19. <div class="nameLt">
  20. <i class="el-icon-male" v-if="s.Sex == 1"></i>
  21. <i class="el-icon-female" v-if="s.Sex == 2"></i>
  22. </div>
  23. <div class="nameMd">{{ s.Name }}</div>
  24. <div class="namert">
  25. <!--<img src="../static/img/comm/isPrivate.svg" alt="" v-if="s.isPrivate" style="float: right;margin-right: 0.2rem;margin-top: 0.1rem">-->
  26. </div>
  27. </h5>
  28. <div class="user">
  29. <div class="ult">
  30. <em>
  31. <div v-if="s.realHr != 0">{{ s.activePercent |max100}}</div>
  32. <div class="plus" v-if="s.activePercent == 0 && s.realHr == 0">---</div>
  33. <s>%</s>
  34. </em>
  35. </div>
  36. <div class="umd">
  37. <div class="circle">
  38. <img :class="s.sportLevel" :src="s.Head" alt="" v-if="s.Head">
  39. <img :class="s.sportLevel" src="../static/img/people/flyhead.png" alt=""
  40. v-if="!s.Head">
  41. </div>
  42. <!-- 生日快乐 -->
  43. <div class="birth" v-if="s.IsBirthday == 1">
  44. <img src="../assets/img/birth/birthCrow.png" class="birthCrow"/>
  45. <img src="../assets/img/birth/birthText.png" class="birthText"/>
  46. </div>
  47. </div>
  48. <div class="urt">
  49. <em class="fastJump" v-if="s.realHr != 0" v-show="parseInt(s.activePercent) > 90">{{
  50. s.realHr }}</em>
  51. <em class="slowJump" v-if="s.realHr != 0" v-show="parseInt(s.activePercent) <= 90">{{
  52. s.realHr }}</em>
  53. <em class="plus" v-if="s.realHr == 0"> --- </em>
  54. <img src="../static/img/heart.svg" class=""/>
  55. </div>
  56. </div>
  57. <div class="bottomLi">
  58. <div class="btcla">
  59. <img src="../static/img/s1.svg"/>
  60. <span>{{ s.Cle |fmtInt }}</span>
  61. </div>
  62. <div class="btck">
  63. <img src="../static/img/s2.svg"/>
  64. <span>{{ s.PureCalorieNoVo2 |fmtInt }}</span>
  65. </div>
  66. <div class="step">
  67. <img src="../static/img/ck.svg"/>
  68. <span>{{ s.Ck |fmtFloat}}</span>
  69. </div>
  70. </div>
  71. </div>
  72. </li>
  73. </ul>
  74. </div>
  75. <div class="md">
  76. <div class="partInfo">
  77. <span class="title rtitle">
  78. <img src="../assets/img/pk/redFlag.svg"/>
  79. CK
  80. </span>
  81. <span class="title btitle">
  82. <img src="../assets/img/pk/blueFlag.svg"/>
  83. CK
  84. </span>
  85. </div>
  86. <div class="cubelist">
  87. <div class="cubes rcube">
  88. <em>红队</em>
  89. </div>
  90. <img class="vs" src="../assets/img/pk/vs.svg"/>
  91. <div class="cubes bcube">
  92. <em>蓝队</em>
  93. </div>
  94. </div>
  95. <div class="teamScore">
  96. <div class="lt">{{redSum}}</div>
  97. <div class="rt">{{blueSum}}</div>
  98. </div>
  99. <div class="bottomInfo">
  100. <span class="names">
  101. {{PlanName}}
  102. </span>
  103. <div class="teacher">
  104. <span v-if="Teacher"> 教练:{{Teacher}}</span>
  105. <span>人数:{{num}} </span>
  106. </div>
  107. <div class="classTime">
  108. {{classInfo.endTime}}
  109. </div>
  110. </div>
  111. </div>
  112. <div class="rt">
  113. <ul>
  114. <li :class="BluestudentsClassName" v-for="(s,i) in students.blueUnite">
  115. <div class="bg">
  116. <h5>
  117. <div class="nameLt">
  118. <i class="el-icon-male" v-if="s.Sex == 1"></i>
  119. <i class="el-icon-female" v-if="s.Sex == 2"></i>
  120. </div>
  121. <div class="nameMd">{{ s.Name }}</div>
  122. <div class="namert"></div>
  123. </h5>
  124. <div class="user">
  125. <div class="ult">
  126. <em>
  127. <div v-if="s.realHr != 0">
  128. {{ s.activePercent |max100 }}
  129. </div>
  130. <div class="plus" v-if="s.activePercent == 0&& s.realHr == 0">
  131. ---
  132. </div>
  133. <s>%</s>
  134. </em>
  135. </div>
  136. <div class="umd">
  137. <div class="circle">
  138. <img :class="s.sportLevel" :src="s.Head" alt="" v-if="s.Head">
  139. <img :class="s.sportLevel" src="../static/img/people/flyhead.png" alt=""
  140. v-if="!s.Head">
  141. <!-- 生日快乐 -->
  142. <div class="birth" v-if="s.IsBirthday == 1">
  143. <img src="../assets/img/birth/birthCrow.png" class="birthCrow"/>
  144. <img src="../assets/img/birth/birthText.png" class="birthText"/>
  145. </div>
  146. </div>
  147. </div>
  148. <div class="urt">
  149. <em class="fastJump" v-if="s.realHr != 0" v-show="parseInt(s.activePercent) > 90">{{
  150. s.realHr }}</em>
  151. <em class="slowJump" v-if="s.realHr != 0" v-show="parseInt(s.activePercent) <= 90">{{
  152. s.realHr }}</em>
  153. <em class="plus" v-if="s.realHr == 0"> --- </em>
  154. <img src="../static/img/heart.svg" class=""/>
  155. </div>
  156. </div>
  157. <div class="bottomLi">
  158. <div class="btcla">
  159. <img src="../static/img/s1.svg"/>
  160. <span>{{ s.Cle |fmtInt }}</span>
  161. </div>
  162. <div class="btck">
  163. <img src="../static/img/s2.svg"/>
  164. <span>{{ s.PureCalorieNoVo2 |fmtInt}}</span>
  165. </div>
  166. <div class="step">
  167. <img src="../static/img/ck.svg"/>
  168. <span>{{ s.Ck |fmtFloat}}</span>
  169. </div>
  170. </div>
  171. </div>
  172. </li>
  173. </ul>
  174. </div>
  175. </div>
  176. <newRecord :toper-info="toperInfo"></newRecord>
  177. <newStudent :student-info="studentInfo"></newStudent>
  178. </div>
  179. </template>
  180. <script>
  181. import '../libs/rem';
  182. import Headside from '@/components/Headside'
  183. import newRecord from '@/components/newRecord'
  184. import newStudent from '@/components/newStudent'
  185. import {
  186. getHello,
  187. getClassStat,
  188. getRecordBreak,
  189. getNewUser
  190. } from '@/api/getApiRes'
  191. import '../libs/rem';
  192. let qs = require('qs');
  193. export default {
  194. data() {
  195. return {
  196. trueDate: true,//真实数据 true false
  197. studentsClassName: [],
  198. students: {
  199. redUnite: [],
  200. blueUnite: [],
  201. },
  202. redSum: 0,
  203. blueSum: 0,
  204. pkVal: '50%',
  205. RedstudentsClassName: '',
  206. BluestudentsClassName: '',
  207. PlanName: '',
  208. num: 0,
  209. Teacher: '',
  210. classInfo: {
  211. name: '竞技课程',
  212. num: '0',
  213. btTime: '2020-11-13 09:00:00',//时间戳
  214. endTime: '00:00:00',
  215. redSum: 0,
  216. blueSum: 0,
  217. },
  218. totalTime: 4,
  219. studentTime: 15,
  220. toperInfo: {
  221. dialogVisible: false,
  222. toper: {},
  223. },
  224. studentInfo: {
  225. dialogVisible: false,
  226. Rs: [],
  227. percent: 0
  228. },
  229. }
  230. },
  231. mounted() {
  232. let that = this;
  233. if (this.trueDate) {
  234. this.init();
  235. // this.PkEgg = setInterval(() => {
  236. // this.createEgg();
  237. // }, 6000);
  238. } else {
  239. // 虚假的数据
  240. let json = {
  241. "Code": "0",
  242. "Memo": "Success",
  243. "Dp": {
  244. "PlanId": 182,
  245. "ShopId": 1,
  246. "SvId": 1,
  247. "PlanName": "齐源大厦浏览器显示2020-12-02日08:40开始的竞技游戏",
  248. "Status": 2,
  249. "BeginTime": "17:15:18",
  250. "EndTime": 0,
  251. "ClassType": 2,
  252. "PkNum": 2
  253. }
  254. };
  255. // 载入课程信息
  256. let Dp = json.Dp;
  257. that.ReadLessonInfo(Dp);
  258. // 载入学生信息
  259. let Rs = fakeNews(14, 2);
  260. that.UniteBreak(Rs);
  261. // 人口总数
  262. that.num = json.Rs ? json.Rs.length : 0;
  263. this.ClacClassTime();
  264. }
  265. },
  266. watch: {
  267. '$route': function (val) {
  268. let that = this;
  269. if (val.path == '/pk') {
  270. if (this.trueDate) {
  271. this.init();
  272. // this.PkEgg = setInterval(() => {
  273. // this.createEgg();
  274. // }, 6000);
  275. } else {
  276. let Rs = fakeNews(16);
  277. that.UniteBreak(Rs);
  278. }
  279. } else {
  280. clearInterval(this.PkTimer);
  281. clearInterval(this.PkEgg);
  282. clearInterval(this.timer2);
  283. clearInterval(this.timer3);
  284. this.PkTimer = null;
  285. this.PkEgg = null;
  286. this.timer2 = null;
  287. this.timer3 = null;
  288. }
  289. }
  290. },
  291. beforeDestroy() {
  292. clearInterval(this.PkTimer);
  293. clearInterval(this.PkEgg);
  294. clearInterval(this.timer2);
  295. clearInterval(this.timer3);
  296. this.PkTimer = null;
  297. this.PkEgg = null;
  298. this.timer2 = null;
  299. this.timer3 = null;
  300. },
  301. methods: {
  302. init(){
  303. this.GetgetUserList();
  304. this.createEgg();
  305. this.createNewStudent();
  306. this.PkTimer = setInterval(() => {
  307. this.GetgetUserList();
  308. this.ClacClassTime();
  309. this.curgetClassStat();
  310. }, 1000);
  311. this.timer2 = setInterval(() => {
  312. this.createEgg();
  313. }, 31000);
  314. this.timer3 = setInterval(() => {
  315. this.createNewStudent();
  316. }, 6000);
  317. },
  318. // 启动一个成就彩蛋
  319. createEgg() {
  320. let that = this;
  321. let param = {
  322. token: localStorage.token,
  323. eqSn: localStorage.eqSn
  324. };
  325. let postdata = qs.stringify(param);
  326. getRecordBreak(postdata).then(res => {
  327. let json = res;
  328. if (json.Code == 0) {
  329. // 欢迎新学生时不显示彩蛋
  330. if (that.studentInfo.dialogVisible == true) {
  331. console.log('正在显示新学生');
  332. return false
  333. }else{
  334. this.OpenEgg(json);
  335. }
  336. } else {
  337. // 并没有人破记录
  338. if (json.Code == 999) return false;
  339. if (json.Code != 999) that.$message.error(json.Memo + '[错误码]' + json.Code);
  340. }
  341. })
  342. },
  343. // 欢迎新同学
  344. createNewStudent() {
  345. let that = this;
  346. let param = {
  347. token: localStorage.token,
  348. eqSn: localStorage.eqSn
  349. };
  350. let postdata = qs.stringify(param);
  351. getNewUser(postdata).then(res => {
  352. let json = res;
  353. if (json.Code == 0) {
  354. console.log('来新生了');
  355. // 显示彩蛋时不欢迎新学生
  356. if (that.toperInfo.dialogVisible == true) {
  357. console.log('正在显示彩蛋');
  358. return false
  359. }else{
  360. that.OpenStudent(json.Rs);
  361. }
  362. } else {
  363. // 并没有人破记录
  364. if (json.Code == 999) return false;
  365. if (json.Code != 999) that.$message.error(json.Memo + '[错误码]' + json.Code);
  366. }
  367. })
  368. },
  369. OpenEgg(msg) {
  370. this.toperInfo.toper = msg.Rs;
  371. this.toperInfo.dialogVisible = true;
  372. // 倒计时5秒自动关闭
  373. let that = this;
  374. this.totalTime = 4;
  375. let clock = window.setInterval(() => {
  376. this.totalTime--;
  377. if (parseInt(this.totalTime) < 0) {
  378. that.toperInfo.dialogVisible = false;
  379. clearInterval(clock);
  380. }
  381. }, 1000)
  382. },
  383. OpenStudent(msg) {
  384. let that = this;
  385. that.studentInfo.Rs = msg;
  386. that.studentInfo.dialogVisible = true;
  387. this.studentInfo.percent = 0;
  388. // 倒计时5秒自动关闭
  389. this.studentTime = 6;
  390. let clock = window.setInterval(() => {
  391. this.studentTime--;
  392. let num = (6 - this.studentTime) / 6 * 100;
  393. this.studentInfo.percent = parseInt(num) > 100 ? 100 : num;
  394. console.log('num' + num);
  395. if (parseInt(this.studentTime) <= 0) {
  396. that.studentInfo.dialogVisible = false;
  397. clearInterval(clock);
  398. }
  399. }, 1000)
  400. },
  401. // 载入课程信息
  402. ReadLessonInfo(Dp) {
  403. this.PlanName = Dp.PlanName;
  404. this.BeginTime = Dp.BeginTime;
  405. this.Teacher = Dp.Teacher;
  406. },
  407. // 分队展示
  408. UniteBreak(Rs) {
  409. let that = this;
  410. that.students.redUnite = [];
  411. that.students.blueUnite = [];
  412. if (!Rs) {
  413. that.students.redUnite = [];
  414. that.students.blueUnite = [];
  415. } else {
  416. Rs.map(function (item, t) {
  417. item.sportLevel = sportLevel(item.activePercent);
  418. if (item.GroupNo == 1) {
  419. that.students.redUnite.push(item);
  420. }
  421. if (item.GroupNo == 2) {
  422. that.students.blueUnite.push(item);
  423. }
  424. })
  425. }
  426. that.giveClassName(that.students.redUnite, 1);
  427. that.giveClassName(that.students.blueUnite, 2);
  428. that.calcSumCK(that.students);
  429. },
  430. // 计算各队总分
  431. calcSumCK(Rs) {
  432. let that = this;
  433. let redSum = 0;
  434. let blueSum = 0;
  435. // that.redSum
  436. Rs.redUnite.map(function (item, t) {
  437. redSum += parseFloat(item.Ck.toFixed(1));
  438. });
  439. Rs.blueUnite.map(function (item, t) {
  440. blueSum += parseFloat(item.Ck.toFixed(1));
  441. });
  442. that.redSum = redSum.toFixed(1);
  443. that.blueSum = blueSum.toFixed(1);
  444. // that.redSum = redSum;
  445. // that.blueSum = blueSum;
  446. // 进度条 formatCk
  447. let redFmtSum = 0;
  448. let blueFmtSum = 0;
  449. Rs.redUnite.map(function (item, t) {
  450. redFmtSum += item.formatCk
  451. });
  452. Rs.blueUnite.map(function (item, t) {
  453. blueFmtSum += item.formatCk
  454. });
  455. // pkVal
  456. let sumMax = redFmtSum + blueFmtSum;
  457. // 当为0时均分
  458. if (sumMax == 0) {
  459. that.pkVal = '50%';
  460. } else {
  461. // 限制最大
  462. let pkval = parseInt((redFmtSum / sumMax) * 100) > 100 ? 100 : parseInt((redFmtSum / sumMax) * 100);
  463. that.pkVal = pkval + '%';
  464. }
  465. },
  466. // 获取上课学生信息
  467. GetgetUserList() {
  468. let that = this;
  469. let param = {
  470. token: localStorage.token,
  471. eqSn: localStorage.eqSn
  472. };
  473. // this.giveClassName(this.Bluestudents,2);
  474. let postdata = qs.stringify(param);
  475. getHello(postdata).then(res => {
  476. let json = res;
  477. if (json.Code == 0) {
  478. if (!json.Dp) {
  479. // that.$message.error('没有获取到课程信息');
  480. return false
  481. } else {
  482. that.ReadLessonInfo(json.Dp);
  483. }
  484. that.UniteBreak(json.Rs);
  485. // 人口总数
  486. that.num = json.Rs.length ? json.Rs.length : 0;
  487. this.ClacClassTime();
  488. } else {
  489. // 已下课
  490. console.log(json.Code);
  491. if (json.Code == '999') {
  492. // that.$router.push({path: '/2pkRank'});
  493. } else {
  494. // 已出错
  495. that.$message.error(json.Memo);
  496. }
  497. }
  498. })
  499. },
  500. // 动态计算排版
  501. giveClassName(res, type) {
  502. let that = this;
  503. let numberClass = '';
  504. switch (true) {
  505. case parseInt(res.length) <= 2 && parseInt(res.length) > 0:
  506. numberClass = 'two';
  507. break;
  508. case parseInt(res.length) == 3:
  509. numberClass = 'three';
  510. break;
  511. case parseInt(res.length) <= 4 && parseInt(res.length) > 2:
  512. numberClass = 'four';
  513. break;
  514. case parseInt(res.length) <= 6 && parseInt(res.length) > 4:
  515. numberClass = 'four';
  516. break;
  517. case parseInt(res.length) > 6:
  518. numberClass = 'eight';
  519. break;
  520. }
  521. if (type == 1) {
  522. that.RedstudentsClassName = numberClass;
  523. } else {
  524. that.BluestudentsClassName = numberClass;
  525. }
  526. },
  527. // 计算团队竞技课持续时间
  528. ClacClassTime() {
  529. let BeginTime = new Date(globalcurrent() + ' ' + this.BeginTime);//结束时间
  530. let nowDate = new Date();
  531. let date = new Date(nowDate - BeginTime - 8 * 60 * 60 * 1000);//减掉东八区时区问题
  532. let h = date.getHours() < 10 ? '0' + date.getHours() + ':' : date.getHours() + ':';
  533. let m = date.getMinutes() < 10 ? '0' + date.getMinutes() + ':' : date.getMinutes() + ':';
  534. let s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
  535. this.classInfo.endTime = h + m + s;
  536. },
  537. // // 计算双方对抗强度加总
  538. // CalcTeamCk() {
  539. // let that = this;
  540. // let Redsum = 0;
  541. // let Bluesum = 0;
  542. // let sumMax = 0;
  543. // if (that.Redstudents) {
  544. // that.Redstudents.map(function (i) {
  545. // Redsum = parseFloat(Redsum) + parseFloat(i.Ck)
  546. // });
  547. // }
  548. // if (that.Bluestudents) {
  549. // that.Bluestudents.map(function (i) {
  550. // Bluesum = parseFloat(Bluesum) + parseFloat(i.Ck)
  551. // });
  552. // }
  553. // that.classInfo.redSum = parseFloat(Redsum).toFixed(1);
  554. // that.classInfo.blueSum = parseFloat(Bluesum).toFixed(1);
  555. //
  556. // sumMax = parseFloat(Redsum) + parseFloat(Bluesum);
  557. // that.classInfo.pkVal = (that.classInfo.redSum / sumMax) * 100 + '%';
  558. // },
  559. // 当前课程状态
  560. curgetClassStat() {
  561. let that = this;
  562. let param = {
  563. token: localStorage.token,
  564. eqSn: localStorage.eqSn
  565. };
  566. let postdata = qs.stringify(param);
  567. getClassStat(postdata).then(res => {
  568. let json = res;
  569. if (json.Code == 0) {
  570. // 没开课
  571. if (json.ClassOn == 0) {
  572. console.log("xiakele ");
  573. // 0: 下课 团课/私教 排名
  574. // 1:团课/私教 todo
  575. // 2:竞技课2PK
  576. // 3:竞技课3PK
  577. that.$router.push({path: '/2pkRank'});
  578. switch (parseInt(json.dp)) {
  579. case 2:
  580. that.$router.push({path: '/2pkRank'});
  581. break;
  582. }
  583. }
  584. } else {
  585. // that.$message.error(json.Memo);
  586. }
  587. })
  588. },
  589. },
  590. filters: {
  591. fmtNum(val) {
  592. if (val == 0) {
  593. return '--'
  594. } else {
  595. if (parseInt(val) < 0) return 0;
  596. if (parseInt(val) > 0) return val
  597. }
  598. },
  599. fmtFloat(val) {
  600. if (val == 0) {
  601. return '0.0'
  602. } else {
  603. return parseFloat(val).toFixed(1);
  604. }
  605. },
  606. fmtInt(val) {
  607. if (val == 0) {
  608. return '0'
  609. } else {
  610. return parseInt(val);
  611. }
  612. },
  613. max100(val) {
  614. if (val <= 100) {
  615. return val
  616. } else {
  617. return 100
  618. }
  619. }
  620. },
  621. components: {
  622. Headside, newRecord,newStudent
  623. }
  624. }
  625. </script>
  626. <style scoped>
  627. @import "../assets/css/bg.css";
  628. .pages {
  629. position: absolute;
  630. top: 0;
  631. left: 0;
  632. right: 0;
  633. bottom: 0;
  634. width: 100%;
  635. overflow: hidden;
  636. display: block;
  637. margin: 0 auto;
  638. background-color: #028fe1;
  639. background: url("../static/img/pkBg.png");
  640. background-size: 100%;
  641. background-repeat: no-repeat;
  642. }
  643. * {
  644. font-family: vista;
  645. }
  646. ul, li {
  647. list-style: none;
  648. margin: 0;
  649. padding: 0;
  650. }
  651. em {
  652. font-style: normal;
  653. }
  654. .pk-detail-con {
  655. position: relative;
  656. top: 0.5rem;
  657. width: 98%;
  658. height: 0.6rem;
  659. display: block;
  660. margin: 0 auto;
  661. overflow: visible;
  662. }
  663. .progress {
  664. width: 100%;
  665. height: 0.3rem;
  666. overflow: visible;
  667. background-color: #04A6EE;
  668. border-radius: 19px;
  669. background-image: url("../static/img/pk/blue.png");
  670. /*background-image: linear-gradient(45deg, #60b7ff 25%, #0a84e9 0, #0a84e9 50%, #60b7ff 0, #60b7ff 75%, #0a84e9 0);*/
  671. /*background-size: 40px 40px;*/
  672. }
  673. .progress-bar {
  674. height: 0.3rem;
  675. text-align: left;
  676. background-color: #F75E07;
  677. -moz-transition: width .6s ease;
  678. -webkit-transition: width .6s ease;
  679. transition: width .6s ease;
  680. background-image: url("../static/img/pk/red.png");
  681. /*background-image: linear-gradient(45deg, #ff9960 25%, #f75e07 0, #f75e07 50%, #ff9960 0, #ff9960 75%, #f75e07 0);*/
  682. /*background-size: 40px 40px;*/
  683. }
  684. .progress, .progress-bar {
  685. /*background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0) 50%);*/
  686. /*background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0) 50%);*/
  687. /*background-image: linear-gradient(rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0) 50%);*/
  688. }
  689. .lightning {
  690. position: relative;
  691. top: -0.5rem;
  692. width: 1rem;
  693. height: 1.3rem;
  694. float: right;
  695. margin-right: -0.5rem;
  696. background: url("../static/img/pk/light.png") no-repeat center;
  697. background-size: cover;
  698. }
  699. .lp_icon {
  700. position: absolute;
  701. left: -0.1rem;
  702. top: -0.3rem;
  703. width: 0.8rem;
  704. height: 0.8rem;
  705. float: left;
  706. }
  707. .rp_icon {
  708. position: absolute;
  709. right: 0;
  710. top: -0.3rem;
  711. width: 0.8rem;
  712. height: 0.8rem;
  713. float: right;
  714. }
  715. .pk_container {
  716. width: 98%;
  717. overflow: hidden;
  718. display: block;
  719. margin: 0 auto;
  720. }
  721. .pk_container .lt {
  722. width: 35%;
  723. float: left;
  724. }
  725. .pk_container .rt {
  726. width: 35%;
  727. float: right;
  728. }
  729. .pk_container .md {
  730. width: 30%;
  731. float: left;
  732. }
  733. .pk_container ul {
  734. width: 100%;
  735. overflow: hidden;
  736. display: block;
  737. margin: 0 auto;
  738. padding-top: 0.01rem;
  739. }
  740. .pk_container li {
  741. overflow: hidden;
  742. color: #fff;
  743. margin-bottom: 0.1rem;
  744. }
  745. .pk_container .lt li {
  746. overflow: hidden;
  747. }
  748. .pk_container .rt li {
  749. overflow: hidden;
  750. }
  751. .pk_container .lt .bg {
  752. border: 2px solid rgba(255, 143, 122, 0.5);
  753. background: rgba(194, 36, 6, 0.5);
  754. }
  755. .pk_container .rt .bg {
  756. border: 2px solid rgba(80, 115, 255, 0.5);
  757. background: rgba(0, 30, 152, 0.5);
  758. }
  759. .pk_container li .bg > h5 {
  760. font-family: vista;
  761. font-weight: 500;
  762. font-size: 0.3rem;
  763. text-align: center;
  764. color: #fff;
  765. margin: 0;
  766. margin-top: 0.1rem;
  767. margin-bottom: 0.1rem;
  768. }
  769. .bg > h5 div {
  770. float: left;
  771. width: 20%;
  772. text-align: left;
  773. text-indent: 0.1rem;
  774. }
  775. .bg > h5 .nameMd {
  776. width: 60%;
  777. text-align: center;
  778. text-indent: 0;
  779. }
  780. .pk_container li .user {
  781. width: 100%;
  782. overflow: visible;
  783. display: block;
  784. margin: 0 auto;
  785. }
  786. .pk_container .user .ult {
  787. width: 33.333%;
  788. float: left;
  789. overflow: visible;
  790. flex-direction: column;
  791. }
  792. .pk_container .user .umd {
  793. width: 33.333%;
  794. float: left;
  795. overflow: visible;
  796. flex-direction: column
  797. }
  798. .pk_container .user .urt {
  799. width: 33.333%;
  800. float: right;
  801. flex-direction: column;
  802. }
  803. .centerLi .slowJump {
  804. animation: mymove 3s infinite;
  805. -webkit-animation: mymove 3s infinite; /*Safari and Chrome*/
  806. animation-direction: alternate; /*轮流反向播放动画。*/
  807. animation-timing-function: ease-in-out; /*动画的速度曲线*/
  808. /* Safari 和 Chrome */
  809. -webkit-animation: mymove 3s infinite;
  810. -webkit-animation-direction: alternate; /*轮流反向播放动画。*/
  811. -webkit-animation-timing-function: ease-in-out; /*动画的速度曲线*/
  812. }
  813. .user .ult span {
  814. width: 100%;
  815. overflow: hidden;
  816. display: block;
  817. margin: 0 auto;
  818. font-family: "Source Han Sans CN";
  819. font-weight: normal;
  820. font-size: 0.3rem;
  821. text-align: center;
  822. }
  823. .user .ult em {
  824. width: 100%;
  825. overflow: hidden;
  826. display: block;
  827. margin: 0 auto;
  828. }
  829. .user .ult em div {
  830. width: 80%;
  831. overflow: hidden;
  832. float: right;
  833. text-align: right;
  834. padding-right: 0.3rem;
  835. font-size: 0.8rem;
  836. line-height: 1.6rem;
  837. }
  838. .user .ult s {
  839. position: relative;
  840. top: -1.2rem;
  841. right: 0rem;
  842. float: right;
  843. font-family: HeadLineA;
  844. font-weight: normal;
  845. font-size: 0.3rem;
  846. text-align: center;
  847. text-decoration: none;
  848. }
  849. .circle {
  850. width: 1.7rem;
  851. height: 1.7rem;
  852. overflow: hidden;
  853. display: block;
  854. margin: 0 auto;
  855. border-radius: 33rem;
  856. padding-top: 0.09rem;
  857. }
  858. .user .umd img {
  859. width: 1.5rem;
  860. height: 1.5rem;
  861. overflow: hidden;
  862. display: block;
  863. margin: 0 auto;
  864. /*border-radius: 33rem;*/
  865. border-radius: 33rem;
  866. border: 0.1rem solid #B9CB01;
  867. }
  868. .urt img {
  869. position: relative;
  870. right: 0.1rem;
  871. top: -1.2rem;
  872. width: 0.35rem;
  873. height: 0.35rem;
  874. float: right;
  875. }
  876. .urt em {
  877. overflow: hidden;
  878. display: block;
  879. margin: 0 auto;
  880. font-family: HeadLineA;
  881. font-weight: normal;
  882. font-size: 0.7rem;
  883. letter-spacing: -0.05em;
  884. text-align: right;
  885. font-style: normal;
  886. line-height: 1.5rem;
  887. padding-right: 25%;
  888. }
  889. .bottomLi {
  890. width: 98%;
  891. overflow: hidden;
  892. display: block;
  893. margin: 0 auto;
  894. font-weight: normal;
  895. color: #fff;
  896. text-align: center;
  897. font-size: 0.4rem;
  898. text-indent: 0.2rem;
  899. }
  900. .bottomLi img {
  901. /*width: 0.24rem;*/
  902. /*height: 0.24rem;*/
  903. float: left;
  904. margin-left: 10%;
  905. }
  906. .bottomLi span {
  907. float: left;
  908. text-align: left;
  909. }
  910. .bottomLi .btcla {
  911. width: 30%;
  912. float: left;
  913. text-align: left;
  914. }
  915. .bottomLi .btck {
  916. width: 40%;
  917. float: left;
  918. text-align: left;
  919. }
  920. .bottomLi .step {
  921. width: 30%;
  922. float: right;
  923. text-align: left;
  924. }
  925. @keyframes mymove {
  926. 0% {
  927. transform: scale(1); /*开始为原始大小*/
  928. }
  929. 25% {
  930. transform: scale(1.2); /*放大1.1倍*/
  931. }
  932. 50% {
  933. transform: scale(1);
  934. }
  935. 75% {
  936. transform: scale(1.2);
  937. }
  938. }
  939. @-webkit-keyframes mymove /*Safari and Chrome*/
  940. {
  941. 0% {
  942. transform: scale(1); /*开始为原始大小*/
  943. }
  944. 25% {
  945. transform: scale(1.2); /*放大1.1倍*/
  946. }
  947. 50% {
  948. transform: scale(1);
  949. }
  950. 75% {
  951. transform: scale(1.2);
  952. }
  953. }
  954. .md {
  955. width: 30%;
  956. overflow: hidden;
  957. float: left;
  958. }
  959. .partInfo {
  960. width: 100%;
  961. overflow: hidden;
  962. display: block;
  963. margin: 0 auto;
  964. padding-top: 1rem;
  965. }
  966. .partInfo .rp, .partInfo .bp {
  967. width: 50%;
  968. float: left;
  969. }
  970. .partInfo .title {
  971. width: 33%;
  972. overflow: hidden;
  973. display: block;
  974. margin: 0;
  975. font-size: 0.4rem;
  976. color: #fff;
  977. text-align: left;
  978. }
  979. .rtitle {
  980. float: left;
  981. padding-left: 0.25rem;
  982. }
  983. .partInfo .btitle {
  984. width: 30%;
  985. float: right;
  986. }
  987. .partInfo .title img {
  988. width: 0.4rem;
  989. float: left;
  990. margin-right: 0.2rem;
  991. }
  992. .cubelist {
  993. width: 100%;
  994. overflow: hidden;
  995. display: block;
  996. margin: 0 auto;
  997. }
  998. .cubelist .cubes {
  999. width: 33%;
  1000. height: 2rem;
  1001. overflow: hidden;
  1002. float: left;
  1003. background-position: top center;
  1004. }
  1005. .cubelist .vs {
  1006. width: 33%;
  1007. height: 2rem;
  1008. overflow: hidden;
  1009. float: left;
  1010. }
  1011. .cubelist .cubes em {
  1012. width: 80%;
  1013. overflow: hidden;
  1014. display: block;
  1015. margin: 0 auto;
  1016. text-align: center;
  1017. font-size: 0.3rem;
  1018. font-style: normal;
  1019. color: #fff;
  1020. line-height: 2rem;
  1021. }
  1022. .cubes.rcube {
  1023. background: url("../static/img/pk/rcube.png");
  1024. background-size: 100% 100%;
  1025. }
  1026. .cubes.bcube {
  1027. background: url("../static/img/pk/bcube.png");
  1028. background-size: 100% 100%;
  1029. }
  1030. .teamScore {
  1031. width: 100%;
  1032. overflow: hidden;
  1033. display: block;
  1034. margin: 0 auto;
  1035. }
  1036. .teamScore div {
  1037. width: 50%;
  1038. float: left;
  1039. text-align: center;
  1040. color: #fff;
  1041. font-size: 0.6rem;
  1042. }
  1043. .bottomInfo {
  1044. width: 100%;
  1045. overflow: hidden;
  1046. display: block;
  1047. margin: 0 auto;
  1048. }
  1049. .bottomInfo .names {
  1050. width: 98%;
  1051. height: 0.6rem;
  1052. border-radius: 36px;
  1053. background: #0925b4;
  1054. border: 2px solid rgba(255, 255, 255, 0.5);
  1055. font-size: 0.4rem;
  1056. font-family: Roboto;
  1057. font-weight: normal;
  1058. text-align: center;
  1059. color: #e1ff00;
  1060. overflow: hidden;
  1061. display: block;
  1062. margin: 0 auto;
  1063. margin-top: 0.2rem;
  1064. }
  1065. .teacher {
  1066. width: 100%;
  1067. overflow: hidden;
  1068. display: block;
  1069. margin: 0 auto;
  1070. margin-top: 0.1rem;
  1071. margin-bottom: 0.1rem;
  1072. color: #fff;
  1073. font-size: 0.3rem;
  1074. }
  1075. .teacher span {
  1076. width: 100%;
  1077. overflow: hidden;
  1078. display: block;
  1079. margin: 0 auto;
  1080. }
  1081. .classTime {
  1082. width: 100%;
  1083. overflow: hidden;
  1084. display: block;
  1085. margin: 0 auto;
  1086. color: #fff;
  1087. text-align: center;
  1088. }
  1089. .fastJump {
  1090. animation: mymove 1s infinite;
  1091. -webkit-animation: mymove 1s infinite; /*Safari and Chrome*/
  1092. animation-direction: alternate; /*轮流反向播放动画。*/
  1093. animation-timing-function: ease-in-out; /*动画的速度曲线*/
  1094. /* Safari 和 Chrome */
  1095. -webkit-animation: mymove 1s infinite;
  1096. -webkit-animation-direction: alternate; /*轮流反向播放动画。*/
  1097. -webkit-animation-timing-function: ease-in-out; /*动画的速度曲线*/
  1098. }
  1099. .slowJump {
  1100. animation: mymove 2s infinite;
  1101. -webkit-animation: mymove 2s infinite; /*Safari and Chrome*/
  1102. animation-direction: alternate; /*轮流反向播放动画。*/
  1103. animation-timing-function: ease-in-out; /*动画的速度曲线*/
  1104. /* Safari 和 Chrome */
  1105. -webkit-animation: mymove 3s infinite;
  1106. -webkit-animation-direction: alternate; /*轮流反向播放动画。*/
  1107. -webkit-animation-timing-function: ease-in-out; /*动画的速度曲线*/
  1108. }
  1109. /*two*/
  1110. .pk_container li.two {
  1111. width: 90%;
  1112. overflow: hidden;
  1113. display: block;
  1114. }
  1115. .two .bottomLi {
  1116. width: 98%;
  1117. font-size: 0.35rem;
  1118. margin-top: 0.3rem;
  1119. text-align: center;
  1120. }
  1121. .two .bottomLi img {
  1122. width: 0.4rem;
  1123. height: 0.4rem;
  1124. margin-top: 0.15rem;
  1125. }
  1126. .two .bottomLi .btck img {
  1127. width: 0.4rem;
  1128. margin-top: 0.1rem;
  1129. }
  1130. .two .bottomLi span {
  1131. line-height: 0.8rem;
  1132. text-indent: 0.1rem;
  1133. }
  1134. .two .bottomLi .btcla {
  1135. width: 30%;
  1136. }
  1137. .two .bottomLi .btck {
  1138. width: 33%;
  1139. padding-left: 3%;
  1140. }
  1141. .two .bottomLi .step {
  1142. width: 28%;
  1143. padding-right: 0%;
  1144. }
  1145. .two .cla em.plus {
  1146. position: relative;
  1147. left: -0.3rem
  1148. }
  1149. .two .lhj span.plus {
  1150. position: relative;
  1151. left: 1.3rem
  1152. }
  1153. .two .bottomLi .btck img {
  1154. width: 0.5rem;
  1155. height: 0.5rem;
  1156. margin-top: 0.12rem;
  1157. }
  1158. .two .urt img {
  1159. width: 0.3rem;
  1160. height: 0.3rem;
  1161. }
  1162. /*three*/
  1163. .pk_container li.three {
  1164. width: 90%;
  1165. overflow: hidden;
  1166. display: block;
  1167. }
  1168. .three .bottomLi {
  1169. width: 98%;
  1170. font-size: 0.35rem;
  1171. margin-top: 0rem;
  1172. text-align: center;
  1173. }
  1174. .three .circle {
  1175. width: 1.2rem;
  1176. height: 1.2rem;
  1177. }
  1178. .three .circle img {
  1179. width: 0.9rem;
  1180. height: 0.9rem;
  1181. }
  1182. .three .user {
  1183. height: 1.2rem;
  1184. overflow: hidden;
  1185. }
  1186. .three .ult em div {
  1187. line-height: 1.2rem;
  1188. }
  1189. .three .user .ult em {
  1190. height: 1rem;
  1191. }
  1192. .three .urt em {
  1193. line-height: 1.2rem;
  1194. }
  1195. .three .user .urt {
  1196. height: 1rem;
  1197. }
  1198. .three .bottomLi img {
  1199. width: 0.4rem;
  1200. height: 0.4rem;
  1201. margin-top: 0.15rem;
  1202. }
  1203. .three .bottomLi .btck img {
  1204. width: 0.4rem;
  1205. margin-top: 0.1rem;
  1206. }
  1207. .three .bottomLi span {
  1208. line-height: 0.8rem;
  1209. text-indent: 0.1rem;
  1210. }
  1211. .three .bottomLi .btcla {
  1212. width: 30%;
  1213. }
  1214. .three .bottomLi .btck {
  1215. width: 33%;
  1216. padding-left: 3%;
  1217. }
  1218. .three .bottomLi .step {
  1219. width: 28%;
  1220. padding-right: 0%;
  1221. }
  1222. .three .cla em.plus {
  1223. position: relative;
  1224. left: -0.3rem
  1225. }
  1226. .three .lhj span.plus {
  1227. position: relative;
  1228. left: 1.3rem
  1229. }
  1230. .three .bottomLi .btck img {
  1231. width: 0.5rem;
  1232. height: 0.5rem;
  1233. margin-top: 0.12rem;
  1234. }
  1235. /*four*/
  1236. .pk_container .four {
  1237. width: 49%;
  1238. float: left;
  1239. margin-top: 0.4rem;
  1240. margin-bottom: 0.5rem;
  1241. }
  1242. .four .bg {
  1243. width: 96%;
  1244. overflow: hidden;
  1245. display: block;
  1246. margin: 0 auto;
  1247. }
  1248. .pk_container li.four .bg > h5 {
  1249. font-size: 0.25rem;
  1250. }
  1251. .four .user .ult span {
  1252. font-size: 0.2rem;
  1253. }
  1254. .four .user .ult em div {
  1255. width: 90%;
  1256. font-size: 0.5rem;
  1257. line-height: 1rem;
  1258. padding-right: 0.2rem;
  1259. }
  1260. .four .user .ult s {
  1261. font-size: 0.2rem;
  1262. line-height: 1rem;
  1263. height: 1rem;
  1264. overflow: hidden;
  1265. }
  1266. .four .user .ult em {
  1267. height: 1.1rem;
  1268. }
  1269. .four .circle {
  1270. width: 1rem;
  1271. height: 1rem;
  1272. }
  1273. .four .user .umd img {
  1274. width: 0.8rem;
  1275. height: 0.8rem;
  1276. }
  1277. .four .urt img {
  1278. width: 0.15rem;
  1279. height: 0.15rem;
  1280. top: -0.8rem;
  1281. }
  1282. .four .urt em {
  1283. font-size: 0.4rem;
  1284. line-height: 1rem;
  1285. }
  1286. .four .bottomLi {
  1287. width: 100%;
  1288. text-indent: 0.1rem;
  1289. font-size: 0.2rem;
  1290. }
  1291. .four .bottomLi img {
  1292. width: 0.2rem;
  1293. height: 0.2rem;
  1294. }
  1295. .four .bottomLi span {
  1296. width: 60%;
  1297. }
  1298. .four .user {
  1299. height: 1.2rem;
  1300. overflow: hidden;
  1301. }
  1302. /*six*/
  1303. /*eight*/
  1304. .eight {
  1305. width: 49%;
  1306. float: left;
  1307. }
  1308. .eight .bg {
  1309. width: 96%;
  1310. overflow: hidden;
  1311. display: block;
  1312. margin: 0 auto;
  1313. }
  1314. .pk_container li.eight .bg > h5 {
  1315. font-size: 0.25rem;
  1316. margin: 0.01rem 0;
  1317. }
  1318. .eight .user .ult span {
  1319. font-size: 0.2rem;
  1320. }
  1321. .eight .user .ult em div {
  1322. width: 90%;
  1323. margin-right: 0rem;
  1324. font-size: 0.5rem;
  1325. line-height: 1rem;
  1326. padding-right: 0.2rem;
  1327. }
  1328. .eight .user .ult s {
  1329. font-size: 0.2rem;
  1330. line-height: 1rem;
  1331. }
  1332. .eight .circle {
  1333. width: 1rem;
  1334. height: 1rem;
  1335. }
  1336. .eight .user .umd img {
  1337. width: 0.8rem;
  1338. height: 0.8rem;
  1339. }
  1340. .eight .urt img {
  1341. width: 0.15rem;
  1342. height: 0.15rem;
  1343. top: -0.8rem;
  1344. }
  1345. .eight .urt em {
  1346. font-size: 0.4rem;
  1347. line-height: 1rem;
  1348. }
  1349. .eight .user .ult em {
  1350. height: 1.1rem;
  1351. }
  1352. .eight .bottomLi {
  1353. width: 100%;
  1354. text-indent: 0.1rem;
  1355. font-size: 0.2rem;
  1356. }
  1357. .eight .bottomLi img {
  1358. width: 0.2rem;
  1359. height: 0.2rem;
  1360. }
  1361. .eight .bottomLi span {
  1362. width: 60%;
  1363. }
  1364. .eight .user {
  1365. height: 1.2rem;
  1366. overflow: hidden;
  1367. }
  1368. .pk_container .rt li {
  1369. float: right;
  1370. }
  1371. /*color*/
  1372. .user .umd img.blue {
  1373. border-color: #028FE1;
  1374. }
  1375. .user .umd img.violet {
  1376. border-color: #6D26FA;
  1377. }
  1378. .user .umd img.green {
  1379. border-color: #059F00;
  1380. }
  1381. .user .umd img.yellow {
  1382. border-color: #B5C700;
  1383. }
  1384. .user .umd img.brown {
  1385. border-color: #EA8813;
  1386. }
  1387. .user .umd img.red {
  1388. border-color: #CF1122;
  1389. }
  1390. .birth {
  1391. position: relative;
  1392. top: -2rem;
  1393. width: 1.7rem;
  1394. height: 1px;
  1395. display: block;
  1396. margin: 0 auto;
  1397. }
  1398. .birth img.birthCrow {
  1399. position: relative;
  1400. top: 0.2rem;
  1401. width: 1.1rem;
  1402. height: 0.4rem;
  1403. overflow: hidden;
  1404. display: block;
  1405. margin: 0 auto;
  1406. border: none;
  1407. }
  1408. .birth img.birthText {
  1409. position: relative;
  1410. top: 1rem;
  1411. width: 1.6rem;
  1412. height: 0.6rem;
  1413. overflow: hidden;
  1414. display: block;
  1415. margin: 0 auto;
  1416. border: none;
  1417. }
  1418. .three .birth img.birthCrow {
  1419. top: 0.7rem;
  1420. width: 0.8rem;
  1421. height: 0.3rem;
  1422. }
  1423. .three .birth img.birthText {
  1424. top: 1.1rem;
  1425. width: 1.3rem;
  1426. height: 0.6rem;
  1427. }
  1428. .four .birth {
  1429. width: 1rem;
  1430. }
  1431. .four .birth img.birthCrow {
  1432. top: 0.9rem;
  1433. width: 0.7rem;
  1434. height: 0.3rem;
  1435. }
  1436. .four .birth img.birthText {
  1437. top: 1.3rem;
  1438. width: 1rem;
  1439. height: 0.4rem;
  1440. }
  1441. .eight .birth {
  1442. width: 1rem;
  1443. }
  1444. .eight .birth img.birthCrow {
  1445. top: 0.9rem;
  1446. width: 0.7rem;
  1447. height: 0.3rem;
  1448. }
  1449. .eight .birth img.birthText {
  1450. top: 1.3rem;
  1451. width: 1rem;
  1452. height: 0.4rem;
  1453. }
  1454. </style>