This commit is contained in:
toom1996
2025-07-11 14:47:56 +08:00
parent 9da2708d6d
commit 8b31aa1355
78 changed files with 4881 additions and 12 deletions

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1751524741029" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4814" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M955.757714 955.977143c-68.315429 68.022857-136.557714 68.022857-256 68.022857H324.242286c-119.442286 0-187.684571 0-256-68.022857S0 819.2 0 699.977143V324.022857C0 204.8 0.731429 136.777143 68.242286 68.022857S204.8 0 324.242286 0h375.515428c119.442286 0 187.684571 0 256 68.022857S1024 204.8 1024 324.022857v375.954286c0 119.222857 0 187.245714-68.242286 256zM802.669714 191.634286c-20.553143-13.165714-42.130286-24.137143-62.025143-38.034286a24.137143 24.137143 0 0 0-37.229714 2.925714 58.002286 58.002286 0 0 1-48.347428 18.285715c-121.124571-0.731429-242.249143 0-363.446858-0.731429H146.285714v8.777143a8.557714 8.557714 0 0 1 2.121143 0.731428 32.841143 32.841143 0 0 0 40.813714 25.6c65.243429-1.462857 130.56-0.731429 195.876572-0.731428h16.310857l-17.188571 106.788571c-2.194286 13.165714-4.973714 26.331429-6.509715 40.228572a10.093714 10.093714 0 0 1-12.361143 10.24 620.836571 620.836571 0 0 1-127.268571-13.165715 1250.742857 1250.742857 0 0 0-24.283429-2.194285V877.714286h122.002286c0-11.702857 0.804571-23.405714 0-35.108572s2.779429-14.628571 13.092572-14.628571c54.491429 0.731429 108.982857 0 163.474285 0h105.033143l4.096 49.737143h119.442286V614.4a449.389714 449.389714 0 0 1-115.712 64.365714 15.798857 15.798857 0 0 0-6.070857 11.702857c-0.585143 19.017143 0 38.034286 0 57.051429v47.542857a92.598857 92.598857 0 0 1-13.312 0.731429c-86.089143 0.731429-172.178286 0-258.267429 0.731428-9.362286 0-11.410286-3.657143-11.410286-13.897143V400.091429h283.282286v31.451428c1.682286 0.731429 2.194286 1.462857 2.486857 1.462857a387.657143 387.657143 0 0 1 114.614857-41.691428 24.210286 24.210286 0 0 0 4.096-14.628572 12.580571 12.580571 0 0 0-5.485714-10.24q-55.881143-8.777143-111.689143-15.36a4.022857 4.022857 0 0 0-3.584 1.462857l-1.682285 11.702858H453.193143c26.843429-49.005714 52.809143-96.548571 78.189714-143.36a18.944 18.944 0 0 1 19.529143-12.434286c82.651429 0.731429 165.229714 0 247.881143 0a28.672 28.672 0 0 0 12.068571-5.12 59.318857 59.318857 0 0 0-8.192-11.702857zM511.268571 547.108571a597.942857 597.942857 0 0 0-151.259428 231.862858 38.619429 38.619429 0 0 0 9.581714-8.045715c23.698286-27.794286 47.250286-56.32 71.314286-84.114285a21.065143 21.065143 0 0 1 13.677714-8.045715 236.909714 236.909714 0 0 0 143.36-19.748571c15.140571-6.582857 29.257143-15.36 46.884572-24.868572-16.603429-8.777143-28.745143-15.36-40.96-21.211428a222.208 222.208 0 0 0 190.537142-77.531429c-18.212571-2.925714-33.133714-5.851429-47.981714-8.045714 0-1.462857 0-2.194286-0.512-3.657143a154.038857 154.038857 0 0 0 131.657143-108.251428 480.768 480.768 0 0 0-366.299429 131.657142z" fill="#353535" p-id="4815"></path></svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

1
public/common/douyin.svg Normal file
View File

@ -0,0 +1 @@
<svg t="1752209161879" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="42207" width="200" height="200"><path d="M911.984876 511.989901c0 287.092902-112.902043 400.025181-399.994945 400.025181-287.062666 0-399.994945-112.932279-399.994945-400.025181 0-287.062666 112.932279-399.994945 400.025182-399.994945 287.062666 0 399.964709 112.932279 399.964708 400.025181z" fill="#1A1A1A" p-id="42208"></path><path d="M530.192135 343.33227v247.090384a55.42299 55.42299 0 0 1-55.937005 55.997478 55.42299 55.42299 0 0 1-55.937006-55.997478c0-31.324723 24.642519-55.937006 55.937006-55.937006v-71.962202a128.44346 128.44346 0 0 0-127.899208 127.899208c0 70.238737 57.690706 127.989916 127.899208 127.989916 70.238737 0 127.989916-57.751179 127.989916-127.989916v-151.63464c26.245038 10.824567 53.82047 17.718424 78.765351 17.718425v-71.992438c-20.439684 0-44.507715-4.626142-59.172281-12.457323-14.63433-7.861417-19.59307-12.910866-19.59307-28.724408z" fill="#FF0000" fill-opacity=".6" p-id="42209"></path><path d="M516.5556 315.968491v247.120621c0 31.324723-24.672755 55.937006-55.997478 55.937005a55.362518 55.362518 0 0 1-55.937005-55.937005c0-31.324723 24.612282-55.937006 55.937005-55.937006v-72.022674c-70.208501 0-127.899208 57.751179-127.899207 127.95968a128.44346 128.44346 0 0 0 127.899207 127.899207c70.238737 0 127.989916-57.66047 127.989917-127.899207v-151.725349c26.245038 10.885039 53.82047 17.778897 78.765351 17.778897v-72.022674c-20.439684 0-44.507715-4.626142-59.172281-12.487559-14.664566-7.831181-19.59307-12.880629-19.59307-28.694172z" fill="#028080" fill-opacity=".486" p-id="42210"></path><path d="M516.5556 329.635263v247.150856c0 31.324723-24.672755 55.937006-55.997478 55.937006a55.362518 55.362518 0 0 1-55.937005-55.937006c0-31.324723 24.612282-55.967242 55.937005-55.967242v-71.992438c-70.208501 0-127.899208 57.751179-127.899207 127.95968a128.44346 128.44346 0 0 0 127.899207 127.899208c70.238737 0 127.989916-57.66047 127.989917-127.899208V425.121243c26.245038 10.824567 53.82047 17.718424 78.765351 17.718425v-71.992439c-20.439684 0-44.507715-4.626142-59.172281-12.457322-14.664566-7.861417-19.59307-12.910866-19.59307-28.724408z" fill="#FFFFFF" p-id="42211"></path></svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.7 KiB

1
public/common/weibo.svg Normal file
View File

@ -0,0 +1 @@
<svg t="1752208850628" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="41022" width="200" height="200"><path d="M851.4 590.193c-22.196-66.233-90.385-90.422-105.912-91.863-15.523-1.442-29.593-9.94-19.295-27.505 10.302-17.566 29.304-68.684-7.248-104.681-36.564-36.14-116.512-22.462-173.094 0.866-56.434 23.327-53.39 7.055-51.65-8.925 1.89-16.848 32.355-111.02-60.791-122.395C311.395 220.86 154.85 370.754 99.572 457.15 16 587.607 29.208 675.873 29.208 675.873h0.58c10.009 121.819 190.787 218.869 412.328 218.869 190.5 0 350.961-71.853 398.402-169.478 0 0 0.143-0.433 0.575-1.156 4.938-10.506 8.71-21.168 11.035-32.254 6.668-26.205 11.755-64.215-0.728-101.66z m-436.7 251.27c-157.71 0-285.674-84.095-285.674-187.768 0-103.671 127.82-187.76 285.674-187.76 157.705 0 285.673 84.089 285.673 187.76 0 103.815-127.968 187.768-285.673 187.768z" fill="#E71F19" p-id="41023"></path><path d="M803.096 425.327c2.896 1.298 5.945 1.869 8.994 1.869 8.993 0 17.7-5.328 21.323-14.112 5.95-13.964 8.993-28.793 8.993-44.205 0-62.488-51.208-113.321-114.181-113.321-15.379 0-30.32 3.022-44.396 8.926-11.755 4.896-17.263 18.432-12.335 30.24 4.933 11.662 18.572 17.134 30.465 12.238 8.419-3.46 17.268-5.33 26.41-5.33 37.431 0 67.752 30.241 67.752 67.247 0 9.068-1.735 17.857-5.369 26.202a22.832 22.832 0 0 0 12.335 30.236l0.01 0.01z" fill="#F5AA15" p-id="41024"></path><path d="M726.922 114.157c-25.969 0-51.65 3.744-76.315 10.942-18.423 5.472-28.868 24.622-23.5 42.91 5.509 18.29 24.804 28.657 43.237 23.329a201.888 201.888 0 0 1 56.578-8.064c109.253 0 198.189 88.271 198.189 196.696 0 19.436-2.905 38.729-8.419 57.16-5.508 18.289 4.79 37.588 23.212 43.053 3.342 1.014 6.817 1.442 10.159 1.442 14.943 0 28.725-9.648 33.37-24.48 7.547-24.906 11.462-50.826 11.462-77.175-0.143-146.588-120.278-265.813-267.973-265.813z" fill="#F5AA15" p-id="41025"></path><path d="M388.294 534.47c-84.151 0-152.34 59.178-152.34 132.334 0 73.141 68.189 132.328 152.34 132.328 84.148 0 152.337-59.182 152.337-132.328 0-73.15-68.19-132.334-152.337-132.334zM338.53 752.763c-29.454 0-53.39-23.755-53.39-52.987 0-29.228 23.941-52.989 53.39-52.989 29.453 0 53.39 23.76 53.39 52.989 0 29.227-23.937 52.987-53.39 52.987z m99.82-95.465c-6.382 11.086-19.296 15.696-28.726 10.219-9.43-5.323-11.75-18.717-5.37-29.803 6.386-11.09 19.297-15.7 28.725-10.224 9.43 5.472 11.755 18.864 5.37 29.808z" fill="#040000" p-id="41026"></path></svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -0,0 +1 @@
<svg t="1752201910979" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="15400" width="200" height="200"><path d="M947.701961 623.435294l-694.713725 0q-11.043137 0-23.090196 6.023529t-22.588235 18.070588-17.066667 28.611765-6.52549 37.647059 5.521569 39.152941 14.556863 32.12549 22.086275 22.086275 28.109804 8.031373l693.709804 0q-12.047059-12.047059-21.082353-27.105882-8.031373-13.05098-14.556863-31.121569t-6.52549-41.160784q0-26.101961 6.52549-43.168627t14.556863-28.109804q9.035294-12.047059 21.082353-21.082353zM947.701961 897.505882q0 17.066667-22.086275 17.066667l-733.866667 0q-34.133333 0-57.223529-14.054902t-37.647059-38.65098-20.580392-58.729412-6.023529-73.286275l0-582.27451q0-77.301961 41.160784-111.937255t117.458824-34.635294l34.133333 0 68.266667 0 93.364706 0q51.2 0 104.909804-0.501961t104.909804-0.501961l94.368627 0 70.27451 0 35.137255 0q28.109804 0 49.192157 11.545098t35.137255 32.12549 21.584314 48.690196 7.529412 60.235294l0 406.588235q-191.74902 0-345.34902-1.003922l-128.501961 0q-64.25098 0-114.94902-0.501961t-83.827451-0.501961l-37.145098 0q-21.082353 0-41.160784 12.54902t-36.141176 34.133333-26.101961 50.196078-10.039216 59.733333q0 38.14902 10.541176 68.768627t27.607843 51.701961 37.647059 32.627451 40.658824 11.545098l685.678431 0q8.031373 0 14.556863 4.517647t6.52549 14.556863zM515.011765 0l0 388.517647 77.301961-108.423529 76.298039 108.423529 0-388.517647-153.6 0z" p-id="15401" fill="#ffffff"></path></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1 @@
<svg t="1752207146453" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="38073" width="200" height="200"><path d="M482.818 689.737V383.339H320.434v62.924h99.46v243.474h-99.46v62.925h259.523v-62.925z" fill="#D81E06" p-id="38074"></path><path d="M833.405 460.552h-72.094v420.685H145.293V254.92h420.108v-72.094H73.2v770.502h760.206v-72.092z m-6.008-271.638V67.177h-62.925v121.737H642.736v62.925h121.736v121.736h62.925V251.84h121.737v-62.925z" fill="#D81E06" p-id="38075"></path></svg>

After

Width:  |  Height:  |  Size: 523 B

View File

