Commit 5810078bc79b7f6134d86b5f99e90203c65ffdd7

Authored by vben
1 parent 07c18d60

wip: code adjustment and optimization

src/App.vue
... ... @@ -9,14 +9,13 @@
9 9 <script lang="ts">
10 10 import { defineComponent } from 'vue';
11 11 import { ConfigProvider } from 'ant-design-vue';
  12 + import { AppProvider } from '/@/components/Application';
12 13  
13 14 import { initAppConfigStore } from '/@/logics/initAppConfig';
14 15  
15 16 import { useLockPage } from '/@/hooks/web/useLockPage';
16 17 import { useLocale } from '/@/locales/useLocale';
17 18  
18   - import { AppProvider } from '/@/components/Application';
19   -
20 19 export default defineComponent({
21 20 name: 'App',
22 21 components: { ConfigProvider, AppProvider },
... ...
src/assets/images/exception/net-work.png deleted 100644 → 0

9.6 KB

src/assets/images/no-data.png deleted 100644 → 0

15.1 KB

src/assets/images/qq.jpeg deleted 100644 → 0

111 KB

src/assets/svg/net-error.svg 0 → 100644
  1 +<svg id="ac370e99-250f-4203-ae2c-c306a69114f3" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1144" height="697.99" viewBox="0 0 1144 697.99"><defs><linearGradient id="b5f20e7f-16f1-44c3-85ac-2c33fb8e67f8" x1="2612.03" y1="795.18" x2="2612.03" y2="399.52" gradientTransform="matrix(-1, 0, 0, 1, 3436, 0)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="gray" stop-opacity="0.25"/><stop offset="0.54" stop-color="gray" stop-opacity="0.12"/><stop offset="1" stop-color="gray" stop-opacity="0.1"/></linearGradient></defs><title>personal settings</title><path d="M1172,516.31a180.56,180.56,0,0,1-26.12,93.88c0,34.62-16.14,66-42.32,88.87a144.74,144.74,0,0,1-21.08,15.28c-.3.19-.61.37-.92.55-.56.33-1.12.66-1.69,1l-.53.31h0A164.61,164.61,0,0,1,998.24,737H245.17q-9,0-17.84-.72a211.15,211.15,0,0,1-61.06-14.14q-5.72-2.26-11.22-4.86-2.62-1.23-5.19-2.53c-1.07-.54-2.14-1.1-3.2-1.66A187.42,187.42,0,0,1,112.2,689.7c-34-29.23-55.08-69.61-55.08-114.21A180.5,180.5,0,0,1,28,476.82c0-99.14,79.24-179.51,177-179.51,3,0,6,.09,9,.25.43,0,.85,0,1.28.06,16.48-28.09,38.51-53.9,65-76.62,72.24-61.9,177.82-100.92,295.43-100.92,98.82,0,189.15,27.55,258.34,73.07A174.18,174.18,0,0,1,920,170.6c97.74,0,177,80.37,177,179.51a184.9,184.9,0,0,1-1,18.78A180,180,0,0,1,1172,516.31Z" transform="translate(-28 -101)" fill="#0960bd" opacity="0.1"/><g opacity="0.2"><path d="M166.37,720.79c0,.46-.05.91-.1,1.35q-5.72-2.26-11.22-4.86a9.1,9.1,0,0,1-5.19-2.53c-1.07-.54-2.14-1.1-3.2-1.66a13.68,13.68,0,0,1,.81-1.46c2.06-3.26,5.19-5.3,8.64-5.19s6.44,2.34,8.29,5.71A16.87,16.87,0,0,1,166.37,720.79Z" transform="translate(-28 -101)" fill="#3f3d56"/><path d="M166.91,703.67a16.88,16.88,0,0,1-2.51,8.48c-2.06,3.25-5.19,5.29-8.64,5.18l-.71-.05a9.1,9.1,0,0,1-5.19-2.53,12.53,12.53,0,0,1-2.39-3.12,17.55,17.55,0,0,1,.54-17.12c2.06-3.26,5.19-5.3,8.64-5.19s6.44,2.34,8.29,5.71A16.87,16.87,0,0,1,166.91,703.67Z" transform="translate(-28 -101)" fill="#3f3d56"/><ellipse cx="156.75" cy="686.21" rx="14.01" ry="10.7" transform="translate(-562.06 720.24) rotate(-88.19)" fill="#3f3d56"/><ellipse cx="157.29" cy="669.09" rx="14.01" ry="10.7" transform="translate(-544.43 704.2) rotate(-88.19)" fill="#3f3d56"/><ellipse cx="157.83" cy="651.97" rx="14.01" ry="10.7" transform="matrix(0.03, -1, 1, 0.03, -526.79, 688.16)" fill="#3f3d56"/><path d="M121.47,533.55a49.66,49.66,0,0,1-3.8-6l28.26-3.73-30.42-.73a51.38,51.38,0,0,1,.31-40.64l40.12,22.45-36.75-28.85a51.28,51.28,0,1,1,82.84,60,51.12,51.12,0,0,1,5.55,9.53l-37.09,17.81,39.33-11.83A51.34,51.34,0,0,1,200,599.47a51.28,51.28,0,1,1-80.56-2.54,51.28,51.28,0,0,1,2-63.38Z" transform="translate(-28 -101)" fill="#0960bd"/><path d="M212,568.13a51.06,51.06,0,0,1-12,31.34,51.28,51.28,0,1,1-80.56-2.54C112.87,588,212.18,562.37,212,568.13Z" transform="translate(-28 -101)" opacity="0.1"/></g><path d="M986,239.41V718.59A18.41,18.41,0,0,1,967.59,737H232.41a18.13,18.13,0,0,1-5.08-.72A18.38,18.38,0,0,1,214,718.59V504.75c0-1.09,0-2.17,0-3.25V297.56c.43,0,.85,0,1.28.06,16.48-28.09,38.51-53.9,65-76.62H967.59A18.41,18.41,0,0,1,986,239.41Z" transform="translate(-28 -101)" fill="#fff"/><rect x="712.17" y="182.23" width="137.83" height="35.96" rx="17.98" fill="#3f3d56"/><rect x="721.15" y="188.24" width="119.86" height="23.93" rx="11.97" opacity="0.1"/><rect x="794.73" y="189.55" width="43.28" height="21.31" rx="10.65" fill="#0960bd"/><circle cx="816.04" cy="200.21" r="6.66" fill="#fff"/><rect x="712.17" y="419.28" width="137.83" height="35.96" rx="17.98" fill="#3f3d56"/><rect x="721.15" y="425.29" width="119.86" height="23.93" rx="11.97" opacity="0.1"/><rect x="794.73" y="426.6" width="43.28" height="21.31" rx="10.65" fill="#0960bd"/><circle cx="816.04" cy="437.26" r="6.66" fill="#fff"/><rect x="712.17" y="537.8" width="137.83" height="35.96" rx="17.98" fill="#3f3d56"/><rect x="721.15" y="543.82" width="119.86" height="23.93" rx="11.97" opacity="0.1"/><rect x="794.73" y="545.13" width="43.28" height="21.31" rx="10.65" fill="#0960bd"/><circle cx="816.04" cy="555.78" r="6.66" fill="#fff"/><rect x="294" y="159.59" width="80.57" height="21.31" rx="10.65" fill="#0960bd"/><rect x="294" y="189.55" width="223.73" height="21.31" rx="10.65" fill="#0960bd"/><rect x="294" y="219.52" width="223.73" height="21.31" rx="10.65" fill="#0960bd"/><g opacity="0.5"><rect x="294" y="278.11" width="80.57" height="21.31" rx="10.65" fill="#0960bd"/><rect x="294" y="308.08" width="167" height="21.31" rx="10.65" fill="#0960bd"/><rect x="294" y="338.04" width="223.73" height="21.31" rx="10.65" fill="#0960bd"/></g><rect x="294" y="396.64" width="80.57" height="21.31" rx="10.65" fill="#0960bd"/><rect x="294" y="426.6" width="223.73" height="21.31" rx="10.65" fill="#0960bd"/><rect x="294" y="456.57" width="139" height="21.31" rx="10.65" fill="#0960bd"/><rect x="294" y="515.16" width="80.57" height="21.31" rx="10.65" fill="#0960bd"/><rect x="294" y="545.13" width="223.73" height="21.31" rx="10.65" fill="#0960bd"/><rect x="294" y="575.09" width="180" height="21.31" rx="10.65" fill="#0960bd"/><line x1="260" y1="259.99" x2="912" y2="259.99" fill="none" stroke="#3f3d56" stroke-linecap="round" stroke-miterlimit="10" opacity="0.7"/><line x1="260" y1="380.49" x2="912" y2="380.49" fill="none" stroke="#3f3d56" stroke-linecap="round" stroke-miterlimit="10" opacity="0.7"/><line x1="260" y1="500.99" x2="912" y2="500.99" fill="none" stroke="#3f3d56" stroke-linecap="round" stroke-miterlimit="10" opacity="0.7"/><line x1="260" y1="624.49" x2="912" y2="624.49" fill="none" stroke="#3f3d56" stroke-linecap="round" stroke-miterlimit="10" opacity="0.7"/><ellipse cx="795" cy="687.49" rx="147.68" ry="10.5" fill="#0960bd" opacity="0.1"/><circle cx="70.52" cy="141.18" r="21.63" fill="#0960bd" opacity="0.1"/><circle cx="160.67" cy="21.63" r="21.63" fill="#0960bd" opacity="0.1"/><circle cx="153.34" cy="103.76" r="36.25" fill="#0960bd" opacity="0.1"/><rect x="712.17" y="300.75" width="137.83" height="35.96" rx="17.98" fill="#3f3d56"/><rect x="721.15" y="306.77" width="119.86" height="23.93" rx="11.97" opacity="0.1"/><path d="M753.17,762c1.57-.23,3.14-.55,4.68-.91a14.62,14.62,0,0,1-1.32,4.44c-1.53,2.9-4.52,4.65-7.27,6.43a2.25,2.25,0,0,0-2.84-.19c-3.31,2-5.95,4.82-9.46,6.54-1.23.6-2.51,1.08-3.71,1.75a20,20,0,0,0-7,7.23c-1,1.55-1.81,3.59-.83,5.13a4.44,4.44,0,0,0,1.42,1.27,8.08,8.08,0,0,0,4.87,1.45c1-.09,2-.47,3.09-.64,1.37-.24,2.77-.12,4.15-.24a24.26,24.26,0,0,0,5.84-1.51l6.87-2.4a39.68,39.68,0,0,0,5.65-2.32c1.09-.59,2.12-1.28,3.23-1.82a26,26,0,0,1,3.86-1.36l3.9-1.14a3.8,3.8,0,0,1,1.76-.23c.54.1,1,.44,1.55.58a4.68,4.68,0,0,0,2.5-.24l4.52-1.28a8.52,8.52,0,0,0,2.69-1.12c2.07-1.47,2.44-4.39,2.43-6.94A52.57,52.57,0,0,0,782.45,763a3.57,3.57,0,0,0-1.47,1.11,21.44,21.44,0,0,0-1.49-1.87,22.31,22.31,0,0,1-4.51-8.33,14.66,14.66,0,0,0,4-4.52c-2.39-9.11-4.84-18.36-9.7-26.4-1.59-2.62-3.41-5.08-5-7.66-4.73-7.5-5.7-17-11.11-24a4.16,4.16,0,0,1,0-4.88c.62-.82,1.62-1.59,1.43-2.61-.14-.73-.9-1.4-.61-2.08.14-.33.48-.51.74-.75.92-.86.8-2.31.89-3.57.2-3.18,2.09-6,3.91-8.56a5.26,5.26,0,0,1,1.44-1.56c.49-.3,1.07-.44,1.56-.74,1.72-1.09,1.6-3.62,2.42-5.5,1.08-2.48,3.8-3.73,5.58-5.74,2.27-2.56,2.85-6.12,5.24-8.35a6.13,6.13,0,0,1,.79-.64A40.24,40.24,0,0,0,775.15,658c-.23,13.53,3.13,27.53,1.56,41-1.24,10.66,5.27,21.29,14.5,26.62a69.31,69.31,0,0,0,11.29,4.79c5.78,2.07,11.54,4.2,17.21,6.58q6,2.52,11.84,5.41a147.35,147.35,0,0,1,14,7.81c5.56,3.57,11.13,7.19,15.08,12.52a11.94,11.94,0,0,0,6.66-2.45c1.52,1.2,3.36,2.11,4.79,3.44a14.46,14.46,0,0,1,3.8,7.46l-.6,0c.07,1.33.13,2.66.2,4a1.7,1.7,0,0,1-.15,1,1.81,1.81,0,0,1-.54.49l-3.08,2.09c-2.24,1.51-4.71,3.42-4.83,6.13a3.12,3.12,0,0,0,.67,2.19,4.72,4.72,0,0,0,2.74,1.24c5.36,1.13,10.85,2.23,16.28,1.5,2.58-.35,5.25-1.2,6.93-3.2,1.54-1.82,2-4.29,2.42-6.64.67-4,1.23-8.09,1.67-12.15a26.86,26.86,0,0,1,1.66-8.07,1,1,0,0,1,.43-.54c.23-.1.5,0,.74-.1s.4-.47.48-.77a47.71,47.71,0,0,0,1.43-12.08,8.14,8.14,0,0,0-.47-3.11,6.28,6.28,0,0,0-4.28-3.3,34.09,34.09,0,0,0-5.53-.66,27.46,27.46,0,0,1-4.59-.84,4.2,4.2,0,0,0-1.91-.25,1.34,1.34,0,0,0-1.16,1.33,1.71,1.71,0,0,0,.24.65l-1.56-.31c-1.26-.23-3-.78-4.89-1.24q0-.48.06-1a1.89,1.89,0,0,0-1.06-1.72l-26.42-14.12-4.94-2.64c-10.82-5.79-22-11.14-32.85-16.93-.72.22-1.32-.61-1.53-1.35s-.36-1.62-1.05-1.95c-.34-.16-.79-.15-1-.44a1.19,1.19,0,0,1-.19-.89c.35-5.27,4.12-10.13,3.37-15.35-.32-2.23-1.47-4.43-1-6.62.35-1.51,1.43-2.74,2-4.18,1.3-3.22,0-7.09,1.42-10.24a23.71,23.71,0,0,0,1.91-6.52,44.79,44.79,0,0,1,4-12.94,23.35,23.35,0,0,1,3.72-5.67c.79-.86,1.68-1.63,2.44-2.52,2.3-2.75,3.15-6.41,3.8-10,1.18-6.41,2-13.06.52-19.42-.5-2.16-1.26-4.31-1.23-6.53,0-2.66,1.07-5.71-.22-7.84a6.9,6.9,0,0,0,2.49-4.27,5.52,5.52,0,0,1,.35-1.77,5.14,5.14,0,0,1,1.67-1.5,6.91,6.91,0,0,0,2.58-6.87c1.37.62,2.81-.77,3.46-2.14s1.14-3,2.53-3.62c.94-.4,2-.16,3-.42,1.59-.41,2.56-2,3.68-3.17,2.28-2.46,5.51-3.73,8.5-5.24,8.86-4.51,16.08-11.64,23.15-18.66a78.38,78.38,0,0,0,10-11.26c.79-1.17,1.51-2.38,2.19-3.62l.18-.09.06.22c.11.44.24.88.37,1.31.32,1,.68,2.07,1,3.09,1.08,3,2.25,6.2,4.45,8.47a10.48,10.48,0,0,0,2.28,1.77,15.3,15.3,0,0,0,5.87,1.76c.78.1,1.57.16,2.36.2s1.58.07,2.36.09l16.18.43c-5.56-8.06-6-18.54-5.63-28.35.93-25.2,5.84-50.63,1.28-75.43-.55-3-1.28-6-3.11-8.41-2.4-3.15-6.34-4.67-10.18-5.56s-7.83-1.32-11.42-2.93c-3-1.37-5.76-3.57-9-4.29a19.82,19.82,0,0,0-7.2.12q-4.38.65-8.71,1.54l-.7.15H874l-.48.11-.13,0-.43.1-.16,0-.4.11-.18.05-.37.12-.21.07-.34.11-.22.09-.32.12-.24.1-.29.13-.24.12-.27.13-.24.14-.25.14-.24.16-.23.15-.24.17-.2.16-.23.2-.19.17a2.39,2.39,0,0,0-.22.23l-.17.17a3,3,0,0,0-.22.28c0,.05-.09.1-.13.16s-.18.26-.27.41l0,.06a6.09,6.09,0,0,0-.55,1.19c-.07.21-.14.42-.19.63a9.54,9.54,0,0,0-.22,1.3c0,.22,0,.45-.05.67,0,.44,0,.89,0,1.33a19.62,19.62,0,0,0,.25,2.24,24.37,24.37,0,0,0-1.16,41.23,10.94,10.94,0,0,1,.08,1.19v.26a33,33,0,0,1-.44,4.22,58.66,58.66,0,0,0-12-1.07c-2.4,0-4.82.22-7.24.41a109.13,109.13,0,0,1-7.24-9.8l-5.34-7.83a74.58,74.58,0,0,1-5-8c-1.31-2.54-2.33-5.24-3.79-7.7-3-5.07-7.9-9.38-8.51-15.25l-1.41.29c-.77-1.26-1.74-2.59-2.1-3.32a65.55,65.55,0,0,1-4.44-13c-.49-2.32-.86-4.74-2.13-6.74a15.19,15.19,0,0,0-3.11-3.3,20.57,20.57,0,0,0-6.66-4.2,8.61,8.61,0,0,0-6.81.4,10,10,0,0,0-1-.4,8.25,8.25,0,0,0-7.56.88c-2.1,1.61-3,4.37-3.32,7a17.28,17.28,0,0,0,1.78,10.62c2,3.58,5.58,6,8.54,8.84a34.59,34.59,0,0,1,5.37,6.68,73.16,73.16,0,0,1-.41,16.21c-.38,2.3-1,4.56-1.18,6.88-.73,8.38,3.63,16.76,2.07,25a6.1,6.1,0,0,0,2.83,6.47c2.24,1.21,4.86,1.37,7.32,2,4.83,1.24,9,4.33,13.88,5.48,2.25.54,4.59.64,6.83,1.24l.35.11a16.27,16.27,0,0,0-3.59,6.82c-1,4.2-.06,8.69-1.06,12.89-.82,3.46-2.88,6.48-4.91,9.41q-5.86,8.48-11.74,17a104.13,104.13,0,0,1-8.65,11.37c-5.39,5.89-14.69,10.56-17.43,17.64-.06-.17-.14-.34-.2-.51-3.88,2.85-5.33,8.16-8.42,11.85-1.51,1.79-3.37,3.24-5,4.9a56.54,56.54,0,0,0-5.53,6.87c-4.6,6.38-9.23,12.79-12.52,19.94-1.72,3.72-3.05,7.59-4.42,11.44-5.38,15.17-14.16,29.56-17.81,45.25-.89,3.83-3.22,7.29-3.57,11.21-.39,4.18,1.52,8.2,3.5,11.89,3,5.64,6.34,11.12,9,16.92,1.57,3.38,2.93,6.87,4.68,10.17,1.91,3.6,4.25,6.94,6.25,10.49C747.78,742,750.58,752.07,753.17,762Zm66.16-286.55-.48-.24A16.57,16.57,0,0,1,814,472c-4.31-4.6-6.16-11.53-7.51-17.72-.16-.74-.3-1.47-.43-2.21C811.29,459.5,816.23,467.18,819.33,475.47Z" transform="translate(-28 -101)" fill="url(#b5f20e7f-16f1-44c3-85ac-2c33fb8e67f8)"/><path d="M799.68,415.4c-.49-2.31-.85-4.71-2.12-6.69a15.16,15.16,0,0,0-3.12-3.28,20.74,20.74,0,0,0-6.68-4.17,8.34,8.34,0,0,0-7.56.87c-2.11,1.6-3,4.34-3.33,7a17.07,17.07,0,0,0,1.78,10.55c2.05,3.56,5.59,5.94,8.56,8.78a34.39,34.39,0,0,1,5.58,7,20.21,20.21,0,0,0,2.54,3.72,4.84,4.84,0,0,0,4,1.61,7,7,0,0,0,3.27-1.93c1.22-1.07,4.5-3,4.6-4.67.08-1.37-2.48-4.47-3.11-5.76A65.41,65.41,0,0,1,799.68,415.4Z" transform="translate(-28 -101)" fill="#fbbebe"/><path d="M799.68,415.4c-.49-2.31-.85-4.71-2.12-6.69a15.16,15.16,0,0,0-3.12-3.28,20.74,20.74,0,0,0-6.68-4.17,8.34,8.34,0,0,0-7.56.87c-2.11,1.6-3,4.34-3.33,7a17.07,17.07,0,0,0,1.78,10.55c2.05,3.56,5.59,5.94,8.56,8.78a34.39,34.39,0,0,1,5.58,7,20.21,20.21,0,0,0,2.54,3.72,4.84,4.84,0,0,0,4,1.61,7,7,0,0,0,3.27-1.93c1.22-1.07,4.5-3,4.6-4.67.08-1.37-2.48-4.47-3.11-5.76A65.41,65.41,0,0,1,799.68,415.4Z" transform="translate(-28 -101)" opacity="0.1"/><path d="M868.85,481.23a58.88,58.88,0,0,0-16.18-2c-9.11.13-18.49,2.34-27.17-.46A47.4,47.4,0,0,1,819,476a16.58,16.58,0,0,1-4.86-3.19c-4.32-4.57-6.18-11.46-7.52-17.6a117.44,117.44,0,0,1-2.05-18.73c-2.25,1.05-4.63,2.08-7.1,1.87s-5-2.11-5-4.59c.37,5.82.64,11.71-.33,17.45-.38,2.28-1,4.53-1.17,6.83-.74,8.33,3.63,16.65,2.07,24.86a6,6,0,0,0,2.83,6.42c2.24,1.21,4.87,1.36,7.33,2,4.83,1.23,9,4.3,13.9,5.45,2.25.53,4.6.63,6.84,1.23,3.19.85,6.1,2.68,9.36,3.25,2.44.44,5,.14,7.43.35,2.15.18,4.25.74,6.41.8,5.28.13,10.26-2.85,13.76-6.81S866.63,486,868.85,481.23Z" transform="translate(-28 -101)" fill="#f86d70"/><path d="M868.85,481.23a58.88,58.88,0,0,0-16.18-2c-9.11.13-18.49,2.34-27.17-.46A47.4,47.4,0,0,1,819,476a16.58,16.58,0,0,1-4.86-3.19c-4.32-4.57-6.18-11.46-7.52-17.6a117.44,117.44,0,0,1-2.05-18.73c-2.25,1.05-4.63,2.08-7.1,1.87s-5-2.11-5-4.59c.37,5.82.64,11.71-.33,17.45-.38,2.28-1,4.53-1.17,6.83-.74,8.33,3.63,16.65,2.07,24.86a6,6,0,0,0,2.83,6.42c2.24,1.21,4.87,1.36,7.33,2,4.83,1.23,9,4.3,13.9,5.45,2.25.53,4.6.63,6.84,1.23,3.19.85,6.1,2.68,9.36,3.25,2.44.44,5,.14,7.43.35,2.15.18,4.25.74,6.41.8,5.28.13,10.26-2.85,13.76-6.81S866.63,486,868.85,481.23Z" transform="translate(-28 -101)" opacity="0.1"/><path d="M883.31,738.67a13.69,13.69,0,0,1,4.67,1.46,11,11,0,0,1,4.06,5.48c2.18,5.38,2.63,11.3,2.73,17.11.08,4.69-.08,9.49-1.76,13.87a8.83,8.83,0,0,1-2.31,3.63,8.33,8.33,0,0,1-3.18,1.54c-2.51.69-5.41.68-7.46-.92-2.28-1.78-2.85-4.93-3.33-7.78-.65-3.84-1.57-7.93-4.43-10.58-2.12-2-5.16-3-6.7-5.42-1.84-2.91-.87-6.71.3-9.95,1-2.81,2.51-8.5,5.45-9.94S880.26,738.12,883.31,738.67Z" transform="translate(-28 -101)" fill="#fbbebe"/><path d="M775,752.47a22.15,22.15,0,0,0,4.58,8.51c1.3,1.5,2.93,3.32,2.25,5.18a4.82,4.82,0,0,1-1.23,1.65c-9.66,9.44-23.17,14-36.57,15.72a1.29,1.29,0,0,1-.65,0c-.39-.17-.49-.67-.53-1.1a13.51,13.51,0,0,1,0-4.21c.65-3.27,3.52-5.58,6.33-7.39s5.88-3.55,7.44-6.5c1.95-3.66,1.13-8.43,3.45-11.86,1.88-2.79,5.38-4,8.71-4.5,1.15-.18,3.6-1.44,4.58-.86S774.66,751.32,775,752.47Z" transform="translate(-28 -101)" fill="#fbbebe"/><path d="M884.63,738.33a1.33,1.33,0,0,1,1.16-1.32,4.35,4.35,0,0,1,1.91.24,26.5,26.5,0,0,0,4.59.85,34.07,34.07,0,0,1,5.54.65,6.27,6.27,0,0,1,4.29,3.27,8.12,8.12,0,0,1,.47,3.1,47.06,47.06,0,0,1-1.43,12c-.08.3-.2.65-.49.76s-.5,0-.73.11a.9.9,0,0,0-.43.54,26.42,26.42,0,0,0-1.67,8c-.44,4-1,8.06-1.67,12.06-.39,2.34-.88,4.8-2.42,6.6-1.69,2-4.36,2.83-6.94,3.18-5.44.72-10.93-.37-16.3-1.49a4.77,4.77,0,0,1-2.75-1.23,3.09,3.09,0,0,1-.67-2.18c.12-2.69,2.6-4.59,4.83-6.09l3.09-2.07a1.6,1.6,0,0,0,.54-.49,1.67,1.67,0,0,0,.15-1l-.2-4a11.33,11.33,0,0,1,9.87,6.14c.42.85.83,1.84,1.71,2.17a2.26,2.26,0,0,0,2.69-1.63,6.93,6.93,0,0,0-.09-3.47c-1.81-9.67-1.38-19.61-2.48-29.38a6.63,6.63,0,0,0-1-3.1C885.73,739.88,884.74,739.23,884.63,738.33Z" transform="translate(-28 -101)" fill="#f86d70"/><rect x="752.15" y="409.08" width="43.28" height="21.31" rx="10.65" transform="translate(1519.58 738.47) rotate(180)" fill="#0960bd"/><circle cx="746.12" cy="318.73" r="6.66" fill="#fff"/><path d="M750.11,775.82c-.45.75-1.16,1.33-1.58,2.1a1.8,1.8,0,0,0,.34,2.35,2.32,2.32,0,0,0,1.43.14,48.11,48.11,0,0,0,26-11.78,18.21,18.21,0,0,0,3.19-3.49c.85-1.29,1.57-2.87,3-3.41a51.92,51.92,0,0,1,1.34,11.45c0,2.54-.36,5.43-2.43,6.9a8.63,8.63,0,0,1-2.7,1.1l-4.52,1.28a4.81,4.81,0,0,1-2.51.24c-.53-.14-1-.48-1.55-.58a3.8,3.8,0,0,0-1.76.23l-3.91,1.14a24.86,24.86,0,0,0-3.86,1.35c-1.12.53-2.15,1.21-3.24,1.8a38.78,38.78,0,0,1-5.66,2.3l-6.87,2.39a24.91,24.91,0,0,1-5.85,1.5c-1.38.12-2.79,0-4.16.23-1,.18-2,.56-3.1.64a8.11,8.11,0,0,1-4.87-1.44,4.53,4.53,0,0,1-1.42-1.26c-1-1.53-.13-3.55.83-5.1a20.16,20.16,0,0,1,7-7.18c1.2-.66,2.49-1.14,3.72-1.74,3.51-1.7,6.16-4.54,9.47-6.48C749.57,768.67,751.58,773.4,750.11,775.82Z" transform="translate(-28 -101)" fill="#f86d70"/><path d="M846.69,498.94a28.57,28.57,0,0,0,12.16,4.73,49.5,49.5,0,0,0,6.88.37,174.85,174.85,0,0,0,28.63-2.39c-3.76-4.15-7.57-8.59-9-14a23.11,23.11,0,0,1-.44-8.77,66,66,0,0,1,2.68-11,77.63,77.63,0,0,1-12.1-.31c-2.29-.24-7.91-2.32-9.9-.74s-.46,6.67-.43,9.06a2.26,2.26,0,0,1,0,.26,28.93,28.93,0,0,1-2.31,10.58C860,493.19,853.8,498.51,846.69,498.94Z" transform="translate(-28 -101)" fill="#fbbebe"/><path d="M865.18,475.84a24.06,24.06,0,0,0,19.75,3,66,66,0,0,1,2.68-11,77.63,77.63,0,0,1-12.1-.31c-2.29-.24-7.91-2.32-9.9-.74S865.15,473.45,865.18,475.84Z" transform="translate(-28 -101)" opacity="0.1"/><circle cx="850.38" cy="353.54" r="24.11" fill="#fbbebe"/><path d="M776.09,576.53a11.23,11.23,0,0,0,5.44,9.67,21.69,21.69,0,0,0,5.9,2.08c11,2.66,22.32,4.8,33.65,4.15a18.49,18.49,0,0,0,7.14-1.5,7.66,7.66,0,0,0,4.41-5.51,5.18,5.18,0,0,1,.34-1.75,5.11,5.11,0,0,1,1.67-1.49,6.84,6.84,0,0,0,2.59-6.82c1.37.62,2.81-.77,3.46-2.13s1.15-3,2.53-3.59c.94-.4,2-.16,3-.42,1.59-.41,2.56-2,3.68-3.15,2.28-2.44,5.53-3.7,8.51-5.21,8.88-4.47,16.11-11.56,23.2-18.53a77.76,77.76,0,0,0,10-11.18,41.2,41.2,0,0,0,2.2-3.6,101.82,101.82,0,0,0,5.55-12.71c.9-2.34,1.81-4.8,1.44-7.28,0-.22-.08-.44-.13-.67a14,14,0,0,0-2.19-4.42c-2.45-3.6-5.66-7-9.88-8.12s-8.42.23-12.71,1.14a31.85,31.85,0,0,1-4.31.66c-4.54.32-9-.9-13.42-2.11l-4.78-1.32c-2.39-.66-3.59-3.55-6-4.06a8.12,8.12,0,0,0-3.25.17c-4.91.93-9.87,2.14-14.2,4.64a21.32,21.32,0,0,0-2.76,1.88,17.47,17.47,0,0,0-6.42,9.47c-1,4.17-.06,8.63-1.06,12.8-.82,3.44-2.89,6.44-4.91,9.34L803,543.83a104.13,104.13,0,0,1-8.66,11.28C788,562,776.26,567.18,776.09,576.53Z" transform="translate(-28 -101)" fill="#f86d70"/><path d="M807.53,415.4c-.49-2.31-.85-4.71-2.12-6.69a15.16,15.16,0,0,0-3.12-3.28,20.74,20.74,0,0,0-6.68-4.17,8.34,8.34,0,0,0-7.56.87c-2.11,1.6-3,4.34-3.33,7a17.07,17.07,0,0,0,1.78,10.55c2,3.56,5.59,5.94,8.56,8.78a34.39,34.39,0,0,1,5.58,7,20.21,20.21,0,0,0,2.54,3.72,4.84,4.84,0,0,0,4,1.61,7,7,0,0,0,3.27-1.93c1.22-1.07,4.5-3,4.6-4.67.08-1.37-2.48-4.47-3.11-5.76A65.41,65.41,0,0,1,807.53,415.4Z" transform="translate(-28 -101)" fill="#fbbebe"/><path d="M722.81,694.64c3,5.6,6.34,11,9.05,16.8,1.57,3.37,2.93,6.83,4.68,10.11,1.91,3.57,4.26,6.89,6.26,10.41,5,8.9,7.83,18.94,10.42,28.83a57.39,57.39,0,0,0,20.52-7.22,12.9,12.9,0,0,0,1.23-.79,14.52,14.52,0,0,0,4.14-4.57c-2.39-9-4.84-18.23-9.71-26.22-1.59-2.6-3.41-5-5-7.61-4.73-7.45-5.71-16.84-11.12-23.81a4.08,4.08,0,0,1,0-4.84c.62-.81,1.62-1.58,1.43-2.59-.14-.73-.9-1.39-.61-2.07.14-.33.48-.51.74-.75.92-.84.8-2.29.89-3.53.2-3.16,2.09-5.93,3.92-8.51a5.34,5.34,0,0,1,1.44-1.55c.49-.3,1.07-.44,1.56-.74,1.72-1.07,1.6-3.59,2.43-5.46,1.08-2.46,3.8-3.71,5.59-5.7,2.27-2.54,2.84-6.07,5.24-8.29a7.11,7.11,0,0,1,.79-.64,39.7,39.7,0,0,0-1.41,11.61c-.23,13.44,3.13,27.34,1.56,40.69-1.24,10.58,5.28,21.14,14.52,26.44a70.28,70.28,0,0,0,11.31,4.76c5.78,2.05,11.56,4.16,17.23,6.53,4,1.66,8,3.46,11.86,5.37a146,146,0,0,1,14,7.76c5.57,3.54,11.15,7.14,15.1,12.43,3.83-.1,7.34-2.4,9.76-5.37s3.93-6.56,5.34-10.11c1.23-3.07,2.45-6.22,2.54-9.53a1.9,1.9,0,0,0-1.06-1.71l-26.46-14-5-2.62c-10.83-5.75-22-11.07-32.89-16.81-.73.21-1.33-.62-1.54-1.34s-.36-1.62-1.05-1.94c-.35-.16-.79-.16-1-.44a1.2,1.2,0,0,1-.18-.88c.35-5.24,4.13-10.06,3.37-15.25-.32-2.22-1.47-4.4-1-6.57.35-1.51,1.43-2.73,2-4.16,1.29-3.2,0-7,1.42-10.17a23.34,23.34,0,0,0,1.91-6.48,43.88,43.88,0,0,1,4.05-12.84,23.18,23.18,0,0,1,3.72-5.64c.8-.85,1.69-1.62,2.44-2.5,2.31-2.73,3.15-6.37,3.81-9.88,1.18-6.37,2-13,.52-19.29-.5-2.15-1.26-4.28-1.23-6.49,0-2.91,1.31-6.32-.71-8.43a6.6,6.6,0,0,0-3-1.52,90.43,90.43,0,0,0-14.35-2.65L790.22,582a20.28,20.28,0,0,1-7.35-1.91c-3-1.65-5-4.72-6.2-7.92-3.88,2.83-5.34,8.1-8.43,11.76-1.51,1.79-3.37,3.23-5,4.87a55.11,55.11,0,0,0-5.54,6.83c-4.61,6.33-9.25,12.71-12.55,19.8-1.71,3.69-3,7.54-4.42,11.36-5.39,15.07-14.18,29.37-17.83,44.94-.9,3.81-3.23,7.24-3.58,11.14C718.91,687,720.82,691,722.81,694.64Z" transform="translate(-28 -101)" fill="#434175"/><path d="M838.53,569.54a6.85,6.85,0,0,1,.81,3.26c-.49-2.44-3.85-3.79-4.06-6.2-.1-1.11.1-1.06.79-.47C837.12,567,837.57,568.58,838.53,569.54Z" transform="translate(-28 -101)" opacity="0.1"/><path d="M828.32,576.94a5.15,5.15,0,0,1,1.53,2.26,5.75,5.75,0,0,1,.3,3.93c-.49-.23-.66-.83-.81-1.36a9.38,9.38,0,0,0-1-2.33c-.4-.63-2.23-2.13-2.21-2.82C826.1,575.58,827.83,576.57,828.32,576.94Z" transform="translate(-28 -101)" opacity="0.1"/><path d="M827.14,495.35a25.23,25.23,0,0,0,5.08,3.38c4.78,2.42,10.07,3.69,14.88,6a72.17,72.17,0,0,1,6.9,4c4.77,3,9.53,6,14.29,9.05a15.75,15.75,0,0,1,3.15,2.39c1.72,1.84,1.71,5,3.28,7a9.4,9.4,0,0,0,6.93,3.2,22.5,22.5,0,0,0,7.73-1.3,38.24,38.24,0,0,0,4.42-1.61,20.47,20.47,0,0,0,4.24-2.42,12.19,12.19,0,0,0,5-7.89,15.58,15.58,0,0,0-.85-6.44,25.11,25.11,0,0,0-1.52-3.91,15.17,15.17,0,0,0-1.22-2.05c-3.28-4.65-9.06-6.84-14.65-7.93-2.95-.57-5.95-.92-8.91-1.42a31.85,31.85,0,0,1-4.31.66c-4.54.32-9-.9-13.42-2.11l-4.78-1.32c-2.39-.66-3.59-3.55-6-4.06a8.12,8.12,0,0,0-3.25.17c-4.91.93-9.87,2.14-14.2,4.64A21.32,21.32,0,0,0,827.14,495.35Z" transform="translate(-28 -101)" opacity="0.1"/><path d="M815.49,431.36c.61,5.83,5.53,10.11,8.53,15.14,1.46,2.45,2.48,5.13,3.79,7.66a75,75,0,0,0,5,8l5.35,7.77c3.15,4.57,6.33,9.18,10.35,13,7,1.19,12.9,6.4,19.55,8.93,5.33,2,11.13,2.3,16.72,3.39s11.37,3.27,14.65,7.93a20.83,20.83,0,0,1,2.74,6,15.54,15.54,0,0,1,.85,6.43,12.19,12.19,0,0,1-5,7.9,27.71,27.71,0,0,1-8.65,4,22.74,22.74,0,0,1-7.73,1.3,9.44,9.44,0,0,1-6.94-3.2c-1.56-2-1.55-5.19-3.27-7a15.75,15.75,0,0,0-3.15-2.39l-14.29-9a72.17,72.17,0,0,0-6.9-4c-4.81-2.35-10.1-3.62-14.88-6s-9.23-6.41-10.17-11.68c-2.91-16.19-14.12-29.84-23.7-43.21.31-.06.22-.78.33-1.08a14,14,0,0,1,7-7.08C808.75,432.5,812.17,432.07,815.49,431.36Z" transform="translate(-28 -101)" fill="#f86d70"/><path d="M866,431.48a8.87,8.87,0,0,1,1-5.08c1.59-2.64,4.91-3.57,7.93-4.19s5.8-1.1,8.72-1.52a20.1,20.1,0,0,1,7.21-.13c3.26.72,6,2.91,9,4.26,3.6,1.61,7.6,2,11.44,2.92s7.79,2.39,10.2,5.52c1.83,2.37,2.56,5.4,3.11,8.35,4.57,24.63-.35,49.89-1.28,74.92-.37,9.74.07,20.15,5.64,28.16l-16.21-.43c-4.15-.11-8.61-.33-11.87-2.89-2.88-2.25-4.24-5.88-5.46-9.31a29,29,0,0,1-2.08-8.35c-.25-5.88,3.09-11.65,2-17.44-.81-4.32-4-7.82-7.32-10.65s-7.1-5.3-9.83-8.75c-4.85-6.15-5.78-14.54-5.18-22.35.36-4.64,1.2-9.29.79-13.93a17.53,17.53,0,0,0-3.67-9.76C867.59,437.75,866.24,435.83,866,431.48Z" transform="translate(-28 -101)" fill="#434175"/><path d="M867,426.4c1.56-2.6,4.8-3.54,7.77-4.15a7.67,7.67,0,0,0-3.85,3,9,9,0,0,0-1,5.09c.22,4.35,1.57,6.27,4.15,9.35a17.44,17.44,0,0,1,3.68,9.76c.4,4.64-.43,9.28-.79,13.93-.61,7.8.32,16.2,5.18,22.35,2.72,3.45,6.47,5.91,9.83,8.75s6.51,6.33,7.32,10.65c1.08,5.78-2.26,11.56-2,17.44a28.51,28.51,0,0,0,2.07,8.34c1.23,3.44,2.59,7.07,5.46,9.32,3.26,2.56,7.73,2.78,11.88,2.89l11.48.3c.25.42.52.84.8,1.25l-16.21-.43c-4.15-.11-8.61-.33-11.87-2.89-2.88-2.25-4.24-5.88-5.46-9.31a29,29,0,0,1-2.08-8.35c-.25-5.88,3.09-11.65,2-17.44-.81-4.32-4-7.82-7.32-10.65s-7.1-5.3-9.83-8.75c-4.85-6.15-5.78-14.54-5.18-22.35.36-4.64,1.2-9.29.79-13.93a17.53,17.53,0,0,0-3.67-9.76c-2.58-3.08-3.93-5-4.16-9.35A8.87,8.87,0,0,1,867,426.4Z" transform="translate(-28 -101)" opacity="0.1"/><path d="M745.22,680.23,775,752.78a14.52,14.52,0,0,0,4.14-4.57c-2.39-9-4.84-18.23-9.71-26.22-1.59-2.6-3.41-5-5-7.61-4.73-7.45-5.71-16.84-11.12-23.81a4.08,4.08,0,0,1,0-4.84c.62-.81,1.62-1.58,1.43-2.59-.14-.73-.9-1.39-.61-2.07.14-.33.48-.51.74-.75.92-.84.8-2.29.89-3.53.2-3.16,2.09-5.93,3.92-8.51a5.34,5.34,0,0,1,1.44-1.55c.49-.3,1.07-.44,1.56-.74,1.72-1.07,1.6-3.59,2.43-5.46,1.08-2.46,3.8-3.71,5.59-5.7,2.27-2.54,2.84-6.07,5.24-8.29l.21-.52-2.25-14Z" transform="translate(-28 -101)" opacity="0.1"/><ellipse cx="977.05" cy="659.35" rx="33.95" ry="6.53" fill="#0960bd"/><ellipse cx="977.62" cy="656.57" rx="3.95" ry="5.17" fill="#3f3d56"/><ellipse cx="977.62" cy="650.25" rx="3.95" ry="5.17" fill="#3f3d56"/><ellipse cx="977.62" cy="643.92" rx="3.95" ry="5.17" fill="#3f3d56"/><ellipse cx="977.62" cy="637.6" rx="3.95" ry="5.17" fill="#3f3d56"/><ellipse cx="977.62" cy="631.27" rx="3.95" ry="5.17" fill="#3f3d56"/><ellipse cx="977.62" cy="624.95" rx="3.95" ry="5.17" fill="#3f3d56"/><ellipse cx="977.62" cy="618.63" rx="3.95" ry="5.17" fill="#3f3d56"/><path d="M990.82,676.35a18.78,18.78,0,0,1-1.47-2.17l10.38-1.71-11.23.09a19,19,0,0,1-.36-15l15.07,7.81-13.9-10.21a18.94,18.94,0,1,1,31.27,21.19,18.34,18.34,0,0,1,2.16,3.45l-13.48,7,14.38-4.82a19.07,19.07,0,0,1,1,6.07,18.85,18.85,0,0,1-4.06,11.71,18.93,18.93,0,1,1-29.76,0,18.94,18.94,0,0,1,0-23.41Z" transform="translate(-28 -101)" fill="#0960bd"/><path d="M1024.64,688.05a18.85,18.85,0,0,1-4.06,11.71,18.93,18.93,0,1,1-29.76,0C988.28,696.54,1024.64,685.93,1024.64,688.05Z" transform="translate(-28 -101)" opacity="0.1"/><ellipse cx="1043.17" cy="586.83" rx="22.83" ry="4.39" fill="#0960bd"/><ellipse cx="1043.56" cy="584.97" rx="2.66" ry="3.48" fill="#3f3d56"/><ellipse cx="1043.56" cy="580.72" rx="2.66" ry="3.48" fill="#3f3d56"/><ellipse cx="1043.56" cy="576.46" rx="2.66" ry="3.48" fill="#3f3d56"/><ellipse cx="1043.56" cy="572.21" rx="2.66" ry="3.48" fill="#3f3d56"/><ellipse cx="1043.56" cy="567.96" rx="2.66" ry="3.48" fill="#3f3d56"/><ellipse cx="1043.56" cy="563.71" rx="2.66" ry="3.48" fill="#3f3d56"/><ellipse cx="1043.56" cy="559.45" rx="2.66" ry="3.48" fill="#3f3d56"/><path d="M1061.61,631.36a11,11,0,0,1-1-1.46l7-1.15-7.55.06a12.62,12.62,0,0,1-1.17-5.32,12.78,12.78,0,0,1,.92-4.77l10.14,5.26-9.35-6.87a12.73,12.73,0,1,1,21,14.25,12.56,12.56,0,0,1,1.45,2.32l-9.06,4.71,9.66-3.25a12.77,12.77,0,0,1-2.05,12,12.74,12.74,0,1,1-20,0,12.71,12.71,0,0,1,0-15.74Z" transform="translate(-28 -101)" fill="#0960bd"/><path d="M1084.34,639.23a12.72,12.72,0,0,1-2.72,7.87,12.74,12.74,0,1,1-20,0C1059.9,644.93,1084.34,637.8,1084.34,639.23Z" transform="translate(-28 -101)" opacity="0.1"/></svg>
0 2 \ No newline at end of file
... ...
src/assets/svg/no-data.svg 0 → 100644
  1 +<svg id="e4fde902-34f0-42ac-83bb-70aac2088463" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" width="855.41839" height="610.77534" viewBox="0 0 855.41839 610.77534"><circle cx="39.53587" cy="110.72662" r="13.63057" fill="#e6e6e6"/><circle cx="80.42757" cy="110.72662" r="13.63057" fill="#e6e6e6"/><circle cx="121.31927" cy="110.72662" r="13.63057" fill="#e6e6e6"/><circle cx="162.21097" cy="110.72662" r="13.63057" fill="#e6e6e6"/><circle cx="203.10267" cy="110.72662" r="13.63057" fill="#e6e6e6"/><circle cx="243.99437" cy="110.72662" r="13.63057" fill="#e6e6e6"/><circle cx="284.88607" cy="110.72662" r="13.63057" fill="#e6e6e6"/><path d="M488.67447,271.93783H180.32909a5.55346,5.55346,0,0,1-5.54693-5.54693V244.28714a5.55345,5.55345,0,0,1,5.54693-5.54693H488.67447a5.55346,5.55346,0,0,1,5.54693,5.54693V266.3909A5.55347,5.55347,0,0,1,488.67447,271.93783ZM180.32909,240.959a3.3318,3.3318,0,0,0-3.32816,3.32816V266.3909a3.3318,3.3318,0,0,0,3.32816,3.32815H488.67447a3.33179,3.33179,0,0,0,3.32815-3.32815V244.28714a3.33179,3.33179,0,0,0-3.32815-3.32816Z" transform="translate(-172.29081 -144.61233)" fill="#e6e6e6"/><path d="M246.31694,147.79938a3.19065,3.19065,0,0,1,3.187,3.187V220.049a3.19065,3.19065,0,0,1-3.187,3.187h-67.652a3.19065,3.19065,0,0,1-3.187-3.187V150.98643a3.19065,3.19065,0,0,1,3.187-3.187h67.652m0-3.18705h-67.652a6.3741,6.3741,0,0,0-6.3741,6.3741V220.049a6.3741,6.3741,0,0,0,6.3741,6.3741h67.652a6.37411,6.37411,0,0,0,6.3741-6.3741V150.98643a6.37411,6.37411,0,0,0-6.3741-6.3741Z" transform="translate(-172.29081 -144.61233)" fill="#e6e6e6"/><path d="M235.76469,165.95293H190.62778a1.59353,1.59353,0,1,1,0-3.187h45.13691a1.59353,1.59353,0,1,1,0,3.187Z" transform="translate(-172.29081 -144.61233)" fill="#0960bd"/><path d="M235.76469,177.23755H190.62778a1.59353,1.59353,0,1,1,0-3.187h45.13691a1.59353,1.59353,0,1,1,0,3.187Z" transform="translate(-172.29081 -144.61233)" fill="#0960bd"/><path d="M235.76469,188.52139H190.62778a1.59353,1.59353,0,1,1,0-3.187h45.13691a1.59353,1.59353,0,1,1,0,3.187Z" transform="translate(-172.29081 -144.61233)" fill="#0960bd"/><path d="M235.76469,199.806H190.62778a1.59353,1.59353,0,1,1,0-3.187h45.13691a1.59353,1.59353,0,1,1,0,3.187Z" transform="translate(-172.29081 -144.61233)" fill="#0960bd"/><path d="M235.76469,211.09063H190.62778a1.59353,1.59353,0,1,1,0-3.18706h45.13691a1.59353,1.59353,0,0,1,0,3.18706Z" transform="translate(-172.29081 -144.61233)" fill="#0960bd"/><path d="M477.37812,147.79938a3.19065,3.19065,0,0,1,3.187,3.187V220.049a3.19065,3.19065,0,0,1-3.187,3.187h-67.652a3.19065,3.19065,0,0,1-3.187-3.187V150.98643a3.19065,3.19065,0,0,1,3.187-3.187h67.652m0-3.18705h-67.652a6.3741,6.3741,0,0,0-6.3741,6.3741V220.049a6.3741,6.3741,0,0,0,6.3741,6.3741h67.652a6.3741,6.3741,0,0,0,6.3741-6.3741V150.98643a6.3741,6.3741,0,0,0-6.3741-6.3741Z" transform="translate(-172.29081 -144.61233)" fill="#e6e6e6"/><path d="M466.82588,165.95293H421.689a1.59353,1.59353,0,1,1,0-3.187h45.13692a1.59353,1.59353,0,0,1,0,3.187Z" transform="translate(-172.29081 -144.61233)" fill="#0960bd"/><path d="M466.82588,177.23755H421.689a1.59353,1.59353,0,1,1,0-3.187h45.13692a1.59353,1.59353,0,0,1,0,3.187Z" transform="translate(-172.29081 -144.61233)" fill="#0960bd"/><path d="M466.82588,188.52139H421.689a1.59353,1.59353,0,1,1,0-3.187h45.13692a1.59353,1.59353,0,0,1,0,3.187Z" transform="translate(-172.29081 -144.61233)" fill="#0960bd"/><path d="M466.82588,199.806H421.689a1.59353,1.59353,0,1,1,0-3.187h45.13692a1.59353,1.59353,0,0,1,0,3.187Z" transform="translate(-172.29081 -144.61233)" fill="#0960bd"/><path d="M466.82588,211.09063H421.689a1.59353,1.59353,0,1,1,0-3.18706h45.13692a1.59353,1.59353,0,0,1,0,3.18706Z" transform="translate(-172.29081 -144.61233)" fill="#0960bd"/><path d="M707.317,280.59077a3.19065,3.19065,0,0,1,3.187,3.187v69.06255a3.19066,3.19066,0,0,1-3.187,3.187H639.665a3.19066,3.19066,0,0,1-3.187-3.187V283.77782a3.19065,3.19065,0,0,1,3.187-3.187h67.652m0-3.187H639.665a6.3741,6.3741,0,0,0-6.3741,6.3741v69.06255a6.3741,6.3741,0,0,0,6.3741,6.3741h67.652a6.37411,6.37411,0,0,0,6.3741-6.3741V283.77782a6.3741,6.3741,0,0,0-6.3741-6.3741Z" transform="translate(-172.29081 -144.61233)" fill="#0960bd"/><path d="M696.76476,298.74432H651.62784a1.59353,1.59353,0,1,1,0-3.187h45.13692a1.59353,1.59353,0,0,1,0,3.187Z" transform="translate(-172.29081 -144.61233)" fill="#0960bd"/><path d="M696.76476,310.02894H651.62784a1.59353,1.59353,0,0,1,0-3.18706h45.13692a1.59353,1.59353,0,0,1,0,3.18706Z" transform="translate(-172.29081 -144.61233)" fill="#0960bd"/><path d="M696.76476,321.31278H651.62784a1.59352,1.59352,0,1,1,0-3.187h45.13692a1.59353,1.59353,0,0,1,0,3.187Z" transform="translate(-172.29081 -144.61233)" fill="#0960bd"/><path d="M696.76476,332.59739H651.62784a1.59353,1.59353,0,1,1,0-3.187h45.13692a1.59353,1.59353,0,0,1,0,3.187Z" transform="translate(-172.29081 -144.61233)" fill="#0960bd"/><path d="M696.76476,343.882H651.62784a1.59353,1.59353,0,1,1,0-3.187h45.13692a1.59353,1.59353,0,0,1,0,3.187Z" transform="translate(-172.29081 -144.61233)" fill="#0960bd"/><path d="M362.73282,226.42308H293.30943a7.08972,7.08972,0,0,1-7.08139-7.08138V169.66541a7.08988,7.08988,0,0,1,7.08139-7.08216h69.42339a7.09,7.09,0,0,1,7.08217,7.08216V219.3417A7.08988,7.08988,0,0,1,362.73282,226.42308ZM293.30943,165.7703a3.89917,3.89917,0,0,0-3.89434,3.89511V219.3417a3.89851,3.89851,0,0,0,3.89434,3.89433h69.42339a3.89917,3.89917,0,0,0,3.89511-3.89433V169.66541a3.89983,3.89983,0,0,0-3.89511-3.89511Z" transform="translate(-172.29081 -144.61233)" fill="#e6e6e6"/><path d="M350.59,184.81246H305.45305a1.59353,1.59353,0,0,1,0-3.187H350.59a1.59353,1.59353,0,1,1,0,3.187Z" transform="translate(-172.29081 -144.61233)" fill="#0960bd"/><path d="M350.59,196.09708H305.45305a1.59353,1.59353,0,0,1,0-3.187H350.59a1.59353,1.59353,0,1,1,0,3.187Z" transform="translate(-172.29081 -144.61233)" fill="#0960bd"/><path d="M350.59,207.38092H305.45305a1.59353,1.59353,0,0,1,0-3.187H350.59a1.59353,1.59353,0,1,1,0,3.187Z" transform="translate(-172.29081 -144.61233)" fill="#0960bd"/><path d="M593.09111,253.95025,526.41486,234.6141a7.08971,7.08971,0,0,1-4.82882-8.77351l13.83608-47.71054a7.08988,7.08988,0,0,1,8.77372-4.82958l66.67625,19.33615a7.09,7.09,0,0,1,4.82935,8.77447l-13.83608,47.71055A7.08988,7.08988,0,0,1,593.09111,253.95025Zm-49.78294-77.58884a3.89916,3.89916,0,0,0-4.82511,2.65631L524.647,226.72827a3.89851,3.89851,0,0,0,2.65557,4.8249l66.67624,19.33614a3.89918,3.89918,0,0,0,4.82565-2.65535l13.83608-47.71054a3.89985,3.89985,0,0,0-2.65609-4.82587Z" transform="translate(-172.29081 -144.61233)" fill="#e6e6e6"/><path d="M593.01835,210.60411l-43.3508-12.57175a1.59353,1.59353,0,0,1,.88767-3.06094L593.906,207.54318a1.59352,1.59352,0,1,1-.88768,3.06093Z" transform="translate(-172.29081 -144.61233)" fill="#0960bd"/><path d="M589.87531,221.44219,546.5245,208.87043a1.59352,1.59352,0,1,1,.88767-3.06093L590.763,218.38125a1.59353,1.59353,0,0,1-.88767,3.06094Z" transform="translate(-172.29081 -144.61233)" fill="#0960bd"/><path d="M586.73248,232.27951l-43.35081-12.57175a1.59353,1.59353,0,0,1,.88767-3.06094l43.35081,12.57176a1.59352,1.59352,0,0,1-.88767,3.06093Z" transform="translate(-172.29081 -144.61233)" fill="#0960bd"/><rect x="156.10589" y="607.77534" width="699.3125" height="3" fill="#e6e6e6"/><polygon points="562.14 603.085 448.421 603.085 452.276 552.973 558.285 552.973 562.14 603.085" fill="#e6e6e6"/><rect x="442.63878" y="597.3034" width="127.21043" height="11.5646" fill="#e6e6e6"/><path d="M895.37073,374.74021H460.73514a11.56458,11.56458,0,0,0-11.56458,11.56458h0V651.3265H906.93533V386.30479a11.56457,11.56457,0,0,0-11.56456-11.56458Z" transform="translate(-172.29081 -144.61233)" fill="#3f3d56"/><path d="M449.17056,651.3265v43.36719a11.56457,11.56457,0,0,0,11.56458,11.56457H895.37073a11.56459,11.56459,0,0,0,11.5646-11.56457h0V651.3265Z" transform="translate(-172.29081 -144.61233)" fill="#e6e6e6"/><rect x="300.00891" y="254.22076" width="412.47016" height="231.29169" fill="#e6e6e6"/><circle cx="506.244" cy="533.69821" r="11.56459" fill="#3f3d56"/><circle cx="312.86987" cy="261.79534" r="2.19466" fill="#fff"/><circle cx="321.20026" cy="261.79534" r="2.19466" fill="#fff"/><circle cx="329.53064" cy="261.79534" r="2.19466" fill="#fff"/><rect x="310.6752" y="269.25275" width="389.91608" height="194.24707" fill="#fff"/><path d="M508.885,443.41111a1.37973,1.37973,0,0,0-1.37842,1.37842v69.67578a1.37973,1.37973,0,0,0,1.37842,1.37841H589.3493a1.37973,1.37973,0,0,0,1.37842-1.37841V444.78953a1.37973,1.37973,0,0,0-1.37842-1.37842Z" transform="translate(-172.29081 -144.61233)" fill="#e6e6e6"/><path d="M638.08075,443.63523a1.37984,1.37984,0,0,0-1.37891,1.37842v69.45166a1.37984,1.37984,0,0,0,1.37891,1.37841h80.208a1.37963,1.37963,0,0,0,1.37793-1.37841V445.01365a1.37963,1.37963,0,0,0-1.37793-1.37842Z" transform="translate(-172.29081 -144.61233)" fill="#e6e6e6"/><path d="M765.92157,442.9072a1.37963,1.37963,0,0,0-1.37793,1.37842v70.17969a1.37962,1.37962,0,0,0,1.37793,1.37841h81.042a1.37962,1.37962,0,0,0,1.37793-1.37841V444.28562a1.37963,1.37963,0,0,0-1.37793-1.37842Z" transform="translate(-172.29081 -144.61233)" fill="#e6e6e6"/><path d="M510.35614,550.333a2.84986,2.84986,0,0,0,0,5.69971h75.65234a2.84986,2.84986,0,0,0,0-5.69971Z" transform="translate(-172.29081 -144.61233)" fill="#e6e6e6"/><path d="M510.35614,563.88865a2.8501,2.8501,0,0,0,0,5.70019h34.062a2.8501,2.8501,0,0,0,0-5.70019Z" transform="translate(-172.29081 -144.61233)" fill="#0960bd"/><path d="M640.94012,550.333a2.84986,2.84986,0,0,0,0,5.69971h75.65235a2.84986,2.84986,0,0,0,0-5.69971Z" transform="translate(-172.29081 -144.61233)" fill="#e6e6e6"/><path d="M640.94012,563.88865a2.8501,2.8501,0,0,0,0,5.70019h34.0625a2.8501,2.8501,0,0,0,0-5.70019Z" transform="translate(-172.29081 -144.61233)" fill="#0960bd"/><path d="M768.26044,550.333a2.84986,2.84986,0,0,0,0,5.69971h75.65234a2.84986,2.84986,0,0,0,0-5.69971Z" transform="translate(-172.29081 -144.61233)" fill="#e6e6e6"/><path d="M510.35614,536.333a2.84986,2.84986,0,0,0,0,5.69971h75.65234a2.84986,2.84986,0,0,0,0-5.69971Z" transform="translate(-172.29081 -144.61233)" fill="#e6e6e6"/><path d="M640.94012,536.333a2.84986,2.84986,0,0,0,0,5.69971h75.65235a2.84986,2.84986,0,0,0,0-5.69971Z" transform="translate(-172.29081 -144.61233)" fill="#e6e6e6"/><path d="M768.26044,536.333a2.84986,2.84986,0,0,0,0,5.69971h75.65234a2.84986,2.84986,0,0,0,0-5.69971Z" transform="translate(-172.29081 -144.61233)" fill="#e6e6e6"/><path d="M768.26044,563.88865a2.8501,2.8501,0,0,0,0,5.70019H802.322a2.8501,2.8501,0,0,0,0-5.70019Z" transform="translate(-172.29081 -144.61233)" fill="#0960bd"/></svg>
0 2 \ No newline at end of file
... ...
src/components/CountTo/src/index.vue
... ... @@ -7,7 +7,6 @@
7 7 import { defineComponent, reactive, computed, watch, onMounted, unref, toRef } from 'vue';
8 8 import { countToProps } from './props';
9 9 import { isNumber } from '/@/utils/is';
10   - import { requestAnimationFrame, cancelAnimationFrame } from '/@/utils/animation';
11 10 export default defineComponent({
12 11 name: 'CountTo',
13 12 props: countToProps,
... ...
src/hooks/event/useScrollTo.ts
1 1 import { isFunction, isUnDef } from '/@/utils/is';
2 2 import { ref, unref } from 'vue';
3   -import { requestAnimationFrame } from '/@/utils/animation';
4 3  
5 4 export interface ScrollToParams {
6 5 el: HTMLElement;
... ...
src/router/constant.ts
1 1 import type { AppRouteRecordRaw } from '/@/router/types';
2 2 import ParentLayout from '/@/layouts/page/ParentView.vue';
3 3  
4   -const EXCEPTION_COMPONENT = () => import('../views/sys/exception/Exception');
  4 +const EXCEPTION_COMPONENT = () => import('../views/sys/exception/Exception.vue');
5 5  
6 6 /**
7 7 * @description: default layout
... ...
src/router/guard/titleGuard.ts
... ... @@ -2,7 +2,7 @@ import type { Router } from &#39;vue-router&#39;;
2 2  
3 3 import { useGlobSetting } from '/@/hooks/setting';
4 4  
5   -import { setTitle } from '/@/utils/browser';
  5 +import { setTitle } from '/@/utils';
6 6 import { useI18n } from '/@/hooks/web/useI18n';
7 7  
8 8 import { REDIRECT_NAME } from '/@/router/constant';
... ...
src/router/routes/modules/demo/page.ts
... ... @@ -4,7 +4,7 @@ import { getParentLayout, LAYOUT } from &#39;/@/router/constant&#39;;
4 4 import { ExceptionEnum } from '/@/enums/exceptionEnum';
5 5 import { t } from '/@/hooks/web/useI18n';
6 6  
7   -const ExceptionPage = () => import('/@/views/sys/exception/Exception');
  7 +const ExceptionPage = () => import('/@/views/sys/exception/Exception.vue');
8 8  
9 9 const page: AppRouteModule = {
10 10 path: '/page-demo',
... ...
src/utils/animation.ts deleted 100644 → 0
1   -import { isServer } from '/@/utils/is';
2   -let lastTime = 0;
3   -const prefixes = 'webkit moz ms o'.split(' ');
4   -
5   -let requestAnimationFrame: typeof window.requestAnimationFrame;
6   -let cancelAnimationFrame: typeof window.cancelAnimationFrame;
7   -(() => {
8   - const NO_LOOP: any = () => {};
9   - const getWindowFrame = (name: string) => {
10   - return name as any;
11   - };
12   - if (isServer) {
13   - requestAnimationFrame = cancelAnimationFrame = NO_LOOP;
14   - } else {
15   - requestAnimationFrame = window.requestAnimationFrame;
16   - cancelAnimationFrame = window.cancelAnimationFrame;
17   - let prefix;
18   - for (let i = 0; i < prefixes.length; i++) {
19   - if (requestAnimationFrame && cancelAnimationFrame) {
20   - break;
21   - }
22   - prefix = prefixes[i];
23   - requestAnimationFrame =
24   - requestAnimationFrame || window[getWindowFrame(prefix + 'RequestAnimationFrame')];
25   - cancelAnimationFrame =
26   - cancelAnimationFrame ||
27   - window[getWindowFrame(prefix + 'CancelAnimationFrame')] ||
28   - window[getWindowFrame(prefix + 'CancelRequestAnimationFrame')];
29   - }
30   -
31   - // If the current browser does not support requestAnimationFrame and cancelAnimationFrame, it will fall back to setTimeout
32   - if (!requestAnimationFrame || !cancelAnimationFrame) {
33   - requestAnimationFrame = function (callback: Fn) {
34   - const currTime = new Date().getTime();
35   - const timeToCall = Math.max(0, 16 - (currTime - lastTime));
36   - const id = window.setTimeout(() => {
37   - /* eslint-disable-next-line */
38   - callback(currTime + timeToCall);
39   - }, timeToCall);
40   - lastTime = currTime + timeToCall;
41   - return id;
42   - };
43   -
44   - cancelAnimationFrame = function (id: number) {
45   - window.clearTimeout(id);
46   - };
47   - }
48   - }
49   -})();
50   -
51   -export { requestAnimationFrame, cancelAnimationFrame };
src/utils/browser.ts deleted 100644 → 0
1   -function getTypeVersion() {
2   - const userAgent = navigator.userAgent.toLowerCase();
3   -
4   - const browserTypes = {
5   - IE: /(?:msie|trident.*rv).([\d.]+)/,
6   - Edge: /edge.([\d.]+)/,
7   - Chrome: /chrome.([\d.]+)/,
8   - Firefox: /firefox.([\d.]+)/,
9   - Opera: /opera.([\d.]+)/,
10   - Safari: /(?:safari|version).([\d.]+)/,
11   - };
12   - type BrowserKeys = keyof typeof browserTypes;
13   -
14   - /** browser type */
15   - let type!: BrowserKeys | null;
16   - /** browser version */
17   - let version!: string | null;
18   -
19   - for (type in browserTypes) {
20   - if ((version = browserTypes[type as BrowserKeys].exec(userAgent) as any)) {
21   - version = version[1];
22   - break;
23   - }
24   - }
25   -
26   - if (version) {
27   - if (type === 'IE') {
28   - try {
29   - document.execCommand('BackgroundImageCache', false, true as any);
30   - } catch (error) {
31   - console.log(error);
32   - }
33   - }
34   - } else {
35   - type = version = null;
36   - }
37   - return { type, version };
38   -}
39   -
40   -const { type, version } = getTypeVersion();
41   -
42   -export function getType() {
43   - return type;
44   -}
45   -
46   -export function getVersion() {
47   - return version;
48   -}
49   -
50   -export function isIeFn() {
51   - return type === 'IE';
52   -}
53   -
54   -export function isChromeFn() {
55   - return type === 'Chrome';
56   -}
57   -
58   -export function isEdgeFn() {
59   - return type === 'Edge';
60   -}
61   -
62   -export function isSafariFn() {
63   - return type === 'Safari';
64   -}
65   -
66   -export function isFirefoxFn() {
67   - return type === 'Firefox';
68   -}
69   -
70   -export function isOperaFn() {
71   - return type === 'Opera';
72   -}
73   -
74   -/**
75   - * set page Title
76   - * @param {*} title :page Title
77   - */
78   -function setDocumentTitle(title: string) {
79   - document.title = title;
80   - const ua = navigator.userAgent;
81   - const regex = /\bMicroMessenger\/([\d.]+)/;
82   - // 兼容
83   - if (regex.test(ua) && /ip(hone|od|ad)/i.test(ua)) {
84   - const i = document.createElement('iframe');
85   - i.src = '/favicon.ico';
86   - i.style.display = 'none';
87   - i.onload = function () {
88   - setTimeout(function () {
89   - i.remove();
90   - }, 9);
91   - };
92   - document.body.appendChild(i);
93   - }
94   -}
95   -
96   -export function setTitle(title: string, appTitle?: string) {
97   - if (title) {
98   - const _title = title ? ` ${title}-${appTitle} ` : `${appTitle}`;
99   - setDocumentTitle(_title);
100   - }
101   -}
src/utils/color.ts
... ... @@ -6,7 +6,7 @@
6 6 * @return Boolean
7 7 */
8 8 export function isHexColor(color: string) {
9   - const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
  9 + const reg = /^#([0-9a-fA-F]{3}|[0-9a-fA-f]{6})$/;
10 10 return reg.test(color);
11 11 }
12 12  
... ... @@ -40,7 +40,7 @@ export function hexToRGB(hex: string) {
40 40 }
41 41 sHex = sColorNew;
42 42 }
43   - const sColorChange = [];
  43 + const sColorChange: number[] = [];
