... ... @@ -39,6 +39,9 @@ t9.5 -10.5t21.5 -4h37h67h81h80h64h36q23 0 34 12t2 38q-5 13 -9.5 30.5t-9.5 34.5q-
<glyph glyph-name="biaoqing-copy-copy-copy" unicode="&#58882;" d="M512-128c-282.713 0-512 229.287-512 512s229.287 512 512 512c282.713 0 512-229.287 512-512s-231.513-512-512-512zM512 851.478c-258.226 0-467.478-209.252-467.478-467.478s209.252-467.478 467.478-467.478 467.478 209.252 467.478 467.478c0 258.226-211.478 467.478-467.478 467.478zM801.391 341.704c0-160.278-129.113-289.391-289.391-289.391s-289.391 129.113-289.391 289.391h578.783zM616.626 546.504c0-31.965 25.913-57.878 57.878-57.878s57.878 25.913 57.878 57.878c0 31.965-25.913 57.878-57.878 57.878-31.965 0-57.878-25.913-57.878-57.878zM289.391 546.504c0-31.965 25.913-57.878 57.878-57.878s57.878 25.913 57.878 57.878c0 31.965-25.913 57.878-57.878 57.878-31.965 0-57.878-25.913-57.878-57.878z" horiz-adv-x="1024" />
<glyph glyph-name="weibo" unicode="&#59115;" d="M1012.49024 444.44672v-0.15872c-6.69696-20.6592-28.86144-31.98976-49.44896-25.28768a39.35232 39.35232 0 0 0-25.28768 49.58208l-0.06656 0.03072c20.53632 63.60064 7.51616 136.15616-40.31488 189.3632-47.89248 53.21216-118.5024 73.55392-183.7312 59.65824-21.2224-4.53632-42.13248 9.04704-46.63808 30.30016-4.5056 21.25312 9.02144 42.19392 30.23872 46.73024 91.70944 19.56352 191.11424-8.98048 258.46784-83.88096 67.35872-74.83904 85.51424-176.84992 56.7808-266.33728zM740.4288 591.65184v0.03072c-18.21696-3.97312-36.17792 7.7312-40.05888 26.0096-3.94752 18.30912 7.76192 36.37248 25.97888 40.25344 44.69248 9.5488 93.14304-4.32128 125.88544-40.7808 32.86528-36.49536 41.63072-86.1696 27.60704-129.77152a33.83296 33.83296 0 0 0-42.56256-21.84704c-17.78176 5.76-27.48416 24.91392-21.72416 42.69056h-0.06144c6.8864 21.34528 2.56512 45.63456-13.46048 63.47264-16.0256 17.8176-39.75168 24.54528-61.60384 19.9424zM770.47808 399.46752c-14.45888 4.352-24.35072 7.32672-16.77312 26.35264 16.3328 41.31328 18.02752 76.96384 0.31744 102.38464-33.31072 47.73376-124.45184 45.1328-228.8384 1.28 0 0.06144-32.79872-14.36672-24.41216 11.70432 16.05632 51.77344 13.6448 95.18592-11.36128 120.192-56.65792 56.87808-207.30368-2.11968-336.47616-131.64032C56.18688 432.68096 0 329.86112 0 240.90112c0-170.08128 217.50272-273.49504 430.27968-273.49504 278.91712 0 464.52736 162.50368 464.52736 291.58912 0 77.93664-65.54624 122.19392-124.32896 140.47232z m-339.6352-371.08736c-169.77408-16.83968-316.34944 60.15488-327.36768 171.96032-11.04896 111.73888 117.71904 216.03328 287.488 232.87296 169.8048 16.83968 316.35456-60.16 327.36768-171.904 11.01824-111.86688-117.6832-216.0896-287.488-232.92928zM447.80544 347.14112c-80.78336 21.08928-172.11904-19.28704-207.2064-90.6496-35.74272-72.86272-1.18784-153.68192 80.44032-180.10112 84.57728-27.35616 184.23296 14.52544 218.88 93.14816 34.18112 76.81024-8.47872 155.93984-92.11392 177.60256z m-61.68576-185.9328c-16.43008-26.2912-51.584-37.80608-78.06464-25.66144-26.10688 11.88864-33.83296 42.43968-17.40288 68.0448 16.21504 25.53856 50.20672 36.86912 76.49792 25.856 26.60352-11.392 35.08736-41.68704 18.9696-68.23936z" horiz-adv-x="1026" />
<glyph glyph-name="jushou" unicode="&#58883;" d="M833.92 350.784c-29.056 28.992-71.872 31.68-100.928 2.688l-83.072-83.136c-21.632-21.504-47.68-21.632-62.848-3.648-10.112 11.904-6.144 48.576-3.264 71.872l41.6 342.4c3.84 30.592-18.048 60.096-48.64 63.872-30.592 3.648-58.432-19.84-62.080-50.432l-46.016-268.928c-2.368-6.72-7.616-7.872-8.192 1.152l-15.552 349.568c0 30.84-25 55.84-55.84 55.84s-55.84-25-55.84-55.84l-1.088-352.192c0.256-4.096-3.264-5.248-3.84-0.576l-49.664 274.88c-5.44 30.336-34.56 52.224-64.896 46.72-30.336-5.44-50.432-36.224-44.992-66.56l44.224-321.664c0-5.76-1.856-9.088-4.608-1.792l-65.92 176.512c-10.304 29.056-42.24 45.952-71.296 35.648-29.056-10.368-44.224-43.968-33.92-73.024l115.648-377.92 1.92-6.144 0.256-0.768 0.064-0.256c33.128-99.424 125.335-169.842 233.99-169.856 75.3 0.6 144.539 26.090 200.010 68.635 57.776 34.533 249.2 240.229 249.2 240.229 28.992 29.248 24.576 73.728-4.416 102.72M833.92 350.784z" horiz-adv-x="1024" />
... ... @@ -156,6 +159,9 @@ t9.5 -10.5t21.5 -4h37h67h81h80h64h36q23 0 34 12t2 38q-5 13 -9.5 30.5t-9.5 34.5q-
<glyph glyph-name="shipinjinzhi-hover-XDY" unicode="&#58975;" d="M724.032 331.392v105.6c0 10.56 3.52 22.72 8.384 27.776l115.584 118.976c37.824 38.912 81.344 49.856 81.344 8.128v-415.424c0-41.664-43.52-30.784-81.344 8.128l-115.584 118.976c-4.864 4.992-8.384 17.216-8.384 27.84zM815.488 76.864a36.48 36.48 0 0 0-0.768-51.52 36.416 36.416 0 0 0-51.456-0.704L133.888 654.144a36.352 36.352 0 0 0 0.768 51.392 36.48 36.48 0 0 0 51.456 0.768l629.376-629.44zM94.656 554.24v-340.032a64 64 0 0 1 64-64h441.92L136.896 613.824a63.488 63.488 0 0 1-42.24-59.584zM669.376 554.24a64 64 0 0 1-64 64H311.424l357.952-357.952V554.24z" horiz-adv-x="1024" />
<glyph glyph-name="QQ" unicode="&#58885;" d="M971.465 227.341l-2.466 17.639-3.155 17.206-2.507 8.841-2.42 9.404-3.2 8.97-3.287 9.987-3.762 9.403-4.106 9.664-7.307 15.78-6.485 13.9-6.484 12.428-5.664 11.588-6.484 10.547-4.755 9.685-10.073 14.462-12.67 19.26-2.938 4.756-0.995 2.032v1.6l2.118 6.507 2.939 5.793 2.55 11.435 1.428 5.902v6.096l0.736 4.907v4.928l-0.736 5.663-0.821 4.627-1.86 9.381-2.42 9.122-2.205 8.366-3.458 8.129-3.891 6.787-3.071 6.376-3.414 6.075-5.362 8.95-1.988 3.176-0.606 2.767-2.463 17.359-1.6 11.436-1.816 14.158-2.81 14.635-4.41 16.774-2.506 9.403-1.991 7.956-2.766 9.251-3.113 9.836-3.113 9.122-3.978 9.814-8.127 18.958-4.8 8.971-5.794 10.29-5.446 8.818-5.447 9.987-7.697 9.253-6.483 8.971-7.912 9.252-8.041 8.387-8.13 8.106-9.641 8.41-5.057 3.025-4.799 4.194-10.376 7.37-12.018 7.978-12.28 7.22-12.666 6.506-13.835 5.945-12.97 5.642-13.534 4.929-14.784 4.042-13.533 3.61-14.397 3.156-13.618 3.329-14.699 1.6-14.398 1.75-14.352 1.881h-42.975l-14.57-0.843-27.28-3.783-13.834-2.313-13.705-2.615-12.97-3.178-12.97-4.193-12.062-4.195-12.061-4.041-12.106-5.945-11.414-4.778-10.117-5.793-10.549-6.507-9.728-6.788-9.597-7.651-7.911-7.112-12.408-11.695-10.29-10.873-9.857-10.55-9.037-10.721-8.473-10.982-7.436-10.7-7.22-10.7-3.371-4.777-3.113-5.793-6.745-10.139-5.361-10.117-4.755-9.553-4.152-10.118-4.064-9.25-3.372-8.691-3.112-9.251-3.157-8.54-4.194-15.477-3.070-14.895-1.685-12.45-1.73-10.722v-20.816l-2.94-3.2-2.68-4.346-2.118-3.89-1.816-4.193-2.29-9.123-2.509-8.388-0.82-7.5-0.563-5.513v-5.923l-5.794-8.409-4.107-8.387-3.112-8.085-2.292-7.24-1.771-6.94-1.687-6.527v-16.624l0.994-4.043 1.427-7.393 1.772-5.642-3.199-2.464-9.080-6.788-11.974-10.98-7.35-6.508-7.176-6.376-4.929-5.080-4.064-4.475-8.734-9.403-8.3-9.403-6.485-8.107-7.783-11.717-7.435-10.547-7.35-11.739-6.182-10.851-5.145-11.545-5.448-10.72-3.978-10.55-4.193-11.002-3.113-10.7-3.070-11.003-2.723-9.555-1.514-10.268-1.686-9.534-1.427-9.273-0.863-18.072v-24.296l0.863-7.394 2.293-12.581 0.82-5.534 1.514-5.619 1.859-5.32 1.73-3.759 2.766-6.96 2.119-1.428 1.296-2.94 1.644-0.69h1.685l7.22 0.69 7.35 1.901 6.183 2.466 6.485 4.194 5.922 3.89 5.361 5.102 5.794 5.318 4.885 5.492 4.669 6.225 4.237 5.621 3.978 4.667 2.464 5.361 4.843 8.82 1.513 3.61 0.864 2.161 0.431 2.465 1.126 2.032 0.864 0.432 1.644 0.866h1.037l0.432-0.866h0.821l0.823-0.432 2.722-11.997 2.94-9.685 3.934-10.16 3.978-9.12 3.33-9.081 5.144-7.954 3.76-8.388 4.239-7.695 4.884-6.657 3.718-6.4 9.857-11.844 8.604-10.55 8.3-8.215 8.172-7.393 7.090-5.793 10.55-9.382 4.237-2.075 1.425-1.988v-0.994l-0.993-0.909h-0.432l-2.119-0.692-7.912-0.605-7.35-0.994-6.182-0.866-6.485-1.425-5.664-1.773-5.62-1.73-4.928-2.637-3.89-2.422-4.974-1.6-3.112-2.593-3.33-2.032-3.588-2.895-4.497-5.621-1.685-2.638-2.075-2.29-2.854-5.925-1.555-4.93-1.86-4.926-0.39-4.324v-8.127l-0.821-4.020v-4.109l-0.994-4.020v-3.59l0.994-3.933 0.821-3.5 2.25-6.747 1.555-3.199 1.989-3.198 2.205-3.156 2.42-2.768 3.244-3.155 2.421-2.594 7.176-5.362 7.22-4.495 8.258-4.064 8.906-3.632 9.424-3.89 10.463-2.423 10.42-3.5 11.284-2.336 11.241-1.686 11.586-1.773 11.975-1.73 23.607-2.463 24.34-0.432h43.103l10.549 0.432 9.036 1.036 8.733 0.692 8.172 0.735 13.143 2.595 9.466 2.594 8.994 2.335 16.601 6.96 7.524 2.854 7.175 3.632 11.848 6.656 10.677 5.362 7.912 5.057 5.793 5.363 16.040-1.774 13.834-0.994h11.975l4.194-0.865 4.281-1.73 6.788-2.461 7.564-2.596 14.398-4.496 14.699-5.36 14.31-4.15 14.44-2.942 14.742-3.717 15.262-2.205 14.482-1.6 14.528-2.030 13.575-1.3 14.526-0.819h40.294l12.97 1.555 12.71 0.563 12.235 2.032 11.284 2.506 11.284 2.423 10.81 2.592 4.494 1.298 5.017 1.644 9.383 3.717 8.343 3.891 7.868 4.065 7.35 4.236 6.485 4.884 2.55 2.64 3.070 3.586 3.934 4.8 4.28 5.923 1.557 2.983 0.692 2.506 1.814 3.2 0.692 3.46v3.33l0.867 3.327-0.867 4.885-0.692 4.194-1.814 4.929-1.428 4.064-2.68 4.93-3.242 4.494-3.113 3.89-4.194 3.287-8.647 7.523-9.683 7.263-9.771 5.792-10.29 5.924-23.519 11.587-5.62 3.459-1.556 1.6-0.996 1.037 11.328 11.414 4.886 5.62 4.063 5.188 7.911 11.457 7.48 11.716 6.313 10.42 5.965 9.987 7.999 19.972 6.226 16.602 4.106 11.759 2.379 3.892 1.426 3.156 2.465 1.902h1.037l0.692-0.434 6.052-12.018 5.405-11.585 3.804-6.53 3.933-5.619 3.893-6.917 5.014-6.833 4.193-4.756 2.551-2.591 2.508-2.337 2.292-1.728 2.205-1.6 4.842-2.465 2.508-0.864h3.933l2.552 0.864 3.157 1.6 3.502 1.601 2.894 2.592 2.723 3.028 3.070 3.761 2.421 2.895 2.725 4.671 2.034 3.76 2.42 5.32 1.296 4.495 3.503 10.981 2.29 12.149 1.642 13.467 1.124 7.825v21.985z" horiz-adv-x="1024" />
<glyph glyph-name="jieshuketang" unicode="&#58976;" d="M609.024 73.6H175.36a36.992 36.992 0 0 0-37.056 36.736V657.664c0 20.224 16.64 36.672 37.056 36.672h431.552a32 32 0 0 1 0 64H175.36c-55.744 0-101.056-45.184-101.056-100.672v-547.328c0-55.552 45.312-100.736 101.056-100.736h433.664a32 32 0 0 1 0 64zM944.448 407.104l-174.336 174.272a32.64 32.64 0 1 1-46.272-46.272l117.952-117.952H453.248a33.28 33.28 0 0 1 0-66.432h388.608l-117.952-117.952a32.768 32.768 0 0 1 0-46.272 32.896 32.896 0 0 1 46.272 0l174.336 174.336a32.96 32.96 0 0 1-0.064 46.272z" horiz-adv-x="1024" />
... ... @@ -174,6 +180,9 @@ t9.5 -10.5t21.5 -4h37h67h81h80h64h36q23 0 34 12t2 38q-5 13 -9.5 30.5t-9.5 34.5q-
<glyph glyph-name="xiayibu" unicode="&#58989;" d="M215.296 820.288a35.008 35.008 0 0 1-49.536 0l-0.832-0.832a35.712 35.712 0 0 1 1.6-49.344l358.592-358.656a36.032 36.032 0 0 0 0-50.88l-358.592-358.592a35.776 35.776 0 0 1-2.368-48.512c12.8-14.528 34.88-16.064 49.344-3.328 0.576 0.512 1.28 1.024 1.792 1.6L624.64 361.088a35.072 35.072 0 0 1 0 49.408L215.296 820.288z m526.528 13.12a35.456 35.456 0 0 1-33.664-35.904v-822.208c0-19.136 14.784-35.392 33.664-35.904a35.2 35.2 0 0 1 36.288 33.792V798.464c0 19.2-15.68 35.008-35.008 35.008h-1.28v-0.064z" horiz-adv-x="1024" />
<glyph glyph-name="weixin" unicode="&#58910;" d="M690.665 605.417c11.584 0 23.024-0.851 34.404-2.122-30.91 143.967-184.816 250.915-360.507 250.915-196.401 0-357.302-133.871-357.302-303.862 0-98.124 53.525-178.701 142.989-241.196l-35.734-107.484 124.877 62.638c44.718-8.853 80.566-17.937 125.168-17.937 11.207 0 22.329 0.548 33.363 1.414-6.991 23.889-11.035 48.906-11.035 74.857 0.002 156.099 134.038 282.775 303.776 282.775zM498.538 702.286c26.896 0 44.718-17.693 44.718-44.583 0-26.779-17.822-44.715-44.718-44.715-26.779 0-53.643 17.937-53.643 44.715 0.001 26.892 26.865 44.583 53.643 44.583zM248.494 612.986c-26.78 0-53.817 17.937-53.817 44.715 0 26.892 27.038 44.583 53.817 44.583 26.778 0 44.601-17.693 44.601-44.583 0-26.778-17.823-44.715-44.601-44.715zM1016.739 326.944c0 142.841-142.93 259.279-303.484 259.279-169.999 0-303.89-116.439-303.89-259.279 0-143.099 133.891-259.276 303.89-259.276 35.588 0 71.495 8.985 107.228 17.937l97.985-53.669-26.866 89.285c71.727 53.801 125.136 125.148 125.136 205.723zM614.749 371.646c-17.794 0-35.761 17.692-35.761 35.745 0 17.807 17.968 35.732 35.761 35.732 27.011 0 44.718-17.925 44.718-35.732 0-18.053-17.708-35.745-44.718-35.745zM811.267 371.646c-17.68 0-35.501 17.692-35.501 35.745 0 17.807 17.822 35.732 35.501 35.732 26.779 0 44.716-17.925 44.716-35.732 0.001-18.053-17.937-35.745-44.716-35.745z" horiz-adv-x="1024" />
<glyph glyph-name="wendang1" unicode="&#58990;" d="M889.6 768.512H141.696c-38.656 0-70.08-31.488-70.08-70.144v-467.392c0-38.656 31.488-70.144 70.08-70.144h342.976v-99.456H368.384c-18.688 0-33.792-13.888-33.792-30.976s15.104-30.976 33.792-30.976h294.592c18.688 0 33.792 13.888 33.792 30.976s-15.104 30.976-33.792 30.976H546.688v99.456H889.6c38.656 0 70.144 31.424 70.144 70.144V698.432c0 38.592-31.424 70.08-70.144 70.08z m4.864-526.592a22.272 22.272 0 0 0-22.272-22.336H159.168a22.272 22.272 0 0 0-22.272 22.336V687.488c0 12.352 10.048 22.272 22.272 22.272h713.024c12.288 0 22.272-9.92 22.272-22.272v-445.568zM566.976 582.016c-13.184 10.624-23.936 2.88-23.936-15.872v-49.984h-2.176c-77.056 0-208.128-89.024-209.216-168.192 0-6.336 5.12-8.128 10.048 0 24.896 44.416 129.536 67.456 182.848 67.456h18.496v-52.736c0-15.744 11.648-26.496 24.896-15.872l121.856 97.792c13.184 10.56 13.184 27.904 0 38.528L566.976 582.016z" horiz-adv-x="1024" />
... ... @@ -228,6 +237,51 @@ t9.5 -10.5t21.5 -4h37h67h81h80h64h36q23 0 34 12t2 38q-5 13 -9.5 30.5t-9.5 34.5q-
<glyph glyph-name="fuwei2" unicode="&#59031;" d="M825.856 830.656H212.544a137.856 137.856 0 0 1-137.728-137.728v-613.376c0-75.968 61.76-137.728 137.728-137.728h613.312a137.92 137.92 0 0 1 137.728 137.728V692.864a137.856 137.856 0 0 1-137.728 137.792z m105.792-751.168c0-58.304-47.424-105.728-105.728-105.728H212.544a105.856 105.856 0 0 0-105.728 105.728V692.864c0 58.304 47.424 105.728 105.728 105.728h613.312c58.304 0 105.728-47.424 105.728-105.728v-613.376zM678.4 518.4a17.6 17.6 0 0 1-22.656 0 13.056 13.056 0 0 1 0-20.096l106.496-94.592H273.024L382.72 501.184a13.056 13.056 0 0 1 0 20.096 17.6 17.6 0 0 1-22.656 0L220.992 397.696a13.056 13.056 0 0 1 0-20.096l139.136-123.52c6.272-5.504 16.384-5.504 22.656 0s6.272 14.528 0 20.032L272.896 371.712h496l-113.152-100.48c-6.272-5.568-6.272-14.592 0-20.032s16.384-5.504 22.656 0l139.136 123.584a13.056 13.056 0 0 1 0 20.096L678.4 518.4z" horiz-adv-x="1024" />
<glyph glyph-name="shouye" unicode="&#59033;" d="M829.824 26.176c0-21.44-16.192-38.784-36.032-38.784H632.128c-19.84 0-36.032 17.344-36.032 38.784v80.512h-0.384a79.488 79.488 0 0 1-78.912 74.432h-9.408a79.36 79.36 0 0 1-78.912-74.432h-0.512v-80.512c0-21.44-16.064-38.784-35.904-38.784H230.272c-19.84 0-35.904 17.344-35.904 38.784V357.824h-37.376v-331.648c0-42.048 32.896-76.224 73.28-76.224h161.792c40.384 0 73.28 34.176 73.28 76.224v75.456a42.24 42.24 0 0 0 42.048 42.048h9.344a42.24 42.24 0 0 0 42.048-42.048v-75.456c0-42.048 32.832-76.224 73.344-76.224h161.664c40.448 0 73.344 34.176 73.344 76.224V357.824h-37.312v-331.648zM932.736 438.912L567.68 777.344c-14.272 16.384-34.56 25.728-55.616 25.728s-41.408-9.344-55.68-25.792L91.328 438.912c-24.768-28.352-17.28-53.632-12.992-63.232 4.352-9.536 18.56-31.808 56.128-31.808h42.368v39.36h-42.304c-21.696 0-27.776 13.376-13.504 29.696L486.144 751.36c7.168 8.192 16.576 12.224 25.984 12.224s18.816-4.032 25.984-12.224l365.12-338.432c14.272-16.32 8.192-29.696-13.504-29.696h-42.368v-39.36h42.24c37.632 0 51.84 22.208 56.192 31.808 4.288 9.6 11.776 34.88-13.056 63.232zM869.44 363.648a19.84 19.84 0 0 0-19.968-19.776 19.84 19.84 0 0 0 0 39.68 19.968 19.968 0 0 0 19.968-19.904zM194.368 363.648a19.84 19.84 0 1 0-39.744 0 19.904 19.904 0 0 0 39.744 0z" horiz-adv-x="1024" />
<glyph glyph-name="kechengguanli" unicode="&#59034;" d="M873.536-41.984H150.464a85.312 85.312 0 0 0-85.248 85.184V657.344c0 46.976 38.208 85.184 85.248 85.184H873.6c46.976 0 85.248-38.208 85.248-85.184v-614.144a85.312 85.312 0 0 0-85.312-85.184zM150.464 694.528a37.248 37.248 0 0 1-37.248-37.184v-614.144c0-20.48 16.704-37.184 37.248-37.184H873.6a37.248 37.248 0 0 1 37.248 37.184V657.344a37.248 37.248 0 0 1-37.248 37.184H150.464zM110.016 571.264h804.032v-28.032H110.016zM398.016 659.264a24 24 0 0 0-48 0V779.264a24 24 0 0 0 48 0v-120zM674.048 659.264a24 24 0 0 0-48 0V779.264a24 24 0 0 0 48 0v-120zM298.688 367.616m-42.624 0a42.624 42.624 0 1 1 85.248 0 42.624 42.624 0 1 1-85.248 0ZM511.616 367.616m-42.624 0a42.624 42.624 0 1 1 85.248 0 42.624 42.624 0 1 1-85.248 0ZM725.632 367.616m-42.624 0a42.624 42.624 0 1 1 85.248 0 42.624 42.624 0 1 1-85.248 0ZM298.688 190.656m-42.624 0a42.624 42.624 0 1 1 85.248 0 42.624 42.624 0 1 1-85.248 0ZM511.936 190.656m-42.624 0a42.624 42.624 0 1 1 85.248 0 42.624 42.624 0 1 1-85.248 0ZM725.632 190.656m-42.624 0a42.624 42.624 0 1 1 85.248 0 42.624 42.624 0 1 1-85.248 0Z" horiz-adv-x="1024" />
<glyph glyph-name="chuangjianketang" unicode="&#59035;" d="M871.872-62.976H152.064c-48 0-87.104 39.04-87.104 87.104V743.936c0 48 39.04 87.104 87.104 87.104h719.808c48.064 0 87.104-39.04 87.104-87.104v-719.808c0-48.064-39.04-87.104-87.104-87.104zM152.064 782.976a39.168 39.168 0 0 1-39.104-39.104v-719.808c0-21.568 17.536-39.104 39.104-39.104h719.808a39.168 39.168 0 0 1 39.104 39.104V743.936a39.168 39.168 0 0 1-39.104 39.104H152.064zM809.984 384a24 24 0 0 0-24-24H238.016a24 24 0 0 0 0 48h548.032c13.184 0 23.936-10.752 23.936-24zM512 86.016a24 24 0 0 0-24 24V657.984a24 24 0 0 0 48 0v-548.032a24 24 0 0 0-24-23.936z" horiz-adv-x="1024" />
<glyph glyph-name="banjiguanli" unicode="&#59036;" d="M597.12 367.808c-106.176 0-192.512 86.336-192.512 192.512s86.4 192.512 192.512 192.512 192.512-86.336 192.512-192.512-86.4-192.512-192.512-192.512z m0 337.024C517.44 704.832 452.608 640 452.608 560.32S517.44 415.808 597.12 415.808s144.512 64.832 144.512 144.512-64.832 144.512-144.512 144.512zM264 15.36a24 24 0 0 0-24 24 375.808 375.808 0 0 0 375.424 375.296 24 24 0 0 0 0-48A327.68 327.68 0 0 1 288 39.36a23.936 23.936 0 0 0-24-24zM345.344 391.168c-89.472 0-151.936 69.504-151.936 169.152a169.344 169.344 0 0 0 169.152 169.152 24 24 0 0 0 0-48.064 121.28 121.28 0 0 1-121.152-121.152c0-60.288 32.128-121.152 103.936-121.152a24 24 0 0 0 0-47.936zM85.376 129.024a24 24 0 0 0-24 24c0 165.824 123.968 286.208 294.72 286.208a24 24 0 0 0 0-48.064c-145.28 0-246.72-97.92-246.72-238.208a24 24 0 0 0-24-23.936zM938.688 15.232a24.064 24.064 0 0 0-23.936 22.208 325.568 325.568 0 0 1-206.144 280.064 23.936 23.936 0 1 0 17.6 44.544 373.056 373.056 0 0 0 236.352-321.024 24 24 0 0 0-22.144-25.728l-1.728-0.064z" horiz-adv-x="1024" />
<glyph glyph-name="laoshiguanli" unicode="&#59037;" d="M871.296-55.168H158.656c-47.168 0-85.568 38.4-85.568 85.568v99.904a24 24 0 0 0 48 0v-99.904c0-20.672 16.832-37.568 37.568-37.568h712.64a37.696 37.696 0 0 1 37.568 37.568V743.04a37.632 37.632 0 0 1-37.568 37.568H158.656a37.568 37.568 0 0 1-37.568-37.568v-100.736a24 24 0 0 0-48 0V743.04c0 47.168 38.4 85.568 85.568 85.568h712.64c47.168 0 85.568-38.4 85.568-85.568v-712.64c0-47.232-38.336-85.568-85.568-85.568zM269.312 546.688a24 24 0 0 0-24-24h-176a24 24 0 0 0 0 48h176c13.312 0 24-10.752 24-24zM269.312 384a24 24 0 0 0-24-24h-176a24 24 0 0 0 0.064 48h176c13.248 0 23.936-10.688 23.936-24zM269.312 221.376a24 24 0 0 0-24-24h-176a24 24 0 0 0 0 48h176c13.312 0 24-10.752 24-24zM586.048 339.648c-88.896 0-161.216 72.32-161.216 161.216s72.32 161.28 161.216 161.28c88.96 0 161.344-72.32 161.344-161.28s-72.384-161.216-161.344-161.216z m0 274.496a113.28 113.28 0 1 1 0.192-226.368 113.28 113.28 0 0 1-0.192 226.368zM811.456 105.344a24 24 0 0 0-24 24c0 116.032-90.304 210.368-201.344 210.368s-201.344-94.336-201.344-210.368a24 24 0 0 0-48 0c0 142.464 111.872 258.368 249.344 258.368 137.472 0 249.344-115.904 249.344-258.368a24 24 0 0 0-24-24z" horiz-adv-x="1024" />
<glyph glyph-name="yuekeguanli" unicode="&#59039;" d="M364.224-9.728h-209.92a81.536 81.536 0 0 0-81.472 81.472V648.32c0 44.928 36.544 81.408 81.472 81.408H833.28c44.928 0 81.472-36.544 81.472-81.408v-167.168h-48V648.32a33.472 33.472 0 0 1-33.472 33.408H154.368a33.472 33.472 0 0 1-33.472-33.408v-576.576c0-18.496 14.976-33.472 33.472-33.472h209.92v-48zM116.352 526.336h754.944v-45.184H116.352zM386.752 650.176a22.592 22.592 0 0 0-45.056 0v112.64a22.592 22.592 0 0 0 45.056 0v-112.64zM646.016 650.176a22.592 22.592 0 0 0-45.12 0v112.64a22.592 22.592 0 0 0 45.12 0v-112.64zM835.456 215.104h-65.152V280.256a25.28 25.28 0 0 1-25.344 25.536 25.536 25.536 0 0 1-25.344-25.536v-116.032h115.84a25.472 25.472 0 1 1 0 50.88zM912.32 357.056a234.432 234.432 0 0 1-167.296 69.504c-63.296 0-122.816-24.64-167.168-69.504-44.8-44.8-69.568-104.064-69.568-167.296s24.768-122.752 69.568-167.296a234.752 234.752 0 0 1 167.168-69.376c63.296 0 122.816 24.64 167.296 69.376a235.84 235.84 0 0 1 69.44 167.296c0 63.36-24.832 122.688-69.44 167.296z m-167.296-353.024a185.984 185.984 0 0 0-185.792 185.664c0 102.4 83.456 185.792 185.792 185.792a185.984 185.984 0 0 0 185.792-185.792 185.856 185.856 0 0 0-185.792-185.664z m0 0M431.04 347.52a22.592 22.592 0 0 0-22.592-22.528H240.384a22.592 22.592 0 0 0 0 45.12h168.064c12.48 0 22.592-10.112 22.592-22.592zM431.04 189.824a22.656 22.656 0 0 0-22.592-22.592H240.384a22.592 22.592 0 0 0 0 45.12h168.064a22.592 22.592 0 0 0 22.592-22.528zM481.088 14.272a22.592 22.592 0 0 0-22.528-22.528H290.496a22.592 22.592 0 0 0 0 45.12h168.064a22.592 22.592 0 0 0 22.528-22.592z" horiz-adv-x="1024" />
<glyph glyph-name="luzhiguanli" unicode="&#59040;" d="M617.792 88.576H173.44c-51.328 0-93.056 45.248-93.056 100.928V511.744c0 55.68 41.728 100.992 93.056 100.992h444.352c51.328 0 93.056-45.312 93.056-100.992v-322.24c0-55.68-41.728-100.928-93.056-100.928zM173.44 564.672c-24.832 0-45.056-23.744-45.056-52.992v-322.24c0-29.184 20.16-52.928 45.056-52.928h444.352c24.896 0 45.056 23.744 45.056 52.928V511.744c0 29.248-20.16 52.992-45.056 52.992H173.44zM907.328 116.224a48.192 48.192 0 0 0-25.344 7.808L664.256 259.2l25.344 40.768 208.064-129.216 0.128 359.68-208.192-129.216-25.344 40.768 217.664 135.232c14.848 9.152 30.656 10.24 43.584 3.136 12.864-7.168 20.288-21.312 20.288-38.656v-382.144c0-17.344-7.36-31.424-20.288-38.656a37.824 37.824 0 0 0-18.176-4.672zM214.528 479.488m-33.024 0a33.024 33.024 0 1 1 66.048 0 33.024 33.024 0 1 1-66.048 0Z" horiz-adv-x="1024" />
<glyph glyph-name="gerenshezhi" unicode="&#59041;" d="M939.264 474.688c-5.056 27.008-21.696 44.224-41.92 43.776h-3.648c-59.648 0-108.224 48.64-108.224 108.224 0 19.072 9.024 40.384 9.344 41.28a55.424 55.424 0 0 1-18.624 67.008l-1.344 0.832-108.48 60.352-1.664 0.64a60.864 60.864 0 0 1-66.176-13.184c-13.12-13.248-53.312-47.68-85.44-47.68-32.256 0-72.96 35.072-85.952 48.64a60.8 60.8 0 0 1-43.904 18.112 55.552 55.552 0 0 1-22.272-4.352l-1.408-0.64-112.384-61.696-1.408-0.96a55.296 55.296 0 0 1-18.816-67.008c0.128-0.192 9.6-22.08 9.6-41.344 0-59.584-48.64-108.224-108.288-108.224h-3.712c-20.416 0.384-36.928-16.768-41.984-43.776-0.32-1.984-9.024-48.704-9.024-85.76 0-35.84 8.128-80.576 9.024-85.696 5.056-26.624 21.248-43.904 41.28-43.904h4.416c59.776 0 108.288-48.512 108.288-108.096 0-19.52-9.344-41.152-9.344-41.28a55.04 55.04 0 0 1 18.56-66.88l1.216-1.024 106.56-59.52 1.408-0.64a60.16 60.16 0 0 1 66.496 14.016c15.232 16.384 56.704 50.496 87.296 50.496 33.28 0 75.776-38.144 88-51.648a60.16 60.16 0 0 1 44.16-18.88c7.872 0 15.36 1.472 22.144 4.608l1.344 0.512 110.208 60.992 1.6 1.024a55.232 55.232 0 0 1 18.688 66.752c-0.064 0.128-9.408 21.888-9.408 41.344 0 59.648 48.64 108.096 108.224 108.096h4.352c20.032 0 36.096 17.152 41.216 43.904 0.192 0.384 9.28 48 9.28 85.696-0.256 36.928-8.96 83.904-9.28 85.888z m-41.024-85.76c0-25.92-5.504-59.584-7.488-72a171.136 171.136 0 0 1-112.192-53.12 172.032 172.032 0 0 1-47.616-118.72c0-26.624 9.024-52.352 12.992-62.528l-100.544-55.616a298.432 298.432 0 0 1-39.232 34.688c-33.536 24.896-65.728 37.504-95.552 37.504-29.504 0-61.504-12.224-94.848-36.864-20.48-14.848-35.008-29.888-38.976-33.856l-97.216 54.144a176.64 176.64 0 0 1 13.12 62.656c0 44.224-17.024 86.528-47.68 118.848a171.264 171.264 0 0 1-112 52.992 474.24 474.24 0 0 0-7.616 72c0 25.92 5.376 59.648 7.552 71.936a170.88 170.88 0 0 1 112 53.248 171.84 171.84 0 0 1 47.68 118.848c0 26.56-8.896 52.224-13.12 62.656l103.04 56.32c0.128 0 0.512-0.064 0.512-0.192 3.52-3.52 18.304-18.304 38.912-33.024 32.896-23.424 64.384-35.392 93.184-35.392 28.544 0 59.776 11.776 92.672 34.688a315.52 315.52 0 0 1 38.4 32.192c0.32 0.064 0.576 0.064 0.768 0.192l99.328-55.104a179.2 179.2 0 0 1-13.184-62.656 172.544 172.544 0 0 1 159.872-172.032c1.856-12.16 7.232-45.952 7.232-71.808zM511.04 247.61599999999999a141.824 141.824 0 0 0-141.696 141.696c0 78.144 63.552 141.696 141.696 141.696 78.08 0 141.632-63.552 141.632-141.696a141.824 141.824 0 0 0-141.632-141.696z m0 235.392c-51.712 0-93.696-42.048-93.696-93.696 0-51.712 42.048-93.696 93.696-93.696a93.76 93.76 0 0 1 0 187.392z" horiz-adv-x="1024" />
<glyph glyph-name="tongjibaogao" unicode="&#59042;" d="M958.72 48a24 24 0 0 0-24-24H89.344a24 24 0 0 0 0 48h845.376c13.312 0 24-10.752 24-24zM89.344 744c13.248 0 24-10.752 24-24v-671.936a24 24 0 0 0-48 0V720c0 13.248 10.752 24 24 24zM398.72 427.648a24 24 0 0 0 0-33.92l-203.584-203.584a24 24 0 0 0-33.92 33.92L364.8 427.648a24 24 0 0 0 33.92 0zM869.824 536.704a23.936 23.936 0 0 0-4.864-33.6L536.384 256.576a24 24 0 0 0-33.536 4.736 23.872 23.872 0 0 0 4.8 33.536l328.512 246.592a24.128 24.128 0 0 0 33.664-4.736zM535.424 258.816a24 24 0 0 0-33.92 0L366.656 393.728a24.064 24.064 0 0 0 0 33.984 24.128 24.128 0 0 0 33.92 0l134.848-134.912a24 24 0 0 0 0-33.984z" horiz-adv-x="1024" />
<glyph glyph-name="zhandianpeizhi" unicode="&#59043;" d="M169.536 355.456a107.712 107.712 0 0 1-75.904-33.984A107.84 107.84 0 0 1 64 243.648a109.312 109.312 0 0 1 80.704-101.44v-162.176a27.968 27.968 0 1 1 55.872 0v161.792c47.616 12.8 82.304 56.96 80.768 108.224-1.728 58.112-50.496 105.408-111.808 105.408z m4.928-169.536l-0.768-11.456-0.896 0.128v11.328a61.312 61.312 0 0 0-60.864 59.072 60.928 60.928 0 0 0 60.544 62.528c32.64 0 59.904-26.368 60.8-58.88a60.928 60.928 0 0 0-58.816-62.72zM172.608 420.096a27.968 27.968 0 0 1 27.904 27.968V781.824a27.904 27.904 0 1 1-55.872 0v-333.76a28.096 28.096 0 0 1 27.968-27.968zM952.96 250.112c-1.792 59.072-49.6 105.344-111.744 105.344h-0.128a107.776 107.776 0 0 1-75.84-34.048 107.648 107.648 0 0 1-29.632-77.824c1.408-49.472 35.136-89.6 80.704-101.632v-161.984a27.904 27.904 0 1 1 55.936 0v161.856a109.248 109.248 0 0 1 80.704 108.288z m-106.88-64.192l-0.832-11.456-0.896 0.128v11.328a61.12 61.12 0 0 0-60.736 59.136 60.8 60.8 0 0 0 60.48 62.464c32.576 0 59.904-26.432 60.864-58.816a61.12 61.12 0 0 0-58.88-62.784zM844.16 420.096a28.032 28.032 0 0 1 28.032 27.968V781.824a27.968 27.968 0 0 1-55.936 0v-333.76a28.032 28.032 0 0 1 27.904-27.968zM540.928 619.2V781.824a27.904 27.904 0 1 1-55.872 0v-162.24a109.568 109.568 0 0 1-80.768-101.568c-0.768-28.992 9.728-56.64 29.696-77.76 19.968-21.12 46.976-33.216 75.968-33.984h2.944a109.44 109.44 0 0 1 108.736 105.472c1.536 50.624-32.192 94.016-80.704 107.456z m-27.968-164.992v-24l-1.664 24.064c-16.192 0.384-31.232 7.168-42.368 19.008s-17.088 27.2-16.64 43.328a61.632 61.632 0 0 0 62.4 59.136 60.992 60.992 0 0 0 59.008-62.592 61.12 61.12 0 0 0-60.736-58.944zM513.024 341.568a27.968 27.968 0 0 1-27.968-27.968v-333.632a27.968 27.968 0 1 1 55.872 0V313.6a27.904 27.904 0 0 1-27.904 27.968z" horiz-adv-x="1024" />
<glyph glyph-name="wodeyuyue" unicode="&#59044;" d="M512-59.008A443.52 443.52 0 0 0 68.992 384 443.52 443.52 0 0 0 512 827.008 443.52 443.52 0 0 0 955.008 384c0-244.224-198.784-443.008-443.008-443.008zM512 779.008C294.208 779.008 116.992 601.792 116.992 384S294.208-11.008 512-11.008 907.008 166.208 907.008 384 729.792 779.008 512 779.008zM535.232 381.12a30.72 30.72 0 0 0-61.312 0V617.152a30.592 30.592 0 1 0 61.312 0v-236.032zM494.528 348.8a30.72 30.72 0 0 0 20.096 57.984l222.976-77.312a30.72 30.72 0 0 0-20.096-57.984L494.528 348.8z" horiz-adv-x="1024" />
<glyph glyph-name="xiaoxi" unicode="&#59045;" d="M884.992 244.416c-8.448 55.104-33.088 216.32-39.424 246.592-1.6 137.728-124.928 225.6-237.504 262.208v10.176c0 49.28-43.008 89.344-95.936 89.344s-95.872-40.128-95.872-89.344v-6.656c-125.184-36.16-245.76-129.92-247.36-266.112-6.336-30.912-27.52-190.592-34.816-245.888-31.424-18.624-59.392-45.376-59.392-111.552 0-31.36 25.344-90.624 121.088-90.624h153.408A164.992 164.992 0 0 1 512-94.72a165.12 165.12 0 0 1 162.944 137.28h153.344c95.808 0 121.152 59.264 121.152 90.624-0.064 73.6-36.672 95.68-64.448 111.232zM512-46.72a117.824 117.824 0 0 0-114.496 89.28H626.56A117.76 117.76 0 0 0 512-46.72z m316.224 137.216H195.712c-67.968 0-72.768 35.904-73.088 42.624 0 47.744 17.024 60.288 44.992 75.392l10.816 5.824 1.6 12.16c11.968 91.072 32.256 240.832 35.968 255.04l0.896 6.4c0 118.272 115.008 199.232 229.056 227.072l18.304 4.48v43.904c0 22.784 21.504 41.344 47.936 41.344s47.936-18.56 47.936-41.344v-46.144l17.408-4.928c101.504-28.608 220.032-104.448 220.032-224.064l0.832-6.144c3.52-13.376 26.944-164.352 40.896-256.384l1.728-11.328 18.688-10.752c25.152-14.08 41.664-23.296 41.664-70.528 0-1.728-0.832-42.624-73.152-42.624z" horiz-adv-x="1024" />
<glyph glyph-name="youxiang" unicode="&#59046;" d="M820.608 774.272H208.576c-77.12 0-139.776-62.72-139.776-139.776v-500.992c0-76.992 62.656-139.776 139.776-139.776h612.032c77.056 0 139.776 62.72 139.776 139.776V634.496c0 77.056-62.72 139.776-139.776 139.776zM692.288 384l226.752 226.816v-453.568L692.288 384zM208.576 733.056h612.032c46.4 0 82.88-28.224 94.592-69.504L603.008 351.296c-23.616-23.552-55.04-36.544-88.448-36.544s-64.832 12.992-88.448 36.544L113.984 663.488c11.648 41.344 48.192 69.568 94.592 69.568zM336.832 384l-226.816-226.88V610.816L336.832 384z m483.776-348.992H208.576c-47.552 0-84.8 29.632-95.488 72.704L363.072 357.76l36.8-36.672c30.592-30.72 71.36-47.616 114.688-47.616s84.032 16.896 114.688 47.552l36.736 36.672 250.048-250.048c-10.624-42.944-47.872-72.64-95.424-72.64z m0 0" horiz-adv-x="1024" />
<glyph glyph-name="youxiang1" unicode="&#59047;" d="M870.4 675.776c0 82.176-61.248 150.272-137.6 150.272H314.368c-76.352 0-137.6-68.096-137.6-150.272v-591.68c0-82.24 61.248-150.336 137.6-150.336h418.368c76.352 0 137.6 68.032 137.6 150.336V675.776z m-41.28-597.312c0-58.432-42.176-105.28-92.288-105.28H310.4c-50.176 0-92.416 46.784-92.416 105.28V681.408c0 58.368 42.24 105.344 92.416 105.344h426.432c50.112 0 92.288-46.912 92.288-105.344v-602.944zM240.96 121.088h587.84v41.6H218.368v-41.6zM593.92 48.768a20.928 20.928 0 0 0-20.992-20.992H474.176a20.992 20.992 0 1 0 0 41.984h98.752c11.648 0 20.992-9.408 20.992-20.992z" horiz-adv-x="1024" />
<glyph glyph-name="youxiang2" unicode="&#59048;" d="M798.848 518.464h-13.952v37.952c0 147.2-108.8 267.008-242.688 267.008h-16.64c-133.952 0-242.816-119.808-242.816-267.008v-37.952h-57.728c-49.344 0-89.6-40.128-89.6-89.6v-394.624a89.6 89.6 0 0 1 89.6-89.6h573.824a89.6 89.6 0 0 1 89.664 89.728V428.864c0.064 49.28-40.192 89.6-89.664 89.6z m-480.192 37.952c0 127.36 92.864 231.04 206.912 231.04h16.64c114.048 0 206.848-103.744 206.848-231.04v-37.952H318.656v37.952z m526.72-517.888a52.608 52.608 0 0 0-52.608-52.608H231.168a52.672 52.672 0 0 0-52.608 52.608V424.64c0 28.928 23.616 52.608 52.608 52.608h561.536c29.12 0 52.608-23.68 52.608-52.608v-386.112zM511.936 410.88c-59.264 0-107.52-48.256-107.52-107.52 0-50.624 41.408-97.152 90.56-106.112 0.32-22.144-0.192-67.392-0.832-108.864a17.92 17.92 0 0 1 17.536-18.24h0.256a17.856 17.856 0 0 1 17.92 17.728c2.368 130.88 1.664 131.648-4.992 138.496a18.368 18.368 0 0 1-12.928 5.376c-36.736 0-71.616 34.752-71.616 71.616a71.68 71.68 0 1 0 114.432-57.472 17.984 17.984 0 0 1 21.44-28.928c27.2 20.224 43.392 52.48 43.392 86.4 0 59.264-48.32 107.52-107.648 107.52z" horiz-adv-x="1024" />
</font>
... ...

