ClassOnLine.vue 51 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485
  1. <template>
  2. <div class="context bgStyle1" id="online">
  3. <div class="change">
  4. <div class="basicInfo">
  5. <em>课程名:{{ PlanName }}</em>
  6. <em>学员数:{{ Num }}</em>
  7. <em>教练:{{ Teacher }}</em>
  8. <!--<em>(在线:{{classInfo.online}}人 离线:{{classInfo.offline}}人) </em>-->
  9. <em>当前时间:{{ classInfo.endTime }}</em>
  10. <!--拿到eqsn才能获取数据-->
  11. <em class="room">区域列表</em>
  12. <select
  13. id="regionSelect"
  14. v-model="VenueId"
  15. placeholder="请选择区域"
  16. @change="queryEqsnByVenueId"
  17. >
  18. <option value>请选择区域</option>
  19. <option :value="item.SvId" v-for="item in VenueOption">{{ item.Name }}</option>
  20. </select>
  21. <!--<el-select v-model="VenueId" placeholder="请选择区域" @change="queryEqsnByVenueId">-->
  22. <!--<el-option-->
  23. <!--v-for="item in VenueOption"-->
  24. <!--:key="item.SvId"-->
  25. <!--:label="item.Name"-->
  26. <!--:value="item.SvId">-->
  27. <!--</el-option>-->
  28. <!--</el-select>-->
  29. </div>
  30. <el-button
  31. @click="full_screen"
  32. v-if="!screen_full"
  33. icon="el-icon-full-screen"
  34. type="primary"
  35. >全屏</el-button>
  36. <el-button @click="cancle_screen" v-else icon="el-icon-full-screen" type="primary">缩小</el-button>
  37. <!--<el-button v-if="classState == 0" @click="" type="success">上课</el-button>-->
  38. <!--<el-button v-else @click="" type="danger">下课</el-button>-->
  39. <el-button @click="showRank" type="warning">排行榜</el-button>
  40. <!--<el-button @click="">隐藏信息 todo</el-button>-->
  41. </div>
  42. <div :class="[{ 'userList': true }, { 'bigUserList': bigUserList }]">
  43. <ul :class="[{ 'bigUserList': bigUserList }]">
  44. <li v-if="students.length == 0">
  45. <h5 style="color: #fff;font-size: 3rem">暂无学生加入当前课程</h5>
  46. </li>
  47. <li
  48. v-for="(s,i) in students"
  49. :class="studentsClassName[i].name"
  50. v-show="students"
  51. v-if="students.length > 0"
  52. >
  53. <div class="centerLi">
  54. <div class="topLi">
  55. <div class="human">
  56. <span class="name">
  57. <div class="nameLt">
  58. <i class="el-icon-male" v-if="s.Sex == 1"></i>
  59. <i class="el-icon-female" v-if="s.Sex == 2"></i>
  60. </div>
  61. <div class="nameMd">{{ s.Name }}</div>
  62. <div class="namert" v-if="s.RealHr != 0">
  63. <power :cur-power="s.PowerPercent"></power>
  64. </div>
  65. </span>
  66. <div class="head">
  67. <img :src="s.Head" alt v-if="s.Head" />
  68. <img src="../../static/img/people/flyhead.png" alt v-if="!s.Head" />
  69. <!-- 生日快乐 -->
  70. <div class="birth" v-if="s.IsBirthday == 1">
  71. <img
  72. src="../../assets/img/birth/birthCrow.png"
  73. class="birthCrow"
  74. />
  75. <img
  76. src="../../assets/img/birth/birthText.png"
  77. class="birthText"
  78. />
  79. </div>
  80. <!--私有心率带-->
  81. <div class="isPrivate" v-if="s.IsPrivate == 1">
  82. <i></i>
  83. </div>
  84. </div>
  85. </div>
  86. <div class="cla">
  87. <em v-if="s.RealHr != 0">{{ s.ActivePercent | max100 }}</em>
  88. <em class="plus" v-if="s.ActivePercent == 0 && s.RealHr == 0">---</em>
  89. </div>
  90. <div class="lcla">
  91. <span>%</span>
  92. </div>
  93. <!--fastJump-->
  94. <!--heartJump-->
  95. <div>
  96. <div class="lhj">
  97. <div :class="[{ 'heartJump': true }]">
  98. <span
  99. class="fastJump"
  100. v-if="s.RealHr != 0"
  101. v-show="parseInt(s.ActivePercent) > 90"
  102. >{{ s.RealHr }}</span>
  103. <span
  104. class="normalJump"
  105. v-if="s.RealHr != 0"
  106. v-show="parseInt(s.ActivePercent) <= 90 && parseInt(s.ActivePercent) > 30"
  107. >{{ s.RealHr }}</span>
  108. <span
  109. class="slowJump"
  110. v-if="s.RealHr != 0"
  111. v-show="parseInt(s.ActivePercent) <= 30"
  112. >{{ s.RealHr }}</span>
  113. <span class="plus" v-if="s.RealHr == 0">---</span>
  114. </div>
  115. </div>
  116. <div class="rhj">
  117. <img src="../../static/img/heart.svg" class />
  118. </div>
  119. </div>
  120. </div>
  121. <div class="bottomLi">
  122. <div class="btcla">
  123. <img src="../../static/img/s1.svg" />
  124. <span>{{ s.Cle | fmtInt }}</span>
  125. </div>
  126. <div class="btck">
  127. <img src="../../static/img/s2.svg" />
  128. <span>{{ s.PureCalorieNoVo2 | fmtInt }}</span>
  129. </div>
  130. <div class="step">
  131. <img src="../../static/img/ck.svg" />
  132. <span>{{ s.Ck | fmtFloat }}</span>
  133. </div>
  134. </div>
  135. </div>
  136. </li>
  137. </ul>
  138. </div>
  139. <!--图示-->
  140. <div class="bottom">
  141. <levelIcon></levelIcon>
  142. </div>
  143. <!--排行榜-->
  144. <el-dialog :title="dialogTitle" :visible.sync="dialogMemberVisible" width="1366px">
  145. <userRank :rank-info="rankInfo"></userRank>
  146. <br />
  147. <div class="dialogFooter">
  148. <el-button size="small" @click="dialogMemberVisible = false">关闭</el-button>
  149. </div>
  150. </el-dialog>
  151. </div>
  152. </template>
  153. <script>
  154. import levelIcon from '@/components/levelIcon'
  155. import power from '@/components/power'
  156. import userRank from '@/components/userRank'
  157. import Global from '../../Global.js'
  158. import {
  159. QueryShopVenue,
  160. QueryDemoVenueEquipInOlinClass,
  161. getHello,
  162. CalorieStatsQuery,
  163. ClassUserRank,
  164. } from "../../api/getApiRes";
  165. let qs = require('qs');
  166. export default {
  167. data() {
  168. return {
  169. classInfo: {
  170. name: '',
  171. len: '',
  172. online: 0,
  173. offline: 0,
  174. time: '00:00:00',
  175. endTime: '00:00:00',
  176. },
  177. VenueId: '',//所选区域
  178. classState: 0,//0 下课 1上课
  179. students: [],
  180. VenueOption: [],
  181. studentsClassName: [],
  182. rankInfo: [],
  183. screen_full: false,
  184. bigUserList: false,
  185. dialogMemberVisible: false,//false
  186. dialogTitle: '排行榜',
  187. EqSn: '',
  188. PlanName: '',
  189. BeginTime: '',
  190. Num: '',
  191. Teacher: '',
  192. Memo: '',
  193. };
  194. },
  195. mounted() {
  196. this.init();
  197. },
  198. watch: {
  199. $route(to) {
  200. if (to.name != 'ClassOnLine') {
  201. this.clearRem();
  202. clearInterval(this.mainTimer);//页面销毁时清除定时器
  203. } else {
  204. this.setRem();
  205. this.getVenueQuery();
  206. this.queryEqsnByVenueId();
  207. }
  208. },
  209. // EqSn(to){
  210. // console.log(to);
  211. // clearInterval(this.mainTimer);//页面销毁时清除定时器
  212. // if(to){
  213. // this.mainTimer = setInterval(() => {
  214. // this.GetgetUserList();
  215. // }, 1000);
  216. // }
  217. // }
  218. },
  219. destroyed() {
  220. clearInterval(this.mainTimer);//页面销毁时清除定时器
  221. },
  222. methods: {
  223. init() {
  224. // this.getList(26);
  225. this.getVenueQuery();
  226. },
  227. getClassUserRank() {
  228. let that = this;
  229. let param = {
  230. eqSn: that.EqSn
  231. };
  232. let postdata = qs.stringify(param);
  233. ClassUserRank(postdata).then(res => {
  234. let json = res;
  235. if (json.Code == 0) {
  236. if (json.Rs) {
  237. that.rankInfo = json.Rs;
  238. } else {
  239. that.rankInfo = [];
  240. }
  241. } else {
  242. if (json.Code == '999') {
  243. // that.$router.push({path: '/'});
  244. } else {
  245. // 已出错
  246. that.$message.error(json.Memo);
  247. }
  248. }
  249. })
  250. },
  251. // 载入课程信息
  252. ReadLessonInfo(Dp) {
  253. this.PlanName = Dp.PlanName;
  254. this.BeginTime = Dp.BeginTime;
  255. this.Teacher = Dp.Teacher;
  256. this.Num = this.students.length;
  257. },
  258. // 计算团队竞技课持续时间
  259. ClacClassTime() {
  260. let BeginTime = new Date(getDate(0,0) + ' ' + this.BeginTime);//结束时间
  261. let nowDate = new Date();
  262. let date = new Date(nowDate - BeginTime - 8 * 60 * 60 * 1000);//减掉东八区时区问题
  263. let h = date.getHours() < 10 ? '0' + date.getHours() + ':' : date.getHours() + ':';
  264. let m = date.getMinutes() < 10 ? '0' + date.getMinutes() + ':' : date.getMinutes() + ':';
  265. let s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
  266. this.classInfo.endTime = h + m + s;
  267. },
  268. clearRem() {
  269. // 320 默认大小16px; 320px = 20rem ;每个元素px基础上/16
  270. let htmlWidth = document.documentElement.clientWidth || document.body.clientWidth;
  271. //得到html的Dom元素
  272. let htmlDom = document.getElementsByTagName('html')[0];
  273. htmlDom.style.fontSize = '14px'
  274. },
  275. setRem() {
  276. // 320 默认大小16px; 320px = 20rem ;每个元素px基础上/16
  277. let htmlWidth = document.documentElement.clientWidth || document.body.clientWidth;
  278. //得到html的Dom元素
  279. let htmlDom = document.getElementsByTagName('html')[0];
  280. //设置根元素字体大小
  281. htmlDom.style.fontSize = htmlWidth / 140 + 'px';
  282. },
  283. // 全屏显示
  284. full_screen() {
  285. let that = this;
  286. this.screen_full = true;
  287. let elem = document.getElementById("online");
  288. this.full_state = true;
  289. if (elem.webkitRequestFullScreen) {
  290. elem.webkitRequestFullScreen();
  291. that.full_rule();
  292. } else if (elem.mozRequestFullScreen) {
  293. elem.mozRequestFullScreen();
  294. that.full_rule();
  295. } else if (elem.requestFullScreen) {
  296. elem.requestFullscreen();
  297. that.full_rule();
  298. } else {
  299. this.screen_full = false;
  300. notice.notice_show("浏览器不支持全屏API或已被禁用", null, null, null, true, true);
  301. }
  302. },
  303. // 取消全屏
  304. cancle_screen() {
  305. let that = this;
  306. this.screen_full = false;
  307. this.full_state = false;
  308. var elem = document;
  309. if (elem.webkitCancelFullScreen) {
  310. elem.webkitCancelFullScreen();
  311. that.cancle_full_rule();
  312. } else if (elem.mozCancelFullScreen) {
  313. elem.mozCancelFullScreen();
  314. that.cancle_full_rule();
  315. } else if (elem.cancelFullScreen) {
  316. elem.cancelFullScreen();
  317. that.cancle_full_rule();
  318. } else if (elem.exitFullscreen) {
  319. elem.exitFullscreen();
  320. that.cancle_full_rule();
  321. } else {
  322. this.screen_full = true;
  323. notice.notice_show("浏览器不支持全屏API或已被禁用", null, null, null, true, true);
  324. }
  325. },
  326. // 打开排行榜
  327. showRank() {
  328. if (this.rankInfo.length == 0) {
  329. this.$message.error('暂无排名数据');
  330. return false
  331. } else {
  332. this.dialogMemberVisible = true;
  333. }
  334. },
  335. // 获取演示区域
  336. getVenueQuery() {
  337. let that = this;
  338. that.loading = true;
  339. let param = {
  340. key: localStorage.ServiceKey,
  341. shopId: localStorage.ServiceId,
  342. };
  343. let postdata = qs.stringify(param);
  344. QueryShopVenue(postdata).then(res => {
  345. let json = res;
  346. if (json.Code == 0) {
  347. that.loading = false;
  348. if (json.Rs) {
  349. that.VenueOption = json.Rs;
  350. } else {
  351. that.VenueOption = [];
  352. }
  353. } else {
  354. if (!localStorage.ServiceKey) {
  355. that.$message.error('还未与心率系统对接,请联系管理员');
  356. } else {
  357. that.$message.error(json.Memo + ' 错误码:' + json.Code);
  358. }
  359. }
  360. })
  361. },
  362. // 获取演示设备eqsn
  363. queryEqsnByVenueId() {
  364. let that = this;
  365. that.loading = true;
  366. if (!that.VenueId) {
  367. return false
  368. }
  369. let param = {
  370. key: localStorage.ServiceKey,
  371. shopId: localStorage.ServiceId,
  372. svId: that.VenueId,
  373. eqType: 3//设备类型 1 电视盒子 2 演示对应中间件 3 演示客户端
  374. };
  375. let postdata = qs.stringify(param);
  376. QueryDemoVenueEquipInOlinClass(postdata).then(res => {
  377. let json = res;
  378. if (json.Code == 0) {
  379. that.loading = false;
  380. if (json.Rs) {
  381. that.EqSn = json.Rs[0].EqSn;
  382. that.Memo = json.Rs[0].Memo;
  383. clearInterval(this.mainTimer);//页面销毁时清除定时器
  384. that.GetgetUserList();
  385. if (that.EqSn) {
  386. this.mainTimer = setInterval(() => {
  387. this.GetgetUserList();
  388. }, 1000);
  389. }
  390. } else {
  391. that.$message.error('当前区域没有设置显示设备');
  392. that.students = [];
  393. that.rankInfo = [];
  394. this.PlanName = '';
  395. this.BeginTime = '';
  396. this.Teacher = '';
  397. this.Num = '0';
  398. this.classInfo.endTime = "00:00:00";
  399. clearInterval(this.mainTimer);//页面销毁时清除定时器
  400. return false
  401. }
  402. } else {
  403. that.$message.error(json.Memo + ' 错误码:' + json.Code);
  404. }
  405. })
  406. },
  407. GetgetUserList() {
  408. let that = this;
  409. let param = {
  410. token: localStorage.token,
  411. eqSn: that.EqSn
  412. };
  413. let postdata = qs.stringify(param);
  414. // CalorieStatsQuery(postdata).then(res => {
  415. getHello(postdata).then(res => {
  416. let json = res;
  417. if (json.Code == 0) {
  418. if (!json.Dp) {
  419. // that.$message.error('没有获取到课程信息');
  420. this.PlanName = '';
  421. this.BeginTime = '';
  422. this.Teacher = '';
  423. } else {
  424. that.ReadLessonInfo(json.Dp);
  425. }
  426. that.students = json.Rs;
  427. that.rankInfo = json.Rs;
  428. that.giveClassName(json.Rs);
  429. that.ClacClassTime();
  430. } else {
  431. // 已下课
  432. if (json.Code == '999') {
  433. that.students = "";
  434. that.rankInfo = "";
  435. // this.PlanName = '';
  436. // this.BeginTime = '';
  437. // this.Teacher = '';
  438. that.getClassUserRank();
  439. } else {
  440. // 已出错
  441. that.$message.error(json.Memo);
  442. }
  443. }
  444. })
  445. },
  446. getList(len) {
  447. let rs = {};
  448. for (var i = 0; i < len; i++) {
  449. rs = {
  450. Age: 13,
  451. AvgHr: 0,
  452. BeginTime: 1608188579,
  453. Ck: "99",
  454. Cle: "159",
  455. DuId: 119,
  456. EndTime: 0,
  457. GroupNo: 1,
  458. Head: "http://192.168.0.2/gc.png",
  459. Height: 160,
  460. HrId: 41,
  461. IsBirthday: 0,
  462. IsBreaking: 0,
  463. IsNewUser: 0,
  464. MaxHr: 80,
  465. PowerPercent: "80",
  466. Name: "西门吹雪",
  467. PkSucessnum: '1',//胜场数
  468. PkTotalnum: '1',//总场数
  469. PlanId: 60,
  470. PureCalorieNoVo2: "500",
  471. Sex: 1,
  472. Sn: "22735",
  473. StaticHr: 60,
  474. Steps: "1280",
  475. SvId: 20,
  476. UserId: 104,
  477. UserMd5: "55661a861f8fae20dd505b2b4575dc0e",
  478. Weight: 50,
  479. ActivePercent: 70,
  480. bmrMSjRmrcb: 66.00000000000001,
  481. FormatCk: "12",
  482. isAlive: true,
  483. isFinish: false,
  484. isOver: false,
  485. IsPrivate: 1,
  486. lastPushDataTime: 1608188947175,
  487. lastUpdateTime: 1608188945184,
  488. queuePushData: [],
  489. RealHr: "100",
  490. vo2Max: "123"
  491. };
  492. this.students.push(rs);
  493. this.rankInfo.push(rs);
  494. }
  495. this.giveClassName(this.students);
  496. },
  497. // 给每一个数据加类名,一次遍历全部赋值
  498. giveClassName(res) {
  499. let that = this;
  500. let numberClass = '';
  501. let colorClass = '';
  502. for (let i = 0; i < parseInt(res.length); i++) {
  503. switch (true) {
  504. case parseInt(res.length) == 1:
  505. numberClass = 'max';
  506. break;
  507. case parseInt(res.length) == 2:
  508. numberClass = 'two';
  509. break;
  510. case parseInt(res.length) <= 4 && parseInt(res.length) > 2:
  511. numberClass = 'three';
  512. break;
  513. case parseInt(res.length) <= 6 && parseInt(res.length) > 4:
  514. numberClass = 'six';
  515. break;
  516. case parseInt(res.length) <= 9 && parseInt(res.length) > 6:
  517. numberClass = 'nine';
  518. break;
  519. case parseInt(res.length) <= 12 && parseInt(res.length) > 9:
  520. numberClass = 'ten';
  521. break;
  522. case parseInt(res.length) <= 15 && parseInt(res.length) > 12:
  523. numberClass = 'twelve';
  524. break;
  525. case parseInt(res.length) <= 20 && parseInt(res.length) > 15:
  526. numberClass = 'sixteen';
  527. break;
  528. case parseInt(res.length) <= 24 && parseInt(res.length) > 20:
  529. numberClass = 'twenty';
  530. break;
  531. case parseInt(res.length) <= 30 && parseInt(res.length) > 24:
  532. this.bigUserList = true;
  533. numberClass = 'twentyFour';
  534. break;
  535. case parseInt(res.length) >= 31:
  536. this.bigUserList = true;
  537. numberClass = 'twentyFour';
  538. break;
  539. }
  540. let per = parseInt(res[i].ActivePercent);
  541. switch (true) {
  542. case per >= 90:
  543. colorClass = 'red';
  544. break;
  545. case per <= 89 && per > 79:
  546. colorClass = 'brown';
  547. break;
  548. case per <= 79 && per > 69:
  549. colorClass = 'yellow';
  550. break;
  551. case per <= 69 && per > 54:
  552. colorClass = 'green';
  553. break;
  554. case per <= 54 && per > 39:
  555. colorClass = 'violet';
  556. break;
  557. case per <= 39:
  558. colorClass = 'blue';
  559. break
  560. }
  561. that.studentsClassName[i] = {
  562. name: numberClass + ' ' + colorClass,
  563. }
  564. }
  565. },
  566. },
  567. filters: {
  568. fmtNum(val) {
  569. if (val == 0) {
  570. return '--'
  571. } else {
  572. if (parseInt(val) < 0) return 0;
  573. if (parseInt(val) > 0) return val
  574. }
  575. },
  576. fmtFloat(val) {
  577. if (val == 0) {
  578. return '0.0'
  579. } else {
  580. return parseFloat(val).toFixed(1);
  581. }
  582. },
  583. fmtInt(val) {
  584. if (val == 0) {
  585. return '0'
  586. } else {
  587. return parseInt(val);
  588. }
  589. },
  590. max100(val) {
  591. if (val <= 100) {
  592. return val
  593. } else {
  594. return 100
  595. }
  596. }
  597. },
  598. components: {
  599. levelIcon, power, userRank
  600. }
  601. }
  602. </script>
  603. <style scoped>
  604. @import "../../assets/css/bg.css";
  605. .context {
  606. border-radius: 12px;
  607. height: 820px;
  608. overflow-y: scroll;
  609. display: block;
  610. margin: 0 auto;
  611. background-color: #fff !important;
  612. padding: 5px;
  613. }
  614. .context::-webkit-scrollbar {
  615. /*滚动条整体样式*/
  616. width: 5px; /*高宽分别对应横竖滚动条的尺寸*/
  617. height: 1px;
  618. }
  619. .context::-webkit-scrollbar-thumb {
  620. /*滚动条里面小方块*/
  621. border-radius: 5px;
  622. -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
  623. background: #535353;
  624. }
  625. .context::-webkit-scrollbar-track {
  626. /*滚动条里面轨道*/
  627. -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
  628. border-radius: 5px;
  629. background: #ededed;
  630. }
  631. .panel /deep/ h5 {
  632. margin: 0;
  633. text-align: left;
  634. font-size: 18px;
  635. font-weight: normal;
  636. padding-bottom: 10px;
  637. border-bottom: 1px solid #f0f2f5;
  638. margin-bottom: 10px;
  639. }
  640. .change {
  641. width: 100%;
  642. overflow: hidden;
  643. display: block;
  644. margin: 0 auto;
  645. padding-top: 10px;
  646. padding-bottom: 0px;
  647. }
  648. .el-button--primary {
  649. margin-right: 10px;
  650. margin-left: 10px;
  651. }
  652. .change button {
  653. float: right;
  654. margin-right: 10px;
  655. cursor: pointer;
  656. }
  657. .basicInfo {
  658. float: left;
  659. font-size: 1rem;
  660. line-height: 2rem;
  661. color: #fff;
  662. padding-left: 1%;
  663. padding-top: 10px;
  664. }
  665. .userList {
  666. width: 100%;
  667. overflow: hidden;
  668. display: block;
  669. margin: 0 auto;
  670. min-height: 42rem;
  671. margin-top: 1rem;
  672. }
  673. em {
  674. font-style: normal;
  675. }
  676. ul,
  677. li {
  678. list-style: none;
  679. margin: 0;
  680. padding: 0;
  681. }
  682. ul {
  683. width: 100%;
  684. height: 100%;
  685. min-height: 42rem;
  686. overflow: hidden;
  687. margin: 0 auto;
  688. display: inline-flex;
  689. align-items: center;
  690. justify-content: center;
  691. flex-wrap: wrap;
  692. }
  693. .blue .centerLi {
  694. background: #028fe1;
  695. }
  696. .violet .centerLi {
  697. background: #6d26fa;
  698. }
  699. .green .centerLi {
  700. background: #059f00;
  701. }
  702. .yellow .centerLi {
  703. background: #dfb200;
  704. }
  705. .brown .centerLi {
  706. background: #ea8813;
  707. }
  708. .red .centerLi {
  709. background: #cf1122;
  710. }
  711. .slowJump {
  712. animation: mymove 3s infinite;
  713. -webkit-animation: mymove 3s infinite; /*Safari and Chrome*/
  714. animation-direction: alternate; /*轮流反向播放动画。*/
  715. animation-timing-function: ease-in-out; /*动画的速度曲线*/
  716. /* Safari 和 Chrome */
  717. -webkit-animation-direction: alternate; /*轮流反向播放动画。*/
  718. -webkit-animation-timing-function: ease-in-out; /*动画的速度曲线*/
  719. }
  720. .normalJump {
  721. animation: mymove 2s infinite;
  722. -webkit-animation: mymove 2s infinite; /*Safari and Chrome*/
  723. animation-direction: alternate; /*轮流反向播放动画。*/
  724. animation-timing-function: ease-in-out; /*动画的速度曲线*/
  725. /* Safari 和 Chrome */
  726. -webkit-animation-direction: alternate; /*轮流反向播放动画。*/
  727. -webkit-animation-timing-function: ease-in-out; /*动画的速度曲线*/
  728. }
  729. .fastJump {
  730. animation: mymove 1s infinite;
  731. -webkit-animation: mymove 1s infinite; /*Safari and Chrome*/
  732. animation-direction: alternate; /*轮流反向播放动画。*/
  733. animation-timing-function: ease-in-out; /*动画的速度曲线*/
  734. /* Safari 和 Chrome */
  735. -webkit-animation-direction: alternate; /*轮流反向播放动画。*/
  736. -webkit-animation-timing-function: ease-in-out; /*动画的速度曲线*/
  737. }
  738. @keyframes mymove {
  739. 0% {
  740. transform: scale(1); /*开始为原始大小*/
  741. }
  742. 25% {
  743. transform: scale(1.1); /*放大1.1倍*/
  744. }
  745. 50% {
  746. transform: scale(1);
  747. }
  748. 75% {
  749. transform: scale(1.1);
  750. }
  751. }
  752. @-webkit-keyframes mymove /*Safari and Chrome*/ {
  753. 0% {
  754. transform: scale(1); /*开始为原始大小*/
  755. }
  756. 25% {
  757. transform: scale(1.1); /*放大1.1倍*/
  758. }
  759. 50% {
  760. transform: scale(1);
  761. }
  762. 75% {
  763. transform: scale(1.1);
  764. }
  765. }
  766. .centerLi {
  767. width: 99.8%;
  768. overflow: hidden;
  769. float: left;
  770. color: #fff;
  771. }
  772. .human img {
  773. overflow: hidden;
  774. display: block;
  775. margin: 0 auto;
  776. border: 2px solid #fff;
  777. border-radius: 33rem;
  778. /*box-shadow: 0px 0px 5px #fff;*/
  779. }
  780. s {
  781. text-decoration: none;
  782. }
  783. em {
  784. font-style: normal;
  785. }
  786. .cla {
  787. position: relative;
  788. float: left;
  789. text-align: right;
  790. }
  791. .centerLi .human {
  792. width: 100%;
  793. overflow: hidden;
  794. display: block;
  795. margin: 0 auto;
  796. padding: 0;
  797. }
  798. .human .name {
  799. width: 100%;
  800. display: block;
  801. margin: 0 auto;
  802. overflow: hidden;
  803. }
  804. .human .name div {
  805. float: left;
  806. width: 20%;
  807. text-align: left;
  808. text-indent: 0.1rem;
  809. }
  810. .human .name .nameMd {
  811. width: 60%;
  812. text-align: center;
  813. text-indent: 0;
  814. }
  815. .lcla span {
  816. position: relative;
  817. float: left;
  818. }
  819. .cla em {
  820. text-align: right;
  821. }
  822. .heartJump {
  823. position: relative;
  824. }
  825. .lhj span {
  826. position: relative;
  827. text-align: right;
  828. float: left;
  829. }
  830. .rhj {
  831. float: right;
  832. }
  833. .rhj img {
  834. position: relative;
  835. float: right;
  836. }
  837. .bottomLi {
  838. width: 96%;
  839. height: auto;
  840. overflow: hidden;
  841. display: block;
  842. margin: 0 auto;
  843. margin-top: 1.2rem;
  844. font-weight: normal !important;
  845. color: #fff;
  846. text-align: left;
  847. line-height: 3rem;
  848. }
  849. .bottomLi img {
  850. float: left;
  851. margin-left: 10%;
  852. }
  853. .bottomLi .btcla {
  854. width: 33.333%;
  855. float: left;
  856. }
  857. .bottomLi .btck {
  858. width: 33.333%;
  859. float: left;
  860. }
  861. .bottomLi .step {
  862. width: 33.333%;
  863. float: right;
  864. }
  865. .bottomLi span {
  866. float: left;
  867. text-align: left;
  868. }
  869. .topLi {
  870. width: 100%;
  871. overflow: hidden;
  872. display: block;
  873. margin: 0 auto;
  874. overflow: hidden;
  875. }
  876. /*max*/
  877. .max {
  878. width: 40rem;
  879. height: 20rem;
  880. }
  881. .max .centerLi {
  882. width: 100%;
  883. height: 100%;
  884. overflow: hidden;
  885. display: block;
  886. margin: 0 auto;
  887. }
  888. .max .human .name {
  889. font-size: 2rem;
  890. height: 5rem;
  891. line-height: 4rem;
  892. }
  893. .max .human img {
  894. width: 10rem;
  895. height: 10rem;
  896. }
  897. .max .cla {
  898. width: 12rem;
  899. height: 8rem;
  900. top: -10rem;
  901. left: 0;
  902. font-size: 8rem;
  903. }
  904. .max .lcla span {
  905. font-size: 3rem;
  906. top: -8rem;
  907. float: left;
  908. left: 0;
  909. }
  910. .max .cla em {
  911. font-size: 6rem;
  912. left: 1rem;
  913. }
  914. .max .lhj span {
  915. width: 12rem;
  916. height: 8rem;
  917. top: -8rem;
  918. left: 10rem;
  919. font-size: 6rem;
  920. }
  921. .max .rhj img {
  922. width: 2rem;
  923. top: -8rem;
  924. right: 1rem;
  925. }
  926. .max .longIcon {
  927. position: absolute;
  928. width: 1.96rem;
  929. overflow: hidden;
  930. display: block;
  931. margin: 0 auto;
  932. bottom: 2rem;
  933. right: 3.5rem;
  934. }
  935. .max .topLi {
  936. height: 16rem;
  937. }
  938. .max .bottomLi {
  939. height: 6rem;
  940. line-height: 6rem;
  941. font-size: 2rem;
  942. text-align: center;
  943. }
  944. .max .bottomLi .btck {
  945. /*text-indent: 1.6rem;*/
  946. }
  947. .max .bottomLi img {
  948. width: 2rem;
  949. height: 2rem;
  950. margin-top: 0.4rem;
  951. }
  952. .max .bottomLi span {
  953. line-height: 3rem;
  954. text-indent: 1rem;
  955. }
  956. .max .bottomLi .btck {
  957. width: 29%;
  958. padding-left: 1%;
  959. }
  960. .max .bottomLi .step {
  961. width: 24%;
  962. padding-right: 2%;
  963. }
  964. .max .cla em.plus {
  965. position: relative;
  966. left: -0.5rem;
  967. }
  968. .max .lhj span.plus {
  969. position: relative;
  970. left: 8.75rem;
  971. }
  972. .max .bottomLi .btcla img {
  973. width: 1.8rem;
  974. height: 1.8rem;
  975. }
  976. .max .bottomLi .btcla span {
  977. text-indent: 0.1rem;
  978. }
  979. .max .bottomLi .btck span {
  980. text-indent: 0.1rem;
  981. }
  982. .max .bottomLi .btck img {
  983. width: 2rem;
  984. height: 2rem;
  985. margin-top: 0.5rem;
  986. }
  987. /*two*/
  988. .two {
  989. width: 40rem;
  990. height: 20rem;
  991. float: left;
  992. overflow: hidden;
  993. margin-top: 6%;
  994. }
  995. .two .centerLi {
  996. height: 100%;
  997. /*border: 1px solid #fff;*/
  998. }
  999. .two:nth-child(2) {
  1000. float: right;
  1001. }
  1002. .two .human .name {
  1003. width: 100%;
  1004. height: 4rem;
  1005. font-size: 2rem;
  1006. line-height: 4rem;
  1007. }
  1008. .two .human img {
  1009. width: 11rem;
  1010. height: 11rem;
  1011. }
  1012. .two .cla {
  1013. width: 12rem;
  1014. height: 8rem;
  1015. top: -9rem;
  1016. left: 0;
  1017. font-size: 2rem;
  1018. }
  1019. .two .lcla span {
  1020. font-size: 2rem;
  1021. top: -9rem;
  1022. float: left;
  1023. left: 0;
  1024. }
  1025. .two .cla em {
  1026. font-size: 5rem;
  1027. left: 4rem;
  1028. }
  1029. .two .lhj span {
  1030. width: 12rem;
  1031. height: 8rem;
  1032. top: -9rem;
  1033. left: 10rem;
  1034. font-size: 5rem;
  1035. }
  1036. .two .rhj img {
  1037. width: 1.6rem;
  1038. top: -9rem;
  1039. right: 2.5rem;
  1040. }
  1041. .two .topLi {
  1042. height: 16rem;
  1043. }
  1044. .two .bottomLi {
  1045. font-size: 2.5rem;
  1046. text-align: center;
  1047. }
  1048. .two .bottomLi img {
  1049. width: 2rem;
  1050. height: 2rem;
  1051. margin-top: 0.4rem;
  1052. }
  1053. .two .bottomLi span {
  1054. line-height: 3rem;
  1055. text-indent: 1rem;
  1056. }
  1057. .two .bottomLi .btck {
  1058. width: 29%;
  1059. padding-left: 0%;
  1060. }
  1061. .two .bottomLi .step {
  1062. width: 26%;
  1063. padding-right: 1%;
  1064. }
  1065. .two .cla em.plus {
  1066. position: relative;
  1067. left: -0.5rem;
  1068. }
  1069. .two .lhj span.plus {
  1070. position: relative;
  1071. left: 9rem;
  1072. }
  1073. .two .bottomLi .btck img {
  1074. width: 2.6rem;
  1075. height: 2.6rem;
  1076. margin-top: 0.1rem;
  1077. }
  1078. .two .bottomLi .btck span {
  1079. text-indent: 1.6rem;
  1080. }
  1081. /*three*/
  1082. .three {
  1083. width: 40rem;
  1084. height: 16rem;
  1085. float: left;
  1086. overflow: hidden;
  1087. margin-bottom: 1%;
  1088. }
  1089. .three .centerLi {
  1090. width: 90%;
  1091. height: 100%;
  1092. overflow: hidden;
  1093. display: block;
  1094. margin: 0 auto;
  1095. /*border: 1px solid #fff;*/
  1096. float: none;
  1097. }
  1098. .three .human .name {
  1099. width: 100%;
  1100. height: 2.5rem;
  1101. font-size: 1.8rem;
  1102. line-height: 2.5rem;
  1103. }
  1104. .three .human img {
  1105. width: 9rem;
  1106. height: 9rem;
  1107. margin-top: 1rem;
  1108. }
  1109. .three .cla {
  1110. width: 11rem;
  1111. height: 8rem;
  1112. top: -8rem;
  1113. left: 0;
  1114. font-size: 2rem;
  1115. }
  1116. .three .lcla span {
  1117. font-size: 2rem;
  1118. top: -9rem;
  1119. float: left;
  1120. left: 0;
  1121. }
  1122. .three .cla em {
  1123. font-size: 5rem;
  1124. left: 4rem;
  1125. }
  1126. .three .lhj span {
  1127. width: 12rem;
  1128. height: 8rem;
  1129. top: -8rem;
  1130. left: 7rem;
  1131. font-size: 4.4rem;
  1132. }
  1133. .three .rhj img {
  1134. width: 1.4rem;
  1135. top: -8rem;
  1136. right: 2rem;
  1137. }
  1138. .three .topLi {
  1139. height: 13rem;
  1140. }
  1141. .three .bottomLi {
  1142. font-size: 1.6rem;
  1143. margin-top: 0rem;
  1144. text-align: center;
  1145. }
  1146. .three .bottomLi img {
  1147. width: 2rem;
  1148. height: 2rem;
  1149. margin-top: 0.4rem;
  1150. }
  1151. .three .bottomLi span {
  1152. line-height: 3.2rem;
  1153. text-indent: 1rem;
  1154. }
  1155. .three .bottomLi .btck {
  1156. width: 30%;
  1157. padding-left: 2%;
  1158. }
  1159. .three .bottomLi .step {
  1160. width: 25%;
  1161. padding-right: 2%;
  1162. }
  1163. .three .cla em.plus {
  1164. position: relative;
  1165. left: -0.5rem;
  1166. }
  1167. .three .lhj span.plus {
  1168. position: relative;
  1169. left: 8rem;
  1170. }
  1171. .three .bottomLi .btck img {
  1172. width: 2.4rem;
  1173. height: 2.4rem;
  1174. margin-top: 0.2rem;
  1175. }
  1176. .three .bottomLi .btck span {
  1177. text-indent: 1.6rem;
  1178. }
  1179. .three /deep/ .powerContainer img {
  1180. width: 2rem;
  1181. }
  1182. /*six*/
  1183. .six {
  1184. width: 35rem;
  1185. height: 14rem;
  1186. float: left;
  1187. overflow: hidden;
  1188. margin-bottom: 1%;
  1189. }
  1190. .six .centerLi {
  1191. width: 98%;
  1192. height: 100%;
  1193. overflow: hidden;
  1194. display: block;
  1195. margin: 0 auto;
  1196. /*border: 1px solid #fff;*/
  1197. float: none;
  1198. }
  1199. .six .human .name {
  1200. width: 100%;
  1201. height: 3.2rem;
  1202. font-size: 1.3rem;
  1203. line-height: 3.2rem;
  1204. }
  1205. .six .human img {
  1206. width: 7rem;
  1207. height: 7rem;
  1208. margin-top: 0.4rem;
  1209. }
  1210. .six .cla {
  1211. width: 8rem;
  1212. height: 8rem;
  1213. top: -8rem;
  1214. left: 0;
  1215. font-size: 6rem;
  1216. }
  1217. .six .lcla span {
  1218. font-size: 2rem;
  1219. top: -6.5rem;
  1220. float: left;
  1221. left: -0.2rem;
  1222. }
  1223. .six .cla em {
  1224. font-size: 4rem;
  1225. left: 4rem;
  1226. }
  1227. .six .lhj span {
  1228. width: 8rem;
  1229. height: 8rem;
  1230. top: -6.5rem;
  1231. left: 11rem;
  1232. font-size: 4rem;
  1233. }
  1234. .six .rhj img {
  1235. width: 1.4rem;
  1236. top: -7rem;
  1237. right: 2rem;
  1238. }
  1239. .six .topLi {
  1240. height: 10.9rem;
  1241. }
  1242. .six .bottomLi {
  1243. width: 98%;
  1244. font-size: 2rem;
  1245. margin-top: 0.2rem;
  1246. text-align: center;
  1247. }
  1248. .six .bottomLi img {
  1249. width: 1.8rem;
  1250. margin-top: 0.5rem;
  1251. }
  1252. .six .bottomLi .btcla img {
  1253. width: 1.4rem;
  1254. margin-top: 0.5rem;
  1255. }
  1256. .six .bottomLi .btck img {
  1257. width: 1.6rem;
  1258. margin-top: 0.5rem;
  1259. }
  1260. .six .bottomLi span {
  1261. line-height: 3.2rem;
  1262. text-indent: 0.5rem;
  1263. }
  1264. .six .bottomLi .btcla {
  1265. width: 30%;
  1266. }
  1267. .six .bottomLi .btck {
  1268. width: 33%;
  1269. padding-left: 3%;
  1270. }
  1271. .six .bottomLi .step {
  1272. width: 28%;
  1273. padding-right: 0%;
  1274. }
  1275. .six .cla em.plus {
  1276. position: relative;
  1277. left: -1.2rem;
  1278. }
  1279. .six .lhj span.plus {
  1280. position: relative;
  1281. left: 11.3rem;
  1282. }
  1283. .six .bottomLi .btck img {
  1284. width: 2rem;
  1285. height: 2rem;
  1286. margin-top: 0.5rem;
  1287. }
  1288. /*nine*/
  1289. .nine {
  1290. width: 33.3333%;
  1291. height: 13rem;
  1292. float: left;
  1293. overflow: hidden;
  1294. margin-bottom: 0.4rem;
  1295. }
  1296. .nine .centerLi {
  1297. width: 98%;
  1298. height: 100%;
  1299. overflow: hidden;
  1300. display: block;
  1301. margin: 0 auto;
  1302. /*border: 1px solid #fff;*/
  1303. float: none;
  1304. }
  1305. .nine .human .name {
  1306. width: 100%;
  1307. height: 2.4rem;
  1308. font-size: 1.6rem;
  1309. line-height: 2.4rem;
  1310. }
  1311. .nine .human img {
  1312. width: 6rem;
  1313. height: 6rem;
  1314. margin-top: 0.4rem;
  1315. }
  1316. .nine .cla {
  1317. width: 8rem;
  1318. height: 8rem;
  1319. top: -5.5rem;
  1320. left: 0;
  1321. font-size: 4rem;
  1322. }
  1323. .nine .lcla span {
  1324. font-size: 1.3rem;
  1325. top: -5.5rem;
  1326. float: left;
  1327. left: 0.05rem;
  1328. }
  1329. .nine .cla em {
  1330. font-size: 4rem;
  1331. left: 1rem;
  1332. }
  1333. .nine .lhj span {
  1334. width: 7rem;
  1335. height: 8rem;
  1336. top: -5.5rem;
  1337. left: 12rem;
  1338. font-size: 4rem;
  1339. }
  1340. .nine .rhj img {
  1341. width: 1rem;
  1342. top: -5.5rem;
  1343. right: 3rem;
  1344. }
  1345. .nine .topLi {
  1346. height: 10rem;
  1347. }
  1348. .nine .bottomLi {
  1349. width: 98%;
  1350. font-size: 1.6rem;
  1351. margin-top: 0.2rem;
  1352. text-align: center;
  1353. }
  1354. .nine .bottomLi img {
  1355. width: 1.6rem;
  1356. height: 1.6rem;
  1357. margin-top: 0.6rem;
  1358. }
  1359. .nine .bottomLi span {
  1360. line-height: 3.2rem;
  1361. text-indent: 0.4rem;
  1362. }
  1363. .nine .bottomLi .btcla {
  1364. width: 30%;
  1365. }
  1366. .nine .bottomLi .btck {
  1367. width: 32%;
  1368. padding-left: 5%;
  1369. }
  1370. .nine .bottomLi .step {
  1371. width: 28%;
  1372. padding-right: 0%;
  1373. }
  1374. .nine .cla em.plus {
  1375. position: relative;
  1376. left: -1.2rem;
  1377. }
  1378. .nine .lhj span.plus {
  1379. position: relative;
  1380. left: 1.3rem;
  1381. }
  1382. .nine .bottomLi .btck img {
  1383. width: 2rem;
  1384. height: 2rem;
  1385. margin-top: 0.4rem;
  1386. }
  1387. .nine /deep/ .powerContainer img {
  1388. width: 1.2rem;
  1389. }
  1390. /*ten*/
  1391. .ten {
  1392. width: 25rem;
  1393. height: 13rem;
  1394. float: left;
  1395. overflow: hidden;
  1396. margin-bottom: 0.2rem;
  1397. }
  1398. .ten .centerLi {
  1399. width: 98%;
  1400. height: 100%;
  1401. overflow: hidden;
  1402. display: block;
  1403. margin: 0 auto;
  1404. /*border: 1px solid #fff;*/
  1405. float: none;
  1406. }
  1407. .ten .human .name {
  1408. width: 100%;
  1409. height: 2rem;
  1410. font-size: 1.4rem;
  1411. line-height: 2rem;
  1412. margin-bottom: 0.5rem;
  1413. }
  1414. .ten .human img {
  1415. width: 6rem;
  1416. height: 6rem;
  1417. margin-top: 0.6rem;
  1418. }
  1419. .ten .cla {
  1420. width: 5rem;
  1421. height: 4rem;
  1422. top: -5rem;
  1423. left: 2rem;
  1424. font-size: 1rem;
  1425. }
  1426. .ten .lcla span {
  1427. font-size: 1.5rem;
  1428. top: -5rem;
  1429. float: left;
  1430. left: 2rem;
  1431. }
  1432. .ten .cla em {
  1433. font-size: 4rem;
  1434. left: 4rem;
  1435. }
  1436. .ten .lhj span {
  1437. width: 4rem;
  1438. height: 4rem;
  1439. top: -5rem;
  1440. left: 9.5rem;
  1441. font-size: 4rem;
  1442. }
  1443. .ten .rhj img {
  1444. width: 1rem;
  1445. top: -4.5rem;
  1446. right: 0.5rem;
  1447. }
  1448. .ten .topLi {
  1449. height: 9rem;
  1450. }
  1451. .ten .bottomLi {
  1452. width: 98%;
  1453. font-size: 1.5rem;
  1454. margin-top: 0.1rem;
  1455. text-align: center;
  1456. }
  1457. .ten .bottomLi img {
  1458. width: 1.5em;
  1459. height: 1.5rem;
  1460. margin-top: 0.9rem;
  1461. }
  1462. .ten .bottomLi span {
  1463. line-height: 3.2rem;
  1464. text-indent: 0.1rem;
  1465. }
  1466. .ten .bottomLi .btcla {
  1467. width: 30%;
  1468. }
  1469. .ten .bottomLi .btck {
  1470. width: 32%;
  1471. padding-left: 3%;
  1472. }
  1473. .ten .bottomLi .step {
  1474. width: 29%;
  1475. padding-right: 0%;
  1476. }
  1477. .ten .cla em.plus {
  1478. position: relative;
  1479. left: -1.2rem;
  1480. }
  1481. .ten .lhj span.plus {
  1482. position: relative;
  1483. left: 1.2rem;
  1484. line-height: 1rem;
  1485. }
  1486. .ten .btck img {
  1487. width: 1.8rem;
  1488. height: 1.8rem;
  1489. margin-top: 0.65rem;
  1490. }
  1491. .ten /deep/ .powerContainer img {
  1492. width: 1.2rem;
  1493. margin-left: 1rem;
  1494. }
  1495. /*twelve*/
  1496. .twelve {
  1497. width: 20rem;
  1498. height: 11rem;
  1499. float: left;
  1500. overflow: hidden;
  1501. margin-bottom: 1.2rem;
  1502. }
  1503. .twelve .centerLi {
  1504. width: 98%;
  1505. height: 100%;
  1506. overflow: hidden;
  1507. display: block;
  1508. margin: 0 auto;
  1509. /*border: 1px solid #fff;*/
  1510. float: none;
  1511. }
  1512. .twelve .human .name {
  1513. width: 100%;
  1514. height: 1.5rem;
  1515. font-size: 1rem;
  1516. line-height: 1.5rem;
  1517. margin-bottom: 0.5rem;
  1518. }
  1519. .twelve .human img {
  1520. width: 5rem;
  1521. height: 5rem;
  1522. }
  1523. .twelve .cla {
  1524. width: 4rem;
  1525. height: 4rem;
  1526. top: -4rem;
  1527. left: 1.5rem;
  1528. }
  1529. .twelve .lcla span {
  1530. font-size: 1rem;
  1531. top: -4rem;
  1532. float: left;
  1533. left: 1.5rem;
  1534. }
  1535. .twelve .cla em {
  1536. font-size: 3rem;
  1537. left: 2rem;
  1538. }
  1539. .twelve .lhj span {
  1540. width: 1.2rem;
  1541. height: 1.2rem;
  1542. top: -4.2rem;
  1543. left: 8.1rem;
  1544. font-size: 3rem;
  1545. }
  1546. .twelve .rhj img {
  1547. width: 1rem;
  1548. top: -4rem;
  1549. right: 0.5rem;
  1550. }
  1551. .twelve .topLi {
  1552. height: 8rem;
  1553. }
  1554. .twelve .bottomLi {
  1555. width: 98%;
  1556. font-size: 1.4rem;
  1557. margin-top: 0.1rem;
  1558. text-align: center;
  1559. }
  1560. .twelve .bottomLi img {
  1561. width: 1.4rem;
  1562. height: 1.4rem;
  1563. margin-top: 0.75rem;
  1564. }
  1565. .twelve .bottomLi span {
  1566. line-height: 3.2rem;
  1567. text-indent: 0.1rem;
  1568. }
  1569. .twelve .bottomLi .btcla {
  1570. width: 30%;
  1571. }
  1572. .twelve .bottomLi .btck {
  1573. width: 32%;
  1574. padding-left: 2%;
  1575. }
  1576. .twelve .bottomLi .step {
  1577. width: 27%;
  1578. padding-right: 1%;
  1579. }
  1580. .twelve .cla em.plus {
  1581. position: relative;
  1582. left: -0.2rem;
  1583. }
  1584. .twelve .lhj span.plus {
  1585. position: relative;
  1586. left: 3.2rem;
  1587. }
  1588. .twelve .btck img {
  1589. width: 1.5rem;
  1590. height: 1.5rem;
  1591. }
  1592. .twelve .btck img {
  1593. width: 1.7rem;
  1594. height: 1.7rem;
  1595. margin-top: 0.6rem;
  1596. }
  1597. .twelve /deep/ .powerContainer img {
  1598. width: 1.2rem;
  1599. margin-left: 1rem;
  1600. }
  1601. /*sixteen*/
  1602. .sixteen {
  1603. width: 20rem;
  1604. height: 10rem;
  1605. float: left;
  1606. overflow: hidden;
  1607. margin-bottom: 0.1rem;
  1608. }
  1609. .sixteen .centerLi {
  1610. width: 98%;
  1611. height: 100%;
  1612. overflow: hidden;
  1613. display: block;
  1614. margin: 0 auto;
  1615. /*border: 1px solid #fff;*/
  1616. float: none;
  1617. }
  1618. .sixteen .human .name {
  1619. width: 100%;
  1620. height: 2.5rem;
  1621. font-size: 1rem;
  1622. line-height: 2.5rem;
  1623. margin-top: 0.1rem;
  1624. margin-bottom: 0.1rem;
  1625. }
  1626. .sixteen .human img {
  1627. width: 4rem;
  1628. height: 4rem;
  1629. }
  1630. .sixteen .cla {
  1631. width: 1.2rem;
  1632. height: 1.4rem;
  1633. top: -3.7rem;
  1634. left: 3rem;
  1635. font-size: 0.15rem;
  1636. }
  1637. .sixteen .lcla span {
  1638. font-size: 1rem;
  1639. top: -3.5rem;
  1640. float: left;
  1641. left: 5rem;
  1642. }
  1643. .sixteen .cla em {
  1644. font-size: 3rem;
  1645. left: 3rem;
  1646. }
  1647. .sixteen .lhj span {
  1648. width: 1rem;
  1649. height: 1.8rem;
  1650. top: -4rem;
  1651. left: 11rem;
  1652. font-size: 3rem;
  1653. }
  1654. .sixteen .rhj img {
  1655. width: 1rem;
  1656. top: -4rem;
  1657. right: 0.5rem;
  1658. }
  1659. .sixteen .topLi {
  1660. height: 8rem;
  1661. }
  1662. .sixteen .bottomLi {
  1663. width: 98%;
  1664. font-size: 1.3rem;
  1665. margin-top: -0.05rem;
  1666. text-align: center;
  1667. }
  1668. .sixteen .bottomLi img {
  1669. width: 1.2rem;
  1670. height: 1.2rem;
  1671. margin-top: 0.25rem;
  1672. }
  1673. .sixteen .bottomLi span {
  1674. line-height: 2.2rem;
  1675. text-indent: 0.1rem;
  1676. }
  1677. .sixteen .bottomLi .btcla {
  1678. width: 30%;
  1679. }
  1680. .sixteen .bottomLi .btck {
  1681. width: 32%;
  1682. padding-left: 3%;
  1683. }
  1684. .sixteen .bottomLi .step {
  1685. width: 27%;
  1686. padding-right: 2%;
  1687. /*text-align: center;*/
  1688. }
  1689. .sixteen .cla em.plus {
  1690. position: relative;
  1691. left: -0.2rem;
  1692. }
  1693. .sixteen .lhj span.plus {
  1694. position: relative;
  1695. left: 0.9rem;
  1696. }
  1697. .sixteen .btck img {
  1698. width: 1.6rem;
  1699. height: 1.6rem;
  1700. }
  1701. .sixteen /deep/ .powerContainer img {
  1702. width: 1.2rem;
  1703. margin-left: 1rem;
  1704. }
  1705. /*twenty*/
  1706. .twenty {
  1707. width: 20rem;
  1708. height: 8rem;
  1709. float: left;
  1710. overflow: hidden;
  1711. margin-bottom: 0.1rem;
  1712. }
  1713. .twenty .centerLi {
  1714. width: 98%;
  1715. height: 100%;
  1716. overflow: hidden;
  1717. display: block;
  1718. margin: 0 auto;
  1719. /*border: 1px solid #fff;*/
  1720. float: none;
  1721. }
  1722. .twenty .human .name {
  1723. width: 100%;
  1724. height: 2.1rem;
  1725. font-size: 1rem;
  1726. line-height: 2rem;
  1727. margin-bottom: 0.1rem;
  1728. }
  1729. .twenty .human img {
  1730. width: 3.5rem;
  1731. height: 3.5rem;
  1732. margin-top: 0.15rem;
  1733. }
  1734. .twenty .cla {
  1735. width: 0.95rem;
  1736. height: 1.4rem;
  1737. top: -3.5rem;
  1738. left: 3rem;
  1739. font-size: 0.8rem;
  1740. }
  1741. .twenty .lcla span {
  1742. font-size: 1rem;
  1743. top: -3.5rem;
  1744. float: left;
  1745. left: 5.2rem;
  1746. }
  1747. .twenty .cla em {
  1748. font-size: 3rem;
  1749. left: 3rem;
  1750. }
  1751. .twenty .lhj span {
  1752. width: 0.85rem;
  1753. height: 2rem;
  1754. top: -3.5rem;
  1755. left: 11rem;
  1756. font-size: 3rem;
  1757. }
  1758. .twenty .rhj img {
  1759. width: 1rem;
  1760. top: -3.5rem;
  1761. right: 0.5rem;
  1762. }
  1763. .twenty .topLi {
  1764. height: 6rem;
  1765. }
  1766. .twenty .bottomLi {
  1767. width: 98%;
  1768. font-size: 1rem;
  1769. margin-top: -0.1rem;
  1770. text-align: center;
  1771. }
  1772. .twenty .bottomLi img {
  1773. width: 1.2rem;
  1774. height: 1.2rem;
  1775. margin-top: 0.8rem;
  1776. }
  1777. .twenty .bottomLi span {
  1778. line-height: 3rem;
  1779. text-indent: 0.05rem;
  1780. }
  1781. .twenty .bottomLi .btcla {
  1782. width: 30%;
  1783. }
  1784. .twenty .bottomLi .btck {
  1785. width: 32%;
  1786. padding-left: 3%;
  1787. }
  1788. .twenty .bottomLi .step {
  1789. width: 28%;
  1790. padding-right: 2%;
  1791. }
  1792. .twenty .cla em.plus {
  1793. position: relative;
  1794. left: -0.2rem;
  1795. }
  1796. .twenty .lhj span.plus {
  1797. position: relative;
  1798. left: 3.2rem;
  1799. }
  1800. .twenty /deep/ .powerContainer img {
  1801. width: 1rem;
  1802. margin-left: 1.5rem;
  1803. }
  1804. .bigUserList {
  1805. min-height: 58rem;
  1806. }
  1807. /*twentyFour*/
  1808. .twentyFour {
  1809. width: 20rem;
  1810. height: 9rem;
  1811. float: left;
  1812. overflow: hidden;
  1813. margin-bottom: 0.1rem;
  1814. }
  1815. .twentyFour .centerLi {
  1816. width: 96%;
  1817. height: 100%;
  1818. overflow: hidden;
  1819. display: block;
  1820. margin: 0 auto;
  1821. /*border: 1px solid #fff;*/
  1822. /*border: 0.03rem solid rgba(255,255,255,0.1);*/
  1823. /*box-shadow:inset 0 0 6px rgba(0,0,0,0.4);*/
  1824. float: none;
  1825. }
  1826. .twentyFour .human .name {
  1827. width: 100%;
  1828. height: 1.6rem;
  1829. font-size: 1rem;
  1830. line-height: 1.6rem;
  1831. }
  1832. .twentyFour .human img {
  1833. width: 5rem;
  1834. height: 5rem;
  1835. margin-top: 0.05rem;
  1836. }
  1837. .twentyFour .cla {
  1838. width: 0.9rem;
  1839. height: 1.4rem;
  1840. top: -4rem;
  1841. left: 2.2rem;
  1842. font-size: 1rem;
  1843. }
  1844. .twentyFour .lcla span {
  1845. font-size: 0.2rem;
  1846. top: -4rem;
  1847. float: left;
  1848. left: 4.5rem;
  1849. }
  1850. .twentyFour .cla em {
  1851. font-size: 3rem;
  1852. left: 5rem;
  1853. }
  1854. .twentyFour .lhj span {
  1855. width: 0.75rem;
  1856. height: 2rem;
  1857. top: -4rem;
  1858. left: 11rem;
  1859. font-size: 3rem;
  1860. }
  1861. .twentyFour .rhj img {
  1862. width: 1rem;
  1863. top: -4rem;
  1864. right: 0.5rem;
  1865. }
  1866. .twentyFour .topLi {
  1867. height: 7.5rem;
  1868. }
  1869. .twentyFour .bottomLi {
  1870. width: 98%;
  1871. font-size: 1.2rem;
  1872. margin-top: 0rem;
  1873. text-align: center;
  1874. }
  1875. .twentyFour .bottomLi img {
  1876. width: 1rem;
  1877. height: 1rem;
  1878. margin-top: 0.15rem;
  1879. }
  1880. .twentyFour .bottomLi span {
  1881. line-height: 1.4rem;
  1882. text-indent: 0.05rem;
  1883. }
  1884. .twentyFour .bottomLi .btcla {
  1885. width: 30%;
  1886. }
  1887. .twentyFour .bottomLi .btck {
  1888. width: 32%;
  1889. padding-left: 2%;
  1890. }
  1891. .twentyFour .bottomLi .step {
  1892. width: 28%;
  1893. padding-right: 0%;
  1894. }
  1895. .twentyFour .cla em.plus {
  1896. position: relative;
  1897. left: -0.2rem;
  1898. }
  1899. .twentyFour .lhj span.plus {
  1900. position: relative;
  1901. left: 3.2rem;
  1902. line-height: 0.45rem;
  1903. }
  1904. .twentyFour .btck img {
  1905. width: 1.3rem;
  1906. height: 1.3rem;
  1907. margin-top: 0.12rem;
  1908. }
  1909. .twentyFour .bottomLi .step img {
  1910. margin-top: 0.16rem;
  1911. }
  1912. .twentyFour /deep/ .powerContainer img {
  1913. width: 1rem;
  1914. margin-left: 1.6rem;
  1915. }
  1916. /*生日*/
  1917. .birth {
  1918. position: relative;
  1919. top: -11rem;
  1920. width: 40%;
  1921. height: 1px;
  1922. display: block;
  1923. margin: 0 auto;
  1924. }
  1925. .birth img.birthCrow {
  1926. position: relative;
  1927. top: -0.1rem;
  1928. width: 4rem;
  1929. height: 2rem;
  1930. overflow: hidden;
  1931. display: block;
  1932. margin: 0 auto;
  1933. border: none;
  1934. }
  1935. .birth img.birthText {
  1936. position: relative;
  1937. top: 6rem;
  1938. width: 5rem;
  1939. height: 3rem;
  1940. overflow: hidden;
  1941. display: block;
  1942. margin: 0 auto;
  1943. border: none;
  1944. }
  1945. .two .birth img.birthCrow {
  1946. top: -1rem;
  1947. }
  1948. .three .birth img.birthCrow {
  1949. top: 1rem;
  1950. }
  1951. .six .birth {
  1952. top: -8rem;
  1953. }
  1954. .six .birth img.birthCrow {
  1955. width: 4rem;
  1956. height: 2rem;
  1957. top: 0rem;
  1958. }
  1959. .six .birth img.birthText {
  1960. top: 4rem;
  1961. width: 4rem;
  1962. height: 2rem;
  1963. }
  1964. .nine .birth {
  1965. top: -8rem;
  1966. }
  1967. .nine .birth img.birthCrow {
  1968. width: 3rem;
  1969. height: 1.5rem;
  1970. top: 1.6rem;
  1971. }
  1972. .nine .birth img.birthText {
  1973. top: 4.5rem;
  1974. width: 4rem;
  1975. height: 2rem;
  1976. }
  1977. .ten .birth {
  1978. top: -8.5rem;
  1979. }
  1980. .ten .birth img.birthCrow {
  1981. width: 4rem;
  1982. height: 2rem;
  1983. top: 1.6rem;
  1984. }
  1985. .ten .birth img.birthText {
  1986. top: 5rem;
  1987. width: 4rem;
  1988. height: 2rem;
  1989. }
  1990. .twelve .birth {
  1991. top: -8rem;
  1992. }
  1993. .twelve .birth img.birthCrow {
  1994. width: 3rem;
  1995. height: 1.5rem;
  1996. top: 2rem;
  1997. }
  1998. .twelve .birth img.birthText {
  1999. top: 5rem;
  2000. width: 3rem;
  2001. height: 1.6rem;
  2002. }
  2003. .sixteen .birth {
  2004. top: -7rem;
  2005. }
  2006. .sixteen .birth img.birthCrow {
  2007. width: 2rem;
  2008. height: 0.8rem;
  2009. top: 2.5rem;
  2010. }
  2011. .sixteen .birth img.birthText {
  2012. top: 4.5rem;
  2013. width: 3rem;
  2014. height: 1.6rem;
  2015. }
  2016. .twenty .birth {
  2017. top: -6rem;
  2018. }
  2019. .twenty .birth img.birthCrow {
  2020. width: 2rem;
  2021. height: 0.8rem;
  2022. top: 2.1rem;
  2023. }
  2024. .twenty .birth img.birthText {
  2025. top: 4.45rem;
  2026. width: 2rem;
  2027. height: 0.8rem;
  2028. }
  2029. .twentyFour .birth {
  2030. top: -8rem;
  2031. }
  2032. .twentyFour .birth img.birthCrow {
  2033. width: 2.5rem;
  2034. height: 1rem;
  2035. top: 2.4rem;
  2036. }
  2037. .twentyFour .birth img.birthText {
  2038. top: 5.5rem;
  2039. width: 3rem;
  2040. height: 1.7rem;
  2041. }
  2042. /*isPrivate*/
  2043. .isPrivate {
  2044. position: relative;
  2045. float: right;
  2046. top: -10rem;
  2047. width: 75%;
  2048. height: 1px;
  2049. display: block;
  2050. margin: 0 auto;
  2051. overflow: visible;
  2052. }
  2053. .isPrivate i {
  2054. overflow: hidden;
  2055. display: block;
  2056. margin: 0 auto;
  2057. margin-top: 0.1rem;
  2058. width: 3rem !important;
  2059. height: 3rem !important;
  2060. border: none !important;
  2061. background: url("../../static/img/privateSign.svg");
  2062. background-size: 100% 100%;
  2063. background-position: top center;
  2064. }
  2065. .two .isPrivate {
  2066. top: -11rem;
  2067. }
  2068. .three .isPrivate {
  2069. top: -10rem;
  2070. left: -0.1rem;
  2071. }
  2072. .six .isPrivate {
  2073. top: -8rem;
  2074. left: -1rem;
  2075. }
  2076. .six .isPrivate i {
  2077. width: 3.2rem !important;
  2078. height: 3.2rem !important;
  2079. }
  2080. .nine .isPrivate {
  2081. top: -7rem;
  2082. left: -1rem;
  2083. }
  2084. .nine .isPrivate i {
  2085. width: 3rem !important;
  2086. height: 3rem !important;
  2087. }
  2088. .ten .isPrivate {
  2089. top: -7rem;
  2090. }
  2091. .ten .isPrivate i {
  2092. width: 2.5rem !important;
  2093. height: 2.5rem !important;
  2094. }
  2095. .twelve .isPrivate {
  2096. top: -5.8rem;
  2097. }
  2098. .twelve .isPrivate i {
  2099. width: 2.1rem !important;
  2100. height: 2.1rem !important;
  2101. }
  2102. .sixteen .isPrivate {
  2103. top: -4.5rem;
  2104. left: -0.1rem;
  2105. }
  2106. .sixteen .isPrivate i {
  2107. width: 2rem !important;
  2108. height: 2rem !important;
  2109. }
  2110. .twenty .isPrivate {
  2111. top: -4rem;
  2112. left: -0.5rem;
  2113. }
  2114. .twenty .isPrivate i {
  2115. width: 1.5rem !important;
  2116. height: 1.5rem !important;
  2117. }
  2118. .twentyFour .isPrivate {
  2119. top: -5.5rem;
  2120. }
  2121. .twentyFour .isPrivate i {
  2122. width: 2rem !important;
  2123. height: 2rem !important;
  2124. }
  2125. .bottom {
  2126. position: relative;
  2127. left: 0;
  2128. right: 0;
  2129. bottom: 0;
  2130. }
  2131. /deep/ .el-dialog {
  2132. background-color: #028fe1;
  2133. background: url("../../static/img/bg/bg_1.png");
  2134. background-size: 100% 100%;
  2135. background-repeat: no-repeat;
  2136. color: #fff;
  2137. }
  2138. /deep/ .el-dialog__title {
  2139. color: #fff;
  2140. font-size: 2rem;
  2141. }
  2142. /deep/ .el-input__inner {
  2143. background-color: inherit;
  2144. color: #fff;
  2145. }
  2146. .el-select-dropdown__item {
  2147. padding-left: 10px !important;
  2148. }
  2149. .el-scrollbar {
  2150. padding-left: 10px !important;
  2151. }
  2152. .selected {
  2153. padding-left: 10px !important;
  2154. }
  2155. .room {
  2156. margin-left: 10px;
  2157. }
  2158. #regionSelect {
  2159. height: 25px;
  2160. line-height: 25px;
  2161. background-color: inherit;
  2162. color: #fff;
  2163. }
  2164. #regionSelect option {
  2165. color: #000;
  2166. }
  2167. /deep/ .el-dialog__body .el-col {
  2168. width: 50%;
  2169. }
  2170. </style>