@ -0,0 +1 @@
<svg t="1752207127575" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="36117" width="200" height="200"><path d="M381.3 30.42a227.78 227.78 0 0 1 60.51-13.11c21.19 31.26 28.24 69.08 39.33 104.88 7.57 39.33 13.62 78.66 14.63 118.5 5 27.73 2 55.46 3 83.7 1.52 25.21-2 50.43-1 76.14 1 35.3-4 70.6-3.53 106.4-5 22.69-1 46.39-8.06 68.58-8.58-4.54-12.61-13.62-18.16-21.18-39.83-59-76.64-119.51-110.93-181.53-32.78-65.55-67.57-133.63-70.6-208.25-2.49-59 39.35-115.48 94.81-134.13z m207.25-10.09c5-3 10.59 0.5 16.13 1 27.23 6.05 56.48 10.08 79.68 27.73 21.68 18.16 41.85 39.84 49.92 67.57 11.59 33.28 7.06 69.59 0 103.37-10.09 42.86-29.25 83.2-48.41 123-6 12.1-14.62 23.2-20.17 35.8-11.09 24.71-25.72 47.9-39.84 70.6-22.18 38.32-46.89 74.62-71.1 111.44-3.53 4-8.06 14.11-14.11 7.56-4-40.85-7.06-81.19-8.58-122-5.54-51.94-2.52-104.38-3-156.82 3.53-34.79 4-69.59 8.07-103.88 8.06-40.84 13.61-82.19 26.22-122 9.07-13.62 10.59-33.79 25.21-43.37z m-421 131.11c5.55-2.53 8.07 4.53 11.6 7.56a2305.54 2305.54 0 0 1 251.06 402.39c5.55 11.6 12.61 23.19 13.62 36.31-12.61-3-23.2-9.59-34.79-15.13a2115.66 2115.66 0 0 1-188.59-107.91c-22.69-16.14-45.89-31.77-66.06-50.93-40.34-28.24-68.07-76.14-64.54-126.06 4-57.49 39.83-105.89 77.65-146.23z m687.8-0.51h8.06c18.16 23.7 39.34 45.89 52.45 73.12C929.93 248.76 937 277 939 305.23c-1.51 31.26-11.6 63.54-32.27 87.74-13.61 12.1-24.2 26.73-38.32 37.31-75.14 59.51-159.85 105.9-245.07 150.27-12.6 6.56-24.71 15.63-38.83 17.15 2.53-17.65 13.12-31.77 20.17-47.91a2240 2240 0 0 1 201.2-331.29c15.63-22.69 33.78-44.37 49.42-67.57z m-833 265.24c2-4 1.51-11.1 7.06-12.11 10.08 2 18.65 8.58 27.73 13.62 120.52 65.55 240.53 132.62 356 206.74 4 2 6.05 6.05 7.56 10.59-76.14 1-152.28 1-227.92 0.5-45.88 0.51-89.75-20.67-122-52.44C43 552.82 21.77 514.49 19.25 472.64c0-18.66-2-37.82 3-56.47z m957.57-3.53c7.56-4.54 15.12-9.08 24.2-8.07 1.51 17.65 5 35.3 5.55 52.94-3 21.69-2.52 44.38-12.11 64.55-8.06 17.65-16.13 35.8-30.25 49.41-15.13 14.12-27.73 31.27-46.9 40.34-21.17 16.14-48.4 21.18-74.62 22.7-79.68 0.5-159.85 0.5-239.52 0 2-4 4-7.57 8.07-9.59 118.49-76.14 242-144.71 365.58-212.28zM192.71 667.79c42.87-4.54 86.23-0.51 129.09-5.55 30.76-1 61.52-2.52 91.77 0-8.06 13.11-22.69 19.16-34.28 27.73a721.31 721.31 0 0 1-102.37 61c-35.29 17.65-79.67 11.09-109.92-13.62-24.71-17.14-41.86-41.85-58-66.56 27.73-3.53 56-1 83.7-3z m421.05-5.55c30.26-2 61-1 91.77 0.5 41.35 4.54 83.71 0.51 125.06 5 29.24 2.52 58.49 0 87.74 3.53-10.09 21.17-25.72 39.33-42.86 55.46-26.22 27.27-66.56 40.9-103.37 32.83-32.28-10.09-60.51-30.26-89.26-46.9-15.63-9.58-30.25-20.17-45.88-30.25-8.58-6-17.65-11.6-23.2-20.17z" fill="#C71F1E" p-id="36118"></path><path d="M18.75 846.29c12.1 0.5 23.7 0.5 35.8 0 0 21.18-1 42.86 0.5 64.54 26.73 1 54 1 81.19 0 1.51-21.18 0.5-42.86 0.5-64 12.1 0.51 23.7 0.51 35.8 0q-0.75 78.68 0 157.33h-35.8c0-21.68 1-42.86-0.5-64.54-26.73-1-54-1-81.19 0-1 21.68-0.5 42.86-0.5 64.54h-35.8c0.5-53 0.5-105.39 0-157.83z m182.54 0c12.1 0.5 23.7 0.5 35.8 0 1 33.78-0.51 67.57 0.5 101.86 0 16.64 13.11 33.78 30.76 33.78 17.65 3 42.86-2 46.9-22.69 1.51-37.31 0.5-75.13 0.5-113 12.1 0.5 23.7 0.5 35.8 0 0.51 33.78 0.51 67.57 0.51 101.35-0.51 13.11 0 28.75-10.59 38.33-19.16 18.65-47.4 21.18-72.61 19.66-15.64-1.51-33.28-2-45.89-12.6a49 49 0 0 1-20.68-41.86c-1-34.79 0-69.58-1-104.88z m232 0h38.83c4.54 17.14 15.13 31.26 20.67 47.9 14.12 22.69 19.67 49.42 34.29 71.61 6.05 12.1 11.6 24.2 15.13 37.82-12.1 0-24.21 1-36.31-0.51-8.07-10.59-10.08-24.71-17.14-35.8a336.18 336.18 0 0 0-74.63 0.5c-6.05 11.6-10.09 24.71-17.65 35.81-11.09 1-22.19 0.5-33.28 0.5 1-15.13 8.57-27.73 16.14-39.84 7.56-19.16 17.14-37.31 24.2-56.47 13.61-18.66 17.65-41.85 29.75-61.52z m-7.56 90.76a108.52 108.52 0 0 0 50.93 0c-8.66-19.16-14.66-38.82-25.77-56.47-11.6 17.14-16.64 37.82-25.21 56.47zM524 846.29h39.33c3 15.13 6.55 30.25 12.6 44.37 9.58 24.71 13.11 50.93 23.7 75.14l4.54-1.52c4-32.77 19.67-63 23.7-95.3a159.57 159.57 0 0 1 6.56-22.19h42.87c9.58 31.27 21.18 61.52 28.74 93.29 3 9.58 4 21.18 13.11 26.73 8.07-40.34 24.71-78.67 34.79-118.5 12.1-3 25.21-0.51 38.33-1.52-18.16 52.45-36.81 104.38-54 157.33-14.12 0-28.24 1-42.36 0-4.53-2.52-4.53-8.57-6.05-12.61-11.09-33.28-18.65-68.07-32.77-99.84-5 9.08-6.56 19.16-9.08 28.74-7.56 27.74-15.63 55.47-22.69 83.21-14.62 0.5-28.74 0.5-43.37 0-12.1-20.17-14.12-44.38-25.71-64.55-10.59-26.72-16.64-56-30.26-81.18a31.36 31.36 0 0 1-2-11.6zM818.49 867a46.9 46.9 0 0 1 38.82-20.17c27.74-0.5 55 0 82.7-0.5v28.24c-23.7-0.51-47.4-1-71.1 0-17.65 2-28.74 18.65-29.75 35.8 33.28 2 67.07 0.5 100.85 0.5v28.24c-32.78-0.5-66.06-1-98.83 0-4 16.14 5 33.28 21.68 37.32 25.72 4.53 51.43 1 77.15 2.52v24.71c-27.73 0-55 0.5-82.7 0a63.87 63.87 0 0 1-55-49.42c-5-29.75-4-63.54 16.14-87.24z m154.3-17.64a100.14 100.14 0 0 1 36.81-0.51c2 29.25 0.5 58.49 1 87.74-0.51 22.69 1.51 45.38-1.52 67.57h-36.3c0.51-51.98 0.51-103.41 0.01-154.84z" p-id="36119"></path></svg>

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

@ -0,0 +1 @@
<svg t="1752207057246" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="31493" width="200" height="200"><path d="M709.1584 7.6416c169.664 0 307.2 137.536 307.2 307.2v394.3168c0 169.664-137.536 307.2-307.2 307.2H314.8416c-169.664 0-307.2-137.536-307.2-307.2V314.8416c0-169.664 137.536-307.2 307.2-307.2h394.3168zM550.4 435.648h-25.6v153.6h25.6v-153.6z m-281.6 0H115.2a25.6 25.6 0 0 0-25.6 25.6h1.1776v128h25.6v-128h60.224v128h25.6v-128h68.3904v128h25.6v-128H294.4l-0.064-1.92A25.6 25.6 0 0 0 268.8 435.6608z m463.2448-0.896h-153.6v25.6h109.9008l-102.8224 102.8224h-7.0784v7.0784l-0.4352 0.4352 0.4352 0.4352V588.8h153.6v-25.6h-110.3232l102.8224-102.8352h7.5008v-25.6z m-235.2896 0h-128l-1.92 0.0768a25.6 25.6 0 0 0-23.68 25.5232v102.8224a25.6 25.6 0 0 0 25.6 25.6h128v-25.6h-128v-34.432h128v-25.6h-128v-42.7904h128v-25.6z m286.4896 0h-25.6v128.4224l0.0768 1.92a25.6 25.6 0 0 0 25.5232 23.68h102.4A25.6 25.6 0 0 0 907.8144 576h3.4304V434.7392h-25.6v128.4224h-102.4V434.752z" fill="#1677FF" p-id="31494"></path></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1 @@
<svg t="1752207115006" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="34798" width="200" height="200"><path d="M832.7 464.3c-30.6-16.1-62.7-16.1-94.1 0-24.9 12.1-24.9 35.4-0.8 49.8 14.5 8.9 31.4 11.3 47.4 12.1 16.9-0.8 33.8-2.4 48.2-11.3 24.2-14.5 25-37.7-0.7-50.6zM243.3 465.1c-14.5-8.9-31.4-12.9-49-12.1-16.9-0.8-33 2.4-48.2 11.3-23.3 13.7-23.3 34.6-1.6 49 25.8 16.9 74.7 16.9 99.7 0 20.9-14.5 20.9-34.5-0.9-48.2z" fill="#02925F" p-id="34799"></path><path d="M511.3 5.9C230.6 5.9 3 232.9 3 512.9s227.6 507 508.3 507 508.3-227 508.3-507-227.5-507-508.3-507zM274.6 518c-20.9 11.3-43.5 14.5-67.5 15.3-24.1-1.6-48.2-4-69.9-17.7-25-15.3-25-37.8 0-53.8 12.9-8.9 28.2-13.7 44.2-15.3 31.4-3.2 63.5-2.4 92.5 12.9 12.1 6.5 22.6 14.5 24 28.1 0 16-11.2 24.1-23.3 30.5z m212.4-7.9c-9.7 8.1-20.1 12.9-32.2 16.1-37.9 10.5-74.8 9.7-110.2-6.4-8.1-3.3-9.7-0.8-9.7 6.4v34.6c0 8.1-3.3 12.1-11.3 11.3h-8c-7.3 0.8-10.5-2.5-10.5-10.5v-53.8c0-16.9 0.8-34.6 0-51.4-0.8-9.7 2.4-12.9 12.1-12.9 17.7 0 17.7-0.8 17.7 17.7v34.6c0 8 3.3 13.7 9.7 16.9 33.8 17.7 67.5 18.5 100.5 0 21.7-12.1 21.7-33.8 0-47.4-20.9-12.9-44.2-13.7-67.5-11.3-4.1 0.8-10.5 4-11.3-0.8-0.8-4 6.5-4 10.5-4.8 29-4.9 57-4.1 85.2 5.6 9.6 3.2 19.3 8.1 25.8 14.5 13.7 12.7 13.7 28.7-0.8 41.6z m188.1 9.6c-41.1 18.5-83.6 18.5-125.5 1.6-10.5-4.1-10.5-4.9-10.5 6.4 0 10.5-0.8 21.7 0 32.2 0 8.9-3.2 12.1-12.1 12.1-19.3 0-19.3 0-19.3-18.5v-46.6c0-16.9 0.8-34.6 0-51.4-0.8-8.9 2.4-12.9 11.3-12.1h8c8.9-0.8 11.3 3.2 11.3 12.1v40.2c-0.8 8 2.5 12.9 8.9 16.9 25.7 17.7 76.3 16.9 101.3-0.8 19.3-13.7 18.5-33-0.8-45.8-20.9-14.5-44.9-15.3-69.9-12.1-3.3 0.8-9.7 4-10.5-0.8-0.8-4 5.7-4 9.7-4.8 33.8-4.8 66.7-4.8 98.1 10.5 12.8 6.5 24.9 14.5 25 29.8 0.8 16.6-12.1 25.5-25 31.1z m187.3 1.6c-41.9 18.5-84.4 18.5-127.1 0-12.9-5.6-25.8-13.7-25.8-30.6 0-17.7 12.9-25.8 25.8-32.2 16.9-8.9 37.8-12.9 66.7-12.9 19.3-0.8 41.1 3.2 61.1 12.9 12.9 6.5 25.8 14.5 25 32.2 0.1 16.1-12 25-25.7 30.6z" fill="#02925F" p-id="34800"></path></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -0,0 +1 @@
<svg t="1752207099574" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="33717" width="200" height="200"><path d="M743.12192 593.98656c-26.18368-0.09728-47.42656-22.80448-47.42656-50.83648v-4.31616c0-28.0832 21.36064-50.75968 47.42656-50.88256h82.70336c26.20928 0.12288 47.44704 22.79936 47.44704 50.88256v4.31616c-0.09728 28.032-21.36064 50.7392-47.44704 50.83648h-82.70336z" fill="#415FFF" p-id="33718"></path><path d="M512 973.99808c-255.14496 0-461.99808-206.83264-461.99808-461.99808C50.00192 256.85504 256.85504 50.00192 512 50.00192c255.16544 0 461.99808 206.85312 461.99808 461.99808 0 255.16544-206.83264 461.99808-461.99808 461.99808zM386.4576 459.68384a16.8448 16.8448 0 0 0-10.05568 15.81056v134.56896c0 9.50272 7.41376 17.23392 16.4864 17.23392 9.07264 0 16.38912-7.7312 16.38912-17.23392V475.52c0-9.48224-7.41376-17.23392-16.38912-17.23392v-0.02048c-2.21696 0.04608-4.4032 0.52736-6.4256 1.41824z m11.0592-60.89216a6.43072 6.43072 0 0 0-4.5312-2.08896h-0.29184a6.20544 6.20544 0 0 0-4.5568 2.06336l-17.20832 18.24256a7.296 7.296 0 0 0 0 9.91232l17.2032 18.23744a6.48192 6.48192 0 0 0 4.75648 2.08896 6.2464 6.2464 0 0 0 4.6336-2.06336l17.2288-18.24256a7.30112 7.30112 0 0 0 0-9.9072l-17.2288-18.24256z m149.95456 228.5056c16.19968 0.09728 29.08672-7.7312 40.84736-25.58464l74.5472-116.11136a18.52416 18.52416 0 0 0 2.87744-9.88672 17.84832 17.84832 0 0 0-7.10144-14.44864 15.91296 15.91296 0 0 0-9.28768-3.0976 16.43008 16.43008 0 0 0-13.4912 7.53664l-74.35264 116.3264c-4.5568 7.3216-9.50272 10.4192-14.35136 10.4192h-0.09728c-5.66272-0.12288-9.78944-3.31264-14.44352-10.4192l-74.5472-116.13696a15.90784 15.90784 0 0 0-13.51168-7.51104 15.91296 15.91296 0 0 0-9.28768 3.0976 18.3808 18.3808 0 0 0-4.224 24.33536l74.63936 115.92192c10.32192 16.17408 25.3952 25.55904 41.472 25.55904h0.31232z m-308.44928 0c16.19968 0.09728 29.09184-7.7312 40.94464-25.58464l74.56768-116.11136a18.4832 18.4832 0 0 0 1.03936-17.95072 17.97632 17.97632 0 0 0-5.26336-6.38464 15.91296 15.91296 0 0 0-9.28768-3.0976 16.41984 16.41984 0 0 0-13.51168 7.53664l-74.56768 116.11136c-4.53632 7.3216-9.47712 10.41408-14.32576 10.41408h-0.1024c-5.6832-0.09216-9.80992-3.31264-14.4384-10.41408L149.504 465.70496a16.00512 16.00512 0 0 0-13.48608-7.6288c-3.3536-0.00512-6.60992 1.08032-9.28768 3.09248a18.3808 18.3808 0 0 0-4.224 24.33536l74.75712 116.20864c10.32192 16.19968 25.46688 25.58464 41.4464 25.58464h0.31232z m504.09984-171.81696c-43.20256 0-78.3616 37.43744-78.3616 83.328v4.32128c0 46.00832 35.15904 83.34848 78.3616 83.34848h82.70336c43.19744 0 78.38208-37.43744 78.38208-83.328v-4.31616c-0.09728-45.91616-35.15904-83.3536-78.38208-83.3536h-82.70336z" fill="#415FFF" p-id="33719"></path></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -0,0 +1 @@
<svg t="1752207085737" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="32621" width="200" height="200"><path d="M716.8 0c169.664 0 307.2 137.536 307.2 307.2v409.6c0 169.664-137.536 307.2-307.2 307.2H307.2C137.536 1024 0 886.464 0 716.8V307.2C0 137.536 137.536 0 307.2 0h409.6zM529.6128 320.5248H228.608a4.2368 4.2368 0 0 0-4.1984 4.2752v372.608a4.224 4.224 0 0 0 4.1984 4.2496h80.4096c2.3168 0 4.1984-1.92 4.1984-4.288V404.928c0-2.368 1.8816-4.3008 4.1984-4.3008h172.9024c32.4736 0 58.8032 27.008 58.8032 60.3008v236.4416c0 2.368 1.8816 4.288 4.1856 4.288h79.232a4.224 4.224 0 0 0 4.1728-4.2752V430.3872c0-60.672-47.936-109.8624-107.0848-109.8624zM470.144 468.992h-80.384a4.2496 4.2496 0 0 0-4.1984 4.3008v224.0896c0 2.3808 1.8688 4.288 4.1984 4.288h80.384c1.1136 0 2.176-0.448 2.9568-1.2416a4.3392 4.3392 0 0 0 1.2288-3.0464V473.28a4.352 4.352 0 0 0-1.2288-3.0464 4.1344 4.1344 0 0 0-2.9568-1.2544z m321.4336-148.4416h-80.3584c-2.3296 0-4.224 1.92-4.224 4.3008v372.5312c0 2.3808 1.8944 4.288 4.224 4.288h80.3584c2.3296 0 4.2112-1.92 4.2112-4.288V324.8384a4.352 4.352 0 0 0-1.2288-3.0464 4.1472 4.1472 0 0 0-2.9824-1.2544z" fill="#FF6A00" p-id="32622"></path></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1 @@
<svg t="1752201225673" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="12230" width="200" height="200"><path d="M768.355 416a256 256 0 1 0-512 0 192 192 0 1 0 0 384v64a256 256 0 0 1-58.88-505.216 320.128 320.128 0 0 1 629.76 0A256.128 256.128 0 0 1 768.355 864v-64a192 192 0 0 0 0-384z m-512 384h64v64h-64v-64z m448 0h64v64h-64v-64z m-165.312 45.248V512.192a32.448 32.448 0 0 0-32-32.192c-17.664 0-32 14.912-32 32.192v333.056l-36.096-36.096a32.192 32.192 0 0 0-45.056 0.192 31.616 31.616 0 0 0-0.192 45.056l90.88 90.944a31.36 31.36 0 0 0 22.528 9.088 30.08 30.08 0 0 0 22.4-9.088l90.88-90.88a32.192 32.192 0 0 0-0.192-45.12 31.616 31.616 0 0 0-45.056-0.192l-36.096 36.096z" p-id="12231" fill="#ffffff"></path></svg>

