Bläddra i källkod

Merge branch 'beta' of https://git.cocorobo.cn/CocoRoboLabs/pbl-teacher-table into beta

SanHQin 1 månad sedan
förälder
incheckning
46119bae5d

+ 20 - 0
src/assets/icon/liyuan/gerendangan.svg

@@ -0,0 +1,20 @@
+<svg width="106" height="105" viewBox="0 0 106 105" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g filter="url(#filter0_d_3380_909)">
+<rect x="25" y="21" width="28" height="28" rx="4" fill="#0663FE"/>
+<foreignObject x="30" y="25" width="54.6667" height="54.6665"><div xmlns="http://www.w3.org/1999/xhtml" style="backdrop-filter:blur(2px);clip-path:url(#bgblur_0_3380_909_clip_path);height:100%;width:100%"></div></foreignObject><path data-figma-bg-blur-radius="4" d="M75.1582 29.5C76.567 29.5 77.7696 29.9785 78.7305 30.9395C79.6914 31.9005 80.169 33.1029 80.167 34.5117V70.1582C80.167 71.5667 79.6894 72.7695 78.7305 73.7305C77.771 74.6918 76.5672 75.1679 75.1553 75.166L39.5117 75.167C38.1017 75.167 36.8988 74.6897 35.9395 73.7305C34.9801 72.7711 34.5021 71.5677 34.5 70.1562V34.5117C34.5 33.1012 34.978 31.8978 35.9395 30.9385C36.9002 29.9798 38.1025 29.502 39.5107 29.5H75.1582Z" fill="white" fill-opacity="0.7" stroke="white"/>
+<path d="M61.6304 37.189C62.426 37.189 63.1891 37.505 63.7517 38.0676L69.4128 43.7288C69.9754 44.2914 70.2915 45.0544 70.2915 45.8501V65.391C70.2911 65.7815 70.1357 66.1559 69.8594 66.4319C69.5832 66.7079 69.2087 66.8629 68.8182 66.8629H45.0583C44.6686 66.8602 44.2957 66.7043 44.02 66.4289C43.7443 66.1535 43.5881 65.7807 43.585 65.391V38.6608C43.585 37.8477 44.2452 37.189 45.0583 37.189H61.6304ZM56.9382 51.2841C57.922 51.2841 58.8654 50.8933 59.561 50.1977C60.2567 49.502 60.6475 48.5586 60.6475 47.5748C60.6475 46.5911 60.2567 45.6476 59.561 44.952C58.8654 44.2564 57.922 43.8656 56.9382 43.8656C55.9545 43.8656 55.011 44.2564 54.3154 44.952C53.6198 45.6476 53.229 46.5911 53.229 47.5748C53.229 48.5586 53.6198 49.502 54.3154 50.1977C55.011 50.8933 55.9545 51.2841 56.9382 51.2841ZM51.4699 56.3439C50.4448 57.8073 51.8631 59.4444 53.6499 59.4444H60.2266C62.0133 59.4444 63.4317 57.8073 62.4065 56.3439C62.1157 55.9288 61.7766 55.5452 61.3936 55.2021C60.169 54.1048 58.5825 53.4981 56.9382 53.4981C55.2939 53.4981 53.7074 54.1048 52.4828 55.2021C52.0998 55.5452 51.7607 55.9288 51.4699 56.3439Z" fill="black"/>
+</g>
+<defs>
+<filter id="filter0_d_3380_909" x="-5.4" y="-12.4" width="115.8" height="116.467" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
+<feFlood flood-opacity="0" result="BackgroundImageFix"/>
+<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
+<feOffset dy="4"/>
+<feGaussianBlur stdDeviation="12.2"/>
+<feComposite in2="hardAlpha" operator="out"/>
+<feColorMatrix type="matrix" values="0 0 0 0 0.168627 0 0 0 0 0.290196 0 0 0 0 0.741176 0 0 0 0.4 0"/>
+<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_3380_909"/>
+<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_3380_909" result="shape"/>
+</filter>
+<clipPath id="bgblur_0_3380_909_clip_path" transform="translate(-30 -25)"><path d="M75.1582 29.5C76.567 29.5 77.7696 29.9785 78.7305 30.9395C79.6914 31.9005 80.169 33.1029 80.167 34.5117V70.1582C80.167 71.5667 79.6894 72.7695 78.7305 73.7305C77.771 74.6918 76.5672 75.1679 75.1553 75.166L39.5117 75.167C38.1017 75.167 36.8988 74.6897 35.9395 73.7305C34.9801 72.7711 34.5021 71.5677 34.5 70.1562V34.5117C34.5 33.1012 34.978 31.8978 35.9395 30.9385C36.9002 29.9798 38.1025 29.502 39.5107 29.5H75.1582Z"/>
+</clipPath></defs>
+</svg>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 5 - 0
src/assets/icon/liyuan/jiaoshihuaxiang.svg


+ 30 - 0
src/assets/icon/liyuan/ketangguancha.svg

