This commit is contained in:
toom1996
2025-07-02 16:32:48 +08:00
parent 945bb01109
commit be3b82a10a
42 changed files with 13608 additions and 4 deletions

View File

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.3.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
<g>
<path d="M135.1,183.4c-6.4,0-13.2-1.1-20.5-3.2c-19.6-5.8-40.3-18.8-58.2-36.7C38.6,125.7,25.6,105,19.8,85.4
c-2.9-9.8-3.8-18.9-2.8-27c1.1-8.8,4.5-16,10-21.6l7.4-7.4c2.1-2.1,4.8-3.2,7.7-3.2c2.9,0,5.7,1.1,7.7,3.2l32.4,32.4
c4.2,4.3,4.2,11.2,0,15.4l-7.4,7.4c-1.9,1.9-1.9,6.2,0,11.4c2.1,5.8,6.3,12,11.8,17.4c9.1,9.1,18.8,13.2,24.3,13.2
c2,0,3.5-0.5,4.4-1.4l7.4-7.4c2.1-2.1,4.8-3.2,7.7-3.2s5.7,1.1,7.7,3.2l32.4,32.4c4.2,4.3,4.2,11.2,0,15.4l-7.4,7.4
c-5.5,5.5-12.8,8.9-21.6,10C139.5,183.3,137.4,183.4,135.1,183.4L135.1,183.4z M42.1,35.5c-0.4,0-0.8,0.2-1.1,0.5l-7.4,7.4
c-8.2,8.2-9.9,22.2-4.8,39.4c5.3,18.2,17.5,37.4,34.3,54.2s36,29,54.2,34.3c6.4,1.9,12.5,2.8,17.9,2.8c9,0,16.4-2.7,21.4-7.7
l7.4-7.4c0.3-0.3,0.5-0.7,0.5-1.1s-0.2-0.8-0.5-1.1l-32.4-32.4c-0.3-0.3-0.7-0.5-1.1-0.5s-0.8,0.2-1.1,0.5l-7.4,7.4
c-2.7,2.7-6.5,4.2-11,4.2c-2.8,0-5.8-0.5-9-1.6c-7.3-2.5-15.1-7.5-21.9-14.3c-6.8-6.8-11.9-14.6-14.3-21.9
c-2.8-8.4-1.9-15.6,2.6-20l7.4-7.4c0.3-0.3,0.5-0.7,0.5-1.1s-0.2-0.8-0.5-1.1L43.2,36C42.9,35.7,42.5,35.5,42.1,35.5z M179.2,88
c-2.6,0-4.7-2.1-4.7-4.7c0-31.9-25.9-57.8-57.8-57.8c-2.6,0-4.7-2.1-4.7-4.7s2.1-4.7,4.7-4.7c37,0,67.1,30.1,67.2,67.1v0.1
C183.8,85.9,181.7,88,179.2,88z M154.2,88c-2.6,0-4.7-2.1-4.7-4.7c0-18.1-14.7-32.8-32.8-32.8c-2.6,0-4.7-2.1-4.7-4.7
s2.1-4.7,4.7-4.7c23.2,0,42.2,18.9,42.2,42.2C158.8,85.9,156.7,88,154.2,88z M129.2,88c-2.6,0-4.7-2.1-4.7-4.7
c0-4.3-3.5-7.8-7.8-7.8c-2.6,0-4.7-2.1-4.7-4.7s2.1-4.7,4.7-4.7c9.5,0,17.2,7.7,17.2,17.2C133.8,85.9,131.7,88,129.2,88z"/>
<path d="M116.7,16.7c36.8,0,66.6,29.8,66.6,66.6c0,0,0,0.1,0,0.1c0,2.3-1.9,4.2-4.2,4.2c-2.3,0-4.2-1.9-4.2-4.2
c0-32.2-26.2-58.3-58.3-58.3c-2.3,0-4.2-1.9-4.2-4.2S114.4,16.7,116.7,16.7C116.7,16.7,116.7,16.7,116.7,16.7 M42.1,26.7
c2.7,0,5.3,1,7.4,3l32.4,32.4c4.1,4.1,4.1,10.7,0,14.7l-7.4,7.4l0,0c-4.2,4.2,0,17.7,11.8,29.5c8.8,8.8,18.6,13.4,24.7,13.4
c2.1,0,3.7-0.5,4.8-1.6l7.4-7.4c2-2,4.7-3,7.4-3c2.7,0,5.3,1,7.4,3l32.4,32.4c4.1,4.1,4.1,10.7,0,14.7l-7.4,7.4
c-5.4,5.4-12.6,8.8-21.3,9.9c-2.1,0.3-4.3,0.4-6.4,0.4c0,0-0.1,0-0.1,0c-6.3,0-13.1-1.1-20.3-3.2c-19.6-5.8-40.2-18.7-58-36.5
C39,125.4,26,104.8,20.3,85.2c-2.9-9.7-3.8-18.8-2.8-26.8c1.1-8.7,4.4-15.8,9.9-21.3l7.4-7.4C36.8,27.7,39.4,26.7,42.1,26.7
M135.2,174.6c9.1,0,16.6-2.6,21.8-7.8l7.4-7.4v0c0,0,0,0,0,0c0.8-0.8,0.8-2.1,0-2.9L131.9,124c0,0,0,0,0,0
c-0.4-0.4-0.9-0.6-1.5-0.6c-0.5,0-1.1,0.2-1.5,0.6l-7.4,7.4c-2.7,2.7-6.3,4-10.7,4c-2.7,0-5.7-0.5-8.8-1.6
c-7.3-2.4-15-7.5-21.7-14.2c-6.7-6.7-11.8-14.5-14.2-21.7c-2.8-8.3-1.9-15.2,2.4-19.5L76,71c0,0,0,0,0,0c0.8-0.8,0.8-2.1,0-2.9
L43.6,35.6c0,0,0,0,0,0c-0.4-0.4-0.9-0.6-1.5-0.6c-0.5,0-1.1,0.2-1.5,0.6L33.2,43c-8.3,8.3-10.1,22.5-5,39.9
c5.4,18.3,17.6,37.6,34.4,54.4c16.8,16.8,36.2,29.1,54.4,34.4C123.7,173.6,129.7,174.6,135.2,174.6 M116.7,41.7
c23,0,41.7,18.7,41.7,41.7c0,2.3-1.9,4.2-4.2,4.2c-2.3,0-4.2-1.9-4.2-4.2C150,65,135,50,116.7,50c-2.3,0-4.2-1.9-4.2-4.2h0
C112.5,43.5,114.4,41.7,116.7,41.7 M116.7,66.7c9.2,0,16.7,7.5,16.7,16.7c0,2.3-1.9,4.2-4.2,4.2c-2.3,0-4.2-1.9-4.2-4.2
c0-4.6-3.7-8.3-8.3-8.3c-2.3,0-4.2-1.9-4.2-4.2h0C112.5,68.5,114.4,66.7,116.7,66.7 M116.7,15.7v1V15.7L116.7,15.7
c-2.9,0-5.2,2.3-5.2,5.2s2.3,5.2,5.2,5.2c31.6,0,57.3,25.7,57.3,57.3c0,2.8,2.3,5.2,5.2,5.2s5.2-2.3,5.2-5.2v-0.1
C184.3,46,154,15.7,116.7,15.7L116.7,15.7z M42.1,25.7c-3,0-5.9,1.2-8.1,3.3l-7.4,7.4c-5.6,5.6-9,13-10.1,21.9
c-1,8.2-0.1,17.3,2.8,27.2c5.8,19.7,18.9,40.5,36.8,58.4c17.9,17.9,38.7,31,58.4,36.8c7.3,2.1,14.2,3.2,20.6,3.2l0.1,0
c2.2,0,4.4-0.1,6.5-0.4c8.9-1.1,16.3-4.5,21.9-10.1l7.4-7.4c4.4-4.5,4.4-11.7,0-16.1l-32.4-32.4c-2.2-2.2-5-3.3-8.1-3.3
c-3,0-5.9,1.2-8.1,3.3l-7.4,7.4c-0.8,0.8-2.2,1.3-4.1,1.3c-5.4,0-15-4-24-13.1c-5.4-5.4-9.5-11.5-11.7-17.2c-1.9-5-1.9-9-0.1-10.8
l7.4-7.4c4.4-4.5,4.4-11.7,0-16.1L50.2,29C48,26.9,45.1,25.7,42.1,25.7L42.1,25.7z M135.2,173.6c-5.4,0-11.4-1-17.8-2.8
c-18.1-5.3-37.3-17.5-54-34.2c-16.7-16.7-28.9-35.9-34.2-54c-5-17-3.3-30.8,4.7-38.9l7.4-7.4c0.2-0.2,0.5-0.3,0.8-0.3
c0.3,0,0.6,0.1,0.8,0.3l32.4,32.4c0.2,0.2,0.3,0.5,0.3,0.8c0,0.3-0.1,0.6-0.3,0.8l-7.4,7.4c-4.6,4.6-5.6,11.9-2.7,20.5
c2.5,7.4,7.6,15.3,14.5,22.1c6.9,6.9,14.7,12,22.1,14.5c3.2,1.1,6.3,1.6,9.2,1.6c4.6,0,8.6-1.5,11.4-4.3l7.4-7.4
c0.2-0.2,0.5-0.3,0.8-0.3c0.3,0,0.6,0.1,0.8,0.3l32.4,32.4c0.4,0.4,0.4,1.1,0,1.5l-7.4,7.4C151.4,171,144.1,173.6,135.2,173.6
L135.2,173.6z M116.7,40.7c-2.8,0-5.2,2.3-5.2,5.2c0,1.4,0.5,2.7,1.5,3.7c1,1,2.3,1.5,3.7,1.5c17.8,0,32.3,14.5,32.3,32.3
c0,2.8,2.3,5.2,5.2,5.2s5.2-2.3,5.2-5.2C159.3,59.8,140.2,40.7,116.7,40.7L116.7,40.7z M116.7,65.7
C116.7,65.7,116.7,65.7,116.7,65.7c-2.8,0-5.2,2.3-5.2,5.2c0,1.4,0.5,2.7,1.5,3.7c1,1,2.3,1.5,3.7,1.5c4,0,7.3,3.3,7.3,7.3
c0,2.8,2.3,5.2,5.2,5.2s5.2-2.3,5.2-5.2C134.3,73.6,126.4,65.7,116.7,65.7L116.7,65.7z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.3.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
<path d="M163.9,45.8H33.3c-0.7,0-1.4,0.1-2.1,0.3l63.2,63.2c1.6,1.6,4.3,1.6,5.9,0L163.9,45.8z M172.9,48.6L122,99.5l51.4,51.3
c1.1-1.4,1.7-3.1,1.7-5V54.2C175,52,174.2,50.1,172.9,48.6L172.9,48.6z M164.8,154.2l-48.7-48.8l-9.8,9.8c-4.9,4.9-12.8,4.9-17.7,0
c0,0,0,0,0,0l-9.8-9.8l-48.3,48.3c0.9,0.3,1.8,0.5,2.8,0.5H164.8L164.8,154.2z M25.1,147.3l47.8-47.8L25.3,51.9
c-0.2,0.7-0.3,1.5-0.3,2.3v91.7C25,146.3,25,146.8,25.1,147.3z M33.3,37.5h133.3c9.2,0,16.7,7.5,16.7,16.7v91.7
c0,9.2-7.5,16.7-16.7,16.7H33.3c-9.2,0-16.7-7.5-16.7-16.7V54.2C16.7,45,24.1,37.5,33.3,37.5L33.3,37.5z"/>
</svg>

After