After

Width:  |  Height:  |  Size: 759 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 317 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

258
public/template_3/js/app.js Normal file
View File

@ -0,0 +1,258 @@
/* Template Name: Evea - Responsive App Landing Tailwind CSS Template
Author: Zoyothemes
Email: zoyothemes@gmail.com
Website: https://zoyothemes.com
Version: 1.0.0
Created: March 2024
File Description: Main JS file of the template
*/
/*********************************/
/* INDEX */
/*================================
* 01. Sticky Navbar *
* 02. Navbar active *
* 03. Back to top *
* 04. Accordions *
* 05. Lucide Icons *
================================*/
/*********************/
/* Sticky Navbar */
/*********************/
function windowScroll() {
const navbar = document.getElementById("navbar");
if (navbar) {
if (
document.body.scrollTop >= 50 ||
document.documentElement.scrollTop >= 50
) {
navbar.classList.add("is-sticky");
} else {
navbar.classList.remove("is-sticky");
}
}
}
window.addEventListener("scroll", (ev) => {
ev.preventDefault();
windowScroll();
});
/*********************/
/* Navbar Active */
/*********************/
try {
var spy = new Gumshoe("#navbar-navlist a", {
// Active classes
// navClass: 'active', // applied to the nav list item
// contentClass: 'active', // applied to the content
offset: 80,
});
} catch (error) {}
// Smooth scroll
try {
var scroll = new SmoothScroll("#navbar-navlist a", {
speed: 800,
offset: 80,
});
} catch (error) {}
/*********************/
/* Menu Collapse */
/*********************/
const toggleCollapse = (elementId, show = true) => {
const collapseEl = document.getElementById(elementId);
if (show) {
collapseEl.classList.remove("hidden");
} else {
collapseEl.classList.add("hidden");
}
};
document.addEventListener("DOMContentLoaded", () => {
// Toggle target elements using [data-collapse]
document
.querySelectorAll("[data-collapse]")
.forEach(function (collapseToggleEl) {
var collapseId = collapseToggleEl.getAttribute("data-collapse");
collapseToggleEl.addEventListener("click", function () {
toggleCollapse(
collapseId,
document.getElementById(collapseId).classList.contains("hidden")
);
});
});
});
window.toggleCollapse = toggleCollapse;
/*********************/
/* Back To Top */
/*********************/
var mybutton = document.getElementById("back-to-top");
window.onscroll = function () {
scrollFunction();
};
function scrollFunction() {
if(mybutton!=null){
if (document.body.scrollTop > 500 || document.documentElement.scrollTop > 500) {
mybutton.style.display = "inline-flex";
} else {
mybutton.style.display = "none";
}
}
}
function topFunction() {
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
}
/*********************/
/* Accordions */
/*********************/
try {
const Default = {
alwaysOpen: false,
activeClasses: 'bg-white text-black rounded-xl',
inactiveClasses: 'text-dark',
onOpen: () => { },
onClose: () => { },
onToggle: () => { }
}
class Accordion {
constructor(items = [], options = {}) {
this._items = items
this._options = { ...Default, ...options }
this._init()
}
_init() {
if (this._items.length) {
// show accordion item based on click
this._items.map(item => {
if (item.active) {
this.open(item.id)
}
item.triggerEl.addEventListener('click', () => {
this.toggle(item.id)
})
})
}
}
getItem(id) {
return this._items.filter(item => item.id === id)[0]
}
open(id) {
const item = this.getItem(id)
// don't hide other accordions if always open
if (!this._options.alwaysOpen) {
this._items.map(i => {
if (i !== item) {
i.triggerEl.classList.remove(...this._options.activeClasses.split(" "))
i.triggerEl.classList.add(...this._options.inactiveClasses.split(" "))
i.targetEl.classList.add('hidden')
i.triggerEl.setAttribute('aria-expanded', false)
i.active = false
// rotate icon if set
if (i.iconEl) {
i.iconEl.classList.remove('rotate-180')
}
}
})
}
// show active item
item.triggerEl.classList.add(...this._options.activeClasses.split(" "))
item.triggerEl.classList.remove(...this._options.inactiveClasses.split(" "))
item.triggerEl.setAttribute('aria-expanded', true)
item.targetEl.classList.remove('hidden')
item.active = true
// rotate icon if set
if (item.iconEl) {
item.iconEl.classList.add('rotate-180')
}
// callback function
this._options.onOpen(this, item)
}
toggle(id) {
const item = this.getItem(id)
if (item.active) {
this.close(id)
} else {
this.open(id)
}
// callback function
this._options.onToggle(this, item)
}
close(id) {
const item = this.getItem(id)
item.triggerEl.classList.remove(...this._options.activeClasses.split(" "))
item.triggerEl.classList.add(...this._options.inactiveClasses.split(" "))
item.targetEl.classList.add('hidden')
item.triggerEl.setAttribute('aria-expanded', false)
item.active = false
// rotate icon if set
if (item.iconEl) {
item.iconEl.classList.remove('rotate-180')
}
// callback function
this._options.onClose(this, item)
}
}
window.Accordion = Accordion;
document.addEventListener('DOMContentLoaded', () => {
document.querySelectorAll('[data-accordion]').forEach(accordionEl => {
const alwaysOpen = accordionEl.getAttribute('data-accordion')
const activeClasses = accordionEl.getAttribute('data-active-classes')
const inactiveClasses = accordionEl.getAttribute('data-inactive-classes')
const items = []
accordionEl.querySelectorAll('[data-accordion-target]').forEach(el => {
const item = {
id: el.getAttribute('data-accordion-target'),
triggerEl: el,
targetEl: document.querySelector(el.getAttribute('data-accordion-target')),
iconEl: el.querySelector('[data-accordion-icon]'),
active: el.getAttribute('aria-expanded') === 'true' ? true : false
}
items.push(item)
})
new Accordion(items, {
alwaysOpen: alwaysOpen === 'open' ? true : false,
activeClasses: activeClasses ? activeClasses : Default.activeClasses,
inactiveClasses: inactiveClasses ? inactiveClasses : Default.inactiveClasses
})
})
})
} catch (error) { }
/*********************/
/* Lucide Icons */
/*********************/
// lucide.createIcons();

View File

@ -0,0 +1,28 @@
var swiper = new Swiper('.testi-swiper', {
// slidesPerView: 5,
centeredSlides: true,
spaceBetween: 24,
loop: true,
autoplay: {
delay: 3000,
disableOnInteraction: false,
},
navigation: {
nextEl: ".testi-button-next",
prevEl: ".testi-button-prev",
},
breakpoints: {
0: {
slidesPerView: 1,
},
768: {
slidesPerView: 2,
},
991: {
slidesPerView: 2.5,
},
1024: {
slidesPerView: 3,
},
}
});

View File

@ -0,0 +1 @@
<svg t="1752201814971" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="14280" width="200" height="200"><path d="M468.3 83.2c-198.7 19.6-360.5 178.2-384 376.5-14.3 120.8 21.9 232.7 89.6 318.5l-24.4 125.9c-2.6 13.3 10.2 24.4 23 20l120.8-41.6c78.7 46.5 173.1 69.3 273.8 56.6 197.9-25 355.3-187.6 373.7-386.2C965.9 281.8 739.6 56.5 468.3 83.2z m302.5 525.6c0 12-9.7 21.7-21.7 21.7h-80.5c-12 0-21.7-9.7-21.7-21.7V491.7c0-10.9 8.1-19.5 18.5-21.1-13.5-65.9-72-115.7-141.8-115.7-69.9 0-128.3 49.7-141.8 115.7 10.4 1.6 18.5 10.2 18.5 21.1v117.1c0 12-9.7 21.7-21.7 21.7H365c3 48.1 39.2 86.9 86.2 93.8 2.5-6.4 8.7-11 16.1-11H534c9.6 0 17.4 7.8 17.4 17.4V767c0 9.6-7.8 17.4-17.4 17.4h-67c-8 0-14.4-5.5-16.5-12.9-72.5-7.4-129.4-67.3-132.5-140.9h-20.2c-12 0-21.7-9.7-21.7-21.7V491.7c0-12 9.7-21.7 21.7-21.7h1.9C314.4 359.4 409 273.7 523.5 273.7s209.1 85.6 223.8 196.2h1.9c12 0 21.7 9.7 21.7 21.7v117.2z" fill="#ffffff" p-id="14281"></path></svg>

After

Width:  |  Height:  |  Size: 975 B

View File

@ -0,0 +1,2 @@
/*! gumshoejs v5.1.2 | (c) 2019 Chris Ferdinandi | MIT License | http://github.com/cferdinandi/gumshoe */
Element.prototype.closest||(Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),Element.prototype.closest=function(t){var e=this;if(!document.documentElement.contains(this))return null;do{if(e.matches(t))return e;e=e.parentElement}while(null!==e);return null}),(function(){if("function"==typeof window.CustomEvent)return!1;function t(t,e){e=e||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent("CustomEvent");return n.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),n}t.prototype=window.Event.prototype,window.CustomEvent=t})(),(function(t,e){"function"==typeof define&&define.amd?define([],(function(){return e(t)})):"object"==typeof exports?module.exports=e(t):t.Gumshoe=e(t)})("undefined"!=typeof global?global:"undefined"!=typeof window?window:this,(function(t){"use strict";var e={navClass:"active",contentClass:"active",nested:!1,nestedClass:"active",offset:0,reflow:!1,events:!0},n=function(t,e,n){if(n.settings.events){var o=new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:n});e.dispatchEvent(o)}},o=function(t){var e=0;if(t.offsetParent)for(;t;)e+=t.offsetTop,t=t.offsetParent;return e>=0?e:0},s=function(t){t&&t.sort((function(t,e){return o(t.content)<o(e.content)?-1:1}))},r=function(e,n,o){var s=e.getBoundingClientRect(),r=(function(t){return"function"==typeof t.offset?parseFloat(t.offset()):parseFloat(t.offset)})(n);return o?parseInt(s.bottom,10)<(t.innerHeight||document.documentElement.clientHeight):parseInt(s.top,10)<=r},c=function(){return t.innerHeight+t.pageYOffset>=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},i=function(t,e){var n=t[t.length-1];if(function(t,e){return!(!c()||!r(t.content,e,!0))}(n,e))return n;for(var o=t.length-1;o>=0;o--)if(r(t[o].content,e))return t[o]},l=function(t,e){if(e.nested&&t.parentNode){var n=t.parentNode.closest("li");n&&(n.classList.remove(e.nestedClass),l(n,e))}},a=function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.remove(e.navClass),t.content.classList.remove(e.contentClass),l(o,e),n("gumshoeDeactivate",o,{link:t.nav,content:t.content,settings:e}))}},u=function(t,e){if(e.nested){var n=t.parentNode.closest("li");n&&(n.classList.add(e.nestedClass),u(n,e))}};return function(o,r){var c,l,f,d,m,v={};v.setup=function(){c=document.querySelectorAll(o),l=[],Array.prototype.forEach.call(c,(function(t){var e=document.getElementById(decodeURIComponent(t.hash.substr(1)));e&&l.push({nav:t,content:e})})),s(l)},v.detect=function(){var t=i(l,m);t?f&&t.content===f.content||(a(f,m),(function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.add(e.navClass),t.content.classList.add(e.contentClass),u(o,e),n("gumshoeActivate",o,{link:t.nav,content:t.content,settings:e}))}})(t,m),f=t):f&&(a(f,m),f=null)};var p=function(e){d&&t.cancelAnimationFrame(d),d=t.requestAnimationFrame(v.detect)},h=function(e){d&&t.cancelAnimationFrame(d),d=t.requestAnimationFrame((function(){s(l),v.detect()}))};v.destroy=function(){f&&a(f,m),t.removeEventListener("scroll",p,!1),m.reflow&&t.removeEventListener("resize",h,!1),l=null,c=null,f=null,d=null,m=null};return m=(function(){var t={};return Array.prototype.forEach.call(arguments,(function(e){for(var n in e){if(!e.hasOwnProperty(n))return;t[n]=e[n]}})),t})(e,r||{}),v.setup(),v.detect(),t.addEventListener("scroll",p,!1),m.reflow&&t.addEventListener("resize",h,!1),v}}));