@@ -0,0 +1,30 @@
+<svg width="106" height="105" viewBox="0 0 106 105" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g filter="url(#filter0_d_3380_925)">
+<rect x="25" y="21" width="28" height="28" rx="4" fill="#0663FE"/>
+<foreignObject x="30" y="25" width="54.6667" height="54.6665"><div xmlns="http://www.w3.org/1999/xhtml" style="backdrop-filter:blur(2px);clip-path:url(#bgblur_0_3380_925_clip_path);height:100%;width:100%"></div></foreignObject><path data-figma-bg-blur-radius="4" d="M75.1582 29.5C76.567 29.5 77.7696 29.9785 78.7305 30.9395C79.6914 31.9005 80.169 33.1029 80.167 34.5117V70.1582C80.167 71.5667 79.6894 72.7695 78.7305 73.7305C77.771 74.6918 76.5672 75.1679 75.1553 75.166L39.5117 75.167C38.1017 75.167 36.8988 74.6897 35.9395 73.7305C34.9801 72.7711 34.5021 71.5677 34.5 70.1562V34.5117C34.5 33.1012 34.978 31.8978 35.9395 30.9385C36.9002 29.9798 38.1025 29.502 39.5107 29.5H75.1582Z" fill="white" fill-opacity="0.7" stroke="white"/>
+<g clip-path="url(#clip1_3380_925)">
+<g clip-path="url(#clip2_3380_925)">
+<path d="M56.922 47.8756C55.6582 47.8488 54.4354 48.3251 53.5228 49.1998C52.6102 50.0745 52.0824 51.2759 52.0556 52.5398C52.0288 53.8036 52.5051 55.0263 53.3798 55.9389C54.2545 56.8516 55.4559 57.3793 56.7198 57.4061C57.9836 57.433 59.2063 56.9566 60.119 56.0819C61.0316 55.2072 61.5593 54.0058 61.5862 52.742C61.613 51.4781 61.1366 50.2554 60.2619 49.3428C59.3872 48.4302 58.1858 47.9024 56.922 47.8756ZM56.6524 60.583C54.546 60.5383 52.5436 59.6587 51.0858 58.1376C49.628 56.6166 48.8341 54.5787 48.8787 52.4723C48.9234 50.366 49.8031 48.3636 51.3241 46.9058C52.8451 45.4479 54.883 44.654 56.9894 44.6987C59.0958 44.7434 61.0981 45.623 62.556 47.1441C64.0138 48.6651 64.8077 50.703 64.763 52.8094C64.7183 54.9158 63.8387 56.9181 62.3177 58.376C60.7966 59.8338 58.7588 60.6277 56.6524 60.583ZM57.0736 40.7277C49.1315 40.5591 42.2441 45.3552 39.3482 52.2701C41.9482 59.3016 48.626 64.3856 56.5681 64.5541C64.5103 64.7226 71.3977 59.9265 74.2936 53.0116C71.6936 45.9801 65.0158 40.8962 57.0736 40.7277Z" fill="black"/>
+</g>
+</g>
+</g>
+<defs>
+<filter id="filter0_d_3380_925" x="-5.4" y="-12.4" width="115.8" height="116.467" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
+<feFlood flood-opacity="0" result="BackgroundImageFix"/>
+<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
+<feOffset dy="4"/>
+<feGaussianBlur stdDeviation="12.2"/>
+<feComposite in2="hardAlpha" operator="out"/>
+<feColorMatrix type="matrix" values="0 0 0 0 0.168627 0 0 0 0 0.290196 0 0 0 0 0.741176 0 0 0 0.4 0"/>
+<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_3380_925"/>
+<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_3380_925" result="shape"/>
+</filter>
+<clipPath id="bgblur_0_3380_925_clip_path" transform="translate(-30 -25)"><path d="M75.1582 29.5C76.567 29.5 77.7696 29.9785 78.7305 30.9395C79.6914 31.9005 80.169 33.1029 80.167 34.5117V70.1582C80.167 71.5667 79.6894 72.7695 78.7305 73.7305C77.771 74.6918 76.5672 75.1679 75.1553 75.166L39.5117 75.167C38.1017 75.167 36.8988 74.6897 35.9395 73.7305C34.9801 72.7711 34.5021 71.5677 34.5 70.1562V34.5117C34.5 33.1012 34.978 31.8978 35.9395 30.9385C36.9002 29.9798 38.1025 29.502 39.5107 29.5H75.1582Z"/>
+</clipPath><clipPath id="clip1_3380_925">
+<rect width="35.6087" height="35.6087" fill="white" transform="translate(39 34)"/>
+</clipPath>
+<clipPath id="clip2_3380_925">
+<rect width="38.8912" height="38.8912" fill="white" transform="translate(37.77 32.4956) rotate(0.206764)"/>
+</clipPath>
+</defs>
+</svg>

+ 24 - 0
src/assets/icon/liyuan/niandukaohe.svg