Width:  |  Height:  |  Size: 932 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 297 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 287 KiB

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="41px" height="41px" viewBox="0 0 41 41" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>画板备份 4</title>
<defs>
<filter id="filter-1">
<feColorMatrix in="SourceGraphic" type="matrix" values="0 0 0 0 1.000000 0 0 0 0 1.000000 0 0 0 0 1.000000 0 0 0 1.000000 0"></feColorMatrix>
</filter>
<linearGradient x1="50%" y1="0%" x2="50%" y2="99.6%" id="linearGradient-2">
<stop stop-color="#9FCFF3" offset="0%"></stop>
<stop stop-color="#70A9D9" offset="22.5%"></stop>
<stop stop-color="#817EDC" offset="47.8%"></stop>
<stop stop-color="#5D5AB5" offset="75.9%"></stop>
<stop stop-color="#3F3B9F" offset="100%"></stop>
</linearGradient>
<linearGradient x1="50%" y1="0%" x2="50%" y2="99%" id="linearGradient-3">
<stop stop-color="#E9F4FC" offset="0%"></stop>
<stop stop-color="#C8E2F5" offset="23.9%"></stop>
<stop stop-color="#ABD0EB" offset="51.2%"></stop>
<stop stop-color="#8B87EA" offset="78%"></stop>
<stop stop-color="#4746C0" offset="100%"></stop>
</linearGradient>
</defs>
<g id="画板备份-4" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g filter="url(#filter-1)" id="页面-1备份">
<g transform="translate(5.000000, 2.000000)">
<g id="shuji" transform="translate(0.048710, 0.006672)" fill-rule="nonzero">
<path d="M30.1235794,4.42073632 C29.5139702,4.41153552 29.0246548,3.91946152 29.0246548,3.31561639 C29.0246548,2.71177127 29.5139702,2.21969727 30.1235794,2.21049647 C30.7331885,2.20129567 31.222504,1.70922167 31.222504,1.10537654 C31.222504,0.50153142 30.7331885,0.00945741528 30.1235794,0.000256616725 L3.3470068,0.000256616725 C1.49846407,0.000256616725 -2.41116419e-07,1.48463651 -2.41116419e-07,3.31548809 L-2.41116419e-07,33.150775 C-2.41116419e-07,33.7370296 0.234706837,34.2993585 0.653208579,34.7139513 C1.07171032,35.1285441 1.63941831,35.3612715 2.23133786,35.3612715 L29.0081695,35.3612715 C29.5999993,35.3612715 30.1676014,35.1284812 30.5860396,34.7139513 C31.0044779,34.2994214 31.2392494,33.7371973 31.2392494,33.1510316 L31.2392494,5.52572794 C31.2396616,5.23254063 31.122251,4.95124377 30.9129328,4.74392883 C30.7036147,4.53661389 30.4195997,4.42032694 30.1235794,4.42073632 Z M30.1476753,6.63097617 L30.1476753,33.8644261 L1.22086206,33.8644261 L1.22086206,5.68560016 C1.78768867,6.24997909 2.54528524,6.58671622 3.34778409,6.63097617 L7.59696441,6.63097617 L7.59696441,5.51982575 L3.34778409,5.51982575 C2.76806969,5.51452126 2.21513126,5.27737133 1.81459414,4.86225547 C1.41405702,4.44713962 1.19993007,3.88930454 1.22086206,3.31548809 C1.18895938,2.73081521 1.40192554,2.15899272 1.8095308,1.73488946 C2.21713605,1.3107862 2.7832937,1.07194949 3.37447101,1.07468716 L30.305465,1.07468716 C29.837537,1.34544149 28.2122255,1.51403868 28.2122255,3.31548809 C28.2122255,4.65323107 29.8538601,5.2657752 30.1476753,5.51982575 L14.7019048,5.51982575 L14.7019048,6.63097617 L30.1476753,6.63097617 L30.1476753,6.63097617 Z" id="形状" fill="url(#linearGradient-2)"></path>
<path d="M6.69401359,0 L6.69401359,17.6808924 L11.1561711,13.2604126 L15.6196242,17.6806357 L15.6196242,0 L6.69401359,0 Z M14.6086301,15.2515018 L11.1561711,11.8623647 L7.73221271,15.2515018 L7.73221271,1.0280066 L14.6086301,1.0280066 L14.6086301,15.2515018 L14.6086301,15.2515018 Z" id="形状-2" fill="url(#linearGradient-3)"></path>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="41px" height="41px" viewBox="0 0 41 41" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>画板备份 3</title>
<defs>
<filter id="filter-1">
<feColorMatrix in="SourceGraphic" type="matrix" values="0 0 0 0 1.000000 0 0 0 0 1.000000 0 0 0 0 1.000000 0 0 0 1.000000 0"></feColorMatrix>
</filter>
<linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-2">
<stop stop-color="#73A1DA" offset="0%"></stop>
<stop stop-color="#B09FE5" offset="24.8%"></stop>
<stop stop-color="#807DDC" offset="51.2%"></stop>
<stop stop-color="#5855B1" offset="79.6%"></stop>
<stop stop-color="#333085" offset="100%"></stop>
</linearGradient>
<linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-3">
<stop stop-color="#C8E3F7" offset="0%"></stop>
<stop stop-color="#8BBEF5" offset="25.9%"></stop>
<stop stop-color="#7C8CDC" offset="55%"></stop>
<stop stop-color="#6563BE" offset="80.5%"></stop>
<stop stop-color="#3F3B9F" offset="100%"></stop>
</linearGradient>
<linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-4">
<stop stop-color="#D9D8FF" offset="0%"></stop>
<stop stop-color="#7572F4" offset="100%"></stop>
</linearGradient>
</defs>
<g id="画板备份-3" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g filter="url(#filter-1)" id="页面-1备份">
<g transform="translate(1.000000, 2.000000)">
<g id="erji-" transform="translate(0.007954, 0.019341)" fill-rule="nonzero">
<path d="M34.6081382,30.1879805 C34.2630065,30.1876201 33.9460132,29.9991166 33.7830807,29.6973486 C33.6201482,29.3955806 33.6376568,29.0294071 33.8286513,28.744287 C38.6085907,21.5967449 37.3293125,12.0457419 30.833664,6.38391681 C24.3380154,0.722091693 14.6238566,0.690846351 8.0913209,6.31076665 C1.55878517,11.930687 0.217078012,21.4732596 4.95017763,28.6514001 C5.14408699,28.9289807 5.17087914,29.2890582 5.02015444,29.5918648 C4.86942974,29.8946715 4.56492328,30.0925233 4.22483244,30.1086221 C3.88474159,30.1247209 3.56262155,29.9565315 3.38350658,29.6693384 C-0.591589523,23.6444021 -0.793559202,15.9090362 2.86179854,9.68810865 C6.51715629,3.4671811 13.4024115,-0.171506679 20.6471068,0.289011351 C27.8918021,0.749529381 34.2524097,5.23020684 37.0771974,11.8630529 C39.5730819,17.7373393 38.9391454,24.4607545 35.3883947,29.7741861 C35.2148279,30.0332758 34.9217651,30.1886952 34.6081382,30.1879805 Z" id="路径" fill="url(#linearGradient-2)"></path>
<path d="M27.7025724,7.41135441 C27.6060782,7.41143837 27.5117478,7.38299816 27.431625,7.32966467 C27.2617697,7.21743698 27.0870395,7.10699067 26.9130789,7.00214303 C26.7637995,6.91222455 26.6742254,6.7501469 26.6780982,6.57696315 C26.6819711,6.4037794 26.7787025,6.24580029 26.9318548,6.16253502 C27.0850071,6.07926975 27.2713127,6.0833683 27.4205921,6.17328677 C27.6066118,6.28525999 27.7928882,6.40232289 27.9740329,6.52320306 C28.1529527,6.64196683 28.2325202,6.86281377 28.1700072,7.06714757 C28.1074942,7.27148136 27.9176068,7.41123273 27.7023158,7.41135441 L27.7025724,7.41135441 Z M11.3933882,7.24492131 C11.176843,7.2450689 10.9861545,7.10352219 10.9252392,6.89741765 C10.8643239,6.69131311 10.9477842,6.47005763 11.1301382,6.3542253 C15.5785986,3.54774105 21.162721,3.1844275 25.9426974,5.39049223 C26.1008685,5.46381806 26.2075838,5.61526842 26.2226447,5.78779341 C26.2377056,5.96031841 26.158824,6.1277074 26.0157138,6.22690655 C25.8726036,6.32610571 25.6870066,6.34204433 25.5288355,6.26871849 C21.0517564,4.20324814 15.8220229,4.54351275 11.6553553,7.17137527 C11.5772809,7.2213432 11.4863056,7.24785623 11.3933882,7.24772116 L11.3933882,7.24492131 Z M8.45042763,23.5232815 C9.36351952,23.5232815 10.2263745,23.9378416 10.7923451,24.648522 C11.3583157,25.3592024 11.5651109,26.2877626 11.3536184,27.168773 C10.9728474,28.7636304 10.9728474,30.4246461 11.3536184,32.0195035 C11.6202482,33.1289131 11.2205171,34.2915712 10.3260539,35.0082782 C9.43159068,35.7249852 8.20153281,35.8682289 7.16401871,35.3765061 C6.12650462,34.8847833 5.46612251,33.8455783 5.46641438,32.7050849 L5.46641438,26.483955 C5.46782827,24.8497987 6.80282302,23.5252457 8.45042763,23.5232815 M8.45042763,21.8485185 C7.21098645,21.8485185 6.02232081,22.3369178 5.14597573,23.2062528 C4.26963065,24.0755877 3.77740767,25.254631 3.77761178,26.483955 L3.77761178,32.7055939 C3.77761178,34.4910807 4.81166395,36.1178066 6.43597449,36.8875308 C8.06028503,37.6572551 9.98595266,37.4330837 11.3864218,36.3112378 C12.7868909,35.189392 13.4130906,33.36939 12.9962368,31.6324324 C12.6749239,30.292685 12.6749239,28.8968639 12.9962368,27.5571165 C13.3276532,26.1775523 13.00397,24.7234216 12.1177358,23.6104944 C11.2315016,22.4975672 9.88028393,21.8485185 8.45042763,21.8485185 Z M30.3933158,23.5232815 C32.0410206,23.5251055 33.3761715,24.8496995 33.3775856,26.483955 L33.3775856,32.7055939 C33.3778891,33.8461853 32.7174608,34.8854862 31.6798625,35.3772617 C30.6422642,35.8690371 29.4120991,35.7257934 28.5175517,35.0090338 C27.6230043,34.2922742 27.223227,33.1295201 27.4898684,32.0200124 C27.8706394,30.425155 27.8706394,28.7641394 27.4898684,27.169282 C27.2783759,26.2882715 27.4851712,25.3597114 28.0511417,24.6490309 C28.6171123,23.9383505 29.4799673,23.5237674 30.3930592,23.5237905 M30.3930592,21.8490275 C28.9634094,21.8490275 27.6124255,22.4981542 26.7262463,23.6108636 C25.8400671,24.7235729 25.5162137,26.1774186 25.84725,27.556862 C26.1685629,28.8966094 26.1685629,30.2924305 25.84725,31.6321779 C25.4303962,33.3691355 26.056596,35.1891375 27.4570651,36.3109833 C28.8575342,37.4328292 30.7832018,37.6570006 32.4075124,36.8872764 C34.0318229,36.1175521 35.065875,34.4908262 35.065875,32.7053394 L35.065875,26.483955 C35.065875,23.9242958 32.9737841,21.849282 30.3930592,21.849282 L30.3930592,21.8490275 Z" id="形状" fill="url(#linearGradient-3)"></path>
<path d="M17.9577039,35.6868808 C17.4403403,35.6868808 17.0209342,35.270898 17.0209342,34.7577575 L17.0209342,24.430519 C17.0328424,23.9259888 17.4486256,23.5231405 17.9574474,23.5231405 C18.4662691,23.5231405 18.8820524,23.9259888 18.8939607,24.430519 L18.8939607,34.7577575 C18.8940968,35.0042177 18.7954454,35.2406223 18.6197375,35.414896 C18.4440295,35.5891697 18.2056793,35.6870158 17.9571908,35.6868808 L17.9577039,35.6868808 Z M21.7899671,33.1053891 C21.5415203,33.1053891 21.3032493,33.0074997 21.1275709,32.8332553 C20.9518925,32.6590109 20.8531974,32.4226848 20.8531974,32.176266 L20.8531974,27.0262617 C20.8452425,26.6892253 21.0219806,26.3743587 21.3150106,26.2035216 C21.6080406,26.0326846 21.9713805,26.0326846 22.2644105,26.2035216 C22.5574404,26.3743587 22.7341786,26.6892253 22.7262237,27.0262617 L22.7262237,32.176266 C22.7262238,32.6892078 22.3071303,33.1051082 21.7899671,33.1053891 L21.7899671,33.1053891 Z" id="形状-2" fill="url(#linearGradient-4)"></path>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.0 KiB

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="41px" height="41px" viewBox="0 0 41 41" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>画板备份</title>
<defs>
<filter id="filter-1">
<feColorMatrix in="SourceGraphic" type="matrix" values="0 0 0 0 1.000000 0 0 0 0 1.000000 0 0 0 0 1.000000 0 0 0 1.000000 0"></feColorMatrix>
</filter>
<linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-2">
<stop stop-color="#E2F0FB" offset="0%"></stop>
<stop stop-color="#C0DDF2" offset="17.9%"></stop>
<stop stop-color="#B4D5EE" offset="38.7%"></stop>
<stop stop-color="#84B9E4" offset="59.4%"></stop>
<stop stop-color="#7B8CDB" offset="81.8%"></stop>
<stop stop-color="#4340A2" offset="100%"></stop>
</linearGradient>
</defs>
<g id="画板备份" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g filter="url(#filter-1)" id="页面-1备份">
<g transform="translate(2.000000, 3.000000)" id="shuben" fill="url(#linearGradient-2)" fill-rule="nonzero">
<path d="M32.0062937,0 L19.6847762,6.15703597 L19.6847762,29.6619281 L31.9967203,25.7568345 L32.0062937,0 Z M34.4490699,2.38661871 L34.4490699,29.1022446 L18.464035,33.5802302 L2.46062937,29.1022446 L2.46062937,2.38661871 L0,2.38661871 L0,31.3420144 L18.4635175,35.818705 L36.9314336,31.3407194 L36.9314336,2.38661871 L34.4490699,2.38661871 Z M17.2321678,6.15703597 L4.3083007,0 L4.3083007,25.7438849 L17.2321678,29.6489784 L17.2321678,6.15703597 Z" id="形状"></path>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="41px" height="41px" viewBox="0 0 41 41" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>画板</title>
<defs>
<filter id="filter-1">
<feColorMatrix in="SourceGraphic" type="matrix" values="0 0 0 0 1.000000 0 0 0 0 1.000000 0 0 0 0 1.000000 0 0 0 1.000000 0"></feColorMatrix>
</filter>
<linearGradient x1="50%" y1="0.3%" x2="50%" y2="100%" id="linearGradient-2">
<stop stop-color="#D9ECFB" offset="0%"></stop>
<stop stop-color="#BBDAF1" offset="11.9%"></stop>
<stop stop-color="#70A9D9" offset="34.3%"></stop>
<stop stop-color="#7B8EDB" offset="50.6%"></stop>
<stop stop-color="#6C69C6" offset="72.4%"></stop>
<stop stop-color="#3D3AB0" offset="100%"></stop>
</linearGradient>
</defs>
<g id="画板" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g filter="url(#filter-1)" id="页面-1备份">
<g transform="translate(1.000000, 2.000000)">
<g id="liwu" transform="translate(0.000000, 0.048643)" fill="url(#linearGradient-2)" fill-rule="nonzero">
<path d="M35.1311258,17.3002168 L35.1311258,31.7801538 C35.1314619,34.3794752 33.1039618,36.4986128 30.5761589,36.5409936 L30.5006623,36.5409936 L7.43164238,36.5409936 C4.90281788,36.5423277 2.84064773,34.4574572 2.79941722,31.8577762 L2.79941722,31.7801538 L2.79941722,17.3002168 L17.7588344,17.3002168 L17.7588344,32.0262168 L17.7588344,32.0554545 C17.800974,32.7414791 18.3583149,33.273387 19.026839,33.2655966 C19.6953632,33.2578062 20.2408354,32.7130471 20.2678411,32.0262168 L20.2678411,17.3002168 L35.1311258,17.3002168 Z M13.8289801,0.97234965 L13.8903841,1.02073427 L19.0000042,5.12281818 L24.0552583,1.06394406 L24.1166623,1.01555944 C25.799922,-0.2930766 28.1268864,-0.28120633 29.7974336,1.04453809 C31.4679808,2.37028251 32.0685873,4.68172936 31.2636821,6.68742657 L33.0091656,6.68742657 C34.8597692,6.68682612 36.5541429,7.75404926 37.3942266,9.44941397 C38.2343103,11.1447787 38.0779649,13.1814352 36.9896026,14.7203077 L20.2680927,14.7203077 L20.2680927,6.68716783 C17.8051391,6.71562937 20.2998013,6.7057972 17.7590861,6.71640559 L17.7590861,14.7203077 L0.940940397,14.7203077 C-0.147675641,13.1812815 -0.304021143,11.1442876 0.53633243,9.44875244 C1.376686,7.75321728 3.07151039,6.68610698 4.92238411,6.68716783 L6.70058278,6.68716783 C5.87438387,4.68197402 6.46141317,2.35622277 8.13172112,1.01714109 C9.80202907,-0.321940582 12.1389506,-0.340313291 13.8289801,0.97234965 Z M25.627351,3.07358741 L25.5989139,3.0960979 L21.1262384,6.68716783 L28.2961589,6.68716783 L28.2518675,6.62895105 L28.2996821,6.59013986 C29.2206952,5.82429056 29.3744286,4.44065924 28.6451372,3.48097588 C27.9158457,2.52129253 26.5728791,2.33999767 25.627351,3.07358741 L25.627351,3.07358741 Z M9.29892715,3.43582517 C8.56963574,4.39609513 8.72397088,5.78023218 9.64570861,6.5458951 L9.69352318,6.58470629 L9.61651656,6.68587413 L16.872755,6.68587413 L12.3464768,3.05314685 C11.8928261,2.68854783 11.3168839,2.5241718 10.745355,2.59618083 C10.1738262,2.66818985 9.65352915,2.97068511 9.29892715,3.43711888 L9.29892715,3.43582517 Z" id="形状"></path>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 KiB

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="41px" height="41px" viewBox="0 0 41 41" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>画板备份 2</title>
<defs>
<filter id="filter-1">
<feColorMatrix in="SourceGraphic" type="matrix" values="0 0 0 0 1.000000 0 0 0 0 1.000000 0 0 0 0 1.000000 0 0 0 1.000000 0"></feColorMatrix>
</filter>
<linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-2">
<stop stop-color="#E5F2FB" offset="0%"></stop>
<stop stop-color="#ABD2F0" offset="21.8%"></stop>
<stop stop-color="#79B0DE" offset="44.4%"></stop>
<stop stop-color="#7B8ADB" offset="64.6%"></stop>
<stop stop-color="#6F6CC9" offset="83.1%"></stop>
<stop stop-color="#423FA1" offset="100%"></stop>
</linearGradient>
</defs>
<g id="画板备份-2" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g filter="url(#filter-1)" id="VIP-fill">
<g transform="translate(0.027682, 0.000000)">
<path d="M20.2547834,-9.77926599e-07 C9.06837543,-9.77926599e-07 0,9.12650605 0,20.3846218 C0,31.6427375 9.06837543,40.7692436 20.2547834,40.7692436 C31.4411914,40.7692436 40.5095679,31.6427375 40.5095679,20.3846218 C40.5112301,14.977771 38.3777842,9.79189009 34.5789148,5.96866903 C30.7800455,2.14544798 25.6271957,-0.00167383978 20.2547834,-9.77926599e-07 Z M26.1209172,29.0466603 L14.328586,29.0466603 C13.9554186,29.0393276 13.6567142,28.7327817 13.6567142,28.3571506 C13.6567142,27.9815196 13.9554186,27.6749736 14.328586,27.667641 L26.1209172,27.667641 C26.3039073,27.6634291 26.4806451,27.7347341 26.6100725,27.8649912 C26.7394999,27.9952482 26.8103507,28.1731189 26.8061656,28.3572821 C26.8082179,28.5408333 26.7366369,28.7174622 26.6076159,28.8472113 C26.478595,28.9769604 26.3030366,29.0488656 26.1206561,29.0466603 L26.1209172,29.0466603 Z M28.8496369,17.8925577 L28.8256115,17.8925577 L26.926293,26.1188397 C26.8627233,26.4337985 26.5843421,26.6578647 26.2650701,26.6510513 L14.2081975,26.6510513 C13.8914143,26.6506072 13.6170321,26.4297598 13.5469745,26.1188397 L11.6476561,17.8925577 C10.9771809,17.8753609 10.4461522,17.3168411 10.4586199,16.6419656 C10.4710875,15.96709 11.0223783,15.4288221 11.6930252,15.4367199 C12.3636721,15.4446177 12.902297,15.9957208 12.8990701,16.6707051 C12.9004026,16.8459707 12.8634961,17.0193948 12.7909554,17.1787372 L16.4208917,18.8119038 L19.5102548,13.9728526 C19.1857075,13.7428346 18.9928621,13.3681071 18.9934459,12.9686154 C18.9726014,12.5141844 19.2016256,12.0850006 19.5895627,11.8515123 C19.9774999,11.6180239 20.4615575,11.6180239 20.8494946,11.8515123 C21.2374317,12.0850006 21.4664559,12.5141844 21.4456115,12.9686154 C21.4498095,13.3753253 21.2510012,13.7570321 20.9162675,13.9849423 L23.7165414,18.8239936 L27.6953694,17.1545577 C27.6324306,17.001081 27.5997892,16.8367385 27.5992675,16.6707051 C27.5894462,16.1656013 27.8835804,15.7044983 28.3440004,15.503216 C28.8044204,15.3019337 29.340031,15.4002963 29.7001391,15.7522649 C30.0602471,16.1042336 30.1736044,16.6401706 29.987154,17.10923 C29.8007036,17.5782894 29.351335,17.8876668 28.8493758,17.8925577 L28.8496369,17.8925577 Z" id="形状" fill="url(#linearGradient-2)" fill-rule="nonzero"></path>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 348 KiB

