@jx3box/jx3box-vue3-ui 1.1.16 → 1.1.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ <svg fill="#fff" t="1772286060225" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7732" width="64" height="64"><path d="M615.878882 177.494507l42.303478-61.521169c1.811252-2.619664 1.146103-6.252401-1.473561-8.063653l-1.054005-0.726547c-2.619664-1.821485-6.231935-1.146103-8.043187 1.473561l-43.521213 63.291488c-28.427446-12.361539-60.139705-19.268856-93.601818-19.268856-31.753191 0-61.950957 6.221702-89.232301 17.426905l-41.587164-60.477396c-1.801019-2.619664-5.423523-3.284813-8.043187-1.473561l-1.054005 0.726547c-2.619664 1.811252-3.284813 5.443989-1.483794 8.073886l40.215934 58.461483c-63.23009 30.300097-108.664885 88.075964-117.915573 156.299789l438.20018 0C720.552873 265.017886 676.919097 208.296023 615.878882 177.494507zM418.217057 265.621637c-12.054547 0-21.837354-9.813506-21.837354-21.908986 0-12.095479 9.782807-21.898753 21.837354-21.898753 12.06478 0 21.837354 9.803273 21.837354 21.898753C440.054411 255.80813 430.281837 265.621637 418.217057 265.621637zM606.710059 265.621637c-12.054547 0-21.837354-9.813506-21.837354-21.908986 0-12.095479 9.782807-21.898753 21.837354-21.898753 12.06478 0 21.837354 9.803273 21.837354 21.898753C628.547413 255.80813 618.774839 265.621637 606.710059 265.621637z" p-id="7733"></path><path d="M260.904195 419.506423l0 179.446975c0 30.760584-19.596314 55.933917-43.562145 55.933917l-9.680477 0c-23.955598 0-43.562145-25.173332-43.562145-55.933917l0-179.446975c0-30.760584 19.606547-55.923684 43.562145-55.923684l9.680477 0C241.307881 363.582739 260.904195 388.745838 260.904195 419.506423z" p-id="7734"></path><path d="M859.896478 420.570661l0 179.446975c0 30.770817-19.596314 55.933917-43.562145 55.933917l-9.680477 0c-23.955598 0-43.562145-25.163099-43.562145-55.933917l0-179.446975c0-30.760584 19.606547-55.923684 43.562145-55.923684l9.680477 0C840.300164 364.646977 859.896478 389.810077 859.896478 420.570661z" p-id="7735"></path><path d="M732.934878 360.830045l0 354.074178c0 24.579815-20.046568 44.687782-44.554752 44.687782l-36.746926 0 0 102.320387c0 30.760584-19.606547 55.923684-43.562145 55.923684l-9.680477 0c-23.955598 0-43.562145-25.163099-43.562145-55.923684l0-102.320387-81.864496 0 0 101.143585c0 30.760584-19.596314 55.933917-43.562145 55.933917l-9.680477 0c-23.955598 0-43.562145-25.173332-43.562145-55.933917l0-101.143585-40.062438 0c-24.508183 0-44.554752-20.107967-44.554752-44.687782l0-354.074178L732.934878 360.830045z" p-id="7736"></path></svg>
@@ -0,0 +1 @@
1
+ <svg fill="#fff" t="1772286133953" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9726" width="64" height="64"><path d="M512 778.688a348.032 348.032 0 0 1-139.072-27.712 345.472 345.472 0 0 1-110.08-75.52 366.336 366.336 0 0 1-73.728-113.664 377.664 377.664 0 0 1-26.112-140.48c0-49.664 8.704-96.192 26.112-139.52a352 352 0 0 1 73.728-113.664 337.984 337.984 0 0 1 110.08-76.416A348.032 348.032 0 0 1 512 64c49.792 0 95.808 9.216 138.112 27.712a335.36 335.36 0 0 1 111.04 76.416 339.84 339.84 0 0 1 72.832 113.728c18.048 43.264 27.072 89.792 27.072 139.52 0 49.6-9.024 96.448-27.072 140.416a353.024 353.024 0 0 1-72.832 113.664 342.72 342.72 0 0 1-111.04 75.52A341.376 341.376 0 0 1 512 778.688z m0-122.304c31.104 0 60.032-5.76 86.784-17.216 27.392-11.52 51.008-27.392 70.912-47.744 20.544-20.416 36.416-44.928 47.616-73.6 11.84-29.312 17.728-61.44 17.728-96.512a248.32 248.32 0 0 0-17.728-95.552 208.128 208.128 0 0 0-47.616-74.496 212.864 212.864 0 0 0-70.912-47.808A217.984 217.984 0 0 0 512 186.304c-31.104 0-60.352 5.76-87.68 17.152-26.816 11.52-50.432 27.392-70.976 47.808a226.432 226.432 0 0 0-47.616 74.496 260.544 260.544 0 0 0-16.768 95.552c0 35.072 5.632 67.2 16.768 96.512 11.84 28.672 27.712 53.184 47.616 73.6 20.48 20.352 44.16 36.288 70.912 47.744 27.392 11.52 56.64 17.216 87.744 17.216zM759.04 843.392H257.664V960h501.248v-116.608z" p-id="9727"></path></svg>
@@ -0,0 +1 @@
1
+ <svg fill="#fff" t="1772286026018" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6706" width="64" height="64"><path d="M849.124 704.896c-1.04 3.158-17.3 59.873-57.25 118.191-34.578 50.306-70.333 101.019-126.803 101.91-55.533 0.975-73.303-33.136-136.707-33.136-63.324 0-83.23 32.245-135.713 34.111-54.255 2.221-96.004-54.951-130.712-105.011-70.935-102.55-125.553-290.6-52.301-416.626 36.04-63.055 100.82-103.136 171.364-104.231 53.161-1.005 103.74 36.012 136.029 36.012 33.171 0 94.357-44.791 158.906-38.09 27.026 1.152 102.622 11.299 151.328 81.892-3.832 2.607-90.452 53.724-89.487 157.76 1.302 125.597 110.174 166.79 111.346 167.218M633.697 230.75c29.108-35.506 48.235-84.314 43.203-132.785-41.56 1.63-92.197 27.6-122.292 62.897-26.609 30.794-50.062 80.362-43.52 128.27 46.177 2.805 93.657-24.182 122.609-58.382" p-id="6707"></path></svg>
@@ -0,0 +1,5 @@
1
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" width="256px" height="256px" viewBox="0 0 256 256">
2
+ <g>
3
+ <path fill="#ffffff" class="fil0" d="M129.254 5.842l102.93 59.427 -31.87 18.4 -0.982 -0.566c0.994,-2.975 -0.028,-5.876 -2.019,-8.167l-4.238 -4.874 -4.875 -4.238c-4.609,-4.007 -11.22,-2.951 -13.087,3.295l-45.859 -26.476 -48.092 27.766c-3.008,-2.576 -6.243,-4.596 -7.711,-5.336 0.556,3.007 1.122,5.906 1.436,8.959l-16.692 9.637 -31.87 -18.4 102.929 -59.427zm106.746 66.036l0 118.854 -102.929 59.426 0 -36.801 71.059 -41.026 0 -82.052 31.87 -18.401zm-110.561 178.28l-102.93 -59.426 0 -118.854 31.87 18.401 0 38.385c-3.301,1.009 -6.634,2.304 -9.941,3.888 3.476,1.394 6.816,2.952 9.941,4.768l0 35.011 13.63 7.87c-0.448,5.196 -0.681,10.447 -0.884,15.81 7.698,-0.047 17.263,-0.298 24.365,-2.254l33.949 19.6 0 36.801zm-51.799 -60.661c0.616,-12.288 0.824,-17.667 6.46,-25.262 5.453,5.878 11.556,10.552 18.453,13.546 1.514,0.657 3.062,1.231 4.644,1.718 -10.202,9.114 -15.093,9.273 -29.557,9.998zm55.206 -82.269c-1.804,1.186 -3.492,2.571 -4.996,4.101 -2.432,2.476 -4.35,5.302 -5.436,8.228l6.691 -6.474c1.381,-1.335 2.902,-4.048 3.741,-5.855zm15.54 -14.454c-2.664,0.429 -4.875,1.064 -6.833,1.861 2.112,0.623 4.007,1.195 6.817,2.037 0.006,-1.3 0.011,-2.599 0.016,-3.898zm15.213 -7.165l1.942 0.821 1.516 -1.49c-2.118,-1 -4.351,-1.885 -6.694,-2.647l3.236 3.316zm-7.44 -4.519c-3.687,-0.918 -7.615,-1.549 -11.775,-1.863 2.509,-1.954 8.004,-2.992 11.839,-3.871 -6.24,-2.525 -17.137,-2.863 -26.058,-0.017 -0.495,1.506 -1.483,3.868 -2.685,4.952 -1.586,1.43 -3.063,2.694 -4.373,3.915 10.1,-4.479 20.923,-4.799 31.527,-1.855l1.525 -1.261zm-70.059 -0.501c1.213,7.898 -1.998,20.612 -2.61,22.231 -0.613,1.618 -1.421,3.479 -4.084,10.137 -2.664,6.658 -2.451,19.463 -0.66,23.5 -4.342,-3.055 -9.693,-4.784 -14.795,-2.94 8.582,4.379 13.448,14.094 19.147,21.551 13.089,17.129 29.219,25.133 49.926,19.37 10.231,-2.847 25.104,-22.701 16.335,-30.342 -15.181,8.569 -31.513,-2.404 -32.155,-19.114 -0.467,-12.171 12.786,-24.526 25.65,-26.107 -5.249,-1.572 -7.043,-2.387 -13.788,-1.313 6.068,-4.449 10.642,-7.967 21.017,-8.998 0.637,-1.192 1.667,-2.01 2.687,-2.853 -12.985,-3.363 -31.961,-2.924 -48.429,18.886 4.904,-10.82 8.443,-15.182 20.698,-27.127 3.233,-3.151 2.587,-7.771 2.183,-10.966 -3.448,5.663 -9.754,8.745 -18.349,12.542 -6.518,2.879 -12.428,7.647 -16.78,13.669 -1.091,-4.665 -2.175,-8.865 -5.993,-12.126zm62.075 89.198c1.551,-0.64 3.084,-1.321 4.608,-2.046 -4.35,7.066 -14.86,14.943 -33.852,17.435 20.304,5.345 39.698,2.31 51.914,-10.359 -0.979,1.719 -1.998,3.546 -3.118,5.174 14.984,-8.658 34.487,-34.111 20.514,-58.638 2.36,1.92 4.335,4.253 6.008,7.432 0.11,-11.661 -3.429,-22.244 -10.167,-30.625l-3.947 4.018 7.299 7.124 -5.446 6.584c-2.667,3.225 -4.416,3.231 -7.72,3.242l-4.616 0.018c-0.087,1.544 -0.742,2.979 -1.882,4.027l-0.072 3.376c-0.069,3.225 -1.915,6.394 -5.122,7.359l0.001 0.005c-3.864,1.15 -7.022,3.497 -9.786,6.353 1.943,1.713 3.186,3.805 3.841,6.157 1.06,3.809 0.418,8.087 -1.322,12.281 -1.663,4.008 -4.251,7.851 -7.135,11.083zm-25.774 -43.979l9.782 -9.463c1.993,-1.929 4.901,-6.745 5.964,-10.318 0.226,-0.761 1.197,-1.434 2.541,-1.463l6.485 -0.139 0.357 -1.122c0.196,-0.616 0.459,-0.706 1.011,-0.709l4.176 -0.02c0.213,-0.001 0.378,-0.187 0.379,-0.39l0.037 -9.184c0.007,-1.797 -0.026,-2.719 1.393,-3.893l2.944 -2.433 7.412 7.594 18.945 -18.61 1.185 -4.634c0.463,-1.81 1.741,-1.749 3.146,-0.528l4.538 3.945 3.945 4.538c1.22,1.405 1.282,2.683 -0.528,3.146l-4.634 1.185 -18.611 18.945 7.595 7.412 -2.434 2.943c-1.173,1.42 -2.096,1.387 -3.892,1.394l-9.184 0.037c-0.203,0 -0.389,0.166 -0.39,0.379l-0.02 4.176c-0.003,0.552 -0.093,0.815 -0.709,1.011l-1.122 0.358 -0.139 6.484c-0.029,1.344 -0.703,2.315 -1.463,2.541 -3.573,1.063 -8.389,3.971 -10.318,5.964l-5.142 5.316c-5.88,2.918 -11.824,2.547 -17.096,-2.205 -3.029,-2.731 -5.197,-6.561 -5.943,-10.779 -0.091,-0.512 -0.161,-1.005 -0.21,-1.478z"/>
4
+ </g>
5
+ </svg>
@@ -0,0 +1 @@
1
+ <svg fill="#fff" t="1772286095811" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8719" width="64" height="64"><path d="M512 981.333333a466.261333 466.261333 0 0 1-331.861333-137.472A466.218667 466.218667 0 0 1 42.666667 512a466.218667 466.218667 0 0 1 137.472-331.861333A466.261333 466.261333 0 0 1 512 42.666667a466.261333 466.261333 0 0 1 331.861333 137.472A466.261333 466.261333 0 0 1 981.333333 512a466.261333 466.261333 0 0 1-137.472 331.861333A466.261333 466.261333 0 0 1 512 981.333333zM361.514667 470.101333a73.429333 73.429333 0 0 0-28.672 6.912c-66.432 29.013333-104.32 70.229333-106.666667 116.053334a167.594667 167.594667 0 0 0 157.866667 180.053333h5.717333a172.8 172.8 0 0 0 111.402667-44.501333 151.978667 151.978667 0 0 0 54.442666-103.253334c1.792-50.517333 1.450667-102.4 1.109334-152.277333v-0.682667c0-19.797333-0.256-40.32-0.256-60.373333a72.533333 72.533333 0 0 1 69.973333-78.506667 140.032 140.032 0 0 1 18.005333-1.194666 71.808 71.808 0 0 1 73.344 46.464c17.834667 44.629333-14.805333 70.4-45.226666 87.893333a111.573333 111.573333 0 0 0-23.893334 14.506667c-15.189333 12.501333-27.989333 26.837333-18.773333 46.933333a38.4 38.4 0 0 0 37.546667 22.826667 77.184 77.184 0 0 0 14.464-1.493334 149.034667 149.034667 0 0 0 107.477333-98.645333 148.096 148.096 0 0 0-18.688-143.701333 178.261333 178.261333 0 0 0-133.802667-58.368 168.874667 168.874667 0 0 0-54.784 8.874666 149.333333 149.333333 0 0 0-107.52 151.850667c-0.853333 64.896-0.853333 128 0 192.853333a73.770667 73.770667 0 0 1-50.346666 81.066667 116.992 116.992 0 0 1-38.144 6.912 72.021333 72.021333 0 0 1-68.522667-43.605333 66.389333 66.389333 0 0 1-4.693333-52.437334 87.082667 87.082667 0 0 1 50.773333-44.8l1.664-0.725333c14.464-6.4 30.805333-13.696 35.797333-27.093333a35.072 35.072 0 0 0-3.370666-27.648 39.125333 39.125333 0 0 0-36.224-23.893334z" p-id="8720"></path></svg>
@@ -0,0 +1,7 @@
1
+ <svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200">
2
+ <g>
3
+ <path d="M76.53,105.13c-10.22-.3-9,6.85-9.06,14.53.62,4.68-2.24,12.43,8.5,12.5,9.93,0,9.51-6.57,9.41-13.14S86.51,105.42,76.53,105.13Z" style="fill: #0092f3"/>
4
+ <path d="M124.53,105.17c-10.29-.64-9.33,6.57-9.35,13.72.55,5.43-2.17,13.22,8.54,13.26,9.19,0,9-6.26,8.6-12.34C131.93,114,135.12,105.84,124.53,105.17Z" style="fill: #0092f3"/>
5
+ <path d="M153.1,77.55A78,78,0,0,0,113.68,56c-.76-.17-1.43-.35-2.05-.54-5.36-2-6.87-4.39-2.9-9,1.31-1.32,2.83-2.79,4.19-4.17A22.87,22.87,0,0,0,115,40c.27-.35.46-.69.69-1s.48-.72.69-1.1a15,15,0,0,0,.87-1.75l.08-.17a16.71,16.71,0,0,0-.82-14.56c-.13-.3-.29-.6-.43-.91,0-.08-.08-.15-.13-.25s-.12-.15-.17-.25A17.6,17.6,0,0,0,100.41,11h-.74A17.6,17.6,0,0,0,84.35,20c0,.1-.12.16-.17.25s-.08.17-.13.25c-.14.31-.3.61-.43.91a16.71,16.71,0,0,0-.82,14.56l.08.17a15,15,0,0,0,.87,1.75c.21.38.46.73.69,1.1s.42.68.69,1a22.87,22.87,0,0,0,2,2.37c1.32,1.32,2.91,2.79,4.19,4.17,4,4.58,2.46,7-2.9,9-.62.19-1.31.37-2,.54A78,78,0,0,0,47,77.55C29.73,94.46,21,118.88,23.54,146.4a48,48,0,0,0,10.08,26.08v.2a40.78,40.78,0,0,0,13.81,10.95l.74.34c.76.35,1.51.67,2.28,1a49.46,49.46,0,0,0,10.75,2.93,99.51,99.51,0,0,0,21.33.91c3.78-.18,7.58-.28,11.37-.32h12.17c3.8,0,7.6.14,11.38.32a99.39,99.39,0,0,0,21.32-.91A49.31,49.31,0,0,0,149.52,185c.78-.31,1.53-.63,2.29-1l.73-.34a40.72,40.72,0,0,0,13.92-10.95v-.2a48,48,0,0,0,10.08-26.08C179.12,118.88,170.35,94.46,153.1,77.55Zm-21,94.42h-1.86c-1.61,0-3.21.08-4.81.11-3.42,0-6.83,0-10.25.06-4.82,0-9.66-.12-14.45-.12H99.46c-4.82,0-9.66.08-14.45.12-3.42,0-6.83,0-10.25-.06-1.6,0-3.21,0-4.81-.11H68.09c-10.63-.89-18.31-4.64-23-11.46A34,34,0,0,1,40.15,146a82.62,82.62,0,0,1-.52-15.08,69.84,69.84,0,0,1,4.86-21.42c4.53-10.67,12.14-20,23.06-27.64.82-.58,1.65-1.11,2.49-1.65.5-.31,1-.64,1.5-.94a57.06,57.06,0,0,1,26.82-8.32h3.26a57,57,0,0,1,26.81,8.32c.52.3,1,.63,1.5.94.84.54,1.67,1.07,2.5,1.65,10.9,7.67,18.52,17,23.06,27.59a69.84,69.84,0,0,1,4.86,21.42,82.62,82.62,0,0,1-.53,15.08A34.13,34.13,0,0,1,155,160.48c-4.69,6.85-12.36,10.6-23,11.49Z" style="fill: #0092f3"/>
6
+ </g>
7
+ </svg>
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jx3box/jx3box-vue3-ui",
3
- "version": "1.1.16",
3
+ "version": "1.1.18",
4
4
  "description": "JX3BOX Vue3 UI",