@@ -0,0 +1,24 @@
+<svg width="106" height="105" viewBox="0 0 106 105" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g filter="url(#filter0_d_3380_904)">
+<rect x="25" y="21" width="28" height="28" rx="4" fill="#0663FE"/>
+<foreignObject x="30" y="25" width="54.6667" height="54.6665"><div xmlns="http://www.w3.org/1999/xhtml" style="backdrop-filter:blur(2px);clip-path:url(#bgblur_0_3380_904_clip_path);height:100%;width:100%"></div></foreignObject><g data-figma-bg-blur-radius="4">
+<path d="M53.0062 53.0703L57.0123 57.0736C57.4162 57.5147 57.9335 57.7352 58.5645 57.7352C59.1935 57.7352 59.7277 57.5147 60.1669 57.0736L69.8958 47.4005V52.4031C69.8958 52.7642 70.0289 53.0759 70.295 53.3383C70.5612 53.5989 70.8934 53.7292 71.2917 53.7292C71.6527 53.7292 71.9756 53.5961 72.2604 53.33C72.5451 53.0638 72.6875 52.7316 72.6875 52.3333V44.8182C72.6875 44.204 72.4642 43.6754 72.0175 43.2325C71.5727 42.7858 71.0441 42.5625 70.4318 42.5625H62.8469C62.4858 42.5625 62.175 42.7049 61.9145 42.9896C61.6539 43.2744 61.5227 43.5973 61.5208 43.9583C61.5208 44.3566 61.6539 44.6888 61.92 44.955C62.1862 45.2211 62.5184 45.3542 62.9167 45.3542H67.8495L58.5896 54.7397L54.5863 50.7337C54.1453 50.2833 53.6102 50.0581 52.9811 50.0581C52.3502 50.0581 51.8328 50.2833 51.429 50.7337L43.5034 58.6062C43.2317 58.9021 43.0958 59.2399 43.0958 59.6196C43.0958 59.9992 43.2317 60.3194 43.5034 60.5799C43.8012 60.887 44.1399 61.0405 44.5196 61.0405C44.8992 61.0405 45.2194 60.887 45.4799 60.5799L53.0062 53.0703ZM39.5113 74.6667C38.2253 74.6667 37.1524 74.2367 36.2925 73.3769C35.4327 72.5171 35.0019 71.4432 35 70.1553V34.5113C35 33.2253 35.4308 32.1524 36.2925 31.2925C37.1542 30.4327 38.2272 30.0019 39.5113 30H75.1581C76.4423 30 77.5152 30.4308 78.3769 31.2925C79.2386 32.1542 79.6685 33.2272 79.6667 34.5113V70.1581C79.6667 71.4423 79.2367 72.5152 78.3769 73.3769C77.5171 74.2386 76.4432 74.6685 75.1553 74.6667H39.5113Z" fill="white" fill-opacity="0.7"/>
+<path d="M53.0062 53.0703L57.0123 57.0736C57.4162 57.5147 57.9335 57.7352 58.5645 57.7352C59.1935 57.7352 59.7277 57.5147 60.1669 57.0736L69.8958 47.4005V52.4031C69.8958 52.7642 70.0289 53.0759 70.295 53.3383C70.5612 53.5989 70.8934 53.7292 71.2917 53.7292C71.6527 53.7292 71.9756 53.5961 72.2604 53.33C72.5451 53.0638 72.6875 52.7316 72.6875 52.3333V44.8182C72.6875 44.204 72.4642 43.6754 72.0175 43.2325C71.5727 42.7858 71.0441 42.5625 70.4318 42.5625H62.8469C62.4858 42.5625 62.175 42.7049 61.9145 42.9896C61.6539 43.2744 61.5227 43.5973 61.5208 43.9583C61.5208 44.3566 61.6539 44.6888 61.92 44.955C62.1862 45.2211 62.5184 45.3542 62.9167 45.3542H67.8495L58.5896 54.7397L54.5863 50.7337C54.1453 50.2833 53.6102 50.0581 52.9811 50.0581C52.3502 50.0581 51.8328 50.2833 51.429 50.7337L43.5034 58.6062C43.2317 58.9021 43.0958 59.2399 43.0958 59.6196C43.0958 59.9992 43.2317 60.3194 43.5034 60.5799C43.8012 60.887 44.1399 61.0405 44.5196 61.0405C44.8992 61.0405 45.2194 60.887 45.4799 60.5799L53.0062 53.0703Z" fill="black"/>
+<path d="M75.1582 29.5C76.567 29.5 77.7696 29.9785 78.7305 30.9395C79.6914 31.9005 80.169 33.1029 80.167 34.5117V70.1582C80.167 71.5667 79.6894 72.7695 78.7305 73.7305C77.771 74.6918 76.5672 75.1679 75.1553 75.166L39.5117 75.167C38.1017 75.167 36.8988 74.6897 35.9395 73.7305C34.9801 72.7711 34.5021 71.5677 34.5 70.1562V34.5117C34.5 33.1012 34.978 31.8978 35.9395 30.9385C36.9002 29.9798 38.1025 29.502 39.5107 29.5H75.1582Z" stroke="white"/>
+</g>
+</g>
+<defs>
+<filter id="filter0_d_3380_904" x="-5.4" y="-12.4" width="115.8" height="116.467" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
+<feFlood flood-opacity="0" result="BackgroundImageFix"/>
+<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
+<feOffset dy="4"/>
+<feGaussianBlur stdDeviation="12.2"/>
+<feComposite in2="hardAlpha" operator="out"/>
+<feColorMatrix type="matrix" values="0 0 0 0 0.168627 0 0 0 0 0.290196 0 0 0 0 0.741176 0 0 0 0.4 0"/>
+<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_3380_904"/>
+<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_3380_904" result="shape"/>
+</filter>
+<clipPath id="bgblur_0_3380_904_clip_path" transform="translate(-30 -25)"><path d="M53.0062 53.0703L57.0123 57.0736C57.4162 57.5147 57.9335 57.7352 58.5645 57.7352C59.1935 57.7352 59.7277 57.5147 60.1669 57.0736L69.8958 47.4005V52.4031C69.8958 52.7642 70.0289 53.0759 70.295 53.3383C70.5612 53.5989 70.8934 53.7292 71.2917 53.7292C71.6527 53.7292 71.9756 53.5961 72.2604 53.33C72.5451 53.0638 72.6875 52.7316 72.6875 52.3333V44.8182C72.6875 44.204 72.4642 43.6754 72.0175 43.2325C71.5727 42.7858 71.0441 42.5625 70.4318 42.5625H62.8469C62.4858 42.5625 62.175 42.7049 61.9145 42.9896C61.6539 43.2744 61.5227 43.5973 61.5208 43.9583C61.5208 44.3566 61.6539 44.6888 61.92 44.955C62.1862 45.2211 62.5184 45.3542 62.9167 45.3542H67.8495L58.5896 54.7397L54.5863 50.7337C54.1453 50.2833 53.6102 50.0581 52.9811 50.0581C52.3502 50.0581 51.8328 50.2833 51.429 50.7337L43.5034 58.6062C43.2317 58.9021 43.0958 59.2399 43.0958 59.6196C43.0958 59.9992 43.2317 60.3194 43.5034 60.5799C43.8012 60.887 44.1399 61.0405 44.5196 61.0405C44.8992 61.0405 45.2194 60.887 45.4799 60.5799L53.0062 53.0703ZM39.5113 74.6667C38.2253 74.6667 37.1524 74.2367 36.2925 73.3769C35.4327 72.5171 35.0019 71.4432 35 70.1553V34.5113C35 33.2253 35.4308 32.1524 36.2925 31.2925C37.1542 30.4327 38.2272 30.0019 39.5113 30H75.1581C76.4423 30 77.5152 30.4308 78.3769 31.2925C79.2386 32.1542 79.6685 33.2272 79.6667 34.5113V70.1581C79.6667 71.4423 79.2367 72.5152 78.3769 73.3769C77.5171 74.2386 76.4432 74.6685 75.1553 74.6667H39.5113Z"/>
+<path d="M53.0062 53.0703L57.0123 57.0736C57.4162 57.5147 57.9335 57.7352 58.5645 57.7352C59.1935 57.7352 59.7277 57.5147 60.1669 57.0736L69.8958 47.4005V52.4031C69.8958 52.7642 70.0289 53.0759 70.295 53.3383C70.5612 53.5989 70.8934 53.7292 71.2917 53.7292C71.6527 53.7292 71.9756 53.5961 72.2604 53.33C72.5451 53.0638 72.6875 52.7316 72.6875 52.3333V44.8182C72.6875 44.204 72.4642 43.6754 72.0175 43.2325C71.5727 42.7858 71.0441 42.5625 70.4318 42.5625H62.8469C62.4858 42.5625 62.175 42.7049 61.9145 42.9896C61.6539 43.2744 61.5227 43.5973 61.5208 43.9583C61.5208 44.3566 61.6539 44.6888 61.92 44.955C62.1862 45.2211 62.5184 45.3542 62.9167 45.3542H67.8495L58.5896 54.7397L54.5863 50.7337C54.1453 50.2833 53.6102 50.0581 52.9811 50.0581C52.3502 50.0581 51.8328 50.2833 51.429 50.7337L43.5034 58.6062C43.2317 58.9021 43.0958 59.2399 43.0958 59.6196C43.0958 59.9992 43.2317 60.3194 43.5034 60.5799C43.8012 60.887 44.1399 61.0405 44.5196 61.0405C44.8992 61.0405 45.2194 60.887 45.4799 60.5799L53.0062 53.0703Z"/>
+</clipPath></defs>
+</svg>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 5 - 0
src/assets/icon/liyuan/zhinengbiaodan.svg