962 字节 | 宽: | 高:

104 字节 | 宽: | 高:

  • 两方对比
  • 交换覆盖
  • 透明覆盖

121.3 KB | 宽: | 高:

109.8 KB | 宽: | 高:

  • 两方对比
  • 交换覆盖
  • 透明覆盖

1.2 KB | 宽: | 高:

258 字节 | 宽: | 高:

  • 两方对比
  • 交换覆盖
  • 透明覆盖

1.3 KB | 宽: | 高:

283 字节 | 宽: | 高:

  • 两方对比
  • 交换覆盖
  • 透明覆盖

1.3 KB | 宽: | 高:

421 字节 | 宽: | 高:

  • 两方对比
  • 交换覆盖
  • 透明覆盖

4.2 KB | 宽: | 高:

2.0 KB | 宽: | 高:

  • 两方对比
  • 交换覆盖
  • 透明覆盖

1.2 KB | 宽: | 高:

323 字节 | 宽: | 高:

  • 两方对比
  • 交换覆盖
  • 透明覆盖

1.3 KB | 宽: | 高:

412 字节 | 宽: | 高:

  • 两方对比
  • 交换覆盖
  • 透明覆盖

2.6 KB | 宽: | 高:

1.3 KB | 宽: | 高:

  • 两方对比
  • 交换覆盖
  • 透明覆盖

123.7 KB | 宽: | 高:

86.1 KB | 宽: | 高:

  • 两方对比
  • 交换覆盖
  • 透明覆盖
