update
1
public/common/baijiahao.svg
Normal 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
@ -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 |
1
public/common/toutiaohao.svg
Normal file
After Width: | Height: | Size: 9.7 KiB |
1
public/common/weibo.svg
Normal 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 |
1
public/template_3/book.svg
Normal 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 |
1
public/template_3/client/1plus.svg
Normal 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 |
1
public/template_3/client/huawei.svg
Normal 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 |
1
public/template_3/client/meizu.svg
Normal 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 |
1
public/template_3/client/oppo.svg
Normal 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 |
1
public/template_3/client/vivo.svg
Normal 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 |
1
public/template_3/client/xiaomi.svg
Normal 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 |
1
public/template_3/download.svg
Normal 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 |
BIN
public/template_3/feature-iphone.jpg
Normal file
After Width: | Height: | Size: 57 KiB |
BIN
public/template_3/feature-iphone.png
Normal file
After Width: | Height: | Size: 68 KiB |
BIN
public/template_3/feature-iphone_bak.png
Normal file
After Width: | Height: | Size: 91 KiB |
BIN
public/template_3/feature.jpg
Normal file
After Width: | Height: | Size: 33 KiB |
BIN
public/template_3/feature_bak.jpg
Normal file
After Width: | Height: | Size: 317 KiB |
BIN
public/template_3/furniture.png
Normal file
After Width: | Height: | Size: 63 KiB |
BIN
public/template_3/furniture_1.png
Normal file
After Width: | Height: | Size: 60 KiB |
BIN
public/template_3/google.png
Normal file
After Width: | Height: | Size: 8.3 KiB |
BIN
public/template_3/home/bg-1.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
public/template_3/home/parallax.png
Normal file
After Width: | Height: | Size: 1.6 MiB |
258
public/template_3/js/app.js
Normal 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();
|
28
public/template_3/js/swiper.js
Normal 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,
|
||||
},
|
||||
}
|
||||
});
|
1
public/template_3/kefu.svg
Normal 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 |
2
public/template_3/libs/gumshoejs/gumshoe.polyfills.min.js
vendored
Normal 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}}));
|
1
public/template_3/libs/jarallax/jarallax.min.css
vendored
Normal 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}
|
6
public/template_3/libs/jarallax/jarallax.min.js
vendored
Normal file
12
public/template_3/libs/lucide/umd/lucide.min.js
vendored
Normal file
161
public/template_3/libs/preline/preline.js
Normal file
13
public/template_3/libs/swiper/swiper-bundle.min.css
vendored
Normal file
13
public/template_3/libs/swiper/swiper-bundle.min.js
vendored
Normal file
BIN
public/template_3/logo.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
1
public/template_3/menu-button.svg
Normal 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 |
1
public/template_3/sc2_1.svg
Normal 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 |
1
public/template_3/sc2_2.svg
Normal 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 |
1
public/template_3/sc2_3.svg
Normal 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 |
1
public/template_3/sc2_4.svg
Normal 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 |
1
public/template_3/sc2_5.svg
Normal 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 |
1
public/template_3/sc2_6.svg
Normal 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 |
1
public/template_3/sc2_7.svg
Normal 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 |
1
public/template_3/sc2_8.svg
Normal 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 |
1
public/template_3/sc3_1.svg
Normal 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 |
1
public/template_3/sc3_2.svg
Normal 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 |
1
public/template_3/sc3_3.svg
Normal 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
After Width: | Height: | Size: 5.5 KiB |
1
public/template_3/totop.svg
Normal 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 |
BIN
public/template_3/user/client-03.jpg
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
public/template_3/user/client-04.jpg
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
public/template_3/user/client-05.jpg
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
public/template_3/user/client-07.jpg
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
public/template_3/vector/vector-1.png
Normal file
After Width: | Height: | Size: 7.3 KiB |
BIN
public/template_3/vector/vector-2.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
public/template_3/vector/vector-3.png
Normal file
After Width: | Height: | Size: 22 KiB |
259
src/assets/template_3/js/app.js
Normal 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();
|
28
src/assets/template_3/js/swiper.js
Normal 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,
|
||||
},
|
||||
}
|
||||
});
|
2
src/assets/template_3/libs/gumshoejs/gumshoe.polyfills.min.js
vendored
Normal 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}}));
|
1
src/assets/template_3/libs/jarallax/jarallax.min.css
vendored
Normal 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}
|
6
src/assets/template_3/libs/jarallax/jarallax.min.js
vendored
Normal file
12
src/assets/template_3/libs/lucide/umd/lucide.min.js
vendored
Normal file
161
src/assets/template_3/libs/preline/preline.js
Normal file
13
src/assets/template_3/libs/swiper/swiper-bundle.min.css
vendored
Normal file
13
src/assets/template_3/libs/swiper/swiper-bundle.min.js
vendored
Normal 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
@ -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>
|
@ -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();
|
||||
|
@ -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">
|
||||
|
@ -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');
|
||||
|
149
src/pages/template/3/about-us.astro
Normal 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>
|
206
src/pages/template/3/contact-us.astro
Normal 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>
|
370
src/pages/template/3/index.astro
Normal 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>
|
224
src/pages/template/3/news.astro
Normal 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>
|
336
src/pages/template/3/news/[...slug].astro
Normal 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
2171
src/styles/template_3/style.css
Normal 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;
|
||||
}
|
224
utils/extra.ts
12
utils/rpc.ts
@ -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
|
||||
|