+ 4 - 0
src/assets/liyuan/edit.svg

@@ -0,0 +1,4 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M7 7H6C5.46957 7 4.96086 7.21071 4.58579 7.58579C4.21071 7.96086 4 8.46957 4 9V18C4 18.5304 4.21071 19.0391 4.58579 19.4142C4.96086 19.7893 5.46957 20 6 20H15C15.5304 20 16.0391 19.7893 16.4142 19.4142C16.7893 19.0391 17 18.5304 17 18V17" stroke="#BDBDBD" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M16 4.99998L19 7.99998M20.385 6.58499C20.7788 6.19114 21.0001 5.65697 21.0001 5.09998C21.0001 4.543 20.7788 4.00883 20.385 3.61498C19.9912 3.22114 19.457 2.99988 18.9 2.99988C18.343 2.99988 17.8088 3.22114 17.415 3.61498L9 12V15H12L20.385 6.58499Z" stroke="#BDBDBD" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+</svg>

+ 4 - 0
src/assets/liyuan/lpot.svg

@@ -0,0 +1,4 @@
+<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
+<circle cx="15" cy="15" r="15" fill="#0663FE"/>
+<path d="M12.5001 7.5H17.5001L19.1667 9.16667H22.5001C22.7211 9.16667 22.9331 9.25446 23.0893 9.41074C23.2456 9.56702 23.3334 9.77899 23.3334 10V21.6667C23.3334 21.8877 23.2456 22.0996 23.0893 22.2559C22.9331 22.4122 22.7211 22.5 22.5001 22.5H7.50008C7.27907 22.5 7.06711 22.4122 6.91083 22.2559C6.75455 22.0996 6.66675 21.8877 6.66675 21.6667V10C6.66675 9.77899 6.75455 9.56702 6.91083 9.41074C7.06711 9.25446 7.27907 9.16667 7.50008 9.16667H10.8334L12.5001 7.5ZM15.0001 20.8333C16.3262 20.8333 17.5979 20.3065 18.5356 19.3689C19.4733 18.4312 20.0001 17.1594 20.0001 15.8333C20.0001 14.5073 19.4733 13.2355 18.5356 12.2978C17.5979 11.3601 16.3262 10.8333 15.0001 10.8333C13.674 10.8333 12.4022 11.3601 11.4645 12.2978C10.5269 13.2355 10.0001 14.5073 10.0001 15.8333C10.0001 17.1594 10.5269 18.4312 11.4645 19.3689C12.4022 20.3065 13.674 20.8333 15.0001 20.8333ZM15.0001 19.1667C14.116 19.1667 13.2682 18.8155 12.6431 18.1904C12.0179 17.5652 11.6667 16.7174 11.6667 15.8333C11.6667 14.9493 12.0179 14.1014 12.6431 13.4763C13.2682 12.8512 14.116 12.5 15.0001 12.5C15.8841 12.5 16.732 12.8512 17.3571 13.4763C17.9822 14.1014 18.3334 14.9493 18.3334 15.8333C18.3334 16.7174 17.9822 17.5652 17.3571 18.1904C16.732 18.8155 15.8841 19.1667 15.0001 19.1667Z" fill="black"/>
+</svg>