... ... @@ -121,7 +121,7 @@ body{
.header_listTeacherMsg{
padding-right:55px;
}
.header_listMsg.active{
.header_listMsgCheck{
color:#3498db;
}
.header_listMsg:selected{
... ... @@ -144,6 +144,13 @@ body{
position: absolute;
bottom:10px;
right:0;
border:none;
background: none;
cursor: pointer;
outline:none;
}
.header_seekBtn:checked{
color:#3498db;
}
.DownloadLoginBox{
float: right;
... ... @@ -170,7 +177,7 @@ body{
}
.userNews{
float: left;
font-size: 16px;
font-size: 18px;
line-height: 70px;
margin-left:20px;
}
... ... @@ -178,11 +185,13 @@ body{
width:30px;
height:30px;
border-radius: 50%;
background: #ccc;
background: url(../images/logo.png) no-repeat;
margin:12px 0 0 15px;
margin:15px 0 0 15px;
cursor: pointer;
}
.userLoginBtnImg{
width:100%;
height:100%;
}
/*轮播图*/
.slideshow{
width:100%;
... ... @@ -233,7 +242,6 @@ body{
left:0;
right:0;
margin:0 auto;
min-height: 1000px;
}
/*首页*/
.box{
... ... @@ -246,12 +254,13 @@ body{
}
.curriculumBox{
float: left;
width: 100%;
}
.curriculumBox1{
margin-bottom:60px;
margin-bottom:45px;
}
.curriculumHandler{
margin:60px 0 26px 0;
margin-top:60px;
}
.curriculumTitle{
font-size: 22px;
... ... @@ -262,25 +271,37 @@ body{
display: inline-block;
cursor: pointer;
}
.curriculumIcon{
.curriculumMove + label{
width: 12px;
height:12px;
display: inline-block;
background: url("../images/more.png");
cursor: pointer;
}
.curriculumList{
width:286px;
height:280px;
float: left;
background: #fff;
margin-right:25px;
.curriculumIcon{
cursor: pointer;
}
.curriculumList:hover{
box-shadow: 1px 5px 15px #adadad;
}
.curriculumListImg{
width:100%;
height:194px;
border: 1px solid transparent;
}
.curriculumListBox{
float: left;
width: 100%;
min-height: 305px;
position: relative;
}
.loadingImg{
width:30px;
height:30px;
position: absolute;
left:0;
right:0;
bottom:0;
top:0;
margin:auto;
}
.curriculumListTit{
font-size: 14px;
color: #333333;
... ... @@ -329,7 +350,7 @@ body{
background: #fff;
margin-right: 25px;
cursor: pointer;
margin-bottom:25px;
margin-top:25px;
}
.classifyList:hover{
box-shadow: 1px 5px 15px #adadad;
... ... @@ -378,6 +399,8 @@ body{
margin:0 auto;
height:auto;
min-height:600px;
display: none;
margin-top:40px;
}
.lanclassContent{
height:345px;
... ... @@ -457,6 +480,7 @@ body{
display: inline-block;
padding-left:10px;
cursor: pointer;
font-size: 20px;
}
.weixinIcon{
color: #09bb07;
... ... @@ -480,6 +504,124 @@ body{
font-size: 16px;
color:#333333;
}
/*老师信息详情页*/
.teacherDetailBox{
width:100%;
float: left;
display: none;
margin-top:40px;
}
.teacherDetailInfo{
width:100%;
height:254px;
margin-bottom:40px;
}
.teacherDetailInfoLeft{
width:420px;
height:254px;
background: #fff;
float: left;
}
.teacherDetailInfoImg{
width:120px;
height:120px;
border-radius: 50%;
margin:67px 50px 0 30px;
float:left;
}
.teacherDetailInfoDetailBox{
float: left;
padding-top:50px;
}
.teacherDetailInfoDetailName{
font-size: 24px;
color: #333333;
max-width: 120px;
display: inline-block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.teacherDetailInfoDetailSex{
font-size: 12px;
color:#999999;
padding-left:20px;
}
.teacherDetailInfoDetailSpeciality{
padding:30px 0 20px 0;
}
.teacherDetailInfoDetailLi{
font-size: 16px;
color: #333333;
padding:5px 0;
}
.teacherDetailInfoRight{
width: 700px;
height:194px;
background: #fff;
margin-left:40px;
float: left;
padding:30px;
}
.teacherDetailReferralBox{
float: left;
width: 502px;
}
.teacherDetailOrderBtn{
width:150px;
height:64px;
border-radius: 3px;
color:#fff;
background: #3498db;
text-align: center;
line-height: 64px;
float: right;
border:none;
margin-top:65px;
cursor: pointer;
}
.teacherDetailReferralTitle{
font-size: 16px;
color: #333333;
}
.teacherDetailReferralContent{
font-size: 14px;
color: #333333;
padding-top:30px;
}
.teacherDetailContent{
width:100%;
float: left;
margin-bottom:40px;
background: #fff;
}
.teacherDetailContentUl{
padding:40px 30px 30px 30px;
border-bottom: 1px solid #ccc;
}
.teacherDetailBasics{
padding-top:30px;
font-size: 14px;
}
.teacherDetailBasicsMsg{
font-size: 18px;
color: #333333;
}
.teacherDetailCurriculum{
padding:40px 30px 40px 30px;
float: left;
}
.teacherDetailCurriculumTitle{
font-size: 16px;
color: #333333;
padding-bottom: 30px;
float: left;
}
.teacherDetailCurriculumList{
float: left;
width: 100%;
padding-top:4px;
}
/*课堂介绍*/
.lanclassIntroduceTitle{
padding:40px 0 20px 0px;
... ... @@ -500,6 +642,357 @@ body{
.teacherInfoName{
padding-right:30px;
}
/*管理员信息*/
.classManagementBox{
width:100%;
display: inline-block;
margin:40px 0;
display: none;
}
.classManagementLeft{
float: left;
margin-right:20px;
}
.recordUl{
width: 200px;
text-align: center;
background: #fff;
padding:20px 0;
cursor: pointer;
}
.recordLi{
font-size: 14px;
height: 55px;
line-height: 55px;
}
.recordLiText{
padding-left:15px;
color:#666666;
}
.recordLiText + label {
color:#666666;
}
.recordLiText:checked + label {
color:#666666;
}
/*.recordLi:hover{
color: #3498db;
}*/
.recordLiTextCheck{
color: #3498db;
}
.classManagementRight{
width: 998px;
float: left;
}
.classManagementRightTitle{
padding:0 30px;
height:44px;
line-height: 44px;
background: #fff;
margin-bottom:8px;
border:1px solid #e6e6e6;
}
.liveInfoLeft{
float: left;
}
.liveInfoLeftLi{
float: left;
border-bottom:1px solid transparent;
text-align: center;
padding:0 10px;
font-size: 14px;
cursor: pointer;
}
.liveInfoLeftLi:hover{
border-bottom:1px solid #3498db;
}
.liveInfoRight{
float: right;
width:200px;
height:28px;
line-height: 28px;
border:1px solid #cccccc;
background: #FFF;
border-radius: 2px;
margin-top:8px;
}
.liveInfoRightInput{
border:none;
outline: none;
padding-left:10px;
width: 165px;
}
.liveInfoRightInputBtn{
width:18px;
height:18px;
cursor: pointer;
}
.liveInfoCenter{
float: right;
color:#333333;
font-size: 14px;
padding-right:30px;
}
.liveInfoCenterTime{
float: left;
padding:0 12px;
}
.liveInfoCenterLiveCase{
width: 80px;
height: 28px;
line-height: 28px;
border: 1px solid #cccccc;
background: #FFF;
border-radius: 2px;
margin-top: 8px;
float: left;
text-align: center;
}
.classManagementRightContent{
height: 420px;
}
.t_box{
border:1px solid #e6e6e6;
border-bottom: none;
}
.tr_center{
color: #333333;
font-size: 14px;
border-bottom:1px solid #e6e6e6;
}
.tr_main{
font-size: 12px;
color: #333333;
border-bottom:1px solid #e6e6e6;
}
.classHandlePort{
margin: 0 3px;
color:#3498db;
}
.classHandlerPageMsg{
font-size: 12px;
color: #333333;
}
.classHandlerPageInfoBox{
font-size: 14px;
float: right;
}
.classHandlerPageInfo{
width:52px;
height:32px;
text-align: center;
line-height: 32px;
border:1px solid #ebebeb;
margin-left: 20px;
background: #fff;
float: left;
color: #333333;
cursor: pointer;
}
.classHandlerPageInfoCheck{
background: #3498db;
color:#fff;
}
.classHandlerPageInfoInput{
border:none;
background: none;
width:52px;
height:32px;
text-align: center;
}
/*创建课堂*/
.createClass{
width:700px;
height: 520px;
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
margin: auto;
background: #fff;
}
.createClassHandler{
width: 100%;
height:40px;
background: #3498db;
color:#fff;
}
.createClassHandlerTitle{
line-height: 40px;
padding-left:15px;
font-size: 14px;
}
.createClassA{
font-size: 16px;
position: absolute;
right:10px;
top:10px;
color:#fff;
}
.createClassContent{
}
.scheduleForm{
display: none;
}
.step_content{
font-size: 12px;
}
.scheduleWireBox{
width:100%;
height:75px;
position: relative;
}
.scheduleWireTitBox{
width: 100%;
}
.scheduleWireBoxTit{
font-size: 12px;
color: #666666;
width: 25%;
text-align: center;
display: inline-block;
padding-top:20px;
}
.scheduleWireIndBox{
width: 100%;
position: absolute;
left:0;
bottom:0;
}
.scheduleWireInd{
width: 25%;
text-align: center;
float: left;
}
.scheduleWireIndText{
width:28px;
height:28px;
border:2px solid #ccc;
color: #ccc;
line-height: 28px;
text-align: center;
display: inline-block;
border-radius:50%;
background: #fff;
font-size: 14px;
}
.scheduleWireIndText1{
border:2px solid #3498db;
color: #3498db;
}
.scheduleWireBg{
height: 2px;
background: #ccc;
width: 510px;
margin:22px 0 0 95px;
}
.scheduleWire{
background: #3498db;
height: 2px;
width: 2px;
margin:20px 0 0 95px;
position: absolute;
bottom:15px;
left:0;
}
.scheduleWire1{
width: 155px;
}
.scheduleWire2{
width: 335px;
}
.scheduleWire2{
width: 510px;
}
/*创建课堂第一步*/
.form_item{
margin-bottom: 10px;
min-height: 22px;
line-height: 22px;
font-size: 12px;
}
.step_page1Title{
float: left;
width: 125px;
padding-right: 5px;
text-align: right;
line-height: 32px;
}
.step_page1_widget{
margin-left: 125px;
position: relative;
padding-top: 5px;
}
.allowPublic{
display: none;
}
.allowPublic+label{
display: inline-block;
cursor: pointer;
background: url(../images/circle.png) no-repeat;
padding-left: 23px;
}
.allowPublic:checked+label{
display: inline-block;
background: url(../images/circle01.png) no-repeat;
}
.classThemeInfo{
border-radius: 2px;
padding: 4px;
height: 24px;
background-color: #ffffff;
border: 1px solid #cccccc;
width: 360px;
margin-right: 20px;
font-size: 12px;
}
.publicInfo{
padding-right: 15px;
padding-left:4px;
}
.classDescribeArea{
width: 370px;
height: 60px;
}
.createClassConfirm{
background: #3498db;
}
.form_button{
width: 220px;
left: 0;
right: 0;
margin: 0 auto;
}
.createClassBtn{
width: 80px;
height:34px;
line-height: 34px;
text-align: center;
color:#fff;
display: inline-block;
border: none;
border-radius: 3px;
margin:0 15px;
cursor: pointer;
font-size: 14px;
}
.main_closeBtn{
background: #b3b3b3;
}
/*创建课堂第二步*/
/*创建课堂第三步*/
/*创建课堂第四步*/
.createClassBox{
display: none;
}
.step_page1{
}
/*底部*/
.footerBg{
width:100%;
... ...
不能预览此文件类型
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<!--
2013-9-30: Created.
-->
<svg>
<metadata>
Created by iconfont
</metadata>
<defs>
<font id="laydate-icon" horiz-adv-x="1024" >
<font-face
font-family="laydate-icon"
font-weight="500"
font-stretch="normal"
units-per-em="1024"
ascent="896"
descent="-128"
/>
<missing-glyph />
<glyph glyph-name="x" unicode="x" horiz-adv-x="1001"
d="M281 543q-27 -1 -53 -1h-83q-18 0 -36.5 -6t-32.5 -18.5t-23 -32t-9 -45.5v-76h912v41q0 16 -0.5 30t-0.5 18q0 13 -5 29t-17 29.5t-31.5 22.5t-49.5 9h-133v-97h-438v97zM955 310v-52q0 -23 0.5 -52t0.5 -58t-10.5 -47.5t-26 -30t-33 -16t-31.5 -4.5q-14 -1 -29.5 -0.5
t-29.5 0.5h-32l-45 128h-439l-44 -128h-29h-34q-20 0 -45 1q-25 0 -41 9.5t-25.5 23t-13.5 29.5t-4 30v167h911zM163 247q-12 0 -21 -8.5t-9 -21.5t9 -21.5t21 -8.5q13 0 22 8.5t9 21.5t-9 21.5t-22 8.5zM316 123q-8 -26 -14 -48q-5 -19 -10.5 -37t-7.5 -25t-3 -15t1 -14.5
t9.5 -10.5t21.5 -4h37h67h81h80h64h36q23 0 34 12t2 38q-5 13 -9.5 30.5t-9.5 34.5q-5 19 -11 39h-368zM336 498v228q0 11 2.5 23t10 21.5t20.5 15.5t34 6h188q31 0 51.5 -14.5t20.5 -52.5v-227h-327z" />
<glyph glyph-name="youyou" unicode="&#58882;" d="M283.648 721.918976 340.873216 780.926976 740.352 383.997952 340.876288-12.925952 283.648 46.077952 619.52 383.997952Z" horiz-adv-x="1024" />
<glyph glyph-name="zuozuo" unicode="&#58883;" d="M740.352 721.918976 683.126784 780.926976 283.648 383.997952 683.123712-12.925952 740.352 46.077952 404.48 383.997952Z" horiz-adv-x="1024" />
<glyph glyph-name="xiayiye" unicode="&#58970;" d="M62.573 384.103l423.401 423.662c18.985 18.985 49.757 18.985 68.727 0 18.982-18.972 18.985-49.746 0-68.729l-355.058-355.067 356.796-356.796c18.977-18.971 18.976-49.746 0-68.727-18.982-18.976-49.751-18.976-68.727 0l-39.753 39.753 0.269 0.246-385.655 385.661zM451.365 384.103l423.407 423.662c18.985 18.985 49.757 18.985 68.727 0 18.982-18.972 18.985-49.746 0-68.729l-355.058-355.067 356.796-356.796c18.977-18.971 18.976-49.746 0-68.727-18.982-18.976-49.757-18.977-68.727 0l-39.762 39.754 0.273 0.249-385.662 385.661zM451.365 384.103z" horiz-adv-x="1024" />
<glyph glyph-name="xiayiye1" unicode="&#58971;" d="M948.066926 382.958838l-411.990051-412.24426c-18.47333-18.47333-48.417689-18.47333-66.875207 0-18.47333 18.461167-18.47333 48.405526 0 66.875207L814.691135 383.088983 467.512212 730.269123c-18.466032 18.458735-18.466032 48.405526 0 66.873991 18.468465 18.464816 48.410391 18.464816 66.872774 0l38.682336-38.682336-0.261507-0.239614 375.259894-375.265975v0.003649m-378.312834 0L157.756743-29.285422c-18.47333-18.47333-48.415256-18.47333-66.872775 0-18.47333 18.461167-18.47333 48.405526 0 66.875207L436.369787 383.088983 89.19208 730.269123c-18.4636 18.458735-18.4636 48.405526 0 66.873991 18.470898 18.464816 48.415256 18.464816 66.872774 0l38.692067-38.682336-0.266372-0.239614 375.267191-375.265975-0.004865 0.003649m0 0z" horiz-adv-x="1024" />
</font>
</defs></svg>
... ...
不能预览此文件类型
不能预览此文件类型
/*! laydate-v5.0.2 日期与时间组件 MIT License http://www.layui.com/laydate/ By 贤心 */
.laydate-set-ym,.layui-laydate,.layui-laydate *,.layui-laydate-list{box-sizing:border-box}html #layuicss-laydate{display:none;position:absolute;width:1989px}.layui-laydate *{margin:0;padding:0}@font-face{font-family:laydate-icon;src:url(font/iconfont.eot);src:url(font/iconfont.eot#iefix) format('embedded-opentype'),url(font/iconfont.svg#iconfont) format('svg'),url(font/iconfont.woff) format('woff'),url(font/iconfont.ttf) format('truetype')}.laydate-icon{font-family:laydate-icon!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.layui-laydate{position:absolute;z-index:66666666;margin:5px 0;border-radius:2px;font-size:14px;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-name:laydate-upbit;animation-name:laydate-upbit}.layui-laydate-main{width:272px}.layui-laydate-content td,.layui-laydate-header *,.layui-laydate-list li{transition-duration:.3s;-webkit-transition-duration:.3s}@-webkit-keyframes laydate-upbit{from{-webkit-transform:translate3d(0,20px,0);opacity:.3}to{-webkit-transform:translate3d(0,0,0);opacity:1}}@keyframes laydate-upbit{from{transform:translate3d(0,20px,0);opacity:.3}to{transform:translate3d(0,0,0);opacity:1}}.layui-laydate-static{position:relative;z-index:0;display:inline-block;margin:0;-webkit-animation:none;animation:none}.laydate-ym-show .laydate-next-m,.laydate-ym-show .laydate-prev-m{display:none!important}.laydate-ym-show .laydate-next-y,.laydate-ym-show .laydate-prev-y{display:inline-block!important}.laydate-time-show .laydate-set-ym span[lay-type=month],.laydate-time-show .laydate-set-ym span[lay-type=year],.laydate-time-show .layui-laydate-header .layui-icon,.laydate-ym-show .laydate-set-ym span[lay-type=month]{display:none!important}.layui-laydate-header{position:relative;line-height:30px;padding:10px 70px 5px}.laydate-set-ym span,.layui-laydate-header i{padding:0 5px;cursor:pointer}.layui-laydate-header *{display:inline-block;vertical-align:bottom}.layui-laydate-header i{position:absolute;top:10px;color:#999;font-size:18px}.layui-laydate-header i.laydate-prev-y{left:15px}.layui-laydate-header i.laydate-prev-m{left:45px}.layui-laydate-header i.laydate-next-y{right:15px}.layui-laydate-header i.laydate-next-m{right:45px}.laydate-set-ym{width:100%;text-align:center;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.laydate-time-text{cursor:default!important}.layui-laydate-content{position:relative;padding:10px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.layui-laydate-content table{border-collapse:collapse;border-spacing:0}.layui-laydate-content td,.layui-laydate-content th{width:36px;height:30px;padding:5px;text-align:center}.layui-laydate-content td{position:relative;cursor:pointer}.laydate-day-mark{position:absolute;left:0;top:0;width:100%;height:100%;line-height:30px;font-size:12px;overflow:hidden}.laydate-day-mark::after{position:absolute;content:'';right:2px;top:2px;width:5px;height:5px;border-radius:50%}.layui-laydate-footer{position:relative;height:46px;line-height:26px;padding:10px 20px}.layui-laydate-footer span{margin-right:15px;display:inline-block;cursor:pointer;font-size:12px}.layui-laydate-footer span:hover{color:#5FB878}.laydate-footer-btns{position:absolute;right:10px;top:10px}.laydate-footer-btns span{height:26px;line-height:26px;margin:0 0 0 -1px;padding:0 10px;border:1px solid #C9C9C9;background-color:#fff;white-space:nowrap;vertical-align:top;border-radius:2px}.layui-laydate-list>li,.layui-laydate-range .layui-laydate-main{display:inline-block;vertical-align:middle}.layui-laydate-list{position:absolute;left:0;top:0;width:100%;height:100%;padding:10px;background-color:#fff}.layui-laydate-list>li{position:relative;width:33.3%;height:36px;line-height:36px;margin:3px 0;text-align:center;cursor:pointer}.laydate-month-list>li{width:25%;margin:17px 0}.laydate-time-list>li{height:100%;margin:0;line-height:normal;cursor:default}.laydate-time-list p{position:relative;top:-4px;line-height:29px}.laydate-time-list ol{height:181px;overflow:hidden}.laydate-time-list>li:hover ol{overflow-y:auto}.laydate-time-list ol li{width:130%;padding-left:33px;line-height:30px;text-align:left;cursor:pointer}.layui-laydate-hint{position:absolute;top:115px;left:50%;width:250px;margin-left:-125px;line-height:20px;padding:15px;text-align:center;font-size:12px}.layui-laydate-range{width:546px}.layui-laydate-range .laydate-main-list-0 .laydate-next-m,.layui-laydate-range .laydate-main-list-0 .laydate-next-y,.layui-laydate-range .laydate-main-list-1 .laydate-prev-m,.layui-laydate-range .laydate-main-list-1 .laydate-prev-y{display:none}.layui-laydate-range .laydate-main-list-1 .layui-laydate-content{border-left:1px solid #e2e2e2}.layui-laydate,.layui-laydate-hint{border:1px solid #d2d2d2;box-shadow:0 2px 4px rgba(0,0,0,.12);background-color:#fff;color:#666}.layui-laydate-header{border-bottom:1px solid #e2e2e2}.layui-laydate-header i:hover,.layui-laydate-header span:hover{color:#5FB878}.layui-laydate-content{border-top:none 0;border-bottom:none 0}.layui-laydate-content th{font-weight:400;color:#333}.layui-laydate-content td{color:#666}.layui-laydate-content td.laydate-selected{background-color:#00F7DE}.laydate-selected:hover{background-color:#00F7DE!important}.layui-laydate-content td:hover,.layui-laydate-list li:hover{background-color:#eaeaea;color:#333}.laydate-time-list li ol{margin:0;padding:0;border:1px solid #e2e2e2;border-left-width:0}.laydate-time-list li:first-child ol{border-left-width:1px}.laydate-time-list>li:hover{background:0 0}.layui-laydate-content .laydate-day-next,.layui-laydate-content .laydate-day-prev{color:#d2d2d2}.laydate-selected.laydate-day-next,.laydate-selected.laydate-day-prev{color:#fff!important}.layui-laydate-footer{border-top:1px solid #e2e2e2}.layui-laydate-hint{color:#FF5722}.laydate-day-mark::after{background-color:#5FB878}.layui-laydate-content td.layui-this .laydate-day-mark::after{display:none}.layui-laydate-footer span[lay-type=date]{color:#5FB878}.layui-laydate .layui-this{background-color:#009688!important;color:#fff!important}.layui-laydate .laydate-disabled,.layui-laydate .laydate-disabled:hover{background:0 0!important;color:#d2d2d2!important;cursor:not-allowed!important;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.laydate-theme-molv{border:none}.laydate-theme-molv.layui-laydate-range{width:548px}.laydate-theme-molv .layui-laydate-main{width:274px}.laydate-theme-molv .layui-laydate-header{border:none;background-color:#009688}.laydate-theme-molv .layui-laydate-header i,.laydate-theme-molv .layui-laydate-header span{color:#f6f6f6}.laydate-theme-molv .layui-laydate-header i:hover,.laydate-theme-molv .layui-laydate-header span:hover{color:#fff}.laydate-theme-molv .layui-laydate-content{border:1px solid #e2e2e2;border-top:none;border-bottom:none}.laydate-theme-molv .laydate-main-list-1 .layui-laydate-content{border-left:none}.laydate-theme-grid .laydate-month-list>li,.laydate-theme-grid .laydate-year-list>li,.laydate-theme-grid .layui-laydate-content td,.laydate-theme-grid .layui-laydate-content thead,.laydate-theme-molv .layui-laydate-footer{border:1px solid #e2e2e2}.laydate-theme-grid .laydate-selected,.laydate-theme-grid .laydate-selected:hover{background-color:#f2f2f2!important;color:#009688!important}.laydate-theme-grid .laydate-selected.laydate-day-next,.laydate-theme-grid .laydate-selected.laydate-day-prev{color:#d2d2d2!important}.laydate-theme-grid .laydate-month-list,.laydate-theme-grid .laydate-year-list{margin:1px 0 0 1px}.laydate-theme-grid .laydate-month-list>li,.laydate-theme-grid .laydate-year-list>li{margin:0 -1px -1px 0}.laydate-theme-grid .laydate-year-list>li{height:43px;line-height:43px}.laydate-theme-grid .laydate-month-list>li{height:71px;line-height:71px}
\ No newline at end of file
... ...
... ... @@ -14,21 +14,23 @@
<img src="images/logo.png" alt="">
</div>
<ul class="header_list">
<li class="header_listMsg header_listTeacherMsg active" id="defaultBtn">首页</li>
<li class="header_listMsg" id="liveBtn">直播课堂</li>
<li class="header_listMsg header_listTeacherMsg" id="lanclassBtn">互动课堂</li>
<li class="header_listMsg header_listTeacherMsg" id="teacherBtn">老师</li>
<li class="header_listMsg header_listTeacherMsg header_listMsgCheck" id="defaultBtn">首页</li>
<li class="header_listMsg" id="liveBtn" data="最新直播课程">直播课堂</li>
<li class="header_listMsg header_listTeacherMsg" id="lanclassBtn" data="最新互动课程">互动课堂</li>
<li class="header_listMsg header_listTeacherMsg" id="teacherBtn" data="推荐老师">老师</li>
</ul>
<div class="header_seek">
<input type="text" class="header_seekInput">
<button class="header_seekBtn"><img src="" alt=""></button>
<button class="header_seekBtn iconfont">&#xe642;</button>
</div>
<ul class="DownloadLoginBox">
<li class="androidDownload">
移动端下载
</li>
<li class="userNews iconfont">&#xe608;</li>
<li class="userLoginBtn" id="homeUserLoginBtn"></li>
<li class="userNews iconfont">&#xe6a5;</li>
<li class="userLoginBtn">
<img class="userLoginBtnImg" id="homeUserLoginBtn" src="images/u293.png" alt="">
</li>
</ul>
</div>
</div>
... ... @@ -50,124 +52,34 @@
<div class="curriculumBox" id="liveListBox">
<div class="curriculumHandler">
<p class="curriculumTitle" id="liveCoursesTitle">最新直播课程</p>
<p class="curriculumMove">更多</p>
<img class="curriculumIcon" src="images/more.png" alt="">
<p class="curriculumMove" id="liveBtnMove" data="1">更多</p>
<label for="liveBtnMove"></label>
</div>
<div class="curriculumListBox" id="liveList">
<div class="curriculumList">
<img class="curriculumListImg" src="" alt="">
<p class="curriculumListTit">初一英语阅读理解习题课</p>
<p class="curriculumListInfo">
<span class="curriculumListTime">今天 09:00-21:30</span>
<span class="curriculumListNum">3200人已预约</span>
</p>
</div>
<div class="curriculumList">
<img class="curriculumListImg" src="" alt="">
<p class="curriculumListTit">初一英语阅读理解习题课</p>
<p class="curriculumListInfo">
<span class="curriculumListTime">今天 09:00-21:30</span>
<span class="curriculumListNum">3200人已预约</span>
</p>
</div>
<div class="curriculumList">
<img class="curriculumListImg" src="" alt="">
<p class="curriculumListTit">初一英语阅读理解习题课</p>
<p class="curriculumListInfo">
<span class="curriculumListTime">今天 09:00-21:30</span>
<span class="curriculumListNum">3200人已预约</span>
</p>
</div>
<div class="curriculumList">
<img class="curriculumListImg" src="" alt="">
<p class="curriculumListTit">初一英语阅读理解习题课</p>
<p class="curriculumListInfo">
<span class="curriculumListTime">今天 09:00-21:30</span>
<span class="curriculumListNum">3200人已预约</span>
</p>
</div>
<!--最新直播课程列表-->
<img class="loadingImg" src="images/loading.gif" alt="">
</div>
</div>
<div class="curriculumBox" id="lanclassListBox ">
<div class="curriculumHandler">
<p class="curriculumTitle" id="lessonsTitle">最新互动课程</p>
<p class="curriculumMove">更多</p>
<img class="curriculumIcon" src="images/more.png" alt="">
<p class="curriculumMove" id="lanclassBtnMove" data="2">更多</p>
<label for="lanclassBtnMove"></label>
</div>
<div class="curriculumListBox" id="lanclassList">
<div class="curriculumList">
<img class="curriculumListImg" src="" alt="">
<p class="curriculumListTit">初一英语阅读理解习题课</p>
<p class="curriculumListInfo">
<span class="curriculumListTime">今天 09:00-21:30</span>
<span class="curriculumListNum">3200人已预约</span>
</p>
</div>
<div class="curriculumList">
<img class="curriculumListImg" src="" alt="">
<p class="curriculumListTit">初一英语阅读理解习题课</p>
<p class="curriculumListInfo">
<span class="curriculumListTime">今天 09:00-21:30</span>
<span class="curriculumListNum">3200人已预约</span>
</p>
</div>
<div class="curriculumList">
<img class="curriculumListImg" src="" alt="">
<p class="curriculumListTit">初一英语阅读理解习题课</p>
<p class="curriculumListInfo">
<span class="curriculumListTime">今天 09:00-21:30</span>
<span class="curriculumListNum">3200人已预约</span>
</p>
</div>
<div class="curriculumList">
<img class="curriculumListImg" src="" alt="">
<p class="curriculumListTit">初一英语阅读理解习题课</p>
<p class="curriculumListInfo">
<span class="curriculumListTime">今天 09:00-21:30</span>
<span class="curriculumListNum">3200人已预约</span>
</p>
</div>
<!--最新互动课程列表-->
<img class="loadingImg" src="images/loading.gif" alt="">
</div>
</div>
<div class="curriculumBox curriculumBox1" id="teacherIntroBox">
<div class="curriculumHandler">
<p class="curriculumTitle">推荐老师</p>
<p class="curriculumMove">更多</p>
<img class="curriculumIcon" src="images/more.png" alt="">
<p class="curriculumTitle" id="teacherTitle">推荐老师</p>
<p class="curriculumMove" id="teacherBtnMove" data="3">更多</p>
<label for="teacherBtnMove"></label>
</div>
<div class="curriculumListBox" id="teacherIntro">
<div class="curriculumList">
<img class="curriculumListImg" src="" alt="">
<p class="curriculumListTit">初一英语阅读理解习题课</p>
<p class="curriculumListInfo">
<span class="curriculumListTime">今天 09:00-21:30</span>
<span class="curriculumListNum">3200人已预约</span>
</p>
</div>
<div class="curriculumList">
<img class="curriculumListImg" src="" alt="">
<p class="curriculumListTit">初一英语阅读理解习题课</p>
<p class="curriculumListInfo">
<span class="curriculumListTime">今天 09:00-21:30</span>
<span class="curriculumListNum">3200人已预约</span>
</p>
</div>
<div class="curriculumList">
<img class="curriculumListImg" src="" alt="">
<p class="curriculumListTit">初一英语阅读理解习题课</p>
<p class="curriculumListInfo">
<span class="curriculumListTime">今天 09:00-21:30</span>
<span class="curriculumListNum">3200人已预约</span>
</p>
</div>
<div class="curriculumList">
<img class="curriculumListImg" src="" alt="">
<p class="curriculumListTit">初一英语阅读理解习题课</p>
<p class="curriculumListInfo">
<span class="curriculumListTime">今天 09:00-21:30</span>
<span class="curriculumListNum">3200人已预约</span>
</p>
</div>
<!--推荐老师列表-->
<img class="loadingImg" src="images/loading.gif" alt="">
</div>
</div>
</div>
... ... @@ -185,68 +97,467 @@
</div>-->
</div>
</div>
<!--互动课堂详情-->
<div class="lanclassBox" style="display: none">
<div class="lanclassContent">
<img class="lanclassContentCover" src="" alt="">
<div class="lanclassContentCenter">
<div class="lanclassContentTitle">
初一语文阅读理解习题课
</div>
<div class="lanclassContentInfo">
<img class="lanclassContentInfoPortrait" id="lanclassContentInfoPortrait" src="images/collect.png" alt="">
<span class="lanclassContentInfoName" id="lanclassContentInfoName">张媛媛</span>
<!--直播课堂详情-->
<div class="lanclassBox" id="lanclassBox">
<div class="lanclassContent">
<img class="lanclassContentCover" id="lanclassContentCover" src="" alt="">
<div class="lanclassContentCenter">
<div class="lanclassContentTitle" id="lanclassContentTitle">
初一语文阅读理解习题课
</div>
<div class="lanclassContentInfo">
<img class="lanclassContentInfoPortrait" id="lanclassContentInfoPortrait" src="images/u293.png" alt="">
<span class="lanclassContentInfoName" id="lanclassContentInfoName">张媛媛</span>
</div>
<div class="lanclassContentInfoTime">
<span class="lanclassContentInfoTimeStart" id="lanclassContentInfoTimeStart">开始时间:2017-08-01 13:00:00</span>
<span class="lanclassContentInfoTimeEnd" id="lanclassContentInfoTimeEnd">结束时间:2017-08-01 13:00:00</span>
</div>
<div class="lanclassContentApply" id="lanclassContentApply">我要报名</div>
</div>
<div class="lanclassContentInfoTime">
<span class="lanclassContentInfoTimeStart" lanclassContentInfoTimeStart>开始时间:2017-08-01 13:00:00</span>
<span class="lanclassContentInfoTimeEnd" lanclassContentInfoTimeEnd>结束时间:2017-08-01 13:00:00</span>
<div class="lanclassContentRight">
<div class="thirdPartyIconBox">
<span id="weixinIcon" class="thirdPartyIcon weixinIcon iconfont">&#xe61e;</span>
<span id="qqIcon" class="thirdPartyIcon qqIcon iconfont">&#xe605;</span>
<span id="weiboIcon" class="thirdPartyIcon weiboIcon iconfont">&#xe6eb;</span>
</div>
<div class="collectBox" id="collectYes">
<img class="collectIcon" id="collectYesIcon" src="images/collect.png" alt="">
<span class="collectText">已收藏</span>
</div>
<div class="collectBox" id="collectNo">
<img class="collectIcon" id="collectNoIcon" src="images/not-collect.png" alt="">
<span class="collectText">未收藏</span>
</div>
</div>
<div class="lanclassContentApply" id="lanclassContentApply">我要报名</div>
</div>
<div class="lanclassContentRight">
<div class="thirdPartyIconBox">
<span id="weixinIcon" class="thirdPartyIcon weixinIcon iconfont">&#xe608;</span>
<span id="qqIcon" class="thirdPartyIcon qqIcon iconfont">&#xe608;</span>
<span id="weiboIcon" class="thirdPartyIcon weiboIcon iconfont">&#xe608;</span>
<div class="lanclassContent" id="lanclassIntroduce">
<p class="lanclassIntroduceTitle">
课程介绍
</p>
<p class="lanclassIntroduceContent" id="lanclassIntroduceDescription">
课程介绍Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet.
Proin gravida dolor sit amet lacus accumsan et viverra justo commodo. Proin sodales pulvinar
tempor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
Nam fermentum, nulla luctus pharetra vulputate, felis tellus mollis orci, sed rhoncus sapien nunc eget.
</p>
</div>
<div class="lanclassContent teacherInfos" id="teacherInfos">
<div class="lanclassIntroduceTitle" id="teacherInfoTitle">
老师简介
</div>
<div class="collectBox" id="collectYes">
<img class="collectIcon" id="collectYesIcon" src="images/collect.png" alt="">
<span class="collectText">已收藏</span>
<div class="teacherInfoData">
<span class="teacherInfoName">张媛媛</span>
<span class="teacherInfoSchool" id="teacherInfoSchool">北京外国语学院</span>
</div>
<div class="collectBox" id="collectNo">
<img class="collectIcon" id="collectNoIcon" src="images/not-collect.png" alt="">
<span class="collectText">未收藏</span>
<div class="lanclassIntroduceContent" id="teacherInfoContent">
课程介绍Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet.
Proin gravida dolor sit amet lacus accumsan et viverra justo commodo. Proin sodales pulvinar
tempor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
Nam fermentum, nulla luctus pharetra vulputate, felis tellus mollis orci, sed rhoncus
</div>
</div>
</div>
<div class="lanclassContent" id="lanclassIntroduce">
<p class="lanclassIntroduceTitle">
课程介绍
</p>
<p class="lanclassIntroduceContent">
课程介绍Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet.
Proin gravida dolor sit amet lacus accumsan et viverra justo commodo. Proin sodales pulvinar
tempor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
Nam fermentum, nulla luctus pharetra vulputate, felis tellus mollis orci, sed rhoncus sapien nunc eget.
</p>
<!--互动课堂详情页-->
<div class="teacherDetailBox" id="teacherDetailBox">
<div class="teacherDetailInfo">
<div class="teacherDetailInfoLeft">
<img class="teacherDetailInfoImg" id="teacherDetailInfoImg" src="" alt="">
<ul class="teacherDetailInfoDetailBox">
<li class="teacherDetailInfoDetailTit">
<span class="teacherDetailInfoDetailName" id="teacherDetailInfoDetailName">张媛媛</span>
<span class="teacherDetailInfoDetailSex" id="teacherDetailInfoDetailSex"></span>
</li>
<li class="teacherDetailInfoDetailSpeciality">
<span class="teacherDetailInfoDetail">专长:</span>
<span class="teacherDetailInfoDetailPoint" id="teacherDetailInfoDetailPoint">少儿英语</span>
</li>
<li class="teacherDetailInfoDetailLi">
<span class="teacherDetailInfoDetail">教龄:</span>
<span class="teacherDetailInfoDetailAge" id="teacherDetailInfoDetailAge">10年</span>
</li>
<li class="teacherDetailInfoDetailLi">
<span class="teacherDetailInfoDetail">评分:</span>
<span class="teacherDetailInfoDetailGrade" id="teacherDetailInfoDetailGrade">少儿英语</span>
</li>
</ul>
</div>
<div class="teacherDetailInfoRight">
<div class="teacherDetailReferralBox">
<p class="teacherDetailReferralTitle">
授课内容:
</p>
<p class="teacherDetailReferralContent" id="teacherDetailReferralContent">
授课内容授课内容授课内容授课内容授课内容授课内容授课内容授课内容授课内容授课内容授课内容授课内容
</p>
</div>
<button class="teacherDetailOrderBtn" id="orderBtn">我要预约</button>
</div>
</div>
<div class="teacherDetailContent">
<ul class="teacherDetailContentUl">
<li>
<span class="teacherDetailBasicsMsg">基本资料</span>
</li>
<li class="teacherDetailBasics">
<label class="teacherDetailBasicsTitle">教师职称: </label>
<span class="teacherDetailPost" id="teacherDetailPost">111</span>
</li>
<li class="teacherDetailBasics">
<label class="teacherDetailBasicsTitle">最高学历: </label>
<span id="teacherDetailEducation">111</span>
</li>
<li class="teacherDetailBasics">
<label class="teacherDetailBasicsTitle">毕业院校: </label>
<span id="teacherDetailAcademy">111</span>
</li>
<li class="teacherDetailBasics">
<label class="teacherDetailBasicsTitle">授课方式: </label>
<span id="teacherDetailWay">111</span>
</li>
<li class="teacherDetailBasics">
<label class="teacherDetailBasicsTitle">授课地区: </label>
<span id="teacherDetailArea">111</span>
</li>
<li class="teacherDetailBasics">
<label class="teacherDetailBasicsTitle">基本简介: </label>
<span id="teacherDetailSynopsis">111</span>
</li>
<li class="teacherDetailBasics">
<label class="teacherDetailBasicsTitle">教学特点: </label>
<span id="teacherDetailTrait">111</span>
</li>
</ul>
<div class="teacherDetailCurriculum">
<span class="teacherDetailCurriculumTitle">他的课程</span>
<span class="teacherDetailCurriculumList">《少儿英语上》</span>
<span class="teacherDetailCurriculumList">《少儿英语上》</span>
<span class="teacherDetailCurriculumList">《少儿英语上》</span>
<span class="teacherDetailCurriculumList">《少儿英语上》</span>
</div>
</div>
</div>
<div class="lanclassContent teacherInfos" id="teacherInfos">
<div class="lanclassIntroduceTitle" id="teacherInfoTitle">
老师简介
<!--管理员信息-->
<div class="classManagementBox" id="classManagementBox">
<div class="classManagementLeft" id="classManagementLeft">
<ul class="recordUl" id="recordUl">
<li class="recordLi">
<label for="courseManagement" class="iconfont">&#xe69a;</label>
<span class="recordLiText recordLiTextCheck" id="courseManagement">课程管理</span>
</li>
<li class="recordLi">
<label for="createClassBtn" class="iconfont">&#xe69b;</label>
<span class="recordLiText" id="createClassBtn">创建课堂</span>
</li>
<li class="recordLi">
<label for="classManagement" class="iconfont">&#xe69c;</label>
<span class="recordLiText" id="classManagement">班级管理</span>
</li>
<li class="recordLi">
<label for="teacherManagement" class="iconfont">&#xe69d;</label>
<span class="recordLiText" id="teacherManagement">老师管理</span>
</li>
<li class="recordLi">
<label for="aboutManagement" class="iconfont">&#xe69f;</label>
<span class="recordLiText" id="aboutManagement">约课管理</span>
</li>
<li class="recordLi">
<label for="RecordManagement" class="iconfont">&#xe6a0;</label>
<span class="recordLiText" id="RecordManagement">录制管理</span>
</li>
<li class="recordLi">
<label for="siteManagement" class="iconfont">&#xe6a3;</label>
<span class="recordLiText" id="siteManagement">站点配置</span>
</li>
<li class="recordLi">
<label for="reportManagement" class="iconfont">&#xe6a2;</label>
<span class="recordLiText" id="reportManagement">统计报告</span>
</li>
<li class="recordLi">
<label for="personManagement" class="iconfont">&#xe6a1;</label>
<span class="recordLiText" id="personManagement">个人设置</span>
</li>
</ul>
</div>
<div class="teacherInfoData">
<span class="teacherInfoName">张媛媛</span>
<span class="teacherInfoSchool">北京外国语学院</span>
<div class="classManagementRight" id="classManagementRight">
<div class="classManagementRightTitle" id="classManagementRightTitle">
<div class="liveInfoLeft" id="liveInfoList">
<div class="liveInfoLeftLi">正在直播</div>
<div class="liveInfoLeftLi">未开始</div>
<div class="liveInfoLeftLi">已结束</div>
</div>
<div class="liveInfoRight" id="liveInfoRight">
<input class="liveInfoRightInput" id="liveInfoRightInput" type="text">
<img class="liveInfoRightInputBtn" id="liveInfoRightInputBtn" src="images/nav_link_14.png" alt="">
</div>
<div class="liveInfoCenter" id="liveInfoCenter">
<span class="liveInfoCenterTime">时间</span>
<div class="liveInfoCenterLiveCase" id="liveInfoCenterLiveStart"></div>
<span class="liveInfoCenterTime"></span>
<div class="liveInfoCenterLiveCase" id="liveInfoCenterLiveEnd"></div>
</div>
</div>
<div class="classManagementRightContent">
<table width="100%" align="center" cellpadding="0" cellspacing="0" border="0" id="t_box" class="t_box">
<tbody>
<tr align="center" height="44" class="tr_center" bgcolor="#fff" bordercolor="#e6e6e6">
<th width="9%" class="tr_center">
课堂主题
</th>
<th width="8%" class="tr_center">
课堂号
</th>
<th width="8%" class="tr_center">
老师
</th>
<th width="6%" class="tr_center">
课堂状态
</th>
<th width="24%" class="tr_center">
课堂时间
</th>
<th width="6%" class="tr_center">
在线人数
</th>
<th width="22%" class="tr_center">
操作
</th>
</tr>
<tr align="center" bgcolor="#FFFFFF" height="44">
<td class="tr_main">
少儿英语
</td>
<td class="tr_main">
101545534
</td>
<td class="tr_main">
markettest
</td>
<td class="tr_main">
准备
</td>
<td class="tr_main" style="width:40px;">
2017-08-29 18:00:00 - 2017-08-29 23:00:00
</td>
<td class="tr_main">
0
</td>
<td class="tr_main tr_mainRight" align="center" >
<a class="classHandlePort" href="#">文档</a>
<a class="classHandlePort" href="">多媒体</a>
<a class="classHandlePort" href="">伴音</a>
<a class="classHandlePort" href="">修改</a>
<a class="classHandlePort" href="">删除</a>
<a class="classHandlePort" href="">加入课堂</a>
</td>
</tr>
</tbody>
</table>
</div>
<div class="classHandlerPageBox" id="classHandlerPageBox">
<table width="100%" align="center" cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr>
<td height="60" colspan="11" class="tr_bottom" style="">
<span class="classHandlerPageMsg" style="line-height: 38px; padding-left: 20px; float: left">第1页/共2页,有16个记录</span>
<ul class="classHandlerPageInfoBox">
<li class="classHandlerPageInfo">
<span id="classHandlerHomePage">首页</span>
</li>
<li class="classHandlerPageInfo">
<span id="classHandlerUpPage">上一页</span>
</li>
<li class="classHandlerPageInfo">
<span id="classHandlerDownPage">下一页</span>
</li>
<li class="classHandlerPageInfo">
<span id="classHandlerEndPage">尾页</span>
</li>
<li class="classHandlerPageInfo">
<input class="classHandlerPageInfoInput" type="text">
</li>
<li class="classHandlerPageInfo classHandlerPageInfoCheck">
<span id="classHandlerSpecificPage">GO</span>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="lanclassIntroduceContent" id="teacherInfoContent">
课程介绍Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet.
Proin gravida dolor sit amet lacus accumsan et viverra justo commodo. Proin sodales pulvinar
tempor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
Nam fermentum, nulla luctus pharetra vulputate, felis tellus mollis orci, sed rhoncus
</div>
<!--创建课堂-->
<div id="createClassBox" class="userSignBox createClassBox">
<div id="createClass" class="createClass">
<div class="createClassHandler">
<span class="createClassHandlerTitle">创建课堂</span>
<a href="javascript: void(0)" id="createClassA" class="createClassA iconfont">&#xe638;</a>
</div>
<div class="createClassContent">
<div class="scheduleForm" id="scheduleForm1" style="display: block;">
<div class="step_content">
<div class="scheduleWireBox">
<div class="scheduleWire"></div>
<div class="scheduleWireTitBox">
<span class="scheduleWireBoxTit">课堂信息</span>
<span class="scheduleWireBoxTit">时间信息</span>
<span class="scheduleWireBoxTit">功能信息</span>
<span class="scheduleWireBoxTit">创建完成</span>
</div>
<div class="scheduleWireIndBox">
<p class="scheduleWireInd">
<span class="scheduleWireIndText scheduleWireIndText1">1</span>
</p>
<p class="scheduleWireInd">
<span class="scheduleWireIndText">2</span>
</p>
<p class="scheduleWireInd">
<span class="scheduleWireIndText">3</span>
</p>
<p class="scheduleWireInd">
<span class="scheduleWireIndText">4</span>
</p>
</div>
<div class="scheduleWireBg"></div>
</div>
<div class="step_page1">
<div class="form_item">
<label class="step_page1Title">
课堂主题:
</label>
<div class="step_page1_widget">
<input id="classThemeUserName" name="classThemeUserName" type="text" class="classThemeInfo" placeholder="输入课堂主题" value="">1-32个任意字符
</div>
</div>
<div class="form_item">
<label class="step_page1Title">
主持人密码:
</label>
<div class="step_page1_widget">
<input id="classThemePassWord" name="classThemePassWord" type="text" class="classThemeInfo" placeholder="输入主持人密码" value="">1-32个任意字符
</div>
</div>
<div class="form_item public_form_item">
<label class="step_page1Title">
是否公开课堂:
</label>
<div class="step_page1_widget">
<input class="allowPublic" type="radio" name="allowPublic" id="publicYes" value="1" checked="checked">
<label for="publicYes" class="publicInfo">
</label>
<input class="allowPublic" type="radio" name="allowPublic" id="publicNot" value="0">
<label for="publicNot" class="publicInfo">
</label>
</div>
</div>
<div class="form_item public-widget">
<label class="step_page1Title">
课堂类型:
</label>
<div class="step_page1_widget">
<input class="allowPublic" type="radio" name="meetingType" id="meetingType" value="1" checked="checked">
<label for="meetingType" class="publicInfo">
1v1课堂
</label>
<input class="allowPublic" type="radio" name="meetingType" id="meetingType2" value="2">
<label for="meetingType2" class="publicInfo">
直播课堂
</label>
<input class="allowPublic" type="radio" name="meetingType" id="meetingType3" value="3">
<label for="meetingType3" class="publicInfo">
小班课
</label>
</div>
</div>
<div class="form_item public-widget" id="h5">
<label class="step_page1Title">
是否支持h5:
</label>
<div class="step_page1_widget">
<input class="allowPublic" type="radio" name="h5Module" id="h5ModuleYes" value="1" checked="checked">
<label for="h5ModuleYes" class="publicInfo">
</label>
<input class="allowPublic" type="radio" name="allowPublic" id="h5ModuleNo" value="0">
<label for="h5ModuleNo" class="publicInfo">
</label>
</div>
</div>
<div class="form_item confPassTR">
<label class="step_page1Title">
课堂密码:
</label>
<div class="step_page1_widget">
<input id="partcKey" name="partcKey" type="password" class="classThemeInfo input-text-show" placeholder="输入课堂密码">
<span class="form-required"></span>
<span class="form-tip"><span id="confPassTip" class="onShow" style="margin: 0px; padding: 0px; background-color: transparent; display: none; background-position: initial initial; background-repeat: initial initial;">
<div class="onShow">
1-16个任意字符
</div> </span> </span>
</div>
</div>
<div class="form_item describe-widget">
<label class="step_page1Title">
课堂描述:
</label>
<div class="step_page1_widget">
<textarea id="meeting_content" class="classDescribeArea" placeholder=" 给课堂添加描述..."></textarea>
<span class="count"><span id="nowCountSpan">0</span>/256</span>
</div>
</div>
</div>
<div class="form_button">
<input id="submit1" type="button" value="下一步" class="createClassBtn createClassConfirm">
<span class="createClassBtn main_closeBtn">取消</span>
</div>
</div>
</div>
<div class="scheduleForm" id="scheduleForm2">
<div class="step_content">
<div class="scheduleWireBox">
<div class="scheduleWire scheduleWire1"></div>
<div class="scheduleWireTitBox">
<span class="scheduleWireBoxTit">课堂信息</span>
<span class="scheduleWireBoxTit">时间信息</span>
<span class="scheduleWireBoxTit">功能信息</span>
<span class="scheduleWireBoxTit">创建完成</span>
</div>
<div class="scheduleWireIndBox">
<p class="scheduleWireInd">
<span class="scheduleWireIndText scheduleWireIndText1">1</span>
</p>
<p class="scheduleWireInd">
<span class="scheduleWireIndText scheduleWireIndText1">2</span>
</p>
<p class="scheduleWireInd">
<span class="scheduleWireIndText">3</span>
</p>
<p class="scheduleWireInd">
<span class="scheduleWireIndText">4</span>
</p>
</div>
<div class="scheduleWireBg"></div>
</div>
<div class="step_page2">
<div class="step_page1TimeBox">
<span class="step_page1Time">开始时间</span>
</div>
<div class="step_page1TimeBox">
<span class="step_page1Time">结束时间</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="footerBg">
<div class="footer">
<div class="footerLeft">
... ... @@ -336,15 +647,15 @@
</p>
<li class="openidOauthBox">
<p class="openidOauth openidOauth2" id="openWeixin">
<span class="weChatLogin iconfont">&#xe638;</span>
<span class="weChatLogin iconfont">&#xe61e;</span>
<span class="openidOauthTit">微信</span>
</p>
<p class="openidOauth openidOauth1" id="openQQ">
<span class="weChatLogin iconfont">&#xe638;</span>
<span class="weChatLogin iconfont">&#xe605;</span>
<span class="openidOauthTit">QQ</span>
</p>
<p class="openidOauth" id="openWeibo">
<span class="weChatLogin iconfont">&#xe638;</span>
<span class="iconfont weChatLogin">&#xe6eb;</span>
<span class="openidOauthTit">微博</span>
</p>
</li>
... ...
//*
// 创建课堂模块
// */
import Loger from "../Loger";
import Ape from "./Ape";
import xdysdk from "libs/xdysdk";
import DrawTool from "./DrawTool";
import LaserPen from "./LaserPen";
import $ from "jquery";
import ClassDataProxy from "proxy/ClassDataProxy";
import dateUI from 'libs/laydate';
let loger = Loger.getLoger('PC-CreateClassApe');
class CreateClassApe extends Ape {
constructor() {
super();
this.classDateList = {};//课堂的所有数据
this.addEvent();
this.init();
}
init() {
//判断列表在右侧时取消边距
this._judgeListPlace();
$('#collectYes').hide();
$('#createClassBtn').on('click',this._createClassBtnHandler.bind(this));
$('.recordLi').on('click',this._recordLiHandler.bind(this));
$('#createClassA').on('click',this._closeClassHandler.bind(this));
$('.main_closeBtn').on('click',this._closeClassHandler.bind(this));
//执行一个laydate实例
dateUI.render({
elem: '#liveInfoCenterLiveStart' //指定元素
});
//执行一个laydate实例
dateUI.render({
elem: '#liveInfoCenterLiveEnd' //指定元素
});
}
addEvent() {
}
_judgeListPlace(){
let i=(i%4);
$('#classifyListContent').find('.classifyList').eq(i==3).addClass('classifyListR');
}
_recordLiHandler(evt){
$(evt.target).addClass('recordLiTextCheck').siblings().removeClass('recordLiTextCheck');
}
_createClassBtnHandler(evt){
$('#createClassBox').show();
$('#scheduleForm1').show();
$('#scheduleForm2').hide();
$('#teacherDetailBox').hide();
$('#lanclassBox').hide();
}
_closeClassHandler(){
$('#createClassBox').hide();
}
}
export default CreateClassApe;
\ No newline at end of file
... ...
... ... @@ -10,19 +10,29 @@ import LaserPen from "./LaserPen";
import $ from "jquery";
import ClassDataProxy from "proxy/ClassDataProxy";
const classifyList = `<div class="classifyList {_classifyListR}" id="{_id}">
<img class="curriculumListImg" src="{_msgImg}" alt="">
<p class="curriculumListTit">{_classroomTitle}</p>
<p class="curriculumListInfo">
<span class="curriculumListTime">{_schoolTime}</span>
<span class="curriculumListNum">{_subscribeNum}</span>
</p>
</div>`;
let loger = Loger.getLoger('PC-HomeApe');
class HomeApe extends Ape {
constructor() {
super();
this.classDateList = {};//课堂的所有数据
//判断列表在右侧时取消边距
this._judgeListPlace();
this.addEvent();
this.init();
}
init() {
//判断列表在右侧时取消边距
this._judgeListPlace();
this.detailPage();
$('#defaultBtn').on('click',this._lanclassBtnHandler.bind(this));
}
... ... @@ -39,11 +49,65 @@ class HomeApe extends Ape {
}
}
_lanclassBtnHandler(evt){
$(evt.target).addClass('active').siblings().removeClass('active');
$(evt.target).addClass('header_listMsgCheck').siblings().removeClass('header_listMsgCheck');
$('#slideshow').show();
$('#defaultBox').show();
$('#classifyListBox').hide();
$('#teacherDetailBox').hide();
$('#lanclassBox').hide();
}
detailPage(){
let that = this;
$.ajax({
type: "POST",
url: 'http://192.168.31.8:3000/meeting/getMeeting',
headers: {'token':'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IlhXQnJlRU00T0swYTVqUUIyUTFicGtObHlxOUFWbXZkIiwibmFtZSI6ImFkbWluIiwiY29kZSI6MSwiaWF0IjoxNTAzNDUxODU0LCJleHAiOjIyODEwNTE4NTR9.3kTVzKd_jbP7l69nxOpNaFeSjVnnjZkagYMzRB8fjNo'},
success:function(_data){
// loger.log(_data,'成功')
//获取课堂数据
if(_data || _data.code == 200){
that._gainClassData(_data);
}
},
error:function(error){
console.log(error,'失败')
}
})
}
_gainClassData(_data){
//切换列表内容
this._classDateContent(_data.returnData.data);
}
_classDateContent(_data){
let liveList = $('#liveList');
let lanclassList = $('#lanclassList');
let teacherIntro = $('#teacherIntro');
liveList.empty();
lanclassList.empty();
teacherIntro.empty();
let _dataList = _data.meetingInfo;
for(let i = 0;i<_dataList.length;i++){
if(i<8){
let j = (i%4)==3;
let _classifyList = this._format(classifyList,{
_classifyListR : j?'classifyListR':'',
_id : _dataList[i].id,
_msgImg :'../images/u373.png',
_classroomTitle : _dataList[i].meetingName,
_schoolTime : '11',
_subscribeNum : _dataList[i].reservationNumber+'人已预约'
})
liveList.append(_classifyList);
lanclassList.append(_classifyList);
teacherIntro.append(_classifyList);
}
}
}
//工具类
_format(str, obj) {
return str.replace(/\{(\w+)\}/g, function (match, group, index) {
return obj[group];
});
};
}
export default new HomeApe;
\ No newline at end of file
export default HomeApe;
\ No newline at end of file
... ...
... ... @@ -11,7 +11,7 @@ import $ from "jquery";
import ClassDataProxy from "proxy/ClassDataProxy";
let loger = Loger.getLoger('PC-LanclassApe');
const classifyList = `<div class="classifyList {_classifyListR}">
const classifyList = `<div class="classifyList {_classifyListR}" id="{_id}">
<img class="curriculumListImg" src="{_msgImg}" alt="">
<p class="curriculumListTit">{_classroomTitle}</p>
<p class="curriculumListInfo">
... ... @@ -32,7 +32,9 @@ class LanclassApe extends Ape {
//判断列表在右侧时取消边距
this._judgeListPlace();
$('#collectYes').hide();
$('#lanclassBtn').on('click',this._lanclassBtnHandler.bind(this));
$('#lanclassBtn').on('click',this._lanclassBtnHandler.bind(this));//互动课堂
$('#lanclassBtnMove').on('click',this._lanclassBtnHandler.bind(this));//互动课堂
$('#classifyListBox').on('click','.pageNumBtn',this._pageNumBtnHandler.bind(this));//点击翻页
}
... ... @@ -45,24 +47,28 @@ class LanclassApe extends Ape {
$('#classifyListContent').find('.classifyList').eq(i==3).addClass('classifyListR');
}
_lanclassBtnHandler(evt){
$(evt.target).addClass('active').siblings().removeClass('active');
let _ele = $(evt.target);
if(_ele.attr('data')){
$('.header_listMsg').eq(_ele.attr('data')).addClass('header_listMsgCheck').siblings().removeClass('header_listMsgCheck');
}
$(evt.target).addClass('header_listMsgCheck').siblings().removeClass('header_listMsgCheck');
$('#slideshow').hide();
$('#defaultBox').hide();
$('#classifyListBox').show();
$('#teacherDetailBox').hide();
$('#lanclassBox').hide();
this.detailPage();
}
//点击翻页
_pageNumBtnHandler(evt){
let _ele = $(evt.target);
let that = this;
if(_ele.siblings().length > 0 ){
if(_ele.siblings().length > 0 && _ele.text()!= '...' ){
_ele.addClass('pageNumBtnCheck').siblings().removeClass('pageNumBtnCheck');
console.log(_ele.text(),111111111111111111111111111111111111)
$.ajax({
type: "PUT",
type: "POST",
url: 'http://192.168.31.8:3000/meeting/getMeeting',
headers: {'Content-Type': 'application/json',
'page':_ele.text(),
headers: {'page':_ele.text(),
'token':'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IlhXQnJlRU00T0swYTVqUUIyUTFicGtObHlxOUFWbXZkIiwibmFtZSI6ImFkbWluIiwiY29kZSI6MSwiaWF0IjoxNTAzNDUxODU0LCJleHAiOjIyODEwNTE4NTR9.3kTVzKd_jbP7l69nxOpNaFeSjVnnjZkagYMzRB8fjNo',
},
... ... @@ -86,10 +92,9 @@ class LanclassApe extends Ape {
detailPage(){
let that = this;
$.ajax({
type: "PUT",
type: "POST",
url: 'http://192.168.31.8:3000/meeting/getMeeting',
headers: {'Content-Type': 'application/json',
'token':'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IlhXQnJlRU00T0swYTVqUUIyUTFicGtObHlxOUFWbXZkIiwibmFtZSI6ImFkbWluIiwiY29kZSI6MSwiaWF0IjoxNTAzNDUxODU0LCJleHAiOjIyODEwNTE4NTR9.3kTVzKd_jbP7l69nxOpNaFeSjVnnjZkagYMzRB8fjNo'},
headers: {'token':'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IlhXQnJlRU00T0swYTVqUUIyUTFicGtObHlxOUFWbXZkIiwibmFtZSI6ImFkbWluIiwiY29kZSI6MSwiaWF0IjoxNTAzNDUxODU0LCJleHAiOjIyODEwNTE4NTR9.3kTVzKd_jbP7l69nxOpNaFeSjVnnjZkagYMzRB8fjNo'},
success:function(_data){
// loger.log(_data,'成功')
//获取课堂数据
... ... @@ -114,7 +119,7 @@ class LanclassApe extends Ape {
}
}
_classDateTitle(){
$('#classifyListTitle').html($('#lessonsTitle').html());
$('#classifyListTitle').html($('.header_listMsgCheck').attr('data'));
}
_classDateContent(_data){
let classifyListContent = $('#classifyListContent');
... ... @@ -124,6 +129,7 @@ class LanclassApe extends Ape {
let j = (i%4)==3;
let _classifyList = this._format(classifyList,{
_classifyListR : j?'classifyListR':'',
_id : _dataList[i].id,
_msgImg :'../images/u373.png',
_classroomTitle : _dataList[i].meetingName,
_schoolTime : '11',
... ... @@ -140,6 +146,7 @@ class LanclassApe extends Ape {
}
pagingConstruct(paging,total){
let classifyListBox = $('#classifyListBox');
$('.pageNumContentBox').remove();
let pagingDivInnerHTML = '<div class="pageNumContentBox"><div class="pageNumContent">';
let isHiddenExist = 0;
for(let i =1 ;i<=total;i++){
... ... @@ -151,7 +158,7 @@ class LanclassApe extends Ape {
isHiddenExist = 0;
}else{
if(isHiddenExist == 0){
pagingDivInnerHTML += '<span>...</span>';
pagingDivInnerHTML += '<span class="pageNumBtn">...</span>';
isHiddenExist = 1;
}
}
... ... @@ -167,4 +174,4 @@ class LanclassApe extends Ape {
});
};
}
export default new LanclassApe;
\ No newline at end of file
export default LanclassApe;
\ No newline at end of file
... ...
//*
// 列表详情模块
// */
import Loger from "../Loger";
import Ape from "./Ape";
import xdysdk from "libs/xdysdk";
import DrawTool from "./DrawTool";
import LaserPen from "./LaserPen";
import $ from "jquery";
import ClassDataProxy from "proxy/ClassDataProxy";
let loger = Loger.getLoger('PC-ListDetailsApe');
class ListDetailsApe extends Ape {
constructor() {
super();
this.addEvent();
this.init();
}
init() {
// this.detailPage();
$('#themeBox ').on('click','.classifyList',this._curriculumListHandler.bind(this));
}
addEvent() {
}
_curriculumListHandler(evt){
$('#slideshow').hide();
let _id = evt.currentTarget.id;
this.detailPage(_id);
}
detailPage(_id){
let that = this;
let signInfo = {
id: _id
}
$.ajax({
type: "post",
url: 'http://192.168.31.8:3000/meeting/getMeeting',
headers: {
'token':'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IlhXQnJlRU00T0swYTVqUUIyUTFicGtObHlxOUFWbXZkIiwibmFtZSI6ImFkbWluIiwiY29kZSI6MSwiaWF0IjoxNTAzNDUxODU0LCJleHAiOjIyODEwNTE4NTR9.3kTVzKd_jbP7l69nxOpNaFeSjVnnjZkagYMzRB8fjNo'
},
data:signInfo,
success:function(_data){
//获取课堂数据
if(_data || _data.code == 200){
that._gainClassData(_data);
}
},
error:function(error){
console.log(error,'失败')
}
})
}
_gainClassData(_data){
//切换列表内容
this._classDateContent(_data.returnData.data);
}
_classDateContent(_data){
let _dataList = _data.meetingInfo[0];
loger.log(_dataList)
if(_dataList.meetingType == 1){
console.log('互动课堂')
this._lanclassRender(_dataList);
}else if(_dataList.meetingType == 2){
console.log('直播课堂')
this._liveRender(_dataList);
}
}
//互动课堂
_lanclassRender(_dataList){
$('#defaultBox').hide();
$('#teacherDetailBox').show();
$('#teacherDetailInfoImg').attr('src','images/u293.png');//老师授课标题图片
$('#teacherDetailInfoDetailName').text(_dataList.userName);//老师名字
$('#teacherDetailInfoDetailSex').text();//老师性别
$('#teacherDetailInfoDetailPoint').text();//老师专长
$('#teacherDetailInfoDetailAge').text(_dataList.capacity+'年');//老师教龄
$('#teacherDetailInfoDetailGrade').text();//老师评分
$('#teacherDetailReferralContent').text();//老师授课内容
$('#teacherDetailPost').text();//老师职称
$('#teacherDetailEducation').text();//老师学历
$('#teacherDetailAcademy').text();//老师院校
$('#teacherDetailWay').text();//老师授课方式
$('#teacherDetailArea').text();//老师授课地区
$('#teacherDetailSynopsis').text();//老师授课简介
}
//直播课堂
_liveRender(_dataList){
$('#defaultBox').hide();
$('#lanclassBox').show();
$('#lanclassContentCover').attr('src','images/u373.png');//老师授课标题图片
$('#lanclassContentTitle').text();//老师授课标题
$('#lanclassContentInfoPortrait').text();//老师授课老师头像
$('#lanclassContentInfoName').text();//老师授课老师名字
$('#lanclassContentInfoTimeStart').text(_dataList.createTime);//老师授课开始时间
$('#lanclassContentInfoTimeEnd').text(_dataList.endTime);//老师授课结束时间
$('#collectYes');//老师授课是否收藏
$('#collectNo');//老师授课是否收藏
$('#lanclassIntroduceDescription').text();//老师授课课程介绍
$('#teacherInfoSchool').text();//老师学院
$('#teacherInfoContent').text();//老师专业等级信息
}
}
export default ListDetailsApe;
\ No newline at end of file
... ...
//*
// 互动课堂模块
// */
import Loger from "../Loger";
import Ape from "./Ape";
import xdysdk from "libs/xdysdk";
import DrawTool from "./DrawTool";
import LaserPen from "./LaserPen";
import $ from "jquery";
import ClassDataProxy from "proxy/ClassDataProxy";
let loger = Loger.getLoger('PC-LanclassApe');
const classifyList = `<div class="classifyList {_classifyListR}" id="{_id}">
<img class="curriculumListImg" src="{_msgImg}" alt="">
<p class="curriculumListTit">{_classroomTitle}</p>
<p class="curriculumListInfo">
<span class="curriculumListTime">{_schoolTime}</span>
<span class="curriculumListNum">{_subscribeNum}</span>
</p>
</div>`;
class LanclassApe extends Ape {
constructor() {
super();
this.classDateList = {};//课堂的所有数据
this.addEvent();
this.init();
}
init() {
//判断列表在右侧时取消边距
this._judgeListPlace();
$('#collectYes').hide();
$('#liveBtn').on('click',this._lanclassBtnHandler.bind(this));//直播课堂
$('#liveBtnMove').on('click',this._lanclassBtnHandler.bind(this));//直播课堂
$('#classifyListBox').on('click','.pageNumBtn',this._pageNumBtnHandler.bind(this));//点击翻页
}
addEvent() {
}
_judgeListPlace(){
let i=(i%4);
$('#classifyListContent').find('.classifyList').eq(i==3).addClass('classifyListR');
}
_lanclassBtnHandler(evt){
let _ele = $(evt.target);
if(_ele.attr('data')){
$('.header_listMsg').eq(_ele.attr('data')).addClass('header_listMsgCheck').siblings().removeClass('header_listMsgCheck');
}
$(evt.target).addClass('header_listMsgCheck').siblings().removeClass('header_listMsgCheck');
$('#slideshow').hide();
$('#defaultBox').hide();
$('#classifyListBox').show();
$('#teacherDetailBox').hide();
$('#lanclassBox').hide();
this.detailPage();
}
//点击翻页
_pageNumBtnHandler(evt){
let _ele = $(evt.target);
let that = this;
if(_ele.siblings().length > 0 && _ele.text()!= '...' ){
_ele.addClass('pageNumBtnCheck').siblings().removeClass('pageNumBtnCheck');
$.ajax({
type: "POST",
url: 'http://192.168.31.8:3000/meeting/getMeeting',
headers: {'page':_ele.text(),
'token':'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IlhXQnJlRU00T0swYTVqUUIyUTFicGtObHlxOUFWbXZkIiwibmFtZSI6ImFkbWluIiwiY29kZSI6MSwiaWF0IjoxNTAzNDUxODU0LCJleHAiOjIyODEwNTE4NTR9.3kTVzKd_jbP7l69nxOpNaFeSjVnnjZkagYMzRB8fjNo',
},
success:function(_data){
if(_data != 200 ){
// loger.warn(_data.data.msg)
}
that.classDateList = _data.returnData.data;
//切换列表内容
that._classDateContent(that.classDateList);
loger.log(_data,'成功')
},
error:function(error){
console.log(error,'失败')
}
})
}else{
return;
}
}
detailPage(){
let that = this;
$.ajax({
type: "POST",
url: 'http://192.168.31.8:3000/meeting/getMeeting',
headers: {'token':'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IlhXQnJlRU00T0swYTVqUUIyUTFicGtObHlxOUFWbXZkIiwibmFtZSI6ImFkbWluIiwiY29kZSI6MSwiaWF0IjoxNTAzNDUxODU0LCJleHAiOjIyODEwNTE4NTR9.3kTVzKd_jbP7l69nxOpNaFeSjVnnjZkagYMzRB8fjNo'},
success:function(_data){
// loger.log(_data,'成功')
//获取课堂数据
that._gainClassData(_data);
},
error:function(error){
console.log(error,'失败')
}
})
}
_gainClassData(_data){
if(_data || _data.code == 200){
this.classDateList = _data.returnData.data;
let classifyListContent = $('#classifyListContent');
classifyListContent.empty();
//切换列表分类的标题
this._classDateTitle();
//切换列表内容
this._classDateContent(this.classDateList);
//页码
this._classDatepageNum(this.classDateList);
}
}
_classDateTitle(){
$('#classifyListTitle').html($('.header_listMsgCheck').attr('data'));
}
_classDateContent(_data){
let classifyListContent = $('#classifyListContent');
classifyListContent.empty();
let _dataList = _data.meetingInfo;
for(let i = 0;i<_dataList.length;i++){
let j = (i%4)==3;
let _classifyList = this._format(classifyList,{
_classifyListR : j?'classifyListR':'',
_id : _dataList[i].id,
_msgImg :'../images/u373.png',
_classroomTitle : _dataList[i].meetingName,
_schoolTime : '11',
_subscribeNum : _dataList[i].reservationNumber+'人已预约'
})
classifyListContent.append(_classifyList);
}
}
_classDatepageNum(_data){ //page
let _pageContent = _data.count;
let _pageNum = Math.ceil(_pageContent / _data.pageno);
this.pagingConstruct(1,_pageNum);
}
pagingConstruct(paging,total){
let classifyListBox = $('#classifyListBox');
$('.pageNumContentBox').remove();
let pagingDivInnerHTML = '<div class="pageNumContentBox"><div class="pageNumContent">';
let isHiddenExist = 0;
for(let i =1 ;i<=total;i++){
if(i == paging){
pagingDivInnerHTML +='<span class="pageNumBtn pageNumBtnCheck">'+i+'</span>';
}else{
if (i < 4 || i < (paging + 4) && i > (paging - 2) && i < (total / 2 + 2) || i > (total - 2)) {
pagingDivInnerHTML +='<span class="pageNumBtn">'+i+'</span>';
isHiddenExist = 0;
}else{
if(isHiddenExist == 0){
pagingDivInnerHTML += '<span class="pageNumBtn">...</span>';
isHiddenExist = 1;
}
}
}
}
pagingDivInnerHTML += '</div></div>';
classifyListBox.append(pagingDivInnerHTML);
}
//工具类
_format(str, obj) {
return str.replace(/\{(\w+)\}/g, function (match, group, index) {
return obj[group];
});
};
}
export default LanclassApe;
\ No newline at end of file
... ...
//*
// 标注模块
// 登录注册模块
// */
import Loger from "../Loger";
... ... @@ -236,4 +236,4 @@ class LoginOrRegister extends Ape {
}
}
export default new LoginOrRegister;
\ No newline at end of file
export default LoginOrRegister;
\ No newline at end of file
... ...
//*
// 标注模块
// 图片轮播
// */
import Loger from "../Loger";
... ...
//*
// 老师模块
// */
import Loger from "../Loger";
import Ape from "./Ape";
import xdysdk from "libs/xdysdk";
import DrawTool from "./DrawTool";
import LaserPen from "./LaserPen";
import $ from "jquery";
import ClassDataProxy from "proxy/ClassDataProxy";
//import lyzCalendar from "css/lyz.calendar.css";
let loger = Loger.getLoger('PC-TeacherDetailApe');
const classifyList = `<div class="classifyList {_classifyListR}" id="{_id}">
<img class="curriculumListImg" src="{_msgImg}" alt="">
<p class="curriculumListTit">{_classroomTitle}</p>
<p class="curriculumListInfo">
<span class="curriculumListTime">{_schoolTime}</span>
<span class="curriculumListNum">{_subscribeNum}</span>
</p>
</div>`;
class TeacherDetailApe extends Ape {
constructor() {
super();
this.classDateList = {};//课堂的所有数据
this.addEvent();
this.init();
}
init() {
$('#collectYes').hide();
$('#teacherBtn').on('click',this._teacherBtnHandler.bind(this));//推荐老师
$('#teacherBtnMove').on('click',this._teacherBtnHandler.bind(this));//推荐老师
$('#classifyListBox').on('click','.pageNumBtn',this._pageNumBtnHandler.bind(this));//点击翻页
}
addEvent() {
}
_teacherBtnHandler(evt){
let _ele = $(evt.target);
if(_ele.attr('data')){
$('.header_listMsg').eq(_ele.attr('data')).addClass('header_listMsgCheck').siblings().removeClass('header_listMsgCheck');
}
$(evt.target).addClass('header_listMsgCheck').siblings().removeClass('header_listMsgCheck');
$('#slideshow').hide();
$('#defaultBox').hide();
$('#classifyListBox').show();
$('#teacherDetailBox').hide();
$('#lanclassBox').hide();
this.detailPage();
}
//点击翻页
_pageNumBtnHandler(evt){
let _ele = $(evt.target);
let that = this;
if(_ele.siblings().length > 0 && _ele.text()!= '...' ){
_ele.addClass('pageNumBtnCheck').siblings().removeClass('pageNumBtnCheck');
$.ajax({
type: "POST",
url: 'http://192.168.31.8:3000/meeting/getMeeting',
headers: {'page':_ele.text(),
'token':'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IlhXQnJlRU00T0swYTVqUUIyUTFicGtObHlxOUFWbXZkIiwibmFtZSI6ImFkbWluIiwiY29kZSI6MSwiaWF0IjoxNTAzNDUxODU0LCJleHAiOjIyODEwNTE4NTR9.3kTVzKd_jbP7l69nxOpNaFeSjVnnjZkagYMzRB8fjNo',
},
success:function(_data){
if(_data != 200 ){
// loger.warn(_data.data.msg)
}
that.classDateList = _data.returnData.data;
//切换列表内容
that._classDateContent(that.classDateList);
loger.log(_data,'成功')
},
error:function(error){
console.log(error,'失败')
}
})
}else{
return;
}
}
detailPage(){
let that = this;
$.ajax({
type: "POST",
url: 'http://192.168.31.8:3000/meeting/getMeeting',
headers: {'token':'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IlhXQnJlRU00T0swYTVqUUIyUTFicGtObHlxOUFWbXZkIiwibmFtZSI6ImFkbWluIiwiY29kZSI6MSwiaWF0IjoxNTAzNDUxODU0LCJleHAiOjIyODEwNTE4NTR9.3kTVzKd_jbP7l69nxOpNaFeSjVnnjZkagYMzRB8fjNo'},
success:function(_data){
// loger.log(_data,'成功')
//获取课堂数据
that._gainClassData(_data);
},
error:function(error){
console.log(error,'失败')
}
})
}
_gainClassData(_data){
if(_data || _data.code == 200){
this.classDateList = _data.returnData.data;
let classifyListContent = $('#classifyListContent');
classifyListContent.empty();
//切换列表分类的标题
this._classDateTitle();
//切换列表内容
this._classDateContent(this.classDateList);
//页码
this._classDatepageNum(this.classDateList);
}
}
_classDateTitle(){
$('#classifyListTitle').html($('#teacherTitle').html());
}
_classDateContent(_data){
let classifyListContent = $('#classifyListContent');
classifyListContent.empty();
let _dataList = _data.meetingInfo;
for(let i = 0;i<_dataList.length;i++){
let j = (i%4)==3;
let _classifyList = this._format(classifyList,{
_classifyListR : j?'classifyListR':'',
_id : _dataList[i].id,
_msgImg :'../images/u373.png',
_classroomTitle : _dataList[i].meetingName,
_schoolTime : '11',
_subscribeNum : _dataList[i].reservationNumber+'人已预约'
})
classifyListContent.append(_classifyList);
}
}
_classDatepageNum(_data){ //page
let _pageContent = _data.count;
let _pageNum = Math.ceil(_pageContent / _data.pageno);
this.pagingConstruct(1,_pageNum);
}
pagingConstruct(paging,total){
let classifyListBox = $('#classifyListBox');
$('.pageNumContentBox').remove();
let pagingDivInnerHTML = '<div class="pageNumContentBox"><div class="pageNumContent">';
let isHiddenExist = 0;
for(let i =1 ;i<=total;i++){
if(i == paging){
pagingDivInnerHTML +='<span class="pageNumBtn pageNumBtnCheck">'+i+'</span>';
}else{
if (i < 4 || i < (paging + 4) && i > (paging - 2) && i < (total / 2 + 2) || i > (total - 2)) {
pagingDivInnerHTML +='<span class="pageNumBtn">'+i+'</span>';
isHiddenExist = 0;
}else{
if(isHiddenExist == 0){
pagingDivInnerHTML += '<span class="pageNumBtn">...</span>';
isHiddenExist = 1;
}
}
}
}
pagingDivInnerHTML += '</div></div>';
classifyListBox.append(pagingDivInnerHTML);
}
//工具类
_format(str, obj) {
return str.replace(/\{(\w+)\}/g, function (match, group, index) {
return obj[group];
});
};
}
export default TeacherDetailApe;
\ No newline at end of file
... ...
/*www.jq22.com*/
.calendar { POSITION: absolute; WIDTH:190px; HEIGHT: 180px; PADDING:0;DISPLAY: none; FLOAT: left;border:1px solid #819dba;background:#fff;}
.calendar .calMain { WIDTH:100%; HEIGHT:180px; FLOAT: left; OVERFLOW: hidden; POSITION: absolute; }
.calendar .calMain .calTitle { WIDTH: 100%; FLOAT: left; HEIGHT: 23px; BACKGROUND: #fff; OVERFLOW: hidden; }
.calendar .calMain .calTitle .t_date { WIDTH: 149px; FLOAT: left; HEIGHT: 23px; COLOR: #51729D; FONT-WEIGHT: bold; LINE-HEIGHT: 23px; TEXT-ALIGN: center; }
.calendar .calMain .calTitle .prevMonth { WIDTH: 15px; HEIGHT: 15px; FLOAT: left; MARGIN: 8px 0 0 5px; CURSOR: pointer; BACKGROUND: url(../images/date_bg.png) no-repeat 5px -87px; }
.calendar .calMain .calTitle .nextMonth { WIDTH: 15px; HEIGHT: 15px; FLOAT: right; MARGIN: 8px 5px 0 0; CURSOR: pointer; BACKGROUND: url(../images/date_bg.png) no-repeat 6px -157px; }
.calendar .calMain .calTitle .currentYear { }
.calendar .calMain .calTitle .currentMonth { }
.calendar .calMain .calTitle .currentYearText { FLOAT: left; MARGIN: 0 0px 0 39px; CURSOR: pointer; }
.calendar .calMain .calTitle .currentMonthText { FLOAT: left; CURSOR: pointer; WIDTH: 30px; TEXT-ALIGN: right; }
.calendar .calMain .calContent { WIDTH: 378px; HEIGHT: 157px; FLOAT: left; }
.calendar .calMain .calContent .enabled { POSITION: absolute; WIDTH: 100%; HEIGHT: 157px; FLOAT: left; }
.calendar .calMain .calContent .reserve { POSITION: absolute; WIDTH:100%; HEIGHT: 157px; FLOAT: left; }
.calendar .calMain .calContent .tabD { WIDTH: 100%; FLOAT: left; BORDER-COLLAPSE: collapse; BORDER-SPACING: 0; BORDER: 0; }
.calendar .calMain .calContent .tabD th { BACKGROUND: url(../images/date_bg.png) repeat-x; LINE-HEIGHT: 22px; FONT-WEIGHT: normal; PADDING-BOTTOM: 4px; COLOR: #fff; }
.calendar .calMain .calContent .tabD td { COLOR: #1F3959; TEXT-ALIGN: center; LINE-HEIGHT: 19px; WIDTH: 27px; FONT-FAMILY: "Georgia"; }
.calendar .calMain .calContent .tabD td span { COLOR: #C0C0C0; }
.calendar .calMain .calContent .tabD td a { WIDTH: 23px; LINE-HEIGHT: 18px; FLOAT: left; MARGIN: 1px 0 0 2px; CURSOR: pointer; COLOR: #51729D; }
.calendar .calMain .calContent .tabD td .nextD { COLOR: #BCCADC; }
.calendar .calMain .calContent .tabD td .prevD { COLOR: #BCCADC; }
.calendar .calMain .calContent .tabD td .hover { WIDTH: 21px; LINE-HEIGHT: 16px; BORDER: 1px solid #7D99BD; FLOAT: left; MARGIN: 1px 0 0 2px; }
.calendar .calMain .calContent .tabD td .current { WIDTH: 21px; LINE-HEIGHT: 16px; BORDER: 1px solid #51729D; FLOAT: left; MARGIN: 1px 0 0 2px; }
.calendar .calMain .calContent .tabD td .select { WIDTH: 21px; LINE-HEIGHT: 16px; BACKGROUND: #51729D; BORDER: 1px solid #51729D; COLOR: #fff; FLOAT: left; MARGIN: 1px 0 0 2px; }
.calendar .calMain .calContent .tabM { WIDTH: 100%; FLOAT: left; BORDER-COLLAPSE: collapse; BORDER-SPACING: 0; BORDER: 0; }
.calendar .calMain .calContent .tabM td { COLOR: #1F3959; TEXT-ALIGN: center; HEIGHT: 50px; WIDTH: 47px; FONT-FAMILY: "Georgia"; }
.calendar .calMain .calContent .tabM td a { WIDTH: 42px; LINE-HEIGHT: 42px; FLOAT: left; MARGIN: 0px 0 0 2px; CURSOR: pointer; COLOR: #51729D; }
.calendar .calMain .calContent .tabM td .hover { WIDTH: 40px; LINE-HEIGHT: 40px; BORDER: 1px solid #7D99BD; FLOAT: left; MARGIN: 0px 0 0 2px; }
.calendar .calMain .calContent .tabM td .current { WIDTH: 40px; LINE-HEIGHT: 40px; BORDER: 1px solid #51729D; FLOAT: left; MARGIN: 0px 0 0 2px; }
.calendar .calMain .calContent .tabM td .select { WIDTH: 40px; LINE-HEIGHT: 40px; BACKGROUND: #51729D; BORDER: 1px solid #51729D; COLOR: #fff; FLOAT: left; MARGIN: 0px 0 0 2px; }
.calendar .calMain .calContent .tabY { WIDTH: 100%; FLOAT: left; BORDER-COLLAPSE: collapse; BORDER-SPACING: 0; BORDER: 0; }
.calendar .calMain .calContent .tabY td { COLOR: #1F3959; TEXT-ALIGN: center; HEIGHT: 50px; WIDTH: 47px; FONT-FAMILY: "Georgia"; }
.calendar .calMain .calContent .tabY td a { WIDTH: 42px; LINE-HEIGHT: 42px; FLOAT: left; MARGIN: 0px 0 0 2px; CURSOR: pointer; COLOR: #51729D; }
.calendar .calMain .calContent .tabY td .nextY { COLOR: #BCCADC; }
.calendar .calMain .calContent .tabY td .prevY { COLOR: #BCCADC; }
.calendar .calMain .calContent .tabY td .hover { WIDTH: 40px; LINE-HEIGHT: 40px; BORDER: 1px solid #7D99BD; FLOAT: left; MARGIN: 0px 0 0 2px; }
.calendar .calMain .calContent .tabY td .current { WIDTH: 40px; LINE-HEIGHT: 40px; BORDER: 1px solid #51729D; FLOAT: left; MARGIN: 0px 0 0 2px; }
.calendar .calMain .calContent .tabY td .select { WIDTH: 40px; LINE-HEIGHT: 40px; BACKGROUND: #51729D; BORDER: 1px solid #51729D; COLOR: #fff; FLOAT: left; MARGIN: 0px 0 0 2px; }
.calendar .calMain a:hover { TEXT-DECORATION: none; }
... ...
/**
* BxSlider v4.1.2 - Fully loaded, responsive content slider
* http://bxslider.com
*
* Copyright 2014, Steven Wanderski - http://stevenwanderski.com - http://bxcreative.com
* Written while drinking Belgian ales and listening to jazz
*
* Released under the MIT license - http://opensource.org/licenses/MIT
*/
;(function($){
var plugin = {};
var defaults = {
// GENERAL
mode: 'horizontal',
slideSelector: '',
infiniteLoop: true,
hideControlOnEnd: false,
speed: 500,
easing: null,
slideMargin: 0,
startSlide: 0,
randomStart: false,
captions: false,
ticker: false,
tickerHover: false,
adaptiveHeight: false,
adaptiveHeightSpeed: 500,
video: false,
useCSS: true,
preloadImages: 'visible',
responsive: true,
slideZIndex: 50,
wrapperClass: 'bx-wrapper',
// TOUCH
touchEnabled: true,
swipeThreshold: 50,
oneToOneTouch: true,
preventDefaultSwipeX: true,
preventDefaultSwipeY: false,
// PAGER
pager: true,
pagerType: 'full',
pagerShortSeparator: ' / ',
pagerSelector: null,
buildPager: null,
pagerCustom: null,
// CONTROLS
controls: true,
nextText: 'Next',
prevText: 'Prev',
nextSelector: null,
prevSelector: null,
autoControls: false,
startText: 'Start',
stopText: 'Stop',
autoControlsCombine: false,
autoControlsSelector: null,
// AUTO
auto: false,
pause: 4000,
autoStart: true,
autoDirection: 'next',
autoHover: false,
autoDelay: 0,
autoSlideForOnePage: false,
// CAROUSEL
minSlides: 1,
maxSlides: 1,
moveSlides: 0,
slideWidth: 0,
// CALLBACKS
onSliderLoad: function() {},
onSlideBefore: function() {},
onSlideAfter: function() {},
onSlideNext: function() {},
onSlidePrev: function() {},
onSliderResize: function() {}
}
$.fn.bxSlider = function(options){
if(this.length == 0) return this;
// support mutltiple elements
if(this.length > 1){
this.each(function(){$(this).bxSlider(options)});
return this;
}
// create a namespace to be used throughout the plugin
var slider = {};
// set a reference to our slider element
var el = this;
plugin.el = this;
/**
* Makes slideshow responsive
*/
// first get the original window dimens (thanks alot IE)
var windowWidth = $(window).width();
var windowHeight = $(window).height();
/**
* ===================================================================================
* = PRIVATE FUNCTIONS
* ===================================================================================
*/
/**
* Initializes namespace settings to be used throughout plugin
*/
var init = function(){
// merge user-supplied options with the defaults
slider.settings = $.extend({}, defaults, options);
// parse slideWidth setting
slider.settings.slideWidth = parseInt(slider.settings.slideWidth);
// store the original children
slider.children = el.children(slider.settings.slideSelector);
// check if actual number of slides is less than minSlides / maxSlides
if(slider.children.length < slider.settings.minSlides) slider.settings.minSlides = slider.children.length;
if(slider.children.length < slider.settings.maxSlides) slider.settings.maxSlides = slider.children.length;
// if random start, set the startSlide setting to random number
if(slider.settings.randomStart) slider.settings.startSlide = Math.floor(Math.random() * slider.children.length);
// store active slide information
slider.active = { index: slider.settings.startSlide }
// store if the slider is in carousel mode (displaying / moving multiple slides)
slider.carousel = slider.settings.minSlides > 1 || slider.settings.maxSlides > 1;
// if carousel, force preloadImages = 'all'
if(slider.carousel) slider.settings.preloadImages = 'all';
// calculate the min / max width thresholds based on min / max number of slides
// used to setup and update carousel slides dimensions
slider.minThreshold = (slider.settings.minSlides * slider.settings.slideWidth) + ((slider.settings.minSlides - 1) * slider.settings.slideMargin);
slider.maxThreshold = (slider.settings.maxSlides * slider.settings.slideWidth) + ((slider.settings.maxSlides - 1) * slider.settings.slideMargin);
// store the current state of the slider (if currently animating, working is true)
slider.working = false;
// initialize the controls object
slider.controls = {};
// initialize an auto interval
slider.interval = null;
// determine which property to use for transitions
slider.animProp = slider.settings.mode == 'vertical' ? 'top' : 'left';
// determine if hardware acceleration can be used
slider.usingCSS = slider.settings.useCSS && slider.settings.mode != 'fade' && (function(){
// create our test div element
var div = document.createElement('div');
// css transition properties
var props = ['WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective'];
// test for each property
for(var i in props){
if(div.style[props[i]] !== undefined){
slider.cssPrefix = props[i].replace('Perspective', '').toLowerCase();
slider.animProp = '-' + slider.cssPrefix + '-transform';
return true;
}
}
return false;
}());
// if vertical mode always make maxSlides and minSlides equal
if(slider.settings.mode == 'vertical') slider.settings.maxSlides = slider.settings.minSlides;
// save original style data
el.data("origStyle", el.attr("style"));
el.children(slider.settings.slideSelector).each(function() {
$(this).data("origStyle", $(this).attr("style"));
});
// perform all DOM / CSS modifications
setup();
}
/**
* Performs all DOM and CSS modifications
*/
var setup = function(){
// wrap el in a wrapper
el.wrap('<div class="' + slider.settings.wrapperClass + '"><div class="bx-viewport"></div></div>');
// store a namspace reference to .bx-viewport
slider.viewport = el.parent();
// add a loading div to display while images are loading
slider.loader = $('<div class="bx-loading" />');
slider.viewport.prepend(slider.loader);
// set el to a massive width, to hold any needed slides
// also strip any margin and padding from el
el.css({
width: slider.settings.mode == 'horizontal' ? (slider.children.length * 100 + 215) + '%' : 'auto',
position: 'relative'
});
// if using CSS, add the easing property
if(slider.usingCSS && slider.settings.easing){
el.css('-' + slider.cssPrefix + '-transition-timing-function', slider.settings.easing);
// if not using CSS and no easing value was supplied, use the default JS animation easing (swing)
}else if(!slider.settings.easing){
slider.settings.easing = 'swing';
}
var slidesShowing = getNumberSlidesShowing();
// make modifications to the viewport (.bx-viewport)
slider.viewport.css({
width: '100%',
overflow: 'hidden',
position: 'relative'
});
slider.viewport.parent().css({
maxWidth: getViewportMaxWidth()
});
// make modification to the wrapper (.bx-wrapper)
if(!slider.settings.pager) {
slider.viewport.parent().css({
margin: '0 auto 0px'
});
}
// apply css to all slider children
slider.children.css({
'float': slider.settings.mode == 'horizontal' ? 'left' : 'none',
listStyle: 'none',
position: 'relative'
});
// apply the calculated width after the float is applied to prevent scrollbar interference
slider.children.css('width', getSlideWidth());
// if slideMargin is supplied, add the css
if(slider.settings.mode == 'horizontal' && slider.settings.slideMargin > 0) slider.children.css('marginRight', slider.settings.slideMargin);
if(slider.settings.mode == 'vertical' && slider.settings.slideMargin > 0) slider.children.css('marginBottom', slider.settings.slideMargin);
// if "fade" mode, add positioning and z-index CSS
if(slider.settings.mode == 'fade'){
slider.children.css({
position: 'absolute',
zIndex: 0,
display: 'none'
});
// prepare the z-index on the showing element
slider.children.eq(slider.settings.startSlide).css({zIndex: slider.settings.slideZIndex, display: 'block'});
}
// create an element to contain all slider controls (pager, start / stop, etc)
slider.controls.el = $('<div class="bx-controls" />');
// if captions are requested, add them
if(slider.settings.captions) appendCaptions();
// check if startSlide is last slide
slider.active.last = slider.settings.startSlide == getPagerQty() - 1;
// if video is true, set up the fitVids plugin
if(slider.settings.video) el.fitVids();
// set the default preload selector (visible)
var preloadSelector = slider.children.eq(slider.settings.startSlide);
if (slider.settings.preloadImages == "all") preloadSelector = slider.children;
// only check for control addition if not in "ticker" mode
if(!slider.settings.ticker){
// if pager is requested, add it
if(slider.settings.pager) appendPager();
// if controls are requested, add them
if(slider.settings.controls) appendControls();
// if auto is true, and auto controls are requested, add them
if(slider.settings.auto && slider.settings.autoControls) appendControlsAuto();
// if any control option is requested, add the controls wrapper
if(slider.settings.controls || slider.settings.autoControls || slider.settings.pager) slider.viewport.after(slider.controls.el);
// if ticker mode, do not allow a pager
}else{
slider.settings.pager = false;
}
// preload all images, then perform final DOM / CSS modifications that depend on images being loaded
loadElements(preloadSelector, start);
}
var loadElements = function(selector, callback){
var total = selector.find('img, iframe').length;
if (total == 0){
callback();
return;
}
var count = 0;
selector.find('img, iframe').each(function(){
$(this).one('load', function() {
if(++count == total) callback();
}).each(function() {
if(this.complete) $(this).load();
});
});
}
/**
* Start the slider
*/
var start = function(){
// if infinite loop, prepare additional slides
if(slider.settings.infiniteLoop && slider.settings.mode != 'fade' && !slider.settings.ticker){
var slice = slider.settings.mode == 'vertical' ? slider.settings.minSlides : slider.settings.maxSlides;
var sliceAppend = slider.children.slice(0, slice).clone().addClass('bx-clone');
var slicePrepend = slider.children.slice(-slice).clone().addClass('bx-clone');
el.append(sliceAppend).prepend(slicePrepend);
}
// remove the loading DOM element
slider.loader.remove();
// set the left / top position of "el"
setSlidePosition();
// if "vertical" mode, always use adaptiveHeight to prevent odd behavior
if (slider.settings.mode == 'vertical') slider.settings.adaptiveHeight = true;
// set the viewport height
slider.viewport.height(getViewportHeight());
// make sure everything is positioned just right (same as a window resize)
el.redrawSlider();
// onSliderLoad callback
slider.settings.onSliderLoad(slider.active.index);
// slider has been fully initialized
slider.initialized = true;
// bind the resize call to the window
if (slider.settings.responsive) $(window).bind('resize', resizeWindow);
// if auto is true and has more than 1 page, start the show
if (slider.settings.auto && slider.settings.autoStart && (getPagerQty() > 1 || slider.settings.autoSlideForOnePage)) initAuto();
// if ticker is true, start the ticker
if (slider.settings.ticker) initTicker();
// if pager is requested, make the appropriate pager link active
if (slider.settings.pager) updatePagerActive(slider.settings.startSlide);
// check for any updates to the controls (like hideControlOnEnd updates)
if (slider.settings.controls) updateDirectionControls();
// if touchEnabled is true, setup the touch events
if (slider.settings.touchEnabled && !slider.settings.ticker) initTouch();
}
/**
* Returns the calculated height of the viewport, used to determine either adaptiveHeight or the maxHeight value
*/
var getViewportHeight = function(){
var height = 0;
// first determine which children (slides) should be used in our height calculation
var children = $();
// if mode is not "vertical" and adaptiveHeight is false, include all children
if(slider.settings.mode != 'vertical' && !slider.settings.adaptiveHeight){
children = slider.children;
}else{
// if not carousel, return the single active child
if(!slider.carousel){
children = slider.children.eq(slider.active.index);
// if carousel, return a slice of children
}else{
// get the individual slide index
var currentIndex = slider.settings.moveSlides == 1 ? slider.active.index : slider.active.index * getMoveBy();
// add the current slide to the children
children = slider.children.eq(currentIndex);
// cycle through the remaining "showing" slides
for (i = 1; i <= slider.settings.maxSlides - 1; i++){
// if looped back to the start
if(currentIndex + i >= slider.children.length){
children = children.add(slider.children.eq(i - 1));
}else{
children = children.add(slider.children.eq(currentIndex + i));
}
}
}
}
// if "vertical" mode, calculate the sum of the heights of the children
if(slider.settings.mode == 'vertical'){
children.each(function(index) {
height += $(this).outerHeight();
});
// add user-supplied margins
if(slider.settings.slideMargin > 0){
height += slider.settings.slideMargin * (slider.settings.minSlides - 1);
}
// if not "vertical" mode, calculate the max height of the children
}else{
height = Math.max.apply(Math, children.map(function(){
return $(this).outerHeight(false);
}).get());
}
if(slider.viewport.css('box-sizing') == 'border-box'){
height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')) +
parseFloat(slider.viewport.css('border-top-width')) + parseFloat(slider.viewport.css('border-bottom-width'));
}else if(slider.viewport.css('box-sizing') == 'padding-box'){
height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom'));
}
return height;
}
/**
* Returns the calculated width to be used for the outer wrapper / viewport
*/
var getViewportMaxWidth = function(){
var width = '100%';
if(slider.settings.slideWidth > 0){
if(slider.settings.mode == 'horizontal'){
width = (slider.settings.maxSlides * slider.settings.slideWidth) + ((slider.settings.maxSlides - 1) * slider.settings.slideMargin);
}else{
width = slider.settings.slideWidth;
}
}
return width;
}
/**
* Returns the calculated width to be applied to each slide
*/
var getSlideWidth = function(){
// start with any user-supplied slide width
var newElWidth = slider.settings.slideWidth;
// get the current viewport width
var wrapWidth = slider.viewport.width();
// if slide width was not supplied, or is larger than the viewport use the viewport width
if(slider.settings.slideWidth == 0 ||
(slider.settings.slideWidth > wrapWidth && !slider.carousel) ||
slider.settings.mode == 'vertical'){
newElWidth = wrapWidth;
// if carousel, use the thresholds to determine the width
}else if(slider.settings.maxSlides > 1 && slider.settings.mode == 'horizontal'){
if(wrapWidth > slider.maxThreshold){
// newElWidth = (wrapWidth - (slider.settings.slideMargin * (slider.settings.maxSlides - 1))) / slider.settings.maxSlides;
}else if(wrapWidth < slider.minThreshold){
newElWidth = (wrapWidth - (slider.settings.slideMargin * (slider.settings.minSlides - 1))) / slider.settings.minSlides;
}
}
return newElWidth;
}
/**
* Returns the number of slides currently visible in the viewport (includes partially visible slides)
*/
var getNumberSlidesShowing = function(){
var slidesShowing = 1;
if(slider.settings.mode == 'horizontal' && slider.settings.slideWidth > 0){
// if viewport is smaller than minThreshold, return minSlides
if(slider.viewport.width() < slider.minThreshold){
slidesShowing = slider.settings.minSlides;
// if viewport is larger than minThreshold, return maxSlides
}else if(slider.viewport.width() > slider.maxThreshold){
slidesShowing = slider.settings.maxSlides;
// if viewport is between min / max thresholds, divide viewport width by first child width
}else{
var childWidth = slider.children.first().width() + slider.settings.slideMargin;
slidesShowing = Math.floor((slider.viewport.width() +
slider.settings.slideMargin) / childWidth);
}
// if "vertical" mode, slides showing will always be minSlides
}else if(slider.settings.mode == 'vertical'){
slidesShowing = slider.settings.minSlides;
}
return slidesShowing;
}
/**
* Returns the number of pages (one full viewport of slides is one "page")
*/
var getPagerQty = function(){
var pagerQty = 0;
// if moveSlides is specified by the user
if(slider.settings.moveSlides > 0){
if(slider.settings.infiniteLoop){
pagerQty = Math.ceil(slider.children.length / getMoveBy());
}else{
// use a while loop to determine pages
var breakPoint = 0;
var counter = 0
// when breakpoint goes above children length, counter is the number of pages
while (breakPoint < slider.children.length){
++pagerQty;
breakPoint = counter + getNumberSlidesShowing();
counter += slider.settings.moveSlides <= getNumberSlidesShowing() ? slider.settings.moveSlides : getNumberSlidesShowing();
}
}
// if moveSlides is 0 (auto) divide children length by sides showing, then round up
}else{
pagerQty = Math.ceil(slider.children.length / getNumberSlidesShowing());
}
return pagerQty;
}
/**
* Returns the number of indivual slides by which to shift the slider
*/
var getMoveBy = function(){
// if moveSlides was set by the user and moveSlides is less than number of slides showing
if(slider.settings.moveSlides > 0 && slider.settings.moveSlides <= getNumberSlidesShowing()){
return slider.settings.moveSlides;
}
// if moveSlides is 0 (auto)
return getNumberSlidesShowing();
}
/**
* Sets the slider's (el) left or top position
*/
var setSlidePosition = function(){
// if last slide, not infinite loop, and number of children is larger than specified maxSlides
if(slider.children.length > slider.settings.maxSlides && slider.active.last && !slider.settings.infiniteLoop){
if (slider.settings.mode == 'horizontal'){
// get the last child's position
var lastChild = slider.children.last();
var position = lastChild.position();
// set the left position
setPositionProperty(-(position.left - (slider.viewport.width() - lastChild.outerWidth())), 'reset', 0);
}else if(slider.settings.mode == 'vertical'){
// get the last showing index's position
var lastShowingIndex = slider.children.length - slider.settings.minSlides;
var position = slider.children.eq(lastShowingIndex).position();
// set the top position
setPositionProperty(-position.top, 'reset', 0);
}
// if not last slide
}else{
// get the position of the first showing slide
var position = slider.children.eq(slider.active.index * getMoveBy()).position();
// check for last slide
if (slider.active.index == getPagerQty() - 1) slider.active.last = true;
// set the repective position
if (position != undefined){
if (slider.settings.mode == 'horizontal') setPositionProperty(-position.left, 'reset', 0);
else if (slider.settings.mode == 'vertical') setPositionProperty(-position.top, 'reset', 0);
}
}
}
/**
* Sets the el's animating property position (which in turn will sometimes animate el).
* If using CSS, sets the transform property. If not using CSS, sets the top / left property.
*
* @param value (int)
* - the animating property's value
*
* @param type (string) 'slider', 'reset', 'ticker'
* - the type of instance for which the function is being
*
* @param duration (int)
* - the amount of time (in ms) the transition should occupy
*
* @param params (array) optional
* - an optional parameter containing any variables that need to be passed in
*/
var setPositionProperty = function(value, type, duration, params){
// use CSS transform
if(slider.usingCSS){
// determine the translate3d value
var propValue = slider.settings.mode == 'vertical' ? 'translate3d(0, ' + value + 'px, 0)' : 'translate3d(' + value + 'px, 0, 0)';
// add the CSS transition-duration
el.css('-' + slider.cssPrefix + '-transition-duration', duration / 1000 + 's');
if(type == 'slide'){
// set the property value
el.css(slider.animProp, propValue);
// bind a callback method - executes when CSS transition completes
el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(){
// unbind the callback
el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd');
updateAfterSlideTransition();
});
}else if(type == 'reset'){
el.css(slider.animProp, propValue);
}else if(type == 'ticker'){
// make the transition use 'linear'
el.css('-' + slider.cssPrefix + '-transition-timing-function', 'linear');
el.css(slider.animProp, propValue);
// bind a callback method - executes when CSS transition completes
el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(){
// unbind the callback
el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd');
// reset the position
setPositionProperty(params['resetValue'], 'reset', 0);
// start the loop again
tickerLoop();
});
}
// use JS animate
}else{
var animateObj = {};
animateObj[slider.animProp] = value;
if(type == 'slide'){
el.animate(animateObj, duration, slider.settings.easing, function(){
updateAfterSlideTransition();
});
}else if(type == 'reset'){
el.css(slider.animProp, value)
}else if(type == 'ticker'){
el.animate(animateObj, speed, 'linear', function(){
setPositionProperty(params['resetValue'], 'reset', 0);
// run the recursive loop after animation
tickerLoop();
});
}
}
}
/**
* Populates the pager with proper amount of pages
*/
var populatePager = function(){
var pagerHtml = '';
var pagerQty = getPagerQty();
// loop through each pager item
for(var i=0; i < pagerQty; i++){
var linkContent = '';
// if a buildPager function is supplied, use it to get pager link value, else use index + 1
if(slider.settings.buildPager && $.isFunction(slider.settings.buildPager)){
linkContent = slider.settings.buildPager(i);
slider.pagerEl.addClass('bx-custom-pager');
}else{
linkContent = i + 1;
slider.pagerEl.addClass('bx-default-pager');
}
// var linkContent = slider.settings.buildPager && $.isFunction(slider.settings.buildPager) ? slider.settings.buildPager(i) : i + 1;
// add the markup to the string
pagerHtml += '<div class="bx-pager-item"><a href="" data-slide-index="' + i + '" class="bx-pager-link">' + linkContent + '</a></div>';
};
// populate the pager element with pager links
slider.pagerEl.html(pagerHtml);
}
/**
* Appends the pager to the controls element
*/
var appendPager = function(){
if(!slider.settings.pagerCustom){
// create the pager DOM element
slider.pagerEl = $('<div class="bx-pager" />');
// if a pager selector was supplied, populate it with the pager
if(slider.settings.pagerSelector){
$(slider.settings.pagerSelector).html(slider.pagerEl);
// if no pager selector was supplied, add it after the wrapper
}else{
slider.controls.el.addClass('bx-has-pager').append(slider.pagerEl);
}
// populate the pager
populatePager();
}else{
slider.pagerEl = $(slider.settings.pagerCustom);
}
// assign the pager click binding
slider.pagerEl.on('click', 'a', clickPagerBind);
}
/**
* Appends prev / next controls to the controls element
*/
var appendControls = function(){
slider.controls.next = $('<a class="bx-next" href="">' + slider.settings.nextText + '</a>');
slider.controls.prev = $('<a class="bx-prev" href="">' + slider.settings.prevText + '</a>');
// bind click actions to the controls
slider.controls.next.bind('click', clickNextBind);
slider.controls.prev.bind('click', clickPrevBind);
// if nextSlector was supplied, populate it
if(slider.settings.nextSelector){
$(slider.settings.nextSelector).append(slider.controls.next);
}
// if prevSlector was supplied, populate it
if(slider.settings.prevSelector){
$(slider.settings.prevSelector).append(slider.controls.prev);
}
// if no custom selectors were supplied
if(!slider.settings.nextSelector && !slider.settings.prevSelector){
// add the controls to the DOM
slider.controls.directionEl = $('<div class="bx-controls-direction" />');
// add the control elements to the directionEl
slider.controls.directionEl.append(slider.controls.prev).append(slider.controls.next);
// slider.viewport.append(slider.controls.directionEl);
slider.controls.el.addClass('bx-has-controls-direction').append(slider.controls.directionEl);
}
}
/**
* Appends start / stop auto controls to the controls element
*/
var appendControlsAuto = function(){
slider.controls.start = $('<div class="bx-controls-auto-item"><a class="bx-start" href="">' + slider.settings.startText + '</a></div>');
slider.controls.stop = $('<div class="bx-controls-auto-item"><a class="bx-stop" href="">' + slider.settings.stopText + '</a></div>');
// add the controls to the DOM
slider.controls.autoEl = $('<div class="bx-controls-auto" />');
// bind click actions to the controls
slider.controls.autoEl.on('click', '.bx-start', clickStartBind);
slider.controls.autoEl.on('click', '.bx-stop', clickStopBind);
// if autoControlsCombine, insert only the "start" control
if(slider.settings.autoControlsCombine){
slider.controls.autoEl.append(slider.controls.start);
// if autoControlsCombine is false, insert both controls
}else{
slider.controls.autoEl.append(slider.controls.start).append(slider.controls.stop);
}
// if auto controls selector was supplied, populate it with the controls
if(slider.settings.autoControlsSelector){
$(slider.settings.autoControlsSelector).html(slider.controls.autoEl);
// if auto controls selector was not supplied, add it after the wrapper
}else{
slider.controls.el.addClass('bx-has-controls-auto').append(slider.controls.autoEl);
}
// update the auto controls
updateAutoControls(slider.settings.autoStart ? 'stop' : 'start');
}
/**
* Appends image captions to the DOM
*/
var appendCaptions = function(){
// cycle through each child
slider.children.each(function(index){
// get the image title attribute
var title = $(this).find('img:first').attr('title');
// append the caption
if (title != undefined && ('' + title).length) {
$(this).append('<div class="bx-caption"><span>' + title + '</span></div>');
}
});
}
/**
* Click next binding
*
* @param e (event)
* - DOM event object
*/
var clickNextBind = function(e){
// if auto show is running, stop it
if (slider.settings.auto) el.stopAuto();
el.goToNextSlide();
e.preventDefault();
}
/**
* Click prev binding
*
* @param e (event)
* - DOM event object
*/
var clickPrevBind = function(e){
// if auto show is running, stop it
if (slider.settings.auto) el.stopAuto();
el.goToPrevSlide();
e.preventDefault();
}
/**
* Click start binding
*
* @param e (event)
* - DOM event object
*/
var clickStartBind = function(e){
el.startAuto();
e.preventDefault();
}
/**
* Click stop binding
*
* @param e (event)
* - DOM event object
*/
var clickStopBind = function(e){
el.stopAuto();
e.preventDefault();
}
/**
* Click pager binding
*
* @param e (event)
* - DOM event object
*/
var clickPagerBind = function(e){
// if auto show is running, stop it
if (slider.settings.auto) el.stopAuto();
var pagerLink = $(e.currentTarget);
if(pagerLink.attr('data-slide-index') !== undefined){
var pagerIndex = parseInt(pagerLink.attr('data-slide-index'));
// if clicked pager link is not active, continue with the goToSlide call
if(pagerIndex != slider.active.index) el.goToSlide(pagerIndex);
e.preventDefault();
}
}
/**
* Updates the pager links with an active class
*
* @param slideIndex (int)
* - index of slide to make active
*/
var updatePagerActive = function(slideIndex){
// if "short" pager type
var len = slider.children.length; // nb of children
if(slider.settings.pagerType == 'short'){
if(slider.settings.maxSlides > 1) {
len = Math.ceil(slider.children.length/slider.settings.maxSlides);
}
slider.pagerEl.html( (slideIndex + 1) + slider.settings.pagerShortSeparator + len);
return;
}
// remove all pager active classes
slider.pagerEl.find('a').removeClass('active');
// apply the active class for all pagers
slider.pagerEl.each(function(i, el) { $(el).find('a').eq(slideIndex).addClass('active'); });
}
/**
* Performs needed actions after a slide transition
*/
var updateAfterSlideTransition = function(){
// if infinte loop is true
if(slider.settings.infiniteLoop){
var position = '';
// first slide
if(slider.active.index == 0){
// set the new position
position = slider.children.eq(0).position();
// carousel, last slide
}else if(slider.active.index == getPagerQty() - 1 && slider.carousel){
position = slider.children.eq((getPagerQty() - 1) * getMoveBy()).position();
// last slide
}else if(slider.active.index == slider.children.length - 1){
position = slider.children.eq(slider.children.length - 1).position();
}
if(position){
if (slider.settings.mode == 'horizontal') { setPositionProperty(-position.left, 'reset', 0); }
else if (slider.settings.mode == 'vertical') { setPositionProperty(-position.top, 'reset', 0); }
}
}
// declare that the transition is complete
slider.working = false;
// onSlideAfter callback
slider.settings.onSlideAfter(slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index);
}
/**
* Updates the auto controls state (either active, or combined switch)
*
* @param state (string) "start", "stop"
* - the new state of the auto show
*/
var updateAutoControls = function(state){
// if autoControlsCombine is true, replace the current control with the new state
if(slider.settings.autoControlsCombine){
slider.controls.autoEl.html(slider.controls[state]);
// if autoControlsCombine is false, apply the "active" class to the appropriate control
}else{
slider.controls.autoEl.find('a').removeClass('active');
slider.controls.autoEl.find('a:not(.bx-' + state + ')').addClass('active');
}
}
/**
* Updates the direction controls (checks if either should be hidden)
*/
var updateDirectionControls = function(){
if(getPagerQty() == 1){
slider.controls.prev.addClass('disabled');
slider.controls.next.addClass('disabled');
}else if(!slider.settings.infiniteLoop && slider.settings.hideControlOnEnd){
// if first slide
if (slider.active.index == 0){
slider.controls.prev.addClass('disabled');
slider.controls.next.removeClass('disabled');
// if last slide
}else if(slider.active.index == getPagerQty() - 1){
slider.controls.next.addClass('disabled');
slider.controls.prev.removeClass('disabled');
// if any slide in the middle
}else{
slider.controls.prev.removeClass('disabled');
slider.controls.next.removeClass('disabled');
}
}
}
/**
* Initialzes the auto process
*/
var initAuto = function(){
// if autoDelay was supplied, launch the auto show using a setTimeout() call
if(slider.settings.autoDelay > 0){
var timeout = setTimeout(el.startAuto, slider.settings.autoDelay);
// if autoDelay was not supplied, start the auto show normally
}else{
el.startAuto();
}
// if autoHover is requested
if(slider.settings.autoHover){
// on el hover
el.hover(function(){
// if the auto show is currently playing (has an active interval)
if(slider.interval){
// stop the auto show and pass true agument which will prevent control update
el.stopAuto(true);
// create a new autoPaused value which will be used by the relative "mouseout" event
slider.autoPaused = true;
}
}, function(){
// if the autoPaused value was created be the prior "mouseover" event
if(slider.autoPaused){
// start the auto show and pass true agument which will prevent control update
el.startAuto(true);
// reset the autoPaused value
slider.autoPaused = null;
}
});
}
}
/**
* Initialzes the ticker process
*/
var initTicker = function(){
var startPosition = 0;
// if autoDirection is "next", append a clone of the entire slider
if(slider.settings.autoDirection == 'next'){
el.append(slider.children.clone().addClass('bx-clone'));
// if autoDirection is "prev", prepend a clone of the entire slider, and set the left position
}else{
el.prepend(slider.children.clone().addClass('bx-clone'));
var position = slider.children.first().position();
startPosition = slider.settings.mode == 'horizontal' ? -position.left : -position.top;
}
setPositionProperty(startPosition, 'reset', 0);
// do not allow controls in ticker mode
slider.settings.pager = false;
slider.settings.controls = false;
slider.settings.autoControls = false;
// if autoHover is requested
if(slider.settings.tickerHover && !slider.usingCSS){
// on el hover
slider.viewport.hover(function(){
el.stop();
}, function(){
// calculate the total width of children (used to calculate the speed ratio)
var totalDimens = 0;
slider.children.each(function(index){
totalDimens += slider.settings.mode == 'horizontal' ? $(this).outerWidth(true) : $(this).outerHeight(true);
});
// calculate the speed ratio (used to determine the new speed to finish the paused animation)
var ratio = slider.settings.speed / totalDimens;
// determine which property to use
var property = slider.settings.mode == 'horizontal' ? 'left' : 'top';
// calculate the new speed
var newSpeed = ratio * (totalDimens - (Math.abs(parseInt(el.css(property)))));
tickerLoop(newSpeed);
});
}
// start the ticker loop
tickerLoop();
}
/**
* Runs a continuous loop, news ticker-style
*/
var tickerLoop = function(resumeSpeed){
speed = resumeSpeed ? resumeSpeed : slider.settings.speed;
var position = {left: 0, top: 0};
var reset = {left: 0, top: 0};
// if "next" animate left position to last child, then reset left to 0
if(slider.settings.autoDirection == 'next'){
position = el.find('.bx-clone').first().position();
// if "prev" animate left position to 0, then reset left to first non-clone child
}else{
reset = slider.children.first().position();
}
var animateProperty = slider.settings.mode == 'horizontal' ? -position.left : -position.top;
var resetValue = slider.settings.mode == 'horizontal' ? -reset.left : -reset.top;
var params = {resetValue: resetValue};
setPositionProperty(animateProperty, 'ticker', speed, params);
}
/**
* Initializes touch events
*/
var initTouch = function(){
// initialize object to contain all touch values
slider.touch = {
start: {x: 0, y: 0},
end: {x: 0, y: 0}
}
slider.viewport.bind('touchstart', onTouchStart);
}
/**
* Event handler for "touchstart"
*
* @param e (event)
* - DOM event object
*/
var onTouchStart = function(e){
if(slider.working){
e.preventDefault();
}else{
// record the original position when touch starts
slider.touch.originalPos = el.position();
var orig = e.originalEvent;
// record the starting touch x, y coordinates
slider.touch.start.x = orig.changedTouches[0].pageX;
slider.touch.start.y = orig.changedTouches[0].pageY;
// bind a "touchmove" event to the viewport
slider.viewport.bind('touchmove', onTouchMove);
// bind a "touchend" event to the viewport
slider.viewport.bind('touchend', onTouchEnd);
}
}
/**
* Event handler for "touchmove"
*
* @param e (event)
* - DOM event object
*/
var onTouchMove = function(e){
var orig = e.originalEvent;
// if scrolling on y axis, do not prevent default
var xMovement = Math.abs(orig.changedTouches[0].pageX - slider.touch.start.x);
var yMovement = Math.abs(orig.changedTouches[0].pageY - slider.touch.start.y);
// x axis swipe
if((xMovement * 3) > yMovement && slider.settings.preventDefaultSwipeX){
e.preventDefault();
// y axis swipe
}else if((yMovement * 3) > xMovement && slider.settings.preventDefaultSwipeY){
e.preventDefault();
}
if(slider.settings.mode != 'fade' && slider.settings.oneToOneTouch){
var value = 0;
// if horizontal, drag along x axis
if(slider.settings.mode == 'horizontal'){
var change = orig.changedTouches[0].pageX - slider.touch.start.x;
value = slider.touch.originalPos.left + change;
// if vertical, drag along y axis
}else{
var change = orig.changedTouches[0].pageY - slider.touch.start.y;
value = slider.touch.originalPos.top + change;
}
setPositionProperty(value, 'reset', 0);
}
}
/**
* Event handler for "touchend"
*
* @param e (event)
* - DOM event object
*/
var onTouchEnd = function(e){
slider.viewport.unbind('touchmove', onTouchMove);
var orig = e.originalEvent;
var value = 0;
// record end x, y positions
slider.touch.end.x = orig.changedTouches[0].pageX;
slider.touch.end.y = orig.changedTouches[0].pageY;
// if fade mode, check if absolute x distance clears the threshold
if(slider.settings.mode == 'fade'){
var distance = Math.abs(slider.touch.start.x - slider.touch.end.x);
if(distance >= slider.settings.swipeThreshold){
slider.touch.start.x > slider.touch.end.x ? el.goToNextSlide() : el.goToPrevSlide();
el.stopAuto();
}
// not fade mode
}else{
var distance = 0;
// calculate distance and el's animate property
if(slider.settings.mode == 'horizontal'){
distance = slider.touch.end.x - slider.touch.start.x;
value = slider.touch.originalPos.left;
}else{
distance = slider.touch.end.y - slider.touch.start.y;
value = slider.touch.originalPos.top;
}
// if not infinite loop and first / last slide, do not attempt a slide transition
if(!slider.settings.infiniteLoop && ((slider.active.index == 0 && distance > 0) || (slider.active.last && distance < 0))){
setPositionProperty(value, 'reset', 200);
}else{
// check if distance clears threshold
if(Math.abs(distance) >= slider.settings.swipeThreshold){
distance < 0 ? el.goToNextSlide() : el.goToPrevSlide();
el.stopAuto();
}else{
// el.animate(property, 200);
setPositionProperty(value, 'reset', 200);
}
}
}
slider.viewport.unbind('touchend', onTouchEnd);
}
/**
* Window resize event callback
*/
var resizeWindow = function(e){
// don't do anything if slider isn't initialized.
if(!slider.initialized) return;
// get the new window dimens (again, thank you IE)
var windowWidthNew = $(window).width();
var windowHeightNew = $(window).height();
// make sure that it is a true window resize
// *we must check this because our dinosaur friend IE fires a window resize event when certain DOM elements
// are resized. Can you just die already?*
if(windowWidth != windowWidthNew || windowHeight != windowHeightNew){
// set the new window dimens
windowWidth = windowWidthNew;
windowHeight = windowHeightNew;
// update all dynamic elements
el.redrawSlider();
// Call user resize handler
slider.settings.onSliderResize.call(el, slider.active.index);
}
}
/**
* ===================================================================================
* = PUBLIC FUNCTIONS
* ===================================================================================
*/
/**
* Performs slide transition to the specified slide
*
* @param slideIndex (int)
* - the destination slide's index (zero-based)
*
* @param direction (string)
* - INTERNAL USE ONLY - the direction of travel ("prev" / "next")
*/
el.goToSlide = function(slideIndex, direction){
// if plugin is currently in motion, ignore request
if(slider.working || slider.active.index == slideIndex) return;
// declare that plugin is in motion
slider.working = true;
// store the old index
slider.oldIndex = slider.active.index;
// if slideIndex is less than zero, set active index to last child (this happens during infinite loop)
if(slideIndex < 0){
slider.active.index = getPagerQty() - 1;
// if slideIndex is greater than children length, set active index to 0 (this happens during infinite loop)
}else if(slideIndex >= getPagerQty()){
slider.active.index = 0;
// set active index to requested slide
}else{
slider.active.index = slideIndex;
}
// onSlideBefore, onSlideNext, onSlidePrev callbacks
slider.settings.onSlideBefore(slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index);
if(direction == 'next'){
slider.settings.onSlideNext(slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index);
}else if(direction == 'prev'){
slider.settings.onSlidePrev(slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index);
}
// check if last slide
slider.active.last = slider.active.index >= getPagerQty() - 1;
// update the pager with active class
if(slider.settings.pager) updatePagerActive(slider.active.index);
// // check for direction control update
if(slider.settings.controls) updateDirectionControls();
// if slider is set to mode: "fade"
if(slider.settings.mode == 'fade'){
// if adaptiveHeight is true and next height is different from current height, animate to the new height
if(slider.settings.adaptiveHeight && slider.viewport.height() != getViewportHeight()){
slider.viewport.animate({height: getViewportHeight()}, slider.settings.adaptiveHeightSpeed);
}
// fade out the visible child and reset its z-index value
slider.children.filter(':visible').fadeOut(slider.settings.speed).css({zIndex: 0});
// fade in the newly requested slide
slider.children.eq(slider.active.index).css('zIndex', slider.settings.slideZIndex+1).fadeIn(slider.settings.speed, function(){
$(this).css('zIndex', slider.settings.slideZIndex);
updateAfterSlideTransition();
});
// slider mode is not "fade"
}else{
// if adaptiveHeight is true and next height is different from current height, animate to the new height
if(slider.settings.adaptiveHeight && slider.viewport.height() != getViewportHeight()){
slider.viewport.animate({height: getViewportHeight()}, slider.settings.adaptiveHeightSpeed);
}
var moveBy = 0;
var position = {left: 0, top: 0};
// if carousel and not infinite loop
if(!slider.settings.infiniteLoop && slider.carousel && slider.active.last){
if(slider.settings.mode == 'horizontal'){
// get the last child position
var lastChild = slider.children.eq(slider.children.length - 1);
position = lastChild.position();
// calculate the position of the last slide
moveBy = slider.viewport.width() - lastChild.outerWidth();
}else{
// get last showing index position
var lastShowingIndex = slider.children.length - slider.settings.minSlides;
position = slider.children.eq(lastShowingIndex).position();
}
// horizontal carousel, going previous while on first slide (infiniteLoop mode)
}else if(slider.carousel && slider.active.last && direction == 'prev'){
// get the last child position
var eq = slider.settings.moveSlides == 1 ? slider.settings.maxSlides - getMoveBy() : ((getPagerQty() - 1) * getMoveBy()) - (slider.children.length - slider.settings.maxSlides);
var lastChild = el.children('.bx-clone').eq(eq);
position = lastChild.position();
// if infinite loop and "Next" is clicked on the last slide
}else if(direction == 'next' && slider.active.index == 0){
// get the last clone position
position = el.find('> .bx-clone').eq(slider.settings.maxSlides).position();
slider.active.last = false;
// normal non-zero requests
}else if(slideIndex >= 0){
var requestEl = slideIndex * getMoveBy();
position = slider.children.eq(requestEl).position();
}
/* If the position doesn't exist
* (e.g. if you destroy the slider on a next click),
* it doesn't throw an error.
*/
if ("undefined" !== typeof(position)) {
var value = slider.settings.mode == 'horizontal' ? -(position.left - moveBy) : -position.top;
// plugin values to be animated
setPositionProperty(value, 'slide', slider.settings.speed);
}
}
}
/**
* Transitions to the next slide in the show
*/
el.goToNextSlide = function(){
// if infiniteLoop is false and last page is showing, disregard call
if (!slider.settings.infiniteLoop && slider.active.last) return;
var pagerIndex = parseInt(slider.active.index) + 1;
el.goToSlide(pagerIndex, 'next');
}
/**
* Transitions to the prev slide in the show
*/
el.goToPrevSlide = function(){
// if infiniteLoop is false and last page is showing, disregard call
if (!slider.settings.infiniteLoop && slider.active.index == 0) return;
var pagerIndex = parseInt(slider.active.index) - 1;
el.goToSlide(pagerIndex, 'prev');
}
/**
* Starts the auto show
*
* @param preventControlUpdate (boolean)
* - if true, auto controls state will not be updated
*/
el.startAuto = function(preventControlUpdate){
// if an interval already exists, disregard call
if(slider.interval) return;
// create an interval
slider.interval = setInterval(function(){
slider.settings.autoDirection == 'next' ? el.goToNextSlide() : el.goToPrevSlide();
}, slider.settings.pause);
// if auto controls are displayed and preventControlUpdate is not true
if (slider.settings.autoControls && preventControlUpdate != true) updateAutoControls('stop');
}
/**
* Stops the auto show
*
* @param preventControlUpdate (boolean)
* - if true, auto controls state will not be updated
*/
el.stopAuto = function(preventControlUpdate){
// if no interval exists, disregard call
if(!slider.interval) return;
// clear the interval
clearInterval(slider.interval);
slider.interval = null;
// if auto controls are displayed and preventControlUpdate is not true
if (slider.settings.autoControls && preventControlUpdate != true) updateAutoControls('start');
}
/**
* Returns current slide index (zero-based)
*/
el.getCurrentSlide = function(){
return slider.active.index;
}
/**
* Returns current slide element
*/
el.getCurrentSlideElement = function(){
return slider.children.eq(slider.active.index);
}
/**
* Returns number of slides in show
*/
el.getSlideCount = function(){
return slider.children.length;
}
/**
* Update all dynamic slider elements
*/
el.redrawSlider = function(){
// resize all children in ratio to new screen size
slider.children.add(el.find('.bx-clone')).width(getSlideWidth());
// adjust the height
slider.viewport.css('height', getViewportHeight());
// update the slide position
if(!slider.settings.ticker) setSlidePosition();
// if active.last was true before the screen resize, we want
// to keep it last no matter what screen size we end on
if (slider.active.last) slider.active.index = getPagerQty() - 1;
// if the active index (page) no longer exists due to the resize, simply set the index as last
if (slider.active.index >= getPagerQty()) slider.active.last = true;
// if a pager is being displayed and a custom pager is not being used, update it
if(slider.settings.pager && !slider.settings.pagerCustom){
populatePager();
updatePagerActive(slider.active.index);
}
}
/**
* Destroy the current instance of the slider (revert everything back to original state)
*/
el.destroySlider = function(){
// don't do anything if slider has already been destroyed
if(!slider.initialized) return;
slider.initialized = false;
$('.bx-clone', this).remove();
slider.children.each(function() {
$(this).data("origStyle") != undefined ? $(this).attr("style", $(this).data("origStyle")) : $(this).removeAttr('style');
});
$(this).data("origStyle") != undefined ? this.attr("style", $(this).data("origStyle")) : $(this).removeAttr('style');
$(this).unwrap().unwrap();
if(slider.controls.el) slider.controls.el.remove();
if(slider.controls.next) slider.controls.next.remove();
if(slider.controls.prev) slider.controls.prev.remove();
if(slider.pagerEl && slider.settings.controls) slider.pagerEl.remove();
$('.bx-caption', this).remove();
if(slider.controls.autoEl) slider.controls.autoEl.remove();
clearInterval(slider.interval);
if(slider.settings.responsive) $(window).unbind('resize', resizeWindow);
}
/**
* Reload the slider (revert all DOM changes, and re-initialize)
*/
el.reloadSlider = function(settings){
if (settings != undefined) options = settings;
el.destroySlider();
init();
}
init();
// returns the current jQuery object
return this;
}
})(jQuery);
/*! laydate-v5.0.2 日期与时间组件 MIT License http://www.layui.com/laydate/ By 贤心 */
;!function(){"use strict";var e=window.layui&&layui.define,t={getPath:function(){var e=document.scripts,t=e[e.length-1],n=t.src;if(!t.getAttribute("merge"))return n.substring(0,n.lastIndexOf("/")+1)}(),getStyle:function(e,t){var n=e.currentStyle?e.currentStyle:window.getComputedStyle(e,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](t)},link:function(e,a,i){if(n.path){var r=document.getElementsByTagName("head")[0],o=document.createElement("link");"string"==typeof a&&(i=a);var s=(i||e).replace(/\.|\//g,""),l="layuicss-"+s,d=0;o.rel="stylesheet",o.href=n.path+e,o.id=l,document.getElementById(l)||r.appendChild(o),"function"==typeof a&&!function c(){return++d>80?window.console&&console.error("laydate.css: Invalid"):void(1989===parseInt(t.getStyle(document.getElementById(l),"width"))?a():setTimeout(c,100))}()}}},n={v:"5.0.2",config:{},index:window.laydate&&window.laydate.v?1e5:0,path:t.getPath,set:function(e){var n=this;return n.config=t.extend({},n.config,e),n},ready:function(a){var i="laydate",r="",o=(e?"modules/laydate/":"theme/")+"default/laydate.css?v="+n.v+r;return e?layui.addcss(o,a,i):t.link(o,a,i),this}},a=function(){var e=this;return{hint:function(t){e.hint.call(e,t)},config:e.config}},i="laydate",r=".layui-laydate",o="layui-this",s="laydate-disabled",l="开始日期超出了结束日期<br>建议重新选择",d=[100,2e5],c="layui-laydate-list",m="laydate-selected",u="layui-laydate-hint",h="laydate-day-prev",y="laydate-day-next",f="layui-laydate-footer",p=".laydate-btns-confirm",g="laydate-time-text",v=".laydate-btns-time",D=function(e){var t=this;t.index=++n.index,t.config=T.extend({},t.config,n.config,e),n.ready(function(){t.init()})},T=function(e){return new w(e)},w=function(e){for(var t=0,n="object"==typeof e?[e]:(this.selector=e,document.querySelectorAll(e||null));t<n.length;t++)this.push(n[t])};w.prototype=[],w.prototype.constructor=w,T.extend=function(){var e=1,t=arguments,n=function(e,t){e=e||(t.constructor===Array?[]:{});for(var a in t)e[a]=t[a]&&t[a].constructor===Object?n(e[a],t[a]):t[a];return e};for(t[0]="object"==typeof t[0]?t[0]:{};e<t.length;e++)"object"==typeof t[e]&&n(t[0],t[e]);return t[0]},T.ie=function(){var e=navigator.userAgent.toLowerCase();return!!(window.ActiveXObject||"ActiveXObject"in window)&&((e.match(/msie\s(\d+)/)||[])[1]||"11")}(),T.stope=function(e){e=e||win.event,e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},T.each=function(e,t){var n,a=this;if("function"!=typeof t)return a;if(e=e||[],e.constructor===Object){for(n in e)if(t.call(e[n],n,e[n]))break}else for(n=0;n<e.length&&!t.call(e[n],n,e[n]);n++);return a},T.digit=function(e,t,n){var a="";e=String(e),t=t||2;for(var i=e.length;i<t;i++)a+="0";return e<Math.pow(10,t)?a+(0|e):e},T.elem=function(e,t){var n=document.createElement(e);return T.each(t||{},function(e,t){n.setAttribute(e,t)}),n},w.addStr=function(e,t){return e=e.replace(/\s+/," "),t=t.replace(/\s+/," ").split(" "),T.each(t,function(t,n){new RegExp("\\b"+n+"\\b").test(e)||(e=e+" "+n)}),e.replace(/^\s|\s$/,"")},w.removeStr=function(e,t){return e=e.replace(/\s+/," "),t=t.replace(/\s+/," ").split(" "),T.each(t,function(t,n){var a=new RegExp("\\b"+n+"\\b");a.test(e)&&(e=e.replace(a,""))}),e.replace(/\s+/," ").replace(/^\s|\s$/,"")},w.prototype.find=function(e){var t=this,n=0,a=[],i="object"==typeof e;return this.each(function(r,o){for(var s=i?[e]:o.querySelectorAll(e||null);n<s.length;n++)a.push(s[n]);t.shift()}),i||(t.selector=(t.selector?t.selector+" ":"")+e),T.each(a,function(e,n){t.push(n)}),t},w.prototype.each=function(e){return T.each.call(this,this,e)},w.prototype.addClass=function(e,t){return this.each(function(n,a){a.className=w[t?"removeStr":"addStr"](a.className,e)})},w.prototype.removeClass=function(e){return this.addClass(e,!0)},w.prototype.hasClass=function(e){var t=!1;return this.each(function(n,a){new RegExp("\\b"+e+"\\b").test(a.className)&&(t=!0)}),t},w.prototype.attr=function(e,t){var n=this;return void 0===t?function(){if(n.length>0)return n[0].getAttribute(e)}():n.each(function(n,a){a.setAttribute(e,t)})},w.prototype.removeAttr=function(e){return this.each(function(t,n){n.removeAttribute(e)})},w.prototype.html=function(e){return this.each(function(t,n){n.innerHTML=e})},w.prototype.val=function(e){return this.each(function(t,n){n.value=e})},w.prototype.append=function(e){return this.each(function(t,n){"object"==typeof e?n.appendChild(e):n.innerHTML=n.innerHTML+e})},w.prototype.remove=function(e){return this.each(function(t,n){e?n.removeChild(e):n.parentNode.removeChild(n)})},w.prototype.on=function(e,t){return this.each(function(n,a){a.attachEvent?a.attachEvent("on"+e,function(e){e.target=e.srcElement,t.call(a,e)}):a.addEventListener(e,t,!1)})},w.prototype.off=function(e,t){return this.each(function(n,a){a.detachEvent?a.detachEvent("on"+e,t):a.removeEventListener(e,t,!1)})},D.isLeapYear=function(e){return e%4===0&&e%100!==0||e%400===0},D.prototype.config={type:"date",range:!1,format:"yyyy-MM-dd",value:null,min:"1900-1-1",max:"2099-12-31",trigger:"focus",show:!1,showBottom:!0,btns:["clear","now","confirm"],lang:"cn",theme:"default",position:null,calendar:!1,mark:{},zIndex:null,done:null,change:null},D.prototype.lang=function(){var e=this,t=e.config,n={cn:{weeks:["日","一","二","三","四","五","六"],time:["时","分","秒"],timeTips:"选择时间",startTime:"开始时间",endTime:"结束时间",dateTips:"返回日期",month:["一","二","三","四","五","六","七","八","九","十","十一","十二"],tools:{confirm:"确定",clear:"清空",now:"现在"}},en:{weeks:["Su","Mo","Tu","We","Th","Fr","Sa"],time:["Hours","Minutes","Seconds"],timeTips:"Select Time",startTime:"Start Time",endTime:"End Time",dateTips:"Select Date",month:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],tools:{confirm:"Confirm",clear:"Clear",now:"Now"}}};return n[t.lang]||n.cn},D.prototype.init=function(){var e=this,t=e.config,n="yyyy|y|MM|M|dd|d|HH|H|mm|m|ss|s",a="static"===t.position,i={year:"yyyy",month:"yyyy-MM",date:"yyyy-MM-dd",time:"HH:mm:ss",datetime:"yyyy-MM-dd HH:mm:ss"};t.elem=T(t.elem),t.eventElem=T(t.eventElem),t.elem[0]&&(t.range===!0&&(t.range="-"),t.format===i.date&&(t.format=i[t.type]),e.format=t.format.match(new RegExp(n+"|.","g"))||[],e.EXP_IF="",e.EXP_SPLIT="",T.each(e.format,function(t,a){var i=new RegExp(n).test(a)?"\\b\\d{1,"+function(){return/yyyy/.test(a)?4:/y/.test(a)?308:2}()+"}\\b":"\\"+a;e.EXP_IF=e.EXP_IF+i,e.EXP_SPLIT=e.EXP_SPLIT+(e.EXP_SPLIT?"|":"")+"("+i+")"}),e.EXP_IF=new RegExp("^"+(t.range?e.EXP_IF+"\\s\\"+t.range+"\\s"+e.EXP_IF:e.EXP_IF)+"$"),e.EXP_SPLIT=new RegExp(e.EXP_SPLIT,"g"),e.isInput(t.elem[0])||"focus"===t.trigger&&(t.trigger="click"),t.elem.attr("lay-key")||(t.elem.attr("lay-key",e.index),t.eventElem.attr("lay-key",e.index)),t.mark=T.extend({},t.calendar&&"cn"===t.lang?{"0-1-1":"元旦","0-2-14":"情人","0-3-8":"妇女","0-3-12":"植树","0-4-1":"愚人","0-5-1":"劳动","0-5-4":"青年","0-6-1":"儿童","0-9-10":"教师","0-9-18":"国耻","0-10-1":"国庆","0-12-25":"圣诞"}:{},t.mark),T.each(["min","max"],function(e,n){var a=[],i=[];if("number"==typeof t[n]){var r=t[n],o=(new Date).getTime(),s=864e5,l=new Date(r?r<s?o+r*s:r:o);a=[l.getFullYear(),l.getMonth()+1,l.getDate()],r<s||(i=[l.getHours(),l.getMinutes(),l.getSeconds()])}else a=(t[n].match(/\d+-\d+-\d+/)||[""])[0].split("-"),i=(t[n].match(/\d+:\d+:\d+/)||[""])[0].split(":");t[n]={year:0|a[0]||(new Date).getFullYear(),month:a[1]?(0|a[1])-1:(new Date).getMonth(),date:0|a[2]||(new Date).getDate(),hours:0|i[0],minutes:0|i[1],seconds:0|i[2]}}),e.elemID="layui-laydate"+t.elem.attr("lay-key"),(t.show||a)&&e.render(),a||e.events())},D.prototype.render=function(){var e=this,t=e.config,n=e.lang(),a="static"===t.position,i=e.elem=T.elem("div",{id:e.elemID,"class":["layui-laydate",t.range?" layui-laydate-range":"",a?" layui-laydate-static":"",t.theme&&"default"!==t.theme&&!/^#/.test(t.theme)?" laydate-theme-"+t.theme:""].join("")}),r=e.elemMain=[],o=e.elemHeader=[],s=e.elemCont=[],l=e.table=[],d=e.footer=T.elem("div",{"class":f});if(t.zIndex&&(i.style.zIndex=t.zIndex),T.each(new Array(2),function(e){if(!t.range&&e>0)return!0;var a=T.elem("div",{"class":"layui-laydate-header"}),i=[function(){var e=T.elem("i",{"class":"layui-icon laydate-icon laydate-prev-y"});return e.innerHTML="&#xe65a;",e}(),function(){var e=T.elem("i",{"class":"layui-icon laydate-icon laydate-prev-m"});return e.innerHTML="&#xe603;",e}(),function(){var e=T.elem("div",{"class":"laydate-set-ym"}),t=T.elem("span"),n=T.elem("span");return e.appendChild(t),e.appendChild(n),e}(),function(){var e=T.elem("i",{"class":"layui-icon laydate-icon laydate-next-m"});return e.innerHTML="&#xe602;",e}(),function(){var e=T.elem("i",{"class":"layui-icon laydate-icon laydate-next-y"});return e.innerHTML="&#xe65b;",e}()],d=T.elem("div",{"class":"layui-laydate-content"}),c=T.elem("table"),m=T.elem("thead"),u=T.elem("tr");T.each(i,function(e,t){a.appendChild(t)}),m.appendChild(u),T.each(new Array(6),function(e){var t=c.insertRow(0);T.each(new Array(7),function(a){if(0===e){var i=T.elem("th");i.innerHTML=n.weeks[a],u.appendChild(i)}t.insertCell(a)})}),c.insertBefore(m,c.children[0]),d.appendChild(c),r[e]=T.elem("div",{"class":"layui-laydate-main laydate-main-list-"+e}),r[e].appendChild(a),r[e].appendChild(d),o.push(i),s.push(d),l.push(c)}),T(d).html(function(){var e=[],i=[];return"datetime"===t.type&&e.push('<span lay-type="datetime" class="laydate-btns-time">'+n.timeTips+"</span>"),T.each(t.btns,function(e,r){var o=n.tools[r]||"btn";t.range&&"now"===r||(a&&"clear"===r&&(o="cn"===t.lang?"重置":"Reset"),i.push('<span lay-type="'+r+'" class="laydate-btns-'+r+'">'+o+"</span>"))}),e.push('<div class="laydate-footer-btns">'+i.join("")+"</div>"),e.join("")}()),T.each(r,function(e,t){i.appendChild(t)}),t.showBottom&&i.appendChild(d),/^#/.test(t.theme)){var c=T.elem("style"),m=["#{{id}} .layui-laydate-header{background-color:{{theme}};}","#{{id}} .layui-this{background-color:{{theme}} !important;}"].join("").replace(/{{id}}/g,e.elemID).replace(/{{theme}}/g,t.theme);"styleSheet"in c?(c.setAttribute("type","text/css"),c.styleSheet.cssText=m):c.innerHTML=m,T(i).addClass("laydate-theme-molv"),i.appendChild(c)}e.remove(),a?t.elem.append(i):(document.body.appendChild(i),e.position()),e.checkDate().calendar(),e.changeEvent(),D.thisElem=e.elemID,"function"==typeof t.ready&&t.ready(T.extend({},t.dateTime,{month:t.dateTime.month+1}))},D.prototype.remove=function(){var e=this,t=e.config,n=T("#"+e.elemID);return n[0]&&"static"!==t.position&&e.checkDate(function(){n.remove()}),e},D.prototype.position=function(){var e=this,t=e.config,n=e.bindElem||t.elem[0],a=n.getBoundingClientRect(),i=e.elem.offsetWidth,r=e.elem.offsetHeight,o=function(e){return e=e?"scrollLeft":"scrollTop",document.body[e]|document.documentElement[e]},s=function(e){return document.documentElement[e?"clientWidth":"clientHeight"]},l=5,d=a.left,c=a.bottom;d+i+l>s("width")&&(d=s("width")-i-l),c+r+l>s()&&(c=a.top>r?a.top-r:s()-r,c-=2*l),t.position&&(e.elem.style.position=t.position),e.elem.style.left=d+("fixed"===t.position?0:o(1))+"px",e.elem.style.top=c+("fixed"===t.position?0:o())+"px"},D.prototype.hint=function(e){var t=this,n=(t.config,T.elem("div",{"class":u}));n.innerHTML=e||"",T(t.elem).find("."+u).remove(),t.elem.appendChild(n),clearTimeout(t.hinTimer),t.hinTimer=setTimeout(function(){T(t.elem).find("."+u).remove()},3e3)},D.prototype.getAsYM=function(e,t,n){return n?t--:t++,t<0&&(t=11,e--),t>11&&(t=0,e++),[e,t]},D.prototype.systemDate=function(e){var t=e||new Date;return{year:t.getFullYear(),month:t.getMonth(),date:t.getDate(),hours:e?e.getHours():0,minutes:e?e.getMinutes():0,seconds:e?e.getSeconds():0}},D.prototype.checkDate=function(e){var t,a,i=this,r=(new Date,i.config),o=r.dateTime=r.dateTime||i.systemDate(),s=i.bindElem||r.elem[0],l=(i.isInput(s)?"val":"html",i.isInput(s)?s.value:"static"===r.position?"":s.innerHTML),c=function(e){e.year>d[1]&&(e.year=d[1],a=!0),e.month>11&&(e.month=11,a=!0),e.hours>23&&(e.hours=0,a=!0),e.minutes>59&&(e.minutes=0,e.hours++,a=!0),e.seconds>59&&(e.seconds=0,e.minutes++,a=!0),t=n.getEndDate(e.month+1,e.year),e.date>t&&(e.date=t,a=!0)},m=function(e,t,n){var o=["startTime","endTime"];t=t.match(i.EXP_SPLIT),n=n||0,r.range&&(i[o[n]]=i[o[n]]||{}),T.each(i.format,function(s,l){var c=parseFloat(t[s]);t[s].length<l.length&&(a=!0),/yyyy|y/.test(l)?(c<d[0]&&(c=d[0],a=!0),e.year=c):/MM|M/.test(l)?(c<1&&(c=1,a=!0),e.month=c-1):/dd|d/.test(l)?(c<1&&(c=1,a=!0),e.date=c):/HH|H/.test(l)?(c<1&&(c=0,a=!0),e.hours=c,r.range&&(i[o[n]].hours=c)):/mm|m/.test(l)?(c<1&&(c=0,a=!0),e.minutes=c,r.range&&(i[o[n]].minutes=c)):/ss|s/.test(l)&&(c<1&&(c=0,a=!0),e.seconds=c,r.range&&(i[o[n]].seconds=c))}),c(e)};return"limit"===e?(c(o),i):(l=l||r.value,"string"==typeof l&&(l=l.replace(/\s+/g," ").replace(/^\s|\s$/g,"")),i.startState&&!i.endState&&(delete i.startState,i.endState=!0),"string"==typeof l&&l?i.EXP_IF.test(l)?r.range?(l=l.split(" "+r.range+" "),i.startDate=i.startDate||i.systemDate(),i.endDate=i.endDate||i.systemDate(),r.dateTime=T.extend({},i.startDate),T.each([i.startDate,i.endDate],function(e,t){m(t,l[e],e)})):m(o,l):(i.hint("日期格式不合法<br>必须遵循下述格式:<br>"+(r.range?r.format+" "+r.range+" "+r.format:r.format)+"<br>已为你重置"),a=!0):l&&l.constructor===Date?r.dateTime=i.systemDate(l):(r.dateTime=i.systemDate(),delete i.startState,delete i.endState,delete i.startDate,delete i.endDate,delete i.startTime,delete i.endTime),c(o),a&&l&&i.setValue(r.range?i.endDate?i.parse():"":i.parse()),e&&e(),i)},D.prototype.mark=function(e,t){var n,a=this,i=a.config;return T.each(i.mark,function(e,a){var i=e.split("-");i[0]!=t[0]&&0!=i[0]||i[1]!=t[1]||i[2]!=t[2]||(n=a||t[2])}),n&&e.html('<span class="laydate-day-mark">'+n+"</span>"),a},D.prototype.limit=function(e,t,n,a){var i,r=this,o=r.config,l={},d=o[n>41?"endDate":"dateTime"],c=T.extend({},d,t||{});return T.each({now:c,min:o.min,max:o.max},function(e,t){l[e]=r.newDate(T.extend({year:t.year,month:t.month,date:t.date},function(){var e={};return T.each(a,function(n,a){e[a]=t[a]}),e}())).getTime()}),i=l.now<l.min||l.now>l.max,e&&e[i?"addClass":"removeClass"](s),i},D.prototype.calendar=function(e){var t,a,i,r=this,s=r.config,l=e||s.dateTime,c=new Date,m=r.lang(),u="date"!==s.type&&"datetime"!==s.type,h=e?1:0,y=T(r.table[h]).find("td"),f=T(r.elemHeader[h][2]).find("span");if(l.year<d[0]&&(l.year=d[0],r.hint("最低只能支持到公元"+d[0]+"年")),l.year>d[1]&&(l.year=d[1],r.hint("最高只能支持到公元"+d[1]+"年")),r.firstDate||(r.firstDate=T.extend({},l)),c.setFullYear(l.year,l.month,1),t=c.getDay(),a=n.getEndDate(l.month,l.year),i=n.getEndDate(l.month+1,l.year),T.each(y,function(e,n){var d=[l.year,l.month],c=0;n=T(n),n.removeAttr("class"),e<t?(c=a-t+e,n.addClass("laydate-day-prev"),d=r.getAsYM(l.year,l.month,"sub")):e>=t&&e<i+t?(c=e-t,s.range||c+1===l.date&&n.addClass(o)):(c=e-i-t,n.addClass("laydate-day-next"),d=r.getAsYM(l.year,l.month)),d[1]++,d[2]=c+1,n.attr("lay-ymd",d.join("-")).html(d[2]),r.mark(n,d).limit(n,{year:d[0],month:d[1]-1,date:d[2]},e)}),T(f[0]).attr("lay-ym",l.year+"-"+(l.month+1)),T(f[1]).attr("lay-ym",l.year+"-"+(l.month+1)),"cn"===s.lang?(T(f[0]).attr("lay-type","year").html(l.year+"年"),T(f[1]).attr("lay-type","month").html(l.month+1+"月")):(T(f[0]).attr("lay-type","month").html(m.month[l.month]),T(f[1]).attr("lay-type","year").html(l.year)),u&&(s.range&&(e?r.endDate=r.endDate||{year:l.year+("year"===s.type?1:0),month:l.month+("month"===s.type?0:-1)}:r.startDate=r.startDate||{year:l.year,month:l.month},e&&(r.listYM=[[r.startDate.year,r.startDate.month+1],[r.endDate.year,r.endDate.month+1]],r.list(s.type,0).list(s.type,1),"time"===s.type?r.setBtnStatus("时间",T.extend({},r.systemDate(),r.startTime),T.extend({},r.systemDate(),r.endTime)):r.setBtnStatus(!0))),s.range||(r.listYM=[[l.year,l.month+1]],r.list(s.type,0))),s.range&&!e){var g=r.getAsYM(l.year,l.month);r.calendar(T.extend({},l,{year:g[0],month:g[1]}))}return s.range||r.limit(T(r.footer).find(p),null,0,["hours","minutes","seconds"]),s.range&&e&&!u&&r.stampRange(),r},D.prototype.list=function(e,t){var n=this,a=n.config,i=a.dateTime,r=n.lang(),l=a.range&&"date"!==a.type&&"datetime"!==a.type,d=T.elem("ul",{"class":c+" "+{year:"laydate-year-list",month:"laydate-month-list",time:"laydate-time-list"}[e]}),m=n.elemHeader[t],u=T(m[2]).find("span"),h=n.elemCont[t||0],y=T(h).find("."+c)[0],f="cn"===a.lang,D=f?"年":"",w=n.listYM[t]||{},C=["hours","minutes","seconds"],x=["startTime","endTime"][t];if(w[0]<1&&(w[0]=1),"year"===e){var M,b=M=w[0]-7;b<1&&(b=M=1),T.each(new Array(15),function(e){var a=T.elem("li",{"lay-ym":M});M==w[0]&&T(a).addClass(o),a.innerHTML=M+D,d.appendChild(a),n.limit(T(a),{year:M},t),M++}),T(u[f?0:1]).attr("lay-ym",M-8+"-"+w[1]).html(b+D+" - "+(M-1+D))}else if("month"===e)T.each(new Array(12),function(e){var a=T.elem("li",{"lay-ym":e});e+1==w[1]&&T(a).addClass(o),a.innerHTML=r.month[e]+(f?"月":""),d.appendChild(a),n.limit(T(a),{year:w[0],month:e},t)}),T(u[f?0:1]).attr("lay-ym",w[0]+"-"+w[1]).html(w[0]+D);else if("time"===e){var E=function(){T(d).find("ol").each(function(e,a){T(a).find("li").each(function(a,i){n.limit(T(i),[{hours:a},{hours:n[x].hours,minutes:a},{hours:n[x].hours,minutes:n[x].minutes,seconds:a}][e],t,[["hours"],["hours","minutes"],["hours","minutes","seconds"]][e])})}),a.range||n.limit(T(n.footer).find(p),n[x],0,["hours","minutes","seconds"])};a.range?n[x]||(n[x]={hours:0,minutes:0,seconds:0}):n[x]=i,T.each([24,60,60],function(e,t){var a=T.elem("li"),i=["<p>"+r.time[e]+"</p><ol>"];T.each(new Array(t),function(t){i.push("<li"+(n[x][C[e]]===t?' class="'+o+'"':"")+">"+T.digit(t,2)+"</li>")}),a.innerHTML=i.join("")+"</ol>",d.appendChild(a)}),E()}if(y&&h.removeChild(y),h.appendChild(d),"year"===e||"month"===e)T(n.elemMain[t]).addClass("laydate-ym-show"),T(d).find("li").on("click",function(){var r=0|T(this).attr("lay-ym");if(!T(this).hasClass(s)){if(0===t)i[e]=r,l&&(n.startDate[e]=r);else if(l)n.endDate[e]=r;else{var c="year"===e?n.getAsYM(r,w[1]-1,"sub"):n.getAsYM(w[0],r,"sub");T.extend(i,{year:c[0],month:c[1]})}"year"===a.type||"month"===a.type?(T(d).find("."+o).removeClass(o),T(this).addClass(o),"month"===a.type&&"year"===e&&(n.listYM[t][0]=r,l&&(n[["startDate","endDate"][t]].year=r),n.list("month",t))):(n.checkDate("limit").calendar(),n.closeList()),n.setBtnStatus(),a.range||n.done(null,"change"),T(n.footer).find(v).removeClass(s)}});else{var S=T.elem("span",{"class":g}),k=function(){T(d).find("ol").each(function(e){var t=this,a=T(t).find("li");t.scrollTop=30*(n[x][C[e]]-2),t.scrollTop<=0&&a.each(function(e,n){if(!T(this).hasClass(s))return t.scrollTop=30*(e-2),!0})})},H=T(m[2]).find("."+g);k(),S.innerHTML=a.range?[r.startTime,r.endTime][t]:r.timeTips,T(n.elemMain[t]).addClass("laydate-time-show"),H[0]&&H.remove(),m[2].appendChild(S),T(d).find("ol").each(function(e){var t=this;T(t).find("li").on("click",function(){var r=0|this.innerHTML;T(this).hasClass(s)||(a.range?n[x][C[e]]=r:i[C[e]]=r,T(t).find("."+o).removeClass(o),T(this).addClass(o),n.setBtnStatus(null,T.extend({},n.systemDate(),n.startTime),T.extend({},n.systemDate(),n.endTime)),E(),k(),(n.endDate||"time"===a.type)&&n.done(null,"change"))})})}return n},D.prototype.listYM=[],D.prototype.closeList=function(){var e=this;e.config;T.each(e.elemCont,function(t,n){T(this).find("."+c).remove(),T(e.elemMain[t]).removeClass("laydate-ym-show laydate-time-show")}),T(e.elem).find("."+g).remove()},D.prototype.setBtnStatus=function(e,t,n){var a,i=this,r=i.config,o=T(i.footer).find(p),d=r.range&&"date"!==r.type&&"datetime"!==r.type;d&&(t=t||i.startDate,n=n||i.endDate,a=i.newDate(t).getTime()>i.newDate(n).getTime(),i.limit(null,t)||i.limit(null,n)?o.addClass(s):o[a?"addClass":"removeClass"](s),e&&a&&i.hint("string"==typeof e?l.replace(/日期/g,e):l))},D.prototype.parse=function(e){var t=this,n=t.config,a=e?T.extend({},t.endDate,t.endTime):n.range?T.extend({},t.startDate,t.startTime):n.dateTime,i=t.format.concat();return T.each(i,function(e,t){/yyyy|y/.test(t)?i[e]=T.digit(a.year,t.length):/MM|M/.test(t)?i[e]=T.digit(a.month+1,t.length):/dd|d/.test(t)?i[e]=T.digit(a.date,t.length):/HH|H/.test(t)?i[e]=T.digit(a.hours,t.length):/mm|m/.test(t)?i[e]=T.digit(a.minutes,t.length):/ss|s/.test(t)&&(i[e]=T.digit(a.seconds,t.length))}),n.range&&!e?i.join("")+" "+n.range+" "+t.parse(1):i.join("")},D.prototype.newDate=function(e){return new Date(e.year||1,e.month||0,e.date||1,e.hours||0,e.minutes||0,e.seconds||0)},D.prototype.setValue=function(e){var t=this,n=t.config,a=t.bindElem||n.elem[0],i=t.isInput(a)?"val":"html";return"static"===n.position||T(a)[i](e||""),this},D.prototype.stampRange=function(){var e,t,n=this,a=n.config,i=T(n.elem).find("td");if(a.range&&!n.endDate&&T(n.footer).find(p).addClass(s),n.endDate)return e=n.newDate({year:n.startDate.year,month:n.startDate.month,date:n.startDate.date}).getTime(),t=n.newDate({year:n.endDate.year,month:n.endDate.month,date:n.endDate.date}).getTime(),e>t?n.hint(l):void T.each(i,function(a,i){var r=T(i).attr("lay-ymd").split("-"),s=n.newDate({year:r[0],month:r[1]-1,date:r[2]}).getTime();T(i).removeClass(m+" "+o),s!==e&&s!==t||T(i).addClass(T(i).hasClass(h)||T(i).hasClass(y)?m:o),s>e&&s<t&&T(i).addClass(m)})},D.prototype.done=function(e,t){var n=this,a=n.config,i=T.extend({},n.startDate?T.extend(n.startDate,n.startTime):a.dateTime),r=T.extend({},T.extend(n.endDate,n.endTime));return T.each([i,r],function(e,t){"month"in t&&T.extend(t,{month:t.month+1})}),e=e||[n.parse(),i,r],"function"==typeof a[t||"done"]&&a[t||"done"].apply(a,e),n},D.prototype.choose=function(e){var t=this,n=t.config,a=n.dateTime,i=T(t.elem).find("td"),r=e.attr("lay-ymd").split("-"),l=function(e){new Date;e&&T.extend(a,r),n.range&&(t.startDate?T.extend(t.startDate,r):t.startDate=T.extend({},r,t.startTime),t.startYMD=r)};if(r={year:0|r[0],month:(0|r[1])-1,date:0|r[2]},!e.hasClass(s))if(n.range){if(T.each(["startTime","endTime"],function(e,n){t[n]=t[n]||{hours:0,minutes:0,seconds:0}}),t.endState)l(),delete t.endState,delete t.endDate,t.startState=!0,i.removeClass(o+" "+m),e.addClass(o);else if(t.startState){if(e.addClass(o),t.endDate?T.extend(t.endDate,r):t.endDate=T.extend({},r,t.endTime),t.newDate(r).getTime()<t.newDate(t.startYMD).getTime()){var d=T.extend({},t.endDate,{hours:t.startDate.hours,minutes:t.startDate.minutes,seconds:t.startDate.seconds});T.extend(t.endDate,t.startDate,{hours:t.endDate.hours,minutes:t.endDate.minutes,seconds:t.endDate.seconds}),t.startDate=d}n.showBottom||t.done(),t.stampRange(),t.endState=!0,t.done(null,"change")}else e.addClass(o),l(),t.startState=!0;T(t.footer).find(p)[t.endDate?"removeClass":"addClass"](s)}else"static"===n.position?(l(!0),t.calendar().done().done(null,"change")):"date"===n.type?(l(!0),t.setValue(t.parse()).remove().done()):"datetime"===n.type&&(l(!0),t.calendar().done(null,"change"))},D.prototype.tool=function(e,t){var n=this,a=n.config,i=a.dateTime,r="static"===a.position,o={datetime:function(){T(e).hasClass(s)||(n.list("time",0),a.range&&n.list("time",1),T(e).attr("lay-type","date").html(n.lang().dateTips))},date:function(){n.closeList(),T(e).attr("lay-type","datetime").html(n.lang().timeTips)},clear:function(){n.setValue("").remove(),r&&(T.extend(i,n.firstDate),n.calendar()),a.range&&(delete n.startState,delete n.endState,delete n.endDate,delete n.startTime,delete n.endTime),n.done(["",{},{}])},now:function(){var e=new Date;T.extend(i,n.systemDate(),{hours:e.getHours(),minutes:e.getMinutes(),seconds:e.getSeconds()}),n.setValue(n.parse()).remove(),r&&n.calendar(),n.done()},confirm:function(){if(a.range){if(!n.endDate)return n.hint("请先选择日期范围");if(T(e).hasClass(s))return n.hint("time"===a.type?l.replace(/日期/g,"时间"):l)}else if(T(e).hasClass(s))return n.hint("不在有效日期或时间范围内");n.done(),n.setValue(n.parse()).remove()}};o[t]&&o[t]()},D.prototype.change=function(e){var t=this,n=t.config,a=n.dateTime,i=n.range&&("year"===n.type||"month"===n.type),r=t.elemCont[e||0],o=t.listYM[e],s=function(s){var l=["startDate","endDate"][e],d=T(r).find(".laydate-year-list")[0],c=T(r).find(".laydate-month-list")[0];return d&&(o[0]=s?o[0]-15:o[0]+15,t.list("year",e)),c&&(s?o[0]--:o[0]++,t.list("month",e)),(d||c)&&(T.extend(a,{year:o[0]}),i&&(t[l].year=o[0]),n.range||t.done(null,"change"),t.setBtnStatus(),n.range||t.limit(T(t.footer).find(p),{year:o[0]})),d||c};return{prevYear:function(){s("sub")||(a.year--,t.checkDate("limit").calendar(),n.range||t.done(null,"change"))},prevMonth:function(){var e=t.getAsYM(a.year,a.month,"sub");T.extend(a,{year:e[0],month:e[1]}),t.checkDate("limit").calendar(),n.range||t.done(null,"change")},nextMonth:function(){var e=t.getAsYM(a.year,a.month);T.extend(a,{year:e[0],month:e[1]}),t.checkDate("limit").calendar(),n.range||t.done(null,"change")},nextYear:function(){s()||(a.year++,t.checkDate("limit").calendar(),n.range||t.done(null,"change"))}}},D.prototype.changeEvent=function(){var e=this;e.config;T(e.elem).on("click",function(e){T.stope(e)}),T.each(e.elemHeader,function(t,n){T(n[0]).on("click",function(n){e.change(t).prevYear()}),T(n[1]).on("click",function(n){e.change(t).prevMonth()}),T(n[2]).find("span").on("click",function(n){var a=T(this),i=a.attr("lay-ym").split("-"),r=a.attr("lay-type");e.listYM[t]=[0|i[0],0|i[1]],e.list(r,t),T(e.footer).find(v).addClass(s)}),T(n[3]).on("click",function(n){e.change(t).nextMonth()}),T(n[4]).on("click",function(n){e.change(t).nextYear()})}),T.each(e.table,function(t,n){var a=T(n).find("td");a.on("click",function(){e.choose(T(this))})}),T(e.footer).find("span").on("click",function(){var t=T(this).attr("lay-type");e.tool(this,t)})},D.prototype.isInput=function(e){return/input|textarea/.test(e.tagName.toLocaleLowerCase())},D.prototype.events=function(){var e=this,t=e.config,n=function(n,a){n.on(t.trigger,function(){a&&(e.bindElem=this),e.render()})};t.elem[0]&&!t.elem[0].eventHandler&&(n(t.elem,"bind"),n(t.eventElem),T(document).on("click",function(n){n.target!==t.elem[0]&&n.target!==t.eventElem[0]&&n.target!==T(t.closeStop)[0]&&e.remove()}).on("keydown",function(t){13===t.keyCode&&T("#"+e.elemID)[0]&&e.elemID===D.thisElem&&(t.preventDefault(),T(e.footer).find(p)[0].click())}),T(window).on("resize",function(){return!(!e.elem||!T(r)[0])&&void e.position()}),t.elem[0].eventHandler=!0)},n.render=function(e){var t=new D(e);return a.call(t)},n.getEndDate=function(e,t){var n=new Date;return n.setFullYear(t||n.getFullYear(),e||n.getMonth()+1,1),new Date(n.getTime()-864e5).getDate()},window.lay=window.lay||T,e?(n.ready(),layui.define(function(e){n.path=layui.cache.dir,e(i,n)})):"function"==typeof define&&define.amd?define(function(){return n}):function(){n.ready(),window.laydate=n}()}();
\ No newline at end of file
... ...
... ... @@ -26,7 +26,11 @@ import ErrorApe from 'ape/ErrorApe';
import Slideshow from 'ape/Slideshow';//图片轮播
import LoginOrRegister from 'ape/LoginOrRegister';//登录注册
import LanclassApe from 'ape/LanclassApe';//互动课堂
import LiveClassApe from 'ape/LiveClassApe';//直播课堂
import HomeApe from 'ape/HomeApe';//首页
import TeacherDetailApe from 'ape/TeacherDetailApe';//老师
import CreateClassApe from 'ape/CreateClassApe';//创建课堂
import ListDetailsApe from 'ape/ListDetailsApe';//列表详情
let loger = Loger.getLoger('PCLive');
... ... @@ -45,7 +49,12 @@ let _answerApe;
let _signApe;
let _loginOrRegister;
let _lanclassApe;
let _liveClassApe;
let _homeApe;
let _teacherDetailApe;
let _createClassApe;
let _listDetailsApe;
class Main {
constructor() {
... ... @@ -177,8 +186,16 @@ class Main {
_loginOrRegister = new LoginOrRegister();
//互动课堂
_lanclassApe = new LanclassApe();
//互动课堂
_liveClassApe = new LiveClassApe();
//首页
_homeApe = new HomeApe();
//老师
_teacherDetailApe = new TeacherDetailApe();
//创建课堂
_createClassApe = new CreateClassApe();
//列表详情
_listDetailsApe = new ListDetailsApe();
this._onFlashLoaded();
}
... ...