View File

@ -0,0 +1 @@
.jarallax{position:relative;z-index:0}.jarallax>.jarallax-img,picture.jarallax-img img{position:absolute;object-fit:cover;top:0;left:0;width:100%;height:100%;z-index:-1}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

BIN
public/template_3/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -0,0 +1 @@
<svg t="1752201567504" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="13250" width="200" height="200"><path d="M904 160H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8zM904 784H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8zM904 472H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8z" p-id="13251"></path></svg>

After

Width:  |  Height:  |  Size: 451 B

View File

@ -0,0 +1 @@
<svg t="1752203688620" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="16078" width="200" height="200"><path d="M288 64l-128 0C106.88 64 64 106.88 64 160l0 512C64 725.12 106.88 768 160 768l128 0C341.12 768 384 810.88 384 864 384 881.92 398.08 896 416 896S448 881.92 448 864l0-640C448 135.68 376.32 64 288 64zM800 64l-128 0C583.68 64 512 135.68 512 224l0 640C512 881.92 526.08 896 544 896 561.92 896 576 881.92 576 864c0-53.12 42.88-96 96-96l128 0c53.12 0 96-42.88 96-96l0-512C896 106.88 853.12 64 800 64z" p-id="16079" fill="#2c2c2c"></path></svg>

After

Width:  |  Height:  |  Size: 591 B

View File

@ -0,0 +1 @@
<svg t="1752203726074" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="17239" width="200" height="200"><path d="M197.9 196.9v709h0.2L513 768.1l314.9 137.8h0.3v-709H197.9zM769 815.6L536.6 713.9c-7.5-3.3-15.6-5-23.7-5s-16.2 1.7-23.7 5L257 815.6V256h512v559.6z" fill="#2c2c2c" p-id="17240"></path><path d="M418.7 539.4C398.8 613.1 403.8 650 433.8 650c18.1 0 45.1-13.4 81.3-40.1 36.1 25 63.2 37.5 81.2 37.5 31.1 0 35.5-37 13.1-111.1 92.6-76.1 79.9-114.7-38.1-116-20.4-57.2-40.4-85.8-60-85.8-19.7 0-39.1 29.2-58 87.7-117.8 5-129.4 44.1-34.6 117.2z m36.8-68.1c20.6-0.8 38.4-14.4 44.8-34 4.4-13.7 8.4-24.2 11.9-32.4 3.7 8 8.1 18.4 12.8 31.8 6.9 19.4 25.2 32.5 45.9 32.7 15.8 0.2 27.7 1 36.5 2.2-6.5 6.8-15.8 15.6-29.2 26.5-15.3 12.6-21.6 33.3-15.9 52.3 4.7 15.6 7.6 27.6 9.3 36.9-7.5-4.2-16.9-10-28.5-18.1-8.4-5.8-18.2-8.7-28-8.7-10.3 0-20.6 3.2-29.3 9.6-11.3 8.4-20.5 14.5-27.9 18.8 1.5-9.3 4-21.4 8.3-37 5.1-19.2-1.7-39.6-17.5-51.8-13.7-10.6-23.3-19.1-29.9-25.7 8.8-1.1 20.8-2.4 36.7-3.1z" fill="#2c2c2c" p-id="17241"></path></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1 @@
<svg t="1752203795067" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="18328" width="200" height="200"><path d="M592 336h-416c-52.928 0-96 43.072-96 96v416c0 52.928 43.072 96 96 96h416c52.928 0 96-43.072 96-96v-416c0-52.928-43.072-96-96-96z m32 512a32 32 0 0 1-32 32h-416c-17.632 0-32-14.336-32-32v-416c0-17.632 14.368-32 32-32h416c17.664 0 32 14.368 32 32v416z" p-id="18329" fill="#2c2c2c"></path><path d="M720 208h-416a32 32 0 0 0 0 64h416c17.664 0 32 14.368 32 32v416a32 32 0 1 0 64 0v-416c0-52.928-43.072-96-96-96zM528 752h-288a32 32 0 1 0 0 64h288a32 32 0 1 0 0-64z" p-id="18330" fill="#2c2c2c"></path><path d="M848 80h-416a32 32 0 0 0 0 64h416c17.664 0 32 14.368 32 32v416a32 32 0 1 0 64 0v-416c0-52.928-43.072-96-96-96z" p-id="18331" fill="#2c2c2c"></path></svg>

After

Width:  |  Height:  |  Size: 813 B

View File

@ -0,0 +1 @@
<svg t="1752203820977" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="19364" width="200" height="200"><path d="M660.3 375.5l-158.4-88.2c-19-10.6-41.6-10.3-60.4 0.7-18.8 11-30 30.6-30 52.4v176.4c0 21.8 11.2 41.4 30 52.4 9.6 5.6 20.2 8.5 30.8 8.5 10.1 0 20.3-2.6 29.6-7.8l158.4-88.2c19.6-10.9 31.2-30.8 31.2-53.1 0.1-22.3-11.6-42.2-31.2-53.1z m-19.4 71.4l-158.4 88.2c-9.4 5.2-17.6 1.6-20.7-0.2-3.1-1.8-10.3-7.2-10.3-18V340.4c0-10.8 7.2-16.1 10.3-18 1.9-1.1 5.8-2.9 10.6-2.9 3 0 6.4 0.7 10 2.7l158.4 88.2c9.7 5.4 10.7 14.5 10.7 18.2 0.1 3.7-1 12.9-10.6 18.3z" fill="#2c2c2c" p-id="19365"></path><path d="M777.3 129.9H245.7c-68.9 0-125 56.1-125 125v347c0 68.9 56.1 125 125 125h531.7c68.9 0 125-56.1 125-125v-347c-0.1-69-56.1-125-125.1-125z m75 472c0 41.4-33.6 75-75 75H245.7c-41.4 0-75-33.6-75-75v-347c0-41.4 33.6-75 75-75h531.7c41.4 0 75 33.6 75 75v347zM617.9 808.9c13.8 0 25-11.2 25-25s-11.2-25-25-25H405.5c-13.8 0-25 11.2-25 25s11.2 25 25 25h212.4zM753.1 846.3H270.3c-13.8 0-25 11.2-25 25s11.2 25 25 25h482.8c13.8 0 25-11.2 25-25s-11.2-25-25-25z" fill="#2c2c2c" p-id="19366"></path></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1 @@
<svg t="1752203912477" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="25814" width="200" height="200"><path d="M512 960c-24.7 0-44.8-20.1-44.8-44.8V108.8c0-24.7 20.1-44.8 44.8-44.8 24.7 0 44.8 20.1 44.8 44.8v806.3c0 24.8-20.1 44.9-44.8 44.9z m148.1-154.6c-24.7 0-44.8-20.1-44.8-44.8V263.4c0-24.7 20.1-44.8 44.8-44.8s44.8 20.1 44.8 44.8v497.1c0 24.7-20.1 44.9-44.8 44.9z m-296.2 0c-24.7 0-44.8-20.1-44.8-44.8V263.4c0-24.7 20.1-44.8 44.8-44.8s44.8 20.1 44.8 44.8v497.1c0.1 24.7-20 44.9-44.8 44.9z m444.3-102.7c-24.7 0-44.8-20.1-44.8-44.8V366.1c0-24.7 20.1-44.8 44.8-44.8 24.7 0 44.8 20.1 44.8 44.8v291.7c0 24.7-20.1 44.9-44.8 44.9z m-592.4 0c-24.7 0-44.8-20.1-44.8-44.8V366.1c0-24.7 20.1-44.8 44.8-44.8 24.7 0 44.8 20.1 44.8 44.8v291.7c0.1 24.7-20 44.9-44.8 44.9z" fill="#2c2c2c" p-id="25815"></path></svg>

After

Width:  |  Height:  |  Size: 849 B

View File

@ -0,0 +1 @@
<svg t="1752203889360" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="24738" width="200" height="200"><path d="M533.333333 401.066667a260.266667 260.266667 0 0 1 260.096 250.709333l0.170667 9.557333V896a25.6 25.6 0 0 1-50.858667 4.138667L742.4 896v-234.666667a209.066667 209.066667 0 0 0-417.92-9.301333L324.266667 661.333333V896a25.6 25.6 0 0 1-50.858667 4.138667L273.066667 896v-234.666667a260.266667 260.266667 0 0 1 260.266666-260.266666z m21.333334 128a110.933333 110.933333 0 0 1 110.933333 110.933333v42.666667a68.266667 68.266667 0 0 1-68.266667 68.266666h-128A68.266667 68.266667 0 0 1 401.066667 682.666667v-42.666667a110.933333 110.933333 0 0 1 110.933333-110.933333z m0 51.2h-42.666667a59.733333 59.733333 0 0 0-59.733333 59.733333v42.666667c0 9.386667 7.68 17.066667 17.066666 17.066666h128a17.066667 17.066667 0 0 0 17.066667-17.066666v-42.666667a59.733333 59.733333 0 0 0-59.733333-59.733333z m-21.333334-349.866667a259.413333 259.413333 0 0 1 177.834667 70.229333 25.6 25.6 0 0 1-34.986667 37.376A208.213333 208.213333 0 0 0 533.333333 281.6a208.170667 208.170667 0 0 0-138.922666 52.821333 25.6 25.6 0 1 1-34.048-38.229333A259.328 259.328 0 0 1 533.333333 230.4z m0-128a387.370667 387.370667 0 0 1 293.717334 134.357333 25.6 25.6 0 0 1-38.698667 33.493334A336.170667 336.170667 0 0 0 533.333333 153.6c-97.28 0-187.861333 41.386667-251.434666 112.597333a25.6 25.6 0 1 1-38.186667-34.133333A387.285333 387.285333 0 0 1 533.333333 102.4z" fill="#2c2c2c" p-id="24739"></path></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1 @@
<svg t="1752203865794" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="21755" width="200" height="200"><path d="M819.2 107.52H204.8c-77.312 0-138.24 60.928-138.24 138.24v446.976c0 77.312 60.928 138.24 138.24 138.24h167.424s112.64 51.712 154.624 77.312c12.8 6.656 45.056 19.456 64.512-9.728 25.6-51.712-22.528-67.584-22.528-67.584s-93.184-45.056-112.64-54.784c-19.456-9.728-45.056-29.184-83.456-29.184H204.8s-57.856-6.656-57.856-54.784V245.76S153.6 190.976 204.8 190.976h614.4s54.784 0 54.784 54.784v446.976s0 54.784-54.784 54.784h-138.24c-29.184 0-54.784 0-54.784 41.984s29.184 41.984 54.784 41.984h138.24c77.312 0 138.24-60.928 138.24-138.24V245.76c0-77.312-60.928-138.24-138.24-138.24zM259.584 470.528c0 32.256 25.6 54.784 54.784 54.784S368.64 499.712 368.64 470.528c0-32.256-25.6-54.784-54.784-54.784s-54.272 23.04-54.272 54.784z m196.096 0c0 32.256 25.6 54.784 54.784 54.784 32.256 0 54.784-25.6 54.784-54.784 0-32.256-25.6-54.784-54.784-54.784C481.28 412.672 455.68 438.784 455.68 470.528z m305.664 0c0-32.256-25.6-54.784-54.784-54.784-32.256 0-54.784 25.6-54.784 54.784 0 32.256 25.6 54.784 54.784 54.784 29.184 0 54.784-25.6 54.784-54.784z" p-id="21756" fill="#2c2c2c"></path></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1 @@
<svg t="1752203846671" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="20648" width="200" height="200"><path d="M624.9472 682.052267a99.362133 99.362133 0 0 1 45.090133 84.548266 112.9472 112.9472 0 0 1-87.6544 98.577067 72.0896 72.0896 0 1 1-8.533333-35.157333 108.782933 108.782933 0 0 0 44.1344-27.306667 57.309867 57.309867 0 0 0 16.0768-37.205333 66.6624 66.6624 0 0 0-46.660267-62.395734l0.341334-0.853333q-13.175467 6.212267-27.306667 11.400533a410.999467 410.999467 0 0 1-163.566933 26.555734 171.485867 171.485867 0 0 1-119.466667-44.373334 77.5168 77.5168 0 0 1-4.4032-95.197866 95.163733 95.163733 0 0 1-43.042133-23.415467 91.306667 91.306667 0 0 1-90.555734-35.601067 200.977067 200.977067 0 0 1-39.389866-101.444266 219.204267 219.204267 0 0 1 13.653333-111.854934 114.858667 114.858667 0 0 1 68.266667-66.696533 191.146667 191.146667 0 0 1 50.039466-109.636267 140.936533 140.936533 0 0 1 94.276267-41.1648 160.426667 160.426667 0 0 1 81.578667 18.090667 131.072 131.072 0 0 1 104.823466-38.7072 138.1376 138.1376 0 0 1 93.422934 50.551467 181.077333 181.077333 0 0 1 110.592-2.525867 120.081067 120.081067 0 0 1 71.441066 61.713067 166.229333 166.229333 0 0 1 105.813334 79.5648 149.879467 149.879467 0 0 1 3.413333 120.2176 130.798933 130.798933 0 0 1 11.5712 144.725333 118.3744 118.3744 0 0 1-68.1984 53.316267 203.912533 203.912533 0 0 1-115.473067-3.413334 17.3056 17.3056 0 0 1-5.7344-2.798933q-6.4512 9.386667-13.653333 18.773333a300.7488 300.7488 0 0 1-80.657067 71.68z m-310.9888-78.267734a84.104533 84.104533 0 0 0-18.773333 41.1648 34.440533 34.440533 0 0 0 9.216 26.897067 140.9024 140.9024 0 0 0 94.446933 32.119467 374.749867 374.749867 0 0 0 148.8896-24.2688 293.0688 293.0688 0 0 0 129.4336-91.374934 224.8704 224.8704 0 0 0 50.210133-105.2672 72.192 72.192 0 1 1 36.283734-0.512 208.452267 208.452267 0 0 1-25.2928 77.960534 165.410133 165.410133 0 0 0 91.5456 2.628266 82.158933 82.158933 0 0 0 48.196266-37.034666 94.890667 94.890667 0 0 0-14.5408-110.830934 17.92 17.92 0 0 1-3.208533-20.104533 107.963733 107.963733 0 0 0-57.207467-152.302933c1.092267 5.085867 1.9456 10.24 2.696534 15.633066a18.0224 18.0224 0 0 1-35.669334 4.9152 98.679467 98.679467 0 0 0-64.512-90.862933 142.882133 142.882133 0 0 0-77.346133-0.682667 264.704 264.704 0 0 1 15.223467 30.72 18.0224 18.0224 0 0 1-33.211734 13.960534 171.6224 171.6224 0 0 0-47.786666-68.471467 94.8224 94.8224 0 0 0-124.6208 1.7408 107.8272 107.8272 0 0 1 34.133333 58.402133 18.056533 18.056533 0 1 1-35.4304 6.826667 103.355733 103.355733 0 0 0-108.475733-68.266667 104.8576 104.8576 0 0 0-70.417067 30.72A162.4064 162.4064 0 0 0 216.405333 277.742933a17.954133 17.954133 0 0 1-14.301866 15.735467 76.936533 76.936533 0 0 0-55.296 49.186133 185.173333 185.173333 0 0 0-10.990934 93.252267 165.512533 165.512533 0 0 0 31.607467 83.012267 59.2896 59.2896 0 0 0 40.584533 23.893333 121.719467 121.719467 0 0 1 46.318934-122.1632 70.7584 70.7584 0 0 1-14.609067-43.383467 72.0896 72.0896 0 1 1 41.198933 65.024c-42.427733 33.553067-52.599467 74.410667-32.699733 101.376a61.064533 61.064533 0 0 0 44.817067 24.098134 164.4544 164.4544 0 0 0 85.8112-20.036267 140.253867 140.253867 0 0 1 51.643733-14.199467 196.130133 196.130133 0 0 1 40.96 1.9456c10.24 1.194667 13.653333 1.604267 18.602667 1.8432a68.5056 68.5056 0 0 0 52.8384-17.851733c17.681067-14.370133 22.493867-38.638933 12.424533-75.6736a72.260267 72.260267 0 1 1 30.446933-23.6544 5.802667 5.802667 0 0 0 0.238934 0.682667c18.500267 56.388267 12.5952 99.771733-20.48 126.634666a104.3456 104.3456 0 0 1-77.6192 25.873067 330.478933 330.478933 0 0 1-20.8896-2.013867 168.686933 168.686933 0 0 0-34.133334-1.774933 103.253333 103.253333 0 0 0-38.638933 10.752 225.28 225.28 0 0 1-80.315733 23.6544z m214.2208-190.805333a36.0448 36.0448 0 1 0-36.113067-36.010667 36.078933 36.078933 0 0 0 36.113067 36.1472z m-216.405333 0a36.0448 36.0448 0 1 0-36.113067-36.010667 36.078933 36.078933 0 0 0 35.976533 36.1472z m432.8448 36.113067a36.113067 36.113067 0 1 0-36.113067-36.113067 36.078933 36.078933 0 0 0 36.078933 36.2496z m-234.461867 450.9696a36.0448 36.0448 0 1 0-36.113067-36.010667 36.078933 36.078933 0 0 0 36.113067 36.010667z" fill="#2c2c2c" p-id="20649"></path><path d="M311.057067 329.762133a53.930667 53.930667 0 0 1 50.5856 47.4112c0 23.893333-41.3696 48.366933-65.160534 48.366934a43.1104 43.1104 0 0 1-43.1104-43.1104 66.730667 66.730667 0 0 1 57.685334-52.667734z" fill="#2c2c2c" p-id="20650"></path><path d="M528.145067 315.767467c35.7376 0 49.9712 28.398933 49.9712 64.1024a47.4112 47.4112 0 0 1-53.76 53.3504c-35.703467 0-55.466667-36.625067-55.466667-72.328534s23.552-45.124267 59.255467-45.124266z" fill="#2c2c2c" p-id="20651"></path><path d="M745.847467 358.877867c35.703467 0 39.8336 9.4208 39.8336 45.124266s-0.9216 64.648533-36.625067 64.648534a64.648533 64.648533 0 0 1-64.648533-64.648534c0-35.703467 25.736533-45.124267 61.44-45.124266z" fill="#2c2c2c" p-id="20652"></path></svg>

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