+ 3 - 0
src/assets/liyuan/tele.svg

@@ -0,0 +1,3 @@
+<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M5.51667 8.99167C6.71667 11.35 8.65 13.2833 11.0083 14.4833L12.8417 12.65C13.075 12.4167 13.4 12.35 13.6917 12.4417C14.625 12.75 15.625 12.9167 16.6667 12.9167C16.8877 12.9167 17.0996 13.0045 17.2559 13.1607C17.4122 13.317 17.5 13.529 17.5 13.75V16.6667C17.5 16.8877 17.4122 17.0996 17.2559 17.2559C17.0996 17.4122 16.8877 17.5 16.6667 17.5C12.9094 17.5 9.30609 16.0074 6.64932 13.3507C3.99256 10.6939 2.5 7.09057 2.5 3.33333C2.5 3.11232 2.5878 2.90036 2.74408 2.74408C2.90036 2.5878 3.11232 2.5 3.33333 2.5H6.25C6.47101 2.5 6.68298 2.5878 6.83926 2.74408C6.99554 2.90036 7.08333 3.11232 7.08333 3.33333C7.08333 4.375 7.25 5.375 7.55833 6.30833C7.65 6.6 7.58333 6.925 7.35 7.15833L5.51667 8.99167Z" fill="#969BA3"/>
+</svg>

+ 17 - 0
src/components/pages/liyuan/CourseCon.vue

@@ -0,0 +1,17 @@
+<template>
+  <div>
+    <div>课程建设</div>
+    <div>Course Construction</div>
+
+  </div>
+</template>
+
+<script>
+export default {
+
+}
+</script>
+
+<style>
+
+</style>

+ 17 - 0
src/components/pages/liyuan/aiOffice.vue

@@ -0,0 +1,17 @@
+<template>
+  <div>
+    <div>智慧办公</div>
+    <div>Intelligent Office</div>
+
+  </div>
+</template>
+
+<script>
+export default {
+
+}
+</script>
+
+<style>
+
+</style>

+ 76 - 0
src/components/pages/liyuan/components/card.vue

@@ -0,0 +1,76 @@
+<template>
+    <div class="card" @click="goTo()">
+        <div class="card-title">{{ title }}</div>
+        <div class="card-icon">
+            <img :src="icon" alt="">
+        </div>
+    </div>
+</template>
+
+<script>
+export default {
+    props: {
+        title: {
+            type: String,
+        },
+        icon: {
+            type: String,
+        },
+        to: {
+            type: String,
+        },
+        type: {
+            type: Number,
+        },
+    },
+    data() {
+        return {
+            userid: this.$route.query.userid,
+            oid: this.$route.query.oid,
+            org: this.$route.query.org,
+            role: this.$route.query.role,
+        }
+    },
+    methods: {
+        goTo() {
+            if (this.type == 1) {
+                this.$router.push({ path: this.to, query: { userid: this.userid, oid: this.oid, org: this.org, role: this.role, gotype: 1 } })
+            } else {
+                window.location.href = this.to;
+            }
+        }
+    },
+}
+</script>
+
+<style scoped>
+.card {
+    background: #fff;
+    border-radius: 10px;
+    cursor: pointer;
+    display: flex;
+    justify-content: space-between;
+    align-items: flex-end;
+    width: 100%;
+    padding: 20px ;
+    box-shadow: 0px 4px 10px 0px #0000001A;
+    transition: all .3s;
+    box-sizing: border-box;
+}
+
+.card:hover{
+    background: #e6e6e6;
+}
+
+.card > .card-title {}
+
+.card > .card-icon {
+    display: flex;
+}
+
+.card > .card-icon > img{
+    width: 85px;
+    margin-bottom: -20px;
+    margin-right: -20px;
+}
+</style>

+ 32 - 0
src/components/pages/liyuan/components/topBar.vue

@@ -0,0 +1,32 @@
+<template>
+  <div class="ly_title">
+    <div class="title">{{ title }}</div>
+    <div class="detail">{{ detail }}</div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'lyTitle',
+  props: {
+    title: {
+      type: String,
+    },
+    detail: {
+      type: String,
+    }
+  }
+}
+</script>
+
+<style scoped>
+.ly_title{}
+.ly_title > .title{
+  font-size: 20px;
+  font-weight: bold;
+  margin-bottom: 15px;
+}
+.ly_title > .detail{
+  color: #989da5;
+}
+</style>

+ 13 - 0
src/components/pages/liyuan/demo.vue

@@ -0,0 +1,13 @@
+<template>
+  <div></div>
+</template>
+
+<script>
+export default {
+
+}
+</script>
+
+<style>
+
+</style>

+ 13 - 0
src/components/pages/liyuan/page/demo.vue

@@ -0,0 +1,13 @@
+<template>
+  <div></div>
+</template>
+
+<script>
+export default {
+
+}
+</script>
+
+<style>
+
+</style>

+ 442 - 0
src/components/pages/liyuan/page/userInfoL.vue