View File

@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12.976" height="12.605" viewBox="0 0 12.976 12.605">
<g id="组_7051" data-name="组 7051" transform="translate(1.086 1)">
<path id="路径_2314" data-name="路径 2314" d="M-752.332,7541.811l4.889,3.618,4.889-3.618" transform="translate(752.849 -7537.899)" fill="none" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<path id="路径_2315" data-name="路径 2315" d="M0,6.866V1" transform="translate(5.406 -1)" fill="none" stroke="#fff" stroke-linecap="round" stroke-width="2"/>
<line id="直线_2" data-name="直线 2" x2="10.976" transform="translate(-0.086 10.605)" fill="none" stroke="#fff" stroke-linecap="round" stroke-width="2"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 745 B

View File

@ -1,4 +1,5 @@
---
import { TP2_COLUMN_NEWS, TP2_COLUMN_NEWS_URL } from '../../utils/const'
import { APP_NAME, APP_COMPANY } from '../config/app.ts'
---
@ -11,7 +12,7 @@ import { APP_NAME, APP_COMPANY } from '../config/app.ts'
<div class="footer-column">
<h4>浏览</h4>
<ul>
<li><a href="/news" title="新闻专栏">新闻专栏</a></li>
<li><a href={TP2_COLUMN_NEWS_URL} title={TP2_COLUMN_NEWS}>{TP2_COLUMN_NEWS}</a></li>
</ul>
</div>
<div class="footer-column">

View File

@ -0,0 +1,476 @@
---
import { getConfig } from "../../../utils/config";
import { TP2_COLUMN_NEWS, TP2_COLUMN_NEWS_URL, TP2_COLUMN_ABOUT_US, TP2_COLUMN_ABOUT_US_URL, TP2_COLUMN_CONTACT_US, TP2_COLUMN_CONTACT_US_URL, TP2_COLUMN_PROTECT, TP2_COLUMN_PROTECT_URL } from "../../../utils/const";
const config = getConfig(Astro)
const { path = [] } = Astro.props
---
<footer class="v4 n09-footer footer" data-component="n09-footer">
<div class="container">
<div class="breadcrumbs">
<ul class="breadcrumbs__list">
{
path?.map(e => {
return <li class="breadcrumbs__item">
<a class="breadcrumbs__link" title={e.title} href={`${e.url}`}>{e.title}</a>
</li>
})
}
</ul>
</div>
<div class="usp-wrap"></div>
<div class="footer-links">
<div class="row">
<div class="col-xl-2 col-lg-4">
<div class="footer-links__block">
<div class="heading footer-links__title heading-06 js-footer-accordion-btn">
购买产品
</div>
<ul class="footer-links__list" role="menubar">
<li class="footer-links__item" role="menuitem">
<a title="手机" data-title="手机" class="footer-links__link" href="/cn/phones/">
手机
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="穿戴" data-title="穿戴" class="footer-links__link" href="/cn/wearables/">
穿戴
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="鸿蒙电脑" data-title="鸿蒙电脑" class="footer-links__link" href="/cn/harmonyos-computer/">
鸿蒙电脑
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="笔记本" data-title="笔记本" class="footer-links__link" href="/cn/laptops/">
笔记本
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="显示器" data-title="显示器" class="footer-links__link" href="/cn/monitors/">
显示器
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="打印机" data-title="打印机" class="footer-links__link" href="/cn/printers/">
打印机
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="平板" data-title="平板" class="footer-links__link" href="/cn/tablets/">
平板
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="智慧屏" data-title="智慧屏" class="footer-links__link" href="/cn/visions/">
智慧屏
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="耳机音箱" data-title="耳机音箱" class="footer-links__link" href="/cn/audio/">
耳机音箱
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="路由器" data-title="路由器" class="footer-links__link" href="/cn/routers/">
路由器
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="配件" data-title="配件" class="footer-links__link" href="/cn/accessories/overview/">
配件
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="商用产品" data-title="商用产品" class="footer-links__link" href="https://qingyun.huawei.com/products-and-solutions/?utm_medium=referral&utm_source=consumer.huawei.com" target="_blank" rel="noopener noreferrer">
商用产品
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="教育商店" data-title="教育商店" class="footer-links__link" href="https://www.vmall.com/portal/activity/index.html?pn=educationcenterpc" target="_blank" rel="noopener noreferrer">
教育商店
</a>
</li>
</ul>
</div>
</div>
<div class="col-xl-2 col-lg-4">
<div class="footer-links__block">
<div class="heading footer-links__title heading-06 js-footer-accordion-btn">服务支持</div>
<ul class="footer-links__list" role="menubar">
<li class="footer-links__item" role="menuitem">
<a title="保修政策" data-title="保修政策" class="footer-links__link" href="/cn/support/warranty-policy/">
保修政策
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="上门安装" data-title="上门安装" class="footer-links__link" href="/cn/support/install/">
上门安装
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="维修服务" data-title="维修服务" class="footer-links__link" href="/cn/support/break-fix/">
维修服务
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="保修期及权益查询" data-title="保修期及权益查询" class="footer-links__link" href="/cn/support/warranty-query/">
保修期及权益查询
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="维修备件价格" data-title="维修备件价格" class="footer-links__link" href="/cn/support/sparepart-price/">
维修备件价格
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="服务进度查询" data-title="服务进度查询" class="footer-links__link" href="/cn/support/inquiry/">
服务进度查询
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title={TP2_COLUMN_CONTACT_US} class="footer-links__link" href={TP2_COLUMN_CONTACT_US_URL}>
{TP2_COLUMN_CONTACT_US}
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="服务隐私声明" data-title="服务隐私声明" class="footer-links__link" href="/cn/support/service-privacy-notice/">
服务隐私声明
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="商用服务" data-title="商用服务" class="footer-links__link" href="https://bsupport.huawei.com/" target="_blank" rel="noopener noreferrer">
商用服务
</a>
</li>
</ul>
</div>
</div>
<div class="col-xl-2 col-lg-4">
<div class="footer-links__block">
<div class="heading footer-links__title heading-06 js-footer-accordion-btn">
应用与下载
</div>
<ul class="footer-links__list" role="menubar">
<li class="footer-links__item" role="menuitem">
<a title="终端云服务" data-title="终端云服务" class="footer-links__link" href="/cn/mobileservices/">
终端云服务
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="华为商城 APP" data-title="华为商城 APP" class="footer-links__link" href="https://m.vmall.com/app/download?cid=1457312" target="_blank" rel="noopener noreferrer">
华为商城 APP
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="我的华为 APP " data-title="我的华为 APP " class="footer-links__link" href="/cn/myhuawei-app/">
我的华为 APP
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="华为手机助手" data-title="华为手机助手" class="footer-links__link" href="https://consumer.huawei.com/cn/support/hisuite/">
华为手机助手
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="华为电脑管家" data-title="华为电脑管家" class="footer-links__link" href="https://consumer.huawei.com/cn/support/pc-manager/">
华为电脑管家
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="HarmonyOS 5" data-title="HarmonyOS 5" class="footer-links__link" href="/cn/harmonyos-next/">
HarmonyOS 5
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="预置应用公示" data-title="预置应用公示" class="footer-links__link" href="/cn/support/apk/">
预置应用公示
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="HUAWEI HiCar" data-title="HUAWEI HiCar" class="footer-links__link" href="/cn/phones/hicar/">
HUAWEI HiCar
</a>
</li>
</ul>
</div>
</div>
<div class="col-xl-2 col-lg-4">
<div class="footer-links__block">
<div class="heading footer-links__title heading-06 js-footer-accordion-btn">
新闻中心
</div>
<ul class="footer-links__list" role="menubar">
<li class="footer-links__item" role="menuitem">
<a title={TP2_COLUMN_NEWS} class="footer-links__link" href={TP2_COLUMN_NEWS_URL}>
{TP2_COLUMN_NEWS}
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="华为活动" class="footer-links__link" href="/cn/press/events/">
华为活动
</a>
</li>
</ul>
</div>
</div>
<div class="col-xl-2 col-lg-4">
<div class="footer-links__block">
<div class="heading footer-links__title heading-06 js-footer-accordion-btn">
关于我们
</div>
<ul class="footer-links__list" role="menubar">
<li class="footer-links__item" role="menuitem">
<a title={TP2_COLUMN_ABOUT_US} class="footer-links__link" href={TP2_COLUMN_ABOUT_US_URL}>
{TP2_COLUMN_ABOUT_US}
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="可持续发展" data-title="可持续发展" class="footer-links__link" href="/cn/sustainability/">
可持续发展
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="隐私" data-title="隐私" class="footer-links__link" href="/cn/privacy/privacy-statement-huawei/">
隐私
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="华为商城" data-title="华为商城" class="footer-links__link" href="https://www.vmall.com/index.html?cid=27629229" target="_blank" rel="noopener noreferrer">
华为商城
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="HarmonyOS 开发者" data-title="HarmonyOS 开发者" class="footer-links__link" href="https://developer.huawei.com/consumer/cn/" target="_blank" rel="noopener noreferrer">
HarmonyOS 开发者
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="华为云" data-title="华为云" class="footer-links__link" href="https://www.huaweicloud.com/" target="_blank" rel="noopener noreferrer">
华为云
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="企业业务" data-title="企业业务" class="footer-links__link" href="https://e.huawei.com/cn/" target="_blank" rel="noopener noreferrer">
企业业务
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="运营商网络" data-title="运营商网络" class="footer-links__link" href="https://carrier.huawei.com/cn/" target="_blank" rel="noopener noreferrer">
运营商网络
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="华为集团" data-title="华为集团" class="footer-links__link" href="https://www.huawei.com/cn/" target="_blank" rel="noopener noreferrer">
华为集团
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="加入华为" data-title="加入华为" class="footer-links__link" href="https://career.huawei.com/reccampportal/campus4_index.html#campus4/content.html" target="_blank" rel="noopener noreferrer">
加入华为
</a>
</li>
<li class="footer-links__item" role="menuitem">
<a title="内容举报" data-title="内容举报" class="footer-links__link
goto-complaint-page" href="/cn/complaint-page/" target="_blank" rel="noopener noreferrer">
内容举报
</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="contact">
<div class="row">
<div class="contact__block col-xl-2 col-md-6">
<div class="heading contact__title heading-06">
在线支持
</div>
<p class="contact__text">
<a title="消费者服务热线">消费者服务热线</a>
</p>
<p class="contact__text phone-icon">950800</p>
<p class="contact__text">
<a title="7*24小时 | 普通话">7*24小时 | 普通话</a>
</p>
<p class="contact__text phone-icon">950801</p>
<p class="contact__text">
<a href="https://celia.consumer.huawei.com/official/#/?businessUUID=fe8192189f0a40e8a883ab8bdf1ba8ea" title="在线客服 | 7*24小时" target="_blank" rel="noopener noreferrer">在线客服 | 7*24小时</a>
</p>
</div>
<div class="contact__block col-xl-2 col-md-6">
<div class="heading contact__title heading-06">
线下支持
</div>
<p class="contact__text">
<a href="/cn/support/service-center/" title="服务店查询">服务店查询</a>
</p>
<p class="contact__text">
<a href="/cn/retail/" title="零售店查询">零售店查询</a>
</p>
</div>
<!-- <div class="contact__block col-xl-4 col-md-6">
<div class="heading contact__title heading-06">
关注我们
</div>
<ul class="contact__social-links lazyload-target">
<li class="contact__social-item">
<a title="微信" class="contact__social-link" data-social="weixin">
<span class="icon-lazy" data-name="font-ico-weixin"></span>
<span class="contact__social-qrcode">
<picture>
<source class="lazyload-img" media="(max-width: 1199.98px)" data-srcset="//consumer-img.huawei.com/content/dam/huawei-cbg-site/greate-china/cn/mkt/v4/footer/weixin-mob.jpg" />
<img class="lazyload-img" data-src="//consumer-img.huawei.com/content/dam/huawei-cbg-site/greate-china/cn/mkt/v4/footer/weixin.jpg" alt="weixin" srcset="" />
</picture>
</span>
</a>
</li>
<li class="contact__social-item">
<a title="微博" class="contact__social-link" data-social="weibo" href="http://t.sina.com.cn/huaweidevice" target="_blank" rel="noopener noreferrer">
<span class="icon-lazy" data-name="font-ico-weibo"></span>
</a>
</li>
</ul>
</div> -->
</div>
</div>
<div class="footer-legals">
<div class="row">
<div class="copyright col-xl-4 col-md-8">
<small class="copyright__text">版权所有 © {config.app_company}
。保留一切权利。{config.app_biling}</small>
</div>
<div class="bottom-links col-xl-5">
<ul class="bottom-links__list">
<li class="bottom-links__item">
<a title="使用条款" class="bottom-links__link" href="/cn/legal/terms-of-use/">
使用条款
</a>
</li>
<li class="bottom-links__item">
<a title="隐私声明" class="bottom-links__link" href="/cn/privacy/privacy-policy/">
隐私声明
</a>
</li>
<li class="bottom-links__item">
<a title="法律信息" class="bottom-links__link" href="/cn/legal/">
法律信息
</a>
</li>
<li class="bottom-links__item">
<a title={TP2_COLUMN_PROTECT} class="bottom-links__link" href={TP2_COLUMN_PROTECT_URL}>
{TP2_COLUMN_PROTECT}
</a>
</li>
</ul>
</div>
</div>
</div>
</div>
</footer>
<style>
.footer-legals .row {
justify-content: space-between;
}
</style>
<script>
document.addEventListener('DOMContentLoaded', function () {
function isMobile() {
return window.innerWidth <= 991;
}
function setupFooterAccordion() {
const btns = document.querySelectorAll('.js-footer-accordion-btn');
btns.forEach(btn => {
// 先重置
btn.setAttribute('aria-expanded', 'false');
btn.classList.remove('footer-links__title--active');
const list = btn.nextElementSibling;
if (list && list.classList.contains('footer-links__list') && list instanceof HTMLElement) {
list.style.display = '';
}
// 只在小屏下绑定
(btn as HTMLElement).onclick = function (e: MouseEvent) {
if (!isMobile()) return;
e.preventDefault();
const isActive = btn.classList.toggle('footer-links__title--active');
btn.setAttribute('aria-expanded', isActive ? 'true' : 'false');
// 展开/收起对应的 ul
if (list && list.classList.contains('footer-links__list') && list instanceof HTMLElement) {
list.style.display = isActive ? 'block' : 'none';
}
// 收起其它
btns.forEach(otherBtn => {
if (otherBtn !== btn) {
otherBtn.classList.remove('footer-links__title--active');
otherBtn.setAttribute('aria-expanded', 'false');
const otherList = otherBtn.nextElementSibling;
if (otherList && otherList.classList.contains('footer-links__list') && otherList instanceof HTMLElement) {
otherList.style.display = 'none';
}
}
});
};
});
}
// 初始化
setupFooterAccordion();
// 屏幕尺寸变化时重置
window.addEventListener('resize', setupFooterAccordion);
});
</script>