@ -0,0 +1 @@
<svg t="1752204001026" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="28306" width="200" height="200"><path d="M123.904 712.192c-5.12-2.56-9.216-8.192-10.752-13.312-2.56-11.776 4.096-24.064 14.848-26.624 5.12-1.536 11.776-1.536 15.872 1.536l344.064 190.464 371.712-121.344c14.848-30.72 18.432-61.44 11.776-92.16-2.56-11.776-8.192-24.064-14.848-33.28l-375.808 128-358.4-201.216c-10.752-5.12-14.848-18.432-8.192-29.184s18.432-14.848 29.184-8.192l343.04 191.488 374.784-128c15.872-26.624 18.432-55.808 8.192-85.504-5.12-11.776-10.752-24.064-18.432-34.816l-366.592 132.096-358.4-200.192c-5.12-2.56-9.216-8.192-10.752-13.312-2.56-11.776 4.096-24.064 14.848-26.624 5.12-1.536 11.776-1.536 15.872 1.536L486.4 534.528l368.128-132.096c19.968-31.744 25.088-64 15.872-94.72-2.56-8.192-6.656-15.872-11.776-24.064L482.304 426.496 102.4 218.624l419.84-106.496 353.28 123.904 4.096 2.56c2.56 2.56 22.528 21.504 33.28 54.784 10.752 30.72 14.848 78.848-22.528 134.656 6.656 9.216 14.848 22.528 21.504 39.936 17.408 44.032 11.776 88.064-13.312 128 8.192 13.312 14.848 28.16 17.408 42.496 8.192 29.184 10.752 77.312-18.432 132.096l-4.096 8.192-406.528 133.12-363.008-199.68zM486.4 378.88l318.464-121.344-72.192-25.088-317.44 108.032C415.744 339.968 486.4 378.88 486.4 378.88z" fill="#2c2c2c" p-id="28307"></path></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1 @@
<svg t="1752204051716" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="29343" width="200" height="200"><path d="M768 64a32 32 0 0 1 32 31.68V192h64c17.664 0 32 14.208 32 32v32H128V127.936C128 92.608 156.736 64 191.68 64H768z m-32 64H223.776A31.904 31.904 0 0 0 192 160c0 17.792 14.24 32 31.776 32H736v-64zM128 256h768v640.288c0 35.2-28.704 63.712-64.16 63.712H192.16A63.904 63.904 0 0 1 128 896.288V256z m64 0v608.256A32 32 0 0 0 223.744 896h576.512A32 32 0 0 0 832 864.256V256H192z m475.52 222.816H317.952c-16.032 0-29.056-14.08-29.056-31.424s13.024-31.36 29.056-31.392h349.504c16.032 0 29.056 14.08 29.056 31.392 0 17.344-13.024 31.424-29.056 31.424z m-153.216 128h-194.24a31.264 31.264 0 0 1-31.136-31.424c0-17.344 13.952-31.392 31.136-31.392h194.208c17.184 0 31.104 14.08 31.104 31.392a31.264 31.264 0 0 1-31.104 31.424h0.032z" fill="#2c2c2c" p-id="29344"></path></svg>

After

Width:  |  Height:  |  Size: 917 B

View File

@ -0,0 +1 @@
<svg t="1752204072249" class="icon" viewBox="0 0 1245 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="30459" width="200" height="200"><path d="M161.71294076 877.34014209l-1.08669375-0.60087744-1.39352518-0.71593946c-23.17854463-10.72630898-50.97234288-23.01234433-69.17766416-49.14413964-9.02595323-12.98919024-8.94924492-38.86529239-9.86973838-61.00828154V152.32345156a0.11506203 0.11506203 0 0 0-0.12784658-0.11506202A71.69623683 71.69623683 0 0 0 17.10592681 222.98413291v625.55222549a20.91566425 20.91566425 0 0 0 0.92049345 6.09827079 85.75933623 85.75933623 0 0 0 26.68153449 40.47615704 90.48965185 90.48965185 0 0 0 52.34029891 18.0007664c18.35873701 1.27846319 36.84531972 2.01997266 54.16850129 2.4930044 21.31198769 0.54973916 29.11061514-27.8577211 10.49618581-38.26441494z" p-id="30460" fill="#2c2c2c"></path><path d="M236.78432172 76.88131631v-0.0767083q-3.70754473-1.03555547-7.4406577-2.01997266l-0.43467716-0.11506113c-17.75785869-4.71753018-35.79697969-8.70633721-53.86167069-11.90249649a49.39983281 49.39983281 0 0 0-15.59725575-0.26847684 71.59396026 71.59396026 0 0 0-61.25118927 70.72460507v609.75041484a96.89475411 96.89475411 0 0 0 19.03632275 58.06781543l0.24290773 0.33240058a171.79993477 171.79993477 0 0 0 60.84208123 46.31873556c37.53569002 21.05629541 56.4058125 31.74425068 74.76454953 40.16932558 67.38781465 29.92883201 137.05129511 55.33190332 178.26896074 69.81689531a49.75780253 49.75780253 0 0 0 29.90326289 1.20175577 71.59396026 71.59396026 0 0 0 52.13574403-68.80690987V537.281617l0.33240059-216.06034307a51.13854317 51.13854317 0 0 0-4.62803818-21.32477227c-6.12384084-13.43665194-14.70233145-26.52811875-21.46540342-39.13377012C429.4871362 151.99105098 319.47534615 100.85250782 236.78432172 76.88131631zM936.62806499 801.79573028a130.40328428 130.40328428 0 0 0 15.45662461-26.60482704 46.81733556 46.81733556 0 0 0 3.83539131-18.61443019V133.63231396A71.51725195 71.51725195 0 0 0 884.90142897 62.17898486c-20.07187822 3.34957412-40.02869443 7.67078174-59.69146377 12.89969737l-0.43467804 0.11506202q-3.72032931 0.99720176-7.44065771 2.01997265v0.07670742c-82.7038081 24.03511523-192.70281445 75.12251924-250.86012187 183.81749237-8.74469092 16.30041065-20.4554171 33.36789903-26.10622619 50.99791204l0.35796975 225.58489715v352.85594502a71.50446739 71.50446739 0 0 0 71.01865194 71.4533291c38.89086153-13.51336026 115.44526055-40.91083417 189.28931573-73.66507118 18.35873701-8.4250749 37.2160749-19.11303017 74.76454951-40.1693256a171.79993477 171.79993477 0 0 0 60.82929667-46.36987294z" p-id="30461" fill="#2c2c2c"></path><path d="M974.08704762 152.63028213a0.11506203 0.11506203 0 0 0-0.1278457 0.11506201v613.54745245c-0.89492432 22.14298916-0.84378604 48.01909131-9.86973927 61.00828153-18.20532128 26.1829336-46.02468867 38.41783067-69.17766328 49.14413965l-1.39352518 0.71593945-1.08669464 0.60087833c-18.6144293 10.40669385-10.82858643 38.8141541 10.48340128 38.23884492 17.31039697-0.46024717 35.79697969-1.27846319 54.16850126-2.49300349a90.48965185 90.48965185 0 0 0 52.34029893-18.00076729 85.75933623 85.75933623 0 0 0 26.68153446-40.47615706 20.91566425 20.91566425 0 0 0 0.92049434-6.0982708V223.40602549a71.69623683 71.69623683 0 0 0-62.9387622-70.77574336z" p-id="30462" fill="#2c2c2c"></path></svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
public/template_3/store.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@ -0,0 +1 @@
<svg t="1752200981843" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11047" width="200" height="200"><path d="M512 330.666667c14.933333 0 29.866667 4.266667 40.533333 14.933333l277.33333399 234.666667c27.733333 23.466667 29.866667 64 8.53333301 89.6-23.466667 27.733333-64 29.866667-89.6 8.53333299L512 477.866667l-236.8 200.53333299c-27.733333 23.466667-68.266667 19.19999999-89.6-8.53333299-23.466667-27.733333-19.19999999-68.266667 8.53333301-89.6l277.33333399-234.666667c10.666667-10.666667 25.6-14.933333 40.533333-14.933333z" fill="#ffffff" p-id="11048"></path></svg>

After