@@ -0,0 +1,442 @@
+<template>
+  <div
+    class="pb_content"
+  >
+  <div class="leftInfo">
+    <div class="leftInfoCon">
+      <div style="position: relative;width: 80px;height: 80px;">
+        <img style="width: 100%;height: 100%;object-fit: cover;border-radius: 50%;" :src="ruleForm.headportrait" alt="">
+        <img style="position: absolute;right: 0;bottom: 0;" src="../../../../assets/liyuan/lpot.svg" alt="">
+      </div>
+      <div>{{ruleForm.name}}</div>
+      <div style="display: flex;flex-direction: column;gap: 10px;">
+        <div style="font-family: Inter;
+          font-weight: 600;
+          font-size: 16px;
+          line-height: 100%;
+          text-align: center;
+          color: #969BA3;
+        ">{{ ruleForm.type }}</div>
+        <div style="font-family: Inter;
+          font-weight: 300;
+          font-size: 16px;
+          line-height: 100%;
+          text-align: center;
+          color: #969BA3;
+          display: flex;
+          align-items: center;
+          gap: 6px;
+          "
+        ><img src="../../../../assets/liyuan/tele.svg" alt="">{{ ruleForm.phone ? ruleForm.phone :'暂无' }}
+      </div>
+      </div>
+    </div>
+  </div>
+  <div class="rightCon">
+    <div style="display: flex;justify-content: space-between;align-items: center;margin-bottom: 40px;">
+        <span style="font-family: Inter;
+        font-weight: 600;
+        font-size: 20px;
+        line-height: 100%;
+        text-align: center;
+        ">基础信息</span>
+        <img src="../../../../assets/liyuan/edit.svg" @click="editInfo" style="cursor: pointer;" alt="">
+    </div>
+
+    <el-form
+      :model="ruleForm"
+      ref="ruleForm"
+      label-width="100px"
+      label-position="left"
+    >
+      <el-form-item label="姓名" prop="name">
+        <el-input
+          v-model="ruleForm.name"
+          style="width: 300px"
+          :disabled="type"
+          placeholder="请输入姓名"
+        ></el-input>
+        
+      </el-form-item>
+
+      <el-form-item label="性别" prop="sex">
+        <el-select
+          v-model="ruleForm.sex"
+          clearable
+          :disabled="type"
+        >
+          <el-option label="男" value="男"></el-option>
+          <el-option label="女" value="女"></el-option>
+        </el-select>
+      </el-form-item>
+
+      <el-form-item label="组织" prop="org">
+        <el-select
+          v-model="ruleForm.org"
+          clearable
+          placeholder="暂无组织"
+          :disabled="type"
+        >
+          <el-option
+            v-for="item in orgJuri"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id"
+          >
+          </el-option>
+        </el-select>
+      </el-form-item>
+
+      <el-form-item label="教研室" v-if="ruleForm.type == '老师'">
+        <el-select
+          v-model="ccName"
+          clearable
+          placeholder="暂无教研室"
+          :disabled="type"
+        >
+        </el-select>
+      </el-form-item>
+      
+      <el-form-item label="学校" prop="sBySchool">
+        <el-select
+          v-model="ruleForm.sBySchool"
+          clearable
+          placeholder="请选择学校"
+          :disabled="type"
+        >
+      
+          <el-option :value="ruleForm.sBySchool"> </el-option>
+        </el-select>
+      </el-form-item>
+
+      <el-form-item label="职务" prop="type">
+        <el-select
+          v-model="ruleForm.type"
+          clearable
+          placeholder="请选择身份"
+          :disabled="type"
+        >
+          <el-option :value="ruleForm.type"> </el-option>
+        </el-select>
+      </el-form-item>
+
+      <el-form-item label="司龄" prop="type">
+        <el-select
+          v-model="ruleForm.type"
+          clearable
+          placeholder="请选择身份"
+          :disabled="type"
+        >
+          <el-option :value="ruleForm.type"> </el-option>
+        </el-select>
+      </el-form-item>
+
+      <el-form-item label="简介" prop="type">
+        <el-input
+          type="textarea"
+          resize="none"
+          rows="6"
+          placeholder="简介"
+          :disabled="type"
+        ></el-input>
+      </el-form-item>
+    </el-form>
+  </div>
+
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    var validatePass = (rule, value, callback) => {
+      if (value == "") {
+        return;
+      }
+      var reg =
+        /^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/;
+      if (!reg.test(value)) {
+        callback(new Error("请输入正确的邮箱"));
+      } else {
+        callback();
+      }
+    };
+    var validatePass1 = (rule, value, callback) => {
+      var reg = /^1\d{10}$/;
+      if (!reg.test(value)) {
+        callback(new Error("请输入正确的手机号码"));
+      } else {
+        callback();
+      }
+    };
+    return {
+      type: true,
+      ruleForm: {
+        name: "",
+        type: "",
+        sex: "男",
+        intro: "",
+        // mail: "",
+        phone: "",
+        sBySchool: "",
+        org: "",
+        headportrait: "",
+      },
+      ccName: "",
+      opassword: "",
+      password: "",
+      password1: "",
+      isLook: false,
+      eyeOff: require("../../../../assets/icon/eyeOff.png"),
+      eye: require("../../../../assets/icon/eye.png"),
+      tx: require("../../../../assets/avatar.png"),
+      userinfo: "",
+      schoolJuri: [],
+      orgJuri: [],
+      userid: this.$route.query.userid,
+      rules: {
+        pass: [{ validator: validatePass, trigger: "blur" }],
+        name: [{ required: true, message: "请输入你的名字", trigger: "blur" }],
+        mail: [
+          {
+            required: true,
+            message: "请输入你的邮箱",
+            trigger: "blur",
+          },
+        ],
+        phone: [
+          // { required: true, message: "请输入你的手机号码", trigger: "blur" },
+
+          {
+            validator: validatePass1,
+            trigger: "blur",
+          },
+        ],
+      },
+    };
+  },
+  methods: {
+    editInfo(){
+      this.type = !this.type
+    },
+    getSchool() {
+      this.isLoading = true;
+      let params = {
+        page: this.page,
+      };
+      this.ajax
+        .get(this.$store.state.api + "selectOrg", params)
+        .then((res) => {
+          this.isLoading = false;
+          this.schoolJuri = res.data[0];
+        })
+        .catch((err) => {
+          this.isLoading = false;
+          console.error(err);
+        });
+    },
+    changeEye() {
+      this.isLook = !this.isLook;
+    },
+    getOrg() {
+      this.isLoading = true;
+      this.ajax
+        .get(this.$store.state.api + "selectorg2", "")
+        .then((res) => {
+          this.isLoading = false;
+          this.orgJuri = res.data[0];
+        })
+        .catch((err) => {
+          this.isLoading = false;
+          console.error(err);
+        });
+    },
+    submitForm(formName) {
+      this.$refs[formName];
+      let params = [
+        {
+          userid: this.userid,
+          username: this.ruleForm.name,
+          type: this.ruleForm.type == "老师" ? 1 : 2,
+          oid: this.ruleForm.sBySchool,
+          phone: this.ruleForm.phone,
+          // intro: this.ruleForm.intro,
+          intro: "",
+          sex: this.ruleForm.sex == "男" ? "0" : "1",
+        },
+      ];
+      this.ajax
+        .post(this.$store.state.api + "updatePblMessage2", params)
+        .then((res) => {
+          this.$message({
+            message: "修改成功",
+            type: "success",
+          });
+           window.topU.postMessage({ close: "1" }, "*");
+          this.getUser();
+        })
+        .catch((err) => {
+          this.$message.error("修改失败");
+          console.error(err);
+        });
+    },
+    getUser() {
+      let params = { uid: this.userid };
+      this.ajax
+        .get(this.$store.state.api + "getUser", params)
+        .then((res) => {
+          this.userinfo = res.data[0][0];
+          // this.$cookies.set("userInfo", this.userinfo, -1);
+          this.$cookies.set("teacherInfo", res.data[0][0], -1);
+          this.$store.commit("update", ["userInfo", this.userinfo]);
+          console.log(res.data[0][0]);
+        })
+        .catch((err) => {
+          console.error(err);
+        });
+    },
+    getDetail() {
+      let params = { uid: this.userid };
+      this.ajax
+        .get(this.$store.state.api + "getUser", params)
+        .then((res) => {
+          if (res.data[0][0]) {
+            res.data[0][0].sex = res.data[0][0].sex ? "女" : "男";
+            this.ruleForm = res.data[0][0];
+            this.ruleForm.org = res.data[0][0].org
+              ? res.data[0][0].org.split(",")[0]
+              : "";
+            this.ruleForm.type =
+              res.data[0][0].type == 1
+                ? "老师"
+                : res.data[0][0].type == 2
+                ? "学生"
+                : "管理员";
+            this.getCcName(res.data[0][0].organizeid);
+            console.log(res.data[0][0]);
+          }
+        })
+        .catch((err) => {
+          console.error(err);
+        });
+    },
+    getCcName(oid) {
+      let params = { oid: oid };
+      this.ajax
+        .get(this.$store.state.api + "selectTeacherOfficeBySchool", params)
+        .then((res) => {
+          var cBox = res.data[0];
+          var str = this.ruleForm.cclassid;
+          var arr = str.split(",");
+          for (var k = 0; k < cBox.length; k++) {
+            for (var i = 0; i < arr.length; i++) {
+              if (cBox[k].id == arr[i] && cBox[k].parentid == '6') {
+                if (this.ccName == "") {
+                  this.ccName = cBox[k].name;
+                } else {
+                  this.ccName += "," + cBox[k].name;
+                }
+              }
+            }
+          }
+        })
+        .catch((err) => {
+          console.error(err);
+        });
+    },
+    updatePassword() {
+      const reg = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[A-Za-z\d]{8,16}$/;
+      if (!reg.test(this.password)) {
+        this.$message.error("密码长度为8-16位,且包含大小写字母");
+        return;
+      } else if (this.password != this.password1) {
+        this.$message.error("两次新密码不相同");
+        return;
+      }
+      let params = [
+        {
+          userid: this.userid,
+          opassword: this.opassword,
+          password: this.password,
+        },
+      ];
+      this.ajax
+        .post(this.$store.state.api + "updatePassword", params)
+        .then((res) => {
+          if (res.data[0] && res.data[0].success == 1) {
+            this.$message.success("修改成功");
+            this.opassword = "";
+            this.password = "";
+            this.password1 = "";
+          } else {
+            this.$message.error("修改失败,原密码不正确");
+          }
+        })
+        .catch((err) => {
+          this.$message.error("修改失败");
+          console.error(err);
+        });
+    },
+  },
+  created() {
+    this.getSchool();
+    this.getOrg();
+    this.getDetail();
+  },
+};
+</script>
+
+<style scoped>
+.pb_content{
+  display: flex;
+  gap: 20px;
+  height: 100%;
+  width: 100%;
+  background: #fff;
+  padding: 20px;
+  box-sizing: border-box;
+}
+.leftInfo{
+  width: 20%;
+}
+.leftInfoCon{
+  box-sizing: border-box;
+  display: flex;
+  justify-content: center;
+  flex-direction: column;
+  align-items: center;
+  box-shadow: 0px 4px 20px 0px #0000001A;
+  background: #fff;
+  border-radius: 12px;
+  padding-top: 40px;
+  padding-right: 50px;
+  padding-bottom: 40px;
+  padding-left: 50px;
+  gap: 19px;
+
+}
+.rightCon{
+  width: 80%;
+  box-shadow: 0px 4px 20px 0px #0000001A;
+  border-radius: 12px;
+  padding-top: 40px;
+  padding-right: 50px;
+  padding-bottom: 40px;
+  padding-left: 50px;
+  box-sizing: border-box;
+}
+
+.rightCon >>> .el-select{
+  width: 100%;
+}
+
+.rightCon >>> .el-input{
+  width: 100% !important;
+}
+.rightCon >>> .el-form-item{
+    margin-bottom: 15px !important;
+}
+.rightCon >>> .el-form-item__label{
+  color: #000 !important;
+}
+</style>