View File

@ -0,0 +1,140 @@
---
import { getConfig } from "../../../utils/config";
import { Image } from 'astro:assets';
import { TP2_COLUMN_NEWS, TP2_COLUMN_NEWS_URL } from "../../../utils/const";
const config = getConfig(Astro)
---
<div class="v4 header slide-down-corporation nav-v2 scroll-with-screen" id="header-v4" data-component="header" role="navigation">
<div id="topTipsBox" class="top-tips-box"></div>
<input title="main-nav" type="hidden" id="mainNav" value="nav-v2" />
<div class="v4 n01-main-navigation main-navigation nav-v2" data-component="n01-main-navigation">
<div class="container main-navigation__container">
<a title="logo" class="logo" href="/" data-navicon="logo">
<div>
<Image src={config.app_logo} alt="logo" width="25" height="25" loading="eager"/>
</div>
<div class="company_name">
{config.app_name}
</div>
</a>
<nav class="main-nav" role="presentation">
<div class="lf-nav nav-zone">
<ul class="main-nav__list" role="menubar">
<li class="main-nav__item" role="menuitem">
<a title={TP2_COLUMN_NEWS} class="main-nav__link unhover title-hide-v5" href={TP2_COLUMN_NEWS_URL}>{TP2_COLUMN_NEWS}</a>
</li>
<!-- <li class="main-nav__item" role="menuitem">
<a title="企业文化" data-navicon="企业文化" class="main-nav__link unhover title-hide-v5" href="/cn/phones/">企业文化</a>
</li>
<li class="main-nav__item" role="menuitem">
<a title="产品介绍" data-navicon="产品介绍" class="main-nav__link unhover title-hide-v5" href="/cn/harmonyos-computer/">产品介绍</a>
</li> -->
<li class="main-nav__item" role="menuitem">
<a title="联系方式(888-888)" data-navicon="联系方式" class="main-nav__link unhover title-hide-v5" href="/cn/harmonyos-computer/">联系方式(888-888)</a>
</li>
</ul>
</div>
<!-- <div class="rg-nav nav-zone">
<ul class="main-nav__list" role="menubar">
<li class="main-nav__item " role="menuitem" tabindex="0">
<a title="服务热线" class="main-nav__link unhover title-hide-v5" href="/cn/support/">服务热线888-888</a>
</li>
</ul>
</div> -->
</nav>
<div class="nav-addons">
<button id="open-nav" aria-haspopup="true" role="button" aria-expanded="false" class="nav-toggle js-nav-toggle">
<span class="btn-line"></span>
<span class="sr-only">打开菜单</span>
<span class="btn-line"></span>
</button>
</div>
</div>
</div>
</div>
<script>
// 确保 DOM 完全加载后再执行代码
document.addEventListener('DOMContentLoaded', function() {
// 获取导航栏元素 - 请根据实际情况修改选择器
const headerNav = document.querySelector('#header-v4');
const btn = document.getElementById("open-nav");
const mainNav = document.querySelector('.main-nav');
// 如果未找到导航栏元素,记录错误并退出
if (!headerNav) {
console.error('导航栏元素未找到,请检查选择器是否正确');
return;
}
// 滚动处理函数
function handleScroll(e) {
// 获取当前滚动位置
const scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
const headerNav = document.querySelector('#header-v4');
// 检查滚动位置并更新类名
if (scrollTop > 1) {
if (headerNav?.classList.contains('header-scroll')) {
return;
}
headerNav?.classList.add('header-scroll');
} else if (scrollTop < 1) {
headerNav?.classList.remove('header-scroll');
}
}
// 初始调用一次以设置正确的状态
handleScroll();
// 添加滚动事件监听器
window.addEventListener('scroll', handleScroll, true);
btn?.addEventListener('click', function(e: MouseEvent) {
e.stopPropagation();
if (!mainNav || !btn) return;
const isOpen = mainNav.classList.toggle('main-nav--opened');
btn.setAttribute('aria-expanded', isOpen ? 'true' : 'false');
btn.classList.toggle('nav-toggle--active', isOpen);
// 控制 li 显示
const items = mainNav.querySelectorAll('.main-nav__item');
items.forEach(item => item.classList.toggle('main-nav__item--visible', isOpen));
// 原有隐藏逻辑
const logo = document.querySelector('.main-navigation__container .logo');
if (logo) logo.classList.add('hide');
const login = document.querySelector('.nav-addons .nav-addons__link.login-v4-wrap');
if (login && login instanceof HTMLElement) login.style.display = 'none';
const bag = document.querySelector('.nav-addons__link.nv-addons__bag');
if (bag && bag instanceof HTMLElement) bag.style.display = 'none';
const shopBag = document.querySelector('.nav-addons .shop-bag-bnt');
if (shopBag && shopBag instanceof HTMLElement) shopBag.style.display = 'none';
const search = document.querySelector('.nav-addons__link.nav-addons__search');
if (search && search instanceof HTMLElement) search.style.display = 'none';
}, false);
// 点击空白处关闭菜单
document.addEventListener('click', function(e: MouseEvent) {
if (!mainNav || !btn) return;
if (
mainNav.classList.contains('main-nav--opened') &&
!(e.target instanceof Element && (e.target.closest('.main-nav') || e.target.closest('#open-nav')))
) {
mainNav.classList.remove('main-nav--opened');
btn.setAttribute('aria-expanded', 'false');
btn.classList.remove('nav-toggle--active');
// 移除 li 显示
const items = mainNav.querySelectorAll('.main-nav__item');
items.forEach(item => item.classList.remove('main-nav__item--visible'));
}
});
});
</script>
<style>
.logo {
display: flex;
align-items: center;
.company_name {
font-weight: bold;
}
}
</style>

View File

@ -5,6 +5,7 @@ import '../styles/global.css'
import '../styles/theme.css'
const {description, title, keywords} = Astro.props;
const {template_config} = Astro.locals;
console.log(template_config)
---
<!doctype html>
<html lang="zh-CN">
@ -63,8 +64,6 @@ const {template_config} = Astro.locals;
© {new Date().getFullYear()} { template_config.app_company }. 保留所有权利。
</div>
<div class="icpoo">
<a target="_blank" rel="noopener" href="https://beian.miit.gov.cn/" title="ICP备案信息">新ICP备2023000253号</a>
<span class="margin-oc">新B2-20230068号</span>
<a target="_blank" rel="noopener" class="beiancil" href="https://www.beian.gov.cn/portal/registerSystemInfo?recordcode=65400402000209" title="公安备案信息">
<span>新公网安备 65400402000209号</span>
</a>

View File

@ -0,0 +1,31 @@
---
import Footer from '../components/template_2/Footer.astro'
import Header from '../components/template_2/Header.astro'
import '../styles/template_2/common-v4-nav-v2.css'
import '../styles/template_2/banner.css'
import '../styles/template_2/style.css'
import '../styles/template_2/nav.css'
const { description = '', title = '', keywords = '', breadcrumb = [] } = Astro.props;
import {getConfig} from '../../utils/config'
const config = getConfig(Astro)
---
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width" />
<link rel="icon" type="image/svg+xml" href={config.app_logo} />
<title>{title}</title>
<meta name="description" content={description} />
<meta name="keywords" content={keywords} />
<meta name="baidu-site-verification" content="codeva-kLMUXYuoiO" />
<!-- <link href="https://fonts.googleapis.com/css2?family=Graphik:wght@400;500;600;700&display=swap" rel="stylesheet"> -->
</head>
<body class="huawei-v4 huawei-cn page-name-books none-ecommerce">
<Header />
<!-- <main> -->
<slot />
<!-- </main> -->
<Footer path={breadcrumb}/>
</body>
</html>

View File

