Main.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065
  1. <template>
  2. <div class="container">
  3. <div class="lt">
  4. <div class="top">
  5. <ul>
  6. <li @click="goPage('member')">
  7. <img src="../assets/img/main/member.png" height="54" width="54"/>
  8. <div class="liRight">
  9. <h5>会员人数</h5>
  10. <span>{{ AllCount }}</span>
  11. </div>
  12. <div class="btLine">
  13. <em class="emlt">
  14. <i class="el-icon-caret-top"></i>
  15. 今日新增 {{ NowCount }}
  16. </em>
  17. <em class="emrt">
  18. <i class="el-icon-caret-top"></i>
  19. 昨日新增 {{ YesterdayCount }}
  20. </em>
  21. </div>
  22. </li>
  23. <li @click="goPage('record')">
  24. <img src="../assets/img/main/appoint.png" height="54" width="54"/>
  25. <div class="liRight">
  26. <h5>今日预约人数</h5>
  27. <span>{{ TodayOrderNum }}</span>
  28. </div>
  29. <div class="btLine">
  30. <em class="emlt">
  31. <i class="el-icon-caret-top"></i>
  32. 昨日预约 {{ YestodayOrderNum }}
  33. </em>
  34. <em class="emrt">
  35. <i class="el-icon-caret-top"></i>
  36. 较昨日新增 {{ TodayIncreaseNum }}
  37. </em>
  38. </div>
  39. </li>
  40. <li @click="goPage('lesson')">
  41. <img src="../assets/img/main/lesson.png" height="54" width="54"/>
  42. <div class="liRight">
  43. <h5>课程数量</h5>
  44. <span>{{ ClassNum }}</span>
  45. </div>
  46. <div class="btLine">
  47. <em class="emlt">
  48. <i class="el-icon-caret-top"></i>
  49. 已预约课程 {{ TodayOrderSttNum }}
  50. </em>
  51. </div>
  52. </li>
  53. </ul>
  54. </div>
  55. <div class="finish">
  56. <div class="title">
  57. <h5>下课管理</h5>
  58. <!-- <span>{{getNowDate}}</span>-->
  59. </div>
  60. <ul>
  61. <li v-for="c in PreFinishList">
  62. <div class="finListTitle" :style="{ background:c.ClassColor }">
  63. {{ c.ClassName }}
  64. </div>
  65. <div class="context">
  66. <div class="ctl">
  67. <span>上课时间:{{ c.BeginStr }} - {{ c.EndStr }}</span>
  68. <span>预约人数:{{ c.OrderNum }} 人</span>
  69. </div>
  70. <em>{{ c.BeginTime|parseDate }}</em>
  71. <el-button type="primary" plain @click="checkClassOverPrepare(c)">下课</el-button>
  72. </div>
  73. </li>
  74. <span class="tips" v-if="PreFinishList == 0">
  75. <img src="../assets/img/main/empty.jpg" height="116" width="92"/>
  76. <br>
  77. 暂无下课课程
  78. </span>
  79. </ul>
  80. </div>
  81. <div class="appoint">
  82. <div class="title">
  83. <h5>预约课程</h5>
  84. <span>{{ getNowDate }}</span>
  85. </div>
  86. <div class="appointCard">
  87. <el-card class="box-card" v-for="c in classList" @click.native="goLesson">
  88. <div class="cardTitle ">
  89. {{ c.ClassName }}
  90. </div>
  91. <span>
  92. {{ c.BeginStr }}
  93. </span>
  94. <em>最大预约人数 <i>{{ c.OrderToplimit }}</i></em>
  95. <em>已预约人数 <i>{{ c.OrderNum }}</i></em>
  96. <em>预约状态
  97. <s class="blue" v-if="c.WxOrder > 0">可预约</s>
  98. <s class="red" v-if="c.WxOrder == 0">不可预约</s>
  99. </em>
  100. </el-card>
  101. <span class="tips" v-if="classList == 0">
  102. <img src="../assets/img/main/empty.jpg" height="116" width="92"/>
  103. <br>
  104. 暂无预约课程,请先添加
  105. <router-link to="/lessonManage">课程表</router-link>
  106. </span>
  107. </div>
  108. </div>
  109. </div>
  110. <div class="rt">
  111. <div class="rtContext">
  112. <div class="rtTitle">
  113. <h5>最新预约</h5>
  114. <span @click="goPage('appoint','second')">查看全部</span>
  115. </div>
  116. <ul>
  117. <!-- TodayVipOrder-->
  118. <li v-for="as in appointList" @click="goAppointDetail(as.UserName)">
  119. <div class="asTitle">
  120. <img src="../assets/img/main/Oval.png" alt="">
  121. <span>
  122. {{ as.UserName }}
  123. {{ as.Phone }} &nbsp; &nbsp; &nbsp;
  124. <em>预约时间: {{ as.Base.CreatedAt |parseDate }}</em>
  125. </span>
  126. </div>
  127. <div class="asContent">
  128. <span>上课时间:<em>{{ as.CurrentDate.substr(5, 6) }} {{ as.BeginStr }}</em></span>
  129. <span>预约状态:
  130. <em v-if="as.Status == 1" class="green">已预约</em>
  131. <em v-if="as.Status == 2" class="red">已取消</em>
  132. <em v-if="as.Status == 3" class="yellow">预约未到</em>
  133. <em v-if="as.Status == 4">已完成</em>
  134. </span>
  135. <span>预约课程:<s class="blue"
  136. :style="{ background:as.ClassColor }"> {{ as.ClassName }}</s></span>
  137. <span>剩余课时:<em :class="[{'red':as.RemainHour == 0}]">{{ as.RemainHour }}课时</em></span>
  138. </div>
  139. </li>
  140. <span class="tips middleTips" v-if="appointList == 0">
  141. <img src="../assets/img/main/empty.jpg" height="116" width="92"/>
  142. <br>
  143. 暂无预约,可进入
  144. <router-link to="/appoint">预约管理</router-link>
  145. </span>
  146. </ul>
  147. </div>
  148. </div>
  149. </div>
  150. </template>
  151. <script>
  152. import {
  153. ClassPreFinishListQuery,
  154. WaitingBeginClassList,
  155. ClassOngoingList,
  156. OrderStatistics,
  157. VipUserStatistics,
  158. ClassStatistics,
  159. ClassOverPrepare,
  160. VipUserOrderQuery,
  161. LastOrderQuery,
  162. } from "../api/getApiRes";
  163. let qs = require('qs');
  164. export default {
  165. data() {
  166. return {
  167. editableTabsValue: '1',
  168. getNowDate: getNowDate(),
  169. classList: [],
  170. PreFinishList: [],
  171. appointList: [],
  172. TodayClassOrder: [],
  173. TodayVipOrder: [],
  174. AllCount: 0,
  175. YesterdayCount: 0,
  176. YestodayOrderNum: 0,
  177. NowCount: 0,
  178. CountAdd: 0,
  179. TodayIncreaseNum: 0,
  180. TodayOrderNum: 0,
  181. ClassNum: 0,
  182. TodayOrderSttNum: 0,
  183. }
  184. },
  185. mounted() {
  186. let that = this;
  187. // 下课管理
  188. this.getVipUserStatistics();
  189. this.getClassStatistics();
  190. this.ClassQuery();
  191. this.getVipUserOrderQuery();
  192. // 预约统计
  193. this.getOrderStatistics();
  194. this.getWaitingBeginClassList();
  195. this.timer = setInterval(() => {
  196. that.getVipUserOrderQuery();
  197. this.getVipUserStatistics();
  198. this.getClassStatistics();
  199. this.ClassQuery();
  200. this.getOrderStatistics();
  201. this.getWaitingBeginClassList();
  202. }, 10000);
  203. },
  204. destroyed() {
  205. clearInterval(this.timer);//页面销毁时清除定时器
  206. },
  207. methods: {
  208. goLesson() {
  209. this.$router.push({
  210. path: '/appoint',
  211. })
  212. },
  213. goAppointDetail(name) {
  214. this.$router.push({
  215. path: '/appoint',
  216. query: {
  217. page: 'second',
  218. name: name
  219. }
  220. })
  221. },
  222. goPage(url, page) {
  223. this.$router.push({
  224. path: '/' + url,
  225. query: {
  226. page: page
  227. }
  228. })
  229. },
  230. // 会员统计
  231. getVipUserStatistics() {
  232. let that = this;
  233. let param = {
  234. token: localStorage.token,
  235. };
  236. let postdata = qs.stringify(param);
  237. VipUserStatistics(postdata).then(res => {
  238. let json = res;
  239. if (json.Code == 0) {
  240. that.AllCount = json.Rs.AllCount;
  241. that.YesterdayCount = json.Rs.YesterdayCount;
  242. that.NowCount = json.Rs.NowCount;
  243. that.CountAdd = json.Rs.CountAdd;
  244. } else {
  245. if (json.Code == 1010) {
  246. that.$message.error(json.Memo);
  247. that.$router.push({path: '/login', query: {status: 1}});
  248. return false
  249. } else {
  250. that.$message.error(json.Memo);
  251. }
  252. }
  253. })
  254. },
  255. // 课程统计
  256. getClassStatistics() {
  257. let that = this;
  258. let param = {
  259. token: localStorage.token,
  260. };
  261. let postdata = qs.stringify(param);
  262. ClassStatistics(postdata).then(res => {
  263. let json = res;
  264. if (json.Code == 0) {
  265. that.ClassNum = json.Rs.ClassNum;
  266. that.TodayOrderSttNum = json.Rs.TodayOrderSttNum;
  267. } else {
  268. that.$message.error(json.Memo);
  269. }
  270. })
  271. },
  272. getOrderStatistics() {
  273. let that = this;
  274. that.loading = true;
  275. let param = {
  276. token: localStorage.token,
  277. };
  278. let postdata = qs.stringify(param);
  279. OrderStatistics(postdata).then(res => {
  280. let json = res;
  281. if (json.Code == 0) {
  282. that.loading = false;
  283. if (json.Rs) {
  284. that.TodayIncreaseNum = json.Rs.TodayIncreaseNum;
  285. that.TodayOrderNum = json.Rs.TodayOrderNum;
  286. that.YestodayOrderNum = json.Rs.YestodayOrderNum;
  287. }
  288. } else {
  289. that.$message.error(json.Memo);
  290. }
  291. })
  292. },
  293. checkClassOverPrepare(row) {
  294. let that = this;
  295. let param = {
  296. token: localStorage.token,
  297. stdId: row.StdId,
  298. };
  299. let postdata = qs.stringify(param);
  300. ClassOverPrepare(postdata).then(res => {
  301. let json = res;
  302. if (json.Code == 0) {
  303. that.goFinish(row);
  304. } else {
  305. that.$message.error(json.Memo);
  306. }
  307. })
  308. },
  309. goFinish(row) {
  310. this.$router.push({
  311. path: '/finishDetail', query: {
  312. id: row.StdId,
  313. classId: row.ClassId,
  314. ClassName: row.ClassName,
  315. BeginTime: row.BeginTime,
  316. }
  317. });
  318. },
  319. getWaitingBeginClassList() {
  320. let that = this;
  321. that.loading = true;
  322. let param = {
  323. token: localStorage.token,
  324. };
  325. let postdata = qs.stringify(param);
  326. WaitingBeginClassList(postdata).then(res => {
  327. let json = res;
  328. if (json.Code == 0) {
  329. that.loading = false;
  330. that.classList = json.Rs;
  331. } else {
  332. that.$message.error(json.Memo);
  333. }
  334. })
  335. },
  336. // 下课管理
  337. ClassQuery() {
  338. let that = this;
  339. that.loading = true;
  340. let param = {
  341. token: localStorage.token,
  342. };
  343. let postdata = qs.stringify(param);
  344. ClassOngoingList(postdata).then(res => {
  345. let json = res;
  346. if (json.Code == 0) {
  347. that.loading = false;
  348. if (json.Rs) {
  349. that.PreFinishList = json.Rs;
  350. }
  351. } else {
  352. that.$message.error(json.Memo);
  353. }
  354. })
  355. },
  356. // 最新预约
  357. getVipUserOrderQuery() {
  358. let that = this;
  359. that.loading = true;
  360. let param = {
  361. token: localStorage.token,
  362. classId: 0,
  363. orderDate: globalcurrent(),
  364. stdId: 0,
  365. };
  366. let postdata = qs.stringify(param);
  367. // VipUserOrderQuery(postdata).then(res => {
  368. LastOrderQuery(postdata).then(res => {
  369. let json = res;
  370. if (json.Code == 0) {
  371. that.loading = false;
  372. if (json.Rs) {
  373. that.appointList = json.Rs;
  374. }
  375. } else {
  376. that.$message.error(json.Memo);
  377. }
  378. })
  379. }
  380. },
  381. filters: {
  382. parseDate: function (value) {
  383. if (!value) {
  384. return false
  385. } else {
  386. let res = nonTfmtDatetoLength(value, 10).substr(5, 10);
  387. return res;
  388. }
  389. },
  390. },
  391. watch: {
  392. $route(to) {
  393. if (to.name == 'Main') {
  394. this.getVipUserStatistics();
  395. this.getClassStatistics();
  396. this.ClassQuery();
  397. this.getVipUserOrderQuery();
  398. this.getOrderStatistics();
  399. this.getWaitingBeginClassList();
  400. } else {
  401. clearInterval(this.timer);//页面销毁时清除定时器
  402. }
  403. },
  404. },
  405. }
  406. </script>
  407. <style scoped>
  408. ul, li {
  409. list-style: none;
  410. margin: 0;
  411. padding: 0;
  412. }
  413. em {
  414. font-style: normal;
  415. }
  416. .container {
  417. width: 100%;
  418. height: 760px;
  419. overflow: hidden;
  420. overflow-y: scroll;
  421. display: block;
  422. margin: 0 auto;
  423. padding-bottom: 60px;
  424. }
  425. .container>.lt {
  426. width: 1173px;
  427. float: left;
  428. margin-top: 0px;
  429. }
  430. .container>.rt {
  431. /*width: 436px;*/
  432. width: 26%;
  433. height: 100%;
  434. float: right;
  435. }
  436. .lt .top {
  437. width: 100%;
  438. overflow: hidden;
  439. display: block;
  440. margin: 0 auto;
  441. }
  442. .lt .top li {
  443. width: 377px;
  444. height: 140px;
  445. float: left;
  446. background: #fff;
  447. border-radius: 12px;
  448. margin-right: 20px;
  449. cursor: pointer;
  450. }
  451. .lt .top li:nth-child(3) {
  452. margin-right: 0;
  453. }
  454. .top li img {
  455. float: left;
  456. margin-top: 17px;
  457. margin-left: 30px;
  458. margin-right: 24px;
  459. }
  460. .top li .liRight {
  461. width: 200px;
  462. float: left;
  463. margin-top: 17px;
  464. }
  465. .top .liRight h5 {
  466. margin: 0;
  467. padding: 0;
  468. text-align: left;
  469. }
  470. .top .liRight span {
  471. width: 100%;
  472. overflow: hidden;
  473. display: block;
  474. margin: 0 auto;
  475. text-align: left;
  476. font-size: 26px;
  477. font-family: Arial;
  478. margin-top: 7px;
  479. margin-bottom: 20px;
  480. }
  481. .btLine {
  482. width: 84%;
  483. overflow: hidden;
  484. display: block;
  485. margin: 0 auto;
  486. border-top: 1px solid #F0F2F5;
  487. padding-top: 17px;
  488. }
  489. .btLine em {
  490. font-size: 14px;
  491. }
  492. .btLine .emlt {
  493. width: 50%;
  494. float: left;
  495. text-align: left;
  496. }
  497. .btLine i {
  498. font-size: 18px;
  499. color: #BDBDBD;
  500. }
  501. .emlt i {
  502. float: left;
  503. }
  504. .finish {
  505. width: 100%;
  506. min-height: 358px;
  507. overflow: hidden;
  508. display: block;
  509. margin: 0 auto;
  510. background: #fff;
  511. margin-top: 15px;
  512. border-radius: 12px;
  513. padding-top: 15px;
  514. padding-bottom: 0px;
  515. }
  516. .finish .title {
  517. overflow: hidden;
  518. display: block;
  519. margin: 0 auto;
  520. padding-left: 30px;
  521. }
  522. .finish .title h5 {
  523. margin: 0;
  524. float: left;
  525. font-size: 18px;
  526. }
  527. .finish .title span {
  528. float: right;
  529. margin-right: 43px;
  530. font-size: 14px;
  531. color: #717171;
  532. }
  533. .finish ul {
  534. overflow: hidden;
  535. display: block;
  536. margin: 0 auto;
  537. padding-left: 30px;
  538. padding-right: 30px;
  539. margin: 0 auto;
  540. margin-top: 10px;
  541. }
  542. .finish ul li {
  543. width: 347px;
  544. height: 149px;
  545. overflow: hidden;
  546. float: left;
  547. margin-bottom: 14px;
  548. }
  549. .finish ul li:nth-child(2) {
  550. margin-left: 24px;
  551. margin-right: 24px;
  552. }
  553. .finish ul li:nth-child(5) {
  554. margin-left: 24px;
  555. margin-right: 24px;
  556. }
  557. .finish li .finListTitle {
  558. width: 100%;
  559. height: 35px;
  560. line-height: 35px;
  561. overflow: hidden;
  562. display: block;
  563. margin: 0 auto;
  564. background-color: #3799FF;
  565. border-top-left-radius: 7px;
  566. border-top-right-radius: 7px;
  567. color: #000;
  568. }
  569. .finish li .context {
  570. width: 344px;
  571. overflow: hidden;
  572. display: block;
  573. margin: 0 auto;
  574. border: 1px solid #E8E8E8;
  575. border-top: none;
  576. padding-top: 16px;
  577. padding-bottom: 16px;
  578. border-bottom-left-radius: 7px;
  579. border-bottom-right-radius: 7px;
  580. }
  581. .finish .context em {
  582. width: 85px;
  583. overflow: hidden;
  584. display: block;
  585. margin: 0 auto;
  586. height: 40px;
  587. line-height: 30px;
  588. color: #BDBDBD;
  589. }
  590. .context .ctl {
  591. width: 211px;
  592. float: left;
  593. padding-left: 16px;
  594. margin-right: 20px;
  595. }
  596. .ctl span {
  597. width: 100%;
  598. height: 30px;
  599. line-height: 30px;
  600. overflow: hidden;
  601. display: block;
  602. margin: 0 auto;
  603. background-color: #F8F8F8;
  604. color: #404040;
  605. font-size: 14px;
  606. text-align: left;
  607. padding-left: 20px;
  608. margin-bottom: 15px;
  609. }
  610. .ctl span:nth-child(2) {
  611. margin-bottom: 0px;
  612. }
  613. /deep/ .el-button--primary.is-plain {
  614. background-color: #fff;
  615. }
  616. /deep/ .el-button--primary.is-plain:hover {
  617. color: #005EA2 !important;
  618. }
  619. .blue {
  620. color: #3799FF;
  621. }
  622. .appoint {
  623. width: 100%;
  624. overflow: hidden;
  625. display: block;
  626. margin: 0 auto;
  627. background: #fff;
  628. margin-top: 15px;
  629. border-radius: 12px;
  630. padding-top: 15px;
  631. padding-bottom: 1px;
  632. }
  633. .appoint .title {
  634. overflow: hidden;
  635. display: block;
  636. margin: 0 auto;
  637. padding-left: 30px;
  638. }
  639. .appoint .title h5 {
  640. margin: 0;
  641. float: left;
  642. font-size: 18px;
  643. }
  644. .appoint .title span {
  645. float: right;
  646. margin-right: 43px;
  647. font-size: 14px;
  648. color: #717171;
  649. }
  650. .appoint .appointCard {
  651. min-height: 195px;
  652. overflow: hidden;
  653. display: block;
  654. margin: 0 auto;
  655. padding-top: 25px;
  656. padding-bottom: 25px;
  657. padding-left: 30px;
  658. padding-right: 30px;
  659. }
  660. /deep/ .el-card {
  661. width: 150px;
  662. float: left;
  663. margin-right: 31px;
  664. padding: 0;
  665. border-radius: 12px;
  666. }
  667. /deep/ .el-card:nth-child(last) {
  668. margin-right: 0;
  669. }
  670. /deep/ .el-card__body {
  671. padding: 0;
  672. }
  673. .cardTitle {
  674. width: 100%;
  675. overflow: hidden;
  676. display: block;
  677. margin: 0 auto;
  678. height: 40px;
  679. line-height: 40px;
  680. background: #F0F2F5;
  681. }
  682. .appointCard span {
  683. width: 100%;
  684. overflow: hidden;
  685. display: block;
  686. margin: 0 auto;
  687. color: #777777;
  688. font-family: Arial;
  689. margin-top: 10px;
  690. margin-bottom: 10px;
  691. font-size: 16px;
  692. }
  693. .appointCard em {
  694. overflow: hidden;
  695. display: block;
  696. margin: 0 auto;
  697. font-size: 12px;
  698. margin-bottom: 14px;
  699. text-align: left;
  700. padding-left: 16px;
  701. padding-right: 16px;
  702. }
  703. .appointCard em i {
  704. float: right;
  705. color: #000000;
  706. padding-right: 3px;
  707. }
  708. .appointCard em s {
  709. /*width: 47px;*/
  710. height: 20px;
  711. line-height: 20px;
  712. text-align: center;
  713. font-style: normal;
  714. text-decoration: none;
  715. float: right;
  716. border-radius: 3px;
  717. padding: 0 3px;
  718. }
  719. .appointCard em s.blue {
  720. background-color: #E5F2FF;
  721. color: #3799FF;
  722. }
  723. .appointCard em s.red {
  724. background-color: #E5F2FF;
  725. color: rgb(204, 2, 2);
  726. }
  727. .rtContext {
  728. width: 100%;
  729. overflow: hidden;
  730. display: block;
  731. margin: 0 auto;
  732. margin-top: 0px;
  733. background: #fff;
  734. padding: 0;
  735. border-radius: 12px;
  736. min-height: 826px;
  737. background: #fff;
  738. }
  739. .rtContext .rtTitle {
  740. overflow: hidden;
  741. display: block;
  742. margin: 0 auto;
  743. padding: 10px 30px;
  744. }
  745. .rtTitle h5 {
  746. margin: 0;
  747. float: left;
  748. font-size: 18px;
  749. }
  750. .rtTitle span {
  751. float: right;
  752. font-size: 14px;
  753. color: #BDBDBD;
  754. cursor: pointer;
  755. }
  756. .rtContext ul {
  757. width: 100%;
  758. overflow: hidden;
  759. display: block;
  760. height: 100%;
  761. overflow: hidden;
  762. overflow-y: scroll;
  763. margin: 0 auto;
  764. padding-left: 30px;
  765. padding-right: 30px;
  766. }
  767. .rtContext li {
  768. width: 100%;
  769. overflow: hidden;
  770. display: block;
  771. margin: 0 auto;
  772. border-bottom: 1px solid #F0F2F5;
  773. padding-top: 30px;
  774. padding-bottom: 10px;
  775. cursor: pointer;
  776. }
  777. .asTitle {
  778. width: 100%;
  779. height: 30px;
  780. overflow: hidden;
  781. display: block;
  782. margin: 0 auto;
  783. text-align: left;
  784. line-height: 20px;
  785. color: #000000;
  786. font-size: 14px;
  787. }
  788. .asTitle img {
  789. float: left;
  790. margin-right: 5px;
  791. }
  792. .asTitle span {
  793. /*width: 26px;*/
  794. min-width: 300px;
  795. height: 30px;
  796. line-height: 26px;
  797. float: left;
  798. margin-right: 10px;
  799. }
  800. .asTitle em {
  801. float: right;
  802. text-align: right;
  803. }
  804. .asContent {
  805. width: 100%;
  806. overflow: hidden;
  807. display: block;
  808. margin: 0 auto;
  809. }
  810. .asContent span {
  811. width: 50%;
  812. float: left;
  813. font-size: 14px;
  814. color: #BDBDBD;
  815. margin-bottom: 10px;
  816. text-align: left;
  817. text-indent: 8px;
  818. }
  819. .asContent span em {
  820. color: #000;
  821. text-align: left;
  822. }
  823. .asContent span s {
  824. text-decoration: none;
  825. color: #000;
  826. border-radius: 250px;
  827. padding: 3px 5px;
  828. text-align: center;
  829. }
  830. .asContent span s.blue {
  831. background-color: #E5F2FF;
  832. }
  833. .box-card {
  834. cursor: pointer;
  835. }
  836. .box-card em {
  837. font-style: normal;
  838. }
  839. i {
  840. font-style: normal;
  841. }
  842. .asContent .green {
  843. color: #25CC42;
  844. }
  845. .asContent .red {
  846. color: red;
  847. }
  848. .asContent .yellow {
  849. color: #FFDD00;
  850. }
  851. /deep/ a {
  852. color: #03B1FF;
  853. }
  854. .tips {
  855. color: #333;
  856. font-size: 14px !important;
  857. overflow: hidden;
  858. display: block;
  859. margin: 0 auto;
  860. margin-top: 10px;
  861. line-height: 30px;
  862. }
  863. .middleTips {
  864. margin-top: 180px;
  865. }
  866. /*ipad only*/
  867. @media only screen and (max-width: 1366px) {
  868. .container {
  869. height: 600px;
  870. padding-top: 6px;
  871. }
  872. .container .lt {
  873. width: 80%;
  874. }
  875. .lt .top {
  876. width: 96%;
  877. }
  878. .lt .top li {
  879. width: 32%;
  880. margin-right: 2%;
  881. }
  882. .top li .liRight {
  883. width: 40%;
  884. }
  885. .btLine {
  886. width: 96%;
  887. }
  888. .btLine em {
  889. font-size: 12px;
  890. float: left;
  891. line-height: 22px;
  892. }
  893. .finish ul li {
  894. width: 30%;
  895. /*height: 159px;*/
  896. overflow: hidden;
  897. padding-bottom: 20px;
  898. }
  899. .finish li .context {
  900. width: 99%;
  901. overflow: hidden;
  902. display: block;
  903. margin: 0;
  904. padding: 0px;
  905. height: auto!important;
  906. padding-bottom: 5px;
  907. border-top-left-radius: 0;
  908. border-top-right-radius: 0;
  909. }
  910. .finish li .context .ctl {
  911. width: 100%;
  912. overflow: hidden;
  913. display: block;
  914. margin: 0;
  915. padding: 0;
  916. padding-top: 6px;
  917. margin-bottom: 3px;
  918. }
  919. .ctl span {
  920. width: 80%;
  921. padding: 0;
  922. font-size: 12px;
  923. text-align: center;
  924. }
  925. .finish {
  926. width: 97%;
  927. }
  928. .appoint {
  929. width: 97%;
  930. }
  931. .finish .context em {
  932. height: 30px;
  933. line-height: 40px;
  934. font-size: 12px;
  935. float: left;
  936. }
  937. .finish .context {
  938. height: auto!important;
  939. padding-bottom: 5px;
  940. }
  941. .el-main > .container {
  942. /*height: 772px;*/
  943. }
  944. .container .rt {
  945. width: 20%;
  946. }
  947. .rtTitle span {
  948. font-size: 12px;
  949. line-height: 30px;
  950. }
  951. .rtContext ul {
  952. padding: 2px!important;
  953. font-size: 12px;
  954. }
  955. .asTitle {
  956. width: 30px;
  957. float: left;
  958. }
  959. .asContent {
  960. width: 82%;
  961. }
  962. .asContent span {
  963. width: 100%;
  964. overflow: hidden;
  965. display: block;
  966. margin: 0 auto;
  967. font-size: 12px;
  968. height: 20px;
  969. }
  970. }
  971. </style>