+ 17 - 0
src/components/pages/liyuan/schoolSafe.vue

@@ -0,0 +1,17 @@
+<template>
+  <div>
+    <div>平安校园</div>
+    <div>Intelligent Office</div>
+
+  </div>
+</template>
+
+<script>
+export default {
+
+}
+</script>
+
+<style>
+
+</style>

+ 17 - 0
src/components/pages/liyuan/studentEva.vue

@@ -0,0 +1,17 @@
+<template>
+  <div>
+    <div>学生评价</div>
+    <div>su</div>
+
+  </div>
+</template>
+
+<script>
+export default {
+
+}
+</script>
+
+<style>
+
+</style>

+ 47 - 0
src/components/pages/liyuan/teacherDevelop.vue

@@ -0,0 +1,47 @@
+<template>
+  <div class="teacherDevelop">
+    <topBar title="教师发展" detail="资料收集 · 智能表单 · 教师管理 · 会议妙计"></topBar>
+    <div class="cardBox">
+      <card v-for="item in cardArray" :key="item.title" :title="item.title" :icon="item.icon" :to="item.to" :type="item.type"></card>
+    </div>
+  </div>
+</template>
+
+<script>
+import topBar from './components/topBar'
+import card from './components/card.vue';
+export default {
+  components: {
+    topBar,
+    card
+  },
+  data() {
+    return {
+      cardArray: [
+        { title: '年度考核', icon: require('../../../assets/icon/liyuan/niandukaohe.svg'), type: 1, to: "/course" },
+        { title: '个人档案', icon: require('../../../assets/icon/liyuan/gerendangan.svg'), type: 1, to: "/course" },
+        { title: '教师画像', icon: require('../../../assets/icon/liyuan/jiaoshihuaxiang.svg'), type: 1, to: "/course" },
+        { title: '课堂观察', icon: require('../../../assets/icon/liyuan/ketangguancha.svg'), type: 1, to: "/course" },
+        { title: '智能表单', icon: require('../../../assets/icon/liyuan/zhinengbiaodan.svg'), type: 1, to: "/course" },
+      ]
+    }
+  },
+}
+</script>
+
+<style scoped>
+.teacherDevelop{
+  width: 100%;
+  height: 100%;
+  padding: 40px;
+  box-sizing: border-box;
+}
+
+.cardBox{
+  display: grid;
+  grid-template-columns: repeat(5, 1fr);
+  gap: 20px;
+  width: 100%;
+  margin-top: 20px;
+}
+</style>