Width:  |  Height:  |  Size: 619 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -0,0 +1,259 @@
/* Template Name: Evea - Responsive App Landing Tailwind CSS Template
Author: Zoyothemes
Email: zoyothemes@gmail.com
Website: https://zoyothemes.com
Version: 1.0.0
Created: March 2024
File Description: Main JS file of the template
*/
/*********************************/
/* INDEX */
/*================================
* 01. Sticky Navbar *
* 02. Navbar active *
* 03. Back to top *
* 04. Accordions *
* 05. Lucide Icons *
================================*/
/*********************/
/* Sticky Navbar */
/*********************/
function windowScroll() {
const navbar = document.getElementById("navbar");
if (navbar) {
if (
document.body.scrollTop >= 50 ||
document.documentElement.scrollTop >= 50
) {
navbar.classList.add("is-sticky");
} else {
navbar.classList.remove("is-sticky");
}
}
}
window.addEventListener("scroll", (ev) => {
ev.preventDefault();
windowScroll();
});
/*********************/
/* Navbar Active */
/*********************/
try {
var spy = new Gumshoe("#navbar-navlist a", {
// Active classes
// navClass: 'active', // applied to the nav list item
// contentClass: 'active', // applied to the content
offset: 80,
});
} catch (error) {}
// Smooth scroll
try {
var scroll = new SmoothScroll("#navbar-navlist a", {
speed: 800,
offset: 80,
});
} catch (error) {}
/*********************/
/* Menu Collapse */
/*********************/
const toggleCollapse = (elementId, show = true) => {
const collapseEl = document.getElementById(elementId);
if (show) {
collapseEl.classList.remove("hidden");
} else {
collapseEl.classList.add("hidden");
}
};
document.addEventListener("DOMContentLoaded", () => {
// Toggle target elements using [data-collapse]
document
.querySelectorAll("[data-collapse]")
.forEach(function (collapseToggleEl) {
var collapseId = collapseToggleEl.getAttribute("data-collapse");
collapseToggleEl.addEventListener("click", function () {
toggleCollapse(
collapseId,
document.getElementById(collapseId).classList.contains("hidden")
);
});
});
});
window.toggleCollapse = toggleCollapse;
/*********************/
/* Back To Top */
/*********************/
var mybutton = document.getElementById("back-to-top");
window.onscroll = function () {
scrollFunction();
};
function scrollFunction() {
if(mybutton!=null){
if (document.body.scrollTop > 500 || document.documentElement.scrollTop > 500) {
mybutton.style.display = "inline-flex";
} else {
mybutton.style.display = "none";
}
}
}
function topFunction() {
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
}
/*********************/
/* Accordions */
/*********************/
try {
const Default = {
alwaysOpen: false,
activeClasses: 'bg-white text-black rounded-xl',
inactiveClasses: 'text-dark',
onOpen: () => { },
onClose: () => { },
onToggle: () => { }
}
class Accordion {
constructor(items = [], options = {}) {
this._items = items
this._options = { ...Default, ...options }
this._init()
}
_init() {
if (this._items.length) {
// show accordion item based on click
this._items.map(item => {
if (item.active) {
this.open(item.id)
}
item.triggerEl.addEventListener('click', () => {
this.toggle(item.id)
})
})
}
}
getItem(id) {
return this._items.filter(item => item.id === id)[0]
}
open(id) {
const item = this.getItem(id)
// don't hide other accordions if always open
if (!this._options.alwaysOpen) {
this._items.map(i => {
if (i !== item) {
i.triggerEl.classList.remove(...this._options.activeClasses.split(" "))
i.triggerEl.classList.add(...this._options.inactiveClasses.split(" "))
i.targetEl.classList.add('hidden')
i.triggerEl.setAttribute('aria-expanded', false)
i.active = false
// rotate icon if set
if (i.iconEl) {
i.iconEl.classList.remove('rotate-180')
}
}
})
}
// show active item
item.triggerEl.classList.add(...this._options.activeClasses.split(" "))
item.triggerEl.classList.remove(...this._options.inactiveClasses.split(" "))
item.triggerEl.setAttribute('aria-expanded', true)
item.targetEl.classList.remove('hidden')
item.active = true
// rotate icon if set
if (item.iconEl) {
item.iconEl.classList.add('rotate-180')
}
// callback function
this._options.onOpen(this, item)
}
toggle(id) {
const item = this.getItem(id)
if (item.active) {
this.close(id)
} else {
this.open(id)
}
// callback function
this._options.onToggle(this, item)
}
close(id) {
const item = this.getItem(id)
item.triggerEl.classList.remove(...this._options.activeClasses.split(" "))
item.triggerEl.classList.add(...this._options.inactiveClasses.split(" "))
item.targetEl.classList.add('hidden')
item.triggerEl.setAttribute('aria-expanded', false)
item.active = false
// rotate icon if set
if (item.iconEl) {
item.iconEl.classList.remove('rotate-180')
}
// callback function
this._options.onClose(this, item)
}
}
window.Accordion = Accordion;
document.addEventListener('DOMContentLoaded', () => {
document.querySelectorAll('[data-accordion]').forEach(accordionEl => {
const alwaysOpen = accordionEl.getAttribute('data-accordion')
const activeClasses = accordionEl.getAttribute('data-active-classes')
const inactiveClasses = accordionEl.getAttribute('data-inactive-classes')
const items = []
accordionEl.querySelectorAll('[data-accordion-target]').forEach(el => {
const item = {
id: el.getAttribute('data-accordion-target'),
triggerEl: el,
targetEl: document.querySelector(el.getAttribute('data-accordion-target')),
iconEl: el.querySelector('[data-accordion-icon]'),
active: el.getAttribute('aria-expanded') === 'true' ? true : false
}
items.push(item)
})
new Accordion(items, {
alwaysOpen: alwaysOpen === 'open' ? true : false,
activeClasses: activeClasses ? activeClasses : Default.activeClasses,
inactiveClasses: inactiveClasses ? inactiveClasses : Default.inactiveClasses
})
})
})
} catch (error) { }
/*********************/
/* Lucide Icons */
/*********************/
lucide.createIcons();

View File

@ -0,0 +1,28 @@
var swiper = new Swiper('.testi-swiper', {
// slidesPerView: 5,
centeredSlides: true,
spaceBetween: 24,
loop: true,
autoplay: {
delay: 3000,
disableOnInteraction: false,
},
navigation: {
nextEl: ".testi-button-next",
prevEl: ".testi-button-prev",
},
breakpoints: {
0: {
slidesPerView: 1,
},
768: {
slidesPerView: 2,
},
991: {
slidesPerView: 2.5,
},
1024: {
slidesPerView: 3,
},
}
});

View File

@ -0,0 +1,2 @@
/*! gumshoejs v5.1.2 | (c) 2019 Chris Ferdinandi | MIT License | http://github.com/cferdinandi/gumshoe */
Element.prototype.closest||(Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),Element.prototype.closest=function(t){var e=this;if(!document.documentElement.contains(this))return null;do{if(e.matches(t))return e;e=e.parentElement}while(null!==e);return null}),(function(){if("function"==typeof window.CustomEvent)return!1;function t(t,e){e=e||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent("CustomEvent");return n.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),n}t.prototype=window.Event.prototype,window.CustomEvent=t})(),(function(t,e){"function"==typeof define&&define.amd?define([],(function(){return e(t)})):"object"==typeof exports?module.exports=e(t):t.Gumshoe=e(t)})("undefined"!=typeof global?global:"undefined"!=typeof window?window:this,(function(t){"use strict";var e={navClass:"active",contentClass:"active",nested:!1,nestedClass:"active",offset:0,reflow:!1,events:!0},n=function(t,e,n){if(n.settings.events){var o=new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:n});e.dispatchEvent(o)}},o=function(t){var e=0;if(t.offsetParent)for(;t;)e+=t.offsetTop,t=t.offsetParent;return e>=0?e:0},s=function(t){t&&t.sort((function(t,e){return o(t.content)<o(e.content)?-1:1}))},r=function(e,n,o){var s=e.getBoundingClientRect(),r=(function(t){return"function"==typeof t.offset?parseFloat(t.offset()):parseFloat(t.offset)})(n);return o?parseInt(s.bottom,10)<(t.innerHeight||document.documentElement.clientHeight):parseInt(s.top,10)<=r},c=function(){return t.innerHeight+t.pageYOffset>=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},i=function(t,e){var n=t[t.length-1];if(function(t,e){return!(!c()||!r(t.content,e,!0))}(n,e))return n;for(var o=t.length-1;o>=0;o--)if(r(t[o].content,e))return t[o]},l=function(t,e){if(e.nested&&t.parentNode){var n=t.parentNode.closest("li");n&&(n.classList.remove(e.nestedClass),l(n,e))}},a=function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.remove(e.navClass),t.content.classList.remove(e.contentClass),l(o,e),n("gumshoeDeactivate",o,{link:t.nav,content:t.content,settings:e}))}},u=function(t,e){if(e.nested){var n=t.parentNode.closest("li");n&&(n.classList.add(e.nestedClass),u(n,e))}};return function(o,r){var c,l,f,d,m,v={};v.setup=function(){c=document.querySelectorAll(o),l=[],Array.prototype.forEach.call(c,(function(t){var e=document.getElementById(decodeURIComponent(t.hash.substr(1)));e&&l.push({nav:t,content:e})})),s(l)},v.detect=function(){var t=i(l,m);t?f&&t.content===f.content||(a(f,m),(function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.add(e.navClass),t.content.classList.add(e.contentClass),u(o,e),n("gumshoeActivate",o,{link:t.nav,content:t.content,settings:e}))}})(t,m),f=t):f&&(a(f,m),f=null)};var p=function(e){d&&t.cancelAnimationFrame(d),d=t.requestAnimationFrame(v.detect)},h=function(e){d&&t.cancelAnimationFrame(d),d=t.requestAnimationFrame((function(){s(l),v.detect()}))};v.destroy=function(){f&&a(f,m),t.removeEventListener("scroll",p,!1),m.reflow&&t.removeEventListener("resize",h,!1),l=null,c=null,f=null,d=null,m=null};return m=(function(){var t={};return Array.prototype.forEach.call(arguments,(function(e){for(var n in e){if(!e.hasOwnProperty(n))return;t[n]=e[n]}})),t})(e,r||{}),v.setup(),v.detect(),t.addEventListener("scroll",p,!1),m.reflow&&t.addEventListener("resize",h,!1),v}}));

View File

@ -0,0 +1 @@
.jarallax{position:relative;z-index:0}.jarallax>.jarallax-img,picture.jarallax-img img{position:absolute;object-fit:cover;top:0;left:0;width:100%;height:100%;z-index:-1}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -7,6 +7,7 @@ import '../styles/template_2/nav.css'
const { description = '', title = '', keywords = '', breadcrumb = [] } = Astro.props;
import {getConfig} from '../../utils/config'
const config = getConfig(Astro)
console.log(config)
---
<!doctype html>
<html lang="zh-CN">

163
src/layouts/Layout_3.astro Normal file
View File

@ -0,0 +1,163 @@
---
const { description = '', title = '', keywords = '', breadcrumb = [] } = Astro.props;
import {getConfig, getTp3Extra} from '../../utils/config'
import { Image } from 'astro:assets';
const config = getConfig(Astro)
const extra = getTp3Extra(config.app_extra_tag)
import BaijiahaoLogo from '../../public/common/baijiahao.svg'
import Toutiaohao from '../../public/common/toutiaohao.svg'
import Douyin from '../../public/common/douyin.svg'
import Weibo from '../../public/common/weibo.svg'
import '../styles/template_3/icons.min.css'
import '../styles/template_3/style.css'
---
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width" />
<meta name="applicable-device"content="pc,mobile">
<link rel="icon" type="image/svg+xml" href={config.app_logo} />
<title>{title}</title>
<meta name="description" content={description} />
<meta name="keywords" content={keywords} />
{config.app_baidu_zhanzhang ? <Fragment set:html={config.app_baidu_zhanzhang} /> : ''}
</head>
<body class="app-v4 page-name-books none-ecommerce">
<!-- Navbar Start -->
<nav class="navbar fixed top-0 start-0 end-0 z-999 transition-all duration-500 py-5 items-center shadow-md lg:shadow-none [&.is-sticky]:bg-white group [&.is-sticky]:shadow-md bg-white lg:bg-transparent" id="navbar">
<div class="container">
<div class="flex lg:flex-nowrap flex-wrap items-center">
<a class='flex items-center' href='/'>
<Image src={config.app_logo} alt="logo" width={100} height={100} class="h-9 flex w-full" />
<!-- {config.app_name} -->
</a>
<div class="lg:hidden flex items-center ms-auto px-2.5">
<button class="hs-collapse-toggle" type="button" id="hs-unstyled-collapse" data-hs-collapse="#navbarCollapse">
<!-- <i data-lucide="menu" class="h-8 w-8 text-black"></i> -->
<Image src="/template_3/menu-button.svg" alt="menu-button" width={100} height={100} class="h-8 w-8 text-black" />
</button>
</div>
<div class="navigation hs-collapse transition-all duration-300 lg:basis-auto basis-full grow hidden items-center justify-center lg:flex mx-auto overflow-hidden mt-6 lg:mt-0 nav-light" id="navbarCollapse">
<ul class="navbar-nav flex-col lg:flex-row gap-y-2 flex lg:items-center justify-center" id="navbar-navlist">
<li class="nav-item mx-1.5 transition-all text-dark lg:text-black group-[&.is-sticky]:text-dark all duration-300 hover:text-primary [&.active]:!text-primary group-[&.is-sticky]:[&.active]:text-primary">
<a class="nav-link inline-flex items-center text-sm lg:text-base font-medium py-0.5 px-2 capitalize" href="/news">产品新闻</a>
</li>
<li class="nav-item mx-1.5 transition-all text-dark lg:text-black group-[&.is-sticky]:text-dark duration-300 hover:text-primary [&.active]:!text-primary group-[&.is-sticky]:[&.active]:text-primary">
<a class="nav-link inline-flex items-center text-sm lg:text-base font-medium py-0.5 px-2 capitalize" href="/about-us">关于我们</a>
</li>
<li class="nav-item mx-1.5 transition-all text-dark lg:text-black group-[&.is-sticky]:text-dark duration-300 hover:text-primary [&.active]:!text-primary group-[&.is-sticky]:[&.active]:text-primary">
<a class="nav-link inline-flex items-center text-sm lg:text-base font-medium py-0.5 px-2 capitalize" href="/contact-us">联系我们</a>
</li>
</ul>
</div>
<div class="ms-auto shrink hidden lg:inline-flex gap-2">
<a href={extra.app_download} class="py-2 px-6 inline-flex items-center gap-2 rounded-md text-base text-white bg-primary hover:bg-primaryDark transition-all duration-500 font-medium">
<Image src="/template_3/download.svg" alt="download" width={100} height={100} class="h-4 w-4 fill-white/40" />
<span class="hidden sm:block">下载</span>
</a>
</div>
</div>
</div>
</nav>
<slot />
<!-- Footer Start -->
<footer class="bg-[#17243A]">
<div class="container">
<div class="grid grid-cols-2 md:grid-cols-4 lg:grid-cols-5 gap-6 pb-16 pt-16">
<div class="col-span-full lg:col-span-2">
<p class="text-white">官方账号</p>
<div>
{
extra.weibo_offical.address ?
<a class="size-8 inline-flex justify-center items-center gap-x-2 text-sm font-semibold rounded-md border border-transparent text-white hover:bg-primary transition-all duration-300" href={extra.weibo_offical.address}>
<Weibo />
</a> : ''
}
{
extra.douyin_offical.address ?
<a class="size-8 inline-flex justify-center items-center gap-x-2 text-sm font-semibold rounded-md border border-transparent text-white hover:bg-primary transition-all duration-300" href={extra.douyin_offical.address}>
<Douyin />
</a> : ''
}
{
extra.baijiahao_offical.address ?
<a class="size-8 inline-flex justify-center items-center gap-x-2 text-sm font-semibold rounded-md border border-transparent text-white hover:bg-primary transition-all duration-300" href={extra.baijiahao_offical.address}>
<BaijiahaoLogo />
</a> : ''
}
{
extra.toutiaohao_offical.address ?
<a class="size-8 inline-flex justify-center items-center gap-x-2 text-sm font-semibold rounded-md border border-transparent text-white hover:bg-primary transition-all duration-300" href={extra.toutiaohao_offical.address}>
<Toutiaohao />
</a> : ''
}
</div>
<div class="mt-6 grid space-y-3">
<p class="text-white">24小时客服热线</p>
<a class="inline-flex items-center gap-x-4 text-gray-300 hover:text-gray-400 transition-all duration-300" href={`tel:${extra.app_phone}`}>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-phone"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z"/></svg>
{extra.app_phone}
</a>
</div>
</div>
<div class="col-span-1">
<h4 class="font-semibold text-gray-100 uppercase">Company</h4>
<div class="mt-6 grid space-y-3">
<p><a class="inline-flex gap-x-2 text-base text-gray-300 hover:text-gray-400 transition-all duration-300" href="/about-us">关于我们</a></p>
<p><a class="inline-flex gap-x-2 text-base text-gray-300 hover:text-gray-400 transition-all duration-300" href="/news">产品新闻</a></p>
<p><a class="inline-flex gap-x-2 text-base text-gray-300 hover:text-gray-400 transition-all duration-300" href="/contact-us">联系我们</a></p>
</div>
</div>
</div>
</div>
<div class="py-4 bg-[#1C2940]">
<!-- 1B283F -->
<div class="container">
<div class="flex justify-between items-center">
<div class="text-base text-white">
<small>
2025© {config.app_name}- <a href="/">{config.app_company}</a></small>
</div>
<div class="copyright text-base col-xl-4 col-md-8 text-white">
<small class="copyright__text">版权所有 © {config.app_company}
。保留一切权利。<a href={config.app_filing_url}>{config.app_filing}</a></small>
</div>
</div>
</div>
</div>
</footer>
<!-- Footer End -->
<!-- Back to top -->
<a href="javascript: void(0);" onclick="topFunction()" id="back-to-top" class="back-to-top fixed text-base rounded-md z-10 bottom-8 right-8 h-8 w-8 text-center bg-primary text-white leading-9 justify-center items-center">
<!-- <i data-lucide="arrow-up" class="h-4 w-4 text-white stroke-2"></i> -->
<img src="/template_3/totop.svg" />
</a>
<!-- Swiper Bundle Js -->
<script is:inline src="/template_3/libs/swiper/swiper-bundle.min.js"></script>
<script is:inline src="/template_3/libs/preline/preline.js"></script>
<!-- Swiper Js -->
<!-- <script is:inline src="../assets/template_3/js/swiper.js"></script> -->
<script is:inline src="/template_3/js/swiper.js"></script>
<!-- Main App Js -->
<script is:inline src="/template_3/js/app.js" ></script>
</body>
</html>