@ -24,6 +24,7 @@ export async function onRequest (context: any, next: any) {
}
const {code, data} = await websiteConfig(host);
if (!data || code !== 0) {
context.locals.is_write = 1;
return context.rewrite('/404');
@ -31,7 +32,7 @@ export async function onRequest (context: any, next: any) {
if (!context.locals.is_write) {
context.locals.is_write = 1;
context.locals.template_number = 1;
context.locals.template_number = 2;
context.locals.template_config = data;
return context.rewrite('/template/' + context.locals.template_number + context.url.pathname);
}

View File

@ -0,0 +1,284 @@
---
import Layout from "../../../layouts/Layout_2.astro";
import { getConfig } from "../../../../utils/config";
import {
TP2_COLUMN_ABOUT_US,
TP2_COLUMN_ABOUT_US_URL,
} from "../../../../utils/const";
const config = getConfig(Astro);
const breadcrumb = [
{ title: "主页", url: "/" },
{ title: TP2_COLUMN_ABOUT_US, url: TP2_COLUMN_ABOUT_US_URL },
];
---
<Layout
title={TP2_COLUMN_ABOUT_US + ` - ${config.app_name}`}
breadcrumb={breadcrumb}
>
<div id="content" class="main" data-site="中国">
<div>
<!-- 活动与新闻-->
<div class="hcomponent-page-info">
<div class="news-detail-title">
<div class="container-custom fix-p-color">
<h1><span>华为责任矿产尽职管理声明</span></h1>
</div>
</div>
</div>
</div>
<!-- <div data-mod-id="eff0ddd73dbb4d069e65086c4339ccd5"> -->
<div
data-mod-name-pc="@cloud/hcomponent-share-bar/pc/index"
data-mod-name-m="@cloud/hcomponent-share-bar/m/index"
data-mod-name="hcomponent-share-bar"
data-loaded="true"
>
<!-- 活动与新闻-->
<div>
<!-- 社交分享栏 -->
<div class="container-custom hcomponent-share-bar">
<div class="container-custom">
<ul class="share-box list-unstyled hasLine">
<li class="line"></li>
</ul>
</div>
</div>
</div>
</div>
<!-- </div> -->
<div
data-mod-id="hcomponent-news-detail-content_920738a0bc3049d489a293983eb596d8"
>
<div
data-mod-name-pc="@cloud/hcomponent-news-detail-content/pc/index"
data-mod-name-m="@cloud/hcomponent-news-detail-content/m/index"
data-mod-name="hcomponent-news-detail-content"
data-loaded="true"
>
<!-- 活动与新闻-->
<div class="hcomponent-news-detail-content">
<div class="news-detail-box container-custom clearfix">
<div class="news-detail-content">
<p>
作为联合国全球契约、GeSI、RBA、RMI组织的成员华为公司一直坚持把全球社会责任作为我们的目标实施道德采购促进产业链可持续发展。
</p>
<p>
华为承诺并致力于以负责任的方式采购产品中使用的锡、钽、钨、金、钴、云母等矿产原料,并参照《经济合作与发展组织关于来自受冲突影响和高风险区域的矿石的负责任供应链尽职调查指南》、《中国负责任矿产供应链尽责管理指南》(以下统称“指南”)等要求,推动供应商制定政策以防范和降低其制造产品中所含的矿产以直接或间接的方式为高风险地区中,可能助长严重侵犯人权、严重环境危害、严重健康安全隐患、严重腐败等的团体提供资金或利益的风险,要求供应商对其采购的产品中使用到矿产
产品进行来源追踪和责任矿产尽职调查,并与客户分享尽责调查信息,以确保供应链政策与指南要求保持一致,逐步提高供应链透明度和供应链治理能力。
</p>
<p>
供应链的责任矿产尽责管理是一个持续改进的过程,需要企业、政府和非政府组织的承诺和合作才能解决。华为公司支持通过行业合作来处理矿产供应链中的社会责任问题,我们将持续参与行业组织的活动,与客户和供应商一起寻求可持续的解决方案,推动矿产供应链的可持续发展。
</p>
<p style="text-align: right;">华为技术有限公司</p>
</div>
</div>
</div>
<link
rel="stylesheet"
href="/-/media/hcomponent-news-detail-content/1.0.1.20250530113357/component/corp/2020/js/lib/vendor/katex/katex.min.css?ver=202410101545"
/>
</div>
</div>
</div>
</Layout>
<style>
.main {
padding-top: 10rem;
h1 {
span {
font-weight: bold;
}
margin-top: 0;
text-align: center;
font-size: 2rem;
}
.container-custom {
margin-left: auto;
margin-right: auto;
padding-left: 15px;
padding-right: 15px
}
}
p {
color: #666;
font-size: 1em;
line-height: 1.95em;
margin: 0
}
@media (max-width:767px) {
.container-custom>.container-custom {
padding: 0;
}
}
.mt20{
margin-top: 20px;
}
.main .bottom-box .share-box {
margin: 20px auto 0 auto;
}
.main .share-box {
padding-left: 0;
padding-right: 0;
text-align: center;
margin-bottom: 30px;
width: 100%;
position: relative;
z-index: 99;
}
.share-box.list-unstyled:not(.hasLine){
margin-bottom: 0;
}
.main .hasLine li {
padding: 0 22px;
margin: 0;
background: #fff;
position: relative;
z-index: 2;
margin: 0 -2px;
}
.main .share-box li .wechat-qrcode {
top: 30px;
height: 240px;
}
.main .share-box li .wechat-qrcode p {
text-align: center;
margin: 0;
padding: 0;
}
.main .hasLine .line {
position: absolute;
width: 100%;
height: 1px;
background: #dddddd;
top: 0;
left: 0;
top: 50%;
margin-top: -1px;
}
.main .share-box.s-bottom {
border-bottom: 1px solid #ddd;
padding-top: 40px;
padding-bottom: 40px;
margin: 20px auto 0 auto;
}
.news-detail-box {
margin-top: 5rem;
}
@media (min-width: 768px) {
.container {
width:100%
}
}
@media (min-width: 992px) {
body,html {
font-size:16px
}
.container-custom {
max-width: 1430px;
width: 85.652%;
}
.container {
max-width: 1799.136px;
width: 93.705%
}
}
@media (min-width: 1440px) {
body,html {
font-size:17px
}
}
@media (min-width: 1680px) {
body,html {
font-size:18px
}
}
@media (min-width: 1500px) {
.col-ls-4 {
width:33.33333333%
}
.col-ls-3 {
width: 25%
}
}
.news-detail-box .news-detail-content {
text-align: center;
padding: 0 8.5%;
}
.news-detail-box p {
margin-bottom: 20px;
}
.news-detail-box p {
text-align: left;
margin-bottom: 20px;
text-indent: 0em;
word-break: break-word;
word-wrap: break-word;
}
.news-detail-box .content-text {
text-align: left;
}
.news-detail-box .content-text p {
padding: 0;
}
.news-detail-box .news-detail-content {
text-align: center;
padding: 0 8.5%;
}
.news-detail-box .news-detail-content a {
color: #666;
-webkit-text-decoration: underline;
text-decoration: underline;
}
.news-detail-box .news-detail-content a:hover {
color: #000;
}
.news-detail-box .news-detail-content a.link-submit:hover {
color: #fff;
}
.news-detail-box .news-detail-content a.btn-rect {
-webkit-text-decoration: none;
text-decoration: none;
}
@media (min-width: 768px) {
.news-detail-box .news-detail-content>h2 {
padding: 0;
}
}
</style>

View File

@ -0,0 +1,90 @@
---
import Layout from "../../../layouts/Layout_2.astro";
import { getConfig } from "../../../../utils/config";
import { TP2_COLUMN_CONTACT_US, TP2_COLUMN_CONTACT_US_URL } from "../../../../utils/const";
import Dianhua from "../../../../public/template_2/contact-us/dianhua.svg";
import Youxiang from "../../../../public/template_2/contact-us/youxiang.svg";
const config = getConfig(Astro);
const breadcrumb = [
{ title: '主页', url: '/' },
{ title: TP2_COLUMN_CONTACT_US, url: TP2_COLUMN_CONTACT_US_URL }
];
---
<Layout title={TP2_COLUMN_CONTACT_US + ` - ${config.app_name}`} breadcrumb={breadcrumb}>
<div id="csr">
<!-- sec conta -->
<section class="sec_conta">
<div class="look_mainTit conta_title">如对本报告有任何建议和意见,请通过以下方式与华为<span class="nr">联系:</span></div>
<div class="conta_lists">
<div class="conta_list">
<div class="conta_ti">
<Dianhua class="conta_svg" />
<span class="look_smalTit conta_span sec_both">电话</span>
</div>
<div class="look_mainTit text_color conta_tx">+86-(0)755-28780808</div>
<div class="look_mainTit text_color conta_tx">+86-(0)755-28780808</div>
<div class="look_mainTit text_color conta_tx">+86-(0)755-28780808</div>
</div>
<div class="conta_list">
<div class="conta_ti">
<Youxiang class="conta_svg" />
<span class="look_smalTit conta_span sec_both">电子邮箱!!</span>
</div>
<div class="look_mainTit text_color conta_tx">
<a class="a-btn-link4 text_color" data-pagename="ConsumerCSD@Huawei.com" data-linkname="ConsumerCSD@Huawei.com" href="mailto:ConsumerCSD@Huawei.com">ConsumerCSD@Huawei.com
</a>
</div>
</div>
</div>
</section>
</div>
</Layout>
<style>
#csr {
.sec_conta {
margin-left: auto;
margin-right: auto;
width: 68.22917vw;
margin-top: 10rem;
}
.sec_conta .conta_ti {
width: 100%;
height: 3.64583vw;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}
.sec_conta .conta_list {
width: 33.59375vw;
border-radius: 1.04167vw;
overflow: hidden;
background-color: #f5f5f7;
/* padding: 4.6875vw 0 1.82292vw; */
text-align: center;
}
.sec_conta .conta_svg {
width: 3.39583vw;
}
.sec_conta .conta_lists {
margin-top: 3rem;
width: 100%;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
}
}
</style>

View File

@ -0,0 +1,422 @@
---
import "swiper/swiper-bundle.css";
import Layout from "../../../layouts/Layout_2.astro";
import ImageXiazai from '../../../../public/template_2/xiazai.svg';
import { Image } from 'astro:assets';
import { getConfig, getExtra } from "../../../../utils/config";
const config = getConfig(Astro)
const extra = getExtra().index
const sc1Homepage = config?.extra?.sc1?.img_homepage || '/template_2/index/homepage.webp'
// swiper 数据
const swiper = extra.sc3.swiper;
console.log(extra)
// const sc2BookCover = config?.extra?.index?.sc2?.book1 || '/template_2/index/book-cover-chenai.webp'
// const sc2BookCover = config?.extra?.index?.sc2?.book1 || '/template_2/index/book-cover-daming.webp'
// const sc2BookCover = config?.extra?.index?.sc2?.book1 || '/template_2/index/book-cover-fancui.webp'
// const sc2BookCover = config?.extra?.index?.sc2?.book1 || '/template_2/index/book-cover-qiren.webp'
// const sc2BookCover = config?.extra?.index?.sc2?.book1 || '/template_2/index/book-cover-wenhua.webp'
// const sc2BookCover = config?.extra?.index?.sc2?.book1 || '/template_2/index/book-cover-yuanze.webp'
// const sc2BookCover = config?.extra?.index?.sc2?.book1 || '/template_2/index/book-cover-zero.webp'
const breadcrumb = [{
title: '主页',
url: '/'
}]
---
<Layout title={`${config.app_name}`} breadcrumb={breadcrumb} description={config.app_description} keywords={config.app_keywords}>
<div class="v4 header-placeholder nav-v2" id="header-placeholder"></div>
<main class="content-v4">
<div>
<div class="second-navigation section"></div>
<div class="section">
<div class="new"></div>
</div>
<div class="iparys_inherited">
<div class="eumiSecondMenuV4 iparsys parsys"></div>
</div>
</div>
<div class="html-text-component parbase">
<div class="v4 n06-news-second-navigation" id="news-second-navigation-v4" data-component="n06-news-second-navigation">
<div class="product-tabs-wrap container">
<div class="product-tabs__heading">
<div class="product-tabs__title body-medium">
<a title={config.app_name} href="/" class="product-link product-link__active" data-title="华为阅读">{config.app_name}</a>
<a class="btn erweimaBTN a-btn-install-ga" href="https://appgallery.huawei.com/#/app/C100259315" target="_blank">点击下载
<ImageXiazai style="margin-left:10px;width: 11px;height: 11px;" alt="下载按钮" />
</a>
</div>
<div class="product-tabs__links-container" style="margin-right: -20px;">
<ul class="product-tabs__links">
<li class="product-tabs__links-item">
<a class="btn erweimaBTN a-btn-install-ga" href="https://appgallery.huawei.com/#/app/C100259315" style="position: relative;">
点击下载<ImageXiazai style="margin-left:10px;width: 11px;height: 11px;" alt="下载按钮" />
</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="app-read-container">
<div class="app-read-sc1-kv">
<div class="sc1-mkt-text">
<h1>{config.app_name}</h1>
<h1 class="mkt-title">遇见更好的自己</h1>
<p class="mkt-text">
百万优质图书和精品有声内容;精巧微动效、精美排版,媲美精装纸质书;精品音色、定制人声,享受沉浸悦听;超
50
种语言一键翻译;跨设备流转,无缝续读;丰富的会员权益,各种福利活动持续<span class="text-nowrap">上新。</span>
</p>
</div>
<div class="sc1-mkt-img">
<Image style="height:100%;width:100%" src={sc1Homepage} alt="app首页" width={100} height={100} loading="eager"/>
</div>
</div>
<div class="app-read-sc2">
<div class="text-box">
<div class="read-title">
{extra.sc2.reaad_title}
</div>
<p class="read-text">
{extra.sc2.reaad_text}
</p>
</div>
<div class="sc2-swiper-box">
<div class="swiper-wrapper sc2-swiper-container">
{
extra.sc3.swiper.map(item => {
return <div class="sc2-swiper-silde swiper-slide">
<Image class="h-auto" src={item.url} height={100} width={100} alt={`${item.name}封面`}/>
<span class="book-name">{item.name}</span>
</div>
})
}
</div>
</div>
</div>
<div class="app-read-sc5" id="sc5Scene">
<div class="sc5-animation-box">
<div class="sc5-book-container img-box" id="sc5ZdpScene">
<Image class="h-full" src={extra.sc5.img_box} alt="背景" width={100} height={100} />
</div>
<div class="text-box">
<div class="read-subtitle">
{extra.sc5.read_subtitle}
</div>
<div class="read-title">
{extra.sc5.read_title}
</div>
<p class="read-text">
<Fragment set:html={extra.sc5.read_text}></Fragment>
</p>
</div>
</div>
</div>
<div class="app-read-sc6" id="sc6Scene">
<div class="sc6-animation-container">
<div class="text-box">
<div class="read-title">
{extra.sc6.read_title}
</div>
<p class="read-text">
<Fragment set:html={extra.sc6.read_text} />
</p>
</div>
<div class="sc6-animation-box img-box" id="sc6ZdpScene">
<Image src={extra.sc6.img_box} class="h-full" alt="" width={100} height={100}/>
</div>
</div>
</div>
<div class="app-read-sc7">
<div class="text-box">
<div class="read-title">
{extra.sc7.read_title}
</div>
<p class="read-text">
<Fragment set:html={extra.sc7.read_text}>
</p>
</div>
<div class="sc7-img-box">
<Image class="h-auto" src={extra.sc7.img_box} alt="背景图" width={100} height={100} />
</div>
</div>
<div class="app-read-sc8">
<Image class="h-full" src={extra.sc8.img_box} alt="背景" height={100} width={100}/>
<div class="sc8-content-wrapper">
<div class="text-box">
<div class="read-title">
{extra.sc8.read_title}
</div>
</div>
<div class="icon-container">
<div class="icon-warpper1"></div>
<div class="icon-warpper2">
<div class="icon-top">
<div class="icon-item">
<Image class="h-full" src={extra.sc8.icon1} alt="icon" height={100} width={100} />
<span class="icon-desc">{extra.sc8.icon1_text}</span>
</div>
<div class="icon-item">
<Image class="h-full" src={extra.sc8.icon2} alt="icon" height={100} width={100} />
<span class="icon-desc">{extra.sc8.icon2_text}</span>
</div>
</div>
<div class="icon-center">
<div class="icon-item icon-item2">
<Image class="h-full" src={extra.sc8.icon3} alt="icon" height={100} width={100} />
<span class="icon-desc">{extra.sc8.icon3_text}</span>
</div>
</div>
<div class="icon-bottom">
<div class="icon-item">
<Image class="h-full" src={extra.sc8.icon4} alt="icon" height={100} width={100} />
<span class="icon-desc">{extra.sc8.icon4_text}</span>
</div>
<div class="icon-item">
<Image class="h-full" src={extra.sc8.icon5} alt="icon" height={100} width={100} />
<span class="icon-desc">{extra.sc8.icon5_text}</span>
</div>
</div>
</div>
</div>
</div>
<p class="read-ps">
*具体以实际体验<span class="text-nowrap">为准</span>
</p>
</div>
</div>
</div>
</main>
</Layout>
<style>
.sc2-swiper-box {
img {
height: 100%;
}
}
main {
padding: unset;
max-width: unset;
}
.app-read-sc5{
margin-top: 2rem;
}
.header-tag-title.seo {
position: absolute;
display: block;
height: 0;
width: 0;
overflow: hidden;
z-index: -1;
}
/*five page common css*/
.img_pc {
display: inline-block;
}
.img_sp {
display: none;
}
.top_center {
max-width: 1100px;
width: 100%;
overflow: hidden;
margin: 0 auto;
padding-top: 70px;
}
.common_left {
float: left;
width: 50%;
}
.common_right {
float: right;
}
.common_btn a {
display: inline-block;
border: 1px solid #1681fb;
border-radius: 8px;
text-align: center;
padding: 10px 40px;
font-size: 18px;
color: #1681fb;
text-decoration-line: none;
}
.index_common {
padding-top: 80px;
text-align: center;
height: 700px;
}
.boutique {
height: 640px;
}
@media screen and (min-width: 1024px) {
.v4.n06-news-second-navigation .product-tabs__title .btn {
display: none !important;
}
}
@media (max-width: 1100px) {
.top_center {
padding: 10% 2% 0;
max-width: 96%;
width: 100%;
}
.common_h1 {
font-size: 60px;
}
}
@media (max-width: 1024px) {
.common_logo {
margin-top: 46px;
}
.top_center {
padding: 5% 5% 0;
max-width: 90%;
}
.common_left {
float: none;
margin: 0 auto;
max-width: 660px;
width: 100%;
}
.common_right {
float: none;
padding-top: 30px;
text-align: center;
}
.common_btn {
width: 204px;
margin: 0 auto;
}
section.index_common p {
padding: 0 25px;
}
}
@media (max-width: 767px) {
.img_pc {
display: none;
}
.img_sp {
display: inline-block;
}
.common_left {
width: 100%;
}
.index_common {
padding-left: 4%;
padding-right: 4%;
}
.common_logo {
font-size: 19px;
line-height: 25px;
background-size: 36px;
padding: 5px 0 6px 45px;
margin-top: 40px;
}
.common_h1 {
font-size: 32px;
line-height: 42px;
}
section.index_top p,
section.index_common p {
font-size: 14px;
line-height: 22px;
}
.index_common p.font_14 {
font-size: 12px;
line-height: 18px;
}
.index_common h2 {
font-size: 32px;
line-height: 42px;
}
.index_common {
padding-top: 70px;
text-align: center;
height: 400px;
}
}
@media (max-width: 534px) {
.index_common h2 {
font-size: 28px;
}
section.index_top p {
padding-right: 10px;
}
}
@media (max-width: 414px) {
section.index_common p {
padding: 0 20px;
}
}
.product-tabs-wrap .btn {
background-color: #ce0e2d !important;
border-radius: 23px;
color: #fff;
text-align: center;
height: 32px;
line-height: 32px !important;
cursor: pointer;
display: -ms-flexbox !important;
display: flex !important;
padding: 0 24px !important;
-ms-flex-align: center;
align-items: center;
transition: 0.3s ease-out;
border: 0 !important;
width: max-content;
}
.product-tabs-wrap .btn:hover .download-popup {
display: block !important;
}
</style>
<script>
import Swiper from "swiper";
import { Autoplay } from "swiper/modules";
Swiper.use([Autoplay]);
document.addEventListener('DOMContentLoaded', function() {
const swiper = new Swiper(".sc2-swiper-box", {
loop: true,
slidesPerView: "auto",
spaceBetween: 2,
autoplay: {
delay: 1000,
disableOnInteraction: false,
},
allowTouchMove: false,
});
});
</script>

View File

@ -0,0 +1,228 @@
---
import Layout from '../../../layouts/Layout_2.astro';
import { newsIndex } from '../../../../utils/rpc';
import { getConfig } from '../../../../utils/config';
import { TP2_COLUMN_NEWS, TP2_COLUMN_NEWS_URL } from '../../../../utils/const';
const config = getConfig(Astro)
const {code, data} = await newsIndex();
const breadcrumb = [
{
title: '主页',
url: '/'
}, {
title: TP2_COLUMN_NEWS,
url: TP2_COLUMN_NEWS_URL
}
]
---
<Layout title={TP2_COLUMN_NEWS + `- ${config.app_name}`} breadcrumb={breadcrumb}>
<main class="v4 main page-news">
<div class="news-list-component">
<div class="v4 h05-hero-text-only no-margin centered" data-component="h05-hero-text-only" data-video-width="0" data-video-height="0">
<div class="container">
<div class="wrap">
<h1 class="columns-name">新闻</h1>
</div>
</div>
</div>
<div class="container">
<div class="wrap wrap--small">
<div class="result-product">
<div class="result-product__items news-archive-items">
{
data.map(news => (
<a href={`/news/${news.id}`} class="result-product__item result-product__item--border">
<div class="result-product__content">
<span class="result-product__label">{news.created_at}</span>
<div class="heading result-product__title">{news.title}</div>
<p class="result-product__info">{news.description}</p>
</div>
<div class="result-product__media ">
<img class="result-product__image img-lazy show success-img" alt={news.title} src={news.cover} onerror="imgErrorUrl(this)" style="">
</div>
</a>
))
}
</div>
</div>
</div>
</div>
</div>
</main>
</Layout>
<style>
.page-news {
background-color: #fff !important;
padding-top: 5rem;
.result-product__image {
border-radius: 16px;
}
.columns-name {
font-size: 5rem;
padding: 3rem;
}
.result-product__media {
-webkit-box-flex: 0;
-webkit-flex: 0 0 260px;
-ms-flex: 0 0 260px;
flex: 0 0 260px;
max-width: 260px;
height: 173.3px;
position: relative
}
.result-product__image {
max-width: 100%;
max-height: 100%;
width: 100%;
height: 100%;
border: 0;
vertical-align: middle;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
cursor: pointer
}
.result-product__item {
justify-content: space-between;
align-items: center;
}
.result-product__info {
font-size: 16px;
font-weight: 500;
color: #7f7f7f;
line-height: 1.5
}
.result-product__label {
font-size: 14px;
font-weight: 500;
color: #7f7f7f;
line-height: 1.71;
display: block;
margin-bottom: 8px
}
.result-product__title {
font-size: 22px;
font-weight: 700;
line-height: 1.45;
color: #000;
display: block;
margin-bottom: 8px;
max-height: 120px;
overflow: hidden
}
.result-product__item--border {
border-bottom: 1px solid #ededed
}
.result-product__item {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
padding: 32px 0
}
.result-product {
margin-bottom: 80px
}
.result-product:last-of-type {
margin-bottom: 0
}
.result-product__items {
display: block;
background-color: #fff
}
.result-product__item {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
padding: 32px 0
}
@media only screen and (min-width: 1200px) {
.no-touch .result-product__item:hover .result-product__title {
color:#7f7f7f
}
.no-touch .result-product__item:hover .result-product__image--thumb::before {
opacity: .5
}
}
@media screen and (max-width: 768px) {
.result-product__media {
-webkit-box-flex: 0;
-webkit-flex: 0 0 120px;
-ms-flex: 0 0 120px;
flex: 0 0 120px;
height: 90px;
background-color: unset
}
.result-product__info {
display: none;
}
.result-product__title {
font-size: 15px;
}
.result-product__content {
display: flex;
flex-direction: column-reverse;
}
}
.result-product__item--border {
border-bottom: 1px solid #ededed
}
.result-product__item-title {
font-size: 22px;
font-weight: 700;
line-height: 1.45;
color: #000;
display: block;
padding-bottom: 24px;
padding-top: 80px
}
.result-product__item-title--big {
font-size: 32px;
line-height: 1.25;
letter-spacing: -0.5px
}
.result-product__label {
font-size: 14px;
font-weight: 500;
color: #7f7f7f;
line-height: 1.71;
display: block;
margin-bottom: 8px
}
.result-product__content-text {
position: relative;
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
top: 50%;
max-width: 730px;
padding-right: 20px
}
}
</style>

View File

@ -0,0 +1,342 @@
---
import Layout from '../../../../layouts/Layout_2.astro';
import { newsDetail } from '../../../../../utils/rpc';
import { getConfig } from '../../../../../utils/config';
import { TP2_COLUMN_NEWS, TP2_COLUMN_NEWS_URL } from '../../../../../utils/const';
const { slug } = Astro.params;
const config = getConfig(Astro)
if (!slug) {
return Astro.redirect('/404');
}
const {code, data} = await newsDetail(slug);
if (!data || code !== 0) {
return Astro.redirect('/404');
}
const breadcrumb = [{
title: '主页',
url: '/'
}, {title: TP2_COLUMN_NEWS, url: TP2_COLUMN_NEWS_URL}, {title: data.title, url: 'javascript:void(0);'}]
---
<Layout breadcrumb={breadcrumb} title={`${data.title} - ${config.app_name}`} keywords={data.keywords} description={data.description}>
<div class="v4 header-placeholder nav-v2" id="header-placeholder"></div>
<div class="html-text-component parbase">
<div class="v4 n06-news-second-navigation" id="news-second-navigation-v4" data-component="n06-news-second-navigation">
<div class="product-tabs-wrap container">
<div class="product-tabs__heading">
<div class="product-tabs__title body-medium">
<a title={TP2_COLUMN_NEWS} href={TP2_COLUMN_NEWS_URL} class="product-link product-link__active">{TP2_COLUMN_NEWS}</a>
</div>
</div>
</div>
</div>
</div>
<main class="news-main">
<div class="news-container">
<article class="news-detail-content">
<span class="news-date">发布于: {data.created_at}</span>
<h1 class="title" title="标题">{data.title}</h1>
<div class="top-icon"></div>
<div class="news-content" set:html={data.content}>
</div>
<!-- <div class="news-navigation">
{
data.prevNews && (
<div>
<span>上一篇: </span>
<a class="news-prev news-link" title={data.prevNews.title} href={`/news/${data.prevNews.id}`}>{data.prevNews.title}</a>
</div>
)
}
{
data.nextNews && (
<div>
<span>下一篇: </span>
<a class="news-next news-link" title={data.nextNews.title} href={`/news/${data.nextNews.id}`}>{data.nextNews.title}</a>
</div>
)
}
</div> -->
</article>
<!-- <aside class="news-sidebar">
<div class="related-news">
<h3>相关新闻</h3>
<ul>
{data.about.map(item => (
<li>
<a class="news-link" title={item.title} href={`/news/${item.id}`}>
<span class="related-title">{item.title}</span>
{/* <span class="related-date">{item.date}</span> */}
</a>
</li>
))}
</ul>
</div>
</aside> -->
</div>
</main>
<style is:inline>
.news-content p {
margin: 20px 0;
color: #6f6f6f;
font-size: 18px;
line-height: 32px;
}
.news-content img {
max-width: 100%;
height: auto;
}
</style>
<style>
article {
width: 50rem;
}
.news-main {
margin-top: 5rem;
}
.top-icon {
padding-bottom: 30px;
border-bottom: 1px solid #e0e0e0
}
.news-date {
font-weight: 700;
font-size: 14px;
color: #d0021b;
line-height: 17px;
margin-bottom: 30px;
display: inline-block
}
.news-meta {
border-bottom: 1px solid var(--text-primary);
color: black;
padding-bottom: 1rem;
margin-bottom: 1rem;
}
.title {
font-size: 2.5rem;
text-align: left;
font-weight: 700;
color: var(--text-primary);
margin-bottom: 1.5rem;
line-height: 1.4;
}
.news-meta {
display: flex;
justify-content: center;
gap: 2rem;
margin-bottom: 1.5rem;
}
.news-meta span{
color: var(--text-primary);
}
/* .news-date, .news-author {
color: rgba(255, 255, 255, 0.9);
font-size: 1rem;
display: flex;
align-items: center;
gap: 0.5rem;
} */
.news-author a {
color: black;
text-decoration: none;
}
/*
.news-date::before {
content: '📅';
}
.news-author::before {
content: '👤';
} */
.news-tags {
display: flex;
justify-content: center;
gap: 1rem;
flex-wrap: wrap;
}
.news-tag {
background: rgba(255, 255, 255, 0.15);
color: white;
padding: 0.3rem 1rem;
border-radius: var(--radius-md);
font-size: 0.9rem;
backdrop-filter: blur(4px);
border: 1px solid rgba(255, 255, 255, 0.1);
transition: all 0.3s ease;
}
.news-tag:hover {
background: rgba(255, 255, 255, 0.25);
transform: translateY(-1px);
}
.news-container {
max-width: 1200px;
margin: -2rem auto 0;
/* padding: 0 1.5rem 3rem; */
/* display: grid; */
/* grid-template-columns: 1fr 320px; */
/* gap: 2.5rem; */
position: relative;
display: flex;
justify-content: center;
}
.news-detail-content {
border-right: 1px solid var(--text-primary);
padding: 3rem;
position: relative;
overflow: hidden;
}
.news-content {
padding-top: 3rem;
font-size: 1.1rem;
line-height: 1.3;
}
.news-images {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 1.5rem;
margin-bottom: 2rem;
}
.news-images img {
width: 100%;
height: auto;
border-radius: var(--radius-lg);
box-shadow: var(--shadow-md);
transition: transform 0.3s ease;
}
.news-images img:hover {
transform: scale(1.02);
}
.news-content p {
margin-bottom: 1.8rem;
}
.news-content p:last-child {
margin-bottom: 0;
}
.news-navigation {
margin-top: 1rem;
padding-top: 2rem;
border-top: 1px solid var(--divider-color);
}
.news-sidebar {
position: sticky;
top: 2rem;
height: fit-content;
}
.related-news {
padding: 1rem;
/* box-shadow: var(--shadow-lg); */
}
.related-news h3 {
font-size: 1.2rem;
color: var(--text-primary);
margin-bottom: 1.5rem;
padding-bottom: 1rem;
border-bottom: 1px solid var(--text-primary);
}
.related-news ul {
list-style: none;
padding: 0;
margin: 0;
}
.related-news li {
/* margin-bottom: 1.2rem;
padding-bottom: 1.2rem; */
border-bottom: 1px solid var(--divider-color);
}
.related-news li:last-child {
margin-bottom: 0;
padding-bottom: 0;
border-bottom: none;
}
.related-news a {
display: flex;
flex-direction: column;
gap: 0.5rem;
text-decoration: none;
/* color: var(--text-secondary); */
/* color: black; */
transition: all 0.3s ease;
padding: 0.4rem;
border-radius: var(--radius-md);
}
.related-news a:hover {
transform: translateX(5px);
}
.related-title {
font-size: 1rem;
line-height: 1.5;
}
.related-date {
font-size: 0.9rem;
color: var(--text-tertiary);
}
@media (max-width: 1024px) {
.news-container {
grid-template-columns: 1fr;
margin-top: -1rem;
}
.news-sidebar {
position: static;
}
}
@media (max-width: 480px) {
.news-detail-content {
padding: 1.5rem;
border: none;
}
.news-share {
flex-wrap: wrap;
gap: 0.8rem;
}
.share-btn {
width: 100%;
text-align: center;
}
}
</style>
</Layout>

View File

@ -0,0 +1,127 @@
---
import Layout from "../../../layouts/Layout_2.astro";
import { getConfig } from "../../../../utils/config";
import { TP2_COLUMN_PROTECT, TP2_COLUMN_PROTECT_URL } from "../../../../utils/const";
const config = getConfig(Astro);
const breadcrumb = [
{ title: '主页', url: '/' },
{ title: TP2_COLUMN_PROTECT, url: TP2_COLUMN_PROTECT_URL }
];
---
<Layout title={TP2_COLUMN_PROTECT + ` - ${config.app_name}`} breadcrumb={breadcrumb}>
<main>
<article id="protect" class="protect-article">
<header>
<h1>未成年人及老年人保护</h1>
<div class="line"></div>
<p class="protect-lead">未成年人及老年人保护是一项重要的社会责任,旨在为这两个群体提供安全、健康、友好的使用和生活环境,帮助他们免受各种风险和不良影响。以下是全面的保护措施:</p>
</header>
<section>
<h2>1. 隐私与信息安全</h2>
<ul>
<li><strong>信息采集限制:</strong> 对未成年人与老年人的个人信息收集严格限制,确保其信息安全,通常需要监护人或本人明确同意。</li>
<li><strong>隐私保护:</strong> 所有信息采用加密存储,防止信息泄露,并提供删除或纠正信息的渠道,保障信息的私密性。</li>
</ul>
</section>
<section>
<h2>2. 内容审查与适龄分级</h2>
<ul>
<li><strong>内容分级:</strong> 根据不同年龄段的需求提供适龄内容筛选和推荐,确保内容积极健康。</li>
<li><strong>不良信息屏蔽:</strong> 建立内容审查机制,严格筛选暴力、色情、赌博等不良信息,避免不良内容对未成年人与老年人群体的负面影响。</li>
</ul>
</section>
<section>
<h2>3. 消费保护与防诈骗措施</h2>
<ul>
<li><strong>消费限制与提醒:</strong> 为未成年人设置消费限额,老年人则设置消费确认机制,确保他们在明知消费内容的情况下进行支付,避免不必要的支出。</li>
<li><strong>退款与防诈骗保障:</strong> 未成年人在未经监护人同意或超出授权范围的消费可申请全额退款;老年人误操作等无意消费可申请全额退款。</li>
</ul>
</section>
<section>
<h2>4. 简化使用和无障碍设计</h2>
<ul>
<li><strong>操作简化:</strong> 为老年人提供简化的操作界面和流程,如大字体、简洁的交互设计等,确保无障碍使用体验。</li>
<li><strong>辅助功能支持:</strong> 提供放大镜、语音提示等辅助工具,保障老年人群体中的特殊需求人群也能流畅使用。</li>
</ul>
</section>
<section>
<h2>5. 紧急求助与举报机制</h2>
<ul>
<li><strong>快速求助通道:</strong> 为未成年人和老年人提供紧急求助渠道,遇到困扰、骚扰或欺凌问题时可及时求助。</li>
<li><strong>举报不良行为:</strong> 提供举报功能,未成年人、老年人及其家人均可举报不良信息或行为,平台会快速响应并采取处理措施。</li>
</ul>
</section>
<section>
<h2>6. 社会责任与法规合规</h2>
<ul>
<li><strong>政策法规合规:</strong> 严格遵循《未成年人保护法》《网络安全法》《老年人权益保障法》等相关法律,切实保障他们的合法权益。</li>
<li><strong>社会监督与责任落实:</strong> 接受公众和社会机构的监督,公开未成年人和老年人保护的政策和措施,并通过改进保护策略不断提升服务质量。</li>
</ul>
</section>
<section>
<h2>我们的承诺</h2>
<p>葫芦时刻旨在为未成年人及老年人创造一个安全、健康、积极的网络阅读环境,提升他们的生活质量和使用体验,积极履行企业的社会责任,构建包容、关爱的网络生态环境。</p>
</section>
</article>
</main>
<style>
.protect-article {
max-width: 900px;
margin: 2rem auto;
padding: 2rem 1.5rem;
background: #fff;
border-radius: 16px;
/* box-shadow: 0 2px 16px rgba(0,0,0,0.04); */
font-size: 1.08rem;
color: #333;
}
.protect-article h1 {
font-size: 2rem;
font-weight: 700;
margin-bottom: 1.2rem;
text-align: center;
}
.protect-article h2 {
font-size: 1.2rem;
font-weight: 600;
margin: 2rem 0 0.7rem 0;
color: #000;
}
.protect-lead {
color: #666;
font-size: 1.08rem;
margin-bottom: 1.5rem;
text-align: center;
}
.protect-article ul {
padding-left: 1.2em;
margin: 0 0 1.2em 0;
}
.protect-article ul li {
margin-bottom: 0.5em;
line-height: 1.8;
}
.protect-article section {
margin-bottom: 1.5em;
}
@media (max-width: 600px) {
.protect-article {
padding: 1rem 0.5rem;
font-size: 0.98rem;
}
.protect-article h1 {
font-size: 1.3rem;
}
.protect-article h2 {
font-size: 1.05rem;
}
}
</style>
</Layout>

View File

@ -0,0 +1,48 @@
.v4.h06-in-page-banner .banner-item{position:relative;margin-bottom:80px}
.v4.h06-in-page-banner .banner-block{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:736px;background-color:#ddd;padding:3vw 5.3vw 80px;margin-bottom:16px}
.v4.h06-in-page-banner .banner-block__in{width:58%;display:flex;display:-webkit-flex;flex-direction:column;justify-content:center}
.v4.h06-in-page-banner .banner-block__heading{letter-spacing:1px;line-height:1.09;margin-bottom:20px;font-size:64px;max-height:146px;overflow:hidden}
.v4.h06-in-page-banner .banner-block__text{margin-bottom:40px;font-weight:700;font-size:18px;max-height:50px;overflow:hidden}
@media only screen and (min-width:1920px){.v4.h06-in-page-banner .banner-block__text{font-size:24px;line-height:1.2;max-height:58px}
}
@media only screen and (min-width:1200px) and (max-width:1600px){.v4.h06-in-page-banner .banner-block__text{margin-bottom:20px}
}
.v4.h06-in-page-banner .banner-block--centered{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}
.v4.h06-in-page-banner .banner-block--centered .banner-block__in{text-align:center}
.v4.h06-in-page-banner .banner-block--right{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}
.v4.h06-in-page-banner .banner-block--dark-theme{color:#fff}
.v4.h06-in-page-banner .banner-block--dark-theme .banner-block__heading,.v4.h06-in-page-banner .banner-block--dark-theme .banner-block__text{color:#fff}
.v4.h06-in-page-banner .banner-block--dark-theme .banner-block__btn{background-color:#fff;color:#000;border-color:#fff}
.v4.h06-in-page-banner .banner-item__text{font-size:12px;font-weight:400;line-height:1.6;color:#000;max-width:880px;display:none}
.v4.h06-in-page-banner .banner-block--image{background-position:center center;background-repeat:no-repeat;background-size:cover}
@media only screen and (max-width:1199.98px){.huawei-v4 .v4.h06-in-page-banner:last-of-type{margin-bottom:0}
.huawei-v4 .v4.h06-in-page-banner:last-of-type .banner-item{margin-bottom:0}
.v4.h06-in-page-banner{margin-bottom:40px}
.v4.h06-in-page-banner .banner-block--right{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}
.v4.h06-in-page-banner .container{padding:0}
.v4.h06-in-page-banner .banner-item__text{padding:0 20px}
.v4.h06-in-page-banner .banner-item{margin-bottom:64px}
.v4.h06-in-page-banner .banner-block{padding:40px 20px;height:640px}
.v4.h06-in-page-banner .banner-block__in{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}
.v4.h06-in-page-banner .banner-block__heading{font-size:48px;margin-bottom:20px;max-height:110px}
.v4.h06-in-page-banner .banner-block__text{margin-bottom:28px}
.v4.h06-in-page-banner .banner-block__btns{margin-bottom:10px}
.v4.h06-in-page-banner .banner-block__in{justify-content:flex-start;max-width:860px;width:auto}
}
@media only screen and (width:1600px){.v4.h06-in-page-banner .banner-block{height:690px}
}
@media only screen and (min-width:1200px) and (max-width:1599.98px){.v4.h06-in-page-banner .banner-block__heading{font-size:48px;max-height:110px}
.v4.h06-in-page-banner .banner-block{height:45vw}
}
@media only screen and (min-width:922px) and (max-width:1199.98px){.v4.h06-in-page-banner .banner-block{height:840px}
}
@media only screen and (min-width:768px) and (max-width:921px){.v4.h06-in-page-banner .banner-block{height:740px}
.v4.h06-in-page-banner .banner-block__heading{font-size:30px;max-height:66px}
.v4.h06-in-page-banner .banner-block__text{font-size:16px;max-height:50px}
}
@media only screen and (max-width:767px){.v4.h06-in-page-banner .banner-block{height:640px}
}
@media only screen and (max-width:767.98px){.v4.h06-in-page-banner .banner-block__heading{font-size:30px;max-height:66px;margin-bottom:10px}
.v4.h06-in-page-banner .banner-block__text{font-size:14px;max-height:72px;margin-bottom:12px}
.v4.h06-in-page-banner .banner-block__in{max-width:100%}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,255 @@
#news-second-navigation-v4 {
position: relative;
top: 0;
z-index: 150;
background-color: #fff
}
#news-second-navigation-v4.stuck {
position: fixed
}
@supports(position:-webkit-sticky) {
#news-second-navigation-v4 {
position: -webkit-sticky
}
}
@supports(position:sticky) {
#news-second-navigation-v4 {
position: sticky
}
}
@supports(-webkit-backdrop-filter:blur(0)) {
#news-second-navigation-v4 {
background: rgba(255, 255, 255, 0.9);
-webkit-backdrop-filter: saturate(180%) blur(20px)
}
}
@supports(backdrop-filter:blur(0)) {
#news-second-navigation-v4 {
background: rgba(255, 255, 255, 0.9);
backdrop-filter: saturate(180%) blur(20px)
}
}
.v4.n06-news-second-navigation {
width: 100%
}
.v4.n06-news-second-navigation .product-tabs-wrap {
-webkit-box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.1);
box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.1)
}
.v4.n06-news-second-navigation .product-link-container {
display: flex
}
.v4.n06-news-second-navigation .product-link_item {
margin: 0 15px;
position: relative;
white-space: nowrap
}
.v4.n06-news-second-navigation .product-link_item::before {
content: " ";
display: inline-block;
width: 2px;
height: 16px;
background-color: #000;
position: absolute;
top: 50%;
left: -16px;
transform: translateY(-50%)
}
.v4.n06-news-second-navigation .product-link_item:first-child {
margin-left: 0
}
.v4.n06-news-second-navigation .product-link_item:first-child::before {
content: none
}
.v4.n06-news-second-navigation .product-link {
color: #7f7f7f
}
.v4.n06-news-second-navigation .product-link:hover,
.v4.n06-news-second-navigation .product-tabs__link:hover {
color: #000
}
.v4.n06-news-second-navigation .product-link__active {
color: #000
}
.v4.n06-news-second-navigation .product-tabs__heading {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
padding: 24px 0;
position: relative;
justify-content: space-between
}
.v4.n06-news-second-navigation .product-tabs__title {
margin-top: 3px;
font-weight: 700;
overflow: hidden;
overflow-x: auto
}
.v4.n06-news-second-navigation .product-tabs__links-container {
position: relative;
margin-left: auto;
margin-right: 30px
}
.v4.n06-news-second-navigation .product-tabs__links {
margin-top: 2px;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex
}
.v4.n06-news-second-navigation .product-tabs__links-item {
padding: 0 16px
}
.v4.n06-news-second-navigation .product-tabs__link {
display: block;
border: 0;
padding: 0;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
outline: 0;
padding: 0 4px;
font-size: 16px;
font-weight: 400;
color: #7f7f7f;
line-height: 1.5;
letter-spacing: .3px;
text-align: center;
white-space: nowrap
}
.v4.n06-news-second-navigation .product-tabs__link.product-tabs__link--active {
font-weight: 700;
color: #000;
letter-spacing: -0.2px;
cursor: default;
border-bottom: 2px solid #000
}
.v4.n06-news-second-navigation .product-tabs__link {
white-space: nowrap
}
@media only screen and (min-width:1200px) {
.no-touch .v4.n06-news-second-navigation .product-tabs__link:hover {
color: #000
}
}
@media only screen and (max-width:991.98px) {
.v4.n06-news-second-navigation .product-tabs__heading {
position: unset;
padding: 28px 0 0 0
}
.v4.n06-news-second-navigation .product-tabs__title {
width: 100%;
padding-bottom: 20px;
display: flex;
justify-content: space-between
}
.v4.n06-news-second-navigation .product-tabs__links-container {
position: absolute;
margin: 0;
width: 100%;
top: 100%;
left: 0;
display: none;
background-color: #fff;
border-top: 1px solid #e5e5e5;
-webkit-box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.1);
box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.1)
}
.v4.n06-news-second-navigation .product-tabs__links {
width: 100%;
height: auto;
line-height: normal;
padding: 30px 15% 10px;
display: block
}
.v4.n06-news-second-navigation .product-tabs__links-item {
padding: 0;
padding-right: 19px;
width: 100%;
margin-left: 0;
padding-bottom: 10px;
border-bottom: 1px solid #e0e0e0;
margin-bottom: 20px
}
.v4.n06-news-second-navigation .product-tabs__link {
padding-bottom: 0;
text-align: left
}
}
.v4.n06-news-second-navigation .drop-btn {
position: relative;
width: 24px;
height: 18px;
display: none;
transition: transform .7s;
transition: -webkit-transform .7s
}
.v4.n06-news-second-navigation .drop-btn.open {
transform: rotate(180deg)
}
.v4.n06-news-second-navigation .drop-btn::before {
margin-left: -5px;
-webkit-transform: translate(-50%, -50%) rotate(45deg);
transform: translate(-50%, -50%) rotate(45deg)
}
.v4.n06-news-second-navigation .drop-btn::after {
margin-left: 4px;
-webkit-transform: translate(-50%, -50%) rotate(-45deg);
transform: translate(-50%, -50%) rotate(-45deg)
}
.v4.n06-news-second-navigation .drop-btn::after,
.v4.n06-news-second-navigation .drop-btn::before {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 14px;
height: 2px;
border-radius: 2px;
background-color: #afafaf;
-webkit-transition: .3s ease-out;
transition: .3s ease-out;
display: block
}
@media only screen and (max-width:991.98px) {
.v4.n06-news-second-navigation .drop-btn {
display: block
}
}