+ 54 - 1
src/router/index.js

@@ -146,6 +146,12 @@ import appStore from '@/components/pages/appStore'
 import knowledge from '@/components/pages/knowledge/index'
 import sassPlatform from '@/components/pages/sassPlatform/index'
 import classroomObservationTest from '@/components/pages/classroomObservation/test.vue'
+import CourseCon from '@/components/pages/liyuan/CourseCon'
+import aiOffice from '@/components/pages/liyuan/aiOffice'
+import schoolSafe from '@/components/pages/liyuan/schoolSafe'
+import lyStudentEva from '@/components/pages/liyuan/studentEva'
+import teacherDevelop from '@/components/pages/liyuan/teacherDevelop'
+
 // 全局修改默认配置,点击空白处不能关闭弹窗
 ElementUI.Dialog.props.closeOnClickModal.default = false
 Vue.use(Router).use(ElementUI)
@@ -1259,6 +1265,53 @@ export default new Router({
             keepAlive: true,
             requireAuth:""//不需要鉴权
           }
-        }
+        },{
+
+            path:"/CourseCon",
+            name:"CourseCon",
+            component:CourseCon,
+            meta:{
+              keepAlive: true,
+              requireAuth:""//不需要鉴权
+            }
+          },{
+            path:"/aiOffice",
+            name:"aiOffice",
+            component:aiOffice,
+            meta:{
+              keepAlive: true,
+              requireAuth:""//不需要鉴权
+            }
+          },{
+            path:"/schoolSafe",
+            name:"schoolSafe",
+            component:schoolSafe,
+            meta:{
+              keepAlive: true,
+              requireAuth:""//不需要鉴权
+            }
+          },{
+            path:"/lyStudentEva",
+            name:"lyStudentEva",
+            component:lyStudentEva,
+            meta:{
+              keepAlive: true,
+              requireAuth:""//不需要鉴权
+            }
+          },{
+            path:"/teacherDevelop",
+            name:"teacherDevelop",
+            component:teacherDevelop,
+            meta:{
+              keepAlive: true,
+              requireAuth:""//不需要鉴权
+            }
+          }
+
+
+
+
+
+
     ]
 })

Vissa filer visades inte eftersom för många filer har ändrats