View File

@ -32,9 +32,8 @@ export async function onRequest (context: any, next: any) {
if (!context.locals.is_write) {
context.locals.is_write = 1;
context.locals.template_number = 2;
context.locals.template_config = data;
return context.rewrite('/template/' + context.locals.template_number + context.url.pathname);
return context.rewrite('/template/' + data.app_template + context.url.pathname);
}
return next();

View File

@ -15,7 +15,6 @@ if (!data || code !== 0) {
return Astro.redirect('/404');
}
console.log(data)
---
<Layout title={APP_NAME + data.title} description={data.description} keywords={data.keywords}>
<main class="news-main">

View File

@ -9,7 +9,7 @@ if (!slug) {
return Astro.redirect('/404');
}
const {code, data} = await newsDetail(slug);
const {code, data} = await newsDetail(slug, config.id);
if (!data || code !== 0) {
return Astro.redirect('/404');

View File

@ -0,0 +1,149 @@
---
import Layout from "../../../layouts/Layout_3.astro";
import { getConfig, getExtra } from "../../../../utils/config";
import {
TP2_COLUMN_ABOUT_US,
TP2_COLUMN_ABOUT_US_URL,
TP2_COLUMN_INDEX,
TP2_COLUMN_INDEX_URL,
} from "../../../../utils/const";
const config = getConfig(Astro);
const extra = getExtra(config.app_extra_tag);
const breadcrumb = [
{ title: TP2_COLUMN_INDEX, url: TP2_COLUMN_INDEX_URL },
{ title: TP2_COLUMN_ABOUT_US, url: TP2_COLUMN_ABOUT_US_URL },
];
---
<Layout
title={TP2_COLUMN_ABOUT_US + ` - ${config.app_name}`}
breadcrumb={breadcrumb}
description={`关于我们 - ${config.app_name}`}
keywords={config.app_keywords}
>
<div id="content" class="main" data-site="中国">
<main>
<div>
<!-- 活动与新闻-->
<div class="hcomponent-page-info">
<div class="news-detail-title">
<div class="container-custom fix-p-color">
<h1><span>{extra.about_us.title}{config.app_name}</span></h1>
</div>
</div>
</div>
</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 class="hcomponent-news-detail-content">
<div class="news-detail-box container-custom clearfix">
<div class="news-detail-content">
<Fragment set:html={extra.about_us.content} />
<p style="text-align: right;">{config.app_company}</p>
</div>
</div>
</div>
</div>
</main>
</div>
</Layout>
<style>
.main {
max-width: 1200px;
width: 100%;
box-sizing: border-box;
flex: 1 1 0%;
padding: 5rem;
margin: 0px auto;
padding-top: 5rem;
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 .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;
}
</style>

View File

@ -0,0 +1,206 @@
---
import Layout from "../../../layouts/Layout_3.astro";
import { Image } from "astro:assets";
import { getConfig, getExtra } from "../../../../utils/config";
import {
TP2_COLUMN_CONTACT_US,
TP2_COLUMN_CONTACT_US_URL,
TP2_COLUMN_INDEX,
TP2_COLUMN_INDEX_URL,
} from "../../../../utils/const";
import BaijiahaoLogo from '../../../../public/common/baijiahao.svg'
import Toutiaohao from '../../../../public/common/toutiaohao.svg'
import Douyin from '../../../../public/common/douyin.svg'
import Youxiang from '../../../../public/common/youxiang.svg'
const config = getConfig(Astro);
const extra = getExtra(config.app_extra_tag)
const breadcrumb = [
{ title: TP2_COLUMN_INDEX, url: TP2_COLUMN_INDEX_URL },
{ title: TP2_COLUMN_CONTACT_US, url: TP2_COLUMN_CONTACT_US_URL }
];
// 页面描述
const desc = extra.contact_us.telephone.map(item => item.number).join('; ');
---
<Layout
title={TP2_COLUMN_CONTACT_US + ` - ${config.app_name}`}
description={`${config.app_name}24小时客服电话 - ${desc}`}
keywords={config.app_keywords}
breadcrumb={breadcrumb}
>
<main>
<div class="contact-container">
<h1 style="font-size: 5rem;margin-bottom: 5rem;">{extra.contact_us.title}</h1>
<!-- <Fragment set:html={extra.contact_us.content}/> -->
<section class="list-box">
<h2 class="list-title">在线客服</h2>
<ul>
{
extra.contact_us.telephone.map(e => {
return <li class="list-item">
<a href={`tel:${e.number}`}>
<div class="item-content">
<Image height={50} width={50} src="/template_2/contact-us/hotline.png" alt="联系热线"/>
<div class="txt">
<h3 style="margin-left: 1rem;font-weight: bold;">{e.number}</h3>
<h4 style="margin-left: 1rem;">24小时全国热线</h4>
</div>
</div>
<i class="fas fa-chevron-right"></i>
</a>
</li>
})
}
</ul>
{extra.contact_us.email.length > 0 ? <h2 class="list-title">联系邮箱</h2> : ''}
<ul>
{
extra.contact_us.email.map(e => {
return <li class="list-item">
<a href={`tel:${e.address}`}>
<div class="item-content">
<Image height={50} width={50} src="/template_2/contact-us/youxiang.svg" alt="联系邮箱"/>
<div class="txt">
<h3 style="margin-left: 1rem;font-weight: bold;">{e.address}</h3>
<h4 style="margin-left: 1rem;"></h4>
</div>
</div>
<i class="fas fa-chevron-right"></i>
</a>
</li>
})
}
</ul>
<h2 class="list-title">官方媒体平台</h2>
<ul>
{
extra.weibo_offical.address ?
<li class="list-item">
<a href={extra.weibo_offical.address} target="blank">
<div class="item-content">
<span class="icon-lazy font-ico-weibo" data-name="font-ico-weibo"></span>
<div class="txt">
<h3>{extra.weibo_offical.name}</h3>
</div>
</div>
<i class="fas fa-chevron-right"></i>
</a>
</li> : ''
}
{
extra.gongzhonghao_offical.address ?
<li class="list-item">
<a href={extra.gongzhonghao_offical.address} target="blank">
<div class="item-content">
<span class="icon-lazy font-ico-weixin" data-name="font-ico-weixin"></span>
<div class="txt">
<h3>{extra.gongzhonghao_offical.name}</h3>
</div>
</div>
<i class="fas fa-chevron-right"></i>
</a>
</li> : ''
}
{
extra.baijiahao_offical.address ?
<li class="list-item">
<a href={extra.baijiahao_offical.address} target="blank">
<div class="item-content">
<BaijiahaoLogo class="icon-lazy" />
<div class="txt">
<h3>{extra.baijiahao_offical.name}</h3>
</div>
</div>
<i class="fas fa-chevron-right"></i>
</a>
</li> : ''
}
{
extra.toutiaohao_offical.address ?
<li class="list-item">
<a href={extra.toutiaohao_offical.address} target="blank">
<div class="item-content">
<Toutiaohao class="icon-lazy"/>
<div class="txt">
<h3>{extra.toutiaohao_offical.name}</h3>
</div>
</div>
<i class="fas fa-chevron-right"></i>
</a>
</li> : ''
}
{
extra.douyin_offical.address ?
<li class="list-item">
<a href={extra.douyin_offical.address} target="blank">
<div class="item-content">
<Douyin class="icon-lazy"/>
<div class="txt">
<h3>{extra.douyin_offical.name}</h3>
</div>
</div>
<i class="fas fa-chevron-right"></i>
</a>
</li> : ''
}
</ul>
</section>
</div>
</main>
</Layout>
<style>
.fa-chevron-right:before {
content: ">"
}
h2 {
font-size: 2rem ;
margin-top: 4rem;
margin-bottom: 1rem;
}
h3 {
margin-left: 1rem;
font-weight: bold;
}
h4 {
margin-left: 1rem;
color: #7f7f7f;
}
.icon-lazy {
width: 50px;
height: 50px;
}
.contact-container {
padding-top: 5rem;
}
.list-item {
border-top: 0.01rem solid #d8d8d8;
}
.item-content{
display: flex;
justify-content: center;
}
.txt {
display: flex;
justify-content: center;
align-items: center;
}
.list-box .list-item>a {
padding: 1.5rem;
display: -ms-flexbox;
display: flex;
-ms-flex-pack: justify;
justify-content: space-between;
-ms-flex-align: center;
align-items: center;
/* height: 1.08rem; */
}
</style>

View File

@ -0,0 +1,370 @@
---
import "swiper/swiper-bundle.css";
import Layout from "../../../layouts/Layout_3.astro";
import ImageXiazai from '../../../../public/template_2/xiazai.svg';
import { Image } from 'astro:assets';
import { getConfig, getTp3Extra } from "../../../../utils/config";
import { TP2_COLUMN_ABOUT_US, TP2_COLUMN_INDEX, TP2_COLUMN_INDEX_URL } from "../../../../utils/const";
import { newsIndex } from "../../../../utils/rpc";
const config = getConfig(Astro)
const extra = getTp3Extra(config.app_extra_tag);
const {code, data} = await newsIndex(config.id, 3);
const breadcrumb = [{
title: TP2_COLUMN_INDEX,
url: TP2_COLUMN_INDEX_URL
}]
---
<Layout
title={`${config.app_name}`}
description={config.app_description}
keywords={config.app_keywords}
breadcrumb={breadcrumb}
>
<!-- =========== Hero Section Start =========== -->
<section
class="sc1 relative pt-32 pb-32 overflow-x-hidden from-slate-500/10 bg-[url(../images/home/bg-1.png)] bg-no-repeat bg-cover"
id="home">
<div class="container">
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-2 gap-6 items-center">
<div class="text-sm py-20 px-10">
<span
class="inline-flex py-2 text-lg text-black font-medium items-center justify-center rounded-full">
<i data-lucide="minus"></i> {extra?.sc1?.text1}</span>
<h1 class="md:text-6xl/tight text-4xl text-dark tracking-normal leading-normal font-bold mb-4 mt-6">
{extra?.sc1?.text2} <span class="text-primary"> {config.app_name} </span></h1>
<p class="text-base font-medium text-muted leading-7 mt-5 capitalize">{extra?.sc1?.text3}</p>
</div>
<div class="mt-4 pt-2 sm:mt-0 sm:pt-0 relative">
<img src="template_3/furniture.png" alt="" class="h-[600px] max-w-full mx-auto">
<div class="absolute bottom-3/4 -end-14 2xl:end-8 hidden xl:block">
<div class="flex items-center gap-2 p-2 pe-6 rounded-full bg-white shadow-2xl">
<div class="rounded-full bg-primary h-9 w-9 items-center justify-center flex">
<Image src="/template_3/book.svg" class="h-6 w-6 text-white" width={100} height={100} alt="客服"/>
</div>
<div class="">
<h6 class="text-base font-medium text-default-900">{extra?.sc1?.text5}</h6>
</div>
</div>
</div>
<div class="absolute bottom-28 start-6 hidden xl:block">
<div class="flex items-center gap-2 p-2 pe-6 rounded-full bg-white shadow-2xl">
<div class="rounded-full bg-primary h-9 w-9 items-center justify-center flex">
<Image src="/template_3/kefu.svg" class="h-6 w-6 text-white" width={100} height={100} alt="客服"/>
</div>
<div class="">
<h6 class="text-base font-medium text-default-900">{extra?.sc1?.text4}</h6>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Services Start sc2 -->
<section id="services" class="py-20">
<div class="container">
<div class="max-w-2xl mx-auto text-center">
<span
class="text-sm text-primary uppercase font-semibold tracking-wider text-default-950">{extra?.sc2?.text1}</span>
<h2 class="text-3xl md:text-4xl/tight font-semibold text-black mt-4">{extra?.sc2?.text2}</h2>
<p class="text-base font-medium mt-4 text-muted">{extra?.sc2?.text3}</p>
</div>
<div
class="grid lg:grid-cols-4 md:grid-cols-2 grid-cols-1 gap-x-3 gap-y-6 md:gap-y-12 lg:gap-y-24 md:pt-20 pt-12">
<div class="text-center">
<div class="flex items-center justify-center">
<div
class="items-center justify-center flex bg-primary/10 rounded-[49%_80%_40%_90%_/_50%_30%_70%_80%] h-20 w-20 border">
<Image src={`/template_3/sc2_1.svg`} height={100} width={100} alt="pic" class="h-10 w-10 text-primary" />
</div>
</div>
<h1 class="text-xl font-semibold pt-4">{extra?.sc2?.text4}</h1>
<p class="text-base text-gray-600 mt-2">{extra?.sc2?.text5}</p>
</div>
<div class="text-center">
<div class="flex items-center justify-center">
<div
class="items-center justify-center flex bg-primary/10 rounded-[49%_80%_40%_90%_/_50%_30%_70%_80%] h-20 w-20 border">
<Image src={`/template_3/sc2_2.svg`} height={100} width={100} alt="pic" class="h-10 w-10 text-primary" />
</div>
</div>
<h1 class="text-xl font-semibold pt-4">{extra?.sc2?.text6}</h1>
<p class="text-base text-gray-600 mt-2">{extra?.sc2?.text7}</p>
</div>
<div class="text-center">
<div class="flex items-center justify-center">
<div
class="items-center justify-center flex bg-primary/10 rounded-[49%_80%_40%_90%_/_50%_30%_70%_80%] h-20 w-20 border">
<Image src={`/template_3/sc2_3.svg`} height={100} width={100} alt="pic" class="h-10 w-10 text-primary" />
</div>
</div>
<h1 class="text-xl font-semibold pt-4">{extra?.sc2?.text8}</h1>
<p class="text-base text-gray-600 mt-2">{extra?.sc2?.text9}</p>
</div>
<div class="text-center">
<div class="flex items-center justify-center">
<div
class="items-center justify-center flex bg-primary/10 rounded-[49%_80%_40%_90%_/_50%_30%_70%_80%] h-20 w-20 border">
<Image src={`/template_3/sc2_4.svg`} height={100} width={100} alt="pic" class="h-10 w-10 text-primary" />
</div>
</div>
<h1 class="text-xl font-semibold pt-4">{extra?.sc2?.text10}</h1>
<p class="text-base text-gray-600 mt-2">{extra?.sc2?.text11}</p>
</div>
<div class="text-center">
<div class="flex items-center justify-center">
<div
class="items-center justify-center flex bg-primary/10 rounded-[49%_80%_40%_90%_/_50%_30%_70%_80%] h-20 w-20 border">
<Image src={`/template_3/sc2_5.svg`} height={100} width={100} alt="pic" class="h-10 w-10 text-primary" />
</div>
</div>
<h1 class="text-xl font-semibold pt-4">{extra?.sc2?.text12}</h1>
<p class="text-base text-gray-600 mt-2">{extra?.sc2?.text13}</p>
</div>
<div class="text-center">
<div class="flex items-center justify-center">
<div
class="items-center justify-center flex bg-primary/10 rounded-[49%_80%_40%_90%_/_50%_30%_70%_80%] h-20 w-20 border">
<Image src={`/template_3/sc2_6.svg`} height={100} width={100} alt="pic" class="h-10 w-10 text-primary" />
</div>
</div>
<h1 class="text-xl font-semibold pt-4">{extra?.sc2?.text14}</h1>
<p class="text-base text-gray-600 mt-2">{extra?.sc2?.text15}
</p>
</div>
<div class="text-center">
<div class="flex items-center justify-center">
<div
class="items-center justify-center flex bg-primary/10 rounded-[49%_80%_40%_90%_/_50%_30%_70%_80%] h-20 w-20 border">
<Image src={`/template_3/sc2_7.svg`} height={100} width={100} alt="pic" class="h-10 w-10 text-primary" />
</div>
</div>
<h1 class="text-xl font-semibold pt-4">{extra?.sc2?.text16}</h1>
<p class="text-base text-gray-600 mt-2">{extra?.sc2?.text17}</p>
</div>
<div class="text-center">
<div class="flex items-center justify-center">
<div
class="items-center justify-center flex bg-primary/10 rounded-[49%_80%_40%_90%_/_50%_30%_70%_80%] h-20 w-20 border">
<Image src={`/template_3/sc2_8.svg`} height={100} width={100} alt="pic" class="h-10 w-10 text-primary" />
</div>
</div>
<h1 class="text-xl font-semibold pt-4">{extra?.sc2?.text18}</h1>
<p class="text-base text-gray-600 mt-2">{extra?.sc2?.text19}</p>
</div>
</div>
</div>
</section>
<!-- Services End -->
<!-- Feature Start -->
<section id="features" class="py-20">
<div class="container">
<div class="grid lg:grid-cols-2 items-center gap-6">
<div class="flex items-center">
<img src="template_3/feature.jpg" class="h-[650px] rounded-xl mx-auto" alt="feature section">
</div>
<div class="lg:ms-5 ms-8">
<span class="text-sm text-primary uppercase font-semibold tracking-wider text-default-950">{extra?.sc3?.text1}</span>
<h2 class="text-3xl md:text-4xl/tight font-semibold text-black mt-4">{extra?.sc3?.text2}</h2>
<hr class="border-gray-200 my-6">
</hr>
<div class="flex items-start gap-5">
<div>
<div
class="w-12 h-12 rounded-full border border-dashed border-primary/40 bg-primary/10 flex items-center justify-center">
<Image src={`/template_3/sc3_1.svg`} height={24} width={24} alt="pic" class="text-base text-blue-600" />
</div>
</div>
<div>
<h4 class="text-xl font-semibold">{extra?.sc3?.text3}</h4>
<p class="text-base font-normal text-gray-500 mt-2">{extra?.sc3?.text4}</p>
</div>
</div>
<div class="flex items-start gap-5 mt-8">
<div>
<div
class="w-12 h-12 rounded-full border border-dashed border-primary/40 bg-primary/10 flex items-center justify-center">
<Image src={`/template_3/sc3_2.svg`} height={24} width={24} alt="pic" class="text-base text-blue-600" />
</div>
</div>
<div>
<h4 class="text-xl font-semibold">{extra?.sc3?.text5}</h4>
<p class="text-base font-normal text-gray-500 mt-2">{extra?.sc3?.text6}</p>
</div>
</div>
<div class="flex items-start gap-5 mt-8">
<div>
<div
class="w-12 h-12 rounded-full border border-dashed border-primary/40 bg-primary/10 flex items-center justify-center">
<Image src={`/template_3/sc3_3.svg`} height={24} width={24} alt="pic" class="text-base text-blue-600" />
</div>
</div>
<div>
<h4 class="text-xl font-semibold">{extra?.sc3?.text7}</h4>
<p class="text-base font-normal text-gray-500 mt-2">{extra?.sc3?.text8}</p>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Feature End -->
<!-- About Start -->
<section id="about" class="py-20">
<div class="container">
<div class="grid lg:grid-cols-2 items-center gap-6">
<div class="lg:ms-5 ms-8">
<div>
<span
class="text-sm text-primary uppercase font-semibold tracking-wider text-default-950">{extra?.sc5?.text1}</span>
</div>
<h2 class="text-3xl md:text-4xl/tight font-semibold text-black mt-4">{extra?.sc5?.text2}</h2>
<p class="text-base font-normal text-muted mt-6">{extra?.sc5?.text3}</p>
</div>
<div class="flex items-center">
<img src="template_3/feature-iphone.png" class="h-[600px] rounded-xl mx-auto"
alt="feature-image">
</div>
</div>
</div>
</section>
<!-- About End -->
<!-- Faqs Start -->
<!-- Faqs End -->
<!-- Testimonial Start -->
<section id="testimonial" class="py-20">
<div class="container">
<div class="">
<div class="text-center max-w-xl mx-auto">
<span class="text-sm text-primary uppercase font-semibold tracking-wider text-default-950">评价</span>
<h2 class="text-3xl md:text-4xl/tight font-semibold mt-4">获得广泛好评</h2>
</div>
</div>
<div class="grid grid-cols-1 gap-6 mt-14 items-center">
<div class="relative">
<div class="swiper testi-swiper rounded-md relative px-1">
<div class="swiper-wrapper">
{
extra?.sc7?.text1?.map(item => {
return <div class="swiper-slide">
<div class="p-6 rounded-xl border border-default-200">
<h3 class="text-xl font-semibold text-default-950">{item?.title}</h3>
<p class="text-base font-normal mt-4 mb-4 text-muted">
{item?.desc}
</p>
</div>
</div>
})
}
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Testimonial End -->
<!-- Client Start -->
<section class="py-20 bg-gray-50">
<div class="container relative">
<div class="">
<div class="text-center max-w-xl mx-auto">
<h3 class="text-3xl md:text-4xl/tight font-semibold">{extra?.sc8?.text1}</h3>
</div>
</div>
<div class="grid md:grid-cols-6 grid-cols-2 justify-center gap-[30px] mt-14">
{
extra?.sc8?.logo.map(item => {
return <div class="mx-auto py-4">
<img src={item.url} class="h-20" alt="">
</div>
})
}
</div>
</div>
</section>
<!-- Client Start -->
<!-- Blog Start -->
<section id="blog" class="py-20">
<div class="container">
<div class="">
<div class="text-center max-w-xl mx-auto">
<span
class="text-sm text-primary uppercase font-semibold tracking-wider text-default-950">{extra?.sc9?.text1}</span>
<h2 class="text-3xl md:text-4xl/tight font-semibold mt-4">{extra?.sc9?.text2}</h2>
</div>
</div>
<div class="grid lg:grid-cols-3 md:grid-cols-2 grid-cols-1 gap-6 mt-14 items-center">
{
data.map(item => {
return <div class="bg-white rounded-xl border">
<div class="relative">
<img style="aspect-ratio: 4 / 3;object-fit:cover" class="rounded-t-xl" src={item.cover} alt="">
</div>
<div class="flex py-6 px-6">
<div>
<a href={`/news/${item.id}`} class="text-xl text-black font-semibold line-clamp-2">{item.title}</a>
<p class="mt-4 mb-6 text-gray-500 leading-6 desc">{item.description}</p>
<div class="flex items-center justify-between gap-3 mt-4">
<p class="flex font-medium text-muted">{item.created_at}</p>
</div>
</div>
</div>
</div>
})
}
</div>
</div>
</section>
<!-- Blog End -->
</Layout>
<style>
.desc {
-webkit-line-clamp: 1;
overflow: hidden;
width: 100%;
display: -webkit-box;
-webkit-box-orient: vertical;
}
</style>

View File

@ -0,0 +1,224 @@
---
import Layout from '../../../layouts/Layout_3.astro';
import { newsIndex } from '../../../../utils/rpc';
import { getConfig } from '../../../../utils/config';
import { TP2_COLUMN_NEWS, TP2_COLUMN_NEWS_URL, TP2_COLUMN_INDEX, TP2_COLUMN_INDEX_URL } from '../../../../utils/const';
const config = getConfig(Astro)
const {code, data} = await newsIndex(config.id);
---
<Layout
title={TP2_COLUMN_NEWS + `- ${config.app_name}`}
description={`新闻专栏 - ${config.app_name}`}
keywords={config.app_keywords}
>
<main class="v4 main page-news">
<div class="news-list-component">
<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}`} title={news.title} 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;
}
@media only screen and (max-width: 767.98px) {
.columns-name {
font-size: 2rem;
padding: 1rem;
}
}
.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,336 @@
---
import Layout from '../../../../layouts/Layout_3.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('/500');
}
const {code, data} = await newsDetail(slug, config.id);
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>
<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>
</div>
<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>
main {
margin-top: 5rem;
}
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>

1
src/styles/template_3/icons.min.css vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
import type { IWebsiteConfig } from "./rpc";
import {EXTRA_DEFAULT, EXTRA_HONGTIXIANYUE, EXTRA_MINGWUZHITANG, EXTRA_ZHISHIHUISHENG} from './extra.ts'
import {EXTRA_DEFAULT, EXTRA_HONGTIXIANYUE, EXTRA_MINGWUZHITANG, EXTRA_ZHISHIHUISHENG, TP3_DEFAULT, TP3_MINGWUZHITANG} from './extra.ts'
export function getConfig(Astro: any):IWebsiteConfig
{
@ -9,14 +9,25 @@ export function getConfig(Astro: any):IWebsiteConfig
// 取默认的配置
export function getExtra(extraTag: string = '')
{
console.log(extraTag)
if (extraTag == 'HONGTIXIANYUE') {
return EXTRA_HONGTIXIANYUE;
} else if (extraTag == 'ZHISHIHUISHENG') {
return EXTRA_ZHISHIHUISHENG;
} else if (extraTag == 'MINGWUZHITANG') {
return EXTRA_MINGWUZHITANG;
} else if (extraTag === 'TP3_MINGWUZHITANG') {
return TP3_MINGWUZHITANG
}
return EXTRA_DEFAULT;
}
// 取默认的配置
export function getTp3Extra(extraTag: string = '')
{
if (extraTag === 'TP3_MINGWUZHITANG') {
return TP3_MINGWUZHITANG
}
return TP3_DEFAULT;
}

File diff suppressed because one or more lines are too long

View File

@ -31,11 +31,11 @@ export interface InewsIndex {
created_at: string
updated_at: string
}
export async function newsIndex(websiteId:number = 0):Promise<result<InewsIndex[]>>{
console.log(websiteId)
export async function newsIndex(websiteId:number = 0, limit:number = 10):Promise<result<InewsIndex[]>>{
const client = getRpcClient()
const result = await client.call('news/index', {
id:websiteId
id:websiteId,
limit: limit
})
return result
@ -63,10 +63,11 @@ export interface InewsDetail {
title: string
}
}
export async function newsDetail(id:string):Promise<result<InewsDetail>>{
export async function newsDetail(id:string, app_id:number):Promise<result<InewsDetail>>{
const client = getRpcClient()
const result = await client.call('news/view', {
id:id
id:id,
app_id:app_id
})
return result
@ -81,6 +82,7 @@ export interface IWebsiteConfig {
app_description: string
app_keywords: string
app_company: string
app_template: string
app_logo: string
app_favicon: string
app_copyright: string