View File

@ -0,0 +1,718 @@
main {
flex: 1;
padding: 5rem;
max-width: 1200px;
margin: 0 auto;
width: 100%;
box-sizing: border-box;
/* background: var(--background-light); */
}
.h-full {
height: 100%;
}
.h-auto {
height: auto;
}
.line {
/* position: absolute; */
width: 100%;
height: 1px;
background: #dddddd;
top: 0;
left: 0;
top: 50%;
margin-top: -1px;
margin-bottom: 2rem;
}
.app-read-container {
letter-spacing: calc(-.037em + .526px);
--navheight: value;
--sc4height: value;
}
.app-read-container img {
width: 100%;
display: block;
vertical-align: middle;
}
.app-read-container video{
width: 100%;
display: block;
}
.app-read-container a {
color: inherit;
text-decoration: none;
}
.app-read-container .show-pc {
display: inline-block;
}
.app-read-container .show-mob {
display: none;
}
.app-read-container .app-read-show-ie{
display: none;
}
.app-read-container .text-nowrap {
white-space: nowrap;
}
.app-read-container picture {
width: 100%;
}
.app-read-container .blur-up {
-webkit-filter: blur(3px);
filter: blur(3px);
-webkit-transition: -webkit-filter 400ms;
transition: -webkit-filter 400ms;
transition: filter 400ms;
transition: filter 400ms, -webkit-filter 400ms;
}
.app-read-container .blur-up.lazyloaded {
-webkit-filter: blur(0);
filter: blur(0);
}
.app-read-container .lazyload:not([src]) {
display: none;
}
.app-read-container .read-title {
color: #000;
font-size: 2.5vw;
font-weight: 700;
line-height: 1.6;
}
.app-read-container .read-text {
color: #767676;
font-size: 1.25vw;
font-weight: 500;
line-height: 1.6;
margin-top: 1.6666666vw;
}
.app-read-container .sc3-voice-container,
.app-read-container .app-read-sc5,
.app-read-container .app-read-sc6,
.app-read-container .app-read-sc7,
.app-read-container .app-read-sc8
{
width: 83.333333vw;
margin: 0 auto;
background-color: #f5f5f7;
}
/* kv */
.app-read-container .app-read-sc1-kv {
width: 100%;
display: flex;
padding-top: 7.8645833vw;
padding-left: 14.01041667vw;
padding-bottom: 5.20833333vw;
box-sizing: border-box;
}
.app-read-sc1-kv .sc1-mkt-text {
margin-top: 4.302083333vw;
}
.app-read-sc1-kv .sc1-mkt-text img {
width: 10.625vw;
}
.app-read-sc1-kv .mkt-title {
width: 34.5vw;
color: #000;
font-size: 4.1666666vw;
font-weight: 500;
line-height: 1.25;
margin-top: 1.145833333vw;
}
.app-read-sc1-kv .mkt-text {
width: 34vw;
font-size: 1.25vw;
font-weight: 500;
color: #767676;
line-height: 1.6;
margin-top: 0.52083333vw;
}
.app-read-sc1-kv .sc1-mkt-img {
width: 40.67708333vw;
margin-left: 9.0625vw;
}
/* sc2 */
.app-read-container .app-read-sc2 {
background-color: #f5f5f7;
padding-top: 8.0208333vw;
}
.app-read-sc2 .text-box {
width: 47.354167vw;
margin: 0 auto;
text-align: center;
}
.app-read-sc2 .read-text {
text-align: left;
margin-left: 1.111111vw;
}
.app-read-sc2 .sc2-swiper-box {
margin-top: 3.52083333vw;
overflow: hidden;
padding-left: 0.83333333vw;
padding-bottom: 1.71875vw;
}
.app-read-sc2 .sc2-swiper-container {
display: flex;
}
.app-read-sc2 .sc2-swiper-warpping {
display: flex;
flex-shrink: 0;
flex-grow: 1;
}
.app-read-sc2 .sc2-swiper-silde {
width: 13.85416667vw;
flex-shrink: 0;
flex-grow: 1;
}
.app-read-sc2 .book-name {
font-size: 1.14583333vw;
font-weight: 500;
line-height: 1.25;
color: #767676;
}
@keyframes breath{
0% {
opacity: 0.4;
}
50% {
opacity: 1;
}
100% {
opacity: 0.4;
}
}
@-webkit-keyframes breath{
0% {
opacity: 0.4;
}
50% {
opacity: 1;
}
100% {
opacity: 0.4;
}
}
/* sc5 */
.app-read-sc5 .sc5-animation-box {
position: relative;
top: 0;
left: 0;
display: flex;
align-items: center;
padding-top: 7.2916666vw;
padding-left: 15.625vw;
padding-bottom: 6.927083vw;
}
.app-read-sc5 .sc5-bg-img{
width : 100%;
position: absolute;
top: 0;
left: 0;
}
.app-read-sc5 .sc5-book-container{
width: 27.44791667vw;
position: relative;
z-index: 2;
}
.app-read-sc5 .read-subtitle{
font-size: 1.875vw;
line-height: 1.6;
font-weight: 500;
margin-bottom: 1.09375vw;
}
.app-read-sc5 .app-read-not-ie{
position: relative;
z-index: 2;
}
.app-read-sc5 .sc5-yy-img{
position: absolute;
top: 0;
left: 0;
z-index: 1;
width: 32vw;
}
.app-read-sc5 .text-box {
width: 27.041666vw;
margin-left: 6.6666667vw;
position: relative;
z-index: 2;
}
/* sc6 */
.app-read-sc6 .sc6-animation-container {
position: relative;
width:100%;
margin: 0 auto;
display: flex;
padding: 9.6354167vw 0 8.07291667vw;
padding-left: 7.39583333vw;
box-sizing: border-box;
background-color: #f5f5f7;
}
.app-read-sc6 .sc6-img-bg {
position: absolute;
top: 0;
left: 0;
width: 100%;
}
.app-read-sc6 .sc6-animation-box {
width: 31.9791667vw;
position: relative;
z-index: 2;
margin-left: 13.0729167vw;
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
}
.app-read-sc6 .text-box {
position: relative;
width: 22.5vw;
margin-top: 1.9vw;
z-index: 2;
}
/* sc7 */
.app-read-container .app-read-sc7 {
padding-top: 4.32291667vw;
}
.app-read-sc7 .text-box {
width: 40.6770833vw;
margin: 0 auto;
text-align: center;
}
.app-read-sc7 .sc7-img-box {
width: 75.46875vw;
margin-top: 3.02083333vw;
margin-left: 6.5625vw;
}
/* sc8 */
.app-read-container .app-read-sc8 {
position: relative;
margin-top: -3.28125vw;
}
.app-read-sc8 .sc8-content-wrapper {
position: absolute;
padding-left: 4.6875vw;
display: flex;
justify-content: space-between;
top: 50%;
transform: translate(0, -50%);
-webkit-transform: translate(0, -50%);
}
.app-read-sc8 .text-box {
width: 25.41666667vw;
}
.app-read-sc8 .read-title {
color: #fff;
line-height: 1.6;
margin-top: 9.375vw;
}
.app-read-sc8 .icon-container {
margin-left: 15.83333vw;
position: relative;
}
.app-read-sc8 .icon-warpper1 {
width: 37.5vw;
height: 36.0416667vw;
background-color: #414344;
opacity: 0.34;
}
.app-read-sc8 .icon-warpper2 {
width: 100%;
height: 100%;
position: absolute;
z-index: 2;
top: 0;
left: 0;
padding: 4.47916667vw 4.84375vw;
box-sizing: border-box;
}
.app-read-sc8 .icon-warpper2>div {
display: flex;
justify-content: space-between;
}
.app-read-sc8 .icon-item {
display: flex;
flex-flow: column;
align-items: center;
justify-content: center;
}
.app-read-sc8 .icon-container .icon-center {
padding: 2.65625vw 0;
justify-content: center;
}
.app-read-sc8 .icon-item img {
width: 4.21875vw;
}
.app-read-sc8 .icon-desc {
font-size: 1.25vw;
color: #fff;
font-weight: 500;
line-height: 1.6;
margin-top: 1.145833333vw;
}
.app-read-sc8 .read-ps{
font-size: 12px;
line-height: 1.6;
font-weight: 400;
color: #737171;
margin-top: 0.520833vw;
text-align: right;
padding-right: 5.208333vw;
}
@media screen and (min-width: 1920px){
.app-read-sc8 .read-ps{
font-size: 0.625vw;
}
}
/* mob */
@media screen and (orientation:portrait) and (max-width: 1024px) and (max-device-width:1024px),
(max-width: 1023px) {
.app-read-container {
background-color: #f5f5f7;
}
.app-read-container .show-pc{
display: none;
}
.app-read-container .show-mob{
display: block;
}
.app-read-container .read-title {
font-size: 4.44444445vw;
}
.app-read-container .read-text {
font-size: 3.3333333vw;
margin-top: 5.55555556vw;
}
.app-read-container .sc3-voice-container,
.app-read-container .app-read-sc5,
.app-read-container .app-read-sc6,
.app-read-container .app-read-sc7,
.app-read-container .app-read-sc8 {
width: 100%;
}
/* kv */
.app-read-container .app-read-sc1-kv {
width: 100%;
display: flex;
flex-flow: column;
padding-top: 13.19444444vw;
padding-left: 7.6388889vw;
padding-bottom: 6.38888889vw;
background-color: #fff;
overflow: hidden;
}
.app-read-sc1-kv .sc1-mkt-text {
margin-top: 0;
}
.app-read-sc1-kv .sc1-mkt-text img {
width: 18.3333333vw;
}
.app-read-sc1-kv .mkt-title {
width: 83.333333vw;
font-size: 5.83333333vw;
margin-top: 3vw;
}
.app-read-sc1-kv .mkt-text {
width: 82.333333vw;
font-size: 3.3333333vw;
margin-top: 5.5555556vw;
}
.app-read-sc1-kv .sc1-mkt-img {
width: 90.41666667vw;
margin-top: 6.80555556vw;
margin-left: 3.47222222vw;
}
/* sc2 */
.app-read-container .app-read-sc2 {
padding-top: 16.666667vw;
}
.app-read-sc2 .text-box {
width: 100%;
text-align: center;
}
.app-read-sc2 .read-text {
width: 84.0277778vw;
text-align: center;
margin: 0 auto;
margin-top: 5.55555556vw;
}
.app-read-sc2 .sc2-swiper-box {
margin-top: 10.34722222vw;
padding-left: 0;
padding-bottom: 7.361111111vw;
}
.app-read-sc2 .sc2-swiper-container {
display: flex;
}
.app-read-sc2 .sc2-swiper-warpping {
display: flex;
}
.app-read-sc2 .sc2-swiper-silde {
width: 20.69444444vw;
flex-shrink: 0;
flex-grow: 1;
}
.app-read-sc2 .book-name {
font-size: 3.3333333vw;
}
/* sc5 */
.app-read-sc5 .sc5-animation-box {
width: 100%;
display: flex;
flex-flow: column-reverse;
justify-content: center;
padding: 0;
padding-top: 8.75vw;
padding-bottom: 18.3333333vw;
}
.app-read-sc5 .text-box {
width: 90.52777778vw;
margin: 0 auto;
text-align: center;
}
.app-read-sc5 .read-subtitle{
font-size: 3.33333333vw;
}
.app-read-sc5 .read-title{
margin-top: 5.55555556vw;
}
.app-read-sc5 .read-text {
width: 53.9444444vw;
margin: 0 auto;
margin-top: 5.5555556vw;
}
.app-read-sc5 .sc5-book-container {
width: 48.19444444vw;
height: 59.72222222vw;
margin: 0 auto;
margin-top: 16.666667vw;
}
.app-read-sc5 .sc5-yy-img{
width: 60vw;
}
/* sc6 */
.app-read-sc6 .sc6-animation-container {
position: relative;
width: 100%;
display: flex;
flex-flow: column;
align-items: center;
justify-content: center;
padding: 0;
padding-top: 16.666667vw;
padding-bottom: 19.1666667vw
}
.app-read-sc6 .text-box {
width: 78.6111111vw;
text-align: center;
margin-top: 0;
}
.app-read-sc6 .read-text {
width: 70.972222vw;
margin: 0 auto;
margin-top: 5.55555556vw;
}
.app-read-sc6 .sc6-animation-box {
width: 57.6388889vw;
margin-top: 6.25vw;
margin-left: 0;
}
/* sc7 */
.app-read-container .app-read-sc7 {
padding-top: 16.666667vw;
}
.app-read-sc7 .text-box {
width: 71.25vw;
margin: 0 auto;
text-align: center;
}
.app-read-sc7 .read-text {
width: 47.0833333vw;
margin: 0 auto;
margin-top: 5.55555556vw;
}
.app-read-sc7 .sc7-img-box {
width: 91.3888889vw;
margin-top: 6.1111111vw;
margin-left: 8.19444444vw;
}
/* sc8 */
.app-read-container .app-read-sc8 {
position: relative;
margin-top: 2.5vw;
}
.app-read-sc8 .sc8-content-wrapper {
padding-left: 5vw;
}
.app-read-sc8 .text-box {
width: 34.7222222vw;
}
.app-read-sc8 .read-title {
margin-top: 13.75vw;
font-size: 3.33333333vw;
}
.app-read-sc8 .icon-container {
margin-left: 13.333333vw;
position: relative;
}
.app-read-sc8 .icon-warpper1 {
width: 46.9444444vw;
height: 45.138889vw;
background-color: #414344;
opacity: 0.34;
}
.app-read-sc8 .icon-warpper2 {
width: 100%;
height: 100%;
position: absolute;
z-index: 2;
top: 0;
left: 0;
padding: 5.5555556vw 5.97222222vw;
box-sizing: border-box;
}
.app-read-sc8 .icon-warpper2>div {
display: flex;
justify-content: space-between;
}
.app-read-sc8 .icon-container .icon-center {
padding: 3.33333333vw 0;
justify-content: center;
}
.app-read-sc8 .icon-item img {
width: 5.1388888vw;
}
.app-read-sc8 .icon-desc{
font-size: 2vw;
}
.app-read-sc8 .read-ps{
margin-top: 1.388889vw;
font-size: 3.3333333vw;
padding-right: 2.7777778vw;
}
}
/* zdp */
@media screen and (min-device-aspect-ratio:10/13) and (max-device-aspect-ratio:127/100){
}
/* ie */
@media screen and(-ms-high-contrast:active),(-ms-high-contrast:none) {
.app-read-container .app-read-not-ie{
display: none;
}
.app-read-container .app-read-show-ie{
display: block;
}
.app-read-sc5 .app-read-show-ie{
position: relative;
z-index: 2;
}
.app-read-sc6 .sc6-animation-container{
padding-top: 8.4vw;
}
.app-read-sc6 .text-box{
width: 23.5vw;
}
}