5
5
  "main": "index.js",
6
6
  "scripts": {
package/service/cms.js CHANGED
@@ -77,6 +77,11 @@ function setUserMeta(key, data) {
77
77
  return $cms().post(`/api/cms/user/my/meta?key=${key}`, data);
78
78
  }
79
79
 
80
+ // 刷新凭证
81
+ function refreshAuth() {
82
+ return $cms().post(`/api/cms/user/account/email/refresh`);
83
+ }
84
+
80
85
  function getUserHonor(uid) {
81
86
  return $cms({ mute: true }).get(`/api/cms/user/honor/${uid}/using`);
82
87
  }
@@ -128,4 +133,5 @@ export {
128
133
  uploadFile,
129
134
  refreshQQBotImage,
130
135
  getUserPermission,
136
+ refreshAuth,
131
137
  };
@@ -1,11 +1,12 @@
1
1
  import JX3BOX from "@jx3box/jx3box-common/data/jx3box.json";
2
2
 
3
3
  import { ElNotification as Notification } from "element-plus";
4
- import { $cms } from "@jx3box/jx3box-common/js/https_v2";
4
+ import { $cms, $next } from "@jx3box/jx3box-common/js/https_v2";
5
5
  import User from "@jx3box/jx3box-common/js/user";
6
6
 
7
7
  const KEY = "cmt_order";
8
- const { __Links, __next } = JX3BOX;
8
+ const { __Links } = JX3BOX;
9
+ const $ = $next({ interceptor: false, mute: true });
9
10
 
10
11
  export async function getOrderMode() {
11
12
  if (User.isLogin()) {
@@ -51,14 +52,12 @@ export async function setOrderMode(val) {
51
52
  }
52
53
 
53
54
  export const GET = function (url, queryParams) {
54
- let options = {
55
- method: "GET",
56
- headers: {
57
- Accept: "application/json",
58
- "Content-Type": "application/json",
59
- },
60
- };
61
- return __fetch(url, queryParams, options);
55
+ return $
56
+ .get(url, {
57
+ params: queryParams,
58
+ })
59
+ .then((res) => res.data)
60
+ .catch((err) => __handleError(err));
62
61
  };
63
62
 
64
63
  const postRecord = {};
@@ -90,98 +89,59 @@ export const POST = function (url, queryParams, body) {
90
89
  count: 0,
91
90
  };
92
91
  }
93
- let options = {
94
- method: "POST",
95
- headers: {
96
- Accept: "application/json",
97
- "Content-Type": "application/json",
98
- },
99
- body: JSON.stringify(body),
100
- };
101
- return __fetch(url, queryParams, options);
92
+ return $
93
+ .post(url, body, {
94
+ params: queryParams,
95
+ })
96
+ .then((res) => res.data)
97
+ .catch((err) => __handleError(err));
102
98
  };
103
99
  export const PUT = function (url, queryParams, body) {
104
- let options = {
105
- method: "PUT",
106
- headers: {
107
- Accept: "application/json",
108
- "Content-Type": "application/json",
109
- },
110
- body: JSON.stringify(body),
111
- };
112
- return __fetch(url, queryParams, options);
100
+ return $
101
+ .put(url, body, {
102
+ params: queryParams,
103
+ })
104
+ .then((res) => res.data)
105
+ .catch((err) => __handleError(err));
113
106
  };
114
107
 
115
108
  export const DELETE = function (url, queryParams) {
116
- let options = {
117
- method: "DELETE",
118
- };
119
- return __fetch(url, queryParams, options);
109
+ return $
110
+ .delete(url, {
111
+ params: queryParams,
112
+ })
113
+ .then((res) => res.data)
114
+ .catch((err) => __handleError(err));
120
115
  };
121
116
 
122
- function __fetch(url, queryParams, options) {
123
- let domain = process.env.NODE_ENV == "production" ? __next : "/";
124
- if (domain[domain.length - 1] == "/") {
125
- domain = domain.substring(0, domain.length - 1);
126
- }
127
- url = domain + url;
128
- options.credentials = "include";
129
- if (queryParams) {
130
- let queryQueue = [];
131
- Object.keys(queryParams).forEach((key) => {
132
- queryQueue.push(key + "=" + queryParams[key]);
133
- });
134
- let domain = __next;
135
- if (domain[domain.length - 1] == "/") {
136
- domain = domain.substring(0, domain.length - 1);
137
- }
138
- url = url + "?" + queryQueue.join("&");
117
+ function __handleError(err) {
118
+ const status = err?.response?.status;
119
+ const statusText = err?.response?.statusText || "Request Error";
120
+ const message = err?.response?.data?.msg || err?.response?.data || "";
121
+ switch (status) {
122
+ case 401:
123
+ case 403:
124
+ window.location.href = __Links.account.login + "?redirect=" + encodeURIComponent(window.location.href);
125
+ break;
126
+ case 423:
127
+ window.location.href = __Links.account.email_verify + "?redirect=" + encodeURIComponent(window.location.href);
128
+ break;
129
+ case 406:
130
+ Notification.warning({
131
+ title: "系统",
132
+ message: message || "提交内容不合法,请重新提交",
133
+ duration: 3000,
134
+ position: "bottom-right",
135
+ });
136
+ break;
137
+ default:
138
+ Notification.error({
139
+ title: "系统:" + statusText,
140
+ message: message || "系统错误,请稍后重试!",
141
+ duration: 3000,
142
+ position: "bottom-right",
143
+ });
144
+ break;
139
145
  }
140
-
141
- return fetch(url, options).then((resp) => {
142
- switch (resp.status) {
143
- case 200:
144
- break;
145
- case 401:
146
- window.location.href = __Links.account.login + "?redirect=" + encodeURIComponent(window.location.href);
147
- throw new Error("错误:" + resp.statusText);
148
- case 403:
149
- window.location.href = __Links.account.login + "?redirect=" + encodeURIComponent(window.location.href);
150
- throw new Error("错误:" + resp.statusText);
151
- case 423:
152
- window.location.href =
153
- __Links.account.email_verify + "?redirect=" + encodeURIComponent(window.location.href);
154
- throw new Error("错误:" + resp.statusText);
155
- case 406:
156
- resp.text().then((body) => {
157
- Notification.warning({
158
- title: "系统",
159
- message: body || "提交内容不合法,请重新提交",
160
- duration: 3000,
161
- position: "bottom-right",
162
- });
163
- });
164
-
165
- throw new Error("错误:" + resp.statusText);
166
- default:
167
- resp.text().then((body) => {
168
- Notification.error({
169
- title: "系统:" + resp.statusText,
170
- message: body || "系统错误,请稍后重试!",
171
- duration: 3000,
172
- position: "bottom-right",
173
- });
174
- });
175
-
176
- throw new Error("错误:" + resp.statusText);
177
- }
178
- let contentType = resp.headers.get("Content-Type");
179
- contentType = contentType && contentType.split(";").shift();
180
- switch (contentType) {
181
- case "application/json":
182
- return resp.json();
183
- default:
184
- return resp.text();
185
- }
186
- });
146
+ return Promise.reject(err);
187
147
  }
package/src/App.vue CHANGED
@@ -74,7 +74,7 @@
74
74
  </template>
75
75
  </SuspendCommon>
76
76
 
77
- <Footer> </Footer>
77
+ <CommonFooter> </CommonFooter>
78
78
  </Main>
79
79
  </div>
80
80
  </template>
@@ -95,6 +95,7 @@ import { get_item } from "../service/item";
95
95
  // import Admin from "@/bread/Admin.vue";
96
96
  import versionBy from "./filters/versionBy.vue";
97
97
  import SuspendCommon from "./SuspendCommon.vue";
98
+ import CommonFooter from "./CommonFooter.vue";
98
99
  export default {
99
100
  name: "App",
100
101
  components: {
@@ -109,6 +110,7 @@ export default {
109
110
  singlebox,
110
111
  versionBy,
111
112
  SuspendCommon,
113
+ CommonFooter,
112
114
  // Admin,
113
115
  },
114
116
  data() {
@@ -0,0 +1,319 @@
1
+ <template>
2
+ <footer class="box-border bg-gray-900 px-6 py-12 text-gray-400 md:px-10 lg:px-16 xl:px-20">
3
+ <div class="mx-auto w-full" style="max-width: 92rem">
4
+ <div
5
+ class="grid grid-cols-1 gap-10 pb-10 lg:grid-cols-12 lg:gap-8"
6
+ >
7
+ <section class="lg:col-span-3">
8
+ <div class="flex items-center space-x-3">
9
+ <Icon class="h-9 w-9 text-white" name="footer-logo" :size="36" />
10
+ <span class="text-2xl font-bold tracking-tight text-white">JX3BOX</span>
11
+ </div>
12
+ <p class="mt-5 text-sm leading-7 text-gray-400" style="max-width: 20rem">
13
+ 一站式剑三工具与资源聚合站。<br>
14
+ 江湖路远,幸甚有你。
15
+ </p>
16
+ <div class="mt-6 flex flex-wrap gap-3">
17
+ <div v-for="item in socials" :key="item.name">
18
+ <el-popover
19
+ v-if="item.qrcode"
20
+ trigger="hover"
21
+ placement="top"
22
+ popper-class="c-footer-v4__popover"
23
+ >
24
+ <div class="flex w-36 flex-col items-center p-3">
25
+ <img
26
+ class="h-32 w-32 rounded-md object-cover"
27
+ :src="item.qrcode"
28
+ :alt="item.name"
29
+ />
30
+ <span class="mt-2 text-xs text-gray-300">{{
31
+ item.label || item.name
32
+ }}</span>
33
+ </div>
34
+ <template #reference>
35
+ <a
36
+ class="flex h-11 w-11 items-center justify-center rounded-full border border-gray-700 bg-gray-800 transition hover:border-blue-500 hover:bg-blue-600"
37
+ :title="item.name"
38
+ href="javascript:;"
39
+ >
40
+ <Icon class="h-5 w-5" :name="item.icon" :size="20" />
41
+ </a>
42
+ </template>
43
+ </el-popover>
44
+ <a
45
+ v-else
46
+ class="flex h-11 w-11 items-center justify-center rounded-full border border-gray-700 bg-gray-800 transition hover:border-blue-500 hover:bg-blue-600"
47
+ :href="item.href"
48
+ target="_blank"
49
+ rel="noopener noreferrer"
50
+ :title="item.name"
51
+ >
52
+ <Icon class="h-5 w-5" :name="item.icon" :size="20" />
53
+ </a>
54
+ </div>
55
+ </div>
56
+ </section>
57
+
58
+ <section class="lg:col-span-3">
59
+ <div class="grid grid-cols-1 gap-8 sm:grid-cols-3">
60
+ <div v-for="group in footerGroups" :key="group.title">
61
+ <h3 class="text-sm font-semibold tracking-wide text-white">
62
+ {{ group.title }}
63
+ </h3>
64
+ <div class="mt-4 space-y-3">
65
+ <a
66
+ v-for="item in group.links"
67
+ :key="item.name"
68
+ class="block text-xs text-gray-400 transition hover:text-blue-400"
69
+ :href="item.href"
70
+ target="_blank"
71
+ rel="noopener noreferrer"
72
+ >
73
+ {{ item.name }}
74
+ </a>
75
+ </div>
76
+ </div>
77
+ </div>
78
+ </section>
79
+
80
+ <section class="lg:col-span-4 lg:col-start-9">
81
+ <h3 class="text-sm font-semibold tracking-wide text-white">下载中心</h3>
82
+ <div class="mt-4 grid grid-cols-1 gap-3 sm:grid-cols-2">
83
+ <div v-for="item in downloadLinks" :key="item.name">
84
+ <el-popover
85
+ v-if="item.qrcode"
86
+ trigger="hover"
87
+ placement="top"
88
+ popper-class="c-footer-v4__popover"
89
+ >
90
+ <div class="flex flex-col items-center p-3">
91
+ <img
92
+ class="h-32 w-32 rounded-md object-cover"
93
+ :src="item.qrcode"
94
+ :alt="item.name"
95
+ />
96
+ <span class="mt-2 text-xs text-gray-300">{{ item.label }}</span>
97
+ </div>
98
+ <template #reference>
99
+ <a
100
+ class="flex h-12 items-center rounded-xl border border-gray-700 bg-gray-800 px-4 text-xs text-gray-300 transition hover:border-blue-500 hover:bg-gray-700"
101
+ :href="item.href || 'javascript:;'"
102
+ :target="item.href ? '_blank' : null"
103
+ :rel="item.href ? 'noopener noreferrer' : null"
104
+ >
105
+ <span class="mr-2.5 flex h-4 w-4 items-center justify-center">
106
+ <Icon class="h-4 w-4" :name="item.icon" :size="16" />
107
+ </span>
108
+ <span>{{ item.name }}</span>
109
+ </a>
110
+ </template>
111
+ </el-popover>
112
+ <a
113
+ v-else
114
+ class="flex h-12 items-center rounded-xl border border-gray-700 bg-gray-800 px-4 text-xs text-gray-300 transition hover:border-blue-500 hover:bg-gray-700"
115
+ :href="item.href || 'javascript:;'"
116
+ :target="item.href ? '_blank' : null"
117
+ :rel="item.href ? 'noopener noreferrer' : null"
118
+ >
119
+ <span class="mr-2.5 flex h-4 w-4 items-center justify-center">
120
+ <Icon class="h-4 w-4" :name="item.icon" :size="16" />
121
+ </span>
122
+ <span>{{ item.name }}</span>
123
+ </a>
124
+ </div>
125
+ </div>
126
+
127
+ <div
128
+ class="mt-4 flex items-center justify-between rounded-xl border p-4"
129
+ style="
130
+ border-color: rgba(59, 130, 246, 0.2);
131
+ background-image: linear-gradient(90deg, rgba(30, 64, 175, 0.2), rgba(31, 41, 55, 0.4));
132
+ "
133
+ >
134
+ <div class="flex items-center space-x-3">
135
+ <div
136
+ class="flex h-10 w-10 items-center justify-center rounded-lg text-blue-400"
137
+ style="background-color: rgba(59, 130, 246, 0.2)"
138
+ >
139
+ <img class="h-6 w-6" src="../assets/img/footer/qqbot.svg" alt="QQ机器人" />
140
+ </div>
141
+ <div>
142
+ <p
143
+ class="font-bold uppercase tracking-wider text-gray-500"
144
+ style="font-size: 10px"
145
+ >
146
+ QQ 机器人服务
147
+ </p>
148
+ <p class="mt-1 font-mono text-sm font-semibold text-white">3889010020</p>
149
+ </div>
150
+ </div>
151
+ <a
152
+ class="rounded-md bg-blue-600 px-3 py-1.5 text-xs font-medium text-white transition hover:bg-blue-500"
153
+ href="tencent://AddContact/?uin=3889010020&Site=www.jx3box.com&Menu=yes"
154
+ target="_blank"
155
+ rel="noopener noreferrer"
156
+ >
157
+ 添加
158
+ </a>
159
+ </div>
160
+ </section>
161
+ </div>
162
+
163
+ <div
164
+ class="flex flex-col items-center justify-between pt-8 text-gray-500 md:flex-row"
165
+ style="border-top: 1px solid rgba(55, 65, 81, 1); font-size: 11px"
166
+ >
167
+ <div
168
+ class="flex flex-wrap items-center justify-center gap-x-6 gap-y-2 md:justify-start"
169
+ >
170
+ <span>© 2019-2026 JX3BOX. 由开源社区驱动。</span>
171
+ <a
172
+ class="text-gray-500 hover:underline"
173
+ href="https://beian.miit.gov.cn/"
174
+ target="_blank"
175
+ rel="noopener noreferrer"
176
+ >
177
+ 湘ICP备2021002288号
178
+ </a>
179
+ </div>
180
+ <div class="mt-4 flex items-center space-x-6 md:mt-0">
181
+ <a
182
+ class="text-gray-500 transition-colors hover:text-white"
183
+ href="https://rx-planet.com/contact"
184
+ target="_blank"
185
+ rel="noopener noreferrer"
186
+ >
187
+ 联系我们
188
+ </a>
189
+ <a
190
+ class="text-gray-500 transition-colors hover:text-white"
191
+ href="https://www.jx3box.com/feedback"
192
+ target="_blank"
193
+ rel="noopener noreferrer"
194
+ >
195
+ 反馈建议
196
+ </a>
197
+ </div>
198
+ </div>
199
+
200
+ </div>
201
+ </footer>
202
+ </template>
203
+
204
+ <script>
205
+ import mpQr from "../assets/img/mobile/mp.jpg";
206
+ import miniProgramQr from "../assets/img/mobile/miniprogram.jpg";
207
+
208
+ export default {
209
+ name: "CommonFooter",
210
+ data() {
211
+ return {
212
+ socials: [
213
+ {
214
+ name: "公众号",
215
+ key: "wechat",
216
+ href: "",
217
+ icon: "wechat",
218
+ qrcode: mpQr,
219
+ },
220
+ {
221
+ name: "B站",
222
+ key: "bilibili",
223
+ href: "https://space.bilibili.com/2066064028",
224
+ icon: "bilibili",
225
+ },
226
+ {
227
+ name: "微博",
228
+ key: "weibo",
229
+ href: "https://weibo.com/jx3box",
230
+ icon: "weibo",
231
+ },
232
+ {
233
+ name: "抖音",
234
+ key: "douyin",
235
+ href: "https://www.douyin.com/user/MS4wLjABAAAAP3OHPy-BYsW6IMiPZfP1FP3J_zYAAYNVVlk9XyoKhOs",
236
+ icon: "douyin",
237
+ },
238
+ ],
239
+ aboutLinks: [
240
+ { name: "团队成员", href: "https://www.jx3box.com/about/" },
241
+ { name: "加入我们", href: "https://www.jx3box.com/notice/21899" },
242
+ { name: "开发文档", href: "https://www.jx3box.com/tool?subtype=4" },
243
+ { name: "代码仓库", href: "https://github.com/JX3BOX" },
244
+ ],
245
+ legalLinks: [
246
+ { name: "用户协议", href: "https://www.jx3box.com/about/license" },
247
+ { name: "创作公约", href: "https://www.jx3box.com/about/treaty" },
248
+ { name: "隐私政策", href: "https://www.jx3box.com/about/privacy" },
249
+ { name: "创作激励", href: "https://www.jx3box.com/about/incentives" },
250
+ ],
251
+ extraLinks: [
252
+ { name: "游戏版本", href: "https://www.jx3box.com/topic" },
253
+ { name: "活动中心", href: "https://www.jx3box.com/event" },
254
+ { name: "全站地图", href: "https://www.jx3box.com/app/" },
255
+ ],
256
+ downloadLinks: [
257
+ {
258
+ name: "App Store",
259
+ href: "",
260
+ icon: "ios",
261
+ // qrcode: require("@/assets/img/mobile/mp.jpg"),
262
+ },
263
+ {
264
+ name: "Android",
265
+ href: "",
266
+ icon: "android",
267
+ // qrcode: require("@/assets/img/mobile/mp.jpg"),
268
+ },
269
+ {
270
+ name: "鸿蒙 NEXT",
271
+ href: "",
272
+ icon: "harmony",
273
+ // qrcode: require("@/assets/img/mobile/mp.jpg"),
274
+ },
275
+ {
276
+ name: "小程序",
277
+ label: "JX3BOX小助手",
278
+ href: "",
279
+ icon: "miniprogram",
280
+ qrcode: miniProgramQr,
281
+ },
282
+ ],
283
+ };
284
+ },
285
+ computed: {
286
+ footerGroups() {
287
+ return [
288
+ {
289
+ title: "关于我们",
290
+ links: this.aboutLinks,
291
+ },
292
+ {
293
+ title: "法律合规",
294
+ links: this.legalLinks,
295
+ },
296
+ {
297
+ title: "更多入口",
298
+ links: this.extraLinks,
299
+ },
300
+ ];
301
+ },
302
+ },
303
+ };
304
+ </script>
305
+
306
+ <style>
307
+ .c-footer-v4__popover {
308
+ background: #1f2937;
309
+ border: 1px solid #374151;
310
+ border-radius: 12px;
311
+ box-shadow: 0 16px 40px rgba(3, 7, 18, 0.45);
312
+ padding: 0 !important;
313
+ }
314
+
315
+ .c-footer-v4__popover .popper__arrow,
316
+ .c-footer-v4__popover .popper__arrow:after {
317
+ display: none !important;
318
+ }
319
+ </style>
@@ -56,7 +56,7 @@ import execSplitPages from "../../assets/js/nextpage";
56
56
  // 扩展文本
57
57
  import renderFoldBlock from "../../assets/js/fold";
58
58
  import renderDirectory from "../../assets/js/directory";
59
- import renderKatex from "../../assets/js/katex";
59
+ import {renderKatexAll} from "../../assets/js/katex";
60
60
  import renderCode from "../../assets/js/code";
61
61
  import renderImgPreview from "../../assets/js/renderImgPreview";
62
62
  import renderMacro from "../../assets/js/macro";
@@ -136,7 +136,7 @@ export default {
136
136
  // 代码
137
137
  renderCode(`code[class=^'language-']`);
138
138
  // Tatex
139
- renderKatex();
139
+ renderKatexAll();
140
140
 
141
141
  // 画廊(需要在宏、奇穴、物品等之前渲染以排除下方自动生成图片)
142
142
  renderImgPreview();
@@ -9,7 +9,7 @@ export default {
9
9
  components : {},
10
10
  data : function(){
11
11
  return {
12
-
12
+
13
13
  }
14
14
  },
15
15
  computed:{},