44 44 for (let i = 1; i < 7; i += 2) {
45 45 sColorChange.push(parseInt('0x' + sHex.slice(i, i + 2)));
46 46 }
... ...
src/utils/dateUtil.ts
... ... @@ -14,27 +14,4 @@ export function formatToDate(date: moment.MomentInput = null, format = DATE_FORM
14 14 return moment(date).format(format);
15 15 }
16 16  
17   -export function formatAgo(str: string | number) {
18   - if (!str) return '';
19   - const date = new Date(Number(str));
20   - const time = new Date().getTime() - date.getTime(); // 现在的时间-传入的时间 = 相差的时间(单位 = 毫秒)
21   - if (time < 0) {
22   - return '';
23   - } else if (time / 1000 < 30) {
24   - return '刚刚';
25   - } else if (time / 1000 < 60) {
26   - return parseInt(String(time / 1000)) + '秒前';
27   - } else if (time / 60000 < 60) {
28   - return parseInt(String(time / 60000)) + '分钟前';
29   - } else if (time / 3600000 < 24) {
30   - return parseInt(String(time / 3600000)) + '小时前';
31   - } else if (time / 86400000 < 31) {
32   - return parseInt(String(time / 86400000)) + '天前';
33   - } else if (time / 2592000000 < 12) {
34   - return parseInt(String(time / 2592000000)) + '月前';
35   - } else {
36   - return parseInt(String(time / 31536000000)) + '年前';
37   - }
38   -}
39   -
40 17 export const dateUtil = moment;
... ...
src/utils/helper/persistent.ts
1 1 import { createStorage } from '/@/utils/cache';
2   -import { isIeFn } from '/@/utils/browser';
3 2  
4 3 import { BASE_LOCAL_CACHE_KEY, BASE_SESSION_CACHE_KEY } from '/@/enums/cacheEnum';
5 4  
... ... @@ -127,9 +126,5 @@ export function persistentCache() {
127 126 }
128 127 }
129 128  
130   - if (isIeFn() && (document as any).attachEvent) {
131   - (document as any).attachEvent('onstorage', storageChange);
132   - } else {
133   - window.addEventListener('storage', storageChange);
134   - }
  129 + window.addEventListener('storage', storageChange);