82
utils/config.ts Normal file
View File

@ -0,0 +1,82 @@
import type { IWebsiteConfig } from "./rpc";
export function getConfig(Astro: any):IWebsiteConfig
{
return Astro.locals.template_config;
}
// 取默认的配置
export function getExtra()
{
return {
index: {
sc1: {
homepage: ''
},
sc2: {
reaad_title: '全球 220 万 + 册优质图书和精品有声内容',
reaad_text: '覆盖经典出版物、爆款原创网文、热门有声书、独家大咖精品课等全品类阅读内容,满足用户多元化阅读需求,持续、快速更新海量内容库,定期推出不同的免费内容',
},
sc3: {
// swiper
swiper: [
{
url: '/template_2/index/book-cover-chenai.webp',
name: '尘埃落定',
},{
url: '/template_2/index/book-cover-chali.webp',
name: '穷查理宝典'
},{
url: '/template_2/index/book-cover-daming.webp',
name: '大明王朝',
},{
url: '/template_2/index/book-cover-fancui.webp',
name: '反脆弱',
},{
url: '/template_2/index/book-cover-qiren.webp',
name: '俗世奇人',
},{
url: '/template_2/index/book-cover-wenhua.webp',
name: '文化苦旅',
},{
url: '/template_2/index/book-cover-yuanze.webp',
name: '原则',
},{
url: '/template_2/index/book-cover-zero.webp',
name: '从0到1',
}
]
},
sc5: {
img_box: '/template_2/index/paper-translation.webp',
read_subtitle: '墨水平板 沉浸专注 跃然纸上',
read_title: '超 50 种语言一键翻译,原文 + 译文对照阅读',
read_text: '支持简繁字转换及超 50 种外文语言<br />互译,为用户打破阅读屏障',
},
sc6: {
read_title: '纸感阅读健康护眼,落笔生花记录灵感',
read_text: '还原真实自然的纸质书籍阅读体验,<br class="show-pc" />自适应环境调节背光亮度;边看边记,<br class="show-pc" />随时记录阅读灵感<br class="show-mob" />和精彩片段,<br class="show-pc" />笔记分类,便捷<span class="text-nowrap">高效</span>',
img_box: '/template_2/index/paper-notation-eyecare.webp'
},
sc7: {
read_title: '跨设备自由流转,阅读进度无缝接续',
read_text: '手机、平板、穿戴等设备阅、听无缝链接,让体验更畅快',
img_box: '/template_2/index/bookshelf-pc.webp'
},
sc8: {
read_title: '海量书籍、专享折扣、各种福利活动持续上新,让用户畅读好书',
img_box: '/template_2/index/opening-pc.webp',
icon1: '/template_2/index/opening-id-icon.svg',
icon1_text: 'VIP 身份标识',
icon2: '/template_2/index/opening-fiction-icon.svg',
icon2_text: 'VIP 网络小说',
icon3: '/template_2/index/opening-welfare-icon.svg',
icon3_text: 'VIP 专属福利',
icon4: '/template_2/index/opening-book1-icon.svg',
icon4_text: 'VIP 出版书籍',
icon5: '/template_2/index/opening-book2-icon.svg',
icon5_text: 'VIP 有声书籍',
}
}
}
}

13
utils/const.ts Normal file
View File

@ -0,0 +1,13 @@
// ----- 栏目 -----
export const TP2_COLUMN_NEWS = '新闻专栏'
export const TP2_COLUMN_NEWS_URL = '/news'
export const TP2_COLUMN_ABOUT_US = '关于我们'
export const TP2_COLUMN_ABOUT_US_URL = '/about-us'
export const TP2_COLUMN_CONTACT_US = '联系我们'
export const TP2_COLUMN_CONTACT_US_URL = '/contact-us'
export const TP2_COLUMN_PROTECT = '未成年人及老年人保护'
export const TP2_COLUMN_PROTECT_URL = '/protect'

0
utils/image.ts Normal file
View File

View File

@ -74,11 +74,13 @@ export async function newsDetail(id:string):Promise<result<InewsDetail>>{
export interface IWebsiteConfig {
app_name: string
app_description: string
app_keywords: string
app_company: string
app_logo: string
app_favicon: string
app_copyright: string
app_icp: string
app_biling: string
}
export async function websiteConfig(host:string):Promise<result<IWebsiteConfig>>{
const client = getRpcClient()