135 130 })();
... ...
src/utils/http/axios/Axios.ts
... ... @@ -81,7 +81,9 @@ export class VAxios {
81 81 // 请求拦截器配置处理
82 82 this.axiosInstance.interceptors.request.use((config: AxiosRequestConfig) => {
83 83 // If cancel repeat request is turned on, then cancel repeat request is prohibited
84   - const { headers: { ignoreCancelToken } = { ignoreCancelToken: false } } = config;
  84 + const {
  85 + headers: { ignoreCancelToken = false },
  86 + } = config;
85 87 !ignoreCancelToken && axiosCanceler.addPending(config);
86 88 if (requestInterceptors && isFunction(requestInterceptors)) {
87 89 config = requestInterceptors(config);
... ...
src/utils/http/ws/.gitkeep deleted 100644 → 0
src/utils/index.ts
... ... @@ -99,3 +99,32 @@ export function getLastItem&lt;T extends any&gt;(list: T) {
99 99 return Array.from(list.values()).slice(-1)[0];
100 100 }
101 101 }
  102 +
  103 +/**
  104 + * set page Title
  105 + * @param {*} title :page Title
  106 + */
  107 +function setDocumentTitle(title: string) {
  108 + document.title = title;
  109 + const ua = navigator.userAgent;
  110 + const regex = /\bMicroMessenger\/([\d.]+)/;
  111 + // 兼容
  112 + if (regex.test(ua) && /ip(hone|od|ad)/i.test(ua)) {
  113 + const i = document.createElement('iframe');
  114 + i.src = '/favicon.ico';
  115 + i.style.display = 'none';
  116 + i.onload = function () {
  117 + setTimeout(function () {
  118 + i.remove();
  119 + }, 9);
  120 + };
  121 + document.body.appendChild(i);
  122 + }
  123 +}
  124 +
  125 +export function setTitle(title: string, appTitle?: string) {
  126 + if (title) {
  127 + const _title = title ? ` ${title}-${appTitle} ` : `${appTitle}`;
  128 + setDocumentTitle(_title);
  129 + }
  130 +}
... ...
src/utils/is.ts
... ... @@ -86,21 +86,7 @@ export function isElement(val: unknown): val is Element {
86 86  
87 87 export const isServer = typeof window === 'undefined';
88 88  
89   -export const isClient = typeof window !== 'undefined';
90   -
91   -export function isImageDom(o: Element) {
92   - return o && ['IMAGE', 'IMG'].includes(o.tagName);
93   -}
94   -
95   -export function isTextarea(element: Element | null): element is HTMLTextAreaElement {
96   - return element !== null && element.tagName.toLowerCase() === 'textarea';
97   -}
98   -
99   -export function isMobile(): boolean {
100   - return !!navigator.userAgent.match(
101   - /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i
102   - );
103   -}
  89 +export const isClient = !isServer;
104 90  
105 91 export function isUrl(path: string): boolean {
106 92 const reg = /(((^https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)$/;
... ...
src/views/sys/error-log/DetailModal.vue
... ... @@ -4,13 +4,16 @@
4 4 </BasicModal>
5 5 </template>
6 6 <script lang="ts">
7   - import { defineComponent, PropType } from 'vue';
  7 + import type { PropType } from 'vue';
8 8  
  9 + import { defineComponent } from 'vue';
9 10 import { BasicModal } from '/@/components/Modal/index';
10   - import { ErrorInfo } from '/@/store/modules/error';
11 11 import { Description, useDescription } from '/@/components/Description/index';
  12 +
12 13 import { useI18n } from '/@/hooks/web/useI18n';
13 14  
  15 + import { ErrorInfo } from '/@/store/modules/error';
  16 +
14 17 import { getDescSchema } from './data';
15 18  
16 19 export default defineComponent({
... ... @@ -24,10 +27,12 @@
24 27 },
25 28 setup() {
26 29 const { t } = useI18n();
  30 +
27 31 const [register] = useDescription({
28 32 column: 2,
29 33 schema: getDescSchema(),
30 34 });
  35 +
31 36 return {
32 37 register,
33 38 useI18n,
... ...
src/views/sys/error-log/data.tsx
... ... @@ -53,7 +53,6 @@ export function getColumns(): BasicColumn[] {
53 53 {
54 54 dataIndex: 'stack',
55 55 title: t('sys.errorLog.tableColumnStackMsg'),
56   - width: 300,
57 56 },
58 57 ];
59 58 }
... ...
src/views/sys/error-log/index.vue
1 1 <template>
2 2 <div class="p-4">
3   - <template v-for="src in imgListRef" :key="src">
  3 + <template v-for="src in imgList" :key="src">
4 4 <img :src="src" v-show="false" />
5 5 </template>
6   - <DetailModal :info="rowInfoRef" @register="registerModal" />
  6 + <DetailModal :info="rowInfo" @register="registerModal" />
7 7 <BasicTable @register="register" class="error-handle-table">
8 8 <template #toolbar>
9 9 <a-button @click="fireVueError" type="primary">
... ... @@ -50,8 +50,8 @@
50 50 name: 'ErrorHandler',
51 51 components: { DetailModal, BasicTable, TableAction },
52 52 setup() {
53   - const rowInfoRef = ref<ErrorInfo>();
54   - const imgListRef = ref<string[]>([]);
  53 + const rowInfo = ref<ErrorInfo>();
  54 + const imgList = ref<string[]>([]);
55 55  
56 56 const { t } = useI18n();
57 57  
... ... @@ -84,7 +84,7 @@
84 84 }
85 85 // 查看详情
86 86 function handleDetail(row: ErrorInfo) {
87   - rowInfoRef.value = row;
  87 + rowInfo.value = row;
88 88 openModal(true);
89 89 }
90 90  
... ... @@ -93,7 +93,7 @@
93 93 }
94 94  
95 95 function fireResourceError() {
96   - imgListRef.value.push(`${new Date().getTime()}.png`);
  96 + imgList.value.push(`${new Date().getTime()}.png`);
97 97 }
98 98  
99 99 async function fireAjaxError() {
... ... @@ -107,8 +107,8 @@
107 107 fireVueError,
108 108 fireResourceError,
109 109 fireAjaxError,
110   - imgListRef,
111   - rowInfoRef,
  110 + imgList,
  111 + rowInfo,
112 112 t,
113 113 };
114 114 },
... ...
src/views/sys/exception/Exception.tsx renamed to src/views/sys/exception/Exception.vue
1   -import './exception.less';
2   -
3   -import type { PropType } from 'vue';
4   -
5   -import { Result, Button } from 'ant-design-vue';
6   -import { defineComponent, ref, computed, unref } from 'vue';
7   -
8   -import { ExceptionEnum } from '/@/enums/exceptionEnum';
9   -
10   -import netWorkImg from '/@/assets/images/exception/net-work.png';
11   -import notDataImg from '/@/assets/images/no-data.png';
12   -
13   -import { useRoute } from 'vue-router';
14   -
15   -import { useGo, useRedo } from '/@/hooks/web/usePage';
16   -import { PageEnum } from '/@/enums/pageEnum';
17   -import { useI18n } from '/@/hooks/web/useI18n';
18   -
19   -interface MapValue {
20   - title: string;
21   - subTitle: string;
22   - btnText?: string;
23   - icon?: string;
24   - handler?: Fn;
25   - status?: string;
26   -}
27   -
28   -export default defineComponent({
29   - name: 'ErrorPage',
30   - props: {
31   - // 状态码
32   - status: {
33   - type: Number as PropType<number>,
34   - default: ExceptionEnum.PAGE_NOT_FOUND,
35   - },
36   -
37   - title: {
38   - type: String as PropType<string>,
39   - default: '',
40   - },
41   -
42   - subTitle: {
43   - type: String as PropType<string>,
44   - default: '',
  1 +<script lang="tsx">
  2 + import type { PropType } from 'vue';
  3 +
  4 + import { Result, Button } from 'ant-design-vue';
  5 + import { defineComponent, ref, computed, unref } from 'vue';
  6 +
  7 + import { ExceptionEnum } from '/@/enums/exceptionEnum';
  8 +
  9 + import notDataSvg from '/@/assets/svg/no-data.svg';
  10 + import netWorkSvg from '/@/assets/svg/net-error.svg';
  11 +
  12 + import { useRoute } from 'vue-router';
  13 + import { useDesign } from '/@/hooks/web/useDesign';
  14 + import { useI18n } from '/@/hooks/web/useI18n';
  15 + import { useGo, useRedo } from '/@/hooks/web/usePage';
  16 +
  17 + import { PageEnum } from '/@/enums/pageEnum';
  18 +
  19 + interface MapValue {
  20 + title: string;
  21 + subTitle: string;
  22 + btnText?: string;
  23 + icon?: string;
  24 + handler?: Fn;
  25 + status?: string;
  26 + }
  27 +
  28 + export default defineComponent({
  29 + name: 'ErrorPage',
  30 + props: {
  31 + // 状态码
  32 + status: {
  33 + type: Number as PropType<number>,
  34 + default: ExceptionEnum.PAGE_NOT_FOUND,
  35 + },
  36 +
  37 + title: {
  38 + type: String as PropType<string>,
  39 + default: '',
  40 + },
  41 +
  42 + subTitle: {
  43 + type: String as PropType<string>,
  44 + default: '',
  45 + },
  46 +
  47 + full: {
  48 + type: Boolean as PropType<boolean>,
  49 + default: false,
  50 + },
45 51 },
  52 + setup(props) {
  53 + const statusMapRef = ref(new Map<string | number, MapValue>());
  54 +
  55 + const { query } = useRoute();
  56 + const go = useGo();
  57 + const redo = useRedo();
  58 + const { t } = useI18n();
  59 + const { prefixCls } = useDesign('app-exception-page');
  60 +
  61 + const getStatus = computed(() => {
  62 + const { status: routeStatus } = query;
  63 + const { status } = props;
  64 + return Number(routeStatus) || status;
  65 + });
  66 +
  67 + const getMapValue = computed(
  68 + (): MapValue => {
  69 + return unref(statusMapRef).get(unref(getStatus)) as MapValue;
  70 + }
  71 + );
46 72  
47   - full: {
48   - type: Boolean as PropType<boolean>,
49   - default: false,
  73 + const backLoginI18n = t('sys.exception.backLogin');
  74 + const backHomeI18n = t('sys.exception.backHome');
  75 +
  76 + unref(statusMapRef).set(ExceptionEnum.PAGE_NOT_ACCESS, {
  77 + title: '403',
  78 + status: `${ExceptionEnum.PAGE_NOT_ACCESS}`,
  79 + subTitle: t('sys.exception.subTitle403'),
  80 + btnText: props.full ? backLoginI18n : backHomeI18n,
  81 + handler: () => (props.full ? go(PageEnum.BASE_LOGIN) : go()),
  82 + });
  83 +
  84 + unref(statusMapRef).set(ExceptionEnum.PAGE_NOT_FOUND, {
  85 + title: '404',
  86 + status: `${ExceptionEnum.PAGE_NOT_FOUND}`,
  87 + subTitle: t('sys.exception.subTitle404'),
  88 + btnText: props.full ? backLoginI18n : backHomeI18n,
  89 + handler: () => (props.full ? go(PageEnum.BASE_LOGIN) : go()),
  90 + });
  91 +
  92 + unref(statusMapRef).set(ExceptionEnum.ERROR, {
  93 + title: '500',
  94 + status: `${ExceptionEnum.ERROR}`,
  95 + subTitle: t('sys.exception.subTitle500'),
  96 + btnText: backHomeI18n,
  97 + handler: () => go(),
  98 + });
  99 +
  100 + unref(statusMapRef).set(ExceptionEnum.PAGE_NOT_DATA, {
  101 + title: t('sys.exception.noDataTitle'),
  102 + subTitle: '',
  103 + btnText: t('common.redo'),
  104 + handler: () => redo(),
  105 + icon: notDataSvg,
  106 + });
  107 +
  108 + unref(statusMapRef).set(ExceptionEnum.NET_WORK_ERROR, {
  109 + title: t('sys.exception.networkErrorTitle'),
  110 + subTitle: t('sys.exception.networkErrorSubTitle'),
  111 + btnText: t('common.redo'),
  112 + handler: () => redo(),
  113 + icon: netWorkSvg,
  114 + });
  115 +
  116 + return () => {
  117 + const { title, subTitle, btnText, icon, handler, status } = unref(getMapValue) || {};
  118 + return (
  119 + <Result
  120 + class={prefixCls}
  121 + status={status as any}
  122 + title={props.title || title}
  123 + sub-title={props.subTitle || subTitle}
  124 + >
  125 + {{
  126 + extra: () =>
  127 + btnText && (
  128 + <Button type="primary" onClick={handler}>
  129 + {() => btnText}
  130 + </Button>
  131 + ),
  132 + icon: () => (icon ? <img src={icon} /> : null),
  133 + }}
  134 + </Result>
  135 + );
  136 + };
50 137 },
51   - },
52   - setup(props) {
53   - const statusMapRef = ref(new Map<string | number, MapValue>());
54   -
55   - const { query } = useRoute();
56   - const go = useGo();
57   - const redo = useRedo();
58   - const { t } = useI18n();
59   -
60   - const getStatus = computed(() => {
61   - const { status: routeStatus } = query;
62   - const { status } = props;
63   - return Number(routeStatus) || status;
64   - });
65   -
66   - const getMapValue = computed(
67   - (): MapValue => {
68   - return unref(statusMapRef).get(unref(getStatus)) as MapValue;
  138 + });
  139 +</script>
  140 +<style lang="less">
  141 + @prefix-cls: ~'@{namespace}-app-exception-page';
  142 +
  143 + .@{prefix-cls} {
  144 + display: flex;
  145 + align-items: center;
  146 + flex-direction: column;
  147 +
  148 + .ant-result-icon {
  149 + img {
  150 + max-width: 400px;
  151 + max-height: 300px;
69 152 }
70   - );
71   -
72   - const backLoginI18n = t('sys.exception.backLogin');
73   - const backHomeI18n = t('sys.exception.backHome');
74   -
75   - unref(statusMapRef).set(ExceptionEnum.PAGE_NOT_ACCESS, {
76   - title: '403',
77   - status: `${ExceptionEnum.PAGE_NOT_ACCESS}`,
78   - subTitle: t('sys.exception.subTitle403'),
79   - btnText: props.full ? backLoginI18n : backHomeI18n,
80   - handler: () => (props.full ? go(PageEnum.BASE_LOGIN) : go()),
81   - });
82   -
83   - unref(statusMapRef).set(ExceptionEnum.PAGE_NOT_FOUND, {
84   - title: '404',
85   - status: `${ExceptionEnum.PAGE_NOT_FOUND}`,
86   - subTitle: t('sys.exception.subTitle404'),
87   - btnText: props.full ? backLoginI18n : backHomeI18n,
88   - handler: () => (props.full ? go(PageEnum.BASE_LOGIN) : go()),
89   - });
90   -
91   - unref(statusMapRef).set(ExceptionEnum.ERROR, {
92   - title: '500',
93   - status: `${ExceptionEnum.ERROR}`,
94   - subTitle: t('sys.exception.subTitle500'),
95   - btnText: backHomeI18n,
96   - handler: () => go(),
97   - });
98   -
99   - unref(statusMapRef).set(ExceptionEnum.PAGE_NOT_DATA, {
100   - title: t('sys.exception.noDataTitle'),
101   - subTitle: '',
102   - btnText: t('common.redo'),
103   - handler: () => redo(),
104   - icon: notDataImg,
105   - });
106   -
107   - unref(statusMapRef).set(ExceptionEnum.NET_WORK_ERROR, {
108   - title: t('sys.exception.networkErrorTitle'),
109   - subTitle: t('sys.exception.networkErrorSubTitle'),
110   - btnText: 'Refresh',
111   - handler: () => redo(),
112   - icon: netWorkImg,
113   - });
114   -
115   - return () => {
116   - const { title, subTitle, btnText, icon, handler, status } = unref(getMapValue) || {};
117   - return (
118   - <Result
119   - class="exception "
120   - status={status as any}
121   - title={props.title || title}
122   - sub-title={props.subTitle || subTitle}
123   - >
124   - {{
125   - extra: () =>
126   - btnText && (
127   - <Button type="primary" onClick={handler}>
128   - {() => btnText}
129   - </Button>
130   - ),
131   - icon: () => (icon ? <img src={icon} /> : null),
132   - }}
133   - </Result>
134   - );
135   - };
136   - },
137   -});
  153 + }
  154 + }
  155 +</style>
... ...
src/views/sys/exception/exception.less deleted 100644 → 0
1   -.exception {
2   - display: flex;
3   - align-items: center;
4   - flex-direction: column;
5   -}
src/views/sys/exception/index.ts
1   -export { default as Exception } from './Exception';
  1 +export { default as Exception } from './Exception.vue';
... ...
src/views/sys/iframe/index.vue
1 1 <template>
2   - <div class="iframe-page" :style="getWrapStyle">
  2 + <div :class="prefixCls" :style="getWrapStyle">
3 3 <Spin :spinning="loading" size="large" :style="getWrapStyle">
4   - <iframe :src="frameSrc" class="iframe-page__main" ref="frameRef"></iframe>
  4 + <iframe :src="frameSrc" :class="`${prefixCls}__main`" ref="frameRef"></iframe>
5 5 </Spin>
6 6 </div>
7 7 </template>
8 8 <script lang="ts">
9   - import { defineComponent, PropType, ref, unref, onMounted, nextTick, computed } from 'vue';
  9 + import type { CSSProperties } from 'vue';
  10 + import { defineComponent, ref, unref, onMounted, nextTick, computed } from 'vue';
10 11 import { Spin } from 'ant-design-vue';
11 12  
12 13 import { getViewportOffset } from '/@/utils/domUtils';
  14 +
13 15 import { useWindowSizeFn } from '/@/hooks/event/useWindowSizeFn';
14 16  
  17 + import { propTypes } from '/@/utils/propTypes';
  18 + import { useDesign } from '/@/hooks/web/useDesign';
  19 +
15 20 export default defineComponent({
16 21 name: 'IFrame',
17 22 components: { Spin },
18 23 props: {
19   - frameSrc: {
20   - type: String as PropType<string>,
21   - default: '',
22   - },
  24 + frameSrc: propTypes.string.def(''),
23 25 },
24 26 setup() {
25   - const loadingRef = ref(false);
  27 + const loading = ref(false);
26 28 const topRef = ref(50);
27 29 const heightRef = ref(window.innerHeight);
28   - const frameRef = ref<HTMLElement | null>(null);
  30 + const frameRef = ref<HTMLFrameElement | null>(null);
  31 +
  32 + const { prefixCls } = useDesign('iframe-page');
  33 + useWindowSizeFn(calcHeight, 150, { immediate: true });
  34 +
  35 + const getWrapStyle = computed(
  36 + (): CSSProperties => {
  37 + return {
  38 + height: `${unref(heightRef)}px`,
  39 + };
  40 + }
  41 + );
29 42  
30 43 function calcHeight() {
31 44 const iframe = unref(frameRef);
... ... @@ -40,21 +53,19 @@
40 53 iframe.style.height = `${clientHeight}px`;
41 54 }
42 55  
43   - useWindowSizeFn(calcHeight, 150, { immediate: true });
44   -
45 56 function hideLoading() {
46   - loadingRef.value = false;
  57 + loading.value = false;
47 58 calcHeight();
48 59 }
49 60  
50 61 function init() {
51 62 nextTick(() => {
52 63 const iframe = unref(frameRef);
53   - if (!iframe) {
54   - return;
55   - }
56   - if ((iframe as any).attachEvent) {
57   - (iframe as any).attachEvent('onload', () => {
  64 + if (!iframe) return;
  65 +
  66 + const _frame = iframe as any;
  67 + if (_frame.attachEvent) {
  68 + _frame.attachEvent('onload', () => {
58 69 hideLoading();
59 70 });
60 71 } else {
... ... @@ -65,23 +76,23 @@
65 76 });
66 77 }
67 78 onMounted(() => {
68   - loadingRef.value = true;
  79 + loading.value = true;
69 80 init();
70 81 });
  82 +
71 83 return {
72   - getWrapStyle: computed(() => {
73   - return {
74   - height: `${unref(heightRef)}px`,
75   - };
76   - }),
77   - loading: loadingRef,
  84 + getWrapStyle,
  85 + loading,
78 86 frameRef,
  87 + prefixCls,
79 88 };
80 89 },
81 90 });
82 91 </script>
83 92 <style lang="less" scoped>
84   - .iframe-page {
  93 + @prefix-cls: ~'@{namespace}-iframe-page';
  94 +
  95 + .@{prefix-cls} {
85 96 .ant-spin-nested-loading {
86 97 position: relative;
87 98 height: 100%;
... ...
src/views/sys/lock/LockPage.vue
... ... @@ -203,15 +203,12 @@
203 203 display: flex;
204 204 width: 40%;
205 205 height: 74%;
206   - // font-size: 50em;
207 206 font-weight: 700;
208 207 color: #bababa;
209 208 background: #141313;
210 209 border-radius: 30px;
211 210 justify-content: center;
212 211 align-items: center;
213   - // .respond-to(large-only, { font-size: 25em;});
214   - // .respond-to(large-only, { font-size: 30em;});
215 212 @media (min-width: @screen-xxxl-min) {
216 213 font-size: 46em;
217 214 }
... ...
src/views/sys/redirect/index.vue
... ... @@ -12,7 +12,9 @@
12 12  
13 13 const { params, query } = unref(currentRoute);
14 14 const { path } = params;
  15 +
15 16 const _path = Array.isArray(path) ? path.join('/') : path;
  17 +
16 18 replace({
17 19 path: '/' + _path,
18 20 query,
... ...